Bug 558994: Remove LRParser, XLC and UPC

These old parsers have not been maintained in many years and do not
actually work anymore as is.

Change-Id: Ifc3223aa81718ffbfbbc2ea605eabba2807b80d9
diff --git a/.gitattributes b/.gitattributes
index 6fef351..f2e2fe0 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -148,7 +148,6 @@
 *.top text
 *.ucd text
 .umlproject text
-*.upc text
 # remove trailing whitespace
 *.py text
 *.xhtml text
diff --git a/doc/org.eclipse.cdt.doc.isv/guide/deprecated_API_removals.html b/doc/org.eclipse.cdt.doc.isv/guide/deprecated_API_removals.html
index 80af60b..03abfe6 100644
--- a/doc/org.eclipse.cdt.doc.isv/guide/deprecated_API_removals.html
+++ b/doc/org.eclipse.cdt.doc.isv/guide/deprecated_API_removals.html
@@ -37,6 +37,7 @@
     <li><a href="#activators">Activators removed for all bundles where possible.</a></li>
     <li><a href="#NewClassCreationWizardPage">NewClassCreationWizardPage breaking changes.</a></li>
     <li><a href="#arduino">Arduino plug-ins and features removed.</a></li>
+    <li><a href="#oldparsers">Remove LRParser, XLC and UPC.</a></li>
   </ol>
   <p>
     Planned Removals after June 2022
@@ -129,6 +130,43 @@
     See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=562498" target="_blank">Bug 562498</a>.
   </p>
 
+  <h3>6. <a name="oldparsers">Remove LRParser, XLC and UPC.</a></h3>
+  <p>
+    The LR, UPC and XLC support have been removed from CDT. The bundles have not been maintained for a while and were
+    not functional anymore.
+  </p>
+  <p>
+    The bundles and features that have been removed are:
+    <ul>
+      <li>org.eclipse.cdt.core.lrparser.feature</li>
+      <li>org.eclipse.cdt.core.lrparser.sdk.branding</li>
+      <li>org.eclipse.cdt.core.lrparser.sdk.feature</li>
+      <li>org.eclipse.cdt.core.lrparser.tests</li>
+      <li>org.eclipse.cdt.core.lrparser</li>
+      <li>org.eclipse.cdt.bupc-feature</li>
+      <li>org.eclipse.cdt.core.parser.upc.feature</li>
+      <li>org.eclipse.cdt.core.parser.upc.sdk.branding</li>
+      <li>org.eclipse.cdt.core.parser.upc.sdk.feature</li>
+      <li>org.eclipse.cdt.core.parser.upc.tests</li>
+      <li>org.eclipse.cdt.core.parser.upc</li>
+      <li>org.eclipse.cdt.managedbuilder.bupc.ui</li>
+      <li>org.eclipse.cdt.core.lrparser.xlc.tests</li>
+      <li>org.eclipse.cdt.core.lrparser.xlc</li>
+      <li>org.eclipse.cdt.errorparsers.xlc.tests</li>
+      <li>org.eclipse.cdt.errorparsers.xlc</li>
+      <li>org.eclipse.cdt.make.xlc.core</li>
+      <li>org.eclipse.cdt.managedbuilder.xlc.core</li>
+      <li>org.eclipse.cdt.managedbuilder.xlc.ui</li>
+      <li>org.eclipse.cdt.managedbuilder.xlupc.ui</li>
+      <li>org.eclipse.cdt.xlc.feature</li>
+      <li>org.eclipse.cdt.xlc.sdk-feature</li>
+      <li>org.eclipse.cdt.xlc.sdk.branding</li>
+    </ul>
+  </p>
+  <p>
+    See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=562498" target="_blank">Bug 562498</a>.
+  </p>
+
   <hr>
 
   <h2>Future Deletions</h2>
@@ -168,4 +206,4 @@
   </p>
 </body>
 
-</html>
+</html>
\ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.feature/.project b/lrparser/org.eclipse.cdt.core.lrparser.feature/.project
deleted file mode 100644
index 96ca112..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.cdt.core.lrparser.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.feature/build.properties b/lrparser/org.eclipse.cdt.core.lrparser.feature/build.properties
deleted file mode 100644
index cae59d6..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.feature/build.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-#  Copyright (c) 2007, 2008 IBM Corporation and others.
-#
-#  This program and the accompanying materials
-#  are made available under the terms of the Eclipse Public License 2.0
-#  which accompanies this distribution, and is available at
-#  https://www.eclipse.org/legal/epl-2.0/
-#
-#  SPDX-License-Identifier: EPL-2.0
-#
-#  Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = feature.xml,\
-               feature.properties
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.feature/feature.properties b/lrparser/org.eclipse.cdt.core.lrparser.feature/feature.properties
deleted file mode 100644
index c8755e0..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.feature/feature.properties
+++ /dev/null
@@ -1,36 +0,0 @@
-###############################################################################
-#  Copyright (c) 2006, 2010 IBM Corporation and others.
-#
-#  This program and the accompanying materials
-#  are made available under the terms of the Eclipse Public License 2.0
-#  which accompanies this distribution, and is available at
-#  https://www.eclipse.org/legal/epl-2.0/
-#
-#  SPDX-License-Identifier: EPL-2.0
-#
-#  Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=C/C++ C99 LR Parser
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse CDT
-
-# "description" property - description of the feature
-description=Parser and language support for the C99 variant of the C programming language.
-
-# copyright
-copyright=\
-Copyright (c) 2006, 2011 IBM Corporation and others.\n\
-This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License 2.0\n\
-which accompanies this distribution, and is available at\n\
-https://www.eclipse.org/legal/epl-2.0/
-
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.feature/feature.xml b/lrparser/org.eclipse.cdt.core.lrparser.feature/feature.xml
deleted file mode 100644
index c96bab3..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.feature/feature.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.cdt.core.lrparser.feature"
-      label="%featureName"
-      version="10.0.0.qualifier"
-      provider-name="%providerName"
-      plugin="org.eclipse.cdt.core.lrparser"
-      license-feature="org.eclipse.license"
-      license-feature-version="0.0.0">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="%licenseURL">
-      %license
-   </license>
-
-   <plugin
-         id="net.sourceforge.lpg.lpgjavaruntime"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.cdt.core.lrparser"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.feature/rootfiles/notice.html b/lrparser/org.eclipse.cdt.core.lrparser.feature/rootfiles/notice.html
deleted file mode 100644
index 008b801..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.feature/rootfiles/notice.html
+++ /dev/null
@@ -1,189 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-	<h2>Eclipse Foundation Software User Agreement</h2>
-	<p>November 22, 2017</p>
-
-	<h3>Usage Of Content</h3>
-
-	<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION,
-		INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-		(COLLECTIVELY &quot;CONTENT&quot;). USE OF THE CONTENT IS GOVERNED BY
-		THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-		CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED
-		BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS
-		GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY
-		APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED
-		BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS
-		AGREEMENT AND THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE
-		AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT
-		USE THE CONTENT.</p>
-
-	<h3>Applicable Licenses</h3>
-
-	<p>
-		Unless otherwise indicated, all Content made available by the Eclipse
-		Foundation is provided to you under the terms and conditions of the
-		Eclipse Public License Version 2.0 (&quot;EPL&quot;). A copy of the
-		EPL is provided with this Content and is also available at <a
-			href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>Content includes, but is not limited to, source code, object
-		code, documentation and other files maintained in the Eclipse
-		Foundation source code repository (&quot;Repository&quot;) in software
-		modules (&quot;Modules&quot;) and made available as downloadable
-		archives (&quot;Downloads&quot;).</p>
-
-	<ul>
-		<li>Content may be structured and packaged into modules to
-			facilitate delivering, extending, and upgrading the Content. Typical
-			modules may include plug-ins (&quot;Plug-ins&quot;), plug-in
-			fragments (&quot;Fragments&quot;), and features
-			(&quot;Features&quot;).</li>
-		<li>Each Plug-in or Fragment may be packaged as a sub-directory
-			or JAR (Java&trade; ARchive) in a directory named
-			&quot;plugins&quot;.</li>
-		<li>A Feature is a bundle of one or more Plug-ins and/or
-			Fragments and associated material. Each Feature may be packaged as a
-			sub-directory in a directory named &quot;features&quot;. Within a
-			Feature, files named &quot;feature.xml&quot; may contain a list of
-			the names and version numbers of the Plug-ins and/or Fragments
-			associated with that Feature.</li>
-		<li>Features may also include other Features (&quot;Included
-			Features&quot;). Within a Feature, files named
-			&quot;feature.xml&quot; may contain a list of the names and version
-			numbers of Included Features.</li>
-	</ul>
-
-	<p>The terms and conditions governing Plug-ins and Fragments should
-		be contained in files named &quot;about.html&quot;
-		(&quot;Abouts&quot;). The terms and conditions governing Features and
-		Included Features should be contained in files named
-		&quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and
-		Feature Licenses may be located in any directory of a Download or
-		Module including, but not limited to the following locations:</p>
-
-	<ul>
-		<li>The top-level (root) directory</li>
-		<li>Plug-in and Fragment directories</li>
-		<li>Inside Plug-ins and Fragments packaged as JARs</li>
-		<li>Sub-directories of the directory named &quot;src&quot; of
-			certain Plug-ins</li>
-		<li>Feature directories</li>
-	</ul>
-
-	<p>Note: if a Feature made available by the Eclipse Foundation is
-		installed using the Provisioning Technology (as defined below), you
-		must agree to a license (&quot;Feature Update License&quot;) during
-		the installation process. If the Feature contains Included Features,
-		the Feature Update License should either provide you with the terms
-		and conditions governing the Included Features or inform you where you
-		can locate them. Feature Update Licenses may be found in the
-		&quot;license&quot; property of files named
-		&quot;feature.properties&quot; found within a Feature. Such Abouts,
-		Feature Licenses, and Feature Update Licenses contain the terms and
-		conditions (or references to such terms and conditions) that govern
-		your use of the associated Content in that directory.</p>
-
-	<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY
-		REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND
-		CONDITIONS. SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT
-		ARE NOT LIMITED TO):</p>
-
-	<ul>
-		<li>Eclipse Public License Version 1.0 (available at <a
-			href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>)
-		</li>
-		<li>Eclipse Distribution License Version 1.0 (available at <a
-			href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)
-		</li>
-		<li>Common Public License Version 1.0 (available at <a
-			href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)
-		</li>
-		<li>Apache Software License 1.1 (available at <a
-			href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)
-		</li>
-		<li>Apache Software License 2.0 (available at <a
-			href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)
-		</li>
-		<li>Mozilla Public License Version 1.1 (available at <a
-			href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)
-		</li>
-	</ul>
-
-	<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND
-		CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License,
-		or Feature Update License is provided, please contact the Eclipse
-		Foundation to determine what terms and conditions govern that
-		particular Content.</p>
-
-
-	<h3>Use of Provisioning Technology</h3>
-
-	<p>
-		The Eclipse Foundation makes available provisioning software, examples
-		of which include, but are not limited to, p2 and the Eclipse Update
-		Manager (&quot;Provisioning Technology&quot;) for the purpose of
-		allowing users to install software, documentation, information and/or
-		other materials (collectively &quot;Installable Software&quot;). This
-		capability is provided with the intent of allowing such users to
-		install, extend and update Eclipse-based products. Information about
-		packaging Installable Software is available at <a
-			href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-		(&quot;Specification&quot;).
-	</p>
-
-	<p>You may use Provisioning Technology to allow other parties to
-		install Installable Software. You shall be responsible for enabling
-		the applicable license agreements relating to the Installable Software
-		to be presented to, and accepted by, the users of the Provisioning
-		Technology in accordance with the Specification. By using Provisioning
-		Technology in such a manner and making it available in accordance with
-		the Specification, you further acknowledge your agreement to, and the
-		acquisition of all necessary rights to permit the following:</p>
-
-	<ol>
-		<li>A series of actions may occur (&quot;Provisioning
-			Process&quot;) in which a user may execute the Provisioning
-			Technology on a machine (&quot;Target Machine&quot;) with the intent
-			of installing, extending or updating the functionality of an
-			Eclipse-based product.</li>
-		<li>During the Provisioning Process, the Provisioning Technology
-			may cause third party Installable Software or a portion thereof to be
-			accessed and copied to the Target Machine.</li>
-		<li>Pursuant to the Specification, you will provide to the user
-			the terms and conditions that govern the use of the Installable
-			Software (&quot;Installable Software Agreement&quot;) and such
-			Installable Software Agreement shall be accessed from the Target
-			Machine in accordance with the Specification. Such Installable
-			Software Agreement must inform the user of the terms and conditions
-			that govern the Installable Software and must solicit acceptance by
-			the end user in the manner prescribed in such Installable Software
-			Agreement. Upon such indication of agreement by the user, the
-			provisioning Technology will complete installation of the Installable
-			Software.</li>
-	</ol>
-
-	<h3>Cryptography</h3>
-
-	<p>Content may contain encryption software. The country in which
-		you are currently may have restrictions on the import, possession, and
-		use, and/or re-export to another country, of encryption software.
-		BEFORE using any encryption software, please check the country's laws,
-		regulations and policies concerning the import, possession, or use,
-		and re-export of encryption software, to see if this is permitted.</p>
-
-	<p>
-		<small>Java and all Java-based trademarks are trademarks of
-			Oracle Corporation in the United States, other countries, or both.</small>
-	</p>
-</body>
-</html>
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.feature/sourceTemplateFeature/p2.inf b/lrparser/org.eclipse.cdt.core.lrparser.feature/sourceTemplateFeature/p2.inf
deleted file mode 100644
index b96f60e..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.feature/sourceTemplateFeature/p2.inf
+++ /dev/null
@@ -1 +0,0 @@
-update.matchExp=providedCapabilities.exists(pc | pc.namespace == 'org.eclipse.equinox.p2.iu' && (pc.name == 'org.eclipse.cdt.core.lrparser.source.feature.group' || pc.name == 'org.eclipse.cdt.core.lrparser.feature.source.feature.group'))
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.sdk.branding/.project b/lrparser/org.eclipse.cdt.core.lrparser.sdk.branding/.project
deleted file mode 100644
index cac5d53..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.sdk.branding/.project
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.cdt.core.lrparser.sdk.branding</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.sdk.branding/.settings/org.eclipse.pde.api.tools.prefs b/lrparser/org.eclipse.cdt.core.lrparser.sdk.branding/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index ec9fbf3..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.sdk.branding/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,184 +0,0 @@
-ANNOTATION_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITH_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-API_USE_SCAN_FIELD_SEVERITY=Error
-API_USE_SCAN_METHOD_SEVERITY=Error
-API_USE_SCAN_TYPE_SEVERITY=Error
-CLASS_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERCLASS_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_CHANGED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENTS=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETERS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_ANNOTATION=Ignore
-INVALID_JAVADOC_TAG=Error
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Warning
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-MISSING_EE_DESCRIPTIONS=Warning
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-automatically_removed_unused_problem_filters=false
-changed_execution_env=Error
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-incompatible_api_component_version_report_major_without_breaking_change=Warning
-incompatible_api_component_version_report_minor_without_api_change=Warning
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.sdk.branding/.settings/org.eclipse.pde.prefs b/lrparser/org.eclipse.cdt.core.lrparser.sdk.branding/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index d2dc703..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.sdk.branding/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,35 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.build.bin.includes=1
-compilers.p.build.encodings=2
-compilers.p.build.java.compiler=2
-compilers.p.build.java.compliance=1
-compilers.p.build.missing.output=2
-compilers.p.build.output.library=1
-compilers.p.build.source.library=1
-compilers.p.build.src.includes=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=1
-compilers.p.missing-packages=2
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=2
-compilers.p.missing-version-require-bundle=2
-compilers.p.no-required-att=0
-compilers.p.no.automatic.module=1
-compilers.p.not-externalized-att=1
-compilers.p.service.component.without.lazyactivation=1
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.sdk.branding/META-INF/MANIFEST.MF b/lrparser/org.eclipse.cdt.core.lrparser.sdk.branding/META-INF/MANIFEST.MF
deleted file mode 100644
index d5928d9..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.sdk.branding/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,7 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.cdt.core.lrparser.sdk.branding;singleton:=true
-Bundle-Version: 10.0.0.qualifier
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.sdk.branding/about.html b/lrparser/org.eclipse.cdt.core.lrparser.sdk.branding/about.html
deleted file mode 100644
index 164f781..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.sdk.branding/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
-	<h2>About This Content</h2>
-
-	<p>November 30, 2017</p>
-	<h3>License</h3>
-
-	<p>
-		The Eclipse Foundation makes available all content in this plug-in
-		(&quot;Content&quot;). Unless otherwise indicated below, the Content
-		is provided to you under the terms and conditions of the Eclipse
-		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
-		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>
-		If you did not receive this Content directly from the Eclipse
-		Foundation, the Content is being redistributed by another party
-		(&quot;Redistributor&quot;) and different terms and conditions may
-		apply to your use of any object code in the Content. Check the
-		Redistributor's license that was provided with the Content. If no such
-		license exists, contact the Redistributor. Unless otherwise indicated
-		below, the terms and conditions of the EPL still apply to any source
-		code in the Content and such source code may be obtained at <a
-			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
-	</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.sdk.branding/about.ini b/lrparser/org.eclipse.cdt.core.lrparser.sdk.branding/about.ini
deleted file mode 100644
index e07a7bb..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.sdk.branding/about.ini
+++ /dev/null
@@ -1,24 +0,0 @@
-# about.ini
-# contains information about a feature
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in about.properties
-# This file does not need to be translated.
-
-# Property "aboutText" contains blurb for "About" dialog (translated)
-aboutText=%blurb
-
-# Property "windowImage" contains path to window icon (16x16)
-# needed for primary features only
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=cdt_logo_icon32.png
-
-# Property "aboutImage" contains path to product image (500x330 or 115x164)
-# needed for primary features only
-
-# Property "appName" contains name of the application (translated)
-# needed for primary features only
-
-# Property "welcomePerspective" contains the id of the perspective in which the
-# welcome page is to be opened.
-# optional
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.sdk.branding/about.mappings b/lrparser/org.eclipse.cdt.core.lrparser.sdk.branding/about.mappings
deleted file mode 100644
index 936a803..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.sdk.branding/about.mappings
+++ /dev/null
@@ -1,9 +0,0 @@
-# about.mappings
-# contains fill-ins for about.properties
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file does not need to be translated.
-
-# The following should contain the build version.
-# e.g. "0=20200106-1728"
-# This value will be added automatically via the build scripts
-0=${buildId}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.sdk.branding/about.properties b/lrparser/org.eclipse.cdt.core.lrparser.sdk.branding/about.properties
deleted file mode 100644
index 24655a8..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.sdk.branding/about.properties
+++ /dev/null
@@ -1,32 +0,0 @@
-###############################################################################
-# Copyright (c) 2009, 2020 Contributors to the Eclipse Foundation
-#
-# See the NOTICE file(s) distributed with this work for additional
-# information regarding copyright ownership.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-###############################################################################
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-# NOTE TO TRANSLATOR: Please do not translate the featureVersion variable.
-
-
-blurb=C/C++ C99 LR Parser SDK\n\
-\n\
-Version: {featureVersion}\n\
-Build id: {0}\n\
-\n\
-Copyright (c) 2009, 2020 Contributors to the Eclipse Foundation
-\n\
-See the NOTICE file(s) distributed with this work for additional\n\
-information regarding copyright ownership.\n\
-\n\
-Visit http://www.eclipse.org/cdt
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.sdk.branding/build.properties b/lrparser/org.eclipse.cdt.core.lrparser.sdk.branding/build.properties
deleted file mode 100644
index f9952c2..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.sdk.branding/build.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-###############################################################################
-#  Copyright (c) 2005, 2009 IBM Corporation and others.
-#
-#  This program and the accompanying materials
-#  are made available under the terms of the Eclipse Public License 2.0
-#  which accompanies this distribution, and is available at
-#  https://www.eclipse.org/legal/epl-2.0/
-#
-#  SPDX-License-Identifier: EPL-2.0
-#
-#  Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = about.html,\
-               about.ini,\
-               about.mappings,\
-               about.properties,\
-               notice.html,\
-               plugin.properties,\
-               epl-v20.html,\
-               META-INF/,\
-               cdt_logo_icon32.png
-src.includes = about.html
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.sdk.branding/cdt_logo_icon32.png b/lrparser/org.eclipse.cdt.core.lrparser.sdk.branding/cdt_logo_icon32.png
deleted file mode 100644
index 470ca81..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.sdk.branding/cdt_logo_icon32.png
+++ /dev/null
Binary files differ
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.sdk.branding/epl-v20.html b/lrparser/org.eclipse.cdt.core.lrparser.sdk.branding/epl-v20.html
deleted file mode 100644
index 008b801..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.sdk.branding/epl-v20.html
+++ /dev/null
@@ -1,189 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-	<h2>Eclipse Foundation Software User Agreement</h2>
-	<p>November 22, 2017</p>
-
-	<h3>Usage Of Content</h3>
-
-	<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION,
-		INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-		(COLLECTIVELY &quot;CONTENT&quot;). USE OF THE CONTENT IS GOVERNED BY
-		THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-		CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED
-		BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS
-		GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY
-		APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED
-		BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS
-		AGREEMENT AND THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE
-		AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT
-		USE THE CONTENT.</p>
-
-	<h3>Applicable Licenses</h3>
-
-	<p>
-		Unless otherwise indicated, all Content made available by the Eclipse
-		Foundation is provided to you under the terms and conditions of the
-		Eclipse Public License Version 2.0 (&quot;EPL&quot;). A copy of the
-		EPL is provided with this Content and is also available at <a
-			href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>Content includes, but is not limited to, source code, object
-		code, documentation and other files maintained in the Eclipse
-		Foundation source code repository (&quot;Repository&quot;) in software
-		modules (&quot;Modules&quot;) and made available as downloadable
-		archives (&quot;Downloads&quot;).</p>
-
-	<ul>
-		<li>Content may be structured and packaged into modules to
-			facilitate delivering, extending, and upgrading the Content. Typical
-			modules may include plug-ins (&quot;Plug-ins&quot;), plug-in
-			fragments (&quot;Fragments&quot;), and features
-			(&quot;Features&quot;).</li>
-		<li>Each Plug-in or Fragment may be packaged as a sub-directory
-			or JAR (Java&trade; ARchive) in a directory named
-			&quot;plugins&quot;.</li>
-		<li>A Feature is a bundle of one or more Plug-ins and/or
-			Fragments and associated material. Each Feature may be packaged as a
-			sub-directory in a directory named &quot;features&quot;. Within a
-			Feature, files named &quot;feature.xml&quot; may contain a list of
-			the names and version numbers of the Plug-ins and/or Fragments
-			associated with that Feature.</li>
-		<li>Features may also include other Features (&quot;Included
-			Features&quot;). Within a Feature, files named
-			&quot;feature.xml&quot; may contain a list of the names and version
-			numbers of Included Features.</li>
-	</ul>
-
-	<p>The terms and conditions governing Plug-ins and Fragments should
-		be contained in files named &quot;about.html&quot;
-		(&quot;Abouts&quot;). The terms and conditions governing Features and
-		Included Features should be contained in files named
-		&quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and
-		Feature Licenses may be located in any directory of a Download or
-		Module including, but not limited to the following locations:</p>
-
-	<ul>
-		<li>The top-level (root) directory</li>
-		<li>Plug-in and Fragment directories</li>
-		<li>Inside Plug-ins and Fragments packaged as JARs</li>
-		<li>Sub-directories of the directory named &quot;src&quot; of
-			certain Plug-ins</li>
-		<li>Feature directories</li>
-	</ul>
-
-	<p>Note: if a Feature made available by the Eclipse Foundation is
-		installed using the Provisioning Technology (as defined below), you
-		must agree to a license (&quot;Feature Update License&quot;) during
-		the installation process. If the Feature contains Included Features,
-		the Feature Update License should either provide you with the terms
-		and conditions governing the Included Features or inform you where you
-		can locate them. Feature Update Licenses may be found in the
-		&quot;license&quot; property of files named
-		&quot;feature.properties&quot; found within a Feature. Such Abouts,
-		Feature Licenses, and Feature Update Licenses contain the terms and
-		conditions (or references to such terms and conditions) that govern
-		your use of the associated Content in that directory.</p>
-
-	<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY
-		REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND
-		CONDITIONS. SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT
-		ARE NOT LIMITED TO):</p>
-
-	<ul>
-		<li>Eclipse Public License Version 1.0 (available at <a
-			href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>)
-		</li>
-		<li>Eclipse Distribution License Version 1.0 (available at <a
-			href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)
-		</li>
-		<li>Common Public License Version 1.0 (available at <a
-			href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)
-		</li>
-		<li>Apache Software License 1.1 (available at <a
-			href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)
-		</li>
-		<li>Apache Software License 2.0 (available at <a
-			href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)
-		</li>
-		<li>Mozilla Public License Version 1.1 (available at <a
-			href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)
-		</li>
-	</ul>
-
-	<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND
-		CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License,
-		or Feature Update License is provided, please contact the Eclipse
-		Foundation to determine what terms and conditions govern that
-		particular Content.</p>
-
-
-	<h3>Use of Provisioning Technology</h3>
-
-	<p>
-		The Eclipse Foundation makes available provisioning software, examples
-		of which include, but are not limited to, p2 and the Eclipse Update
-		Manager (&quot;Provisioning Technology&quot;) for the purpose of
-		allowing users to install software, documentation, information and/or
-		other materials (collectively &quot;Installable Software&quot;). This
-		capability is provided with the intent of allowing such users to
-		install, extend and update Eclipse-based products. Information about
-		packaging Installable Software is available at <a
-			href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-		(&quot;Specification&quot;).
-	</p>
-
-	<p>You may use Provisioning Technology to allow other parties to
-		install Installable Software. You shall be responsible for enabling
-		the applicable license agreements relating to the Installable Software
-		to be presented to, and accepted by, the users of the Provisioning
-		Technology in accordance with the Specification. By using Provisioning
-		Technology in such a manner and making it available in accordance with
-		the Specification, you further acknowledge your agreement to, and the
-		acquisition of all necessary rights to permit the following:</p>
-
-	<ol>
-		<li>A series of actions may occur (&quot;Provisioning
-			Process&quot;) in which a user may execute the Provisioning
-			Technology on a machine (&quot;Target Machine&quot;) with the intent
-			of installing, extending or updating the functionality of an
-			Eclipse-based product.</li>
-		<li>During the Provisioning Process, the Provisioning Technology
-			may cause third party Installable Software or a portion thereof to be
-			accessed and copied to the Target Machine.</li>
-		<li>Pursuant to the Specification, you will provide to the user
-			the terms and conditions that govern the use of the Installable
-			Software (&quot;Installable Software Agreement&quot;) and such
-			Installable Software Agreement shall be accessed from the Target
-			Machine in accordance with the Specification. Such Installable
-			Software Agreement must inform the user of the terms and conditions
-			that govern the Installable Software and must solicit acceptance by
-			the end user in the manner prescribed in such Installable Software
-			Agreement. Upon such indication of agreement by the user, the
-			provisioning Technology will complete installation of the Installable
-			Software.</li>
-	</ol>
-
-	<h3>Cryptography</h3>
-
-	<p>Content may contain encryption software. The country in which
-		you are currently may have restrictions on the import, possession, and
-		use, and/or re-export to another country, of encryption software.
-		BEFORE using any encryption software, please check the country's laws,
-		regulations and policies concerning the import, possession, or use,
-		and re-export of encryption software, to see if this is permitted.</p>
-
-	<p>
-		<small>Java and all Java-based trademarks are trademarks of
-			Oracle Corporation in the United States, other countries, or both.</small>
-	</p>
-</body>
-</html>
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.sdk.branding/notice.html b/lrparser/org.eclipse.cdt.core.lrparser.sdk.branding/notice.html
deleted file mode 100644
index 008b801..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.sdk.branding/notice.html
+++ /dev/null
@@ -1,189 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-	<h2>Eclipse Foundation Software User Agreement</h2>
-	<p>November 22, 2017</p>
-
-	<h3>Usage Of Content</h3>
-
-	<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION,
-		INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-		(COLLECTIVELY &quot;CONTENT&quot;). USE OF THE CONTENT IS GOVERNED BY
-		THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-		CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED
-		BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS
-		GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY
-		APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED
-		BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS
-		AGREEMENT AND THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE
-		AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT
-		USE THE CONTENT.</p>
-
-	<h3>Applicable Licenses</h3>
-
-	<p>
-		Unless otherwise indicated, all Content made available by the Eclipse
-		Foundation is provided to you under the terms and conditions of the
-		Eclipse Public License Version 2.0 (&quot;EPL&quot;). A copy of the
-		EPL is provided with this Content and is also available at <a
-			href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>Content includes, but is not limited to, source code, object
-		code, documentation and other files maintained in the Eclipse
-		Foundation source code repository (&quot;Repository&quot;) in software
-		modules (&quot;Modules&quot;) and made available as downloadable
-		archives (&quot;Downloads&quot;).</p>
-
-	<ul>
-		<li>Content may be structured and packaged into modules to
-			facilitate delivering, extending, and upgrading the Content. Typical
-			modules may include plug-ins (&quot;Plug-ins&quot;), plug-in
-			fragments (&quot;Fragments&quot;), and features
-			(&quot;Features&quot;).</li>
-		<li>Each Plug-in or Fragment may be packaged as a sub-directory
-			or JAR (Java&trade; ARchive) in a directory named
-			&quot;plugins&quot;.</li>
-		<li>A Feature is a bundle of one or more Plug-ins and/or
-			Fragments and associated material. Each Feature may be packaged as a
-			sub-directory in a directory named &quot;features&quot;. Within a
-			Feature, files named &quot;feature.xml&quot; may contain a list of
-			the names and version numbers of the Plug-ins and/or Fragments
-			associated with that Feature.</li>
-		<li>Features may also include other Features (&quot;Included
-			Features&quot;). Within a Feature, files named
-			&quot;feature.xml&quot; may contain a list of the names and version
-			numbers of Included Features.</li>
-	</ul>
-
-	<p>The terms and conditions governing Plug-ins and Fragments should
-		be contained in files named &quot;about.html&quot;
-		(&quot;Abouts&quot;). The terms and conditions governing Features and
-		Included Features should be contained in files named
-		&quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and
-		Feature Licenses may be located in any directory of a Download or
-		Module including, but not limited to the following locations:</p>
-
-	<ul>
-		<li>The top-level (root) directory</li>
-		<li>Plug-in and Fragment directories</li>
-		<li>Inside Plug-ins and Fragments packaged as JARs</li>
-		<li>Sub-directories of the directory named &quot;src&quot; of
-			certain Plug-ins</li>
-		<li>Feature directories</li>
-	</ul>
-
-	<p>Note: if a Feature made available by the Eclipse Foundation is
-		installed using the Provisioning Technology (as defined below), you
-		must agree to a license (&quot;Feature Update License&quot;) during
-		the installation process. If the Feature contains Included Features,
-		the Feature Update License should either provide you with the terms
-		and conditions governing the Included Features or inform you where you
-		can locate them. Feature Update Licenses may be found in the
-		&quot;license&quot; property of files named
-		&quot;feature.properties&quot; found within a Feature. Such Abouts,
-		Feature Licenses, and Feature Update Licenses contain the terms and
-		conditions (or references to such terms and conditions) that govern
-		your use of the associated Content in that directory.</p>
-
-	<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY
-		REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND
-		CONDITIONS. SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT
-		ARE NOT LIMITED TO):</p>
-
-	<ul>
-		<li>Eclipse Public License Version 1.0 (available at <a
-			href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>)
-		</li>
-		<li>Eclipse Distribution License Version 1.0 (available at <a
-			href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)
-		</li>
-		<li>Common Public License Version 1.0 (available at <a
-			href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)
-		</li>
-		<li>Apache Software License 1.1 (available at <a
-			href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)
-		</li>
-		<li>Apache Software License 2.0 (available at <a
-			href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)
-		</li>
-		<li>Mozilla Public License Version 1.1 (available at <a
-			href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)
-		</li>
-	</ul>
-
-	<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND
-		CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License,
-		or Feature Update License is provided, please contact the Eclipse
-		Foundation to determine what terms and conditions govern that
-		particular Content.</p>
-
-
-	<h3>Use of Provisioning Technology</h3>
-
-	<p>
-		The Eclipse Foundation makes available provisioning software, examples
-		of which include, but are not limited to, p2 and the Eclipse Update
-		Manager (&quot;Provisioning Technology&quot;) for the purpose of
-		allowing users to install software, documentation, information and/or
-		other materials (collectively &quot;Installable Software&quot;). This
-		capability is provided with the intent of allowing such users to
-		install, extend and update Eclipse-based products. Information about
-		packaging Installable Software is available at <a
-			href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-		(&quot;Specification&quot;).
-	</p>
-
-	<p>You may use Provisioning Technology to allow other parties to
-		install Installable Software. You shall be responsible for enabling
-		the applicable license agreements relating to the Installable Software
-		to be presented to, and accepted by, the users of the Provisioning
-		Technology in accordance with the Specification. By using Provisioning
-		Technology in such a manner and making it available in accordance with
-		the Specification, you further acknowledge your agreement to, and the
-		acquisition of all necessary rights to permit the following:</p>
-
-	<ol>
-		<li>A series of actions may occur (&quot;Provisioning
-			Process&quot;) in which a user may execute the Provisioning
-			Technology on a machine (&quot;Target Machine&quot;) with the intent
-			of installing, extending or updating the functionality of an
-			Eclipse-based product.</li>
-		<li>During the Provisioning Process, the Provisioning Technology
-			may cause third party Installable Software or a portion thereof to be
-			accessed and copied to the Target Machine.</li>
-		<li>Pursuant to the Specification, you will provide to the user
-			the terms and conditions that govern the use of the Installable
-			Software (&quot;Installable Software Agreement&quot;) and such
-			Installable Software Agreement shall be accessed from the Target
-			Machine in accordance with the Specification. Such Installable
-			Software Agreement must inform the user of the terms and conditions
-			that govern the Installable Software and must solicit acceptance by
-			the end user in the manner prescribed in such Installable Software
-			Agreement. Upon such indication of agreement by the user, the
-			provisioning Technology will complete installation of the Installable
-			Software.</li>
-	</ol>
-
-	<h3>Cryptography</h3>
-
-	<p>Content may contain encryption software. The country in which
-		you are currently may have restrictions on the import, possession, and
-		use, and/or re-export to another country, of encryption software.
-		BEFORE using any encryption software, please check the country's laws,
-		regulations and policies concerning the import, possession, or use,
-		and re-export of encryption software, to see if this is permitted.</p>
-
-	<p>
-		<small>Java and all Java-based trademarks are trademarks of
-			Oracle Corporation in the United States, other countries, or both.</small>
-	</p>
-</body>
-</html>
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.sdk.branding/plugin.properties b/lrparser/org.eclipse.cdt.core.lrparser.sdk.branding/plugin.properties
deleted file mode 100644
index 9bc8027..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.sdk.branding/plugin.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2009 IBM Corporation and others.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-pluginName=C/C++ C99 LR Parser SDK
-providerName=Eclipse CDT
\ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.sdk.feature/.project b/lrparser/org.eclipse.cdt.core.lrparser.sdk.feature/.project
deleted file mode 100644
index a3acfb3..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.sdk.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.cdt.core.lrparser.sdk.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.sdk.feature/build.properties b/lrparser/org.eclipse.cdt.core.lrparser.sdk.feature/build.properties
deleted file mode 100644
index 9fb4480..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.sdk.feature/build.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2009 IBM Corporation and others.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = feature.xml,\
-               feature.properties
-
-generate.feature@org.eclipse.cdt.core.lrparser.source = org.eclipse.cdt.core.lrparser.feature
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.sdk.feature/feature-no-source.properties b/lrparser/org.eclipse.cdt.core.lrparser.sdk.feature/feature-no-source.properties
deleted file mode 100644
index 8c2b2f7..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.sdk.feature/feature-no-source.properties
+++ /dev/null
@@ -1 +0,0 @@
-# This file tells the Maven build to not generate sources for this feature
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.sdk.feature/feature.properties b/lrparser/org.eclipse.cdt.core.lrparser.sdk.feature/feature.properties
deleted file mode 100644
index dd4f016..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.sdk.feature/feature.properties
+++ /dev/null
@@ -1,36 +0,0 @@
-###############################################################################
-# Copyright (c) 2009, 2010 IBM Corporation and others.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=C/C++ C99 LR Parser SDK
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse CDT
-
-# "description" property - description of the feature
-description=Parser and language support for the C99 variant of the C programming language. Software development kit including source code and developer documentation.
-
-# copyright
-copyright=\
-Copyright (c) 2006, 2011 IBM Corporation and others.\n\
-This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License 2.0\n\
-which accompanies this distribution, and is available at\n\
-https://www.eclipse.org/legal/epl-2.0/
-
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.sdk.feature/feature.xml b/lrparser/org.eclipse.cdt.core.lrparser.sdk.feature/feature.xml
deleted file mode 100644
index e453816..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.sdk.feature/feature.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.cdt.core.lrparser.sdk"
-      label="%featureName"
-      version="10.0.0.qualifier"
-      provider-name="%providerName"
-      plugin="org.eclipse.cdt.core.lrparser.sdk.branding"
-      license-feature="org.eclipse.license"
-      license-feature-version="0.0.0">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="%licenseURL">
-      %license
-   </license>
-
-   <includes
-         id="org.eclipse.cdt.core.lrparser.feature.source"
-         version="0.0.0"/>
-
-   <includes
-         id="org.eclipse.cdt.core.lrparser.feature"
-         version="0.0.0"/>
-
-   <plugin
-         id="org.eclipse.cdt.core.lrparser.sdk.branding"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/.classpath b/lrparser/org.eclipse.cdt.core.lrparser.tests/.classpath
deleted file mode 100644
index eca7bdb..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/.project b/lrparser/org.eclipse.cdt.core.lrparser.tests/.project
deleted file mode 100644
index 23cd5c3..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.cdt.core.lrparser.tests</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/.settings/org.eclipse.jdt.core.prefs b/lrparser/org.eclipse.cdt.core.lrparser.tests/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index ad05599..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,464 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch, *.xtend
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.mainOnlyProjectHasTestOnlyDependency=error
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.APILeak=warning
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=ignore
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
-org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=ignore
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=ignore
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
-org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
-org.eclipse.jdt.core.formatter.align_with_spaces=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
-org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped=true
-org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=true
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
-org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/.settings/org.eclipse.jdt.launching.prefs b/lrparser/org.eclipse.cdt.core.lrparser.tests/.settings/org.eclipse.jdt.launching.prefs
deleted file mode 100644
index f8a131b..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/.settings/org.eclipse.jdt.launching.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.launching.PREF_COMPILER_COMPLIANCE_DOES_NOT_MATCH_JRE=warning
-org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=warning
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/.settings/org.eclipse.jdt.ui.prefs b/lrparser/org.eclipse.cdt.core.lrparser.tests/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index e445763..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,133 +0,0 @@
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_missing_override_annotations_interface_methods=true
-cleanup.add_serial_version_id=false
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_functional_interfaces=false
-cleanup.convert_to_enhanced_for_loop=false
-cleanup.correct_indentation=false
-cleanup.format_source_code=true
-cleanup.format_source_code_changes_only=false
-cleanup.insert_inferred_type_arguments=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=true
-cleanup.qualify_static_field_accesses_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=false
-cleanup.qualify_static_method_accesses_with_declaring_class=false
-cleanup.remove_private_constructors=true
-cleanup.remove_redundant_modifiers=false
-cleanup.remove_redundant_semicolons=true
-cleanup.remove_redundant_type_arguments=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=false
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_anonymous_class_creation=false
-cleanup.use_blocks=false
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_lambda=true
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup_profile=_CDT
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_CDT
-formatter_settings_version=14
-internal.default.compliance=user
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.ondemandthreshold=1000
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.staticondemandthreshold=1000
-org.eclipse.jdt.ui.text.custom_code_templates=
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_functional_interfaces=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.insert_inferred_type_arguments=false
-sp_cleanup.make_local_variable_final=true
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_redundant_modifiers=false
-sp_cleanup.remove_redundant_semicolons=true
-sp_cleanup.remove_redundant_type_arguments=true
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=true
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_anonymous_class_creation=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_lambda=true
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/.settings/org.eclipse.pde.api.tools.prefs b/lrparser/org.eclipse.cdt.core.lrparser.tests/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index ec9fbf3..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,184 +0,0 @@
-ANNOTATION_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITH_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-API_USE_SCAN_FIELD_SEVERITY=Error
-API_USE_SCAN_METHOD_SEVERITY=Error
-API_USE_SCAN_TYPE_SEVERITY=Error
-CLASS_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERCLASS_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_CHANGED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENTS=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETERS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_ANNOTATION=Ignore
-INVALID_JAVADOC_TAG=Error
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Warning
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-MISSING_EE_DESCRIPTIONS=Warning
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-automatically_removed_unused_problem_filters=false
-changed_execution_env=Error
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-incompatible_api_component_version_report_major_without_breaking_change=Warning
-incompatible_api_component_version_report_minor_without_api_change=Warning
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/.settings/org.eclipse.pde.prefs b/lrparser/org.eclipse.cdt.core.lrparser.tests/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 51a63ec..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,35 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.build.bin.includes=1
-compilers.p.build.encodings=2
-compilers.p.build.java.compiler=2
-compilers.p.build.java.compliance=1
-compilers.p.build.missing.output=2
-compilers.p.build.output.library=1
-compilers.p.build.source.library=1
-compilers.p.build.src.includes=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=1
-compilers.p.missing-packages=2
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=2
-compilers.p.missing-version-require-bundle=2
-compilers.p.no-required-att=0
-compilers.p.no.automatic.module=1
-compilers.p.not-externalized-att=2
-compilers.p.service.component.without.lazyactivation=1
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/META-INF/MANIFEST.MF b/lrparser/org.eclipse.cdt.core.lrparser.tests/META-INF/MANIFEST.MF
deleted file mode 100644
index 20777cf..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,16 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Bundle-Name.0
-Bundle-SymbolicName: org.eclipse.cdt.core.lrparser.tests
-Bundle-Version: 5.2.0.qualifier
-Require-Bundle: org.eclipse.core.runtime,
- org.junit,
- org.eclipse.cdt.core.tests,
- org.eclipse.cdt.core,
- org.eclipse.core.resources,
- org.eclipse.cdt.core.lrparser;bundle-version="4.0.1"
-Export-Package: org.eclipse.cdt.core.lrparser.tests
-Bundle-Vendor: %Bundle-Vendor.0
-Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Automatic-Module-Name: org.eclipse.cdt.core.lrparser.tests
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/about.html b/lrparser/org.eclipse.cdt.core.lrparser.tests/about.html
deleted file mode 100644
index 164f781..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
-	<h2>About This Content</h2>
-
-	<p>November 30, 2017</p>
-	<h3>License</h3>
-
-	<p>
-		The Eclipse Foundation makes available all content in this plug-in
-		(&quot;Content&quot;). Unless otherwise indicated below, the Content
-		is provided to you under the terms and conditions of the Eclipse
-		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
-		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>
-		If you did not receive this Content directly from the Eclipse
-		Foundation, the Content is being redistributed by another party
-		(&quot;Redistributor&quot;) and different terms and conditions may
-		apply to your use of any object code in the Content. Check the
-		Redistributor's license that was provided with the Content. If no such
-		license exists, contact the Redistributor. Unless otherwise indicated
-		below, the terms and conditions of the EPL still apply to any source
-		code in the Content and such source code may be obtained at <a
-			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
-	</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/build.properties b/lrparser/org.eclipse.cdt.core.lrparser.tests/build.properties
deleted file mode 100644
index 2efd697..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/build.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-###############################################################################
-#  Copyright (c) 2007, 2009 IBM Corporation and others.
-#
-#  This program and the accompanying materials
-#  are made available under the terms of the Eclipse Public License 2.0
-#  which accompanies this distribution, and is available at
-#  https://www.eclipse.org/legal/epl-2.0/
-#
-#  SPDX-License-Identifier: EPL-2.0
-#
-#  Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               about.html,\
-               plugin.properties
-src.includes = about.html
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/plugin.properties b/lrparser/org.eclipse.cdt.core.lrparser.tests/plugin.properties
deleted file mode 100644
index d2af05f..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/plugin.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-#  Copyright (c) 2007, 2009 IBM Corporation and others.
-#
-#  This program and the accompanying materials
-#  are made available under the terms of the Eclipse Public License 2.0
-#  which accompanies this distribution, and is available at
-#  https://www.eclipse.org/legal/epl-2.0/
-#
-#  SPDX-License-Identifier: EPL-2.0
-#
-#  Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# properties file for org.eclipse.cdt.core.parser.c99.tests
-Bundle-Vendor.0 = Eclipse CDT
-Bundle-Name.0 = C99 Parser Tests Plug-in
-
-upcSourceName=UPC Source File
\ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/AbstractLRHangingTest.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/AbstractLRHangingTest.java
deleted file mode 100644
index c62e1f7..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/AbstractLRHangingTest.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2010, 2015 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.tests;
-
-import org.eclipse.cdt.core.dom.ast.IASTCompletionNode;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GCCLanguage;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-
-import junit.framework.TestCase;
-
-public class AbstractLRHangingTest extends TestCase {
-
-	public AbstractLRHangingTest() {
-	}
-
-	public AbstractLRHangingTest(String name) {
-		super(name);
-	}
-
-	protected ILanguage getCLanguage() {
-		return GCCLanguage.getDefault();
-	}
-
-	protected ILanguage getCPPLanguage() {
-		return GPPLanguage.getDefault();
-	}
-
-	protected void runThreadByLimitedTime(long limitTime, Thread testThread) throws Exception {
-		testThread.start();
-		testThread.join(limitTime);
-
-		if (testThread.isAlive()) {
-			testThread.interrupt();
-			fail("timeout by " + limitTime / 1000 + " seconds"); //$NON-NLS-2$
-		} else {
-			// Finished
-		}
-	}
-
-	// 1mins
-	public static long THREAD_TIMEOUT_LIMIT = 1 * 60 * 1000;
-	public static String CONTENT_ASIST_CURSOR = " /*<ctrl-space>*/ ";
-
-	private String errMsg = "";
-
-	public void resetErrMsg() {
-		errMsg = "";
-	}
-
-	public void setErrMsg(String errMsg) {
-		this.errMsg = errMsg;
-	}
-
-	protected void runTestCase(final String code, final ILanguage language) throws Exception {
-
-		Thread testThread = new Thread() {
-
-			@Override
-			public void run() {
-
-				String errMsg = "";
-				resetErrMsg();
-				String msg = null;
-				int offset = code.indexOf(CONTENT_ASIST_CURSOR);
-				int index = 0;
-				while (offset >= 0) {
-
-					IASTCompletionNode node = null;
-					try {
-						node = ParseHelper.getCompletionNode(code, language, offset);
-					} catch (Exception e) {
-						if (errMsg.length() == 0) {
-							errMsg = "caught an exception when the code is parsed for cursor number " + index;
-						} else {
-							errMsg = errMsg + "\n" + "caught an exception when the code is parsed for cursor number "
-									+ index;
-						}
-
-					}
-					if (node == null) {
-						if (errMsg.length() == 0) {
-							errMsg = "return completion node is null when the code is parsed for cursor number "
-									+ index;
-						} else {
-							errMsg = errMsg + "\n"
-									+ "return completion node is null when the code is parsed for cursor number "
-									+ index;
-						}
-
-					}
-					offset = code.indexOf(CONTENT_ASIST_CURSOR, offset + 1);
-					index++;
-				}
-				setErrMsg(errMsg);
-
-			}
-
-		};
-
-		runThreadByLimitedTime(THREAD_TIMEOUT_LIMIT, testThread);
-		if (errMsg.length() > 0) {
-			//fail(errMsg);
-		}
-
-	}
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/AutomatedIntegrationSuite.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/AutomatedIntegrationSuite.java
deleted file mode 100644
index 2fa9ff8..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/AutomatedIntegrationSuite.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2010 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.tests;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class AutomatedIntegrationSuite extends TestSuite {
-
-	// TODO: the following test are not being reused
-	//
-	// DOMGCCSelectionParseExtensionsTest
-	// DOMSelectionParseTest
-	// GCCCompleteParseExtensionsTest
-	// QuickParser2Tests
-	//
-	// and perhaps others
-
-	public static Test suite() {
-		return new TestSuite() {
-			{
-
-				addTest(LRCommentTests.suite());
-				addTest(LRCompleteParser2Tests.suite());
-				addTest(LRCompletionBasicTest.suite());
-				addTest(LRCompletionParseTest.suite());
-				addTest(LRCPPSpecTest.suite());
-				addTest(LRCPPTests.suite());
-				addTest(LRCSpecTests.suite()); // a couple of failures
-				addTest(LRDigraphTrigraphTests.suite());
-				addTest(LRDOMLocationMacroTests.suite());
-				addTest(LRDOMLocationTests.suite());
-				addTest(LRDOMPreprocessorInformationTest.suite());
-				addTest(LRGCCTests.suite());
-				addTest(LRGCCCompleteParseExtensionsTest.suite());
-				addTest(LRImageLocationTests.suite());
-				addTest(LRKnRTests.suite()); // mostly fail due to ambiguities
-				addTest(LRNodeSelectorTest.suite());
-				addTestSuite(LRQuickParser2Tests.class);
-				addTest(LRSelectionParseTest.suite()); // this one still has a lot of failing tests though
-				addTest(LRSemanticsTests.suite());
-				addTest(LRTaskParserTest.suite());
-				addTest(LRTemplateTests.suite());
-				addTest(LRTests.suite()); // has some tests that do fail
-				addTest(LRUtilOldTests.suite());
-				addTest(LRUtilTests.suite());
-				addTest(LRCompletionHangingTest.suite());
-				addTest(LRCPPImplicitNameTests.suite());
-				//addTest(LRInactiveCodeTests.suite());
-
-			}
-		};
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCPPImplicitNameTests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCPPImplicitNameTests.java
deleted file mode 100644
index 3419540..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCPPImplicitNameTests.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2013 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.tests;
-
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GCCLanguage;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-import org.eclipse.cdt.core.parser.ParserLanguage;
-import org.eclipse.cdt.core.parser.tests.ast2.AST2CPPImplicitNameTests;
-
-import junit.framework.TestSuite;
-
-public class LRCPPImplicitNameTests extends AST2CPPImplicitNameTests {
-
-	public static TestSuite suite() {
-		return suite(LRCPPImplicitNameTests.class);
-	}
-
-	public LRCPPImplicitNameTests() {
-	}
-
-	public LRCPPImplicitNameTests(String name) {
-		super(name);
-	}
-
-	//TODO ??? overwrite some failed test cases
-	@Override
-	public void testNew() throws Exception {
-	}
-
-	@Override
-	protected IASTTranslationUnit parse(String code, ParserLanguage lang,
-			@SuppressWarnings("unused") boolean useGNUExtensions, boolean expectNoProblems,
-			int limitTrivialInitializers) {
-		ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
-		ParseHelper.Options options = new ParseHelper.Options();
-		options.setCheckSyntaxProblems(expectNoProblems);
-		options.setCheckPreprocessorProblems(expectNoProblems);
-		options.setLimitTrivialInitializers(limitTrivialInitializers);
-		return ParseHelper.parse(code, language, options);
-	}
-
-	protected ILanguage getCLanguage() {
-		return GCCLanguage.getDefault();
-	}
-
-	protected ILanguage getCPPLanguage() {
-		return GPPLanguage.getDefault();
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCPPSpecTest.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCPPSpecTest.java
deleted file mode 100644
index 55cc830..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCPPSpecTest.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2013 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.tests;
-
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GCCLanguage;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-import org.eclipse.cdt.core.parser.ParserLanguage;
-import org.eclipse.cdt.core.parser.tests.ast2.AST2CPPSpecTest;
-import org.eclipse.cdt.internal.core.parser.ParserException;
-
-import junit.framework.TestSuite;
-
-@SuppressWarnings("restriction")
-public class LRCPPSpecTest extends AST2CPPSpecTest {
-
-	public static TestSuite suite() {
-		return suite(LRCPPSpecTest.class);
-	}
-
-	public LRCPPSpecTest() {
-	}
-
-	public LRCPPSpecTest(String name) {
-		super(name);
-	}
-
-	//TODO ??? overwrite some failed test cases
-	@Override
-	public void test7_1_3s5b() throws Exception {
-	}
-
-	@Override
-	public void test8_2s7a() throws Exception {
-	}
-
-	@Override
-	public void test8_2s7b() throws Exception {
-	}
-
-	@Override
-	public void test14_8_2s8a() throws Exception {
-	}
-
-	@Override
-	public void test14_8_2_1s1a() throws Exception {
-	}
-
-	@Override
-	public void test14_8_2_1s1b() throws Exception {
-	}
-
-	@Override
-	public void test14_8_2_1s3() throws Exception {
-	}
-
-	@Override
-	public void test14_8_2_4s12() throws Exception {
-	}
-
-	@Override
-	public void test14_8_2_5s5() throws Exception {
-	}
-
-	@Override
-	public void test14_8_2_5s10() throws Exception {
-	}
-
-	@Override
-	public void test14_8_2_4s21() throws Exception {
-	}
-
-	@Override
-	public void test14_8_2_5s22() throws Exception {
-	}
-
-	@Override
-	protected void parseCandCPP(String code, boolean checkBindings, int expectedProblemBindings)
-			throws ParserException {
-		parse(code, ParserLanguage.C, checkBindings, expectedProblemBindings);
-		parse(code, ParserLanguage.CPP, checkBindings, expectedProblemBindings);
-	}
-
-	@Override
-	protected IASTTranslationUnit parseWithErrors(String code, ParserLanguage lang) throws ParserException {
-		ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
-		ParseHelper.Options options = new ParseHelper.Options();
-		options.setCheckBindings(false);
-		options.setCheckPreprocessorProblems(false);
-		options.setCheckSyntaxProblems(false);
-		return ParseHelper.parse(code, language, options);
-	}
-
-	@Override
-	protected IASTTranslationUnit parse(String code, ParserLanguage lang, boolean checkBindings,
-			int expectedProblemBindings) throws ParserException {
-		ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
-		ParseHelper.Options options = new ParseHelper.Options();
-		options.setCheckBindings(checkBindings);
-		options.setExpectedProblemBindings(expectedProblemBindings);
-		return ParseHelper.parse(code, language, options);
-	}
-
-	@Override
-	protected IASTTranslationUnit parse(String code, ParserLanguage lang,
-			@SuppressWarnings("unused") boolean useGNUExtensions, boolean expectNoProblems,
-			int limitTrivialInitializers) throws ParserException {
-		ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
-		ParseHelper.Options options = new ParseHelper.Options();
-		options.setCheckSyntaxProblems(expectNoProblems);
-		options.setCheckPreprocessorProblems(expectNoProblems);
-		options.setLimitTrivialInitializers(limitTrivialInitializers);
-		return ParseHelper.parse(code, language, options);
-	}
-
-	@Override
-	protected IASTTranslationUnit parse(String code, ParserLanguage lang, String[] problems) throws ParserException {
-		ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
-		ParseHelper.Options options = new ParseHelper.Options();
-		options.setProblems(problems);
-		return ParseHelper.parse(code, language, options);
-	}
-
-	protected ILanguage getCLanguage() {
-		return GCCLanguage.getDefault();
-	}
-
-	protected ILanguage getCPPLanguage() {
-		return GPPLanguage.getDefault();
-	}
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCPPTests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCPPTests.java
deleted file mode 100644
index fb70447..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCPPTests.java
+++ /dev/null
@@ -1,331 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2015 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.tests;
-
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GCCLanguage;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-import org.eclipse.cdt.core.parser.ParserLanguage;
-import org.eclipse.cdt.core.parser.tests.ast2.AST2CPPTests;
-import org.eclipse.cdt.internal.core.parser.ParserException;
-
-import junit.framework.TestSuite;
-
-@SuppressWarnings("restriction")
-public class LRCPPTests extends AST2CPPTests {
-
-	public static TestSuite suite() {
-		return suite(LRCPPTests.class);
-	}
-
-	public LRCPPTests() {
-	}
-
-	public LRCPPTests(String name) {
-		super(name);
-	}
-
-	//the below test case are for C++0x features which are not included in XLC++ yet
-
-	@Override
-	public void testRValueReference_294730() throws Exception {
-	}
-
-	@Override
-	public void testRValueReferenceTypedefs_294730() throws Exception {
-	}
-
-	@Override
-	public void testDirectBinding_294730() throws Exception {
-	}
-
-	@Override
-	public void testListInitialization_302412a() throws Exception {
-	}
-
-	@Override
-	public void testListInitialization_302412b() throws Exception {
-	}
-
-	@Override
-	public void testListInitialization_302412c() throws Exception {
-	}
-
-	@Override
-	public void testListInitialization_302412d() throws Exception {
-	}
-
-	@Override
-	public void testListInitialization_302412e() throws Exception {
-	}
-
-	@Override
-	public void testListInitialization_302412f() throws Exception {
-	}
-
-	@Override
-	public void testScopedEnums_305975a() throws Exception {
-	}
-
-	@Override
-	public void testScopedEnums_305975b() throws Exception {
-	}
-
-	@Override
-	public void testScopedEnums_305975c() throws Exception {
-	}
-
-	@Override
-	public void testScopedEnums_305975d() throws Exception {
-	}
-
-	@Override
-	public void testScopedEnums_305975e() throws Exception {
-	}
-
-	@Override
-	public void testScopedEnums_305975g() throws Exception {
-	}
-
-	@Override
-	public void testBug332114b() throws Exception {
-	}
-
-	//unicode character type
-	@Override
-	public void testNewCharacterTypes_305976() throws Exception {
-	}
-
-	//auto type
-	@Override
-	public void testAutoType_289542() throws Exception {
-	}
-
-	@Override
-	public void testAutoType_305970() throws Exception {
-	}
-
-	@Override
-	public void testAutoType_305987() throws Exception {
-	}
-
-	@Override
-	public void testNewFunctionDeclaratorSyntax_305972() throws Exception {
-	}
-
-	@Override
-	public void testBug332114a() throws Exception {
-	}
-
-	@Override
-	public void testResolutionInTrailingReturnType_333256() throws Exception {
-	}
-
-	@Override
-	public void testAutoTypeInRangeBasedFor_332883a() throws Exception {
-	}
-
-	@Override
-	public void testAutoTypeInRangeBasedFor_332883b() throws Exception {
-	}
-
-	//DeclType
-	@Override
-	public void testDecltype_294730() throws Exception {
-	}
-
-	//Defaulted and deleted functions
-	@Override
-	public void testDefaultedAndDeletedFunctions_305978() throws Exception {
-	}
-
-	@Override
-	public void testDefaultedAndDeletedFunctions_305978b() throws Exception {
-	}
-
-	//Inline namespaces
-	@Override
-	public void testInlineNamespace_305980a() throws Exception {
-	}
-
-	@Override
-	public void testInlineNamespace_305980b() throws Exception {
-	}
-
-	@Override
-	public void testInlineNamespace_305980c() throws Exception {
-	}
-
-	@Override
-	public void testInlineNamespace_305980d() throws Exception {
-	}
-
-	//New wording for C++0x lambdas
-	@Override
-	public void testLambdaExpression_316307a() throws Exception {
-	}
-
-	@Override
-	public void testLambdaExpression_316307b() throws Exception {
-	}
-
-	//xvalue
-	@Override
-	public void testXValueCategories() throws Exception {
-	}
-
-	@Override
-	public void testRankingOfReferenceBindings_a() throws Exception {
-	}
-
-	@Override
-	public void testRankingOfReferenceBindings_b() throws Exception {
-	}
-
-	@Override
-	public void testInlineNamespaceLookup_324096() throws Exception {
-	}
-
-	@Override
-	public void testCtorForAutomaticVariables_156668() throws Exception {
-	}
-
-	@Override
-	public void testRangeBasedForLoop_327223() throws Exception {
-	}
-
-	//TODO ??? overwrite some failed test cases
-	@Override
-	public void testOrderOfAmbiguityResolution_259373() throws Exception {
-	}
-
-	@Override
-	public void testPureVirtualVsInitDeclarator_267184() throws Exception {
-	}
-
-	@Override
-	public void testDeclarationAmbiguity_269953() throws Exception {
-	}
-
-	@Override
-	public void testInitSyntax_302412() throws Exception {
-	}
-
-	@Override
-	public void testStaticAssertions_294730() throws Exception {
-	}
-
-	//outer::foo x
-	@Override
-	public void testAttributeInUsingDirective_351228() throws Exception {
-	}
-
-	@Override
-	protected IASTTranslationUnit parse(String code, ParserLanguage lang,
-			@SuppressWarnings("unused") boolean useGNUExtensions, boolean expectNoProblems,
-			int limitTrivialInitializers) throws ParserException {
-		ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
-		ParseHelper.Options options = new ParseHelper.Options();
-		options.setCheckSyntaxProblems(expectNoProblems);
-		options.setCheckPreprocessorProblems(expectNoProblems);
-		options.setLimitTrivialInitializers(limitTrivialInitializers);
-		return ParseHelper.parse(code, language, options);
-	}
-
-	protected ILanguage getCLanguage() {
-		return GCCLanguage.getDefault();
-	}
-
-	protected ILanguage getCPPLanguage() {
-		return GPPLanguage.getDefault();
-	}
-
-	@Override
-	public void testBug98704() throws Exception {
-		// this one gets stuck in infinite loop
-
-	}
-
-	//    @Override
-	//	public void testBug87424() throws Exception { // gcc extension
-	//    	try {
-	//    		super.testBug87424();
-	//    		fail();
-	//    	} catch(AssertionFailedError _) {
-	//    	}
-	//    }
-	//
-	//
-	//    @Override
-	//	public void testBug95757() throws Exception { // gcc extension
-	//    	try {
-	//    		super.testBug95757();
-	//    		fail();
-	//    	} catch(AssertionFailedError _) {
-	//    	}
-	//    }
-	//
-	//    @Override
-	//	public void testBug108202() throws Exception { // gcc attributes not supported
-	//    	try {
-	//    		super.testBug108202();
-	//    		fail();
-	//    	} catch(AssertionFailedError _) {
-	//    	}
-	//    }
-	//
-	//
-	//    @Override
-	//	public void testBug195701() throws Exception { // gcc attributes not supported
-	//    	try {
-	//    		super.testBug195701();
-	//    		fail();
-	//    	} catch(AssertionFailedError _) {
-	//    	}
-	//    }
-	//
-	//    @Override
-	//	public void testBug179712() throws Exception { // gcc attributes not supported
-	//    	try {
-	//    		super.testBug179712();
-	//    		fail();
-	//    	} catch(AssertionFailedError _) {
-	//    	}
-	//    }
-	//
-	//    @Override
-	//    public void testBug240567() throws Exception { // gcc
-	//    	try {
-	//    		super.testBug240567();
-	//    		fail();
-	//    	} catch(AssertionFailedError _) {
-	//    	}
-	//    }
-	//
-	//    @Override
-	//    public void testLiteralsViaOverloads_225534() throws Exception { // gcc, I think
-	//    	try {
-	//    		super.testLiteralsViaOverloads_225534();
-	//    		fail();
-	//    	} catch(AssertionFailedError _) {
-	//    	}
-	//    }
-
-	@Override
-	public void testNestedTemplateIDAmbiguity_259501() throws Exception {
-		// this test hangs, not sure I'll ever fix it
-	}
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCSpecTests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCSpecTests.java
deleted file mode 100644
index 72b7051..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCSpecTests.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2009 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.tests;
-
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GCCLanguage;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-import org.eclipse.cdt.core.parser.ParserLanguage;
-import org.eclipse.cdt.core.parser.tests.ast2.AST2CSpecTest;
-import org.eclipse.cdt.internal.core.parser.ParserException;
-
-import junit.framework.TestSuite;
-
-@SuppressWarnings({ "restriction", "nls" })
-public class LRCSpecTests extends AST2CSpecTest {
-
-	public static TestSuite suite() {
-		return suite(LRCSpecTests.class);
-	}
-
-	public LRCSpecTests() {
-	}
-
-	public LRCSpecTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void parseCandCPP(String code, boolean checkBindings, int expectedProblemBindings)
-			throws ParserException {
-		parse(code, ParserLanguage.C, checkBindings, expectedProblemBindings);
-		parse(code, ParserLanguage.CPP, checkBindings, expectedProblemBindings);
-	}
-
-	@Override
-	protected IASTTranslationUnit parse(String code, ParserLanguage lang, boolean checkBindings,
-			int expectedProblemBindings) throws ParserException {
-		ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
-		ParseHelper.Options options = new ParseHelper.Options();
-		options.setCheckSyntaxProblems(true);
-		options.setCheckPreprocessorProblems(true);
-		options.setCheckBindings(checkBindings);
-		options.setExpectedProblemBindings(expectedProblemBindings);
-		return ParseHelper.parse(code, language, options);
-	}
-
-	@Override
-	protected IASTTranslationUnit parse(String code, ParserLanguage lang, String[] problems) throws ParserException {
-		ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
-		ParseHelper.Options options = new ParseHelper.Options();
-		options.setProblems(problems);
-		options.setCheckSyntaxProblems(true);
-		options.setCheckPreprocessorProblems(true);
-		return ParseHelper.parse(code, language, options);
-	}
-
-	protected ILanguage getCLanguage() {
-		return GCCLanguage.getDefault();
-	}
-
-	protected ILanguage getCPPLanguage() {
-		return GPPLanguage.getDefault();
-	}
-
-	@Override // example code needs to be nested in a function body
-	public void test5_1_2_3s15() throws Exception {
-		String code = "//#include <stdio.h>\n" + "int foo() { \n" + "int sum;\n" + "char *p;\n"
-				+ "sum = sum * 10 - '0' + (*p++ = getchar());\n"
-				+ "sum = (((sum * 10) - '0') + ((*(p++)) = (getchar())));\n" + "} \n";
-
-		parseCandCPP(code, false, 0);
-	}
-
-	//	@Override
-	//	public void test6_7_2_1s17() throws Exception { // what the heck is offsetof
-	//		try {
-	//			super.test6_7_2_1s17();
-	//			fail();
-	//		} catch(AssertionFailedError _) { }
-	//	}
-
-	public void testBug276360() throws Exception {
-		String code = "int foo(int*[]) {}	";
-
-		parseCandCPP(code, false, 0);
-	}
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCommentTests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCommentTests.java
deleted file mode 100644
index c630db7..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCommentTests.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2013 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.tests;
-
-import org.eclipse.cdt.core.dom.ast.IASTComment;
-import org.eclipse.cdt.core.dom.ast.IASTFileLocation;
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GCCLanguage;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-import org.eclipse.cdt.core.parser.ParserLanguage;
-import org.eclipse.cdt.core.parser.tests.ast2.CommentTests;
-import org.eclipse.cdt.internal.core.parser.ParserException;
-
-import junit.framework.TestSuite;
-
-@SuppressWarnings("restriction")
-public class LRCommentTests extends CommentTests {
-
-	public static TestSuite suite() {
-		return suite(LRCommentTests.class);
-	}
-
-	@Override
-	@SuppressWarnings("unused")
-	protected IASTTranslationUnit parse(String code, ParserLanguage lang, boolean useGNUExtensions,
-			boolean expectNoProblems) throws ParserException {
-		ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
-		return ParseHelper.parse(code, language, expectNoProblems);
-	}
-
-	@Override
-	@SuppressWarnings("unused")
-	protected IASTTranslationUnit parse(String code, ParserLanguage lang, boolean useGNUExtensions,
-			boolean expectNoProblems, int limitTrivialInitializers) throws ParserException {
-
-		ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
-		ParseHelper.Options options = new ParseHelper.Options();
-		options.setCheckSyntaxProblems(expectNoProblems);
-		options.setCheckPreprocessorProblems(expectNoProblems);
-		options.setLimitTrivialInitializers(limitTrivialInitializers);
-		return ParseHelper.commentParse(code, language);
-	}
-
-	protected ILanguage getCLanguage() {
-		return GCCLanguage.getDefault();
-	}
-
-	protected ILanguage getCPPLanguage() {
-		return GPPLanguage.getDefault();
-	}
-
-	@SuppressWarnings("nls")
-	public void testBug191266() throws Exception {
-		String code = "#define MACRO 1000000000000  \n" + "int x = MACRO;  \n" + "//comment\n";
-
-		IASTTranslationUnit tu = parse(code, ParserLanguage.C, false, false, 0);
-
-		IASTComment[] comments = tu.getComments();
-		assertEquals(1, comments.length);
-
-		IASTFileLocation location = comments[0].getFileLocation();
-		assertEquals(code.indexOf("//"), location.getNodeOffset());
-		assertEquals("//comment".length(), location.getNodeLength());
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCompleteParser2Tests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCompleteParser2Tests.java
deleted file mode 100644
index fed0710..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCompleteParser2Tests.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2009 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.tests;
-
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GCCLanguage;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-import org.eclipse.cdt.core.parser.ParserLanguage;
-import org.eclipse.cdt.core.parser.tests.ast2.CompleteParser2Tests;
-
-import junit.framework.AssertionFailedError;
-import junit.framework.TestSuite;
-
-public class LRCompleteParser2Tests extends CompleteParser2Tests {
-
-	public static TestSuite suite() {
-		return suite(LRCompleteParser2Tests.class);
-	}
-
-	public LRCompleteParser2Tests() {
-	}
-
-	public LRCompleteParser2Tests(String name) {
-		super(name);
-	}
-
-	@Override
-	@SuppressWarnings("unused")
-	protected IASTTranslationUnit parse(String code, boolean expectedToPass, ParserLanguage lang, boolean gcc)
-			throws Exception {
-		ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
-		return ParseHelper.parse(code, language, expectedToPass);
-	}
-
-	protected ILanguage getCLanguage() {
-		return GCCLanguage.getDefault();
-	}
-
-	protected ILanguage getCPPLanguage() {
-		return GPPLanguage.getDefault();
-	}
-
-	// Tests that are failing at this point
-
-	//	@Override
-	//	public void testBug39676_tough() { // is this C99?
-	//		try {
-	//			super.testBug39676_tough();
-	//		} catch(AssertionFailedError expectedException) {
-	//			return;
-	//		} catch(Exception expectedException) {
-	//			return;
-	//		}
-	//		fail();
-	//	}
-
-	//	public void testPredefinedSymbol_bug70928_infinite_loop_test1() throws Exception { // gcc extension
-	//		try {
-	//			super.testPredefinedSymbol_bug70928_infinite_loop_test1();
-	//			fail();
-	//		} catch(AssertionError expectedException) { }
-	//	}
-	//
-	//	public void testPredefinedSymbol_bug70928_infinite_loop_test2() throws Exception { // gcc extension
-	//		try {
-	//			super.testPredefinedSymbol_bug70928_infinite_loop_test2();
-	//			fail();
-	//		} catch(AssertionError expectedException) { }
-	//	}
-
-	//	@Override
-	//	public void testBug102376() throws Exception { // gcc extension
-	//		try {
-	//			super.testBug102376();
-	//			fail();
-	//		} catch(AssertionFailedError expectedException) { }
-	//	}
-
-	//	@Override
-	//	public void test158192_declspec_in_declarator() throws Exception {
-	//		try {
-	//			super.test158192_declspec_in_declarator();
-	//			fail();
-	//		} catch(AssertionFailedError expectedException) { }
-	//	}
-	//
-	//	@Override
-	//	public void test158192_declspec_on_class() throws Exception {
-	//		try {
-	//			super.test158192_declspec_on_class();
-	//			fail();
-	//		} catch(AssertionFailedError expectedException) { }
-	//	}
-	//
-	//	@Override
-	//	public void test158192_declspec_on_variable() throws Exception {
-	//		try {
-	//			super.test158192_declspec_on_variable();
-	//			fail();
-	//		} catch(AssertionFailedError expectedException) { }
-	//	}
-	//
-	//	@Override
-	//	public void testPredefinedSymbol_bug70928() throws Exception {
-	//		try {
-	//			super.testPredefinedSymbol_bug70928();
-	//			fail();
-	//		} catch(AssertionFailedError expectedException) { }
-	//	}
-
-	@Override
-	public void testBug64010() throws Exception { // 10000 else-ifs, busts LPG's stack
-		try {
-			//super.testBug64010();
-			//fail();
-		} catch (AssertionFailedError expectedException) {
-		}
-	}
-
-	//
-	//	@Override
-	//	public void testGNUASMExtension() throws Exception {
-	//		try {
-	//			super.testGNUASMExtension();
-	//			fail();
-	//		} catch(AssertionFailedError expectedException) {
-	//		} catch(AssertionError expectedException) {
-	//		}
-	//	}
-	//
-	//	@Override
-	//	public void testBug39551B() throws Exception {
-	//		try {
-	//			super.testBug39551B();
-	//			fail();
-	//		} catch(AssertionFailedError expectedException) { }
-	//	}
-	//
-	//
-	//
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCompletionBasicTest.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCompletionBasicTest.java
deleted file mode 100644
index c1d6bb9..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCompletionBasicTest.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2013 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.tests;
-
-import org.eclipse.cdt.core.dom.ast.IASTCompletionNode;
-import org.eclipse.cdt.core.dom.ast.IBinding;
-import org.eclipse.cdt.core.dom.ast.IFunction;
-import org.eclipse.cdt.core.dom.ast.ITypedef;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GCCLanguage;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-import org.eclipse.cdt.core.parser.ParserLanguage;
-import org.eclipse.cdt.core.parser.tests.prefix.BasicCompletionTest;
-import org.eclipse.cdt.internal.core.parser.ParserException;
-
-import junit.framework.TestSuite;
-
-@SuppressWarnings({ "restriction", "nls" })
-public class LRCompletionBasicTest extends BasicCompletionTest {
-
-	public static TestSuite suite() {
-		return new TestSuite(LRCompletionBasicTest.class);
-	}
-
-	public LRCompletionBasicTest() {
-	}
-
-	//override the test failed case for 340664
-	@Override
-	public void testCompletionInSizeof340664() throws Exception {
-	}
-
-	//override some failed test cases
-	@Override
-	public void testBug279931() throws Exception {
-	}
-
-	@Override
-	public void testBug279931a() throws Exception {
-	}
-
-	@Override
-	public void testQualifiedMemberAccess_Bug300139() throws Exception {
-	}
-
-	@Override
-	public void testCastExpression_Bug301933() throws Exception {
-	}
-
-	@Override
-	public void testConditionalOperator_Bug308611() throws Exception {
-	}
-
-	@Override
-	public void testCompletionInDesignatedInitializor_353281a() throws Exception {
-	}
-
-	@Override
-	@SuppressWarnings("unused")
-	protected IASTCompletionNode getCompletionNode(String code, ParserLanguage lang, boolean useGNUExtensions)
-			throws ParserException {
-
-		ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
-		return ParseHelper.getCompletionNode(code, language);
-	}
-
-	protected ILanguage getCLanguage() {
-		return GCCLanguage.getDefault();
-	}
-
-	protected ILanguage getCPPLanguage() {
-		return GPPLanguage.getDefault();
-	}
-
-	@Override
-	public void testFunction() throws Exception {
-		String code = "void func(int x) { }" + "void func2() { fu";
-
-		// C++
-		IASTCompletionNode node = getGPPCompletionNode(code);
-		IBinding[] bindings = LRCompletionParseTest.getBindings(node.getNames());
-
-		assertEquals(2, bindings.length);
-		assertEquals("func", ((IFunction) bindings[0]).getName());
-		assertEquals("func2", ((IFunction) bindings[1]).getName());
-
-		// C
-		node = getGCCCompletionNode(code);
-		bindings = LRCompletionParseTest.getBindings(node.getNames());
-
-		assertEquals(2, bindings.length);
-		assertEquals("func", ((IFunction) bindings[0]).getName());
-		assertEquals("func2", ((IFunction) bindings[1]).getName());
-	}
-
-	@Override
-	public void testTypedef() throws Exception {
-		String code = "typedef int blah;" + "bl";
-
-		// C++
-		IASTCompletionNode node = getGPPCompletionNode(code);
-		IBinding[] bindings = LRCompletionParseTest.getBindings(node.getNames());
-
-		assertEquals(1, bindings.length);
-		assertEquals("blah", ((ITypedef) bindings[0]).getName());
-
-		// C
-		node = getGCCCompletionNode(code);
-		bindings = LRCompletionParseTest.getBindings(node.getNames());
-
-		assertEquals(1, bindings.length);
-		assertEquals("blah", ((ITypedef) bindings[0]).getName());
-	}
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCompletionHangingTest.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCompletionHangingTest.java
deleted file mode 100644
index 4a627c5..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCompletionHangingTest.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2010 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.cdt.core.lrparser.tests;
-
-import junit.framework.TestSuite;
-
-public class LRCompletionHangingTest extends AbstractLRHangingTest {
-
-	public static TestSuite suite() {
-		return new TestSuite(LRCompletionHangingTest.class);
-	}
-
-	//test c
-	public void testCompletionDoWhileForC() throws Exception {
-
-		String code = "int main(int argc, char **argv) {" + "do{" + CONTENT_ASIST_CURSOR + "} while (i < 3);" + "}";
-
-		runTestCase(code, getCLanguage());
-
-	}
-
-	//test cpp
-	public void testCompletionDoWhileForCPP() throws Exception {
-
-		String code = "int main(int argc, char **argv) {" + "do{" + CONTENT_ASIST_CURSOR + "} while (i < 3);" + "}";
-		runTestCase(code, getCPPLanguage());
-	}
-
-	public void testCompletionTryCatch() throws Exception {
-
-		String code = "int main(int argc, char **argv) {" + "try {" + CONTENT_ASIST_CURSOR + "}" +
-
-				"catch(x){}" + "}";
-		runTestCase(code, getCPPLanguage());
-
-	}
-
-	public void testCompletionTemplateFunctionForCPP() throws Exception {
-
-		String code = "template " + CONTENT_ASIST_CURSOR + "<class myType>" + "myType GetA (myType a) {" + "return a;"
-				+ "}" +
-
-				"int main(int argc, char **argv) {" + "int x=0;" + "int y = GetA " + CONTENT_ASIST_CURSOR
-				+ " <int> (x);" + "}";
-		runTestCase(code, getCPPLanguage());
-	}
-
-	public void testCompletionIfForCPP() throws Exception {
-		String code = "int main(int argc, char **argv) {" + "int x=0;" + "if" + CONTENT_ASIST_CURSOR + "(x>0){}" + "}";
-		runTestCase(code, getCPPLanguage());
-
-	}
-
-	public void testCompletionTemplateClassForCPP() throws Exception {
-
-		String code = "template" + CONTENT_ASIST_CURSOR + " <class T> " + "class Test {" + "T val;"
-				+ "public:Test(T arg){" + "val = arg;" + "}" + "~" + CONTENT_ASIST_CURSOR + "Test();" + "};" + "Test::"
-				+ CONTENT_ASIST_CURSOR + "~" + CONTENT_ASIST_CURSOR + "Test(){}" + "int main(int argc, char **argv) {"
-				+ CONTENT_ASIST_CURSOR + "Test<" + CONTENT_ASIST_CURSOR + "int> t(1);" + "Test<" + CONTENT_ASIST_CURSOR
-				+ "double>" + CONTENT_ASIST_CURSOR + "* dt = new dt(1.0);" + "S* s = dynamic_cast<S*"
-				+ CONTENT_ASIST_CURSOR + ">(dt);" + "S* s = dynamic_cast" + CONTENT_ASIST_CURSOR + "<S*>(dt);" + "}";
-		runTestCase(code, getCPPLanguage());
-	}
-
-	public void testCompletionSimpleIfForCPP() throws Exception {
-		String code = "#" + CONTENT_ASIST_CURSOR + "include " + CONTENT_ASIST_CURSOR + "<iostream>" + "using "
-				+ CONTENT_ASIST_CURSOR + "namespace std;" + "if" + CONTENT_ASIST_CURSOR + "(i>0)){}" + "int "
-				+ CONTENT_ASIST_CURSOR + "*" + CONTENT_ASIST_CURSOR + " i " + CONTENT_ASIST_CURSOR + "="
-				+ CONTENT_ASIST_CURSOR + " &" + CONTENT_ASIST_CURSOR + "j;" + "*" + CONTENT_ASIST_CURSOR + "j=0;" + "*"
-				+ CONTENT_ASIST_CURSOR + "j++;" + "*i" + CONTENT_ASIST_CURSOR + "++ = " + CONTENT_ASIST_CURSOR
-				+ "*j++;";
-		runTestCase(code, getCPPLanguage());
-
-	}
-
-	public void testCompletionStructForCPP() throws Exception {
-		String code = "struct " + CONTENT_ASIST_CURSOR + "p " + CONTENT_ASIST_CURSOR + "{" + CONTENT_ASIST_CURSOR
-				+ "int w;" + "float p;" + "} " + CONTENT_ASIST_CURSOR + "a," + CONTENT_ASIST_CURSOR + "b,c;";
-
-		runTestCase(code, getCPPLanguage());
-
-	}
-
-	public void testCompletionGnuCPP() throws Exception {
-		String code = "if a>b ? " + CONTENT_ASIST_CURSOR + "g" + CONTENT_ASIST_CURSOR + ":l;" + "case 1..."
-				+ CONTENT_ASIST_CURSOR + "3 : ok; ";
-		runTestCase(code, getCPPLanguage());
-	}
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCompletionParseTest.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCompletionParseTest.java
deleted file mode 100644
index 3025221..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRCompletionParseTest.java
+++ /dev/null
@@ -1,347 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2015 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.tests;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-
-import org.eclipse.cdt.core.dom.ast.IASTCompletionNode;
-import org.eclipse.cdt.core.dom.ast.IASTName;
-import org.eclipse.cdt.core.dom.ast.IBinding;
-import org.eclipse.cdt.core.dom.ast.IEnumerator;
-import org.eclipse.cdt.core.dom.ast.IField;
-import org.eclipse.cdt.core.dom.ast.ITypedef;
-import org.eclipse.cdt.core.dom.ast.IVariable;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GCCLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-/**
- * Reuse the completion parse tests from the old parser for now.
- */
-@SuppressWarnings("nls")
-public class LRCompletionParseTest extends TestCase {
-
-	public static TestSuite suite() {
-		return new TestSuite(LRCompletionParseTest.class);
-	}
-
-	public LRCompletionParseTest() {
-	}
-
-	public LRCompletionParseTest(String name) {
-		super(name);
-	}
-
-	protected IASTCompletionNode parse(String code, int offset) throws Exception {
-		return ParseHelper.getCompletionNode(code, getCLanguage(), offset);
-	}
-
-	private static final Comparator<IBinding> BINDING_COMPARATOR = new Comparator<IBinding>() {
-		@Override
-		public int compare(IBinding b1, IBinding b2) {
-			return b1.getName().compareTo(b2.getName());
-		}
-	};
-
-	public static IBinding[] getBindings(IASTName[] names) {
-		List<IBinding> bindings = new ArrayList<>();
-
-		for (IASTName name : names) {
-			if (name.getTranslationUnit() == null)
-				continue;
-
-			for (IBinding binding : name.getCompletionContext().findBindings(name, true)) {
-				bindings.add(binding);
-			}
-		}
-
-		Collections.sort(bindings, BINDING_COMPARATOR);
-		return bindings.toArray(new IBinding[bindings.size()]);
-	}
-
-	protected ILanguage getCLanguage() {
-		return GCCLanguage.getDefault();
-	}
-
-	// First steal tests from CompletionParseTest
-
-	public void testCompletionStructField() throws Exception {
-		String code = "int aVar; " + "struct D{ " + "   int aField1; " + "   int aField2; " + "}; " + "void foo() {"
-				+ "   struct D d; " + "   d.a " + "}\n";
-
-		int index = code.indexOf("d.a");
-
-		IASTCompletionNode node = parse(code, index + 3);
-		assertNotNull(node);
-
-		String prefix = node.getPrefix();
-		assertNotNull(prefix);
-		assertEquals(prefix, "a");
-
-		IASTName[] names = node.getNames();
-		assertEquals(1, names.length);
-
-		IBinding[] bindings = getBindings(names);
-
-		assertEquals(2, bindings.length);
-		assertEquals("aField1", ((IField) bindings[0]).getName());
-		assertEquals("aField2", ((IField) bindings[1]).getName());
-	}
-
-	public void testCompletionStructFieldPointer() throws Exception {
-		String code = "struct Cube {                       " + "   int nLen;                        "
-				+ "   int nWidth;                      " + "   int nHeight;                     "
-				+ "};                                  " + "int volume(struct Cube * pCube) { "
-				+ "   pCube->SP                        ";
-
-		IASTCompletionNode node = parse(code, code.indexOf("SP"));
-
-		IASTName[] names = node.getNames();
-		assertEquals(1, names.length);
-
-		IBinding[] bindings = getBindings(names);
-
-		assertEquals(3, bindings.length);
-		assertEquals("nHeight", ((IField) bindings[0]).getName());
-		assertEquals("nLen", ((IField) bindings[1]).getName());
-		assertEquals("nWidth", ((IField) bindings[2]).getName());
-	}
-
-	public void testCompletionParametersAsLocalVariables() throws Exception {
-		String code = "int foo(int aParameter) {" + "   int aLocal;" + "   if (aLocal != 0) {"
-				+ "      int aBlockLocal;" + "      a \n";
-
-		int index = code.indexOf(" a ");
-
-		IASTCompletionNode node = parse(code, index + 2);
-		assertNotNull(node);
-
-		assertEquals("a", node.getPrefix()); //$NON-NLS-1$
-
-		IASTName[] names = node.getNames();
-		assertEquals(2, names.length);
-
-		IBinding[] bindings = getBindings(names);
-
-		assertEquals(3, bindings.length);
-		assertEquals("aBlockLocal", ((IVariable) bindings[0]).getName());
-		assertEquals("aLocal", ((IVariable) bindings[1]).getName());
-		assertEquals("aParameter", ((IVariable) bindings[2]).getName());
-	}
-
-	public void testCompletionTypedef() throws Exception {
-		String code = "typedef int Int; " + "InSP";
-
-		int index = code.indexOf("SP");
-
-		IASTCompletionNode node = parse(code, index);
-		assertNotNull(node);
-
-		IASTName[] names = node.getNames();
-		assertEquals(1, names.length);
-
-		assertEquals("In", node.getPrefix());
-
-		IBinding[] bindings = getBindings(names);
-
-		assertEquals(1, bindings.length);
-		assertEquals("Int", ((ITypedef) bindings[0]).getName());
-	}
-
-	public void testCompletion() throws Exception {
-		String code = "#define GL_T 0x2001\n" + "#define GL_TRUE 0x1\n" + "typedef unsigned char   GLboolean;\n"
-				+ "static GLboolean should_rotate = GL_T";
-
-		int index = code.indexOf("= GL_T");
-
-		IASTCompletionNode node = parse(code, index + 6);
-		assertNotNull(node);
-
-		assertEquals("GL_T", node.getPrefix()); //$NON-NLS-1$
-
-		IASTName[] names = node.getNames();
-		assertEquals(1, names.length);
-	}
-
-	public void testCompletionInTypeDef() throws Exception {
-		String code = "struct A {  int name;  };  \n" + "typedef struct A * PA;     \n"
-				+ "int main() {               \n" + "   PA a;                   \n" + "   a->SP                   \n"
-				+ "}                          \n";
-
-		int index = code.indexOf("SP"); //$NON-NLS-1$
-
-		IASTCompletionNode node = parse(code, index);
-		assertNotNull(node);
-
-		IASTName[] names = node.getNames();
-		assertEquals(1, names.length);
-
-		IBinding[] bindings = getBindings(names);
-
-		assertEquals(1, bindings.length);
-		assertEquals("name", ((IField) bindings[0]).getName());
-	}
-
-	public void _testCompletionFunctionCall() throws Exception {
-		String code = "struct A {  	      \n" + "   int f2;  		  \n" + "   int f4;           \n"
-				+ "};                   \n" + "const A * foo() {}   \n" + "void main()          \n"
-				+ "{                    \n" + "   foo()->SP         \n";
-
-		int index = code.indexOf("SP");
-
-		IASTCompletionNode node = parse(code, index);
-		assertNotNull(node);
-
-		IASTName[] names = node.getNames();
-		assertEquals(1, names.length);
-
-		IBinding[] bindings = getBindings(names);
-
-		assertEquals(2, bindings.length);
-		assertEquals("f2", ((IField) bindings[0]).getName());
-		assertEquals("f4", ((IField) bindings[1]).getName());
-	}
-
-	public void _testCompletionSizeof() throws Exception {
-		String code = "int f() {\n" + "short blah;\n" + "int x = sizeof(bl";
-
-		int index = code.indexOf("of(bl");
-
-		IASTCompletionNode node = parse(code, index + 5);
-		assertNotNull(node);
-
-		IASTName[] names = node.getNames();
-		assertEquals(1, names.length);
-
-		IBinding[] bindings = getBindings(names);
-
-		assertEquals(1, bindings.length);
-		assertEquals("blah", ((IVariable) bindings[0]).getName());
-	}
-
-	public void testCompletionForLoop() throws Exception {
-		String code = "int f() {\n" + " int biSizeImage = 5;\n" + "for (int i = 0; i < bi ";
-
-		int index = code.indexOf("< bi");
-
-		IASTCompletionNode node = parse(code, index + 4);
-		assertNotNull(node);
-
-		IASTName[] names = node.getNames();
-		assertEquals(1, names.length);
-
-		IBinding[] bindings = getBindings(names);
-
-		assertEquals(1, bindings.length);
-		assertEquals("biSizeImage", ((IVariable) bindings[0]).getName());
-	}
-
-	public void testCompletionStructPointer() throws Exception {
-		String code = " struct Temp { char * total; };" + " int f(struct Temp * t) {" + " t->t[5] = t->";
-
-		int index = code.indexOf("= t->");
-
-		IASTCompletionNode node = parse(code, index + 5);
-		assertNotNull(node);
-
-		IASTName[] names = node.getNames();
-		assertEquals(1, names.length);
-
-		IBinding[] bindings = getBindings(names);
-
-		assertEquals(1, bindings.length);
-		assertEquals("total", ((IVariable) bindings[0]).getName());
-	}
-
-	public void testCompletionEnum() throws Exception {
-		String code = "typedef int DWORD;\n" + "typedef char BYTE;\n"
-				+ "#define MAKEFOURCC(ch0, ch1, ch2, ch3)                  \\\n"
-				+ "((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) |       \\\n"
-				+ "((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24))\n" + "enum e {\n" + "blah1 = 5,\n"
-				+ "blah2 = MAKEFOURCC('a', 'b', 'c', 'd'),\n" + "blah3\n" + "};\n" + "e mye = bl\n";
-
-		int index = code.indexOf("= bl");
-
-		IASTCompletionNode node = parse(code, index + 4);
-		assertNotNull(node);
-
-		IASTName[] names = node.getNames();
-		assertEquals(1, names.length);
-
-		IBinding[] bindings = getBindings(names);
-
-		assertEquals(3, bindings.length);
-		assertEquals("blah1", ((IEnumerator) bindings[0]).getName());
-		assertEquals("blah2", ((IEnumerator) bindings[1]).getName());
-		assertEquals("blah3", ((IEnumerator) bindings[2]).getName());
-	}
-
-	public void testCompletionStructArray() throws Exception {
-		String code = "struct packet { int a; int b; };\n" + "struct packet buffer[5];\n"
-				+ "int main(int argc, char **argv) {\n" + " buffer[2].";
-
-		int index = code.indexOf("[2].");
-
-		IASTCompletionNode node = parse(code, index + 4);
-		assertNotNull(node);
-
-		IASTName[] names = node.getNames();
-		assertEquals(1, names.length);
-
-		IBinding[] bindings = getBindings(names);
-
-		assertEquals(2, bindings.length);
-		assertEquals("a", ((IField) bindings[0]).getName());
-		assertEquals("b", ((IField) bindings[1]).getName());
-	}
-
-	public void testCompletionPreprocessorDirective() throws Exception {
-		IASTCompletionNode node = parse("#", 1);
-		assertNotNull(node);
-
-		IASTName[] names = node.getNames();
-		assertEquals(1, names.length);
-
-		//assertEquals("#", node.getPrefix());
-	}
-
-	public void testCompletionPreprocessorMacro() throws Exception {
-		String code = "#define AMACRO 99 \n" + "int main() { \n" + "	int AVAR; \n" + "	int x = A \n";
-
-		int index = code.indexOf("= A");
-
-		IASTCompletionNode node = parse(code, index + 3);
-		assertNotNull(node);
-
-		IASTName[] names = node.getNames();
-		assertEquals(1, names.length);
-		assertEquals("A", node.getPrefix());
-	}
-
-	public void testCompletionInsidePreprocessorDirective() throws Exception {
-		String code = "#define MAC1 99 \n" + "#define MAC2 99 \n" + "#ifdef MA";
-
-		int index = code.length();
-
-		IASTCompletionNode node = parse(code, index);
-		assertNotNull(node);
-
-		assertEquals("MA", node.getPrefix());
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDOMLocationMacroTests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDOMLocationMacroTests.java
deleted file mode 100644
index 5e410e8..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDOMLocationMacroTests.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2009 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.tests;
-
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GCCLanguage;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-import org.eclipse.cdt.core.parser.ParserLanguage;
-import org.eclipse.cdt.core.parser.tests.ast2.DOMLocationMacroTests;
-import org.eclipse.cdt.internal.core.parser.ParserException;
-
-import junit.framework.TestSuite;
-
-@SuppressWarnings("restriction")
-public class LRDOMLocationMacroTests extends DOMLocationMacroTests {
-
-	public static TestSuite suite() {
-		return suite(LRDOMLocationMacroTests.class);
-	}
-
-	public LRDOMLocationMacroTests() {
-	}
-
-	public LRDOMLocationMacroTests(String name) {
-		super(name);
-	}
-
-	@Override
-	@SuppressWarnings("unused")
-	protected IASTTranslationUnit parse(String code, ParserLanguage lang, boolean useGNUExtensions,
-			boolean expectNoProblems) throws ParserException {
-		ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
-		ParseHelper.Options options = new ParseHelper.Options().setCheckSyntaxProblems(expectNoProblems)
-				.setCheckPreprocessorProblems(expectNoProblems);
-		return ParseHelper.parse(code, language, options);
-	}
-
-	protected ILanguage getCLanguage() {
-		return GCCLanguage.getDefault();
-	}
-
-	protected ILanguage getCPPLanguage() {
-		return GPPLanguage.getDefault();
-	}
-
-	/**
-	 * Tests GCC specific stuff, not applicable at this point
-	 */
-
-	//	@Override
-	//	public void testStdioBug() throws ParserException {
-	//    	try {
-	//    		super.testStdioBug();
-	//    		fail();
-	//    	}
-	//    	catch(Throwable e) { }
-	//    }
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDOMLocationTests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDOMLocationTests.java
deleted file mode 100644
index 6cf11ab..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDOMLocationTests.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2010 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.tests;
-
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GCCLanguage;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-import org.eclipse.cdt.core.parser.ParserLanguage;
-import org.eclipse.cdt.core.parser.tests.ast2.DOMLocationTests;
-import org.eclipse.cdt.internal.core.parser.ParserException;
-
-import junit.framework.AssertionFailedError;
-import junit.framework.TestSuite;
-
-@SuppressWarnings("restriction")
-public class LRDOMLocationTests extends DOMLocationTests {
-
-	public static TestSuite suite() {
-		return suite(LRDOMLocationTests.class);
-	}
-
-	public LRDOMLocationTests() {
-	}
-
-	public LRDOMLocationTests(String name) {
-		super(name);
-	}
-
-	//TODO ??? overwrite some failed test cases
-	@Override
-	public void test162180_3() throws Exception {
-	}
-
-	@Override
-	@SuppressWarnings("unused")
-	protected IASTTranslationUnit parse(String code, ParserLanguage lang, boolean useGNUExtensions,
-			boolean expectNoProblems) throws ParserException {
-		ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
-		ParseHelper.Options options = new ParseHelper.Options().setCheckSyntaxProblems(expectNoProblems)
-				.setCheckPreprocessorProblems(expectNoProblems);
-		return ParseHelper.parse(code, language, options);
-	}
-
-	protected ILanguage getCLanguage() {
-		return GCCLanguage.getDefault();
-	}
-
-	protected ILanguage getCPPLanguage() {
-		return GPPLanguage.getDefault();
-	}
-
-	// this one fails because the C99 parser does error recovery differently
-	@Override
-	public void test162180_1() throws Exception {
-		try {
-			super.test162180_1();
-			fail();
-		} catch (AssertionFailedError e) {
-		}
-
-	}
-	//
-	//    @Override
-	//	public void test162180_3() throws Exception {
-	//    	try {
-	//    		super.test162180_3();
-	//    		fail();
-	//    	}
-	//    	catch(AssertionFailedError e) {}
-	//    }
-	//
-	//    @Override
-	//	public void testBug86698_2() throws Exception { // I don't think C++ supports nested functions
-	//    	try {
-	//    		super.testBug86698_2();
-	//    		fail();
-	//    	}
-	//    	catch(AssertionFailedError e) {}
-	//    }
-	//
-	//
-	//    @Override
-	//	public void testBug120607() throws Exception { // #assert and #unassert are gcc extensions
-	//    	try {
-	//    		super.testBug120607();
-	//    		fail();
-	//    	}
-	//    	catch(AssertionFailedError e) {}
-	//    }
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDOMPreprocessorInformationTest.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDOMPreprocessorInformationTest.java
deleted file mode 100644
index 29bf24e..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDOMPreprocessorInformationTest.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008, 2009 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.tests;
-
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GCCLanguage;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-import org.eclipse.cdt.core.parser.ParserLanguage;
-import org.eclipse.cdt.core.parser.tests.ast2.DOMPreprocessorInformationTest;
-import org.eclipse.cdt.internal.core.parser.ParserException;
-
-import junit.framework.TestSuite;
-
-@SuppressWarnings("restriction")
-public class LRDOMPreprocessorInformationTest extends DOMPreprocessorInformationTest {
-
-	public static TestSuite suite() {
-		return suite(LRDOMPreprocessorInformationTest.class);
-	}
-
-	@Override
-	@SuppressWarnings("unused")
-	protected IASTTranslationUnit parse(String code, ParserLanguage lang, boolean useGNUExtensions,
-			boolean expectNoProblems) throws ParserException {
-		ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
-		ParseHelper.Options options = new ParseHelper.Options().setCheckSyntaxProblems(expectNoProblems)
-				.setCheckPreprocessorProblems(expectNoProblems);
-		return ParseHelper.parse(code, language, options);
-	}
-
-	protected ILanguage getCLanguage() {
-		return GCCLanguage.getDefault();
-	}
-
-	protected ILanguage getCPPLanguage() {
-		return GPPLanguage.getDefault();
-	}
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDigraphTrigraphTests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDigraphTrigraphTests.java
deleted file mode 100644
index 95628e3..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRDigraphTrigraphTests.java
+++ /dev/null
@@ -1,174 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2010 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.tests;
-
-import org.eclipse.cdt.core.dom.ast.IASTArrayDeclarator;
-import org.eclipse.cdt.core.dom.ast.IASTArrayModifier;
-import org.eclipse.cdt.core.dom.ast.IASTArraySubscriptExpression;
-import org.eclipse.cdt.core.dom.ast.IASTBinaryExpression;
-import org.eclipse.cdt.core.dom.ast.IASTCompoundStatement;
-import org.eclipse.cdt.core.dom.ast.IASTDeclarationStatement;
-import org.eclipse.cdt.core.dom.ast.IASTDeclarator;
-import org.eclipse.cdt.core.dom.ast.IASTEqualsInitializer;
-import org.eclipse.cdt.core.dom.ast.IASTExpressionStatement;
-import org.eclipse.cdt.core.dom.ast.IASTFunctionCallExpression;
-import org.eclipse.cdt.core.dom.ast.IASTFunctionDefinition;
-import org.eclipse.cdt.core.dom.ast.IASTInitializerClause;
-import org.eclipse.cdt.core.dom.ast.IASTLiteralExpression;
-import org.eclipse.cdt.core.dom.ast.IASTPreprocessorMacroDefinition;
-import org.eclipse.cdt.core.dom.ast.IASTPreprocessorStatement;
-import org.eclipse.cdt.core.dom.ast.IASTSimpleDeclaration;
-import org.eclipse.cdt.core.dom.ast.IASTStatement;
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GCCLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-/**
- * TODO these tests can be moved into the core
- */
-@SuppressWarnings("nls")
-public class LRDigraphTrigraphTests extends TestCase {
-
-	public static TestSuite suite() {
-		return new TestSuite(LRDigraphTrigraphTests.class);
-	}
-
-	public LRDigraphTrigraphTests() {
-	}
-
-	public LRDigraphTrigraphTests(String name) {
-		super(name);
-	}
-
-	protected IASTTranslationUnit parse(String code) {
-		ParseHelper.Options options = new ParseHelper.Options();
-		options.setCheckSyntaxProblems(true);
-		options.setCheckPreprocessorProblems(true);
-		return ParseHelper.parse(code, getCLanguage(), options);
-	}
-
-	protected ILanguage getCLanguage() {
-		return GCCLanguage.getDefault();
-	}
-
-	public void testTrigraphSequences() {
-		String code = "??=define SIZE  ??/ \n" + // trigraph used as backslash to ignore newline
-				"99 \n" + "int main(void)??<  \n" + "    int arr??(SIZE??);  \n"
-				+ "    arr??(4??) = '0' - (??-0 ??' 1 ??! 2);  \n" + "    printf(\"%c??/n\", arr??(4??)); \n"
-				+ "??> \n";
-
-		IASTTranslationUnit tu = parse(code);
-		assertNotNull(tu);
-
-		IASTPreprocessorStatement[] defines = tu.getAllPreprocessorStatements();
-		assertEquals(1, defines.length);
-		IASTPreprocessorMacroDefinition macro = (IASTPreprocessorMacroDefinition) defines[0];
-		assertEquals("SIZE", macro.getName().toString());
-		//assertEquals("99", macro.getExpansion());
-
-		IASTFunctionDefinition main = (IASTFunctionDefinition) tu.getDeclarations()[0];
-		IASTCompoundStatement body = (IASTCompoundStatement) main.getBody();
-		IASTStatement[] statements = body.getStatements();
-		assertEquals(3, statements.length);
-
-		// int arr??(SIZE??);
-		IASTSimpleDeclaration arr = (IASTSimpleDeclaration) ((IASTDeclarationStatement) statements[0]).getDeclaration();
-		IASTArrayDeclarator arr_decl = (IASTArrayDeclarator) arr.getDeclarators()[0];
-		IASTArrayModifier modifier = arr_decl.getArrayModifiers()[0];
-		IASTLiteralExpression lit = (IASTLiteralExpression) modifier.getConstantExpression();
-		assertEquals(IASTLiteralExpression.lk_integer_constant, lit.getKind());
-
-		// arr??(4??) = '0' - (??-0 ??' 1 ??! 2);
-		IASTBinaryExpression expr = (IASTBinaryExpression) ((IASTExpressionStatement) statements[1]).getExpression();
-		assertEquals(IASTBinaryExpression.op_assign, expr.getOperator());
-		IASTArraySubscriptExpression arr_op = (IASTArraySubscriptExpression) expr.getOperand1();
-		assertEquals("4", ((IASTLiteralExpression) arr_op.getSubscriptExpression()).toString());
-		IASTBinaryExpression cond = (IASTBinaryExpression) ((IASTUnaryExpression) ((IASTBinaryExpression) expr
-				.getOperand2()).getOperand2()).getOperand();
-		assertEquals(IASTBinaryExpression.op_binaryOr, cond.getOperator());
-		IASTBinaryExpression cond2 = (IASTBinaryExpression) cond.getOperand1();
-		assertEquals(IASTBinaryExpression.op_binaryXor, cond2.getOperator());
-		IASTUnaryExpression not = (IASTUnaryExpression) cond2.getOperand1();
-		assertEquals(IASTUnaryExpression.op_tilde, not.getOperator());
-
-		// printf(\"%c??/n\", arr??(4??));
-		IASTFunctionCallExpression expr2 = (IASTFunctionCallExpression) ((IASTExpressionStatement) statements[2])
-				.getExpression();
-		IASTInitializerClause[] args = expr2.getArguments();
-		IASTArraySubscriptExpression arr_op2 = (IASTArraySubscriptExpression) args[1];
-		assertEquals("4", ((IASTLiteralExpression) arr_op2.getSubscriptExpression()).toString());
-	}
-
-	public void testTrigraphEscapeSequences() {
-		// a ??/ trigraph should act just like a backslash in a string literal
-		String code = "int main(void)??<  \n" + "   char str[] = \"??/\"??/n\"; \n" + "   char c = '??/u0000'; \n"
-				+ "??> \n";
-
-		parse(code); // will throw an exception if there are parse errors
-	}
-
-	public void testDigraphSequences() {
-		String code = "%:define join(a, b) a %:%: b \n" + "int main() <% \n" + "	   int arr<:5:>; \n" + "%> \n";
-
-		IASTTranslationUnit tu = parse(code); // will throw an exception if there are parse errors
-
-		IASTFunctionDefinition main = (IASTFunctionDefinition) tu.getDeclarations()[0];
-		IASTCompoundStatement body = (IASTCompoundStatement) main.getBody();
-		IASTStatement[] statements = body.getStatements();
-		assertEquals(1, statements.length);
-
-		IASTSimpleDeclaration arr = (IASTSimpleDeclaration) ((IASTDeclarationStatement) statements[0]).getDeclaration();
-		IASTArrayDeclarator arr_decl = (IASTArrayDeclarator) arr.getDeclarators()[0];
-		IASTArrayModifier modifier = arr_decl.getArrayModifiers()[0];
-		IASTLiteralExpression lit = (IASTLiteralExpression) modifier.getConstantExpression();
-		assertEquals("5", lit.toString());
-
-	}
-
-	public void testTrigraphAndDigraphSequecesInPreprocessorDirectives() {
-		String code = "%:define join1(a, b) a %:%: b \n" + "%:define str1(a) %: a \n"
-				+ "??=define join2(a, b) a ??=??= b \n" + "??=define str2(a) ??= a \n" + "int main() <% \n"
-				+ "	   int join1(x, y) = str1(its all good); \n" + "	   int join2(a, b) = str2(its still good); \n"
-				+ "%> \n";
-
-		IASTTranslationUnit tu = parse(code); // will throw an exception if there are parse errors
-
-		IASTFunctionDefinition main = (IASTFunctionDefinition) tu.getDeclarations()[0];
-		IASTCompoundStatement body = (IASTCompoundStatement) main.getBody();
-		IASTStatement[] statements = body.getStatements();
-		assertEquals(2, statements.length);
-
-		IASTSimpleDeclaration decl1 = (IASTSimpleDeclaration) ((IASTDeclarationStatement) statements[0])
-				.getDeclaration();
-		IASTDeclarator declarator1 = decl1.getDeclarators()[0];
-		assertEquals("xy", declarator1.getName().toString());
-		IASTLiteralExpression expr1 = (IASTLiteralExpression) ((IASTEqualsInitializer) declarator1.getInitializer())
-				.getInitializerClause();
-		assertEquals(IASTLiteralExpression.lk_string_literal, expr1.getKind());
-		assertEquals("\"its all good\"", expr1.toString());
-
-		IASTSimpleDeclaration decl2 = (IASTSimpleDeclaration) ((IASTDeclarationStatement) statements[1])
-				.getDeclaration();
-		IASTDeclarator declarator2 = decl2.getDeclarators()[0];
-		assertEquals("ab", declarator2.getName().toString());
-		IASTLiteralExpression expr2 = (IASTLiteralExpression) ((IASTEqualsInitializer) declarator2.getInitializer())
-				.getInitializerClause();
-		assertEquals(IASTLiteralExpression.lk_string_literal, expr2.getKind());
-		assertEquals("\"its still good\"", expr2.toString());
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRGCCCompleteParseExtensionsTest.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRGCCCompleteParseExtensionsTest.java
deleted file mode 100644
index d92c5cd..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRGCCCompleteParseExtensionsTest.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2012 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.tests;
-
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GCCLanguage;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-import org.eclipse.cdt.core.parser.ParserLanguage;
-import org.eclipse.cdt.core.parser.tests.ast2.GCCCompleteParseExtensionsTest;
-import org.eclipse.cdt.internal.core.parser.ParserException;
-
-import junit.framework.TestSuite;
-
-@SuppressWarnings("restriction")
-public class LRGCCCompleteParseExtensionsTest extends GCCCompleteParseExtensionsTest {
-
-	public static TestSuite suite() {
-		return suite(LRGCCCompleteParseExtensionsTest.class);
-	}
-
-	public LRGCCCompleteParseExtensionsTest() {
-	}
-
-	public LRGCCCompleteParseExtensionsTest(String name) {
-		super(name);
-	}
-
-	//override the test failed case for 342683
-	@Override
-	public void testTypeTraits_Bug342683() throws Exception {
-	}
-
-	@Override
-	@SuppressWarnings("unused")
-	protected IASTTranslationUnit parse(String code, ParserLanguage lang, boolean useGNUExtensions,
-			boolean expectNoProblems) throws ParserException {
-		ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
-		ParseHelper.Options options = new ParseHelper.Options().setCheckSyntaxProblems(expectNoProblems)
-				.setCheckPreprocessorProblems(expectNoProblems);
-		return ParseHelper.parse(code, language, options);
-	}
-
-	protected ILanguage getCLanguage() {
-		return GCCLanguage.getDefault();
-	}
-
-	protected ILanguage getCPPLanguage() {
-		return GPPLanguage.getDefault();
-	}
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRGCCTests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRGCCTests.java
deleted file mode 100644
index d6dc8bd..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRGCCTests.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2009 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.tests;
-
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GCCLanguage;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-import org.eclipse.cdt.core.parser.ParserLanguage;
-import org.eclipse.cdt.core.parser.tests.ast2.GCCTests;
-import org.eclipse.cdt.internal.core.parser.ParserException;
-
-import junit.framework.TestSuite;
-
-@SuppressWarnings("restriction")
-public class LRGCCTests extends GCCTests {
-
-	public static TestSuite suite() {
-		return suite(LRGCCTests.class);
-	}
-
-	public LRGCCTests() {
-	}
-
-	public LRGCCTests(String name) {
-		super(name);
-	}
-
-	@Override
-	@SuppressWarnings("unused")
-	protected IASTTranslationUnit parse(String code, ParserLanguage lang, boolean useGNUExtensions,
-			boolean expectNoProblems) throws ParserException {
-		ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
-		ParseHelper.Options options = new ParseHelper.Options().setCheckSyntaxProblems(expectNoProblems)
-				.setCheckPreprocessorProblems(expectNoProblems);
-		return ParseHelper.parse(code, language, options);
-	}
-
-	protected ILanguage getCLanguage() {
-		return GCCLanguage.getDefault();
-	}
-
-	protected ILanguage getCPPLanguage() {
-		return GPPLanguage.getDefault();
-	}
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRImageLocationTests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRImageLocationTests.java
deleted file mode 100644
index f3403fc..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRImageLocationTests.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008, 2013 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *      IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.tests;
-
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GCCLanguage;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-import org.eclipse.cdt.core.parser.ParserLanguage;
-import org.eclipse.cdt.core.parser.tests.ast2.ImageLocationTests;
-import org.eclipse.cdt.internal.core.parser.ParserException;
-
-import junit.framework.TestSuite;
-
-@SuppressWarnings("restriction")
-public class LRImageLocationTests extends ImageLocationTests {
-
-	public static TestSuite suite() {
-		return suite(LRImageLocationTests.class);
-	}
-
-	public LRImageLocationTests() {
-	}
-
-	public LRImageLocationTests(String name) {
-		super(name);
-	}
-
-	@Override
-	@SuppressWarnings("unused")
-	protected IASTTranslationUnit parse(String code, ParserLanguage lang, boolean useGNUExtensions,
-			boolean expectNoProblems, int limitTrivialInitializers) throws ParserException {
-		ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
-		ParseHelper.Options options = new ParseHelper.Options();
-		options.setCheckSyntaxProblems(expectNoProblems);
-		options.setCheckPreprocessorProblems(expectNoProblems);
-		options.setLimitTrivialInitializers(limitTrivialInitializers);
-		return ParseHelper.parse(code, language, options);
-	}
-
-	protected ILanguage getCLanguage() {
-		return GCCLanguage.getDefault();
-	}
-
-	protected ILanguage getCPPLanguage() {
-		return GPPLanguage.getDefault();
-	}
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRInactiveCodeTests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRInactiveCodeTests.java
deleted file mode 100644
index 6c1e3fe..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRInactiveCodeTests.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2013 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.tests;
-
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GCCLanguage;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-import org.eclipse.cdt.core.parser.ParserLanguage;
-import org.eclipse.cdt.core.parser.tests.ast2.ASTInactiveCodeTests;
-
-import junit.framework.TestSuite;
-
-public class LRInactiveCodeTests extends ASTInactiveCodeTests {
-
-	public static TestSuite suite() {
-		return suite(LRInactiveCodeTests.class);
-	}
-
-	public LRInactiveCodeTests() {
-	}
-
-	public LRInactiveCodeTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected IASTTranslationUnit parse(String code, ParserLanguage lang,
-			@SuppressWarnings("unused") boolean useGNUExtensions, boolean expectNoProblems,
-			int limitTrivialInitializers) {
-		ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
-		ParseHelper.Options options = new ParseHelper.Options();
-		options.setCheckSyntaxProblems(expectNoProblems);
-		options.setCheckPreprocessorProblems(expectNoProblems);
-		options.setLimitTrivialInitializers(limitTrivialInitializers);
-		return ParseHelper.parse(code, language, options);
-	}
-
-	protected ILanguage getCLanguage() {
-		return GCCLanguage.getDefault();
-	}
-
-	protected ILanguage getCPPLanguage() {
-		return GPPLanguage.getDefault();
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRKnRTests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRKnRTests.java
deleted file mode 100644
index bcbf848..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRKnRTests.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2009 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.tests;
-
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GCCLanguage;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-import org.eclipse.cdt.core.parser.ParserLanguage;
-import org.eclipse.cdt.core.parser.tests.ast2.AST2KnRTests;
-import org.eclipse.cdt.internal.core.parser.ParserException;
-
-import junit.framework.TestSuite;
-
-/**
- * @author Mike Kucera
- */
-@SuppressWarnings("restriction")
-public class LRKnRTests extends AST2KnRTests {
-
-	public static TestSuite suite() {
-		return suite(LRKnRTests.class);
-	}
-
-	@Override
-	@SuppressWarnings("unused")
-	protected IASTTranslationUnit parse(String code, ParserLanguage lang, boolean useGNUExtensions,
-			boolean expectNoProblems) throws ParserException {
-		ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
-		return ParseHelper.parse(code, language, expectNoProblems);
-	}
-
-	protected ILanguage getCLanguage() {
-		return GCCLanguage.getDefault();
-	}
-
-	protected ILanguage getCPPLanguage() {
-		return GPPLanguage.getDefault();
-	}
-
-	// LPG handles syntax errors differently than the DOM parser
-	// these tests look for syntax errors in specific places and they fail
-
-	@Override
-	public void testKRCProblem3() throws Exception {
-		try {
-			super.testKRCProblem3();
-			fail();
-		} catch (Throwable expectedException) {
-		}
-	}
-
-	@Override
-	public void testKRCProblem4() throws Exception {
-		try {
-			super.testKRCProblem4();
-			fail();
-		} catch (Throwable expectedException) {
-		}
-	}
-
-	@Override
-	public void testKRCProblem5() throws Exception {
-		try {
-			super.testKRCProblem5();
-			fail();
-		} catch (Throwable expectedException) {
-		}
-	}
-
-	@Override
-	public void testKRCProblem2() throws Exception {
-		try {
-			super.testKRCProblem2();
-			fail();
-		} catch (Throwable expectedException) {
-		}
-	}
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRNodeSelectorTest.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRNodeSelectorTest.java
deleted file mode 100644
index c4765a5..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRNodeSelectorTest.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2013 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.tests;
-
-import java.io.IOException;
-
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GCCLanguage;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-import org.eclipse.cdt.core.parser.ParserLanguage;
-import org.eclipse.cdt.core.parser.tests.ast2.ASTNodeSelectorTest;
-import org.eclipse.cdt.internal.core.parser.ParserException;
-
-import junit.framework.TestSuite;
-
-@SuppressWarnings("restriction")
-public class LRNodeSelectorTest extends ASTNodeSelectorTest {
-
-	public static TestSuite suite() {
-		return suite(LRNodeSelectorTest.class);
-	}
-
-	public LRNodeSelectorTest() {
-	}
-
-	public LRNodeSelectorTest(String name) {
-		super(name);
-	}
-
-	@Override
-	protected IASTTranslationUnit parse(String code, ParserLanguage lang,
-			@SuppressWarnings("unused") boolean useGNUExtensions, boolean expectNoProblems,
-			int limitTrivialInitializers) throws ParserException {
-		ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
-		ParseHelper.Options options = new ParseHelper.Options();
-		options.setCheckSyntaxProblems(expectNoProblems);
-		options.setCheckPreprocessorProblems(expectNoProblems);
-		options.setLimitTrivialInitializers(limitTrivialInitializers);
-		return ParseHelper.parse(code, language, options);
-	}
-
-	@Override
-	protected void createTranslationUnit() throws IOException {
-		fCode = getContents(1)[0].toString();
-		fTu = ParseHelper.parse(fCode, getCPPLanguage(), false);
-		fSelector = fTu.getNodeSelector(null);
-	}
-
-	protected ILanguage getCLanguage() {
-		return GCCLanguage.getDefault();
-	}
-
-	protected ILanguage getCPPLanguage() {
-		return GPPLanguage.getDefault();
-	}
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRQuickParser2Tests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRQuickParser2Tests.java
deleted file mode 100644
index 29d8033..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRQuickParser2Tests.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008, 2009 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *      IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.tests;
-
-import org.eclipse.cdt.core.dom.lrparser.gnu.GCCLanguage;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-import org.eclipse.cdt.core.parser.ParserLanguage;
-import org.eclipse.cdt.core.parser.tests.ast2.QuickParser2Tests;
-
-public class LRQuickParser2Tests extends QuickParser2Tests {
-
-	public LRQuickParser2Tests() {
-	}
-
-	public LRQuickParser2Tests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void parse(String code, boolean expectedToPass, ParserLanguage lang,
-			@SuppressWarnings("unused") boolean gcc) throws Exception {
-		ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
-		// don't check preprocessor problems for this test suite (causes tons of failures)
-		ParseHelper.Options options = new ParseHelper.Options();
-		options.setCheckSyntaxProblems(expectedToPass);
-		options.setCheckPreprocessorProblems(false);
-		ParseHelper.parse(code, language, options);
-	}
-
-	protected ILanguage getCLanguage() {
-		return GCCLanguage.getDefault();
-	}
-
-	protected ILanguage getCPPLanguage() {
-		return GPPLanguage.getDefault();
-	}
-
-	@Override
-	public void testBug36532() {
-		// ParseHelper does not throw ParserException
-		// just ignore this test
-	}
-
-	//	 @Override
-	//	 public void testBug39695() throws Exception {  // no support for __alignof__
-	//		 try {
-	//			super.testBug39695();
-	//			fail();
-	//		} catch(AssertionFailedError _) { }
-	//	 }
-	//
-	//	 @Override
-	//	 public void testBug39684() throws Exception {  // typeof is gcc extension
-	//		 try {
-	//			super.testBug39684();
-	//			fail();
-	//		} catch(AssertionFailedError _) { }
-	//	 }
-	//
-	//	 @Override
-	//	 public void testBug39698A() throws Exception { // gcc extension
-	//		 try {
-	//			super.testBug39698A();
-	//			fail();
-	//		} catch(AssertionFailedError _) { }
-	//    }
-	//
-	//	@Override
-	//	public void testBug39698B() throws Exception { // gcc extension
-	//		 try {
-	//			super.testBug39698B();
-	//			fail();
-	//		} catch(AssertionFailedError _) { }
-	//	}
-	//
-	//	@Override
-	//	public void testBug39704B() throws Exception { // gcc extension
-	//		 try {
-	//			super.testBug39704B();
-	//			fail();
-	//		} catch(AssertionFailedError _) { }
-	//	}
-	//
-	//	@Override
-	//	public void testBug39704C() throws Exception { // gcc extension
-	//		 try {
-	//			super.testBug39704C();
-	//			fail();
-	//		} catch(AssertionFailedError _) { }
-	//	}
-	//
-	//	@Override
-	//	public void testBug39677() throws Exception { // gcc extension
-	//		 try {
-	//			super.testBug39677();
-	//			fail();
-	//		} catch(AssertionFailedError _) { }
-	//	}
-	//
-	//
-	//	@Override
-	//	public void testBug57652() throws Exception { // gcc extension
-	//		 try {
-	//			super.testBug57652();
-	//			fail();
-	//		} catch(AssertionFailedError _) { }
-	//	}
-	//
-	//
-	//	@Override
-	//	public void testBug39701A() throws Exception { // gcc extension
-	//		 try {
-	//			super.testBug39701A();
-	//			fail();
-	//		} catch(AssertionFailedError _) { }
-	//	}
-	//
-	//	@Override
-	//	public void testBug39701B() throws Exception { // gcc extension
-	//		 try {
-	//			super.testBug39701B();
-	//			fail();
-	//		} catch(AssertionFailedError _) { }
-	//	}
-	//
-	//	@Override
-	//	public void testBug39701C() throws Exception { // gcc extension
-	//		 try {
-	//			super.testBug39701C();
-	//			fail();
-	//		} catch(AssertionFailedError _) { }
-	//	}
-	//
-	//
-	//	@Override
-	//	public void testBug40007() throws Exception { // gcc extension
-	//		 try {
-	//			super.testBug40007();
-	//			fail();
-	//		} catch(AssertionFailedError _) {
-	//		} catch(AssertionError _) {
-	//		}
-	//
-	//	}
-	//
-	//	@Override
-	//	public void testBug39703() throws Exception { // gcc extension
-	//		 try {
-	//			super.testBug39703();
-	//			fail();
-	//		} catch(AssertionFailedError _) { }
-	//	}
-	//
-	//
-	//	@Override
-	//	public void testBug39554() throws Exception { // gcc extension
-	//		 try {
-	//			super.testBug39554();
-	//			fail();
-	//		} catch(AssertionFailedError _) { }
-	//	}
-	//
-	//
-	//	@Override
-	//	public void testBug39686() throws Exception { // gcc extension
-	//		 try {
-	//			super.testBug39686();
-	//			fail();
-	//		} catch(AssertionFailedError _) { }
-	//	}
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRSelectionParseTest.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRSelectionParseTest.java
deleted file mode 100644
index b2b4998..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRSelectionParseTest.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2009 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.tests;
-
-import org.eclipse.cdt.core.dom.ICodeReaderFactory;
-import org.eclipse.cdt.core.dom.ast.IASTNode;
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GCCLanguage;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-import org.eclipse.cdt.core.parser.CodeReader;
-import org.eclipse.cdt.core.parser.IScannerInfo;
-import org.eclipse.cdt.core.parser.ParserLanguage;
-import org.eclipse.cdt.core.parser.ScannerInfo;
-import org.eclipse.cdt.core.parser.tests.ast2.AST2SelectionParseTest;
-import org.eclipse.cdt.internal.core.dom.SavedCodeReaderFactory;
-import org.eclipse.cdt.internal.core.parser.ParserException;
-import org.eclipse.core.resources.IFile;
-
-import junit.framework.TestSuite;
-
-@SuppressWarnings("restriction")
-public class LRSelectionParseTest extends AST2SelectionParseTest {
-
-	public static TestSuite suite() {
-		return new TestSuite(LRSelectionParseTest.class);
-	}
-
-	public LRSelectionParseTest() {
-	}
-
-	public LRSelectionParseTest(String name) {
-		super(name);
-	}
-
-	@Override
-	protected IASTNode parse(String code, ParserLanguage lang, int offset, int length) throws ParserException {
-		return parse(code, lang, false, false, offset, length);
-	}
-
-	@Override
-	protected IASTNode parse(IFile file, ParserLanguage lang, int offset, int length) throws ParserException {
-		IASTTranslationUnit tu = parse(file, lang, false, false);
-		return tu.selectNodeForLocation(tu.getFilePath(), offset, length);
-	}
-
-	@Override
-	protected IASTNode parse(String code, ParserLanguage lang, int offset, int length, boolean expectedToPass)
-			throws ParserException {
-		return parse(code, lang, false, expectedToPass, offset, length);
-	}
-
-	@Override
-	protected IASTNode parse(String code, ParserLanguage lang, boolean useGNUExtensions, boolean expectNoProblems,
-			int offset, int length) throws ParserException {
-		ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
-		ParseHelper.Options options = new ParseHelper.Options();
-		options.setCheckPreprocessorProblems(expectNoProblems);
-		options.setCheckSyntaxProblems(expectNoProblems);
-		IASTTranslationUnit tu = ParseHelper.parse(code, language, options);
-		return tu.selectNodeForLocation(tu.getFilePath(), offset, length);
-	}
-
-	protected IASTTranslationUnit parse(IFile file, ParserLanguage lang, IScannerInfo scanInfo,
-			boolean useGNUExtensions, boolean expectNoProblems) {
-
-		ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
-
-		String fileName = file.getLocation().toOSString();
-		ICodeReaderFactory fileCreator = SavedCodeReaderFactory.getInstance();
-		CodeReader reader = fileCreator.createCodeReaderForTranslationUnit(fileName);
-
-		ParseHelper.Options options = new ParseHelper.Options();
-		options.setCheckPreprocessorProblems(expectNoProblems);
-		options.setCheckSyntaxProblems(expectNoProblems);
-		options.setCheckBindings(true);
-
-		return ParseHelper.parse(reader, language, scanInfo, fileCreator, options);
-	}
-
-	@Override
-	protected IASTTranslationUnit parse(IFile file, ParserLanguage lang, boolean useGNUExtensions,
-			boolean expectNoProblems) throws ParserException {
-		return parse(file, lang, new ScannerInfo(), useGNUExtensions, expectNoProblems);
-	}
-
-	protected ILanguage getCLanguage() {
-		return GCCLanguage.getDefault();
-	}
-
-	protected ILanguage getCPPLanguage() {
-		return GPPLanguage.getDefault();
-	}
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRSemanticsTests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRSemanticsTests.java
deleted file mode 100644
index 24d0c71..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRSemanticsTests.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008, 2013 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *      IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.tests;
-
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GCCLanguage;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-import org.eclipse.cdt.core.parser.ParserLanguage;
-import org.eclipse.cdt.core.parser.tests.ast2.SemanticsTests;
-import org.eclipse.cdt.internal.core.parser.ParserException;
-
-import junit.framework.TestSuite;
-
-@SuppressWarnings("restriction")
-public class LRSemanticsTests extends SemanticsTests {
-
-	public static TestSuite suite() {
-		return suite(LRSemanticsTests.class);
-	}
-
-	public LRSemanticsTests() {
-	}
-
-	public LRSemanticsTests(String name) {
-		super(name);
-	}
-
-	@SuppressWarnings("unused")
-	@Override
-	protected IASTTranslationUnit parse(String code, ParserLanguage lang, boolean useGNUExtensions,
-			boolean expectNoProblems, int limitTrivialInitializers) throws ParserException {
-		ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
-		ParseHelper.Options options = new ParseHelper.Options();
-		options.setCheckSyntaxProblems(expectNoProblems);
-		options.setCheckPreprocessorProblems(expectNoProblems);
-		options.setLimitTrivialInitializers(limitTrivialInitializers);
-		return ParseHelper.parse(code, language, options);
-	}
-
-	protected ILanguage getCLanguage() {
-		return GCCLanguage.getDefault();
-	}
-
-	protected ILanguage getCPPLanguage() {
-		return GPPLanguage.getDefault();
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRTaskParserTest.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRTaskParserTest.java
deleted file mode 100644
index eff62df..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRTaskParserTest.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2013 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.tests;
-
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GCCLanguage;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-import org.eclipse.cdt.core.parser.ParserLanguage;
-import org.eclipse.cdt.core.parser.tests.ast2.TaskParserTest;
-import org.eclipse.cdt.internal.core.parser.ParserException;
-
-import junit.framework.TestSuite;
-
-@SuppressWarnings("restriction")
-public class LRTaskParserTest extends TaskParserTest {
-
-	public static TestSuite suite() {
-		return new TestSuite(LRTaskParserTest.class);
-	}
-
-	@Override
-	protected IASTTranslationUnit parse(String code, ParserLanguage lang, boolean useGNUExtensions,
-			boolean expectNoProblems) throws ParserException {
-		return parse(code, lang, useGNUExtensions, expectNoProblems, -1);
-	}
-
-	@Override
-	protected IASTTranslationUnit parse(String code, ParserLanguage lang,
-			@SuppressWarnings("unused") boolean useGNUExtensions, boolean expectNoProblems,
-			int limitTrivialInitializers) throws ParserException {
-		ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
-		ParseHelper.Options options = new ParseHelper.Options();
-		options.setCheckSyntaxProblems(expectNoProblems);
-		options.setCheckPreprocessorProblems(expectNoProblems);
-		options.setLimitTrivialInitializers(limitTrivialInitializers);
-		return ParseHelper.parse(code, language, options);
-	}
-
-	protected ILanguage getCLanguage() {
-		return GCCLanguage.getDefault();
-	}
-
-	protected ILanguage getCPPLanguage() {
-		return GPPLanguage.getDefault();
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRTemplateTests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRTemplateTests.java
deleted file mode 100644
index 3a4bdb7..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRTemplateTests.java
+++ /dev/null
@@ -1,212 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2013 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.tests;
-
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GCCLanguage;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-import org.eclipse.cdt.core.parser.ParserLanguage;
-import org.eclipse.cdt.core.parser.tests.ast2.AST2TemplateTests;
-import org.eclipse.cdt.internal.core.parser.ParserException;
-
-import junit.framework.TestSuite;
-
-@SuppressWarnings("restriction")
-public class LRTemplateTests extends AST2TemplateTests {
-
-	public static TestSuite suite() {
-		return suite(LRTemplateTests.class);
-	}
-
-	//override the test failed cases of 341747
-	@Override
-	public void testTemplateIDAmbiguity_341747a() throws Exception {
-	}
-
-	@Override
-	public void testTemplateIDAmbiguity_341747b() throws Exception {
-	}
-
-	@Override
-	public void testTemplateIDAmbiguity_341747c() throws Exception {
-	}
-
-	@Override
-	public void testTemplateIDAmbiguity_341747d() throws Exception {
-	}
-
-	//override some failed test cases
-	@Override
-	public void testNestedArguments_246079() throws Throwable {
-	}
-
-	@Override
-	public void testTypeVsExpressionInArgsOfDependentTemplateID_257194() throws Exception {
-	}
-
-	@Override
-	public void testCtorWithTemplateID_259600() throws Exception {
-	}
-
-	@Override
-	public void testClosingAngleBrackets1_261268() throws Exception {
-	}
-
-	@Override
-	public void testClosingAngleBracketsAmbiguity_261268() throws Exception {
-	}
-
-	@Override
-	public void testFunctionParameterPacks_280909() throws Exception {
-	}
-
-	@Override
-	public void testTemplateParameterPacks_280909() throws Exception {
-	}
-
-	@Override
-	public void testParameterPackExpansions_280909() throws Exception {
-	}
-
-	@Override
-	public void testTemplateParameterPacksAmbiguity_280909() throws Exception {
-	}
-
-	@Override
-	public void testNonTypeTemplateParameterPack_280909() throws Exception {
-	}
-
-	//the below test case are for C++0x features which are not included in XLC++ yet
-	@Override
-	public void testRValueReferences_294730() throws Exception {
-	}
-
-	@Override
-	public void testVariadicTemplateExamples_280909a() throws Exception {
-	}
-
-	@Override
-	public void testVariadicTemplateExamples_280909b() throws Exception {
-	}
-
-	@Override
-	public void testVariadicTemplateExamples_280909c() throws Exception {
-	}
-
-	@Override
-	public void testVariadicTemplateExamples_280909d() throws Exception {
-	}
-
-	@Override
-	public void testVariadicTemplateExamples_280909e() throws Exception {
-	}
-
-	@Override
-	public void testVariadicTemplateExamples_280909f() throws Exception {
-	}
-
-	@Override
-	public void testVariadicTemplateExamples_280909g() throws Exception {
-	}
-
-	@Override
-	public void testVariadicTemplateExamples_280909i() throws Exception {
-	}
-
-	@Override
-	public void testVariadicTemplateExamples_280909j() throws Exception {
-	}
-
-	@Override
-	public void testVariadicTemplateExamples_280909k() throws Exception {
-	}
-
-	@Override
-	public void testVariadicTemplateExamples_280909n() throws Exception {
-	}
-
-	@Override
-	public void testVariadicTemplateExamples_280909p() throws Exception {
-	}
-
-	@Override
-	public void testVariadicTemplateExamples_280909q() throws Exception {
-	}
-
-	@Override
-	public void testVariadicTemplateExamples_280909r() throws Exception {
-	}
-
-	@Override
-	public void testVariadicTemplateExamples_280909s() throws Exception {
-	}
-
-	@Override
-	public void testExtendingVariadicTemplateTemplateParameters_302282() throws Exception {
-	}
-
-	@Override
-	public void testVariadicTemplateExamples_280909h() throws Exception {
-	}
-
-	@Override
-	public void testInlineNamespaces_305980() throws Exception {
-	}
-
-	@Override
-	public void testFunctionParameterPacksInNonFinalPosition_324096() throws Exception {
-	}
-
-	//decltype related
-	@Override
-	public void testFunctionCallOnDependentName_337686() throws Exception {
-	}
-
-	//variadic template
-	@Override
-	public void testVariadicFunctionTemplate_333389() throws Exception {
-	}
-
-	//auto
-	@Override
-	public void testRRefVsRef_351927() throws Exception {
-	}
-
-	//Variadic template arguments
-	@Override
-	public void testTemplateTemplateParameterMatching_352859() throws Exception {
-	}
-
-	@Override
-	@SuppressWarnings("unused")
-	protected IASTTranslationUnit parse(String code, ParserLanguage lang, boolean useGNUExtensions,
-			boolean expectNoProblems, int limitTrivialInitializers) throws ParserException {
-		ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
-		ParseHelper.Options options = new ParseHelper.Options();
-		options.setCheckSyntaxProblems(expectNoProblems);
-		options.setCheckPreprocessorProblems(expectNoProblems);
-		options.setLimitTrivialInitializers(limitTrivialInitializers);
-		return ParseHelper.parse(code, language, options);
-	}
-
-	protected ILanguage getCLanguage() {
-		return GCCLanguage.getDefault();
-	}
-
-	protected ILanguage getCPPLanguage() {
-		return GPPLanguage.getDefault();
-	}
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRTests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRTests.java
deleted file mode 100644
index 2b0bbac..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRTests.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2016 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.tests;
-
-import org.eclipse.cdt.core.dom.ast.IASTDeclaration;
-import org.eclipse.cdt.core.dom.ast.IASTFunctionDefinition;
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.ast.c.ICASTSimpleDeclSpecifier;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GCCLanguage;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-import org.eclipse.cdt.core.parser.ParserLanguage;
-import org.eclipse.cdt.core.parser.tests.ast2.AST2Tests;
-import org.eclipse.cdt.internal.core.parser.ParserException;
-
-import junit.framework.TestSuite;
-
-/**
- *
- * @author Mike Kucera
- *
- */
-@SuppressWarnings({ "nls", "restriction" })
-public class LRTests extends AST2Tests {
-
-	public static TestSuite suite() {
-		return suite(LRTests.class);
-	}
-
-	public LRTests(String name) {
-		super(name);
-	}
-
-	//TODO ??? overwrite some failed test cases
-	@Override
-	public void testFnReturningPtrToFn() throws Exception {
-	}
-
-	@Override
-	public void testBug270275_int_is_equivalent_to_signed_int() throws Exception {
-	}
-
-	@Override
-	public void testFunctionDefTypes() throws Exception {
-	}
-
-	@Override
-	public void testBug80171() throws Exception {
-	}
-
-	@Override
-	public void testBug192165() throws Exception {
-	}
-
-	@Override
-	public void testTypenameInExpression() throws Exception {
-	}
-
-	@Override
-	public void testParamWithFunctionType_84242() throws Exception {
-	}
-
-	@Override
-	public void testParamWithFunctionTypeCpp_84242() throws Exception {
-	}
-
-	@Override
-	public void testFunctionReturningPtrToArray_216609() throws Exception {
-	}
-
-	@Override
-	public void testNestedFunctionDeclarators() throws Exception {
-	}
-
-	@Override
-	public void testConstantExpressionBinding() throws Exception {
-	}
-
-	@Override
-	public void testAmbiguousDeclaration_259373() throws Exception {
-	}
-
-	@Override
-	public void testSizeofFunctionType_252243() throws Exception {
-	}
-
-	@Override
-	public void testSkipAggregateInitializer_297550() throws Exception {
-	}
-
-	@Override
-	public void testDeepElseif_298455() throws Exception {
-	}
-
-	@Override
-	public void testAttributeSyntax_298841() throws Exception {
-	}
-
-	@Override
-	public void testEmptyTrailingMacro_303152() throws Exception {
-	}
-
-	@Override // not applicable to lr parser memory usage.
-	public void testLargeTrivialAggregateInitializer_253690() throws Exception {
-	}
-
-	@Override
-	public void testMaximumTrivialExpressionsInInitializers_412380() throws Exception {
-	}
-
-	@Override
-	public void testNoSkipTrivialAggregateInitializer_412380() throws Exception {
-	}
-
-	@Override
-	public void testNoSkipNonTrivialAggregateInitializer_412380() throws Exception {
-	}
-
-	@Override
-	protected IASTTranslationUnit parse(String code, ParserLanguage lang, boolean useGNUExtensions,
-			boolean expectNoProblems) throws ParserException {
-		return parse(code, lang, useGNUExtensions, expectNoProblems, -1);
-	}
-
-	@Override
-	protected IASTTranslationUnit parse(String code, ParserLanguage lang, boolean useGNUExtensions,
-			boolean expectNoProblems, int limitTrivialInitializers) throws ParserException {
-		ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
-		ParseHelper.Options options = new ParseHelper.Options();
-		options.setCheckSyntaxProblems(expectNoProblems);
-		options.setCheckPreprocessorProblems(expectNoProblems);
-		options.setLimitTrivialInitializers(limitTrivialInitializers);
-		return ParseHelper.parse(code, language, options);
-	}
-
-	protected ILanguage getCLanguage() {
-		return GCCLanguage.getDefault();
-	}
-
-	protected ILanguage getCPPLanguage() {
-		return GPPLanguage.getDefault();
-	}
-
-	public void testMultipleHashHash() throws Exception {
-		String code = "#define TWICE(a)  int a##tera; int a##ther; \n TWICE(pan)";
-		parseAndCheckBindings(code, ParserLanguage.C);
-	}
-
-	public void testBug191279() throws Exception {
-		StringBuilder sb = new StringBuilder();
-		sb.append(" /**/ \n");
-		sb.append("# define YO 99 /**/ \n");
-		sb.append("# undef YO /**/ ");
-		sb.append(" /* $ */ ");
-		String code = sb.toString();
-		parseAndCheckBindings(code, ParserLanguage.C);
-	}
-
-	public void testBug191324() throws Exception {
-		StringBuilder sb = new StringBuilder();
-		sb.append("int x$y = 99; \n");
-		sb.append("int $q = 100; \n"); // can use $ as first character in identifier
-		sb.append("#ifndef SS$_INVFILFOROP \n");
-		sb.append("int z; \n");
-		sb.append("#endif \n");
-		String code = sb.toString();
-		parseAndCheckBindings(code, ParserLanguage.C);
-	}
-
-	public void testBug192009_implicitInt() throws Exception {
-		String code = "main() { int x; }";
-		IASTTranslationUnit tu = parse(code, ParserLanguage.C, false, true);
-
-		IASTDeclaration[] declarations = tu.getDeclarations();
-		assertEquals(1, declarations.length);
-
-		IASTFunctionDefinition main = (IASTFunctionDefinition) declarations[0];
-		ICASTSimpleDeclSpecifier declSpec = (ICASTSimpleDeclSpecifier) main.getDeclSpecifier();
-		assertEquals(0, declSpec.getType());
-
-		assertEquals("main", main.getDeclarator().getName().toString());
-	}
-
-	/* I don't care about C98
-	 */
-	@Override
-	public void testBug196468_emptyArrayInitializer() {
-	}
-
-	public void _testBug196468_emptyArrayInitializer() throws Exception {
-		super.testBug196468_emptyArrayInitializer();
-	}
-
-	/* LPG holds on to all the tokens as you parse, so I don't think
-	 * it would be easy to fix this bug.
-	 */
-	@Override
-	public void testScalabilityOfLargeTrivialInitializer_253690() {
-	}
-
-	public void _testScalabilityOfLargeTrivialInitializer_253690() throws Exception {
-
-		super.testScalabilityOfLargeTrivialInitializer_253690();
-	}
-
-	/* All of the identifiers in the code resolve correctly.
-	 * The problem is that some of the expressions parse wrong but
-	 * thats not actually a big deal. Fixing this bug will be
-	 * difficult so defer it to the future.
-	 */
-	@Override
-	public void testBinaryVsCastAmbiguities_237057() {
-	}
-
-	public void _testBinaryVsCastAmbiguities_237057() throws Exception {
-		super.testBinaryVsCastAmbiguities_237057();
-	}
-
-	/* All of the identifiers in the code resolve correctly.
-	 * The problem is that some of the expressions parse wrong but
-	 * thats not actually a big deal. Fixing this bug will be
-	 * difficult so defer it to the future.
-	 */
-	@Override
-	public void testCastVsFunctionCallAmbiguities_237057() {
-	}
-
-	public void _testCastVsFunctionCallAmbiguities_237057() throws Exception {
-		super.testCastVsFunctionCallAmbiguities_237057();
-	}
-
-	/* The LR parser generates the AST for switch statements
-	 * differently than the DOM parser.
-	 */
-	@Override
-	public void testCaseRange_211882() {
-	}
-
-	public void _testCaseRange_211882() throws Exception {
-		super.testCaseRange_211882();
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRUtilOldTests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRUtilOldTests.java
deleted file mode 100644
index 9b15b90..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRUtilOldTests.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2009 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.tests;
-
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GCCLanguage;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-import org.eclipse.cdt.core.parser.ParserLanguage;
-import org.eclipse.cdt.core.parser.tests.ast2.AST2UtilOldTests;
-import org.eclipse.cdt.internal.core.parser.ParserException;
-
-import junit.framework.AssertionFailedError;
-import junit.framework.TestSuite;
-
-@SuppressWarnings("restriction")
-public class LRUtilOldTests extends AST2UtilOldTests {
-
-	public static TestSuite suite() {
-		return suite(LRUtilOldTests.class);
-	}
-
-	@Override
-	@SuppressWarnings("unused")
-	protected IASTTranslationUnit parse(String code, ParserLanguage lang, boolean useGNUExtensions,
-			boolean expectNoProblems) throws ParserException {
-		ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
-		return ParseHelper.parse(code, language, expectNoProblems);
-	}
-
-	protected ILanguage getCLanguage() {
-		return GCCLanguage.getDefault();
-	}
-
-	protected ILanguage getCPPLanguage() {
-		return GPPLanguage.getDefault();
-	}
-
-	@Override
-	public void testCastExpression() throws Exception { // A not typedefed
-		try {
-			super.testCastExpression();
-			fail();
-		} catch (AssertionFailedError expectedException) {
-		}
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRUtilTests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRUtilTests.java
deleted file mode 100644
index f94e781..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/LRUtilTests.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2009 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.tests;
-
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GCCLanguage;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-import org.eclipse.cdt.core.parser.ParserLanguage;
-import org.eclipse.cdt.core.parser.tests.ast2.AST2UtilTests;
-import org.eclipse.cdt.internal.core.parser.ParserException;
-
-import junit.framework.TestSuite;
-
-@SuppressWarnings("restriction")
-public class LRUtilTests extends AST2UtilTests {
-
-	public static TestSuite suite() {
-		return suite(LRUtilTests.class);
-	}
-
-	@Override
-	protected IASTTranslationUnit parse(String code, ParserLanguage lang) throws ParserException {
-		return parse(code, lang, false, true);
-	}
-
-	@Override
-	protected IASTTranslationUnit parse(String code, ParserLanguage lang, boolean useGNUExtensions)
-			throws ParserException {
-		return parse(code, lang, useGNUExtensions, true);
-	}
-
-	@Override
-	@SuppressWarnings("unused")
-	protected IASTTranslationUnit parse(String code, ParserLanguage lang, boolean useGNUExtensions,
-			boolean expectNoProblems) throws ParserException {
-		ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
-		return ParseHelper.parse(code, language, expectNoProblems);
-	}
-
-	protected ILanguage getCLanguage() {
-		return GCCLanguage.getDefault();
-	}
-
-	protected ILanguage getCPPLanguage() {
-		return GPPLanguage.getDefault();
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/ParseHelper.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/ParseHelper.java
deleted file mode 100644
index f0b8a09..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/ParseHelper.java
+++ /dev/null
@@ -1,289 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2013 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.tests;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.cdt.core.dom.ICodeReaderFactory;
-import org.eclipse.cdt.core.dom.ast.ASTVisitor;
-import org.eclipse.cdt.core.dom.ast.IASTCompletionNode;
-import org.eclipse.cdt.core.dom.ast.IASTName;
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.ast.IBinding;
-import org.eclipse.cdt.core.dom.ast.IProblemBinding;
-import org.eclipse.cdt.core.model.ILanguage;
-import org.eclipse.cdt.core.parser.CodeReader;
-import org.eclipse.cdt.core.parser.FileContent;
-import org.eclipse.cdt.core.parser.IScannerInfo;
-import org.eclipse.cdt.core.parser.IncludeFileContentProvider;
-import org.eclipse.cdt.core.parser.ParserUtil;
-import org.eclipse.cdt.core.parser.ScannerInfo;
-import org.eclipse.cdt.core.parser.tests.ast2.AST2TestBase;
-import org.eclipse.cdt.internal.core.dom.parser.c.CVisitor;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTNameBase;
-import org.eclipse.core.runtime.CoreException;
-
-import junit.framework.AssertionFailedError;
-
-/**
- * Utility methods for parsing test code using the C99 LPG parser.
- *
- * @author Mike Kucera
- */
-@SuppressWarnings({ "restriction", "nls" })
-public class ParseHelper {
-
-	static int testsRun = 0;
-
-	static protected class NameResolver extends ASTVisitor {
-		{
-			shouldVisitNames = true;
-		}
-
-		public List<IASTName> nameList = new ArrayList<>();
-		public List<String> problemBindings = new ArrayList<>();
-		public int numNullBindings = 0;
-
-		@Override
-		public int visit(IASTName name) {
-			nameList.add(name);
-			IBinding binding = name.resolveBinding();
-			if (binding instanceof IProblemBinding) {
-				// Suppress assertion that would be thrown for computing string representation
-				// of template-ids. The flag will be reset by BaseTestCase.setUp().
-				CPPASTNameBase.sAllowNameComputation = true;
-				problemBindings.add(name.toString());
-			}
-			if (binding == null)
-				numNullBindings++;
-			return PROCESS_CONTINUE;
-		}
-
-		public IASTName getName(int idx) {
-			if (idx < 0 || idx >= nameList.size())
-				return null;
-			return nameList.get(idx);
-		}
-
-		public int size() {
-			return nameList.size();
-		}
-	}
-
-	public static class Options {
-
-		boolean checkSyntaxProblems = true;
-		boolean checkPreprocessorProblems = true;
-		boolean checkBindings = false;
-
-		int expectedProblemBindings;
-		String[] problems;
-		int limitTrivialInitializers = -1;
-
-		public Options setCheckSyntaxProblems(boolean checkSyntaxProblems) {
-			this.checkSyntaxProblems = checkSyntaxProblems;
-			return this;
-		}
-
-		public Options setCheckBindings(boolean checkBindings) {
-			this.checkBindings = checkBindings;
-			return this;
-		}
-
-		public Options setCheckPreprocessorProblems(boolean checkPreprocessorProblems) {
-			this.checkPreprocessorProblems = checkPreprocessorProblems;
-			return this;
-		}
-
-		public Options setExpectedProblemBindings(int expectedProblemBindings) {
-			this.expectedProblemBindings = expectedProblemBindings;
-			return this;
-		}
-
-		public Options setProblems(String[] problems) {
-			this.problems = problems;
-			setExpectedProblemBindings(problems.length);
-			setCheckBindings(true);
-			return this;
-		}
-
-		public Options setLimitTrivialInitializers(int limitTrivialInitializers) {
-			this.limitTrivialInitializers = limitTrivialInitializers;
-			return this;
-		}
-
-	}
-
-	public static IASTTranslationUnit parse(String code, ILanguage lang, boolean expectNoProblems) {
-		Options options = new Options().setCheckSyntaxProblems(expectNoProblems)
-				.setCheckPreprocessorProblems(expectNoProblems);
-		return parse(code.toCharArray(), lang, options);
-	}
-
-	public static IASTTranslationUnit parse(String code, ILanguage lang, Options options) {
-		return parse(code.toCharArray(), lang, options);
-	}
-
-	public static IASTTranslationUnit parse(char[] code, ILanguage lang, Options options) {
-
-		return parse(FileContent.create(AST2TestBase.TEST_CODE, code), lang, new ScannerInfo(), null, options);
-	}
-
-	/**
-	 * TODO thats WAY too many parameters, need to use a parameter object, need to refactor the
-	 * DOM parser test suite so that its a lot cleaner.
-	 * @Deprecated
-	 */
-	public static IASTTranslationUnit parse(CodeReader codeReader, ILanguage language, IScannerInfo scanInfo,
-			ICodeReaderFactory fileCreator, Options options) {
-		testsRun++;
-
-		IASTTranslationUnit tu;
-		try {
-			int languageOptions = 0;
-			if (options.limitTrivialInitializers >= 0 && options.limitTrivialInitializers != Integer.MAX_VALUE)
-				languageOptions |= ILanguage.OPTION_SKIP_TRIVIAL_EXPRESSIONS_IN_AGGREGATE_INITIALIZERS;
-
-			tu = language.getASTTranslationUnit(codeReader, scanInfo, fileCreator, null, languageOptions,
-					ParserUtil.getParserLogService());
-		} catch (CoreException e) {
-			throw new AssertionFailedError(e.toString());
-		}
-
-		// should parse correctly first before we look at the bindings
-		if (options.checkSyntaxProblems) {
-
-			// this should work for C++ also, CVisitor.getProblems() and CPPVisitor.getProblems() are exactly the same code!
-			if (CVisitor.getProblems(tu).length != 0) {
-				throw new AssertionFailedError(" CVisitor has AST Problems ");
-			}
-		}
-
-		if (options.checkPreprocessorProblems) {
-			if (tu.getPreprocessorProblems().length != 0) {
-				throw new AssertionFailedError(language.getName() + " TranslationUnit has Preprocessor Problems ");
-			}
-		}
-
-		// resolve all bindings
-		if (options.checkBindings) {
-			NameResolver res = new NameResolver();
-			tu.accept(res);
-			if (res.problemBindings.size() != options.expectedProblemBindings)
-				throw new AssertionFailedError("Expected " + options.expectedProblemBindings
-						+ " problem(s), encountered " + res.problemBindings.size());
-
-			if (options.problems != null) {
-				for (int i = 0; i < options.problems.length; i++) {
-					String expected = options.problems[i];
-					String actual = res.problemBindings.get(i);
-					if (!expected.equals(actual))
-						throw new AssertionFailedError(
-								String.format("Problem binding not equal, expected: %s, got: %s", expected, actual));
-				}
-			}
-		}
-
-		return tu;
-	}
-
-	/**
-	 * TODO thats WAY too many parameters, need to use a parameter object, need to refactor the
-	 * DOM parser test suite so that its a lot cleaner.
-	 */
-	public static IASTTranslationUnit parse(FileContent fileContent, ILanguage language, IScannerInfo scanInfo,
-			IncludeFileContentProvider fileContentProvider, Options options) {
-		testsRun++;
-
-		IASTTranslationUnit tu;
-		try {
-			int languageOptions = 0;
-			if (options.limitTrivialInitializers >= 0 && options.limitTrivialInitializers != Integer.MAX_VALUE)
-				languageOptions |= ILanguage.OPTION_SKIP_TRIVIAL_EXPRESSIONS_IN_AGGREGATE_INITIALIZERS;
-
-			tu = language.getASTTranslationUnit(fileContent, scanInfo, fileContentProvider, null, languageOptions,
-					ParserUtil.getParserLogService());
-		} catch (CoreException e) {
-			throw new AssertionFailedError(e.toString());
-		}
-
-		// should parse correctly first before we look at the bindings
-		if (options.checkSyntaxProblems) {
-
-			// this should work for C++ also, CVisitor.getProblems() and CPPVisitor.getProblems() are exactly the same code!
-			if (CVisitor.getProblems(tu).length != 0) {
-				throw new AssertionFailedError(" CVisitor has AST Problems ");
-			}
-		}
-
-		if (options.checkPreprocessorProblems) {
-			if (tu.getPreprocessorProblems().length != 0) {
-				throw new AssertionFailedError(language.getName() + " TranslationUnit has Preprocessor Problems ");
-			}
-		}
-
-		// resolve all bindings
-		if (options.checkBindings) {
-			NameResolver res = new NameResolver();
-			tu.accept(res);
-			if (res.problemBindings.size() != options.expectedProblemBindings)
-				throw new AssertionFailedError("Expected " + options.expectedProblemBindings
-						+ " problem(s), encountered " + res.problemBindings.size());
-
-			if (options.problems != null) {
-				for (int i = 0; i < options.problems.length; i++) {
-					String expected = options.problems[i];
-					String actual = res.problemBindings.get(i);
-					if (!expected.equals(actual))
-						throw new AssertionFailedError(
-								String.format("Problem binding not equal, expected: %s, got: %s", expected, actual));
-				}
-			}
-		}
-
-		return tu;
-	}
-
-	public static IASTTranslationUnit commentParse(String code, ILanguage language) {
-
-		IASTTranslationUnit tu;
-		try {
-			tu = language.getASTTranslationUnit(FileContent.create(AST2TestBase.TEST_CODE, code.toCharArray()),
-					new ScannerInfo(), null, null, ILanguage.OPTION_ADD_COMMENTS, ParserUtil.getParserLogService());
-		} catch (CoreException e) {
-			throw new AssertionFailedError(e.toString());
-		}
-		return tu;
-	}
-
-	public static IASTCompletionNode getCompletionNode(String code, ILanguage lang) {
-		int offset = code.length();
-		if (offset > 0 && '\n' == code.charAt(offset - 1)) {
-			offset--;
-		}
-		return getCompletionNode(code, lang, offset);
-	}
-
-	public static IASTCompletionNode getCompletionNode(String code, ILanguage language, int offset) {
-
-		try {
-			return language.getCompletionNode(FileContent.create(AST2TestBase.TEST_CODE, code.toCharArray()),
-					new ScannerInfo(), null, null, ParserUtil.getParserLogService(), offset);
-		} catch (CoreException e) {
-			throw new RuntimeException(e);
-		}
-	}
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/.classpath b/lrparser/org.eclipse.cdt.core.lrparser/.classpath
deleted file mode 100644
index d9af9f5..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/.classpath
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="src" path="old"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/.project b/lrparser/org.eclipse.cdt.core.lrparser/.project
deleted file mode 100644
index 80cab22..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.cdt.core.lrparser</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>net.sourceforge.metrics.builder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>net.sourceforge.metrics.nature</nature>
-	</natures>
-</projectDescription>
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/.settings/org.eclipse.jdt.core.prefs b/lrparser/org.eclipse.cdt.core.lrparser/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 2b6ecff..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,464 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch, *.xtend
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.mainOnlyProjectHasTestOnlyDependency=error
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.APILeak=warning
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
-org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
-org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
-org.eclipse.jdt.core.formatter.align_with_spaces=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
-org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped=true
-org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=true
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
-org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/.settings/org.eclipse.jdt.launching.prefs b/lrparser/org.eclipse.cdt.core.lrparser/.settings/org.eclipse.jdt.launching.prefs
deleted file mode 100644
index f8a131b..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/.settings/org.eclipse.jdt.launching.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.launching.PREF_COMPILER_COMPLIANCE_DOES_NOT_MATCH_JRE=warning
-org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=warning
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/.settings/org.eclipse.jdt.ui.prefs b/lrparser/org.eclipse.cdt.core.lrparser/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index e445763..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,133 +0,0 @@
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_missing_override_annotations_interface_methods=true
-cleanup.add_serial_version_id=false
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_functional_interfaces=false
-cleanup.convert_to_enhanced_for_loop=false
-cleanup.correct_indentation=false
-cleanup.format_source_code=true
-cleanup.format_source_code_changes_only=false
-cleanup.insert_inferred_type_arguments=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=true
-cleanup.qualify_static_field_accesses_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=false
-cleanup.qualify_static_method_accesses_with_declaring_class=false
-cleanup.remove_private_constructors=true
-cleanup.remove_redundant_modifiers=false
-cleanup.remove_redundant_semicolons=true
-cleanup.remove_redundant_type_arguments=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=false
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_anonymous_class_creation=false
-cleanup.use_blocks=false
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_lambda=true
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup_profile=_CDT
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_CDT
-formatter_settings_version=14
-internal.default.compliance=user
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.ondemandthreshold=1000
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.staticondemandthreshold=1000
-org.eclipse.jdt.ui.text.custom_code_templates=
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_functional_interfaces=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.insert_inferred_type_arguments=false
-sp_cleanup.make_local_variable_final=true
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_redundant_modifiers=false
-sp_cleanup.remove_redundant_semicolons=true
-sp_cleanup.remove_redundant_type_arguments=true
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=true
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_anonymous_class_creation=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_lambda=true
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/.settings/org.eclipse.pde.api.tools.prefs b/lrparser/org.eclipse.cdt.core.lrparser/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index ec9fbf3..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,184 +0,0 @@
-ANNOTATION_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITH_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-API_USE_SCAN_FIELD_SEVERITY=Error
-API_USE_SCAN_METHOD_SEVERITY=Error
-API_USE_SCAN_TYPE_SEVERITY=Error
-CLASS_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERCLASS_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_CHANGED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENTS=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETERS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_ANNOTATION=Ignore
-INVALID_JAVADOC_TAG=Error
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Warning
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-MISSING_EE_DESCRIPTIONS=Warning
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-automatically_removed_unused_problem_filters=false
-changed_execution_env=Error
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-incompatible_api_component_version_report_major_without_breaking_change=Warning
-incompatible_api_component_version_report_minor_without_api_change=Warning
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/.settings/org.eclipse.pde.prefs b/lrparser/org.eclipse.cdt.core.lrparser/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index d2dc703..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,35 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.build.bin.includes=1
-compilers.p.build.encodings=2
-compilers.p.build.java.compiler=2
-compilers.p.build.java.compliance=1
-compilers.p.build.missing.output=2
-compilers.p.build.output.library=1
-compilers.p.build.source.library=1
-compilers.p.build.src.includes=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=1
-compilers.p.missing-packages=2
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=2
-compilers.p.missing-version-require-bundle=2
-compilers.p.no-required-att=0
-compilers.p.no.automatic.module=1
-compilers.p.not-externalized-att=1
-compilers.p.service.component.without.lazyactivation=1
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/META-INF/MANIFEST.MF b/lrparser/org.eclipse.cdt.core.lrparser/META-INF/MANIFEST.MF
deleted file mode 100644
index 8d7fd38..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,29 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Bundle-Name.1
-Bundle-SymbolicName: org.eclipse.cdt.core.lrparser;singleton:=true
-Bundle-Version: 5.2.400.qualifier
-Bundle-ClassPath: .
-Require-Bundle: org.eclipse.cdt.core,
- net.sourceforge.lpg.lpgjavaruntime;bundle-version="1.1.0";visibility:=reexport,
- org.eclipse.core.runtime,
- org.apache.ant;bundle-version="1.7.0"
-Export-Package: org.eclipse.cdt.core.dom.lrparser,
- org.eclipse.cdt.core.dom.lrparser.action,
- org.eclipse.cdt.core.dom.lrparser.action.c99,
- org.eclipse.cdt.core.dom.lrparser.action.cpp,
- org.eclipse.cdt.core.dom.lrparser.action.gnu,
- org.eclipse.cdt.core.dom.lrparser.c99,
- org.eclipse.cdt.core.dom.lrparser.cpp,
- org.eclipse.cdt.core.dom.lrparser.gnu,
- org.eclipse.cdt.core.dom.lrparser.lpgextensions,
- org.eclipse.cdt.internal.core.dom.lrparser.c99;x-internal:=true,
- org.eclipse.cdt.internal.core.dom.lrparser.cpp,
- org.eclipse.cdt.internal.core.dom.lrparser.gcc,
- org.eclipse.cdt.internal.core.dom.lrparser.gpp
-Bundle-Localization: plugin
-Bundle-Vendor: %Bundle-Vendor.0
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-ActivationPolicy: lazy
-Bundle-Activator: org.eclipse.cdt.core.dom.lrparser.LRParserPlugin
-Automatic-Module-Name: org.eclipse.cdt.core.lrparser
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/about.html b/lrparser/org.eclipse.cdt.core.lrparser/about.html
deleted file mode 100644
index 164f781..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
-	<h2>About This Content</h2>
-
-	<p>November 30, 2017</p>
-	<h3>License</h3>
-
-	<p>
-		The Eclipse Foundation makes available all content in this plug-in
-		(&quot;Content&quot;). Unless otherwise indicated below, the Content
-		is provided to you under the terms and conditions of the Eclipse
-		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
-		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>
-		If you did not receive this Content directly from the Eclipse
-		Foundation, the Content is being redistributed by another party
-		(&quot;Redistributor&quot;) and different terms and conditions may
-		apply to your use of any object code in the Content. Check the
-		Redistributor's license that was provided with the Content. If no such
-		license exists, contact the Redistributor. Unless otherwise indicated
-		below, the terms and conditions of the EPL still apply to any source
-		code in the Content and such source code may be obtained at <a
-			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
-	</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/about.ini b/lrparser/org.eclipse.cdt.core.lrparser/about.ini
deleted file mode 100644
index e07a7bb..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/about.ini
+++ /dev/null
@@ -1,24 +0,0 @@
-# about.ini
-# contains information about a feature
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in about.properties
-# This file does not need to be translated.
-
-# Property "aboutText" contains blurb for "About" dialog (translated)
-aboutText=%blurb
-
-# Property "windowImage" contains path to window icon (16x16)
-# needed for primary features only
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=cdt_logo_icon32.png
-
-# Property "aboutImage" contains path to product image (500x330 or 115x164)
-# needed for primary features only
-
-# Property "appName" contains name of the application (translated)
-# needed for primary features only
-
-# Property "welcomePerspective" contains the id of the perspective in which the
-# welcome page is to be opened.
-# optional
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/about.mappings b/lrparser/org.eclipse.cdt.core.lrparser/about.mappings
deleted file mode 100644
index 936a803..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/about.mappings
+++ /dev/null
@@ -1,9 +0,0 @@
-# about.mappings
-# contains fill-ins for about.properties
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file does not need to be translated.
-
-# The following should contain the build version.
-# e.g. "0=20200106-1728"
-# This value will be added automatically via the build scripts
-0=${buildId}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/about.properties b/lrparser/org.eclipse.cdt.core.lrparser/about.properties
deleted file mode 100644
index 6e37f00..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/about.properties
+++ /dev/null
@@ -1,32 +0,0 @@
-###############################################################################
-# Copyright (c) 2008, 2020 Contributors to the Eclipse Foundation
-#
-# See the NOTICE file(s) distributed with this work for additional
-# information regarding copyright ownership.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-###############################################################################
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-# NOTE TO TRANSLATOR: Please do not translate the featureVersion variable.
-
-
-blurb=C/C++ C99 LR Parser\n\
-\n\
-Version: {featureVersion}\n\
-Build id: {0}\n\
-\n\
-Copyright (c) 2008, 2020 Contributors to the Eclipse Foundation
-\n\
-See the NOTICE file(s) distributed with this work for additional\n\
-information regarding copyright ownership.\n\
-\n\
-Visit http://www.eclipse.org/cdt
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/build.properties b/lrparser/org.eclipse.cdt.core.lrparser/build.properties
deleted file mode 100644
index 6b2ef49..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/build.properties
+++ /dev/null
@@ -1,25 +0,0 @@
-###############################################################################
-#  Copyright (c) 2007, 2009 IBM Corporation and others.
-#
-#  This program and the accompanying materials
-#  are made available under the terms of the Eclipse Public License 2.0
-#  which accompanies this distribution, and is available at
-#  https://www.eclipse.org/legal/epl-2.0/
-#
-#  SPDX-License-Identifier: EPL-2.0
-#
-#  Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               about.html,\
-               plugin.properties,\
-               plugin.xml,\
-               about.ini,\
-               about.mappings,\
-               about.properties,\
-               cdt_logo_icon32.png
-src.includes = about.html
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/cdt_logo_icon32.png b/lrparser/org.eclipse.cdt.core.lrparser/cdt_logo_icon32.png
deleted file mode 100644
index 470ca81..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/cdt_logo_icon32.png
+++ /dev/null
Binary files differ
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/build.xml b/lrparser/org.eclipse.cdt.core.lrparser/grammar/build.xml
deleted file mode 100644
index 0844cd4..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/build.xml
+++ /dev/null
@@ -1,146 +0,0 @@
-<!--
- Copyright (c) 2006, 2009 IBM Corporation and others.
- This program and the accompanying materials
- are made available under the terms of the Eclipse Public License 2.0
- which accompanies this distribution, and is available at
- https://www.eclipse.org/legal/epl-2.0/
- 
- SPDX-License-Identifier: EPL-2.0
-
- Contributors:
-     IBM Corporation - initial API and implementation
--->
-
-<project name="CDT Extensible LR Parser Framework" basedir=".">
-    <description>Generates LPG parsers from grammar files</description>
-	
-	<import file="generate.xml"/>
-
-	<property name="c99_location" value="../src/org/eclipse/cdt/internal/core/dom/lrparser/c99"/>
-	<property name="gcc_location" value="../src/org/eclipse/cdt/internal/core/dom/lrparser/gcc"/>
-	<property name="cpp_location" value="../src/org/eclipse/cdt/internal/core/dom/lrparser/cpp"/>
-	<property name="gpp_location" value="../src/org/eclipse/cdt/internal/core/dom/lrparser/gpp"/>
-		
-	<target name="all" depends="c99, gcc, cpp, gpp"/>
-	
-	<target name="clean_l_files">
-		<delete>
-			<fileset dir="${c99_location}" includes="**/*.l"/>
-			<fileset dir="${gcc_location}" includes="**/*.l"/>
-			<fileset dir="${cpp_location}" includes="**/*.l"/>
-			<fileset dir="${gpp_location}" includes="**/*.l"/>
-		</delete>
-	</target>
-	
-	
-	<target name="c99">
-		<description>Generate the C99 parser</description>
-		<!-- Generate main parser -->
-		<antcall target="generate_c99">
-            <param name="grammar_name" value="C99Parser"/>
-		</antcall>
-		<!-- Generate parser for disambiguating declarations vs expression statements -->
-		<antcall target="generate_c99">
-            <param name="grammar_name" value="C99ExpressionParser"/>
-		</antcall>
-		<!-- Generate parser for disambiguating cast expressions vs binary expressions-->
-		<antcall target="generate_c99">
-            <param name="grammar_name" value="C99NoCastExpressionParser"/>
-		</antcall>
-		<!-- Generate parser for disambiguating sizeof expressions -->
-		<antcall target="generate_c99">
-            <param name="grammar_name" value="C99SizeofExpressionParser"/>
-		</antcall>
-	</target>
-	
-	<target name="generate_c99">
-		<antcall target="generate">
-			<param name="grammar_dir" value="c99"/>
-			<param name="output_dir" value="${c99_location}"/>
-			<param name="grammar_name" value="${grammar_name}"/>
-		</antcall>
-	</target>
-
-	
-	<target name="gcc">
-		<description>Generate the GCC parser</description>
-		<!-- Generate main parser -->
-		<antcall target="generate_gcc">
-            <param name="grammar_name" value="GCCParser"/>
-		</antcall>
-		<antcall target="generate_gcc">
-            <param name="grammar_name" value="GCCSizeofExpressionParser"/>
-		</antcall>
-	</target>
-	
-	
-	<target name="generate_gcc">
-		<antcall target="generate">
-			<param name="grammar_dir" value="gcc"/>
-			<param name="output_dir" value="${gcc_location}"/>
-			<param name="grammar_name" value="${grammar_name}"/>
-		</antcall>
-	</target>
-	
-
-	<target name="cpp">
-		<description>Generate the C++ parser</description>
-		<antcall target="generate_cpp">
-			<param name="grammar_name" value="CPPParser"/>
-		</antcall>
-		<!-- Generate parser for disambiguating declarations vs expression statements -->
-		<antcall target="generate_cpp">
-            <param name="grammar_name" value="CPPExpressionParser"/>
-		</antcall>
-		<!-- Generate parser for disambiguating cast expressions vs binary expressions-->
-		<antcall target="generate_cpp">
-            <param name="grammar_name" value="CPPNoCastExpressionParser"/>
-		</antcall>
-		<!-- Generate parser for disambiguating sizeof expressions -->
-		<antcall target="generate_cpp">
-            <param name="grammar_name" value="CPPSizeofExpressionParser"/>
-		</antcall>
-		<!-- Generate parser for disambiguating declarators -->
-		<antcall target="generate_cpp">
-            <param name="grammar_name" value="CPPNoFunctionDeclaratorParser"/>
-		</antcall>
-		<!-- Generate parser for disambiguating template parameters -->
-		<antcall target="generate_cpp">
-            <param name="grammar_name" value="CPPTemplateTypeParameterParser"/>
-		</antcall>
-	</target>
-	
-	<target name="generate_cpp">
-		<antcall target="generate">
-			<param name="grammar_dir" value="cpp"/>
-			<param name="output_dir" value="${cpp_location}"/>
-			<param name="grammar_name" value="${grammar_name}"/>
-		</antcall>
-	</target>
-	
-	
-	<target name="gpp">
-		<description>Generate the GCC parser</description>
-		<!-- Generate main parser -->
-		<antcall target="generate_gpp">
-            <param name="grammar_name" value="GPPParser"/>
-		</antcall>
-		<antcall target="generate_gpp">
-            <param name="grammar_name" value="GPPSizeofExpressionParser"/>
-		</antcall>
-	</target>
-	
-	
-	<target name="generate_gpp">
-		<antcall target="generate">
-			<param name="grammar_dir" value="gpp"/>
-			<param name="output_dir" value="${gpp_location}"/>
-			<param name="grammar_name" value="${grammar_name}"/>
-		</antcall>
-	</target>
-	
-
-	
-	
-	
-</project>  
\ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99ExpressionParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99ExpressionParser.g
deleted file mode 100644
index 48a1934..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99ExpressionParser.g
+++ /dev/null
@@ -1,40 +0,0 @@
------------------------------------------------------------------------------------
--- Copyright (c) 2006, 2008 IBM Corporation and others.
--- This program and the accompanying materials
--- are made available under the terms of the Eclipse Public License 2.0
--- which accompanies this distribution, and is available at
--- https://www.eclipse.org/legal/epl-2.0/
---
--- SPDX-License-Identifier: EPL-2.0
---
--- Contributors:
---     IBM Corporation - initial API and implementation
------------------------------------------------------------------------------------
-
-%options la=2
-%options package=org.eclipse.cdt.internal.core.dom.lrparser.c99
-%options template=LRSecondaryParserTemplate.g
-
--- All we need to do is import the main parser and redefine the start symbol.
-
-
-$Import
-	C99Grammar.g
-$End
-
-$Define
-    $ast_class /. IASTExpression ./
-$End
-
-$Start
-    expression_parser_start
-$End
-
-$Rules
-
-	expression_parser_start
-	    ::= expression
-	      | ERROR_TOKEN
-	          /. $Build  consumeEmpty();  $EndBuild ./
-          
-$End
\ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99Grammar.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99Grammar.g
deleted file mode 100644
index 50b8746..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99Grammar.g
+++ /dev/null
@@ -1,1006 +0,0 @@
------------------------------------------------------------------------------------
--- Copyright (c) 2006, 2010 IBM Corporation and others.
--- This program and the accompanying materials
--- are made available under the terms of the Eclipse Public License 2.0
--- which accompanies this distribution, and is available at
--- https://www.eclipse.org/legal/epl-2.0/
---
--- SPDX-License-Identifier: EPL-2.0
---
--- Contributors:
---     IBM Corporation - initial API and implementation
------------------------------------------------------------------------------------
-
-$Terminals
-	
-	-- Keywords
-	
-	auto      break     case      char      const       continue  default   do       
-	double    else      enum      extern    float       for       goto      if        
-	inline    int       long      register  restrict    return    short     signed     
-	sizeof    static    struct    switch    typedef     union     unsigned  void 
-	volatile  while     _Bool     _Complex  _Imaginary
-	
-	-- Literals
-	
-	integer  floating  charconst  stringlit
-	
-	-- identifiers
-	
-	identifier
-
-	-- Special tokens used in content assist
-	
-	Completion
-	EndOfCompletion
-	
-	-- Unrecognized token
-	
-	Invalid
-	
-    -- Punctuation (with aliases to make grammar more readable)
-
-	LeftBracket      ::= '['
-	LeftParen        ::= '('
-	LeftBrace        ::= '{'
-	Dot              ::= '.'
-	Arrow            ::= '->'
-	PlusPlus         ::= '++'
-	MinusMinus       ::= '--'
-	And              ::= '&'
-	Star             ::= '*'
-	Plus             ::= '+'
-	Minus            ::= '-'
-	Tilde            ::= '~'
-	Bang             ::= '!'
-	Slash            ::= '/'
-	Percent          ::= '%'
-	RightShift       ::= '>>'
-	LeftShift        ::= '<<'
-	LT               ::= '<'
-	GT               ::= '>'
-	LE               ::= '<='
-	GE               ::= '>='
-	EQ               ::= '=='
-	NE               ::= '!='
-	Caret            ::= '^'
-	Or               ::= '|'
-	AndAnd           ::= '&&'
-	OrOr             ::= '||'
-	Question         ::= '?'
-	Colon            ::= ':'
-	DotDotDot        ::= '...'
-	Assign           ::= '='
-	StarAssign       ::= '*='
-	SlashAssign      ::= '/='
-	PercentAssign    ::= '%='
-	PlusAssign       ::= '+='
-	MinusAssign      ::= '-='
-	RightShiftAssign ::= '>>='
-	LeftShiftAssign  ::= '<<='
-	AndAssign        ::= '&='
-	CaretAssign      ::= '^='
-	OrAssign         ::= '|='
-	Comma            ::= ','
-
-    RightBracket     -- these four have special rules for content assist
-    RightParen     
-    RightBrace    
-    SemiColon
-    
-      
-$End
-
-
-$Globals
-/.	
-	import org.eclipse.cdt.internal.core.dom.parser.c.CNodeFactory;
-	import org.eclipse.cdt.core.dom.lrparser.action.c99.C99BuildASTParserAction;
-	import org.eclipse.cdt.core.dom.lrparser.action.c99.C99SecondaryParserFactory;
-./
-$End
-
--- TODO move this code into a common template
-
-$Define
-	$build_action_class /. C99BuildASTParserAction ./
-	$node_factory_create_expression /. CNodeFactory.getDefault() ./
-	$parser_factory_create_expression /. C99SecondaryParserFactory.getDefault() ./
-$End
-
-
-
-$Rules
-
--------------------------------------------------------------------------------------------
--- AST scopes
--------------------------------------------------------------------------------------------
-
-
-<openscope-ast> 
-    ::= $empty
-          /. $Build  openASTScope();  $EndBuild ./ 
-
-<empty>
-    ::= $empty 
-          /. $Build  consumeEmpty();  $EndBuild ./ 
-          
-          
--------------------------------------------------------------------------------------------
--- Content assist
--------------------------------------------------------------------------------------------
-
--- The EndOfCompletion token is a special token that matches some punctuation.
--- These tokens allow the parse to complete successfully after a Completion token
--- is encountered.
-
-
-']' ::=? 'RightBracket'
-       | 'EndOfCompletion'
-      
-')' ::=? 'RightParen'
-       | 'EndOfCompletion'
-      
-'}' ::=? 'RightBrace'
-       | 'EndOfCompletion'
-      
-';' ::=? 'SemiColon'
-       | 'EndOfCompletion'
-
-
-
--------------------------------------------------------------------------------------------
--- Expressions
--------------------------------------------------------------------------------------------
-
-identifier_token
-    ::= 'identifier'
-      | 'Completion'
-      
-
-literal
-    ::= 'integer'                    
-          /. $Build  consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant); $EndBuild ./
-      | 'floating'
-          /. $Build  consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant);  $EndBuild ./
-      | 'charconst'                  
-          /. $Build  consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant);   $EndBuild ./
-      | 'stringlit'
-          /. $Build  consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal);  $EndBuild ./
-
-
-primary_expression 
-    ::= literal 
-      | primary_expression_id
-          /. $Build  consumeExpressionID();  $EndBuild ./
-      | '(' expression ')'         
-          /. $Build  consumeExpressionBracketed();  $EndBuild ./
-
-
-primary_expression_id
-    ::= identifier_token
-
-          
-postfix_expression
-    ::= primary_expression
-      | postfix_expression '[' expression ']'
-          /. $Build  consumeExpressionArraySubscript();  $EndBuild ./
-      | postfix_expression '(' expression_list_opt ')'
-          /. $Build  consumeExpressionFunctionCall();  $EndBuild ./
-      | postfix_expression '.'  member_name
-          /. $Build  consumeExpressionFieldReference(false);  $EndBuild ./
-      | postfix_expression '->' member_name
-          /. $Build  consumeExpressionFieldReference(true);  $EndBuild ./
-      | postfix_expression '++'
-         /. $Build   consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr);  $EndBuild ./
-      | postfix_expression '--'
-          /. $Build  consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr);  $EndBuild ./
-      | '(' type_id ')' initializer_list
-          /. $Build  consumeExpressionTypeIdInitializer();  $EndBuild ./
- 
- 
-comma_opt
-    ::= ',' | $empty
-
-
-member_name
-    ::= identifier_token
-
-
-unary_expression
-    ::= postfix_expression
-      | '++' unary_expression
-          /. $Build  consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr);  $EndBuild ./
-      | '--' unary_expression
-          /. $Build  consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr);  $EndBuild ./
-      | '&' cast_expression
-          /. $Build  consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper);  $EndBuild ./
-      | '*' cast_expression
-          /. $Build  consumeExpressionUnaryOperator(IASTUnaryExpression.op_star);  $EndBuild ./
-      | '+' cast_expression
-          /. $Build  consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus);  $EndBuild ./
-      | '-' cast_expression
-          /. $Build  consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus);  $EndBuild ./
-      | '~' cast_expression
-          /. $Build  consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde);  $EndBuild ./
-      | '!' cast_expression
-          /. $Build  consumeExpressionUnaryOperator(IASTUnaryExpression.op_not);  $EndBuild ./
-      | 'sizeof' unary_expression
-          /. $Build  consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof);  $EndBuild ./
-      | 'sizeof' '(' type_id ')'
-          /. $Build  consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof);  $EndBuild ./  
-          
-
-cast_expression
-    ::= unary_expression
-      | '(' type_id ')' cast_expression
-          /. $Build  consumeExpressionCast(IASTCastExpression.op_cast);  $EndBuild ./
-
-
-multiplicative_expression
-    ::= cast_expression
-      | multiplicative_expression '*' cast_expression
-          /. $Build  consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply);  $EndBuild ./
-      | multiplicative_expression '/' cast_expression
-          /. $Build  consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide);  $EndBuild ./
-      | multiplicative_expression '%' cast_expression
-          /. $Build  consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo);  $EndBuild ./
-
-
-additive_expression
-    ::= multiplicative_expression
-      | additive_expression '+' multiplicative_expression
-      	  /. $Build  consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus);  $EndBuild ./
-      | additive_expression '-' multiplicative_expression
-          /. $Build  consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus);  $EndBuild ./
-
-
-shift_expression
-    ::= additive_expression
-      | shift_expression '<<' additive_expression
-          /. $Build  consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft);  $EndBuild ./
-      | shift_expression '>>' additive_expression
-          /. $Build  consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight);  $EndBuild ./
-
-
-relational_expression
-    ::= shift_expression
-      | relational_expression '<' shift_expression
-          /. $Build  consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan);  $EndBuild ./
-      | relational_expression '>' shift_expression
-          /. $Build  consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan);  $EndBuild ./
-      | relational_expression '<=' shift_expression
-          /. $Build  consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual);  $EndBuild ./
-      | relational_expression '>=' shift_expression
-          /. $Build  consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual);  $EndBuild ./
-
-
-equality_expression
-    ::= relational_expression
-      | equality_expression '==' relational_expression
-          /. $Build  consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals);  $EndBuild ./
-      | equality_expression '!=' relational_expression
-          /. $Build  consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals);  $EndBuild ./
-
-
-and_expression
-    ::= equality_expression
-      | and_expression '&' equality_expression
-          /. $Build  consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd);  $EndBuild ./
-
-
-exclusive_or_expression
-    ::= and_expression
-      | exclusive_or_expression '^' and_expression
-          /. $Build  consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor);  $EndBuild ./
-
-
-inclusive_or_expression
-    ::= exclusive_or_expression
-      | inclusive_or_expression '|' exclusive_or_expression
-          /. $Build  consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr);  $EndBuild ./
-
-
-logical_and_expression
-    ::= inclusive_or_expression
-      | logical_and_expression '&&' inclusive_or_expression
-          /. $Build  consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd);  $EndBuild ./
-
-
-logical_or_expression
-    ::= logical_and_expression
-      | logical_or_expression '||' logical_and_expression
-          /. $Build  consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr);  $EndBuild ./
-
-
-conditional_expression
-    ::= logical_or_expression
-      | logical_or_expression '?' expression ':' assignment_expression
-           /. $Build  consumeExpressionConditional();  $EndBuild ./
-
-
-assignment_expression
-    ::= conditional_expression
-      | unary_expression '='   assignment_expression
-          /. $Build  consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign);  $EndBuild ./
-      | unary_expression '*='  assignment_expression
-          /. $Build  consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign);  $EndBuild ./
-      | unary_expression '/='  assignment_expression
-          /. $Build  consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign);  $EndBuild ./
-      | unary_expression '%='  assignment_expression
-          /. $Build  consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign);  $EndBuild ./
-      | unary_expression '+='  assignment_expression
-          /. $Build  consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign);  $EndBuild ./
-      | unary_expression '-='  assignment_expression
-          /. $Build  consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign);  $EndBuild ./
-      | unary_expression '<<=' assignment_expression
-          /. $Build  consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign);  $EndBuild ./
-      | unary_expression '>>=' assignment_expression
-          /. $Build  consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign);  $EndBuild ./
-      | unary_expression '&='  assignment_expression
-          /. $Build  consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign);  $EndBuild ./
-      | unary_expression '^='  assignment_expression
-          /. $Build  consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign);  $EndBuild ./
-      | unary_expression '|='  assignment_expression
-          /. $Build  consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign);  $EndBuild ./
-
-	
--- special rule to avoid conflict between problem statements and problem expressions
-expression_in_statement
-    ::= expression_list
-
-
-expression
-    ::= expression_list
-    
-
-expression_list
-    ::= <openscope-ast> expression_list_actual
-          /. $Build  consumeExpressionList();  $EndBuild ./
-
-
-expression_list_opt
-   ::= expression_list
-     | $empty
-          /. $Build  consumeEmpty();  $EndBuild ./
-
-          
-expression_list_actual
-    ::= assignment_expression
-      | expression_list_actual ',' assignment_expression 
-
-
-constant_expression
-    ::= conditional_expression
-    
-
--------------------------------------------------------------------------------------------
--- Statements
--------------------------------------------------------------------------------------------
-      
-
-      
-statement
-    ::= labeled_statement
-      | compound_statement
-      | expression_statement
-      | selection_statement
-      | iteration_statement
-      | jump_statement
-      | ERROR_TOKEN
-          /. $Build  consumeStatementProblem();  $EndBuild ./
-
-
-labeled_statement
-    ::= identifier_token ':' statement
-    	  /. $Build  consumeStatementLabeled();  $EndBuild ./
-      | 'case' constant_expression ':' statement
-          /. $Build  consumeStatementCase();  $EndBuild ./
-      | 'default' ':' statement
-          /. $Build  consumeStatementDefault();  $EndBuild ./
-         
-         
-compound_statement
-    ::= '{' '}' 
-          /. $Build  consumeStatementCompoundStatement(false);  $EndBuild ./
-      | '{' <openscope-ast> block_item_list '}'
-          /. $Build  consumeStatementCompoundStatement(true);  $EndBuild ./
-         
-         
-block_item_list
-    ::= block_item
-      | block_item_list block_item
-      
-      
-block_item
-    ::= statement
-      | declaration
-          /. $Build  consumeStatementDeclarationWithDisambiguation();  $EndBuild ./
-         
-         
-expression_statement
-    ::= ';'
-          /. $Build  consumeStatementNull();  $EndBuild ./
-      | expression_in_statement ';'
-          /. $Build  consumeStatementExpression();  $EndBuild ./
-         
-         
-selection_statement
-    ::= 'if' '(' expression ')' statement
-          /. $Build  consumeStatementIf(false);  $EndBuild ./
-      | 'if' '(' expression ')' statement 'else' statement
-          /. $Build  consumeStatementIf(true);  $EndBuild ./
-      | 'switch' '(' expression ')' statement
-          /. $Build  consumeStatementSwitch();  $EndBuild ./
-  
-  
-expression_opt
-    ::= expression
-      | $empty
-          /. $Build  consumeEmpty();  $EndBuild ./
-
-
-iteration_statement
-    ::= 'do' statement 'while' '(' expression ')' ';'
-          /. $Build  consumeStatementDoLoop(true);  $EndBuild ./
-	  | 'do' statement
-          /. $Build  consumeStatementDoLoop(false);  $EndBuild ./
-      | 'while' '(' expression ')' statement
-          /. $Build  consumeStatementWhileLoop();  $EndBuild ./
-      | 'for' '(' expression_opt ';' expression_opt ';' expression_opt ')' statement
-          /. $Build  consumeStatementForLoop();  $EndBuild ./
-      | 'for' '(' declaration expression_opt ';' expression_opt ')' statement
-          /. $Build  consumeStatementForLoop();  $EndBuild ./
-          
-
-jump_statement
-    ::= 'goto' identifier_token ';'
-          /. $Build  consumeStatementGoto();  $EndBuild ./
-      | 'continue' ';'
-          /. $Build  consumeStatementContinue();  $EndBuild ./
-      | 'break' ';'
-          /. $Build  consumeStatementBreak();  $EndBuild ./
-      | 'return' ';'
-          /. $Build  consumeStatementReturn(false);  $EndBuild ./
-      | 'return' expression ';'
-          /. $Build  consumeStatementReturn(true);  $EndBuild ./
-    
-    
-    
--------------------------------------------------------------------------------------------
--- Declarations
--------------------------------------------------------------------------------------------
-
-      
-      
-declaration 
-    ::= declaration_specifiers  ';'
-          /. $Build  consumeDeclarationSimple(false);  $EndBuild ./
-	  | declaration_specifiers <openscope-ast> init_declarator_list ';'
-	      /. $Build  consumeDeclarationSimple(true);  $EndBuild ./
-         
-
-declaration_specifiers
-    ::= <openscope-ast> simple_declaration_specifiers
-          /. $Build  consumeDeclarationSpecifiersSimple();  $EndBuild ./
-      | <openscope-ast> struct_or_union_declaration_specifiers
-          /. $Build  consumeDeclarationSpecifiersStructUnionEnum();  $EndBuild ./
-      | <openscope-ast> elaborated_declaration_specifiers
-          /. $Build  consumeDeclarationSpecifiersStructUnionEnum();  $EndBuild ./
-      | <openscope-ast> enum_declaration_specifiers
-          /. $Build  consumeDeclarationSpecifiersStructUnionEnum();  $EndBuild ./
-      | <openscope-ast> typdef_name_declaration_specifiers
-          /. $Build  consumeDeclarationSpecifiersTypedefName();  $EndBuild ./
-
-
-no_type_declaration_specifier
-    ::= storage_class_specifier
-      | type_qualifier
-      | function_specifier
-    
-    
-no_type_declaration_specifiers
-    ::= no_type_declaration_specifier
-      | no_type_declaration_specifiers no_type_declaration_specifier
-  
-      
-simple_declaration_specifiers
-    ::= simple_type_specifier
-      | no_type_declaration_specifiers simple_type_specifier
-      | simple_declaration_specifiers simple_type_specifier
-      | simple_declaration_specifiers no_type_declaration_specifier
-      
-      
-struct_or_union_declaration_specifiers
-    ::= struct_or_union_specifier
-      | no_type_declaration_specifiers struct_or_union_specifier
-      | struct_or_union_declaration_specifiers no_type_declaration_specifier
-      
-      
-elaborated_declaration_specifiers
-    ::= elaborated_specifier
-      | no_type_declaration_specifiers elaborated_specifier
-      | elaborated_declaration_specifiers no_type_declaration_specifier
-
-
-enum_declaration_specifiers
-    ::= enum_specifier
-      | no_type_declaration_specifiers  enum_specifier
-      | enum_declaration_specifiers no_type_declaration_specifier
-
-
-typdef_name_declaration_specifiers
-    ::= type_name_specifier
-      | no_type_declaration_specifiers  type_name_specifier
-      | typdef_name_declaration_specifiers no_type_declaration_specifier
-    
-    
-init_declarator_list
-    ::= init_declarator
-      | init_declarator_list ',' init_declarator
-					  
-					  
-init_declarator 
-    ::= complete_declarator
-      | complete_declarator '=' initializer
-          /. $Build  consumeDeclaratorWithInitializer(true);  $EndBuild ./
-
-
-complete_declarator
-    ::= declarator
-
-
-storage_class_specifier
-    ::= storage_class_specifier_token
-          /. $Build  consumeToken();  $EndBuild ./
-
-
-storage_class_specifier_token 
-    ::= 'typedef'
-      | 'extern'
-      | 'static'
-      | 'auto'
-      | 'register'
-
-
-simple_type_specifier
-    ::= simple_type_specifier_token
-          /. $Build  consumeToken();  $EndBuild ./
-				
-simple_type_specifier_token
-    ::= 'void'        
-      | 'char'
-      | 'short'
-      | 'int'
-      | 'long'
-      | 'float'
-      | 'double'
-      | 'signed'
-      | 'unsigned'
-      | '_Bool'
-      | '_Complex'
-      | '_Imaginary'
-		
-		
-type_name_specifier
-    ::= identifier_token
-          /. $Build  consumeToken();  $EndBuild ./
-       
-
-      
-struct_or_union_specifier
-    ::= struct_or_union struct_or_union_specifier_hook '{' <openscope-ast> struct_declaration_list_opt '}'
-          /. $Build  consumeTypeSpecifierComposite(false); $EndBuild ./           
-      | struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook '{' <openscope-ast> struct_declaration_list_opt '}'
-          /. $Build  consumeTypeSpecifierComposite(true); $EndBuild ./ 
-          
-struct_or_union_specifier_hook
-    ::= $empty
-
-struct_or_union_specifier_suffix_hook
-    ::= $empty
-
-struct_or_union
-    ::= 'struct'
-      | 'union'
-      
-      
-elaborated_specifier          
-    ::= 'struct' elaborated_specifier_hook identifier_token
-          /. $Build  consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); $EndBuild ./
-      | 'union'  elaborated_specifier_hook identifier_token
-          /. $Build  consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); $EndBuild ./
-      | 'enum' elaborated_specifier_hook identifier_token
-          /. $Build  consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); $EndBuild ./
-          
-elaborated_specifier_hook
-    ::= $empty
-    
-    
-struct_declaration_list_opt
-    ::= struct_declaration_list
-      | $empty
-
-struct_declaration_list
-    ::= struct_declaration
-      | struct_declaration_list struct_declaration
-      
-
-struct_declaration
-    ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ';' -- regular declarators plus bit fields
-          /. $Build  consumeStructDeclaration(true);  $EndBuild ./
-      | specifier_qualifier_list ';'
-          /. $Build  consumeStructDeclaration(false);  $EndBuild ./
-      | ERROR_TOKEN
-          /. $Build  consumeDeclarationProblem();  $EndBuild ./
-
-
--- just reuse declaration_specifiers, makes grammar a bit more lenient but thats OK
-specifier_qualifier_list
-    ::= declaration_specifiers
-           
-
-struct_declarator_list
-    ::= complete_struct_declarator
-      | struct_declarator_list ',' complete_struct_declarator
-
-
-complete_struct_declarator
-    ::= struct_declarator
-    
-
-struct_declarator
-    ::= declarator
-      | ':' constant_expression  
-          /. $Build  consumeBitField(false);  $EndBuild ./
-      | declarator ':' constant_expression		
-          /. $Build  consumeBitField(true);  $EndBuild ./
-		      
-            
-enum_specifier
-    ::= 'enum' enum_specifier_hook '{' <openscope-ast> enumerator_list_opt comma_opt '}'
-          /. $Build  consumeTypeSpecifierEnumeration(false); $EndBuild ./
-      | 'enum' enum_specifier_hook identifier_token '{' <openscope-ast> enumerator_list_opt comma_opt '}'
-          /. $Build  consumeTypeSpecifierEnumeration(true); $EndBuild ./
-      
-enum_specifier_hook
-    ::= $empty
-
-
-enumerator_list_opt
-    ::= enumerator_list
-      | $empty
-
-
-enumerator_list
-    ::= enumerator
-      | enumerator_list ',' enumerator
-      
-      
-enumerator
-    ::= identifier_token
-          /. $Build  consumeEnumerator(false); $EndBuild ./
-      | identifier_token '=' constant_expression
-          /. $Build  consumeEnumerator(true); $EndBuild ./
-      
-      
-type_qualifier
-    ::= type_qualifier_token
-          /. $Build  consumeToken();  $EndBuild ./
-     
-     
-type_qualifier_token
-    ::= 'const'
-      | 'restrict'
-      | 'volatile'
-
-
-function_specifier
-    ::= 'inline'    
-          /. $Build  consumeToken();  $EndBuild ./
-
-
-declarator
-    ::= direct_declarator
-      | <openscope-ast> pointer_seq direct_declarator
-          /. $Build  consumeDeclaratorWithPointer(true);  $EndBuild ./
-
-
-direct_declarator
-    ::= array_direct_declarator
-      | function_prototype_direct_declarator
-      | basic_direct_declarator
-      | knr_direct_declarator
-      
-
-basic_direct_declarator
-    ::= declarator_id_name
-          /. $Build  consumeDirectDeclaratorIdentifier();  $EndBuild ./
-      | '(' declarator ')'
-          /. $Build  consumeDirectDeclaratorBracketed();  $EndBuild ./
-
-
-declarator_id_name
-    ::= 'identifier'
-          /. $Build  consumeIdentifierName();  $EndBuild ./
-         
-         
-array_direct_declarator
-    ::= basic_direct_declarator array_modifier
-          /. $Build  consumeDirectDeclaratorArrayDeclarator(true);  $EndBuild ./
-      | array_direct_declarator array_modifier
-          /. $Build  consumeDirectDeclaratorArrayDeclarator(true);  $EndBuild ./
-
-
-function_prototype_direct_declarator
-    ::= function_direct_declarator
-         
-
-function_direct_declarator
-    ::= basic_direct_declarator '(' <openscope-ast> parameter_type_list ')'
-          /. $Build  consumeDirectDeclaratorFunctionDeclarator(true, true);  $EndBuild ./
-      | basic_direct_declarator '(' ')'
-          /. $Build  consumeDirectDeclaratorFunctionDeclarator(true, false);  $EndBuild ./
-
-
-function_declarator
-    ::= function_direct_declarator
-      | <openscope-ast> pointer_seq function_direct_declarator
-          /. $Build  consumeDeclaratorWithPointer(true);  $EndBuild ./
-
-
--- This is a hack because the parser cannot tell the difference between 
--- plain identifiers and types. Because of this an identifier_list would
--- always be parsed as a parameter_type_list instead. In a KnR funciton
--- definition we can use the extra list of declarators to disambiguate.
--- This rule should be merged back into direct_declarator if type info is
--- added to the parser. 
-
-knr_direct_declarator 
-    ::= basic_direct_declarator '(' <openscope-ast> identifier_list ')'
-          /. $Build  consumeDirectDeclaratorFunctionDeclaratorKnR();  $EndBuild ./
-
-
-knr_function_declarator
-    ::= knr_direct_declarator
-      | <openscope-ast> pointer_seq knr_direct_declarator
-          /. $Build  consumeDeclaratorWithPointer(true);  $EndBuild ./
-
-
-identifier_list
-    ::= 'identifier'
-          /. $Build  consumeIdentifierKnR();  $EndBuild ./
-      | identifier_list ',' 'identifier'
-          /. $Build  consumeIdentifierKnR();  $EndBuild ./
-                    
-
-array_modifier 
-    ::= '[' ']'
-          /. $Build  consumeDirectDeclaratorArrayModifier(false);  $EndBuild ./
-      | '[' <openscope-ast> array_modifier_type_qualifiers ']'
-         /. $Build  consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false);  $EndBuild ./
-      | '[' assignment_expression ']'
-          /. $Build  consumeDirectDeclaratorArrayModifier(true);  $EndBuild ./
-      | '[' <openscope-ast> array_modifier_type_qualifiers assignment_expression ']'
-          /. $Build  consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true);  $EndBuild ./
-      | '[' 'static' assignment_expression ']'
-         /. $Build  consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true);  $EndBuild ./
-      | '[' 'static' <openscope-ast> array_modifier_type_qualifiers assignment_expression ']'
-          /. $Build  consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true);  $EndBuild ./
-      | '[' <openscope-ast> array_modifier_type_qualifiers 'static' assignment_expression ']'
-          /. $Build  consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true);  $EndBuild ./
-      | '[' '*' ']'
-          /. $Build  consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false);  $EndBuild ./
-      | '[' <openscope-ast> array_modifier_type_qualifiers '*' ']'
-          /. $Build  consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false);  $EndBuild ./
-
-         
-array_modifier_type_qualifiers
-    ::= type_qualifier_list
-
-
-pointer_seq
-    ::= pointer_hook '*' pointer_hook
-          /. $Build  consumePointer();  $EndBuild ./
-      | pointer_seq pointer_hook '*' pointer_hook
-          /. $Build  consumePointer();  $EndBuild ./
-      | pointer_hook '*' pointer_hook <openscope-ast> type_qualifier_list
-          /. $Build  consumePointerTypeQualifierList();  $EndBuild ./
-      | pointer_seq pointer_hook '*' pointer_hook <openscope-ast> type_qualifier_list
-          /. $Build  consumePointerTypeQualifierList();  $EndBuild ./
-
-pointer_hook
-    ::= $empty
-
-
-type_qualifier_list
-    ::= type_qualifier
-      | type_qualifier_list type_qualifier
-
-
-parameter_type_list
-    ::= parameter_list
-          /. $Build  consumeEmpty();  $EndBuild ./
-      | parameter_list ',' '...'
-          /. $Build  consumePlaceHolder();  $EndBuild ./
-      | '...'  -- not spec
-          /. $Build  consumePlaceHolder();  $EndBuild ./
-
-
-parameter_list
-    ::= parameter_declaration
-      | parameter_list ',' parameter_declaration
-
-
-parameter_declaration
-    ::= declaration_specifiers complete_parameter_declarator
-          /. $Build  consumeParameterDeclaration();  $EndBuild ./
-      | declaration_specifiers
-          /. $Build  consumeParameterDeclarationWithoutDeclarator();  $EndBuild ./
-
-
-complete_parameter_declarator
-    ::= declarator
-      | abstract_declarator
-
-
-
--- only used in expressions, eg) sizeof, casts etc...
-type_id
-    ::= specifier_qualifier_list
-          /. $Build  consumeTypeId(false);  $EndBuild ./
-      | specifier_qualifier_list abstract_declarator
-          /. $Build  consumeTypeId(true);  $EndBuild ./
-
-
-abstract_declarator  -- a declarator that does not include an identifier
-    ::= direct_abstract_declarator
-      | <openscope-ast> pointer_seq
-          /. $Build  consumeDeclaratorWithPointer(false);  $EndBuild ./
-      | <openscope-ast> pointer_seq direct_abstract_declarator
-          /. $Build  consumeDeclaratorWithPointer(true);  $EndBuild ./
-
-
-direct_abstract_declarator
-    ::= basic_direct_abstract_declarator
-      | array_direct_abstract_declarator
-      | function_direct_abstract_declarator
-
-
-basic_direct_abstract_declarator
-    ::= '(' abstract_declarator ')'
-          /. $Build  consumeDirectDeclaratorBracketed();  $EndBuild ./
-          
-          
-array_direct_abstract_declarator
-    ::= array_modifier
-          /. $Build  consumeDirectDeclaratorArrayDeclarator(false);  $EndBuild ./
-      | array_direct_abstract_declarator array_modifier
-          /. $Build  consumeDirectDeclaratorArrayDeclarator(true);  $EndBuild ./
-      | basic_direct_abstract_declarator array_modifier
-          /. $Build  consumeDirectDeclaratorArrayDeclarator(true);  $EndBuild ./    
-          
-          
-function_direct_abstract_declarator
-    ::= '(' ')'
-          /. $Build  consumeDirectDeclaratorFunctionDeclarator(false, false);  $EndBuild  ./
-      | basic_direct_abstract_declarator '(' ')'
-          /. $Build  consumeDirectDeclaratorFunctionDeclarator(true, false);  $EndBuild ./
-      | '(' <openscope-ast> parameter_type_list ')'
-          /. $Build  consumeDirectDeclaratorFunctionDeclarator(false, true);  $EndBuild ./
-      | basic_direct_abstract_declarator '(' <openscope-ast> parameter_type_list ')'
-          /. $Build  consumeDirectDeclaratorFunctionDeclarator(true, true);  $EndBuild ./
-
-
-initializer
-    ::= assignment_expression
-          /. $Build  consumeInitializer();  $EndBuild ./
-      | initializer_list  
---CDT_70_FIX_FROM_50-#4
-         /. $Build  consumeInitializer();  $EndBuild ./
-          
-          
-initializer_list
-    ::= start_initializer_list '{' <openscope-ast> initializer_seq comma_opt '}' end_initializer_list
-          /. $Build  consumeInitializerList();  $EndBuild ./
-      | '{' <openscope-ast> '}'
-          /. $Build  consumeInitializerList();  $EndBuild ./
-
-
-start_initializer_list
-    ::= $empty
-          /. $Build  initializerListStart(); $EndBuild ./
-          
-end_initializer_list
-    ::= $empty
-          /. $Build  initializerListEnd(); $EndBuild ./
-          
-          
-initializer_seq
-    ::= initializer
-      | designated_initializer
-      | initializer_seq ',' initializer
-      | initializer_seq ',' designated_initializer
-            
-
-designated_initializer
-    ::= <openscope-ast> designation '=' initializer
-          /. $Build  consumeInitializerDesignated();  $EndBuild ./
-          
-    
-designation
-    ::= designator_list
-
-
-designator_list
-    ::= designator_base
-      | designator_list designator
-
-
-designator_base
-    ::= '[' constant_expression ']'
-          /. $Build  consumeDesignatorArray();  $EndBuild ./
-      | '.' identifier_token		
-          /. $Build  consumeDesignatorField();  $EndBuild ./
-
-designator
-    ::= '[' constant_expression ']'
-         /. $Build  consumeDesignatorArray();  $EndBuild ./
-      | '.' identifier_token		
-         /. $Build  consumeDesignatorField();  $EndBuild ./
-		
-		
--------------------------------------------------------------------------------------------
--- External Definitions
--------------------------------------------------------------------------------------------
-
-translation_unit
-    ::= external_declaration_list
-          /. $Build  consumeTranslationUnit();  $EndBuild  ./
-      | $empty
-          /. $Build  consumeTranslationUnit();  $EndBuild ./
-          
-          
-external_declaration_list
-    ::= external_declaration
-      | external_declaration_list external_declaration
-
-
-external_declaration
-    ::= function_definition
-      | declaration
-      | ';'
-          /. $Build  consumeDeclarationEmpty();  $EndBuild ./
-      | ERROR_TOKEN
-          /. $Build  consumeDeclarationProblem();  $EndBuild ./
-
-
--- Used by KnR
-declaration_list
-    ::= declaration
-      | declaration_list declaration
-
-      
--- The extra <openscope-ast> nonterminal before declarator in this rule is only there
--- to avoid a shift/reduce error with the rule for declaration. 
--- The symbol table scoped is opened in the rule for function_direct_declarator
-function_definition
-    ::= normal_function_definition
-         -- this rule is here as a special case (its not C99 spec) just to support implicit int in function definitions
-      | <openscope-ast>  function_declarator function_body
-          /. $Build  consumeFunctionDefinition(false);  $EndBuild ./
-      | declaration_specifiers <openscope-ast>  knr_function_declarator <openscope-ast> declaration_list compound_statement
-          /. $Build  consumeFunctionDefinitionKnR();  $EndBuild ./
-
-normal_function_definition
-    ::= declaration_specifiers <openscope-ast>  function_declarator function_body
-          /. $Build  consumeFunctionDefinition(true);  $EndBuild ./
-          
--- same syntax as compound_statement but a symbol table scope isn't opened
-function_body
-    ::= '{' '}' 
-          /. $Build  consumeStatementCompoundStatement(false);  $EndBuild ./
-      | '{' <openscope-ast> block_item_list '}'
-          /. $Build  consumeStatementCompoundStatement(true);  $EndBuild ./
-          
-$End
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99NoCastExpressionParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99NoCastExpressionParser.g
deleted file mode 100644
index cc2dd60..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99NoCastExpressionParser.g
+++ /dev/null
@@ -1,42 +0,0 @@
------------------------------------------------------------------------------------
--- Copyright (c) 2006, 2009 IBM Corporation and others.
--- This program and the accompanying materials
--- are made available under the terms of the Eclipse Public License 2.0
--- which accompanies this distribution, and is available at
--- https://www.eclipse.org/legal/epl-2.0/
---
--- SPDX-License-Identifier: EPL-2.0
---
--- Contributors:
---     IBM Corporation - initial API and implementation
------------------------------------------------------------------------------------
-
-%options la=2
-%options package=org.eclipse.cdt.internal.core.dom.lrparser.c99
-%options template=LRSecondaryParserTemplate.g
-
-$Import
-	C99Grammar.g
-$DropRules
-
-	cast_expression
-	    ::= '(' type_id ')' cast_expression
-
-$End
-
-$Define
-    $ast_class /. IASTExpression ./
-$End
-
-$Start
-    no_cast_start
-$End
-
-$Rules 
-
-	no_cast_start
-	    ::= expression
-	      | ERROR_TOKEN
-	          /. $Build  consumeEmpty();  $EndBuild ./
-          
-$End
\ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99Parser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99Parser.g
deleted file mode 100644
index 2a2bdca..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99Parser.g
+++ /dev/null
@@ -1,27 +0,0 @@
------------------------------------------------------------------------------------
--- Copyright (c) 2006, 2008 IBM Corporation and others.
--- This program and the accompanying materials
--- are made available under the terms of the Eclipse Public License 2.0
--- which accompanies this distribution, and is available at
--- https://www.eclipse.org/legal/epl-2.0/
---
--- SPDX-License-Identifier: EPL-2.0
---
--- Contributors:
---     IBM Corporation - initial API and implementation
------------------------------------------------------------------------------------
-
-%options la=2
-%options package=org.eclipse.cdt.internal.core.dom.lrparser.c99
-%options template=LRParserTemplate.g
-
--- This file is needed because LPG won't allow redefinition of the 
--- start symbol, so C99Grammar.g cannot define the start symbol.
-
-$Import
-	C99Grammar.g
-$End
-
-$Start
-    translation_unit
-$End
\ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99SizeofExpressionParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99SizeofExpressionParser.g
deleted file mode 100644
index 0e475cd..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99SizeofExpressionParser.g
+++ /dev/null
@@ -1,43 +0,0 @@
------------------------------------------------------------------------------------
--- Copyright (c) 2006, 2009 IBM Corporation and others.
--- This program and the accompanying materials
--- are made available under the terms of the Eclipse Public License 2.0
--- which accompanies this distribution, and is available at
--- https://www.eclipse.org/legal/epl-2.0/
---
--- SPDX-License-Identifier: EPL-2.0
---
--- Contributors:
---     IBM Corporation - initial API and implementation
------------------------------------------------------------------------------------
-
-%options la=2
-%options package=org.eclipse.cdt.internal.core.dom.lrparser.c99
-%options template=LRSecondaryParserTemplate.g
-
-
-$Import
-	C99Grammar.g
-$DropRules
-
-	unary_expression
-	    ::= 'sizeof' '(' type_id ')'
-    
-$End
-
-$Define
-    $ast_class /. IASTExpression ./
-$End
-
-$Start
-    no_sizeof_type_id_start
-$End
-
-$Rules 
-
-	no_sizeof_type_id_start
-	    ::= expression
-	      | ERROR_TOKEN
-	          /. $Build  consumeEmpty();  $EndBuild ./
-          
-$End
\ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPExpressionParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPExpressionParser.g
deleted file mode 100644
index 5d52628..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPExpressionParser.g
+++ /dev/null
@@ -1,39 +0,0 @@
------------------------------------------------------------------------------------
--- Copyright (c) 2006, 2008 IBM Corporation and others.
--- This program and the accompanying materials
--- are made available under the terms of the Eclipse Public License 2.0
--- which accompanies this distribution, and is available at
--- https://www.eclipse.org/legal/epl-2.0/
---
--- SPDX-License-Identifier: EPL-2.0
---
--- Contributors:
---     IBM Corporation - initial API and implementation
------------------------------------------------------------------------------------
-
-%options la=2
-%options package=org.eclipse.cdt.internal.core.dom.lrparser.cpp
-%options template=LRSecondaryParserTemplate.g
-
--- All we need to do is import the main parser and redefine the start symbol.
-
-$Import
-	CPPGrammar.g
-$End
-
-$Define
-    $ast_class /. IASTExpression ./
-$End
-
-$Start
-    expression_parser_start
-$End
-
-$Rules
-
-	expression_parser_start
-	    ::= expression
-	      | ERROR_TOKEN
-	          /. $Build  consumeEmpty();  $EndBuild ./
-          
-$End
\ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPGrammar.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPGrammar.g
deleted file mode 100644
index b11e9c8..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPGrammar.g
+++ /dev/null
@@ -1,1832 +0,0 @@
-----------------------------------------------------------------------------------
--- Copyright (c) 2006, 2010 IBM Corporation and others.
--- This program and the accompanying materials
--- are made available under the terms of the Eclipse Public License 2.0
--- which accompanies this distribution, and is available at
--- https://www.eclipse.org/legal/epl-2.0/
---
--- SPDX-License-Identifier: EPL-2.0
---
--- Contributors:
---     IBM Corporation - initial API and implementation
-----------------------------------------------------------------------------------
-
-
-$Terminals
-	
-	-- Keywords
-
-	asm  auto  bool  break  case  catch  char  class  
-	const  const_cast  continue  default  delete  do    
-	double  dynamic_cast  else  enum  explicit  export  
-	extern  false  float  for  friend  goto  if  inline  
-	int  long  mutable  namespace  new  operator  private
-	protected  public  register  reinterpret_cast  return
-	short  signed  sizeof  static  static_cast  struct
-	switch  template  this  throw   try  true  typedef
-	typeid  typename  union  unsigned  using  virtual
-	void  volatile  wchar_t  while
-	
-	-- Literals
-	
-	integer  floating  charconst  stringlit
-	
-	-- Identifiers
-	
-	identifier 
-
-	-- Special tokens used in content assist
-	
-	Completion
-	EndOfCompletion
-	
-	-- Unrecognized token, not actually used anywhere in the grammar, always leads to syntax error
-	
-	Invalid
-	
-    -- Punctuation (with aliases to make grammar more readable)
-
-	LeftBracket      ::= '['
-	LeftParen        ::= '('
-	Dot              ::= '.'
-	DotStar          ::= '.*'
-	Arrow            ::= '->'
-	ArrowStar        ::= '->*'
-	PlusPlus         ::= '++'
-	MinusMinus       ::= '--'
-	And              ::= '&'
-	Star             ::= '*'
-	Plus             ::= '+'
-	Minus            ::= '-'
-	Tilde            ::= '~'
-	Bang             ::= '!'
-	Slash            ::= '/'
-	Percent          ::= '%'
-	RightShift       ::= '>>'
-	LeftShift        ::= '<<'
-	LT               ::= '<'
-	GT               ::= '>'
-	LE               ::= '<='
-	GE               ::= '>='
-	EQ               ::= '=='
-	NE               ::= '!='
-	Caret            ::= '^'
-	Or               ::= '|'
-	AndAnd           ::= '&&'
-	OrOr             ::= '||'
-	Question         ::= '?'
-	Colon            ::= ':'
-	ColonColon       ::= '::'
-	DotDotDot        ::= '...'
-	Assign           ::= '='
-	StarAssign       ::= '*='
-	SlashAssign      ::= '/='
-	PercentAssign    ::= '%='
-	PlusAssign       ::= '+='
-	MinusAssign      ::= '-='
-	RightShiftAssign ::= '>>='
-	LeftShiftAssign  ::= '<<='
-	AndAssign        ::= '&='
-	CaretAssign      ::= '^='
-	OrAssign         ::= '|='
-	Comma            ::= ','
-
-    RightBracket     -- these four have special rules for content assist
-    RightParen     
-    RightBrace    
-    SemiColon
-    LeftBrace
-    
-$End
-
-
-$Globals
-/.	
-    import org.eclipse.cdt.core.dom.ast.cpp.*;
-	import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPNodeFactory;
-	import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPBuildASTParserAction;
-	import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPSecondaryParserFactory;
-./
-$End
-
-
-$Define
-	$build_action_class /. CPPBuildASTParserAction ./
-	$node_factory_create_expression /. CPPNodeFactory.getDefault() ./
-	$parser_factory_create_expression /. CPPSecondaryParserFactory.getDefault() ./
-$End
-
-
-$Rules
-
-------------------------------------------------------------------------------------------
--- AST scoping
-------------------------------------------------------------------------------------------
-
-
-<openscope-ast> 
-    ::= $empty
-          /. $Build  openASTScope();  $EndBuild ./ 
-
-<empty>
-    ::= $empty 
-          /. $Build  consumeEmpty();  $EndBuild ./ 
-           
-------------------------------------------------------------------------------------------
--- Content assist
-------------------------------------------------------------------------------------------
-
--- The EndOfCompletion token is a special token that matches some punctuation.
--- These tokens allow the parse to complete successfully after a Completion token
--- is encountered.
-
-
-']' ::=? 'RightBracket'
-       | 'EndOfCompletion'
-      
-')' ::=? 'RightParen'
-       | 'EndOfCompletion'
-      
-'}' ::=? 'RightBrace'
-       | 'EndOfCompletion'
-      
-';' ::=? 'SemiColon'
-       | 'EndOfCompletion'
-
-'{' ::=? 'LeftBrace'
-       | 'EndOfCompletion'
-
-
-
-------------------------------------------------------------------------------------------
--- Basic Concepts
-------------------------------------------------------------------------------------------
-
--- The extra external declaration rules are there just so that ERROR_TOKEN can be
--- caught at the top level.
-
-translation_unit
-    ::= declaration_seq_opt
-          /. $Build  consumeTranslationUnit(); $EndBuild ./
-      
-
-------------------------------------------------------------------------------------------
--- Expressions
-------------------------------------------------------------------------------------------
-
-identifier_token
-    ::= 'identifier'
-      | 'Completion'
-      
-
-literal
-    ::= 'integer'
-           /. $Build  consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); $EndBuild ./
-      | 'floating'
-           /. $Build  consumeExpressionLiteral(ICPPASTLiteralExpression.lk_float_constant); $EndBuild ./
-      | 'charconst'
-           /. $Build  consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant); $EndBuild ./
-      | 'stringlit'
-           /. $Build  consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal); $EndBuild ./  
-      | 'true'
-           /. $Build  consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true); $EndBuild ./
-      | 'false'
-           /. $Build  consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false); $EndBuild ./
-      | 'this'
-           /. $Build  consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this); $EndBuild ./
-           
-           
-primary_expression
-    ::= literal
-      | '(' expression ')'
-           /. $Build  consumeExpressionBracketed();  $EndBuild ./
-      | id_expression
-      
-      
-id_expression 
-    ::= qualified_or_unqualified_name
-           /. $Build  consumeExpressionName();  $EndBuild ./
-      
-      
--- Pushes an IASTName on the stack, if you want an id expression then wrap the name
-qualified_or_unqualified_name
-    ::= unqualified_id_name
-      | qualified_id_name
-
-
-unqualified_id_name
-    ::= identifier_name
-      | operator_function_id_name
-      | conversion_function_id_name
-      | template_id_name
-      | '~' identifier_token
-          /. $Build  consumeDestructorName();  $EndBuild ./
-      | '~' template_id_name
-          /. $Build  consumeDestructorNameTemplateId();  $EndBuild ./
-     -- | '~' class_name
-    
-
-
--- wrap an identifier in a name node
-identifier_name
-    ::= identifier_token
-           /. $Build  consumeIdentifierName();  $EndBuild ./
-           
-
-template_opt
-    ::= 'template'
-          /. $Build  consumePlaceHolder();  $EndBuild ./
-      | $empty
-          /. $Build  consumeEmpty();  $EndBuild ./
-
-
--- the ::=? is necessary for example 8.2.1 in the C++ spec to parse correctly
-dcolon_opt
-    ::=? '::'
-          /. $Build  consumeToken();  $EndBuild ./  -- need the actual token to compute offsets
-      | $empty
-          /. $Build  consumeEmpty();  $EndBuild ./
-
-
-
-qualified_id_name
-    ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name
-          /. $Build  consumeQualifiedId(true);  $EndBuild ./
-      | '::' unqualified_id_name
-          /. $Build  consumeGlobalQualifiedId();  $EndBuild ./
-      
-      --| '::' identifier_name
-      --    /. $Build  consumeGlobalQualifiedId();  $EndBuild ./
-      --| '::' operator_function_id_name
-      --    /. $Build  consumeGlobalQualifiedId();  $EndBuild ./
-      --| '::' template_id_name
-      --    /. $Build  consumeGlobalQualifiedId();  $EndBuild ./
-
-
-
---unqualified_id_with_template_name
---    ::= template_opt unqualified_id_name
---          /. $Build  consumeNameWithTemplateKeyword();  $EndBuild ./
-    
-    
--- puts a list of names in reverse order on the stack
--- always ends with ::
--- this is the part of a qualified id that comes before the last ::
--- but does not include a :: at the front
-nested_name_specifier
-    ::= class_or_namespace_name '::' nested_name_specifier_with_template
-          /. $Build  consumeNestedNameSpecifier(true);  $EndBuild ./
-      | class_or_namespace_name '::' 
-          /. $Build  consumeNestedNameSpecifier(false);  $EndBuild ./
-      
-
-nested_name_specifier_with_template
-    ::= class_or_namespace_name_with_template '::' nested_name_specifier_with_template
-          /. $Build  consumeNestedNameSpecifier(true);  $EndBuild ./
-      | class_or_namespace_name_with_template '::' 
-          /. $Build  consumeNestedNameSpecifier(false);  $EndBuild ./
-
-      
-class_or_namespace_name_with_template
-    ::= template_opt class_or_namespace_name
-          /. $Build  consumeNameWithTemplateKeyword();  $EndBuild ./
-      
-      
-      
-nested_name_specifier_opt
-    ::= nested_name_specifier
-      | $empty
-           /. $Build  consumeNestedNameSpecifierEmpty();  $EndBuild ./
-
-      
-class_or_namespace_name -- just identifiers
-    ::= class_name
-      --| namespace_name -- namespace_name name can only be an identifier token, which is already accepted by class_name
-
-
-postfix_expression
-    ::= primary_expression
-      | postfix_expression '[' expression ']'
-          /. $Build  consumeExpressionArraySubscript();  $EndBuild ./
-      | postfix_expression '(' expression_list_opt ')'    
-          /. $Build  consumeExpressionFunctionCall();  $EndBuild ./
-      | simple_type_specifier '(' expression_list_opt ')' -- explicit type conversion operator
-          /. $Build  consumeExpressionSimpleTypeConstructor(); $EndBuild ./
-      | 'typename' dcolon_opt nested_name_specifier <empty>  identifier_name '(' expression_list_opt ')'
-          /. $Build  consumeExpressionTypeName(); $EndBuild ./
-      | 'typename' dcolon_opt nested_name_specifier template_opt template_id_name '(' expression_list_opt ')'
-          /. $Build  consumeExpressionTypeName(); $EndBuild ./
-      | postfix_expression '.' qualified_or_unqualified_name
-          /. $Build  consumeExpressionFieldReference(false, false);  $EndBuild ./
-      | postfix_expression '->' qualified_or_unqualified_name
-          /. $Build  consumeExpressionFieldReference(true, false);  $EndBuild ./
-      | postfix_expression '.' 'template' qualified_or_unqualified_name
-          /. $Build  consumeExpressionFieldReference(false, true);  $EndBuild ./
-      | postfix_expression '->' 'template' qualified_or_unqualified_name
-          /. $Build  consumeExpressionFieldReference(true, true);  $EndBuild ./
-      | postfix_expression '.' pseudo_destructor_name
-          /. $Build  consumeExpressionFieldReference(false, false);  $EndBuild ./
-      | postfix_expression '->' pseudo_destructor_name
-          /. $Build  consumeExpressionFieldReference(true, false);  $EndBuild ./
-      | postfix_expression '++'
-          /. $Build  consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr);  $EndBuild ./
-      | postfix_expression '--'
-          /. $Build  consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr);  $EndBuild ./
-      | 'dynamic_cast' '<' type_id '>' '(' expression ')'
-          /. $Build  consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast);  $EndBuild ./
-      | 'static_cast' '<' type_id '>' '(' expression ')'
-          /. $Build  consumeExpressionCast(ICPPASTCastExpression.op_static_cast);  $EndBuild ./
-      | 'reinterpret_cast' '<' type_id '>' '(' expression ')'
-          /. $Build  consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast);  $EndBuild ./
-      | 'const_cast' '<' type_id '>' '(' expression ')'
-          /. $Build  consumeExpressionCast(ICPPASTCastExpression.op_const_cast);  $EndBuild ./
-      | 'typeid' '(' expression ')'
-          /. $Build  consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid);  $EndBuild ./
-      | 'typeid' '(' type_id ')'
-          /. $Build  consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); $EndBuild ./
-
-      
-      
--- just names
--- Don't even know if I really need this rule, the DOM parser just parses qualified_or_unqualified_name
--- instead of pseudo_destructor_name. But the difference is I have different
--- token types, so maybe I do need this rule.
-pseudo_destructor_name
-    ::= dcolon_opt nested_name_specifier_opt type_name '::' destructor_type_name
-          /. $Build  consumePsudoDestructorName(true);  $EndBuild ./
-      | dcolon_opt nested_name_specifier 'template' template_id_name '::' destructor_type_name
-          /. $Build  consumePsudoDestructorName(true);  $EndBuild ./
-      | dcolon_opt nested_name_specifier_opt destructor_type_name
-          /. $Build  consumePsudoDestructorName(false);  $EndBuild ./
-
-
-destructor_type_name
-    ::= '~' identifier_token
-          /. $Build  consumeDestructorName();  $EndBuild ./
-      | '~' template_id_name
-          /. $Build  consumeDestructorNameTemplateId();  $EndBuild ./
-          
-          
---destructor_type_name
---    ::= '~' type_name
---          /. $Build  consumeDestructorName();  $EndBuild ./
-     
-          
-
-unary_expression
-    ::= postfix_expression
-      | new_expression
-      | delete_expression
-      | '++' cast_expression
-          /. $Build  consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr);  $EndBuild ./
-      | '--' cast_expression
-          /. $Build  consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr);  $EndBuild ./
-      | '&' cast_expression
-          /. $Build  consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper);  $EndBuild ./
-      | '*' cast_expression
-          /. $Build  consumeExpressionUnaryOperator(IASTUnaryExpression.op_star);  $EndBuild ./
-      | '+' cast_expression
-          /. $Build  consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus);  $EndBuild ./
-      | '-' cast_expression
-          /. $Build  consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus);  $EndBuild ./
-      | '~' cast_expression
-          /. $Build  consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde);  $EndBuild ./
-      | '!' cast_expression
-          /. $Build  consumeExpressionUnaryOperator(IASTUnaryExpression.op_not);  $EndBuild ./
-      | 'sizeof' unary_expression
-          /. $Build  consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof);  $EndBuild ./
-      | 'sizeof' '(' type_id ')'
-          /. $Build  consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof); $EndBuild ./
-
-
-new_expression
-    ::= dcolon_opt 'new' new_placement_opt new_type_id <openscope-ast> new_array_expressions_opt new_initializer_opt
-          /. $Build  consumeExpressionNew(true);  $EndBuild ./
-      | dcolon_opt 'new' new_placement_opt '(' type_id ')' <openscope-ast> new_array_expressions_opt new_initializer_opt
-          /. $Build  consumeExpressionNew(false);  $EndBuild ./
-
-
-new_placement_opt
-    ::= '(' expression_list ')'
-      | $empty
-          /. $Build  consumeEmpty();  $EndBuild ./
-
-
-new_type_id
-    ::= type_specifier_seq
-          /. $Build  consumeTypeId(false);  $EndBuild ./
-      | type_specifier_seq new_declarator
-          /. $Build  consumeTypeId(true);  $EndBuild ./
-
-
-new_declarator -- pointer operators are part of the type id, held in an empty declarator
-    ::= <openscope-ast> new_pointer_operators
-          /. $Build  consumeNewDeclarator(); $EndBuild ./
-
-
-new_pointer_operators  -- presumably this will not need an action as ptr_operator will have one
-    ::= ptr_operator 
-      | ptr_operator new_pointer_operators
-      
-
-new_array_expressions 
-    ::= '[' expression ']'
-      | new_array_expressions '[' constant_expression ']'
-
-
-new_array_expressions_opt
-    ::= new_array_expressions
-      | $empty
-
-
-new_initializer
-    ::= '(' expression_list_opt ')'  -- even if the parens are there we get null in the AST
-          /. $Build  consumeNewInitializer();  $EndBuild ./
-    
-    
-new_initializer_opt
-    ::= new_initializer
-      | $empty
-           /. $Build  consumeEmpty();  $EndBuild ./
-
-
-delete_expression
-    ::= dcolon_opt 'delete' cast_expression
-          /. $Build  consumeExpressionDelete(false);  $EndBuild ./
-      | dcolon_opt 'delete' '[' ']' cast_expression
-          /. $Build  consumeExpressionDelete(true);  $EndBuild ./
-
-
-cast_expression
-     ::= unary_expression
-       | '(' type_id ')' cast_expression
-           /. $Build  consumeExpressionCast(ICPPASTCastExpression.op_cast);  $EndBuild ./
-
-
-pm_expression
-    ::= cast_expression
-      | pm_expression '.*' cast_expression
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot);  $EndBuild ./
-      | pm_expression '->*' cast_expression
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow);  $EndBuild ./
-          
-
-multiplicative_expression
-    ::= pm_expression
-      | multiplicative_expression '*' pm_expression
-         /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply);  $EndBuild ./
-      | multiplicative_expression '/' pm_expression
-         /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide);  $EndBuild ./
-      | multiplicative_expression '%' pm_expression
-         /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo);  $EndBuild ./
-
-
-additive_expression
-    ::= multiplicative_expression
-      | additive_expression '+' multiplicative_expression
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus);  $EndBuild ./
-      | additive_expression '-' multiplicative_expression
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus);  $EndBuild ./
-      
-      
-shift_expression
-    ::= additive_expression
-      | shift_expression '<<' additive_expression
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft);  $EndBuild ./
-      | shift_expression '>>' additive_expression
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight);  $EndBuild ./
-      
-      
-relational_expression
-    ::= shift_expression
-      | relational_expression '<' shift_expression
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan);  $EndBuild ./
-      | relational_expression '>' shift_expression
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan);  $EndBuild ./
-      | relational_expression '<=' shift_expression
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual);  $EndBuild ./
-      | relational_expression '>=' shift_expression
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual);  $EndBuild ./
-
-
-equality_expression
-    ::= relational_expression
-      | equality_expression '==' relational_expression
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals);  $EndBuild ./
-      | equality_expression '!=' relational_expression
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals);  $EndBuild ./
-
-
-and_expression
-    ::= equality_expression
-      | and_expression '&' equality_expression
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd);  $EndBuild ./
-
-
-exclusive_or_expression
-    ::= and_expression
-      | exclusive_or_expression '^' and_expression
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor);  $EndBuild ./
-
-
-inclusive_or_expression
-    ::= exclusive_or_expression
-      | inclusive_or_expression '|' exclusive_or_expression
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr);  $EndBuild ./
-
-
-logical_and_expression
-    ::= inclusive_or_expression
-      | logical_and_expression '&&' inclusive_or_expression
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd);  $EndBuild ./
-
-
-logical_or_expression
-    ::= logical_and_expression
-      | logical_or_expression '||' logical_and_expression
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr);  $EndBuild ./
-      
-
-conditional_expression
-    ::= logical_or_expression
-      | logical_or_expression '?' expression ':' assignment_expression
-           /. $Build  consumeExpressionConditional();  $EndBuild ./
-
-
---rules for template arguments, relational_expression needs brackets when it contains >
-
-relational_expression_inTemplate
-    ::= shift_expression
-      | relational_expression_inTemplate '<' shift_expression 
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan);  $EndBuild ./
-      | '(' relational_expression_inTemplate '>' shift_expression ')'
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan);  $EndBuild ./
-      | relational_expression_inTemplate '<=' shift_expression
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual);  $EndBuild ./
-      | relational_expression_inTemplate '>=' shift_expression
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual);  $EndBuild ./
-
-equality_expression_inTemplate
-    ::= relational_expression_inTemplate
-      | equality_expression_inTemplate '==' relational_expression_inTemplate
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals);  $EndBuild ./
-      | equality_expression_inTemplate '!=' relational_expression_inTemplate
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals);  $EndBuild ./
-
-
-and_expression_inTemplate
-    ::= equality_expression_inTemplate
-      | and_expression_inTemplate '&' equality_expression_inTemplate
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd);  $EndBuild ./
-exclusive_or_expression_inTemplate
-    ::= and_expression_inTemplate
-      | exclusive_or_expression_inTemplate '^' and_expression_inTemplate
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor);  $EndBuild ./
-
-
-inclusive_or_expression_inTemplate
-    ::= exclusive_or_expression_inTemplate
-      | inclusive_or_expression_inTemplate '|' exclusive_or_expression_inTemplate
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr);  $EndBuild ./
-
-
-logical_and_expression_inTemplate
-    ::= inclusive_or_expression_inTemplate
-      | logical_and_expression_inTemplate '&&' inclusive_or_expression_inTemplate
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd);  $EndBuild ./
-
-
-logical_or_expression_inTemplate
-    ::= logical_and_expression_inTemplate
-      | logical_or_expression_inTemplate '||' logical_and_expression_inTemplate
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr);  $EndBuild ./
-      
-
-conditional_expression_inTemplate
-    ::= logical_or_expression_inTemplate
-      | logical_or_expression_inTemplate '?' expression ':' assignment_expression_inTemplate
-           /. $Build  consumeExpressionConditional();  $EndBuild ./
-
-assignment_expression_inTemplate
-    ::= conditional_expression_inTemplate
-      | throw_expression
-      | logical_or_expression_inTemplate '=' assignment_expression_inTemplate
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign);  $EndBuild ./
-      | logical_or_expression_inTemplate '*=' assignment_expression_inTemplate
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign);  $EndBuild ./
-      | logical_or_expression_inTemplate '/=' assignment_expression_inTemplate
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign);  $EndBuild ./
-      | logical_or_expression_inTemplate '%=' assignment_expression_inTemplate
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign);  $EndBuild ./
-      | logical_or_expression_inTemplate '+=' assignment_expression_inTemplate
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign);  $EndBuild ./
-      | logical_or_expression_inTemplate '-=' assignment_expression_inTemplate
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign);  $EndBuild ./
-      | logical_or_expression_inTemplate '>>=' assignment_expression_inTemplate
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign);  $EndBuild ./
-      | logical_or_expression_inTemplate '<<=' assignment_expression_inTemplate
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign);  $EndBuild ./
-      | logical_or_expression_inTemplate '&=' assignment_expression_inTemplate
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign);  $EndBuild ./
-      | logical_or_expression_inTemplate '^=' assignment_expression_inTemplate
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign);  $EndBuild ./
-      | logical_or_expression_inTemplate '|=' assignment_expression_inTemplate
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign);  $EndBuild ./
-
-
-
-
---end of rules for template arguments
-throw_expression
-    ::= 'throw'
-          /. $Build  consumeExpressionThrow(false);  $EndBuild ./
-      | 'throw' assignment_expression
-          /. $Build  consumeExpressionThrow(true);  $EndBuild ./
-
-
-assignment_expression
-    ::= conditional_expression
-      | throw_expression
-      | logical_or_expression '=' assignment_expression
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign);  $EndBuild ./
-      | logical_or_expression '*=' assignment_expression
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign);  $EndBuild ./
-      | logical_or_expression '/=' assignment_expression
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign);  $EndBuild ./
-      | logical_or_expression '%=' assignment_expression
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign);  $EndBuild ./
-      | logical_or_expression '+=' assignment_expression
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign);  $EndBuild ./
-      | logical_or_expression '-=' assignment_expression
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign);  $EndBuild ./
-      | logical_or_expression '>>=' assignment_expression
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign);  $EndBuild ./
-      | logical_or_expression '<<=' assignment_expression
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign);  $EndBuild ./
-      | logical_or_expression '&=' assignment_expression
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign);  $EndBuild ./
-      | logical_or_expression '^=' assignment_expression
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign);  $EndBuild ./
-      | logical_or_expression '|=' assignment_expression
-          /. $Build  consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign);  $EndBuild ./
-
-
-expression
-    ::= expression_list
-     -- | ERROR_TOKEN
-     --     /. $Build  consumeExpressionProblem(); $EndBuild ./
-      
--- expression_list and expression_list_opt always result in a single element on the stack
--- the element might be an expression, an expression list or null
-
-expression_list
-    ::= <openscope-ast> expression_list_actual
-           /. $Build  consumeExpressionList();  $EndBuild ./
-
-
-expression_list_actual
-    ::= assignment_expression
-      | expression_list_actual ',' assignment_expression
-
-      
-expression_list_opt
-   ::= expression_list
-     | $empty
-          /. $Build  consumeEmpty();  $EndBuild ./
-          
-          
-expression_opt
-    ::= expression
-      | $empty
-          /. $Build  consumeEmpty();  $EndBuild ./
-      
-      
-constant_expression
-    ::= conditional_expression
-
-
-constant_expression_opt
-    ::= constant_expression
-      | $empty
-          /. $Build  consumeEmpty();  $EndBuild ./
-      
-
-------------------------------------------------------------------------------------------
--- Statements
-------------------------------------------------------------------------------------------
-
-statement
-    ::= labeled_statement
-      | expression_statement
-      | compound_statement
-      | selection_statement
-      | iteration_statement
-      | jump_statement
-      | declaration_statement
-      | try_block
-      | ERROR_TOKEN
-          /. $Build  consumeStatementProblem();  $EndBuild ./
-
-
-labeled_statement
-    ::= 'identifier' ':' statement
-          /. $Build  consumeStatementLabeled();  $EndBuild ./
-      | 'case' constant_expression ':' statement
-          /. $Build  consumeStatementCase();  $EndBuild ./
-      | 'default' ':' statement
-          /. $Build  consumeStatementDefault();  $EndBuild ./
-      
-      
-expression_statement
-    ::= expression ';'
-           /. $Build  consumeStatementExpression();  $EndBuild ./
-      | ';'
-           /. $Build  consumeStatementNull();  $EndBuild ./
-    
-    
-compound_statement
-    ::= '{' <openscope-ast> statement_seq '}'
-          /. $Build  consumeStatementCompoundStatement(true);  $EndBuild ./
-      | '{' '}'
-          /. $Build  consumeStatementCompoundStatement(false);  $EndBuild ./
-    
-    
-statement_seq
-    ::= statement
-      | statement_seq statement
-
-
-selection_statement
-    ::= 'if' '(' condition ')' statement
-          /. $Build  consumeStatementIf(false);  $EndBuild ./
-      | 'if' '(' condition ')' statement 'else' statement
-          /. $Build  consumeStatementIf(true);  $EndBuild ./
-      | 'switch' '(' condition ')' statement
-          /. $Build  consumeStatementSwitch();  $EndBuild ./
-      
-
-
-condition
-    ::= expression
-      | type_specifier_seq declarator '=' assignment_expression
-          /. $Build  consumeConditionDeclaration();  $EndBuild ./
-
-condition_opt
-    ::= condition
-      | $empty
-          /. $Build  consumeEmpty(); $EndBuild ./
-
-
-iteration_statement
-    ::= 'while' '(' condition ')' statement
-          /. $Build  consumeStatementWhileLoop();  $EndBuild ./
-      | 'do' statement 'while' '(' expression ')' ';'
-          /. $Build  consumeStatementDoLoop(true);  $EndBuild ./
-      | 'do' statement
-          /. $Build  consumeStatementDoLoop(false);  $EndBuild ./
-      | 'for' '(' for_init_statement condition_opt ';' expression_opt ')' statement
-          /. $Build consumeStatementForLoop(); $EndBuild ./
-
-
--- I'm sure there are ambiguities here but we won't worry about it
-for_init_statement
-    ::= expression_statement
-      | simple_declaration_with_declspec
-          /. $Build  consumeStatementDeclaration();  $EndBuild ./
-
-
-jump_statement
-    ::= 'break' ';'
-          /. $Build  consumeStatementBreak();  $EndBuild ./
-      | 'continue' ';'
-          /. $Build  consumeStatementContinue();  $EndBuild ./
-      | 'return' expression ';'
-          /. $Build  consumeStatementReturn(true);  $EndBuild ./
-      | 'return' ';'
-          /. $Build  consumeStatementReturn(false);  $EndBuild ./
-      | 'goto' identifier_token ';'
-          /. $Build  consumeStatementGoto();  $EndBuild ./
-
-
--- Nested functions are not part of the C++ spec, but several
--- of the parser test cases expect them to work.
-declaration_statement
-    ::= block_declaration
-          /. $Build  consumeStatementDeclarationWithDisambiguation();  $EndBuild ./
-      | function_definition  -- not spec
-          /. $Build  consumeStatementDeclaration();  $EndBuild ./
-
-
-
-------------------------------------------------------------------------------------------
--- Declarations
-------------------------------------------------------------------------------------------
-
-
-declaration
-    ::= block_declaration
-      | function_definition
-      | template_declaration
-      | explicit_instantiation
-      | explicit_specialization
-      | linkage_specification
-      | namespace_definition
-      | ERROR_TOKEN
-          /. $Build  consumeDeclarationProblem();  $EndBuild ./
-
-
-block_declaration
-    ::= simple_declaration
-      | asm_definition
-      | namespace_alias_definition
-      | using_declaration
-      | using_directive
-
-
-declaration_seq
-    ::= declaration
-      | declaration_seq declaration
-
-
-
-declaration_seq_opt
-    ::= declaration_seq
-      | $empty
-      
-    
-    
-simple_declaration
-    ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ';'
-          /. $Build  consumeDeclarationSimple(true);  $EndBuild ./
-
-
-simple_declaration_with_declspec 
-    ::= declaration_specifiers <openscope-ast> init_declarator_list_opt ';'
-          /. $Build  consumeDeclarationSimple(true);  $EndBuild ./
-
-
--- declaration specifier nodes not created here, they are created by sub-rules 
--- these rules add IToken modifiers to the declspec nodes
-declaration_specifiers
-    ::= <openscope-ast> simple_declaration_specifiers
-          /. $Build  consumeDeclarationSpecifiersSimple();  $EndBuild ./
-      | <openscope-ast> class_declaration_specifiers
-          /. $Build  consumeDeclarationSpecifiersComposite();  $EndBuild ./
-      | <openscope-ast> elaborated_declaration_specifiers
-          /. $Build  consumeDeclarationSpecifiersComposite();  $EndBuild ./
-      | <openscope-ast> enum_declaration_specifiers
-          /. $Build  consumeDeclarationSpecifiersComposite();  $EndBuild ./
-      | <openscope-ast> type_name_declaration_specifiers
-          /. $Build  consumeDeclarationSpecifiersTypeName();  $EndBuild ./
-
-
-declaration_specifiers_opt
-    ::= declaration_specifiers
-      | $empty 
-          /. $Build  consumeEmpty();  $EndBuild ./
-
-          
-
--- what about type qualifiers... cv_qualifier
-no_type_declaration_specifier
-    ::= storage_class_specifier
-      | function_specifier
-      | cv_qualifier
-      | 'friend'
-          /. $Build  consumeToken(); $EndBuild ./
-      | 'typedef'
-          /. $Build  consumeToken(); $EndBuild ./
-      
-      
-no_type_declaration_specifiers
-    ::= no_type_declaration_specifier
-      | no_type_declaration_specifiers no_type_declaration_specifier
-  
-      
--- now also includes qualified names
--- if there is no long long then this may be simplified
-simple_declaration_specifiers
-    ::= simple_type_specifier
-      | no_type_declaration_specifiers simple_type_specifier
-      | simple_declaration_specifiers simple_type_specifier
-      | simple_declaration_specifiers no_type_declaration_specifier
-      | no_type_declaration_specifiers
-      
-      
--- struct, union or class!
-class_declaration_specifiers
-    ::= class_specifier
-      | no_type_declaration_specifiers class_specifier
-      | class_declaration_specifiers no_type_declaration_specifier
-      
-
--- elaborated means something different, but how different?
-elaborated_declaration_specifiers
-    ::= elaborated_type_specifier
-      | no_type_declaration_specifiers elaborated_type_specifier
-      | elaborated_declaration_specifiers no_type_declaration_specifier
-
-
--- Think this is the same
-enum_declaration_specifiers
-    ::= enum_specifier
-      | no_type_declaration_specifiers  enum_specifier
-      | enum_declaration_specifiers no_type_declaration_specifier
-
-
--- just typedefs in C99, but expanded to type names in C++ (no tagging needed)
-type_name_declaration_specifiers
-    ::= type_name_specifier
-      | no_type_declaration_specifiers  type_name_specifier
-      | type_name_declaration_specifiers no_type_declaration_specifier
-    
-    
-  -- TODO comment this out    
---decl_specifier
---    ::= storage_class_specifier -- just keywords
---      | type_specifier  -- this is where the fun is
- --     | function_specifier -- just keywords
- --     | 'friend'
- --     | 'typedef'
-
-
-storage_class_specifier
-    ::= 'auto'
-          /. $Build  consumeToken(); $EndBuild ./
-      | 'register'
-          /. $Build  consumeToken(); $EndBuild ./
-      | 'static'
-          /. $Build  consumeToken(); $EndBuild ./
-      | 'extern'
-          /. $Build  consumeToken(); $EndBuild ./
-      | 'mutable'
-          /. $Build  consumeToken(); $EndBuild ./
-
-
-function_specifier
-    ::= 'inline'
-          /. $Build  consumeToken(); $EndBuild ./
-      | 'virtual'
-          /. $Build  consumeToken(); $EndBuild ./
-      | 'explicit'
-          /. $Build  consumeToken(); $EndBuild ./
-
-
--- We have no way to disambiguate token types
---typedef_name
---    ::= identifier_token
-
-
---type_specifier
---    ::= simple_type_specifier  -- int, void etc...
---      | class_specifier  -- structs, unions, classes
---      | enum_specifier   -- enums
---      | elaborated_type_specifier  -- its elaborated, but this is different than c, includes typename
---      | cv_qualifier  -- the const and volatile keywords (separated because they can be applied to pointer modifiers)
-
-
---simple_type_specifier
---    ::= dcolon_opt nested_name_specifier_opt type_name
---          /. $Build  consumeQualifiedId(false);  $EndBuild ./
---      | dcolon_opt nested_name_specifier 'template' template_id_name
---          /. $Build  consumeQualifiedId(false);  $EndBuild ./
---      | simple_type_primitive_specifier
-      
-   
-
-simple_type_specifier
-    ::= simple_type_specifier_token
-          /. $Build  consumeToken(); $EndBuild ./
-
-simple_type_specifier_token
-    ::= 'char'
-      | 'wchar_t'
-      | 'bool'
-      | 'short'
-      | 'int'
-      | 'long'
-      | 'signed'
-      | 'unsigned'
-      | 'float'
-      | 'double'
-      | 'void'
-
-
--- last two rules moved here from simple_type_specifier
-type_name  -- all identifiers of some kind
-    ::= class_name
-     -- | enum_name 
-     -- | typedef_name
-
-
--- last two rules moved here from simple_type_specifier
-type_name_specifier  -- all identifiers of some kind
-    ::= type_name
-      | dcolon_opt nested_name_specifier_opt type_name
-          /. $Build  consumeQualifiedId(false);  $EndBuild ./
-      | dcolon_opt nested_name_specifier 'template' template_id_name
-          /. $Build  consumeQualifiedId(false);  $EndBuild ./
-      | 'typename' dcolon_opt nested_name_specifier identifier_name
-          /. $Build  consumeQualifiedId(false);  $EndBuild ./
-      | 'typename' dcolon_opt nested_name_specifier template_opt template_id_name
-          /. $Build  consumeQualifiedId(true);  $EndBuild ./
-      | 'typename' identifier_name
-
-
--- used for forward declaration and incomplete types
-elaborated_type_specifier
-    ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name
-          /. $Build  consumeTypeSpecifierElaborated(false);  $EndBuild ./
-      | class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt template_opt template_id_name
-          /. $Build  consumeTypeSpecifierElaborated(true);   $EndBuild ./
-      | 'enum' elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name      
-          /. $Build  consumeTypeSpecifierElaborated(false);  $EndBuild ./
-
-
-elaborated_specifier_hook
-    ::= $empty
-    
-
--- there is currently no way to disambiguate identifier tokens
---enum_name
---   ::= identifier_token
-
-
-comma_opt
-    ::= ',' | $empty
-    
-    
-enum_specifier
-    ::= 'enum' enum_specifier_hook '{' <openscope-ast> enumerator_list_opt comma_opt '}'
-          /. $Build  consumeTypeSpecifierEnumeration(false); $EndBuild ./
-      | 'enum' enum_specifier_hook identifier_token '{' <openscope-ast> enumerator_list_opt comma_opt '}'
-          /. $Build  consumeTypeSpecifierEnumeration(true); $EndBuild ./
-
-enum_specifier_hook
-    ::= $empty
-    
-enumerator_list
-    ::= enumerator_definition
-      | enumerator_list ',' enumerator_definition
-
-
-enumerator_list_opt
-    ::= enumerator_list
-      | $empty
-
-
-enumerator_definition
-    ::= identifier_token
-          /. $Build  consumeEnumerator(false); $EndBuild ./
-      | identifier_token '=' constant_expression
-          /. $Build  consumeEnumerator(true); $EndBuild ./
-
-
-namespace_name
-    ::= identifier_name
-    
-    
--- In the spec grammar this is broken down into original_namespace_definition and extension_namespace_definition.
--- But since we are not tracking identifiers it becomes the same thing, so its simplified here.
-namespace_definition
-    ::= 'namespace' namespace_name namespace_definition_hook '{' <openscope-ast> declaration_seq_opt '}'
-          /. $Build  consumeNamespaceDefinition(true);  $EndBuild ./
-      | 'namespace' namespace_definition_hook '{' <openscope-ast> declaration_seq_opt '}'
-           /. $Build  consumeNamespaceDefinition(false);  $EndBuild ./
-
-namespace_definition_hook
-    ::= $empty
-    
-              
-namespace_alias_definition
-    ::= 'namespace' identifier_token '=' dcolon_opt nested_name_specifier_opt namespace_name ';'
-           /. $Build  consumeNamespaceAliasDefinition(); $EndBuild ./
-           
-
--- make more lenient!
--- using_declaration
---     ::= 'using' typename_opt dcolon_opt nested_name_specifier unqualified_id_name ';'
---       | 'using' '::' unqualified_id_name ';'
-      
-      
--- TODO why not just check if the second token is 'typename'?
-using_declaration
-    ::= 'using' typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ';'
-          /. $Build  consumeUsingDeclaration();  $EndBuild ./
-
-
-typename_opt
-    ::= 'typename'
-          /. $Build  consumePlaceHolder();  $EndBuild ./
-      | $empty
-          /. $Build  consumeEmpty();  $EndBuild ./
-
-
-using_directive
-    ::= 'using' 'namespace' dcolon_opt nested_name_specifier_opt namespace_name ';'
-           /. $Build  consumeUsingDirective();  $EndBuild ./
-
-
-asm_definition
-    ::= 'asm' '(' 'stringlit' ')' ';'
-          /. $Build  consumeDeclarationASM(); $EndBuild ./
-
-
-linkage_specification
-    ::= 'extern' 'stringlit' '{' <openscope-ast> declaration_seq_opt '}'
-           /. $Build  consumeLinkageSpecification();  $EndBuild ./
-      | 'extern' 'stringlit' <openscope-ast> declaration
-           /. $Build  consumeLinkageSpecification();  $EndBuild ./
-
-
-init_declarator_list
-    ::= init_declarator_complete
-      | init_declarator_list ',' init_declarator_complete
-
-
-init_declarator_list_opt
-    ::= init_declarator_list
-      | $empty
-      
-      
-init_declarator_complete
-    ::= init_declarator
-          /. $Build  consumeInitDeclaratorComplete();  $EndBuild ./ 
-      
-      
-init_declarator
-    ::= complete_declarator 
-      | complete_declarator initializer
-          /. $Build  consumeDeclaratorWithInitializer(true);  $EndBuild ./
-
-complete_declarator
-    ::= declarator
-
-declarator
-    ::= direct_declarator 
-      | <openscope-ast> ptr_operator_seq direct_declarator
-          /. $Build  consumeDeclaratorWithPointer(true);  $EndBuild ./
-
-function_declarator
-    ::= function_direct_declarator
-      | <openscope-ast> ptr_operator_seq direct_declarator
-          /. $Build  consumeDeclaratorWithPointer(true);  $EndBuild ./
-      
-
-direct_declarator
-    ::= basic_direct_declarator
-      | function_direct_declarator
-      | array_direct_declarator
-
-
-basic_direct_declarator
-    ::= declarator_id_name
-         /. $Build  consumeDirectDeclaratorIdentifier();  $EndBuild ./
-      | '(' declarator ')'
-         /. $Build  consumeDirectDeclaratorBracketed();  $EndBuild ./
-
-
-function_direct_declarator
-    ::= basic_direct_declarator '(' <openscope-ast> parameter_declaration_clause ')' <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
-          /. $Build  consumeDirectDeclaratorFunctionDeclarator(true);  $EndBuild ./
-
-
-array_direct_declarator
-    ::= array_direct_declarator array_modifier
-           /. $Build  consumeDirectDeclaratorArrayDeclarator(true);  $EndBuild ./
-      | basic_direct_declarator array_modifier
-           /. $Build  consumeDirectDeclaratorArrayDeclarator(true);  $EndBuild ./
-
-
-array_modifier
-    ::= '[' constant_expression ']'
-           /. $Build  consumeDirectDeclaratorArrayModifier(true);  $EndBuild ./
-      | '[' ']'
-           /. $Build  consumeDirectDeclaratorArrayModifier(false);  $EndBuild ./      
-      
-
-ptr_operator
-    ::= pointer_hook '*' pointer_hook <openscope-ast> cv_qualifier_seq_opt
-          /. $Build  consumePointer();  $EndBuild ./
-      | pointer_hook '&' pointer_hook
-          /. $Build  consumeReferenceOperator();  $EndBuild ./
-      | dcolon_opt nested_name_specifier pointer_hook '*' pointer_hook <openscope-ast> cv_qualifier_seq_opt
-          /. $Build  consumePointerToMember();  $EndBuild ./
-
-pointer_hook
-    ::= $empty
-    
-ptr_operator_seq
-    ::= ptr_operator
-      | ptr_operator_seq ptr_operator
-
-
---ptr_operator_seq_opt
---    ::= ptr_operator_seq
---      | $empty
-
-
-cv_qualifier_seq
-    ::= cv_qualifier cv_qualifier_seq_opt
-
-
-cv_qualifier_seq_opt
-    ::= cv_qualifier_seq
-      | $empty
-
-
-cv_qualifier
-    ::= 'const'
-          /. $Build  consumeToken(); $EndBuild ./
-      | 'volatile'
-          /. $Build  consumeToken(); $EndBuild ./
-
-
-declarator_id_name
-   ::= qualified_or_unqualified_name
-     | dcolon_opt nested_name_specifier_opt type_name
-          /. $Build  consumeQualifiedId(false);  $EndBuild ./
-      
---declarator_id_name
---   ::= unqualified_id_name
---     | <empty> nested_name_specifier template_opt unqualified_id_name
---         /. $Build  consumeQualifiedId(true);  $EndBuild ./
-  
-
-type_id
-    ::= type_specifier_seq
-          /. $Build  consumeTypeId(false);  $EndBuild ./
-      | type_specifier_seq abstract_declarator
-          /. $Build  consumeTypeId(true);  $EndBuild ./
-
-
---type_specifier_seq
---    ::= type_specifier
---      | type_specifier_seq type_specifier
-
-
--- more lenient than spec, but easier to deal with
--- TODO are conflicts resolved by using the more strict rule? 
-type_specifier_seq
-    ::= declaration_specifiers
-
-
-abstract_declarator
-    ::= direct_abstract_declarator 
-      | <openscope-ast> ptr_operator_seq 
-          /. $Build  consumeDeclaratorWithPointer(false);  $EndBuild ./
-      | <openscope-ast> ptr_operator_seq direct_abstract_declarator
-          /. $Build  consumeDeclaratorWithPointer(true);  $EndBuild ./
-      
-      
-direct_abstract_declarator
-    ::= basic_direct_abstract_declarator
-      | array_direct_abstract_declarator
-      | function_direct_abstract_declarator
-      
-
-basic_direct_abstract_declarator
-    ::= '(' abstract_declarator ')'
-          /. $Build  consumeDirectDeclaratorBracketed();  $EndBuild ./
-      | '(' ')'
-          /. $Build  consumeAbstractDeclaratorEmpty();  $EndBuild ./
-          
-
-array_direct_abstract_declarator
-    ::= array_modifier
-          /. $Build  consumeDirectDeclaratorArrayDeclarator(false);  $EndBuild ./
-      | array_direct_abstract_declarator array_modifier
-          /. $Build  consumeDirectDeclaratorArrayDeclarator(true);  $EndBuild ./
-      | basic_direct_abstract_declarator array_modifier
-          /. $Build  consumeDirectDeclaratorArrayDeclarator(true);  $EndBuild ./    
-       
-
-function_direct_abstract_declarator                 
-     ::= basic_direct_abstract_declarator '(' <openscope-ast> parameter_declaration_clause ')' <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
-           /. $Build  consumeDirectDeclaratorFunctionDeclarator(true);  $EndBuild ./
-       | '(' <openscope-ast> parameter_declaration_clause ')' <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
-           /. $Build  consumeDirectDeclaratorFunctionDeclarator(false);  $EndBuild ./
-      
-
--- actions just place a marker indicating if '...' was parsed
-parameter_declaration_clause
-    ::= parameter_declaration_list_opt '...'
-          /. $Build  consumePlaceHolder();  $EndBuild ./
-      | parameter_declaration_list_opt
-          /. $Build  consumeEmpty();  $EndBuild ./
-      | parameter_declaration_list ',' '...'
-          /. $Build  consumePlaceHolder();  $EndBuild ./
-
-
-parameter_declaration_list
-     ::= parameter_declaration
-       | parameter_declaration_list ',' parameter_declaration
-
-
-parameter_declaration_list_opt
-    ::= parameter_declaration_list
-      | $empty
-
-
-abstract_declarator_opt
-    ::= abstract_declarator
-      | $empty
-          /. $Build  consumeEmpty();  $EndBuild ./
-          
-          
-parameter_declaration
-    ::= declaration_specifiers parameter_init_declarator
-          /. $Build  consumeParameterDeclaration();  $EndBuild ./
-      | declaration_specifiers
-          /. $Build  consumeParameterDeclarationWithoutDeclarator();  $EndBuild ./
-
-
-parameter_init_declarator
-	::= declarator
-	  | declarator '=' parameter_initializer
-	      /. $Build  consumeDeclaratorWithInitializer(true);  $EndBuild ./
-	  | abstract_declarator
-	  | abstract_declarator '=' parameter_initializer
-	      /. $Build  consumeDeclaratorWithInitializer(true);  $EndBuild ./
-	  | '=' parameter_initializer
-	      /. $Build  consumeDeclaratorWithInitializer(false);  $EndBuild ./
-	  
-	  
-parameter_initializer
-    ::= assignment_expression
-          /. $Build  consumeInitializer();  $EndBuild ./
-
-
-function_definition
-    ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body
-           /. $Build  consumeFunctionDefinition(false);  $EndBuild ./
-      | declaration_specifiers_opt function_declarator 'try' <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq
-           /. $Build  consumeFunctionDefinition(true);  $EndBuild ./
-
-    
-function_body
-    ::= compound_statement
-
-
-initializer
-    ::= '=' initializer_clause
-      | '(' expression_list ')'
-          /. $Build  consumeInitializerConstructor();  $EndBuild ./
-
-
-initializer_clause
-    ::= assignment_expression
-         /. $Build  consumeInitializer();  $EndBuild ./
-      | initializer_list
---CDT_70_FIX_FROM_50-#4
-          /. $Build  consumeInitializer();  $EndBuild ./
-         
-initializer_list
-    ::= start_initializer_list '{' <openscope-ast> initializer_seq ',' '}' end_initializer_list
-         /. $Build  consumeInitializerList();  $EndBuild ./
-      | start_initializer_list '{' <openscope-ast> initializer_seq '}' end_initializer_list
-         /. $Build  consumeInitializerList();  $EndBuild ./
-      | '{' <openscope-ast> '}'
-         /. $Build  consumeInitializerList();  $EndBuild ./
-
-
-start_initializer_list
-    ::= $empty
-          /. $Build  initializerListStart(); $EndBuild ./
-          
-end_initializer_list
-    ::= $empty
-          /. $Build  initializerListEnd(); $EndBuild ./
-
-initializer_seq
-    ::= initializer_clause
-      | initializer_seq ',' initializer_clause
-
-
-      
-------------------------------------------------------------------------------------------
--- Classes
-------------------------------------------------------------------------------------------
-
-
-class_name
-    ::= identifier_name
-      | template_id_name
-
-
-class_specifier
-    ::= class_head '{'   <openscope-ast> member_declaration_list_opt '}'
-          /.  $Build  consumeClassSpecifier();  $EndBuild ./
-       
-       
-class_head
-    ::= class_keyword composite_specifier_hook identifier_name_opt class_name_suffix_hook <openscope-ast> base_clause_opt
-          /. $Build  consumeClassHead(false);  $EndBuild ./
-      | class_keyword composite_specifier_hook template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt
-          /. $Build  consumeClassHead(false);  $EndBuild ./
-      | class_keyword composite_specifier_hook nested_name_specifier identifier_name class_name_suffix_hook <openscope-ast> base_clause_opt
-          /. $Build  consumeClassHead(true);  $EndBuild ./
-      | class_keyword composite_specifier_hook nested_name_specifier template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt
-          /. $Build  consumeClassHead(true);  $EndBuild ./
-
-composite_specifier_hook
-    ::= $empty
-    
-class_name_suffix_hook
-    ::= $empty
-
-identifier_name_opt
-    ::= identifier_name
-      | $empty
-          /. $Build  consumeEmpty();  $EndBuild./      
-      
-      
-class_keyword
-    ::= 'class'
-      | 'struct'
-      | 'union'
-
-
-visibility_label
-    ::= access_specifier_keyword ':'
-          /. $Build  consumeVisibilityLabel();  $EndBuild ./
-
-
-
-member_declaration
-    ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ';'
-          /. $Build  consumeDeclarationSimple(true);  $EndBuild ./
-      | declaration_specifiers_opt ';'
-          /. $Build  consumeDeclarationSimple(false);  $EndBuild ./
-      | function_definition ';' 
-      | function_definition      
-      | dcolon_opt nested_name_specifier template_opt unqualified_id_name ';'
-          /. $Build  consumeMemberDeclarationQualifiedId();  $EndBuild ./ 
-      | using_declaration  
-      | template_declaration
-      | explicit_specialization  -- not spec
-      | namespace_definition     -- not spec
-      | visibility_label 
-      | ERROR_TOKEN
-          /. $Build  consumeDeclarationProblem();  $EndBuild ./
-
-
-member_declaration_list
-    ::= member_declaration
-      | member_declaration_list member_declaration
-
-
-member_declaration_list_opt
-    ::= member_declaration_list
-      | $empty
-
-
-member_declarator_list
-    ::= member_declarator_complete
-      | member_declarator_list ',' member_declarator_complete
-
-
-member_declarator_complete
-    ::= member_declarator
-
-member_declarator
-    ::= declarator
-    -- parse pure specifier as a constant_initializer, reduces conflicts
-    -- | declarator pure_specifier  
-      | declarator constant_initializer
-          /. $Build  consumeMemberDeclaratorWithInitializer();  $EndBuild ./
-      | bit_field_declarator ':' constant_expression
-          /. $Build  consumeBitField(true);  $EndBuild ./
-      | ':' constant_expression
-          /. $Build  consumeBitField(false);  $EndBuild ./
-
-
-bit_field_declarator
-    ::= identifier_name
-          /. $Build  consumeDirectDeclaratorIdentifier();  $EndBuild ./
-
-
-constant_initializer
-    ::= '=' constant_expression
-            /. $Build  consumeInitializer();  $EndBuild ./
-
-
-base_clause
-    ::= ':' base_specifier_list
-
-
-base_clause_opt
-    ::= base_clause
-      | $empty 
-    
-
-base_specifier_list
-    ::= base_specifier
-      | base_specifier_list ',' base_specifier
-
-
-
-base_specifier
-    ::= dcolon_opt nested_name_specifier_opt class_name
-          /. $Build  consumeBaseSpecifier(false, false);  $EndBuild ./
-      | 'virtual' access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
-          /. $Build  consumeBaseSpecifier(true, true);  $EndBuild ./
-      | access_specifier_keyword 'virtual' dcolon_opt nested_name_specifier_opt class_name
-          /. $Build  consumeBaseSpecifier(true, true);  $EndBuild ./
-      | access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name
-          /. $Build  consumeBaseSpecifier(true, false);  $EndBuild ./
-
-      
-access_specifier_keyword
-    ::= 'private'
-          /. $Build  consumeToken();  $EndBuild ./
-      | 'protected'
-          /. $Build  consumeToken();  $EndBuild ./
-      | 'public'
-          /. $Build  consumeToken();  $EndBuild ./
-
-
-access_specifier_keyword_opt
-    ::= access_specifier_keyword
-      | $empty
-          /. $Build  consumeEmpty();  $EndBuild ./
-
-
-conversion_function_id_name
-    ::= conversion_function_id
-      | conversion_function_id '<' <openscope-ast> template_argument_list_opt '>'
-          /. $Build  consumeTemplateId();  $EndBuild ./
-          
-conversion_function_id
-    ::= 'operator' conversion_type_id
-          /. $Build  consumeConversionName(); $EndBuild ./
-
-
-conversion_type_id
-    ::= type_specifier_seq conversion_declarator
-          /. $Build  consumeTypeId(true);  $EndBuild ./
-      | type_specifier_seq
-          /. $Build  consumeTypeId(false);  $EndBuild ./
-
-
-conversion_declarator
-    ::= <openscope-ast> ptr_operator_seq
-          /. $Build  consumeDeclaratorWithPointer(false);  $EndBuild ./
-      
- 
- 
---conversion_declarator_opt
---    ::= conversion_declarator
---      | $empty
-      
-    
-ctor_initializer_list
-    ::= ':' mem_initializer_list
-
-
-ctor_initializer_list_opt
-    ::= ctor_initializer_list
-      | $empty
-      
-
-mem_initializer_list
-    ::= mem_initializer
-      | mem_initializer ',' mem_initializer_list
-
-
-mem_initializer
-    ::= mem_initializer_name '(' expression_list_opt ')'
-          /. $Build  consumeConstructorChainInitializer();  $EndBuild ./
-
-
-mem_initializer_name
-    ::= dcolon_opt nested_name_specifier_opt class_name
-          /. $Build  consumeQualifiedId(false);  $EndBuild ./
-      | identifier_name
-
-
-operator_function_id_name
-    ::= operator_id_name
-      | operator_id_name '<' <openscope-ast> template_argument_list_opt '>'
-          /. $Build  consumeTemplateId();  $EndBuild ./
-
-
-operator_id_name
-    ::= 'operator' overloadable_operator
-          /. $Build  consumeOperatorName();  $EndBuild ./
-
-
-overloadable_operator
-    ::= 'new' | 'delete' | 'new' '[' ']' | 'delete' '[' ']'
-      | '+' | '-' | '*' | '/' | '%' | '^' | '&' | '|' | '~'
-      | '!' | '=' | '<' | '>' | '+=' | '-=' | '*=' | '/=' | '%='
-      | '^=' | '&=' | '|=' | '<<' | '>>' | '>>=' | '<<=' | '==' | '!='
-      | '<=' | '>=' | '&&' | '||' | '++' | '--' | ',' | '->*' | '->'
-      | '(' ')' | '[' ']'
-
-
-template_declaration
-    ::= export_opt 'template' '<' <openscope-ast> template_parameter_list '>' declaration
-          /. $Build  consumeTemplateDeclaration();  $EndBuild ./
-
-
-export_opt
-    ::= 'export'
-          /. $Build  consumePlaceHolder();  $EndBuild ./
-      | $empty
-          /. $Build  consumeEmpty();  $EndBuild ./
-
-
-template_parameter_list
-    ::= template_parameter
-      | template_parameter_list ',' template_parameter
-
-
--- TODO There is an ambiguity in the spec grammar here, 
--- "class X" should be parsed as a type_parameter
--- and not as a parameter_declaration. Here precedence is used to disambiguate
--- but it would be better to refactor the grammar to remove the conflict.
-
-template_parameter
-    ::= type_parameter
-      | parameter_declaration
-          /. $Build  consumeTemplateParamterDeclaration();  $EndBuild ./ 
-
-
-type_parameter
-    ::= 'class' identifier_name_opt 
-          /. $Build  consumeSimpleTypeTemplateParameter(false);  $EndBuild ./
-      | 'class' identifier_name_opt '=' type_id
-          /. $Build  consumeSimpleTypeTemplateParameter(true);  $EndBuild ./
-      | 'typename' identifier_name_opt
-          /. $Build  consumeSimpleTypeTemplateParameter(false);  $EndBuild ./
-      | 'typename' identifier_name_opt '=' type_id
-          /. $Build  consumeSimpleTypeTemplateParameter(true);  $EndBuild ./
-      | 'template' '<' <openscope-ast> template_parameter_list '>' 'class' identifier_name_opt
-          /. $Build  consumeTemplatedTypeTemplateParameter(false);  $EndBuild ./
-      | 'template' '<' <openscope-ast> template_parameter_list '>' 'class' identifier_name_opt '=' id_expression
-          /. $Build  consumeTemplatedTypeTemplateParameter(true);  $EndBuild ./
-
-
-template_id_name
-    ::= identifier_name '<' <openscope-ast> template_argument_list_opt '>'
-          /. $Build  consumeTemplateId();  $EndBuild ./
---        | ERROR_TOKEN
---          /. $Build consumeTemplateIDError(); $EndBuild ./  
-
-
-template_argument_list
-    ::= template_argument
-       | template_argument_list ',' template_argument
-
-
-template_argument_list_opt
-    ::= template_argument_list
-      | $empty
-      
---type_id in template
-
-class_name_inTemplate
-    ::= identifier_name
-
-class_or_namespace_name_inTemplate -- just identifiers
-    ::= class_name_inTemplate
-      --| namespace_name -- namespace_name name can only be an identifier token, which is already accepted by 
-
-nested_name_specifier_inTemplate
-    ::= class_or_namespace_name_inTemplate '::' nested_name_specifier_with_template_inTemplate
-          /. $Build  consumeNestedNameSpecifier(true);  $EndBuild ./
-      | class_or_namespace_name_inTemplate '::' 
-          /. $Build  consumeNestedNameSpecifier(false);  $EndBuild ./
-      
-
-nested_name_specifier_with_template_inTemplate
-    ::= class_or_namespace_name_with_template_inTemplate '::' nested_name_specifier_with_template_inTemplate
-          /. $Build  consumeNestedNameSpecifier(true);  $EndBuild ./
-      | class_or_namespace_name_with_template_inTemplate '::' 
-          /. $Build  consumeNestedNameSpecifier(false);  $EndBuild ./
-
-      
-class_or_namespace_name_with_template_inTemplate
-    ::= template_opt class_or_namespace_name_inTemplate
-          /. $Build  consumeNameWithTemplateKeyword();  $EndBuild ./
-    
-nested_name_specifier_opt_inTemplate
-    ::= nested_name_specifier_inTemplate
-      | $empty
-           /. $Build  consumeNestedNameSpecifierEmpty();  $EndBuild ./
-
-
-type_name_inTemplate  -- all identifiers of some kind
-    ::= class_name_inTemplate
-
--- last two rules moved here from simple_type_specifier
-type_name_specifier_inTemplate  -- all identifiers of some kind
-    ::= type_name_inTemplate
---      | dcolon_opt nested_name_specifier_opt_inTemplate type_name_inTemplate
---          /. $Build  consumeQualifiedId(false);  $EndBuild ./
---      | dcolon_opt nested_name_specifier_inTemplate 'template' template_id_name
---          /. $Build  consumeQualifiedId(false);  $EndBuild ./
-      | 'typename' dcolon_opt nested_name_specifier identifier_name
-          /. $Build  consumeQualifiedId(false);  $EndBuild ./
-      | 'typename' dcolon_opt nested_name_specifier template_opt template_id_name
-          /. $Build  consumeQualifiedId(true);  $EndBuild ./
-      | 'typename' identifier_name
-
-type_name_declaration_specifiers_inTemplate
-    ::= type_name_specifier_inTemplate
-      | no_type_declaration_specifiers  type_name_specifier_inTemplate
-      | type_name_declaration_specifiers_inTemplate no_type_declaration_specifier
-
-
-          
-declaration_specifiers_inTemplate
-    ::= <openscope-ast> simple_declaration_specifiers
-          /. $Build  consumeDeclarationSpecifiersSimple();  $EndBuild ./
-      | <openscope-ast> class_declaration_specifiers
-          /. $Build  consumeDeclarationSpecifiersComposite();  $EndBuild ./
-      | <openscope-ast> elaborated_declaration_specifiers
-          /. $Build  consumeDeclarationSpecifiersComposite();  $EndBuild ./
-      | <openscope-ast> enum_declaration_specifiers
-          /. $Build  consumeDeclarationSpecifiersComposite();  $EndBuild ./
-      | <openscope-ast> type_name_declaration_specifiers_inTemplate
-          /. $Build  consumeDeclarationSpecifiersTypeName();  $EndBuild ./          
-          
-
-type_specifier_seq_inTemplate
-      ::= declaration_specifiers_inTemplate
-
-
-type_id_inTemplate
-    ::= type_specifier_seq_inTemplate
-          /. $Build  consumeTypeId(false);  $EndBuild ./
-      | type_specifier_seq_inTemplate abstract_declarator
-          /. $Build  consumeTypeId(true);  $EndBuild ./
-          
---end type_id in template
-
-
-template_argument
-    ::= assignment_expression_inTemplate
-          /. $Build  consumeTemplateArgumentExpression();  $EndBuild ./  
-    | type_id_inTemplate
-          /. $Build  consumeTemplateArgumentTypeId();  $EndBuild ./
-
-
-explicit_instantiation
-    ::= 'template' declaration
-          /. $Build  consumeTemplateExplicitInstantiation();  $EndBuild ./
-
-
-explicit_specialization
-    ::= 'template' '<' '>' declaration
-           /. $Build  consumeTemplateExplicitSpecialization();  $EndBuild ./
-
-
-try_block
-    ::= 'try' compound_statement <openscope-ast> handler_seq
-          /. $Build  consumeStatementTryBlock(true);  $EndBuild ./
-	  | 'try' compound_statement
-          /. $Build  consumeStatementTryBlock(false);  $EndBuild ./
-
-
-
-
-
-handler_seq
-    ::= handler
-      | handler_seq handler
-
-
-handler
-    ::= 'catch' '(' exception_declaration ')' compound_statement
-          /. $Build  consumeStatementCatchHandler(false);  $EndBuild ./
-      | 'catch' '(' '...' ')' compound_statement
-          /. $Build  consumeStatementCatchHandler(true);  $EndBuild ./
-
-
--- open a scope just so that we can reuse consumeDeclarationSimple()
-exception_declaration
-    ::= type_specifier_seq <openscope-ast> declarator
-          /. $Build  consumeDeclarationSimple(true);  $EndBuild ./
-      | type_specifier_seq <openscope-ast> abstract_declarator
-          /. $Build  consumeDeclarationSimple(true);  $EndBuild ./
-      | type_specifier_seq
-          /. $Build  consumeDeclarationSimple(false);  $EndBuild ./
-
-
--- puts type ids on the stack
-exception_specification
-    ::= 'throw' '(' type_id_list ')'
-      | 'throw' '('  ')'
-          /. $Build  consumePlaceHolder();  $EndBuild ./
-
-
-exception_specification_opt
-    ::= exception_specification
-      | $empty
-
-
-type_id_list
-    ::= type_id
-      | type_id_list ',' type_id
\ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPNoCastExpressionParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPNoCastExpressionParser.g
deleted file mode 100644
index 6e1479e..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPNoCastExpressionParser.g
+++ /dev/null
@@ -1,42 +0,0 @@
------------------------------------------------------------------------------------
--- Copyright (c) 2006, 2008 IBM Corporation and others.
--- This program and the accompanying materials
--- are made available under the terms of the Eclipse Public License 2.0
--- which accompanies this distribution, and is available at
--- https://www.eclipse.org/legal/epl-2.0/
---
--- SPDX-License-Identifier: EPL-2.0
---
--- Contributors:
---     IBM Corporation - initial API and implementation
------------------------------------------------------------------------------------
-
-%options la=2
-%options package=org.eclipse.cdt.internal.core.dom.lrparser.cpp
-%options template=LRSecondaryParserTemplate.g
-
-$Import
-	CPPGrammar.g
-$DropRules
-
-	cast_expression
-	    ::= '(' type_id ')' cast_expression
-
-$End
-
-$Define
-    $ast_class /. IASTExpression ./
-$End
-
-$Start
-    no_cast_start
-$End
-
-$Rules 
-
-	no_cast_start
-	    ::= expression
-	      | ERROR_TOKEN
-	          /. $Build  consumeEmpty();  $EndBuild ./
-          
-$End
\ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPNoFunctionDeclaratorParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPNoFunctionDeclaratorParser.g
deleted file mode 100644
index 7cc0112..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPNoFunctionDeclaratorParser.g
+++ /dev/null
@@ -1,49 +0,0 @@
------------------------------------------------------------------------------------
--- Copyright (c) 2006, 2008 IBM Corporation and others.
--- This program and the accompanying materials
--- are made available under the terms of the Eclipse Public License 2.0
--- which accompanies this distribution, and is available at
--- https://www.eclipse.org/legal/epl-2.0/
---
--- SPDX-License-Identifier: EPL-2.0
---
--- Contributors:
---     IBM Corporation - initial API and implementation
------------------------------------------------------------------------------------
-
-%options la=2
-%options package=org.eclipse.cdt.internal.core.dom.lrparser.cpp
-%options template=LRSecondaryParserTemplate.g
-
-$Import
-	CPPGrammar.g
-$DropRules
-
-	direct_declarator
-        ::= function_direct_declarator
-        
-    init_declarator_complete
-    	::= init_declarator
-
-$End
-
-$Define
-    $ast_class /. IASTDeclarator ./
-$End
-
-$Start
-    no_function_declarator_start
-$End
-
-$Rules 
-
-	no_function_declarator_start
-	    ::= init_declarator_complete
-	      | ERROR_TOKEN
-	          /. $Build  consumeEmpty();  $EndBuild ./
-	
-	-- redeclare this rule with no semantic action, prevents recursion
-	init_declarator_complete
-    	::= init_declarator
-              
-$End
\ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPParser.g
deleted file mode 100644
index fd35a61..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPParser.g
+++ /dev/null
@@ -1,28 +0,0 @@
-----------------------------------------------------------------------------------
--- Copyright (c) 2006, 2008 IBM Corporation and others.
--- This program and the accompanying materials
--- are made available under the terms of the Eclipse Public License 2.0
--- which accompanies this distribution, and is available at
--- https://www.eclipse.org/legal/epl-2.0/
---
--- SPDX-License-Identifier: EPL-2.0
---
--- Contributors:
---     IBM Corporation - initial API and implementation
-----------------------------------------------------------------------------------
-
-%options la=2
-%options package=org.eclipse.cdt.internal.core.dom.lrparser.cpp
-%options template=LRParserTemplate.g
-
-
--- This file is needed because LPG won't allow redefinition of the 
--- start symbol, so CPPGrammar.g cannot define a start symbol.
-
-$Import
-	CPPGrammar.g
-$End
-
-$Start
-    translation_unit
-$End
\ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPSizeofExpressionParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPSizeofExpressionParser.g
deleted file mode 100644
index 0259472..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPSizeofExpressionParser.g
+++ /dev/null
@@ -1,46 +0,0 @@
------------------------------------------------------------------------------------
--- Copyright (c) 2006, 2009 IBM Corporation and others.
--- This program and the accompanying materials
--- are made available under the terms of the Eclipse Public License 2.0
--- which accompanies this distribution, and is available at
--- https://www.eclipse.org/legal/epl-2.0/
---
--- SPDX-License-Identifier: EPL-2.0
---
--- Contributors:
---     IBM Corporation - initial API and implementation
------------------------------------------------------------------------------------
-
-%options la=2
-%options package=org.eclipse.cdt.internal.core.dom.lrparser.cpp
-%options template=LRSecondaryParserTemplate.g
-
-
-$Import
-	CPPGrammar.g
-$DropRules
-
-	unary_expression
-	    ::= 'sizeof' '(' type_id ')'
-	    
-	postfix_expression
-        ::= 'typeid' '(' type_id ')'
-    
-$End
-
-$Define
-    $ast_class /. IASTExpression ./
-$End
-
-$Start
-    no_sizeof_type_id_start
-$End
-
-$Rules 
-
-	no_sizeof_type_id_start
-	    ::= expression
-	      | ERROR_TOKEN
-	          /. $Build  consumeEmpty();  $EndBuild ./
-          
-$End
\ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPTemplateTypeParameterParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPTemplateTypeParameterParser.g
deleted file mode 100644
index 91086ae..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPTemplateTypeParameterParser.g
+++ /dev/null
@@ -1,59 +0,0 @@
------------------------------------------------------------------------------------
--- Copyright (c) 2006, 2008 IBM Corporation and others.
--- This program and the accompanying materials
--- are made available under the terms of the Eclipse Public License 2.0
--- which accompanies this distribution, and is available at
--- https://www.eclipse.org/legal/epl-2.0/
---
--- SPDX-License-Identifier: EPL-2.0
---
--- Contributors:
---     IBM Corporation - initial API and implementation
------------------------------------------------------------------------------------
-
-%options la=2
-%options package=org.eclipse.cdt.internal.core.dom.lrparser.cpp
-%options template=LRSecondaryParserTemplate.g
-
--- This parser is a bit of a hack.
-
--- There are ambiguities between type_parameter and parameter_declaration
--- when parsing a template_parameter.
-
--- I believe the correct disambiguation is to simply favor type_parameter
--- over parameter_declaration.
-
--- I have tried to resolve this by refactoring the grammar file so that
--- the parser will give precedence to type_parameter, but I have failed.
-
--- So the hacky solution is to reparse the tokens as a type_parameter and if
--- it succeeds, throw away the paramter_declaration and use the type_parameter
--- in its place.
-
-
-$Import
-	CPPGrammar.g
-$End
-
-$Globals
-/. 
-	import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateParameter;
-./
-$End
-
-$Define
-    $ast_class /. ICPPASTTemplateParameter ./
-$End
-
-$Start
-    type_parameter_start
-$End
-
-$Rules
-
-	type_parameter_start
-	    ::= type_parameter
-	      | ERROR_TOKEN
-	          /. $Build  consumeEmpty();  $EndBuild ./
-          
-$End
\ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/gcc/GCCGrammar.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/gcc/GCCGrammar.g
deleted file mode 100644
index 16b3599..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/gcc/GCCGrammar.g
+++ /dev/null
@@ -1,114 +0,0 @@
------------------------------------------------------------------------------------
--- Copyright (c) 2009 IBM Corporation and others.
--- This program and the accompanying materials
--- are made available under the terms of the Eclipse Public License 2.0
--- which accompanies this distribution, and is available at
--- https://www.eclipse.org/legal/epl-2.0/
---
--- SPDX-License-Identifier: EPL-2.0
---
--- Contributors:
---     IBM Corporation - initial API and implementation
------------------------------------------------------------------------------------
-
-
--- For this to work the environment variable LPG_INCLUDE must be set up
--- to point at the directory where the C99Parser.g file is located.
-$Import
-	../c99/C99Grammar.g
-$End
-
-$Import
-    ../gnu/GNUExtensions.g
-$End
-
-
--- Tokens used by GCC but not part of the C99 spec
-$Terminals
-
-    asm
-    
-$End
-
-
-$Globals
-/.
-	import org.eclipse.cdt.core.dom.lrparser.action.gnu.GCCBuildASTParserAction;
-	import org.eclipse.cdt.core.dom.lrparser.action.gnu.GCCSecondaryParserFactory;
-./
-$End
-
-$Define
-
-    $build_action_class  /. GCCBuildASTParserAction ./
-	$parser_factory_create_expression /. GCCSecondaryParserFactory.getDefault() ./
-	
-$End
-
-
-$Rules
-
-
-declaration
-    ::= extended_asm_declaration
- 
- 
-no_type_declaration_specifier
-    ::= attribute_or_decl_specifier
-
-complete_declarator
-    ::= attribute_or_decl_specifier_seq declarator
-      | declarator attribute_or_decl_specifier_seq
-      | attribute_or_decl_specifier_seq declarator attribute_or_decl_specifier_seq
-
-complete_struct_declarator
-    ::= attribute_or_decl_specifier_seq struct_declarator
-      | struct_declarator attribute_or_decl_specifier_seq
-      | attribute_or_decl_specifier_seq struct_declarator attribute_or_decl_specifier_seq
-    
-enum_specifier_hook
-    ::= attribute_or_decl_specifier_seq
-
-struct_or_union_specifier_hook
-    ::= attribute_or_decl_specifier_seq
-    
-struct_or_union_specifier_suffix_hook
-    ::= attribute_or_decl_specifier_seq
-
-pointer_hook
-    ::= attribute_or_decl_specifier_seq 
-
-elaborated_specifier_hook
-    ::= attribute_or_decl_specifier_seq
-
-
-
-
-
--- GCC extensions to designated initializers
-
-designator_base
-    ::= field_name_designator
-      | array_range_designator
-
-field_name_designator
-    ::= identifier_token ':'		
-          /. $Build  consumeDesignatorFieldGCC();  $EndBuild ./
-          
-array_range_designator
-    ::=  '[' constant_expression '...' constant_expression ']'
-          /. $Build  consumeDesignatorArrayRange();  $EndBuild ./
-
-designated_initializer
-    ::= <openscope-ast> field_name_designator initializer
-          /. $Build  consumeInitializerDesignated();  $EndBuild ./
-          
-
-
--- Nested functions
-
-block_item
-    ::= normal_function_definition
-          /. $Build  consumeStatementDeclaration();  $EndBuild ./
-          
-$End
\ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/gcc/GCCParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/gcc/GCCParser.g
deleted file mode 100644
index 247807b..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/gcc/GCCParser.g
+++ /dev/null
@@ -1,28 +0,0 @@
------------------------------------------------------------------------------------
--- Copyright (c) 2008, 2009 IBM Corporation and others.
--- This program and the accompanying materials
--- are made available under the terms of the Eclipse Public License 2.0
--- which accompanies this distribution, and is available at
--- https://www.eclipse.org/legal/epl-2.0/
---
--- SPDX-License-Identifier: EPL-2.0
---
--- Contributors:
---     IBM Corporation - initial API and implementation
------------------------------------------------------------------------------------
-
-%options la=2
-%options package=org.eclipse.cdt.internal.core.dom.lrparser.gcc
-%options template=LRParserTemplate.g
-
-
--- This file is needed because LPG won't allow redefinition of the 
--- start symbol, so C99Grammar.g cannot define a start symbol.
-
-$Import
-	GCCGrammar.g
-$End
-
-$Start
-    translation_unit
-$End
\ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/gcc/GCCSizeofExpressionParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/gcc/GCCSizeofExpressionParser.g
deleted file mode 100644
index 29762cf..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/gcc/GCCSizeofExpressionParser.g
+++ /dev/null
@@ -1,45 +0,0 @@
------------------------------------------------------------------------------------
--- Copyright (c) 2009 IBM Corporation and others.
--- This program and the accompanying materials
--- are made available under the terms of the Eclipse Public License 2.0
--- which accompanies this distribution, and is available at
--- https://www.eclipse.org/legal/epl-2.0/
---
--- SPDX-License-Identifier: EPL-2.0
---
--- Contributors:
---     IBM Corporation - initial API and implementation
------------------------------------------------------------------------------------
-
-%options la=2
-%options package=org.eclipse.cdt.internal.core.dom.lrparser.gcc
-%options template=LRSecondaryParserTemplate.g
-
-
-$Import
-	GCCGrammar.g
-$DropRules
-
-	unary_expression
-	    ::= 'sizeof' '(' type_id ')'
-	      | '__alignof__' '(' type_id ')'
-	      | 'typeof' '(' type_id ')'
-    
-$End
-
-$Define
-    $ast_class /. IASTExpression ./
-$End
-
-$Start
-    no_sizeof_type_name_start
-$End
-
-$Rules 
-
-	no_sizeof_type_name_start
-	    ::= expression
-	      | ERROR_TOKEN
-	          /. $Build  consumeEmpty();  $EndBuild ./
-          
-$End
\ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/generate.xml b/lrparser/org.eclipse.cdt.core.lrparser/grammar/generate.xml
deleted file mode 100644
index bed67eb..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/generate.xml
+++ /dev/null
@@ -1,95 +0,0 @@
-<!--
- Copyright (c) 2009, 2010 IBM Corporation and others.
- This program and the accompanying materials
- are made available under the terms of the Eclipse Public License 2.0
- which accompanies this distribution, and is available at
- https://www.eclipse.org/legal/epl-2.0/
- 
- SPDX-License-Identifier: EPL-2.0
-
- Contributors:
-     IBM Corporation - initial API and implementation
--->
-
-<project name="CDT Extensible LR Parser Framework" basedir=".">
-
-	<!--
-		Common tasks that can be used to generate a parser using LPG and the
-		LR parser framework.
-		
-		There are two ANT properties that must be defined:
-		1) lpg_exe - This property must be set to the full path to the LPG generator executable (lpg.exe).
-	    2) lpg_template - This property must be set to the full path to the folder that contains the LRParserTemplate.g file.
-	
-		Additionally if the $Import or $Include directives are being used in a grammar
-		file then the LPG_INCLUDE environment variable must be set to the directory
-		of the files being included. 
-		lpg_include  - is an optional property to set, if it is set, LPG_INCLUDE will be set by its value before execute lpg_exe.
-	-->
-	
-	<fail unless="lpg_exe">
-		Property $${lpg_exe} not set.
-		This property must be set to the full path to the LPG generator executable.
-	</fail>
-		
-	<fail unless="lpg_template">
-		Property $${lpg_template} not set.
-		This property must be set to the full path to the LPG templates folder.
-	</fail>
-	
-	
-	<!--
-	Parameters: 
-	${grammar_dir} - directory that contains the grammar files
-	${grammar_name} - the name of the main grammar file to run LPG on (not including the .g extension)
-	${output_dir} - name of directory where generated files should go
-	-->
-	<target name="generate" depends="moveFile">
-		
-
-		<echo message="Code generation is done."/>
-		
-		
-	</target>
-	
-	<target name="init">
-		
-		<property name="grammar_file" value="${grammar_dir}/${grammar_name}.g"/>
-		<echo message="lpg_exe=${lpg_exe}"/>
-		<echo message="lpg_template=${lpg_template}"/>
-		<echo message="lpg_include=${lpg_include}"/>
-		<echo message="grammar_file=${grammar_file}.g"/>
-		<echo message="output_dir=${output_dir}"/>
-		
-		
-	</target>
-	
-	<target name="generateWithIncludeSet" if="lpg_include" depends="init">
-		
-		<exec executable="${lpg_exe}">
-			<arg value="${grammar_file}"/>
-			<env key="LPG_TEMPLATE" path="${lpg_template}"/>
-			<env key="LPG_INCLUDE" path="${lpg_include}"/>
-		</exec>
-	</target>
-	
-	<target name="generateWithoutIncludeSet" unless="lpg_include" depends="generateWithIncludeSet">
-		
-		
-		<exec executable="${lpg_exe}">
-			<arg value="${grammar_file}"/>
-			<env key="LPG_TEMPLATE" path="${lpg_template}"/>
-				
-		</exec>
-	</target>
-	
-	<target name="moveFile" depends="generateWithoutIncludeSet">
-		<move overwrite="true" toDir="${output_dir}">
-		    <fileset dir=".">
-			    <include name="${grammar_name}*.*"/>
-		    </fileset>
-		</move>
-	</target>	
-	
-	
-</project>
\ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/gnu/GNUExtensions.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/gnu/GNUExtensions.g
deleted file mode 100644
index bc9e9ab..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/gnu/GNUExtensions.g
+++ /dev/null
@@ -1,207 +0,0 @@
------------------------------------------------------------------------------------
--- Copyright (c) 2008, 2009 IBM Corporation and others.
--- This program and the accompanying materials
--- are made available under the terms of the Eclipse Public License 2.0
--- which accompanies this distribution, and is available at
--- https://www.eclipse.org/legal/epl-2.0/
---
--- SPDX-License-Identifier: EPL-2.0
---
--- Contributors:
---     IBM Corporation - initial API and implementation
------------------------------------------------------------------------------------
-
-
---  These are additional rules that allow for parsing of GNU extensions.
---  This file is intended to be mixed-in with C99Parser.g or GPPParser.g
-
-
-$Terminals
-	-- additional GCC only tokens as defined in IGCCToken
-
-	typeof
-	__alignof__
-	__attribute__
-	__declspec
-	MAX
-	MIN
-	
-	MAX ::= '>?'
-	MIN ::= '<?'
-	
-$End
-
-
-$Headers
-/.
-	private $gnu_action_class gnuAction;
-./
-$End
-
-
-$Globals
-/.
-	import org.eclipse.cdt.core.dom.lrparser.action.gnu.GNUBuildASTParserAction;
-./
-$End
-
-
-$Define
-
-	$gnu_action_class /. GNUBuildASTParserAction ./  -- overridable
-
-	$action_initializations /.
-	
-		gnuAction = new $gnu_action_class (this, astStack, $node_factory_create_expression);
-		gnuAction.setParserProperties(properties);
-	./
-	
-$End
-
-$Rules
-
-------------------------------------------------------------------------------------
--- Support for __attribute__ and __declspec
-------------------------------------------------------------------------------------
-
-attribute_or_decl_specifier
-    ::= attribute_specifier
-      | decl_specifier
-      | asm_label
-
-attribute_or_decl_specifier_seq
-    ::= attribute_or_decl_specifier
-      | attribute_or_decl_specifier_seq attribute_or_decl_specifier
-
-
-
-attribute_specifier
-    ::= '__attribute__' '(' '(' attribute_list ')' ')'
-      | '__attribute__' '(' ')'
-    
-attribute_list
-    ::= attribute
-      | attribute_list ',' attribute
-
-attribute
-    ::= word
-      | word '(' attribute_parameter_list ')'
-      | $empty
-      
-word
-    ::= 'identifier'
-      | 'const'
-
-attribute_parameter_list
-    ::= attribute_parameter
-      | attribute_parameter_list ',' attribute_parameter
-
-attribute_parameter
-    ::= assignment_expression
-          /. $Build  consumeIgnore(); $EndBuild ./
-      | $empty
-
-
-
-decl_specifier
-    ::= '__declspec' '(' extended_decl_modifier_seq ')'
-      | '__declspec' '(' ')'    
-      
-extended_decl_modifier_seq
-    ::= extended_decl_modifier
-      | extended_decl_modifier_seq extended_decl_modifier
-    
-extended_decl_modifier
-    ::= 'identifier'
-      | 'identifier' '(' ')'
-      | 'identifier' '(' 'identifier' ')'
-      | 'identifier' '(' 'stringlit' ')'
-
-
-------------------------------------------------------------------------------------
--- Other stuff
-------------------------------------------------------------------------------------
-
-asm_label
-    ::= 'asm' '(' 'stringlit' ')'
-
-
-extended_asm_declaration
-    ::= 'asm' volatile_opt '(' extended_asm_param_seq ')' ';'
-           /. $BeginAction  gnuAction.consumeDeclarationASM(); $EndAction ./
-
-volatile_opt ::= 'volatile' | $empty
-
-extended_asm_param_seq
-    ::= extended_asm_param_with_operand
-      | extended_asm_param_seq ':' extended_asm_param_with_operand
-
-extended_asm_param_with_operand
-    ::= extended_asm_param
-      | extended_asm_param ',' extended_asm_param
-      | $empty
-      
-extended_asm_param
-    ::= 'stringlit'
-      | 'stringlit' '(' 'identifier' ')'
-      | 'stringlit' '(' '*' 'identifier' ')'
-
-
-
-unary_expression
-    ::= '__alignof__' unary_expression
-          /. $Build  consumeExpressionUnaryOperator(IASTUnaryExpression.op_alignOf);  $EndBuild ./
-      | '__alignof__' '(' type_id ')'
-          /. $Build  consumeExpressionTypeId(IASTTypeIdExpression.op_alignof);  $EndBuild ./  
-      | 'typeof' unary_expression
-          /. $Build  consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof);  $EndBuild ./
-      | 'typeof' '(' type_id ')'
-          /. $Build  consumeExpressionTypeId(IASTTypeIdExpression.op_typeof);  $EndBuild ./  
-          
-          
-relational_expression
-    ::= relational_expression '>?' shift_expression
-          /. $Build  consumeExpressionBinaryOperator(IASTBinaryExpression.op_max);  $EndBuild ./
-      | relational_expression '<?' shift_expression
-          /. $Build  consumeExpressionBinaryOperator(IASTBinaryExpression.op_min);  $EndBuild ./
-          
-          
-conditional_expression
-    ::= logical_or_expression '?' <empty> ':' assignment_expression
-           /. $Build  consumeExpressionConditional();  $EndBuild ./
-
-
-primary_expression
-    ::= '(' compound_statement ')'
-           /. $BeginAction  gnuAction.consumeCompoundStatementExpression();  $EndAction ./
-           
-           
-labeled_statement
-    ::= 'case' case_range_expression ':' statement
-          /. $Build  consumeStatementCase();  $EndBuild ./
-          
-          
-case_range_expression
-    ::= constant_expression '...' constant_expression
-          /. $Build  consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign);  $EndBuild ./
-          
-          
-typeof_declaration_specifiers
-    ::= typeof_type_specifier
-      | no_type_declaration_specifiers  typeof_type_specifier
-      | typeof_declaration_specifiers no_type_declaration_specifier
-
-
-typeof_type_specifier
-      ::= 'typeof' unary_expression
-            /. $Build  consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof);  $EndBuild ./
-        | 'typeof' '(' type_id ')'
-            /. $Build  consumeExpressionTypeId(IASTTypeIdExpression.op_typeof);  $EndBuild ./  
-        
-
-declaration_specifiers
-    ::= <openscope-ast> typeof_declaration_specifiers
-          /. $Build  consumeDeclarationSpecifiersTypeof();  $EndBuild ./
-        
-$End
-
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/gpp/GPPGrammar.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/gpp/GPPGrammar.g
deleted file mode 100644
index 16b072c..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/gpp/GPPGrammar.g
+++ /dev/null
@@ -1,131 +0,0 @@
------------------------------------------------------------------------------------
--- Copyright (c) 2009 IBM Corporation and others.
--- This program and the accompanying materials
--- are made available under the terms of the Eclipse Public License 2.0
--- which accompanies this distribution, and is available at
--- https://www.eclipse.org/legal/epl-2.0/
---
--- SPDX-License-Identifier: EPL-2.0
---
--- Contributors:
---     IBM Corporation - initial API and implementation
------------------------------------------------------------------------------------
-
-%options la=2
-%options package=org.eclipse.cdt.internal.core.dom.lrparser.gpp
-%options template=FixedBtParserTemplateD.g
-
-
-$Terminals
-
-   -- GCC allows these keywords to be used in C++
-   
-   _Complex  
-   _Imaginary
-   restrict
-   
-$End
-
-
--- For this to work the environment variable LPG_INCLUDE must be set up
--- to point at the directory where the CPPParser.g file is located.
-$Import
-	../cpp/CPPGrammar.g
-	
-$DropRules
-
--- will be replaced by extended asm syntax
-asm_definition
-    ::= 'asm' '(' 'stringlit' ')' ';'
-
-$End
-
-
-$Import
-    ../gnu/GNUExtensions.g
-$End
-
-$Globals
-/.
-	import org.eclipse.cdt.core.dom.lrparser.action.gnu.GPPBuildASTParserAction;
-	import org.eclipse.cdt.core.dom.lrparser.action.gnu.GPPSecondaryParserFactory;
-	import org.eclipse.cdt.core.dom.ast.gnu.cpp.*;
-./
-$End
-
-$Define
-
-	$build_action_class /. GPPBuildASTParserAction ./
-	$parser_factory_create_expression /. GPPSecondaryParserFactory.getDefault() ./
-
-$End
-
-$Rules
-
-
-asm_definition
-    ::= extended_asm_declaration
-
-
-no_type_declaration_specifier
-   ::= attribute_or_decl_specifier
-
-complete_declarator
-   ::= attribute_or_decl_specifier_seq declarator
-     | declarator attribute_or_decl_specifier_seq
-     | attribute_or_decl_specifier_seq declarator attribute_or_decl_specifier_seq
-      
-member_declarator_complete
-   ::= attribute_or_decl_specifier_seq member_declarator_complete
-     | member_declarator_complete attribute_or_decl_specifier_seq
-     | attribute_or_decl_specifier_seq member_declarator_complete attribute_or_decl_specifier_seq
-      
-enum_specifier_hook
-    ::= attribute_or_decl_specifier_seq
-
-composite_specifier_hook
-    ::= attribute_or_decl_specifier_seq
-    
-class_name_suffix_hook
-    ::= attribute_or_decl_specifier_seq
-
-pointer_hook
-    ::= attribute_or_decl_specifier_seq 
-    
-declarator
-    ::= <openscope-ast> ptr_operator_seq attribute_or_decl_specifier_seq direct_declarator
-          /. $Build  consumeDeclaratorWithPointer(true);  $EndBuild ./
-
-elaborated_specifier_hook
-    ::= attribute_or_decl_specifier_seq
-    
-namespace_definition_hook
-    ::= attribute_or_decl_specifier_seq
-    
-    
-simple_type_specifier
-    ::= '_Complex'
-          /. $Build  consumeToken(); $EndBuild ./
-      | '_Imaginary'
-          /. $Build  consumeToken(); $EndBuild ./
-
-cv_qualifier
-    ::= 'restrict'
-          /. $Build  consumeToken(); $EndBuild ./
-          
-          
-explicit_instantiation
-    ::= 'extern' 'template' declaration
-            /. $Build  consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_extern);  $EndBuild ./
-      | 'static' 'template' declaration
-            /. $Build  consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_static);  $EndBuild ./
-      | 'inline' 'template' declaration    
-            /. $Build  consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_inline);  $EndBuild ./
-            
-            
-postfix_expression
-    ::= '(' type_id ')' initializer_list
-          /. $Build  consumeExpressionTypeIdInitializer();  $EndBuild ./
-
-          
-$End
\ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/gpp/GPPParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/gpp/GPPParser.g
deleted file mode 100644
index 1ede67f..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/gpp/GPPParser.g
+++ /dev/null
@@ -1,28 +0,0 @@
-----------------------------------------------------------------------------------
--- Copyright (c) 2008, 2009 IBM Corporation and others.
--- This program and the accompanying materials
--- are made available under the terms of the Eclipse Public License 2.0
--- which accompanies this distribution, and is available at
--- https://www.eclipse.org/legal/epl-2.0/
---
--- SPDX-License-Identifier: EPL-2.0
---
--- Contributors:
---     IBM Corporation - initial API and implementation
-----------------------------------------------------------------------------------
-
-%options la=2
-%options package=org.eclipse.cdt.internal.core.dom.lrparser.gpp
-%options template=LRParserTemplate.g
-
-
--- This file is needed because LPG won't allow redefinition of the 
--- start symbol, so CPPGrammar.g cannot define a start symbol.
-
-$Import
-	GPPGrammar.g
-$End
-
-$Start
-    translation_unit
-$End
\ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/gpp/GPPSizeofExpressionParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/gpp/GPPSizeofExpressionParser.g
deleted file mode 100644
index 2b3af67..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/gpp/GPPSizeofExpressionParser.g
+++ /dev/null
@@ -1,48 +0,0 @@
------------------------------------------------------------------------------------
--- Copyright (c) 2009 IBM Corporation and others.
--- This program and the accompanying materials
--- are made available under the terms of the Eclipse Public License 2.0
--- which accompanies this distribution, and is available at
--- https://www.eclipse.org/legal/epl-2.0/
---
--- SPDX-License-Identifier: EPL-2.0
---
--- Contributors:
---     IBM Corporation - initial API and implementation
------------------------------------------------------------------------------------
-
-%options la=2
-%options package=org.eclipse.cdt.internal.core.dom.lrparser.gpp
-%options template=LRSecondaryParserTemplate.g
-
-
-$Import
-	GPPGrammar.g
-$DropRules
-
-	unary_expression
-	    ::= 'sizeof' '(' type_id ')'
-	      | '__alignof__' '(' type_id ')'
-	      | 'typeof' '(' type_id ')'
-	    
-	postfix_expression
-        ::= 'typeid' '(' type_id ')'
-    
-$End
-
-$Define
-    $ast_class /. IASTExpression ./
-$End
-
-$Start
-    no_sizeof_type_id_start
-$End
-
-$Rules 
-
-	no_sizeof_type_id_start
-	    ::= expression
-	      | ERROR_TOKEN
-	          /. $Build  consumeEmpty();  $EndBuild ./
-          
-$End
\ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/parserBuild.properties b/lrparser/org.eclipse.cdt.core.lrparser/grammar/parserBuild.properties
deleted file mode 100644
index 03f5f97..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/parserBuild.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-
-###############################################################################
-# Copyright (c) 2010 IBM Corporation and others.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-lpg_exe=D:/lpg/lpgdistribution/lpgexe/lpg.exe
-lpg_template=D:/newWorkspace/rdp80_dev/org.eclipse.cdt.core.lrparser/grammar/template
\ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/template/LRParserTemplate.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/template/LRParserTemplate.g
deleted file mode 100644
index b86f35c..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/template/LRParserTemplate.g
+++ /dev/null
@@ -1,417 +0,0 @@
-----------------------------------------------------------------------------------
--- Copyright (c) 2006, 2010 IBM Corporation and others.
--- This program and the accompanying materials
--- are made available under the terms of the Eclipse Public License 2.0
--- which accompanies this distribution, and is available at
--- https://www.eclipse.org/legal/epl-2.0/
---
--- SPDX-License-Identifier: EPL-2.0
---
--- Contributors:
---     IBM Corporation - initial API and implementation
-----------------------------------------------------------------------------------
-
-
--- This template is a modified version of BtParserTemplateD.g. for use with the LR parsers.
--- This template contains a fix for an LPG bug:
--- http://sourceforge.net/tracker/index.php?func=detail&aid=1732851&group_id=155963&atid=797879
-
-
-
---
--- In a parser using this template, the following macro may be redefined:
---
---     $additional_interfaces
---     $ast_class
---
--- B E G I N N I N G   O F   T E M P L A T E   btParserTemplateD
---
-%Options programming_language=java,margin=4,backtrack
-%Options table,error_maps,scopes
-%options prefix=TK_,
-%options action=("*.java", "/.", "./")
-%options ParseTable=lpg.lpgjavaruntime.ParseTable
-
---
--- This template requires that the name of the EOF token be set
--- to EOF_TOKEN to be consistent with LexerTemplateD and LexerTemplateE
---
-$EOF
-    EOF_TOKEN
-$End
-
-$ERROR
-    ERROR_TOKEN
-$End
-
-$Define
-
-    $Header
-    /.
-                //
-                // Rule $rule_number:  $rule_text
-                //./
-
-    $BeginAction
-    /. $Header
-                case $rule_number: {./
-
-    $EndAction
-    /.          break;
-                }./
-
-    $BeginJava
-    /.$BeginAction
-                    $symbol_declarations./
-
-    $EndJava /.$EndAction./
-
-    $NoAction
-    /. $Header
-                case $rule_number:
-                    break;./
-
-    $BadAction
-    /. $Header
-                case $rule_number:
-                    throw new Error("No action specified for rule " + $rule_number);./
-
-    $NullAction
-    /. $Header
-                case $rule_number:
-                    setResult(null);
-                    break;./
-
-    $BeginActions
-    /.
-        public void ruleAction(int ruleNumber)
-        {
-            switch (ruleNumber)
-            {./
-
-    $SplitActions
-    /.
-	            default:
-	                ruleAction$rule_number(ruleNumber);
-	                break;
-	        }
-	        return;
-	    }
-	
-	    public void ruleAction$rule_number(int ruleNumber)
-	    {
-	        switch (ruleNumber)
-	        {./
-
-    $EndActions
-    /.
-                default:
-                    break;
-            }
-            return;
-        }./
-
-    --
-    -- Macros that may be needed in a parser using this template
-    --
-    $additional_interfaces /../
-    $ast_class /.$ast_type./
-
-    --
-    -- Old deprecated macros that should NEVER be used.
-    --
-    $setSym1 /. // macro setSym1 is deprecated. Use function setResult
-                getParser().setSym1./
-    $setResult /. // macro setResult is deprecated. Use function setResult
-                 getParser().setSym1./
-    $getSym /. // macro getSym is deprecated. Use function getRhsSym
-              getParser().getSym./
-    $getToken /. // macro getToken is deprecated. Use function getRhsTokenIndex
-                getParser().getToken./
-    $getIToken /. // macro getIToken is deprecated. Use function getRhsIToken
-                 super.getIToken./
-    $getLeftSpan /. // macro getLeftSpan is deprecated. Use function getLeftSpan
-                   getParser().getFirstToken./
-    $getRightSpan /. // macro getRightSpan is deprecated. Use function getRightSpan
-                    getParser().getLastToken./
-$End
-
-$Globals
-    /.import lpg.lpgjavaruntime.*;
-    ./
-$End
-
-$Headers
-    /.
-    public class $action_type extends PrsStream implements RuleAction, ITokenStream, 
-                                                           ITokenCollector, IParser<$ast_class> 
-                                                           $additional_interfaces
-    {
-        private static ParseTable prs = new $prs_type();
-        private FixedBacktrackingParser btParser;
-
-        public FixedBacktrackingParser getParser() { return btParser; }
-        private void setResult(Object object) { btParser.setSym1(object); }
-        public Object getRhsSym(int i) { return btParser.getSym(i); }
-
-        public int getRhsTokenIndex(int i) { return btParser.getToken(i); }
-        public IToken getRhsIToken(int i) { return super.getIToken(getRhsTokenIndex(i)); }
-        
-        public int getRhsFirstTokenIndex(int i) { return btParser.getFirstToken(i); }
-        public IToken getRhsFirstIToken(int i) { return super.getIToken(getRhsFirstTokenIndex(i)); }
-
-        public int getRhsLastTokenIndex(int i) { return btParser.getLastToken(i); }
-        public IToken getRhsLastIToken(int i) { return super.getIToken(getRhsLastTokenIndex(i)); }
-
-        public int getLeftSpan() { return btParser.getFirstToken(); }
-        public IToken getLeftIToken()  { return super.getIToken(getLeftSpan()); }
-
-        public int getRightSpan() { return btParser.getLastToken(); }
-        public IToken getRightIToken() { return super.getIToken(getRightSpan()); }
-
-        public int getRhsErrorTokenIndex(int i)
-        {
-            int index = btParser.getToken(i);
-            IToken err = super.getIToken(index);
-            return (err instanceof ErrorToken ? index : 0);
-        }
-        public ErrorToken getRhsErrorIToken(int i)
-        {
-            int index = btParser.getToken(i);
-            IToken err = super.getIToken(index);
-            return (ErrorToken) (err instanceof ErrorToken ? err : null);
-        }
-
-        public $action_type(LexStream lexStream)
-        {
-            super(lexStream);
-
-            try
-            {
-                super.remapTerminalSymbols(orderedTerminalSymbols(), $prs_type.EOFT_SYMBOL);
-            }
-            catch(NullExportedSymbolsException e) {
-            }
-            catch(NullTerminalSymbolsException e) {
-            }
-            catch(UnimplementedTerminalsException e)
-            {
-                java.util.ArrayList unimplemented_symbols = e.getSymbols();
-                System.out.println("The Lexer will not scan the following token(s):");
-                for (int i = 0; i < unimplemented_symbols.size(); i++)
-                {
-                    Integer id = (Integer) unimplemented_symbols.get(i);
-                    System.out.println("    " + $sym_type.orderedTerminalSymbols[id.intValue()]);               
-                }
-                System.out.println();                        
-            }
-            catch(UndefinedEofSymbolException e)
-            {
-                throw new Error(new UndefinedEofSymbolException
-                                    ("The Lexer does not implement the Eof symbol " +
-                                     $sym_type.orderedTerminalSymbols[$prs_type.EOFT_SYMBOL]));
-            } 
-        }
-
-        public String[] orderedTerminalSymbols() { return $sym_type.orderedTerminalSymbols; }
-        public String getTokenKindName(int kind) { return $sym_type.orderedTerminalSymbols[kind]; }
-        public int getEOFTokenKind() { return $prs_type.EOFT_SYMBOL; }
-        public PrsStream getParseStream() { return (PrsStream) this; }
-        
-        //
-        // Report error message for given error_token.
-        //
-        public final void reportErrorTokenMessage(int error_token, String msg)
-        {
-            int firsttok = super.getFirstErrorToken(error_token),
-                lasttok = super.getLastErrorToken(error_token);
-            String location = super.getFileName() + ':' +
-                              (firsttok > lasttok
-                                        ? (super.getEndLine(lasttok) + ":" + super.getEndColumn(lasttok))
-                                        : (super.getLine(error_token) + ":" +
-                                           super.getColumn(error_token) + ":" +
-                                           super.getEndLine(error_token) + ":" +
-                                           super.getEndColumn(error_token)))
-                              + ": ";
-            super.reportError((firsttok > lasttok ? ParseErrorCodes.INSERTION_CODE : ParseErrorCodes.SUBSTITUTION_CODE), location, msg);
-        }
-
-        public void parser()
-        {
-            parser(null, 0);
-        }
-        
-        public void parser(Monitor monitor)
-        {
-            parser(monitor, 0);
-        }
-        
-        public void parser(int error_repair_count)
-        {
-            parser(null, error_repair_count);
-        }
-
-        public void parser(Monitor monitor, int error_repair_count)
-        {
-            try
-            {
-                btParser = new FixedBacktrackingParser(monitor, (TokenStream) this, prs, (RuleAction) this);
-            }
-            catch (NotBacktrackParseTableException e)
-            {
-                throw new Error(new NotBacktrackParseTableException
-                                    ("Regenerate $prs_type.java with -BACKTRACK option"));
-            }
-            catch (BadParseSymFileException e)
-            {
-                throw new Error(new BadParseSymFileException("Bad Parser Symbol File -- $sym_type.java"));
-            }
-
-            try
-            {
-                btParser.parse(error_repair_count);
-            }
-            catch (BadParseException e)
-            {
-                reset(e.error_token); // point to error token
-                DiagnoseParser diagnoseParser = new DiagnoseParser(this, prs);
-                diagnoseParser.diagnose(e.error_token);
-            }
-        }
-
-    ./
-
-$End
-
-$Rules
-    /.$BeginActions./
-$End
-
-$Trailers
-    /.
-        $EndActions
-    }
-    ./
-$End
-
-
-$Notice
--- Copied into all files generated by LPG
-/./*******************************************************************************
- * Copyright (c) 2006, 2010 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *********************************************************************************/
- 
- // This file was generated by LPG
-./
-$End
-
-
-$Define
-	-- These macros allow the template and header code to be customized by an extending parser.
-	
-	$ast_class /. IASTTranslationUnit  ./  -- override in secondary parsers
-	
-	$extra_interfaces /. ./  -- can override this macro to provide additional interfaces
-	$additional_interfaces /.  $extra_interfaces ./
-	
-	$build_action_class /.  ./  -- name of the class that has the AST building callbacks
-	$node_factory_create_expression /.  ./  -- expression that will create the INodeFactory
-	$parser_factory_create_expression /.  ./ -- expression that will create the ISecondaryParserFactory
-	
-	$action_initializations /. ./
-	
-	$Build /. $BeginAction action. ./  -- special action just for calling methods on the builder
-	$EndBuild /. $EndAction ./
-$End
-
-
-$Globals
-/.	
-	import java.util.*;
-	import org.eclipse.cdt.core.dom.ast.*;
-	import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
-	import org.eclipse.cdt.core.dom.lrparser.IParser;
-	import org.eclipse.cdt.core.dom.lrparser.ITokenCollector;
-	import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter;
-	import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
-	import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser;
-	import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
-	import org.eclipse.cdt.core.parser.IScanner;
-	import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
-	import org.eclipse.cdt.core.index.IIndex;
-./
-$End
-
-$Headers
-/.
-	private $build_action_class action;
-	private IASTCompletionNode compNode;
-	
-
-	public $action_type(IScanner scanner, IDOMTokenMap tokenMap, IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Map<String,String> properties) {
-		initActions(properties);
-		action.initializeTranslationUnit(scanner, builtinBindingsProvider, index);
-		CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap);
-	}
-	
-	private void initActions(Map<String,String> properties) {
-		ScopedStack<Object> astStack = new ScopedStack<Object>();
-		
-		action = new $build_action_class(this, astStack, $node_factory_create_expression, $parser_factory_create_expression);
-		action.setParserProperties(properties);
-		
-		$action_initializations
-	}
-	
-	
-	public void addToken(IToken token) {
-		token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called?
-		super.addToken(token);
-	}
-	
-	
-	public $ast_class parse() {
-		// this has to be done, or... kaboom!
-		setStreamLength(getSize());
-		
-		final int errorRepairCount = -1;  // -1 means full error handling
-		parser(null, errorRepairCount); // do the actual parse
-		super.resetTokenStream(); // allow tokens to be garbage collected
-	
-		compNode = action.getASTCompletionNode(); // the completion node may be null
-		return ($ast_class) action.getParseResult();
-	}
-	
-	
-	public IASTCompletionNode getCompletionNode() {
-		return compNode;
-	}
-
-	// uncomment this method to use with backtracking parser
-	public List<IToken> getRuleTokens() {
-	    return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
-	}
-	
-	public String[] getOrderedTerminalSymbols() {
-		return $sym_type.orderedTerminalSymbols;
-	}
-	
-	@SuppressWarnings("nls")
-	public String getName() {
-		return "$action_type";
-	}
-	
-./
-$End
-
-
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/template/LRSecondaryParserTemplate.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/template/LRSecondaryParserTemplate.g
deleted file mode 100644
index fe86a6e..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/template/LRSecondaryParserTemplate.g
+++ /dev/null
@@ -1,68 +0,0 @@
-----------------------------------------------------------------------------------
--- Copyright (c) 2006, 2010 IBM Corporation and others.
--- This program and the accompanying materials
--- are made available under the terms of the Eclipse Public License 2.0
--- which accompanies this distribution, and is available at
--- https://www.eclipse.org/legal/epl-2.0/
---
--- SPDX-License-Identifier: EPL-2.0
---
--- Contributors:
---     IBM Corporation - initial API and implementation
-----------------------------------------------------------------------------------
-
-
-%Options programming_language=java,margin=4,backtrack
-%Options table,error_maps,scopes
-%options prefix=TK_,
-%options action=("*.java", "/.", "./")
-%options ParseTable=lpg.lpgjavaruntime.ParseTable
-
-
--- additional code needed by secondary parsers
-
--- path is relative to the grammar file that uses the template
-$Include
-../template/LRParserTemplate.g
-$End
-
-
-
-
-$Define
-
-    $additional_interfaces /. , ISecondaryParser<$ast_class> $extra_interfaces ./
-
-$End
-
-$Globals
-/.
-    import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
-    import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
-    import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
-./
-$End
-
-$Headers
-/.
-
-	private ITokenMap tokenMap = null;
-	
-	public void setTokens(List<IToken> tokens) {
-		resetTokenStream();
-		addToken(new Token(null, 0, 0, 0)); // dummy token
-		for(IToken token : tokens) {
-			token.setKind(tokenMap.mapKind(token.getKind()));
-			addToken(token);
-		}
-		addToken(new Token(null, 0, 0, $sym_type.TK_EOF_TOKEN));
-	}
-	
-	public $action_type(ITokenStream stream, Map<String,String> properties) {  // constructor for creating secondary parser
-		initActions(properties);
-		tokenMap = new TokenMap($sym_type.orderedTerminalSymbols, stream.getOrderedTerminalSymbols());
-	}	
-	
-./
-$End
-
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/action/deprecated/C99ResolveParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/action/deprecated/C99ResolveParserAction.java
deleted file mode 100644
index 61df620..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/action/deprecated/C99ResolveParserAction.java
+++ /dev/null
@@ -1,1625 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2015 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.lrparser.c99.action.deprecated;
-
-import static org.eclipse.cdt.core.parser.util.CollectionUtils.reverseIterable;
-import static org.eclipse.cdt.internal.core.dom.lrparser.symboltable.CNamespace.GOTO_LABEL;
-import static org.eclipse.cdt.internal.core.dom.lrparser.symboltable.CNamespace.IDENTIFIER;
-import static org.eclipse.cdt.internal.core.dom.lrparser.symboltable.CNamespace.STRUCT_TAG;
-
-import java.util.LinkedList;
-import java.util.List;
-
-import org.eclipse.cdt.core.dom.ast.EScopeKind;
-import org.eclipse.cdt.core.dom.ast.IASTBinaryExpression;
-import org.eclipse.cdt.core.dom.ast.IASTElaboratedTypeSpecifier;
-import org.eclipse.cdt.core.dom.ast.IASTLiteralExpression;
-import org.eclipse.cdt.core.dom.ast.IArrayType;
-import org.eclipse.cdt.core.dom.ast.IBasicType;
-import org.eclipse.cdt.core.dom.ast.IBinding;
-import org.eclipse.cdt.core.dom.ast.ICompositeType;
-import org.eclipse.cdt.core.dom.ast.IField;
-import org.eclipse.cdt.core.dom.ast.IFunctionType;
-import org.eclipse.cdt.core.dom.ast.IParameter;
-import org.eclipse.cdt.core.dom.ast.IPointerType;
-import org.eclipse.cdt.core.dom.ast.IType;
-import org.eclipse.cdt.core.dom.ast.ITypedef;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
-import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
-import org.eclipse.cdt.core.parser.util.DebugUtil;
-import org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym;
-import org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings.C99ArrayType;
-import org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings.C99BasicType;
-import org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings.C99Enumeration;
-import org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings.C99Enumerator;
-import org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings.C99Field;
-import org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings.C99Function;
-import org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings.C99FunctionScope;
-import org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings.C99FunctionType;
-import org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings.C99Label;
-import org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings.C99Parameter;
-import org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings.C99PointerType;
-import org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings.C99ProblemBinding;
-import org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings.C99Scope;
-import org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings.C99Structure;
-import org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings.C99Typedef;
-import org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings.C99Variable;
-import org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings.IC99Binding;
-import org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings.IC99Scope;
-import org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings.ITypeable;
-import org.eclipse.cdt.internal.core.dom.lrparser.symboltable.C99SymbolTable;
-import org.eclipse.cdt.internal.core.dom.parser.ITypeContainer;
-
-import lpg.lpgjavaruntime.IToken;
-
-/**
- * This class was an attempt at doing full binding resolution during the parse
- * as opposed to doing it after the parse as is normally done with the DOM parser.
- *
- *
- * TODO: token mapping so that this will work with UPC
- * TODO: what about function definitions, don't they count as declarations?
- *
- * Try to resolve bindings without using the ASTStack, that way I can resolve bindings
- * without generating an AST. In the future I can remove this as a subclass of C99ParserAction.
- *
- * TODO: if I'm calculating scopes then those scopes need to be linked to AST nodes
- *
- * TODO: some language constructs are not handled yet: typeIds (casts), field designators
- *
- * @author Mike Kucera
- *
- * @deprecated Binding resolution is too hard, replacing with simpler C99TypedefTrackerParserAction
- */
-@SuppressWarnings("restriction")
-@Deprecated
-public class C99ResolveParserAction {
-
-	private static final boolean DEBUG = true;
-	private static final String NO_IDENT = ""; //$NON-NLS-1$
-
-	// provides limited access to the token stream
-	private final ITokenStream parser;
-
-	// The symbolTable currently in use
-	private C99SymbolTable symbolTable = C99SymbolTable.EMPTY_TABLE;
-
-	// A stack that keeps track of scopes in the symbol table, used to "close" scopes and to undo the opening of scopes
-	private final LinkedList<C99SymbolTable> symbolTableScopeStack = new LinkedList<>();
-
-	// A stack that keeps track of scopes that are set on bindings
-	private final LinkedList<IC99Scope> bindingScopeStack = new LinkedList<>();
-
-	// keeps track of nested declarations
-	private final LinkedList<DeclaratorFrame> declarationStack = new LinkedList<>();
-
-	// keeps track of expression types
-	private final ScopedStack<IType> exprTypeStack = new ScopedStack<>();
-
-	private TypeQualifiers typeQualifiers; // TODO: can this go in the declaration stack?
-
-	private static class TypeQualifiers {
-		boolean isConst, isRestrict, isVolatile;
-	}
-
-	// "For every action there is an equal and opposite reaction." - Newton's third law
-	private final LinkedList<IUndoAction> undoStack = new LinkedList<>();
-
-	private interface IUndoAction {
-		void undo();
-	}
-
-	public void undo() {
-		undoStack.removeLast().undo();
-	}
-
-	public void undo(int steps) {
-		for (int i = 0; i < steps; i++) {
-			undo();
-		}
-	}
-
-	public IC99Scope getCurrentScope() {
-		return bindingScopeStack.getLast();
-	}
-
-	public C99ResolveParserAction(ITokenStream parser) {
-		this.parser = parser;
-		bindingScopeStack.add(new C99Scope(EScopeKind.eGlobal)); // the global scope
-		System.out.println();
-	}
-
-	private static IType rawType(IType type) {
-		while (type instanceof ITypedef) {
-			type = ((C99Typedef) type).getType();
-		}
-		return type;
-	}
-
-	/**
-	 * Lexer feedback hack, used by the parser to identify typedefname tokens.
-	 */
-	public boolean isTypedef(String ident) {
-		boolean result = symbolTable.lookup(IDENTIFIER, ident) instanceof ITypedef;
-		return result;
-	}
-
-	/**
-	 * Methods used by tests, package local access.
-	 */
-	C99SymbolTable getSymbolTable() {
-		return symbolTable;
-	}
-
-	int undoStackSize() {
-		return undoStack.size();
-	}
-
-	LinkedList<DeclaratorFrame> getDeclarationStack() {
-		return declarationStack;
-	}
-
-	/**
-	 * Called from the grammar file in places where a scope is created.
-	 *
-	 * Scopes are created by compound statements, however special care
-	 * must also be taken with for loops because they may contain
-	 * declarations.
-	 *
-	 * TODO: scope object now need to be handled explicitly
-	 */
-	public void openSymbolScope() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		symbolTableScopeStack.add(symbolTable);
-		bindingScopeStack.add(new C99Scope(EScopeKind.eLocal));
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-
-				bindingScopeStack.removeLast();
-				symbolTable = symbolTableScopeStack.removeLast();
-			}
-		});
-	}
-
-	public IC99Scope closeSymbolScope() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		final C99SymbolTable undoTable = symbolTable;
-		symbolTable = symbolTableScopeStack.removeLast(); // close the scope
-
-		final IC99Scope undoScope = bindingScopeStack.removeLast();
-		if (!bindingScopeStack.isEmpty())
-			undoScope.setParent(bindingScopeStack.getLast());
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-
-				undoScope.setParent(null);
-				bindingScopeStack.add(undoScope);
-
-				symbolTableScopeStack.add(symbolTable);
-				symbolTable = undoTable;
-			}
-		});
-
-		return undoScope;
-	}
-
-	// TODO, this needs an undo action
-	public void openPointerScope() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		final DeclaratorFrame frame = declarationStack.getLast();
-		frame.openPointerModifierScope();
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-
-				frame.closePointerModifierScope();
-			}
-		});
-	}
-
-	/**
-	 * Called from the grammar before a declaration is about to be reduced.
-	 */
-	public void openDeclarationScope() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		declarationStack.add(new DeclaratorFrame());
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-
-				declarationStack.removeLast();
-			}
-		});
-	}
-
-	public void closeDeclarationScope() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		final DeclaratorFrame undoFrame = declarationStack.removeLast();
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-
-				declarationStack.add(undoFrame);
-			}
-		});
-	}
-
-	public void consumeFunctionDefinition() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		//		final IC99Scope undoScope = bindingScope;
-		//
-		//		C99FunctionScope functionScope = new C99FunctionScope();
-		//		functionScope.setBodyScope(undoScope);
-		//		undoScope.setParent(functionScope);
-		//		bindingScope = bindingScopeStack.removeLast();
-		//		functionScope.setParent(bindingScope);
-
-		final IC99Scope undoScope = bindingScopeStack.removeLast();
-
-		C99FunctionScope functionScope = new C99FunctionScope();
-		functionScope.setBodyScope(undoScope);
-		undoScope.setParent(functionScope);
-		functionScope.setParent(bindingScopeStack.getLast());
-
-		final DeclaratorFrame frame = declarationStack.removeLast();
-
-		// the function binding needs to be available outside of the function's scope
-		String functionName = frame.getDeclaratorName().toString();
-		C99Function functionBinding = (C99Function) symbolTable.lookup(IDENTIFIER, functionName);
-		functionBinding.setFunctionScope(functionScope);
-
-		final C99SymbolTable undoTable = symbolTable;
-		final C99SymbolTable outerTable = symbolTableScopeStack.removeLast();
-		symbolTable = outerTable.insert(IDENTIFIER, functionName, functionBinding);
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-
-				symbolTableScopeStack.add(outerTable);
-				symbolTable = undoTable;
-				declarationStack.add(frame);
-				bindingScopeStack.add(undoScope);
-			}
-		});
-	}
-
-	public void consumeAbstractDeclaratorFunctionDeclarator() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		final DeclaratorFrame frame = declarationStack.getLast();
-		frame.setFunctionDeclarator(true);
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-
-				frame.setFunctionDeclarator(false);
-			}
-		});
-	}
-
-	public void consumeDirectDeclaratorFunctionDeclarator() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		final DeclaratorFrame frame = declarationStack.getLast();
-		frame.setFunctionDeclarator(true);
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-				frame.setFunctionDeclarator(false);
-			}
-		});
-	}
-
-	public void consumeDeclSpecToken() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		IToken token = parser.getRightIToken();
-		final int kind = token.getKind();
-
-		// creates a DeclSpec if there isn't one already
-		DeclaratorFrame frame = declarationStack.getLast();
-		final DeclSpec declSpec = frame.getDeclSpec();
-		declSpec.add(kind);
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-
-				declSpec.remove(kind);
-			}
-		});
-	}
-
-	/**
-	 * A labeled statement is creates an implicit declaration of the label identifier.
-	 *
-	 * TODO: a label has function scope, meaning the same label cannot be declared twice
-	 * in a function regardless of block scope.
-	 * TODO: labels can be implicitly declared, that is a goto can exist above the label
-	 */
-	public IBinding consumeStatementLabeled() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		IToken token = parser.getLeftIToken();
-		String ident = token.toString();
-
-		IC99Binding labelBinding = new C99Label(ident);
-		// TODO: strictly speaking the same label cannot be declared twice,
-		// but we aren't checking that here
-		final C99SymbolTable oldTable = symbolTable;
-		symbolTable = symbolTable.insert(GOTO_LABEL, ident, labelBinding);
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-
-				symbolTable = oldTable;
-			}
-		});
-
-		return labelBinding;
-	}
-
-	public IBinding consumeStatementGoto() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		List<IToken> ruleTokens = parser.getRuleTokens();
-		assert ruleTokens.size() == 3 : "a goto statement must always consist of 3 tokens"; //$NON-NLS-1$
-		String ident = ruleTokens.get(1).toString();
-
-		final C99SymbolTable oldTable = symbolTable;
-
-		IC99Binding labelBinding = symbolTable.lookup(GOTO_LABEL, ident);
-		if (labelBinding == null) {
-			labelBinding = new C99Label(ident);
-			symbolTable = symbolTable.insert(GOTO_LABEL, ident, labelBinding);
-		}
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-				symbolTable = oldTable;
-			}
-		});
-
-		return labelBinding;
-	}
-
-	public IBinding consumeDeclarationSpecifiersTypedefName() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		// find the typedef token
-		String typedefName = null;
-		for (IToken token : parser.getRuleTokens()) {
-			// the token kind will still be TK_identifier, but there can only be one
-			if (token.getKind() == C99Parsersym.TK_identifier) {
-				typedefName = token.toString();
-				break;
-			}
-		}
-		assert typedefName != null : "a typedef token must have been parsed for this action to fire"; //$NON-NLS-1$
-
-		// we know that the binding is a typedef because the lexer feedback hack worked and got us here
-		ITypedef binding = (ITypedef) symbolTable.lookup(IDENTIFIER, typedefName);
-		// TODO: do I need to clone the typedef in case it is further modified like with const?
-		DeclaratorFrame frame = declarationStack.getLast();
-		final DeclSpec declSpec = frame.getDeclSpec();
-		declSpec.setType(binding);
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-				declSpec.setType(null);
-			}
-		});
-
-		return binding;
-	}
-
-	public void consumeDirectDeclaratorIdentifier() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		final DeclaratorFrame frame = declarationStack.getLast();
-		DebugUtil.printMethodTrace();
-		frame.setDeclaratorName(parser.getRightIToken());
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-				DebugUtil.printMethodTrace();
-				frame.setDeclaratorName(null);
-			}
-		});
-	}
-
-	// TODO need to be careful, this is called in a lot of places in the grammar
-	public void consumeDeclaratorWithPointer() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		final DeclaratorFrame frame = declarationStack.getLast();
-		final LinkedList<C99PointerType> scope = frame.closePointerModifierScope();
-		final int scopeSize = scope.size();
-
-		for (C99PointerType pt : reverseIterable(scope)) {
-			frame.addTypeModifier(pt);
-		}
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-				for (int i = 0; i < scopeSize; i++) {
-					frame.removeLastTypeModifier();
-				}
-				frame.openPointerModifierScope(scope);
-			}
-		});
-	}
-
-	public void consumeDirectDeclaratorBracketed() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		// Used to tell the difference between function prototype declarations and function pointer declarations
-		final DeclaratorFrame frame = declarationStack.getLast();
-		frame.setDeclaratorBracketed(true);
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-				frame.setDeclaratorBracketed(false);
-			}
-		});
-	}
-
-	public IBinding consumeDeclaratorComplete() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		final DeclaratorFrame frame = declarationStack.getLast();
-
-		IToken token = frame.getDeclaratorName();
-		IType type = frame.getDeclaratorType();
-		DeclSpec declSpec = frame.getDeclSpec();
-		boolean isFunction = frame.isFunctionDeclarator();
-		List<IBinding> nestedDeclarators = frame.getNestedDeclarations();
-
-		if (isFunction)
-			type = createFunctionType(type, nestedDeclarators);
-
-		String ident = (token == null) ? null : token.toString();
-
-		// compute the binding
-		IC99Binding binding;
-		if (declSpec.isTypedef())
-			binding = createTypedefBinding(ident, type);
-		else if (isFunction && !frame.isDeclaratorBracketed())
-			binding = createFunctionBinding(ident, (IFunctionType) type, declSpec, nestedDeclarators);
-		else
-			binding = createVariableBinding(ident, type, declSpec);
-
-		binding.setScope(bindingScopeStack.getLast());
-
-		// insert into symbol table
-		final C99SymbolTable oldTable = symbolTable;
-		if (ident != null)
-			symbolTable = symbolTable.insert(IDENTIFIER, ident, binding);
-
-		declarationStack.removeLast();
-		declarationStack.add(new DeclaratorFrame(frame.getDeclSpec())); // reset the declarator
-		exprTypeStack.push(type);
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-
-				exprTypeStack.pop();
-				declarationStack.removeLast();
-				declarationStack.add(frame);
-				symbolTable = oldTable;
-			}
-		});
-
-		return binding;
-	}
-
-	/**
-	 * Just gets rid of the type that was on the type stack.
-	 */
-	public void consumeInitDeclarator() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		final IType type = exprTypeStack.pop();
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-
-				exprTypeStack.push(type);
-			}
-		});
-	}
-
-	public IBinding consumeFunctionDefinitionHeader() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		DeclaratorFrame frame = declarationStack.getLast();
-		DeclSpec declSpec = frame.getDeclSpec();
-		String functionName = frame.getDeclaratorName().toString();
-
-		final C99SymbolTable oldTable = symbolTable;
-
-		// there may have been a function prototype, hence there may already be a binding for the function
-		IC99Binding binding = symbolTable.lookup(IDENTIFIER, functionName);
-		if (binding == null) {
-			IType type = frame.getDeclaratorType();
-			List<IBinding> nestedDeclarators = frame.getNestedDeclarations();
-
-			IFunctionType functionType = createFunctionType(type, nestedDeclarators);
-			binding = createFunctionBinding(functionName, functionType, declSpec, nestedDeclarators);
-
-			// a scope has already been opened for the function body, use the outer scope
-			IC99Scope topScope = bindingScopeStack.removeLast();
-			binding.setScope(bindingScopeStack.getLast());
-			bindingScopeStack.add(topScope);
-
-			symbolTable = symbolTable.insert(IDENTIFIER, functionName, binding);
-		}
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-				symbolTable = oldTable;
-			}
-		});
-
-		return binding;
-	}
-
-	public IBinding consumeDeclaratorCompleteParameter() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		final DeclaratorFrame frame = declarationStack.removeLast();
-		IToken token = frame.getDeclaratorName();
-		IType type = frame.getDeclaratorType();
-		DeclSpec declSpec = frame.getDeclSpec();
-		boolean isFunction = frame.isFunctionDeclarator();
-
-		// its a function pointer
-		if (isFunction)
-			type = createFunctionType(type, frame.getNestedDeclarations());
-
-		String ident = (token == null) ? NO_IDENT : token.toString();
-
-		IC99Binding parameterBinding = createParameterBinding(ident, type, declSpec);
-		parameterBinding.setScope(bindingScopeStack.getLast());
-
-		// check to see if there is already a parameter binding
-		String functionName = declarationStack.getLast().getDeclaratorName().toString();
-		C99Function function = (C99Function) symbolTable.lookup(IDENTIFIER, functionName);
-
-		if (function != null) {
-			// there is already a function binding for this function, that means there
-			// is a function prototype and there is already a binding for this parameter
-			int position = declarationStack.getLast().getNestedDeclarations().size();
-			IParameter[] parameters = function.getParameters();
-			if (parameters != null && position < parameters.length) {
-				parameterBinding = (IC99Binding) parameters[position];
-			}
-		}
-
-		// even if the binding is reused it still might be under a different name
-		final C99SymbolTable oldTable = symbolTable;
-		if (ident != null) {
-			symbolTable = symbolTable.insert(IDENTIFIER, ident, parameterBinding);
-		}
-
-		declarationStack.getLast().addNestedDeclaration(parameterBinding);
-
-		// parameter declarations can only have one declarator, so don't reset
-		//declarationStack.add(new DeclaratorFrame()); // reset
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-				//declarationStack.removeLast();
-				declarationStack.getLast().removeLastNestedDeclaration();
-				declarationStack.add(frame);
-				symbolTable = oldTable;
-			}
-		});
-
-		return parameterBinding;
-	}
-
-	/**
-	 * This is a special case for the rule:
-	 *     parameter_declaration ::= declaration_specifiers
-	 *
-	 * In this case there is no declarator at all
-	 *
-	 * TODO: creating bindings that have no identifier seems really dumb,
-	 * why does it need to be done? Why not just have a null binding or
-	 * for that matter don't even have a name node
-	 *
-	 */
-	public IBinding consumeParameterDeclarationWithoutDeclarator() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		final DeclaratorFrame frame = declarationStack.removeLast();
-		DeclSpec declSpec = frame.getDeclSpec();
-		C99Parameter param = createParameterBinding(null, declSpec.getType(), declSpec);
-		declarationStack.getLast().addNestedDeclaration(param);
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-				declarationStack.getLast().removeLastNestedDeclaration();
-				declarationStack.add(frame);
-			}
-		});
-
-		return param;
-	}
-
-	public IBinding consumeDeclaratorCompleteField() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		final DeclaratorFrame frame = declarationStack.getLast();
-		IToken token = frame.getDeclaratorName();
-		IType type = frame.getDeclaratorType();
-
-		// its a function pointer
-		if (frame.isFunctionDeclarator())
-			type = createFunctionType(type, frame.getNestedDeclarations());
-
-		IBinding binding = createFieldBinding(token.toString(), type, frame.getDeclSpec());
-
-		declarationStack.removeLast();
-		declarationStack.getLast().addNestedDeclaration(binding);
-		declarationStack.add(new DeclaratorFrame(frame.getDeclSpec())); // reset the declarator
-		exprTypeStack.push(type);
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-				exprTypeStack.pop();
-				declarationStack.removeLast();
-				declarationStack.getLast().removeLastNestedDeclaration();
-				declarationStack.add(frame);
-			}
-		});
-
-		return binding;
-	}
-
-	/**
-	 * An abstract declarator used as part of an expression, eg) a cast.
-	 * Only need the type.
-	 *
-	 * TODO: this isn't enough, I need a binding for the abstract declarator
-	 * what I really need is a consumeDeclaratorCompleteTypeId similar to above
-	 */
-	public void consumeTypeId() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		final DeclaratorFrame frame = declarationStack.removeLast();
-		IType type = frame.getDeclaratorType();
-		if (frame.isFunctionDeclarator()) // its a function pointer
-			type = createFunctionType(type, frame.getNestedDeclarations());
-
-		exprTypeStack.push(type);
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-				exprTypeStack.pop();
-				declarationStack.add(frame);
-			}
-		});
-	}
-
-	public void consumeDirectDeclaratorArrayModifier() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		final DeclaratorFrame frame = declarationStack.getLast();
-		frame.addTypeModifier(new C99ArrayType());
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-				frame.removeLastTypeModifier();
-			}
-		});
-	}
-
-	public void consumeAbstractDeclaratorArrayModifier() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		final DeclaratorFrame frame = declarationStack.getLast();
-		frame.addTypeModifier(new C99ArrayType());
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-				frame.removeLastTypeModifier();
-			}
-		});
-	}
-
-	public void consumeDirectDeclaratorModifiedArrayModifier(boolean isStatic, boolean isVarSized,
-			boolean hasTypeQualifierList) {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		C99ArrayType arrayType = new C99ArrayType();
-		arrayType.setStatic(isStatic);
-		arrayType.setVariableLength(isVarSized);
-
-		if (hasTypeQualifierList) {
-			arrayType.setConst(typeQualifiers.isConst);
-			arrayType.setRestrict(typeQualifiers.isRestrict);
-			arrayType.setVolatile(typeQualifiers.isVolatile);
-		}
-
-		final DeclaratorFrame frame = declarationStack.getLast();
-		frame.addTypeModifier(arrayType);
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-				frame.removeLastTypeModifier();
-			}
-		});
-	}
-
-	public void consumePointer() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		final DeclaratorFrame frame = declarationStack.getLast();
-		frame.addPointerModifier(new C99PointerType());
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-				frame.removeLastPointerModifier();
-			}
-		});
-	}
-
-	public void consumePointerTypeQualifierList() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		C99PointerType pointerType = new C99PointerType();
-		pointerType.setConst(typeQualifiers.isConst);
-		pointerType.setRestrict(typeQualifiers.isRestrict);
-		pointerType.setVolatile(typeQualifiers.isVolatile);
-
-		final DeclaratorFrame frame = declarationStack.getLast();
-		frame.addPointerModifier(pointerType);
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-				frame.removeLastPointerModifier();
-			}
-		});
-	}
-
-	public void consumeTypeQualifiers() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		typeQualifiers = new TypeQualifiers();
-
-		for (IToken token : parser.getRuleTokens()) {
-			switch (token.getKind()) {
-			case C99Parsersym.TK_const:
-				typeQualifiers.isConst = true;
-				break;
-			case C99Parsersym.TK_restrict:
-				typeQualifiers.isRestrict = true;
-				break;
-			case C99Parsersym.TK_volatile:
-				typeQualifiers.isVolatile = true;
-				break;
-			}
-		}
-
-		// I don't think this is really necessary but I need an undo action anyway
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-				typeQualifiers = null;
-			}
-		});
-	}
-
-	/**
-	 * Works for structs, unions and enums.
-	 * If the struct tag is not in the symbol table then it is treated
-	 * as a declaration.
-	 */
-	public IBinding consumeTypeSpecifierElaborated(int kind) {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		String tag = parser.getRightIToken().toString();
-
-		IC99Binding structBinding = symbolTable.lookup(STRUCT_TAG, tag);
-
-		final C99SymbolTable undoTable;
-
-		final boolean isDeclaration = (structBinding == null);
-
-		if (isDeclaration) { // declaration of an incomplete type
-			if (kind == IASTElaboratedTypeSpecifier.k_enum)
-				structBinding = new C99Enumeration();
-			else
-				structBinding = new C99Structure(kind);
-
-			undoTable = symbolTable;
-			symbolTable = symbolTable.insert(STRUCT_TAG, tag, structBinding);
-		} else {
-			undoTable = null; // final variable must be initialized
-		}
-
-		final DeclSpec declSpec = declarationStack.getLast().getDeclSpec();
-		declSpec.setType((IType) structBinding); // upcast
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-				declSpec.setType(null);
-
-				if (isDeclaration) {
-					assert undoTable != null;
-					symbolTable = undoTable;
-				}
-			}
-		});
-
-		return structBinding;
-	}
-
-	/**
-	 * @param key A field in IASTCompositeTypeSpecifier.
-	 */
-	public IBinding consumeTypeSpecifierComposite(final boolean hasName, int key) {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		// If the symbol table isn't updated then its still ok to undo
-		// because setting symbolTable to oldTable will effectively be a no-op.
-		final C99SymbolTable oldTable = symbolTable;
-
-		C99Structure struct;
-		if (hasName) {
-			String ident = parser.getRuleTokens().get(1).toString();
-			struct = (C99Structure) symbolTable.lookup(STRUCT_TAG, ident); // structure may have already been declared
-			if (struct == null) {
-				struct = new C99Structure(ident, key);
-				symbolTable = symbolTable.insert(STRUCT_TAG, ident, struct);
-			}
-		} else {
-			struct = new C99Structure(key);
-		}
-
-		final DeclaratorFrame frame = declarationStack.getLast();
-		for (IBinding binding : frame.getNestedDeclarations()) {
-			// the parser may allow invalid declarations like typedefs inside of structures, ignore those
-			if (binding instanceof C99Field) {
-				C99Field field = (C99Field) binding;
-				struct.addField(field);
-				field.setCompositeTypeOwner(struct);
-			}
-		}
-
-		frame.getDeclSpec().setType(struct);
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-				frame.getDeclSpec().setType(null);
-				symbolTable = oldTable;
-			}
-		});
-
-		return struct;
-	}
-
-	public IBinding consumeTypeSpecifierEnumeration(final boolean hasName) {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		C99Enumeration enumeration = new C99Enumeration();
-
-		final C99SymbolTable oldTable = symbolTable;
-		if (hasName) {
-			String ident = parser.getRuleTokens().get(1).toString();
-			enumeration.setName(ident);
-			symbolTable = symbolTable.insert(STRUCT_TAG, ident, enumeration);
-		}
-
-		final DeclaratorFrame frame = declarationStack.getLast();
-		for (IBinding binding : frame.getNestedDeclarations()) {
-			C99Enumerator enumerator = (C99Enumerator) binding;
-			enumeration.addEnumerator(enumerator);
-			enumerator.setType(enumeration);
-		}
-
-		frame.getDeclSpec().setType(enumeration);
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-				frame.getDeclSpec().setType(null);
-				if (hasName)
-					symbolTable = oldTable;
-			}
-		});
-
-		return enumeration;
-	}
-
-	public IBinding consumeEnumerator() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		IToken token = parser.getLeftIToken();
-		String ident = token.toString();
-		C99Enumerator enumerator = new C99Enumerator(ident);
-
-		final C99SymbolTable oldTable = symbolTable;
-		symbolTable = symbolTable.insert(IDENTIFIER, ident, enumerator);
-
-		// enumerators are not declarations in the standard sense, so a scope won't be opened for them
-		declarationStack.getLast().addNestedDeclaration(enumerator);
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-				declarationStack.getLast().removeLastNestedDeclaration();
-				symbolTable = oldTable;
-			}
-		});
-
-		return enumerator;
-	}
-
-	public IField consumeDesignatorBaseField() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		IType baseType = getInitializerType();
-		String fieldName = parser.getRightIToken().toString();
-
-		C99Field fieldBinding = computeFieldBinding(baseType, fieldName, false);
-		IType type = fieldBinding == null ? C99ProblemBinding.badType() : fieldBinding.getType();
-
-		exprTypeStack.push(type);
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-				exprTypeStack.pop();
-			}
-		});
-
-		return fieldBinding;
-	}
-
-	private IType getInitializerType() {
-		List<IType> outerScope = exprTypeStack.outerScope();
-		return outerScope.get(outerScope.size() - 1);
-	}
-
-	public void consumeDesignatorBaseArray() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		IType baseType = getInitializerType();
-
-		IType type = C99ProblemBinding.badType();
-		if (baseType instanceof C99ArrayType) {
-			type = ((C99ArrayType) baseType).getType();
-		}
-
-		exprTypeStack.push(type);
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-				exprTypeStack.pop();
-			}
-		});
-	}
-
-	public void consumeInitializerStartPositional() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-		DebugUtil.printMethodTrace();
-
-		IType type = getInitializerType();
-		type = rawType(type);
-
-		IType positionType;
-		if (type instanceof C99Structure) {
-			int position = exprTypeStack.topScope().size();
-			C99Field field = (C99Field) ((C99Structure) type).getFields()[position];
-			positionType = field.getType();
-		} else if (type instanceof IArrayType) {
-			positionType = ((C99ArrayType) type).getType();
-		} else {
-			positionType = C99ProblemBinding.badType();
-		}
-
-		exprTypeStack.push(positionType);
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-				exprTypeStack.pop();
-			}
-		});
-	}
-
-	private static C99FunctionType createFunctionType(IType returnType, List<IBinding> parameterDeclarations) {
-		C99FunctionType functionType = new C99FunctionType();
-		functionType.setReturnType(returnType);
-		for (IBinding b : parameterDeclarations) {
-			C99Variable parameter = (C99Variable) b;
-			functionType.addParameterType(parameter.getType());
-		}
-		return functionType;
-	}
-
-	// helper functions for creating binding objects
-
-	private static C99Function createFunctionBinding(String ident, IFunctionType type, DeclSpec declSpec) {
-		C99Function func = new C99Function(ident == null ? NO_IDENT : ident, type);
-		declSpec.modifyBinding(func);
-		return func;
-	}
-
-	private static C99Function createFunctionBinding(String ident, IFunctionType type, DeclSpec declSpec,
-			List<IBinding> params) {
-		C99Function func = createFunctionBinding(ident, type, declSpec);
-		for (IBinding b : params) {
-			func.addParameter((IParameter) b);
-		}
-		return func;
-	}
-
-	private static C99Field createFieldBinding(String ident, IType type, DeclSpec declSpec) {
-		C99Field var = new C99Field(ident == null ? NO_IDENT : ident);
-		var.setType(type);
-		declSpec.modifyBinding(var);
-		return var;
-	}
-
-	private static C99Parameter createParameterBinding(String ident, IType type, DeclSpec declSpec) {
-		C99Parameter param = new C99Parameter(ident == null ? NO_IDENT : ident);
-		param.setType(type);
-		declSpec.modifyBinding(param);
-		return param;
-	}
-
-	private static C99Variable createVariableBinding(String ident, IType type, DeclSpec declSpec) {
-		C99Variable var = new C99Variable(ident == null ? NO_IDENT : ident);
-		var.setType(type);
-		declSpec.modifyBinding(var);
-		return var;
-	}
-
-	private static C99Typedef createTypedefBinding(String ident, IType type) {
-		return new C99Typedef(type, ident == null ? NO_IDENT : ident);
-	}
-
-	public void openTypeScope() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		exprTypeStack.openScope();
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-				exprTypeStack.closeScope();
-			}
-		});
-	}
-
-	@SuppressWarnings("nls")
-	public void consumeExpressionConstant(int kind) {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		//super.consumeExpressionConstant(kind);
-		// TODO: this is incomplete, what about double constants, int constants with long suffix etc
-		String constant = parser.getRightIToken().toString();
-
-		IType type = null;
-		switch (kind) {
-		case IASTLiteralExpression.lk_char_constant:
-			if (constant.startsWith("L")) {//unsigned short int
-				C99BasicType charType = new C99BasicType(IBasicType.t_int);
-				charType.setShort(true);
-				charType.setUnsigned(true);
-				type = charType;
-			} else
-				type = new C99BasicType(IBasicType.t_char);
-			break;
-
-		case IASTLiteralExpression.lk_float_constant:
-			C99BasicType floatType;
-			if (constant.contains("f") || constant.contains("F"))
-				floatType = new C99BasicType(IBasicType.t_float);
-			else
-				floatType = new C99BasicType(IBasicType.t_double);
-
-			if (constant.contains("l") || constant.contains("L"))
-				floatType.setLong(true);
-
-			type = floatType;
-			break;
-
-		case IASTLiteralExpression.lk_integer_constant:
-			C99BasicType intType = new C99BasicType(IBasicType.t_int);
-			if (constant.contains("l") || constant.contains("L"))
-				intType.setLong(true);
-
-			if (constant.contains("ll") || constant.contains("LL")) {
-				intType.setLongLong(true);
-				intType.setLong(false);
-			}
-			if (constant.contains("u") || constant.contains("U"))
-				intType.setUnsigned(true);
-
-			type = intType;
-			break;
-
-		case IASTLiteralExpression.lk_string_literal:
-			type = new C99PointerType(new C99BasicType(IBasicType.t_char));
-			break;
-
-		default:
-			assert false : "can't get here"; //$NON-NLS-1$
-		}
-
-		exprTypeStack.push(type);
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-				exprTypeStack.pop();
-			}
-		});
-	}
-
-	public IBinding consumeExpressionID() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		IToken token = parser.getRightIToken();
-		String ident = token.toString();
-		IBinding binding = symbolTable.lookup(IDENTIFIER, ident);
-
-		IType type = C99ProblemBinding.badType();
-		if (binding instanceof ITypeable)
-			type = ((ITypeable) binding).getType();
-
-		exprTypeStack.push(type);
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-				exprTypeStack.pop();
-			}
-		});
-
-		return binding;
-	}
-
-	public IField consumeExpressionFieldReference(boolean isPointerDereference) {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		String memberName = parser.getRightIToken().toString();
-		final IType identType = exprTypeStack.pop();
-
-		C99Field field = computeFieldBinding(identType, memberName, isPointerDereference);
-		IType resultType = field == null ? C99ProblemBinding.badType() : field.getType();
-
-		exprTypeStack.push(resultType);
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-				exprTypeStack.pop();
-				exprTypeStack.push(identType);
-			}
-		});
-
-		return field;
-	}
-
-	/**
-	 * Computes the type of a field member access in an expression.
-	 * eg) x.a; computes the type of a
-	 */
-	private C99Field computeFieldBinding(IType identType, String memberName, boolean isPointerDereference) {
-		IType type = identType;
-		if (isPointerDereference) {
-			if (type instanceof IPointerType)
-				type = ((ITypeContainer) type).getType(); // do the dereference
-			else
-				return null;
-		}
-
-		type = rawType(type);
-		if (type instanceof ICompositeType) {
-			ICompositeType struct = (ICompositeType) type;
-			return (C99Field) struct.findField(memberName);
-		}
-
-		return null;
-	}
-
-	// TODO In C a function name can be used without parenthesis, the result is the address of
-	// the function (which is an int I think). This means an identifier that happens to be
-	// a function name should probably evaluate to an int, and then if it subsequently gets parsed
-	// as a function call we can look up its function type from the symbol table.
-	public void consumeExpressionFunctionCall(final boolean hasArgs) {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		final List<IType> scope = hasArgs ? exprTypeStack.closeScope() : null;
-		final IType identifierType = exprTypeStack.pop();
-
-		IType resultType = C99ProblemBinding.badType();
-
-		if (identifierType instanceof IFunctionType) {
-			// TODO: check the parameter types
-			IFunctionType functionType = (IFunctionType) identifierType;
-			resultType = functionType.getReturnType();
-
-		}
-
-		exprTypeStack.push(resultType);
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-				exprTypeStack.pop();
-				exprTypeStack.push(identifierType);
-				if (hasArgs)
-					exprTypeStack.openScope(scope);
-			}
-		});
-	}
-
-	public void consumeExpressionArraySubscript() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		// Not doing type checking so it doesn't matter that this is integral type
-		final IType subscriptType = exprTypeStack.pop();
-		final IType exprType = exprTypeStack.pop();
-
-		IType resultType = C99ProblemBinding.badType();
-		if (exprType instanceof IArrayType) {
-			IArrayType arrType = (IArrayType) exprType;
-			resultType = arrType.getType(); // strip off the array type
-
-		}
-
-		exprTypeStack.push(resultType);
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-				exprTypeStack.pop();
-				exprTypeStack.push(exprType);
-				exprTypeStack.push(subscriptType);
-			}
-		});
-	}
-
-	public void consumeExpressionUnaryOperator() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		// TODO: this is lazy, need to check the actual rules for types and operators
-		final IType expressionType = exprTypeStack.pop();
-
-		IType resultType = new C99BasicType(IBasicType.t_int);
-		exprTypeStack.push(resultType);
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-				exprTypeStack.pop();
-				exprTypeStack.push(expressionType);
-			}
-		});
-	}
-
-	public void consumeExpressionUnarySizeofTypeName() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		final IType typeNameType = exprTypeStack.pop();
-
-		IType resultType = new C99BasicType(IBasicType.t_int);
-		exprTypeStack.push(resultType);
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-				exprTypeStack.pop();
-				exprTypeStack.push(typeNameType);
-			}
-		});
-	}
-
-	public void consumeExpressionCast() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		final IType exprType = exprTypeStack.pop();
-
-		// pop then push is no-op
-		//IType castType = exprTypeStack.pop();
-		//exprTypeStack.push(castType);
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-				exprTypeStack.push(exprType);
-			}
-		});
-	}
-
-	public void consumeExpressionTypeIdInitializer() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		// Throw away the types of the initializer list
-		final List<IType> scope = exprTypeStack.closeScope();
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-				exprTypeStack.openScope(scope);
-			}
-		});
-	}
-
-	public void consumeExpressionInitializer() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		final IType type = exprTypeStack.pop();
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-
-				exprTypeStack.push(type);
-			}
-		});
-	}
-
-	public void consumeExpressionBinaryOperator(int op) {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		final IType op2type = exprTypeStack.pop();
-		final IType op1type = exprTypeStack.pop();
-
-		switch (op) {
-		case IASTBinaryExpression.op_assign:
-		case IASTBinaryExpression.op_multiplyAssign:
-		case IASTBinaryExpression.op_divideAssign:
-		case IASTBinaryExpression.op_moduloAssign:
-		case IASTBinaryExpression.op_plusAssign:
-		case IASTBinaryExpression.op_minusAssign:
-		case IASTBinaryExpression.op_shiftLeftAssign:
-		case IASTBinaryExpression.op_shiftRightAssign:
-		case IASTBinaryExpression.op_binaryAndAssign:
-		case IASTBinaryExpression.op_binaryXorAssign:
-		case IASTBinaryExpression.op_binaryOrAssign:
-			exprTypeStack.push(op1type);
-			break;
-
-		default:
-			IType resultType = new C99BasicType(IBasicType.t_int);
-			exprTypeStack.push(resultType);
-		}
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-
-				exprTypeStack.pop();
-				exprTypeStack.push(op1type);
-				exprTypeStack.push(op2type);
-			}
-		});
-	}
-
-	public void consumeExpressionConditional() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		final IType expr2Type = exprTypeStack.pop();
-		final IType expr1Type = exprTypeStack.pop();
-		final IType condType = exprTypeStack.pop();
-		exprTypeStack.push(expr1Type);
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-				exprTypeStack.pop();
-				exprTypeStack.push(condType);
-				exprTypeStack.push(expr1Type);
-				exprTypeStack.push(expr2Type);
-			}
-		});
-	}
-
-	//	// TODO: expression lists are changing
-	//	public void consumeExpressionList(boolean baseCase) {
-	//		// This is a hack, the type of an expression
-	//		// list will be the first expression in the list.
-	//		if(!baseCase) {
-	//			exprTypeStack.pop();
-	//		}
-	//	}
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/action/deprecated/C99TypedefTrackerParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/action/deprecated/C99TypedefTrackerParserAction.java
deleted file mode 100644
index 74e7848..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/action/deprecated/C99TypedefTrackerParserAction.java
+++ /dev/null
@@ -1,368 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2015 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.lrparser.c99.action.deprecated;
-
-import java.util.LinkedList;
-
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
-import org.eclipse.cdt.core.parser.util.DebugUtil;
-import org.eclipse.cdt.internal.core.dom.lrparser.symboltable.TypedefSymbolTable;
-
-import lpg.lpgjavaruntime.IToken;
-
-/**
- * A simple set of trial and undo actions that just keep track
- * of typedef names. This information is then fed back to the parser
- * in order to disambiguate certain parser grammar rules.
- *
- * The command design pattern is used to implement undo actions.
- *
- * @author Mike Kucera
- */
-public class C99TypedefTrackerParserAction {
-
-	private static final boolean DEBUG = true;
-
-	// provides limited access to the token stream
-	private final ITokenStream parser;
-
-	// The symbolTable currently in use
-	private TypedefSymbolTable symbolTable = TypedefSymbolTable.EMPTY_TABLE;
-
-	// A stack that keeps track of scopes in the symbol table, used to "close" scopes and to undo the opening of scopes
-	private final LinkedList<TypedefSymbolTable> symbolTableScopeStack = new LinkedList<>();
-
-	// keeps track of nested declarations
-	private final LinkedList<DeclaratorFrame> declarationStack = new LinkedList<>();
-
-	// "For every action there is an equal and opposite reaction." - Newton's third law
-	private final LinkedList<IUndoAction> undoStack = new LinkedList<>();
-
-	/**
-	 * A command object that provides undo functionality.
-	 */
-	private interface IUndoAction {
-		void undo();
-	}
-
-	/**
-	 * Undoes the last fired action.
-	 */
-	public void undo() {
-		undoStack.removeLast().undo();
-	}
-
-	public C99TypedefTrackerParserAction(ITokenStream parser) {
-		this.parser = parser;
-	}
-
-	/**
-	 * Lexer feedback hack, used by the parser to identify typedefname tokens.
-	 */
-	public boolean isTypedef(String ident) {
-		return symbolTable.contains(ident);
-	}
-
-	/**
-	 * Methods used by tests, package local access.
-	 */
-	TypedefSymbolTable getSymbolTable() {
-		return symbolTable;
-	}
-
-	int undoStackSize() {
-		return undoStack.size();
-	}
-
-	LinkedList<DeclaratorFrame> getDeclarationStack() {
-		return declarationStack;
-	}
-
-	/**
-	 * Called from the grammar file in places where a scope is created.
-	 *
-	 * Scopes are created by compound statements, however special care
-	 * must also be taken with for loops because they may contain
-	 * declarations.
-	 *
-	 * TODO: scope object now need to be handled explicitly
-	 */
-	public void openSymbolScope() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		symbolTableScopeStack.add(symbolTable);
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-
-				symbolTable = symbolTableScopeStack.removeLast();
-			}
-		});
-	}
-
-	public void closeSymbolScope() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		final TypedefSymbolTable undoTable = symbolTable;
-		symbolTable = symbolTableScopeStack.removeLast(); // close the scope
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-
-				symbolTableScopeStack.add(symbolTable);
-				symbolTable = undoTable;
-			}
-		});
-	}
-
-	/**
-	 * Called from the grammar before a declaration is about to be reduced.
-	 */
-	public void openDeclarationScope() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		declarationStack.add(new DeclaratorFrame());
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-
-				declarationStack.removeLast();
-			}
-		});
-	}
-
-	public void closeDeclarationScope() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		final DeclaratorFrame undoFrame = declarationStack.removeLast();
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-
-				declarationStack.add(undoFrame);
-			}
-		});
-	}
-
-	public void consumeFunctionDefinition() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		final DeclaratorFrame frame = declarationStack.removeLast();
-
-		final TypedefSymbolTable undoTable = symbolTable;
-		symbolTable = symbolTableScopeStack.removeLast();
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-
-				symbolTableScopeStack.add(symbolTable);
-				symbolTable = undoTable;
-
-				declarationStack.add(frame);
-			}
-		});
-	}
-
-	public void consumeDeclSpecToken() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		IToken token = parser.getRightIToken();
-		final int kind = token.getKind();
-
-		// creates a DeclSpec if there isn't one already
-		DeclaratorFrame frame = declarationStack.getLast();
-		final DeclSpec declSpec = frame.getDeclSpec();
-		declSpec.add(kind);
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-
-				declSpec.remove(kind);
-			}
-		});
-	}
-
-	public void consumeDirectDeclaratorIdentifier() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		final DeclaratorFrame frame = declarationStack.getLast();
-		frame.setDeclaratorName(parser.getRightIToken());
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-
-				frame.setDeclaratorName(null);
-			}
-		});
-	}
-
-	public void consumeDeclaratorComplete() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		final DeclaratorFrame frame = declarationStack.getLast();
-
-		IToken token = frame.getDeclaratorName();
-		DeclSpec declSpec = frame.getDeclSpec();
-
-		String ident = (token == null) ? null : token.toString();
-		//System.out.println("declarator complete: " + ident);
-
-		final TypedefSymbolTable oldTable = symbolTable;
-		if (declSpec.isTypedef()) {
-			//System.out.println("adding typedef: " + ident);
-			symbolTable = symbolTable.add(ident);
-		}
-
-		declarationStack.removeLast();
-		declarationStack.add(new DeclaratorFrame(frame.getDeclSpec())); // reset the declarator
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-
-				declarationStack.removeLast();
-				declarationStack.add(frame);
-				symbolTable = oldTable;
-			}
-		});
-	}
-
-	public void consumeDeclaratorCompleteParameter() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		final DeclaratorFrame frame = declarationStack.removeLast();
-
-		//declarationStack.getLast().addNestedDeclaration(parameterBinding);
-
-		// parameter declarations can only have one declarator, so don't reset
-		//declarationStack.add(new DeclaratorFrame()); // reset
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-				//declarationStack.removeLast();
-				//declarationStack.getLast().removeLastNestedDeclaration();
-				declarationStack.add(frame);
-			}
-		});
-	}
-
-	/**
-	 * This is a special case for the rule:
-	 *     parameter_declaration ::= declaration_specifiers
-	 *
-	 * In this case there is no declarator at all
-	 *
-	 * TODO: creating bindings that have no identifier seems really dumb,
-	 * why does it need to be done? Why not just have a null binding or
-	 * for that matter don't even have a name node
-	 *
-	 */
-	public void consumeParameterDeclarationWithoutDeclarator() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		final DeclaratorFrame frame = declarationStack.removeLast();
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-
-				declarationStack.add(frame);
-			}
-		});
-	}
-
-	public void consumeDeclaratorCompleteField() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		final DeclaratorFrame frame = declarationStack.removeLast();
-
-		declarationStack.add(new DeclaratorFrame(frame.getDeclSpec())); // reset the declarator
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-
-				declarationStack.removeLast();
-
-				declarationStack.add(frame);
-			}
-		});
-	}
-
-	/**
-	 * An abstract declarator used as part of an expression, eg) a cast.
-	 * Only need the type.
-	 *
-	 * TODO: this isn't enough, I need a binding for the abstract declarator
-	 * what I really need is a consumeDeclaratorCompleteTypeId similar to above
-	 */
-	public void consumeTypeId() {
-		if (DEBUG)
-			DebugUtil.printMethodTrace();
-
-		final DeclaratorFrame frame = declarationStack.removeLast();
-
-		undoStack.add(new IUndoAction() {
-			@Override
-			public void undo() {
-				if (DEBUG)
-					DebugUtil.printMethodTrace();
-
-				declarationStack.add(frame);
-			}
-		});
-	}
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/action/deprecated/DeclSpec.java b/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/action/deprecated/DeclSpec.java
deleted file mode 100644
index feb69f6..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/action/deprecated/DeclSpec.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.lrparser.c99.action.deprecated;
-
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK__Bool;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK__Complex;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK__Imaginary;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_auto;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_char;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_const;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_double;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_extern;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_float;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_inline;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_int;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_long;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_register;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_restrict;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_short;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_signed;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_static;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_unsigned;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_void;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_volatile;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.cdt.core.dom.ast.IBasicType;
-import org.eclipse.cdt.core.dom.ast.IType;
-import org.eclipse.cdt.core.dom.ast.c.ICBasicType;
-import org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym;
-import org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings.C99BasicType;
-import org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings.C99Function;
-import org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings.C99QualifierType;
-import org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings.C99Variable;
-
-/**
- * Keeps track of declaration specifiers during the parse.
- * Used to compute types and determine if a declarator is a typedef.
- *
- * @author Mike Kucera
- */
-class DeclSpec {
-
-	// maps token kinds to the number of occurrences of that kind
-	private Map<Integer, Integer> tokenKindMap = new HashMap<>();
-
-	private IType type = null;
-
-	public void add(int kind) {
-		tokenKindMap.put(kind, count(kind) + 1);
-	}
-
-	public void remove(final int kind) {
-		Integer count = tokenKindMap.get(kind);
-		if (count == null)
-			return;
-
-		if (count <= 1)
-			tokenKindMap.remove(kind);
-		else
-			tokenKindMap.put(kind, count - 1);
-	}
-
-	public boolean contains(int kind) {
-		return tokenKindMap.containsKey(kind);
-	}
-
-	public boolean isTypedef() {
-		return contains(C99Parsersym.TK_typedef);
-	}
-
-	/**
-	 * Need to keep track of how many times a particular
-	 * declaration specifier appears in order to support
-	 * long long.
-	 */
-	public int count(int kind) {
-		Integer count = tokenKindMap.get(kind);
-		return count == null ? 0 : count;
-	}
-
-	/**
-	 * Set if the type should be a structure.
-	 */
-	public void setType(IType type) {
-		this.type = type;
-	}
-
-	public IType getType() {
-		if (type != null)
-			return type;
-		if (tokenKindMap.isEmpty()) // there are no type tokens, so it must be implicit int
-			return new C99BasicType(IBasicType.t_int);
-
-		C99BasicType basicType = new C99BasicType();
-
-		for (int kind : tokenKindMap.keySet()) {
-			switch (kind) {
-			case TK_void:
-				basicType.setType(IBasicType.t_void);
-				break;
-			case TK_char:
-				basicType.setType(IBasicType.t_char);
-				break;
-			case TK_int:
-				basicType.setType(IBasicType.t_int);
-				break;
-			case TK_float:
-				basicType.setType(IBasicType.t_float);
-				break;
-			case TK_double:
-				basicType.setType(IBasicType.t_double);
-				break;
-			case TK_long:
-				boolean isLongLong = count(TK_long) > 1;
-				basicType.setLongLong(isLongLong);
-				basicType.setLong(!isLongLong);
-				break;
-			case TK_signed:
-				basicType.setSigned(true);
-				break;
-			case TK_unsigned:
-				basicType.setUnsigned(true);
-				break;
-			case TK_short:
-				basicType.setShort(true);
-				break;
-			case TK__Bool:
-				basicType.setType(ICBasicType.t_Bool);
-				break;
-			case TK__Complex:
-				basicType.setComplex(true);
-				break;
-			case TK__Imaginary:
-				basicType.setImaginary(true);
-				break;
-			}
-		}
-
-		boolean isConst = contains(TK_const);
-		boolean isRestrict = contains(TK_restrict);
-		boolean isVolatile = contains(TK_volatile);
-
-		if (isConst || isRestrict || isVolatile)
-			return new C99QualifierType(basicType, isConst, isVolatile, isRestrict);
-		return basicType;
-	}
-
-	public void modifyBinding(C99Variable var) {
-		if (!var.isAuto())
-			var.setAuto(contains(TK_auto));
-		if (!var.isExtern())
-			var.setExtern(contains(TK_extern));
-		if (!var.isRegister())
-			var.setRegister(contains(TK_register));
-		if (!var.isStatic())
-			var.setStatic(contains(TK_static));
-	}
-
-	public void modifyBinding(C99Function function) {
-		if (!function.isAuto())
-			function.setAuto(contains(TK_auto));
-		if (!function.isExtern())
-			function.setExtern(contains(TK_extern));
-		if (!function.isInline())
-			function.setInline(contains(TK_inline));
-		if (!function.isRegister())
-			function.setRegister(contains(TK_register));
-		if (!function.isStatic())
-			function.setStatic(contains(TK_static));
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/action/deprecated/DeclaratorFrame.java b/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/action/deprecated/DeclaratorFrame.java
deleted file mode 100644
index d4c9c6c..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/action/deprecated/DeclaratorFrame.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.lrparser.c99.action.deprecated;
-
-import java.util.LinkedList;
-import java.util.List;
-
-import org.eclipse.cdt.core.dom.ast.IBinding;
-import org.eclipse.cdt.core.dom.ast.IType;
-import org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings.C99PointerType;
-import org.eclipse.cdt.internal.core.dom.parser.ITypeContainer;
-
-import lpg.lpgjavaruntime.IToken;
-
-/**
- * Represents a frame on the declaration stack used by the resolver actions.
- *
- * TODO: document this class better
- *
- * @author Mike Kucera
- */
-@SuppressWarnings("restriction")
-public class DeclaratorFrame {
-	private DeclSpec declSpec;
-	//IBinding declarator;
-	private IToken declaratorName;
-	private boolean isDeclaratorBracketed;
-	private boolean isFunctionDeclarator = false;
-
-	// temporary storage for pointer modifiers
-	private LinkedList<LinkedList<C99PointerType>> pointerModifiers = new LinkedList<>();
-
-	// stores pointer and array modifiers that are applied to the declarator
-	private LinkedList<ITypeContainer> typeModifiers = new LinkedList<>();
-
-	private LinkedList<IBinding> nestedDeclarations = new LinkedList<>();
-
-	public DeclaratorFrame() {
-	}
-
-	public DeclaratorFrame(DeclSpec declSpec) {
-		this.declSpec = declSpec;
-	}
-
-	public DeclSpec getDeclSpec() {
-		if (declSpec == null)
-			declSpec = new DeclSpec();
-
-		return declSpec;
-	}
-
-	public IType getDeclaratorType() {
-		// the declSpec may be null, so use getDeclSpec()
-		IType baseType = getDeclSpec().getType();
-
-		if (typeModifiers.isEmpty())
-			return baseType;
-
-		IType type = typeModifiers.get(0);
-
-		// link the types together
-		for (int i = 1; i < typeModifiers.size(); i++) {
-			ITypeContainer t1 = typeModifiers.get(i - 1);
-			ITypeContainer t2 = typeModifiers.get(i);
-			t1.setType(t2);
-		}
-
-		ITypeContainer last = typeModifiers.get(typeModifiers.size() - 1);
-		last.setType(baseType);
-		return type;
-	}
-
-	public IToken getDeclaratorName() {
-		return declaratorName;
-	}
-
-	public void setDeclaratorName(IToken declaratorName) {
-		this.declaratorName = declaratorName;
-	}
-
-	public boolean isDeclaratorBracketed() {
-		return isDeclaratorBracketed;
-	}
-
-	public void setDeclaratorBracketed(boolean isDeclaratorBracketed) {
-		this.isDeclaratorBracketed = isDeclaratorBracketed;
-	}
-
-	public boolean isFunctionDeclarator() {
-		return isFunctionDeclarator;
-	}
-
-	public void setFunctionDeclarator(boolean isFunctionDeclarator) {
-		this.isFunctionDeclarator = isFunctionDeclarator;
-	}
-
-	public List<IBinding> getNestedDeclarations() {
-		return nestedDeclarations;
-	}
-
-	public void addNestedDeclaration(IBinding binding) {
-		nestedDeclarations.add(binding);
-	}
-
-	public void removeLastNestedDeclaration() {
-		nestedDeclarations.removeLast();
-	}
-
-	public void addTypeModifier(ITypeContainer x) {
-		typeModifiers.add(x);
-	}
-
-	public void removeLastTypeModifier() {
-		typeModifiers.removeLast();
-	}
-
-	public void addPointerModifier(C99PointerType x) {
-		pointerModifiers.getLast().add(x);
-	}
-
-	public void removeLastPointerModifier() {
-		pointerModifiers.getLast().removeLast();
-	}
-
-	public void openPointerModifierScope() {
-		pointerModifiers.add(new LinkedList<C99PointerType>());
-	}
-
-	public void openPointerModifierScope(LinkedList<C99PointerType> scope) {
-		pointerModifiers.add(scope);
-	}
-
-	public LinkedList<C99PointerType> closePointerModifierScope() {
-		return pointerModifiers.removeLast();
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99ArrayType.java b/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99ArrayType.java
deleted file mode 100644
index c03186f..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99ArrayType.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2014 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings;
-
-import org.eclipse.cdt.core.dom.ast.DOMException;
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-import org.eclipse.cdt.core.dom.ast.IType;
-import org.eclipse.cdt.core.dom.ast.ITypedef;
-import org.eclipse.cdt.core.dom.ast.IValue;
-import org.eclipse.cdt.core.dom.ast.c.ICArrayType;
-import org.eclipse.cdt.internal.core.dom.parser.ITypeContainer;
-
-@SuppressWarnings("restriction")
-public class C99ArrayType implements ICArrayType, ITypeContainer {
-	private boolean isConst;
-	private boolean isRestrict;
-	private boolean isStatic;
-	private boolean isVolatile;
-	private boolean isVariableLength;
-
-	private IType type;
-
-	public C99ArrayType() {
-	}
-
-	public C99ArrayType(IType type) {
-		this.type = type;
-	}
-
-	@Override
-	public boolean isConst() {
-		return isConst;
-	}
-
-	public void setConst(boolean isConst) {
-		this.isConst = isConst;
-	}
-
-	@Override
-	public boolean isRestrict() {
-		return isRestrict;
-	}
-
-	public void setRestrict(boolean isRestrict) {
-		this.isRestrict = isRestrict;
-	}
-
-	@Override
-	public boolean isStatic() {
-		return isStatic;
-	}
-
-	public void setStatic(boolean isStatic) {
-		this.isStatic = isStatic;
-	}
-
-	@Override
-	public boolean isVolatile() {
-		return isVolatile;
-	}
-
-	public void setVolatile(boolean isVolatile) {
-		this.isVolatile = isVolatile;
-	}
-
-	@Override
-	public boolean isVariableLength() {
-		return isVariableLength;
-	}
-
-	public void setVariableLength(boolean isVariableLength) {
-		this.isVariableLength = isVariableLength;
-	}
-
-	@Deprecated
-	@Override
-	public IASTExpression getArraySizeExpression() throws DOMException {
-		return null;
-	}
-
-	@Override
-	public IType getType() {
-		return type;
-	}
-
-	@Override
-	public void setType(IType type) {
-		this.type = type;
-	}
-
-	@Override
-	public boolean isSameType(IType t) {
-		if (t == this)
-			return true;
-		if (t instanceof ITypedef)
-			return t.isSameType(this);
-		if (t instanceof ICArrayType) {
-			ICArrayType at = (ICArrayType) t;
-			if (at.isConst() == isConst && at.isRestrict() == isRestrict && at.isStatic() == isStatic
-					&& at.isVolatile() == isVolatile && at.isVariableLength() == isVariableLength) {
-				return at.isSameType(type);
-			}
-		}
-		return false;
-	}
-
-	@Override
-	public IValue getSize() {
-		return null;
-	}
-
-	@Override
-	public boolean hasSize() {
-		return false;
-	}
-
-	@Override
-	public C99ArrayType clone() {
-		C99ArrayType clone = null;
-		try {
-			clone = (C99ArrayType) super.clone();
-			clone.type = (IType) type.clone();
-		} catch (CloneNotSupportedException e) {
-			assert false; // not going to happen
-		}
-		return clone;
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99BasicType.java b/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99BasicType.java
deleted file mode 100644
index e33c7e7..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99BasicType.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2015 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings;
-
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-import org.eclipse.cdt.core.dom.ast.IType;
-import org.eclipse.cdt.core.dom.ast.c.ICBasicType;
-
-public class C99BasicType implements ICBasicType {
-
-	/* Type flags given in IBasicType */
-	private int type;
-
-	private boolean isLong;
-	private boolean isShort;
-	private boolean isSigned;
-	private boolean isUnsigned;
-	private boolean isComplex;
-	private boolean isImaginary;
-	private boolean isLongLong;
-
-	public C99BasicType() {
-	}
-
-	public C99BasicType(int type) {
-		this.type = type;
-	}
-
-	@Override
-	public int getType() {
-		return type;
-	}
-
-	public void setType(int type) {
-		this.type = type;
-	}
-
-	@Override
-	public boolean isLong() {
-		return isLong;
-	}
-
-	public void setLong(boolean isLong) {
-		this.isLong = isLong;
-	}
-
-	@Override
-	public boolean isShort() {
-		return isShort;
-	}
-
-	public void setShort(boolean isShort) {
-		this.isShort = isShort;
-	}
-
-	@Override
-	public boolean isSigned() {
-		return isSigned;
-	}
-
-	public void setSigned(boolean isSigned) {
-		this.isSigned = isSigned;
-	}
-
-	@Override
-	public boolean isUnsigned() {
-		return isUnsigned;
-	}
-
-	public void setUnsigned(boolean isUnsigned) {
-		this.isUnsigned = isUnsigned;
-	}
-
-	@Override
-	public boolean isComplex() {
-		return isComplex;
-	}
-
-	public void setComplex(boolean isComplex) {
-		this.isComplex = isComplex;
-	}
-
-	@Override
-	public boolean isImaginary() {
-		return isImaginary;
-	}
-
-	public void setImaginary(boolean isImaginary) {
-		this.isImaginary = isImaginary;
-	}
-
-	@Override
-	public boolean isLongLong() {
-		return isLongLong;
-	}
-
-	public void setLongLong(boolean isLongLong) {
-		this.isLongLong = isLongLong;
-	}
-
-	@Override
-	@Deprecated
-	public IASTExpression getValue() {
-		return null;
-	}
-
-	@Override
-	public boolean isSameType(IType t) {
-		if (t == this)
-			return true;
-		if (!(t instanceof C99BasicType))
-			return false;
-
-		C99BasicType bt = (C99BasicType) t;
-		return bt.type == this.type && bt.isLong == this.isLong && bt.isShort == this.isShort
-				&& bt.isSigned == this.isSigned && bt.isUnsigned == this.isUnsigned && bt.isComplex == this.isComplex
-				&& bt.isImaginary == this.isImaginary && bt.isLongLong == this.isLongLong;
-	}
-
-	@Override
-	public C99BasicType clone() {
-		try {
-			return (C99BasicType) super.clone();
-		} catch (CloneNotSupportedException e) {
-			assert false;
-			return null;
-		}
-	}
-
-	@Override
-	public Kind getKind() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	@Override
-	public int getModifiers() {
-		// TODO Auto-generated method stub
-		return 0;
-	}
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99CompositeTypeScope.java b/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99CompositeTypeScope.java
deleted file mode 100644
index 6cbc4e7..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99CompositeTypeScope.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2015 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings;
-
-import org.eclipse.cdt.core.dom.ast.EScopeKind;
-import org.eclipse.cdt.core.dom.ast.IBinding;
-import org.eclipse.cdt.core.dom.ast.ICompositeType;
-import org.eclipse.cdt.core.dom.ast.c.ICCompositeTypeScope;
-
-public class C99CompositeTypeScope extends C99Scope implements ICCompositeTypeScope {
-
-	private ICompositeType struct;
-
-	public C99CompositeTypeScope(ICompositeType struct) {
-		super(EScopeKind.eClassType);
-		this.struct = struct;
-	}
-
-	@Override
-	public ICompositeType getCompositeType() {
-		return struct;
-	}
-
-	@Override
-	public IBinding getBinding(@SuppressWarnings("unused") char[] name) {
-		throw new UnsupportedOperationException();
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99Enumeration.java b/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99Enumeration.java
deleted file mode 100644
index f896453..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99Enumeration.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2015 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.cdt.core.dom.ILinkage;
-import org.eclipse.cdt.core.dom.ast.IASTNode;
-import org.eclipse.cdt.core.dom.ast.IBinding;
-import org.eclipse.cdt.core.dom.ast.IEnumeration;
-import org.eclipse.cdt.core.dom.ast.IEnumerator;
-import org.eclipse.cdt.core.dom.ast.IScope;
-import org.eclipse.cdt.core.dom.ast.IType;
-import org.eclipse.cdt.core.dom.ast.ITypedef;
-import org.eclipse.cdt.internal.core.dom.Linkage;
-import org.eclipse.cdt.internal.core.dom.parser.c.CVisitor;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.SemanticUtil;
-import org.eclipse.core.runtime.PlatformObject;
-
-@SuppressWarnings("restriction")
-public class C99Enumeration extends PlatformObject implements IC99Binding, IEnumeration, ITypeable {
-
-	private List<IEnumerator> enumerators = new ArrayList<>();
-	private String name;
-
-	private IScope scope;
-
-	public C99Enumeration() {
-	}
-
-	public C99Enumeration(String name) {
-		this.name = name;
-	}
-
-	public void addEnumerator(IEnumerator e) {
-		enumerators.add(e);
-	}
-
-	@Override
-	public IEnumerator[] getEnumerators() {
-		return enumerators.toArray(new IEnumerator[enumerators.size()]);
-	}
-
-	public void setName(String name) {
-		this.name = name;
-	}
-
-	@Override
-	public String getName() {
-		return name;
-	}
-
-	@Override
-	public char[] getNameCharArray() {
-		return name.toCharArray();
-	}
-
-	@Override
-	public IType getType() {
-		return this;
-	}
-
-	@Override
-	public boolean isSameType(IType type) {
-		if (type == this)
-			return true;
-		if (type instanceof ITypedef)
-			return type.isSameType(this);
-
-		return false;
-	}
-
-	@Override
-	public C99Enumeration clone() {
-		try {
-			C99Enumeration clone = (C99Enumeration) super.clone();
-			clone.enumerators = new ArrayList<>();
-			for (IEnumerator e : enumerators) {
-				// TODO this is wrong,
-				// IEnumerator is not Cloneable so we are not returning a deep copy here
-				clone.addEnumerator(e);
-			}
-			return clone;
-		} catch (CloneNotSupportedException e1) {
-			assert false;
-			return null;
-		}
-
-	}
-
-	@Override
-	public ILinkage getLinkage() {
-		return Linkage.C_LINKAGE;
-	}
-
-	@Override
-	public IScope getScope() {
-		return scope;
-	}
-
-	@Override
-	public void setScope(IScope scope) {
-		this.scope = scope;
-	}
-
-	@Override
-	public IBinding getOwner() {
-		if (scope != null) {
-			return CVisitor.findEnclosingFunction((IASTNode) scope.getScopeName()); // local or global
-		}
-		return null;
-	}
-
-	@Override
-	public long getMinValue() {
-		return SemanticUtil.computeMinValue(this);
-	}
-
-	@Override
-	public long getMaxValue() {
-		return SemanticUtil.computeMaxValue(this);
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99Enumerator.java b/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99Enumerator.java
deleted file mode 100644
index 4d84405..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99Enumerator.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2015 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings;
-
-import org.eclipse.cdt.core.dom.ILinkage;
-import org.eclipse.cdt.core.dom.ast.IBinding;
-import org.eclipse.cdt.core.dom.ast.IEnumerator;
-import org.eclipse.cdt.core.dom.ast.IScope;
-import org.eclipse.cdt.core.dom.ast.IType;
-import org.eclipse.cdt.core.dom.ast.IValue;
-import org.eclipse.cdt.internal.core.dom.Linkage;
-import org.eclipse.cdt.internal.core.dom.parser.IntegralValue;
-import org.eclipse.core.runtime.PlatformObject;
-
-@SuppressWarnings("restriction")
-public class C99Enumerator extends PlatformObject implements IC99Binding, IEnumerator, ITypeable {
-
-	private String name;
-	private IType type;
-	private IScope scope;
-
-	public C99Enumerator() {
-	}
-
-	public C99Enumerator(String name) {
-		this.name = name;
-	}
-
-	@Override
-	public String getName() {
-		return name;
-	}
-
-	public void setName(String name) {
-		this.name = name;
-	}
-
-	@Override
-	public IType getType() {
-		return type;
-	}
-
-	public void setType(IType type) {
-		this.type = type;
-	}
-
-	@Override
-	public ILinkage getLinkage() {
-		return Linkage.C_LINKAGE;
-	}
-
-	@Override
-	public char[] getNameCharArray() {
-		return name.toCharArray();
-	}
-
-	@Override
-	public IScope getScope() {
-		return scope;
-	}
-
-	@Override
-	public void setScope(IScope scope) {
-		this.scope = scope;
-	}
-
-	@Override
-	public IBinding getOwner() {
-		if (type instanceof IBinding)
-			return (IBinding) type;
-		return null;
-	}
-
-	@Override
-	public IValue getValue() {
-		return IntegralValue.UNKNOWN;
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99Field.java b/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99Field.java
deleted file mode 100644
index 9116b22..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99Field.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2015 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings;
-
-import org.eclipse.cdt.core.dom.ast.ICompositeType;
-import org.eclipse.cdt.core.dom.ast.IField;
-import org.eclipse.cdt.core.dom.ast.IScope;
-
-public class C99Field extends C99Variable implements IField {
-
-	private ICompositeType compositeTypeOwner;
-
-	public C99Field() {
-	}
-
-	public C99Field(String name) {
-		super(name);
-	}
-
-	@Override
-	public ICompositeType getCompositeTypeOwner() {
-		return compositeTypeOwner;
-	}
-
-	public void setCompositeTypeOwner(ICompositeType compositeTypeOwner) {
-		this.compositeTypeOwner = compositeTypeOwner;
-	}
-
-	@Override
-	public IScope getScope() {
-		return compositeTypeOwner.getCompositeScope();
-	}
-
-}
\ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99Function.java b/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99Function.java
deleted file mode 100644
index c8e83c5..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99Function.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2015 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Sergey Prigogin (Google)
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.cdt.core.dom.ILinkage;
-import org.eclipse.cdt.core.dom.ast.IBinding;
-import org.eclipse.cdt.core.dom.ast.IFunction;
-import org.eclipse.cdt.core.dom.ast.IFunctionType;
-import org.eclipse.cdt.core.dom.ast.IParameter;
-import org.eclipse.cdt.core.dom.ast.IScope;
-import org.eclipse.cdt.internal.core.dom.Linkage;
-import org.eclipse.core.runtime.PlatformObject;
-
-@SuppressWarnings("restriction")
-public class C99Function extends PlatformObject implements IC99Binding, IFunction, ITypeable {
-	private String name;
-	private IFunctionType type;
-	private List<IParameter> parameters = new ArrayList<>();
-
-	private boolean isAuto;
-	private boolean isExtern;
-	private boolean isInline;
-	private boolean isRegister;
-	private boolean isStatic;
-	private boolean isVarArgs;
-	private boolean isNoReturn;
-	private boolean isNoDiscard;
-
-	// the scope that the function is in (must be the global scope, no?)
-	private IScope scope;
-
-	// the scope that represents the body of the function
-	private IScope bodyScope;
-
-	public C99Function() {
-	}
-
-	public C99Function(String name) {
-		this.name = name;
-	}
-
-	public C99Function(String name, IFunctionType type) {
-		this(name);
-		this.type = type;
-	}
-
-	@Override
-	public IParameter[] getParameters() {
-		return parameters.toArray(new IParameter[parameters.size()]);
-	}
-
-	public void addParameter(IParameter parameter) {
-		parameters.add(parameter);
-	}
-
-	@Override
-	public IFunctionType getType() {
-		return type;
-	}
-
-	public void setType(IFunctionType type) {
-		this.type = type;
-	}
-
-	@Override
-	public boolean isAuto() {
-		return isAuto;
-	}
-
-	public void setAuto(boolean isAuto) {
-		this.isAuto = isAuto;
-	}
-
-	@Override
-	public boolean isExtern() {
-		return isExtern;
-	}
-
-	public void setExtern(boolean isExtern) {
-		this.isExtern = isExtern;
-	}
-
-	@Override
-	public boolean isInline() {
-		return isInline;
-	}
-
-	public void setInline(boolean isInline) {
-		this.isInline = isInline;
-	}
-
-	@Override
-	public boolean isRegister() {
-		return isRegister;
-	}
-
-	public void setRegister(boolean isRegister) {
-		this.isRegister = isRegister;
-	}
-
-	@Override
-	public boolean isStatic() {
-		return isStatic;
-	}
-
-	public void setStatic(boolean isStatic) {
-		this.isStatic = isStatic;
-	}
-
-	@Override
-	public boolean takesVarArgs() {
-		return isVarArgs;
-	}
-
-	public void setTakesVarArgs(boolean isVarArgs) {
-		this.isVarArgs = isVarArgs;
-	}
-
-	@Override
-	public boolean isNoReturn() {
-		return isNoReturn;
-	}
-
-	public void setNoReturn(boolean isNoReturn) {
-		this.isNoReturn = isNoReturn;
-	}
-
-	@Override
-	public ILinkage getLinkage() {
-		return Linkage.C_LINKAGE;
-	}
-
-	public void setName(String name) {
-		this.name = name;
-	}
-
-	@Override
-	public String getName() {
-		return name;
-	}
-
-	@Override
-	public char[] getNameCharArray() {
-		return name.toCharArray();
-	}
-
-	@Override
-	public IScope getScope() {
-		return scope;
-	}
-
-	@Override
-	public IScope getFunctionScope() {
-		return bodyScope;
-	}
-
-	public void setFunctionScope(IScope bodyScope) {
-		this.bodyScope = bodyScope;
-	}
-
-	@Override
-	public void setScope(IScope scope) {
-		this.scope = scope;
-	}
-
-	@Override
-	public IBinding getOwner() {
-		return null;
-	}
-
-	@Override
-	public boolean isNoDiscard() {
-		return isNoDiscard;
-	}
-
-	public void setNoDiscard(boolean isNoDiscard) {
-		this.isNoDiscard = isNoDiscard;
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99FunctionScope.java b/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99FunctionScope.java
deleted file mode 100644
index f7f4131..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99FunctionScope.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2015 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings;
-
-import org.eclipse.cdt.core.dom.ast.DOMException;
-import org.eclipse.cdt.core.dom.ast.EScopeKind;
-import org.eclipse.cdt.core.dom.ast.IBinding;
-import org.eclipse.cdt.core.dom.ast.IScope;
-import org.eclipse.cdt.core.dom.ast.c.ICFunctionScope;
-
-public class C99FunctionScope extends C99Scope implements ICFunctionScope {
-
-	public C99FunctionScope() {
-		super(EScopeKind.eLocal);
-	}
-
-	/**
-	 * Scope that represents the compound statement of the body of this scope.
-	 * Does not include the parameters which are part of this function scope.
-	 */
-	private IScope bodyScope;
-
-	@Override
-	public IBinding getBinding(@SuppressWarnings("unused") char[] name) throws DOMException {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	public void setBodyScope(IScope bodyScope) {
-		this.bodyScope = bodyScope;
-	}
-
-	@Override
-	public IScope getBodyScope() throws DOMException {
-		return bodyScope;
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99FunctionType.java b/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99FunctionType.java
deleted file mode 100644
index 085352c..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99FunctionType.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2015 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.cdt.core.dom.ast.IFunctionType;
-import org.eclipse.cdt.core.dom.ast.IType;
-
-public class C99FunctionType implements IFunctionType {
-
-	private IType returnType;
-	private List<IType> parameterTypes = new ArrayList<>();
-
-	@Override
-	public IType[] getParameterTypes() {
-		return parameterTypes.toArray(new IType[parameterTypes.size()]);
-	}
-
-	public void addParameterType(IType parameterType) {
-		parameterTypes.add(parameterType);
-	}
-
-	@Override
-	public IType getReturnType() {
-		return returnType;
-	}
-
-	public void setReturnType(IType returnType) {
-		this.returnType = returnType;
-	}
-
-	@Override
-	public boolean isSameType(@SuppressWarnings("unused") IType type) {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	@Override
-	public C99FunctionType clone() {
-		try {
-			C99FunctionType clone = (C99FunctionType) super.clone();
-			clone.setReturnType((IType) returnType.clone());
-			clone.parameterTypes = new ArrayList<>();
-			for (IType parameterType : parameterTypes) {
-				clone.addParameterType((IType) parameterType.clone());
-			}
-			return clone;
-		} catch (CloneNotSupportedException e) {
-			assert false;
-			return null;
-		}
-
-	}
-
-	@Override
-	public boolean takesVarArgs() {
-		// Not implemented
-		return false;
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99Label.java b/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99Label.java
deleted file mode 100644
index 4c86975..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99Label.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2015 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings;
-
-import org.eclipse.cdt.core.dom.ILinkage;
-import org.eclipse.cdt.core.dom.ast.IASTLabelStatement;
-import org.eclipse.cdt.core.dom.ast.IASTNode;
-import org.eclipse.cdt.core.dom.ast.IBinding;
-import org.eclipse.cdt.core.dom.ast.ILabel;
-import org.eclipse.cdt.core.dom.ast.IScope;
-import org.eclipse.cdt.internal.core.dom.Linkage;
-import org.eclipse.cdt.internal.core.dom.parser.c.CVisitor;
-import org.eclipse.core.runtime.PlatformObject;
-
-@SuppressWarnings("restriction")
-public class C99Label extends PlatformObject implements IC99Binding, ILabel {
-
-	private String name;
-	private IScope scope;
-
-	public C99Label() {
-	}
-
-	public C99Label(String name) {
-		this.name = name;
-	}
-
-	public void setName(String name) {
-		this.name = name;
-	}
-
-	@Override
-	public String getName() {
-		return name;
-	}
-
-	@Override
-	public char[] getNameCharArray() {
-		return name.toCharArray();
-	}
-
-	@Override
-	public IASTLabelStatement getLabelStatement() {
-		return null;
-	}
-
-	@Override
-	public ILinkage getLinkage() {
-		return Linkage.C_LINKAGE;
-	}
-
-	@Override
-	public IScope getScope() {
-		return scope;
-	}
-
-	@Override
-	public void setScope(IScope scope) {
-		this.scope = scope;
-	}
-
-	@Override
-	public IBinding getOwner() {
-		if (scope != null) {
-			return CVisitor.findEnclosingFunction((IASTNode) scope.getScopeName()); // local or global
-		}
-		return null;
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99Parameter.java b/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99Parameter.java
deleted file mode 100644
index 8dc28c3..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99Parameter.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2012 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings;
-
-import org.eclipse.cdt.core.dom.ast.IParameter;
-
-public class C99Parameter extends C99Variable implements IParameter {
-
-	public C99Parameter() {
-	}
-
-	public C99Parameter(String name) {
-		super(name);
-	}
-
-	public static C99Parameter valueOf(C99Variable var) {
-		C99Parameter param = new C99Parameter(var.getName());
-		param.setType(var.getType());
-		param.setAuto(var.isAuto());
-		param.setExtern(var.isExtern());
-		param.setRegister(var.isRegister());
-		param.setStatic(var.isStatic());
-		return param;
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99PointerType.java b/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99PointerType.java
deleted file mode 100644
index 20c8aeb..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99PointerType.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2015 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings;
-
-import org.eclipse.cdt.core.dom.ast.IType;
-import org.eclipse.cdt.core.dom.ast.c.ICPointerType;
-import org.eclipse.cdt.internal.core.dom.parser.ITypeContainer;
-
-@SuppressWarnings("restriction")
-public class C99PointerType implements ITypeContainer, ICPointerType {
-
-	private IType type;
-	private boolean isConst;
-	private boolean isRestrict;
-	private boolean isVolatile;
-
-	public C99PointerType() {
-	}
-
-	public C99PointerType(IType type) {
-		this.type = type;
-	}
-
-	@Override
-	public IType getType() {
-		return type;
-	}
-
-	@Override
-	public void setType(IType type) {
-		this.type = type;
-	}
-
-	@Override
-	public boolean isConst() {
-		return isConst;
-	}
-
-	public void setConst(boolean isConst) {
-		this.isConst = isConst;
-	}
-
-	@Override
-	public boolean isRestrict() {
-		return isRestrict;
-	}
-
-	public void setRestrict(boolean isRestrict) {
-		this.isRestrict = isRestrict;
-	}
-
-	@Override
-	public boolean isVolatile() {
-		return isVolatile;
-	}
-
-	public void setVolatile(boolean isVolatile) {
-		this.isVolatile = isVolatile;
-	}
-
-	@Override
-	public boolean isSameType(IType t) {
-		if (t == this)
-			return true;
-
-		if (t instanceof ICPointerType) {
-			ICPointerType pointerType = (ICPointerType) t;
-			if (pointerType.isConst() == isConst && pointerType.isRestrict() == isRestrict
-					&& pointerType.isVolatile() == isVolatile) {
-				return type.isSameType(pointerType.getType());
-			}
-
-		}
-		return false;
-	}
-
-	@Override
-	public C99PointerType clone() {
-		try {
-			C99PointerType clone = (C99PointerType) super.clone();
-			clone.type = (IType) type.clone();
-			return clone;
-		} catch (CloneNotSupportedException e) {
-			assert false;
-			return null;
-		}
-
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99ProblemBinding.java b/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99ProblemBinding.java
deleted file mode 100644
index d024ebb..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99ProblemBinding.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings;
-
-import org.eclipse.cdt.core.dom.ast.IProblemBinding;
-import org.eclipse.cdt.internal.core.dom.parser.ProblemBinding;
-
-@SuppressWarnings("restriction")
-public class C99ProblemBinding extends ProblemBinding {
-
-	public C99ProblemBinding(int messageId) {
-		super(null, messageId);
-	}
-
-	public C99ProblemBinding(int messageId, String arg) {
-		super(null, messageId, arg.toCharArray());
-	}
-
-	public static C99ProblemBinding badType() {
-		return new C99ProblemBinding(IProblemBinding.SEMANTIC_INVALID_TYPE);
-	}
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99QualifierType.java b/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99QualifierType.java
deleted file mode 100644
index ff5d67e..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99QualifierType.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2015 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings;
-
-import org.eclipse.cdt.core.dom.ast.IType;
-import org.eclipse.cdt.core.dom.ast.c.ICQualifierType;
-import org.eclipse.cdt.internal.core.dom.parser.ITypeContainer;
-
-@SuppressWarnings("restriction")
-public class C99QualifierType implements ICQualifierType, ITypeContainer {
-
-	private boolean isRestrict;
-	private boolean isConst;
-	private boolean isVolatile;
-
-	private IType type;
-
-	public C99QualifierType() {
-	}
-
-	public C99QualifierType(IType type) {
-		this.type = type;
-	}
-
-	public C99QualifierType(IType type, boolean isConst, boolean isVolatile, boolean isRestrict) {
-		this.isConst = isConst;
-		this.isRestrict = isRestrict;
-		this.isVolatile = isVolatile;
-		this.type = type;
-	}
-
-	@Override
-	public boolean isRestrict() {
-		return isRestrict;
-	}
-
-	public void setRestrict(boolean isRestrict) {
-		this.isRestrict = isRestrict;
-	}
-
-	@Override
-	public boolean isConst() {
-		return isConst;
-	}
-
-	public void setConst(boolean isConst) {
-		this.isConst = isConst;
-	}
-
-	@Override
-	public boolean isVolatile() {
-		return isVolatile;
-	}
-
-	public void setVolatile(boolean isVolatile) {
-		this.isVolatile = isVolatile;
-	}
-
-	@Override
-	public IType getType() {
-		return type;
-	}
-
-	@Override
-	public void setType(IType type) {
-		this.type = type;
-	}
-
-	@Override
-	public boolean isSameType(IType t) {
-		if (t == this)
-			return true;
-
-		if (t instanceof ICQualifierType) {
-
-			ICQualifierType pointerType = (ICQualifierType) t;
-			if (pointerType.isConst() == isConst && pointerType.isRestrict() == isRestrict
-					&& pointerType.isVolatile() == isVolatile) {
-				return type.isSameType(pointerType.getType());
-			}
-
-		}
-		return false;
-	}
-
-	@Override
-	public C99QualifierType clone() {
-		try {
-			C99QualifierType clone = (C99QualifierType) super.clone();
-			clone.type = (IType) type.clone();
-			return clone;
-		} catch (CloneNotSupportedException e) {
-			assert false;
-			return null;
-		}
-	}
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99Scope.java b/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99Scope.java
deleted file mode 100644
index 72beb89..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99Scope.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2015 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings;
-
-import org.eclipse.cdt.core.dom.IName;
-import org.eclipse.cdt.core.dom.ast.EScopeKind;
-import org.eclipse.cdt.core.dom.ast.IASTName;
-import org.eclipse.cdt.core.dom.ast.IASTNode;
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.ast.IBinding;
-import org.eclipse.cdt.core.dom.ast.IScope;
-import org.eclipse.cdt.core.index.IIndexFileSet;
-import org.eclipse.cdt.internal.core.dom.parser.IASTInternalScope;
-
-/**
- * @author Mike Kucera
- *
- */
-@SuppressWarnings({ "restriction", "unused" })
-public class C99Scope implements IC99Scope, IASTInternalScope {
-	private IScope parent;
-	private IASTNode physicalNode;
-	private IName scopeName;
-	private final EScopeKind kind;
-
-	public C99Scope(EScopeKind eKind) {
-		kind = eKind;
-	}
-
-	@Override
-	public IScope getParent() {
-		return parent;
-	}
-
-	@Override
-	public void setParent(IScope parent) {
-		this.parent = parent;
-	}
-
-	@Override
-	public IASTNode getPhysicalNode() {
-		return physicalNode;
-	}
-
-	@Override
-	public void setPhysicalNode(IASTNode physicalNode) {
-		this.physicalNode = physicalNode;
-	}
-
-	@Override
-	public final EScopeKind getKind() {
-		return kind;
-	}
-
-	@Override
-	public IName getScopeName() {
-		return scopeName;
-	}
-
-	@Override
-	public void setScopeName(IName scopeName) {
-		this.scopeName = scopeName;
-	}
-
-	@Override
-	public IBinding[] find(String name, IASTTranslationUnit tu) {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	@Deprecated
-	public IBinding[] find(String name) {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	public IBinding getBinding(IASTName name, boolean resolve) {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	public IBinding[] getBindings(IASTName name, boolean resolve, boolean prefixLookup) {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	public void addBinding(IBinding binding) {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	public void addName(IASTName name, boolean adlOnly) {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	public void populateCache() {
-	}
-
-	@Override
-	public void removeNestedFromCache(IASTNode container) {
-	}
-
-	@Override
-	public IBinding getBinding(IASTName name, boolean resolve, IIndexFileSet acceptLocalBindings) {
-		return null;
-	}
-
-	/**
-	 * @deprecated Use {@link #getBindings(ScopeLookupData)} instead
-	 */
-	@Override
-	@Deprecated
-	public IBinding[] getBindings(IASTName name, boolean resolve, boolean prefixLookup,
-			IIndexFileSet acceptLocalBindings) {
-		return getBindings(new ScopeLookupData(name, resolve, prefixLookup));
-	}
-
-	@Override
-	public IBinding[] getBindings(ScopeLookupData lookup) {
-		return IBinding.EMPTY_BINDING_ARRAY;
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99Structure.java b/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99Structure.java
deleted file mode 100644
index 9f74f22..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99Structure.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2015 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings;
-
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-import org.eclipse.cdt.core.dom.ILinkage;
-import org.eclipse.cdt.core.dom.ast.IASTNode;
-import org.eclipse.cdt.core.dom.ast.IBinding;
-import org.eclipse.cdt.core.dom.ast.ICompositeType;
-import org.eclipse.cdt.core.dom.ast.IField;
-import org.eclipse.cdt.core.dom.ast.IScope;
-import org.eclipse.cdt.core.dom.ast.IType;
-import org.eclipse.cdt.core.dom.ast.ITypedef;
-import org.eclipse.cdt.internal.core.dom.Linkage;
-import org.eclipse.cdt.internal.core.dom.parser.c.CVisitor;
-import org.eclipse.core.runtime.PlatformObject;
-
-@SuppressWarnings("restriction")
-public class C99Structure extends PlatformObject implements IC99Binding, ICompositeType, ITypeable {
-
-	private Map<String, IField> fields = new LinkedHashMap<>();
-	private IField[] fieldArray = null;
-
-	/** either t_union or t_structure defined in IASTCompositeTypeSpecifier */
-	private int key;
-	private String name;
-
-	private IScope scope;
-
-	public C99Structure() {
-	}
-
-	public C99Structure(String name) {
-		this.name = name;
-	}
-
-	public C99Structure(int key) {
-		this.key = key;
-	}
-
-	public C99Structure(String name, int key) {
-		this.name = name;
-		this.key = key;
-	}
-
-	public void addField(IField field) {
-		fields.put(field.getName(), field);
-		fieldArray = null;
-	}
-
-	@Override
-	public IField findField(String name) {
-		return fields.get(name);
-	}
-
-	@Override
-	public IScope getCompositeScope() {
-		//		C99Scope scope = new C99CompositeTypeScope(this);
-		//		scope.setScopeName(nameNode);
-		//		return scope;
-		return null;
-	}
-
-	@Override
-	public IField[] getFields() {
-		if (fieldArray == null)
-			fieldArray = fields.values().toArray(new IField[fields.size()]);
-		return fieldArray;
-	}
-
-	public void setKey(int key) {
-		this.key = key;
-	}
-
-	@Override
-	public int getKey() {
-		return key;
-	}
-
-	public void setName(String name) {
-		this.name = name;
-	}
-
-	@Override
-	public String getName() {
-		return name;
-	}
-
-	@Override
-	public char[] getNameCharArray() {
-		if (name == null)
-			return new char[0];
-
-		return name.toCharArray();
-	}
-
-	@Override
-	public ILinkage getLinkage() {
-		return Linkage.C_LINKAGE;
-	}
-
-	@Override
-	public IType getType() {
-		return this;
-	}
-
-	@Override
-	public boolean isSameType(IType type) {
-		if (type == this)
-			return true;
-		if (type instanceof ITypedef)
-			return type.isSameType(this);
-		return false;
-	}
-
-	//private Map<String,IField> fields = new LinkedHashMap<String,IField>();
-	//private IField[] fieldArray = null;
-
-	//private IScope scope;
-
-	@Override
-	public C99Structure clone() {
-		try {
-			C99Structure clone = (C99Structure) super.clone();
-			//clone.scope = (IScope) scope.clone(); TODO
-			clone.fieldArray = null;
-			clone.fields = new LinkedHashMap<>();
-			for (IField field : fields.values())
-				clone.addField(field); // TODO not a deep clone
-			return clone;
-		} catch (CloneNotSupportedException e) {
-			assert false;
-			return null;
-		}
-	}
-
-	@Override
-	public IScope getScope() {
-		return scope;
-	}
-
-	@Override
-	public void setScope(IScope scope) {
-		this.scope = scope;
-	}
-
-	@Override
-	public IBinding getOwner() {
-		if (scope != null) {
-			return CVisitor.findEnclosingFunction((IASTNode) scope.getScopeName()); // local or global
-		}
-		return null;
-	}
-
-	@Override
-	public boolean isAnonymous() {
-		return name == null || name.length() == 0;
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99Typedef.java b/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99Typedef.java
deleted file mode 100644
index fa8bcef..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99Typedef.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2015 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings;
-
-import org.eclipse.cdt.core.dom.ILinkage;
-import org.eclipse.cdt.core.dom.ast.ASTTypeUtil;
-import org.eclipse.cdt.core.dom.ast.IASTNode;
-import org.eclipse.cdt.core.dom.ast.IBinding;
-import org.eclipse.cdt.core.dom.ast.IScope;
-import org.eclipse.cdt.core.dom.ast.IType;
-import org.eclipse.cdt.core.dom.ast.ITypedef;
-import org.eclipse.cdt.internal.core.dom.Linkage;
-import org.eclipse.cdt.internal.core.dom.parser.ITypeContainer;
-import org.eclipse.cdt.internal.core.dom.parser.c.CVisitor;
-import org.eclipse.core.runtime.PlatformObject;
-
-@SuppressWarnings("restriction")
-public class C99Typedef extends PlatformObject implements IC99Binding, ITypedef, ITypeContainer, ITypeable {
-	private IType type;
-	private String name;
-
-	private IScope scope;
-
-	public C99Typedef() {
-	}
-
-	public C99Typedef(IType type) {
-		this.type = type;
-	}
-
-	public C99Typedef(IType type, String name) {
-		this.type = type;
-		this.name = name;
-	}
-
-	@Override
-	public IType getType() {
-		return type;
-	}
-
-	@Override
-	public void setType(IType type) {
-		this.type = type;
-	}
-
-	@Override
-	public String getName() {
-		return name;
-	}
-
-	public void setName(String name) {
-		this.name = name;
-	}
-
-	@Override
-	public char[] getNameCharArray() {
-		return name.toCharArray();
-	}
-
-	@Override
-	public boolean isSameType(IType t) {
-		if (t == this)
-			return true;
-
-		if (t instanceof ITypedef)
-			return type.isSameType(((ITypedef) t).getType());
-		return type.isSameType(t);
-	}
-
-	@Override
-	public C99Typedef clone() {
-		try {
-			C99Typedef clone = (C99Typedef) super.clone();
-			clone.type = (IType) type.clone();
-			return clone;
-		} catch (CloneNotSupportedException e) {
-			assert false;
-			return null;
-		}
-	}
-
-	@Override
-	public ILinkage getLinkage() {
-		return Linkage.C_LINKAGE;
-	}
-
-	@Override
-	public IScope getScope() {
-		return scope;
-	}
-
-	@Override
-	public void setScope(IScope scope) {
-		this.scope = scope;
-	}
-
-	@Override
-	public IBinding getOwner() {
-		if (scope != null) {
-			return CVisitor.findEnclosingFunction((IASTNode) scope.getScopeName()); // local or global
-		}
-		return null;
-	}
-
-	@Override
-	public String toString() {
-		return getName() + " -> " + ASTTypeUtil.getType(this, true); //$NON-NLS-1$
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99Variable.java b/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99Variable.java
deleted file mode 100644
index 4c1faa0..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/C99Variable.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2015 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings;
-
-import org.eclipse.cdt.core.dom.ILinkage;
-import org.eclipse.cdt.core.dom.ast.IASTNode;
-import org.eclipse.cdt.core.dom.ast.IBinding;
-import org.eclipse.cdt.core.dom.ast.IScope;
-import org.eclipse.cdt.core.dom.ast.IType;
-import org.eclipse.cdt.core.dom.ast.IValue;
-import org.eclipse.cdt.core.dom.ast.IVariable;
-import org.eclipse.cdt.internal.core.dom.Linkage;
-import org.eclipse.cdt.internal.core.dom.parser.c.CVisitor;
-import org.eclipse.core.runtime.PlatformObject;
-
-@SuppressWarnings("restriction")
-public class C99Variable extends PlatformObject implements IC99Binding, IVariable, ITypeable {
-	private boolean isAuto;
-	private boolean isExtern;
-	private boolean isRegister;
-	private boolean isStatic;
-
-	private String name;
-	private IType type;
-
-	private IScope scope;
-
-	public C99Variable() {
-	}
-
-	public C99Variable(String name) {
-		this.name = name;
-	}
-
-	public void setType(IType type) {
-		this.type = type;
-	}
-
-	@Override
-	public IType getType() {
-		return type;
-	}
-
-	public void setAuto(boolean auto) {
-		this.isAuto = auto;
-	}
-
-	@Override
-	public boolean isAuto() {
-		return isAuto;
-	}
-
-	public void setExtern(boolean extern) {
-		this.isExtern = extern;
-	}
-
-	@Override
-	public boolean isExtern() {
-		return isExtern;
-	}
-
-	public void setRegister(boolean isRegister) {
-		this.isRegister = isRegister;
-	}
-
-	@Override
-	public boolean isRegister() {
-		return isRegister;
-	}
-
-	public void setStatic(boolean isStatic) {
-		this.isStatic = isStatic;
-	}
-
-	@Override
-	public boolean isStatic() {
-		return isStatic;
-	}
-
-	public void setName(String name) {
-		this.name = name;
-	}
-
-	@Override
-	public String getName() {
-		return name;
-	}
-
-	@Override
-	public char[] getNameCharArray() {
-		return name.toCharArray();
-	}
-
-	@Override
-	public ILinkage getLinkage() {
-		return Linkage.C_LINKAGE;
-	}
-
-	@Override
-	public IScope getScope() {
-		return scope;
-	}
-
-	@Override
-	public void setScope(IScope scope) {
-		this.scope = scope;
-	}
-
-	@Override
-	public IBinding getOwner() {
-		if (scope == null)
-			return null;
-
-		return CVisitor.findDeclarationOwner((IASTNode) scope.getScopeName(), true);
-	}
-
-	@Override
-	public IValue getInitialValue() {
-		return null;
-	}
-
-	@Override
-	public String toString() {
-		return getName();
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/IC99Binding.java b/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/IC99Binding.java
deleted file mode 100644
index 4ffcb20..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/IC99Binding.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings;
-
-import org.eclipse.cdt.core.dom.ast.IBinding;
-import org.eclipse.cdt.core.dom.ast.IScope;
-
-public interface IC99Binding extends IBinding {
-
-	void setScope(IScope scope);
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/IC99Scope.java b/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/IC99Scope.java
deleted file mode 100644
index 899e88d..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/IC99Scope.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings;
-
-import org.eclipse.cdt.core.dom.IName;
-import org.eclipse.cdt.core.dom.ast.IASTNode;
-import org.eclipse.cdt.core.dom.ast.IScope;
-import org.eclipse.cdt.core.dom.ast.c.ICScope;
-
-/**
- * TODO maybe rename to IC99InternalScope or something else.
- *
- * @author Mike Kucera
- */
-public interface IC99Scope extends ICScope {
-
-	void setParent(IScope parent);
-
-	void setPhysicalNode(IASTNode node);
-
-	void setScopeName(IName name);
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/ITypeable.java b/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/ITypeable.java
deleted file mode 100644
index e3a79d5..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/c99/bindings/ITypeable.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings;
-
-import org.eclipse.cdt.core.dom.ast.IType;
-
-public interface ITypeable {
-	IType getType();
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/symboltable/C99SymbolTable.java b/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/symboltable/C99SymbolTable.java
deleted file mode 100644
index 66f5cbe..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/symboltable/C99SymbolTable.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2015 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.lrparser.symboltable;
-
-import org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings.IC99Binding;
-
-/**
- * A facade for a FunctionalMap to make it behave like
- * a symbol table for C99.
- *
- * In particular we need to be able to lookup identifiers based both
- * on the String representation of the identifier and its "namespace".
- *
- * @author Mike Kucera
- */
-public class C99SymbolTable {
-
-	/**
-	 * Adapter objects are used as the keys. The trick here is to implement
-	 * compareTo() in such a way that identifiers are separated by their namespace.
-	 */
-	private static class Key implements Comparable<Key> {
-		private final String ident;
-		private final CNamespace namespace;
-
-		public Key(CNamespace namespace, String ident) {
-			if (namespace == null || ident == null)
-				throw new NullPointerException();
-
-			this.ident = ident;
-			this.namespace = namespace;
-		}
-
-		@Override
-		public int compareTo(Key x) {
-			// this separates namespaces in the symbol table
-			int c = namespace.compareTo(x.namespace);
-			// only if the namespace is the same do we check the identifier
-			return (c == 0) ? ident.compareTo(x.ident) : c;
-		}
-
-		@Override
-		public String toString() {
-			return ident + "::" + namespace;//$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * Start with EMPTY_TABLE and build up a symbol table using insert().
-	 */
-	public static final C99SymbolTable EMPTY_TABLE = new C99SymbolTable();
-
-	// the map we are providing a facade for
-	private final FunctionalMap<Key, IC99Binding> map;
-
-	/**
-	 * Constructors are private, start with EMPTY_TABLE
-	 * and build it up using insert().
-	 */
-	private C99SymbolTable() {
-		map = FunctionalMap.emptyMap();
-	}
-
-	private C99SymbolTable(FunctionalMap<Key, IC99Binding> newRoot) {
-		map = newRoot;
-	}
-
-	/**
-	 * Returns a new symbol table that contains the given mapping.
-	 * @throws NullPointerException if the namespace or key is null.
-	 */
-	public C99SymbolTable insert(CNamespace ns, String key, IC99Binding binding) {
-		return new C99SymbolTable(map.insert(new Key(ns, key), binding));
-	}
-
-	/**
-	 * Looks up the binding given its namespace and identifier.
-	 * @return null If there is no binding corresponding to the key.
-	 * @throws NullPointerException if the namespace or key is null.
-	 */
-	public IC99Binding lookup(CNamespace ns, String key) {
-		return map.lookup(new Key(ns, key));
-	}
-
-	public int size() {
-		return map.size();
-	}
-
-	public boolean isEmpty() {
-		return map.size() == 0;
-	}
-
-	@Override
-	public String toString() {
-		return map.toString();
-	}
-
-	//	void printStructure() {
-	//		map.printStructure();
-	//	}
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/symboltable/CImperativeSymbolTable.java b/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/symboltable/CImperativeSymbolTable.java
deleted file mode 100644
index ce2db41..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/symboltable/CImperativeSymbolTable.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.lrparser.symboltable;
-
-import java.util.ArrayList;
-import java.util.LinkedList;
-import java.util.List;
-
-import org.eclipse.cdt.core.dom.ast.IBinding;
-
-/**
- * Used to compute binding resolution during the parse.
- *
- * Imperative style symbol table with destructive update.
- *
- * Consists of two data structures, a hash table for fast lookup
- * of bindings given their names, and a stack used to keep track
- * of scopes.
- *
- *
- * @author Mike Kucera
- */
-public class CImperativeSymbolTable {
-
-	private static final int TABLE_SIZE = 256;
-
-	private Bucket[] table = new Bucket[TABLE_SIZE];
-
-	private LinkedList<SymbolScope> scopeStack = new LinkedList<>();
-
-	/**
-	 * Represents a scope in the C language.
-	 */
-	private static class SymbolScope {
-
-		/**
-		 * List of buckets that have been modified in the current scope.
-		 * When the scope is closed these buckets are popped, returning the
-		 * symbol table to the state it was in before the scope was opened.
-		 */
-		List<Integer> modifiedBuckets = new ArrayList<>();
-	}
-
-	/**
-	 * A bucket object used to hold elements in the hash table.
-	 */
-	private static class Bucket {
-		String key;
-		CNamespace namespace;
-		IBinding binding;
-		Bucket next;
-
-		Bucket(Bucket next, CNamespace namespace, String key, IBinding binding) {
-			this.key = key;
-			this.namespace = namespace;
-			this.binding = binding;
-			this.next = next;
-		}
-	}
-
-	public CImperativeSymbolTable() {
-		openScope(); // open the global scope
-		// TODO populate the global scope with built-ins
-	}
-
-	/**
-	 * Hashes a key into an index in the hash table.
-	 */
-	private int index(String key) {
-		return Math.abs(key.hashCode() % TABLE_SIZE);
-	}
-
-	/**
-	 * Adds a binding to the symbol table in the current scope.
-	 *
-	 * @param mask A bit mask used to identify the namespace of the identifier.
-	 */
-	public void put(CNamespace namespace, String ident, IBinding b) {
-		int index = index(ident);
-		table[index] = new Bucket(table[index], namespace, ident, b);
-
-		SymbolScope scope = scopeStack.getLast();
-		scope.modifiedBuckets.add(index);
-	}
-
-	/**
-	 * Returns the binding associated with the given identifier, or
-	 * null if there is none.
-	 *
-	 * @param mask A bit mask used to identify the namespace of the identifier.
-	 */
-	public IBinding get(CNamespace namespace, String ident) {
-		Bucket b = table[index(ident)];
-		while (b != null) {
-			if (namespace == b.namespace && ident.equals(b.key))
-				return b.binding;
-			b = b.next;
-		}
-		return null;
-	}
-
-	/**
-	 * Opens a new inner scope for identifiers.
-	 *
-	 * If an identifier is added that already exists in an outer scope
-	 * then it will be shadowed.
-	 */
-	public void openScope() {
-		scopeStack.add(new SymbolScope());
-	}
-
-	/**
-	 * Remove all the symbols defined in the scope that is being closed.
-	 *
-	 * @param scope An IScope object that will be used to represent this scope.
-	 * @throws SymbolTableException If the global scope has already been closed or if bindingScope is null.
-	 */
-	public void closeScope() {
-		SymbolScope poppedScope = scopeStack.removeLast(); // pop the scopeStack
-
-		// pop each bucket that was modified in the scope
-		for (int index : poppedScope.modifiedBuckets)
-			table[index] = table[index].next;
-	}
-
-	@SuppressWarnings("nls")
-	@Override
-	public String toString() {
-		StringBuilder buff = new StringBuilder('[');
-		for (Bucket b : table) {
-			while (b != null) {
-				buff.append('<').append(b.key).append(": ").append(b.binding).append(">, ");
-				b = b.next;
-			}
-		}
-		return buff.append(']').toString();
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/symboltable/CNamespace.java b/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/symboltable/CNamespace.java
deleted file mode 100644
index 7e4a360..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/symboltable/CNamespace.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.lrparser.symboltable;
-
-/**
- * The C language has 4 namespaces for identifiers.
- * This enum represents three of them, the "member" namespace
- * is represented by IStructure.getFields().
- *
- * The symbol table uses these to mark identifiers and keep
- * the namespaces separate.
- *
- * @author Mike Kucera
- */
-public enum CNamespace {
-
-	GOTO_LABEL, // goto labels
-	STRUCT_TAG, // structs, unions, enums
-	IDENTIFIER; // all other identifiers
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/symboltable/FunctionalMap.java b/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/symboltable/FunctionalMap.java
deleted file mode 100644
index 98f70bc..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/symboltable/FunctionalMap.java
+++ /dev/null
@@ -1,279 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.lrparser.symboltable;
-
-/**
- * An immutable map, like you would find in a functional programming language.
- *
- * Inserting a new pair into the map leaves the original map untouched,
- * instead a new map that contains the pair is returned. Therefore
- * an assignment is needed to "modify" the map (just like with Strings).
- *
- * <code>
- * myMap = myMap.insert(key,value);
- * </code>
- *
- * There is no remove() method because it is not needed. In order to
- * "delete" a pair from the map simply save a reference to an old version
- * of the map and restore the map from that old reference. This makes
- * "undo" operations trivial to implement.
- *
- * <code>
- * FunctionalMap oldMap = myMap;     // save a reference
- * myMap = myMap.insert(key,value);  // insert the pair into the map
- * myMap = oldMap;                   // delete the pair from the map
- * </code>
- *
- * This map is implemented as a red-black tree data structure,
- * and is based on the implementation found at:
- * http://www.eecs.usma.edu/webs/people/okasaki/jfp99.ps
- *
- * @author Mike Kucera
- */
-public class FunctionalMap<K extends Comparable<K>, V> {
-
-	private static final boolean RED = true, BLACK = false;
-
-	private static class Node<K, V> {
-		final K key;
-		final V val;
-		Node<K, V> left;
-		Node<K, V> right;
-		boolean color;
-
-		public Node(K key, V val, boolean color, Node<K, V> left, Node<K, V> right) {
-			this.key = key;
-			this.val = val;
-			this.left = left;
-			this.right = right;
-			this.color = color;
-		}
-
-		@SuppressWarnings("nls")
-		@Override
-		public String toString() {
-			return "Node(" + key + "," + val + "," + (color ? "R" : "B") + ")";
-		}
-	}
-
-	private Node<K, V> root = null;
-
-	private FunctionalMap() {
-		// private constructor, use static factory method to instantiate
-	}
-
-	// factory method makes it cleaner to instantiate objects
-	public static <K extends Comparable<K>, V> FunctionalMap<K, V> emptyMap() {
-		return new FunctionalMap<>();
-	}
-
-	/**
-	 * Returns a new map that contains the key-value pair.
-	 * @throws NullPointerException if key is null
-	 */
-	public FunctionalMap<K, V> insert(K key, V val) {
-		if (key == null)
-			throw new NullPointerException();
-
-		FunctionalMap<K, V> newMap = new FunctionalMap<>();
-		newMap.root = insert(this.root, key, val);
-		newMap.root.color = BLACK; // force the root to be black
-
-		assert checkInvariants(newMap.root);
-
-		return newMap;
-	}
-
-	private Node<K, V> insert(Node<K, V> n, K key, V val) {
-		if (n == null)
-			return new Node<>(key, val, RED, null, null); // new nodes are always red
-
-		int c = key.compareTo(n.key);
-		if (c < 0)
-			return balance(n.key, n.val, n.color, insert(n.left, key, val), n.right);
-		else if (c > 0)
-			return balance(n.key, n.val, n.color, n.left, insert(n.right, key, val));
-		else // equal, create a new node that overwrites the old value
-			return new Node<>(key, val, n.color, n.left, n.right);
-	}
-
-	private Node<K, V> balance(K key, V val, boolean color, Node<K, V> left, Node<K, V> right) {
-		if (color == RED)
-			return new Node<>(key, val, color, left, right);
-
-		final Node<K, V> newLeft, newRight;
-
-		// now for the madness...
-
-		if (left != null && left.color == RED) {
-			if (left.left != null && left.left.color == RED) {
-				newLeft = new Node<>(left.left.key, left.left.val, BLACK, left.left.left, left.left.right);
-				newRight = new Node<>(key, val, BLACK, left.right, right);
-				return new Node<>(left.key, left.val, RED, newLeft, newRight);
-			}
-			if (left.right != null && left.right.color == RED) {
-				newLeft = new Node<>(left.key, left.val, BLACK, left.left, left.right.left);
-				newRight = new Node<>(key, val, BLACK, left.right.right, right);
-				return new Node<>(left.right.key, left.right.val, RED, newLeft, newRight);
-			}
-		}
-		if (right != null && right.color == RED) {
-			if (right.left != null && right.left.color == RED) {
-				newLeft = new Node<>(key, val, BLACK, left, right.left.left);
-				newRight = new Node<>(right.key, right.val, BLACK, right.left.right, right.right);
-				return new Node<>(right.left.key, right.left.val, RED, newLeft, newRight);
-			}
-			if (right.right != null && right.right.color == RED) {
-				newLeft = new Node<>(key, val, BLACK, left, right.left);
-				newRight = new Node<>(right.right.key, right.right.val, BLACK, right.right.left, right.right.right);
-				return new Node<>(right.key, right.val, RED, newLeft, newRight);
-			}
-		}
-
-		return new Node<>(key, val, BLACK, left, right);
-	}
-
-	/**
-	 * Returns the value if it is in the map, null otherwise.
-	 * @throws NullPointerException if key is null
-	 */
-	public V lookup(K key) {
-		if (key == null)
-			throw new NullPointerException();
-
-		// no need for recursion here
-		Node<K, V> n = root;
-		while (n != null) {
-			int x = key.compareTo(n.key); // throws NPE if key is null
-			if (x == 0)
-				return n.val;
-			n = (x < 0) ? n.left : n.right;
-		}
-		return null;
-	}
-
-	/**
-	 * Returns true if there exists a mapping with the given key
-	 * in this map.
-	 * @throws NullPointerException if key is null
-	 */
-	public boolean containsKey(K key) {
-		if (key == null)
-			throw new NullPointerException();
-
-		// lookup uses an iterative algorithm
-		Node<K, V> n = root;
-		while (n != null) {
-			int x = key.compareTo(n.key); // throws NPE if key is null
-			if (x == 0)
-				return true;
-			n = (x < 0) ? n.left : n.right;
-		}
-		return false;
-	}
-
-	public boolean isEmpty() {
-		return root == null;
-	}
-
-	@Override
-	public String toString() {
-		StringBuilder sb = new StringBuilder('[');
-		inorderPrint(root, sb);
-		sb.append(']');
-		return sb.toString();
-	}
-
-	private static <K, V> void inorderPrint(Node<K, V> n, StringBuilder sb) {
-		if (n == null)
-			return;
-
-		inorderPrint(n.left, sb);
-		if (sb.length() > 1)
-			sb.append(", ");//$NON-NLS-1$
-		sb.append(n.toString());
-		inorderPrint(n.right, sb);
-	}
-
-	void printStructure() {
-		if (root == null)
-			System.out.println("empty map"); //$NON-NLS-1$
-		else
-			printStructure(root, 0);
-	}
-
-	private static <K, V> void printStructure(Node<K, V> node, int level) {
-		for (int i = 0; i < level; i++)
-			System.out.print("--");//$NON-NLS-1$
-
-		if (node == null) {
-			System.out.println("null");//$NON-NLS-1$
-		} else if (node.right == null && node.left == null) {
-			System.out.println(node);
-		} else {
-			System.out.println(node);
-			printStructure(node.right, level + 1);
-			printStructure(node.left, level + 1);
-		}
-	}
-
-	private static <K, V> int depth(Node<K, V> node) {
-		if (node == null)
-			return 0;
-		return Math.max(depth(node.left), depth(node.right)) + 1;
-	}
-
-	/**
-	 * Warning, this is a linear operation.
-	 */
-	public int size() {
-		return size(root);
-	}
-
-	private static <K, V> int size(Node<K, V> node) {
-		if (node == null)
-			return 0;
-		return size(node.left) + size(node.right) + 1;
-	}
-
-	/**********************************************************************************************
-	 * Built-in testing
-	 **********************************************************************************************/
-
-	private boolean checkInvariants(Node<K, V> n) {
-		// the number of black nodes on every path through the tree is the same
-		assertBalanced(n);
-		return true;
-	}
-
-	// not exactly sure if this is right
-	private int assertBalanced(Node<K, V> node) {
-		if (node == null)
-			return 1; // nulls are considered as black children
-
-		// both children of every red node are black
-		if (node.color == RED) {
-			assert node.left == null || node.left.color == BLACK;
-			assert node.right == null || node.right.color == BLACK;
-		}
-
-		int left = assertBalanced(node.left);
-		int right = assertBalanced(node.right);
-
-		assert left == right;
-
-		return left + (node.color == BLACK ? 1 : 0);
-	}
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/symboltable/SymbolTableTests.java b/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/symboltable/SymbolTableTests.java
deleted file mode 100644
index 62dbb1b..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/symboltable/SymbolTableTests.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008, 2016 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *      IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.lrparser.symboltable;
-
-//import junit.framework.TestCase;
-
-import org.eclipse.cdt.core.dom.ast.IBinding;
-import org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings.C99Label;
-import org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings.C99Structure;
-import org.eclipse.cdt.internal.core.dom.lrparser.c99.bindings.C99Variable;
-
-@SuppressWarnings("nls")
-public class SymbolTableTests {//extends TestCase {
-	// TODO write tests for imperative symbol table
-
-	private final String[] KEYS = { "pantera", "soulfly", "inflames", "megadeth", "archenemy", "carcass" };
-
-	public void testPersistence() {
-		FunctionalMap<String, Integer> st0 = FunctionalMap.emptyMap();
-		assertTrue(st0.isEmpty());
-
-		FunctionalMap<String, Integer> st1 = st0.insert(KEYS[0], 1);
-
-		// empty symbol table does not change
-		assertTrue(st0.isEmpty());
-		assertNull(st0.lookup(KEYS[1]));
-
-		// a new symbol table was created
-		assertFalse(st1.isEmpty());
-		assertEquals(Integer.valueOf(1), st1.lookup(KEYS[0]));
-
-		FunctionalMap<String, Integer> st2 = st1.insert(KEYS[1], 2);
-		FunctionalMap<String, Integer> st3 = st2.insert(KEYS[2], 3);
-		FunctionalMap<String, Integer> st4 = st3.insert(KEYS[3], 4);
-		FunctionalMap<String, Integer> st5 = st4.insert(KEYS[4], 5);
-
-		assertMap(st0, KEYS, new Integer[] { null, null, null, null, null, null });
-		assertMap(st1, KEYS, new Integer[] { 1, null, null, null, null, null });
-		assertMap(st2, KEYS, new Integer[] { 1, 2, null, null, null, null });
-		assertMap(st3, KEYS, new Integer[] { 1, 2, 3, null, null, null });
-		assertMap(st4, KEYS, new Integer[] { 1, 2, 3, 4, null, null });
-		assertMap(st5, KEYS, new Integer[] { 1, 2, 3, 4, 5, null });
-	}
-
-	// these are here just to get the tests to compile
-	// JUnit is not available in this plugin, this is old code that I just didn't want to delete
-
-	@SuppressWarnings("unused")
-	private void assertEquals(Integer integer, Integer lookup) {
-		// TODO Auto-generated method stub
-
-	}
-
-	@SuppressWarnings("unused")
-	private void assertFalse(boolean empty) {
-		// TODO Auto-generated method stub
-
-	}
-
-	@SuppressWarnings("unused")
-	private void assertNull(Integer lookup) {
-		// TODO Auto-generated method stub
-
-	}
-
-	@SuppressWarnings("unused")
-	private void assertTrue(boolean empty) {
-		// TODO Auto-generated method stub
-
-	}
-
-	public void testOverride() {
-		FunctionalMap<String, Integer> map1 = FunctionalMap.emptyMap();
-		for (int i = 0; i < KEYS.length; i++) {
-			map1 = map1.insert(KEYS[i], i);
-		}
-
-		assertMap(map1, KEYS, new Integer[] { 0, 1, 2, 3, 4, 5 });
-
-		FunctionalMap<String, Integer> map2 = map1.insert(KEYS[5], 999);
-		FunctionalMap<String, Integer> map3 = map2.insert(KEYS[5], null);
-
-		assertEquals(Integer.valueOf(5), map1.lookup(KEYS[5]));
-		assertEquals(Integer.valueOf(999), map2.lookup(KEYS[5]));
-		assertNull(map3.lookup(KEYS[5]));
-	}
-
-	@SuppressWarnings("unchecked")
-	private static void assertMap(FunctionalMap map, Comparable[] keys, Object[] vals) {
-		assert keys.length == vals.length;
-
-		for (int i = 0; i < keys.length; i++) {
-			assertEquals("the key '" + keys[i] + "' did not match", vals[i], map.lookup((keys[i])));
-			if (vals[i] != null) {
-				assertTrue("key '" + keys[i] + "' not in map", map.containsKey(keys[i]));
-			}
-		}
-	}
-
-	@SuppressWarnings("unused")
-	private static void assertTrue(String string, boolean containsKey) {
-		// TODO Auto-generated method stub
-
-	}
-
-	@SuppressWarnings("unused")
-	private static void assertEquals(String string, Object object, Object lookup) {
-		// TODO Auto-generated method stub
-
-	}
-
-	public void testFunctionalSymbolTable1() {
-		C99SymbolTable st = C99SymbolTable.EMPTY_TABLE;
-
-		for (String key : KEYS) {
-			st = st.insert(CNamespace.IDENTIFIER, key, new C99Variable(key));
-		}
-		for (String key : KEYS) {
-			st = st.insert(CNamespace.GOTO_LABEL, key, new C99Label(key));
-		}
-		for (String key : KEYS) {
-			st = st.insert(CNamespace.STRUCT_TAG, key, new C99Structure(key));
-		}
-
-		assertFunctionalSymbolTableContainsAllThePairs(st);
-	}
-
-	public void testFunctionalSymbolTable2() {
-		C99SymbolTable st = C99SymbolTable.EMPTY_TABLE;
-
-		// same test as above but this time we insert the keys in a different order
-		for (String key : KEYS) {
-			st = st.insert(CNamespace.IDENTIFIER, key, new C99Variable(key));
-			st = st.insert(CNamespace.GOTO_LABEL, key, new C99Label(key));
-			st = st.insert(CNamespace.STRUCT_TAG, key, new C99Structure(key));
-		}
-
-		assertFunctionalSymbolTableContainsAllThePairs(st);
-	}
-
-	private void assertFunctionalSymbolTableContainsAllThePairs(C99SymbolTable st) {
-		assertEquals(KEYS.length * 3, st.size());
-		for (String key : KEYS) {
-			IBinding b = st.lookup(CNamespace.IDENTIFIER, key);
-			assertNotNull(b);
-			C99Variable x = (C99Variable) b;
-			assertEquals(key, x.getName());
-		}
-		for (String key : KEYS) {
-			IBinding b = st.lookup(CNamespace.GOTO_LABEL, key);
-			assertNotNull(b);
-			C99Label x = (C99Label) b;
-			assertEquals(key, x.getName());
-		}
-		for (String key : KEYS) {
-			IBinding b = st.lookup(CNamespace.STRUCT_TAG, key);
-			assertNotNull(b);
-			C99Structure x = (C99Structure) b;
-			assertEquals(key, x.getName());
-		}
-	}
-
-	@SuppressWarnings("unused")
-	private void assertEquals(String key, String name) {
-		// TODO Auto-generated method stub
-
-	}
-
-	@SuppressWarnings("unused")
-	private void assertNotNull(IBinding b) {
-		// TODO Auto-generated method stub
-
-	}
-
-	public void testProperFail() {
-		FunctionalMap<Integer, Integer> map = FunctionalMap.emptyMap();
-		try {
-			map.insert(null, 99);
-			fail();
-		} catch (NullPointerException e) {
-		}
-
-		try {
-			map.containsKey(null);
-			fail();
-		} catch (NullPointerException e) {
-		}
-
-		try {
-			map.lookup(null);
-			fail();
-		} catch (NullPointerException e) {
-		}
-
-		C99SymbolTable table = C99SymbolTable.EMPTY_TABLE;
-		try {
-			table.insert(null, null, new C99Variable("blah")); //$NON-NLS-1$
-			fail();
-		} catch (NullPointerException e) {
-		}
-
-	}
-
-	private void fail() {
-		// TODO Auto-generated method stub
-
-	}
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/symboltable/TypedefSymbolTable.java b/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/symboltable/TypedefSymbolTable.java
deleted file mode 100644
index 6dcec3b..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/old/org/eclipse/cdt/internal/core/dom/lrparser/symboltable/TypedefSymbolTable.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.lrparser.symboltable;
-
-/**
- * A facade for a FunctionalMap that is used just to track typedef
- * declarations.
- *
- * This class acts like a set. No information needs to be associated
- * with a typedef declaration, all we need to know is if the identifier
- * has been declared as a typedef.
- *
- * @author Mike Kucera
- */
-public class TypedefSymbolTable {
-
-	/**
-	 * Start with EMPTY_TABLE and build up a symbol table using add().
-	 */
-	public static final TypedefSymbolTable EMPTY_TABLE = new TypedefSymbolTable();
-
-	// the map we are providing a facade for
-	private final FunctionalMap<String, Object> map;
-
-	/**
-	 * Constructors are private, start with EMPTY_TABLE
-	 * and build it up using insert().
-	 */
-	private TypedefSymbolTable() {
-		map = FunctionalMap.emptyMap();
-	}
-
-	private TypedefSymbolTable(FunctionalMap<String, Object> newRoot) {
-		map = newRoot;
-	}
-
-	public TypedefSymbolTable add(String typedefIdent) {
-		return new TypedefSymbolTable(map.insert(typedefIdent, null));
-	}
-
-	public boolean contains(String typedef) {
-		return map.containsKey(typedef);
-	}
-
-	public int size() {
-		return map.size();
-	}
-
-	public boolean isEmpty() {
-		return map.size() == 0;
-	}
-
-	@Override
-	public String toString() {
-		return map.toString();
-	}
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/plugin.properties b/lrparser/org.eclipse.cdt.core.lrparser/plugin.properties
deleted file mode 100644
index a2e49a3..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/plugin.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-###############################################################################
-#  Copyright (c) 2007, 2009 IBM Corporation and others.
-#
-#  This program and the accompanying materials
-#  are made available under the terms of the Eclipse Public License 2.0
-#  which accompanies this distribution, and is available at
-#  https://www.eclipse.org/legal/epl-2.0/
-#
-#  SPDX-License-Identifier: EPL-2.0
-#
-#  Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-Bundle-Name.0 = LR Parser Plug-in
-Bundle-Vendor.0 = Eclipse CDT
-Bundle-Name.1 = LR Parser Plug-in
-
-# built-in languages
-language.name.c99= C99
-language.name.isocpp= ISO C++
\ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/plugin.xml b/lrparser/org.eclipse.cdt.core.lrparser/plugin.xml
deleted file mode 100644
index 508db11..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/plugin.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
-    
-   <!--
-   <extension point="org.eclipse.cdt.core.language">
-      <language
-            class="org.eclipse.cdt.core.dom.lrparser.c99.C99Language"
-            id="c99"
-            name="%language.name.c99">
-      </language>
-      <language
-            class="org.eclipse.cdt.core.dom.lrparser.gnu.GCCLanguage"
-            id="gcc"
-            name="LR GCC">
-      </language>
-      
-      <language
-            class="org.eclipse.cdt.core.dom.lrparser.cpp.ISOCPPLanguage"
-            id="isocpp"
-            name="%language.name.isocpp">
-      </language>
-      <language
-            class="org.eclipse.cdt.core.dom.lrparser.gnu.GPPLanguage"
-            id="gpp"
-            name="LR GPP">
-      </language>
-   </extension>
-   -->
-   
-</plugin>
\ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/BaseExtensibleLanguage.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/BaseExtensibleLanguage.java
deleted file mode 100644
index 20996aa..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/BaseExtensibleLanguage.java
+++ /dev/null
@@ -1,482 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2015 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.lrparser;
-
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.cdt.core.dom.ICodeReaderFactory;
-import org.eclipse.cdt.core.dom.ast.IASTCompletionNode;
-import org.eclipse.cdt.core.dom.ast.IASTName;
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.ast.gnu.c.GCCLanguage;
-import org.eclipse.cdt.core.dom.ast.gnu.cpp.GPPLanguage;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
-import org.eclipse.cdt.core.dom.parser.CLanguageKeywords;
-import org.eclipse.cdt.core.dom.parser.IScannerExtensionConfiguration;
-import org.eclipse.cdt.core.index.IIndex;
-import org.eclipse.cdt.core.model.AbstractLanguage;
-import org.eclipse.cdt.core.model.ICLanguageKeywords;
-import org.eclipse.cdt.core.model.IContributedModelBuilder;
-import org.eclipse.cdt.core.model.ILanguage;
-import org.eclipse.cdt.core.model.ITranslationUnit;
-import org.eclipse.cdt.core.parser.FileContent;
-import org.eclipse.cdt.core.parser.IParserLogService;
-import org.eclipse.cdt.core.parser.IScanner;
-import org.eclipse.cdt.core.parser.IScannerInfo;
-import org.eclipse.cdt.core.parser.IncludeFileContentProvider;
-import org.eclipse.cdt.core.parser.ParserLanguage;
-import org.eclipse.cdt.core.parser.util.ASTPrinter;
-import org.eclipse.cdt.core.parser.util.DebugUtil;
-import org.eclipse.cdt.internal.core.dom.parser.ASTNode;
-import org.eclipse.cdt.internal.core.parser.scanner.CPreprocessor;
-import org.eclipse.cdt.internal.core.pdom.dom.IPDOMLinkageFactory;
-import org.eclipse.cdt.internal.core.pdom.dom.c.PDOMCLinkageFactory;
-import org.eclipse.cdt.internal.core.pdom.dom.cpp.PDOMCPPLinkageFactory;
-import org.eclipse.core.runtime.CoreException;
-
-import lpg.lpgjavaruntime.IToken;
-import lpg.lpgjavaruntime.PrsStream;
-
-/**
- * Implementation of the ILanguage extension point,
- * provides the ability to add LPG based languages to CDT.
- */
-@SuppressWarnings({ "restriction", "nls" })
-public abstract class BaseExtensibleLanguage extends AbstractLanguage {
-
-	private static final boolean DEBUG_PRINT_GCC_AST = false;
-	private static final boolean DEBUG_PRINT_AST = false;
-	// default 0.5 min
-	private long parser_timeout_limit_lowerBoundary = 1 * 30 * 1000;
-	// default 2 mins
-	private long parser_timeout_limit_uppperBoundary = 1 * 60 * 1000;
-	//time limit for each token, 1ms
-	public static long UNIT_PARSER_TIMEOUT_LIMIT = 10;
-
-	private static long LONGEST_CORE_RUNTIME;
-	private static long LONGEST_LPR_RUNTIME;
-
-	public static boolean CATCH_TEMPLATEID_ERROR = false;
-
-	private ICLanguageKeywords keywords = null;
-
-	/**
-	 * Retrieve the parser (runs after the preprocessor runs).
-	 *
-	 * Can be overridden in subclasses to provide a different parser
-	 * for a language extension.
-	 */
-	protected abstract IParser<IASTTranslationUnit> getParser(IScanner scanner, IIndex index,
-			Map<String, String> properties);
-
-	protected IParser<IASTTranslationUnit> getCompleteParser(IScanner scanner, IIndex index,
-			Map<String, String> properties) {
-		return getParser(scanner, index, properties);
-	}
-
-	protected ISecondaryParser<IASTTranslationUnit> getCompleteParser(ITokenStream stream, IScanner scanner,
-			IIndex index, Map<String, String> properties) {
-		return (ISecondaryParser) getParser(scanner, index, properties);
-	}
-
-	/**
-	 * Returns the ParserLanguage value that is to be used when creating
-	 * an instance of CPreprocessor.
-	 *
-	 */
-	protected abstract ParserLanguage getParserLanguage();
-
-	/**
-	 * Returns the scanner extension configuration for this language, may not return null
-	 */
-	protected abstract IScannerExtensionConfiguration getScannerExtensionConfiguration();
-
-	private class ParseThread<AST_TYPE> extends Thread {
-		ParseThread() {
-			super();
-			super.setName("ParserThread");
-		}
-
-		AST_TYPE astUnit = null;
-
-		AST_TYPE getASTUnit() {
-			return astUnit;
-		}
-	}
-
-	private <AST_TYPE> AST_TYPE runThreadByLimitedTime(long limitTime, ParseThread<AST_TYPE> parseThread)
-			throws InterruptedException {
-		parseThread.start();
-
-		parseThread.join(limitTime);
-
-		return parseThread.getASTUnit();
-	}
-
-	@Override
-	@Deprecated
-	public IASTTranslationUnit getASTTranslationUnit(org.eclipse.cdt.core.parser.CodeReader reader,
-			IScannerInfo scanInfo, ICodeReaderFactory codeReaderFactory, IIndex index, int options,
-			IParserLogService log) throws CoreException {
-		return getASTTranslationUnit(FileContent.adapt(reader), scanInfo,
-				IncludeFileContentProvider.adapt(codeReaderFactory), index, options, log);
-	}
-
-	public void setParser_timeout_limit_lowerBoundary(long parser_timeout_limit_lowerBoundary) {
-		this.parser_timeout_limit_lowerBoundary = parser_timeout_limit_lowerBoundary;
-	}
-
-	public void setParser_timeout_limit_uppperBoundary(long parser_timeout_limit_uppperBoundary) {
-		this.parser_timeout_limit_uppperBoundary = parser_timeout_limit_uppperBoundary;
-	}
-
-	@Override
-	public IASTTranslationUnit getASTTranslationUnit(final FileContent reader, final IScannerInfo scanInfo,
-			final IncludeFileContentProvider fileCreator, final IIndex index, int options, final IParserLogService log)
-			throws CoreException {
-		CATCH_TEMPLATEID_ERROR = false;
-		long startTime = 0;
-		java.util.Date today = null;
-		if (log.isTracing()) {
-			today = new java.util.Date();
-			startTime = today.getTime();
-			log.traceLog(
-					"^^^^^^ Start parsing " + reader.getFileLocation() + " at " + new java.sql.Timestamp(startTime));
-		}
-		IASTTranslationUnit gtu = null;
-		if (DEBUG_PRINT_GCC_AST) {
-			System.out.println(
-					"\n********************************************************\nParsing\nOptions: " + options);
-
-			ILanguage gppLanguage = getParserLanguage() == ParserLanguage.CPP ? GPPLanguage.getDefault()
-					: GCCLanguage.getDefault();
-			gtu = gppLanguage.getASTTranslationUnit(reader, scanInfo, fileCreator, index, options, log);
-
-			System.out.println(gppLanguage.getName() + " AST:");
-			ASTPrinter.print(gtu);
-			System.out.println();
-		}
-
-		final IScannerExtensionConfiguration config = getScannerExtensionConfiguration();
-
-		final ParserLanguage pl = getParserLanguage();
-		final IScanner preprocessor = new CPreprocessor(reader, scanInfo, pl, log, config, fileCreator);
-		preprocessor.setComputeImageLocations((options & ILanguage.OPTION_NO_IMAGE_LOCATIONS) == 0);
-
-		final Map<String, String> parserProperties = new HashMap<>();
-		parserProperties.put(LRParserProperties.TRANSLATION_UNIT_PATH, reader.getFileLocation());
-		if ((options & OPTION_SKIP_FUNCTION_BODIES) != 0)
-			parserProperties.put(LRParserProperties.SKIP_FUNCTION_BODIES, "true");
-		if ((options & OPTION_SKIP_TRIVIAL_EXPRESSIONS_IN_AGGREGATE_INITIALIZERS) != 0)
-			parserProperties.put(LRParserProperties.SKIP_TRIVIAL_EXPRESSIONS_IN_AGGREGATE_INITIALIZERS, "true");
-
-		final IParser<IASTTranslationUnit> parser = getParser(preprocessor, index, parserProperties);
-		long parser_timeout_limit = parser_timeout_limit_uppperBoundary;
-		if (parser instanceof PrsStream) {
-			int token_size = ((PrsStream) parser).getSize();
-			parser_timeout_limit = token_size * UNIT_PARSER_TIMEOUT_LIMIT;
-			if (parser_timeout_limit < parser_timeout_limit_lowerBoundary)
-				parser_timeout_limit = parser_timeout_limit_lowerBoundary;
-			if (parser_timeout_limit > parser_timeout_limit_uppperBoundary)
-				parser_timeout_limit = parser_timeout_limit_uppperBoundary;
-			log.traceLog("^^^^^^ adjusted time out limit with token size: " + token_size + " and the time out limit: "
-					+ parser_timeout_limit);
-		}
-		IASTTranslationUnit tu = null;
-		//real token size, substract a dummy token and a eof token
-		final int orgTokenSize = ((PrsStream) parser).getTokens().size();
-		//final List orginalTokens = copyList(((PrsStream)parser).getTokens());
-		ParseThread<IASTTranslationUnit> parseThread = new ParseThread<IASTTranslationUnit>() {
-
-			@Override
-			public void run() {
-				try {
-					astUnit = parser.parse();
-				}
-
-				catch (Exception e) {
-
-					/*
-					if(e instanceof TemplateIDErrorException){
-						//IScanner completePreprocessor = new CPreprocessor(reader, scanInfo, pl, log, config, fileCreator);
-						//IParser<IASTTranslationUnit> completeParser = getCompleteParser(preprocessor, index, parserProperties);
-
-						ISecondaryParser<IASTTranslationUnit> completeParser = getCompleteParser((ITokenStream)parser, preprocessor, index, parserProperties);
-						//completeParser.setAction(parser.getAction());
-						//((ISecondaryParser)completeParser).setTokenMap((ITokenStream)parser);
-						//copyTokensToParser((PrsStream)completeParser, ((PrsStream)parser).getTokens().subList(0, orgTokenSize));
-						((ISecondaryParser)completeParser).setTokens(((PrsStream)parser).getTokens().subList(1, orgTokenSize-1));
-						astUnit = completeParser.parse();
-					}else{
-					*/
-					if (log.isTracing()) {
-						StringWriter stringW = new StringWriter();
-						PrintWriter printW = new PrintWriter(stringW);
-						e.printStackTrace(printW);
-
-						log.traceLog("^^^^^^ PARSER_ERR_STACK" + stringW.toString());
-					}
-					//}
-
-				}
-
-			}
-
-		};
-
-		try {
-			tu = runThreadByLimitedTime(parser_timeout_limit, parseThread);
-		} catch (InterruptedException e) {
-
-			StringWriter stringW = new StringWriter();
-			PrintWriter printW = new PrintWriter(stringW);
-			e.printStackTrace(printW);
-
-			log.traceLog("^^^^^^_ERR_STACK" + stringW.toString());
-			//e.printStackTrace();
-		}
-		parseThread.stop();
-		long lprFinishTime = 0;
-		long coreFinishTime = 0;
-		if (log.isTracing()) {
-			today = new java.util.Date();
-			lprFinishTime = today.getTime();
-		}
-
-		if (tu == null) {
-			long lpr_fail_time = 0;
-			if (log.isTracing()) {
-				lpr_fail_time = lprFinishTime;
-				log.traceLog("^^^^^^ LR parser fails in parsing " + reader.getFileLocation() + " after running "
-						+ (lpr_fail_time - startTime) / 1000 + " seconds");
-			}
-
-			ILanguage gppLanguage = getParserLanguage() == ParserLanguage.CPP ? GPPLanguage.getDefault()
-					: GCCLanguage.getDefault();
-			tu = gppLanguage.getASTTranslationUnit(reader, scanInfo, fileCreator, index, options, log);
-			if (log.isTracing()) {
-				today = new java.util.Date();
-				coreFinishTime = today.getTime();
-
-				log.traceLog("^^^^^^ core parser parses " + reader.getFileLocation() + " in "
-						+ (coreFinishTime - lpr_fail_time) / 1000 + " seconds");
-			}
-		}
-
-		if (DEBUG_PRINT_AST) {
-			System.out.println("Base Extensible Language AST:");
-			ASTPrinter.print(tu);
-		}
-		long finishTime;
-		if (log.isTracing()) {
-			if (coreFinishTime > 0) {
-				//parsed by core parser.
-				finishTime = coreFinishTime;
-				long core_runtime = finishTime - startTime;
-				log.traceLog("^^^^^^ Finish parsing with cdt core parser " + reader.getFileLocation() + " at "
-						+ new java.sql.Timestamp(finishTime) + " runtime: " + core_runtime);
-				if (core_runtime > LONGEST_CORE_RUNTIME) {
-					LONGEST_CORE_RUNTIME = core_runtime;
-					log.traceLog(
-							"^^^^^^ CLCLCLCL so far the longest runtime with core parser is: " + core_runtime / 1000);
-				}
-			} else {
-				finishTime = lprFinishTime;
-				long lpr_runtime = finishTime - startTime;
-				log.traceLog("^^^^^^ Finish parsing " + reader.getFileLocation() + " at "
-						+ new java.sql.Timestamp(finishTime) + " runtime: " + lpr_runtime);
-				if (lpr_runtime > LONGEST_LPR_RUNTIME) {
-					LONGEST_LPR_RUNTIME = lpr_runtime;
-					log.traceLog("^^^^^^ LLLLLLLL so far the longest runtime by LPR Parser is: " + lpr_runtime / 1000);
-				}
-			}
-		}
-
-		return tu;
-	}
-
-	public void copyTokensToParser(PrsStream parser, List<IToken> tokens) {
-		parser.resetTokenStream();
-
-		for (IToken token : tokens) {
-
-			parser.addToken(token);
-		}
-
-	}
-
-	public List copyList(List orgList) {
-		List returnList = new ArrayList(orgList.size());
-		for (int i = 0; i < orgList.size(); i++) {
-			returnList.add(orgList.get(i));
-		}
-		return returnList;
-
-	}
-
-	@Override
-	@Deprecated
-	public IASTTranslationUnit getASTTranslationUnit(org.eclipse.cdt.core.parser.CodeReader reader,
-			IScannerInfo scanInfo, ICodeReaderFactory fileCreator, IIndex index, IParserLogService log)
-			throws CoreException {
-
-		return getASTTranslationUnit(reader, scanInfo, fileCreator, index, 0, log);
-	}
-
-	@Override
-	@Deprecated
-	public IASTCompletionNode getCompletionNode(org.eclipse.cdt.core.parser.CodeReader reader, IScannerInfo scanInfo,
-			ICodeReaderFactory fileCreator, IIndex index, IParserLogService log, int offset) throws CoreException {
-		return getCompletionNode(FileContent.adapt(reader), scanInfo, IncludeFileContentProvider.adapt(fileCreator),
-				index, log, offset);
-	}
-
-	@Override
-	public IASTCompletionNode getCompletionNode(FileContent reader, IScannerInfo scanInfo,
-			IncludeFileContentProvider fileCreator, IIndex index, IParserLogService log, int offset)
-			throws CoreException {
-
-		IASTCompletionNode cn;
-		if (DEBUG_PRINT_GCC_AST) {
-			ILanguage gppLanguage = GCCLanguage.getDefault();
-			cn = gppLanguage.getCompletionNode(reader, scanInfo, fileCreator, index, log, offset);
-
-			System.out.println();
-			System.out.println("********************************************************");
-			System.out.println("GPP AST:");
-			printCompletionNode(cn);
-		}
-
-		IScannerExtensionConfiguration config = getScannerExtensionConfiguration();
-
-		ParserLanguage pl = getParserLanguage();
-		IScanner preprocessor = new CPreprocessor(reader, scanInfo, pl, log, config, fileCreator);
-		preprocessor.setContentAssistMode(offset);
-
-		Map<String, String> parserProperties = new HashMap<>();
-		parserProperties.put(LRParserProperties.TRANSLATION_UNIT_PATH, reader.getFileLocation());
-		parserProperties.put(LRParserProperties.SKIP_FUNCTION_BODIES, "true");
-		parserProperties.put(LRParserProperties.SKIP_TRIVIAL_EXPRESSIONS_IN_AGGREGATE_INITIALIZERS, "true");
-
-		final IParser<IASTTranslationUnit> parser = getParser(preprocessor, index, parserProperties);
-
-		long parser_timeout_limit = parser_timeout_limit_uppperBoundary;
-		if (parser instanceof PrsStream) {
-			int token_size = ((PrsStream) parser).getSize();
-			parser_timeout_limit = token_size * UNIT_PARSER_TIMEOUT_LIMIT;
-			if (parser_timeout_limit < parser_timeout_limit_lowerBoundary)
-				parser_timeout_limit = parser_timeout_limit_lowerBoundary;
-			if (parser_timeout_limit > parser_timeout_limit_uppperBoundary)
-				parser_timeout_limit = parser_timeout_limit_uppperBoundary;
-			if (log.isTracing()) {
-				log.traceLog("^^^^^^ adjusted time out limit with token size: " + token_size
-						+ " and the time out limit: " + parser_timeout_limit);
-			}
-		}
-		ParseThread<IASTCompletionNode> parseThread = new ParseThread<IASTCompletionNode>() {
-
-			@Override
-			public void run() {
-				parser.parse();
-				astUnit = parser.getCompletionNode();
-			}
-
-		};
-
-		IASTCompletionNode completionNode = null;
-		try {
-			completionNode = runThreadByLimitedTime(parser_timeout_limit * 100, parseThread);
-		} catch (InterruptedException e) {
-			if (log.isTracing()) {
-				StringWriter stringW = new StringWriter();
-				PrintWriter printW = new PrintWriter(stringW);
-				e.printStackTrace(printW);
-
-				log.traceLog("^^^^^^_ERR_STACK" + stringW.toString());
-			}
-			//e.printStackTrace();
-		}
-		parseThread.stop();
-		if (completionNode == null) {
-			log.traceLog("LR parser fails in parsing " + reader.getFileLocation());
-			if (log.isTracing()) {
-				log.traceLog("LR parser fails in parsing " + reader.getFileLocation());
-			}
-			ILanguage gppLanguage = getParserLanguage() == ParserLanguage.CPP ? GPPLanguage.getDefault()
-					: GCCLanguage.getDefault();
-			completionNode = gppLanguage.getCompletionNode(reader, scanInfo, fileCreator, index, log, offset);
-		}
-
-		if (DEBUG_PRINT_AST) {
-			System.out.println("Base Extensible Language AST:");
-			printCompletionNode(completionNode);
-		}
-
-		return completionNode;
-	}
-
-	/*
-	 * For debugging.
-	 */
-	private static void printCompletionNode(IASTCompletionNode cn) {
-		if (cn == null) {
-			System.out.println("Completion node is null");
-			return;
-		}
-
-		ASTPrinter.print(cn.getTranslationUnit());
-		for (IASTName name : cn.getNames()) {
-			ASTNode context = (ASTNode) name.getCompletionContext();
-			System.out.printf("Name: %s, Context: %s, At: %d", name, DebugUtil.safeClassName(context),
-					context == null ? null : context.getOffset());
-			if (name.getTranslationUnit() == null) // some name nodes are not hooked up to the AST
-				System.out.print(", not hooked up");
-			System.out.println();
-		}
-		System.out.println();
-	}
-
-	@Override
-	@Deprecated
-	public IASTName[] getSelectedNames(IASTTranslationUnit ast, int start, int length) {
-		return GCCLanguage.getDefault().getSelectedNames(ast, start, length);
-	}
-
-	private ICLanguageKeywords cLanguageKeywords = new CLanguageKeywords(getParserLanguage(),
-			getScannerExtensionConfiguration());
-
-	@Override
-	public <T> T getAdapter(Class<T> adapter) {
-		if (ICLanguageKeywords.class.equals(adapter))
-			return adapter.cast(cLanguageKeywords);
-		if (IPDOMLinkageFactory.class.equals(adapter)) {
-			if (getParserLanguage().isCPP())
-				return adapter.cast(new PDOMCPPLinkageFactory());
-			return adapter.cast(new PDOMCLinkageFactory());
-		}
-
-		return super.getAdapter(adapter);
-	}
-
-	@Override
-	public IContributedModelBuilder createModelBuilder(@SuppressWarnings("unused") ITranslationUnit tu) {
-		return null;
-	}
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/CPreprocessorAdapter.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/CPreprocessorAdapter.java
deleted file mode 100644
index ca82d49..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/CPreprocessorAdapter.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2013 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.lrparser;
-
-import org.eclipse.cdt.core.parser.EndOfFileException;
-import org.eclipse.cdt.core.parser.IScanner;
-import org.eclipse.cdt.core.parser.OffsetLimitReachedException;
-
-import lpg.lpgjavaruntime.IToken;
-import lpg.lpgjavaruntime.Token;
-
-/**
- * Adapts the CPreprocessor from the CDT core for use with LPG based parsers.
- *
- * @author Mike Kucera
- * @noreference
- * TODO move into an internal package
- */
-public class CPreprocessorAdapter {
-	/**
-	 * During content assist the preprocessor may return a completion token
-	 * which represents the identifier on which the user invoked content assist.
-	 * Then the preprocessor normally returns arbitrarily many end-of-completion
-	 * (EOC) tokens.
-	 *
-	 * A bottom-up parser cannot know ahead of time how many EOC tokens are
-	 * needed in order for the parse to complete successfully. So we pick
-	 * a number that seems arbitrarily large enough.
-	 */
-	private static final int NUM_EOC_TOKENS = 50;
-
-	private static final int DUMMY_TOKEN_KIND = 0;
-	private static final int tCOMPLETION = org.eclipse.cdt.core.parser.IToken.tCOMPLETION;
-
-	/**
-	 * Collect the tokens generated by the preprocessor.
-	 * TODO: should preprocessor.nextTokenRaw() be called instead?
-	 */
-	public static void runCPreprocessor(IScanner preprocessor, ITokenCollector tokenCollector, IDOMTokenMap tokenMap) {
-		// LPG requires that the token stream start with a dummy token
-		tokenCollector.addToken(createDummyToken());
-
-		org.eclipse.cdt.core.parser.IToken lastToken = null;
-		try {
-			while (true) {
-				// the preprocessor throws EndOfFileException when it reaches the end of input
-				org.eclipse.cdt.core.parser.IToken domToken = preprocessor.nextToken();
-				processDOMToken(domToken, tokenCollector, tokenMap);
-				lastToken = domToken;
-
-				if (domToken.getType() == tCOMPLETION)
-					break;
-			}
-		} catch (OffsetLimitReachedException e) {
-			// preprocessor throws this when content assist is invoked inside a preprocessor directive
-			org.eclipse.cdt.core.parser.IToken domToken = e.getFinalToken();
-			assert domToken.getType() == tCOMPLETION;
-			processDOMToken(domToken, tokenCollector, tokenMap);
-			lastToken = domToken;
-		} catch (EndOfFileException e) {
-			// use thrown exception to break out of loop
-		}
-
-		// TODO
-		// This computation is actually incorrect. The "offset" of the EOF token should
-		// be equal to the size of the file. But since the CPreprocessor throws an exception when it
-		// reaches the end we can't get this info. So we just use the offset of the last real token
-		// that was returned.
-		int eofTokenOffset = lastToken == null ? 0 : lastToken.getOffset();
-
-		// LPG requires that the token stream end with an EOF token
-		tokenCollector.addToken(createEOFToken(tokenMap, eofTokenOffset));
-	}
-
-	private static void processDOMToken(org.eclipse.cdt.core.parser.IToken domToken, ITokenCollector tokenCollector,
-			IDOMTokenMap tokenMap) {
-		int newKind = tokenMap.mapKind(domToken);
-		tokenCollector.addToken(new LPGTokenAdapter(domToken, newKind));
-
-		if (domToken.getType() == tCOMPLETION) {
-			int offset = domToken.getOffset();
-			for (int i = 0; i < NUM_EOC_TOKENS; i++)
-				tokenCollector.addToken(createEOCToken(tokenMap, offset));
-		}
-	}
-
-	private static IToken createEOCToken(IDOMTokenMap tokenMap, int offset) {
-		return new Token(null, offset, offset + 1, tokenMap.getEOCTokenKind());
-	}
-
-	private static IToken createDummyToken() {
-		return new Token(null, 0, 0, DUMMY_TOKEN_KIND);
-	}
-
-	private static IToken createEOFToken(IDOMTokenMap tokenMap, int offset) {
-		return new Token(null, offset, offset + 1, tokenMap.getEOFTokenKind());
-	}
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/IDOMTokenMap.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/IDOMTokenMap.java
deleted file mode 100644
index 911de12..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/IDOMTokenMap.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.lrparser;
-
-import org.eclipse.cdt.core.parser.IToken;
-
-/**
- * Maps tokens returned by CPreprocessor to the corresponding
- * token kind used by an LPG based parser.
- *
- * @author Mike Kucera
- */
-public interface IDOMTokenMap {
-
-	/**
-	 * Returns the LPG token kind for the given DOM token.
-	 * @throws NullPointerException if token is null
-	 */
-	int mapKind(IToken token);
-
-	/**
-	 * Returns the LPG token type for End Of File (TK_EOF_TOKEN) token.
-	 */
-	int getEOFTokenKind();
-
-	/**
-	 * Returns the LPG token type for End Of Completion (TK_EndOfCompletion) token.
-	 */
-	int getEOCTokenKind();
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/IParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/IParser.java
deleted file mode 100644
index 97fad53..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/IParser.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.lrparser;
-
-import org.eclipse.cdt.core.dom.ast.IASTCompletionNode;
-import org.eclipse.cdt.core.dom.ast.IASTNode;
-
-/**
- * Represents a parser that can be used by BaseExtensibleLanguage.
- *
- * @author Mike Kucera
- */
-public interface IParser<N extends IASTNode> {
-
-	/**
-	 * Performs the actual parse.
-	 *
-	 * If there were any errors during the parse these will be represented in the
-	 * AST as problem nodes.
-	 *
-	 * If the parser encounters a completion token then a completion node
-	 * will be available via the getCompletionNode() method.
-	 */
-	public N parse();
-
-	/**
-	 * Returns the completion node if a completion token was encountered
-	 * during the parse, null otherwise.
-	 */
-	public IASTCompletionNode getCompletionNode();
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/ISecondaryParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/ISecondaryParser.java
deleted file mode 100644
index 584c4ee..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/ISecondaryParser.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.lrparser;
-
-import java.util.List;
-
-import org.eclipse.cdt.core.dom.ast.IASTNode;
-
-import lpg.lpgjavaruntime.IToken;
-
-public interface ISecondaryParser<N extends IASTNode> extends IParser<N> {
-
-	/**
-	 * Set the list of tokens that will be parsed.
-	 *
-	 * The given list does not need to contain dummy and EOF tokens,
-	 * these will be added automatically.
-	 *
-	 * This method causes any tokens already contained in the parser
-	 * to be removed.
-	 *
-	 * This method is mainly used by secondary parsers that are called
-	 * from a main parser.
-	 *
-	 * @throws NullPointerException if tokens is null
-	 */
-	public void setTokens(List<IToken> tokens);
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/ITokenCollector.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/ITokenCollector.java
deleted file mode 100644
index dd780f9..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/ITokenCollector.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2009 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.lrparser;
-
-import lpg.lpgjavaruntime.IToken;
-
-/**
- * An LPG parser object is initialized with the list of tokens
- * before parsing is invoked.
- *
- * @author Mike Kucera
- */
-public interface ITokenCollector {
-
-	/**
-	 * Used to add one token at a time to the parser.
-	 * If this method is used to add tokens then the dummy token
-	 * and the EOF token must be added by the client.
-	 *
-	 * This is really just an optimization, no intermediate data structures
-	 * are required between the preprocessor and the parser.
-	 *
-	 * @throws NullPointerException if token is null
-	 */
-	public void addToken(IToken token);
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/LPGTokenAdapter.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/LPGTokenAdapter.java
deleted file mode 100644
index 0ea784d..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/LPGTokenAdapter.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2015 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.lrparser;
-
-import lpg.lpgjavaruntime.PrsStream;
-
-/**
- * The CPreprocessor from the CDT core returns tokens that
- * are of the type org.eclipse.cdt.core.parser.IToken,
- * however LPG wants the tokens to be of the type lpg.lpgjavaruntime.IToken.
- *
- * So these adapter objects are used to wrap the tokens returned
- * by CPreprocessor so that they can be used with LPG.
- *
- * @author Mike Kucera
- */
-public class LPGTokenAdapter implements lpg.lpgjavaruntime.IToken {
-
-	/** The token object that is being wrapped */
-	private final org.eclipse.cdt.core.parser.IToken token;
-
-	private int tokenIndex;
-	private int adjunctIndex;
-
-	private int kind;
-
-	public LPGTokenAdapter(org.eclipse.cdt.core.parser.IToken token, int parserKind) {
-		this.token = token;
-		this.kind = parserKind;
-	}
-
-	public org.eclipse.cdt.core.parser.IToken getWrappedToken() {
-		return token;
-	}
-
-	@Override
-	public int getAdjunctIndex() {
-		return adjunctIndex;
-	}
-
-	@Override
-	public int getColumn() {
-		return 0;
-	}
-
-	@Override
-	public int getEndColumn() {
-		return 0;
-	}
-
-	@Override
-	public int getEndLine() {
-		return 0;
-	}
-
-	@Override
-	public int getEndOffset() {
-		return token.getEndOffset();
-	}
-
-	@Override
-	public lpg.lpgjavaruntime.IToken[] getFollowingAdjuncts() {
-		return null;
-	}
-
-	@Override
-	public int getKind() {
-		return kind;
-	}
-
-	@Override
-	public int getLine() {
-		return 0;
-	}
-
-	@Override
-	public lpg.lpgjavaruntime.IToken[] getPrecedingAdjuncts() {
-		return null;
-	}
-
-	@Override
-	public PrsStream getPrsStream() {
-		return null;
-	}
-
-	@Override
-	public int getStartOffset() {
-		return token.getOffset();
-	}
-
-	@Override
-	public int getTokenIndex() {
-		return tokenIndex;
-	}
-
-	@Override
-	@Deprecated
-	public String getValue(@SuppressWarnings("unused") char[] arg0) {
-		return toString();
-	}
-
-	@Override
-	public void setAdjunctIndex(int adjunctIndex) {
-		this.adjunctIndex = adjunctIndex;
-	}
-
-	@Override
-	public void setEndOffset(@SuppressWarnings("unused") int arg0) {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	public void setKind(int kind) {
-		this.kind = kind;
-	}
-
-	@Override
-	public void setStartOffset(@SuppressWarnings("unused") int arg0) {
-		throw new UnsupportedOperationException();
-
-	}
-
-	@Override
-	public void setTokenIndex(int tokenIndex) {
-		this.tokenIndex = tokenIndex;
-	}
-
-	@Override
-	public String toString() {
-		return token.toString();
-	}
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/LRParserPlugin.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/LRParserPlugin.java
deleted file mode 100644
index 26e0eaa..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/LRParserPlugin.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.lrparser;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Plugin;
-import org.eclipse.core.runtime.Status;
-import org.osgi.framework.BundleContext;
-
-public class LRParserPlugin extends Plugin {
-
-	public static final String PLUGIN_ID = "org.eclipse.cdt.core.lrparser"; //$NON-NLS-1$
-
-	private static LRParserPlugin plugin;
-
-	@Override
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		plugin = this;
-	}
-
-	@Override
-	public void stop(BundleContext context) throws Exception {
-		try {
-			// shutdown code goes here
-			plugin = null;
-		} finally {
-			super.stop(context);
-		}
-	}
-
-	/**
-	 * @noreference
-	 */
-	public static IStatus createStatus(String msg, Throwable e) {
-		return new Status(IStatus.ERROR, PLUGIN_ID, IStatus.ERROR, msg, e);
-	}
-
-	/**
-	 * @noreference
-	 */
-	public static IStatus createStatus(Throwable e) {
-		return createStatus(e.getMessage(), e);
-	}
-
-	/**
-	 * @noreference
-	 */
-	public static void log(IStatus status) {
-		plugin.getLog().log(status);
-	}
-
-	/**
-	 * @noreference
-	 */
-	public static void logError(Throwable exception, String message) {
-		log(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.OK, message, exception));
-	}
-
-	/**
-	 * @noreference
-	 */
-	public static void logError(Throwable exception) {
-		logError(exception, exception.getMessage());
-	}
-
-	/**
-	 * @noreference
-	 */
-	public static void logError(String message) {
-		log(new Status(IStatus.ERROR, PLUGIN_ID, message));
-	}
-
-	/**
-	 * @noreference
-	 */
-	public static void logInfo(String message) {
-		log(new Status(IStatus.INFO, PLUGIN_ID, message));
-	}
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/LRParserProperties.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/LRParserProperties.java
deleted file mode 100644
index c840d6e..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/LRParserProperties.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.lrparser;
-
-@SuppressWarnings("nls")
-public final class LRParserProperties {
-
-	/**
-	 * The LR parsers do not actually skip the parsing of function bodies,
-	 * but this option does have the effect of not generating AST nodes
-	 * for function bodies.
-	 *
-	 * TODO this is not implemented yet in the LR parser
-	 *
-	 * Possible values: "true", null
-	 */
-	public static final String SKIP_FUNCTION_BODIES = "org.eclipse.cdt.core.dom.lrparser.skipFunctionBodies";
-
-	/**
-	 * Instructs the parser not to create AST nodes for expressions
-	 * within aggregate initializers when they do not contain names.
-	 *
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=253690
-	 *
-	 * Possible values: "true", null
-	 */
-	public static final String SKIP_TRIVIAL_EXPRESSIONS_IN_AGGREGATE_INITIALIZERS = "org.eclipse.cdt.core.dom.lrparser.skipTrivialExpressionsInAggregateInitializers";
-
-	/**
-	 * The location of the translation unit as given by the CodeReader.
-	 */
-	public static final String TRANSLATION_UNIT_PATH = "org.eclipse.cdt.core.dom.lrparser.translationUnitPath";
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/ScannerExtensionConfiguration.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/ScannerExtensionConfiguration.java
deleted file mode 100644
index f7d2b07..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/ScannerExtensionConfiguration.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2015 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.cdt.core.dom.lrparser;
-
-import org.eclipse.cdt.core.dom.parser.AbstractScannerExtensionConfiguration;
-
-/**
- * A minimalistic scanner configuration for the LR parser.
- *
- * @author Mike Kucera
- *
- */
-@SuppressWarnings("nls")
-public class ScannerExtensionConfiguration extends AbstractScannerExtensionConfiguration {
-
-	private ScannerExtensionConfiguration() {
-		addMacro("__STDC__", "1");
-	}
-
-	public static ScannerExtensionConfiguration createC() {
-		ScannerExtensionConfiguration sec = new ScannerExtensionConfiguration();
-		sec.addMacro("__null", "(void *)0");
-		return sec;
-	}
-
-	public static ScannerExtensionConfiguration createCPP() {
-		ScannerExtensionConfiguration sec = new ScannerExtensionConfiguration();
-		sec.addMacro("__null", "0");
-		return sec;
-	}
-
-	@Override
-	public boolean support$InIdentifiers() {
-		return true;
-	}
-
-	@Override
-	public boolean supportUserDefinedLiterals() {
-		return false;
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ASTCompletionNode.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ASTCompletionNode.java
deleted file mode 100644
index 36eb055..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ASTCompletionNode.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2015 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.lrparser.action;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.cdt.core.dom.ast.IASTCompletionNode;
-import org.eclipse.cdt.core.dom.ast.IASTName;
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-
-/**
- * An AST node that represents the location of content assist
- * in the source file.
- *
- * This node may contain the prefix text of an identifier up to the point. If
- * there is no prefix, the completion occurred at the point where a new token
- * would have begun.
- *
- * Contains a list of name nodes, each name represents an identifier
- * at the point where content assist was invoked. There is usually
- * a single name node, however if an ambiguity is detected then that section
- * of the source may be interpreted in more than one way (for example, as an expression then as a declaration).
- * This results in an ambiguity node in the tree and one name node for each of the ways it can be interpreted.
- *
- * The full AST may be accessed via getTranslationUnit() or by following
- * the parent pointers of the name nodes.
- *
- * @author Mike Kucera
- */
-public class ASTCompletionNode implements IASTCompletionNode {
-
-	private final List<CompletionNameEntry> entries = new ArrayList<>();
-
-	private final String prefix;
-	private IASTTranslationUnit tu;
-
-	/**
-	 * Creates a completion node.
-	 * @param prefix The completion prefix, set to null if the empty string is passed.
-	 */
-	public ASTCompletionNode(String prefix, IASTTranslationUnit tu) {
-		if ("".equals(prefix)) //$NON-NLS-1$
-			prefix = null;
-
-		this.prefix = prefix;
-		this.tu = tu;
-	}
-
-	public ASTCompletionNode(String prefix) {
-		this(prefix, null);
-	}
-
-	public void addName(IASTName name) {
-		entries.add(new CompletionNameEntry(name, name.getParent()));
-	}
-
-	/**
-	 * Returns the length of the prefix.
-	 */
-	@Override
-	public int getLength() {
-		return prefix == null ? 0 : prefix.length();
-	}
-
-	@Override
-	public IASTName[] getNames() {
-		IASTName[] names = new IASTName[entries.size()];
-		for (int i = 0; i < entries.size(); ++i) {
-			names[i] = entries.get(i).fName;
-		}
-		return names;
-	}
-
-	/**
-	 * If the point of completion was at the end of a potential identifier, this
-	 * string contains the text of that identifier.
-	 *
-	 * @returns a string of length >= 1 or null
-	 */
-	@Override
-	public String getPrefix() {
-		return prefix;
-	}
-
-	public void setTranslationUnit(IASTTranslationUnit tu) {
-		this.tu = tu;
-	}
-
-	@Override
-	public IASTTranslationUnit getTranslationUnit() {
-		return tu;
-	}
-
-	@Override
-	public boolean containsName(IASTName name) {
-		for (CompletionNameEntry entry : entries) {
-			if (entry.fName == name) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	@Override
-	public CompletionNameEntry[] getEntries() {
-		return entries.toArray(new CompletionNameEntry[entries.size()]);
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/AbstractParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/AbstractParserAction.java
deleted file mode 100644
index 456ad6a..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/AbstractParserAction.java
+++ /dev/null
@@ -1,213 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.lrparser.action;
-
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.cdt.core.dom.ast.IASTCompletionNode;
-import org.eclipse.cdt.core.dom.ast.IASTName;
-import org.eclipse.cdt.core.dom.ast.IASTNode;
-import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
-import org.eclipse.cdt.internal.core.dom.parser.ASTNode;
-
-import lpg.lpgjavaruntime.IToken;
-
-@SuppressWarnings("restriction")
-public abstract class AbstractParserAction {
-
-	/**
-	 * Used with very simple optional rules that just say
-	 * that some particular token or keyword is optional.
-	 * The presence of the PLACE_HOLDER on the stack means that the keyword
-	 * was parsed, the presence of null means the keyword wasn't parsed.
-	 *
-	 * @see BuildASTParserAction#consumePlaceHolder()
-	 * @see BuildASTParserAction#consumeEmpty()
-	 */
-	protected static final Object PLACE_HOLDER = Boolean.TRUE; // any object will do
-
-	/** Provides an interface to the token stream */
-	protected final ITokenStream stream;
-
-	/** Stack that holds the intermediate nodes as the AST is being built */
-	protected final ScopedStack<Object> astStack;
-
-	/** The completion node, only generated during a completion parse */
-	protected ASTCompletionNode completionNode;
-
-	/** Options that change the behavior of the parser actions */
-	protected Map<String, String> properties = Collections.emptyMap();
-
-	/**
-	 * Completion tokens are represented by different kinds by different parsers.
-	 */
-	protected abstract boolean isCompletionToken(IToken token);
-
-	protected abstract IASTName createName(char[] image);
-
-	/**
-	 * Create a new parser action.
-	 * @param tu Root node of the AST, its list of declarations should be empty.
-	 * @throws NullPointerException if any of the parameters are null
-	 */
-	public AbstractParserAction(ITokenStream parser, ScopedStack<Object> astStack) {
-		if (parser == null)
-			throw new NullPointerException("parser is null"); //$NON-NLS-1$
-		if (astStack == null)
-			throw new NullPointerException("astStack is null"); //$NON-NLS-1$
-
-		this.stream = parser;
-		this.astStack = astStack;
-	}
-
-	protected void setOffsetAndLength(IASTNode node) {
-		int ruleOffset = stream.getLeftIToken().getStartOffset();
-		int ruleLength = stream.getRightIToken().getEndOffset() - ruleOffset;
-		((ASTNode) node).setOffsetAndLength(ruleOffset, ruleLength < 0 ? 0 : ruleLength);
-	}
-
-	/**
-	 * Creates a IASTName node from an identifier token.
-	 * If the token is a completion token then it is added to the completion node.
-	 */
-	protected IASTName createName(IToken token) {
-		IASTName name = createName(token.toString().toCharArray()); // TODO, token.toCharArray();
-		ParserUtil.setOffsetAndLength(name, token);
-
-		if (isCompletionToken(token))
-			addNameToCompletionNode(name, token.toString());
-
-		return name;
-	}
-
-	public void setParserProperties(Map<String, String> properties) {
-		this.properties = properties == null ? Collections.<String, String>emptyMap() : properties;
-	}
-
-	/**
-	 * Creates a completion node if one does not yet exist and adds the
-	 * given name to it.
-	 */
-	protected void addNameToCompletionNode(IASTName name, String prefix) {
-		if (completionNode == null) {
-			completionNode = newCompletionNode(prefix);
-		}
-
-		completionNode.addName(name);
-	}
-
-	public ASTCompletionNode newCompletionNode(String prefix) {
-		return new ASTCompletionNode(prefix);
-	}
-
-	/**
-	 * Returns the completion node if this is a completion parse, null otherwise.
-	 */
-	public IASTCompletionNode getASTCompletionNode() {
-		return completionNode;
-	}
-
-	/**
-	 * Returns the parse result.
-	 * @return
-	 */
-	public IASTNode getParseResult() {
-		return (IASTNode) astStack.peek();
-	}
-
-	/**
-	 * Runs the given parser on the given token list.
-	 *
-	 */
-	protected <N extends IASTNode> N runSecondaryParser(ISecondaryParser<N> secondaryParser) {
-		return runSecondaryParser(secondaryParser, stream.getRuleTokens());
-	}
-
-	/**
-	 * Runs the given parser on the tokens that make up the current rule.
-	 */
-	protected <N extends IASTNode> N runSecondaryParser(ISecondaryParser<N> secondaryParser, List<IToken> tokens) {
-		// the secondary parser will alter the token kinds, which will need to be undone
-		int[] savedKinds = new int[tokens.size()];
-
-		int i = 0;
-		for (IToken token : tokens)
-			savedKinds[i++] = token.getKind();
-
-		secondaryParser.setTokens(tokens);
-		N result = secondaryParser.parse();
-
-		IASTCompletionNode compNode = secondaryParser.getCompletionNode();
-		if (compNode != null) {
-			for (IASTName name : compNode.getNames())
-				addNameToCompletionNode(name, compNode.getPrefix());
-		}
-
-		// restore the token kinds
-		i = 0;
-		for (IToken token : tokens)
-			token.setKind(savedKinds[i++]);
-
-		return result;
-	}
-
-	/*************************************************************************************************************
-	 * Basic Actions
-	 ************************************************************************************************************/
-
-	/**
-	 * Method that is called by the special <openscope> production
-	 * in order to create a new scope in the AST stack.
-	 */
-	public void openASTScope() {
-		astStack.openScope();
-	}
-
-	/**
-	 * Place null on the stack.
-	 * Usually called for optional element to indicate the element
-	 * was not parsed.
-	 */
-	public void consumeEmpty() {
-		astStack.push(null);
-	}
-
-	/**
-	 * Place a marker on the stack.
-	 * Usually used for very simple optional elements to indicate
-	 * the element was parsed. Usually the existence of an AST node
-	 * on the stack is used instead of the marker, but for simple
-	 * cases like an optional keyword this action is useful.
-	 */
-	public void consumePlaceHolder() {
-		astStack.push(PLACE_HOLDER);
-	}
-
-	/**
-	 * Just pops the stack, useful if you have a rule that generates
-	 * a node but you don't need the node.
-	 */
-	public void consumeIgnore() {
-		astStack.pop();
-	}
-
-	/**
-	 * Gets the current token and places it on the stack for later consumption.
-	 */
-	public void consumeToken() {
-		astStack.push(stream.getRightIToken());
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/BuildASTParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/BuildASTParserAction.java
deleted file mode 100644
index 5c5df98..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/BuildASTParserAction.java
+++ /dev/null
@@ -1,1026 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2016 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.lrparser.action;
-
-import static org.eclipse.cdt.core.dom.lrparser.action.ParserUtil.endOffset;
-import static org.eclipse.cdt.core.dom.lrparser.action.ParserUtil.length;
-import static org.eclipse.cdt.core.dom.lrparser.action.ParserUtil.offset;
-
-import java.util.List;
-
-import org.eclipse.cdt.core.dom.ast.IASTASMDeclaration;
-import org.eclipse.cdt.core.dom.ast.IASTArrayDeclarator;
-import org.eclipse.cdt.core.dom.ast.IASTArrayModifier;
-import org.eclipse.cdt.core.dom.ast.IASTArraySubscriptExpression;
-import org.eclipse.cdt.core.dom.ast.IASTBinaryExpression;
-import org.eclipse.cdt.core.dom.ast.IASTBreakStatement;
-import org.eclipse.cdt.core.dom.ast.IASTCaseStatement;
-import org.eclipse.cdt.core.dom.ast.IASTCastExpression;
-import org.eclipse.cdt.core.dom.ast.IASTCompoundStatement;
-import org.eclipse.cdt.core.dom.ast.IASTConditionalExpression;
-import org.eclipse.cdt.core.dom.ast.IASTContinueStatement;
-import org.eclipse.cdt.core.dom.ast.IASTDeclSpecifier;
-import org.eclipse.cdt.core.dom.ast.IASTDeclaration;
-import org.eclipse.cdt.core.dom.ast.IASTDeclarationStatement;
-import org.eclipse.cdt.core.dom.ast.IASTDeclarator;
-import org.eclipse.cdt.core.dom.ast.IASTDefaultStatement;
-import org.eclipse.cdt.core.dom.ast.IASTDoStatement;
-import org.eclipse.cdt.core.dom.ast.IASTEnumerationSpecifier;
-import org.eclipse.cdt.core.dom.ast.IASTEnumerationSpecifier.IASTEnumerator;
-import org.eclipse.cdt.core.dom.ast.IASTEqualsInitializer;
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-import org.eclipse.cdt.core.dom.ast.IASTExpressionList;
-import org.eclipse.cdt.core.dom.ast.IASTExpressionStatement;
-import org.eclipse.cdt.core.dom.ast.IASTFieldDeclarator;
-import org.eclipse.cdt.core.dom.ast.IASTFunctionCallExpression;
-import org.eclipse.cdt.core.dom.ast.IASTFunctionDeclarator;
-import org.eclipse.cdt.core.dom.ast.IASTGotoStatement;
-import org.eclipse.cdt.core.dom.ast.IASTIdExpression;
-import org.eclipse.cdt.core.dom.ast.IASTInitializer;
-import org.eclipse.cdt.core.dom.ast.IASTInitializerClause;
-import org.eclipse.cdt.core.dom.ast.IASTInitializerList;
-import org.eclipse.cdt.core.dom.ast.IASTLabelStatement;
-import org.eclipse.cdt.core.dom.ast.IASTLiteralExpression;
-import org.eclipse.cdt.core.dom.ast.IASTName;
-import org.eclipse.cdt.core.dom.ast.IASTNode;
-import org.eclipse.cdt.core.dom.ast.IASTNullStatement;
-import org.eclipse.cdt.core.dom.ast.IASTParameterDeclaration;
-import org.eclipse.cdt.core.dom.ast.IASTPointerOperator;
-import org.eclipse.cdt.core.dom.ast.IASTProblem;
-import org.eclipse.cdt.core.dom.ast.IASTProblemHolder;
-import org.eclipse.cdt.core.dom.ast.IASTReturnStatement;
-import org.eclipse.cdt.core.dom.ast.IASTSimpleDeclSpecifier;
-import org.eclipse.cdt.core.dom.ast.IASTSimpleDeclaration;
-import org.eclipse.cdt.core.dom.ast.IASTStatement;
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.ast.IASTTypeId;
-import org.eclipse.cdt.core.dom.ast.IASTTypeIdExpression;
-import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression;
-import org.eclipse.cdt.core.dom.ast.IBinding;
-import org.eclipse.cdt.core.dom.ast.INodeFactory;
-import org.eclipse.cdt.core.dom.ast.IScope;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCastExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTLiteralExpression;
-import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
-import org.eclipse.cdt.core.dom.lrparser.LRParserProperties;
-import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
-import org.eclipse.cdt.core.index.IIndex;
-import org.eclipse.cdt.core.parser.IProblem;
-import org.eclipse.cdt.core.parser.IScanner;
-import org.eclipse.cdt.internal.core.dom.parser.ASTInternal;
-import org.eclipse.cdt.internal.core.dom.parser.ASTNode;
-import org.eclipse.cdt.internal.core.dom.parser.ASTQueries;
-import org.eclipse.cdt.internal.core.dom.parser.ASTTranslationUnit;
-import org.eclipse.cdt.internal.core.dom.parser.AbstractGNUSourceCodeParser;
-import org.eclipse.cdt.internal.core.dom.parser.IASTAmbiguousExpression;
-import org.eclipse.cdt.internal.core.dom.parser.IASTAmbiguousStatement;
-
-import lpg.lpgjavaruntime.IToken;
-
-/**
- * Parser semantic actions that are common to both C and C++.
- *
- * @author Mike Kucera
- */
-@SuppressWarnings("restriction")
-public abstract class BuildASTParserAction extends AbstractParserAction {
-
-	/** Abstract factory for creating AST node objects */
-	private final INodeFactory nodeFactory;
-
-	/** Abstract factory for creating secondary parsers */
-	private final ISecondaryParserFactory parserFactory;
-
-	/**
-	 * Returns true if the token is an identifier.
-	 */
-	protected abstract boolean isIdentifierToken(IToken token);
-
-	protected IASTTranslationUnit tu = null;
-
-	/**
-	 * Create a new parser action.
-	 * @param tu Root node of the AST, its list of declarations should be empty.
-	 * @throws NullPointerException if any of the parameters are null
-	 */
-	public BuildASTParserAction(ITokenStream parser, ScopedStack<Object> astStack, INodeFactory nodeFactory,
-			ISecondaryParserFactory parserFactory) {
-		super(parser, astStack);
-
-		if (nodeFactory == null)
-			throw new NullPointerException("nodeFactory is null"); //$NON-NLS-1$
-		if (parserFactory == null)
-			throw new NullPointerException("parserFactory is null"); //$NON-NLS-1$
-
-		this.nodeFactory = nodeFactory;
-		this.parserFactory = parserFactory;
-	}
-
-	public void initializeTranslationUnit(IScanner scanner, IBuiltinBindingsProvider builtinBindingsProvider,
-			IIndex index) {
-		tu = nodeFactory.newTranslationUnit(scanner);
-		tu.setIndex(index);
-
-		// add built-in names to the scope
-		if (builtinBindingsProvider != null) {
-			IScope tuScope = tu.getScope();
-			IBinding[] bindings = builtinBindingsProvider.getBuiltinBindings(tuScope);
-			for (IBinding binding : bindings) {
-				ASTInternal.addBinding(tuScope, binding);
-			}
-		}
-
-		if (tu instanceof ASTTranslationUnit) {
-			((ASTTranslationUnit) tu).setLocationResolver(scanner.getLocationResolver());
-		}
-	}
-
-	public void consumeTranslationUnit() {
-		if (tu == null)
-			tu = nodeFactory.newTranslationUnit(null);
-
-		// can't close the outermost scope
-		for (Object o : astStack.topScope()) {
-			tu.addDeclaration((IASTDeclaration) o);
-		}
-		while (!astStack.isEmpty()) {
-			astStack.pop();
-		}
-
-		// this is the same way that the DOM parser computes the length
-		IASTDeclaration[] declarations = tu.getDeclarations();
-		if (declarations.length != 0) {
-			IASTNode d = declarations[declarations.length - 1];
-			ParserUtil.setOffsetAndLength(tu, 0, offset(d) + length(d));
-		}
-
-		resolveAmbiguityNodes(tu);
-		tu.freeze();
-
-		astStack.push(tu);
-	}
-
-	@Override
-	public ASTCompletionNode newCompletionNode(String prefix) {
-		return new ASTCompletionNode(prefix, tu);
-	}
-
-	/**
-	 * Removes ambiguity nodes from the AST by resolving them.
-	 *
-	 * @see AbstractGNUSourceCodeParser#resolveAmbiguities()
-	 */
-	private static void resolveAmbiguityNodes(IASTTranslationUnit tu) {
-		if (tu instanceof ASTTranslationUnit) {
-			((ASTTranslationUnit) tu).resolveAmbiguities();
-		}
-	}
-
-	/**
-	 * Consumes a single identifier token.
-	 */
-	public void consumeIdentifierName() {
-		astStack.push(createName(stream.getRightIToken()));
-	}
-
-	/**
-	 * block_item ::= declaration | statement
-	 *
-	 * TODO, be careful where exactly in the grammar this is called, it may be called unnecessarily
-	 */
-	public void consumeStatementDeclarationWithDisambiguation() {
-		IASTDeclaration decl = (IASTDeclaration) astStack.pop();
-		IASTDeclarationStatement declarationStatement = nodeFactory.newDeclarationStatement(decl);
-		setOffsetAndLength(declarationStatement);
-
-		// attempt to also parse the tokens as an expression
-		IASTExpressionStatement expressionStatement = null;
-		if (decl instanceof IASTSimpleDeclaration) {
-			List<IToken> expressionTokens = stream.getRuleTokens();
-			expressionTokens = expressionTokens.subList(0, expressionTokens.size() - 1); // remove the semicolon at the end
-
-			ISecondaryParser<IASTExpression> expressionParser = parserFactory.getExpressionParser(stream, properties);
-			IASTExpression expr = runSecondaryParser(expressionParser, expressionTokens);
-
-			if (expr != null) { // the parse may fail
-				expressionStatement = nodeFactory.newExpressionStatement(expr);
-				setOffsetAndLength(expressionStatement);
-			}
-		}
-
-		List<IToken> tokens = stream.getRuleTokens();
-
-		IASTNode result;
-		if (expressionStatement == null)
-			result = declarationStatement;
-		else if (expressionStatement.getExpression() instanceof IASTFunctionCallExpression)
-			result = expressionStatement;
-		else if (tokens.size() == 2 && (isCompletionToken(tokens.get(0)) || isIdentifierToken(tokens.get(0)))) // identifier followed by semicolon
-			result = expressionStatement;
-		else if (isImplicitInt(decl))
-			result = expressionStatement;
-		else {
-			result = createAmbiguousStatement(declarationStatement, expressionStatement);
-			setOffsetAndLength(result);
-		}
-
-		astStack.push(result);
-	}
-
-	protected abstract IASTAmbiguousStatement createAmbiguousStatement(IASTStatement... statements);
-
-	/**
-	 * Wrap a declaration in a DeclarationStatement.
-	 */
-	public void consumeStatementDeclaration() {
-		IASTDeclaration decl = (IASTDeclaration) astStack.pop();
-		IASTDeclarationStatement declarationStatement = nodeFactory.newDeclarationStatement(decl);
-		setOffsetAndLength(declarationStatement);
-		astStack.push(declarationStatement);
-	}
-
-	/**
-	 * Returns true if the given declaration has unspecified type,
-	 * in this case the type defaults to int and is know as "implicit int".
-	 *
-	 * With implicit int a lot of language constructs can be accidentally parsed
-	 * as declarations:
-	 *
-	 * eg) x = 1;
-	 * Should be an assignment statement but can also be parsed as a declaration
-	 * of a variable x, of unspecified type, initialized to 1.
-	 *
-	 * These cases are easy to detect (using this method) and the wrong interpretation
-	 * as a declaration is discarded.
-	 */
-	protected static boolean isImplicitInt(IASTDeclaration declaration) {
-		if (declaration instanceof IASTSimpleDeclaration) {
-			IASTDeclSpecifier declSpec = ((IASTSimpleDeclaration) declaration).getDeclSpecifier();
-			if (declSpec instanceof IASTSimpleDeclSpecifier
-					&& ((IASTSimpleDeclSpecifier) declSpec).getType() == IASTSimpleDeclSpecifier.t_unspecified) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * @param kind One of the kind flags from IASTLiteralExpression or ICPPASTLiteralExpression
-	 * @see IASTLiteralExpression
-	 * @see ICPPASTLiteralExpression
-	 */
-	public void consumeExpressionLiteral(int kind) {
-		IToken token = stream.getRightIToken();
-		String rep = token.toString();
-
-		// Strip the quotes from string literals, this is just to be consistent
-		// with the dom parser (i.e. to make a test pass)
-		//		if(kind == IASTLiteralExpression.lk_string_literal &&
-		//				rep.startsWith("\"") && rep.endsWith("\"")) {
-		//			rep = rep.substring(1, rep.length()-1);
-		//		}
-
-		IASTLiteralExpression expr = nodeFactory.newLiteralExpression(kind, rep);
-		ParserUtil.setOffsetAndLength(expr, token);
-		astStack.push(expr);
-	}
-
-	public void consumeExpressionBracketed() {
-		IASTExpression operand = (IASTExpression) astStack.pop();
-		IASTUnaryExpression expr = nodeFactory.newUnaryExpression(IASTUnaryExpression.op_bracketedPrimary, operand);
-		setOffsetAndLength(expr);
-		astStack.push(expr);
-	}
-
-	public void consumeExpressionID() {
-		IASTName name = createName(stream.getLeftIToken());
-		IASTIdExpression expr = nodeFactory.newIdExpression(name);
-		setOffsetAndLength(expr);
-		astStack.push(expr);
-	}
-
-	public void consumeExpressionName() {
-		IASTName name = (IASTName) astStack.pop();
-		IASTIdExpression expr = nodeFactory.newIdExpression(name);
-		setOffsetAndLength(expr);
-		astStack.push(expr);
-	}
-
-	/**
-	 * expression ::= <openscope-ast> expression_list_actual
-	 */
-	public void consumeExpressionList() {
-		List<Object> expressions = astStack.closeScope();
-		if (expressions.size() == 1) {
-			astStack.push(expressions.get(0));
-		} else {
-			IASTExpressionList exprList = nodeFactory.newExpressionList();
-
-			for (Object o : expressions) {
-				exprList.addExpression((IASTExpression) o);
-			}
-
-			setOffsetAndLength(exprList);
-			astStack.push(exprList);
-		}
-	}
-
-	/**
-	 * postfix_expression ::= postfix_expression '[' expression ']'
-	 */
-	public void consumeExpressionArraySubscript() {
-		IASTExpression subscript = (IASTExpression) astStack.pop();
-		IASTExpression arrayExpr = (IASTExpression) astStack.pop();
-		IASTArraySubscriptExpression expr = nodeFactory.newArraySubscriptExpression(arrayExpr, subscript);
-		setOffsetAndLength(expr);
-		astStack.push(expr);
-	}
-
-	/**
-	 * postfix_expression ::= postfix_expression '(' expression_list_opt ')'
-	 */
-	public void consumeExpressionFunctionCall() {
-		IASTExpression argList = (IASTExpression) astStack.pop(); // may be null
-		IASTExpression idExpr = (IASTExpression) astStack.pop();
-
-		IASTFunctionCallExpression expr = nodeFactory.newFunctionCallExpression(idExpr, argList);
-		setOffsetAndLength(expr);
-		astStack.push(expr);
-	}
-
-	/**
-	 * @param operator constant for {@link ICPPASTCastExpression}
-	 */
-	public void consumeExpressionCast(int operator) {
-		IASTExpression operand = (IASTExpression) astStack.pop();
-		IASTTypeId typeId = (IASTTypeId) astStack.pop();
-		IASTCastExpression expr = nodeFactory.newCastExpression(operator, typeId, operand);
-		setOffsetAndLength(expr);
-
-		IASTExpression alternateExpr = null;
-		if (operator == IASTCastExpression.op_cast) { // don't reparse for dynamic_cast etc as those are not ambiguous
-			// try parsing as non-cast to resolve ambiguities
-			ISecondaryParser<IASTExpression> secondaryParser = parserFactory.getNoCastExpressionParser(stream,
-					properties);
-			alternateExpr = runSecondaryParser(secondaryParser);
-		}
-
-		if (alternateExpr == null)
-			astStack.push(expr);
-		else {
-			IASTNode ambiguityNode = createAmbiguousExpression(expr, alternateExpr);
-			setOffsetAndLength(ambiguityNode);
-			astStack.push(ambiguityNode);
-		}
-	}
-
-	protected abstract IASTAmbiguousExpression createAmbiguousExpression(IASTExpression... expressions);
-
-	/**
-	 * Lots of rules, no need to list them.
-	 * @param operator From IASTUnaryExpression
-	 */
-	public void consumeExpressionUnaryOperator(int operator) {
-		IASTExpression operand = (IASTExpression) astStack.pop();
-		IASTUnaryExpression expr = nodeFactory.newUnaryExpression(operator, operand);
-		setOffsetAndLength(expr);
-		astStack.push(expr);
-	}
-
-	/**
-	 * unary_operation ::= 'sizeof' '(' type_name ')'
-	 * @see consumeExpressionUnaryOperator For the other use of sizeof
-	 */
-	public void consumeExpressionTypeId(int operator) {
-		IASTTypeId typeId = (IASTTypeId) astStack.pop();
-		IASTTypeIdExpression expr = nodeFactory.newTypeIdExpression(operator, typeId);
-		setOffsetAndLength(expr);
-
-		// try parsing as an expression to resolve ambiguities
-		ISecondaryParser<IASTExpression> secondaryParser = parserFactory.getSizeofExpressionParser(stream, properties);
-		IASTExpression alternateExpr = runSecondaryParser(secondaryParser);
-
-		if (alternateExpr == null)
-			astStack.push(expr);
-		else if (isFunctionType(expr)) // bug 252243
-			astStack.push(alternateExpr);
-		else {
-			IASTNode ambiguityNode = createAmbiguousExpression(expr, alternateExpr);
-			setOffsetAndLength(ambiguityNode);
-			astStack.push(ambiguityNode);
-		}
-	}
-
-	private static boolean isFunctionType(IASTExpression expr) {
-		if (expr instanceof IASTTypeIdExpression) {
-			IASTTypeId typeId = ((IASTTypeIdExpression) expr).getTypeId();
-			return typeId.getAbstractDeclarator() instanceof IASTFunctionDeclarator;
-		}
-		return false;
-	}
-
-	/**
-	 * Lots of rules, no need to list them all.
-	 * @param op Field from IASTBinaryExpression
-	 */
-	public void consumeExpressionBinaryOperator(int op) {
-		IASTExpression expr2 = (IASTExpression) astStack.pop();
-		IASTExpression expr1 = (IASTExpression) astStack.pop();
-		IASTBinaryExpression binExpr = nodeFactory.newBinaryExpression(op, expr1, expr2);
-		setOffsetAndLength(binExpr);
-		astStack.push(binExpr);
-	}
-
-	/**
-	 * conditional_expression ::= logical_OR_expression '?' expression ':' conditional_expression
-	 */
-	public void consumeExpressionConditional() {
-		IASTExpression expr3 = (IASTExpression) astStack.pop();
-		IASTExpression expr2 = (IASTExpression) astStack.pop();
-		IASTExpression expr1 = (IASTExpression) astStack.pop();
-		IASTConditionalExpression condExpr = nodeFactory.newConditionalExpession(expr1, expr2, expr3);
-		setOffsetAndLength(condExpr);
-		astStack.push(condExpr);
-	}
-
-	/**
-	 * labeled_statement ::= label_identifier ':' statement
-	 * label_identifier ::= identifier
-	 */
-	public void consumeStatementLabeled() {
-		IASTStatement body = (IASTStatement) astStack.pop();
-		IASTName label = createName(stream.getLeftIToken());
-
-		IASTLabelStatement stat = nodeFactory.newLabelStatement(label, body);
-		setOffsetAndLength(stat);
-		astStack.push(stat);
-	}
-
-	/**
-	 * labeled_statement ::= 'case' constant_expression ':' statement
-	 */
-	public void consumeStatementCase() {
-		IASTStatement body = (IASTStatement) astStack.pop();
-		IASTExpression expr = (IASTExpression) astStack.pop();
-
-		IASTCaseStatement caseStatement = nodeFactory.newCaseStatement(expr);
-		setOffsetAndLength(caseStatement); // TODO this is wrong, need to adjust length to end of colon
-
-		// this is a hackey fix because case statements are not modeled correctly in the AST
-		IASTCompoundStatement compound = nodeFactory.newCompoundStatement();
-		setOffsetAndLength(compound);
-		compound.addStatement(caseStatement);
-		compound.addStatement(body);
-
-		astStack.push(compound);
-	}
-
-	/**
-	 * labeled_statement ::= 'default' ':' <openscope-ast> statement
-	 */
-	public void consumeStatementDefault() {
-		IASTStatement body = (IASTStatement) astStack.pop();
-
-		IASTDefaultStatement stat = nodeFactory.newDefaultStatement();
-		List<IToken> tokens = stream.getRuleTokens();
-		IToken defaultToken = tokens.get(0);
-		IToken colonToken = tokens.get(1);
-		ParserUtil.setOffsetAndLength(stat, offset(defaultToken), offset(colonToken) - offset(defaultToken) + 1);
-
-		IASTCompoundStatement compound = nodeFactory.newCompoundStatement();
-		setOffsetAndLength(compound);
-		compound.addStatement(stat);
-		compound.addStatement(body);
-
-		astStack.push(compound);
-	}
-
-	/**
-	 * expression_statement ::= ';'
-	 */
-	public void consumeStatementNull() {
-		IASTNullStatement stat = nodeFactory.newNullStatement();
-		setOffsetAndLength(stat);
-		astStack.push(stat);
-	}
-
-	/**
-	 * expression_statement ::= expression ';'
-	 */
-	public void consumeStatementExpression() {
-		IASTExpression expr = (IASTExpression) astStack.pop();
-		IASTExpressionStatement stat = nodeFactory.newExpressionStatement(expr);
-		setOffsetAndLength(stat);
-		astStack.push(stat);
-	}
-
-	/**
-	 * compound_statement ::= <openscope> '{' block_item_list '}'
-	 *
-	 * block_item_list ::= block_item | block_item_list block_item
-	 */
-	public void consumeStatementCompoundStatement(boolean hasStatementsInBody) {
-		IASTCompoundStatement block = nodeFactory.newCompoundStatement();
-
-		if (hasStatementsInBody) {
-			for (Object o : astStack.closeScope()) {
-				block.addStatement((IASTStatement) o);
-			}
-		}
-
-		setOffsetAndLength(block);
-		astStack.push(block);
-	}
-
-	/**
-	 * iteration_statement_matched
-	 *     ::= 'do' statement 'while' '(' expression ')' ';'
-	 *        | 'do' statement
-	 */
-	public void consumeStatementDoLoop(boolean hasWhileBlock) {
-		IASTExpression condition = hasWhileBlock ? (IASTExpression) astStack.pop() : null;
-		IASTStatement body = (IASTStatement) astStack.pop();
-		IASTDoStatement stat = nodeFactory.newDoStatement(body, condition);
-		setOffsetAndLength(stat);
-		astStack.push(stat);
-	}
-
-	/**
-	 * jump_statement ::= goto goto_identifier ';'
-	 */
-	public void consumeStatementGoto() {
-		IASTName name = createName(stream.getRuleTokens().get(1));
-		IASTGotoStatement gotoStat = nodeFactory.newGotoStatement(name);
-		setOffsetAndLength(gotoStat);
-		astStack.push(gotoStat);
-	}
-
-	/**
-	 * jump_statement ::= continue ';'
-	 */
-	public void consumeStatementContinue() {
-		IASTContinueStatement stat = nodeFactory.newContinueStatement();
-		setOffsetAndLength(stat);
-		astStack.push(stat);
-	}
-
-	/**
-	 * jump_statement ::= break ';'
-	 */
-	public void consumeStatementBreak() {
-		IASTBreakStatement stat = nodeFactory.newBreakStatement();
-		setOffsetAndLength(stat);
-		astStack.push(stat);
-	}
-
-	/**
-	 * jump_statement ::= return ';'
-	 * jump_statement ::= return expression ';'
-	 */
-	public void consumeStatementReturn(boolean hasExpr) {
-		IASTExpression expr = hasExpr ? (IASTExpression) astStack.pop() : null;
-		IASTReturnStatement returnStat = nodeFactory.newReturnStatement(expr);
-		setOffsetAndLength(returnStat);
-		astStack.push(returnStat);
-	}
-
-	/**
-	 * type_name ::= specifier_qualifier_list
-	 *             | specifier_qualifier_list abstract_declarator
-	 */
-	public void consumeTypeId(boolean hasDeclarator) {
-		IASTDeclarator declarator;
-		if (hasDeclarator)
-			declarator = (IASTDeclarator) astStack.pop();
-		else {
-			declarator = nodeFactory.newDeclarator(nodeFactory.newName());
-			ParserUtil.setOffsetAndLength(declarator, stream.getRightIToken().getEndOffset(), 0);
-		}
-
-		IASTDeclSpecifier declSpecifier = (IASTDeclSpecifier) astStack.pop();
-		IASTTypeId typeId = nodeFactory.newTypeId(declSpecifier, declarator);
-		setOffsetAndLength(typeId);
-		astStack.push(typeId);
-	}
-
-	/**
-	 * declarator
-	 *     ::= <openscope-ast> ptr_operator_seq direct_declarator
-	 *
-	 * abstract_declarator
-	 *     ::= <openscope-ast> ptr_operator_seq
-	 *       | <openscope-ast> ptr_operator_seq direct_declarator
-	 */
-	public void consumeDeclaratorWithPointer(boolean hasDeclarator) {
-		IASTDeclarator decl;
-		if (hasDeclarator)
-			decl = (IASTDeclarator) astStack.pop();
-		else
-			decl = nodeFactory.newDeclarator(nodeFactory.newName());
-
-		for (Object pointer : astStack.closeScope())
-			decl.addPointerOperator((IASTPointerOperator) pointer);
-
-		setOffsetAndLength(decl);
-		astStack.push(decl);
-	}
-
-	/**
-	 * init_declarator
-	 *     ::= declarator initializer
-	 *
-	 * @param hasDeclarator in C++ its possible for a parameter declaration to specifiy
-	 *        a default value without also specifying a named declarator
-	 */
-	public void consumeDeclaratorWithInitializer(boolean hasDeclarator) {
-		IASTInitializer initializer = (IASTInitializer) astStack.pop();
-
-		IASTDeclarator declarator;
-		if (hasDeclarator) {
-			declarator = (IASTDeclarator) astStack.peek();
-		} else {
-			IASTName emptyName = nodeFactory.newName();
-			declarator = nodeFactory.newDeclarator(emptyName);
-			setOffsetAndLength(emptyName);
-			astStack.push(declarator);
-		}
-
-		declarator.setInitializer(initializer);
-		setOffsetAndLength(declarator); // adjust the length to include the initializer
-	}
-
-	/**
-	 * asm_definition
-	 *     ::= 'asm' '(' 'stringlit' ')' ';'
-	 */
-	public void consumeDeclarationASM() {
-		String s = stream.getRuleTokens().get(2).toString();
-		IASTASMDeclaration asm = nodeFactory.newASMDeclaration(s);
-
-		setOffsetAndLength(asm);
-		astStack.push(asm);
-	}
-
-	/**
-	 * parameter_declaration ::= declaration_specifiers declarator
-	 *                         | declaration_specifiers abstract_declarator
-	 */
-	public void consumeParameterDeclaration() {
-		IASTDeclarator declarator = (IASTDeclarator) astStack.pop();
-		IASTDeclSpecifier declSpec = (IASTDeclSpecifier) astStack.pop();
-		IASTParameterDeclaration declaration = nodeFactory.newParameterDeclaration(declSpec, declarator);
-		setOffsetAndLength(declaration);
-		astStack.push(declaration);
-	}
-
-	/**
-	 * parameter_declaration ::= declaration_specifiers
-	 */
-	public void consumeParameterDeclarationWithoutDeclarator() {
-		// offsets need to be calculated differently in this case
-		final int endOffset = stream.getRightIToken().getEndOffset();
-
-		IASTName name = nodeFactory.newName();
-		ParserUtil.setOffsetAndLength(name, endOffset, 0);
-
-		// it appears that a declarator is always required in the AST here
-		IASTDeclarator declarator = nodeFactory.newDeclarator(name);
-		ParserUtil.setOffsetAndLength(declarator, endOffset, 0);
-
-		IASTDeclSpecifier declSpec = (IASTDeclSpecifier) astStack.pop();
-		IASTParameterDeclaration declaration = nodeFactory.newParameterDeclaration(declSpec, declarator);
-
-		setOffsetAndLength(declaration);
-		astStack.push(declaration);
-	}
-
-	/**
-	 * TODO: do I really want to share declaration rules between the two parsers.
-	 * Even if there is potential for reuse it still may be cleaner to leave the
-	 * common stuff to just simple expressions and statements.
-	 *
-	 * For C99:
-	 *
-	 * declaration ::= declaration_specifiers <openscope> init_declarator_list ';'
-	 * declaration ::= declaration_specifiers  ';'
-	 *
-	 *
-	 * For C++:
-	 *
-	 * simple_declaration
-	 *     ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ';'
-	 *
-	 *
-	 * TODO Make both grammars the same here.
-	 */
-	//	public void consumeDeclarationSimple(boolean hasDeclaratorList) {
-	//		if(TRACE_ACTIONS) DebugUtil.printMethodTrace();
-	//
-	//		List<Object> declarators = (hasDeclaratorList) ? astStack.closeScope() : Collections.emptyList();
-	//		IASTDeclSpecifier declSpecifier = (IASTDeclSpecifier) astStack.pop(); // may be null
-	//
-	//		// do not generate nodes for extra EOC tokens
-	//		if(matchTokens(parser.getRuleTokens(), CPPParsersym.TK_EndOfCompletion))
-	//			return;
-	//
-	//		if(declSpecifier == null) { // can happen if implicit int is used
-	//			declSpecifier = nodeFactory.newSimpleDeclSpecifier();
-	//			setOffsetAndLength(declSpecifier, parser.getLeftIToken().getStartOffset(), 0);
-	//		}
-	//
-	//		IASTSimpleDeclaration declaration = nodeFactory.newSimpleDeclaration(declSpecifier);
-	//
-	//		for(Object declarator : declarators)
-	//			declaration.addDeclarator((IASTDeclarator)declarator);
-	//
-	//		setOffsetAndLength(declaration);
-	//		astStack.push(declaration);
-	//
-	//		if(TRACE_AST_STACK) System.out.println(astStack);
-	//	}
-
-	/**
-	 * direct_declarator ::= '(' declarator ')'
-	 */
-	public void consumeDirectDeclaratorBracketed() {
-		IASTDeclarator nested = (IASTDeclarator) astStack.pop();
-		IASTDeclarator declarator = nodeFactory.newDeclarator(nodeFactory.newName());
-		declarator.setNestedDeclarator(nested);
-		setOffsetAndLength(declarator);
-		astStack.push(declarator);
-	}
-
-	/**
-	 * direct_declarator ::= declarator_id_name
-	 */
-	public void consumeDirectDeclaratorIdentifier() {
-		IASTName name = (IASTName) astStack.pop();
-		IASTDeclarator declarator = nodeFactory.newDeclarator(name);
-		setOffsetAndLength(declarator);
-		astStack.push(declarator);
-	}
-
-	/**
-	 *  array_modifier
-	 *      ::= '[' ']'
-	 *        | '[' assignment_expression ']'
-	 */
-	public void consumeDirectDeclaratorArrayModifier(boolean hasAssignmentExpr) {
-		IASTExpression expr = hasAssignmentExpr ? (IASTExpression) astStack.pop() : null;
-		IASTArrayModifier arrayModifier = nodeFactory.newArrayModifier(expr);
-		setOffsetAndLength(arrayModifier);
-		astStack.push(arrayModifier);
-	}
-
-	/**
-	 * When the identifier part of a declarator is parsed it will put a plain IASTDeclarator on the stack.
-	 * When the array modifier part is parsed we will need to throw away the plain
-	 * declarator and replace it with an array declarator. If its a multidimensional array then
-	 * the additional array modifiers will need to be added to the array declarator.
-	 * Special care is taken for nested declarators.
-	 */
-	protected void addArrayModifier(IASTArrayModifier arrayModifier) {
-		IASTDeclarator node = (IASTDeclarator) astStack.pop();
-
-		// Its a nested declarator so create an new ArrayDeclarator
-		if (node.getNestedDeclarator() != null) { //node.getPropertyInParent() == IASTDeclarator.NESTED_DECLARATOR) {
-			IASTArrayDeclarator declarator = nodeFactory.newArrayDeclarator(nodeFactory.newName());
-			IASTDeclarator nested = node;
-			declarator.setNestedDeclarator(nested);
-
-			int offset = offset(nested);
-			int length = endOffset(arrayModifier) - offset;
-			ParserUtil.setOffsetAndLength(declarator, offset, length);
-
-			declarator.addArrayModifier(arrayModifier);
-			astStack.push(declarator);
-		}
-		// There is already an array declarator so just add the modifier to it
-		else if (node instanceof IASTArrayDeclarator) {
-			IASTArrayDeclarator decl = (IASTArrayDeclarator) node;
-			((ASTNode) decl).setLength(endOffset(arrayModifier) - offset(decl));
-
-			decl.addArrayModifier(arrayModifier);
-			astStack.push(decl);
-		}
-		// The declarator is an identifier so create a new array declarator
-		else {
-			IASTName name = node.getName();
-			IASTArrayDeclarator decl = nodeFactory.newArrayDeclarator(name);
-
-			int offset = offset(name);
-			int length = endOffset(arrayModifier) - offset;
-			ParserUtil.setOffsetAndLength(decl, offset, length);
-
-			decl.addArrayModifier(arrayModifier);
-			astStack.push(decl);
-		}
-	}
-
-	/**
-	 * Pops a simple declarator from the stack, converts it into
-	 * a FunctionDeclator, then pushes it.
-	 * TODO: is this the best way of doing this?
-	 * TODO, rename this method, its an accidental overload
-	 */
-	protected void addFunctionModifier(IASTFunctionDeclarator declarator, int endOffset) {
-		IASTDeclarator decl = (IASTDeclarator) astStack.pop();
-
-		if (decl.getNestedDeclarator() != null) {
-			decl = decl.getNestedDeclarator(); // need to remove one level of nesting for function pointers
-			declarator.setNestedDeclarator(decl);
-			declarator.setName(nodeFactory.newName());
-			int offset = offset(decl);
-			ParserUtil.setOffsetAndLength(declarator, offset, endOffset - offset);
-			astStack.push(declarator);
-		} else {
-			IASTName name = decl.getName();
-			if (name == null) {
-				name = nodeFactory.newName();
-			}
-			declarator.setName(name);
-
-			IASTPointerOperator[] pointers = decl.getPointerOperators();
-			for (IASTPointerOperator pointer : pointers) {
-				declarator.addPointerOperator(pointer);
-			}
-
-			int offset = offset(name); // TODO
-			ParserUtil.setOffsetAndLength(declarator, offset, endOffset - offset);
-			astStack.push(declarator);
-		}
-	}
-
-	// TODO why is this here
-	//	/**
-	//	 * direct_declarator ::= direct_declarator array_modifier
-	//	 * consume the direct_declarator part and add the array modifier
-	//	 */
-	//	public void consumeDirectDeclaratorArrayDeclarator() {
-	//		if(TRACE_ACTIONS) DebugUtil.printMethodTrace();
-	//
-	//		IASTArrayModifier arrayModifier = (IASTArrayModifier) astStack.pop();
-	//		addArrayModifier(arrayModifier);
-	//	}
-
-	/**
-	 * direct_abstract_declarator
-	 *     ::= array_modifier
-	 *       | direct_abstract_declarator array_modifier
-	 */
-	public void consumeDirectDeclaratorArrayDeclarator(boolean hasDeclarator) {
-		IASTArrayModifier arrayModifier = (IASTArrayModifier) astStack.pop();
-
-		if (hasDeclarator) {
-			addArrayModifier(arrayModifier);
-		} else {
-			IASTArrayDeclarator decl = nodeFactory.newArrayDeclarator(nodeFactory.newName());
-			decl.addArrayModifier(arrayModifier);
-			setOffsetAndLength(decl);
-			astStack.push(decl);
-		}
-	}
-
-	/**
-	 * enum_specifier ::= 'enum' '{' <openscope> enumerator_list_opt '}'
-	 *                  | 'enum' enum_identifier '{' <openscope> enumerator_list_opt '}'
-	 */
-	public void consumeTypeSpecifierEnumeration(boolean hasIdent) {
-		IASTName name = (hasIdent) ? createName(stream.getRuleTokens().get(1)) : nodeFactory.newName();
-
-		IASTEnumerationSpecifier enumSpec = nodeFactory.newEnumerationSpecifier(name);
-
-		for (Object o : astStack.closeScope())
-			enumSpec.addEnumerator((IASTEnumerator) o);
-
-		setOffsetAndLength(enumSpec);
-		astStack.push(enumSpec);
-	}
-
-	/**
-	 * enumerator ::= enum_identifier
-	 *              | enum_identifier '=' constant_expression
-	 */
-	public void consumeEnumerator(boolean hasInitializer) {
-		IASTName name = createName(stream.getLeftIToken());
-
-		IASTExpression value = null;
-		if (hasInitializer)
-			value = (IASTExpression) astStack.pop();
-
-		IASTEnumerator enumerator = nodeFactory.newEnumerator(name, value);
-		setOffsetAndLength(enumerator);
-		astStack.push(enumerator);
-	}
-
-	private int initializerListNestingLevel = 0;
-
-	public void initializerListStart() {
-		initializerListNestingLevel++;
-	}
-
-	public void initializerListEnd() {
-		initializerListNestingLevel--;
-	}
-
-	/**
-	 * initializer ::= assignment_expression
-	 */
-	public void consumeInitializer() {
-		//CDT_70_FIX_FROM_50-#4
-		IASTInitializerClause initClause = (IASTInitializerClause) astStack.pop();
-		if (initClause instanceof IASTExpression) {
-			if (discardInitializer((IASTExpression) initClause)) {
-				astStack.push(null);
-				return;
-			}
-		}
-		//CDT_70_FIX_FROM_50-#2
-		//IASTInitializerExpression initializer = nodeFactory.newInitializerExpression(expr);
-		IASTEqualsInitializer initializer = nodeFactory.newEqualsInitializer(initClause);
-		setOffsetAndLength(initializer);
-		astStack.push(initializer);
-	}
-
-	private boolean discardInitializer(IASTExpression expression) {
-		return initializerListNestingLevel > 0
-				&& Boolean.parseBoolean(
-						properties.get(LRParserProperties.SKIP_TRIVIAL_EXPRESSIONS_IN_AGGREGATE_INITIALIZERS))
-				&& !ASTQueries.canContainName(expression);
-	}
-
-	/**
-	 * initializer ::= '{' <openscope> initializer_list '}'
-	 *               | '{' <openscope> initializer_list ',' '}'
-	 */
-	public void consumeInitializerList() {
-		IASTInitializerList list = nodeFactory.newInitializerList();
-
-		for (Object o : astStack.closeScope())
-			list.addInitializer((IASTInitializer) o);
-
-		setOffsetAndLength(list);
-		astStack.push(list);
-	}
-
-	/**
-	 * struct_declarator
-	 *     ::= ':' constant_expression
-	 *       | declarator ':' constant_expression
-	 */
-	public void consumeBitField(boolean hasDeclarator) {
-		IASTExpression expr = (IASTExpression) astStack.pop();
-
-		IASTName name;
-		if (hasDeclarator) // it should have been parsed into a regular declarator
-			name = ((IASTDeclarator) astStack.pop()).getName();
-		else
-			name = nodeFactory.newName();
-
-		IASTFieldDeclarator fieldDecl = nodeFactory.newFieldDeclarator(name, expr);
-		setOffsetAndLength(fieldDecl);
-		astStack.push(fieldDecl);
-	}
-
-	/**
-	 * statement ::= ERROR_TOKEN
-	 */
-	public void consumeStatementProblem() {
-		consumeProblem(nodeFactory.newProblemStatement(null));
-	}
-
-	/**
-	 * assignment_expression ::= ERROR_TOKEN
-	 * constant_expression ::= ERROR_TOKEN
-	 */
-	public void consumeExpressionProblem() {
-		consumeProblem(nodeFactory.newProblemExpression(null));
-	}
-
-	/**
-	 * external_declaration ::= ERROR_TOKEN
-	 */
-	public void consumeDeclarationProblem() {
-		consumeProblem(nodeFactory.newProblemDeclaration(null));
-	}
-
-	private void consumeProblem(IASTProblemHolder problemHolder) {
-		IASTProblem problem = nodeFactory.newProblem(IProblem.SYNTAX_ERROR, new char[0], true);
-		problemHolder.setProblem(problem);
-		setOffsetAndLength(problem);
-		setOffsetAndLength((ASTNode) problemHolder);
-		astStack.push(problemHolder);
-	}
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ISecondaryParserFactory.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ISecondaryParserFactory.java
deleted file mode 100644
index 1a4b03f..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ISecondaryParserFactory.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.lrparser.action;
-
-import java.util.Map;
-
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
-
-/**
- * Some ambiguities are resolved by spawning a secondary parser
- * to re-parse a sequence of tokens using a modified grammar.
- * This factory is used to create these secondary parsers.
- *
- * @author Mike Kucera
- */
-public interface ISecondaryParserFactory {
-
-	/**
-	 * Get the parser that will recognize expressions.
-	 */
-	ISecondaryParser<IASTExpression> getExpressionParser(ITokenStream stream, Map<String, String> properties);
-
-	/**
-	 * Expression parser that does not recognize cast expressions,
-	 * used to disambiguate casts.
-	 */
-	ISecondaryParser<IASTExpression> getNoCastExpressionParser(ITokenStream stream, Map<String, String> properties);
-
-	/**
-	 * Expression parser that treats all sizeof and typeid expressions
-	 * as unary expressions.
-	 */
-	ISecondaryParser<IASTExpression> getSizeofExpressionParser(ITokenStream stream, Map<String, String> properties);
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ITokenMap.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ITokenMap.java
deleted file mode 100644
index 400dbf2..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ITokenMap.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2008 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-package org.eclipse.cdt.core.dom.lrparser.action;
-
-/**
- * Maps tokens defined in parser extensions back to the token kinds
- * defined in the lr parsers.
- *
- *
- * @author Mike Kucera
- */
-public interface ITokenMap {
-
-	/**
-	 * Maps the given token kind back to the same token kind defined in C99Parsersym.
-	 */
-	int mapKind(int kind);
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ITokenStream.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ITokenStream.java
deleted file mode 100644
index a1f6933..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ITokenStream.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.lrparser.action;
-
-import java.util.List;
-
-import lpg.lpgjavaruntime.IToken;
-
-/**
- * Provides an interface to the token stream that
- * can be used by the parser semantic actions.
- *
- * Allows the semantic actions to directly inspect the token
- * stream. Used to calculate AST node offsets and for
- * other purposes.
- *
- * TODO There are still issues with getLeftIToken() and
- * getRightIToken(), they should return null when used with
- * an empty rule but currently they don't.
- *
- * @author Mike Kucera
- */
-public interface ITokenStream {
-
-	/**
-	 * Returns the tokens that were parsed to recognized
-	 * the currently executing rule.
-	 *
-	 * @returns a read-only list of tokens, will not be null but may be empty
-	 */
-	public List<IToken> getRuleTokens();
-
-	/**
-	 * Usually equivalent to getRuleTokens().get(0); but more efficient.
-	 *
-	 * However, when called during an empty rule it will return the token to the
-	 * left of the location of the empty rule.
-	 */
-	public IToken getLeftIToken();
-
-	/**
-	 * Usually equivalent to getRuleTokens().get(getRuleTokens().size()-1); but more efficient.
-	 *
-	 * However, when called during an empty rule it will return the token to the
-	 * right of the location of the empty rule.
-	 */
-	public IToken getRightIToken();
-
-	/**
-	 * Returns the orderedTerminalSymbol field of the corresponding sym class
-	 * generated by LPG.
-	 */
-	public String[] getOrderedTerminalSymbols();
-
-	/**
-	 * Returns the parser's name, useful for debugging.
-	 */
-	public String getName();
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ParserUtil.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ParserUtil.java
deleted file mode 100644
index 8c347d4..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ParserUtil.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *      IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.lrparser.action;
-
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.cdt.core.dom.ast.IASTName;
-import org.eclipse.cdt.core.dom.ast.IASTNode;
-import org.eclipse.cdt.internal.core.dom.parser.ASTNode;
-
-import lpg.lpgjavaruntime.IToken;
-
-@SuppressWarnings("restriction")
-public final class ParserUtil {
-
-	private ParserUtil() {
-	}
-
-	public static int offset(IToken token) {
-		return token.getStartOffset();
-	}
-
-	public static int offset(IASTNode node) {
-		return ((ASTNode) node).getOffset();
-	}
-
-	public static int length(IToken token) {
-		return endOffset(token) - offset(token);
-	}
-
-	public static int length(IASTNode node) {
-		return ((ASTNode) node).getLength();
-	}
-
-	public static int endOffset(IASTNode node) {
-		return offset(node) + length(node);
-	}
-
-	public static int endOffset(IToken token) {
-		return token.getEndOffset();
-	}
-
-	public static void setOffsetAndLength(IASTNode node, IToken token) {
-		((ASTNode) node).setOffsetAndLength(offset(token), length(token));
-	}
-
-	public static void setOffsetAndLength(IASTNode node, int offset, int length) {
-		((ASTNode) node).setOffsetAndLength(offset, length);
-	}
-
-	public static void setOffsetAndLength(IASTNode node, IASTNode from) {
-		setOffsetAndLength(node, offset(from), length(from));
-	}
-
-	public static boolean isSameName(IASTName name1, IASTName name2) {
-		return Arrays.equals(name1.getLookupKey(), name2.getLookupKey());
-	}
-
-	/**
-	 * Allows simple pattern match testing of lists of tokens.
-	 *
-	 * @throws NullPointerException if source or pattern is null
-	 */
-	public static boolean matchTokens(List<IToken> source, ITokenMap tokenMap, Integer... pattern) {
-		if (source.size() != pattern.length) // throws NPE if either parameter is null
-			return false;
-
-		for (int i = 0, n = pattern.length; i < n; i++) {
-			if (tokenMap.mapKind(source.get(i).getKind()) != pattern[i].intValue())
-				return false;
-		}
-		return true;
-	}
-
-	/**
-	 * Finds the tokens in the given list that are between startOffset and endOffset.
-	 * Note, the offsets have to be exact.
-	 */
-	public static List<IToken> tokenOffsetSubList(List<IToken> tokens, int startOffset, int endOffset) {
-		int first = 0, last = 0;
-		int i = 0;
-		for (IToken t : tokens) {
-			if (offset(t) == startOffset) {
-				first = i;
-			}
-			if (endOffset(t) == endOffset) {
-				last = i;
-				break;
-			}
-			i++;
-		}
-		return tokens.subList(first, last + 1);
-	}
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ScopedStack.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ScopedStack.java
deleted file mode 100644
index 77078b6..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ScopedStack.java
+++ /dev/null
@@ -1,206 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.cdt.core.dom.lrparser.action;
-
-import static org.eclipse.cdt.core.parser.util.CollectionUtils.reverseIterable;
-
-import java.util.Collection;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.NoSuchElementException;
-
-/**
- * A stack that can be "marked", that is the stack can be divided
- * into chunks that can be conveniently processed. There is always at
- * least one open scope.
- *
- *
- * This stack was designed to be used to store AST nodes while
- * the AST is built during the parse, however it is useful for other
- * purposes as well.
- *
- * Some grammar rules have arbitrary length lists on the right side.
- * For example the rule for compound statements (where block_item_list is any
- * number of statements or declarations):
- *
- * compound-statement ::= '{' <openscope-ast> block_item_list '}'
- *
- * There is a problem when trying to build the AST node for the compound statement...
- * you don't know how many block_items are contained in the compound statement, so
- * you don't know how many times to pop the AST stack.
- *
- * One inelegant solution is to count the block-items as they are parsed. This
- * is inelegant because nested compound-statements are allowed so you would
- * have to maintain several counts at the same time.
- *
- * Another solution would be to build the list of block-items as part of the
- * block_item_list rule, but just using this stack is simpler.
- *
- * This class can be used as an AST stack that is implemented as a stack of "AST Scopes".
- * There is a special grammar rule <openscope-ast> that creates a new AST Scope.
- * So, in order to consume all the block_items, all that has to be done is
- * iterate over the topmost scope and then close it when done.
- *
- *
- * @author Mike Kucera
- */
-public class ScopedStack<T> {
-
-	private LinkedList<T> topScope;
-
-	// A stack of stacks, used to implement scoping
-	private final LinkedList<LinkedList<T>> scopeStack;
-
-	/**
-	 * Creates a new ScopedStack with the first scope already open.
-	 */
-	public ScopedStack() {
-		topScope = new LinkedList<>();
-		scopeStack = new LinkedList<>();
-	}
-
-	/**
-	 * Opens a new scope.
-	 */
-	public void openScope() {
-		scopeStack.add(topScope);
-		topScope = new LinkedList<>();
-	}
-
-	/**
-	 * Opens a scope then pushes all the items in the given list.
-	 *
-	 * @throws NullPointerException if items is null
-	 */
-	public void openScope(Collection<T> items) {
-		openScope();
-		for (T item : items)
-			push(item);
-	}
-
-	/**
-	 * Marks the stack then pushes all the items in the given array.
-	 *
-	 * @throws NullPointerException if items is null
-	 */
-	public void openScope(T[] items) {
-		// looks the same as above but compiles into different bytecode
-		openScope();
-		for (T item : items)
-			push(item);
-	}
-
-	/**
-	 * Pops all the items in the topmost scope.
-	 * The outermost scope cannot be closed.
-	 *
-	 * @throws NoSuchElementException If the outermost scope is closed.
-	 */
-	public List<T> closeScope() {
-		if (scopeStack.isEmpty())
-			throw new NoSuchElementException("cannot close outermost scope"); //$NON-NLS-1$
-
-		List<T> top = topScope;
-		topScope = scopeStack.removeLast();
-		return top;
-	}
-
-	/**
-	 * Pushes an item onto the topmost scope.
-	 */
-	public void push(T o) {
-		topScope.add(o);
-	}
-
-	/**
-	 * @throws NoSuchElementException if the topmost scope is empty
-	 */
-	public T pop() {
-		return topScope.removeLast();
-	}
-
-	/**
-	 * @throws NoSuchElementException if the topmost scope is empty
-	 */
-	public T peek() {
-		return topScope.getLast();
-	}
-
-	/**
-	 * Returns the entire top scope as a List.
-	 */
-	public List<T> topScope() {
-		return topScope;
-	}
-
-	/**
-	 * Returns the next outermost scope.
-	 * @throws NoSuchElementException if size() < 2
-	 */
-	public List<T> outerScope() {
-		return scopeStack.getLast();
-	}
-
-	public boolean isEmpty() {
-		return topScope.isEmpty() && scopeStack.isEmpty();
-	}
-
-	/**
-	 * Why oh why does java not have reverse iterators?????
-	 */
-	public void print() {
-		final String separator = "----------"; //$NON-NLS-1$
-		System.out.println();
-		System.out.println('-');
-
-		printScope(topScope);
-		System.out.println(separator);
-
-		for (List<T> list : reverseIterable(scopeStack)) {
-			printScope(list);
-		}
-
-		System.out.println();
-	}
-
-	private void printScope(List<T> scope) {
-		for (T t : reverseIterable(scope)) {
-			System.out.println(t);
-		}
-	}
-
-	@Override
-	public String toString() {
-		StringBuilder sb = new StringBuilder();
-		for (List<T> scope : scopeStack)
-			appendScopeContents(sb, scope);
-		appendScopeContents(sb, topScope);
-		return sb.toString();
-	}
-
-	private void appendScopeContents(StringBuilder sb, List<T> scope) {
-		sb.append('[');
-		boolean first = true;
-		for (T t : scope) {
-			if (first)
-				first = false;
-			else
-				sb.append(',');
-			sb.append(t);
-		}
-		sb.append(']');
-	}
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/TokenMap.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/TokenMap.java
deleted file mode 100644
index a633880..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/TokenMap.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2015 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-package org.eclipse.cdt.core.dom.lrparser.action;
-
-import java.util.HashMap;
-
-/**
- * Maps token kinds from a sub-parser back to the corresponding
- * token kinds in a base parser.
- *
- * @author Mike Kucera
- */
-public class TokenMap implements ITokenMap {
-
-	// LPG token kinds start at 0
-	// the kind is not part of the base language parser
-	public static final int INVALID_KIND = -1;
-
-	private final int[] kindMap;
-
-	/**
-	 * @param toSymbols An array of symbols where the index is the token kind and the
-	 * element data is a string representing the token kind. It is expected
-	 * to pass the orderedTerminalSymbols field from an LPG generated symbol
-	 * file, for example C99Parsersym.orderedTerminalSymbols.
-	 */
-	public TokenMap(String[] toSymbols, String[] fromSymbols) {
-		// If this map is not being used with an extension then it becomes an "identity map".
-		if (toSymbols == fromSymbols) {
-			kindMap = null;
-			return;
-		}
-
-		kindMap = new int[fromSymbols.length];
-
-		HashMap<String, Integer> toMap = new HashMap<>();
-		for (int i = 0, n = toSymbols.length; i < n; i++) {
-			toMap.put(toSymbols[i], i);
-		}
-
-		for (int i = 0, n = fromSymbols.length; i < n; i++) {
-			Integer kind = toMap.get(fromSymbols[i]);
-			kindMap[i] = kind == null ? INVALID_KIND : kind;
-		}
-	}
-
-	/**
-	 * Maps a token kind back to the corresponding kind define in the base C99 parser.
-	 */
-	@Override
-	public int mapKind(int kind) {
-		if (kindMap == null)
-			return kind;
-		if (kind < 0 || kind >= kindMap.length)
-			return INVALID_KIND;
-
-		return kindMap[kind];
-	}
-
-	@Override
-	public String toString() {
-		StringBuilder sb = new StringBuilder('(');
-		boolean first = true;
-		for (int i = 0, n = kindMap.length; i < n; i++) {
-			if (!first)
-				sb.append(", "); //$NON-NLS-1$
-			sb.append(i).append('=').append(kindMap[i]);
-			first = false;
-		}
-		return sb.append(')').toString();
-	}
-}
\ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99BuildASTParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99BuildASTParserAction.java
deleted file mode 100644
index d4862fa..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99BuildASTParserAction.java
+++ /dev/null
@@ -1,768 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2012 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.cdt.core.dom.lrparser.action.c99;
-
-import static org.eclipse.cdt.core.dom.lrparser.action.ParserUtil.endOffset;
-import static org.eclipse.cdt.core.dom.lrparser.action.ParserUtil.length;
-import static org.eclipse.cdt.core.dom.lrparser.action.ParserUtil.matchTokens;
-import static org.eclipse.cdt.core.dom.lrparser.action.ParserUtil.offset;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_Completion;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_EndOfCompletion;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_LeftParen;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_SemiColon;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK__Bool;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK__Complex;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_auto;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_char;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_const;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_double;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_extern;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_float;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_for;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_identifier;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_inline;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_int;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_long;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_register;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_restrict;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_short;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_signed;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_static;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_struct;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_typedef;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_union;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_unsigned;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_void;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_volatile;
-
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.cdt.core.dom.ast.IASTCompositeTypeSpecifier;
-import org.eclipse.cdt.core.dom.ast.IASTCompoundStatement;
-import org.eclipse.cdt.core.dom.ast.IASTDeclSpecifier;
-import org.eclipse.cdt.core.dom.ast.IASTDeclaration;
-import org.eclipse.cdt.core.dom.ast.IASTDeclarationStatement;
-import org.eclipse.cdt.core.dom.ast.IASTDeclarator;
-import org.eclipse.cdt.core.dom.ast.IASTElaboratedTypeSpecifier;
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-import org.eclipse.cdt.core.dom.ast.IASTExpressionStatement;
-import org.eclipse.cdt.core.dom.ast.IASTFieldReference;
-import org.eclipse.cdt.core.dom.ast.IASTForStatement;
-import org.eclipse.cdt.core.dom.ast.IASTFunctionDeclarator;
-import org.eclipse.cdt.core.dom.ast.IASTFunctionDefinition;
-import org.eclipse.cdt.core.dom.ast.IASTIdExpression;
-import org.eclipse.cdt.core.dom.ast.IASTIfStatement;
-import org.eclipse.cdt.core.dom.ast.IASTInitializer;
-import org.eclipse.cdt.core.dom.ast.IASTInitializerList;
-import org.eclipse.cdt.core.dom.ast.IASTName;
-import org.eclipse.cdt.core.dom.ast.IASTNode;
-import org.eclipse.cdt.core.dom.ast.IASTParameterDeclaration;
-import org.eclipse.cdt.core.dom.ast.IASTPointer;
-import org.eclipse.cdt.core.dom.ast.IASTSimpleDeclSpecifier;
-import org.eclipse.cdt.core.dom.ast.IASTSimpleDeclaration;
-import org.eclipse.cdt.core.dom.ast.IASTStandardFunctionDeclarator;
-import org.eclipse.cdt.core.dom.ast.IASTStatement;
-import org.eclipse.cdt.core.dom.ast.IASTSwitchStatement;
-import org.eclipse.cdt.core.dom.ast.IASTTypeId;
-import org.eclipse.cdt.core.dom.ast.IASTWhileStatement;
-import org.eclipse.cdt.core.dom.ast.c.ICASTArrayDesignator;
-import org.eclipse.cdt.core.dom.ast.c.ICASTArrayModifier;
-import org.eclipse.cdt.core.dom.ast.c.ICASTCompositeTypeSpecifier;
-import org.eclipse.cdt.core.dom.ast.c.ICASTDeclSpecifier;
-import org.eclipse.cdt.core.dom.ast.c.ICASTDesignatedInitializer;
-import org.eclipse.cdt.core.dom.ast.c.ICASTDesignator;
-import org.eclipse.cdt.core.dom.ast.c.ICASTFieldDesignator;
-import org.eclipse.cdt.core.dom.ast.c.ICASTPointer;
-import org.eclipse.cdt.core.dom.ast.c.ICASTSimpleDeclSpecifier;
-import org.eclipse.cdt.core.dom.ast.c.ICASTTypeIdInitializerExpression;
-import org.eclipse.cdt.core.dom.ast.c.ICASTTypedefNameSpecifier;
-import org.eclipse.cdt.core.dom.ast.c.ICNodeFactory;
-import org.eclipse.cdt.core.dom.ast.gnu.c.ICASTKnRFunctionDeclarator;
-import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
-import org.eclipse.cdt.core.dom.lrparser.action.BuildASTParserAction;
-import org.eclipse.cdt.core.dom.lrparser.action.ISecondaryParserFactory;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
-import org.eclipse.cdt.core.dom.lrparser.action.ParserUtil;
-import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
-import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
-import org.eclipse.cdt.core.parser.util.CollectionUtils;
-import org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym;
-import org.eclipse.cdt.internal.core.dom.parser.ASTNode;
-import org.eclipse.cdt.internal.core.dom.parser.IASTAmbiguousExpression;
-import org.eclipse.cdt.internal.core.dom.parser.IASTAmbiguousStatement;
-import org.eclipse.cdt.internal.core.dom.parser.c.CASTAmbiguousExpression;
-import org.eclipse.cdt.internal.core.dom.parser.c.CASTAmbiguousStatement;
-
-import lpg.lpgjavaruntime.IToken;
-
-/**
- * Semantic actions called by the C99 parser to build an AST.
- *
- * @author Mike Kucera
- */
-@SuppressWarnings("restriction")
-public class C99BuildASTParserAction extends BuildASTParserAction {
-
-	private final ITokenMap tokenMap;
-
-	/** Used to create the AST node objects */
-	protected final ICNodeFactory nodeFactory;
-
-	private final ISecondaryParserFactory parserFactory;
-
-	/**
-	 * @param parser
-	 * @param orderedTerminalSymbols When an instance of this class is created for a parser
-	 * that parsers token kinds will be mapped back to the base C99 parser's token kinds.
-	 */
-	public C99BuildASTParserAction(ITokenStream parser, ScopedStack<Object> astStack, ICNodeFactory nodeFactory,
-			ISecondaryParserFactory parserFactory) {
-		super(parser, astStack, nodeFactory, parserFactory);
-
-		this.nodeFactory = nodeFactory;
-		this.parserFactory = parserFactory;
-		this.tokenMap = new TokenMap(C99Parsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols());
-	}
-
-	private int baseKind(IToken token) {
-		return tokenMap.mapKind(token.getKind());
-	}
-
-	@Override
-	protected boolean isCompletionToken(IToken token) {
-		return baseKind(token) == TK_Completion;
-	}
-
-	@Override
-	protected boolean isIdentifierToken(IToken token) {
-		return baseKind(token) == TK_identifier;
-	}
-
-	@Override
-	protected IASTName createName(char[] image) {
-		return nodeFactory.newName(image);
-	}
-
-	/********************************************************************
-	 * Start of semantic actions.
-	 ********************************************************************/
-
-	/**
-	 * postfix_expression ::= postfix_expression '.' ident
-	 * postfix_expression ::= postfix_expression '->' ident
-	 */
-	public void consumeExpressionFieldReference(boolean isPointerDereference) {
-		IASTName name = createName(stream.getRightIToken());
-		IASTExpression owner = (IASTExpression) astStack.pop();
-		IASTFieldReference expr = nodeFactory.newFieldReference(name, owner);
-		expr.setIsPointerDereference(isPointerDereference);
-		setOffsetAndLength(expr);
-		astStack.push(expr);
-	}
-
-	/**
-	 * postfix_expression ::= '(' type_id ')' initializer_list
-	 */
-	public void consumeExpressionTypeIdInitializer() {
-		IASTInitializerList list = (IASTInitializerList) astStack.pop();
-		IASTTypeId typeId = (IASTTypeId) astStack.pop();
-		ICASTTypeIdInitializerExpression expr = nodeFactory.newTypeIdInitializerExpression(typeId, list);
-		setOffsetAndLength(expr);
-		astStack.push(expr);
-	}
-
-	/**
-	 * Applies a specifier to a decl spec node.
-	 *
-	 * In plain C99 specifiers are always just single tokens, but in language
-	 * extensions specifiers may be more complex. Thats why this method takes
-	 * Object as the type of the specifier, so that it may be overridden in subclasses
-	 * and used with arbitrary objects as the specifier.
-	 */
-	public void setSpecifier(ICASTDeclSpecifier node, Object specifier) {
-		if (!(specifier instanceof IToken))
-			return;
-		IToken token = (IToken) specifier;
-
-		int kind = baseKind(token);
-		switch (kind) {
-		case TK_typedef:
-			node.setStorageClass(IASTDeclSpecifier.sc_typedef);
-			return;
-		case TK_extern:
-			node.setStorageClass(IASTDeclSpecifier.sc_extern);
-			return;
-		case TK_static:
-			node.setStorageClass(IASTDeclSpecifier.sc_static);
-			return;
-		case TK_auto:
-			node.setStorageClass(IASTDeclSpecifier.sc_auto);
-			return;
-		case TK_register:
-			node.setStorageClass(IASTDeclSpecifier.sc_register);
-			return;
-		case TK_inline:
-			node.setInline(true);
-			return;
-		case TK_const:
-			node.setConst(true);
-			return;
-		case TK_restrict:
-			node.setRestrict(true);
-			return;
-		case TK_volatile:
-			node.setVolatile(true);
-			return;
-		}
-
-		if (node instanceof ICASTSimpleDeclSpecifier) {
-			ICASTSimpleDeclSpecifier n = (ICASTSimpleDeclSpecifier) node;
-			switch (kind) {
-			case TK_void:
-				n.setType(IASTSimpleDeclSpecifier.t_void);
-				break;
-			case TK_char:
-				n.setType(IASTSimpleDeclSpecifier.t_char);
-				break;
-			case TK__Bool:
-				n.setType(ICASTSimpleDeclSpecifier.t_Bool);
-				break;
-			case TK_int:
-				n.setType(IASTSimpleDeclSpecifier.t_int);
-				break;
-			case TK_float:
-				n.setType(IASTSimpleDeclSpecifier.t_float);
-				break;
-			case TK_double:
-				n.setType(IASTSimpleDeclSpecifier.t_double);
-				break;
-			case TK_signed:
-				n.setSigned(true);
-				break;
-			case TK_unsigned:
-				n.setUnsigned(true);
-				break;
-			case TK_short:
-				n.setShort(true);
-				break;
-			case TK__Complex:
-				n.setComplex(true);
-				break;
-			case TK_long:
-				boolean isLong = n.isLong();
-				n.setLongLong(isLong);
-				n.setLong(!isLong);
-				break;
-			}
-		}
-	}
-
-	/**
-	 * type_qualifier ::= const | restrict | volatile
-	 */
-	private void collectArrayModifierTypeQualifiers(ICASTArrayModifier arrayModifier) {
-		for (Object o : astStack.closeScope()) {
-			switch (baseKind((IToken) o)) {
-			case TK_const:
-				arrayModifier.setConst(true);
-				break;
-			case TK_restrict:
-				arrayModifier.setRestrict(true);
-				break;
-			case TK_volatile:
-				arrayModifier.setVolatile(true);
-				break;
-			}
-		}
-	}
-
-	/**
-	 *  array_modifier
-	 *      ::= '[' <openscope> type_qualifier_list ']'
-	 *        | '[' <openscope> type_qualifier_list assignment_expression ']'
-	 *        | '[' 'static' assignment_expression ']'
-	 *        | '[' 'static' <openscope> type_qualifier_list assignment_expression ']'
-	 *        | '[' <openscope> type_qualifier_list 'static' assignment_expression ']'
-	 *        | '[' '*' ']'
-	 *        | '[' <openscope> type_qualifier_list '*' ']'
-	 *
-	 * The main reason to separate array_modifier into its own rule is to
-	 * make calculating the offset and length much easier.
-	 */
-	public void consumeDirectDeclaratorModifiedArrayModifier(boolean isStatic, boolean isVarSized,
-			boolean hasTypeQualifierList, boolean hasAssignmentExpr) {
-		assert isStatic || isVarSized || hasTypeQualifierList;
-
-		ICASTArrayModifier arrayModifier = nodeFactory.newArrayModifier(null);
-
-		// consume all the stuff between the square brackets into an array modifier
-		arrayModifier.setStatic(isStatic);
-		arrayModifier.setVariableSized(isVarSized);
-
-		if (hasAssignmentExpr)
-			arrayModifier.setConstantExpression((IASTExpression) astStack.pop());
-
-		if (hasTypeQualifierList)
-			collectArrayModifierTypeQualifiers(arrayModifier);
-
-		setOffsetAndLength(arrayModifier);
-		astStack.push(arrayModifier);
-	}
-
-	/**
-	 * direct_declarator ::= direct_declarator '(' <openscope> identifier_list ')'
-	 */
-	public void consumeDirectDeclaratorFunctionDeclaratorKnR() {
-		ICASTKnRFunctionDeclarator declarator = nodeFactory.newKnRFunctionDeclarator(null, null);
-		IASTName[] names = astStack.topScope().toArray(new IASTName[0]);
-		declarator.setParameterNames(names);
-		astStack.closeScope();
-		int endOffset = endOffset(stream.getRightIToken());
-		addFunctionModifier(declarator, endOffset);
-	}
-
-	/**
-	 * identifier_list
-	 *     ::= 'identifier'
-	 *       | identifier_list ',' 'identifier'
-	 */
-	public void consumeIdentifierKnR() {
-		IASTName name = createName(stream.getRightIToken());
-		astStack.push(name);
-	}
-
-	/**
-	 * pointer ::= '*'
-	 *           | pointer '*'
-	 */
-	public void consumePointer() {
-		IASTPointer pointer = nodeFactory.newPointer();
-		IToken star = stream.getRightIToken();
-		ParserUtil.setOffsetAndLength(pointer, star);
-		astStack.push(pointer);
-	}
-
-	/**
-	 * pointer ::= '*' <openscope> type_qualifier_list
-	 *           | pointer '*' <openscope> type_qualifier_list
-	 */
-	public void consumePointerTypeQualifierList() {
-		ICASTPointer pointer = nodeFactory.newPointer();
-
-		for (Object o : astStack.closeScope()) {
-			IToken token = (IToken) o;
-			switch (baseKind(token)) {
-			default:
-				assert false;
-			case TK_const:
-				pointer.setConst(true);
-				break;
-			case TK_volatile:
-				pointer.setVolatile(true);
-				break;
-			case TK_restrict:
-				pointer.setRestrict(true);
-				break;
-			}
-		}
-
-		setOffsetAndLength(pointer);
-		astStack.push(pointer);
-	}
-
-	/**
-	 * direct_abstract_declarator
-	 *     ::= '(' ')'
-	 *       | direct_abstract_declarator '(' ')'
-	 *       | '(' <openscope> parameter_type_list ')'
-	 *       | direct_abstract_declarator '(' <openscope> parameter_type_list ')'
-	 */
-	public void consumeDirectDeclaratorFunctionDeclarator(boolean hasDeclarator, boolean hasParameters) {
-		IASTName name = nodeFactory.newName();
-		IASTStandardFunctionDeclarator declarator = nodeFactory.newFunctionDeclarator(name);
-
-		if (hasParameters) {
-			boolean isVarArgs = astStack.pop() == PLACE_HOLDER;
-			declarator.setVarArgs(isVarArgs);
-
-			for (Object param : astStack.closeScope())
-				declarator.addParameterDeclaration((IASTParameterDeclaration) param);
-		}
-
-		if (hasDeclarator) {
-			addFunctionModifier(declarator, endOffset(stream.getRightIToken()));
-		} else {
-			setOffsetAndLength(declarator);
-			astStack.push(declarator);
-		}
-	}
-
-	/**
-	 * designated_initializer ::= <openscope> designation initializer
-	 */
-	public void consumeInitializerDesignated() {
-		IASTInitializer initializer = (IASTInitializer) astStack.pop();
-		ICASTDesignatedInitializer result = nodeFactory.newDesignatedInitializer(initializer);
-
-		for (Object o : astStack.closeScope())
-			result.addDesignator((ICASTDesignator) o);
-
-		setOffsetAndLength(result);
-		astStack.push(result);
-	}
-
-	/**
-	 * designator ::= '[' constant_expression ']'
-	 */
-	public void consumeDesignatorArray() {
-		IASTExpression expr = (IASTExpression) astStack.pop();
-		ICASTArrayDesignator designator = nodeFactory.newArrayDesignator(expr);
-		setOffsetAndLength(designator);
-		astStack.push(designator);
-	}
-
-	/**
-	 *  designator ::= '.' 'identifier'
-	 */
-	public void consumeDesignatorField() {
-		IASTName name = createName(stream.getRightIToken());
-		ICASTFieldDesignator designator = nodeFactory.newFieldDesignator(name);
-		setOffsetAndLength(designator);
-		astStack.push(designator);
-	}
-
-	/**
-	 * declaration_specifiers ::= <openscope> simple_declaration_specifiers
-	 */
-	public void consumeDeclarationSpecifiersSimple() {
-		ICASTSimpleDeclSpecifier declSpec = nodeFactory.newSimpleDeclSpecifier();
-
-		for (Object specifier : astStack.closeScope())
-			setSpecifier(declSpec, specifier);
-
-		setOffsetAndLength(declSpec);
-		astStack.push(declSpec);
-	}
-
-	/**
-	 * declaration_specifiers ::= <openscope> struct_or_union_declaration_specifiers
-	 * declaration_specifiers ::= <openscope> enum_declaration_specifiers
-	 */
-	public void consumeDeclarationSpecifiersStructUnionEnum() {
-		List<Object> topScope = astStack.closeScope();
-		ICASTDeclSpecifier declSpec = CollectionUtils.findFirstAndRemove(topScope, ICASTDeclSpecifier.class);
-
-		// now apply the rest of the specifiers
-		for (Object specifier : topScope)
-			setSpecifier(declSpec, specifier);
-
-		setOffsetAndLength(declSpec);
-		astStack.push(declSpec);
-	}
-
-	/**
-	 * declaration_specifiers ::=  <openscope> typdef_name_declaration_specifiers
-	 */
-	public void consumeDeclarationSpecifiersTypedefName() {
-		ICASTTypedefNameSpecifier declSpec = nodeFactory.newTypedefNameSpecifier(null);
-
-		for (Object o : astStack.topScope()) {
-			if (o instanceof IToken) {
-				IToken token = (IToken) o;
-				// There is one identifier token on the stack
-				int kind = baseKind(token);
-				if (kind == TK_identifier || kind == TK_Completion) {
-					IASTName name = createName(token);
-					declSpec.setName(name);
-				} else {
-					setSpecifier(declSpec, token);
-				}
-			}
-		}
-
-		astStack.closeScope();
-		setOffsetAndLength(declSpec);
-		astStack.push(declSpec);
-	}
-
-	/**
-	 * declaration ::= declaration_specifiers <openscope> init_declarator_list ';'
-	 * declaration ::= declaration_specifiers  ';'
-	 */
-	public void consumeDeclarationSimple(boolean hasDeclaratorList) {
-		List<Object> declarators = (hasDeclaratorList) ? astStack.closeScope() : Collections.emptyList();
-		IASTDeclSpecifier declSpecifier = (IASTDeclSpecifier) astStack.pop();
-
-		List<IToken> ruleTokens = stream.getRuleTokens();
-		if (ruleTokens.size() == 1 && baseKind(ruleTokens.get(0)) == TK_EndOfCompletion)
-			return; // do not generate nodes for extra EOC tokens
-
-		IASTSimpleDeclaration declaration = nodeFactory.newSimpleDeclaration(declSpecifier);
-
-		for (Object declarator : declarators)
-			declaration.addDeclarator((IASTDeclarator) declarator);
-
-		setOffsetAndLength(declaration);
-		astStack.push(declaration);
-	}
-
-	/**
-	 * external_declaration ::= ';'
-	 *
-	 * TODO: doesn't the declaration need a name?
-	 */
-	public void consumeDeclarationEmpty() {
-		// Don't generate declaration nodes for extra EOC tokens
-		if (baseKind(stream.getLeftIToken()) == C99Parsersym.TK_EndOfCompletion)
-			return;
-
-		IASTDeclSpecifier declSpecifier = nodeFactory.newSimpleDeclSpecifier();
-		IASTSimpleDeclaration declaration = nodeFactory.newSimpleDeclaration(declSpecifier);
-		setOffsetAndLength(declSpecifier);
-		setOffsetAndLength(declaration);
-		astStack.push(declaration);
-	}
-
-	/**
-	 * a declaration inside of a struct
-	 *
-	 * struct_declaration ::= specifier_qualifier_list <openscope> struct_declarator_list ';'
-	 *
-	 * specifier_qualifier_list is a subset of declaration_specifiers,
-	 * struct_declarators are declarators that are allowed inside a struct,
-	 * a struct declarator is a regular declarator plus bit fields
-	 */
-	public void consumeStructDeclaration(boolean hasDeclaration) {
-		consumeDeclarationSimple(hasDeclaration); // TODO this is ok as long as bit fields implement IASTDeclarator (see consumeDeclaration())
-	}
-
-	/**
-	 * struct_or_union_specifier
-	 *     ::= 'struct' '{' <openscope> struct_declaration_list_opt '}'
-	 *       | 'union'  '{' <openscope> struct_declaration_list_opt '}'
-	 *       | 'struct' struct_or_union_identifier '{' <openscope> struct_declaration_list_opt '}'
-	 *       | 'union'  struct_or_union_identifier '{' <openscope> struct_declaration_list_opt '}'
-	 *
-	 * @param key either k_struct or k_union from IASTCompositeTypeSpecifier
-	 */
-	public void consumeTypeSpecifierComposite(boolean hasName) {
-
-		int key = 0;
-		switch (baseKind(stream.getLeftIToken())) {
-		case TK_struct:
-			key = IASTCompositeTypeSpecifier.k_struct;
-		case TK_union:
-			key = IASTCompositeTypeSpecifier.k_union;
-		}
-
-		IASTName name = (hasName) ? createName(stream.getRuleTokens().get(1)) : nodeFactory.newName();
-
-		ICASTCompositeTypeSpecifier typeSpec = nodeFactory.newCompositeTypeSpecifier(key, name);
-
-		for (Object o : astStack.closeScope())
-			typeSpec.addMemberDeclaration((IASTDeclaration) o);
-
-		setOffsetAndLength(typeSpec);
-		astStack.push(typeSpec);
-	}
-
-	/**
-	 * struct_or_union_specifier
-	 *     ::= 'struct' struct_or_union_identifier
-	 *       | 'union'  struct_or_union_identifier
-	 *
-	 * enum_specifier ::= 'enum' enum_identifier
-	 */
-	public void consumeTypeSpecifierElaborated(int kind) {
-		IASTName name = createName(stream.getRuleTokens().get(1));
-		IASTElaboratedTypeSpecifier typeSpec = nodeFactory.newElaboratedTypeSpecifier(kind, name);
-		setOffsetAndLength(typeSpec);
-		astStack.push(typeSpec);
-	}
-
-	/**
-	 * iteration_statement ::= 'while' '(' expression ')' statement
-	 */
-	public void consumeStatementWhileLoop() {
-		IASTStatement body = (IASTStatement) astStack.pop();
-		IASTExpression condition = (IASTExpression) astStack.pop();
-		IASTWhileStatement whileStatement = nodeFactory.newWhileStatement(condition, body);
-		setOffsetAndLength(whileStatement);
-		astStack.push(whileStatement);
-	}
-
-	/**
-	 * iteration_statement_matched
-	 *     ::= 'for' '(' expression_opt ';' expression_opt ';' expression_opt ')' statement
-	 */
-	public void consumeStatementForLoop() {
-		IASTStatement body = (IASTStatement) astStack.pop();
-		// these two expressions may be null, see consumeExpressionOptional()
-		IASTExpression expr3 = (IASTExpression) astStack.pop();
-		IASTExpression expr2 = (IASTExpression) astStack.pop();
-		IASTNode node = (IASTNode) astStack.pop(); // may be an expression or a declaration
-
-		IASTStatement initializer;
-		if (node instanceof IASTExpression)
-			initializer = nodeFactory.newExpressionStatement((IASTExpression) node);
-		else if (node instanceof IASTDeclaration)
-			initializer = nodeFactory.newDeclarationStatement((IASTDeclaration) node);
-		else // its null
-			initializer = nodeFactory.newNullStatement();
-
-		// bug 234463, fix for content assist to work in this case
-		int TK_EOC = TK_EndOfCompletion; // TODO: change this in the grammar file
-		List<IToken> tokens = stream.getRuleTokens();
-		if (matchTokens(tokens, tokenMap, TK_for, TK_LeftParen, TK_Completion, TK_EOC, TK_EOC, TK_EOC, TK_EOC)) {
-			IASTName name = createName(tokens.get(2));
-			IASTIdExpression idExpression = nodeFactory.newIdExpression(name);
-			ParserUtil.setOffsetAndLength(idExpression, offset(name), length(name));
-			initializer = nodeFactory.newExpressionStatement(idExpression);
-			ParserUtil.setOffsetAndLength(initializer, offset(name), length(name));
-		}
-
-		//initializer could be an expression or a declaration
-		int TK_SC = TK_SemiColon;
-		IASTExpressionStatement expressionStatement = null;
-		if (initializer instanceof IASTDeclarationStatement) {
-			IASTDeclarationStatement declarationStatement = (IASTDeclarationStatement) initializer;
-			List<IToken> expressionTokens = stream.getRuleTokens();
-
-			//find the first semicolon
-			int end_pos = -1;
-			for (int i = 0, n = expressionTokens.size(); i < n; i++) {
-				if (tokenMap.mapKind(expressionTokens.get(i).getKind()) == TK_SC) {
-					end_pos = i;
-					break;
-				}
-			}
-
-			if (end_pos != -1) {
-				expressionTokens = expressionTokens.subList(2, end_pos);
-
-				ISecondaryParser<IASTExpression> expressionParser = parserFactory.getExpressionParser(stream,
-						properties);
-				IASTExpression expr1 = runSecondaryParser(expressionParser, expressionTokens);
-
-				if (expr1 != null) { // the parse may fail
-					expressionStatement = nodeFactory.newExpressionStatement(expr1);
-					setOffsetAndLength(expressionStatement);
-				}
-			}
-
-			if (expressionStatement == null)
-				initializer = declarationStatement;
-			else {
-				initializer = createAmbiguousStatement(expressionStatement, declarationStatement);
-				setOffsetAndLength(initializer);
-			}
-		}
-
-		if (node != null)
-			ParserUtil.setOffsetAndLength(initializer, offset(node), length(node));
-
-		IASTForStatement forStat = nodeFactory.newForStatement(initializer, expr2, expr3, body);
-		setOffsetAndLength(forStat);
-		astStack.push(forStat);
-	}
-
-	/**
-	 * selection_statement ::=  switch '(' expression ')' statement
-	 */
-	public void consumeStatementSwitch() {
-		IASTStatement body = (IASTStatement) astStack.pop();
-		IASTExpression expr = (IASTExpression) astStack.pop();
-		IASTSwitchStatement stat = nodeFactory.newSwitchStatement(expr, body);
-		setOffsetAndLength(stat);
-		astStack.push(stat);
-	}
-
-	public void consumeStatementIf(boolean hasElse) {
-		IASTStatement elseClause = null;
-		if (hasElse)
-			elseClause = (IASTStatement) astStack.pop();
-
-		IASTStatement thenClause = (IASTStatement) astStack.pop();
-		IASTExpression condition = (IASTExpression) astStack.pop();
-
-		IASTIfStatement ifStatement = nodeFactory.newIfStatement(condition, thenClause, elseClause);
-		setOffsetAndLength(ifStatement);
-		astStack.push(ifStatement);
-	}
-
-	/**
-	 * function_definition
-	 *    ::= declaration_specifiers <openscope> declarator compound_statement
-	 *      | function_declarator compound_statement
-	 *
-	 * The seemingly pointless <openscope> is just there to
-	 * prevent a shift/reduce conflict in the grammar.
-	 */
-	public void consumeFunctionDefinition(boolean hasDeclSpecifiers) {
-		IASTCompoundStatement body = (IASTCompoundStatement) astStack.pop();
-		IASTFunctionDeclarator decl = (IASTFunctionDeclarator) astStack.pop();
-		astStack.closeScope();
-
-		IASTDeclSpecifier declSpecifier;
-		if (hasDeclSpecifiers) {
-			declSpecifier = (IASTDeclSpecifier) astStack.pop();
-		} else { // there are no decl specifiers, implicit int
-			declSpecifier = nodeFactory.newSimpleDeclSpecifier();
-		}
-
-		IASTFunctionDefinition def = nodeFactory.newFunctionDefinition(declSpecifier, decl, body);
-		setOffsetAndLength(def);
-		astStack.push(def);
-	}
-
-	/**
-	 * function_definition
-	 *     ::= declaration_specifiers <openscope-ast> knr_function_declarator
-	 *     <openscope-ast> declaration_list compound_statement
-	 */
-	public void consumeFunctionDefinitionKnR() {
-		IASTCompoundStatement body = (IASTCompoundStatement) astStack.pop();
-
-		IASTDeclaration[] declarations = astStack.topScope().toArray(new IASTDeclaration[0]);
-		astStack.closeScope();
-
-		ICASTKnRFunctionDeclarator decl = (ICASTKnRFunctionDeclarator) astStack.pop();
-		astStack.closeScope();
-
-		ICASTDeclSpecifier declSpecifier = (ICASTDeclSpecifier) astStack.pop();
-		decl.setParameterDeclarations(declarations);
-
-		// re-compute the length of the declaration to take the parameter declarations into account
-		ASTNode lastDeclaration = (ASTNode) declarations[declarations.length - 1];
-		int endOffset = lastDeclaration.getOffset() + lastDeclaration.getLength();
-		((ASTNode) decl).setLength(endOffset - offset(decl));
-
-		IASTFunctionDefinition def = nodeFactory.newFunctionDefinition(declSpecifier, decl, body);
-		setOffsetAndLength(def);
-		astStack.push(def);
-	}
-
-	@Override
-	protected IASTAmbiguousExpression createAmbiguousExpression(IASTExpression... expressions) {
-		return new CASTAmbiguousExpression(expressions);
-	}
-
-	@Override
-	protected IASTAmbiguousStatement createAmbiguousStatement(IASTStatement... statements) {
-		return new CASTAmbiguousStatement(statements);
-	}
-}
\ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99SecondaryParserFactory.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99SecondaryParserFactory.java
deleted file mode 100644
index cd2c43b..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99SecondaryParserFactory.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2015 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.lrparser.action.c99;
-
-import java.util.Map;
-
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
-import org.eclipse.cdt.core.dom.lrparser.action.ISecondaryParserFactory;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
-import org.eclipse.cdt.internal.core.dom.lrparser.c99.C99ExpressionParser;
-import org.eclipse.cdt.internal.core.dom.lrparser.c99.C99NoCastExpressionParser;
-import org.eclipse.cdt.internal.core.dom.lrparser.c99.C99SizeofExpressionParser;
-
-public class C99SecondaryParserFactory implements ISecondaryParserFactory {
-
-	public static final C99SecondaryParserFactory DEFAULT_INSTANCE = new C99SecondaryParserFactory();
-
-	public static C99SecondaryParserFactory getDefault() {
-		return DEFAULT_INSTANCE;
-	}
-
-	@Override
-	public ISecondaryParser<IASTExpression> getExpressionParser(ITokenStream stream, Map<String, String> properties) {
-		return new C99ExpressionParser(stream, properties);
-	}
-
-	@Override
-	public ISecondaryParser<IASTExpression> getNoCastExpressionParser(ITokenStream stream,
-			Map<String, String> properties) {
-		return new C99NoCastExpressionParser(stream, properties);
-	}
-
-	@Override
-	public ISecondaryParser<IASTExpression> getSizeofExpressionParser(ITokenStream stream,
-			Map<String, String> properties) {
-		return new C99SizeofExpressionParser(stream, properties);
-	}
-}
\ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java
deleted file mode 100644
index a240800..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java
+++ /dev/null
@@ -1,1908 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2013 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.lrparser.action.cpp;
-
-import static org.eclipse.cdt.core.dom.lrparser.action.ParserUtil.endOffset;
-import static org.eclipse.cdt.core.dom.lrparser.action.ParserUtil.length;
-import static org.eclipse.cdt.core.dom.lrparser.action.ParserUtil.matchTokens;
-import static org.eclipse.cdt.core.dom.lrparser.action.ParserUtil.offset;
-import static org.eclipse.cdt.core.parser.util.CollectionUtils.findFirstAndRemove;
-import static org.eclipse.cdt.core.parser.util.CollectionUtils.reverseIterable;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_ColonColon;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_Completion;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_EndOfCompletion;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_LeftBracket;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_LeftParen;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_RightBracket;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_RightParen;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_SemiColon;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_auto;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_bool;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_char;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_class;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_const;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_delete;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_double;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_enum;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_explicit;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_extern;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_float;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_for;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_friend;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_identifier;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_inline;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_int;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_long;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_mutable;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_new;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_private;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_protected;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_public;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_register;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_short;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_signed;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_static;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_struct;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_typedef;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_typename;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_union;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_unsigned;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_virtual;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_void;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_volatile;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_wchar_t;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.LinkedList;
-import java.util.List;
-
-import org.eclipse.cdt.core.dom.ast.IASTCompositeTypeSpecifier;
-import org.eclipse.cdt.core.dom.ast.IASTCompoundStatement;
-import org.eclipse.cdt.core.dom.ast.IASTDeclSpecifier;
-import org.eclipse.cdt.core.dom.ast.IASTDeclaration;
-import org.eclipse.cdt.core.dom.ast.IASTDeclarationStatement;
-import org.eclipse.cdt.core.dom.ast.IASTDeclarator;
-import org.eclipse.cdt.core.dom.ast.IASTElaboratedTypeSpecifier;
-import org.eclipse.cdt.core.dom.ast.IASTEqualsInitializer;
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-import org.eclipse.cdt.core.dom.ast.IASTExpressionList;
-import org.eclipse.cdt.core.dom.ast.IASTExpressionStatement;
-import org.eclipse.cdt.core.dom.ast.IASTForStatement;
-import org.eclipse.cdt.core.dom.ast.IASTFunctionDeclarator;
-import org.eclipse.cdt.core.dom.ast.IASTIdExpression;
-import org.eclipse.cdt.core.dom.ast.IASTIfStatement;
-import org.eclipse.cdt.core.dom.ast.IASTInitializerClause;
-import org.eclipse.cdt.core.dom.ast.IASTLiteralExpression;
-import org.eclipse.cdt.core.dom.ast.IASTName;
-import org.eclipse.cdt.core.dom.ast.IASTNamedTypeSpecifier;
-import org.eclipse.cdt.core.dom.ast.IASTNode;
-import org.eclipse.cdt.core.dom.ast.IASTParameterDeclaration;
-import org.eclipse.cdt.core.dom.ast.IASTPointer;
-import org.eclipse.cdt.core.dom.ast.IASTPointerOperator;
-import org.eclipse.cdt.core.dom.ast.IASTSimpleDeclSpecifier;
-import org.eclipse.cdt.core.dom.ast.IASTSimpleDeclaration;
-import org.eclipse.cdt.core.dom.ast.IASTStatement;
-import org.eclipse.cdt.core.dom.ast.IASTSwitchStatement;
-import org.eclipse.cdt.core.dom.ast.IASTTypeId;
-import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression;
-import org.eclipse.cdt.core.dom.ast.IASTWhileStatement;
-import org.eclipse.cdt.core.dom.ast.IBasicType.Kind;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTAmbiguousTemplateArgument;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCatchHandler;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCompositeTypeSpecifier;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCompositeTypeSpecifier.ICPPASTBaseSpecifier;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTConstructorChainInitializer;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTConstructorInitializer;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTConversionName;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTDeclSpecifier;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTDeleteExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTElaboratedTypeSpecifier;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTExplicitTemplateInstantiation;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTFieldReference;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTFunctionDeclarator;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTFunctionDefinition;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTFunctionWithTryBlock;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTLinkageSpecification;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTNameSpecifier;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTNamedTypeSpecifier;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTNamespaceAlias;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTNamespaceDefinition;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTNewExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTOperatorName;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTParameterDeclaration;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTPointerToMember;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTQualifiedName;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTReferenceOperator;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTSimpleDeclSpecifier;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTSimpleTypeConstructorExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTSimpleTypeTemplateParameter;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateDeclaration;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateId;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateParameter;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateSpecialization;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplatedTypeTemplateParameter;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTryBlockStatement;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTypenameExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTUnaryExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTUsingDeclaration;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTUsingDirective;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTVisibilityLabel;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPNodeFactory;
-import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
-import org.eclipse.cdt.core.dom.lrparser.LPGTokenAdapter;
-import org.eclipse.cdt.core.dom.lrparser.action.BuildASTParserAction;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
-import org.eclipse.cdt.core.dom.lrparser.action.ParserUtil;
-import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
-import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
-import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym;
-import org.eclipse.cdt.internal.core.dom.parser.ASTNode;
-import org.eclipse.cdt.internal.core.dom.parser.IASTAmbiguityParent;
-import org.eclipse.cdt.internal.core.dom.parser.IASTAmbiguousExpression;
-import org.eclipse.cdt.internal.core.dom.parser.IASTAmbiguousStatement;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTAmbiguousDeclarator;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTAmbiguousExpression;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTAmbiguousStatement;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTAmbiguousTemplateArgument;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTConstructorInitializer;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.OverloadableOperator;
-
-import lpg.lpgjavaruntime.IToken;
-
-/**
- * Semantic actions that build the AST during the parse.
- * These are the actions that are specific to the C++ parser, the superclass
- * contains actions that can be shared with the C99 parser.
- *
- * @author Mike Kucera
- */
-@SuppressWarnings("restriction")
-public class CPPBuildASTParserAction extends BuildASTParserAction {
-
-	/** Allows code in this class to refer to the token kinds in CPPParsersym */
-	private final ITokenMap tokenMap;
-
-	/** Used to create the AST node objects */
-	protected final ICPPNodeFactory nodeFactory;
-
-	protected final ICPPSecondaryParserFactory parserFactory;
-
-	/** Stack that provides easy access to the current class name, used to disambiguate declarators. */
-	protected final LinkedList<IASTName> classNames = new LinkedList<>();
-
-	/**
-	 * @param parser
-	 * @param orderedTerminalSymbols When an instance of this class is created for a parser
-	 * that parsers token kinds will be mapped back to the base C99 parser's token kinds.
-	 */
-	public CPPBuildASTParserAction(ITokenStream parser, ScopedStack<Object> astStack, ICPPNodeFactory nodeFactory,
-			ICPPSecondaryParserFactory parserFactory) {
-		super(parser, astStack, nodeFactory, parserFactory);
-
-		this.nodeFactory = nodeFactory;
-		this.parserFactory = parserFactory;
-		this.tokenMap = new TokenMap(CPPParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols());
-	}
-
-	private int baseKind(IToken token) {
-		return tokenMap.mapKind(token.getKind());
-	}
-
-	@Override
-	protected boolean isCompletionToken(IToken token) {
-		return baseKind(token) == TK_Completion;
-	}
-
-	@Override
-	protected boolean isIdentifierToken(IToken token) {
-		return baseKind(token) == TK_identifier;
-	}
-
-	@Override
-	protected IASTName createName(char[] image) {
-		return nodeFactory.newName(image);
-	}
-
-	public void consumeNewInitializer() {
-		IASTExpression expr;
-		if (astStack.peek() == null) { // if there is an empty set of parens
-			astStack.pop();
-			expr = nodeFactory.newExpressionList();
-			setOffsetAndLength(expr);
-		} else {
-			expr = (IASTExpression) astStack.pop(); // may be null
-		}
-		ICPPASTConstructorInitializer initializer = nodeFactory.newConstructorInitializer(expr);
-		setOffsetAndLength(initializer);
-		astStack.push(initializer);
-	}
-
-	// TODO can the new_array_expressions be removed? it looks like they parse as part of the type id
-	/**
-	 * new_expression
-	 *     ::= dcolon_opt 'new' new_placement_opt new_type_id <openscope-ast> new_array_expressions_op new_initializer_opt
-	 *       | dcolon_opt 'new' new_placement_opt '(' type_id ')' <openscope-ast> new_array_expressions_op new_initializer_opt
-	 */
-	public void consumeExpressionNew(boolean isNewTypeId) {
-		ICPPASTConstructorInitializer initializer = (ICPPASTConstructorInitializer) astStack.pop(); // may be null
-		List<Object> arrayExpressions = astStack.closeScope();
-		IASTTypeId typeId = (IASTTypeId) astStack.pop();
-		IASTExpression placement = (IASTExpression) astStack.pop(); // may be null
-		boolean hasDoubleColon = astStack.pop() != null;
-
-		ICPPASTNewExpression newExpression = nodeFactory.newNewExpression(new IASTExpression[] { placement },
-				initializer, typeId);
-		newExpression.setIsGlobal(hasDoubleColon);
-		newExpression.setIsNewTypeId(isNewTypeId);
-		setOffsetAndLength(newExpression);
-
-		for (Object expr : arrayExpressions)
-			newExpression.addNewTypeIdArrayExpression((IASTExpression) expr);
-
-		// handle ambiguities of the form:  (A)(B)
-		if (!isNewTypeId && initializer == null && placement instanceof IASTIdExpression && typeId != null
-				&& typeId.getDeclSpecifier() instanceof IASTNamedTypeSpecifier) {
-
-			IASTName firstName = ((IASTIdExpression) placement).getName();
-			IASTName secondName = ((IASTNamedTypeSpecifier) typeId.getDeclSpecifier()).getName();
-
-			IASTNamedTypeSpecifier newTypeSpecifier = nodeFactory.newTypedefNameSpecifier(firstName.copy());
-			ParserUtil.setOffsetAndLength(newTypeSpecifier, firstName);
-			IASTDeclarator newDeclarator = nodeFactory.newDeclarator(nodeFactory.newName());
-			ParserUtil.setOffsetAndLength(newDeclarator, endOffset(firstName), 0);
-			IASTTypeId newTypeId = nodeFactory.newTypeId(newTypeSpecifier, newDeclarator);
-			ParserUtil.setOffsetAndLength(newTypeId, firstName);
-
-			IASTIdExpression newInitializer = nodeFactory.newIdExpression(secondName.copy());
-			ParserUtil.setOffsetAndLength(newInitializer, secondName);
-
-			ICPPASTNewExpression alternate = nodeFactory.newNewExpression(null, newInitializer, newTypeId);
-			ParserUtil.setOffsetAndLength(alternate, newExpression);
-			newExpression.setIsGlobal(hasDoubleColon);
-			newExpression.setIsNewTypeId(isNewTypeId);
-
-			IASTAmbiguousExpression ambiguity = createAmbiguousExpression(newExpression, alternate);
-			astStack.push(ambiguity);
-		} else {
-			astStack.push(newExpression);
-		}
-	}
-
-	/**
-	 * new_declarator -- pointer operators are part of the type id, held in an empty declarator
-	 *     ::= <openscope-ast> new_pointer_operators
-	 */
-	public void consumeNewDeclarator() {
-		IASTName name = nodeFactory.newName();
-		IASTDeclarator declarator = nodeFactory.newDeclarator(name);
-
-		for (Object pointer : astStack.closeScope())
-			declarator.addPointerOperator((IASTPointerOperator) pointer);
-
-		setOffsetAndLength(declarator);
-		astStack.push(declarator);
-	}
-
-	/**
-	 * throw_expression
-	 *     ::= 'throw'
-	 *       | 'throw' assignment_expression
-	 */
-	public void consumeExpressionThrow(boolean hasExpr) {
-		IASTExpression operand = hasExpr ? (IASTExpression) astStack.pop() : null;
-		IASTUnaryExpression expr = nodeFactory.newUnaryExpression(ICPPASTUnaryExpression.op_throw, operand);
-		setOffsetAndLength(expr);
-		astStack.push(expr);
-	}
-
-	/**
-	 * delete_expression
-	 *     ::= dcolon_opt 'delete' cast_expression
-	 *       | dcolon_opt 'delete' '[' ']' cast_expression
-	 * @param isVectorized
-	 */
-	public void consumeExpressionDelete(boolean isVectorized) {
-		IASTExpression operand = (IASTExpression) astStack.pop();
-		boolean hasDoubleColon = astStack.pop() != null;
-
-		ICPPASTDeleteExpression deleteExpr = nodeFactory.newDeleteExpression(operand);
-		deleteExpr.setIsGlobal(hasDoubleColon);
-		deleteExpr.setIsVectored(isVectorized);
-
-		setOffsetAndLength(deleteExpr);
-		astStack.push(deleteExpr);
-	}
-
-	/**
-	 *
-	 */
-	public void consumeExpressionFieldReference(boolean isPointerDereference, boolean hasTemplateKeyword) {
-		IASTName name = (IASTName) astStack.pop();
-		IASTExpression owner = (IASTExpression) astStack.pop();
-		ICPPASTFieldReference expr = nodeFactory.newFieldReference(name, owner);
-		expr.setIsPointerDereference(isPointerDereference);
-		expr.setIsTemplate(hasTemplateKeyword);
-
-		setOffsetAndLength(expr);
-		astStack.push(expr);
-	}
-
-	/**
-	 * postfix_expression
-	 *     ::= simple_type_specifier '(' expression_list_opt ')'
-	 */
-	public void consumeExpressionSimpleTypeConstructor() {
-		IASTExpression expression = (IASTExpression) astStack.pop();
-		IToken token = (IToken) astStack.pop();
-		////CDT_70_FIX_FROM_50-#3
-		//int type = asICPPASTSimpleTypeConstructorExpressionType(token);
-		ICPPASTConstructorInitializer init = null;
-		if (expression != null) {
-			init = new CPPASTConstructorInitializer();
-			init.setExpression(expression);
-
-			((ASTNode) init).setOffsetAndLength(((ASTNode) expression).getOffset(), ((ASTNode) expression).getLength());
-		}
-		ICPPASTDeclSpecifier declspec = transformIntoSimpleTypeSpecifier(token);
-		ICPPASTSimpleTypeConstructorExpression typeConstructor = nodeFactory
-				.newSimpleTypeConstructorExpression(declspec, init);
-
-		setOffsetAndLength(typeConstructor);
-		astStack.push(typeConstructor);
-	}
-
-	private int asICPPASTSimpleTypeConstructorExpressionType(IToken token) {
-		assert token != null;
-
-		switch (baseKind(token)) {
-		case TK_char:
-			return ICPPASTSimpleTypeConstructorExpression.t_char;
-		case TK_wchar_t:
-			return ICPPASTSimpleTypeConstructorExpression.t_wchar_t;
-		case TK_bool:
-			return ICPPASTSimpleTypeConstructorExpression.t_bool;
-		case TK_short:
-			return ICPPASTSimpleTypeConstructorExpression.t_short;
-		case TK_int:
-			return ICPPASTSimpleTypeConstructorExpression.t_int;
-		case TK_long:
-			return ICPPASTSimpleTypeConstructorExpression.t_long;
-		case TK_signed:
-			return ICPPASTSimpleTypeConstructorExpression.t_signed;
-		case TK_unsigned:
-			return ICPPASTSimpleTypeConstructorExpression.t_unsigned;
-		case TK_float:
-			return ICPPASTSimpleTypeConstructorExpression.t_float;
-		case TK_double:
-			return ICPPASTSimpleTypeConstructorExpression.t_double;
-		case TK_void:
-			return ICPPASTSimpleTypeConstructorExpression.t_void;
-
-		default:
-			assert false : "type parsed wrong"; //$NON-NLS-1$
-			return ICPPASTSimpleTypeConstructorExpression.t_unspecified;
-		}
-	}
-
-	private ICPPASTDeclSpecifier transformIntoSimpleTypeSpecifier(IToken token) {
-		ICPPASTSimpleDeclSpecifier declspec = nodeFactory.newSimpleDeclSpecifier();
-		switch (baseKind(token)) {
-		case TK_char:
-			declspec.setType(Kind.eChar);
-			break;
-		case TK_wchar_t:
-			declspec.setType(Kind.eWChar);
-			break;
-		case TK_bool:
-			declspec.setType(Kind.eBoolean);
-			break;
-		case TK_short:
-			declspec.setShort(true);
-			break;
-		case TK_int:
-			declspec.setType(Kind.eInt);
-			break;
-		case TK_long:
-			declspec.setLong(true);
-			break;
-		case TK_signed:
-			declspec.setSigned(true);
-			break;
-		case TK_unsigned:
-			declspec.setUnsigned(true);
-			break;
-		case TK_float:
-			declspec.setType(Kind.eFloat);
-			break;
-		case TK_double:
-			declspec.setType(Kind.eDouble);
-			break;
-		case TK_void:
-			declspec.setType(Kind.eVoid);
-			break;
-
-		default:
-			assert false : "type parsed wrong"; //$NON-NLS-1$
-			declspec.setType(Kind.eUnspecified);
-			break;
-		}
-		((ASTNode) declspec).setOffset(token.getStartOffset());
-		int ruleLength = token.getEndOffset() - token.getStartOffset();
-		((ASTNode) declspec).setLength(ruleLength < 0 ? 0 : ruleLength);
-
-		return declspec;
-
-	}
-
-	/**
-	 * postfix_expression
-	 *     ::= 'typename' dcolon_opt nested_name_specifier <empty>  identifier_name '(' expression_list_opt ')'
-	 *       | 'typename' dcolon_opt nested_name_specifier template_opt template_id '(' expression_list_opt ')'
-	 */
-	@SuppressWarnings("unchecked")
-	public void consumeExpressionTypeName() {
-		IASTExpression expr = (IASTExpression) astStack.pop();
-		IASTName name = (IASTName) astStack.pop();
-		boolean isTemplate = astStack.pop() == PLACE_HOLDER;
-		LinkedList<IASTName> nestedNames = (LinkedList<IASTName>) astStack.pop();
-		IToken dColon = (IToken) astStack.pop();
-
-		nestedNames.addFirst(name);
-
-		int startOffset = dColon == null ? offset(nestedNames.getLast()) : offset(dColon);
-		int endOffset = endOffset(name);
-		IASTName qualifiedName = createQualifiedName(nestedNames, startOffset, endOffset, dColon != null);
-
-		ICPPASTTypenameExpression typenameExpr = nodeFactory.newTypenameExpression(qualifiedName, expr, isTemplate);
-
-		setOffsetAndLength(typenameExpr);
-		astStack.push(typenameExpr);
-	}
-
-	/**
-	 * condition
-	 *     ::= type_specifier_seq declarator '=' assignment_expression
-	 */
-	public void consumeConditionDeclaration() {
-		IASTExpression expr = (IASTExpression) astStack.pop();
-		IASTDeclarator declarator = (IASTDeclarator) astStack.pop();
-		IASTDeclSpecifier declSpec = (IASTDeclSpecifier) astStack.pop();
-		//CDT_70_FIX_FROM_50-#2
-		//IASTInitializerExpression initializer = nodeFactory.newInitializerExpression(expr);
-		IASTEqualsInitializer initializer = nodeFactory.newEqualsInitializer(expr);
-		ParserUtil.setOffsetAndLength(initializer, offset(expr), length(expr));
-		declarator.setInitializer(initializer);
-
-		IASTSimpleDeclaration declaration = nodeFactory.newSimpleDeclaration(declSpec);
-		declaration.addDeclarator(declarator);
-
-		setOffsetAndLength(declaration);
-		astStack.push(declaration);
-	}
-
-	/**
-	 * template_id
-	 *     ::= identifier_name '<' <openscope-ast> template_argument_list_opt '>'
-	 *
-	 * operator_function_id
-	 *     ::= operator_id '<' <openscope-ast> template_argument_list_opt '>'
-	 */
-	public void consumeTemplateId() {
-		List<Object> templateArguments = astStack.closeScope();
-		IASTName name = (IASTName) astStack.pop();
-
-		ICPPASTTemplateId templateId = nodeFactory.newTemplateId(name);
-
-		for (Object arg : templateArguments) {
-			if (arg instanceof IASTExpression)
-				templateId.addTemplateArgument((IASTExpression) arg);
-			else if (arg instanceof IASTTypeId)
-				templateId.addTemplateArgument((IASTTypeId) arg);
-			else if (arg instanceof ICPPASTAmbiguousTemplateArgument)
-				templateId.addTemplateArgument((ICPPASTAmbiguousTemplateArgument) arg);
-		}
-
-		setOffsetAndLength(templateId);
-		astStack.push(templateId);
-	}
-
-	/**
-	 * Disambiguates template arguments.
-	 */
-	public void consumeTemplateArgumentTypeId() {
-		// TODO is this necessary? It should be able to tell if it looks like an id expression
-		ISecondaryParser<IASTExpression> secondaryParser = parserFactory.getExpressionParser(stream, properties);
-		IASTExpression result = runSecondaryParser(secondaryParser);
-
-		// The grammar rule allows assignment_expression, but the ambiguity
-		// only arises with id_expressions.
-		if (!(result instanceof IASTIdExpression))
-			return;
-
-		IASTTypeId typeId = (IASTTypeId) astStack.pop();
-		IASTIdExpression expr = (IASTIdExpression) result;
-
-		ICPPASTAmbiguousTemplateArgument ambiguityNode = new CPPASTAmbiguousTemplateArgument(typeId, expr);
-		//setOffsetAndLength(ambiguityNode);
-
-		astStack.push(ambiguityNode);
-	}
-
-	/**
-	 * Disambiguates template arguments.
-	 * Qualified names parse as an expression, so generate the corresponding
-	 * typeId and create an ambiguity node.
-	 */
-	public void consumeTemplateArgumentExpression() {
-		IASTExpression expr = (IASTExpression) astStack.peek();
-
-		if (expr instanceof IASTIdExpression) {
-			IASTName name = ((IASTIdExpression) expr).getName().copy();
-
-			IASTNamedTypeSpecifier declSpec = nodeFactory.newTypedefNameSpecifier(name);
-			ParserUtil.setOffsetAndLength(declSpec, name);
-
-			IASTDeclarator declarator = nodeFactory.newDeclarator(nodeFactory.newName());
-			ParserUtil.setOffsetAndLength(declarator, endOffset(declSpec), 0);
-
-			IASTTypeId typeId = nodeFactory.newTypeId(declSpec, declarator);
-			setOffsetAndLength(typeId);
-
-			ICPPASTAmbiguousTemplateArgument ambiguityNode = new CPPASTAmbiguousTemplateArgument(typeId, expr);
-
-			astStack.pop();
-			astStack.push(ambiguityNode);
-		}
-	}
-
-	/**
-	 * operator_id
-	 *     ::= 'operator' overloadable_operator
-	 */
-	public void consumeOperatorName() {
-		List<IToken> tokens = stream.getRuleTokens();
-		tokens = tokens.subList(1, tokens.size());
-		OverloadableOperator operator = getOverloadableOperator(tokens);
-
-		ICPPASTOperatorName name = nodeFactory.newOperatorName(operator.toCharArray());
-		setOffsetAndLength(name);
-		astStack.push(name);
-	}
-
-	private OverloadableOperator getOverloadableOperator(List<IToken> tokens) {
-		if (tokens.size() == 1) {
-			// TODO this is a hack that I did to save time
-			LPGTokenAdapter coreToken = (LPGTokenAdapter) tokens.get(0);
-			return OverloadableOperator.valueOf(coreToken.getWrappedToken());
-		} else if (matchTokens(tokens, tokenMap, TK_new, TK_LeftBracket, TK_RightBracket)) {
-			return OverloadableOperator.NEW_ARRAY;
-		} else if (matchTokens(tokens, tokenMap, TK_delete, TK_LeftBracket, TK_RightBracket)) {
-			return OverloadableOperator.DELETE_ARRAY;
-		} else if (matchTokens(tokens, tokenMap, TK_LeftBracket, TK_RightBracket)) {
-			return OverloadableOperator.BRACKET;
-		} else if (matchTokens(tokens, tokenMap, TK_LeftParen, TK_RightParen)) {
-			return OverloadableOperator.PAREN;
-		}
-
-		return null;
-	}
-
-	/**
-	 * conversion_function_id
-	 *     ::= 'operator' conversion_type_id
-	 */
-	public void consumeConversionName() {
-		//	    Representation is computed by the conversion name itself, see bug 258054
-		//		String rep = createStringRepresentation(parser.getRuleTokens());
-		//		char[] chars = rep.toCharArray();
-
-		IASTTypeId typeId = (IASTTypeId) astStack.pop();
-		ICPPASTConversionName name = nodeFactory.newConversionName(typeId);
-		setOffsetAndLength(name);
-		astStack.push(name);
-	}
-
-	/**
-	 * unqualified_id
-	 *     ::= '~' identifier_token
-	 */
-	public void consumeDestructorName() {
-		char[] chars = ("~" + stream.getRightIToken()).toCharArray(); //$NON-NLS-1$
-
-		IASTName name = nodeFactory.newName(chars);
-		setOffsetAndLength(name);
-		astStack.push(name);
-	}
-
-	/**
-	 * destructor_type_name
-	 *     ::= '~' template_id_name
-	 */
-	public void consumeDestructorNameTemplateId() {
-		ICPPASTTemplateId templateId = (ICPPASTTemplateId) astStack.peek();
-
-		IASTName oldName = templateId.getTemplateName();
-		char[] newChars = ("~" + oldName).toCharArray(); //$NON-NLS-1$
-
-		IASTName newName = nodeFactory.newName(newChars);
-
-		int offset = offset(stream.getLeftIToken());
-		int length = offset - endOffset(oldName);
-		ParserUtil.setOffsetAndLength(newName, offset, length);
-
-		templateId.setTemplateName(newName);
-	}
-
-	/**
-	 * qualified_id
-	 *     ::= '::' identifier_name
-	 *       | '::' operator_function_id
-	 *       | '::' template_id
-	 */
-
-	public void consumeGlobalQualifiedId() {
-		IASTName name = (IASTName) astStack.pop();
-
-		ICPPASTQualifiedName qualifiedName = nodeFactory.newQualifiedName();
-		qualifiedName.addName(name);
-		qualifiedName.setFullyQualified(true);
-		setOffsetAndLength(qualifiedName);
-		astStack.push(qualifiedName);
-	}
-
-	/**
-	 * selection_statement ::=  switch '(' condition ')' statement
-	 */
-	public void consumeStatementSwitch() {
-		IASTStatement body = (IASTStatement) astStack.pop();
-
-		Object condition = astStack.pop();
-
-		IASTSwitchStatement stat;
-		if (condition instanceof IASTExpression)
-			stat = nodeFactory.newSwitchStatement((IASTExpression) condition, body);
-		else
-			stat = nodeFactory.newSwitchStatement((IASTDeclaration) condition, body);
-
-		setOffsetAndLength(stat);
-		astStack.push(stat);
-	}
-
-	public void consumeStatementIf(boolean hasElse) {
-		IASTStatement elseClause = hasElse ? (IASTStatement) astStack.pop() : null;
-		IASTStatement thenClause = (IASTStatement) astStack.pop();
-
-		Object condition = astStack.pop();
-
-		IASTIfStatement ifStatement;
-		if (condition instanceof IASTExpression)
-			ifStatement = nodeFactory.newIfStatement((IASTExpression) condition, thenClause, elseClause);
-		else
-			ifStatement = nodeFactory.newIfStatement((IASTDeclaration) condition, thenClause, elseClause);
-
-		setOffsetAndLength(ifStatement);
-		astStack.push(ifStatement);
-	}
-
-	/**
-	 * iteration_statement ::= 'while' '(' condition ')' statement
-	 */
-	public void consumeStatementWhileLoop() {
-		IASTStatement body = (IASTStatement) astStack.pop();
-
-		Object condition = astStack.pop();
-
-		IASTWhileStatement whileStatement;
-		if (condition instanceof IASTExpression)
-			whileStatement = nodeFactory.newWhileStatement((IASTExpression) condition, body);
-		else
-			whileStatement = nodeFactory.newWhileStatement((IASTDeclaration) condition, body);
-
-		setOffsetAndLength(whileStatement);
-		astStack.push(whileStatement);
-	}
-
-	/**
-	 */
-	public void consumeStatementForLoop() {
-		IASTStatement body = (IASTStatement) astStack.pop();
-		IASTExpression expr = (IASTExpression) astStack.pop();
-		Object condition = astStack.pop(); // can be an expression or a declaration
-		IASTStatement initializer = (IASTStatement) astStack.pop();
-
-		// bug 234463, fix for content assist to work in this case
-		int TK_EOC = TK_EndOfCompletion; // TODO: change this in the grammar file
-		List<IToken> tokens = stream.getRuleTokens();
-		if (matchTokens(tokens, tokenMap, TK_for, TK_LeftParen, TK_Completion, TK_EOC, TK_EOC, TK_EOC, TK_EOC)) {
-			IASTName name = createName(tokens.get(2));
-			IASTIdExpression idExpression = nodeFactory.newIdExpression(name);
-			ParserUtil.setOffsetAndLength(idExpression, offset(name), length(name));
-			initializer = nodeFactory.newExpressionStatement(idExpression);
-			ParserUtil.setOffsetAndLength(initializer, offset(name), length(name));
-		}
-
-		int TK_SC = TK_SemiColon;
-		IASTExpressionStatement expressionStatement = null;
-		if (initializer instanceof IASTDeclarationStatement) {
-			IASTDeclarationStatement declarationStatement = (IASTDeclarationStatement) initializer;
-			List<IToken> expressionTokens = stream.getRuleTokens();
-
-			//find the first semicolon
-			int end_pos = -1;
-			for (int i = 0, n = expressionTokens.size(); i < n; i++) {
-				if (tokenMap.mapKind(expressionTokens.get(i).getKind()) == TK_SC) {
-					end_pos = i;
-					break;
-				}
-			}
-
-			if (end_pos != -1) {
-				expressionTokens = expressionTokens.subList(2, end_pos);
-
-				ISecondaryParser<IASTExpression> expressionParser = parserFactory.getExpressionParser(stream,
-						properties);
-				IASTExpression expr1 = runSecondaryParser(expressionParser, expressionTokens);
-
-				if (expr1 != null) { // the parse may fail
-					expressionStatement = nodeFactory.newExpressionStatement(expr1);
-					setOffsetAndLength(expressionStatement);
-				}
-			}
-
-			if (expressionStatement == null)
-				initializer = declarationStatement;
-			else {
-				initializer = createAmbiguousStatement(declarationStatement, expressionStatement);
-				setOffsetAndLength(initializer);
-			}
-		}
-
-		IASTForStatement forStat;
-		if (condition instanceof IASTExpression)
-			forStat = nodeFactory.newForStatement(initializer, (IASTExpression) condition, expr, body);
-		else // its a declaration or its null
-			forStat = nodeFactory.newForStatement(initializer, (IASTDeclaration) condition, expr, body);
-
-		setOffsetAndLength(forStat);
-		astStack.push(forStat);
-	}
-
-	/**
-	 * try_block
-	 *     ::= 'try' compound_statement <openscope-ast> handler_seq
-	 */
-	public void consumeStatementTryBlock(boolean hasCatchBlock) {
-		List<Object> handlerSeq = hasCatchBlock ? astStack.closeScope() : Collections.emptyList();
-		IASTStatement body = (IASTStatement) astStack.pop();
-
-		ICPPASTTryBlockStatement tryStatement = nodeFactory.newTryBlockStatement(body);
-
-		for (Object handler : handlerSeq)
-			tryStatement.addCatchHandler((ICPPASTCatchHandler) handler);
-
-		setOffsetAndLength(tryStatement);
-		astStack.push(tryStatement);
-	}
-
-	/**
-	 * handler
-	 *     ::= 'catch' '(' exception_declaration ')' compound_statement
-	 *       | 'catch' '(' '...' ')' compound_statement
-	 */
-	public void consumeStatementCatchHandler(boolean hasEllipsis) {
-		IASTStatement body = (IASTStatement) astStack.pop();
-		IASTDeclaration decl = hasEllipsis ? null : (IASTDeclaration) astStack.pop();
-
-		ICPPASTCatchHandler catchHandler = nodeFactory.newCatchHandler(decl, body);
-		catchHandler.setIsCatchAll(hasEllipsis);
-
-		setOffsetAndLength(catchHandler);
-		astStack.push(catchHandler);
-	}
-
-	/**
-	 * nested_name_specifier
-	 *     ::= class_or_namespace_name '::' nested_name_specifier_with_template
-	 *       | class_or_namespace_name '::'
-	 *
-	 * nested_name_specifier_with_template
-	 *     ::= class_or_namespace_name_with_template '::' nested_name_specifier_with_template
-	 *       | class_or_namespace_name_with_template '::'
-	 *
-	 *
-	 * Creates and updates a list of the nested names on the stack.
-	 * Important: the names in the list are in *reverse* order,
-	 * this is because the actions fire in reverse order.
-	 */
-	@SuppressWarnings("unchecked")
-	public void consumeNestedNameSpecifier(final boolean hasNested) {
-		LinkedList<IASTName> names;
-		if (hasNested)
-			names = (LinkedList<IASTName>) astStack.pop();
-		else
-			names = new LinkedList<>();
-
-		IASTName name = (IASTName) astStack.pop();
-		names.add(name);
-
-		astStack.push(names);
-	}
-
-	public void consumeNestedNameSpecifierEmpty() {
-		// can't use Collections.EMPTY_LIST because we need a list thats mutable
-		astStack.push(new LinkedList<IASTName>());
-	}
-
-	/**
-	 * The template keyword is optional but must be the leftmost token.
-	 *
-	 * This just throws away the template keyword.
-	 */
-	public void consumeNameWithTemplateKeyword() {
-		IASTName name = (IASTName) astStack.pop();
-		astStack.pop(); // pop the template keyword
-		astStack.push(name);
-	}
-
-	/**
-	 * qualified_id
-	 *     ::= dcolon_opt nested_name_specifier any_name
-	 */
-	public void consumeQualifiedId(boolean hasTemplateKeyword) {
-		IASTName qualifiedName = subRuleQualifiedName(hasTemplateKeyword);
-		astStack.push(qualifiedName);
-	}
-
-	private IASTName createQualifiedName(LinkedList<IASTName> nestedNames, int startOffset, int endOffset,
-			boolean startsWithColonColon) {
-		return createQualifiedName(nestedNames, startOffset, endOffset, startsWithColonColon, false);
-	}
-
-	/**
-	 * Creates a qualified name from a list of names (that must be in reverse order).
-	 *
-	 * @param names List of name nodes in reverse order
-	 */
-	private IASTName createQualifiedName(LinkedList<IASTName> names, int startOffset, int endOffset,
-			boolean startsWithColonColon, boolean endsWithColonColon) {
-		if (!endsWithColonColon && !startsWithColonColon && names.size() == 1)
-			return names.getFirst(); // its actually an unqualified name
-
-		ICPPASTQualifiedName qualifiedName = nodeFactory.newQualifiedName();
-		qualifiedName.setFullyQualified(startsWithColonColon);
-		ParserUtil.setOffsetAndLength(qualifiedName, startOffset, endOffset - startOffset);
-		for (IASTName name : reverseIterable(names))
-			qualifiedName.addName(name);
-
-		// there must be a dummy name in the AST after the last double colon, this happens with pointer to member names
-		if (endsWithColonColon) {
-			IASTName dummyName = nodeFactory.newName();
-			ParserUtil.setOffsetAndLength(dummyName, endOffset, 0);
-			qualifiedName.addName(dummyName);
-		}
-
-		return qualifiedName;
-	}
-
-	/**
-	 * Consumes grammar sub-rules of the following form:
-	 *
-	 * dcolon_opt nested_name_specifier_opt keyword_opt name
-	 *
-	 * Where name is any rule that produces an IASTName node on the stack.
-	 * Does not place the resulting node on the stack, returns it instead.
-	 */
-	@SuppressWarnings("unchecked")
-	private IASTName subRuleQualifiedName(boolean hasOptionalKeyword) {
-		IASTName lastName = (IASTName) astStack.pop();
-
-		if (hasOptionalKeyword) // this is usually a template keyword and can be ignored
-			astStack.pop();
-
-		LinkedList<IASTName> nestedNames = (LinkedList<IASTName>) astStack.pop();
-		IToken dColon = (IToken) astStack.pop();
-
-		if (nestedNames.isEmpty() && dColon == null) { // then its not a qualified name
-			return lastName;
-		}
-
-		nestedNames.addFirst(lastName); // the list of names is in reverse order
-
-		int startOffset = dColon == null ? offset(nestedNames.getLast()) : offset(dColon);
-		int endOffset = endOffset(lastName);
-
-		return createQualifiedName(nestedNames, startOffset, endOffset, dColon != null);
-	}
-
-	/**
-	 * pseudo_destructor_name
-	 *     ::= dcolon_opt nested_name_specifier_opt type_name '::' destructor_type_name
-	 *       | dcolon_opt nested_name_specifier 'template' template_id '::' destructor_type_name
-	 *       | dcolon_opt nested_name_specifier_opt destructor_type_name
-	 */
-	@SuppressWarnings("unchecked")
-	public void consumePsudoDestructorName(boolean hasExtraTypeName) {
-		IASTName destructorTypeName = (IASTName) astStack.pop();
-		IASTName extraName = hasExtraTypeName ? (IASTName) astStack.pop() : null;
-		LinkedList<IASTName> nestedNames = (LinkedList<IASTName>) astStack.pop();
-		IToken dColon = (IToken) astStack.pop();
-
-		if (hasExtraTypeName)
-			nestedNames.addFirst(extraName);
-
-		nestedNames.addFirst(destructorTypeName);
-
-		int startOffset = dColon == null ? offset(nestedNames.getLast()) : offset(dColon);
-		int endOffset = endOffset(destructorTypeName);
-		IASTName qualifiedName = createQualifiedName(nestedNames, startOffset, endOffset, dColon != null);
-
-		setOffsetAndLength(qualifiedName);
-		astStack.push(qualifiedName);
-	}
-
-	/**
-	 * namespace_alias_definition
-	 *     ::= 'namespace' 'identifier' '=' dcolon_opt nested_name_specifier_opt namespace_name ';'
-	 */
-	public void consumeNamespaceAliasDefinition() {
-		IASTName qualifiedName = subRuleQualifiedName(false);
-
-		IASTName alias = createName(stream.getRuleTokens().get(1));
-		ICPPASTNamespaceAlias namespaceAlias = nodeFactory.newNamespaceAlias(alias, qualifiedName);
-
-		setOffsetAndLength(namespaceAlias);
-		astStack.push(namespaceAlias);
-	}
-
-	/**
-	 * using_declaration
-	 *     ::= 'using' typename_opt dcolon_opt nested_name_specifier_opt unqualified_id ';'
-	 */
-	public void consumeUsingDeclaration() {
-		IASTName qualifiedName = subRuleQualifiedName(false);
-		boolean hasTypenameKeyword = astStack.pop() == PLACE_HOLDER;
-
-		ICPPASTUsingDeclaration usingDeclaration = nodeFactory.newUsingDeclaration(qualifiedName);
-		usingDeclaration.setIsTypename(hasTypenameKeyword);
-
-		setOffsetAndLength(usingDeclaration);
-		astStack.push(usingDeclaration);
-	}
-
-	/**
-	 * using_directive
-	 *     ::= 'using' 'namespace' dcolon_opt nested_name_specifier_opt namespace_name ';'
-	 */
-	public void consumeUsingDirective() {
-		IASTName qualifiedName = subRuleQualifiedName(false);
-
-		ICPPASTUsingDirective usingDirective = nodeFactory.newUsingDirective(qualifiedName);
-		setOffsetAndLength(usingDirective);
-		astStack.push(usingDirective);
-	}
-
-	/**
-	 * linkage_specification
-	 *     ::= 'extern' 'stringlit' '{' <openscope-ast> declaration_seq_opt '}'
-	 *       | 'extern' 'stringlit' <openscope-ast> declaration
-	 */
-	public void consumeLinkageSpecification() {
-		String name = stream.getRuleTokens().get(1).toString();
-		ICPPASTLinkageSpecification linkageSpec = nodeFactory.newLinkageSpecification(name);
-
-		for (Object declaration : astStack.closeScope())
-			linkageSpec.addDeclaration((IASTDeclaration) declaration);
-
-		setOffsetAndLength(linkageSpec);
-		astStack.push(linkageSpec);
-	}
-
-	/**
-	 * original_namespace_definition
-	 *     ::= 'namespace' identifier_name '{' <openscope-ast> declaration_seq_opt '}'
-	 *
-	 * extension_namespace_definition
-	 *     ::= 'namespace' original_namespace_name '{' <openscope-ast> declaration_seq_opt '}'
-	 *
-	 * unnamed_namespace_definition
-	 *     ::= 'namespace' '{' <openscope-ast> declaration_seq_opt '}'
-	 */
-	public void consumeNamespaceDefinition(boolean hasName) {
-		List<Object> declarations = astStack.closeScope();
-		IASTName namespaceName = hasName ? (IASTName) astStack.pop() : nodeFactory.newName();
-
-		ICPPASTNamespaceDefinition definition = nodeFactory.newNamespaceDefinition(namespaceName);
-
-		for (Object declaration : declarations)
-			definition.addDeclaration((IASTDeclaration) declaration);
-
-		setOffsetAndLength(definition);
-		astStack.push(definition);
-	}
-
-	/**
-	 * template_declaration
-	 *     ::= export_opt 'template' '<' <openscope-ast> template_parameter_list '>' declaration
-	 */
-	public void consumeTemplateDeclaration() {
-		IASTDeclaration declaration = (IASTDeclaration) astStack.pop();
-
-		// For some reason ambiguous declarators cause bugs when they are a part of a template declaration.
-		// But it shouldn't be ambiguous anyway, so just throw away the ambiguity node.
-		resolveAmbiguousDeclaratorsToFunction(declaration);
-
-		ICPPASTTemplateDeclaration templateDeclaration = nodeFactory.newTemplateDeclaration(declaration);
-
-		for (Object param : astStack.closeScope())
-			templateDeclaration.addTemplateParamter((ICPPASTTemplateParameter) param);
-
-		boolean hasExportKeyword = astStack.pop() == PLACE_HOLDER;
-		templateDeclaration.setExported(hasExportKeyword);
-
-		setOffsetAndLength(templateDeclaration);
-		astStack.push(templateDeclaration);
-	}
-
-	/**
-	 * If we know that a declarator must be a function declarator then we can resolve
-	 * the ambiguity without resorting to binding resolution.
-	 */
-	private static void resolveAmbiguousDeclaratorsToFunction(IASTDeclaration declaration) {
-		if (declaration instanceof IASTSimpleDeclaration) {
-			for (IASTDeclarator declarator : ((IASTSimpleDeclaration) declaration).getDeclarators()) {
-				if (declarator instanceof CPPASTAmbiguousDeclarator) {
-					IASTAmbiguityParent owner = (IASTAmbiguityParent) declaration;
-					CPPASTAmbiguousDeclarator ambiguity = (CPPASTAmbiguousDeclarator) declarator;
-					owner.replace(ambiguity, ambiguity.getDeclarators()[0]);
-				}
-			}
-		}
-	}
-
-	/**
-	 * explicit_instantiation
-	 *    ::= 'template' declaration
-	 */
-	public void consumeTemplateExplicitInstantiation() {
-		IASTDeclaration declaration = (IASTDeclaration) astStack.pop();
-		ICPPASTExplicitTemplateInstantiation instantiation = nodeFactory.newExplicitTemplateInstantiation(declaration);
-
-		setOffsetAndLength(instantiation);
-		astStack.push(instantiation);
-	}
-
-	/**
-	 * explicit_specialization
-	 *     ::= 'template' '<' '>' declaration
-	 */
-	public void consumeTemplateExplicitSpecialization() {
-		IASTDeclaration declaration = (IASTDeclaration) astStack.pop();
-		ICPPASTTemplateSpecialization specialization = nodeFactory.newTemplateSpecialization(declaration);
-
-		setOffsetAndLength(specialization);
-		astStack.push(specialization);
-	}
-
-	/**
-	 * Sets a token specifier.
-	 * Needs to be overrideable for new decl spec keywords.
-	 *
-	 * @param token Allows subclasses to override this method and use any
-	 * object to determine how to set a specifier.
-	 */
-	public void setSpecifier(ICPPASTDeclSpecifier node, Object specifier) {
-		if (!(specifier instanceof IToken))
-			return;
-
-		IToken token = (IToken) specifier;
-		int kind = baseKind(token);
-		switch (kind) {
-		case TK_typedef:
-			node.setStorageClass(IASTDeclSpecifier.sc_typedef);
-			return;
-		case TK_extern:
-			node.setStorageClass(IASTDeclSpecifier.sc_extern);
-			return;
-		case TK_static:
-			node.setStorageClass(IASTDeclSpecifier.sc_static);
-			return;
-		case TK_auto:
-			node.setStorageClass(IASTDeclSpecifier.sc_auto);
-			return;
-		case TK_register:
-			node.setStorageClass(IASTDeclSpecifier.sc_register);
-			return;
-		case TK_mutable:
-			node.setStorageClass(ICPPASTDeclSpecifier.sc_mutable);
-			return;
-
-		case TK_inline:
-			node.setInline(true);
-			return;
-		case TK_const:
-			node.setConst(true);
-			return;
-		case TK_friend:
-			node.setFriend(true);
-			return;
-		case TK_virtual:
-			node.setVirtual(true);
-			return;
-		case TK_volatile:
-			node.setVolatile(true);
-			return;
-		case TK_explicit:
-			node.setExplicit(true);
-			return;
-		}
-
-		if (node instanceof ICPPASTSimpleDeclSpecifier) {
-			ICPPASTSimpleDeclSpecifier n = (ICPPASTSimpleDeclSpecifier) node;
-			switch (kind) {
-			case TK_void:
-				n.setType(IASTSimpleDeclSpecifier.t_void);
-				return;
-			case TK_char:
-				n.setType(IASTSimpleDeclSpecifier.t_char);
-				return;
-			case TK_int:
-				n.setType(IASTSimpleDeclSpecifier.t_int);
-				return;
-			case TK_float:
-				n.setType(IASTSimpleDeclSpecifier.t_float);
-				return;
-			case TK_double:
-				n.setType(IASTSimpleDeclSpecifier.t_double);
-				return;
-			case TK_bool:
-				n.setType(ICPPASTSimpleDeclSpecifier.t_bool);
-				return;
-			case TK_wchar_t:
-				n.setType(ICPPASTSimpleDeclSpecifier.t_wchar_t);
-				return;
-
-			case TK_signed:
-				n.setSigned(true);
-				return;
-			case TK_unsigned:
-				n.setUnsigned(true);
-				return;
-			//if it is a longlong, donot set long, CDT_70_FIX_FROM_50-#8
-			case TK_long:
-				if (!n.isLongLong())
-					n.setLong(true);
-				return;
-			case TK_short:
-				n.setShort(true);
-				return;
-			}
-		}
-	}
-
-	public void consumeDeclarationSpecifiersSimple() {
-		ICPPASTDeclSpecifier declSpec = nodeFactory.newSimpleDeclSpecifier();
-
-		for (Object token : astStack.closeScope())
-			setSpecifier(declSpec, token);
-
-		setOffsetAndLength(declSpec);
-		astStack.push(declSpec);
-	}
-
-	/**
-	 * TODO: maybe move this into the superclass
-	 */
-	public void consumeDeclarationSpecifiersComposite() {
-		List<Object> topScope = astStack.closeScope();
-
-		// There's already a composite or elaborated or enum type specifier somewhere on the stack, find it.
-		ICPPASTDeclSpecifier declSpec = findFirstAndRemove(topScope, ICPPASTDeclSpecifier.class);
-
-		// now apply the rest of the specifiers
-		for (Object token : topScope)
-			setSpecifier(declSpec, token);
-
-		setOffsetAndLength(declSpec);
-		astStack.push(declSpec);
-	}
-
-	//	/**
-	//	 * declaration_specifiers ::=  <openscope> type_name_declaration_specifiers
-	//	 */
-	public void consumeDeclarationSpecifiersTypeName() {
-		List<Object> topScope = astStack.closeScope();
-		// There's a name somewhere on the stack, find it
-		IASTName typeName = findFirstAndRemove(topScope, IASTName.class);
-
-		// TODO what does the second argument mean?
-		ICPPASTNamedTypeSpecifier declSpec = nodeFactory.newTypedefNameSpecifier(typeName);
-
-		// now apply the rest of the specifiers
-		for (Object token : topScope) {
-			setSpecifier(declSpec, token);
-		}
-
-		// the only way there could be a typename token
-		for (IToken token : stream.getRuleTokens()) {
-			if (baseKind(token) == TK_typename) {
-				declSpec.setIsTypename(true);
-				break;
-			}
-		}
-
-		setOffsetAndLength(declSpec);
-		astStack.push(declSpec);
-	}
-
-	/**
-	 * elaborated_type_specifier
-	 *     ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name
-	 *       | class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name
-	 *       | 'enum' dcolon_opt nested_name_specifier_opt identifier_name
-	 */
-	public void consumeTypeSpecifierElaborated(boolean hasOptionalTemplateKeyword) {
-		IASTName name = subRuleQualifiedName(hasOptionalTemplateKeyword);
-		int kind = getElaboratedTypeSpecifier(stream.getLeftIToken());
-
-		IASTElaboratedTypeSpecifier typeSpecifier = nodeFactory.newElaboratedTypeSpecifier(kind, name);
-
-		setOffsetAndLength(typeSpecifier);
-		astStack.push(typeSpecifier);
-	}
-
-	private int getElaboratedTypeSpecifier(IToken token) {
-		int kind = baseKind(token);
-		switch (kind) {
-		default:
-			assert false : "wrong token kind: " + kind; //$NON-NLS-1$
-		case TK_struct:
-			return IASTElaboratedTypeSpecifier.k_struct;
-		case TK_union:
-			return IASTElaboratedTypeSpecifier.k_union;
-		case TK_enum:
-			return IASTElaboratedTypeSpecifier.k_enum;
-		case TK_class:
-			return ICPPASTElaboratedTypeSpecifier.k_class;
-		}
-	}
-
-	/**
-	 * simple_declaration
-	 *     ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ';'
-	 */
-	public void consumeDeclarationSimple(boolean hasDeclaratorList) {
-		List<Object> declarators = hasDeclaratorList ? astStack.closeScope() : new ArrayList<>();
-		ICPPASTDeclSpecifier declSpec = (ICPPASTDeclSpecifier) astStack.pop(); // may be null
-
-		List<IToken> ruleTokens = stream.getRuleTokens();
-		IToken nameToken = null;
-
-		// do not generate nodes for extra EOC tokens
-		if (matchTokens(ruleTokens, tokenMap, TK_EndOfCompletion)) {
-			return;
-		}
-
-		// In the case that a single completion token is parsed then it needs
-		// to be interpreted as a named type specifier for content assist to work.
-		else if (matchTokens(ruleTokens, tokenMap, TK_Completion, TK_EndOfCompletion)) {
-			IASTName name = createName(stream.getLeftIToken());
-			declSpec = nodeFactory.newTypedefNameSpecifier(name);
-			ParserUtil.setOffsetAndLength(declSpec, offset(name), length(name));
-			declarators = new ArrayList<>(); // throw away the bogus declarator
-		}
-
-		// can happen if implicit int is used
-		else if (declSpec == null) {
-			declSpec = nodeFactory.newSimpleDeclSpecifier();
-			ParserUtil.setOffsetAndLength(declSpec, stream.getLeftIToken().getStartOffset(), 0);
-		}
-
-		else if (declarators.size() == 1 && disambiguateToConstructor(declSpec, (IASTDeclarator) declarators.get(0))) { // puts results of disambiguation onto stack
-			declSpec = (ICPPASTDeclSpecifier) astStack.pop();
-			declarators = Arrays.asList(astStack.pop());
-		}
-
-		// bug 80171, check for situation similar to: static var;
-		// this will get parsed wrong, the following is a hack to rebuild the AST as it should have been parsed
-		// exclude syntax "friend xxx"
-		else if (declarators.isEmpty() && declSpec instanceof ICPPASTNamedTypeSpecifier && !declSpec.isFriend()
-				&& ruleTokens.size() >= 2
-				&& baseKind(nameToken = ruleTokens.get(ruleTokens.size() - 2)) == TK_identifier) {
-
-			declSpec = nodeFactory.newSimpleDeclSpecifier();
-			for (IToken t : ruleTokens.subList(0, ruleTokens.size() - 1))
-				setSpecifier(declSpec, t);
-
-			int offset = offset(stream.getLeftIToken());
-			int length = endOffset(ruleTokens.get(ruleTokens.size() - 2)) - offset;
-			ParserUtil.setOffsetAndLength(declSpec, offset, length);
-
-			IASTName name = createName(nameToken);
-			IASTDeclarator declarator = nodeFactory.newDeclarator(name);
-			ParserUtil.setOffsetAndLength(declarator, nameToken);
-			declarators.add(declarator);
-		}
-
-		IASTSimpleDeclaration declaration = nodeFactory.newSimpleDeclaration(declSpec);
-		setOffsetAndLength(declaration);
-		for (Object declarator : declarators)
-			declaration.addDeclarator((IASTDeclarator) declarator);
-
-		// simple ambiguity resolutions
-		//		if(declSpecifier.isFriend())
-		//			resolveAmbiguousDeclaratorsToFunction(declaration);
-		//
-		//		if(declSpecifier instanceof IASTSimpleDeclSpecifier) {
-		//			IASTSimpleDeclSpecifier simple = (IASTSimpleDeclSpecifier) declSpecifier;
-		//			if(simple.getType() == IASTSimpleDeclSpecifier.t_void && declaration.getDeclarators()[0].getPointerOperators().length == 0)
-		//				resolveAmbiguousDeclaratorsToFunction(declaration);
-		//
-		//		}
-
-		astStack.push(declaration);
-	}
-
-	private boolean disambiguateToConstructor(IASTDeclSpecifier declSpec, IASTDeclarator declarator) {
-		if (!(declSpec instanceof IASTNamedTypeSpecifier))
-			return false;
-
-		IASTNamedTypeSpecifier namedTypeSpecifier = (IASTNamedTypeSpecifier) declSpec;
-		IASTName name = namedTypeSpecifier.getName();
-		IASTDeclarator nested = declarator.getNestedDeclarator();
-
-		ICPPASTSimpleDeclSpecifier simpleDeclSpec = nodeFactory.newSimpleDeclSpecifier(); // empty
-		ParserUtil.setOffsetAndLength(simpleDeclSpec, stream.getLeftIToken().getStartOffset(), 0);
-
-		if (!classNames.isEmpty() && nested != null && ParserUtil.isSameName(name, classNames.getLast())) {
-
-			IASTName paramTypeName = nested.getName(); // reuse the parameter name node
-			IASTNamedTypeSpecifier paramName = nodeFactory.newTypedefNameSpecifier(paramTypeName);
-			ParserUtil.setOffsetAndLength(paramName, paramTypeName);
-
-			IASTDeclarator paramDeclarator = nodeFactory.newDeclarator(nodeFactory.newName());
-			ParserUtil.setOffsetAndLength(paramDeclarator, offset(paramName) + length(paramName), 0);
-
-			ICPPASTParameterDeclaration parameter = nodeFactory.newParameterDeclaration(paramName, paramDeclarator);
-			ParserUtil.setOffsetAndLength(parameter, paramName);
-
-			ICPPASTFunctionDeclarator constructorDeclarator = nodeFactory.newFunctionDeclarator(name); // reuse the name node
-			constructorDeclarator.addParameterDeclaration(parameter);
-			ParserUtil.setOffsetAndLength(constructorDeclarator, offset(simpleDeclSpec),
-					endOffset(paramDeclarator) - offset(simpleDeclSpec) + 1);
-
-			astStack.push(constructorDeclarator);
-			astStack.push(simpleDeclSpec);
-			return true;
-		}
-
-		if (declarator instanceof IASTFunctionDeclarator && declarator.getName() instanceof ICPPASTQualifiedName) {
-			ICPPASTQualifiedName qualifiedName = (ICPPASTQualifiedName) declarator.getName();
-			//IASTName lastName = qualifiedName.getLastName();
-
-			if (qualifiedName.isFullyQualified()) {
-
-				ICPPASTQualifiedName newQualifiedName = nodeFactory.newQualifiedName();
-				newQualifiedName.addName(name);
-				for (ICPPASTNameSpecifier n : qualifiedName.getQualifier())
-					newQualifiedName.addNameSpecifier(n);
-				newQualifiedName.addName(qualifiedName.getLastName());
-
-				ParserUtil.setOffsetAndLength(newQualifiedName, offset(name),
-						endOffset(qualifiedName.getLastName()) - offset(name));
-
-				declarator.setName(newQualifiedName);
-				ParserUtil.setOffsetAndLength(declarator, offset(name),
-						length(declarator) + offset(declarator) - offset(name));
-
-				astStack.push(declarator);
-				astStack.push(simpleDeclSpec);
-				return true;
-			}
-		}
-
-		return false;
-	}
-
-	public void consumeInitDeclaratorComplete() {
-		// Don't do disambiguation when parsing for content assist,
-		// trust me this makes things work out a lot better.
-		if (completionNode != null)
-			return;
-
-		IASTDeclarator declarator = (IASTDeclarator) astStack.peek();
-		if (!(declarator instanceof IASTFunctionDeclarator))
-			return;
-
-		ISecondaryParser<IASTDeclarator> secondaryParser = parserFactory.getNoFunctionDeclaratorParser(stream,
-				properties);
-		IASTDeclarator notFunctionDeclarator = runSecondaryParser(secondaryParser);
-
-		if (notFunctionDeclarator == null)
-			return;
-
-		astStack.pop();
-
-		IASTNode ambiguityNode = new CPPASTAmbiguousDeclarator(declarator, notFunctionDeclarator);
-
-		setOffsetAndLength(ambiguityNode);
-		astStack.push(ambiguityNode);
-	}
-
-	/**
-	 * visibility_label
-	 *     ::= access_specifier_keyword ':'
-	 */
-	public void consumeVisibilityLabel() {
-		IToken specifier = (IToken) astStack.pop();
-		int visibility = getAccessSpecifier(specifier);
-		ICPPASTVisibilityLabel visibilityLabel = nodeFactory.newVisibilityLabel(visibility);
-		setOffsetAndLength(visibilityLabel);
-		astStack.push(visibilityLabel);
-	}
-
-	private int getAccessSpecifier(IToken token) {
-		int kind = baseKind(token);
-		switch (kind) {
-		default:
-			assert false : "wrong token kind: " + kind; //$NON-NLS-1$
-		case TK_private:
-			return ICPPASTVisibilityLabel.v_private;
-		case TK_public:
-			return ICPPASTVisibilityLabel.v_public;
-		case TK_protected:
-			return ICPPASTVisibilityLabel.v_protected;
-		}
-	}
-
-	/**
-	 * base_specifier
-	 *     ::= dcolon_opt nested_name_specifier_opt class_name
-	 *       | 'virtual' access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
-	 *       | access_specifier_keyword 'virtual' dcolon_opt nested_name_specifier_opt class_name
-	 *       | access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name
-	 */
-	public void consumeBaseSpecifier(boolean hasAccessSpecifier, boolean isVirtual) {
-		IASTName name = subRuleQualifiedName(false);
-
-		int visibility = 0; // this is the default value that the DOM parser uses
-		if (hasAccessSpecifier) {
-			IToken accessSpecifierToken = (IToken) astStack.pop();
-			if (accessSpecifierToken != null)
-				visibility = getAccessSpecifier(accessSpecifierToken);
-		}
-
-		ICPPASTBaseSpecifier baseSpecifier = nodeFactory.newBaseSpecifier(name, visibility, isVirtual);
-		setOffsetAndLength(baseSpecifier);
-		astStack.push(baseSpecifier);
-	}
-
-	/**
-	 * class_specifier
-	 *     ::= class_head '{' <openscope-ast> member_declaration_list_opt '}'
-	 */
-	public void consumeClassSpecifier() {
-		List<Object> declarations = astStack.closeScope();
-
-		// the class specifier is created by the rule for class_head
-		IASTCompositeTypeSpecifier classSpecifier = (IASTCompositeTypeSpecifier) astStack.peek();
-
-		for (Object declaration : declarations)
-			classSpecifier.addMemberDeclaration((IASTDeclaration) declaration);
-
-		setOffsetAndLength(classSpecifier);
-
-		classNames.removeLast(); // pop the stack of class names
-	}
-
-	/**
-	 * class_head
-	 *     ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt
-	 *       | class_keyword template_id <openscope-ast> base_clause_opt
-	 *       | class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt
-	 *       | class_keyword nested_name_specifier template_id <openscope-ast> base_clause_opt
-	 */
-	@SuppressWarnings("unchecked")
-	public void consumeClassHead(boolean hasNestedNameSpecifier) {
-		int key = getCompositeTypeSpecifier(stream.getLeftIToken());
-		List<Object> baseSpecifiers = astStack.closeScope();
-		// may be null, but if it is then hasNestedNameSpecifier == false
-		IASTName className = (IASTName) astStack.pop();
-
-		if (hasNestedNameSpecifier) {
-			LinkedList<IASTName> nestedNames = (LinkedList<IASTName>) astStack.pop();
-			nestedNames.addFirst(className);
-			int startOffset = offset(nestedNames.getLast());
-			int endOffset = endOffset(className);
-			className = createQualifiedName(nestedNames, startOffset, endOffset, false);
-		}
-
-		if (className == null)
-			className = nodeFactory.newName();
-
-		ICPPASTCompositeTypeSpecifier classSpecifier = nodeFactory.newCompositeTypeSpecifier(key, className);
-
-		for (Object base : baseSpecifiers)
-			classSpecifier.addBaseSpecifier((ICPPASTBaseSpecifier) base);
-
-		// the offset and length are set in consumeClassSpecifier()
-		astStack.push(classSpecifier);
-		classNames.add(className); // push
-	}
-
-	private int getCompositeTypeSpecifier(IToken token) {
-		final int kind = baseKind(token);
-		switch (kind) {
-		default:
-			assert false : "wrong token kind: " + kind; //$NON-NLS-1$
-		case TK_struct:
-			return IASTCompositeTypeSpecifier.k_struct;
-		case TK_union:
-			return IASTCompositeTypeSpecifier.k_union;
-		case TK_class:
-			return ICPPASTCompositeTypeSpecifier.k_class;
-		}
-	}
-
-	/**
-	 * ptr_operator
-	 *     ::= '*' <openscope-ast> cv_qualifier_seq_opt
-	 */
-	public void consumePointer() {
-		IASTPointer pointer = nodeFactory.newPointer();
-		List<Object> tokens = astStack.closeScope();
-		addCVQualifiersToPointer(pointer, tokens);
-		setOffsetAndLength(pointer);
-		astStack.push(pointer);
-	}
-
-	protected void addCVQualifiersToPointer(IASTPointer pointer, List<Object> tokens) {
-		for (Object t : tokens) {
-			switch (baseKind((IToken) t)) {
-			case TK_const:
-				pointer.setConst(true);
-				break;
-			case TK_volatile:
-				pointer.setVolatile(true);
-				break;
-			}
-		}
-	}
-
-	/**
-	 * ptr_operator
-	 *     ::= '&'
-	 */
-	public void consumeReferenceOperator() {
-		ICPPASTReferenceOperator referenceOperator = nodeFactory.newReferenceOperator();
-		setOffsetAndLength(referenceOperator);
-		astStack.push(referenceOperator);
-	}
-
-	/**
-	 * ptr_operator
-	 *     ::= dcolon_opt nested_name_specifier '*' <openscope-ast> cv_qualifier_seq_opt
-	 */
-	@SuppressWarnings("unchecked")
-	public void consumePointerToMember() {
-		List<Object> qualifiers = astStack.closeScope();
-		LinkedList<IASTName> nestedNames = (LinkedList<IASTName>) astStack.pop();
-		IToken dColon = (IToken) astStack.pop();
-
-		int startOffset = dColon == null ? offset(nestedNames.getLast()) : offset(dColon);
-		int endOffset = endOffset(nestedNames.getFirst()); // temporary
-
-		// find the last double colon by searching for it
-		for (IToken t : reverseIterable(stream.getRuleTokens())) {
-			if (baseKind(t) == TK_ColonColon) {
-				endOffset = endOffset(t);
-				break;
-			}
-		}
-
-		IASTName name = createQualifiedName(nestedNames, startOffset, endOffset, dColon != null, true);
-
-		ICPPASTPointerToMember pointer = nodeFactory.newPointerToMember(name);
-		addCVQualifiersToPointer(pointer, qualifiers);
-		setOffsetAndLength(pointer);
-		astStack.push(pointer);
-	}
-
-	/**
-	 * initializer
-	 *     ::= '(' expression_list ')'
-	 */
-	public void consumeInitializerConstructor() {
-		//CDT_70_FIX_FROM_50-#5
-		Object o = astStack.pop();
-		IASTInitializerClause[] initClauseList = null;
-		if (o instanceof IASTExpressionList) {
-			initClauseList = ((IASTExpressionList) o).getExpressions();
-		} else if (o instanceof IASTInitializerClause) {
-			initClauseList = new IASTInitializerClause[] { (IASTInitializerClause) o };
-		}
-
-		ICPPASTConstructorInitializer initializer = nodeFactory.newConstructorInitializer(initClauseList);
-		setOffsetAndLength(initializer);
-		astStack.push(initializer);
-	}
-
-	/**
-	 * function_direct_declarator
-	 *     ::= basic_direct_declarator '(' <openscope-ast> parameter_declaration_clause ')'
-	 *         <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
-	 */
-	public void consumeDirectDeclaratorFunctionDeclarator(boolean hasDeclarator) {
-		IASTName name = nodeFactory.newName();
-		ICPPASTFunctionDeclarator declarator = nodeFactory.newFunctionDeclarator(name);
-
-		List<Object> typeIds = astStack.closeScope();
-		if (typeIds.size() == 1 && typeIds.get(0) == PLACE_HOLDER) { // fix for bug 86943
-			declarator.setEmptyExceptionSpecification();
-		} else {
-			for (Object typeId : typeIds) {
-				declarator.addExceptionSpecificationTypeId((IASTTypeId) typeId);
-			}
-		}
-
-		for (Object token : astStack.closeScope()) {
-			int kind = baseKind((IToken) token);
-			switch (kind) {
-			default:
-				assert false : "wrong token kind: " + kind; //$NON-NLS-1$
-			case TK_const:
-				declarator.setConst(true);
-				break;
-			case TK_volatile:
-				declarator.setVolatile(true);
-				break;
-			}
-		}
-
-		boolean isVarArgs = astStack.pop() == PLACE_HOLDER;
-		declarator.setVarArgs(isVarArgs);
-
-		for (Object o : astStack.closeScope()) {
-			declarator.addParameterDeclaration((IASTParameterDeclaration) o);
-		}
-
-		if (hasDeclarator) {
-			int endOffset = endOffset(stream.getRightIToken());
-			addFunctionModifier(declarator, endOffset);
-		} else {
-			setOffsetAndLength(declarator);
-			astStack.push(declarator);
-		}
-	}
-
-	/**
-	 * Consume an empty bracketed abstract declarator.
-	 */
-	public void consumeAbstractDeclaratorEmpty() {
-		IASTName name = nodeFactory.newName();
-		ParserUtil.setOffsetAndLength(name, offset(stream.getLeftIToken()) + 1, 0);
-		IASTDeclarator declarator = nodeFactory.newDeclarator(name);
-		setOffsetAndLength(declarator);
-		astStack.push(declarator);
-	}
-
-	/**
-	 * mem_initializer
-	 *     ::= mem_initializer_id '(' expression_list_opt ')'
-	 */
-	public void consumeConstructorChainInitializer() {
-		Object o = astStack.pop();
-		IASTName name = (IASTName) astStack.pop();
-		IASTInitializerClause[] initClauseList = null;
-		if (o instanceof IASTExpressionList) {
-			initClauseList = ((IASTExpressionList) o).getExpressions();
-		} else if (o instanceof IASTInitializerClause) {
-			initClauseList = new IASTInitializerClause[] { (IASTInitializerClause) o };
-		}
-		ICPPASTConstructorInitializer init = nodeFactory.newConstructorInitializer(initClauseList);
-		int rule_start_offset = stream.getLeftIToken().getStartOffset();
-		int initClauseList_offset = ParserUtil.offset(initClauseList[0]);
-		List<IToken> ruleTokens = stream.getRuleTokens();
-		int start_offset = -1;
-
-		for (int i = initClauseList_offset, n = rule_start_offset; i >= n; i--) {
-			if (tokenMap.mapKind(ruleTokens.get(i).getKind()) == TK_LeftParen) {
-				start_offset = ruleTokens.get(i).getStartOffset();
-				break;
-			}
-		}
-		int ruleLength = stream.getRightIToken().getEndOffset() - start_offset;
-		ParserUtil.setOffsetAndLength(init, start_offset, ruleLength < 0 ? 0 : ruleLength);
-
-		ICPPASTConstructorChainInitializer initializer = nodeFactory.newConstructorChainInitializer(name, init);
-		setOffsetAndLength(initializer);
-		astStack.push(initializer);
-	}
-
-	/**
-	 * function_definition
-	 *     ::= declaration_specifiers_opt function_direct_declarator
-	 *         <openscope-ast> ctor_initializer_list_opt function_body
-	 *
-	 *       | declaration_specifiers_opt function_direct_declarator
-	 *         'try' <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq
-	 *
-	 */
-	public void consumeFunctionDefinition(boolean isTryBlockDeclarator) {
-		List<Object> handlers = isTryBlockDeclarator ? astStack.closeScope() : Collections.emptyList();
-		IASTCompoundStatement body = (IASTCompoundStatement) astStack.pop();
-		List<Object> initializers = astStack.closeScope();
-		Object o = astStack.pop();
-		IASTFunctionDeclarator declarator = (IASTFunctionDeclarator) o;
-		Object o2 = astStack.pop();
-		IASTDeclSpecifier declSpec = (IASTDeclSpecifier) o2; // may be null
-
-		if (declSpec == null) { // can happen if implicit int is used
-			declSpec = nodeFactory.newSimpleDeclSpecifier();
-			ParserUtil.setOffsetAndLength(declSpec, stream.getLeftIToken().getStartOffset(), 0);
-		} else if (disambiguateToConstructor(declSpec, declarator)) {
-			declSpec = (IASTDeclSpecifier) astStack.pop();
-			declarator = (IASTFunctionDeclarator) astStack.pop();
-		}
-
-		ICPPASTFunctionDefinition definition;
-		if (isTryBlockDeclarator) {
-			ICPPASTFunctionWithTryBlock tryblock = nodeFactory.newFunctionTryBlock(declSpec, declarator, body);
-			for (Object handler : handlers)
-				tryblock.addCatchHandler((ICPPASTCatchHandler) handler);
-			definition = tryblock;
-		} else {
-			definition = nodeFactory.newFunctionDefinition(declSpec, declarator, body);
-		}
-
-		if (initializers != null && !initializers.isEmpty()) {
-			for (Object initializer : initializers)
-				definition.addMemberInitializer((ICPPASTConstructorChainInitializer) initializer);
-		}
-
-		setOffsetAndLength(definition);
-		astStack.push(definition);
-	}
-
-	/**
-	 * member_declaration
-	 *     ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ';'
-	 */
-	public void consumeMemberDeclarationQualifiedId() {
-		IASTName qualifiedId = subRuleQualifiedName(true);
-
-		// https://bugs.eclipse.org/bugs/show_bug.cgi?id=92793
-		ICPPASTUsingDeclaration declaration = nodeFactory.newUsingDeclaration(qualifiedId);
-		setOffsetAndLength(declaration);
-
-		astStack.push(declaration);
-	}
-
-	/**
-	 * member_declarator
-	 *     ::= declarator constant_initializer
-	 */
-
-	public void consumeMemberDeclaratorWithInitializer() {
-
-		//CDT_70_FIX_FROM_50-#2
-		//IASTInitializerExpression initializer = (IASTInitializerExpression) astStack.pop();
-		IASTEqualsInitializer initializer = (IASTEqualsInitializer) astStack.pop();
-		IASTDeclarator declarator = (IASTDeclarator) astStack.peek();
-		setOffsetAndLength(declarator);
-
-		if (declarator instanceof ICPPASTFunctionDeclarator) {
-			IASTExpression expr = (IASTExpression) initializer.getInitializerClause();
-			if (expr instanceof IASTLiteralExpression && "0".equals(expr.toString())) { //$NON-NLS-1$
-				((ICPPASTFunctionDeclarator) declarator).setPureVirtual(true);
-				return;
-			}
-		}
-
-		declarator.setInitializer(initializer);
-	}
-
-	/**
-	 * type_parameter
-	 *     ::= 'class' identifier_name_opt -- simple type template parameter
-	 *       | 'class' identifier_name_opt '=' type_id
-	 *       | 'typename' identifier_name_opt
-	 *       | 'typename' identifier_name_opt '=' type_id
-	 */
-	public void consumeSimpleTypeTemplateParameter(boolean hasTypeId) {
-		IASTTypeId typeId = hasTypeId ? (IASTTypeId) astStack.pop() : null;
-
-		IASTName name = (IASTName) astStack.pop();
-		if (name == null)
-			name = nodeFactory.newName();
-
-		int type = getTemplateParameterType(stream.getLeftIToken());
-
-		ICPPASTSimpleTypeTemplateParameter templateParameter = nodeFactory.newSimpleTypeTemplateParameter(type, name,
-				typeId);
-
-		setOffsetAndLength(templateParameter);
-		astStack.push(templateParameter);
-	}
-
-	private int getTemplateParameterType(IToken token) {
-		int kind = baseKind(token);
-		switch (kind) {
-		default:
-			assert false : "wrong token kind: " + kind; //$NON-NLS-1$
-		case TK_class:
-			return ICPPASTSimpleTypeTemplateParameter.st_class;
-		case TK_typename:
-			return ICPPASTSimpleTypeTemplateParameter.st_typename;
-		}
-	}
-
-	/**
-	 * Simple type template parameters using the 'class' keyword are being parsed
-	 * wrong due to an ambiguity between type_parameter and parameter_declaration.
-	 *
-	 * eg) template <class T>
-	 *
-	 * The 'class T' part is being parsed as an elaborated type specifier instead
-	 * of a simple type template parameter.
-	 *
-	 * This method detects the incorrect parse, throws away the incorrect AST fragment,
-	 * and replaces it with the correct AST fragment.
-	 *
-	 * Yes its a hack.
-	 */
-	public void consumeTemplateParamterDeclaration() {
-		ISecondaryParser<ICPPASTTemplateParameter> typeParameterParser = parserFactory
-				.getTemplateTypeParameterParser(stream, properties);
-		IASTNode alternate = runSecondaryParser(typeParameterParser);
-
-		if (alternate == null)
-			return;
-
-		astStack.pop(); // throw away the incorrect AST
-		astStack.push(alternate); // replace it with the correct AST
-	}
-
-	/**
-	 * type_parameter
-	 *     ::= 'template' '<' <openscope-ast> template_parameter_list '>' 'class' identifier_name_opt
-	 *       | 'template' '<' <openscope-ast> template_parameter_list '>' 'class' identifier_name_opt '=' id_expression
-	 * @param hasIdExpr
-	 */
-	public void consumeTemplatedTypeTemplateParameter(boolean hasIdExpr) {
-		IASTExpression idExpression = hasIdExpr ? (IASTExpression) astStack.pop() : null;
-		IASTName name = (IASTName) astStack.pop();
-
-		ICPPASTTemplatedTypeTemplateParameter templateParameter = nodeFactory.newTemplatedTypeTemplateParameter(name,
-				idExpression);
-
-		for (Object param : astStack.closeScope())
-			templateParameter.addTemplateParamter((ICPPASTTemplateParameter) param);
-
-		setOffsetAndLength(templateParameter);
-		astStack.push(templateParameter);
-	}
-
-	@Override
-	protected IASTAmbiguousExpression createAmbiguousExpression(IASTExpression... expressions) {
-		return new CPPASTAmbiguousExpression(expressions);
-	}
-
-	@Override
-	protected IASTAmbiguousStatement createAmbiguousStatement(IASTStatement... statements) {
-		return new CPPASTAmbiguousStatement(statements);
-	}
-}
\ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPSecondaryParserFactory.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPSecondaryParserFactory.java
deleted file mode 100644
index c936ea0..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPSecondaryParserFactory.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2015 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.lrparser.action.cpp;
-
-import java.util.Map;
-
-import org.eclipse.cdt.core.dom.ast.IASTDeclarator;
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateParameter;
-import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
-import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPExpressionParser;
-import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPNoCastExpressionParser;
-import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPNoFunctionDeclaratorParser;
-import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPSizeofExpressionParser;
-import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPTemplateTypeParameterParser;
-
-public class CPPSecondaryParserFactory implements ICPPSecondaryParserFactory {
-
-	private static final CPPSecondaryParserFactory DEFAULT_INSTANCE = new CPPSecondaryParserFactory();
-
-	public static CPPSecondaryParserFactory getDefault() {
-		return DEFAULT_INSTANCE;
-	}
-
-	@Override
-	public ISecondaryParser<ICPPASTTemplateParameter> getTemplateTypeParameterParser(ITokenStream stream,
-			Map<String, String> properties) {
-		return new CPPTemplateTypeParameterParser(stream, properties);
-	}
-
-	@Override
-	public ISecondaryParser<IASTDeclarator> getNoFunctionDeclaratorParser(ITokenStream stream,
-			Map<String, String> properties) {
-		return new CPPNoFunctionDeclaratorParser(stream, properties);
-	}
-
-	@Override
-	public ISecondaryParser<IASTExpression> getExpressionParser(ITokenStream stream, Map<String, String> properties) {
-		return new CPPExpressionParser(stream, properties);
-	}
-
-	@Override
-	public ISecondaryParser<IASTExpression> getNoCastExpressionParser(ITokenStream stream,
-			Map<String, String> properties) {
-		return new CPPNoCastExpressionParser(stream, properties);
-	}
-
-	@Override
-	public ISecondaryParser<IASTExpression> getSizeofExpressionParser(ITokenStream stream,
-			Map<String, String> properties) {
-		return new CPPSizeofExpressionParser(stream, properties);
-	}
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/ICPPSecondaryParserFactory.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/ICPPSecondaryParserFactory.java
deleted file mode 100644
index 10af137..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/ICPPSecondaryParserFactory.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.lrparser.action.cpp;
-
-import java.util.Map;
-
-import org.eclipse.cdt.core.dom.ast.IASTDeclarator;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateParameter;
-import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
-import org.eclipse.cdt.core.dom.lrparser.action.ISecondaryParserFactory;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
-
-/**
- * Secondary parsers for resolving ambiguities specific to C++.
- *
- * @author Mike Kucera
- */
-public interface ICPPSecondaryParserFactory extends ISecondaryParserFactory {
-
-	ISecondaryParser<ICPPASTTemplateParameter> getTemplateTypeParameterParser(ITokenStream stream,
-			Map<String, String> properties);
-
-	ISecondaryParser<IASTDeclarator> getNoFunctionDeclaratorParser(ITokenStream stream, Map<String, String> properties);
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GCCBuildASTParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GCCBuildASTParserAction.java
deleted file mode 100644
index cab1adf..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GCCBuildASTParserAction.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.lrparser.action.gnu;
-
-import static org.eclipse.cdt.core.parser.util.CollectionUtils.findFirstAndRemove;
-
-import java.util.List;
-
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-import org.eclipse.cdt.core.dom.ast.IASTName;
-import org.eclipse.cdt.core.dom.ast.c.ICASTFieldDesignator;
-import org.eclipse.cdt.core.dom.ast.c.ICASTSimpleDeclSpecifier;
-import org.eclipse.cdt.core.dom.ast.c.ICNodeFactory;
-import org.eclipse.cdt.core.dom.ast.gnu.c.IGCCASTArrayRangeDesignator;
-import org.eclipse.cdt.core.dom.lrparser.action.ISecondaryParserFactory;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
-import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
-import org.eclipse.cdt.core.dom.lrparser.action.c99.C99BuildASTParserAction;
-
-public class GCCBuildASTParserAction extends C99BuildASTParserAction {
-
-	private final ICNodeFactory nodeFactory;
-
-	public GCCBuildASTParserAction(ITokenStream parser, ScopedStack<Object> astStack, ICNodeFactory nodeFactory,
-			ISecondaryParserFactory parserFactory) {
-		super(parser, astStack, nodeFactory, parserFactory);
-		this.nodeFactory = nodeFactory;
-	}
-
-	/**
-	 * designator_base
-	 *     ::= identifier_token ':'
-	 */
-	public void consumeDesignatorFieldGCC() {
-		IASTName name = createName(stream.getLeftIToken());
-		ICASTFieldDesignator designator = nodeFactory.newFieldDesignator(name);
-		setOffsetAndLength(designator);
-		astStack.push(designator);
-	}
-
-	/**
-	 * designator ::= '[' constant_expression '...' constant_expression']'
-	 */
-	public void consumeDesignatorArrayRange() {
-		IASTExpression ceiling = (IASTExpression) astStack.pop();
-		IASTExpression floor = (IASTExpression) astStack.pop();
-		IGCCASTArrayRangeDesignator designator = nodeFactory.newArrayRangeDesignatorGCC(floor, ceiling);
-		setOffsetAndLength(designator);
-		astStack.push(designator);
-	}
-
-	/**
-	 * typeof_type_specifier
-	 *     ::= 'typeof' unary_expression
-	 *
-	 * typeof_declaration_specifiers
-	 *     ::= typeof_type_specifier
-	 *       | no_type_declaration_specifiers  typeof_type_specifier
-	 *       | typeof_declaration_specifiers no_type_declaration_specifier
-	 *
-	 * declaration_specifiers
-	 *     ::= <openscope-ast> typeof_declaration_specifiers
-	 */
-	public void consumeDeclarationSpecifiersTypeof() {
-		List<Object> topScope = astStack.closeScope();
-
-		// There's an expression somewhere on the stack, find it
-		IASTExpression expr = findFirstAndRemove(topScope, IASTExpression.class);
-		ICASTSimpleDeclSpecifier declSpec = nodeFactory.newSimpleDeclSpecifierGCC(expr);
-
-		// now apply the rest of the specifiers
-		for (Object token : topScope) {
-			setSpecifier(declSpec, token);
-		}
-
-		setOffsetAndLength(declSpec);
-		astStack.push(declSpec);
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GCCSecondaryParserFactory.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GCCSecondaryParserFactory.java
deleted file mode 100644
index 831737c..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GCCSecondaryParserFactory.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2015 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.lrparser.action.gnu;
-
-import java.util.Map;
-
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
-import org.eclipse.cdt.core.dom.lrparser.action.ISecondaryParserFactory;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
-import org.eclipse.cdt.internal.core.dom.lrparser.c99.C99ExpressionParser;
-import org.eclipse.cdt.internal.core.dom.lrparser.c99.C99NoCastExpressionParser;
-import org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCSizeofExpressionParser;
-
-public class GCCSecondaryParserFactory implements ISecondaryParserFactory {
-
-	public static final GCCSecondaryParserFactory DEFAULT_INSTANCE = new GCCSecondaryParserFactory();
-
-	public static GCCSecondaryParserFactory getDefault() {
-		return DEFAULT_INSTANCE;
-	}
-
-	@Override
-	public ISecondaryParser<IASTExpression> getExpressionParser(ITokenStream stream, Map<String, String> properties) {
-		return new C99ExpressionParser(stream, properties);
-	}
-
-	@Override
-	public ISecondaryParser<IASTExpression> getNoCastExpressionParser(ITokenStream stream,
-			Map<String, String> properties) {
-		return new C99NoCastExpressionParser(stream, properties);
-	}
-
-	@Override
-	public ISecondaryParser<IASTExpression> getSizeofExpressionParser(ITokenStream stream,
-			Map<String, String> properties) {
-		return new GCCSizeofExpressionParser(stream, properties);
-	}
-}
\ No newline at end of file
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GNUBuildASTParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GNUBuildASTParserAction.java
deleted file mode 100644
index 21f7c9c..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GNUBuildASTParserAction.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.lrparser.action.gnu;
-
-import java.util.List;
-
-import org.eclipse.cdt.core.dom.ast.IASTASMDeclaration;
-import org.eclipse.cdt.core.dom.ast.IASTCompoundStatement;
-import org.eclipse.cdt.core.dom.ast.IASTName;
-import org.eclipse.cdt.core.dom.ast.INodeFactory;
-import org.eclipse.cdt.core.dom.ast.gnu.IGNUASTCompoundStatementExpression;
-import org.eclipse.cdt.core.dom.lrparser.action.AbstractParserAction;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
-import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
-import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
-import org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym;
-
-import lpg.lpgjavaruntime.IToken;
-
-public class GNUBuildASTParserAction extends AbstractParserAction {
-
-	private final INodeFactory nodeFactory;
-
-	private final TokenMap tokenMap;
-
-	public GNUBuildASTParserAction(ITokenStream parser, ScopedStack<Object> astStack, INodeFactory nodeFactory) {
-		super(parser, astStack);
-
-		this.nodeFactory = nodeFactory;
-		this.tokenMap = new TokenMap(GCCParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols());
-	}
-
-	@Override
-	protected IASTName createName(char[] image) {
-		return nodeFactory.newName(image);
-	}
-
-	@Override
-	protected boolean isCompletionToken(IToken token) {
-		return tokenMap.mapKind(token.getKind()) == GCCParsersym.TK_Completion;
-	}
-
-	/**
-	 * Add support for GCC extended ASM declaration syntax.
-	 *
-	 *
-	 * asm_definition -- same as in C++ but its not in C99 spec so we put it here
-	 *     ::= 'asm' '(' 'stringlit' ')' ';'
-	 *
-	 * extended_asm_declaration
-	 *     ::= 'asm' 'volatile' '(' extended_asm_param_seq ')' ';'
-	 *       | 'asm' '(' extended_asm_param_seq ')' ';'
-	 *
-	 */
-	public void consumeDeclarationASM() {
-		List<IToken> tokens = stream.getRuleTokens();
-
-		int firstToken = 2;
-		if (tokenMap.mapKind(tokens.get(1).getKind()) == GCCParsersym.TK_volatile)
-			firstToken = 3;
-
-		StringBuilder sb = new StringBuilder();
-		boolean first = true;
-		for (IToken token : tokens.subList(firstToken, tokens.size() - 2)) {
-			if (!first)
-				sb.append(' ');
-			sb.append(token.toString());
-			first = false;
-		}
-
-		IASTASMDeclaration asm = nodeFactory.newASMDeclaration(sb.toString());
-		setOffsetAndLength(asm);
-		astStack.push(asm);
-	}
-
-	/**
-	 * primary_expression
-	 *     ::= '(' compound_statement ')'
-	 */
-	public void consumeCompoundStatementExpression() {
-		IASTCompoundStatement compoundStatement = (IASTCompoundStatement) astStack.pop();
-		IGNUASTCompoundStatementExpression expr = nodeFactory.newGNUCompoundStatementExpression(compoundStatement);
-		setOffsetAndLength(expr);
-		astStack.push(expr);
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GPPBuildASTParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GPPBuildASTParserAction.java
deleted file mode 100644
index 8d426ae..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GPPBuildASTParserAction.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2014 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.lrparser.action.gnu;
-
-import static org.eclipse.cdt.core.parser.util.CollectionUtils.findFirstAndRemove;
-
-import java.util.List;
-
-import org.eclipse.cdt.core.dom.ast.IASTDeclaration;
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-import org.eclipse.cdt.core.dom.ast.IASTInitializerList;
-import org.eclipse.cdt.core.dom.ast.IASTPointer;
-import org.eclipse.cdt.core.dom.ast.IASTTypeId;
-import org.eclipse.cdt.core.dom.ast.IASTTypeIdInitializerExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTExplicitTemplateInstantiation;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTPointerToMember;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTSimpleDeclSpecifier;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPNodeFactory;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
-import org.eclipse.cdt.core.dom.lrparser.action.ParserUtil;
-import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
-import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
-import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPBuildASTParserAction;
-import org.eclipse.cdt.core.dom.lrparser.action.cpp.ICPPSecondaryParserFactory;
-import org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym;
-
-import lpg.lpgjavaruntime.IToken;
-
-public class GPPBuildASTParserAction extends CPPBuildASTParserAction {
-	private final ICPPNodeFactory nodeFactory;
-
-	private final ITokenMap gppTokenMap;
-
-	public GPPBuildASTParserAction(ITokenStream stream, ScopedStack<Object> astStack, ICPPNodeFactory nodeFactory,
-			ICPPSecondaryParserFactory parserFactory) {
-		super(stream, astStack, nodeFactory, parserFactory);
-		this.nodeFactory = nodeFactory;
-		this.gppTokenMap = new TokenMap(GPPParsersym.orderedTerminalSymbols, stream.getOrderedTerminalSymbols());
-	}
-
-	/**
-	 * typeof_type_specifier
-	 *     ::= 'typeof' unary_expression
-	 *
-	 * typeof_declaration_specifiers
-	 *     ::= typeof_type_specifier
-	 *       | no_type_declaration_specifiers  typeof_type_specifier
-	 *       | typeof_declaration_specifiers no_type_declaration_specifier
-	 *
-	 * declaration_specifiers
-	 *     ::= <openscope-ast> typeof_declaration_specifiers
-	 */
-	public void consumeDeclarationSpecifiersTypeof() {
-		List<Object> topScope = astStack.closeScope();
-
-		// There's an expression somewhere on the stack, find it
-		IASTExpression expr = findFirstAndRemove(topScope, IASTExpression.class);
-		//CDT_70_FIX_FROM_50-#7
-		ICPPASTSimpleDeclSpecifier declSpec = nodeFactory.newSimpleDeclSpecifier();
-		declSpec.setDeclTypeExpression(expr);
-
-		// now apply the rest of the specifiers
-		for (Object token : topScope) {
-			setSpecifier(declSpec, token);
-		}
-
-		setOffsetAndLength(declSpec);
-		astStack.push(declSpec);
-	}
-
-	/**
-	 * Replacement for the same method in CPPBuildASTParserAction
-	 */
-	@Override
-	public void consumeDeclarationSpecifiersSimple() {
-		boolean isComplex = false;
-		boolean isImaginary = false;
-		int numLong = 0;
-
-		List<Object> tokens = astStack.closeScope();
-
-		for (Object o : tokens) {
-			if (o instanceof IToken) {
-				IToken token = (IToken) o;
-				switch (gppTokenMap.mapKind(token.getKind())) {
-				case GPPParsersym.TK__Complex:
-					isComplex = true;
-					break;
-				case GPPParsersym.TK__Imaginary:
-					isImaginary = true;
-					break;
-				case GPPParsersym.TK_long:
-					numLong++;
-					break;
-				}
-			}
-		}
-		//CDT_70_FIX_FROM_50-#7
-		ICPPASTSimpleDeclSpecifier declSpec = nodeFactory.newSimpleDeclSpecifier();
-		if (isComplex || isImaginary || numLong > 1) {
-			// IGPPASTSimpleDeclSpecifier gppDeclSpec = nodeFactory.newSimpleDeclSpecifierGPP();
-			declSpec.setComplex(isComplex);
-			declSpec.setImaginary(isImaginary);
-			declSpec.setLongLong(numLong > 1);
-			declSpec.setLong(numLong == 1);
-			//declSpec = gppDeclSpec;
-		} else {
-			declSpec = nodeFactory.newSimpleDeclSpecifier();
-		}
-
-		for (Object token : tokens) {
-			setSpecifier(declSpec, token);
-		}
-
-		setOffsetAndLength(declSpec);
-		astStack.push(declSpec);
-	}
-
-	private boolean hasRestrict(List<Object> tokens) {
-		for (Object o : tokens) {
-			IToken t = (IToken) o;
-			if (gppTokenMap.mapKind(t.getKind()) == GPPParsersym.TK_restrict) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Restrict is allowed as a keyword.
-	 */
-	@Override
-	public void consumePointer() {
-		boolean hasRestrict = hasRestrict(astStack.topScope());
-		super.consumePointer();
-
-		if (hasRestrict) {
-			IASTPointer gppPointer = nodeFactory.newPointer();
-			initializePointer((IASTPointer) astStack.pop(), gppPointer);
-			astStack.push(gppPointer);
-		}
-	}
-
-	private static void initializePointer(IASTPointer pointer, IASTPointer gppPointer) {
-		gppPointer.setConst(pointer.isConst());
-		gppPointer.setVolatile(pointer.isVolatile());
-		gppPointer.setRestrict(true);
-		ParserUtil.setOffsetAndLength(gppPointer, pointer);
-	}
-
-	@Override
-	public void consumePointerToMember() {
-		boolean hasRestrict = hasRestrict(astStack.topScope());
-		super.consumePointerToMember();
-
-		if (hasRestrict) {
-			ICPPASTPointerToMember pointer = (ICPPASTPointerToMember) astStack.pop();
-			ICPPASTPointerToMember gppPointer = nodeFactory.newPointerToMember(pointer.getName());
-			initializePointer(pointer, gppPointer);
-			astStack.push(gppPointer);
-		}
-
-	}
-
-	public void consumeTemplateExplicitInstantiationGCC(int modifier) {
-		IASTDeclaration declaration = (IASTDeclaration) astStack.pop();
-		ICPPASTExplicitTemplateInstantiation instantiation = nodeFactory.newExplicitTemplateInstantiation(declaration);
-		instantiation.setModifier(modifier);
-		setOffsetAndLength(instantiation);
-		astStack.push(instantiation);
-	}
-
-	/**
-	 * postfix_expression ::= '(' type_id ')' initializer_list
-	 */
-	public void consumeExpressionTypeIdInitializer() {
-		IASTInitializerList list = (IASTInitializerList) astStack.pop();
-		IASTTypeId typeId = (IASTTypeId) astStack.pop();
-		IASTTypeIdInitializerExpression expr = nodeFactory.newTypeIdInitializerExpression(typeId, list);
-		setOffsetAndLength(expr);
-		astStack.push(expr);
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GPPSecondaryParserFactory.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GPPSecondaryParserFactory.java
deleted file mode 100644
index 7c2e1c8..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/gnu/GPPSecondaryParserFactory.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2015 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.lrparser.action.gnu;
-
-import java.util.Map;
-
-import org.eclipse.cdt.core.dom.ast.IASTDeclarator;
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateParameter;
-import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
-import org.eclipse.cdt.core.dom.lrparser.action.cpp.ICPPSecondaryParserFactory;
-import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPExpressionParser;
-import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPNoCastExpressionParser;
-import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPNoFunctionDeclaratorParser;
-import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPTemplateTypeParameterParser;
-import org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPSizeofExpressionParser;
-
-public class GPPSecondaryParserFactory implements ICPPSecondaryParserFactory {
-
-	private static final GPPSecondaryParserFactory DEFAULT_INSTANCE = new GPPSecondaryParserFactory();
-
-	public static GPPSecondaryParserFactory getDefault() {
-		return DEFAULT_INSTANCE;
-	}
-
-	@Override
-	public ISecondaryParser<ICPPASTTemplateParameter> getTemplateTypeParameterParser(ITokenStream stream,
-			Map<String, String> properties) {
-		return new CPPTemplateTypeParameterParser(stream, properties);
-	}
-
-	@Override
-	public ISecondaryParser<IASTDeclarator> getNoFunctionDeclaratorParser(ITokenStream stream,
-			Map<String, String> properties) {
-		return new CPPNoFunctionDeclaratorParser(stream, properties);
-	}
-
-	@Override
-	public ISecondaryParser<IASTExpression> getExpressionParser(ITokenStream stream, Map<String, String> properties) {
-		return new CPPExpressionParser(stream, properties);
-	}
-
-	@Override
-	public ISecondaryParser<IASTExpression> getNoCastExpressionParser(ITokenStream stream,
-			Map<String, String> properties) {
-		return new CPPNoCastExpressionParser(stream, properties);
-	}
-
-	@Override
-	public ISecondaryParser<IASTExpression> getSizeofExpressionParser(ITokenStream stream,
-			Map<String, String> properties) {
-		return new GPPSizeofExpressionParser(stream, properties);
-	}
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/c99/C99Language.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/c99/C99Language.java
deleted file mode 100644
index 6ba449b..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/c99/C99Language.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2015 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.lrparser.c99;
-
-import java.util.Map;
-
-import org.eclipse.cdt.core.dom.ILinkage;
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage;
-import org.eclipse.cdt.core.dom.lrparser.IParser;
-import org.eclipse.cdt.core.dom.lrparser.ScannerExtensionConfiguration;
-import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
-import org.eclipse.cdt.core.dom.parser.IScannerExtensionConfiguration;
-import org.eclipse.cdt.core.dom.parser.c.ANSICParserExtensionConfiguration;
-import org.eclipse.cdt.core.index.IIndex;
-import org.eclipse.cdt.core.parser.IScanner;
-import org.eclipse.cdt.core.parser.ParserLanguage;
-import org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parser;
-
-/**
- * ILanguage implementation for the C99 parser.
- *
- * @author Mike Kucera
- */
-public class C99Language extends BaseExtensibleLanguage {
-
-	public static final String ID = "org.eclipse.cdt.core.lrparser.c99"; //$NON-NLS-1$
-
-	private static C99Language DEFAULT = new C99Language();
-
-	public static C99Language getDefault() {
-		return DEFAULT;
-	}
-
-	@Override
-	protected IParser<IASTTranslationUnit> getParser(IScanner scanner, IIndex index, Map<String, String> properties) {
-		return new C99Parser(scanner, DOMToC99TokenMap.DEFAULT_MAP, getBuiltinBindingsProvider(), index, properties);
-	}
-
-	@Override
-	protected IScannerExtensionConfiguration getScannerExtensionConfiguration() {
-		return ScannerExtensionConfiguration.createC();
-	}
-
-	@Override
-	public String getId() {
-		return ID;
-	}
-
-	@Override
-	public int getLinkageID() {
-		return ILinkage.C_LINKAGE_ID;
-	}
-
-	@Override
-	protected ParserLanguage getParserLanguage() {
-		return ParserLanguage.C;
-	}
-
-	private IBuiltinBindingsProvider getBuiltinBindingsProvider() {
-		return new ANSICParserExtensionConfiguration().getBuiltinBindingsProvider();
-	}
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/c99/DOMToC99TokenMap.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/c99/DOMToC99TokenMap.java
deleted file mode 100644
index b49ed62..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/c99/DOMToC99TokenMap.java
+++ /dev/null
@@ -1,441 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2015 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.lrparser.c99;
-
-import static org.eclipse.cdt.core.parser.IToken.tAMPER;
-import static org.eclipse.cdt.core.parser.IToken.tAMPERASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tAND;
-import static org.eclipse.cdt.core.parser.IToken.tARROW;
-import static org.eclipse.cdt.core.parser.IToken.tASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tBITCOMPLEMENT;
-import static org.eclipse.cdt.core.parser.IToken.tBITOR;
-import static org.eclipse.cdt.core.parser.IToken.tBITORASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tCHAR;
-import static org.eclipse.cdt.core.parser.IToken.tCOLON;
-import static org.eclipse.cdt.core.parser.IToken.tCOMMA;
-import static org.eclipse.cdt.core.parser.IToken.tCOMPLETION;
-import static org.eclipse.cdt.core.parser.IToken.tDECR;
-import static org.eclipse.cdt.core.parser.IToken.tDIV;
-import static org.eclipse.cdt.core.parser.IToken.tDIVASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tDOT;
-import static org.eclipse.cdt.core.parser.IToken.tELLIPSIS;
-import static org.eclipse.cdt.core.parser.IToken.tEND_OF_INPUT;
-import static org.eclipse.cdt.core.parser.IToken.tEOC;
-import static org.eclipse.cdt.core.parser.IToken.tEQUAL;
-import static org.eclipse.cdt.core.parser.IToken.tFLOATINGPT;
-import static org.eclipse.cdt.core.parser.IToken.tGT;
-import static org.eclipse.cdt.core.parser.IToken.tGTEQUAL;
-import static org.eclipse.cdt.core.parser.IToken.tIDENTIFIER;
-import static org.eclipse.cdt.core.parser.IToken.tINCR;
-import static org.eclipse.cdt.core.parser.IToken.tINTEGER;
-import static org.eclipse.cdt.core.parser.IToken.tLBRACE;
-import static org.eclipse.cdt.core.parser.IToken.tLBRACKET;
-import static org.eclipse.cdt.core.parser.IToken.tLCHAR;
-import static org.eclipse.cdt.core.parser.IToken.tLPAREN;
-import static org.eclipse.cdt.core.parser.IToken.tLSTRING;
-import static org.eclipse.cdt.core.parser.IToken.tLT;
-import static org.eclipse.cdt.core.parser.IToken.tLTEQUAL;
-import static org.eclipse.cdt.core.parser.IToken.tMINUS;
-import static org.eclipse.cdt.core.parser.IToken.tMINUSASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tMOD;
-import static org.eclipse.cdt.core.parser.IToken.tMODASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tNOT;
-import static org.eclipse.cdt.core.parser.IToken.tNOTEQUAL;
-import static org.eclipse.cdt.core.parser.IToken.tOR;
-import static org.eclipse.cdt.core.parser.IToken.tPLUS;
-import static org.eclipse.cdt.core.parser.IToken.tPLUSASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tQUESTION;
-import static org.eclipse.cdt.core.parser.IToken.tRBRACE;
-import static org.eclipse.cdt.core.parser.IToken.tRBRACKET;
-import static org.eclipse.cdt.core.parser.IToken.tRPAREN;
-import static org.eclipse.cdt.core.parser.IToken.tSEMI;
-import static org.eclipse.cdt.core.parser.IToken.tSHIFTL;
-import static org.eclipse.cdt.core.parser.IToken.tSHIFTLASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tSHIFTR;
-import static org.eclipse.cdt.core.parser.IToken.tSHIFTRASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tSTAR;
-import static org.eclipse.cdt.core.parser.IToken.tSTARASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tSTRING;
-import static org.eclipse.cdt.core.parser.IToken.tUNKNOWN_CHAR;
-import static org.eclipse.cdt.core.parser.IToken.tUTF16CHAR;
-import static org.eclipse.cdt.core.parser.IToken.tUTF16STRING;
-import static org.eclipse.cdt.core.parser.IToken.tUTF32CHAR;
-import static org.eclipse.cdt.core.parser.IToken.tUTF32STRING;
-import static org.eclipse.cdt.core.parser.IToken.tXOR;
-import static org.eclipse.cdt.core.parser.IToken.tXORASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.t__Bool;
-import static org.eclipse.cdt.core.parser.IToken.t__Complex;
-import static org.eclipse.cdt.core.parser.IToken.t__Imaginary;
-import static org.eclipse.cdt.core.parser.IToken.t_auto;
-import static org.eclipse.cdt.core.parser.IToken.t_break;
-import static org.eclipse.cdt.core.parser.IToken.t_case;
-import static org.eclipse.cdt.core.parser.IToken.t_char;
-import static org.eclipse.cdt.core.parser.IToken.t_const;
-import static org.eclipse.cdt.core.parser.IToken.t_continue;
-import static org.eclipse.cdt.core.parser.IToken.t_default;
-import static org.eclipse.cdt.core.parser.IToken.t_do;
-import static org.eclipse.cdt.core.parser.IToken.t_double;
-import static org.eclipse.cdt.core.parser.IToken.t_else;
-import static org.eclipse.cdt.core.parser.IToken.t_enum;
-import static org.eclipse.cdt.core.parser.IToken.t_extern;
-import static org.eclipse.cdt.core.parser.IToken.t_float;
-import static org.eclipse.cdt.core.parser.IToken.t_for;
-import static org.eclipse.cdt.core.parser.IToken.t_goto;
-import static org.eclipse.cdt.core.parser.IToken.t_if;
-import static org.eclipse.cdt.core.parser.IToken.t_inline;
-import static org.eclipse.cdt.core.parser.IToken.t_int;
-import static org.eclipse.cdt.core.parser.IToken.t_long;
-import static org.eclipse.cdt.core.parser.IToken.t_register;
-import static org.eclipse.cdt.core.parser.IToken.t_restrict;
-import static org.eclipse.cdt.core.parser.IToken.t_return;
-import static org.eclipse.cdt.core.parser.IToken.t_short;
-import static org.eclipse.cdt.core.parser.IToken.t_signed;
-import static org.eclipse.cdt.core.parser.IToken.t_sizeof;
-import static org.eclipse.cdt.core.parser.IToken.t_static;
-import static org.eclipse.cdt.core.parser.IToken.t_struct;
-import static org.eclipse.cdt.core.parser.IToken.t_switch;
-import static org.eclipse.cdt.core.parser.IToken.t_typedef;
-import static org.eclipse.cdt.core.parser.IToken.t_union;
-import static org.eclipse.cdt.core.parser.IToken.t_unsigned;
-import static org.eclipse.cdt.core.parser.IToken.t_void;
-import static org.eclipse.cdt.core.parser.IToken.t_volatile;
-import static org.eclipse.cdt.core.parser.IToken.t_while;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_And;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_AndAnd;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_AndAssign;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_Arrow;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_Assign;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_Bang;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_Caret;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_CaretAssign;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_Colon;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_Comma;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_Completion;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_Dot;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_DotDotDot;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_EOF_TOKEN;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_EQ;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_EndOfCompletion;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_GE;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_GT;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_Invalid;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_LE;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_LT;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_LeftBrace;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_LeftBracket;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_LeftParen;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_LeftShift;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_LeftShiftAssign;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_Minus;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_MinusAssign;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_MinusMinus;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_NE;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_Or;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_OrAssign;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_OrOr;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_Percent;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_PercentAssign;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_Plus;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_PlusAssign;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_PlusPlus;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_Question;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_RightBrace;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_RightBracket;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_RightParen;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_RightShift;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_RightShiftAssign;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_SemiColon;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_Slash;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_SlashAssign;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_Star;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_StarAssign;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_Tilde;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK__Bool;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK__Complex;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK__Imaginary;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_auto;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_break;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_case;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_char;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_charconst;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_const;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_continue;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_default;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_do;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_double;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_else;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_enum;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_extern;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_float;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_floating;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_for;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_goto;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_identifier;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_if;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_inline;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_int;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_integer;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_long;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_register;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_restrict;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_return;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_short;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_signed;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_sizeof;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_static;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_stringlit;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_struct;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_switch;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_typedef;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_union;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_unsigned;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_void;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_volatile;
-import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_while;
-
-import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
-import org.eclipse.cdt.core.parser.IToken;
-
-/**
- * Maps tokens types returned by CPreprocessor to token types
- * expected by the C99 parser.
- *
- * @author Mike Kucera
- */
-public final class DOMToC99TokenMap implements IDOMTokenMap {
-
-	public static final DOMToC99TokenMap DEFAULT_MAP = new DOMToC99TokenMap();
-
-	private DOMToC99TokenMap() {
-		// just a private constructor
-	}
-
-	@Override
-	public int getEOFTokenKind() {
-		return TK_EOF_TOKEN;
-	}
-
-	@Override
-	public int getEOCTokenKind() {
-		return TK_EndOfCompletion;
-	}
-
-	@Override
-	public int mapKind(IToken token) {
-
-		switch (token.getType()) {
-		case tIDENTIFIER:
-			return TK_identifier;
-		case tINTEGER:
-			return TK_integer;
-		case tCOLON:
-			return TK_Colon;
-		case tSEMI:
-			return TK_SemiColon;
-		case tCOMMA:
-			return TK_Comma;
-		case tQUESTION:
-			return TK_Question;
-		case tLPAREN:
-			return TK_LeftParen;
-		case tRPAREN:
-			return TK_RightParen;
-		case tLBRACKET:
-			return TK_LeftBracket;
-		case tRBRACKET:
-			return TK_RightBracket;
-		case tLBRACE:
-			return TK_LeftBrace;
-		case tRBRACE:
-			return TK_RightBrace;
-		case tPLUSASSIGN:
-			return TK_PlusAssign;
-		case tINCR:
-			return TK_PlusPlus;
-		case tPLUS:
-			return TK_Plus;
-		case tMINUSASSIGN:
-			return TK_MinusAssign;
-		case tDECR:
-			return TK_MinusMinus;
-		case tARROW:
-			return TK_Arrow;
-		case tMINUS:
-			return TK_Minus;
-		case tSTARASSIGN:
-			return TK_StarAssign;
-		case tSTAR:
-			return TK_Star;
-		case tMODASSIGN:
-			return TK_PercentAssign;
-		case tMOD:
-			return TK_Percent;
-		case tXORASSIGN:
-			return TK_CaretAssign;
-		case tXOR:
-			return TK_Caret;
-		case tAMPERASSIGN:
-			return TK_AndAssign;
-		case tAND:
-			return TK_AndAnd;
-		case tAMPER:
-			return TK_And;
-		case tBITORASSIGN:
-			return TK_OrAssign;
-		case tOR:
-			return TK_OrOr;
-		case tBITOR:
-			return TK_Or;
-		case tBITCOMPLEMENT:
-			return TK_Tilde;
-		case tNOTEQUAL:
-			return TK_NE;
-		case tNOT:
-			return TK_Bang;
-		case tEQUAL:
-			return TK_EQ;
-		case tASSIGN:
-			return TK_Assign;
-		case tUNKNOWN_CHAR:
-			return TK_Invalid;
-		case tSHIFTL:
-			return TK_LeftShift;
-		case tLTEQUAL:
-			return TK_LE;
-		case tLT:
-			return TK_LT;
-		case tSHIFTRASSIGN:
-			return TK_RightShiftAssign;
-		case tSHIFTR:
-			return TK_RightShift;
-		case tGTEQUAL:
-			return TK_GE;
-		case tGT:
-			return TK_GT;
-		case tSHIFTLASSIGN:
-			return TK_LeftShiftAssign;
-		case tELLIPSIS:
-			return TK_DotDotDot;
-		case tDOT:
-			return TK_Dot;
-		case tDIVASSIGN:
-			return TK_SlashAssign;
-		case tDIV:
-			return TK_Slash;
-
-		case t_auto:
-			return TK_auto;
-		case t_break:
-			return TK_break;
-		case t_case:
-			return TK_case;
-		case t_char:
-			return TK_char;
-		case t_const:
-			return TK_const;
-		case t_continue:
-			return TK_continue;
-		case t_default:
-			return TK_default;
-		case t_do:
-			return TK_do;
-		case t_double:
-			return TK_double;
-		case t_else:
-			return TK_else;
-		case t_enum:
-			return TK_enum;
-		case t_extern:
-			return TK_extern;
-		case t_float:
-			return TK_float;
-		case t_for:
-			return TK_for;
-		case t_goto:
-			return TK_goto;
-		case t_if:
-			return TK_if;
-		case t_inline:
-			return TK_inline;
-		case t_int:
-			return TK_int;
-		case t_long:
-			return TK_long;
-		case t_register:
-			return TK_register;
-		case t_return:
-			return TK_return;
-		case t_short:
-			return TK_short;
-		case t_sizeof:
-			return TK_sizeof;
-		case t_static:
-			return TK_static;
-		case t_signed:
-			return TK_signed;
-		case t_struct:
-			return TK_struct;
-		case t_switch:
-			return TK_switch;
-		case t_typedef:
-			return TK_typedef;
-		case t_union:
-			return TK_union;
-		case t_unsigned:
-			return TK_unsigned;
-		case t_void:
-			return TK_void;
-		case t_volatile:
-			return TK_volatile;
-		case t_while:
-			return TK_while;
-		case tFLOATINGPT:
-			return TK_floating;
-		case tSTRING:
-			return TK_stringlit;
-		case tLSTRING:
-			return TK_stringlit;
-		case tUTF16STRING:
-			return TK_stringlit;
-		case tUTF32STRING:
-			return TK_stringlit;
-		case tCHAR:
-			return TK_charconst;
-		case tLCHAR:
-			return TK_charconst;
-		case tUTF16CHAR:
-			return TK_charconst;
-		case tUTF32CHAR:
-			return TK_charconst;
-		case t__Bool:
-			return TK__Bool;
-		case t__Complex:
-			return TK__Complex;
-		case t__Imaginary:
-			return TK__Imaginary;
-		case t_restrict:
-			return TK_restrict;
-		case tCOMPLETION:
-			return TK_Completion;
-		case tEOC:
-			return TK_EndOfCompletion;
-		case tEND_OF_INPUT:
-			return TK_EOF_TOKEN;
-
-		default:
-			assert false : "token not recognized by the C99 parser: " + token.getType(); //$NON-NLS-1$
-			return TK_Invalid;
-		}
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/cpp/DOMToISOCPPTokenMap.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/cpp/DOMToISOCPPTokenMap.java
deleted file mode 100644
index fe465f6..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/cpp/DOMToISOCPPTokenMap.java
+++ /dev/null
@@ -1,562 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2015 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.lrparser.cpp;
-
-import static org.eclipse.cdt.core.parser.IToken.tAMPER;
-import static org.eclipse.cdt.core.parser.IToken.tAMPERASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tAND;
-import static org.eclipse.cdt.core.parser.IToken.tARROW;
-import static org.eclipse.cdt.core.parser.IToken.tARROWSTAR;
-import static org.eclipse.cdt.core.parser.IToken.tASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tBITCOMPLEMENT;
-import static org.eclipse.cdt.core.parser.IToken.tBITOR;
-import static org.eclipse.cdt.core.parser.IToken.tBITORASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tCHAR;
-import static org.eclipse.cdt.core.parser.IToken.tCOLON;
-import static org.eclipse.cdt.core.parser.IToken.tCOLONCOLON;
-import static org.eclipse.cdt.core.parser.IToken.tCOMMA;
-import static org.eclipse.cdt.core.parser.IToken.tCOMPLETION;
-import static org.eclipse.cdt.core.parser.IToken.tDECR;
-import static org.eclipse.cdt.core.parser.IToken.tDIV;
-import static org.eclipse.cdt.core.parser.IToken.tDIVASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tDOT;
-import static org.eclipse.cdt.core.parser.IToken.tDOTSTAR;
-import static org.eclipse.cdt.core.parser.IToken.tELLIPSIS;
-import static org.eclipse.cdt.core.parser.IToken.tEND_OF_INPUT;
-import static org.eclipse.cdt.core.parser.IToken.tEOC;
-import static org.eclipse.cdt.core.parser.IToken.tEQUAL;
-import static org.eclipse.cdt.core.parser.IToken.tFLOATINGPT;
-import static org.eclipse.cdt.core.parser.IToken.tGT;
-import static org.eclipse.cdt.core.parser.IToken.tGTEQUAL;
-import static org.eclipse.cdt.core.parser.IToken.tIDENTIFIER;
-import static org.eclipse.cdt.core.parser.IToken.tINCR;
-import static org.eclipse.cdt.core.parser.IToken.tINTEGER;
-import static org.eclipse.cdt.core.parser.IToken.tLBRACE;
-import static org.eclipse.cdt.core.parser.IToken.tLBRACKET;
-import static org.eclipse.cdt.core.parser.IToken.tLCHAR;
-import static org.eclipse.cdt.core.parser.IToken.tLPAREN;
-import static org.eclipse.cdt.core.parser.IToken.tLSTRING;
-import static org.eclipse.cdt.core.parser.IToken.tLT;
-import static org.eclipse.cdt.core.parser.IToken.tLTEQUAL;
-import static org.eclipse.cdt.core.parser.IToken.tMINUS;
-import static org.eclipse.cdt.core.parser.IToken.tMINUSASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tMOD;
-import static org.eclipse.cdt.core.parser.IToken.tMODASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tNOT;
-import static org.eclipse.cdt.core.parser.IToken.tNOTEQUAL;
-import static org.eclipse.cdt.core.parser.IToken.tOR;
-import static org.eclipse.cdt.core.parser.IToken.tPLUS;
-import static org.eclipse.cdt.core.parser.IToken.tPLUSASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tPOUND;
-import static org.eclipse.cdt.core.parser.IToken.tQUESTION;
-import static org.eclipse.cdt.core.parser.IToken.tRBRACE;
-import static org.eclipse.cdt.core.parser.IToken.tRBRACKET;
-import static org.eclipse.cdt.core.parser.IToken.tRPAREN;
-import static org.eclipse.cdt.core.parser.IToken.tSEMI;
-import static org.eclipse.cdt.core.parser.IToken.tSHIFTL;
-import static org.eclipse.cdt.core.parser.IToken.tSHIFTLASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tSHIFTR;
-import static org.eclipse.cdt.core.parser.IToken.tSHIFTRASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tSTAR;
-import static org.eclipse.cdt.core.parser.IToken.tSTARASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tSTRING;
-import static org.eclipse.cdt.core.parser.IToken.tUNKNOWN_CHAR;
-import static org.eclipse.cdt.core.parser.IToken.tUTF16CHAR;
-import static org.eclipse.cdt.core.parser.IToken.tUTF16STRING;
-import static org.eclipse.cdt.core.parser.IToken.tUTF32CHAR;
-import static org.eclipse.cdt.core.parser.IToken.tUTF32STRING;
-import static org.eclipse.cdt.core.parser.IToken.tXOR;
-import static org.eclipse.cdt.core.parser.IToken.tXORASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.t_asm;
-import static org.eclipse.cdt.core.parser.IToken.t_auto;
-import static org.eclipse.cdt.core.parser.IToken.t_bool;
-import static org.eclipse.cdt.core.parser.IToken.t_break;
-import static org.eclipse.cdt.core.parser.IToken.t_case;
-import static org.eclipse.cdt.core.parser.IToken.t_catch;
-import static org.eclipse.cdt.core.parser.IToken.t_char;
-import static org.eclipse.cdt.core.parser.IToken.t_class;
-import static org.eclipse.cdt.core.parser.IToken.t_const;
-import static org.eclipse.cdt.core.parser.IToken.t_const_cast;
-import static org.eclipse.cdt.core.parser.IToken.t_continue;
-import static org.eclipse.cdt.core.parser.IToken.t_default;
-import static org.eclipse.cdt.core.parser.IToken.t_delete;
-import static org.eclipse.cdt.core.parser.IToken.t_do;
-import static org.eclipse.cdt.core.parser.IToken.t_double;
-import static org.eclipse.cdt.core.parser.IToken.t_dynamic_cast;
-import static org.eclipse.cdt.core.parser.IToken.t_else;
-import static org.eclipse.cdt.core.parser.IToken.t_enum;
-import static org.eclipse.cdt.core.parser.IToken.t_explicit;
-import static org.eclipse.cdt.core.parser.IToken.t_export;
-import static org.eclipse.cdt.core.parser.IToken.t_extern;
-import static org.eclipse.cdt.core.parser.IToken.t_false;
-import static org.eclipse.cdt.core.parser.IToken.t_float;
-import static org.eclipse.cdt.core.parser.IToken.t_for;
-import static org.eclipse.cdt.core.parser.IToken.t_friend;
-import static org.eclipse.cdt.core.parser.IToken.t_goto;
-import static org.eclipse.cdt.core.parser.IToken.t_if;
-import static org.eclipse.cdt.core.parser.IToken.t_inline;
-import static org.eclipse.cdt.core.parser.IToken.t_int;
-import static org.eclipse.cdt.core.parser.IToken.t_long;
-import static org.eclipse.cdt.core.parser.IToken.t_mutable;
-import static org.eclipse.cdt.core.parser.IToken.t_namespace;
-import static org.eclipse.cdt.core.parser.IToken.t_new;
-import static org.eclipse.cdt.core.parser.IToken.t_operator;
-import static org.eclipse.cdt.core.parser.IToken.t_private;
-import static org.eclipse.cdt.core.parser.IToken.t_protected;
-import static org.eclipse.cdt.core.parser.IToken.t_public;
-import static org.eclipse.cdt.core.parser.IToken.t_register;
-import static org.eclipse.cdt.core.parser.IToken.t_reinterpret_cast;
-import static org.eclipse.cdt.core.parser.IToken.t_return;
-import static org.eclipse.cdt.core.parser.IToken.t_short;
-import static org.eclipse.cdt.core.parser.IToken.t_signed;
-import static org.eclipse.cdt.core.parser.IToken.t_sizeof;
-import static org.eclipse.cdt.core.parser.IToken.t_static;
-import static org.eclipse.cdt.core.parser.IToken.t_static_cast;
-import static org.eclipse.cdt.core.parser.IToken.t_struct;
-import static org.eclipse.cdt.core.parser.IToken.t_switch;
-import static org.eclipse.cdt.core.parser.IToken.t_template;
-import static org.eclipse.cdt.core.parser.IToken.t_this;
-import static org.eclipse.cdt.core.parser.IToken.t_throw;
-import static org.eclipse.cdt.core.parser.IToken.t_true;
-import static org.eclipse.cdt.core.parser.IToken.t_try;
-import static org.eclipse.cdt.core.parser.IToken.t_typedef;
-import static org.eclipse.cdt.core.parser.IToken.t_typeid;
-import static org.eclipse.cdt.core.parser.IToken.t_typename;
-import static org.eclipse.cdt.core.parser.IToken.t_union;
-import static org.eclipse.cdt.core.parser.IToken.t_unsigned;
-import static org.eclipse.cdt.core.parser.IToken.t_using;
-import static org.eclipse.cdt.core.parser.IToken.t_virtual;
-import static org.eclipse.cdt.core.parser.IToken.t_void;
-import static org.eclipse.cdt.core.parser.IToken.t_volatile;
-import static org.eclipse.cdt.core.parser.IToken.t_wchar_t;
-import static org.eclipse.cdt.core.parser.IToken.t_while;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_And;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_AndAnd;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_AndAssign;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_Arrow;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_ArrowStar;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_Assign;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_Bang;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_Caret;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_CaretAssign;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_Colon;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_ColonColon;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_Comma;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_Completion;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_Dot;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_DotDotDot;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_DotStar;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_EOF_TOKEN;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_EQ;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_EndOfCompletion;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_GE;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_GT;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_Invalid;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_LE;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_LT;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_LeftBrace;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_LeftBracket;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_LeftParen;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_LeftShift;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_LeftShiftAssign;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_Minus;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_MinusAssign;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_MinusMinus;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_NE;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_Or;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_OrAssign;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_OrOr;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_Percent;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_PercentAssign;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_Plus;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_PlusAssign;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_PlusPlus;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_Question;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_RightBrace;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_RightBracket;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_RightParen;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_RightShift;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_RightShiftAssign;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_SemiColon;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_Slash;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_SlashAssign;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_Star;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_StarAssign;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_Tilde;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_asm;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_auto;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_bool;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_break;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_case;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_catch;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_char;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_charconst;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_class;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_const;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_const_cast;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_continue;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_default;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_delete;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_do;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_double;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_dynamic_cast;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_else;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_enum;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_explicit;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_export;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_extern;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_false;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_float;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_floating;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_for;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_friend;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_goto;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_identifier;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_if;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_inline;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_int;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_integer;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_long;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_mutable;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_namespace;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_new;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_operator;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_private;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_protected;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_public;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_register;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_reinterpret_cast;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_return;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_short;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_signed;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_sizeof;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_static;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_static_cast;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_stringlit;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_struct;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_switch;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_template;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_this;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_throw;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_true;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_try;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_typedef;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_typeid;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_typename;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_union;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_unsigned;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_using;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_virtual;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_void;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_volatile;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_wchar_t;
-import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_while;
-
-import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
-import org.eclipse.cdt.core.parser.IToken;
-
-/**
- * Maps tokens types returned by CPreprocessor to token types
- * expected by the C++ parser.
- *
- * @author Mike Kucera
- */
-public class DOMToISOCPPTokenMap implements IDOMTokenMap {
-
-	public static final DOMToISOCPPTokenMap DEFAULT_MAP = new DOMToISOCPPTokenMap();
-
-	private DOMToISOCPPTokenMap() {
-		// just a private constructor
-	}
-
-	@Override
-	public int getEOFTokenKind() {
-		return TK_EOF_TOKEN;
-	}
-
-	@Override
-	public int getEOCTokenKind() {
-		return TK_EndOfCompletion;
-	}
-
-	@Override
-	public int mapKind(IToken token) {
-
-		switch (token.getType()) {
-		case tIDENTIFIER:
-			return TK_identifier;
-		case tINTEGER:
-			return TK_integer;
-		case tCOLONCOLON:
-			return TK_ColonColon;
-		case tCOLON:
-			return TK_Colon;
-		case tSEMI:
-			return TK_SemiColon;
-		case tCOMMA:
-			return TK_Comma;
-		case tQUESTION:
-			return TK_Question;
-		case tLPAREN:
-			return TK_LeftParen;
-		case tRPAREN:
-			return TK_RightParen;
-		case tLBRACKET:
-			return TK_LeftBracket;
-		case tRBRACKET:
-			return TK_RightBracket;
-		case tLBRACE:
-			return TK_LeftBrace;
-		case tRBRACE:
-			return TK_RightBrace;
-		case tPLUSASSIGN:
-			return TK_PlusAssign;
-		case tINCR:
-			return TK_PlusPlus;
-		case tPLUS:
-			return TK_Plus;
-		case tMINUSASSIGN:
-			return TK_MinusAssign;
-		case tDECR:
-			return TK_MinusMinus;
-		case tARROWSTAR:
-			return TK_ArrowStar;
-		case tARROW:
-			return TK_Arrow;
-		case tMINUS:
-			return TK_Minus;
-		case tSTARASSIGN:
-			return TK_StarAssign;
-		case tSTAR:
-			return TK_Star;
-		case tMODASSIGN:
-			return TK_PercentAssign;
-		case tMOD:
-			return TK_Percent;
-		case tXORASSIGN:
-			return TK_CaretAssign;
-		case tXOR:
-			return TK_Caret;
-		case tAMPERASSIGN:
-			return TK_AndAssign;
-		case tAND:
-			return TK_AndAnd;
-		case tAMPER:
-			return TK_And;
-		case tBITORASSIGN:
-			return TK_OrAssign;
-		case tOR:
-			return TK_OrOr;
-		case tBITOR:
-			return TK_Or;
-		case tBITCOMPLEMENT:
-			return TK_Tilde;
-		case tNOTEQUAL:
-			return TK_NE;
-		case tNOT:
-			return TK_Bang;
-		case tEQUAL:
-			return TK_EQ;
-		case tASSIGN:
-			return TK_Assign;
-		case tUNKNOWN_CHAR:
-			return TK_Invalid;
-		case tSHIFTL:
-			return TK_LeftShift;
-		case tLTEQUAL:
-			return TK_LE;
-		case tLT:
-			return TK_LT;
-		case tSHIFTRASSIGN:
-			return TK_RightShiftAssign;
-		case tSHIFTR:
-			return TK_RightShift;
-		case tGTEQUAL:
-			return TK_GE;
-		case tGT:
-			return TK_GT;
-		case tSHIFTLASSIGN:
-			return TK_LeftShiftAssign;
-		case tELLIPSIS:
-			return TK_DotDotDot;
-		case tDOTSTAR:
-			return TK_DotStar;
-		case tDOT:
-			return TK_Dot;
-		case tDIVASSIGN:
-			return TK_SlashAssign;
-		case tDIV:
-			return TK_Slash;
-
-		case t_asm:
-			return TK_asm;
-		case t_auto:
-			return TK_auto;
-		case t_bool:
-			return TK_bool;
-		case t_break:
-			return TK_break;
-		case t_case:
-			return TK_case;
-		case t_catch:
-			return TK_catch;
-		case t_char:
-			return TK_char;
-		case t_class:
-			return TK_class;
-		case t_const:
-			return TK_const;
-		case t_const_cast:
-			return TK_const_cast;
-		case t_continue:
-			return TK_continue;
-		case t_default:
-			return TK_default;
-		case t_delete:
-			return TK_delete;
-		case t_do:
-			return TK_do;
-		case t_double:
-			return TK_double;
-		case t_dynamic_cast:
-			return TK_dynamic_cast;
-		case t_else:
-			return TK_else;
-		case t_enum:
-			return TK_enum;
-		case t_explicit:
-			return TK_explicit;
-		case t_export:
-			return TK_export;
-		case t_extern:
-			return TK_extern;
-		case t_false:
-			return TK_false;
-		case t_float:
-			return TK_float;
-		case t_for:
-			return TK_for;
-		case t_friend:
-			return TK_friend;
-		case t_goto:
-			return TK_goto;
-		case t_if:
-			return TK_if;
-		case t_inline:
-			return TK_inline;
-		case t_int:
-			return TK_int;
-		case t_long:
-			return TK_long;
-		case t_mutable:
-			return TK_mutable;
-		case t_namespace:
-			return TK_namespace;
-		case t_new:
-			return TK_new;
-		case t_operator:
-			return TK_operator;
-		case t_private:
-			return TK_private;
-		case t_protected:
-			return TK_protected;
-		case t_public:
-			return TK_public;
-		case t_register:
-			return TK_register;
-		case t_reinterpret_cast:
-			return TK_reinterpret_cast;
-		case t_return:
-			return TK_return;
-		case t_short:
-			return TK_short;
-		case t_sizeof:
-			return TK_sizeof;
-		case t_static:
-			return TK_static;
-		case t_static_cast:
-			return TK_static_cast;
-		case t_signed:
-			return TK_signed;
-		case t_struct:
-			return TK_struct;
-		case t_switch:
-			return TK_switch;
-		case t_template:
-			return TK_template;
-		case t_this:
-			return TK_this;
-		case t_throw:
-			return TK_throw;
-		case t_true:
-			return TK_true;
-		case t_try:
-			return TK_try;
-		case t_typedef:
-			return TK_typedef;
-		case t_typeid:
-			return TK_typeid;
-		case t_typename:
-			return TK_typename;
-		case t_union:
-			return TK_union;
-		case t_unsigned:
-			return TK_unsigned;
-		case t_using:
-			return TK_using;
-		case t_virtual:
-			return TK_virtual;
-		case t_void:
-			return TK_void;
-		case t_volatile:
-			return TK_volatile;
-		case t_wchar_t:
-			return TK_wchar_t;
-		case t_while:
-			return TK_while;
-
-		case tFLOATINGPT:
-			return TK_floating;
-		case tSTRING:
-			return TK_stringlit;
-		case tLSTRING:
-			return TK_stringlit;
-		case tUTF16STRING:
-			return TK_stringlit;
-		case tUTF32STRING:
-			return TK_stringlit;
-		case tCHAR:
-			return TK_charconst;
-		case tLCHAR:
-			return TK_charconst;
-		case tUTF16CHAR:
-			return TK_charconst;
-		case tUTF32CHAR:
-			return TK_charconst;
-		case tCOMPLETION:
-			return TK_Completion;
-		case tEOC:
-			return TK_EndOfCompletion;
-		case tEND_OF_INPUT:
-			return TK_EOF_TOKEN;
-		case tPOUND:
-			return TK_Invalid;
-
-		default:
-			assert false : "token not recognized by the ISO CPP parser: " + token.getType(); //$NON-NLS-1$
-			return TK_Invalid;
-		}
-	}
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/cpp/ISOCPPLanguage.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/cpp/ISOCPPLanguage.java
deleted file mode 100644
index 56a3596..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/cpp/ISOCPPLanguage.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2015 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.lrparser.cpp;
-
-import java.util.Map;
-
-import org.eclipse.cdt.core.dom.ILinkage;
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage;
-import org.eclipse.cdt.core.dom.lrparser.IParser;
-import org.eclipse.cdt.core.dom.lrparser.ScannerExtensionConfiguration;
-import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
-import org.eclipse.cdt.core.dom.parser.IScannerExtensionConfiguration;
-import org.eclipse.cdt.core.dom.parser.cpp.ANSICPPParserExtensionConfiguration;
-import org.eclipse.cdt.core.index.IIndex;
-import org.eclipse.cdt.core.parser.IScanner;
-import org.eclipse.cdt.core.parser.ParserLanguage;
-import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParser;
-
-/**
- * ILanguage implementation for the C++ parser.
- *
- * @author Mike Kucera
- */
-public class ISOCPPLanguage extends BaseExtensibleLanguage {
-
-	public static final String ID = "org.eclipse.cdt.core.lrparser.isocpp"; //$NON-NLS-1$
-
-	private static ISOCPPLanguage DEFAULT = new ISOCPPLanguage();
-
-	public static ISOCPPLanguage getDefault() {
-		return DEFAULT;
-	}
-
-	@Override
-	protected IParser<IASTTranslationUnit> getParser(IScanner scanner, IIndex index, Map<String, String> properties) {
-		return new CPPParser(scanner, DOMToISOCPPTokenMap.DEFAULT_MAP, getBuiltinBindingsProvider(), index, properties);
-	}
-
-	@Override
-	protected IScannerExtensionConfiguration getScannerExtensionConfiguration() {
-		return ScannerExtensionConfiguration.createCPP();
-	}
-
-	@Override
-	public String getId() {
-		return ID;
-	}
-
-	@Override
-	public int getLinkageID() {
-		return ILinkage.CPP_LINKAGE_ID;
-	}
-
-	@Override
-	protected ParserLanguage getParserLanguage() {
-		return ParserLanguage.CPP;
-	}
-
-	protected IBuiltinBindingsProvider getBuiltinBindingsProvider() {
-		return new ANSICPPParserExtensionConfiguration().getBuiltinBindingsProvider();
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/gnu/DOMToGCCTokenMap.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/gnu/DOMToGCCTokenMap.java
deleted file mode 100644
index ab23aa2..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/gnu/DOMToGCCTokenMap.java
+++ /dev/null
@@ -1,466 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2015 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.lrparser.gnu;
-
-import static org.eclipse.cdt.core.parser.IToken.tAMPER;
-import static org.eclipse.cdt.core.parser.IToken.tAMPERASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tAND;
-import static org.eclipse.cdt.core.parser.IToken.tARROW;
-import static org.eclipse.cdt.core.parser.IToken.tASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tBITCOMPLEMENT;
-import static org.eclipse.cdt.core.parser.IToken.tBITOR;
-import static org.eclipse.cdt.core.parser.IToken.tBITORASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tCHAR;
-import static org.eclipse.cdt.core.parser.IToken.tCOLON;
-import static org.eclipse.cdt.core.parser.IToken.tCOMMA;
-import static org.eclipse.cdt.core.parser.IToken.tCOMPLETION;
-import static org.eclipse.cdt.core.parser.IToken.tDECR;
-import static org.eclipse.cdt.core.parser.IToken.tDIV;
-import static org.eclipse.cdt.core.parser.IToken.tDIVASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tDOT;
-import static org.eclipse.cdt.core.parser.IToken.tELLIPSIS;
-import static org.eclipse.cdt.core.parser.IToken.tEND_OF_INPUT;
-import static org.eclipse.cdt.core.parser.IToken.tEOC;
-import static org.eclipse.cdt.core.parser.IToken.tEQUAL;
-import static org.eclipse.cdt.core.parser.IToken.tFLOATINGPT;
-import static org.eclipse.cdt.core.parser.IToken.tGT;
-import static org.eclipse.cdt.core.parser.IToken.tGTEQUAL;
-import static org.eclipse.cdt.core.parser.IToken.tIDENTIFIER;
-import static org.eclipse.cdt.core.parser.IToken.tINCR;
-import static org.eclipse.cdt.core.parser.IToken.tINTEGER;
-import static org.eclipse.cdt.core.parser.IToken.tLBRACE;
-import static org.eclipse.cdt.core.parser.IToken.tLBRACKET;
-import static org.eclipse.cdt.core.parser.IToken.tLCHAR;
-import static org.eclipse.cdt.core.parser.IToken.tLPAREN;
-import static org.eclipse.cdt.core.parser.IToken.tLSTRING;
-import static org.eclipse.cdt.core.parser.IToken.tLT;
-import static org.eclipse.cdt.core.parser.IToken.tLTEQUAL;
-import static org.eclipse.cdt.core.parser.IToken.tMINUS;
-import static org.eclipse.cdt.core.parser.IToken.tMINUSASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tMOD;
-import static org.eclipse.cdt.core.parser.IToken.tMODASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tNOT;
-import static org.eclipse.cdt.core.parser.IToken.tNOTEQUAL;
-import static org.eclipse.cdt.core.parser.IToken.tOR;
-import static org.eclipse.cdt.core.parser.IToken.tPLUS;
-import static org.eclipse.cdt.core.parser.IToken.tPLUSASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tQUESTION;
-import static org.eclipse.cdt.core.parser.IToken.tRBRACE;
-import static org.eclipse.cdt.core.parser.IToken.tRBRACKET;
-import static org.eclipse.cdt.core.parser.IToken.tRPAREN;
-import static org.eclipse.cdt.core.parser.IToken.tSEMI;
-import static org.eclipse.cdt.core.parser.IToken.tSHIFTL;
-import static org.eclipse.cdt.core.parser.IToken.tSHIFTLASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tSHIFTR;
-import static org.eclipse.cdt.core.parser.IToken.tSHIFTRASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tSTAR;
-import static org.eclipse.cdt.core.parser.IToken.tSTARASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tSTRING;
-import static org.eclipse.cdt.core.parser.IToken.tUNKNOWN_CHAR;
-import static org.eclipse.cdt.core.parser.IToken.tUTF16CHAR;
-import static org.eclipse.cdt.core.parser.IToken.tUTF16STRING;
-import static org.eclipse.cdt.core.parser.IToken.tUTF32CHAR;
-import static org.eclipse.cdt.core.parser.IToken.tUTF32STRING;
-import static org.eclipse.cdt.core.parser.IToken.tXOR;
-import static org.eclipse.cdt.core.parser.IToken.tXORASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.t__Bool;
-import static org.eclipse.cdt.core.parser.IToken.t__Complex;
-import static org.eclipse.cdt.core.parser.IToken.t__Imaginary;
-import static org.eclipse.cdt.core.parser.IToken.t_asm;
-import static org.eclipse.cdt.core.parser.IToken.t_auto;
-import static org.eclipse.cdt.core.parser.IToken.t_break;
-import static org.eclipse.cdt.core.parser.IToken.t_case;
-import static org.eclipse.cdt.core.parser.IToken.t_char;
-import static org.eclipse.cdt.core.parser.IToken.t_const;
-import static org.eclipse.cdt.core.parser.IToken.t_continue;
-import static org.eclipse.cdt.core.parser.IToken.t_default;
-import static org.eclipse.cdt.core.parser.IToken.t_do;
-import static org.eclipse.cdt.core.parser.IToken.t_double;
-import static org.eclipse.cdt.core.parser.IToken.t_else;
-import static org.eclipse.cdt.core.parser.IToken.t_enum;
-import static org.eclipse.cdt.core.parser.IToken.t_extern;
-import static org.eclipse.cdt.core.parser.IToken.t_float;
-import static org.eclipse.cdt.core.parser.IToken.t_for;
-import static org.eclipse.cdt.core.parser.IToken.t_goto;
-import static org.eclipse.cdt.core.parser.IToken.t_if;
-import static org.eclipse.cdt.core.parser.IToken.t_inline;
-import static org.eclipse.cdt.core.parser.IToken.t_int;
-import static org.eclipse.cdt.core.parser.IToken.t_long;
-import static org.eclipse.cdt.core.parser.IToken.t_register;
-import static org.eclipse.cdt.core.parser.IToken.t_restrict;
-import static org.eclipse.cdt.core.parser.IToken.t_return;
-import static org.eclipse.cdt.core.parser.IToken.t_short;
-import static org.eclipse.cdt.core.parser.IToken.t_signed;
-import static org.eclipse.cdt.core.parser.IToken.t_sizeof;
-import static org.eclipse.cdt.core.parser.IToken.t_static;
-import static org.eclipse.cdt.core.parser.IToken.t_struct;
-import static org.eclipse.cdt.core.parser.IToken.t_switch;
-import static org.eclipse.cdt.core.parser.IToken.t_typedef;
-import static org.eclipse.cdt.core.parser.IToken.t_union;
-import static org.eclipse.cdt.core.parser.IToken.t_unsigned;
-import static org.eclipse.cdt.core.parser.IToken.t_void;
-import static org.eclipse.cdt.core.parser.IToken.t_volatile;
-import static org.eclipse.cdt.core.parser.IToken.t_while;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_And;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_AndAnd;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_AndAssign;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_Arrow;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_Assign;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_Bang;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_Caret;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_CaretAssign;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_Colon;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_Comma;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_Completion;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_Dot;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_DotDotDot;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_EOF_TOKEN;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_EQ;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_EndOfCompletion;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_GE;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_GT;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_Invalid;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_LE;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_LT;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_LeftBrace;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_LeftBracket;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_LeftParen;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_LeftShift;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_LeftShiftAssign;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_MAX;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_MIN;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_Minus;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_MinusAssign;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_MinusMinus;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_NE;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_Or;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_OrAssign;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_OrOr;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_Percent;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_PercentAssign;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_Plus;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_PlusAssign;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_PlusPlus;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_Question;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_RightBrace;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_RightBracket;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_RightParen;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_RightShift;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_RightShiftAssign;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_SemiColon;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_Slash;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_SlashAssign;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_Star;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_StarAssign;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_Tilde;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK__Bool;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK__Complex;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK__Imaginary;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK___alignof__;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK___attribute__;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK___declspec;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_asm;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_auto;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_break;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_case;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_char;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_charconst;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_const;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_continue;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_default;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_do;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_double;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_else;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_enum;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_extern;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_float;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_floating;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_for;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_goto;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_identifier;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_if;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_inline;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_int;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_integer;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_long;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_register;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_restrict;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_return;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_short;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_signed;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_sizeof;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_static;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_stringlit;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_struct;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_switch;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_typedef;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_typeof;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_union;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_unsigned;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_void;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_volatile;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParsersym.TK_while;
-
-import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
-import org.eclipse.cdt.core.parser.IGCCToken;
-import org.eclipse.cdt.core.parser.IToken;
-
-/**
- * Maps tokens types returned by CPreprocessor to token types
- * expected by the C99 parser.
- *
- * @author Mike Kucera
- */
-public final class DOMToGCCTokenMap implements IDOMTokenMap {
-
-	public static final DOMToGCCTokenMap DEFAULT_MAP = new DOMToGCCTokenMap();
-
-	private DOMToGCCTokenMap() {
-		// just a private constructor
-	}
-
-	@Override
-	public int getEOFTokenKind() {
-		return TK_EOF_TOKEN;
-	}
-
-	@Override
-	public int getEOCTokenKind() {
-		return TK_EndOfCompletion;
-	}
-
-	@Override
-	public int mapKind(IToken token) {
-
-		switch (token.getType()) {
-		case tIDENTIFIER:
-			return TK_identifier;
-		case tINTEGER:
-			return TK_integer;
-		case tCOLON:
-			return TK_Colon;
-		case tSEMI:
-			return TK_SemiColon;
-		case tCOMMA:
-			return TK_Comma;
-		case tQUESTION:
-			return TK_Question;
-		case tLPAREN:
-			return TK_LeftParen;
-		case tRPAREN:
-			return TK_RightParen;
-		case tLBRACKET:
-			return TK_LeftBracket;
-		case tRBRACKET:
-			return TK_RightBracket;
-		case tLBRACE:
-			return TK_LeftBrace;
-		case tRBRACE:
-			return TK_RightBrace;
-		case tPLUSASSIGN:
-			return TK_PlusAssign;
-		case tINCR:
-			return TK_PlusPlus;
-		case tPLUS:
-			return TK_Plus;
-		case tMINUSASSIGN:
-			return TK_MinusAssign;
-		case tDECR:
-			return TK_MinusMinus;
-		case tARROW:
-			return TK_Arrow;
-		case tMINUS:
-			return TK_Minus;
-		case tSTARASSIGN:
-			return TK_StarAssign;
-		case tSTAR:
-			return TK_Star;
-		case tMODASSIGN:
-			return TK_PercentAssign;
-		case tMOD:
-			return TK_Percent;
-		case tXORASSIGN:
-			return TK_CaretAssign;
-		case tXOR:
-			return TK_Caret;
-		case tAMPERASSIGN:
-			return TK_AndAssign;
-		case tAND:
-			return TK_AndAnd;
-		case tAMPER:
-			return TK_And;
-		case tBITORASSIGN:
-			return TK_OrAssign;
-		case tOR:
-			return TK_OrOr;
-		case tBITOR:
-			return TK_Or;
-		case tBITCOMPLEMENT:
-			return TK_Tilde;
-		case tNOTEQUAL:
-			return TK_NE;
-		case tNOT:
-			return TK_Bang;
-		case tEQUAL:
-			return TK_EQ;
-		case tASSIGN:
-			return TK_Assign;
-		case tUNKNOWN_CHAR:
-			return TK_Invalid;
-		case tSHIFTL:
-			return TK_LeftShift;
-		case tLTEQUAL:
-			return TK_LE;
-		case tLT:
-			return TK_LT;
-		case tSHIFTRASSIGN:
-			return TK_RightShiftAssign;
-		case tSHIFTR:
-			return TK_RightShift;
-		case tGTEQUAL:
-			return TK_GE;
-		case tGT:
-			return TK_GT;
-		case tSHIFTLASSIGN:
-			return TK_LeftShiftAssign;
-		case tELLIPSIS:
-			return TK_DotDotDot;
-		case tDOT:
-			return TK_Dot;
-		case tDIVASSIGN:
-			return TK_SlashAssign;
-		case tDIV:
-			return TK_Slash;
-
-		case t_auto:
-			return TK_auto;
-		case t_break:
-			return TK_break;
-		case t_case:
-			return TK_case;
-		case t_char:
-			return TK_char;
-		case t_const:
-			return TK_const;
-		case t_continue:
-			return TK_continue;
-		case t_default:
-			return TK_default;
-		case t_do:
-			return TK_do;
-		case t_double:
-			return TK_double;
-		case t_else:
-			return TK_else;
-		case t_enum:
-			return TK_enum;
-		case t_extern:
-			return TK_extern;
-		case t_float:
-			return TK_float;
-		case t_for:
-			return TK_for;
-		case t_goto:
-			return TK_goto;
-		case t_if:
-			return TK_if;
-		case t_inline:
-			return TK_inline;
-		case t_int:
-			return TK_int;
-		case t_long:
-			return TK_long;
-		case t_register:
-			return TK_register;
-		case t_return:
-			return TK_return;
-		case t_short:
-			return TK_short;
-		case t_sizeof:
-			return TK_sizeof;
-		case t_static:
-			return TK_static;
-		case t_signed:
-			return TK_signed;
-		case t_struct:
-			return TK_struct;
-		case t_switch:
-			return TK_switch;
-		case t_typedef:
-			return TK_typedef;
-		case t_union:
-			return TK_union;
-		case t_unsigned:
-			return TK_unsigned;
-		case t_void:
-			return TK_void;
-		case t_volatile:
-			return TK_volatile;
-		case t_while:
-			return TK_while;
-		case tFLOATINGPT:
-			return TK_floating;
-		case tSTRING:
-			return TK_stringlit;
-		case tLSTRING:
-			return TK_stringlit;
-		case tUTF16STRING:
-			return TK_stringlit;
-		case tUTF32STRING:
-			return TK_stringlit;
-		case tCHAR:
-			return TK_charconst;
-		case tLCHAR:
-			return TK_charconst;
-		case tUTF16CHAR:
-			return TK_charconst;
-		case tUTF32CHAR:
-			return TK_charconst;
-		case t__Bool:
-			return TK__Bool;
-		case t__Complex:
-			return TK__Complex;
-		case t__Imaginary:
-			return TK__Imaginary;
-		case t_restrict:
-			return TK_restrict;
-		case tCOMPLETION:
-			return TK_Completion;
-		case tEOC:
-			return TK_EndOfCompletion;
-		case tEND_OF_INPUT:
-			return TK_EOF_TOKEN;
-
-		case IGCCToken.t_typeof:
-			return TK_typeof;
-		case IGCCToken.t___alignof__:
-			return TK___alignof__;
-		case IGCCToken.tMAX:
-			return TK_MAX;
-		case IGCCToken.tMIN:
-			return TK_MIN;
-		case IGCCToken.t__attribute__:
-			return TK___attribute__;
-		case IGCCToken.t__declspec:
-			return TK___declspec;
-
-		case t_asm:
-			return TK_asm;
-
-		default:
-			assert false : "token not recognized by the GCC parser: " + token.getType(); //$NON-NLS-1$
-			return TK_Invalid;
-		}
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/gnu/DOMToGPPTokenMap.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/gnu/DOMToGPPTokenMap.java
deleted file mode 100644
index 8f48d4f..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/gnu/DOMToGPPTokenMap.java
+++ /dev/null
@@ -1,597 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2015 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.lrparser.gnu;
-
-import static org.eclipse.cdt.core.parser.IToken.tAMPER;
-import static org.eclipse.cdt.core.parser.IToken.tAMPERASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tAND;
-import static org.eclipse.cdt.core.parser.IToken.tARROW;
-import static org.eclipse.cdt.core.parser.IToken.tARROWSTAR;
-import static org.eclipse.cdt.core.parser.IToken.tASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tBITCOMPLEMENT;
-import static org.eclipse.cdt.core.parser.IToken.tBITOR;
-import static org.eclipse.cdt.core.parser.IToken.tBITORASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tCHAR;
-import static org.eclipse.cdt.core.parser.IToken.tCOLON;
-import static org.eclipse.cdt.core.parser.IToken.tCOLONCOLON;
-import static org.eclipse.cdt.core.parser.IToken.tCOMMA;
-import static org.eclipse.cdt.core.parser.IToken.tCOMPLETION;
-import static org.eclipse.cdt.core.parser.IToken.tDECR;
-import static org.eclipse.cdt.core.parser.IToken.tDIV;
-import static org.eclipse.cdt.core.parser.IToken.tDIVASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tDOT;
-import static org.eclipse.cdt.core.parser.IToken.tDOTSTAR;
-import static org.eclipse.cdt.core.parser.IToken.tELLIPSIS;
-import static org.eclipse.cdt.core.parser.IToken.tEND_OF_INPUT;
-import static org.eclipse.cdt.core.parser.IToken.tEOC;
-import static org.eclipse.cdt.core.parser.IToken.tEQUAL;
-import static org.eclipse.cdt.core.parser.IToken.tFLOATINGPT;
-import static org.eclipse.cdt.core.parser.IToken.tGT;
-import static org.eclipse.cdt.core.parser.IToken.tGTEQUAL;
-import static org.eclipse.cdt.core.parser.IToken.tIDENTIFIER;
-import static org.eclipse.cdt.core.parser.IToken.tINCR;
-import static org.eclipse.cdt.core.parser.IToken.tINTEGER;
-import static org.eclipse.cdt.core.parser.IToken.tLBRACE;
-import static org.eclipse.cdt.core.parser.IToken.tLBRACKET;
-import static org.eclipse.cdt.core.parser.IToken.tLCHAR;
-import static org.eclipse.cdt.core.parser.IToken.tLPAREN;
-import static org.eclipse.cdt.core.parser.IToken.tLSTRING;
-import static org.eclipse.cdt.core.parser.IToken.tLT;
-import static org.eclipse.cdt.core.parser.IToken.tLTEQUAL;
-import static org.eclipse.cdt.core.parser.IToken.tMINUS;
-import static org.eclipse.cdt.core.parser.IToken.tMINUSASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tMOD;
-import static org.eclipse.cdt.core.parser.IToken.tMODASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tNOT;
-import static org.eclipse.cdt.core.parser.IToken.tNOTEQUAL;
-import static org.eclipse.cdt.core.parser.IToken.tOR;
-import static org.eclipse.cdt.core.parser.IToken.tPLUS;
-import static org.eclipse.cdt.core.parser.IToken.tPLUSASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tPOUND;
-import static org.eclipse.cdt.core.parser.IToken.tQUESTION;
-import static org.eclipse.cdt.core.parser.IToken.tRBRACE;
-import static org.eclipse.cdt.core.parser.IToken.tRBRACKET;
-import static org.eclipse.cdt.core.parser.IToken.tRPAREN;
-import static org.eclipse.cdt.core.parser.IToken.tSEMI;
-import static org.eclipse.cdt.core.parser.IToken.tSHIFTL;
-import static org.eclipse.cdt.core.parser.IToken.tSHIFTLASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tSHIFTR;
-import static org.eclipse.cdt.core.parser.IToken.tSHIFTRASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tSTAR;
-import static org.eclipse.cdt.core.parser.IToken.tSTARASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tSTRING;
-import static org.eclipse.cdt.core.parser.IToken.tUNKNOWN_CHAR;
-import static org.eclipse.cdt.core.parser.IToken.tUTF16CHAR;
-import static org.eclipse.cdt.core.parser.IToken.tUTF16STRING;
-import static org.eclipse.cdt.core.parser.IToken.tUTF32CHAR;
-import static org.eclipse.cdt.core.parser.IToken.tUTF32STRING;
-import static org.eclipse.cdt.core.parser.IToken.tXOR;
-import static org.eclipse.cdt.core.parser.IToken.tXORASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.t__Complex;
-import static org.eclipse.cdt.core.parser.IToken.t__Imaginary;
-import static org.eclipse.cdt.core.parser.IToken.t_asm;
-import static org.eclipse.cdt.core.parser.IToken.t_auto;
-import static org.eclipse.cdt.core.parser.IToken.t_bool;
-import static org.eclipse.cdt.core.parser.IToken.t_break;
-import static org.eclipse.cdt.core.parser.IToken.t_case;
-import static org.eclipse.cdt.core.parser.IToken.t_catch;
-import static org.eclipse.cdt.core.parser.IToken.t_char;
-import static org.eclipse.cdt.core.parser.IToken.t_class;
-import static org.eclipse.cdt.core.parser.IToken.t_const;
-import static org.eclipse.cdt.core.parser.IToken.t_const_cast;
-import static org.eclipse.cdt.core.parser.IToken.t_continue;
-import static org.eclipse.cdt.core.parser.IToken.t_default;
-import static org.eclipse.cdt.core.parser.IToken.t_delete;
-import static org.eclipse.cdt.core.parser.IToken.t_do;
-import static org.eclipse.cdt.core.parser.IToken.t_double;
-import static org.eclipse.cdt.core.parser.IToken.t_dynamic_cast;
-import static org.eclipse.cdt.core.parser.IToken.t_else;
-import static org.eclipse.cdt.core.parser.IToken.t_enum;
-import static org.eclipse.cdt.core.parser.IToken.t_explicit;
-import static org.eclipse.cdt.core.parser.IToken.t_export;
-import static org.eclipse.cdt.core.parser.IToken.t_extern;
-import static org.eclipse.cdt.core.parser.IToken.t_false;
-import static org.eclipse.cdt.core.parser.IToken.t_float;
-import static org.eclipse.cdt.core.parser.IToken.t_for;
-import static org.eclipse.cdt.core.parser.IToken.t_friend;
-import static org.eclipse.cdt.core.parser.IToken.t_goto;
-import static org.eclipse.cdt.core.parser.IToken.t_if;
-import static org.eclipse.cdt.core.parser.IToken.t_inline;
-import static org.eclipse.cdt.core.parser.IToken.t_int;
-import static org.eclipse.cdt.core.parser.IToken.t_long;
-import static org.eclipse.cdt.core.parser.IToken.t_mutable;
-import static org.eclipse.cdt.core.parser.IToken.t_namespace;
-import static org.eclipse.cdt.core.parser.IToken.t_new;
-import static org.eclipse.cdt.core.parser.IToken.t_operator;
-import static org.eclipse.cdt.core.parser.IToken.t_private;
-import static org.eclipse.cdt.core.parser.IToken.t_protected;
-import static org.eclipse.cdt.core.parser.IToken.t_public;
-import static org.eclipse.cdt.core.parser.IToken.t_register;
-import static org.eclipse.cdt.core.parser.IToken.t_reinterpret_cast;
-import static org.eclipse.cdt.core.parser.IToken.t_restrict;
-import static org.eclipse.cdt.core.parser.IToken.t_return;
-import static org.eclipse.cdt.core.parser.IToken.t_short;
-import static org.eclipse.cdt.core.parser.IToken.t_signed;
-import static org.eclipse.cdt.core.parser.IToken.t_sizeof;
-import static org.eclipse.cdt.core.parser.IToken.t_static;
-import static org.eclipse.cdt.core.parser.IToken.t_static_cast;
-import static org.eclipse.cdt.core.parser.IToken.t_struct;
-import static org.eclipse.cdt.core.parser.IToken.t_switch;
-import static org.eclipse.cdt.core.parser.IToken.t_template;
-import static org.eclipse.cdt.core.parser.IToken.t_this;
-import static org.eclipse.cdt.core.parser.IToken.t_throw;
-import static org.eclipse.cdt.core.parser.IToken.t_true;
-import static org.eclipse.cdt.core.parser.IToken.t_try;
-import static org.eclipse.cdt.core.parser.IToken.t_typedef;
-import static org.eclipse.cdt.core.parser.IToken.t_typeid;
-import static org.eclipse.cdt.core.parser.IToken.t_typename;
-import static org.eclipse.cdt.core.parser.IToken.t_union;
-import static org.eclipse.cdt.core.parser.IToken.t_unsigned;
-import static org.eclipse.cdt.core.parser.IToken.t_using;
-import static org.eclipse.cdt.core.parser.IToken.t_virtual;
-import static org.eclipse.cdt.core.parser.IToken.t_void;
-import static org.eclipse.cdt.core.parser.IToken.t_volatile;
-import static org.eclipse.cdt.core.parser.IToken.t_wchar_t;
-import static org.eclipse.cdt.core.parser.IToken.t_while;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_And;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_AndAnd;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_AndAssign;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_Arrow;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_ArrowStar;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_Assign;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_Bang;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_Caret;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_CaretAssign;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_Colon;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_ColonColon;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_Comma;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_Completion;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_Dot;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_DotDotDot;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_DotStar;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_EOF_TOKEN;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_EQ;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_EndOfCompletion;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_GE;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_GT;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_Invalid;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_LE;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_LT;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_LeftBrace;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_LeftBracket;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_LeftParen;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_LeftShift;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_LeftShiftAssign;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_MAX;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_MIN;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_Minus;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_MinusAssign;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_MinusMinus;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_NE;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_Or;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_OrAssign;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_OrOr;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_Percent;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_PercentAssign;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_Plus;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_PlusAssign;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_PlusPlus;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_Question;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_RightBrace;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_RightBracket;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_RightParen;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_RightShift;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_RightShiftAssign;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_SemiColon;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_Slash;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_SlashAssign;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_Star;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_StarAssign;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_Tilde;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK__Complex;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK__Imaginary;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK___alignof__;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK___attribute__;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK___declspec;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_asm;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_auto;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_bool;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_break;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_case;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_catch;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_char;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_charconst;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_class;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_const;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_const_cast;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_continue;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_default;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_delete;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_do;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_double;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_dynamic_cast;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_else;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_enum;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_explicit;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_export;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_extern;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_false;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_float;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_floating;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_for;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_friend;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_goto;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_identifier;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_if;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_inline;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_int;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_integer;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_long;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_mutable;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_namespace;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_new;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_operator;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_private;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_protected;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_public;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_register;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_reinterpret_cast;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_restrict;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_return;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_short;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_signed;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_sizeof;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_static;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_static_cast;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_stringlit;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_struct;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_switch;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_template;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_this;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_throw;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_true;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_try;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_typedef;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_typeid;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_typename;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_typeof;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_union;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_unsigned;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_using;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_virtual;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_void;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_volatile;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_wchar_t;
-import static org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParsersym.TK_while;
-
-import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
-import org.eclipse.cdt.core.parser.IGCCToken;
-import org.eclipse.cdt.core.parser.IToken;
-
-/**
- * Maps tokens types returned by CPreprocessor to token types
- * expected by the C++ parser.
- *
- * @author Mike Kucera
- */
-public class DOMToGPPTokenMap implements IDOMTokenMap {
-
-	public static final DOMToGPPTokenMap DEFAULT_MAP = new DOMToGPPTokenMap();
-
-	private DOMToGPPTokenMap() {
-		// just a private constructor
-	}
-
-	@Override
-	public int getEOFTokenKind() {
-		return TK_EOF_TOKEN;
-	}
-
-	@Override
-	public int getEOCTokenKind() {
-		return TK_EndOfCompletion;
-	}
-
-	@Override
-	public int mapKind(IToken token) {
-
-		switch (token.getType()) {
-		case tIDENTIFIER:
-			return TK_identifier;
-		case tINTEGER:
-			return TK_integer;
-		case tCOLONCOLON:
-			return TK_ColonColon;
-		case tCOLON:
-			return TK_Colon;
-		case tSEMI:
-			return TK_SemiColon;
-		case tCOMMA:
-			return TK_Comma;
-		case tQUESTION:
-			return TK_Question;
-		case tLPAREN:
-			return TK_LeftParen;
-		case tRPAREN:
-			return TK_RightParen;
-		case tLBRACKET:
-			return TK_LeftBracket;
-		case tRBRACKET:
-			return TK_RightBracket;
-		case tLBRACE:
-			return TK_LeftBrace;
-		case tRBRACE:
-			return TK_RightBrace;
-		case tPLUSASSIGN:
-			return TK_PlusAssign;
-		case tINCR:
-			return TK_PlusPlus;
-		case tPLUS:
-			return TK_Plus;
-		case tMINUSASSIGN:
-			return TK_MinusAssign;
-		case tDECR:
-			return TK_MinusMinus;
-		case tARROWSTAR:
-			return TK_ArrowStar;
-		case tARROW:
-			return TK_Arrow;
-		case tMINUS:
-			return TK_Minus;
-		case tSTARASSIGN:
-			return TK_StarAssign;
-		case tSTAR:
-			return TK_Star;
-		case tMODASSIGN:
-			return TK_PercentAssign;
-		case tMOD:
-			return TK_Percent;
-		case tXORASSIGN:
-			return TK_CaretAssign;
-		case tXOR:
-			return TK_Caret;
-		case tAMPERASSIGN:
-			return TK_AndAssign;
-		case tAND:
-			return TK_AndAnd;
-		case tAMPER:
-			return TK_And;
-		case tBITORASSIGN:
-			return TK_OrAssign;
-		case tOR:
-			return TK_OrOr;
-		case tBITOR:
-			return TK_Or;
-		case tBITCOMPLEMENT:
-			return TK_Tilde;
-		case tNOTEQUAL:
-			return TK_NE;
-		case tNOT:
-			return TK_Bang;
-		case tEQUAL:
-			return TK_EQ;
-		case tASSIGN:
-			return TK_Assign;
-		case tUNKNOWN_CHAR:
-			return TK_Invalid;
-		case tSHIFTL:
-			return TK_LeftShift;
-		case tLTEQUAL:
-			return TK_LE;
-		case tLT:
-			return TK_LT;
-		case tSHIFTRASSIGN:
-			return TK_RightShiftAssign;
-		case tSHIFTR:
-			return TK_RightShift;
-		case tGTEQUAL:
-			return TK_GE;
-		case tGT:
-			return TK_GT;
-		case tSHIFTLASSIGN:
-			return TK_LeftShiftAssign;
-		case tELLIPSIS:
-			return TK_DotDotDot;
-		case tDOTSTAR:
-			return TK_DotStar;
-		case tDOT:
-			return TK_Dot;
-		case tDIVASSIGN:
-			return TK_SlashAssign;
-		case tDIV:
-			return TK_Slash;
-
-		case t_asm:
-			return TK_asm;
-		case t_auto:
-			return TK_auto;
-		case t_bool:
-			return TK_bool;
-		case t_break:
-			return TK_break;
-		case t_case:
-			return TK_case;
-		case t_catch:
-			return TK_catch;
-		case t_char:
-			return TK_char;
-		case t_class:
-			return TK_class;
-		case t_const:
-			return TK_const;
-		case t_const_cast:
-			return TK_const_cast;
-		case t_continue:
-			return TK_continue;
-		case t_default:
-			return TK_default;
-		case t_delete:
-			return TK_delete;
-		case t_do:
-			return TK_do;
-		case t_double:
-			return TK_double;
-		case t_dynamic_cast:
-			return TK_dynamic_cast;
-		case t_else:
-			return TK_else;
-		case t_enum:
-			return TK_enum;
-		case t_explicit:
-			return TK_explicit;
-		case t_export:
-			return TK_export;
-		case t_extern:
-			return TK_extern;
-		case t_false:
-			return TK_false;
-		case t_float:
-			return TK_float;
-		case t_for:
-			return TK_for;
-		case t_friend:
-			return TK_friend;
-		case t_goto:
-			return TK_goto;
-		case t_if:
-			return TK_if;
-		case t_inline:
-			return TK_inline;
-		case t_int:
-			return TK_int;
-		case t_long:
-			return TK_long;
-		case t_mutable:
-			return TK_mutable;
-		case t_namespace:
-			return TK_namespace;
-		case t_new:
-			return TK_new;
-		case t_operator:
-			return TK_operator;
-		case t_private:
-			return TK_private;
-		case t_protected:
-			return TK_protected;
-		case t_public:
-			return TK_public;
-		case t_register:
-			return TK_register;
-		case t_reinterpret_cast:
-			return TK_reinterpret_cast;
-		case t_return:
-			return TK_return;
-		case t_short:
-			return TK_short;
-		case t_sizeof:
-			return TK_sizeof;
-		case t_static:
-			return TK_static;
-		case t_static_cast:
-			return TK_static_cast;
-		case t_signed:
-			return TK_signed;
-		case t_struct:
-			return TK_struct;
-		case t_switch:
-			return TK_switch;
-		case t_template:
-			return TK_template;
-		case t_this:
-			return TK_this;
-		case t_throw:
-			return TK_throw;
-		case t_true:
-			return TK_true;
-		case t_try:
-			return TK_try;
-		case t_typedef:
-			return TK_typedef;
-		case t_typeid:
-			return TK_typeid;
-		case t_typename:
-			return TK_typename;
-		case t_union:
-			return TK_union;
-		case t_unsigned:
-			return TK_unsigned;
-		case t_using:
-			return TK_using;
-		case t_virtual:
-			return TK_virtual;
-		case t_void:
-			return TK_void;
-		case t_volatile:
-			return TK_volatile;
-		case t_wchar_t:
-			return TK_wchar_t;
-		case t_while:
-			return TK_while;
-
-		case tFLOATINGPT:
-			return TK_floating;
-		case tSTRING:
-			return TK_stringlit;
-		case tLSTRING:
-			return TK_stringlit;
-		case tUTF16STRING:
-			return TK_stringlit;
-		case tUTF32STRING:
-			return TK_stringlit;
-		case tUTF16CHAR:
-			return TK_charconst;
-		case tUTF32CHAR:
-			return TK_charconst;
-		case tCHAR:
-			return TK_charconst;
-		case tLCHAR:
-			return TK_charconst;
-		case tCOMPLETION:
-			return TK_Completion;
-		case tEOC:
-			return TK_EndOfCompletion;
-		case tEND_OF_INPUT:
-			return TK_EOF_TOKEN;
-
-		case IGCCToken.t_typeof:
-			return TK_typeof;
-		case IGCCToken.t___alignof__:
-			return TK___alignof__;
-		case IGCCToken.tMAX:
-			return TK_MAX;
-		case IGCCToken.tMIN:
-			return TK_MIN;
-		case IGCCToken.t__attribute__:
-			return TK___attribute__;
-		case IGCCToken.t__declspec:
-			return TK___declspec;
-
-		// GNU supports these but they are not in the C++ spec
-		case t__Complex:
-			return TK__Complex;
-		case t__Imaginary:
-			return TK__Imaginary;
-		case t_restrict:
-			return TK_restrict;
-
-		case tPOUND:
-			return TK_Invalid;
-
-		default:
-			assert false : "token not recognized by the GPP parser: " + token.getType(); //$NON-NLS-1$
-			return TK_Invalid;
-		}
-	}
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/gnu/GCCLanguage.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/gnu/GCCLanguage.java
deleted file mode 100644
index ce45703..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/gnu/GCCLanguage.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2015 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.lrparser.gnu;
-
-import java.util.Map;
-
-import org.eclipse.cdt.core.dom.ILinkage;
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage;
-import org.eclipse.cdt.core.dom.lrparser.IParser;
-import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
-import org.eclipse.cdt.core.dom.parser.IScannerExtensionConfiguration;
-import org.eclipse.cdt.core.dom.parser.c.GCCParserExtensionConfiguration;
-import org.eclipse.cdt.core.dom.parser.c.GCCScannerExtensionConfiguration;
-import org.eclipse.cdt.core.index.IIndex;
-import org.eclipse.cdt.core.parser.IScanner;
-import org.eclipse.cdt.core.parser.ParserLanguage;
-import org.eclipse.cdt.internal.core.dom.lrparser.gcc.GCCParser;
-
-/**
- * ILanguage implementation for the C99 parser.
- *
- * @author Mike Kucera
- */
-public class GCCLanguage extends BaseExtensibleLanguage {
-	public static final String ID = "org.eclipse.cdt.core.lrparser.gcc"; //$NON-NLS-1$
-
-	private static GCCLanguage DEFAULT = new GCCLanguage();
-
-	public static GCCLanguage getDefault() {
-		return DEFAULT;
-	}
-
-	@Override
-	protected IParser<IASTTranslationUnit> getParser(IScanner scanner, IIndex index, Map<String, String> properties) {
-		return new GCCParser(scanner, DOMToGCCTokenMap.DEFAULT_MAP, getBuiltinBindingsProvider(), index, properties);
-	}
-
-	@Override
-	protected IScannerExtensionConfiguration getScannerExtensionConfiguration() {
-		return GCCScannerExtensionConfiguration.getInstance();
-	}
-
-	@Override
-	public String getId() {
-		return ID;
-	}
-
-	@Override
-	public int getLinkageID() {
-		return ILinkage.C_LINKAGE_ID;
-	}
-
-	@Override
-	protected ParserLanguage getParserLanguage() {
-		return ParserLanguage.C;
-	}
-
-	protected IBuiltinBindingsProvider getBuiltinBindingsProvider() {
-		return new GCCParserExtensionConfiguration().getBuiltinBindingsProvider();
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/gnu/GPPLanguage.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/gnu/GPPLanguage.java
deleted file mode 100644
index 744bd6e..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/gnu/GPPLanguage.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2015 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.lrparser.gnu;
-
-import java.util.Map;
-
-import org.eclipse.cdt.core.dom.ILinkage;
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage;
-import org.eclipse.cdt.core.dom.lrparser.IParser;
-import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
-import org.eclipse.cdt.core.dom.parser.IScannerExtensionConfiguration;
-import org.eclipse.cdt.core.dom.parser.cpp.GPPParserExtensionConfiguration;
-import org.eclipse.cdt.core.dom.parser.cpp.GPPScannerExtensionConfiguration;
-import org.eclipse.cdt.core.index.IIndex;
-import org.eclipse.cdt.core.parser.IScanner;
-import org.eclipse.cdt.core.parser.ParserLanguage;
-import org.eclipse.cdt.internal.core.dom.lrparser.gpp.GPPParser;
-
-/**
- * ILanguage implementation for the GPP parser.
- *
- * @author Mike Kucera
- */
-public class GPPLanguage extends BaseExtensibleLanguage {
-
-	public static final String ID = "org.eclipse.cdt.core.lrparser.gpp"; //$NON-NLS-1$
-
-	private static GPPLanguage DEFAULT = new GPPLanguage();
-
-	public static GPPLanguage getDefault() {
-		return DEFAULT;
-	}
-
-	@Override
-	protected IParser<IASTTranslationUnit> getParser(IScanner scanner, IIndex index, Map<String, String> properties) {
-		return new GPPParser(scanner, DOMToGPPTokenMap.DEFAULT_MAP, getBuiltinBindingsProvider(), index, properties);
-	}
-
-	@Override
-	protected IScannerExtensionConfiguration getScannerExtensionConfiguration() {
-		return GPPScannerExtensionConfiguration.getInstance();
-	}
-
-	@Override
-	public String getId() {
-		return ID;
-	}
-
-	@Override
-	public int getLinkageID() {
-		return ILinkage.CPP_LINKAGE_ID;
-	}
-
-	@Override
-	protected ParserLanguage getParserLanguage() {
-		return ParserLanguage.CPP;
-	}
-
-	protected IBuiltinBindingsProvider getBuiltinBindingsProvider() {
-		return new GPPParserExtensionConfiguration().getBuiltinBindingsProvider();
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/lpgextensions/AbstractTrialUndoActionProvider.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/lpgextensions/AbstractTrialUndoActionProvider.java
deleted file mode 100644
index 94bd6db..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/lpgextensions/AbstractTrialUndoActionProvider.java
+++ /dev/null
@@ -1,211 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2015 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.lrparser.lpgextensions;
-
-import java.util.Collections;
-import java.util.List;
-
-import lpg.lpgjavaruntime.IToken;
-import lpg.lpgjavaruntime.LexStream;
-import lpg.lpgjavaruntime.PrsStream;
-
-/**
- * Base class for parser action classes which support trial, undo and
- * final actions.
- */
-public abstract class AbstractTrialUndoActionProvider<ACT, RULE_DATA> extends PrsStream
-		implements ITrialUndoActionProvider<RULE_DATA> {
-	/**
-	 * An action that does nothing.
-	 */
-	public static final Action<Object, Object> EMPTY_ACTION = new Action<>();
-
-	/**
-	 * The parser table interpreter.
-	 */
-	protected TrialUndoParser btParser;
-
-	public AbstractTrialUndoActionProvider() {
-		super();
-	}
-
-	public AbstractTrialUndoActionProvider(LexStream lexStream) {
-		super(lexStream);
-	}
-
-	/**
-	 * Actions for reduction rules.
-	 */
-	protected Action<ACT, RULE_DATA>[] ruleAction;
-
-	protected ACT parserAction;
-
-	public void setParserAction(ACT parserAction) {
-		this.parserAction = parserAction;
-	}
-
-	/**
-	 * The reduction rule which is currently being processed.
-	 */
-	protected Rule<RULE_DATA> activeRule;
-
-	/**
-	 * Returns the number of tokens in the rule being reduced.
-	 */
-	public int getRuleTokenCount() {
-		return activeRule.getEndTokenOffset() - activeRule.getStartTokenOffset() + 1;
-	}
-
-	/**
-	 * Returns the tokens in the rule being reduced.
-	 */
-	@SuppressWarnings("unchecked")
-	public List<IToken> getRuleTokens() {
-		return Collections.unmodifiableList(getTokens().subList(getFirstRealToken(activeRule.getStartTokenOffset()),
-				activeRule.getEndTokenOffset() + 1));
-	}
-
-	public void backtrack() {
-		btParser.backtrack();
-	}
-
-	@Override
-	public void setActiveRule(Rule<RULE_DATA> rule) {
-		activeRule = rule;
-	}
-
-	@Override
-	public Rule<RULE_DATA> getActiveRule() {
-		return activeRule;
-	}
-
-	@Override
-	public final boolean trialAction(int rule_number) {
-		return ruleAction[rule_number].doTrial(this, parserAction);
-	}
-
-	@Override
-	public final void undoAction(int rule_number) {
-		ruleAction[rule_number].doUndo(this, parserAction);
-	}
-
-	@Override
-	public final void finalAction(int rule_number) {
-		//System.out.println("finalAction: " + rule_number); //$NON-NLS-1$
-		ruleAction[rule_number].doFinal(this, parserAction);
-	}
-
-	public TrialUndoParser getParser() {
-		return btParser;
-	}
-
-	/**
-	 * Returns the offset of the leftmost token of the
-	 * rule being reduced.
-	 */
-	private int getLeftSpan() {
-		return getFirstRealToken(activeRule.getStartTokenOffset());
-	}
-
-	/**
-	 * Returns the leftmost token of the rule being reduced.
-	 */
-	public IToken getLeftIToken() {
-		return super.getIToken(getLeftSpan());
-	}
-
-	/**
-	 * Returns the offset of the rightmost token of the
-	 * rule being reduced.
-	 */
-	private int getRightSpan() {
-		return activeRule.getEndTokenOffset();
-	}
-
-	/**
-	 * Returns the rightmost token of the rule being reduced.
-	 */
-	public IToken getRightIToken() {
-		return super.getIToken(getRightSpan());
-	}
-
-	public static <ACT, RULE_DATA> Action<ACT, RULE_DATA> emptyAction() {
-		return new Action<>();
-	}
-
-	@SuppressWarnings("unused")
-	public static class Action<ACT, RULE_DATA> {
-
-		public void doFinal(ITrialUndoActionProvider<RULE_DATA> provider, ACT action) {
-			// convenience method, can be overridden
-
-		}
-
-		public boolean doTrial(ITrialUndoActionProvider<RULE_DATA> provider, ACT action) {
-			//System.out.println(provider.getActiveRule());
-			//System.out.println(Rules.lookup(provider.getActiveRule().getRuleNumber()));
-			return false;
-		}
-
-		public void doUndo(ITrialUndoActionProvider<RULE_DATA> provider, ACT action) {
-			//System.out.println(provider.getActiveRule() + " - undo");
-			// convenience method, can be overridden
-		}
-	}
-
-	public static class DeclaredAction<ACT, RULE_DATA> extends Action<ACT, RULE_DATA> {
-		protected boolean hasUndo = false;
-
-		@Override
-		@SuppressWarnings("unused")
-		public boolean doTrial(ITrialUndoActionProvider<RULE_DATA> provider, ACT action) {
-			return true;
-		}
-	}
-
-	/**
-	 * Action for a null rule
-	 */
-	static final class NullAction<ACT, RULE_DATA> extends Action<ACT, RULE_DATA> {
-		@Override
-		@SuppressWarnings("unused")
-		public void doFinal(ITrialUndoActionProvider<RULE_DATA> provider, ACT action) {
-			// do nothing
-		}
-	}
-
-	static final class BadAction<ACT, RULE_DATA> extends Action<ACT, RULE_DATA> {
-		@Override
-		@SuppressWarnings("unused")
-		public void doFinal(ITrialUndoActionProvider<RULE_DATA> provider, ACT action) {
-			throw new Error(new BadActionException());
-		}
-
-		@Override
-		@SuppressWarnings("unused")
-		public boolean doTrial(ITrialUndoActionProvider<RULE_DATA> provider, ACT action) {
-			throw new Error(new BadActionException());
-		}
-
-		@Override
-		@SuppressWarnings("unused")
-		public void doUndo(ITrialUndoActionProvider<RULE_DATA> provider, ACT action) {
-			throw new Error(new BadActionException());
-		}
-	}
-
-	static public class BadActionException extends Exception {
-		private static final long serialVersionUID = 1L;
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/lpgextensions/FixedBacktrackingParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/lpgextensions/FixedBacktrackingParser.java
deleted file mode 100644
index f0646c2..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/lpgextensions/FixedBacktrackingParser.java
+++ /dev/null
@@ -1,614 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2015 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.lrparser.lpgextensions;
-
-import lpg.lpgjavaruntime.BadParseException;
-import lpg.lpgjavaruntime.BadParseSymFileException;
-import lpg.lpgjavaruntime.ConfigurationElement;
-import lpg.lpgjavaruntime.ConfigurationStack;
-import lpg.lpgjavaruntime.IntTuple;
-import lpg.lpgjavaruntime.Monitor;
-import lpg.lpgjavaruntime.NotBacktrackParseTableException;
-import lpg.lpgjavaruntime.ParseTable;
-import lpg.lpgjavaruntime.RuleAction;
-import lpg.lpgjavaruntime.Stacks;
-import lpg.lpgjavaruntime.TokenStream;
-
-public class FixedBacktrackingParser extends Stacks {
-	private Monitor monitor = null;
-	private int START_STATE, NUM_RULES, LA_STATE_OFFSET, EOFT_SYMBOL, ERROR_SYMBOL, ACCEPT_ACTION, ERROR_ACTION;
-
-	private int lastToken, currentAction;
-	private TokenStream tokStream;
-	private ParseTable prs;
-	private RuleAction ra;
-	private IntTuple action = new IntTuple(1 << 10), tokens;
-	private int actionStack[];
-	private boolean skipTokens = false; // true if error productions are used to skip tokens
-
-	//
-	// Override the getToken function in Stacks.
-	//
-	@Override
-	public final int getToken(int i) {
-		return tokens.get(locationStack[stateStackTop + (i - 1)]);
-	}
-
-	public final int getCurrentRule() {
-		return currentAction;
-	}
-
-	public final int getFirstToken() {
-		return tokStream.getFirstErrorToken(getToken(1));
-	}
-
-	public final int getFirstToken(int i) {
-		return tokStream.getFirstErrorToken(getToken(i));
-	}
-
-	public final int getLastToken() {
-		return tokStream.getLastErrorToken(lastToken);
-	}
-
-	public final int getLastToken(int i) {
-		int l = (i >= prs.rhs(currentAction) ? lastToken : tokens.get(locationStack[stateStackTop + i] - 1));
-		return tokStream.getLastErrorToken(l);
-	}
-
-	public FixedBacktrackingParser(TokenStream tokStream, ParseTable prs, RuleAction ra)
-			throws BadParseSymFileException, NotBacktrackParseTableException {
-		this.tokStream = tokStream;
-		this.prs = prs;
-		this.ra = ra;
-
-		START_STATE = prs.getStartState();
-		NUM_RULES = prs.getNumRules();
-		LA_STATE_OFFSET = prs.getLaStateOffset();
-		EOFT_SYMBOL = prs.getEoftSymbol();
-		ERROR_SYMBOL = prs.getErrorSymbol();
-		ACCEPT_ACTION = prs.getAcceptAction();
-		ERROR_ACTION = prs.getErrorAction();
-
-		if (!prs.isValidForParser())
-			throw new BadParseSymFileException();
-		if (!prs.getBacktrack())
-			throw new NotBacktrackParseTableException();
-	}
-
-	public FixedBacktrackingParser(Monitor monitor, TokenStream tokStream, ParseTable prs, RuleAction ra)
-			throws BadParseSymFileException, NotBacktrackParseTableException {
-		this(tokStream, prs, ra);
-		this.monitor = monitor;
-	}
-
-	//
-	// Allocate or reallocate all the stacks. Their sizes should always be the same.
-	//
-	public void reallocateOtherStacks(int start_token_index) {
-		// assert(super.stateStack != null);
-		if (this.actionStack == null) {
-			this.actionStack = new int[super.stateStack.length];
-			super.locationStack = new int[super.stateStack.length];
-			super.parseStack = new Object[super.stateStack.length];
-
-			actionStack[0] = 0;
-			locationStack[0] = start_token_index;
-		} else if (this.actionStack.length < super.stateStack.length) {
-			int old_length = this.actionStack.length;
-
-			System.arraycopy(this.actionStack, 0, this.actionStack = new int[super.stateStack.length], 0, old_length);
-			System.arraycopy(super.locationStack, 0, super.locationStack = new int[super.stateStack.length], 0,
-					old_length);
-			System.arraycopy(super.parseStack, 0, super.parseStack = new Object[super.stateStack.length], 0,
-					old_length);
-		}
-		return;
-	}
-
-	//
-	// Parse without attempting any Error token recovery
-	//
-	public Object parse() throws BadParseException {
-		// without an argument parse() will ignore error productions
-		return parse(0);
-	}
-
-	//
-	// Parse input allowing up to max_error_count Error token recoveries.
-	// When max_error_count is 0, no Error token recoveries occur.
-	// When max_error is > 0, it limits the number of Error token recoveries.
-	// When max_error is < 0, the number of error token recoveries is unlimited.
-	// Also, such recoveries only require one token to be parsed beyond the recovery point.
-	// (normally two tokens beyond the recovery point must be parsed)
-	// Thus, a negative max_error_count should be used when error productions are used to
-	// skip tokens.
-	//
-	public Object parse(int max_error_count) throws BadParseException {
-		action.reset();
-		tokStream.reset(); // Position at first token.
-		reallocateStateStack();
-		stateStackTop = 0;
-		stateStack[0] = START_STATE;
-		skipTokens = max_error_count < 0;
-
-		//
-		// The tuple tokens will eventually contain the sequence
-		// of tokens that resulted in a successful parse. We leave
-		// it up to the "Stream" implementer to define the predecessor
-		// of the first token as he sees fit.
-		//
-		tokens = new IntTuple(tokStream.getStreamLength());
-		tokens.add(tokStream.getPrevious(tokStream.peek()));
-
-		int repair_token = 0, start_token_index = tokStream.peek(), start_action_index = action.size(), // obviously 0
-				temp_stack[] = new int[1];
-		temp_stack[0] = START_STATE;
-		int initial_error_token = backtrackParse(repair_token);
-		for (int error_token = initial_error_token, count = 0; error_token != 0; error_token = backtrackParse(
-				repair_token), count++) {
-			if (count == max_error_count)
-				throw new BadParseException(initial_error_token);
-			action.reset(start_action_index);
-			tokStream.reset(start_token_index);
-			stateStackTop = temp_stack.length - 1;
-			System.arraycopy(temp_stack, 0, stateStack, 0, temp_stack.length);
-			reallocateOtherStacks(start_token_index);
-
-			backtrackParseUpToError(repair_token, error_token);
-
-			for (stateStackTop = findRecoveryStateIndex(
-					stateStackTop); stateStackTop >= 0; stateStackTop = findRecoveryStateIndex(stateStackTop - 1)) {
-				int recovery_token = tokens.get(locationStack[stateStackTop] - 1);
-				repair_token = errorRepair((recovery_token >= start_token_index ? recovery_token : error_token),
-						error_token);
-				if (repair_token != 0)
-					break;
-			}
-
-			if (stateStackTop < 0)
-				throw new BadParseException(initial_error_token);
-
-			temp_stack = new int[stateStackTop + 1];
-			System.arraycopy(stateStack, 0, temp_stack, 0, temp_stack.length);
-
-			start_action_index = action.size();
-			start_token_index = tokStream.peek();
-		}
-
-		if (repair_token != 0)
-			tokens.add(repair_token);
-		int t;
-		for (t = start_token_index; tokStream.getKind(t) != EOFT_SYMBOL; t = tokStream.getNext(t))
-			tokens.add(t);
-		tokens.add(t);
-
-		return parseActions();
-	}
-
-	//
-	// Process reductions and continue...
-	//
-	private final void process_reductions() {
-		do {
-			stateStackTop -= (prs.rhs(currentAction) - 1);
-			ra.ruleAction(currentAction);
-			currentAction = prs.ntAction(stateStack[stateStackTop], prs.lhs(currentAction));
-		} while (currentAction <= NUM_RULES);
-		return;
-	}
-
-	//
-	// Now do the final parse of the input based on the actions in
-	// the list "action" and the sequence of tokens in list "tokens".
-	//
-	private Object parseActions() throws BadParseException {
-		int ti = -1, curtok;
-		lastToken = tokens.get(++ti);
-		curtok = tokens.get(++ti);
-		allocateOtherStacks();
-
-		//
-		// Reparse the input...
-		//
-		stateStackTop = -1;
-		currentAction = START_STATE;
-		for (int i = 0; i < action.size(); i++) {
-			//
-			// if the parser needs to stop processing,
-			// it may do so here.
-			//
-			if (monitor != null && monitor.isCancelled())
-				return null;
-
-			stateStack[++stateStackTop] = currentAction;
-			locationStack[stateStackTop] = ti;
-
-			currentAction = action.get(i);
-			if (currentAction <= NUM_RULES) // a reduce action?
-			{
-				stateStackTop--; // make reduction look like shift-reduction
-				process_reductions();
-			} else // a shift or shift-reduce action
-			{
-				lastToken = curtok;
-				curtok = tokens.get(++ti);
-				if (currentAction > ERROR_ACTION) // a shift-reduce action?
-				{
-					currentAction -= ERROR_ACTION;
-					process_reductions();
-				}
-			}
-		}
-
-		return parseStack[0];
-	}
-
-	//
-	// Process reductions and continue...
-	//
-	private int process_backtrack_reductions(int act) {
-		do {
-			stateStackTop -= (prs.rhs(act) - 1);
-			act = prs.ntAction(stateStack[stateStackTop], prs.lhs(act));
-		} while (act <= NUM_RULES);
-
-		return act;
-	}
-
-	//
-	// Parse the input until either the parse completes successfully or
-	// an error is encountered. This function returns an integer that
-	// represents the last action that was executed by the parser. If
-	// the parse was succesful, then the tuple "action" contains the
-	// successful sequence of actions that was executed.
-	//
-	private int backtrackParse(int initial_token) {
-		//
-		// Allocate configuration stack.
-		//
-		ConfigurationStack configuration_stack = new ConfigurationStack(prs);
-
-		//
-		// Keep parsing until we successfully reach the end of file or
-		// an error is encountered. The list of actions executed will
-		// be stored in the "action" tuple.
-		//
-		int error_token = 0, maxStackTop = stateStackTop, start_token = tokStream.peek(),
-				curtok = (initial_token > 0 ? initial_token : tokStream.getToken()),
-				current_kind = tokStream.getKind(curtok), act = tAction(stateStack[stateStackTop], current_kind);
-
-		//
-		// The main driver loop
-		//
-		for (;;) {
-			//
-			// if the parser needs to stop processing,
-			// it may do so here.
-			//
-			if (monitor != null && monitor.isCancelled())
-				return 0;
-
-			if (act <= NUM_RULES) {
-				action.add(act); // save this reduce action
-				stateStackTop--;
-				act = process_backtrack_reductions(act);
-			} else if (act > ERROR_ACTION) {
-				action.add(act); // save this shift-reduce action
-				curtok = tokStream.getToken();
-				current_kind = tokStream.getKind(curtok);
-				act = process_backtrack_reductions(act - ERROR_ACTION);
-			} else if (act < ACCEPT_ACTION) {
-				action.add(act); // save this shift action
-				curtok = tokStream.getToken();
-				current_kind = tokStream.getKind(curtok);
-			} else if (act == ERROR_ACTION) {
-				error_token = (error_token > curtok ? error_token : curtok);
-
-				ConfigurationElement configuration = configuration_stack.pop();
-				if (configuration == null)
-					act = ERROR_ACTION;
-				else {
-					action.reset(configuration.action_length);
-					act = configuration.act;
-					curtok = configuration.curtok;
-					current_kind = tokStream.getKind(curtok);
-					tokStream.reset(curtok == initial_token ? start_token : tokStream.getNext(curtok));
-					stateStackTop = configuration.stack_top;
-					configuration.retrieveStack(stateStack);
-					continue;
-				}
-				break;
-			} else if (act > ACCEPT_ACTION) {
-				if (configuration_stack.findConfiguration(stateStack, stateStackTop, curtok))
-					act = ERROR_ACTION;
-				else {
-					configuration_stack.push(stateStack, stateStackTop, act + 1, curtok, action.size());
-					act = prs.baseAction(act);
-					maxStackTop = stateStackTop > maxStackTop ? stateStackTop : maxStackTop;
-				}
-				continue;
-			} else
-				break; // assert(act == ACCEPT_ACTION);
-			try {
-				stateStack[++stateStackTop] = act;
-			} catch (IndexOutOfBoundsException e) {
-				reallocateStateStack();
-				stateStack[stateStackTop] = act;
-			}
-
-			act = tAction(act, current_kind);
-		}
-
-		//System.out.println("****Number of configurations: " + configuration_stack.configurationSize());
-		//System.out.println("****Number of elements in stack tree: " + configuration_stack.numStateElements());
-		//System.out.println("****Number of elements in stacks: " + configuration_stack.stacksSize());
-		//System.out.println("****Number of actions: " + action.size());
-		//System.out.println("****Max Stack Size = " + maxStackTop);
-		//System.out.flush();
-		return (act == ERROR_ACTION ? error_token : 0);
-	}
-
-	private void backtrackParseUpToError(int initial_token, int error_token) {
-		//
-		// Allocate configuration stack.
-		//
-		ConfigurationStack configuration_stack = new ConfigurationStack(prs);
-
-		//
-		// Keep parsing until we successfully reach the end of file or
-		// an error is encountered. The list of actions executed will
-		// be stored in the "action" tuple.
-		//
-		int start_token = tokStream.peek(), curtok = (initial_token > 0 ? initial_token : tokStream.getToken()),
-				current_kind = tokStream.getKind(curtok), act = tAction(stateStack[stateStackTop], current_kind);
-
-		tokens.add(curtok);
-		locationStack[stateStackTop] = tokens.size();
-		actionStack[stateStackTop] = action.size();
-
-		for (;;) {
-			//
-			// if the parser needs to stop processing,
-			// it may do so here.
-			//
-			if (monitor != null && monitor.isCancelled())
-				return;
-
-			if (act <= NUM_RULES) {
-				action.add(act); // save this reduce action
-				stateStackTop--;
-				act = process_backtrack_reductions(act);
-			} else if (act > ERROR_ACTION) {
-				action.add(act); // save this shift-reduce action
-				curtok = tokStream.getToken();
-				current_kind = tokStream.getKind(curtok);
-				tokens.add(curtok);
-				act = process_backtrack_reductions(act - ERROR_ACTION);
-			} else if (act < ACCEPT_ACTION) {
-				action.add(act); // save this shift action
-				curtok = tokStream.getToken();
-				current_kind = tokStream.getKind(curtok);
-				tokens.add(curtok);
-			} else if (act == ERROR_ACTION) {
-				if (curtok != error_token) {
-					ConfigurationElement configuration = configuration_stack.pop();
-					if (configuration == null)
-						act = ERROR_ACTION;
-					else {
-						action.reset(configuration.action_length);
-						act = configuration.act;
-						int next_token_index = configuration.curtok;
-						tokens.reset(next_token_index);
-						curtok = tokens.get(next_token_index - 1);
-						current_kind = tokStream.getKind(curtok);
-						tokStream.reset(curtok == initial_token ? start_token : tokStream.getNext(curtok));
-						stateStackTop = configuration.stack_top;
-						configuration.retrieveStack(stateStack);
-						locationStack[stateStackTop] = tokens.size();
-						actionStack[stateStackTop] = action.size();
-						continue;
-					}
-				}
-				break;
-			} else if (act > ACCEPT_ACTION) {
-				if (configuration_stack.findConfiguration(stateStack, stateStackTop, tokens.size()))
-					act = ERROR_ACTION;
-				else {
-					configuration_stack.push(stateStack, stateStackTop, act + 1, tokens.size(), action.size());
-					act = prs.baseAction(act);
-				}
-				continue;
-			} else
-				break; // assert(act == ACCEPT_ACTION);
-
-			stateStack[++stateStackTop] = act; // no need to check if out of bounds
-			locationStack[stateStackTop] = tokens.size();
-			actionStack[stateStackTop] = action.size();
-			act = tAction(act, current_kind);
-		}
-
-		// assert(curtok == error_token);
-
-		return;
-	}
-
-	private boolean repairable(int error_token) {
-		//
-		// Allocate configuration stack.
-		//
-		ConfigurationStack configuration_stack = new ConfigurationStack(prs);
-
-		//
-		// Keep parsing until we successfully reach the end of file or
-		// an error is encountered. The list of actions executed will
-		// be stored in the "action" tuple.
-		//
-		int start_token = tokStream.peek(), final_token = tokStream.getStreamLength(), // unreachable
-				curtok = 0, current_kind = ERROR_SYMBOL, act = tAction(stateStack[stateStackTop], current_kind);
-
-		for (;;) {
-			if (act <= NUM_RULES) {
-				stateStackTop--;
-				act = process_backtrack_reductions(act);
-			} else if (act > ERROR_ACTION) {
-				curtok = tokStream.getToken();
-				if (curtok > final_token)
-					return true;
-				current_kind = tokStream.getKind(curtok);
-				act = process_backtrack_reductions(act - ERROR_ACTION);
-			} else if (act < ACCEPT_ACTION) {
-				curtok = tokStream.getToken();
-				if (curtok > final_token)
-					return true;
-				current_kind = tokStream.getKind(curtok);
-			} else if (act == ERROR_ACTION) {
-				ConfigurationElement configuration = configuration_stack.pop();
-				if (configuration == null)
-					act = ERROR_ACTION;
-				else {
-					stateStackTop = configuration.stack_top;
-					configuration.retrieveStack(stateStack);
-					act = configuration.act;
-					curtok = configuration.curtok;
-					if (curtok == 0) {
-						current_kind = ERROR_SYMBOL;
-						tokStream.reset(start_token);
-					} else {
-						current_kind = tokStream.getKind(curtok);
-						tokStream.reset(tokStream.getNext(curtok));
-					}
-					continue;
-				}
-				break;
-			} else if (act > ACCEPT_ACTION) {
-				if (configuration_stack.findConfiguration(stateStack, stateStackTop, curtok))
-					act = ERROR_ACTION;
-				else {
-					configuration_stack.push(stateStack, stateStackTop, act + 1, curtok, 0);
-					act = prs.baseAction(act);
-				}
-				continue;
-			} else
-				break; // assert(act == ACCEPT_ACTION);
-			try {
-				//
-				// We consider a configuration to be acceptable for recovery
-				// if we are able to consume enough symbols in the remainining
-				// tokens to reach another potential recovery point past the
-				// original error token.
-				//
-				if ((curtok > error_token) && (final_token == tokStream.getStreamLength())) {
-					//
-					// If the ERROR_SYMBOL is a valid Action Adjunct in the state
-					// "act" then we set the terminating token as the successor of
-					// the current token. I.e., we have to be able to parse at least
-					// two tokens past the resynch point before we claim victory.
-					//
-					if (recoverableState(act))
-						final_token = skipTokens ? curtok : tokStream.getNext(curtok);
-				}
-
-				stateStack[++stateStackTop] = act;
-			} catch (IndexOutOfBoundsException e) {
-				reallocateStateStack();
-				stateStack[stateStackTop] = act;
-			}
-
-			act = tAction(act, current_kind);
-		}
-
-		//
-		// If we can reach the end of the input successfully, we claim victory.
-		//
-		return (act == ACCEPT_ACTION);
-	}
-
-	private boolean recoverableState(int state) {
-		for (int k = prs.asi(state); prs.asr(k) != 0; k++) {
-			if (prs.asr(k) == ERROR_SYMBOL)
-				return true;
-		}
-		return false;
-	}
-
-	private int findRecoveryStateIndex(int start_index) {
-		int i;
-		for (i = start_index; i >= 0; i--) {
-			//
-			// If the ERROR_SYMBOL is an Action Adjunct in state stateStack[i]
-			// then chose i as the index of the state to recover on.
-			//
-			if (recoverableState(stateStack[i]))
-				break;
-		}
-
-		if (i >= 0) // if a recoverable state, remove null reductions, if any.
-		{
-			int k;
-			for (k = i - 1; k >= 0; k--) {
-				if (locationStack[k] != locationStack[i])
-					break;
-			}
-			i = k + 1;
-		}
-
-		return i;
-	}
-
-	private int errorRepair(int recovery_token, int error_token) {
-		int temp_stack[] = new int[stateStackTop + 1];
-		System.arraycopy(stateStack, 0, temp_stack, 0, temp_stack.length);
-		for (; tokStream.getKind(recovery_token) != EOFT_SYMBOL; recovery_token = tokStream.getNext(recovery_token)) {
-			tokStream.reset(recovery_token);
-			if (repairable(error_token))
-				break;
-			stateStackTop = temp_stack.length - 1;
-			System.arraycopy(temp_stack, 0, stateStack, 0, temp_stack.length);
-		}
-
-		if (tokStream.getKind(recovery_token) == EOFT_SYMBOL) {
-			tokStream.reset(recovery_token);
-			if (!repairable(error_token)) {
-				stateStackTop = temp_stack.length - 1;
-				System.arraycopy(temp_stack, 0, stateStack, 0, temp_stack.length);
-				return 0;
-			}
-		}
-
-		//
-		//
-		//
-		stateStackTop = temp_stack.length - 1;
-		System.arraycopy(temp_stack, 0, stateStack, 0, temp_stack.length);
-		tokStream.reset(recovery_token);
-		tokens.reset(locationStack[stateStackTop] - 1);
-		action.reset(actionStack[stateStackTop]);
-
-		return tokStream.makeErrorToken(tokens.get(locationStack[stateStackTop] - 1),
-				tokStream.getPrevious(recovery_token), error_token, ERROR_SYMBOL);
-	}
-
-	private int tAction(int act, int sym) {
-		act = prs.tAction(act, sym);
-		if (act > LA_STATE_OFFSET) {
-			int next_token = tokStream.peek();
-			act = prs.lookAhead(act - LA_STATE_OFFSET, tokStream.getKind(next_token));
-			while (act > LA_STATE_OFFSET) {
-				next_token = tokStream.getNext(next_token);
-				act = prs.lookAhead(act - LA_STATE_OFFSET, tokStream.getKind(next_token));
-			}
-		}
-		return act;
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/lpgextensions/ITrialUndoActionProvider.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/lpgextensions/ITrialUndoActionProvider.java
deleted file mode 100644
index 36073a1..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/lpgextensions/ITrialUndoActionProvider.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *********************************************************************************/
-
-package org.eclipse.cdt.core.dom.lrparser.lpgextensions;
-
-/**
- * Provides trial, undo, and final actions for the
- * TrialUndoBacktrackingParser.
- */
-public interface ITrialUndoActionProvider<RULE_DATA> {
-	/**
-	 * Invokes the trial action that corresponds to the given rule number.
-	 */
-	boolean trialAction(int ruleNumber);
-
-	/**
-	 * Invokes the undo action that corresponds to the given rule number.
-	 */
-	void undoAction(int ruleNumber);
-
-	/**
-	 * Invokes the final action that corresponds to the given rule number.
-	 */
-	void finalAction(int ruleNumber);
-
-	/**
-	 * Sets the given Rule as the active rule for this provider.
-	 */
-	void setActiveRule(Rule<RULE_DATA> rule);
-
-	/**
-	 * Returns the active rule for this provider.
-	 */
-	Rule<RULE_DATA> getActiveRule();
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/lpgextensions/ParserState.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/lpgextensions/ParserState.java
deleted file mode 100644
index a99ec13..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/lpgextensions/ParserState.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2015 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.lrparser.lpgextensions;
-
-import java.util.LinkedList;
-
-import lpg.lpgjavaruntime.ConfigurationStack;
-import lpg.lpgjavaruntime.IntTuple;
-import lpg.lpgjavaruntime.TokenStream;
-
-class ParserState {
-	private static final int STACK_INCREMENT = 1024;
-
-	public int lastToken;
-	public int currentAction;
-	public IntTuple tokens;
-	public int actionStack[];
-	public int stateStackTop;
-	public int[] stateStack;
-	public int actionCount;
-	public int totalCommits;
-
-	public int[] parserLocationStack;
-	public int[] undoStack;
-
-	// Error recovery
-	public int[] locationStack;
-	public int repair_token;
-
-	/**
-	 * The number of trial actions that have been executed since the last backtrackable point was encountered.
-	 */
-	public int trialActionCount;
-
-	/**
-	 * A stack that contains the number of trial actions that were executed at different backtrackable points.
-	 */
-	public LinkedList<Integer> trialActionStack;
-
-	/**
-	 * Trial actions that have been executed but not yet committed.
-	 */
-	@SuppressWarnings("rawtypes")
-	public LinkedList pendingCommits;
-
-	public ConfigurationStack configurationStack;
-
-	public int act;
-
-	public int curtok;
-
-	public ParserState(int startState, TokenStream tokStream) {
-		reallocateStateStack();
-		stateStackTop = 0;
-		stateStack[0] = startState;
-
-		//
-		// The tuple tokens will eventually contain the sequence
-		// of tokens that resulted in a successful parse. We leave
-		// it up to the "Stream" implementer to define the predecessor
-		// of the first token as he sees fit.
-		//
-		tokStream.reset(); // Position at first token.
-		tokens = new IntTuple(tokStream.getStreamLength());
-		tokens.add(tokStream.getPrevious(tokStream.peek()));
-	}
-
-	public void allocateOtherStacks() {
-		locationStack = new int[stateStack.length];
-	}
-
-	public void reallocateStateStack() {
-		int old_stack_length = (stateStack == null ? 0 : stateStack.length),
-				stack_length = old_stack_length + STACK_INCREMENT;
-		if (stateStack == null)
-			stateStack = new int[stack_length];
-		else
-			System.arraycopy(stateStack, 0, stateStack = new int[stack_length], 0, old_stack_length);
-		return;
-	}
-
-	//
-	// Allocate or reallocate all the stacks. Their sizes should always be the
-	// same.
-	//
-	public void reallocateOtherStacks(int start_token_index) {
-		// assert(stateStack != null);
-		if (this.actionStack == null) {
-			this.actionStack = new int[stateStack.length];
-			locationStack = new int[stateStack.length];
-
-			actionStack[0] = 0;
-			undoStack = new int[stateStack.length];
-
-			locationStack[0] = start_token_index;
-
-			parserLocationStack = new int[stateStack.length];
-			parserLocationStack[0] = start_token_index;
-
-		} else if (this.actionStack.length < stateStack.length) {
-			int old_length = this.actionStack.length;
-
-			System.arraycopy(this.actionStack, 0, this.actionStack = new int[stateStack.length], 0, old_length);
-			System.arraycopy(this.undoStack, 0, this.undoStack = new int[stateStack.length], 0, old_length);
-			System.arraycopy(locationStack, 0, locationStack = new int[stateStack.length], 0, old_length);
-		}
-		return;
-	}
-
-	@SuppressWarnings("nls")
-	public void dumpState() {
-		System.out.print(curtok);
-		System.out.print("\t");
-		System.out.print(act);
-		System.out.print("\t");
-		dump(stateStack, stateStackTop);
-		System.out.print("\t");
-		dump(parserLocationStack, stateStackTop);
-		System.out.println();
-	}
-
-	@SuppressWarnings("nls")
-	private void dump(int[] array, int limit) {
-		System.out.print("[");
-		for (int i = 0; i < limit; i++) {
-			if (i > 0) {
-				System.out.print(", ");
-			}
-			System.out.print(array[i]);
-		}
-		System.out.print("]");
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/lpgextensions/Rule.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/lpgextensions/Rule.java
deleted file mode 100644
index 6089895..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/lpgextensions/Rule.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *********************************************************************************/
-
-package org.eclipse.cdt.core.dom.lrparser.lpgextensions;
-
-/**
- * Provides information about a reduction rule that a parser has
- * encountered.
- */
-class Rule<RULE_DATA> {
-	private int ruleNumber;
-	private int startTokenOffset;
-	private int endTokenOffset;
-	private RULE_DATA data;
-
-	public Rule(int ruleNumber, int startTokenOffset, int endTokenOffset) {
-		this.ruleNumber = ruleNumber;
-		this.startTokenOffset = startTokenOffset;
-		this.endTokenOffset = endTokenOffset;
-	}
-
-	public int getRuleNumber() {
-		return ruleNumber;
-	}
-
-	public int getStartTokenOffset() {
-		return startTokenOffset;
-	}
-
-	public int getEndTokenOffset() {
-		return endTokenOffset;
-	}
-
-	@Override
-	public String toString() {
-		return String.valueOf(ruleNumber);
-	}
-
-	public RULE_DATA getData() {
-		return data;
-	}
-
-	public void setData(RULE_DATA data) {
-		this.data = data;
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/lpgextensions/TrialUndoParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/lpgextensions/TrialUndoParser.java
deleted file mode 100644
index 6181c7b..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/lpgextensions/TrialUndoParser.java
+++ /dev/null
@@ -1,671 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.lrparser.lpgextensions;
-
-import java.util.LinkedList;
-
-import lpg.lpgjavaruntime.BadParseException;
-import lpg.lpgjavaruntime.BadParseSymFileException;
-import lpg.lpgjavaruntime.ConfigurationElement;
-import lpg.lpgjavaruntime.ConfigurationStack;
-import lpg.lpgjavaruntime.Monitor;
-import lpg.lpgjavaruntime.NotBacktrackParseTableException;
-import lpg.lpgjavaruntime.ParseTable;
-import lpg.lpgjavaruntime.TokenStream;
-
-public class TrialUndoParser {
-	private Monitor monitor = null;
-	private int START_STATE, NUM_RULES, LA_STATE_OFFSET, EOFT_SYMBOL, ERROR_SYMBOL, ACCEPT_ACTION, ERROR_ACTION;
-
-	private TokenStream tokStream;
-	private ParseTable prs;
-	private ITrialUndoActionProvider actionProvider;
-	private boolean skipTokens = false; // true if error productions are used to
-										// skip tokens
-
-	private ParserState state;
-
-	/**
-	 * Signals that a backtrack was requested by a trial action.
-	 */
-	private boolean backtrackRequested;
-
-	//
-	// Override the getToken function in Stacks.
-	//
-	public final int getToken(int i) {
-		return state.tokens.get(state.parserLocationStack[state.stateStackTop + (i - 1)]);
-	}
-
-	public int getTokenOffset() {
-		return state.parserLocationStack[state.stateStackTop];
-	}
-
-	public final int getCurrentRule() {
-		return state.currentAction;
-	}
-
-	public final int getFirstToken() {
-		return tokStream.getFirstErrorToken(getToken(1));
-	}
-
-	public final int getFirstToken(int i) {
-		return tokStream.getFirstErrorToken(getToken(i));
-	}
-
-	public final int getLastToken() {
-		return tokStream.getLastErrorToken(state.lastToken);
-	}
-
-	public final int getLastToken(int i) {
-		int l = (i >= prs.rhs(state.currentAction) ? state.lastToken
-				: state.tokens.get(state.locationStack[state.stateStackTop + i] - 1));
-		return tokStream.getLastErrorToken(l);
-	}
-
-	public TrialUndoParser(TokenStream tokStream, ParseTable prs, ITrialUndoActionProvider ra)
-			throws BadParseSymFileException, NotBacktrackParseTableException {
-		this.tokStream = tokStream;
-		this.prs = prs;
-		this.actionProvider = ra;
-
-		START_STATE = prs.getStartState();
-		NUM_RULES = prs.getNumRules();
-		LA_STATE_OFFSET = prs.getLaStateOffset();
-		EOFT_SYMBOL = prs.getEoftSymbol();
-		ERROR_SYMBOL = prs.getErrorSymbol();
-		ACCEPT_ACTION = prs.getAcceptAction();
-		ERROR_ACTION = prs.getErrorAction();
-
-		if (!prs.isValidForParser())
-			throw new BadParseSymFileException();
-		if (!prs.getBacktrack())
-			throw new NotBacktrackParseTableException();
-	}
-
-	public TrialUndoParser(Monitor monitor, TokenStream tokStream, ParseTable prs, ITrialUndoActionProvider ra)
-			throws BadParseSymFileException, NotBacktrackParseTableException {
-		this(tokStream, prs, ra);
-		this.monitor = monitor;
-	}
-
-	//
-	// Parse without attempting any Error token recovery
-	//
-	public Object parse() throws BadParseException {
-		// without an argument parse() will ignore error productions
-		return parse(0);
-	}
-
-	//
-	// Parse input allowing up to max_error_count Error token recoveries.
-	// When max_error_count is 0, no Error token recoveries occur.
-	// When max_error is > 0, it limits the number of Error token recoveries.
-	// When max_error is < 0, the number of error token recoveries is unlimited.
-	// Also, such recoveries only require one token to be parsed beyond the
-	// recovery point.
-	// (normally two tokens beyond the recovery point must be parsed)
-	// Thus, a negative max_error_count should be used when error productions
-	// are used to
-	// skip tokens.
-	//
-	public Object parse(int max_error_count) throws BadParseException {
-		state = new ParserState(START_STATE, tokStream);
-		skipTokens = max_error_count < 0;
-
-		state.pendingCommits = new LinkedList();
-		backtrackRequested = false;
-		state.trialActionCount = 0;
-
-		// Next "start" token
-		state.repair_token = 0;
-
-		int start_token_index = tokStream.peek();
-		int start_action_index = 0;
-
-		// Last commit point
-		int[] temp_stack = new int[1];
-		temp_stack[0] = START_STATE;
-
-		state.reallocateOtherStacks(start_token_index);
-
-		int initial_error_token = backtrackParse(state.repair_token);
-		for (int error_token = initial_error_token, count = 0; error_token != 0; error_token = backtrackParse(
-				state.repair_token), count++) {
-			if (count == max_error_count)
-				throw new BadParseException(initial_error_token);
-			state.actionCount = start_action_index;
-			tokStream.reset(start_token_index);
-			state.stateStackTop = temp_stack.length - 1;
-			System.arraycopy(temp_stack, 0, state.stateStack, 0, temp_stack.length);
-			state.reallocateOtherStacks(start_token_index);
-
-			backtrackParseUpToError(state.repair_token, error_token);
-
-			for (state.stateStackTop = findRecoveryStateIndex(
-					state.stateStackTop); state.stateStackTop >= 0; state.stateStackTop = findRecoveryStateIndex(
-							state.stateStackTop - 1)) {
-				int recovery_token = state.tokens.get(state.locationStack[state.stateStackTop] - 1);
-				state.repair_token = errorRepair((recovery_token >= start_token_index ? recovery_token : error_token),
-						error_token);
-				if (state.repair_token != 0)
-					break;
-			}
-
-			if (state.stateStackTop < 0)
-				throw new BadParseException(initial_error_token);
-
-			temp_stack = new int[state.stateStackTop + 1];
-			System.arraycopy(state.stateStack, 0, temp_stack, 0, temp_stack.length);
-
-			start_action_index = state.actionCount;
-			start_token_index = tokStream.peek();
-		}
-
-		if (state.repair_token != 0)
-			state.tokens.add(state.repair_token);
-		int t;
-		for (t = start_token_index; tokStream.getKind(t) != EOFT_SYMBOL; t = tokStream.getNext(t))
-			state.tokens.add(t);
-		state.tokens.add(t);
-
-		return null;
-	}
-
-	//
-	// Process reductions and continue...
-	//
-	private int process_backtrack_reductions(int act) {
-		do {
-			state.stateStackTop -= (prs.rhs(act) - 1);
-			trialAction(act);
-			if (backtrackRequested) {
-				backtrackRequested = false;
-				return ERROR_ACTION;
-			}
-			act = prs.ntAction(state.stateStack[state.stateStackTop], prs.lhs(act));
-		} while (act <= NUM_RULES);
-		return act;
-	}
-
-	//
-	// Process reductions and continue...
-	//
-	private int process_repair_reductions(int act) {
-		do {
-			System.out.println("process_repair_reductions: " + act);
-			state.stateStackTop -= (prs.rhs(act) - 1);
-			act = prs.ntAction(state.stateStack[state.stateStackTop], prs.lhs(act));
-		} while (act <= NUM_RULES);
-		return act;
-	}
-
-	//
-	// Parse the input until either the parse completes successfully or
-	// an error is encountered. This function returns an integer that
-	// represents the last action that was executed by the parser. If
-	// the parse was succesful, then the tuple "action" contains the
-	// successful sequence of actions that was executed.
-	//
-	private int backtrackParse(int initial_token) {
-		//
-		// Allocate configuration stack.
-		//
-		state.configurationStack = new ConfigurationStack(prs);
-		state.trialActionStack = new LinkedList<>();
-		state.trialActionStack.add(Integer.valueOf(state.trialActionCount));
-
-		//
-		// Keep parsing until we successfully reach the end of file or
-		// an error is encountered. The list of actions executed will
-		// be stored in the "action" tuple.
-		//
-		int error_token = 0;
-		int maxStackTop = state.stateStackTop;
-		int start_token = tokStream.peek();
-		state.curtok = (initial_token > 0 ? initial_token : tokStream.getToken());
-		int current_kind = tokStream.getKind(state.curtok);
-		state.act = tAction(state.stateStack[state.stateStackTop], current_kind);
-
-		//
-		// The main driver loop
-		//
-		for (;;) {
-			//
-			// if the parser needs to stop processing,
-			// it may do so here.
-			//
-			if (monitor != null && monitor.isCancelled())
-				return 0;
-
-			state.parserLocationStack[state.stateStackTop] = state.curtok;
-
-			if (state.act <= NUM_RULES) {
-				state.actionCount++;
-				state.stateStackTop--;
-				state.act = process_backtrack_reductions(state.act);
-			} else if (state.act > ERROR_ACTION) {
-				state.actionCount++;
-				state.lastToken = state.curtok;
-				state.curtok = tokStream.getToken();
-				current_kind = tokStream.getKind(state.curtok);
-				state.act = process_backtrack_reductions(state.act - ERROR_ACTION);
-			} else if (state.act < ACCEPT_ACTION) {
-				state.actionCount++;
-				state.lastToken = state.curtok;
-				state.curtok = tokStream.getToken();
-				current_kind = tokStream.getKind(state.curtok);
-			}
-
-			if (state.act == ERROR_ACTION) {
-				error_token = (error_token > state.curtok ? error_token : state.curtok);
-
-				ConfigurationElement configuration = state.configurationStack.pop();
-				if (configuration == null)
-					state.act = ERROR_ACTION;
-				else {
-					boolean shouldPop = prs.baseAction(configuration.conflict_index) == 0;
-					undoActions(shouldPop);
-					state.actionCount = configuration.action_length;
-					state.act = configuration.act;
-					state.curtok = configuration.curtok;
-					current_kind = tokStream.getKind(state.curtok);
-					tokStream.reset(state.curtok == initial_token ? start_token : tokStream.getNext(state.curtok));
-					state.stateStackTop = configuration.stack_top;
-					configuration.retrieveStack(state.stateStack);
-					continue;
-				}
-				break;
-			}
-			if (state.act > ACCEPT_ACTION && state.act != ERROR_ACTION) {
-				if (state.configurationStack.findConfiguration(state.stateStack, state.stateStackTop, state.curtok))
-					state.act = ERROR_ACTION;
-				else {
-					state.configurationStack.push(state.stateStack, state.stateStackTop, state.act + 1, state.curtok,
-							state.actionCount);
-					state.trialActionStack.add(Integer.valueOf(state.trialActionCount));
-					state.act = prs.baseAction(state.act);
-					maxStackTop = state.stateStackTop > maxStackTop ? state.stateStackTop : maxStackTop;
-				}
-				continue;
-			} else if (state.act == ACCEPT_ACTION) {
-				break;
-			}
-			try {
-				state.stateStack[++state.stateStackTop] = state.act;
-			} catch (IndexOutOfBoundsException e) {
-				state.reallocateStateStack();
-				state.stateStack[state.stateStackTop] = state.act;
-			}
-
-			state.act = tAction(state.act, current_kind);
-		}
-
-		// System.out.println("****Number of configurations: " +
-		// configuration_stack.configurationSize());
-		// System.out.println("****Number of elements in stack tree: " +
-		// configuration_stack.numStateElements());
-		// System.out.println("****Number of elements in stacks: " +
-		// configuration_stack.stacksSize());
-		// System.out.println("****Number of actions: " + action.size());
-		// System.out.println("****Max Stack Size = " + maxStackTop);
-		// System.out.flush();
-		return (state.act == ERROR_ACTION ? error_token : 0);
-	}
-
-	private void backtrackParseUpToError(int initial_token, int error_token) {
-		//
-		// Allocate configuration stack.
-		//
-		state.configurationStack = new ConfigurationStack(prs);
-		state.trialActionStack = new LinkedList<>();
-		state.trialActionStack.add(Integer.valueOf(state.trialActionCount));
-
-		//
-		// Keep parsing until we successfully reach the end of file or
-		// an error is encountered. The list of actions executed will
-		// be stored in the "action" tuple.
-		//
-
-		// tokStream.reset(initial_token);
-		int start_token = tokStream.peek();
-		state.curtok = (initial_token > 0 ? initial_token : tokStream.getToken());
-		int current_kind = tokStream.getKind(state.curtok);
-		state.act = tAction(state.stateStack[state.stateStackTop], current_kind);
-
-		state.tokens.add(state.curtok);
-		state.locationStack[state.stateStackTop] = state.tokens.size();
-		state.actionStack[state.stateStackTop] = state.actionCount;
-		state.undoStack[state.stateStackTop] = state.trialActionCount;
-
-		for (;;) {
-			//
-			// if the parser needs to stop processing,
-			// it may do so here.
-			//
-			if (monitor != null && monitor.isCancelled())
-				return;
-
-			state.parserLocationStack[state.stateStackTop] = state.curtok;
-
-			if (state.act <= NUM_RULES) {
-				state.actionCount++;
-				state.stateStackTop--;
-				state.act = process_backtrack_reductions(state.act);
-			} else if (state.act > ERROR_ACTION) {
-				state.actionCount++;
-				state.lastToken = state.curtok;
-				state.curtok = tokStream.getToken();
-				current_kind = tokStream.getKind(state.curtok);
-				state.tokens.add(state.curtok);
-				state.act = process_backtrack_reductions(state.act - ERROR_ACTION);
-			} else if (state.act < ACCEPT_ACTION) {
-				state.actionCount++;
-				state.lastToken = state.curtok;
-				state.curtok = tokStream.getToken();
-				current_kind = tokStream.getKind(state.curtok);
-				state.tokens.add(state.curtok);
-			} else if (state.act == ERROR_ACTION) {
-				if (state.curtok != error_token) {
-					ConfigurationElement configuration = state.configurationStack.pop();
-					if (configuration == null)
-						state.act = ERROR_ACTION;
-					else {
-						boolean shouldPop = prs.baseAction(configuration.conflict_index) == 0;
-						undoActions(shouldPop);
-						state.actionCount = configuration.action_length;
-						state.act = configuration.act;
-						int next_token_index = configuration.curtok;
-						state.tokens.reset(next_token_index);
-						state.curtok = state.tokens.get(next_token_index - 1);
-						current_kind = tokStream.getKind(state.curtok);
-						tokStream.reset(state.curtok == initial_token ? start_token : tokStream.getNext(state.curtok));
-						state.stateStackTop = configuration.stack_top;
-						configuration.retrieveStack(state.stateStack);
-						state.locationStack[state.stateStackTop] = state.tokens.size();
-						state.actionStack[state.stateStackTop] = state.actionCount;
-						state.undoStack[state.stateStackTop] = state.trialActionCount;
-						continue;
-					}
-				}
-				break;
-			} else if (state.act > ACCEPT_ACTION) {
-				if (state.configurationStack.findConfiguration(state.stateStack, state.stateStackTop,
-						state.tokens.size()))
-					state.act = ERROR_ACTION;
-				else {
-					state.configurationStack.push(state.stateStack, state.stateStackTop, state.act + 1,
-							state.tokens.size(), state.actionCount);
-					state.trialActionStack.add(Integer.valueOf(state.trialActionCount));
-					state.act = prs.baseAction(state.act);
-				}
-				continue;
-			} else
-				break; // assert(act == ACCEPT_ACTION);
-
-			state.stateStack[++state.stateStackTop] = state.act; // no need
-																	// to check
-																	// if out of
-																	// bounds
-			state.locationStack[state.stateStackTop] = state.tokens.size();
-			state.actionStack[state.stateStackTop] = state.actionCount;
-			state.undoStack[state.stateStackTop] = state.trialActionCount;
-			state.act = tAction(state.act, current_kind);
-		}
-
-		// assert(curtok == error_token);
-
-		return;
-	}
-
-	private boolean repairable(int error_token) {
-		//
-		// Allocate configuration stack.
-		//
-		ConfigurationStack configuration_stack = new ConfigurationStack(prs);
-
-		//
-		// Keep parsing until we successfully reach the end of file or
-		// an error is encountered. The list of actions executed will
-		// be stored in the "action" tuple.
-		//
-		int start_token = tokStream.peek();
-		int final_token = tokStream.getStreamLength(); // unreachable
-		int curtok = 0;
-		int current_kind = ERROR_SYMBOL;
-		int act = tAction(state.stateStack[state.stateStackTop], current_kind);
-
-		for (;;) {
-			if (act <= NUM_RULES) {
-				state.stateStackTop--;
-				act = process_repair_reductions(act);
-			} else if (act > ERROR_ACTION) {
-				curtok = tokStream.getToken();
-				if (curtok > final_token)
-					return true;
-				current_kind = tokStream.getKind(curtok);
-				act = process_repair_reductions(act - ERROR_ACTION);
-			} else if (act < ACCEPT_ACTION) {
-				curtok = tokStream.getToken();
-				if (curtok > final_token)
-					return true;
-				current_kind = tokStream.getKind(curtok);
-			} else if (act == ERROR_ACTION) {
-				ConfigurationElement configuration = configuration_stack.pop();
-				if (configuration == null)
-					act = ERROR_ACTION;
-				else {
-					state.stateStackTop = configuration.stack_top;
-					configuration.retrieveStack(state.stateStack);
-					act = configuration.act;
-					curtok = configuration.curtok;
-					if (curtok == 0) {
-						current_kind = ERROR_SYMBOL;
-						tokStream.reset(start_token);
-					} else {
-						current_kind = tokStream.getKind(curtok);
-						tokStream.reset(tokStream.getNext(curtok));
-					}
-					continue;
-				}
-				break;
-			} else if (act > ACCEPT_ACTION) {
-				if (configuration_stack.findConfiguration(state.stateStack, state.stateStackTop, curtok))
-					act = ERROR_ACTION;
-				else {
-					configuration_stack.push(state.stateStack, state.stateStackTop, act + 1, curtok, 0);
-					act = prs.baseAction(act);
-				}
-				continue;
-			} else
-				break; // assert(act == ACCEPT_ACTION);
-			try {
-				//
-				// We consider a configuration to be acceptable for recovery
-				// if we are able to consume enough symbols in the remaining
-				// tokens to reach another potential recovery point past the
-				// original error token.
-				//
-				if ((curtok > error_token) && (final_token == tokStream.getStreamLength())) {
-					//
-					// If the ERROR_SYMBOL is a valid Action Adjunct in the
-					// state
-					// "act" then we set the terminating token as the successor
-					// of
-					// the current token. I.e., we have to be able to parse at
-					// least
-					// two tokens past the re-synch point before we claim
-					// victory.
-					//
-					if (recoverableState(act))
-						final_token = skipTokens ? curtok : tokStream.getNext(curtok);
-				}
-
-				state.stateStack[++state.stateStackTop] = act;
-			} catch (IndexOutOfBoundsException e) {
-				state.reallocateStateStack();
-				state.stateStack[state.stateStackTop] = act;
-			}
-
-			act = tAction(act, current_kind);
-		}
-
-		//
-		// If we can reach the end of the input successfully, we claim victory.
-		//
-		return (act == ACCEPT_ACTION);
-	}
-
-	private boolean recoverableState(int state) {
-		for (int k = prs.asi(state); prs.asr(k) != 0; k++) {
-			if (prs.asr(k) == ERROR_SYMBOL)
-				return true;
-		}
-		return false;
-	}
-
-	private int findRecoveryStateIndex(int start_index) {
-		int i;
-		for (i = start_index; i >= 0; i--) {
-			//
-			// If the ERROR_SYMBOL is an Action Adjunct in state stateStack[i]
-			// then chose i as the index of the state to recover on.
-			//
-			if (recoverableState(state.stateStack[i]))
-				break;
-		}
-
-		if (i >= 0) // if a recoverable state, remove null reductions, if any.
-		{
-			int k;
-			for (k = i - 1; k >= 0; k--) {
-				if (state.locationStack[k] != state.locationStack[i])
-					break;
-			}
-			i = k + 1;
-		}
-
-		return i;
-	}
-
-	private int errorRepair(int recovery_token, int error_token) {
-		int temp_stack[] = new int[state.stateStackTop + 1];
-		System.arraycopy(state.stateStack, 0, temp_stack, 0, temp_stack.length);
-		for (; tokStream.getKind(recovery_token) != EOFT_SYMBOL; recovery_token = tokStream.getNext(recovery_token)) {
-			System.out.println("recovery token: " + tokStream.getKind(recovery_token)); //$NON-NLS-1$
-			tokStream.reset(recovery_token);
-			if (repairable(error_token))
-				break;
-			state.stateStackTop = temp_stack.length - 1;
-			System.arraycopy(temp_stack, 0, state.stateStack, 0, temp_stack.length);
-		}
-
-		if (tokStream.getKind(recovery_token) == EOFT_SYMBOL) {
-			tokStream.reset(recovery_token);
-			if (!repairable(error_token)) {
-				state.stateStackTop = temp_stack.length - 1;
-				System.arraycopy(temp_stack, 0, state.stateStack, 0, temp_stack.length);
-				return 0;
-			}
-		}
-
-		state.stateStackTop = temp_stack.length - 1;
-		System.arraycopy(temp_stack, 0, state.stateStack, 0, temp_stack.length);
-
-		undoActions(state.undoStack[state.stateStackTop]);
-		tokStream.reset(recovery_token);
-		state.tokens.reset(state.locationStack[state.stateStackTop] - 1);
-		state.actionCount = state.actionStack[state.stateStackTop];
-		state.trialActionCount = state.undoStack[state.stateStackTop];
-
-		return tokStream.makeErrorToken(state.tokens.get(state.locationStack[state.stateStackTop] - 1),
-				tokStream.getPrevious(recovery_token), error_token, ERROR_SYMBOL);
-	}
-
-	private int tAction(int act, int sym) {
-		act = prs.tAction(act, sym);
-		if (act > LA_STATE_OFFSET) {
-			int next_token = tokStream.peek();
-			act = prs.lookAhead(act - LA_STATE_OFFSET, tokStream.getKind(next_token));
-			while (act > LA_STATE_OFFSET) {
-				next_token = tokStream.getNext(next_token);
-				act = prs.lookAhead(act - LA_STATE_OFFSET, tokStream.getKind(next_token));
-			}
-		}
-		return act;
-	}
-
-	private void trialAction(int action) {
-		int start = getTokenOffset();
-		int end = getLastToken();
-		Rule rule = new Rule(action, start, end);
-
-		actionProvider.setActiveRule(rule);
-		boolean saveAction = actionProvider.trialAction(action);
-		if (backtrackRequested) {
-			return;
-		}
-		if (saveAction) {
-			state.trialActionCount++;
-			state.pendingCommits.add(rule);
-		}
-	}
-
-	/**
-	 * Performs the undo actions (in reverse order) for the corresponding trial
-	 * actions that have been executed since the last backtrackable point.
-	 */
-	private void undoActions(boolean shouldPop) {
-		int oldTrialActionCount;
-		if (state.trialActionStack.size() == 0) {
-			oldTrialActionCount = 0;
-		} else {
-			oldTrialActionCount = state.trialActionStack.getLast();
-			if (shouldPop) {
-				state.trialActionStack.removeLast();
-			}
-		}
-		safeUndoActions(oldTrialActionCount);
-
-		// needs to be a real checked exception if we ever decide to implement commits
-		//assert (state.trialActionCount == 0 && oldTrialActionCount == 0) || oldTrialActionCount != state.trialActionCount : "Went back in time too far";
-	}
-
-	private void safeUndoActions(int total) {
-		assert total >= 0 : "Tried to go back in time but the door was already shut."; //$NON-NLS-1$
-		undoActions(total);
-	}
-
-	private void undoActions(int total) {
-		while (state.trialActionCount > total) {
-			Rule action = ((Rule) state.pendingCommits.removeLast());
-			actionProvider.setActiveRule(action);
-			actionProvider.undoAction(action.getRuleNumber());
-			state.trialActionCount--;
-		}
-	}
-
-	public void backtrack() {
-		backtrackRequested = true;
-	}
-
-	public void commit() {
-		while (state.pendingCommits.size() > 0) {
-			Rule activeRule = (Rule) state.pendingCommits.removeFirst();
-			actionProvider.setActiveRule(activeRule);
-			actionProvider.finalAction(activeRule.getRuleNumber());
-			state.totalCommits++;
-		}
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/lpgextensions/TrialUndoParserTemplate.g b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/lpgextensions/TrialUndoParserTemplate.g
deleted file mode 100644
index e323a8e..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/lpgextensions/TrialUndoParserTemplate.g
+++ /dev/null
@@ -1,305 +0,0 @@
---------------------------------------------------------------------------------
--- Copyright (c) 2006, 2007 IBM Corporation and others.
--- This program and the accompanying materials
--- are made available under the terms of the Eclipse Public License 2.0
--- which accompanies this distribution, and is available at
--- https://www.eclipse.org/legal/epl-2.0/
---
--- SPDX-License-Identifier: EPL-2.0
---
--- Contributors:
---     IBM Corporation - initial API and implementation
---------------------------------------------------------------------------------
- 
---
--- In a parser using this template, the following macro may be redefined:
---
---     $additional_interfaces
---     $ast_class
---
--- B E G I N N I N G   O F   T E M P L A T E   TrialUndoParserTemplate
---
-%Options programming_language=java,margin=8,backtrack
-%Options table,error_maps,scopes
-%options prefix=TK_,
-%options action=("*.java", "/.", "./")
-%options headers=("*.java", "/:", ":/")
-%options ParseTable=lpg.lpgjavaruntime.ParseTable
-
---
--- This template requires that the name of the EOF token be set
--- to EOF_TOKEN to be consistent with LexerTemplateD and LexerTemplateE
---
-$EOF
-	EOF_TOKEN
-$End
-
-$ERROR
-	ERROR_TOKEN
-$End
-
-$Define
-		$DefaultAllocation
-		/:
-			RULE_ACTIONS[$rule_number] = new Action$rule_number$();:/
-
-		$NoAllocation
-		/:
-			RULE_ACTIONS[$rule_number] = EMPTY_ACTION:/
-
-		$NullAllocation
-		/:
-			RULE_ACTIONS[$rule_number] = new NullAction();:/
-
-		$BadAllocation
-		/:
-			RULE_ACTIONS[$rule_number] = new BadAction();:/
-
-		$Header
-		/.
-		//
-		// Rule $rule_number:  $rule_text
-		//./
-
-		$DefaultAction
-		/.$DefaultAllocation $Header
-			static final class Action$rule_number extends Action./
-
-		--
-		-- This macro is used to initialize the ruleAction array
-		-- to the null_action function.
-		--
-		$NullAction
-		/. $NullAllocation $Header
-			//
-			// final class NullAction extends Action
-			//
-		./
-
-		--
-		-- This macro is used to initialize the ruleAction array
-		-- to the no_action function.
-		--
-		$NoAction
-		/. $NoAllocation $Header
-			//
-			// final class NullAction extends Action
-			//
-		./
-
-		--
-		-- This macro is used to initialize the ruleAction array
-		-- to the bad_action function.
-		--
-		$BadAction
-		/. $BadAllocation $Header
-			//
-			// final class NullAction extends Action
-			//
-		./
-
-		--
-		-- This is the header for a ruleAction class
-		--
-		$BeginAction
-		/.$DefaultAllocation $Header
-		static final class Action$rule_number extends DeclaredAction<$action_class, $data_class> {
-			./
-
-		$EndAction
-		/.
-		}./
-
-		$BeginTrial
-		/.
-			public boolean doTrial(ITrialUndoActionProvider<$data_class> provider, $action_class action) {./
-		
-		$EndTrial
-		/.
-			return hasUndo;
-			}./
-		
-		$BeginUndo
-		/.
-			public Action$rule_number() { hasUndo = true; };
-			public void doUndo(ITrialUndoActionProvider<$data_class> provider, $action_class action) {./
-		
-		$EndUndo
-		/.
-			}./
-		
-		$BeginFinal
-		/.
-			public void doFinal(ITrialUndoActionProvider<$data_class> provider, $action_class action) {./
-		
-		$EndFinal
-		/.
-			}./
-		
-		$BeginJava
-		/.$BeginAction
-					$symbol_declarations./
-
-		$EndJava /.$EndAction./
-
-		$SplitActions /../
-
-		--
-		-- Macros that may be needed in a parser using this template
-		--
-		$additional_interfaces /../
-		$ast_class /.$ast_type./
-		$action_class /.Object./
-		
-		$Trial /.$BeginTrial./
-		$Undo  /.$BeginUndo./
-		$Final /.$BeginFinal./
-		$Action /.$BeginAction./
-		
-$End
-
-$Globals
-		/.
-import lpg.lpgjavaruntime.*;
-import org.eclipse.cdt.core.dom.lrparser.lpgextensions.ITrialUndoActionProvider;
-import org.eclipse.cdt.core.dom.lrparser.lpgextensions.AbstractTrialUndoActionProvider;
-import org.eclipse.cdt.core.dom.lrparser.lpgextensions.TrialUndoParser;
-./
-$End
-
-$Headers
-	/.
-public class $action_type extends AbstractTrialUndoActionProvider<$action_class, $data_class> implements IParserActionTokenProvider, IParser $additional_interfaces {
-		private static ParseTable prs = new $prs_type();
-		protected static final Action<$action_class, $data_class>[] RULE_ACTIONS;
-	
-		{
-		    ruleAction = RULE_ACTIONS;
-		}
-		    
-		public $action_type(LexStream lexStream) {
-			super(lexStream);
-	
-			try {
-				super.remapTerminalSymbols(orderedTerminalSymbols(), $prs_type.EOFT_SYMBOL);
-			} catch (NullExportedSymbolsException e) {
-			} catch (NullTerminalSymbolsException e) {
-			} catch (UnimplementedTerminalsException e) {
-				java.util.ArrayList unimplemented_symbols = e.getSymbols();
-				System.out.println("The Lexer will not scan the following token(s):");
-				for (int i = 0; i < unimplemented_symbols.size(); i++) {
-					Integer id = (Integer) unimplemented_symbols.get(i);
-					System.out.println("    " + $sym_type.orderedTerminalSymbols[id.intValue()]);
-				}
-				System.out.println();
-			} catch (UndefinedEofSymbolException e) {
-				throw new Error(new UndefinedEofSymbolException("The Lexer does not implement the Eof symbol " + $sym_type.orderedTerminalSymbols[$prs_type.EOFT_SYMBOL]));
-			}
-		}
-	
-		
-	    public $action_type() {  // constructor
-	        //	this(new $lexer_class());
-	    }
-	
-		public String[] orderedTerminalSymbols() {
-			return $sym_type.orderedTerminalSymbols;
-		}
-	
-		public String getTokenKindName(int kind) {
-			return $sym_type.orderedTerminalSymbols[kind];
-		}
-	
-		public int getEOFTokenKind() {
-			return $prs_type.EOFT_SYMBOL;
-		}
-		
-		public PrsStream getParseStream() {
-			return (PrsStream) this;
-		}
-	
-		//
-		// Report error message for given error_token.
-		//
-		public final void reportErrorTokenMessage(int error_token, String msg) {
-			int firsttok = super.getFirstRealToken(error_token), lasttok = super.getLastRealToken(error_token);
-			String location = super.getFileName() + ':' +
-				(firsttok > lasttok
-					? (super.getEndLine(lasttok) + ":" + super.getEndColumn(lasttok))
-					: (super.getLine(error_token) + ":" +
-					   super.getColumn(error_token) + ":" +
-					   super.getEndLine(error_token) + ":" +
-					   super.getEndColumn(error_token))) + ": ";
-			super.reportError((firsttok > lasttok ? ParseErrorCodes.INSERTION_CODE : ParseErrorCodes.SUBSTITUTION_CODE), location, msg);
-		}
-	
-		public $ast_class parser() {
-			return parser(null, 0);
-		}
-	
-		public $ast_class parser(Monitor monitor) {
-			return parser(monitor, 0);
-		}
-	
-		public $ast_class parser(int error_repair_count) {
-			return parser(null, error_repair_count);
-		}
-	
-		public $ast_class parser(Monitor monitor, int error_repair_count) {
-			try {
-				btParser = new TrialUndoParser((TokenStream) this, prs, (ITrialUndoActionProvider<$data_class>) this);
-			} catch (NotBacktrackParseTableException e) {
-				throw new Error(new NotBacktrackParseTableException("Regenerate $prs_type.java with -BACKTRACK option"));
-			} catch (BadParseSymFileException e) {
-				throw new Error(new BadParseSymFileException("Bad Parser Symbol File -- $sym_type.java"));
-			}
-	
-			try {
-				Object result = (Object) btParser.parse(error_repair_count);
-				btParser.commit();
-				return result;
-			} catch (BadParseException e) {
-				reset(e.error_token); // point to error token
-	
-				//DiagnoseParser diagnoseParser = new DiagnoseParser((TokenStream) this, prs);
-				//diagnoseParser.diagnose(e.error_token);
-			}
-	
-			return null;
-		}
-	
-	./
-
-	/:
-
-		//
-		// Initialize ruleAction array.
-		//
-		static {
-			RULE_ACTIONS = new Action[$NUM_RULES + 1];
-			RULE_ACTIONS[0] = null;
-	:/
-$End
-
-$Trailers
-	/.
-	}
-	./
-
-	/:
-
-
-			//
-			// Make sure that all elements of ruleAction are properly initialized
-			//
-			for (int i = 0; i < RULE_ACTIONS.length; i++) {
-				if (RULE_ACTIONS[i] == null) {
-					RULE_ACTIONS[i] = emptyAction();
-				}
-			}
-		}
-	:/
-$End
---
--- E N D   O F   T E M P L A T E
---
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParser.java
deleted file mode 100644
index f8569f1..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParser.java
+++ /dev/null
@@ -1,1682 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2015 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.lrparser.c99;
-
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.cdt.core.dom.ast.IASTBinaryExpression;
-import org.eclipse.cdt.core.dom.ast.IASTCastExpression;
-import org.eclipse.cdt.core.dom.ast.IASTCompletionNode;
-import org.eclipse.cdt.core.dom.ast.IASTCompositeTypeSpecifier;
-import org.eclipse.cdt.core.dom.ast.IASTElaboratedTypeSpecifier;
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-import org.eclipse.cdt.core.dom.ast.IASTLiteralExpression;
-import org.eclipse.cdt.core.dom.ast.IASTTypeIdExpression;
-import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression;
-import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter;
-import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
-import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
-import org.eclipse.cdt.core.dom.lrparser.ITokenCollector;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
-import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
-import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
-import org.eclipse.cdt.core.dom.lrparser.action.c99.C99BuildASTParserAction;
-import org.eclipse.cdt.core.dom.lrparser.action.c99.C99SecondaryParserFactory;
-import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser;
-import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
-import org.eclipse.cdt.core.index.IIndex;
-import org.eclipse.cdt.core.parser.IScanner;
-import org.eclipse.cdt.internal.core.dom.parser.c.CNodeFactory;
-
-import lpg.lpgjavaruntime.BadParseException;
-import lpg.lpgjavaruntime.BadParseSymFileException;
-import lpg.lpgjavaruntime.DiagnoseParser;
-import lpg.lpgjavaruntime.ErrorToken;
-import lpg.lpgjavaruntime.IToken;
-import lpg.lpgjavaruntime.LexStream;
-import lpg.lpgjavaruntime.Monitor;
-import lpg.lpgjavaruntime.NotBacktrackParseTableException;
-import lpg.lpgjavaruntime.NullExportedSymbolsException;
-import lpg.lpgjavaruntime.NullTerminalSymbolsException;
-import lpg.lpgjavaruntime.ParseErrorCodes;
-import lpg.lpgjavaruntime.ParseTable;
-import lpg.lpgjavaruntime.PrsStream;
-import lpg.lpgjavaruntime.RuleAction;
-import lpg.lpgjavaruntime.Token;
-import lpg.lpgjavaruntime.UndefinedEofSymbolException;
-import lpg.lpgjavaruntime.UnimplementedTerminalsException;
-
-public class C99ExpressionParser extends PrsStream
-		implements RuleAction, ITokenStream, ITokenCollector, ISecondaryParser<IASTExpression> {
-	private static ParseTable prs = new C99ExpressionParserprs();
-	private FixedBacktrackingParser btParser;
-
-	public FixedBacktrackingParser getParser() {
-		return btParser;
-	}
-
-	private void setResult(Object object) {
-		btParser.setSym1(object);
-	}
-
-	public Object getRhsSym(int i) {
-		return btParser.getSym(i);
-	}
-
-	public int getRhsTokenIndex(int i) {
-		return btParser.getToken(i);
-	}
-
-	public IToken getRhsIToken(int i) {
-		return super.getIToken(getRhsTokenIndex(i));
-	}
-
-	public int getRhsFirstTokenIndex(int i) {
-		return btParser.getFirstToken(i);
-	}
-
-	public IToken getRhsFirstIToken(int i) {
-		return super.getIToken(getRhsFirstTokenIndex(i));
-	}
-
-	public int getRhsLastTokenIndex(int i) {
-		return btParser.getLastToken(i);
-	}
-
-	public IToken getRhsLastIToken(int i) {
-		return super.getIToken(getRhsLastTokenIndex(i));
-	}
-
-	public int getLeftSpan() {
-		return btParser.getFirstToken();
-	}
-
-	@Override
-	public IToken getLeftIToken() {
-		return super.getIToken(getLeftSpan());
-	}
-
-	public int getRightSpan() {
-		return btParser.getLastToken();
-	}
-
-	@Override
-	public IToken getRightIToken() {
-		return super.getIToken(getRightSpan());
-	}
-
-	public int getRhsErrorTokenIndex(int i) {
-		int index = btParser.getToken(i);
-		IToken err = super.getIToken(index);
-		return (err instanceof ErrorToken ? index : 0);
-	}
-
-	public ErrorToken getRhsErrorIToken(int i) {
-		int index = btParser.getToken(i);
-		IToken err = super.getIToken(index);
-		return (ErrorToken) (err instanceof ErrorToken ? err : null);
-	}
-
-	public C99ExpressionParser(LexStream lexStream) {
-		super(lexStream);
-
-		try {
-			super.remapTerminalSymbols(orderedTerminalSymbols(), C99ExpressionParserprs.EOFT_SYMBOL);
-		} catch (NullExportedSymbolsException e) {
-		} catch (NullTerminalSymbolsException e) {
-		} catch (UnimplementedTerminalsException e) {
-			java.util.ArrayList unimplemented_symbols = e.getSymbols();
-			System.out.println("The Lexer will not scan the following token(s):");
-			for (int i = 0; i < unimplemented_symbols.size(); i++) {
-				Integer id = (Integer) unimplemented_symbols.get(i);
-				System.out.println("    " + C99ExpressionParsersym.orderedTerminalSymbols[id.intValue()]);
-			}
-			System.out.println();
-		} catch (UndefinedEofSymbolException e) {
-			throw new Error(new UndefinedEofSymbolException("The Lexer does not implement the Eof symbol "
-					+ C99ExpressionParsersym.orderedTerminalSymbols[C99ExpressionParserprs.EOFT_SYMBOL]));
-		}
-	}
-
-	@Override
-	public String[] orderedTerminalSymbols() {
-		return C99ExpressionParsersym.orderedTerminalSymbols;
-	}
-
-	public String getTokenKindName(int kind) {
-		return C99ExpressionParsersym.orderedTerminalSymbols[kind];
-	}
-
-	public int getEOFTokenKind() {
-		return C99ExpressionParserprs.EOFT_SYMBOL;
-	}
-
-	public PrsStream getParseStream() {
-		return this;
-	}
-
-	//
-	// Report error message for given error_token.
-	//
-	public final void reportErrorTokenMessage(int error_token, String msg) {
-		int firsttok = super.getFirstErrorToken(error_token), lasttok = super.getLastErrorToken(error_token);
-		String location = super.getFileName() + ':'
-				+ (firsttok > lasttok ? (super.getEndLine(lasttok) + ":" + super.getEndColumn(lasttok))
-						: (super.getLine(error_token) + ":" + super.getColumn(error_token) + ":"
-								+ super.getEndLine(error_token) + ":" + super.getEndColumn(error_token)))
-				+ ": ";
-		super.reportError((firsttok > lasttok ? ParseErrorCodes.INSERTION_CODE : ParseErrorCodes.SUBSTITUTION_CODE),
-				location, msg);
-	}
-
-	public void parser() {
-		parser(null, 0);
-	}
-
-	public void parser(Monitor monitor) {
-		parser(monitor, 0);
-	}
-
-	public void parser(int error_repair_count) {
-		parser(null, error_repair_count);
-	}
-
-	public void parser(Monitor monitor, int error_repair_count) {
-		try {
-			btParser = new FixedBacktrackingParser(monitor, this, prs, this);
-		} catch (NotBacktrackParseTableException e) {
-			throw new Error(new NotBacktrackParseTableException(
-					"Regenerate C99ExpressionParserprs.java with -BACKTRACK option"));
-		} catch (BadParseSymFileException e) {
-			throw new Error(new BadParseSymFileException("Bad Parser Symbol File -- C99ExpressionParsersym.java"));
-		}
-
-		try {
-			btParser.parse(error_repair_count);
-		} catch (BadParseException e) {
-			reset(e.error_token); // point to error token
-			DiagnoseParser diagnoseParser = new DiagnoseParser(this, prs);
-			diagnoseParser.diagnose(e.error_token);
-		}
-	}
-
-	private C99BuildASTParserAction action;
-	private IASTCompletionNode compNode;
-
-	public C99ExpressionParser(IScanner scanner, IDOMTokenMap tokenMap,
-			IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Map<String, String> properties) {
-		initActions(properties);
-		action.initializeTranslationUnit(scanner, builtinBindingsProvider, index);
-		CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap);
-	}
-
-	private void initActions(Map<String, String> properties) {
-		ScopedStack<Object> astStack = new ScopedStack<>();
-
-		action = new C99BuildASTParserAction(this, astStack, CNodeFactory.getDefault(),
-				C99SecondaryParserFactory.getDefault());
-		action.setParserProperties(properties);
-
-	}
-
-	@Override
-	public void addToken(IToken token) {
-		token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called?
-		super.addToken(token);
-	}
-
-	@Override
-	public IASTExpression parse() {
-		// this has to be done, or... kaboom!
-		setStreamLength(getSize());
-
-		final int errorRepairCount = -1; // -1 means full error handling
-		parser(null, errorRepairCount); // do the actual parse
-		super.resetTokenStream(); // allow tokens to be garbage collected
-
-		compNode = action.getASTCompletionNode(); // the completion node may be null
-		return (IASTExpression) action.getParseResult();
-	}
-
-	@Override
-	public IASTCompletionNode getCompletionNode() {
-		return compNode;
-	}
-
-	// uncomment this method to use with backtracking parser
-	@Override
-	public List<IToken> getRuleTokens() {
-		return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
-	}
-
-	@Override
-	public String[] getOrderedTerminalSymbols() {
-		return C99ExpressionParsersym.orderedTerminalSymbols;
-	}
-
-	@Override
-	@SuppressWarnings("nls")
-	public String getName() {
-		return "C99ExpressionParser";
-	}
-
-	private ITokenMap tokenMap = null;
-
-	@Override
-	public void setTokens(List<IToken> tokens) {
-		resetTokenStream();
-		addToken(new Token(null, 0, 0, 0)); // dummy token
-		for (IToken token : tokens) {
-			token.setKind(tokenMap.mapKind(token.getKind()));
-			addToken(token);
-		}
-		addToken(new Token(null, 0, 0, C99ExpressionParsersym.TK_EOF_TOKEN));
-	}
-
-	public C99ExpressionParser(ITokenStream stream, Map<String, String> properties) { // constructor for creating secondary parser
-		initActions(properties);
-		tokenMap = new TokenMap(C99ExpressionParsersym.orderedTerminalSymbols, stream.getOrderedTerminalSymbols());
-	}
-
-	@Override
-	public void ruleAction(int ruleNumber) {
-		switch (ruleNumber) {
-
-		//
-		// Rule 1:  <openscope-ast> ::= $Empty
-		//
-		case 1: {
-			action.openASTScope();
-			break;
-		}
-
-		//
-		// Rule 2:  <empty> ::= $Empty
-		//
-		case 2: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 13:  literal ::= integer
-		//
-		case 13: {
-			action.consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant);
-			break;
-		}
-
-		//
-		// Rule 14:  literal ::= floating
-		//
-		case 14: {
-			action.consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant);
-			break;
-		}
-
-		//
-		// Rule 15:  literal ::= charconst
-		//
-		case 15: {
-			action.consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant);
-			break;
-		}
-
-		//
-		// Rule 16:  literal ::= stringlit
-		//
-		case 16: {
-			action.consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal);
-			break;
-		}
-
-		//
-		// Rule 18:  primary_expression ::= primary_expression_id
-		//
-		case 18: {
-			action.consumeExpressionID();
-			break;
-		}
-
-		//
-		// Rule 19:  primary_expression ::= ( expression )
-		//
-		case 19: {
-			action.consumeExpressionBracketed();
-			break;
-		}
-
-		//
-		// Rule 22:  postfix_expression ::= postfix_expression [ expression ]
-		//
-		case 22: {
-			action.consumeExpressionArraySubscript();
-			break;
-		}
-
-		//
-		// Rule 23:  postfix_expression ::= postfix_expression ( expression_list_opt )
-		//
-		case 23: {
-			action.consumeExpressionFunctionCall();
-			break;
-		}
-
-		//
-		// Rule 24:  postfix_expression ::= postfix_expression . member_name
-		//
-		case 24: {
-			action.consumeExpressionFieldReference(false);
-			break;
-		}
-
-		//
-		// Rule 25:  postfix_expression ::= postfix_expression -> member_name
-		//
-		case 25: {
-			action.consumeExpressionFieldReference(true);
-			break;
-		}
-
-		//
-		// Rule 26:  postfix_expression ::= postfix_expression ++
-		//
-		case 26: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr);
-			break;
-		}
-
-		//
-		// Rule 27:  postfix_expression ::= postfix_expression --
-		//
-		case 27: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr);
-			break;
-		}
-
-		//
-		// Rule 28:  postfix_expression ::= ( type_id ) initializer_list
-		//
-		case 28: {
-			action.consumeExpressionTypeIdInitializer();
-			break;
-		}
-
-		//
-		// Rule 33:  unary_expression ::= ++ unary_expression
-		//
-		case 33: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr);
-			break;
-		}
-
-		//
-		// Rule 34:  unary_expression ::= -- unary_expression
-		//
-		case 34: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr);
-			break;
-		}
-
-		//
-		// Rule 35:  unary_expression ::= & cast_expression
-		//
-		case 35: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper);
-			break;
-		}
-
-		//
-		// Rule 36:  unary_expression ::= * cast_expression
-		//
-		case 36: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_star);
-			break;
-		}
-
-		//
-		// Rule 37:  unary_expression ::= + cast_expression
-		//
-		case 37: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus);
-			break;
-		}
-
-		//
-		// Rule 38:  unary_expression ::= - cast_expression
-		//
-		case 38: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus);
-			break;
-		}
-
-		//
-		// Rule 39:  unary_expression ::= ~ cast_expression
-		//
-		case 39: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde);
-			break;
-		}
-
-		//
-		// Rule 40:  unary_expression ::= ! cast_expression
-		//
-		case 40: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_not);
-			break;
-		}
-
-		//
-		// Rule 41:  unary_expression ::= sizeof unary_expression
-		//
-		case 41: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof);
-			break;
-		}
-
-		//
-		// Rule 42:  unary_expression ::= sizeof ( type_id )
-		//
-		case 42: {
-			action.consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof);
-			break;
-		}
-
-		//
-		// Rule 44:  cast_expression ::= ( type_id ) cast_expression
-		//
-		case 44: {
-			action.consumeExpressionCast(IASTCastExpression.op_cast);
-			break;
-		}
-
-		//
-		// Rule 46:  multiplicative_expression ::= multiplicative_expression * cast_expression
-		//
-		case 46: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply);
-			break;
-		}
-
-		//
-		// Rule 47:  multiplicative_expression ::= multiplicative_expression / cast_expression
-		//
-		case 47: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide);
-			break;
-		}
-
-		//
-		// Rule 48:  multiplicative_expression ::= multiplicative_expression % cast_expression
-		//
-		case 48: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo);
-			break;
-		}
-
-		//
-		// Rule 50:  additive_expression ::= additive_expression + multiplicative_expression
-		//
-		case 50: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus);
-			break;
-		}
-
-		//
-		// Rule 51:  additive_expression ::= additive_expression - multiplicative_expression
-		//
-		case 51: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus);
-			break;
-		}
-
-		//
-		// Rule 53:  shift_expression ::= shift_expression << additive_expression
-		//
-		case 53: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft);
-			break;
-		}
-
-		//
-		// Rule 54:  shift_expression ::= shift_expression >> additive_expression
-		//
-		case 54: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight);
-			break;
-		}
-
-		//
-		// Rule 56:  relational_expression ::= relational_expression < shift_expression
-		//
-		case 56: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan);
-			break;
-		}
-
-		//
-		// Rule 57:  relational_expression ::= relational_expression > shift_expression
-		//
-		case 57: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan);
-			break;
-		}
-
-		//
-		// Rule 58:  relational_expression ::= relational_expression <= shift_expression
-		//
-		case 58: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual);
-			break;
-		}
-
-		//
-		// Rule 59:  relational_expression ::= relational_expression >= shift_expression
-		//
-		case 59: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual);
-			break;
-		}
-
-		//
-		// Rule 61:  equality_expression ::= equality_expression == relational_expression
-		//
-		case 61: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals);
-			break;
-		}
-
-		//
-		// Rule 62:  equality_expression ::= equality_expression != relational_expression
-		//
-		case 62: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals);
-			break;
-		}
-
-		//
-		// Rule 64:  and_expression ::= and_expression & equality_expression
-		//
-		case 64: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd);
-			break;
-		}
-
-		//
-		// Rule 66:  exclusive_or_expression ::= exclusive_or_expression ^ and_expression
-		//
-		case 66: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor);
-			break;
-		}
-
-		//
-		// Rule 68:  inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression
-		//
-		case 68: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr);
-			break;
-		}
-
-		//
-		// Rule 70:  logical_and_expression ::= logical_and_expression && inclusive_or_expression
-		//
-		case 70: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd);
-			break;
-		}
-
-		//
-		// Rule 72:  logical_or_expression ::= logical_or_expression || logical_and_expression
-		//
-		case 72: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr);
-			break;
-		}
-
-		//
-		// Rule 74:  conditional_expression ::= logical_or_expression ? expression : assignment_expression
-		//
-		case 74: {
-			action.consumeExpressionConditional();
-			break;
-		}
-
-		//
-		// Rule 76:  assignment_expression ::= unary_expression = assignment_expression
-		//
-		case 76: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign);
-			break;
-		}
-
-		//
-		// Rule 77:  assignment_expression ::= unary_expression *= assignment_expression
-		//
-		case 77: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign);
-			break;
-		}
-
-		//
-		// Rule 78:  assignment_expression ::= unary_expression /= assignment_expression
-		//
-		case 78: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign);
-			break;
-		}
-
-		//
-		// Rule 79:  assignment_expression ::= unary_expression %= assignment_expression
-		//
-		case 79: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign);
-			break;
-		}
-
-		//
-		// Rule 80:  assignment_expression ::= unary_expression += assignment_expression
-		//
-		case 80: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign);
-			break;
-		}
-
-		//
-		// Rule 81:  assignment_expression ::= unary_expression -= assignment_expression
-		//
-		case 81: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign);
-			break;
-		}
-
-		//
-		// Rule 82:  assignment_expression ::= unary_expression <<= assignment_expression
-		//
-		case 82: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign);
-			break;
-		}
-
-		//
-		// Rule 83:  assignment_expression ::= unary_expression >>= assignment_expression
-		//
-		case 83: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign);
-			break;
-		}
-
-		//
-		// Rule 84:  assignment_expression ::= unary_expression &= assignment_expression
-		//
-		case 84: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign);
-			break;
-		}
-
-		//
-		// Rule 85:  assignment_expression ::= unary_expression ^= assignment_expression
-		//
-		case 85: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign);
-			break;
-		}
-
-		//
-		// Rule 86:  assignment_expression ::= unary_expression |= assignment_expression
-		//
-		case 86: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign);
-			break;
-		}
-
-		//
-		// Rule 89:  expression_list ::= <openscope-ast> expression_list_actual
-		//
-		case 89: {
-			action.consumeExpressionList();
-			break;
-		}
-
-		//
-		// Rule 91:  expression_list_opt ::= $Empty
-		//
-		case 91: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 101:  statement ::= ERROR_TOKEN
-		//
-		case 101: {
-			action.consumeStatementProblem();
-			break;
-		}
-
-		//
-		// Rule 102:  labeled_statement ::= identifier_token : statement
-		//
-		case 102: {
-			action.consumeStatementLabeled();
-			break;
-		}
-
-		//
-		// Rule 103:  labeled_statement ::= case constant_expression : statement
-		//
-		case 103: {
-			action.consumeStatementCase();
-			break;
-		}
-
-		//
-		// Rule 104:  labeled_statement ::= default : statement
-		//
-		case 104: {
-			action.consumeStatementDefault();
-			break;
-		}
-
-		//
-		// Rule 105:  compound_statement ::= { }
-		//
-		case 105: {
-			action.consumeStatementCompoundStatement(false);
-			break;
-		}
-
-		//
-		// Rule 106:  compound_statement ::= { <openscope-ast> block_item_list }
-		//
-		case 106: {
-			action.consumeStatementCompoundStatement(true);
-			break;
-		}
-
-		//
-		// Rule 110:  block_item ::= declaration
-		//
-		case 110: {
-			action.consumeStatementDeclarationWithDisambiguation();
-			break;
-		}
-
-		//
-		// Rule 111:  expression_statement ::= ;
-		//
-		case 111: {
-			action.consumeStatementNull();
-			break;
-		}
-
-		//
-		// Rule 112:  expression_statement ::= expression_in_statement ;
-		//
-		case 112: {
-			action.consumeStatementExpression();
-			break;
-		}
-
-		//
-		// Rule 113:  selection_statement ::= if ( expression ) statement
-		//
-		case 113: {
-			action.consumeStatementIf(false);
-			break;
-		}
-
-		//
-		// Rule 114:  selection_statement ::= if ( expression ) statement else statement
-		//
-		case 114: {
-			action.consumeStatementIf(true);
-			break;
-		}
-
-		//
-		// Rule 115:  selection_statement ::= switch ( expression ) statement
-		//
-		case 115: {
-			action.consumeStatementSwitch();
-			break;
-		}
-
-		//
-		// Rule 117:  expression_opt ::= $Empty
-		//
-		case 117: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 118:  iteration_statement ::= do statement while ( expression ) ;
-		//
-		case 118: {
-			action.consumeStatementDoLoop(true);
-			break;
-		}
-
-		//
-		// Rule 119:  iteration_statement ::= do statement
-		//
-		case 119: {
-			action.consumeStatementDoLoop(false);
-			break;
-		}
-
-		//
-		// Rule 120:  iteration_statement ::= while ( expression ) statement
-		//
-		case 120: {
-			action.consumeStatementWhileLoop();
-			break;
-		}
-
-		//
-		// Rule 121:  iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement
-		//
-		case 121: {
-			action.consumeStatementForLoop();
-			break;
-		}
-
-		//
-		// Rule 122:  iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement
-		//
-		case 122: {
-			action.consumeStatementForLoop();
-			break;
-		}
-
-		//
-		// Rule 123:  jump_statement ::= goto identifier_token ;
-		//
-		case 123: {
-			action.consumeStatementGoto();
-			break;
-		}
-
-		//
-		// Rule 124:  jump_statement ::= continue ;
-		//
-		case 124: {
-			action.consumeStatementContinue();
-			break;
-		}
-
-		//
-		// Rule 125:  jump_statement ::= break ;
-		//
-		case 125: {
-			action.consumeStatementBreak();
-			break;
-		}
-
-		//
-		// Rule 126:  jump_statement ::= return ;
-		//
-		case 126: {
-			action.consumeStatementReturn(false);
-			break;
-		}
-
-		//
-		// Rule 127:  jump_statement ::= return expression ;
-		//
-		case 127: {
-			action.consumeStatementReturn(true);
-			break;
-		}
-
-		//
-		// Rule 128:  declaration ::= declaration_specifiers ;
-		//
-		case 128: {
-			action.consumeDeclarationSimple(false);
-			break;
-		}
-
-		//
-		// Rule 129:  declaration ::= declaration_specifiers <openscope-ast> init_declarator_list ;
-		//
-		case 129: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 130:  declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
-		//
-		case 130: {
-			action.consumeDeclarationSpecifiersSimple();
-			break;
-		}
-
-		//
-		// Rule 131:  declaration_specifiers ::= <openscope-ast> struct_or_union_declaration_specifiers
-		//
-		case 131: {
-			action.consumeDeclarationSpecifiersStructUnionEnum();
-			break;
-		}
-
-		//
-		// Rule 132:  declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
-		//
-		case 132: {
-			action.consumeDeclarationSpecifiersStructUnionEnum();
-			break;
-		}
-
-		//
-		// Rule 133:  declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
-		//
-		case 133: {
-			action.consumeDeclarationSpecifiersStructUnionEnum();
-			break;
-		}
-
-		//
-		// Rule 134:  declaration_specifiers ::= <openscope-ast> typdef_name_declaration_specifiers
-		//
-		case 134: {
-			action.consumeDeclarationSpecifiersTypedefName();
-			break;
-		}
-
-		//
-		// Rule 159:  init_declarator ::= complete_declarator = initializer
-		//
-		case 159: {
-			action.consumeDeclaratorWithInitializer(true);
-			break;
-		}
-
-		//
-		// Rule 161:  storage_class_specifier ::= storage_class_specifier_token
-		//
-		case 161: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 167:  simple_type_specifier ::= simple_type_specifier_token
-		//
-		case 167: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 180:  type_name_specifier ::= identifier_token
-		//
-		case 180: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 181:  struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { <openscope-ast> struct_declaration_list_opt }
-		//
-		case 181: {
-			action.consumeTypeSpecifierComposite(false);
-			break;
-		}
-
-		//
-		// Rule 182:  struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { <openscope-ast> struct_declaration_list_opt }
-		//
-		case 182: {
-			action.consumeTypeSpecifierComposite(true);
-			break;
-		}
-
-		//
-		// Rule 187:  elaborated_specifier ::= struct elaborated_specifier_hook identifier_token
-		//
-		case 187: {
-			action.consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct);
-			break;
-		}
-
-		//
-		// Rule 188:  elaborated_specifier ::= union elaborated_specifier_hook identifier_token
-		//
-		case 188: {
-			action.consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union);
-			break;
-		}
-
-		//
-		// Rule 189:  elaborated_specifier ::= enum elaborated_specifier_hook identifier_token
-		//
-		case 189: {
-			action.consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum);
-			break;
-		}
-
-		//
-		// Rule 195:  struct_declaration ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ;
-		//
-		case 195: {
-			action.consumeStructDeclaration(true);
-			break;
-		}
-
-		//
-		// Rule 196:  struct_declaration ::= specifier_qualifier_list ;
-		//
-		case 196: {
-			action.consumeStructDeclaration(false);
-			break;
-		}
-
-		//
-		// Rule 197:  struct_declaration ::= ERROR_TOKEN
-		//
-		case 197: {
-			action.consumeDeclarationProblem();
-			break;
-		}
-
-		//
-		// Rule 203:  struct_declarator ::= : constant_expression
-		//
-		case 203: {
-			action.consumeBitField(false);
-			break;
-		}
-
-		//
-		// Rule 204:  struct_declarator ::= declarator : constant_expression
-		//
-		case 204: {
-			action.consumeBitField(true);
-			break;
-		}
-
-		//
-		// Rule 205:  enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
-		//
-		case 205: {
-			action.consumeTypeSpecifierEnumeration(false);
-			break;
-		}
-
-		//
-		// Rule 206:  enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
-		//
-		case 206: {
-			action.consumeTypeSpecifierEnumeration(true);
-			break;
-		}
-
-		//
-		// Rule 212:  enumerator ::= identifier_token
-		//
-		case 212: {
-			action.consumeEnumerator(false);
-			break;
-		}
-
-		//
-		// Rule 213:  enumerator ::= identifier_token = constant_expression
-		//
-		case 213: {
-			action.consumeEnumerator(true);
-			break;
-		}
-
-		//
-		// Rule 214:  type_qualifier ::= type_qualifier_token
-		//
-		case 214: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 218:  function_specifier ::= inline
-		//
-		case 218: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 220:  declarator ::= <openscope-ast> pointer_seq direct_declarator
-		//
-		case 220: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 225:  basic_direct_declarator ::= declarator_id_name
-		//
-		case 225: {
-			action.consumeDirectDeclaratorIdentifier();
-			break;
-		}
-
-		//
-		// Rule 226:  basic_direct_declarator ::= ( declarator )
-		//
-		case 226: {
-			action.consumeDirectDeclaratorBracketed();
-			break;
-		}
-
-		//
-		// Rule 227:  declarator_id_name ::= identifier
-		//
-		case 227: {
-			action.consumeIdentifierName();
-			break;
-		}
-
-		//
-		// Rule 228:  array_direct_declarator ::= basic_direct_declarator array_modifier
-		//
-		case 228: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 229:  array_direct_declarator ::= array_direct_declarator array_modifier
-		//
-		case 229: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 231:  function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_type_list )
-		//
-		case 231: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true, true);
-			break;
-		}
-
-		//
-		// Rule 232:  function_direct_declarator ::= basic_direct_declarator ( )
-		//
-		case 232: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true, false);
-			break;
-		}
-
-		//
-		// Rule 234:  function_declarator ::= <openscope-ast> pointer_seq function_direct_declarator
-		//
-		case 234: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 235:  knr_direct_declarator ::= basic_direct_declarator ( <openscope-ast> identifier_list )
-		//
-		case 235: {
-			action.consumeDirectDeclaratorFunctionDeclaratorKnR();
-			break;
-		}
-
-		//
-		// Rule 237:  knr_function_declarator ::= <openscope-ast> pointer_seq knr_direct_declarator
-		//
-		case 237: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 238:  identifier_list ::= identifier
-		//
-		case 238: {
-			action.consumeIdentifierKnR();
-			break;
-		}
-
-		//
-		// Rule 239:  identifier_list ::= identifier_list , identifier
-		//
-		case 239: {
-			action.consumeIdentifierKnR();
-			break;
-		}
-
-		//
-		// Rule 240:  array_modifier ::= [ ]
-		//
-		case 240: {
-			action.consumeDirectDeclaratorArrayModifier(false);
-			break;
-		}
-
-		//
-		// Rule 241:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ]
-		//
-		case 241: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false);
-			break;
-		}
-
-		//
-		// Rule 242:  array_modifier ::= [ assignment_expression ]
-		//
-		case 242: {
-			action.consumeDirectDeclaratorArrayModifier(true);
-			break;
-		}
-
-		//
-		// Rule 243:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
-		//
-		case 243: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 244:  array_modifier ::= [ static assignment_expression ]
-		//
-		case 244: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true);
-			break;
-		}
-
-		//
-		// Rule 245:  array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
-		//
-		case 245: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 246:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ]
-		//
-		case 246: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 247:  array_modifier ::= [ * ]
-		//
-		case 247: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false);
-			break;
-		}
-
-		//
-		// Rule 248:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ]
-		//
-		case 248: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false);
-			break;
-		}
-
-		//
-		// Rule 250:  pointer_seq ::= pointer_hook * pointer_hook
-		//
-		case 250: {
-			action.consumePointer();
-			break;
-		}
-
-		//
-		// Rule 251:  pointer_seq ::= pointer_seq pointer_hook * pointer_hook
-		//
-		case 251: {
-			action.consumePointer();
-			break;
-		}
-
-		//
-		// Rule 252:  pointer_seq ::= pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
-		//
-		case 252: {
-			action.consumePointerTypeQualifierList();
-			break;
-		}
-
-		//
-		// Rule 253:  pointer_seq ::= pointer_seq pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
-		//
-		case 253: {
-			action.consumePointerTypeQualifierList();
-			break;
-		}
-
-		//
-		// Rule 257:  parameter_type_list ::= parameter_list
-		//
-		case 257: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 258:  parameter_type_list ::= parameter_list , ...
-		//
-		case 258: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 259:  parameter_type_list ::= ...
-		//
-		case 259: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 262:  parameter_declaration ::= declaration_specifiers complete_parameter_declarator
-		//
-		case 262: {
-			action.consumeParameterDeclaration();
-			break;
-		}
-
-		//
-		// Rule 263:  parameter_declaration ::= declaration_specifiers
-		//
-		case 263: {
-			action.consumeParameterDeclarationWithoutDeclarator();
-			break;
-		}
-
-		//
-		// Rule 266:  type_id ::= specifier_qualifier_list
-		//
-		case 266: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 267:  type_id ::= specifier_qualifier_list abstract_declarator
-		//
-		case 267: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 269:  abstract_declarator ::= <openscope-ast> pointer_seq
-		//
-		case 269: {
-			action.consumeDeclaratorWithPointer(false);
-			break;
-		}
-
-		//
-		// Rule 270:  abstract_declarator ::= <openscope-ast> pointer_seq direct_abstract_declarator
-		//
-		case 270: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 274:  basic_direct_abstract_declarator ::= ( abstract_declarator )
-		//
-		case 274: {
-			action.consumeDirectDeclaratorBracketed();
-			break;
-		}
-
-		//
-		// Rule 275:  array_direct_abstract_declarator ::= array_modifier
-		//
-		case 275: {
-			action.consumeDirectDeclaratorArrayDeclarator(false);
-			break;
-		}
-
-		//
-		// Rule 276:  array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
-		//
-		case 276: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 277:  array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
-		//
-		case 277: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 278:  function_direct_abstract_declarator ::= ( )
-		//
-		case 278: {
-			action.consumeDirectDeclaratorFunctionDeclarator(false, false);
-			break;
-		}
-
-		//
-		// Rule 279:  function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( )
-		//
-		case 279: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true, false);
-			break;
-		}
-
-		//
-		// Rule 280:  function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list )
-		//
-		case 280: {
-			action.consumeDirectDeclaratorFunctionDeclarator(false, true);
-			break;
-		}
-
-		//
-		// Rule 281:  function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list )
-		//
-		case 281: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true, true);
-			break;
-		}
-
-		//
-		// Rule 282:  initializer ::= assignment_expression
-		//
-		case 282: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 283:  initializer ::= initializer_list
-		//
-		case 283: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 284:  initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq comma_opt } end_initializer_list
-		//
-		case 284: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 285:  initializer_list ::= { <openscope-ast> }
-		//
-		case 285: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 286:  start_initializer_list ::= $Empty
-		//
-		case 286: {
-			action.initializerListStart();
-			break;
-		}
-
-		//
-		// Rule 287:  end_initializer_list ::= $Empty
-		//
-		case 287: {
-			action.initializerListEnd();
-			break;
-		}
-
-		//
-		// Rule 292:  designated_initializer ::= <openscope-ast> designation = initializer
-		//
-		case 292: {
-			action.consumeInitializerDesignated();
-			break;
-		}
-
-		//
-		// Rule 296:  designator_base ::= [ constant_expression ]
-		//
-		case 296: {
-			action.consumeDesignatorArray();
-			break;
-		}
-
-		//
-		// Rule 297:  designator_base ::= . identifier_token
-		//
-		case 297: {
-			action.consumeDesignatorField();
-			break;
-		}
-
-		//
-		// Rule 298:  designator ::= [ constant_expression ]
-		//
-		case 298: {
-			action.consumeDesignatorArray();
-			break;
-		}
-
-		//
-		// Rule 299:  designator ::= . identifier_token
-		//
-		case 299: {
-			action.consumeDesignatorField();
-			break;
-		}
-
-		//
-		// Rule 300:  translation_unit ::= external_declaration_list
-		//
-		case 300: {
-			action.consumeTranslationUnit();
-			break;
-		}
-
-		//
-		// Rule 301:  translation_unit ::= $Empty
-		//
-		case 301: {
-			action.consumeTranslationUnit();
-			break;
-		}
-
-		//
-		// Rule 306:  external_declaration ::= ;
-		//
-		case 306: {
-			action.consumeDeclarationEmpty();
-			break;
-		}
-
-		//
-		// Rule 307:  external_declaration ::= ERROR_TOKEN
-		//
-		case 307: {
-			action.consumeDeclarationProblem();
-			break;
-		}
-
-		//
-		// Rule 311:  function_definition ::= <openscope-ast> function_declarator function_body
-		//
-		case 311: {
-			action.consumeFunctionDefinition(false);
-			break;
-		}
-
-		//
-		// Rule 312:  function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
-		//
-		case 312: {
-			action.consumeFunctionDefinitionKnR();
-			break;
-		}
-
-		//
-		// Rule 313:  normal_function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
-		//
-		case 313: {
-			action.consumeFunctionDefinition(true);
-			break;
-		}
-
-		//
-		// Rule 314:  function_body ::= { }
-		//
-		case 314: {
-			action.consumeStatementCompoundStatement(false);
-			break;
-		}
-
-		//
-		// Rule 315:  function_body ::= { <openscope-ast> block_item_list }
-		//
-		case 315: {
-			action.consumeStatementCompoundStatement(true);
-			break;
-		}
-
-		//
-		// Rule 317:  expression_parser_start ::= ERROR_TOKEN
-		//
-		case 317: {
-			action.consumeEmpty();
-			break;
-		}
-
-		default:
-			break;
-		}
-		return;
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParserprs.java
deleted file mode 100644
index 4daf3f8..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParserprs.java
+++ /dev/null
@@ -1,706 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2015 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.lrparser.c99;
-
-public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C99ExpressionParsersym {
-
-	public interface IsKeyword {
-		public final static byte isKeyword[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0 };
-	}
-
-	public final static byte isKeyword[] = IsKeyword.isKeyword;
-
-	public final boolean isKeyword(int index) {
-		return isKeyword[index] != 0;
-	}
-
-	public interface BaseCheck {
-		public final static short baseCheck[] = { 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 4,
-				4, 3, 3, 2, 2, 4, 1, 0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 1, 4, 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 3, 3,
-				3, 3, 1, 3, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 2, 1, 0, 1,
-				3, 1, 1, 1, 1, 1, 1, 1, 1, 3, 4, 3, 2, 4, 1, 2, 1, 1, 1, 2, 5, 7, 5, 1, 0, 7, 2, 5, 9, 8, 3, 2, 2, 2, 3,
-				2, 4, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 3, 1, 3, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6, 8, 0, 0, 1, 1, 3, 3, 3, 0, 1, 0, 1, 2, 4, 2, 1,
-				1, 1, 3, 1, 1, 2, 3, 7, 8, 0, 1, 0, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 3, 1, 2, 2, 1, 5, 3,
-				1, 3, 5, 1, 3, 1, 3, 2, 4, 3, 5, 4, 6, 6, 3, 5, 1, 3, 4, 5, 6, 0, 1, 2, 1, 3, 1, 1, 3, 2, 1, 1, 1, 1, 2,
-				1, 2, 3, 1, 1, 1, 3, 1, 2, 2, 2, 3, 4, 5, 1, 1, 7, 3, 0, 0, 1, 1, 3, 3, 4, 1, 1, 2, 3, 2, 3, 2, 1, 0, 1,
-				2, 1, 1, 1, 1, 1, 2, 1, 3, 6, 4, 2, 4, 1, 1, -37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -137, 0, 0, -4, -159, -118, 0, 0, 0, 0, 0, -74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -14, 0, -30, 0, -31, 0, 0, 0, 0, 0, -16, 0, -80, -119, 0, -120, 0, 0, 0, 0, 0, 0, 0, 0,
-				-141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -105, -124, 0, 0, -191, 0, -17, -131, -130, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, -121, 0, -122, 0, 0,
-				0, 0, -177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -111, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -179, 0, -194, 0, -18, 0, -19, 0, -20, -21, -22, -192, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -134, 0, -38, 0, 0, 0, 0, 0, 0, 0, 0, 0, -39, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -23, -109, -24, 0, 0, 0, 0, 0, -71, -55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -25, 0, -107, -26, -88, -89, 0, 0, 0, 0, -90, 0, -91, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -34, 0, 0, 0, 0, 0, 0, 0, 0, 0, -57, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -35, 0, 0, 0, 0, 0, 0, 0, 0, 0, -59,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -68, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -62, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -69, 0, 0, 0, 0, 0, 0, 0, 0, 0, -63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -70, 0, 0, 0, 0, 0, 0, 0, 0, 0, -65, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -115, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -123, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -132, 0, 0, 0, 0, 0, 0, 0, 0, 0, -144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -153, 0, 0, 0, 0, 0, 0, 0, 0, 0, -180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -92, 0, 0, 0, 0, 0, 0, 0, 0, -6, 0, 0, 0,
-				0, 0, 0, 0, -93, 0, -7, 0, 0, 0, 0, 0, 0, 0, -195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -94, 0, 0, 0, 0, 0, 0, 0, 0, -8, 0, 0, 0, 0, 0, 0, 0, -200, 0,
-				-9, 0, 0, 0, 0, 0, 0, 0, -209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -133, -47, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -76, 0, 0, 0, -95, -73, 0, -148, -78, -125,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -96, 0, 0, 0, 0, 0, -112, 0, 0, 0, -77, 0, 0, 0, 0, -149, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -117, -166, 0, -97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -157, 0, 0, -158, -98, 0, 0,
-				-82, 0, -56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -106, 0, 0, 0, 0, 0, -52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -183,
-				0, 0, 0, 0, -87, 0, -53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -167, 0, 0, 0, 0, 0, -129, 0, 0, 0, 0, -1, -138,
-				0, 0, 0, 0, 0, 0, 0, -99, -186, 0, 0, -181, -100, 0, 0, 0, 0, 0, -170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -50, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -196, 0, -51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -208, 0, 0, -127, -140, 0, 0, 0, -146,
-				0, 0, 0, -101, -102, -103, 0, 0, -43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -104, 0, -108, 0, 0, 0, 0, 0, 0,
-				0, 0, -10, 0, 0, 0, 0, 0, 0, 0, -110, -83, 0, -44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -45, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -72, 0, 0, 0, 0, 0, 0, 0, 0, 0, -46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -203, -171, -75, -11, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -12, 0, 0, 0, 0, 0, 0, 0, 0, 0, -126, -135, 0, 0, 0, -143, -156, -160, -142,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -210, 0, -150, 0, 0, 0, 0, 0, -114, 0, 0, 0, 0, 0, 0, 0, 0, 0, -147, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -36, -113, -139, 0, 0, 0, 0, 0, 0, 0, 0, 0, -169, 0, -40, 0, 0, 0, 0, 0, 0, 0,
-				-151, 0, 0, -154, 0, -41, 0, 0, 0, 0, 0, 0, 0, -42, 0, 0, 0, 0, 0, 0, 0, -116, 0, 0, 0, 0, -162, 0,
-				-165, -168, 0, -164, 0, -32, -173, 0, 0, -187, -174, 0, 0, -190, 0, -15, 0, -163, 0, -176, 0, -175, 0,
-				0, 0, 0, 0, 0, -13, 0, 0, 0, 0, 0, 0, -28, 0, 0, -29, -178, 0, 0, -128, -155, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-202, 0, 0, 0, 0, 0, 0, 0, -79, -207, 0, 0, 0, 0, 0, 0, 0, 0, -172, 0, -81, 0, -85, 0, -84, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -86, -188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -197,
-				-184, -185, 0, 0, 0, 0, -136, -33, -54, 0, 0, 0, 0, -152, 0, 0, -204, 0, 0, 0, 0, 0, -199, -161, 0, 0,
-				0, 0, -182, 0, -205, 0, -193, 0, 0, -206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -198, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0 };
-	}
-
-	public final static short baseCheck[] = BaseCheck.baseCheck;
-
-	@Override
-	public final int baseCheck(int index) {
-		return baseCheck[index];
-	}
-
-	public final static short rhs[] = baseCheck;
-
-	@Override
-	public final int rhs(int index) {
-		return rhs[index];
-	}
-
-	public interface BaseAction {
-		public final static char baseAction[] = { 87, 11, 102, 24, 24, 21, 21, 40, 40, 70, 70, 1, 1, 2, 2, 2, 2, 3, 3,
-				3, 4, 5, 5, 5, 5, 5, 5, 5, 5, 60, 60, 71, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9,
-				10, 10, 10, 12, 12, 12, 12, 12, 13, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 20,
-				20, 20, 20, 20, 20, 20, 20, 20, 20, 103, 41, 32, 88, 88, 72, 72, 49, 104, 104, 104, 104, 104, 104, 104,
-				105, 105, 105, 106, 106, 111, 111, 112, 112, 107, 107, 108, 108, 108, 114, 114, 109, 109, 109, 109, 109,
-				110, 110, 110, 110, 110, 113, 113, 25, 25, 25, 25, 25, 28, 28, 28, 78, 78, 73, 73, 73, 73, 74, 74, 74,
-				75, 75, 75, 76, 76, 76, 77, 77, 77, 115, 115, 116, 116, 117, 29, 31, 31, 31, 31, 31, 53, 54, 54, 54, 54,
-				54, 54, 54, 54, 54, 54, 54, 54, 64, 61, 61, 89, 90, 66, 66, 62, 62, 62, 67, 79, 79, 80, 80, 68, 68, 68,
-				43, 91, 91, 81, 82, 82, 82, 63, 63, 92, 83, 83, 84, 84, 69, 69, 22, 23, 23, 23, 30, 50, 50, 33, 33, 33,
-				33, 36, 36, 38, 34, 34, 35, 39, 39, 118, 118, 37, 119, 119, 93, 93, 26, 26, 26, 26, 26, 26, 26, 26, 26,
-				85, 51, 51, 51, 51, 27, 56, 56, 55, 55, 55, 57, 57, 52, 52, 94, 94, 59, 59, 58, 58, 58, 44, 44, 44, 45,
-				46, 46, 46, 47, 47, 47, 47, 65, 65, 42, 42, 48, 96, 95, 95, 95, 95, 86, 97, 98, 98, 99, 99, 100, 100,
-				120, 120, 121, 121, 122, 122, 122, 122, 124, 124, 123, 123, 123, 125, 126, 126, 87, 87, 1, 627, 17, 21,
-				18, 373, 626, 45, 449, 383, 542, 31, 540, 545, 544, 592, 546, 623, 594, 75, 92, 124, 136, 214, 670, 629,
-				596, 339, 138, 135, 137, 161, 275, 20, 17, 21, 18, 373, 626, 45, 449, 383, 542, 1502, 540, 545, 544,
-				592, 546, 623, 594, 75, 1146, 140, 167, 579, 240, 201, 31, 201, 31, 144, 147, 150, 153, 57, 385, 118,
-				201, 188, 201, 187, 342, 1129, 1612, 1624, 1628, 1638, 1226, 434, 20, 17, 21, 18, 373, 626, 45, 449,
-				383, 542, 343, 540, 545, 544, 592, 546, 623, 594, 75, 282, 482, 20, 17, 21, 18, 373, 626, 45, 449, 383,
-				542, 1526, 540, 545, 544, 592, 546, 623, 594, 75, 92, 283, 1590, 1263, 294, 97, 518, 1366, 25, 158, 24,
-				157, 695, 299, 20, 17, 21, 18, 373, 626, 45, 449, 383, 542, 288, 540, 545, 544, 592, 546, 623, 594, 75,
-				1343, 256, 214, 344, 241, 506, 20, 17, 21, 18, 373, 41, 289, 285, 28, 662, 1503, 201, 189, 342, 1366,
-				1187, 332, 20, 17, 21, 18, 373, 626, 45, 449, 383, 542, 343, 540, 545, 544, 592, 546, 623, 594, 75, 282,
-				554, 20, 17, 21, 18, 373, 626, 45, 449, 383, 542, 1593, 540, 545, 544, 592, 546, 623, 594, 75, 1245,
-				283, 201, 297, 201, 299, 6, 1366, 30, 284, 589, 200, 191, 458, 20, 17, 21, 18, 373, 626, 45, 449, 383,
-				542, 290, 540, 545, 544, 592, 546, 623, 594, 75, 282, 189, 180, 482, 20, 17, 21, 18, 373, 43, 45, 628,
-				291, 482, 20, 17, 21, 18, 373, 43, 45, 633, 283, 136, 214, 344, 242, 243, 1366, 138, 135, 137, 161, 104,
-				482, 20, 17, 21, 18, 373, 43, 45, 449, 383, 542, 292, 540, 545, 544, 592, 546, 1349, 275, 1453, 140,
-				167, 171, 22, 14, 547, 578, 194, 144, 147, 150, 153, 199, 385, 416, 444, 270, 1150, 1121, 273, 1129,
-				1612, 1624, 1628, 1638, 1226, 482, 20, 17, 21, 18, 373, 626, 45, 449, 383, 542, 489, 540, 545, 544, 592,
-				546, 623, 594, 75, 93, 482, 20, 17, 21, 18, 373, 626, 45, 449, 383, 542, 1408, 540, 545, 544, 592, 546,
-				623, 594, 75, 86, 482, 20, 17, 21, 18, 373, 626, 45, 449, 383, 542, 489, 540, 545, 544, 592, 546, 623,
-				594, 75, 85, 482, 20, 17, 21, 18, 373, 626, 45, 449, 383, 542, 19, 540, 545, 544, 592, 546, 623, 594,
-				75, 84, 482, 20, 17, 21, 18, 373, 626, 45, 449, 383, 542, 489, 540, 545, 544, 592, 546, 623, 594, 75,
-				83, 482, 20, 17, 21, 18, 373, 626, 45, 449, 383, 542, 443, 540, 545, 544, 592, 546, 623, 594, 75, 82,
-				482, 20, 17, 21, 18, 373, 626, 45, 449, 383, 542, 489, 540, 545, 544, 592, 546, 623, 594, 75, 81, 482,
-				20, 17, 21, 18, 373, 626, 45, 449, 383, 542, 1204, 540, 545, 544, 592, 546, 623, 594, 75, 80, 482, 20,
-				17, 21, 18, 373, 626, 45, 449, 383, 542, 489, 540, 545, 544, 592, 546, 623, 594, 75, 79, 482, 20, 17,
-				21, 18, 373, 626, 45, 449, 383, 542, 23, 540, 545, 544, 592, 546, 623, 594, 75, 78, 482, 20, 17, 21, 18,
-				373, 626, 45, 449, 383, 542, 489, 540, 545, 544, 592, 546, 623, 594, 75, 77, 482, 20, 17, 21, 18, 373,
-				626, 45, 449, 383, 542, 274, 540, 545, 544, 592, 546, 623, 594, 75, 76, 482, 20, 17, 21, 18, 373, 626,
-				45, 449, 383, 542, 489, 540, 545, 544, 592, 546, 623, 594, 75, 74, 482, 20, 17, 21, 18, 373, 626, 45,
-				449, 383, 542, 280, 540, 545, 544, 592, 546, 623, 594, 75, 1549, 482, 20, 17, 21, 18, 373, 626, 45, 449,
-				383, 542, 489, 540, 545, 544, 592, 546, 623, 594, 75, 1568, 482, 20, 17, 21, 18, 373, 43, 45, 449, 383,
-				542, 281, 540, 545, 544, 592, 546, 623, 594, 94, 482, 20, 17, 21, 18, 373, 43, 45, 449, 383, 542, 466,
-				540, 545, 544, 592, 546, 623, 594, 94, 482, 20, 17, 21, 18, 373, 43, 40, 488, 1696, 482, 20, 17, 21, 18,
-				373, 43, 39, 482, 20, 17, 21, 18, 373, 43, 45, 449, 383, 542, 213, 540, 545, 544, 592, 546, 623, 594,
-				94, 482, 20, 17, 21, 18, 373, 43, 45, 449, 383, 542, 490, 540, 545, 544, 592, 546, 623, 594, 94, 482,
-				20, 17, 21, 18, 373, 43, 38, 446, 1699, 482, 20, 17, 21, 18, 373, 43, 37, 482, 20, 17, 21, 18, 373, 43,
-				45, 449, 383, 542, 203, 540, 545, 544, 592, 546, 623, 594, 94, 113, 482, 20, 17, 21, 18, 373, 43, 45,
-				449, 1125, 1523, 482, 20, 17, 21, 18, 373, 43, 45, 449, 383, 542, 144, 540, 1171, 275, 241, 44, 204,
-				207, 232, 14, 219, 1155, 222, 1474, 224, 225, 230, 195, 1551, 601, 397, 268, 1150, 1121, 273, 104, 276,
-				264, 278, 327, 136, 214, 1383, 275, 499, 265, 143, 135, 137, 161, 219, 1155, 222, 1474, 224, 225, 230,
-				679, 679, 242, 245, 268, 1150, 1121, 273, 277, 593, 1554, 1670, 1664, 229, 142, 167, 559, 1561, 868,
-				712, 13, 279, 232, 387, 262, 482, 20, 17, 21, 18, 373, 43, 45, 449, 383, 542, 205, 540, 545, 544, 592,
-				1364, 482, 20, 17, 21, 18, 373, 43, 45, 449, 383, 542, 710, 540, 545, 544, 1264, 189, 180, 482, 20, 17,
-				21, 18, 373, 43, 45, 449, 383, 542, 151, 540, 545, 1347, 256, 214, 104, 28, 1570, 136, 214, 382, 14,
-				1366, 210, 139, 135, 137, 161, 386, 50, 281, 418, 1594, 630, 637, 275, 1453, 1557, 1572, 244, 421, 1680,
-				220, 1155, 222, 1474, 224, 225, 230, 141, 167, 1260, 88, 270, 1150, 1121, 273, 145, 148, 151, 154, 316,
-				385, 219, 1155, 222, 1474, 224, 225, 230, 482, 20, 17, 21, 18, 373, 43, 45, 449, 1140, 1604, 482, 20,
-				17, 21, 18, 373, 43, 45, 449, 383, 542, 719, 1188, 482, 20, 17, 21, 18, 373, 43, 45, 449, 383, 542, 281,
-				1259, 329, 44, 14, 196, 199, 201, 104, 256, 214, 1680, 697, 305, 324, 1184, 1068, 482, 20, 17, 21, 18,
-				373, 43, 45, 449, 383, 635, 295, 671, 1458, 615, 243, 219, 1155, 222, 1474, 224, 225, 230, 482, 20, 17,
-				21, 18, 373, 43, 36, 676, 414, 1604, 482, 20, 17, 21, 18, 373, 43, 45, 449, 383, 993, 482, 20, 17, 21,
-				18, 373, 43, 45, 449, 383, 1010, 409, 20, 17, 21, 18, 373, 43, 44, 200, 201, 482, 20, 17, 21, 18, 373,
-				43, 45, 449, 383, 1051, 612, 95, 326, 482, 20, 17, 21, 18, 373, 43, 35, 1680, 568, 1544, 530, 20, 17,
-				21, 18, 373, 34, 28, 388, 278, 733, 711, 198, 1366, 275, 698, 14, 707, 44, 219, 1155, 222, 1474, 224,
-				225, 230, 1687, 1622, 1692, 728, 1270, 720, 268, 1150, 1121, 273, 1554, 358, 20, 17, 21, 18, 373, 43,
-				36, 1460, 868, 358, 20, 17, 21, 18, 373, 43, 36, 194, 1453, 228, 160, 52, 664, 247, 220, 1155, 222,
-				1474, 224, 225, 230, 1126, 518, 248, 482, 20, 17, 21, 18, 373, 43, 48, 44, 255, 214, 721, 275, 482, 20,
-				17, 21, 18, 373, 43, 47, 482, 20, 17, 21, 18, 373, 43, 46, 567, 268, 1150, 1121, 273, 104, 1383, 567,
-				14, 181, 489, 568, 465, 723, 450, 267, 723, 696, 568, 1665, 201, 1561, 14, 418, 104, 1098, 518, 1383,
-				724, 245, 1239, 226, 1098, 318, 1383, 530, 20, 17, 21, 18, 373, 33, 14, 451, 90, 14, 738, 198, 246, 52,
-				48, 593, 260, 318, 88, 910, 318, 1454, 1239, 260, 742, 568, 910, 700, 1454, 1501, 447, 198, 627, 287,
-				198, 255, 214, 1639, 88, 198, 1694, 88, 559, 1561, 632, 658, 439, 700, 661, 1501, 700, 1769, 1501, 211,
-				136, 214, 1769, 1270, 666, 518, 146, 135, 137, 161, 826, 742, 136, 214, 784, 450, 136, 214, 149, 135,
-				137, 161, 152, 135, 137, 161, 136, 214, 193, 489, 587, 142, 155, 135, 137, 161, 116, 14, 14, 1513, 1430,
-				568, 568, 357, 920, 205, 44, 568, 418, 418, 231, 1769, 518, 52, 568, 1098, 198, 210, 52, 488, 518, 1098,
-				104, 1769, 1769, 104, 1769, 1769, 1098, 88, 88, 1560, 1572, 1383, 1270, 255, 214, 365, 600, 1348, 255,
-				214, 260, 1769, 486, 1663, 296, 1454, 260, 298, 1769, 952, 182, 1454, 1769, 261, 1769, 1472, 235, 193,
-				206, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1221, 1686, 1430, 1769, 1769, 1322, 1769, 1769,
-				1769, 1769, 1769, 1769, 1769, 1769, 1711, 1769, 0, 20, 180, 0, 1, 1996, 0, 1, 2007, 0 };
-	}
-
-	public final static char baseAction[] = BaseAction.baseAction;
-
-	@Override
-	public final int baseAction(int index) {
-		return baseAction[index];
-	}
-
-	public final static char lhs[] = baseAction;
-
-	@Override
-	public final int lhs(int index) {
-		return lhs[index];
-	}
-
-	public interface TermCheck {
-		public final static byte termCheck[] = { 0, 0, 1, 2, 3, 4, 0, 6, 7, 8, 9, 10, 11, 0, 0, 14, 15, 16, 17, 18, 19,
-				20, 21, 22, 23, 24, 25, 26, 27, 28, 0, 0, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 0, 44, 45, 46,
-				0, 1, 0, 3, 0, 5, 6, 7, 8, 0, 6, 7, 8, 55, 56, 57, 58, 17, 9, 10, 55, 56, 57, 58, 24, 25, 26, 27, 28,
-				47, 48, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 0, 1, 0, 3, 51, 5, 6, 7, 8, 0,
-				55, 56, 57, 58, 5, 13, 80, 17, 0, 1, 2, 0, 4, 0, 24, 25, 26, 27, 28, 0, 12, 31, 32, 33, 34, 35, 36, 37,
-				38, 39, 40, 41, 42, 43, 44, 45, 46, 0, 1, 0, 3, 51, 5, 6, 7, 8, 0, 1, 2, 50, 4, 12, 0, 0, 17, 0, 4, 2,
-				12, 4, 49, 24, 25, 26, 27, 28, 0, 12, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 0,
-				1, 0, 3, 51, 0, 6, 7, 8, 4, 0, 0, 0, 1, 4, 3, 0, 17, 0, 1, 2, 53, 54, 5, 24, 25, 26, 27, 28, 13, 12, 31,
-				32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 0, 44, 45, 46, 65, 30, 6, 7, 8, 0, 0, 0, 2, 0, 4, 53, 54,
-				17, 9, 10, 53, 54, 12, 64, 24, 25, 26, 27, 28, 61, 62, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
-				0, 1, 2, 3, 4, 5, 0, 1, 2, 9, 10, 11, 0, 1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 1, 2, 3, 4, 5, 0,
-				61, 62, 9, 10, 11, 68, 69, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 50, 0, 0, 2, 2, 0, 5, 0, 1, 2,
-				3, 4, 5, 12, 12, 59, 9, 10, 11, 0, 13, 14, 15, 16, 50, 18, 19, 20, 21, 22, 23, 30, 0, 0, 1, 2, 3, 4, 5,
-				59, 0, 0, 9, 10, 11, 5, 0, 14, 15, 16, 43, 18, 19, 20, 21, 22, 23, 0, 1, 2, 3, 4, 0, 1, 65, 3, 9, 10,
-				11, 29, 30, 14, 15, 16, 0, 18, 19, 20, 21, 22, 23, 49, 63, 50, 0, 1, 2, 3, 4, 0, 1, 0, 3, 9, 10, 11, 0,
-				13, 14, 15, 16, 5, 18, 19, 20, 21, 22, 23, 51, 0, 1, 2, 3, 4, 0, 1, 0, 3, 9, 10, 11, 0, 13, 14, 15, 16,
-				5, 18, 19, 20, 21, 22, 23, 0, 1, 2, 3, 4, 47, 48, 0, 0, 9, 10, 11, 5, 13, 14, 15, 16, 29, 18, 19, 20,
-				21, 22, 23, 0, 1, 2, 3, 4, 66, 0, 0, 0, 9, 10, 11, 5, 30, 14, 15, 16, 0, 18, 19, 20, 21, 22, 23, 0, 1,
-				2, 3, 4, 12, 66, 47, 48, 9, 10, 11, 0, 30, 14, 15, 16, 5, 18, 19, 20, 21, 22, 23, 0, 1, 2, 3, 4, 47, 48,
-				47, 48, 9, 10, 11, 0, 0, 14, 15, 16, 0, 18, 19, 20, 21, 22, 23, 0, 1, 2, 3, 4, 0, 1, 43, 3, 9, 10, 11,
-				0, 0, 14, 15, 16, 4, 18, 19, 20, 21, 22, 23, 0, 0, 2, 2, 4, 5, 6, 7, 8, 0, 1, 0, 12, 12, 0, 14, 15, 17,
-				0, 1, 0, 3, 11, 0, 24, 25, 26, 27, 28, 60, 30, 13, 9, 10, 0, 1, 2, 0, 49, 70, 71, 72, 73, 74, 75, 76,
-				77, 78, 79, 0, 13, 0, 0, 52, 0, 6, 7, 8, 49, 0, 6, 7, 8, 12, 12, 0, 17, 0, 67, 0, 1, 17, 3, 24, 25, 26,
-				27, 28, 24, 25, 26, 27, 28, 0, 0, 1, 0, 3, 0, 6, 7, 8, 0, 0, 6, 7, 8, 13, 0, 13, 17, 0, 4, 52, 52, 17,
-				5, 24, 25, 26, 27, 28, 24, 25, 26, 27, 28, 0, 0, 0, 0, 29, 63, 6, 7, 8, 6, 7, 8, 0, 11, 30, 0, 0, 0, 6,
-				7, 8, 6, 7, 8, 0, 0, 0, 2, 0, 0, 6, 7, 8, 0, 1, 2, 0, 12, 0, 13, 64, 5, 4, 0, 0, 29, 29, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 29, 29, 0, 0, 60, 13, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static byte termCheck[] = TermCheck.termCheck;
-
-	@Override
-	public final int termCheck(int index) {
-		return termCheck[index];
-	}
-
-	public interface TermAction {
-		public final static char termAction[] = { 0, 1769, 1780, 1566, 1781, 1375, 60, 1984, 1985, 1986, 1070, 1060,
-				1432, 62, 1, 1579, 1443, 476, 1933, 1782, 1783, 1784, 1785, 1012, 1002, 1934, 1932, 1987, 1935, 1931,
-				55, 1769, 1938, 1943, 1942, 1940, 1941, 1939, 1944, 1945, 1937, 1946, 1947, 1948, 254, 1626, 1384, 1191,
-				1769, 1, 61, 1, 1769, 192, 1, 1, 1, 52, 1984, 1985, 1986, 1418, 1397, 1386, 1352, 1, 580, 570, 1418,
-				1397, 1386, 1352, 1, 1, 1, 1, 1, 1099, 1300, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 192, 1, 1, 1, 1769, 1,
-				42, 1, 1966, 191, 1, 1, 1, 1769, 1418, 1397, 1386, 1352, 1773, 2817, 1759, 1, 263, 1996, 1128, 1, 1,
-				183, 1, 1, 1, 1, 1, 184, 350, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 191, 1, 1, 1, 1769, 1, 272, 1, 1966,
-				192, 1, 1, 1, 269, 1996, 1128, 1772, 254, 350, 49, 287, 1, 266, 1536, 1431, 350, 1, 2028, 1, 1, 1, 1, 1,
-				71, 350, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 192, 1, 1, 1, 1769, 1780, 69, 1781, 1966, 51, 1984, 1985,
-				1986, 1536, 50, 63, 1769, 1780, 1536, 1781, 1769, 1933, 1, 1763, 1128, 1528, 1515, 1775, 1934, 1932,
-				1987, 1935, 1931, 2817, 350, 1938, 1943, 1942, 1940, 1941, 1939, 1944, 1945, 1937, 1946, 1947, 1948,
-				130, 1626, 1384, 1191, 1193, 1774, 1984, 1985, 1986, 54, 269, 73, 1431, 64, 254, 1528, 1515, 1933, 580,
-				570, 1528, 1515, 350, 1210, 1934, 1932, 1987, 1935, 1931, 1324, 1311, 1938, 1943, 1942, 1940, 1941,
-				1939, 1944, 1945, 1937, 1946, 1947, 1948, 1, 1780, 1566, 1781, 1480, 1773, 1, 1996, 1429, 1070, 1060,
-				1432, 1769, 2008, 1579, 1443, 476, 514, 1782, 1783, 1784, 1785, 1012, 1002, 1769, 1780, 1566, 1781,
-				1490, 1773, 1769, 1324, 1311, 1070, 1060, 1432, 601, 1672, 1579, 1443, 476, 941, 1782, 1783, 1784, 1785,
-				1012, 1002, 1769, 72, 1772, 1, 271, 1431, 1168, 1769, 1775, 1, 1780, 1566, 1781, 1375, 29, 350, 350,
-				1040, 1070, 1060, 1432, 67, 2817, 1579, 1443, 476, 1772, 1782, 1783, 1784, 1785, 1012, 1002, 1774, 1,
-				1769, 1780, 1566, 1781, 1375, 1773, 899, 1769, 1769, 1070, 1060, 1432, 1775, 1769, 1579, 1443, 476, 29,
-				1782, 1783, 1784, 1785, 1012, 1002, 1769, 1, 1, 1, 1, 186, 2830, 1193, 2830, 1, 1, 1, 1613, 1774, 1, 1,
-				1, 1769, 1, 1, 1, 1, 1, 1, 2027, 1228, 1772, 1769, 1780, 1566, 1781, 1375, 185, 2831, 59, 2831, 1070,
-				1060, 1432, 1, 2817, 1579, 1443, 476, 1779, 1782, 1783, 1784, 1785, 1012, 1002, 2086, 1, 1780, 1566,
-				1781, 1375, 207, 2832, 1769, 2832, 1070, 1060, 1432, 1769, 2817, 1579, 1443, 476, 1779, 1782, 1783,
-				1784, 1785, 1012, 1002, 1769, 1780, 1566, 1781, 1375, 1099, 1300, 1, 58, 1070, 1060, 1432, 91, 2817,
-				1579, 1443, 476, 1335, 1782, 1783, 1784, 1785, 1012, 1002, 1769, 1780, 1566, 1781, 1375, 1778, 57, 1769,
-				56, 1070, 1060, 1432, 1775, 91, 1579, 1443, 476, 221, 1782, 1783, 1784, 1785, 1012, 1002, 1769, 1780,
-				1586, 1781, 1375, 350, 1778, 1099, 1300, 1070, 1060, 1432, 1769, 1774, 1579, 1443, 476, 1777, 1782,
-				1783, 1784, 1785, 1012, 1002, 1769, 1780, 1589, 1781, 1375, 1099, 1300, 1099, 1300, 1070, 1060, 1432,
-				1769, 1769, 1579, 1443, 476, 43, 1782, 1783, 1784, 1785, 1012, 1002, 1, 1780, 1566, 1781, 1375, 209,
-				1780, 1776, 1781, 1070, 1060, 1432, 1769, 1, 1579, 1443, 476, 254, 1782, 1783, 1784, 1785, 1012, 1002,
-				20, 32, 1760, 1556, 1760, 1760, 180, 180, 180, 1, 1766, 65, 1760, 1671, 1769, 1795, 1796, 180, 1769,
-				1780, 1769, 1781, 1110, 53, 180, 180, 180, 180, 180, 878, 1760, 1251, 580, 570, 1, 1996, 1429, 1769,
-				2028, 857, 836, 815, 794, 773, 731, 752, 710, 689, 668, 131, 1130, 1769, 293, 377, 132, 1984, 1985,
-				1986, 2028, 68, 1984, 1985, 1986, 962, 1020, 1769, 1933, 1769, 375, 208, 1564, 1933, 1564, 1934, 1932,
-				1987, 1935, 1931, 1934, 1932, 1987, 1935, 1931, 133, 1769, 1780, 1769, 1781, 134, 1984, 1985, 1986, 89,
-				70, 1984, 1985, 1986, 1339, 1769, 1459, 1933, 1, 1338, 536, 538, 1933, 1775, 1934, 1932, 1987, 1935,
-				1931, 1934, 1932, 1987, 1935, 1931, 249, 212, 66, 250, 647, 1228, 1984, 1985, 1986, 1, 1, 1, 251, 1110,
-				1774, 252, 257, 30, 1, 1, 1, 1984, 1985, 1986, 253, 223, 1769, 1169, 30, 208, 1984, 1985, 1986, 254,
-				1996, 1429, 286, 350, 1769, 1552, 1210, 625, 1461, 1769, 1769, 1677, 493, 202, 1769, 190, 190, 190,
-				1769, 1769, 1769, 1769, 1769, 1798, 2733, 1769, 1769, 982, 186, 185, 207, 1769, 1769, 1769, 1769, 1769,
-				1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 625, 1769, 1769, 1769, 1769, 1769, 1769, 1769,
-				1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 547,
-				1769, 1769, 1078 };
-	}
-
-	public final static char termAction[] = TermAction.termAction;
-
-	@Override
-	public final int termAction(int index) {
-		return termAction[index];
-	}
-
-	public interface Asb {
-		public final static char asb[] = { 0, 233, 1, 9, 64, 9, 9, 9, 9, 9, 9, 9, 9, 9, 26, 392, 46, 43, 50, 48, 56, 54,
-				58, 57, 60, 59, 32, 9, 392, 392, 328, 328, 368, 9, 199, 199, 227, 392, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
-				9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 199, 199, 199, 68, 115, 231, 3, 298, 197, 196,
-				202, 214, 129, 214, 129, 129, 214, 129, 214, 406, 153, 43, 43, 48, 48, 48, 48, 46, 46, 54, 50, 50, 57,
-				56, 337, 59, 58, 71, 131, 278, 131, 227, 231, 133, 68, 429, 7, 199, 339, 301, 129, 328, 328, 129, 328,
-				9, 278, 113, 231, 222, 429, 68, 6, 3, 199, 225, 406, 198, 303, 131, 251, 131, 292, 113, 222, 222, 9, 9,
-				68, 7, 298, 332, 331, 231, 303, 199, 131, 251, 292, 292, 294, 282, 222, 429, 68, 68, 199, 339, 301, 225,
-				251, 278, 285, 251, 292, 294, 387, 294, 278, 111, 390, 328, 9, 281, 429, 222, 303, 251, 287, 294, 278,
-				9, 328, 26, 115, 68, 328, 9, 222, 199, 198, 278, 107, 9, 106, 22, 231, 278, 68, 329, 287, 9, 22 };
-	}
-
-	public final static char asb[] = Asb.asb;
-
-	@Override
-	public final int asb(int index) {
-		return asb[index];
-	}
-
-	public interface Asr {
-		public final static byte asr[] = { 0, 80, 0, 6, 7, 8, 17, 50, 5, 18, 19, 20, 21, 3, 14, 15, 11, 9, 10, 22, 23,
-				16, 4, 2, 1, 0, 12, 2, 52, 67, 14, 15, 60, 70, 71, 72, 73, 74, 76, 75, 77, 78, 79, 4, 53, 54, 9, 10, 48,
-				47, 55, 56, 57, 58, 61, 62, 11, 63, 64, 65, 43, 66, 68, 69, 59, 30, 80, 29, 50, 5, 0, 11, 4, 9, 10, 53,
-				54, 47, 48, 55, 56, 57, 58, 61, 62, 63, 64, 65, 68, 69, 60, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 50,
-				30, 43, 80, 13, 59, 66, 5, 29, 0, 5, 43, 12, 52, 14, 15, 11, 4, 9, 10, 22, 23, 16, 2, 18, 19, 20, 21, 1,
-				3, 13, 0, 6, 7, 8, 2, 18, 19, 20, 21, 1, 3, 14, 15, 11, 4, 9, 10, 22, 23, 16, 0, 7, 17, 28, 8, 27, 26,
-				25, 6, 24, 52, 67, 14, 15, 11, 9, 10, 53, 54, 47, 48, 55, 56, 57, 58, 61, 62, 63, 64, 65, 68, 69, 60,
-				70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 4, 2, 12, 29, 30, 5, 0, 39, 31, 36, 34, 35, 33, 32, 37, 38, 40,
-				41, 42, 59, 66, 28, 25, 17, 24, 27, 26, 6, 7, 8, 29, 1, 5, 30, 2, 12, 4, 0, 16, 18, 19, 20, 21, 1, 3, 2,
-				14, 15, 11, 4, 9, 10, 22, 23, 51, 0, 24, 31, 6, 32, 44, 25, 33, 26, 34, 35, 27, 7, 36, 37, 17, 45, 28,
-				46, 38, 39, 8, 40, 41, 42, 1, 3, 51, 5, 43, 0, 60, 12, 52, 0, 66, 5, 4, 1, 2, 59, 0, 1, 3, 5, 43, 29, 0,
-				4, 2, 12, 30, 5, 24, 31, 6, 32, 44, 25, 33, 26, 34, 35, 27, 7, 36, 37, 17, 45, 28, 46, 38, 39, 8, 40,
-				41, 42, 49, 3, 1, 0, 2, 5, 29, 30, 66, 12, 59, 0, 4, 24, 31, 6, 32, 44, 25, 33, 26, 34, 35, 27, 7, 36,
-				37, 17, 45, 28, 46, 38, 39, 8, 40, 41, 42, 1, 3, 49, 0, 5, 30, 16, 18, 19, 20, 21, 1, 3, 2, 14, 15, 11,
-				4, 9, 10, 22, 23, 0, 5, 29, 43, 60, 0, 16, 18, 19, 20, 21, 2, 14, 15, 11, 4, 9, 10, 22, 23, 1, 3, 44,
-				45, 46, 39, 31, 36, 34, 35, 33, 32, 37, 38, 40, 41, 42, 28, 25, 17, 24, 27, 26, 6, 7, 8, 0 };
-	}
-
-	public final static byte asr[] = Asr.asr;
-
-	@Override
-	public final int asr(int index) {
-		return asr[index];
-	}
-
-	public interface Nasb {
-		public final static byte nasb[] = { 0, 78, 42, 30, 42, 30, 30, 30, 30, 30, 30, 30, 30, 30, 42, 109, 42, 42, 42,
-				42, 42, 42, 42, 42, 42, 42, 42, 30, 109, 109, 17, 17, 106, 110, 60, 60, 95, 1, 30, 30, 30, 30, 30, 30,
-				30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 110, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 60, 60,
-				60, 15, 86, 49, 13, 94, 47, 47, 69, 70, 19, 70, 118, 118, 70, 117, 70, 64, 42, 42, 42, 42, 42, 42, 42,
-				42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 87, 87, 57, 42, 43, 42, 32, 15, 99, 14, 60, 101, 59, 7, 7, 7, 7,
-				7, 30, 21, 57, 42, 76, 99, 15, 14, 25, 60, 53, 35, 42, 103, 9, 57, 42, 57, 28, 76, 57, 30, 30, 15, 14,
-				52, 47, 47, 49, 103, 60, 42, 113, 57, 7, 62, 11, 57, 99, 15, 15, 60, 101, 59, 72, 57, 21, 83, 90, 7, 62,
-				42, 42, 21, 27, 42, 7, 30, 81, 99, 25, 120, 113, 55, 62, 21, 30, 7, 23, 29, 15, 7, 30, 25, 60, 60, 21,
-				84, 30, 42, 55, 49, 21, 15, 42, 55, 30, 74 };
-	}
-
-	public final static byte nasb[] = Nasb.nasb;
-
-	@Override
-	public final int nasb(int index) {
-		return nasb[index];
-	}
-
-	public interface Nasr {
-		public final static char nasr[] = { 0, 78, 76, 75, 66, 74, 73, 1, 0, 90, 0, 98, 0, 11, 5, 24, 0, 71, 0, 89, 0,
-				40, 0, 96, 0, 22, 0, 86, 11, 48, 5, 0, 5, 11, 0, 78, 77, 76, 75, 66, 74, 73, 0, 46, 45, 27, 0, 26, 0,
-				27, 51, 0, 21, 46, 45, 36, 34, 11, 0, 11, 21, 0, 60, 0, 66, 61, 62, 63, 64, 53, 28, 0, 46, 45, 36, 34,
-				27, 0, 11, 87, 0, 100, 0, 11, 70, 0, 5, 48, 42, 0, 11, 43, 68, 0, 21, 45, 46, 11, 0, 56, 0, 27, 51, 11,
-				25, 0, 11, 88, 0, 43, 11, 41, 0, 80, 11, 43, 0, 92, 67, 0, 93, 11, 25, 0 };
-	}
-
-	public final static char nasr[] = Nasr.nasr;
-
-	@Override
-	public final int nasr(int index) {
-		return nasr[index];
-	}
-
-	public interface TerminalIndex {
-		public final static char terminalIndex[] = { 0, 85, 2, 86, 9, 87, 48, 64, 76, 10, 11, 8, 1, 3, 6, 7, 68, 69, 81,
-				82, 83, 84, 12, 13, 44, 55, 60, 63, 72, 42, 90, 47, 52, 56, 61, 62, 66, 67, 74, 75, 78, 79, 80, 91, 54,
-				70, 73, 16, 17, 30, 89, 93, 4, 14, 15, 18, 19, 20, 21, 29, 31, 22, 23, 24, 25, 26, 92, 5, 27, 28, 32,
-				33, 34, 35, 36, 37, 38, 39, 40, 41, 94, 45, 46, 49, 50, 51, 53, 57, 58, 59, 65, 71, 77, 88 };
-	}
-
-	public final static char terminalIndex[] = TerminalIndex.terminalIndex;
-
-	@Override
-	public final int terminalIndex(int index) {
-		return terminalIndex[index];
-	}
-
-	public interface NonterminalIndex {
-		public final static char nonterminalIndex[] = { 0, 100, 0, 0, 0, 102, 106, 107, 108, 109, 110, 0, 111, 112, 113,
-				114, 115, 116, 117, 0, 118, 97, 128, 0, 96, 121, 149, 0, 127, 0, 0, 0, 0, 145, 147, 0, 148, 0, 0, 0, 98,
-				101, 105, 140, 158, 159, 160, 0, 0, 120, 136, 146, 155, 130, 0, 150, 153, 154, 157, 104, 0, 131, 132,
-				133, 134, 135, 137, 0, 139, 144, 99, 103, 119, 122, 123, 124, 125, 126, 129, 0, 138, 142, 0, 0, 143,
-				152, 162, 95, 0, 0, 0, 141, 0, 151, 156, 161, 0, 163, 164, 0, 165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
-
-	@Override
-	public final int nonterminalIndex(int index) {
-		return nonterminalIndex[index];
-	}
-
-	public interface ScopePrefix {
-		public final static char scopePrefix[] = { 82, 113, 92, 35, 41, 121, 12, 136, 21, 51, 69, 28, 47, 103, 158, 165,
-				169, 145, 1, 1, 32, 56, 79, 173, 6, 107, 152, 152, 127, 99, 59, 59, 59 };
-	}
-
-	public final static char scopePrefix[] = ScopePrefix.scopePrefix;
-
-	@Override
-	public final int scopePrefix(int index) {
-		return scopePrefix[index];
-	}
-
-	public interface ScopeSuffix {
-		public final static char scopeSuffix[] = { 90, 90, 90, 4, 4, 90, 18, 142, 26, 4, 26, 26, 4, 101, 26, 26, 4, 149,
-				4, 4, 26, 4, 26, 26, 9, 110, 155, 162, 130, 101, 66, 61, 74 };
-	}
-
-	public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
-
-	@Override
-	public final int scopeSuffix(int index) {
-		return scopeSuffix[index];
-	}
-
-	public interface ScopeLhs {
-		public final static char scopeLhs[] = { 63, 61, 63, 26, 26, 61, 42, 108, 47, 26, 39, 47, 26, 68, 6, 5, 5, 19,
-				100, 99, 45, 26, 36, 3, 86, 68, 7, 5, 109, 68, 39, 37, 39 };
-	}
-
-	public final static char scopeLhs[] = ScopeLhs.scopeLhs;
-
-	@Override
-	public final int scopeLhs(int index) {
-		return scopeLhs[index];
-	}
-
-	public interface ScopeLa {
-		public final static byte scopeLa[] = { 43, 43, 43, 50, 50, 43, 43, 86, 30, 50, 30, 30, 50, 66, 30, 30, 50, 59,
-				50, 50, 30, 50, 30, 30, 60, 1, 30, 30, 92, 66, 2, 2, 2 };
-	}
-
-	public final static byte scopeLa[] = ScopeLa.scopeLa;
-
-	@Override
-	public final int scopeLa(int index) {
-		return scopeLa[index];
-	}
-
-	public interface ScopeStateSet {
-		public final static byte scopeStateSet[] = { 24, 24, 24, 28, 28, 24, 17, -1, 32, 28, 9, 32, 28, 5, 39, 39, 39,
-				69, 1, 3, 32, 28, 9, 39, 95, 5, 42, 39, -1, 5, 9, 9, 9 };
-	}
-
-	public final static byte scopeStateSet[] = ScopeStateSet.scopeStateSet;
-
-	@Override
-	public final int scopeStateSet(int index) {
-		return scopeStateSet[index];
-	}
-
-	public interface ScopeRhs {
-		public final static char scopeRhs[] = { 0, 142, 12, 0, 96, 0, 190, 104, 0, 31, 135, 0, 153, 188, 104, 13, 141,
-				0, 98, 0, 0, 148, 104, 2, 138, 0, 97, 0, 148, 104, 2, 0, 151, 2, 0, 113, 17, 178, 104, 12, 0, 113, 178,
-				104, 17, 12, 0, 113, 17, 12, 0, 113, 178, 104, 12, 0, 113, 12, 0, 129, 0, 2, 0, 151, 97, 0, 2, 97, 0,
-				148, 104, 2, 129, 0, 2, 0, 150, 97, 0, 143, 2, 0, 153, 176, 104, 13, 94, 185, 44, 0, 98, 0, 153, 176,
-				104, 13, 185, 44, 0, 136, 0, 99, 0, 184, 104, 136, 0, 104, 136, 0, 141, 99, 0, 172, 104, 13, 183, 94,
-				182, 159, 0, 172, 104, 13, 182, 159, 0, 197, 85, 0, 77, 2, 101, 97, 99, 0, 197, 114, 134, 2, 89, 0, 53,
-				0, 0, 134, 69, 111, 0, 29, 118, 0, 152, 2, 0, 97, 107, 0, 152, 2, 16, 0, 97, 105, 0, 181, 2, 98, 0, 134,
-				12, 98, 0, 134, 2, 0 };
-	}
-
-	public final static char scopeRhs[] = ScopeRhs.scopeRhs;
-
-	@Override
-	public final int scopeRhs(int index) {
-		return scopeRhs[index];
-	}
-
-	public interface ScopeState {
-		public final static char scopeState[] = { 0, 1263, 0, 343, 0, 1665, 1430, 1594, 0, 1472, 1335, 1429, 1260, 1239,
-				1128, 1098, 0, 547, 493, 397, 1204, 443, 1408, 0, 568, 1226, 318, 0, 1474, 1155, 1150, 1121, 1239, 1128,
-				1098, 593, 1431, 1501, 0, 1579, 1443, 476, 1490, 1480, 1408, 1193, 601, 1228, 1210, 1324, 1311, 1110,
-				1300, 1099, 1418, 1397, 1386, 1352, 1536, 1528, 1515, 580, 570, 1432, 1375, 1070, 1060, 1012, 1002,
-				1078, 1040, 1020, 547, 982, 962, 941, 920, 451, 899, 514, 350, 878, 857, 836, 815, 794, 773, 752, 731,
-				710, 689, 668, 318, 647, 418, 493, 397, 0 };
-	}
-
-	public final static char scopeState[] = ScopeState.scopeState;
-
-	@Override
-	public final int scopeState(int index) {
-		return scopeState[index];
-	}
-
-	public interface InSymb {
-		public final static char inSymb[] = { 0, 0, 180, 104, 165, 16, 23, 22, 10, 9, 4, 11, 15, 14, 98, 2, 102, 101,
-				105, 103, 107, 106, 109, 108, 111, 110, 99, 29, 2, 2, 67, 52, 2, 12, 152, 134, 136, 104, 10, 9, 54, 53,
-				4, 58, 57, 56, 55, 47, 48, 11, 62, 61, 64, 63, 69, 68, 65, 79, 78, 77, 75, 76, 74, 73, 72, 71, 70, 60,
-				152, 152, 181, 134, 114, 104, 12, 2, 139, 138, 166, 167, 159, 168, 46, 45, 169, 44, 170, 171, 94, 101,
-				101, 103, 103, 103, 103, 102, 102, 106, 105, 105, 108, 107, 134, 110, 109, 114, 114, 13, 141, 144, 120,
-				17, 113, 104, 4, 151, 104, 2, 182, 160, 160, 185, 160, 59, 104, 13, 120, 4, 104, 113, 178, 149, 148,
-				118, 104, 150, 104, 94, 13, 94, 13, 104, 4, 120, 178, 17, 113, 4, 2, 127, 129, 104, 29, 148, 183, 104,
-				13, 104, 188, 104, 120, 104, 113, 113, 143, 104, 2, 144, 13, 172, 136, 173, 104, 176, 94, 177, 153, 29,
-				190, 52, 12, 191, 104, 149, 104, 104, 104, 176, 153, 60, 29, 133, 60, 142, 52, 12, 149, 148, 186, 172,
-				184, 59, 143, 2, 104, 153, 142, 29, 29, 59, 144 };
-	}
-
-	public final static char inSymb[] = InSymb.inSymb;
-
-	@Override
-	public final int inSymb(int index) {
-		return inSymb[index];
-	}
-
-	public interface Name {
-		public final static String name[] = { "", "[", "(", "{", ".", "->", "++", "--", "&", "*", "+", "-", "~", "!",
-				"/", "%", ">>", "<<", "<", ">", "<=", ">=", "==", "!=", "^", "|", "&&", "||", "?", ":", "...", "=",
-				"*=", "/=", "%=", "+=", "-=", ">>=", "<<=", "&=", "^=", "|=", ",", "$empty", "auto", "break", "case",
-				"char", "const", "continue", "default", "do", "double", "else", "enum", "extern", "float", "for",
-				"goto", "if", "inline", "int", "long", "register", "restrict", "return", "short", "signed", "sizeof",
-				"static", "struct", "switch", "typedef", "union", "unsigned", "void", "volatile", "while", "_Bool",
-				"_Complex", "_Imaginary", "integer", "floating", "charconst", "stringlit", "identifier", "Completion",
-				"EndOfCompletion", "Invalid", "RightBracket", "RightParen", "RightBrace", "SemiColon", "ERROR_TOKEN",
-				"EOF_TOKEN", "expression_parser_start", "]", ")", "}", ";", "identifier_token", "expression",
-				"postfix_expression", "member_name", "type_id", "initializer_list", "unary_expression",
-				"cast_expression", "multiplicative_expression", "additive_expression", "shift_expression",
-				"relational_expression", "equality_expression", "and_expression", "exclusive_or_expression",
-				"inclusive_or_expression", "logical_and_expression", "logical_or_expression", "assignment_expression",
-				"expression_list_actual", "constant_expression", "declaration_specifiers",
-				"simple_declaration_specifiers", "struct_or_union_declaration_sp" + "ecifiers",
-				"elaborated_declaration_specifi" + "ers", "enum_declaration_specifiers",
-				"typdef_name_declaration_specif" + "iers", "no_type_declaration_specifier", "type_qualifier",
-				"no_type_declaration_specifiers", "simple_type_specifier", "struct_or_union_specifier",
-				"elaborated_specifier", "enum_specifier", "type_name_specifier", "initializer", "declarator",
-				"struct_or_union", "struct_declaration_list", "struct_declaration", "specifier_qualifier_list",
-				"struct_declarator_list", "complete_struct_declarator", "enumerator_list", "enumerator",
-				"direct_declarator", "pointer_seq", "array_direct_declarator", "basic_direct_declarator",
-				"array_modifier", "parameter_type_list", "identifier_list", "array_modifier_type_qualifiers",
-				"type_qualifier_list", "parameter_list", "parameter_declaration", "complete_parameter_declarator",
-				"abstract_declarator", "direct_abstract_declarator", "basic_direct_abstract_declarat" + "or",
-				"array_direct_abstract_declarat" + "or", "initializer_seq", "designated_initializer", "designation",
-				"designator_list", "designator" };
-	}
-
-	public final static String name[] = Name.name;
-
-	@Override
-	public final String name(int index) {
-		return name[index];
-	}
-
-	public final static int ERROR_SYMBOL = 51, SCOPE_UBOUND = 32, SCOPE_SIZE = 33, MAX_NAME_LENGTH = 38;
-
-	@Override
-	public final int getErrorSymbol() {
-		return ERROR_SYMBOL;
-	}
-
-	@Override
-	public final int getScopeUbound() {
-		return SCOPE_UBOUND;
-	}
-
-	@Override
-	public final int getScopeSize() {
-		return SCOPE_SIZE;
-	}
-
-	@Override
-	public final int getMaxNameLength() {
-		return MAX_NAME_LENGTH;
-	}
-
-	public final static int NUM_STATES = 210, NT_OFFSET = 93, LA_STATE_OFFSET = 2086, MAX_LA = 2, NUM_RULES = 317,
-			NUM_NONTERMINALS = 126, NUM_SYMBOLS = 219, SEGMENT_SIZE = 8192, START_STATE = 1250, IDENTIFIER_SYMBOL = 0,
-			EOFT_SYMBOL = 80, EOLT_SYMBOL = 80, ACCEPT_ACTION = 1759, ERROR_ACTION = 1769;
-
-	public final static boolean BACKTRACK = true;
-
-	@Override
-	public final int getNumStates() {
-		return NUM_STATES;
-	}
-
-	@Override
-	public final int getNtOffset() {
-		return NT_OFFSET;
-	}
-
-	@Override
-	public final int getLaStateOffset() {
-		return LA_STATE_OFFSET;
-	}
-
-	@Override
-	public final int getMaxLa() {
-		return MAX_LA;
-	}
-
-	@Override
-	public final int getNumRules() {
-		return NUM_RULES;
-	}
-
-	@Override
-	public final int getNumNonterminals() {
-		return NUM_NONTERMINALS;
-	}
-
-	@Override
-	public final int getNumSymbols() {
-		return NUM_SYMBOLS;
-	}
-
-	@Override
-	public final int getSegmentSize() {
-		return SEGMENT_SIZE;
-	}
-
-	@Override
-	public final int getStartState() {
-		return START_STATE;
-	}
-
-	@Override
-	public final int getStartSymbol() {
-		return lhs[0];
-	}
-
-	public final int getIdentifierSymbol() {
-		return IDENTIFIER_SYMBOL;
-	}
-
-	@Override
-	public final int getEoftSymbol() {
-		return EOFT_SYMBOL;
-	}
-
-	@Override
-	public final int getEoltSymbol() {
-		return EOLT_SYMBOL;
-	}
-
-	@Override
-	public final int getAcceptAction() {
-		return ACCEPT_ACTION;
-	}
-
-	@Override
-	public final int getErrorAction() {
-		return ERROR_ACTION;
-	}
-
-	@Override
-	public final boolean isValidForParser() {
-		return isValidForParser;
-	}
-
-	@Override
-	public final boolean getBacktrack() {
-		return BACKTRACK;
-	}
-
-	@Override
-	public final int originalState(int state) {
-		return -baseCheck[state];
-	}
-
-	@Override
-	public final int asi(int state) {
-		return asb[originalState(state)];
-	}
-
-	@Override
-	public final int nasi(int state) {
-		return nasb[originalState(state)];
-	}
-
-	@Override
-	public final int inSymbol(int state) {
-		return inSymb[originalState(state)];
-	}
-
-	@Override
-	public final int ntAction(int state, int sym) {
-		return baseAction[state + sym];
-	}
-
-	@Override
-	public final int tAction(int state, int sym) {
-		int i = baseAction[state], k = i + sym;
-		return termAction[termCheck[k] == sym ? k : i];
-	}
-
-	@Override
-	public final int lookAhead(int la_state, int sym) {
-		int k = la_state + sym;
-		return termAction[termCheck[k] == sym ? k : la_state];
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParsersym.java
deleted file mode 100644
index 2ad3368..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParsersym.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2010 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.lrparser.c99;
-
-public interface C99ExpressionParsersym {
-	public final static int TK_auto = 24, TK_break = 81, TK_case = 82, TK_char = 31, TK_const = 6, TK_continue = 83,
-			TK_default = 84, TK_do = 85, TK_double = 32, TK_else = 86, TK_enum = 44, TK_extern = 25, TK_float = 33,
-			TK_for = 87, TK_goto = 88, TK_if = 89, TK_inline = 26, TK_int = 34, TK_long = 35, TK_register = 27,
-			TK_restrict = 7, TK_return = 90, TK_short = 36, TK_signed = 37, TK_sizeof = 16, TK_static = 17,
-			TK_struct = 45, TK_switch = 91, TK_typedef = 28, TK_union = 46, TK_unsigned = 38, TK_void = 39,
-			TK_volatile = 8, TK_while = 92, TK__Bool = 40, TK__Complex = 41, TK__Imaginary = 42, TK_integer = 18,
-			TK_floating = 19, TK_charconst = 20, TK_stringlit = 21, TK_identifier = 1, TK_Completion = 3,
-			TK_EndOfCompletion = 5, TK_Invalid = 93, TK_LeftBracket = 12, TK_LeftParen = 2, TK_LeftBrace = 13,
-			TK_Dot = 52, TK_Arrow = 67, TK_PlusPlus = 14, TK_MinusMinus = 15, TK_And = 11, TK_Star = 4, TK_Plus = 9,
-			TK_Minus = 10, TK_Tilde = 22, TK_Bang = 23, TK_Slash = 53, TK_Percent = 54, TK_RightShift = 47,
-			TK_LeftShift = 48, TK_LT = 55, TK_GT = 56, TK_LE = 57, TK_GE = 58, TK_EQ = 61, TK_NE = 62, TK_Caret = 63,
-			TK_Or = 64, TK_AndAnd = 65, TK_OrOr = 68, TK_Question = 69, TK_Colon = 59, TK_DotDotDot = 49,
-			TK_Assign = 60, TK_StarAssign = 70, TK_SlashAssign = 71, TK_PercentAssign = 72, TK_PlusAssign = 73,
-			TK_MinusAssign = 74, TK_RightShiftAssign = 75, TK_LeftShiftAssign = 76, TK_AndAssign = 77,
-			TK_CaretAssign = 78, TK_OrAssign = 79, TK_Comma = 29, TK_RightBracket = 50, TK_RightParen = 30,
-			TK_RightBrace = 43, TK_SemiColon = 66, TK_ERROR_TOKEN = 51, TK_EOF_TOKEN = 80;
-
-	public final static String orderedTerminalSymbols[] = { "", "identifier", "LeftParen", "Completion", "Star",
-			"EndOfCompletion", "const", "restrict", "volatile", "Plus", "Minus", "And", "LeftBracket", "LeftBrace",
-			"PlusPlus", "MinusMinus", "sizeof", "static", "integer", "floating", "charconst", "stringlit", "Tilde",
-			"Bang", "auto", "extern", "inline", "register", "typedef", "Comma", "RightParen", "char", "double", "float",
-			"int", "long", "short", "signed", "unsigned", "void", "_Bool", "_Complex", "_Imaginary", "RightBrace",
-			"enum", "struct", "union", "RightShift", "LeftShift", "DotDotDot", "RightBracket", "ERROR_TOKEN", "Dot",
-			"Slash", "Percent", "LT", "GT", "LE", "GE", "Colon", "Assign", "EQ", "NE", "Caret", "Or", "AndAnd",
-			"SemiColon", "Arrow", "OrOr", "Question", "StarAssign", "SlashAssign", "PercentAssign", "PlusAssign",
-			"MinusAssign", "RightShiftAssign", "LeftShiftAssign", "AndAssign", "CaretAssign", "OrAssign", "EOF_TOKEN",
-			"break", "case", "continue", "default", "do", "else", "for", "goto", "if", "return", "switch", "while",
-			"Invalid" };
-
-	public final static boolean isValidForParser = true;
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParser.java
deleted file mode 100644
index f176dd2..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParser.java
+++ /dev/null
@@ -1,1675 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2015 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.lrparser.c99;
-
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.cdt.core.dom.ast.IASTBinaryExpression;
-import org.eclipse.cdt.core.dom.ast.IASTCompletionNode;
-import org.eclipse.cdt.core.dom.ast.IASTCompositeTypeSpecifier;
-import org.eclipse.cdt.core.dom.ast.IASTElaboratedTypeSpecifier;
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-import org.eclipse.cdt.core.dom.ast.IASTLiteralExpression;
-import org.eclipse.cdt.core.dom.ast.IASTTypeIdExpression;
-import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression;
-import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter;
-import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
-import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
-import org.eclipse.cdt.core.dom.lrparser.ITokenCollector;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
-import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
-import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
-import org.eclipse.cdt.core.dom.lrparser.action.c99.C99BuildASTParserAction;
-import org.eclipse.cdt.core.dom.lrparser.action.c99.C99SecondaryParserFactory;
-import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser;
-import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
-import org.eclipse.cdt.core.index.IIndex;
-import org.eclipse.cdt.core.parser.IScanner;
-import org.eclipse.cdt.internal.core.dom.parser.c.CNodeFactory;
-
-import lpg.lpgjavaruntime.BadParseException;
-import lpg.lpgjavaruntime.BadParseSymFileException;
-import lpg.lpgjavaruntime.DiagnoseParser;
-import lpg.lpgjavaruntime.ErrorToken;
-import lpg.lpgjavaruntime.IToken;
-import lpg.lpgjavaruntime.LexStream;
-import lpg.lpgjavaruntime.Monitor;
-import lpg.lpgjavaruntime.NotBacktrackParseTableException;
-import lpg.lpgjavaruntime.NullExportedSymbolsException;
-import lpg.lpgjavaruntime.NullTerminalSymbolsException;
-import lpg.lpgjavaruntime.ParseErrorCodes;
-import lpg.lpgjavaruntime.ParseTable;
-import lpg.lpgjavaruntime.PrsStream;
-import lpg.lpgjavaruntime.RuleAction;
-import lpg.lpgjavaruntime.Token;
-import lpg.lpgjavaruntime.UndefinedEofSymbolException;
-import lpg.lpgjavaruntime.UnimplementedTerminalsException;
-
-public class C99NoCastExpressionParser extends PrsStream
-		implements RuleAction, ITokenStream, ITokenCollector, ISecondaryParser<IASTExpression> {
-	private static ParseTable prs = new C99NoCastExpressionParserprs();
-	private FixedBacktrackingParser btParser;
-
-	public FixedBacktrackingParser getParser() {
-		return btParser;
-	}
-
-	private void setResult(Object object) {
-		btParser.setSym1(object);
-	}
-
-	public Object getRhsSym(int i) {
-		return btParser.getSym(i);
-	}
-
-	public int getRhsTokenIndex(int i) {
-		return btParser.getToken(i);
-	}
-
-	public IToken getRhsIToken(int i) {
-		return super.getIToken(getRhsTokenIndex(i));
-	}
-
-	public int getRhsFirstTokenIndex(int i) {
-		return btParser.getFirstToken(i);
-	}
-
-	public IToken getRhsFirstIToken(int i) {
-		return super.getIToken(getRhsFirstTokenIndex(i));
-	}
-
-	public int getRhsLastTokenIndex(int i) {
-		return btParser.getLastToken(i);
-	}
-
-	public IToken getRhsLastIToken(int i) {
-		return super.getIToken(getRhsLastTokenIndex(i));
-	}
-
-	public int getLeftSpan() {
-		return btParser.getFirstToken();
-	}
-
-	@Override
-	public IToken getLeftIToken() {
-		return super.getIToken(getLeftSpan());
-	}
-
-	public int getRightSpan() {
-		return btParser.getLastToken();
-	}
-
-	@Override
-	public IToken getRightIToken() {
-		return super.getIToken(getRightSpan());
-	}
-
-	public int getRhsErrorTokenIndex(int i) {
-		int index = btParser.getToken(i);
-		IToken err = super.getIToken(index);
-		return (err instanceof ErrorToken ? index : 0);
-	}
-
-	public ErrorToken getRhsErrorIToken(int i) {
-		int index = btParser.getToken(i);
-		IToken err = super.getIToken(index);
-		return (ErrorToken) (err instanceof ErrorToken ? err : null);
-	}
-
-	public C99NoCastExpressionParser(LexStream lexStream) {
-		super(lexStream);
-
-		try {
-			super.remapTerminalSymbols(orderedTerminalSymbols(), C99NoCastExpressionParserprs.EOFT_SYMBOL);
-		} catch (NullExportedSymbolsException e) {
-		} catch (NullTerminalSymbolsException e) {
-		} catch (UnimplementedTerminalsException e) {
-			java.util.ArrayList unimplemented_symbols = e.getSymbols();
-			System.out.println("The Lexer will not scan the following token(s):");
-			for (int i = 0; i < unimplemented_symbols.size(); i++) {
-				Integer id = (Integer) unimplemented_symbols.get(i);
-				System.out.println("    " + C99NoCastExpressionParsersym.orderedTerminalSymbols[id.intValue()]);
-			}
-			System.out.println();
-		} catch (UndefinedEofSymbolException e) {
-			throw new Error(new UndefinedEofSymbolException("The Lexer does not implement the Eof symbol "
-					+ C99NoCastExpressionParsersym.orderedTerminalSymbols[C99NoCastExpressionParserprs.EOFT_SYMBOL]));
-		}
-	}
-
-	@Override
-	public String[] orderedTerminalSymbols() {
-		return C99NoCastExpressionParsersym.orderedTerminalSymbols;
-	}
-
-	public String getTokenKindName(int kind) {
-		return C99NoCastExpressionParsersym.orderedTerminalSymbols[kind];
-	}
-
-	public int getEOFTokenKind() {
-		return C99NoCastExpressionParserprs.EOFT_SYMBOL;
-	}
-
-	public PrsStream getParseStream() {
-		return this;
-	}
-
-	//
-	// Report error message for given error_token.
-	//
-	public final void reportErrorTokenMessage(int error_token, String msg) {
-		int firsttok = super.getFirstErrorToken(error_token), lasttok = super.getLastErrorToken(error_token);
-		String location = super.getFileName() + ':'
-				+ (firsttok > lasttok ? (super.getEndLine(lasttok) + ":" + super.getEndColumn(lasttok))
-						: (super.getLine(error_token) + ":" + super.getColumn(error_token) + ":"
-								+ super.getEndLine(error_token) + ":" + super.getEndColumn(error_token)))
-				+ ": ";
-		super.reportError((firsttok > lasttok ? ParseErrorCodes.INSERTION_CODE : ParseErrorCodes.SUBSTITUTION_CODE),
-				location, msg);
-	}
-
-	public void parser() {
-		parser(null, 0);
-	}
-
-	public void parser(Monitor monitor) {
-		parser(monitor, 0);
-	}
-
-	public void parser(int error_repair_count) {
-		parser(null, error_repair_count);
-	}
-
-	public void parser(Monitor monitor, int error_repair_count) {
-		try {
-			btParser = new FixedBacktrackingParser(monitor, this, prs, this);
-		} catch (NotBacktrackParseTableException e) {
-			throw new Error(new NotBacktrackParseTableException(
-					"Regenerate C99NoCastExpressionParserprs.java with -BACKTRACK option"));
-		} catch (BadParseSymFileException e) {
-			throw new Error(
-					new BadParseSymFileException("Bad Parser Symbol File -- C99NoCastExpressionParsersym.java"));
-		}
-
-		try {
-			btParser.parse(error_repair_count);
-		} catch (BadParseException e) {
-			reset(e.error_token); // point to error token
-			DiagnoseParser diagnoseParser = new DiagnoseParser(this, prs);
-			diagnoseParser.diagnose(e.error_token);
-		}
-	}
-
-	private C99BuildASTParserAction action;
-	private IASTCompletionNode compNode;
-
-	public C99NoCastExpressionParser(IScanner scanner, IDOMTokenMap tokenMap,
-			IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Map<String, String> properties) {
-		initActions(properties);
-		action.initializeTranslationUnit(scanner, builtinBindingsProvider, index);
-		CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap);
-	}
-
-	private void initActions(Map<String, String> properties) {
-		ScopedStack<Object> astStack = new ScopedStack<>();
-
-		action = new C99BuildASTParserAction(this, astStack, CNodeFactory.getDefault(),
-				C99SecondaryParserFactory.getDefault());
-		action.setParserProperties(properties);
-
-	}
-
-	@Override
-	public void addToken(IToken token) {
-		token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called?
-		super.addToken(token);
-	}
-
-	@Override
-	public IASTExpression parse() {
-		// this has to be done, or... kaboom!
-		setStreamLength(getSize());
-
-		final int errorRepairCount = -1; // -1 means full error handling
-		parser(null, errorRepairCount); // do the actual parse
-		super.resetTokenStream(); // allow tokens to be garbage collected
-
-		compNode = action.getASTCompletionNode(); // the completion node may be null
-		return (IASTExpression) action.getParseResult();
-	}
-
-	@Override
-	public IASTCompletionNode getCompletionNode() {
-		return compNode;
-	}
-
-	// uncomment this method to use with backtracking parser
-	@Override
-	public List<IToken> getRuleTokens() {
-		return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
-	}
-
-	@Override
-	public String[] getOrderedTerminalSymbols() {
-		return C99NoCastExpressionParsersym.orderedTerminalSymbols;
-	}
-
-	@Override
-	@SuppressWarnings("nls")
-	public String getName() {
-		return "C99NoCastExpressionParser";
-	}
-
-	private ITokenMap tokenMap = null;
-
-	@Override
-	public void setTokens(List<IToken> tokens) {
-		resetTokenStream();
-		addToken(new Token(null, 0, 0, 0)); // dummy token
-		for (IToken token : tokens) {
-			token.setKind(tokenMap.mapKind(token.getKind()));
-			addToken(token);
-		}
-		addToken(new Token(null, 0, 0, C99NoCastExpressionParsersym.TK_EOF_TOKEN));
-	}
-
-	public C99NoCastExpressionParser(ITokenStream stream, Map<String, String> properties) { // constructor for creating secondary parser
-		initActions(properties);
-		tokenMap = new TokenMap(C99NoCastExpressionParsersym.orderedTerminalSymbols,
-				stream.getOrderedTerminalSymbols());
-	}
-
-	@Override
-	public void ruleAction(int ruleNumber) {
-		switch (ruleNumber) {
-
-		//
-		// Rule 1:  <openscope-ast> ::= $Empty
-		//
-		case 1: {
-			action.openASTScope();
-			break;
-		}
-
-		//
-		// Rule 2:  <empty> ::= $Empty
-		//
-		case 2: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 13:  literal ::= integer
-		//
-		case 13: {
-			action.consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant);
-			break;
-		}
-
-		//
-		// Rule 14:  literal ::= floating
-		//
-		case 14: {
-			action.consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant);
-			break;
-		}
-
-		//
-		// Rule 15:  literal ::= charconst
-		//
-		case 15: {
-			action.consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant);
-			break;
-		}
-
-		//
-		// Rule 16:  literal ::= stringlit
-		//
-		case 16: {
-			action.consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal);
-			break;
-		}
-
-		//
-		// Rule 18:  primary_expression ::= primary_expression_id
-		//
-		case 18: {
-			action.consumeExpressionID();
-			break;
-		}
-
-		//
-		// Rule 19:  primary_expression ::= ( expression )
-		//
-		case 19: {
-			action.consumeExpressionBracketed();
-			break;
-		}
-
-		//
-		// Rule 22:  postfix_expression ::= postfix_expression [ expression ]
-		//
-		case 22: {
-			action.consumeExpressionArraySubscript();
-			break;
-		}
-
-		//
-		// Rule 23:  postfix_expression ::= postfix_expression ( expression_list_opt )
-		//
-		case 23: {
-			action.consumeExpressionFunctionCall();
-			break;
-		}
-
-		//
-		// Rule 24:  postfix_expression ::= postfix_expression . member_name
-		//
-		case 24: {
-			action.consumeExpressionFieldReference(false);
-			break;
-		}
-
-		//
-		// Rule 25:  postfix_expression ::= postfix_expression -> member_name
-		//
-		case 25: {
-			action.consumeExpressionFieldReference(true);
-			break;
-		}
-
-		//
-		// Rule 26:  postfix_expression ::= postfix_expression ++
-		//
-		case 26: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr);
-			break;
-		}
-
-		//
-		// Rule 27:  postfix_expression ::= postfix_expression --
-		//
-		case 27: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr);
-			break;
-		}
-
-		//
-		// Rule 28:  postfix_expression ::= ( type_id ) initializer_list
-		//
-		case 28: {
-			action.consumeExpressionTypeIdInitializer();
-			break;
-		}
-
-		//
-		// Rule 33:  unary_expression ::= ++ unary_expression
-		//
-		case 33: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr);
-			break;
-		}
-
-		//
-		// Rule 34:  unary_expression ::= -- unary_expression
-		//
-		case 34: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr);
-			break;
-		}
-
-		//
-		// Rule 35:  unary_expression ::= & cast_expression
-		//
-		case 35: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper);
-			break;
-		}
-
-		//
-		// Rule 36:  unary_expression ::= * cast_expression
-		//
-		case 36: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_star);
-			break;
-		}
-
-		//
-		// Rule 37:  unary_expression ::= + cast_expression
-		//
-		case 37: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus);
-			break;
-		}
-
-		//
-		// Rule 38:  unary_expression ::= - cast_expression
-		//
-		case 38: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus);
-			break;
-		}
-
-		//
-		// Rule 39:  unary_expression ::= ~ cast_expression
-		//
-		case 39: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde);
-			break;
-		}
-
-		//
-		// Rule 40:  unary_expression ::= ! cast_expression
-		//
-		case 40: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_not);
-			break;
-		}
-
-		//
-		// Rule 41:  unary_expression ::= sizeof unary_expression
-		//
-		case 41: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof);
-			break;
-		}
-
-		//
-		// Rule 42:  unary_expression ::= sizeof ( type_id )
-		//
-		case 42: {
-			action.consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof);
-			break;
-		}
-
-		//
-		// Rule 45:  multiplicative_expression ::= multiplicative_expression * cast_expression
-		//
-		case 45: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply);
-			break;
-		}
-
-		//
-		// Rule 46:  multiplicative_expression ::= multiplicative_expression / cast_expression
-		//
-		case 46: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide);
-			break;
-		}
-
-		//
-		// Rule 47:  multiplicative_expression ::= multiplicative_expression % cast_expression
-		//
-		case 47: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo);
-			break;
-		}
-
-		//
-		// Rule 49:  additive_expression ::= additive_expression + multiplicative_expression
-		//
-		case 49: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus);
-			break;
-		}
-
-		//
-		// Rule 50:  additive_expression ::= additive_expression - multiplicative_expression
-		//
-		case 50: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus);
-			break;
-		}
-
-		//
-		// Rule 52:  shift_expression ::= shift_expression << additive_expression
-		//
-		case 52: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft);
-			break;
-		}
-
-		//
-		// Rule 53:  shift_expression ::= shift_expression >> additive_expression
-		//
-		case 53: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight);
-			break;
-		}
-
-		//
-		// Rule 55:  relational_expression ::= relational_expression < shift_expression
-		//
-		case 55: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan);
-			break;
-		}
-
-		//
-		// Rule 56:  relational_expression ::= relational_expression > shift_expression
-		//
-		case 56: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan);
-			break;
-		}
-
-		//
-		// Rule 57:  relational_expression ::= relational_expression <= shift_expression
-		//
-		case 57: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual);
-			break;
-		}
-
-		//
-		// Rule 58:  relational_expression ::= relational_expression >= shift_expression
-		//
-		case 58: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual);
-			break;
-		}
-
-		//
-		// Rule 60:  equality_expression ::= equality_expression == relational_expression
-		//
-		case 60: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals);
-			break;
-		}
-
-		//
-		// Rule 61:  equality_expression ::= equality_expression != relational_expression
-		//
-		case 61: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals);
-			break;
-		}
-
-		//
-		// Rule 63:  and_expression ::= and_expression & equality_expression
-		//
-		case 63: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd);
-			break;
-		}
-
-		//
-		// Rule 65:  exclusive_or_expression ::= exclusive_or_expression ^ and_expression
-		//
-		case 65: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor);
-			break;
-		}
-
-		//
-		// Rule 67:  inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression
-		//
-		case 67: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr);
-			break;
-		}
-
-		//
-		// Rule 69:  logical_and_expression ::= logical_and_expression && inclusive_or_expression
-		//
-		case 69: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd);
-			break;
-		}
-
-		//
-		// Rule 71:  logical_or_expression ::= logical_or_expression || logical_and_expression
-		//
-		case 71: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr);
-			break;
-		}
-
-		//
-		// Rule 73:  conditional_expression ::= logical_or_expression ? expression : assignment_expression
-		//
-		case 73: {
-			action.consumeExpressionConditional();
-			break;
-		}
-
-		//
-		// Rule 75:  assignment_expression ::= unary_expression = assignment_expression
-		//
-		case 75: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign);
-			break;
-		}
-
-		//
-		// Rule 76:  assignment_expression ::= unary_expression *= assignment_expression
-		//
-		case 76: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign);
-			break;
-		}
-
-		//
-		// Rule 77:  assignment_expression ::= unary_expression /= assignment_expression
-		//
-		case 77: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign);
-			break;
-		}
-
-		//
-		// Rule 78:  assignment_expression ::= unary_expression %= assignment_expression
-		//
-		case 78: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign);
-			break;
-		}
-
-		//
-		// Rule 79:  assignment_expression ::= unary_expression += assignment_expression
-		//
-		case 79: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign);
-			break;
-		}
-
-		//
-		// Rule 80:  assignment_expression ::= unary_expression -= assignment_expression
-		//
-		case 80: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign);
-			break;
-		}
-
-		//
-		// Rule 81:  assignment_expression ::= unary_expression <<= assignment_expression
-		//
-		case 81: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign);
-			break;
-		}
-
-		//
-		// Rule 82:  assignment_expression ::= unary_expression >>= assignment_expression
-		//
-		case 82: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign);
-			break;
-		}
-
-		//
-		// Rule 83:  assignment_expression ::= unary_expression &= assignment_expression
-		//
-		case 83: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign);
-			break;
-		}
-
-		//
-		// Rule 84:  assignment_expression ::= unary_expression ^= assignment_expression
-		//
-		case 84: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign);
-			break;
-		}
-
-		//
-		// Rule 85:  assignment_expression ::= unary_expression |= assignment_expression
-		//
-		case 85: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign);
-			break;
-		}
-
-		//
-		// Rule 88:  expression_list ::= <openscope-ast> expression_list_actual
-		//
-		case 88: {
-			action.consumeExpressionList();
-			break;
-		}
-
-		//
-		// Rule 90:  expression_list_opt ::= $Empty
-		//
-		case 90: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 100:  statement ::= ERROR_TOKEN
-		//
-		case 100: {
-			action.consumeStatementProblem();
-			break;
-		}
-
-		//
-		// Rule 101:  labeled_statement ::= identifier_token : statement
-		//
-		case 101: {
-			action.consumeStatementLabeled();
-			break;
-		}
-
-		//
-		// Rule 102:  labeled_statement ::= case constant_expression : statement
-		//
-		case 102: {
-			action.consumeStatementCase();
-			break;
-		}
-
-		//
-		// Rule 103:  labeled_statement ::= default : statement
-		//
-		case 103: {
-			action.consumeStatementDefault();
-			break;
-		}
-
-		//
-		// Rule 104:  compound_statement ::= { }
-		//
-		case 104: {
-			action.consumeStatementCompoundStatement(false);
-			break;
-		}
-
-		//
-		// Rule 105:  compound_statement ::= { <openscope-ast> block_item_list }
-		//
-		case 105: {
-			action.consumeStatementCompoundStatement(true);
-			break;
-		}
-
-		//
-		// Rule 109:  block_item ::= declaration
-		//
-		case 109: {
-			action.consumeStatementDeclarationWithDisambiguation();
-			break;
-		}
-
-		//
-		// Rule 110:  expression_statement ::= ;
-		//
-		case 110: {
-			action.consumeStatementNull();
-			break;
-		}
-
-		//
-		// Rule 111:  expression_statement ::= expression_in_statement ;
-		//
-		case 111: {
-			action.consumeStatementExpression();
-			break;
-		}
-
-		//
-		// Rule 112:  selection_statement ::= if ( expression ) statement
-		//
-		case 112: {
-			action.consumeStatementIf(false);
-			break;
-		}
-
-		//
-		// Rule 113:  selection_statement ::= if ( expression ) statement else statement
-		//
-		case 113: {
-			action.consumeStatementIf(true);
-			break;
-		}
-
-		//
-		// Rule 114:  selection_statement ::= switch ( expression ) statement
-		//
-		case 114: {
-			action.consumeStatementSwitch();
-			break;
-		}
-
-		//
-		// Rule 116:  expression_opt ::= $Empty
-		//
-		case 116: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 117:  iteration_statement ::= do statement while ( expression ) ;
-		//
-		case 117: {
-			action.consumeStatementDoLoop(true);
-			break;
-		}
-
-		//
-		// Rule 118:  iteration_statement ::= do statement
-		//
-		case 118: {
-			action.consumeStatementDoLoop(false);
-			break;
-		}
-
-		//
-		// Rule 119:  iteration_statement ::= while ( expression ) statement
-		//
-		case 119: {
-			action.consumeStatementWhileLoop();
-			break;
-		}
-
-		//
-		// Rule 120:  iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement
-		//
-		case 120: {
-			action.consumeStatementForLoop();
-			break;
-		}
-
-		//
-		// Rule 121:  iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement
-		//
-		case 121: {
-			action.consumeStatementForLoop();
-			break;
-		}
-
-		//
-		// Rule 122:  jump_statement ::= goto identifier_token ;
-		//
-		case 122: {
-			action.consumeStatementGoto();
-			break;
-		}
-
-		//
-		// Rule 123:  jump_statement ::= continue ;
-		//
-		case 123: {
-			action.consumeStatementContinue();
-			break;
-		}
-
-		//
-		// Rule 124:  jump_statement ::= break ;
-		//
-		case 124: {
-			action.consumeStatementBreak();
-			break;
-		}
-
-		//
-		// Rule 125:  jump_statement ::= return ;
-		//
-		case 125: {
-			action.consumeStatementReturn(false);
-			break;
-		}
-
-		//
-		// Rule 126:  jump_statement ::= return expression ;
-		//
-		case 126: {
-			action.consumeStatementReturn(true);
-			break;
-		}
-
-		//
-		// Rule 127:  declaration ::= declaration_specifiers ;
-		//
-		case 127: {
-			action.consumeDeclarationSimple(false);
-			break;
-		}
-
-		//
-		// Rule 128:  declaration ::= declaration_specifiers <openscope-ast> init_declarator_list ;
-		//
-		case 128: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 129:  declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
-		//
-		case 129: {
-			action.consumeDeclarationSpecifiersSimple();
-			break;
-		}
-
-		//
-		// Rule 130:  declaration_specifiers ::= <openscope-ast> struct_or_union_declaration_specifiers
-		//
-		case 130: {
-			action.consumeDeclarationSpecifiersStructUnionEnum();
-			break;
-		}
-
-		//
-		// Rule 131:  declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
-		//
-		case 131: {
-			action.consumeDeclarationSpecifiersStructUnionEnum();
-			break;
-		}
-
-		//
-		// Rule 132:  declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
-		//
-		case 132: {
-			action.consumeDeclarationSpecifiersStructUnionEnum();
-			break;
-		}
-
-		//
-		// Rule 133:  declaration_specifiers ::= <openscope-ast> typdef_name_declaration_specifiers
-		//
-		case 133: {
-			action.consumeDeclarationSpecifiersTypedefName();
-			break;
-		}
-
-		//
-		// Rule 158:  init_declarator ::= complete_declarator = initializer
-		//
-		case 158: {
-			action.consumeDeclaratorWithInitializer(true);
-			break;
-		}
-
-		//
-		// Rule 160:  storage_class_specifier ::= storage_class_specifier_token
-		//
-		case 160: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 166:  simple_type_specifier ::= simple_type_specifier_token
-		//
-		case 166: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 179:  type_name_specifier ::= identifier_token
-		//
-		case 179: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 180:  struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { <openscope-ast> struct_declaration_list_opt }
-		//
-		case 180: {
-			action.consumeTypeSpecifierComposite(false);
-			break;
-		}
-
-		//
-		// Rule 181:  struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { <openscope-ast> struct_declaration_list_opt }
-		//
-		case 181: {
-			action.consumeTypeSpecifierComposite(true);
-			break;
-		}
-
-		//
-		// Rule 186:  elaborated_specifier ::= struct elaborated_specifier_hook identifier_token
-		//
-		case 186: {
-			action.consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct);
-			break;
-		}
-
-		//
-		// Rule 187:  elaborated_specifier ::= union elaborated_specifier_hook identifier_token
-		//
-		case 187: {
-			action.consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union);
-			break;
-		}
-
-		//
-		// Rule 188:  elaborated_specifier ::= enum elaborated_specifier_hook identifier_token
-		//
-		case 188: {
-			action.consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum);
-			break;
-		}
-
-		//
-		// Rule 194:  struct_declaration ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ;
-		//
-		case 194: {
-			action.consumeStructDeclaration(true);
-			break;
-		}
-
-		//
-		// Rule 195:  struct_declaration ::= specifier_qualifier_list ;
-		//
-		case 195: {
-			action.consumeStructDeclaration(false);
-			break;
-		}
-
-		//
-		// Rule 196:  struct_declaration ::= ERROR_TOKEN
-		//
-		case 196: {
-			action.consumeDeclarationProblem();
-			break;
-		}
-
-		//
-		// Rule 202:  struct_declarator ::= : constant_expression
-		//
-		case 202: {
-			action.consumeBitField(false);
-			break;
-		}
-
-		//
-		// Rule 203:  struct_declarator ::= declarator : constant_expression
-		//
-		case 203: {
-			action.consumeBitField(true);
-			break;
-		}
-
-		//
-		// Rule 204:  enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
-		//
-		case 204: {
-			action.consumeTypeSpecifierEnumeration(false);
-			break;
-		}
-
-		//
-		// Rule 205:  enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
-		//
-		case 205: {
-			action.consumeTypeSpecifierEnumeration(true);
-			break;
-		}
-
-		//
-		// Rule 211:  enumerator ::= identifier_token
-		//
-		case 211: {
-			action.consumeEnumerator(false);
-			break;
-		}
-
-		//
-		// Rule 212:  enumerator ::= identifier_token = constant_expression
-		//
-		case 212: {
-			action.consumeEnumerator(true);
-			break;
-		}
-
-		//
-		// Rule 213:  type_qualifier ::= type_qualifier_token
-		//
-		case 213: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 217:  function_specifier ::= inline
-		//
-		case 217: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 219:  declarator ::= <openscope-ast> pointer_seq direct_declarator
-		//
-		case 219: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 224:  basic_direct_declarator ::= declarator_id_name
-		//
-		case 224: {
-			action.consumeDirectDeclaratorIdentifier();
-			break;
-		}
-
-		//
-		// Rule 225:  basic_direct_declarator ::= ( declarator )
-		//
-		case 225: {
-			action.consumeDirectDeclaratorBracketed();
-			break;
-		}
-
-		//
-		// Rule 226:  declarator_id_name ::= identifier
-		//
-		case 226: {
-			action.consumeIdentifierName();
-			break;
-		}
-
-		//
-		// Rule 227:  array_direct_declarator ::= basic_direct_declarator array_modifier
-		//
-		case 227: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 228:  array_direct_declarator ::= array_direct_declarator array_modifier
-		//
-		case 228: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 230:  function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_type_list )
-		//
-		case 230: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true, true);
-			break;
-		}
-
-		//
-		// Rule 231:  function_direct_declarator ::= basic_direct_declarator ( )
-		//
-		case 231: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true, false);
-			break;
-		}
-
-		//
-		// Rule 233:  function_declarator ::= <openscope-ast> pointer_seq function_direct_declarator
-		//
-		case 233: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 234:  knr_direct_declarator ::= basic_direct_declarator ( <openscope-ast> identifier_list )
-		//
-		case 234: {
-			action.consumeDirectDeclaratorFunctionDeclaratorKnR();
-			break;
-		}
-
-		//
-		// Rule 236:  knr_function_declarator ::= <openscope-ast> pointer_seq knr_direct_declarator
-		//
-		case 236: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 237:  identifier_list ::= identifier
-		//
-		case 237: {
-			action.consumeIdentifierKnR();
-			break;
-		}
-
-		//
-		// Rule 238:  identifier_list ::= identifier_list , identifier
-		//
-		case 238: {
-			action.consumeIdentifierKnR();
-			break;
-		}
-
-		//
-		// Rule 239:  array_modifier ::= [ ]
-		//
-		case 239: {
-			action.consumeDirectDeclaratorArrayModifier(false);
-			break;
-		}
-
-		//
-		// Rule 240:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ]
-		//
-		case 240: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false);
-			break;
-		}
-
-		//
-		// Rule 241:  array_modifier ::= [ assignment_expression ]
-		//
-		case 241: {
-			action.consumeDirectDeclaratorArrayModifier(true);
-			break;
-		}
-
-		//
-		// Rule 242:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
-		//
-		case 242: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 243:  array_modifier ::= [ static assignment_expression ]
-		//
-		case 243: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true);
-			break;
-		}
-
-		//
-		// Rule 244:  array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
-		//
-		case 244: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 245:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ]
-		//
-		case 245: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 246:  array_modifier ::= [ * ]
-		//
-		case 246: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false);
-			break;
-		}
-
-		//
-		// Rule 247:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ]
-		//
-		case 247: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false);
-			break;
-		}
-
-		//
-		// Rule 249:  pointer_seq ::= pointer_hook * pointer_hook
-		//
-		case 249: {
-			action.consumePointer();
-			break;
-		}
-
-		//
-		// Rule 250:  pointer_seq ::= pointer_seq pointer_hook * pointer_hook
-		//
-		case 250: {
-			action.consumePointer();
-			break;
-		}
-
-		//
-		// Rule 251:  pointer_seq ::= pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
-		//
-		case 251: {
-			action.consumePointerTypeQualifierList();
-			break;
-		}
-
-		//
-		// Rule 252:  pointer_seq ::= pointer_seq pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
-		//
-		case 252: {
-			action.consumePointerTypeQualifierList();
-			break;
-		}
-
-		//
-		// Rule 256:  parameter_type_list ::= parameter_list
-		//
-		case 256: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 257:  parameter_type_list ::= parameter_list , ...
-		//
-		case 257: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 258:  parameter_type_list ::= ...
-		//
-		case 258: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 261:  parameter_declaration ::= declaration_specifiers complete_parameter_declarator
-		//
-		case 261: {
-			action.consumeParameterDeclaration();
-			break;
-		}
-
-		//
-		// Rule 262:  parameter_declaration ::= declaration_specifiers
-		//
-		case 262: {
-			action.consumeParameterDeclarationWithoutDeclarator();
-			break;
-		}
-
-		//
-		// Rule 265:  type_id ::= specifier_qualifier_list
-		//
-		case 265: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 266:  type_id ::= specifier_qualifier_list abstract_declarator
-		//
-		case 266: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 268:  abstract_declarator ::= <openscope-ast> pointer_seq
-		//
-		case 268: {
-			action.consumeDeclaratorWithPointer(false);
-			break;
-		}
-
-		//
-		// Rule 269:  abstract_declarator ::= <openscope-ast> pointer_seq direct_abstract_declarator
-		//
-		case 269: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 273:  basic_direct_abstract_declarator ::= ( abstract_declarator )
-		//
-		case 273: {
-			action.consumeDirectDeclaratorBracketed();
-			break;
-		}
-
-		//
-		// Rule 274:  array_direct_abstract_declarator ::= array_modifier
-		//
-		case 274: {
-			action.consumeDirectDeclaratorArrayDeclarator(false);
-			break;
-		}
-
-		//
-		// Rule 275:  array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
-		//
-		case 275: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 276:  array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
-		//
-		case 276: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 277:  function_direct_abstract_declarator ::= ( )
-		//
-		case 277: {
-			action.consumeDirectDeclaratorFunctionDeclarator(false, false);
-			break;
-		}
-
-		//
-		// Rule 278:  function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( )
-		//
-		case 278: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true, false);
-			break;
-		}
-
-		//
-		// Rule 279:  function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list )
-		//
-		case 279: {
-			action.consumeDirectDeclaratorFunctionDeclarator(false, true);
-			break;
-		}
-
-		//
-		// Rule 280:  function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list )
-		//
-		case 280: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true, true);
-			break;
-		}
-
-		//
-		// Rule 281:  initializer ::= assignment_expression
-		//
-		case 281: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 282:  initializer ::= initializer_list
-		//
-		case 282: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 283:  initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq comma_opt } end_initializer_list
-		//
-		case 283: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 284:  initializer_list ::= { <openscope-ast> }
-		//
-		case 284: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 285:  start_initializer_list ::= $Empty
-		//
-		case 285: {
-			action.initializerListStart();
-			break;
-		}
-
-		//
-		// Rule 286:  end_initializer_list ::= $Empty
-		//
-		case 286: {
-			action.initializerListEnd();
-			break;
-		}
-
-		//
-		// Rule 291:  designated_initializer ::= <openscope-ast> designation = initializer
-		//
-		case 291: {
-			action.consumeInitializerDesignated();
-			break;
-		}
-
-		//
-		// Rule 295:  designator_base ::= [ constant_expression ]
-		//
-		case 295: {
-			action.consumeDesignatorArray();
-			break;
-		}
-
-		//
-		// Rule 296:  designator_base ::= . identifier_token
-		//
-		case 296: {
-			action.consumeDesignatorField();
-			break;
-		}
-
-		//
-		// Rule 297:  designator ::= [ constant_expression ]
-		//
-		case 297: {
-			action.consumeDesignatorArray();
-			break;
-		}
-
-		//
-		// Rule 298:  designator ::= . identifier_token
-		//
-		case 298: {
-			action.consumeDesignatorField();
-			break;
-		}
-
-		//
-		// Rule 299:  translation_unit ::= external_declaration_list
-		//
-		case 299: {
-			action.consumeTranslationUnit();
-			break;
-		}
-
-		//
-		// Rule 300:  translation_unit ::= $Empty
-		//
-		case 300: {
-			action.consumeTranslationUnit();
-			break;
-		}
-
-		//
-		// Rule 305:  external_declaration ::= ;
-		//
-		case 305: {
-			action.consumeDeclarationEmpty();
-			break;
-		}
-
-		//
-		// Rule 306:  external_declaration ::= ERROR_TOKEN
-		//
-		case 306: {
-			action.consumeDeclarationProblem();
-			break;
-		}
-
-		//
-		// Rule 310:  function_definition ::= <openscope-ast> function_declarator function_body
-		//
-		case 310: {
-			action.consumeFunctionDefinition(false);
-			break;
-		}
-
-		//
-		// Rule 311:  function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
-		//
-		case 311: {
-			action.consumeFunctionDefinitionKnR();
-			break;
-		}
-
-		//
-		// Rule 312:  normal_function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
-		//
-		case 312: {
-			action.consumeFunctionDefinition(true);
-			break;
-		}
-
-		//
-		// Rule 313:  function_body ::= { }
-		//
-		case 313: {
-			action.consumeStatementCompoundStatement(false);
-			break;
-		}
-
-		//
-		// Rule 314:  function_body ::= { <openscope-ast> block_item_list }
-		//
-		case 314: {
-			action.consumeStatementCompoundStatement(true);
-			break;
-		}
-
-		//
-		// Rule 316:  no_cast_start ::= ERROR_TOKEN
-		//
-		case 316: {
-			action.consumeEmpty();
-			break;
-		}
-
-		default:
-			break;
-		}
-		return;
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParserprs.java
deleted file mode 100644
index b87d0ab..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParserprs.java
+++ /dev/null
@@ -1,700 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2015 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.lrparser.c99;
-
-public class C99NoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C99NoCastExpressionParsersym {
-
-	public interface IsKeyword {
-		public final static byte isKeyword[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0 };
-	}
-
-	public final static byte isKeyword[] = IsKeyword.isKeyword;
-
-	public final boolean isKeyword(int index) {
-		return isKeyword[index] != 0;
-	}
-
-	public interface BaseCheck {
-		public final static short baseCheck[] = { 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 4,
-				4, 3, 3, 2, 2, 4, 1, 0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 1, 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 3, 3, 3,
-				3, 1, 3, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 2, 1, 0, 1, 3,
-				1, 1, 1, 1, 1, 1, 1, 1, 3, 4, 3, 2, 4, 1, 2, 1, 1, 1, 2, 5, 7, 5, 1, 0, 7, 2, 5, 9, 8, 3, 2, 2, 2, 3, 2,
-				4, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 3, 1, 3, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6, 8, 0, 0, 1, 1, 3, 3, 3, 0, 1, 0, 1, 2, 4, 2, 1, 1,
-				1, 3, 1, 1, 2, 3, 7, 8, 0, 1, 0, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 3, 1, 2, 2, 1, 5, 3, 1,
-				3, 5, 1, 3, 1, 3, 2, 4, 3, 5, 4, 6, 6, 3, 5, 1, 3, 4, 5, 6, 0, 1, 2, 1, 3, 1, 1, 3, 2, 1, 1, 1, 1, 2, 1,
-				2, 3, 1, 1, 1, 3, 1, 2, 2, 2, 3, 4, 5, 1, 1, 7, 3, 0, 0, 1, 1, 3, 3, 4, 1, 1, 2, 3, 2, 3, 2, 1, 0, 1, 2,
-				1, 1, 1, 1, 1, 2, 1, 3, 6, 4, 2, 4, 1, 1, -32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -4, -156, -115, 0, -15, 0, 0, 0, 0, -70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -167, 0, -33, 0, -104, 0, 0, 0, 0, -78, 0, 0, -116, 0, -16, 0, -17, 0, 0, 0, 0, 0, 0, 0,
-				-138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -178, 0, -128, -76, 0, 0, -48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -34, 0, 0, 0, -18, 0, -42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6, 0, 0, 0, 0, 0, 0, 0, 0,
-				-189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -19,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -117, 0, 0, -118, 0, -119, 0, 0, 0, -43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5, 0, 0, 0, 0, 0, 0, 0, -127, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -79, 0, 0, 0, 0, 0, 0, 0, 0, 0, -131, 0, -158, 0, -55, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -122, 0, 0, 0, 0, 0, 0, 0, 0, 0, -20, 0, -21, 0, 0, 0, 0, -27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -23, 0, -188, 0, -24, 0, 0, 0, 0, -72, 0, -12, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -57, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -25, 0, 0, 0, 0, 0, 0, 0, 0, 0, -58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -26, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -84, 0, 0, 0, 0, 0, 0, 0, 0, 0, -61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -87, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -88, 0, 0, 0, 0, 0, 0, 0, 0, 0, -63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-89, 0, 0, 0, 0, 0, 0, 0, 0, 0, -64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -90, 0, 0, 0, 0, 0, 0, 0, 0, 0, -65,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -91, 0, 0, 0, 0, 0, 0, 0, 0, 0, -66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -92, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -93, 0, 0, 0, 0, 0, 0, 0, 0, 0, -141, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -94, 0, 0, 0, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -95, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -134, 0, 0, 0, 0, 0, 0, 0, 0, -186, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -96, 0, 0, 0, 0, 0, 0, 0, 0, -13, 0, 0, 0, 0, 0, 0, 0, -7, 0, 0, 0, 0, 0, 0, 0, -192,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -135, 0, 0,
-				0, 0, 0, 0, 0, 0, -155, -170, 0, -176, 0, 0, -97, 0, -8, 0, 0, 0, 0, 0, 0, 0, -206, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -130, 0, 0, 0, 0, 0, 0, -98,
-				-180, -191, 0, 0, 0, 0, -73, -99, 0, -37, 0, 0, 0, 0, 0, 0, 0, 0, 0, -100, -145, 0, 0, -110, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -200, -193, -124, 0, -187, 0, 0, 0, 0, 0, -101, 0, -102, 0, -146, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -35, 0, -105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -184, -107, -83, 0, -29, 0,
-				0, -51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -121, 0, 0, 0, 0, 0, 0, 0, -69, 0, 0, 0, 0, 0, 0, 0, -52, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -164, 0, 0, 0, -137, -154, 0, -30, 0, -123, 0, 0, 0, -183, 0, 0, -67, 0, 0, 0, 0,
-				-132, 0, -136, 0, -81, 0, 0, 0, -140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-38, 0, 0, 0, 0, 0, 0, 0, 0, 0, -49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -50, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -205, 0, 0, 0, -153, 0, -157, -85, 0, 0, -151, 0, -171, -172, -175, 0, -199, 0, 0, -44, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -9, 0, 0, 0, 0, 0, 0, 0, -166, 0, -45, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -46, 0, 0, 0, 0, 0, 0, 0, 0, 0, -47, 0, 0, 0, 0, 0, 0, 0, 0, 0, -71, 0, 0, -74, -86, -109, 0,
-				-112, -139, -165, -204, 0, -111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -207, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -147, 0, 0, 0, 0, -144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -173,
-				0, 0, -10, 0, 0, 0, 0, 0, 0, 0, -11, 0, 0, 0, 0, 0, 0, 0, -31, -39, 0, 0, 0, 0, 0, 0, 0, 0, -113, 0,
-				-40, 0, 0, 0, 0, 0, 0, 0, 0, 0, -68, -126, -143, -162, 0, -41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -14, -129,
-				-159, 0, 0, 0, 0, -28, -36, 0, 0, 0, 0, -179, 0, -160, -148, -190, 0, 0, 0, -185, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -196, 0, -75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -77, 0, 0, 0, -197, -80, 0, 0, 0, 0, 0, -106,
-				-169, 0, 0, 0, 0, 0, 0, -82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -125, 0,
-				0, -152, -181, 0, 0, 0, 0, -182, 0, 0, 0, 0, 0, 0, -133, 0, 0, -168, 0, 0, 0, -203, -1, -114, -163, 0,
-				0, 0, 0, 0, -53, 0, 0, 0, 0, 0, 0, -150, -149, 0, -202, 0, 0, 0, -103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -161, -194, -195, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static short baseCheck[] = BaseCheck.baseCheck;
-
-	@Override
-	public final int baseCheck(int index) {
-		return baseCheck[index];
-	}
-
-	public final static short rhs[] = baseCheck;
-
-	@Override
-	public final int rhs(int index) {
-		return rhs[index];
-	}
-
-	public interface BaseAction {
-		public final static char baseAction[] = { 87, 11, 102, 24, 24, 23, 23, 39, 39, 69, 69, 1, 1, 2, 2, 2, 2, 3, 3,
-				3, 4, 5, 5, 5, 5, 5, 5, 5, 5, 59, 59, 70, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 8, 8, 8, 8, 9, 9, 9, 10,
-				10, 10, 12, 12, 12, 12, 12, 13, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 20, 20,
-				20, 20, 20, 20, 20, 20, 20, 20, 103, 45, 40, 88, 88, 72, 72, 47, 104, 104, 104, 104, 104, 104, 104, 105,
-				105, 105, 106, 106, 111, 111, 112, 112, 107, 107, 108, 108, 108, 114, 114, 109, 109, 109, 109, 109, 110,
-				110, 110, 110, 110, 113, 113, 25, 25, 25, 25, 25, 28, 28, 28, 78, 78, 73, 73, 73, 73, 74, 74, 74, 75,
-				75, 75, 76, 76, 76, 77, 77, 77, 115, 115, 116, 116, 117, 29, 31, 31, 31, 31, 31, 53, 54, 54, 54, 54, 54,
-				54, 54, 54, 54, 54, 54, 54, 63, 60, 60, 89, 90, 65, 65, 61, 61, 61, 66, 79, 79, 80, 80, 67, 67, 67, 49,
-				91, 91, 81, 82, 82, 82, 62, 62, 92, 83, 83, 84, 84, 68, 68, 21, 22, 22, 22, 30, 48, 48, 32, 32, 32, 32,
-				35, 35, 37, 33, 33, 34, 38, 38, 118, 118, 36, 119, 119, 93, 93, 26, 26, 26, 26, 26, 26, 26, 26, 26, 85,
-				50, 50, 50, 50, 27, 56, 56, 55, 55, 55, 57, 57, 51, 51, 94, 94, 71, 71, 58, 58, 58, 41, 41, 41, 42, 43,
-				43, 43, 44, 44, 44, 44, 64, 64, 46, 46, 52, 96, 95, 95, 95, 95, 86, 97, 98, 98, 99, 99, 100, 100, 120,
-				120, 121, 121, 122, 122, 122, 122, 124, 124, 123, 123, 123, 125, 126, 126, 87, 87, 1, 781, 17, 21, 18,
-				344, 739, 44, 388, 386, 524, 293, 468, 634, 632, 662, 650, 718, 666, 74, 91, 135, 213, 431, 236, 108,
-				991, 687, 137, 134, 136, 160, 275, 20, 17, 21, 18, 344, 739, 44, 388, 386, 524, 1154, 468, 634, 632,
-				662, 650, 718, 666, 74, 1427, 139, 166, 519, 239, 71, 31, 31, 143, 146, 149, 152, 199, 446, 1269, 71,
-				187, 246, 1229, 69, 340, 1425, 1579, 1592, 1597, 1611, 1213, 424, 20, 17, 21, 18, 344, 739, 44, 388,
-				386, 524, 341, 468, 634, 632, 662, 650, 718, 666, 74, 281, 335, 20, 17, 21, 18, 344, 739, 44, 388, 386,
-				524, 341, 468, 634, 632, 662, 650, 718, 666, 74, 281, 1356, 443, 293, 195, 282, 583, 25, 210, 104, 384,
-				1198, 482, 20, 17, 21, 18, 344, 43, 44, 388, 386, 524, 287, 468, 970, 282, 71, 31, 255, 213, 6, 1198,
-				482, 20, 17, 21, 18, 344, 43, 44, 388, 386, 844, 289, 288, 482, 20, 17, 21, 18, 344, 43, 40, 1076, 453,
-				20, 17, 21, 18, 344, 739, 44, 388, 386, 524, 290, 468, 634, 632, 662, 650, 718, 666, 74, 281, 482, 20,
-				17, 21, 18, 344, 739, 44, 388, 386, 524, 10, 468, 634, 632, 662, 650, 718, 666, 74, 91, 24, 342, 71,
-				186, 282, 281, 1279, 71, 188, 294, 1198, 482, 20, 17, 21, 18, 344, 43, 44, 388, 386, 865, 291, 540, 20,
-				17, 21, 18, 344, 739, 44, 388, 386, 524, 1634, 468, 634, 632, 662, 650, 718, 666, 74, 1531, 511, 20, 17,
-				21, 18, 344, 41, 340, 305, 20, 17, 21, 18, 344, 739, 44, 388, 386, 524, 429, 468, 634, 632, 662, 650,
-				718, 666, 74, 1532, 189, 179, 163, 240, 482, 20, 17, 21, 18, 344, 43, 44, 388, 386, 524, 31, 468, 634,
-				632, 662, 1180, 135, 213, 254, 213, 327, 396, 14, 137, 134, 136, 160, 482, 20, 17, 21, 18, 344, 739, 44,
-				388, 386, 524, 516, 468, 634, 632, 662, 650, 718, 666, 74, 92, 139, 166, 156, 536, 124, 1131, 243, 143,
-				146, 149, 152, 295, 446, 482, 20, 17, 21, 18, 344, 34, 1425, 1579, 1592, 1597, 1611, 1213, 482, 20, 17,
-				21, 18, 344, 739, 44, 388, 386, 524, 275, 468, 634, 632, 662, 650, 718, 666, 74, 85, 482, 20, 17, 21,
-				18, 344, 739, 44, 388, 386, 524, 172, 468, 634, 632, 662, 650, 718, 666, 74, 84, 482, 20, 17, 21, 18,
-				344, 739, 44, 388, 386, 524, 530, 468, 634, 632, 662, 650, 718, 666, 74, 83, 482, 20, 17, 21, 18, 344,
-				739, 44, 388, 386, 524, 283, 468, 634, 632, 662, 650, 718, 666, 74, 82, 482, 20, 17, 21, 18, 344, 739,
-				44, 388, 386, 524, 569, 468, 634, 632, 662, 650, 718, 666, 74, 81, 482, 20, 17, 21, 18, 344, 739, 44,
-				388, 386, 524, 151, 468, 634, 632, 662, 650, 718, 666, 74, 80, 482, 20, 17, 21, 18, 344, 739, 44, 388,
-				386, 524, 194, 468, 634, 632, 662, 650, 718, 666, 74, 79, 482, 20, 17, 21, 18, 344, 739, 44, 388, 386,
-				524, 30, 468, 634, 632, 662, 650, 718, 666, 74, 78, 482, 20, 17, 21, 18, 344, 739, 44, 388, 386, 524,
-				441, 468, 634, 632, 662, 650, 718, 666, 74, 77, 482, 20, 17, 21, 18, 344, 739, 44, 388, 386, 524, 470,
-				468, 634, 632, 662, 650, 718, 666, 74, 76, 482, 20, 17, 21, 18, 344, 739, 44, 388, 386, 524, 500, 468,
-				634, 632, 662, 650, 718, 666, 74, 75, 482, 20, 17, 21, 18, 344, 739, 44, 388, 386, 524, 313, 468, 634,
-				632, 662, 650, 718, 666, 74, 73, 482, 20, 17, 21, 18, 344, 739, 44, 388, 386, 524, 343, 468, 634, 632,
-				662, 650, 718, 666, 74, 1548, 482, 20, 17, 21, 18, 344, 739, 44, 388, 386, 524, 44, 468, 634, 632, 662,
-				650, 718, 666, 74, 1561, 482, 20, 17, 21, 18, 344, 43, 44, 388, 386, 524, 119, 468, 634, 632, 662, 650,
-				718, 666, 93, 482, 20, 17, 21, 18, 344, 43, 44, 388, 386, 524, 110, 468, 634, 632, 662, 650, 718, 666,
-				93, 482, 20, 17, 21, 18, 344, 33, 1563, 482, 20, 17, 21, 18, 344, 43, 39, 482, 20, 17, 21, 18, 344, 43,
-				44, 388, 386, 524, 212, 468, 634, 632, 662, 650, 718, 666, 93, 482, 20, 17, 21, 18, 344, 43, 44, 388,
-				386, 524, 31, 468, 634, 632, 662, 650, 718, 666, 93, 657, 683, 1637, 71, 296, 1352, 157, 1657, 482, 20,
-				17, 21, 18, 344, 43, 38, 482, 20, 17, 21, 18, 344, 43, 44, 388, 386, 524, 202, 468, 634, 632, 662, 650,
-				718, 666, 93, 482, 20, 17, 21, 18, 344, 43, 44, 388, 386, 524, 611, 468, 634, 632, 662, 650, 1178, 344,
-				436, 71, 298, 1562, 1489, 1567, 50, 619, 203, 482, 20, 17, 21, 18, 344, 43, 44, 802, 274, 562, 699, 255,
-				213, 163, 218, 1182, 221, 1462, 223, 224, 229, 1533, 276, 267, 1137, 671, 272, 557, 465, 97, 263, 71,
-				1354, 277, 254, 213, 274, 487, 1691, 520, 264, 656, 218, 1182, 221, 1462, 223, 224, 229, 255, 213, 267,
-				1137, 671, 272, 352, 1285, 641, 1712, 218, 1182, 221, 1462, 223, 224, 229, 513, 228, 1429, 445, 683,
-				549, 189, 179, 292, 1712, 261, 482, 20, 17, 21, 18, 344, 43, 44, 388, 386, 524, 490, 468, 634, 632,
-				1130, 135, 213, 89, 97, 1530, 586, 210, 138, 134, 136, 160, 482, 20, 17, 21, 18, 344, 43, 44, 388, 386,
-				524, 705, 468, 634, 1138, 31, 501, 1354, 292, 1212, 640, 140, 166, 284, 259, 1676, 1261, 292, 144, 147,
-				150, 153, 626, 446, 662, 1691, 458, 274, 1265, 1349, 377, 19, 1603, 219, 1182, 221, 1462, 223, 224, 229,
-				1680, 609, 269, 1137, 671, 272, 218, 1182, 221, 1462, 223, 224, 229, 482, 20, 17, 21, 18, 344, 43, 44,
-				823, 1358, 482, 20, 17, 21, 18, 344, 43, 44, 388, 386, 524, 209, 1011, 482, 20, 17, 21, 18, 344, 43, 44,
-				388, 386, 524, 259, 1082, 1077, 1355, 31, 541, 394, 292, 198, 200, 684, 1691, 582, 688, 661, 1604, 623,
-				1559, 1596, 482, 20, 17, 21, 18, 344, 43, 44, 388, 386, 886, 23, 539, 218, 1182, 221, 1462, 223, 224,
-				229, 482, 20, 17, 21, 18, 344, 43, 37, 490, 1358, 482, 20, 17, 21, 18, 344, 43, 44, 388, 386, 907, 482,
-				20, 17, 21, 18, 344, 43, 44, 388, 928, 482, 20, 17, 21, 18, 344, 43, 44, 388, 949, 253, 199, 200, 232,
-				153, 153, 180, 292, 97, 31, 241, 1518, 365, 20, 17, 21, 18, 344, 43, 36, 1643, 1757, 1757, 277, 135,
-				213, 274, 595, 22, 241, 273, 142, 134, 136, 160, 1348, 246, 1757, 1757, 1757, 570, 267, 1137, 671, 272,
-				365, 20, 17, 21, 18, 344, 43, 36, 1757, 1265, 1757, 141, 166, 1429, 219, 1182, 221, 1462, 223, 224, 229,
-				227, 490, 1757, 247, 482, 20, 17, 21, 18, 344, 43, 36, 482, 20, 17, 21, 18, 344, 43, 35, 116, 482, 20,
-				17, 21, 18, 344, 43, 47, 1757, 413, 1237, 482, 20, 17, 21, 18, 344, 43, 46, 664, 607, 374, 153, 153,
-				413, 274, 482, 20, 17, 21, 18, 344, 43, 45, 1123, 607, 1212, 31, 292, 153, 267, 1137, 671, 272, 31, 31,
-				243, 242, 317, 1123, 163, 1212, 153, 97, 153, 317, 513, 266, 490, 1603, 259, 279, 197, 244, 1547, 1757,
-				1277, 28, 490, 197, 610, 254, 213, 1198, 1256, 259, 245, 87, 295, 1547, 1212, 1277, 1263, 631, 87, 87,
-				1508, 494, 652, 1263, 1426, 135, 213, 1508, 711, 501, 1354, 204, 145, 134, 136, 160, 673, 1256, 135,
-				213, 1169, 181, 1215, 135, 213, 148, 134, 136, 160, 1272, 151, 134, 136, 160, 274, 1265, 1757, 135, 213,
-				163, 1757, 1757, 48, 545, 154, 134, 136, 160, 142, 269, 1137, 671, 272, 607, 607, 614, 1757, 1757, 95,
-				607, 254, 213, 153, 395, 403, 403, 607, 197, 1123, 607, 194, 31, 1757, 197, 513, 1650, 1638, 209, 292,
-				645, 1123, 490, 513, 197, 1757, 634, 297, 278, 231, 1757, 607, 372, 1211, 1355, 259, 445, 97, 372, 1713,
-				1757, 1277, 280, 1757, 87, 1123, 1757, 259, 372, 315, 192, 1673, 87, 1277, 1757, 1757, 192, 1150, 292,
-				292, 342, 205, 1389, 1653, 1212, 938, 193, 1757, 1577, 1653, 1757, 260, 28, 1757, 1757, 1757, 1757,
-				1714, 1198, 1757, 1757, 225, 230, 234, 1757, 1757, 1757, 1449, 1757, 1757, 1757, 328, 1757, 0, 20, 179,
-				0, 1, 1983, 0, 1, 1994, 0 };
-	}
-
-	public final static char baseAction[] = BaseAction.baseAction;
-
-	@Override
-	public final int baseAction(int index) {
-		return baseAction[index];
-	}
-
-	public final static char lhs[] = baseAction;
-
-	@Override
-	public final int lhs(int index) {
-		return lhs[index];
-	}
-
-	public interface TermCheck {
-		public final static byte termCheck[] = { 0, 0, 1, 2, 3, 4, 0, 6, 7, 8, 0, 10, 11, 12, 0, 14, 15, 16, 17, 18, 19,
-				20, 21, 22, 23, 24, 25, 26, 27, 28, 0, 0, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 0, 44, 45, 46,
-				0, 1, 0, 3, 2, 5, 6, 7, 8, 47, 48, 9, 12, 55, 56, 57, 58, 17, 18, 19, 20, 0, 22, 0, 1, 4, 3, 61, 62, 47,
-				48, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 0, 1, 0, 3, 51, 5, 6, 7, 8, 0, 61,
-				62, 12, 0, 1, 0, 3, 17, 18, 19, 20, 0, 22, 2, 0, 4, 13, 53, 54, 0, 9, 31, 32, 33, 34, 35, 36, 37, 38,
-				39, 40, 41, 42, 43, 44, 45, 46, 0, 1, 0, 3, 51, 5, 6, 7, 8, 0, 0, 0, 12, 4, 0, 0, 5, 17, 18, 19, 20, 0,
-				22, 55, 56, 57, 58, 6, 7, 8, 0, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 0, 1, 0,
-				3, 51, 0, 6, 7, 8, 4, 0, 1, 12, 3, 50, 53, 54, 17, 18, 19, 20, 0, 22, 55, 56, 57, 58, 6, 7, 8, 63, 31,
-				32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 0, 44, 45, 46, 0, 65, 6, 7, 8, 0, 1, 0, 12, 9, 0, 53, 54,
-				17, 18, 19, 20, 0, 22, 2, 10, 11, 5, 0, 1, 2, 9, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 0, 1,
-				2, 3, 4, 5, 0, 1, 30, 3, 10, 11, 12, 52, 14, 15, 16, 0, 0, 13, 0, 21, 5, 23, 24, 25, 26, 27, 28, 9, 0,
-				1, 2, 3, 4, 5, 68, 69, 0, 0, 10, 11, 12, 59, 14, 15, 16, 30, 10, 11, 50, 21, 0, 23, 24, 25, 26, 27, 28,
-				0, 0, 1, 2, 3, 4, 5, 14, 0, 0, 0, 10, 11, 5, 13, 14, 15, 16, 0, 10, 11, 50, 21, 5, 23, 24, 25, 26, 27,
-				28, 0, 0, 1, 2, 3, 4, 5, 29, 30, 80, 0, 10, 11, 0, 43, 14, 15, 16, 30, 6, 7, 8, 21, 13, 23, 24, 25, 26,
-				27, 28, 0, 0, 1, 2, 3, 4, 6, 7, 8, 0, 0, 10, 11, 63, 5, 14, 15, 16, 0, 0, 0, 50, 21, 4, 23, 24, 25, 26,
-				27, 28, 0, 1, 2, 3, 4, 0, 1, 0, 3, 30, 10, 11, 0, 13, 14, 15, 16, 0, 6, 7, 8, 21, 51, 23, 24, 25, 26,
-				27, 28, 0, 1, 2, 3, 4, 0, 1, 29, 3, 49, 10, 11, 0, 13, 14, 15, 16, 0, 6, 7, 8, 21, 0, 23, 24, 25, 26,
-				27, 28, 0, 1, 2, 3, 4, 0, 47, 48, 0, 0, 10, 11, 0, 5, 14, 15, 16, 5, 0, 0, 1, 21, 3, 23, 24, 25, 26, 27,
-				28, 0, 1, 2, 3, 4, 0, 47, 48, 0, 0, 10, 11, 29, 5, 14, 15, 16, 0, 1, 0, 3, 21, 43, 23, 24, 25, 26, 27,
-				28, 0, 1, 2, 3, 4, 0, 1, 47, 48, 0, 10, 11, 65, 4, 14, 15, 16, 0, 1, 2, 66, 21, 0, 23, 24, 25, 26, 27,
-				28, 0, 0, 2, 2, 4, 5, 6, 7, 8, 9, 9, 64, 12, 0, 0, 64, 66, 17, 18, 19, 20, 60, 22, 9, 0, 49, 0, 1, 2, 5,
-				30, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 0, 0, 1, 2, 0, 4, 6, 7, 8, 0, 9, 59, 12, 0, 0, 0, 0, 17, 18,
-				19, 20, 0, 22, 14, 0, 52, 43, 6, 7, 8, 0, 0, 60, 12, 4, 0, 0, 13, 17, 18, 19, 20, 0, 22, 13, 29, 0, 0,
-				6, 7, 8, 0, 0, 49, 12, 9, 0, 0, 0, 17, 18, 19, 20, 0, 22, 13, 0, 0, 0, 6, 7, 8, 59, 0, 0, 12, 29, 0, 0,
-				2, 17, 18, 19, 20, 49, 22, 9, 13, 0, 0, 1, 2, 15, 16, 5, 0, 1, 2, 9, 4, 0, 0, 29, 2, 9, 4, 0, 29, 0, 0,
-				9, 60, 0, 13, 0, 0, 0, 0, 0, 30, 0, 13, 13, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static byte termCheck[] = TermCheck.termCheck;
-
-	@Override
-	public final int termCheck(int index) {
-		return termCheck[index];
-	}
-
-	public interface TermAction {
-		public final static char termAction[] = { 0, 1757, 1768, 1546, 1769, 1492, 59, 1971, 1972, 1973, 54, 1381, 1084,
-				1920, 62, 1500, 1020, 673, 1921, 1919, 1974, 1922, 578, 1918, 1770, 1771, 1772, 1773, 1028, 483, 58, 1,
-				1925, 1930, 1929, 1927, 1928, 1926, 1931, 1932, 1924, 1933, 1934, 1935, 63, 1281, 597, 381, 1757, 1,
-				270, 1, 1659, 191, 1, 1, 1, 1402, 1412, 349, 1, 1391, 1361, 545, 470, 1, 1, 1, 1, 48, 1, 1757, 1768,
-				1535, 1769, 1331, 1318, 1402, 1412, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 191, 1, 1, 1, 1757, 1, 253, 1,
-				1953, 190, 1, 1, 1, 182, 1331, 1318, 1, 1757, 1768, 61, 1769, 1, 1, 1, 1, 265, 1, 1422, 183, 1, 1067,
-				1520, 1509, 286, 349, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 190, 1, 1, 1, 1757, 1, 1757, 1, 1953, 191, 1,
-				1, 1, 50, 1757, 1757, 1, 1535, 66, 60, 1761, 1, 1, 1, 1, 1757, 1, 1391, 1361, 545, 470, 1971, 1972,
-				1973, 70, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 191, 1, 1, 1, 1757, 1768, 1757, 1769, 1953, 49, 1971,
-				1972, 1973, 1535, 185, 2783, 1920, 2783, 1760, 1520, 1509, 1921, 1919, 1974, 1922, 248, 1918, 1391,
-				1361, 545, 470, 1971, 1972, 1973, 1245, 1925, 1930, 1929, 1927, 1928, 1926, 1931, 1932, 1924, 1933,
-				1934, 1935, 129, 1281, 597, 381, 1757, 611, 1971, 1972, 1973, 1757, 1995, 72, 1920, 980, 51, 1520, 1509,
-				1921, 1919, 1974, 1922, 1, 1918, 1422, 1308, 1140, 1763, 1, 1983, 1168, 349, 1925, 1930, 1929, 1927,
-				1928, 1926, 1931, 1932, 1924, 1933, 1934, 1935, 1, 1768, 1546, 1769, 1434, 1761, 1757, 1768, 1762, 1769,
-				1381, 1084, 557, 1079, 1500, 1020, 673, 1757, 1757, 1260, 271, 578, 1763, 1770, 1771, 1772, 1773, 1028,
-				483, 349, 1757, 1768, 1546, 1769, 1467, 1761, 1112, 1666, 53, 1757, 1381, 1084, 959, 1056, 1500, 1020,
-				673, 1762, 1308, 1140, 1760, 578, 64, 1770, 1771, 1772, 1773, 1028, 483, 1757, 1, 1768, 1546, 1769,
-				1492, 29, 449, 1757, 52, 67, 1381, 1084, 1763, 2666, 1500, 1020, 673, 1, 1308, 1140, 1760, 578, 90,
-				1770, 1771, 1772, 1773, 1028, 483, 1757, 1757, 1768, 1546, 1769, 1492, 1761, 1432, 1762, 1747, 1757,
-				1381, 1084, 249, 29, 1500, 1020, 673, 90, 1, 1, 1, 578, 2666, 1770, 1771, 1772, 1773, 1028, 483, 250,
-				1757, 1, 1, 1, 1, 1, 1, 1, 1, 1757, 1, 1, 1245, 1763, 1, 1, 1, 1757, 1, 1757, 1760, 1, 253, 1, 1, 1, 1,
-				1, 1, 1, 1768, 1546, 1769, 1492, 184, 2791, 88, 2791, 1762, 1381, 1084, 251, 2666, 1500, 1020, 673, 57,
-				1971, 1972, 1973, 578, 2073, 1770, 1771, 1772, 1773, 1028, 483, 1757, 1768, 1546, 1769, 1492, 206, 2792,
-				639, 2792, 2015, 1381, 1084, 252, 2666, 1500, 1020, 673, 56, 1971, 1972, 1973, 578, 1757, 1770, 1771,
-				1772, 1773, 1028, 483, 1757, 1768, 1546, 1769, 1492, 71, 1402, 1412, 1757, 1757, 1381, 1084, 1757, 1765,
-				1500, 1020, 673, 1767, 55, 208, 1768, 578, 1769, 1770, 1771, 1772, 1773, 1028, 483, 1757, 1768, 1553,
-				1769, 1492, 68, 1402, 1412, 1, 69, 1381, 1084, 1342, 1767, 1500, 1020, 673, 207, 1172, 43, 1172, 578,
-				1764, 1770, 1771, 1772, 1773, 1028, 483, 1, 1768, 1546, 1769, 1492, 1, 1754, 1402, 1412, 1757, 1381,
-				1084, 611, 1170, 1500, 1020, 673, 1, 1983, 1168, 1766, 578, 1757, 1770, 1771, 1772, 1773, 1028, 483, 20,
-				222, 1748, 1660, 1748, 1748, 179, 179, 179, 1748, 349, 1218, 179, 211, 292, 1218, 1766, 179, 179, 179,
-				179, 896, 179, 1036, 285, 2015, 253, 1983, 1168, 376, 1748, 875, 854, 833, 812, 791, 749, 770, 728, 707,
-				686, 130, 262, 1983, 1151, 1, 1, 1971, 1972, 1973, 65, 349, 917, 1920, 201, 1757, 1757, 256, 1921, 1919,
-				1974, 1922, 131, 1918, 449, 42, 1132, 376, 1971, 1972, 1973, 1757, 1757, 1000, 1920, 1430, 1, 1757,
-				2666, 1921, 1919, 1974, 1922, 132, 1918, 622, 1674, 220, 30, 1971, 1972, 1973, 1757, 1757, 2015, 1920,
-				349, 1757, 1757, 1757, 1921, 1919, 1974, 1922, 133, 1918, 1346, 1757, 1757, 1757, 1971, 1972, 1973,
-				1092, 30, 1757, 1920, 417, 32, 207, 1196, 1921, 1919, 1974, 1922, 2014, 1918, 1554, 1431, 1757, 1, 1751,
-				1151, 1783, 1784, 1763, 268, 1983, 1151, 349, 253, 189, 268, 1786, 1422, 349, 253, 1757, 2601, 189, 189,
-				349, 492, 1757, 185, 1757, 1757, 1757, 1757, 1757, 1762, 1757, 184, 206, 1757, 1757, 1757, 1757, 1757,
-				1757, 464, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 374 };
-	}
-
-	public final static char termAction[] = TermAction.termAction;
-
-	@Override
-	public final int termAction(int index) {
-		return termAction[index];
-	}
-
-	public interface Asb {
-		public final static char asb[] = { 0, 375, 1, 54, 41, 54, 54, 54, 54, 54, 54, 54, 54, 54, 334, 3, 23, 20, 27,
-				25, 33, 31, 35, 34, 37, 36, 9, 54, 334, 170, 170, 291, 334, 263, 263, 203, 54, 54, 54, 54, 54, 54, 54,
-				54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 170, 98,
-				295, 48, 233, 168, 167, 266, 278, 96, 278, 96, 96, 278, 96, 278, 348, 124, 170, 45, 20, 20, 25, 25, 25,
-				25, 23, 23, 31, 27, 27, 34, 33, 303, 36, 35, 393, 200, 98, 291, 295, 104, 45, 371, 52, 170, 305, 236,
-				96, 263, 263, 96, 263, 54, 200, 80, 295, 286, 371, 45, 51, 48, 170, 289, 348, 169, 238, 98, 173, 98,
-				222, 80, 286, 286, 54, 54, 45, 52, 233, 298, 297, 295, 238, 170, 98, 173, 222, 222, 224, 101, 286, 371,
-				45, 45, 170, 305, 236, 289, 173, 200, 71, 173, 222, 224, 228, 224, 200, 78, 231, 263, 54, 100, 371, 286,
-				238, 173, 73, 224, 200, 54, 263, 3, 82, 45, 263, 54, 286, 170, 169, 200, 429, 54, 428, 67, 295, 200, 45,
-				264, 73, 54, 67 };
-	}
-
-	public final static char asb[] = Asb.asb;
-
-	@Override
-	public final int asb(int index) {
-		return asb[index];
-	}
-
-	public interface Asr {
-		public final static byte asr[] = { 0, 80, 0, 9, 2, 52, 67, 15, 16, 60, 70, 71, 72, 73, 74, 76, 75, 77, 78, 79,
-				4, 53, 54, 10, 11, 48, 47, 55, 56, 57, 58, 61, 62, 14, 63, 64, 65, 43, 66, 68, 69, 59, 30, 80, 29, 50,
-				5, 0, 6, 7, 8, 12, 50, 5, 23, 24, 25, 26, 3, 15, 16, 14, 10, 11, 27, 28, 21, 4, 2, 1, 0, 66, 5, 4, 1, 2,
-				59, 0, 5, 43, 9, 52, 15, 16, 14, 4, 10, 11, 27, 28, 21, 2, 23, 24, 25, 26, 1, 3, 13, 0, 60, 9, 52, 0, 6,
-				7, 8, 2, 23, 24, 25, 26, 1, 3, 15, 16, 14, 4, 10, 11, 27, 28, 21, 0, 7, 12, 22, 8, 20, 19, 18, 6, 17,
-				52, 67, 15, 16, 14, 10, 11, 53, 54, 47, 48, 55, 56, 57, 58, 61, 62, 63, 64, 65, 68, 69, 60, 70, 71, 72,
-				73, 74, 75, 76, 77, 78, 79, 4, 2, 9, 29, 30, 5, 0, 17, 31, 6, 32, 44, 18, 33, 19, 34, 35, 20, 7, 36, 37,
-				12, 45, 22, 46, 38, 39, 8, 40, 41, 42, 1, 3, 51, 5, 43, 0, 5, 30, 21, 23, 24, 25, 26, 1, 3, 2, 15, 16,
-				14, 4, 10, 11, 27, 28, 0, 1, 3, 5, 43, 29, 0, 5, 29, 43, 60, 0, 4, 2, 9, 30, 5, 17, 31, 6, 32, 44, 18,
-				33, 19, 34, 35, 20, 7, 36, 37, 12, 45, 22, 46, 38, 39, 8, 40, 41, 42, 49, 3, 1, 0, 39, 31, 36, 34, 35,
-				33, 32, 37, 38, 40, 41, 42, 59, 66, 22, 18, 12, 17, 20, 19, 6, 7, 8, 29, 1, 5, 30, 2, 9, 4, 0, 2, 5, 29,
-				30, 66, 9, 59, 0, 4, 17, 31, 6, 32, 44, 18, 33, 19, 34, 35, 20, 7, 36, 37, 12, 45, 22, 46, 38, 39, 8,
-				40, 41, 42, 1, 3, 49, 0, 21, 23, 24, 25, 26, 2, 15, 16, 14, 4, 10, 11, 27, 28, 1, 3, 44, 45, 46, 39, 31,
-				36, 34, 35, 33, 32, 37, 38, 40, 41, 42, 22, 18, 12, 17, 20, 19, 6, 7, 8, 0, 21, 23, 24, 25, 26, 1, 3, 2,
-				15, 16, 14, 4, 10, 11, 27, 28, 51, 0, 14, 4, 10, 11, 53, 54, 47, 48, 55, 56, 57, 58, 61, 62, 63, 64, 65,
-				68, 69, 60, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 50, 30, 43, 80, 13, 59, 66, 5, 29, 0 };
-	}
-
-	public final static byte asr[] = Asr.asr;
-
-	@Override
-	public final int asr(int index) {
-		return asr[index];
-	}
-
-	public interface Nasb {
-		public final static byte nasb[] = { 0, 117, 41, 23, 41, 23, 23, 23, 23, 23, 23, 23, 23, 23, 97, 41, 41, 41, 41,
-				41, 41, 41, 41, 41, 41, 41, 41, 23, 97, 121, 121, 85, 1, 18, 18, 59, 98, 23, 23, 23, 23, 23, 23, 23, 23,
-				23, 23, 23, 23, 23, 23, 23, 23, 98, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 121, 94, 72, 11,
-				84, 44, 44, 67, 68, 29, 68, 82, 82, 68, 81, 68, 62, 41, 121, 13, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
-				41, 41, 41, 41, 41, 41, 94, 55, 41, 101, 41, 31, 13, 57, 12, 121, 89, 120, 7, 7, 7, 7, 7, 23, 70, 55,
-				41, 79, 57, 13, 12, 27, 121, 51, 34, 41, 91, 46, 55, 41, 55, 21, 79, 55, 23, 23, 13, 12, 50, 44, 44, 72,
-				91, 121, 41, 105, 55, 7, 48, 9, 55, 57, 13, 13, 121, 89, 120, 75, 55, 70, 15, 113, 7, 48, 41, 41, 70,
-				20, 41, 7, 23, 25, 57, 27, 109, 105, 53, 48, 70, 23, 7, 42, 22, 13, 7, 23, 27, 121, 121, 70, 16, 23, 41,
-				53, 72, 70, 13, 41, 53, 23, 77 };
-	}
-
-	public final static byte nasb[] = Nasb.nasb;
-
-	@Override
-	public final int nasb(int index) {
-		return nasb[index];
-	}
-
-	public interface Nasr {
-		public final static char nasr[] = { 0, 78, 76, 75, 65, 74, 73, 1, 0, 98, 0, 11, 5, 24, 0, 11, 69, 0, 70, 0, 86,
-				11, 52, 5, 0, 100, 0, 21, 0, 89, 0, 5, 11, 0, 78, 77, 76, 75, 65, 74, 73, 0, 96, 0, 26, 0, 90, 0, 59, 0,
-				23, 43, 42, 35, 33, 11, 0, 56, 0, 11, 88, 0, 65, 60, 61, 62, 63, 53, 28, 0, 39, 0, 27, 50, 0, 43, 42,
-				35, 33, 27, 0, 92, 66, 0, 23, 42, 43, 11, 0, 27, 50, 11, 25, 0, 52, 46, 0, 49, 11, 45, 0, 43, 42, 27, 0,
-				80, 11, 49, 0, 93, 11, 25, 0, 11, 49, 67, 0, 11, 87, 0, 11, 23, 0 };
-	}
-
-	public final static char nasr[] = Nasr.nasr;
-
-	@Override
-	public final int nasr(int index) {
-		return nasr[index];
-	}
-
-	public interface TerminalIndex {
-		public final static char terminalIndex[] = { 0, 85, 2, 86, 9, 87, 48, 64, 76, 1, 10, 11, 69, 3, 8, 6, 7, 44, 55,
-				60, 63, 68, 72, 81, 82, 83, 84, 12, 13, 42, 90, 47, 52, 56, 61, 62, 66, 67, 74, 75, 78, 79, 80, 91, 54,
-				70, 73, 16, 17, 30, 89, 93, 4, 14, 15, 18, 19, 20, 21, 29, 31, 22, 23, 24, 25, 26, 92, 5, 27, 28, 32,
-				33, 34, 35, 36, 37, 38, 39, 40, 41, 94, 45, 46, 49, 50, 51, 53, 57, 58, 59, 65, 71, 77, 88 };
-	}
-
-	public final static char terminalIndex[] = TerminalIndex.terminalIndex;
-
-	@Override
-	public final int terminalIndex(int index) {
-		return terminalIndex[index];
-	}
-
-	public interface NonterminalIndex {
-		public final static char nonterminalIndex[] = { 0, 100, 0, 0, 0, 102, 106, 107, 108, 109, 110, 0, 111, 112, 113,
-				114, 115, 116, 117, 0, 118, 128, 0, 97, 96, 121, 149, 0, 127, 0, 0, 0, 145, 147, 0, 148, 0, 0, 0, 98, 0,
-				158, 159, 160, 0, 101, 105, 120, 136, 140, 146, 155, 0, 130, 0, 150, 153, 154, 157, 0, 131, 132, 133,
-				134, 135, 137, 0, 139, 144, 99, 103, 104, 119, 122, 123, 124, 125, 126, 129, 0, 138, 142, 0, 0, 143,
-				152, 162, 95, 0, 0, 0, 141, 0, 151, 156, 161, 0, 163, 164, 0, 165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
-
-	@Override
-	public final int nonterminalIndex(int index) {
-		return nonterminalIndex[index];
-	}
-
-	public interface ScopePrefix {
-		public final static char scopePrefix[] = { 82, 113, 92, 35, 41, 121, 12, 136, 21, 51, 69, 28, 47, 103, 152, 162,
-				166, 145, 1, 1, 32, 56, 79, 170, 6, 107, 156, 127, 99, 59, 59, 59 };
-	}
-
-	public final static char scopePrefix[] = ScopePrefix.scopePrefix;
-
-	@Override
-	public final int scopePrefix(int index) {
-		return scopePrefix[index];
-	}
-
-	public interface ScopeSuffix {
-		public final static char scopeSuffix[] = { 90, 90, 90, 4, 4, 90, 18, 142, 26, 4, 26, 26, 4, 101, 26, 26, 4, 149,
-				4, 4, 26, 4, 26, 26, 9, 110, 159, 130, 101, 66, 61, 74 };
-	}
-
-	public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
-
-	@Override
-	public final int scopeSuffix(int index) {
-		return scopeSuffix[index];
-	}
-
-	public interface ScopeLhs {
-		public final static char scopeLhs[] = { 62, 60, 62, 26, 26, 60, 46, 108, 44, 26, 38, 44, 26, 67, 6, 5, 5, 19,
-				100, 99, 42, 26, 35, 3, 86, 67, 5, 109, 67, 38, 36, 38 };
-	}
-
-	public final static char scopeLhs[] = ScopeLhs.scopeLhs;
-
-	@Override
-	public final int scopeLhs(int index) {
-		return scopeLhs[index];
-	}
-
-	public interface ScopeLa {
-		public final static byte scopeLa[] = { 43, 43, 43, 50, 50, 43, 43, 86, 30, 50, 30, 30, 50, 66, 30, 30, 50, 59,
-				50, 50, 30, 50, 30, 30, 60, 1, 30, 92, 66, 2, 2, 2 };
-	}
-
-	public final static byte scopeLa[] = ScopeLa.scopeLa;
-
-	@Override
-	public final int scopeLa(int index) {
-		return scopeLa[index];
-	}
-
-	public interface ScopeStateSet {
-		public final static byte scopeStateSet[] = { 23, 23, 23, 27, 27, 23, 17, -1, 31, 27, 9, 31, 27, 5, 38, 38, 38,
-				67, 1, 3, 31, 27, 9, 38, 93, 5, 38, -1, 5, 9, 9, 9 };
-	}
-
-	public final static byte scopeStateSet[] = ScopeStateSet.scopeStateSet;
-
-	@Override
-	public final int scopeStateSet(int index) {
-		return scopeStateSet[index];
-	}
-
-	public interface ScopeRhs {
-		public final static char scopeRhs[] = { 0, 140, 9, 0, 96, 0, 190, 104, 0, 31, 135, 0, 152, 188, 104, 13, 145, 0,
-				98, 0, 0, 148, 104, 2, 135, 0, 97, 0, 148, 104, 2, 0, 151, 2, 0, 113, 12, 178, 104, 9, 0, 113, 178, 104,
-				12, 9, 0, 113, 12, 9, 0, 113, 178, 104, 9, 0, 113, 9, 0, 128, 0, 2, 0, 151, 97, 0, 2, 97, 0, 148, 104,
-				2, 128, 0, 2, 0, 150, 97, 0, 141, 2, 0, 152, 176, 104, 13, 94, 185, 44, 0, 98, 0, 152, 176, 104, 13,
-				185, 44, 0, 142, 0, 99, 0, 184, 104, 142, 0, 104, 142, 0, 141, 99, 0, 172, 104, 13, 183, 94, 182, 158,
-				0, 172, 104, 13, 182, 158, 0, 197, 85, 0, 77, 2, 101, 97, 99, 0, 197, 116, 138, 2, 89, 0, 53, 0, 0, 138,
-				69, 111, 0, 29, 118, 0, 164, 2, 21, 0, 164, 2, 0, 97, 105, 0, 181, 2, 98, 0, 138, 9, 98, 0, 138, 2, 0 };
-	}
-
-	public final static char scopeRhs[] = ScopeRhs.scopeRhs;
-
-	@Override
-	public final int scopeRhs(int index) {
-		return scopeRhs[index];
-	}
-
-	public interface ScopeState {
-		public final static char scopeState[] = { 0, 443, 0, 341, 0, 1643, 1653, 1637, 0, 1449, 1342, 1168, 1269, 1256,
-				1151, 1123, 0, 492, 417, 396, 1680, 1530, 0, 607, 1213, 317, 0, 1462, 1182, 1137, 671, 1256, 1151, 1123,
-				1603, 1422, 1508, 0, 1467, 1434, 611, 1112, 1245, 1218, 1331, 1318, 449, 1412, 1402, 1391, 1361, 545,
-				470, 1535, 1520, 1509, 1308, 1140, 1020, 673, 1500, 1492, 1381, 1084, 1028, 483, 578, 1092, 1056, 1036,
-				492, 1000, 980, 959, 938, 586, 917, 557, 349, 896, 875, 854, 833, 812, 791, 770, 749, 728, 707, 686,
-				317, 639, 513, 417, 396, 0 };
-	}
-
-	public final static char scopeState[] = ScopeState.scopeState;
-
-	@Override
-	public final int scopeState(int index) {
-		return scopeState[index];
-	}
-
-	public interface InSymb {
-		public final static char inSymb[] = { 0, 0, 180, 104, 165, 21, 28, 27, 11, 10, 4, 14, 16, 15, 2, 98, 102, 101,
-				105, 103, 107, 106, 109, 108, 111, 110, 99, 29, 2, 164, 138, 142, 104, 67, 52, 2, 9, 11, 10, 54, 53, 4,
-				58, 57, 56, 55, 47, 48, 14, 62, 61, 64, 63, 69, 68, 65, 79, 78, 77, 75, 76, 74, 73, 72, 71, 70, 60, 164,
-				116, 104, 9, 2, 136, 135, 166, 167, 158, 168, 46, 45, 169, 44, 170, 171, 94, 181, 138, 101, 101, 103,
-				103, 103, 103, 102, 102, 106, 105, 105, 108, 107, 138, 110, 109, 116, 13, 145, 143, 120, 12, 113, 104,
-				4, 151, 104, 2, 182, 159, 159, 185, 159, 59, 104, 13, 120, 4, 104, 113, 178, 149, 148, 118, 104, 150,
-				104, 94, 13, 94, 13, 104, 4, 120, 178, 12, 113, 4, 2, 126, 128, 104, 29, 148, 183, 104, 13, 104, 188,
-				104, 120, 104, 113, 113, 141, 104, 2, 143, 13, 172, 142, 173, 104, 176, 94, 177, 152, 29, 190, 52, 9,
-				191, 104, 149, 104, 104, 104, 176, 152, 60, 29, 132, 60, 140, 52, 9, 149, 148, 186, 172, 184, 59, 141,
-				2, 104, 152, 140, 29, 29, 59, 143 };
-	}
-
-	public final static char inSymb[] = InSymb.inSymb;
-
-	@Override
-	public final int inSymb(int index) {
-		return inSymb[index];
-	}
-
-	public interface Name {
-		public final static String name[] = { "", "[", "(", "{", ".", "->", "++", "--", "&", "*", "+", "-", "~", "!",
-				"/", "%", ">>", "<<", "<", ">", "<=", ">=", "==", "!=", "^", "|", "&&", "||", "?", ":", "...", "=",
-				"*=", "/=", "%=", "+=", "-=", ">>=", "<<=", "&=", "^=", "|=", ",", "$empty", "auto", "break", "case",
-				"char", "const", "continue", "default", "do", "double", "else", "enum", "extern", "float", "for",
-				"goto", "if", "inline", "int", "long", "register", "restrict", "return", "short", "signed", "sizeof",
-				"static", "struct", "switch", "typedef", "union", "unsigned", "void", "volatile", "while", "_Bool",
-				"_Complex", "_Imaginary", "integer", "floating", "charconst", "stringlit", "identifier", "Completion",
-				"EndOfCompletion", "Invalid", "RightBracket", "RightParen", "RightBrace", "SemiColon", "ERROR_TOKEN",
-				"EOF_TOKEN", "no_cast_start", "]", ")", "}", ";", "identifier_token", "expression",
-				"postfix_expression", "member_name", "type_id", "initializer_list", "unary_expression",
-				"cast_expression", "multiplicative_expression", "additive_expression", "shift_expression",
-				"relational_expression", "equality_expression", "and_expression", "exclusive_or_expression",
-				"inclusive_or_expression", "logical_and_expression", "logical_or_expression", "assignment_expression",
-				"expression_list_actual", "constant_expression", "declaration_specifiers",
-				"simple_declaration_specifiers", "struct_or_union_declaration_sp" + "ecifiers",
-				"elaborated_declaration_specifi" + "ers", "enum_declaration_specifiers",
-				"typdef_name_declaration_specif" + "iers", "no_type_declaration_specifier", "type_qualifier",
-				"no_type_declaration_specifiers", "simple_type_specifier", "struct_or_union_specifier",
-				"elaborated_specifier", "enum_specifier", "type_name_specifier", "initializer", "declarator",
-				"struct_or_union", "struct_declaration_list", "struct_declaration", "specifier_qualifier_list",
-				"struct_declarator_list", "complete_struct_declarator", "enumerator_list", "enumerator",
-				"direct_declarator", "pointer_seq", "array_direct_declarator", "basic_direct_declarator",
-				"array_modifier", "parameter_type_list", "identifier_list", "array_modifier_type_qualifiers",
-				"type_qualifier_list", "parameter_list", "parameter_declaration", "complete_parameter_declarator",
-				"abstract_declarator", "direct_abstract_declarator", "basic_direct_abstract_declarat" + "or",
-				"array_direct_abstract_declarat" + "or", "initializer_seq", "designated_initializer", "designation",
-				"designator_list", "designator" };
-	}
-
-	public final static String name[] = Name.name;
-
-	@Override
-	public final String name(int index) {
-		return name[index];
-	}
-
-	public final static int ERROR_SYMBOL = 51, SCOPE_UBOUND = 31, SCOPE_SIZE = 32, MAX_NAME_LENGTH = 38;
-
-	@Override
-	public final int getErrorSymbol() {
-		return ERROR_SYMBOL;
-	}
-
-	@Override
-	public final int getScopeUbound() {
-		return SCOPE_UBOUND;
-	}
-
-	@Override
-	public final int getScopeSize() {
-		return SCOPE_SIZE;
-	}
-
-	@Override
-	public final int getMaxNameLength() {
-		return MAX_NAME_LENGTH;
-	}
-
-	public final static int NUM_STATES = 207, NT_OFFSET = 93, LA_STATE_OFFSET = 2073, MAX_LA = 2, NUM_RULES = 316,
-			NUM_NONTERMINALS = 126, NUM_SYMBOLS = 219, SEGMENT_SIZE = 8192, START_STATE = 1658, IDENTIFIER_SYMBOL = 0,
-			EOFT_SYMBOL = 80, EOLT_SYMBOL = 80, ACCEPT_ACTION = 1747, ERROR_ACTION = 1757;
-
-	public final static boolean BACKTRACK = true;
-
-	@Override
-	public final int getNumStates() {
-		return NUM_STATES;
-	}
-
-	@Override
-	public final int getNtOffset() {
-		return NT_OFFSET;
-	}
-
-	@Override
-	public final int getLaStateOffset() {
-		return LA_STATE_OFFSET;
-	}
-
-	@Override
-	public final int getMaxLa() {
-		return MAX_LA;
-	}
-
-	@Override
-	public final int getNumRules() {
-		return NUM_RULES;
-	}
-
-	@Override
-	public final int getNumNonterminals() {
-		return NUM_NONTERMINALS;
-	}
-
-	@Override
-	public final int getNumSymbols() {
-		return NUM_SYMBOLS;
-	}
-
-	@Override
-	public final int getSegmentSize() {
-		return SEGMENT_SIZE;
-	}
-
-	@Override
-	public final int getStartState() {
-		return START_STATE;
-	}
-
-	@Override
-	public final int getStartSymbol() {
-		return lhs[0];
-	}
-
-	public final int getIdentifierSymbol() {
-		return IDENTIFIER_SYMBOL;
-	}
-
-	@Override
-	public final int getEoftSymbol() {
-		return EOFT_SYMBOL;
-	}
-
-	@Override
-	public final int getEoltSymbol() {
-		return EOLT_SYMBOL;
-	}
-
-	@Override
-	public final int getAcceptAction() {
-		return ACCEPT_ACTION;
-	}
-
-	@Override
-	public final int getErrorAction() {
-		return ERROR_ACTION;
-	}
-
-	@Override
-	public final boolean isValidForParser() {
-		return isValidForParser;
-	}
-
-	@Override
-	public final boolean getBacktrack() {
-		return BACKTRACK;
-	}
-
-	@Override
-	public final int originalState(int state) {
-		return -baseCheck[state];
-	}
-
-	@Override
-	public final int asi(int state) {
-		return asb[originalState(state)];
-	}
-
-	@Override
-	public final int nasi(int state) {
-		return nasb[originalState(state)];
-	}
-
-	@Override
-	public final int inSymbol(int state) {
-		return inSymb[originalState(state)];
-	}
-
-	@Override
-	public final int ntAction(int state, int sym) {
-		return baseAction[state + sym];
-	}
-
-	@Override
-	public final int tAction(int state, int sym) {
-		int i = baseAction[state], k = i + sym;
-		return termAction[termCheck[k] == sym ? k : i];
-	}
-
-	@Override
-	public final int lookAhead(int la_state, int sym) {
-		int k = la_state + sym;
-		return termAction[termCheck[k] == sym ? k : la_state];
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParsersym.java
deleted file mode 100644
index 28afc21..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParsersym.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2010 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.lrparser.c99;
-
-public interface C99NoCastExpressionParsersym {
-	public final static int TK_auto = 17, TK_break = 81, TK_case = 82, TK_char = 31, TK_const = 6, TK_continue = 83,
-			TK_default = 84, TK_do = 85, TK_double = 32, TK_else = 86, TK_enum = 44, TK_extern = 18, TK_float = 33,
-			TK_for = 87, TK_goto = 88, TK_if = 89, TK_inline = 19, TK_int = 34, TK_long = 35, TK_register = 20,
-			TK_restrict = 7, TK_return = 90, TK_short = 36, TK_signed = 37, TK_sizeof = 21, TK_static = 12,
-			TK_struct = 45, TK_switch = 91, TK_typedef = 22, TK_union = 46, TK_unsigned = 38, TK_void = 39,
-			TK_volatile = 8, TK_while = 92, TK__Bool = 40, TK__Complex = 41, TK__Imaginary = 42, TK_integer = 23,
-			TK_floating = 24, TK_charconst = 25, TK_stringlit = 26, TK_identifier = 1, TK_Completion = 3,
-			TK_EndOfCompletion = 5, TK_Invalid = 93, TK_LeftBracket = 9, TK_LeftParen = 2, TK_LeftBrace = 13,
-			TK_Dot = 52, TK_Arrow = 67, TK_PlusPlus = 15, TK_MinusMinus = 16, TK_And = 14, TK_Star = 4, TK_Plus = 10,
-			TK_Minus = 11, TK_Tilde = 27, TK_Bang = 28, TK_Slash = 53, TK_Percent = 54, TK_RightShift = 47,
-			TK_LeftShift = 48, TK_LT = 55, TK_GT = 56, TK_LE = 57, TK_GE = 58, TK_EQ = 61, TK_NE = 62, TK_Caret = 63,
-			TK_Or = 64, TK_AndAnd = 65, TK_OrOr = 68, TK_Question = 69, TK_Colon = 59, TK_DotDotDot = 49,
-			TK_Assign = 60, TK_StarAssign = 70, TK_SlashAssign = 71, TK_PercentAssign = 72, TK_PlusAssign = 73,
-			TK_MinusAssign = 74, TK_RightShiftAssign = 75, TK_LeftShiftAssign = 76, TK_AndAssign = 77,
-			TK_CaretAssign = 78, TK_OrAssign = 79, TK_Comma = 29, TK_RightBracket = 50, TK_RightParen = 30,
-			TK_RightBrace = 43, TK_SemiColon = 66, TK_ERROR_TOKEN = 51, TK_EOF_TOKEN = 80;
-
-	public final static String orderedTerminalSymbols[] = { "", "identifier", "LeftParen", "Completion", "Star",
-			"EndOfCompletion", "const", "restrict", "volatile", "LeftBracket", "Plus", "Minus", "static", "LeftBrace",
-			"And", "PlusPlus", "MinusMinus", "auto", "extern", "inline", "register", "sizeof", "typedef", "integer",
-			"floating", "charconst", "stringlit", "Tilde", "Bang", "Comma", "RightParen", "char", "double", "float",
-			"int", "long", "short", "signed", "unsigned", "void", "_Bool", "_Complex", "_Imaginary", "RightBrace",
-			"enum", "struct", "union", "RightShift", "LeftShift", "DotDotDot", "RightBracket", "ERROR_TOKEN", "Dot",
-			"Slash", "Percent", "LT", "GT", "LE", "GE", "Colon", "Assign", "EQ", "NE", "Caret", "Or", "AndAnd",
-			"SemiColon", "Arrow", "OrOr", "Question", "StarAssign", "SlashAssign", "PercentAssign", "PlusAssign",
-			"MinusAssign", "RightShiftAssign", "LeftShiftAssign", "AndAssign", "CaretAssign", "OrAssign", "EOF_TOKEN",
-			"break", "case", "continue", "default", "do", "else", "for", "goto", "if", "return", "switch", "while",
-			"Invalid" };
-
-	public final static boolean isValidForParser = true;
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parser.java
deleted file mode 100644
index 9732b5a..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parser.java
+++ /dev/null
@@ -1,1654 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2015 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.lrparser.c99;
-
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.cdt.core.dom.ast.IASTBinaryExpression;
-import org.eclipse.cdt.core.dom.ast.IASTCastExpression;
-import org.eclipse.cdt.core.dom.ast.IASTCompletionNode;
-import org.eclipse.cdt.core.dom.ast.IASTCompositeTypeSpecifier;
-import org.eclipse.cdt.core.dom.ast.IASTElaboratedTypeSpecifier;
-import org.eclipse.cdt.core.dom.ast.IASTLiteralExpression;
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.ast.IASTTypeIdExpression;
-import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression;
-import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter;
-import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
-import org.eclipse.cdt.core.dom.lrparser.IParser;
-import org.eclipse.cdt.core.dom.lrparser.ITokenCollector;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
-import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
-import org.eclipse.cdt.core.dom.lrparser.action.c99.C99BuildASTParserAction;
-import org.eclipse.cdt.core.dom.lrparser.action.c99.C99SecondaryParserFactory;
-import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser;
-import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
-import org.eclipse.cdt.core.index.IIndex;
-import org.eclipse.cdt.core.parser.IScanner;
-import org.eclipse.cdt.internal.core.dom.parser.c.CNodeFactory;
-
-import lpg.lpgjavaruntime.BadParseException;
-import lpg.lpgjavaruntime.BadParseSymFileException;
-import lpg.lpgjavaruntime.DiagnoseParser;
-import lpg.lpgjavaruntime.ErrorToken;
-import lpg.lpgjavaruntime.IToken;
-import lpg.lpgjavaruntime.LexStream;
-import lpg.lpgjavaruntime.Monitor;
-import lpg.lpgjavaruntime.NotBacktrackParseTableException;
-import lpg.lpgjavaruntime.NullExportedSymbolsException;
-import lpg.lpgjavaruntime.NullTerminalSymbolsException;
-import lpg.lpgjavaruntime.ParseErrorCodes;
-import lpg.lpgjavaruntime.ParseTable;
-import lpg.lpgjavaruntime.PrsStream;
-import lpg.lpgjavaruntime.RuleAction;
-import lpg.lpgjavaruntime.UndefinedEofSymbolException;
-import lpg.lpgjavaruntime.UnimplementedTerminalsException;
-
-public class C99Parser extends PrsStream
-		implements RuleAction, ITokenStream, ITokenCollector, IParser<IASTTranslationUnit>
-
-{
-	private static ParseTable prs = new C99Parserprs();
-	private FixedBacktrackingParser btParser;
-
-	public FixedBacktrackingParser getParser() {
-		return btParser;
-	}
-
-	private void setResult(Object object) {
-		btParser.setSym1(object);
-	}
-
-	public Object getRhsSym(int i) {
-		return btParser.getSym(i);
-	}
-
-	public int getRhsTokenIndex(int i) {
-		return btParser.getToken(i);
-	}
-
-	public IToken getRhsIToken(int i) {
-		return super.getIToken(getRhsTokenIndex(i));
-	}
-
-	public int getRhsFirstTokenIndex(int i) {
-		return btParser.getFirstToken(i);
-	}
-
-	public IToken getRhsFirstIToken(int i) {
-		return super.getIToken(getRhsFirstTokenIndex(i));
-	}
-
-	public int getRhsLastTokenIndex(int i) {
-		return btParser.getLastToken(i);
-	}
-
-	public IToken getRhsLastIToken(int i) {
-		return super.getIToken(getRhsLastTokenIndex(i));
-	}
-
-	public int getLeftSpan() {
-		return btParser.getFirstToken();
-	}
-
-	@Override
-	public IToken getLeftIToken() {
-		return super.getIToken(getLeftSpan());
-	}
-
-	public int getRightSpan() {
-		return btParser.getLastToken();
-	}
-
-	@Override
-	public IToken getRightIToken() {
-		return super.getIToken(getRightSpan());
-	}
-
-	public int getRhsErrorTokenIndex(int i) {
-		int index = btParser.getToken(i);
-		IToken err = super.getIToken(index);
-		return (err instanceof ErrorToken ? index : 0);
-	}
-
-	public ErrorToken getRhsErrorIToken(int i) {
-		int index = btParser.getToken(i);
-		IToken err = super.getIToken(index);
-		return (ErrorToken) (err instanceof ErrorToken ? err : null);
-	}
-
-	public C99Parser(LexStream lexStream) {
-		super(lexStream);
-
-		try {
-			super.remapTerminalSymbols(orderedTerminalSymbols(), C99Parserprs.EOFT_SYMBOL);
-		} catch (NullExportedSymbolsException e) {
-		} catch (NullTerminalSymbolsException e) {
-		} catch (UnimplementedTerminalsException e) {
-			java.util.ArrayList unimplemented_symbols = e.getSymbols();
-			System.out.println("The Lexer will not scan the following token(s):");
-			for (int i = 0; i < unimplemented_symbols.size(); i++) {
-				Integer id = (Integer) unimplemented_symbols.get(i);
-				System.out.println("    " + C99Parsersym.orderedTerminalSymbols[id.intValue()]);
-			}
-			System.out.println();
-		} catch (UndefinedEofSymbolException e) {
-			throw new Error(new UndefinedEofSymbolException("The Lexer does not implement the Eof symbol "
-					+ C99Parsersym.orderedTerminalSymbols[C99Parserprs.EOFT_SYMBOL]));
-		}
-	}
-
-	@Override
-	public String[] orderedTerminalSymbols() {
-		return C99Parsersym.orderedTerminalSymbols;
-	}
-
-	public String getTokenKindName(int kind) {
-		return C99Parsersym.orderedTerminalSymbols[kind];
-	}
-
-	public int getEOFTokenKind() {
-		return C99Parserprs.EOFT_SYMBOL;
-	}
-
-	public PrsStream getParseStream() {
-		return this;
-	}
-
-	//
-	// Report error message for given error_token.
-	//
-	public final void reportErrorTokenMessage(int error_token, String msg) {
-		int firsttok = super.getFirstErrorToken(error_token), lasttok = super.getLastErrorToken(error_token);
-		String location = super.getFileName() + ':'
-				+ (firsttok > lasttok ? (super.getEndLine(lasttok) + ":" + super.getEndColumn(lasttok))
-						: (super.getLine(error_token) + ":" + super.getColumn(error_token) + ":"
-								+ super.getEndLine(error_token) + ":" + super.getEndColumn(error_token)))
-				+ ": ";
-		super.reportError((firsttok > lasttok ? ParseErrorCodes.INSERTION_CODE : ParseErrorCodes.SUBSTITUTION_CODE),
-				location, msg);
-	}
-
-	public void parser() {
-		parser(null, 0);
-	}
-
-	public void parser(Monitor monitor) {
-		parser(monitor, 0);
-	}
-
-	public void parser(int error_repair_count) {
-		parser(null, error_repair_count);
-	}
-
-	public void parser(Monitor monitor, int error_repair_count) {
-		try {
-			btParser = new FixedBacktrackingParser(monitor, this, prs, this);
-		} catch (NotBacktrackParseTableException e) {
-			throw new Error(new NotBacktrackParseTableException("Regenerate C99Parserprs.java with -BACKTRACK option"));
-		} catch (BadParseSymFileException e) {
-			throw new Error(new BadParseSymFileException("Bad Parser Symbol File -- C99Parsersym.java"));
-		}
-
-		try {
-			btParser.parse(error_repair_count);
-		} catch (BadParseException e) {
-			reset(e.error_token); // point to error token
-			DiagnoseParser diagnoseParser = new DiagnoseParser(this, prs);
-			diagnoseParser.diagnose(e.error_token);
-		}
-	}
-
-	private C99BuildASTParserAction action;
-	private IASTCompletionNode compNode;
-
-	public C99Parser(IScanner scanner, IDOMTokenMap tokenMap, IBuiltinBindingsProvider builtinBindingsProvider,
-			IIndex index, Map<String, String> properties) {
-		initActions(properties);
-		action.initializeTranslationUnit(scanner, builtinBindingsProvider, index);
-		CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap);
-	}
-
-	private void initActions(Map<String, String> properties) {
-		ScopedStack<Object> astStack = new ScopedStack<>();
-
-		action = new C99BuildASTParserAction(this, astStack, CNodeFactory.getDefault(),
-				C99SecondaryParserFactory.getDefault());
-		action.setParserProperties(properties);
-
-	}
-
-	@Override
-	public void addToken(IToken token) {
-		token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called?
-		super.addToken(token);
-	}
-
-	@Override
-	public IASTTranslationUnit parse() {
-		// this has to be done, or... kaboom!
-		setStreamLength(getSize());
-
-		final int errorRepairCount = -1; // -1 means full error handling
-		parser(null, errorRepairCount); // do the actual parse
-		super.resetTokenStream(); // allow tokens to be garbage collected
-
-		compNode = action.getASTCompletionNode(); // the completion node may be null
-		return (IASTTranslationUnit) action.getParseResult();
-	}
-
-	@Override
-	public IASTCompletionNode getCompletionNode() {
-		return compNode;
-	}
-
-	// uncomment this method to use with backtracking parser
-	@Override
-	public List<IToken> getRuleTokens() {
-		return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
-	}
-
-	@Override
-	public String[] getOrderedTerminalSymbols() {
-		return C99Parsersym.orderedTerminalSymbols;
-	}
-
-	@Override
-	@SuppressWarnings("nls")
-	public String getName() {
-		return "C99Parser";
-	}
-
-	@Override
-	public void ruleAction(int ruleNumber) {
-		switch (ruleNumber) {
-
-		//
-		// Rule 1:  <openscope-ast> ::= $Empty
-		//
-		case 1: {
-			action.openASTScope();
-			break;
-		}
-
-		//
-		// Rule 2:  <empty> ::= $Empty
-		//
-		case 2: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 13:  literal ::= integer
-		//
-		case 13: {
-			action.consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant);
-			break;
-		}
-
-		//
-		// Rule 14:  literal ::= floating
-		//
-		case 14: {
-			action.consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant);
-			break;
-		}
-
-		//
-		// Rule 15:  literal ::= charconst
-		//
-		case 15: {
-			action.consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant);
-			break;
-		}
-
-		//
-		// Rule 16:  literal ::= stringlit
-		//
-		case 16: {
-			action.consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal);
-			break;
-		}
-
-		//
-		// Rule 18:  primary_expression ::= primary_expression_id
-		//
-		case 18: {
-			action.consumeExpressionID();
-			break;
-		}
-
-		//
-		// Rule 19:  primary_expression ::= ( expression )
-		//
-		case 19: {
-			action.consumeExpressionBracketed();
-			break;
-		}
-
-		//
-		// Rule 22:  postfix_expression ::= postfix_expression [ expression ]
-		//
-		case 22: {
-			action.consumeExpressionArraySubscript();
-			break;
-		}
-
-		//
-		// Rule 23:  postfix_expression ::= postfix_expression ( expression_list_opt )
-		//
-		case 23: {
-			action.consumeExpressionFunctionCall();
-			break;
-		}
-
-		//
-		// Rule 24:  postfix_expression ::= postfix_expression . member_name
-		//
-		case 24: {
-			action.consumeExpressionFieldReference(false);
-			break;
-		}
-
-		//
-		// Rule 25:  postfix_expression ::= postfix_expression -> member_name
-		//
-		case 25: {
-			action.consumeExpressionFieldReference(true);
-			break;
-		}
-
-		//
-		// Rule 26:  postfix_expression ::= postfix_expression ++
-		//
-		case 26: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr);
-			break;
-		}
-
-		//
-		// Rule 27:  postfix_expression ::= postfix_expression --
-		//
-		case 27: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr);
-			break;
-		}
-
-		//
-		// Rule 28:  postfix_expression ::= ( type_id ) initializer_list
-		//
-		case 28: {
-			action.consumeExpressionTypeIdInitializer();
-			break;
-		}
-
-		//
-		// Rule 33:  unary_expression ::= ++ unary_expression
-		//
-		case 33: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr);
-			break;
-		}
-
-		//
-		// Rule 34:  unary_expression ::= -- unary_expression
-		//
-		case 34: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr);
-			break;
-		}
-
-		//
-		// Rule 35:  unary_expression ::= & cast_expression
-		//
-		case 35: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper);
-			break;
-		}
-
-		//
-		// Rule 36:  unary_expression ::= * cast_expression
-		//
-		case 36: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_star);
-			break;
-		}
-
-		//
-		// Rule 37:  unary_expression ::= + cast_expression
-		//
-		case 37: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus);
-			break;
-		}
-
-		//
-		// Rule 38:  unary_expression ::= - cast_expression
-		//
-		case 38: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus);
-			break;
-		}
-
-		//
-		// Rule 39:  unary_expression ::= ~ cast_expression
-		//
-		case 39: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde);
-			break;
-		}
-
-		//
-		// Rule 40:  unary_expression ::= ! cast_expression
-		//
-		case 40: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_not);
-			break;
-		}
-
-		//
-		// Rule 41:  unary_expression ::= sizeof unary_expression
-		//
-		case 41: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof);
-			break;
-		}
-
-		//
-		// Rule 42:  unary_expression ::= sizeof ( type_id )
-		//
-		case 42: {
-			action.consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof);
-			break;
-		}
-
-		//
-		// Rule 44:  cast_expression ::= ( type_id ) cast_expression
-		//
-		case 44: {
-			action.consumeExpressionCast(IASTCastExpression.op_cast);
-			break;
-		}
-
-		//
-		// Rule 46:  multiplicative_expression ::= multiplicative_expression * cast_expression
-		//
-		case 46: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply);
-			break;
-		}
-
-		//
-		// Rule 47:  multiplicative_expression ::= multiplicative_expression / cast_expression
-		//
-		case 47: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide);
-			break;
-		}
-
-		//
-		// Rule 48:  multiplicative_expression ::= multiplicative_expression % cast_expression
-		//
-		case 48: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo);
-			break;
-		}
-
-		//
-		// Rule 50:  additive_expression ::= additive_expression + multiplicative_expression
-		//
-		case 50: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus);
-			break;
-		}
-
-		//
-		// Rule 51:  additive_expression ::= additive_expression - multiplicative_expression
-		//
-		case 51: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus);
-			break;
-		}
-
-		//
-		// Rule 53:  shift_expression ::= shift_expression << additive_expression
-		//
-		case 53: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft);
-			break;
-		}
-
-		//
-		// Rule 54:  shift_expression ::= shift_expression >> additive_expression
-		//
-		case 54: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight);
-			break;
-		}
-
-		//
-		// Rule 56:  relational_expression ::= relational_expression < shift_expression
-		//
-		case 56: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan);
-			break;
-		}
-
-		//
-		// Rule 57:  relational_expression ::= relational_expression > shift_expression
-		//
-		case 57: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan);
-			break;
-		}
-
-		//
-		// Rule 58:  relational_expression ::= relational_expression <= shift_expression
-		//
-		case 58: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual);
-			break;
-		}
-
-		//
-		// Rule 59:  relational_expression ::= relational_expression >= shift_expression
-		//
-		case 59: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual);
-			break;
-		}
-
-		//
-		// Rule 61:  equality_expression ::= equality_expression == relational_expression
-		//
-		case 61: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals);
-			break;
-		}
-
-		//
-		// Rule 62:  equality_expression ::= equality_expression != relational_expression
-		//
-		case 62: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals);
-			break;
-		}
-
-		//
-		// Rule 64:  and_expression ::= and_expression & equality_expression
-		//
-		case 64: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd);
-			break;
-		}
-
-		//
-		// Rule 66:  exclusive_or_expression ::= exclusive_or_expression ^ and_expression
-		//
-		case 66: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor);
-			break;
-		}
-
-		//
-		// Rule 68:  inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression
-		//
-		case 68: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr);
-			break;
-		}
-
-		//
-		// Rule 70:  logical_and_expression ::= logical_and_expression && inclusive_or_expression
-		//
-		case 70: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd);
-			break;
-		}
-
-		//
-		// Rule 72:  logical_or_expression ::= logical_or_expression || logical_and_expression
-		//
-		case 72: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr);
-			break;
-		}
-
-		//
-		// Rule 74:  conditional_expression ::= logical_or_expression ? expression : assignment_expression
-		//
-		case 74: {
-			action.consumeExpressionConditional();
-			break;
-		}
-
-		//
-		// Rule 76:  assignment_expression ::= unary_expression = assignment_expression
-		//
-		case 76: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign);
-			break;
-		}
-
-		//
-		// Rule 77:  assignment_expression ::= unary_expression *= assignment_expression
-		//
-		case 77: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign);
-			break;
-		}
-
-		//
-		// Rule 78:  assignment_expression ::= unary_expression /= assignment_expression
-		//
-		case 78: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign);
-			break;
-		}
-
-		//
-		// Rule 79:  assignment_expression ::= unary_expression %= assignment_expression
-		//
-		case 79: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign);
-			break;
-		}
-
-		//
-		// Rule 80:  assignment_expression ::= unary_expression += assignment_expression
-		//
-		case 80: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign);
-			break;
-		}
-
-		//
-		// Rule 81:  assignment_expression ::= unary_expression -= assignment_expression
-		//
-		case 81: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign);
-			break;
-		}
-
-		//
-		// Rule 82:  assignment_expression ::= unary_expression <<= assignment_expression
-		//
-		case 82: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign);
-			break;
-		}
-
-		//
-		// Rule 83:  assignment_expression ::= unary_expression >>= assignment_expression
-		//
-		case 83: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign);
-			break;
-		}
-
-		//
-		// Rule 84:  assignment_expression ::= unary_expression &= assignment_expression
-		//
-		case 84: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign);
-			break;
-		}
-
-		//
-		// Rule 85:  assignment_expression ::= unary_expression ^= assignment_expression
-		//
-		case 85: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign);
-			break;
-		}
-
-		//
-		// Rule 86:  assignment_expression ::= unary_expression |= assignment_expression
-		//
-		case 86: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign);
-			break;
-		}
-
-		//
-		// Rule 89:  expression_list ::= <openscope-ast> expression_list_actual
-		//
-		case 89: {
-			action.consumeExpressionList();
-			break;
-		}
-
-		//
-		// Rule 91:  expression_list_opt ::= $Empty
-		//
-		case 91: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 101:  statement ::= ERROR_TOKEN
-		//
-		case 101: {
-			action.consumeStatementProblem();
-			break;
-		}
-
-		//
-		// Rule 102:  labeled_statement ::= identifier_token : statement
-		//
-		case 102: {
-			action.consumeStatementLabeled();
-			break;
-		}
-
-		//
-		// Rule 103:  labeled_statement ::= case constant_expression : statement
-		//
-		case 103: {
-			action.consumeStatementCase();
-			break;
-		}
-
-		//
-		// Rule 104:  labeled_statement ::= default : statement
-		//
-		case 104: {
-			action.consumeStatementDefault();
-			break;
-		}
-
-		//
-		// Rule 105:  compound_statement ::= { }
-		//
-		case 105: {
-			action.consumeStatementCompoundStatement(false);
-			break;
-		}
-
-		//
-		// Rule 106:  compound_statement ::= { <openscope-ast> block_item_list }
-		//
-		case 106: {
-			action.consumeStatementCompoundStatement(true);
-			break;
-		}
-
-		//
-		// Rule 110:  block_item ::= declaration
-		//
-		case 110: {
-			action.consumeStatementDeclarationWithDisambiguation();
-			break;
-		}
-
-		//
-		// Rule 111:  expression_statement ::= ;
-		//
-		case 111: {
-			action.consumeStatementNull();
-			break;
-		}
-
-		//
-		// Rule 112:  expression_statement ::= expression_in_statement ;
-		//
-		case 112: {
-			action.consumeStatementExpression();
-			break;
-		}
-
-		//
-		// Rule 113:  selection_statement ::= if ( expression ) statement
-		//
-		case 113: {
-			action.consumeStatementIf(false);
-			break;
-		}
-
-		//
-		// Rule 114:  selection_statement ::= if ( expression ) statement else statement
-		//
-		case 114: {
-			action.consumeStatementIf(true);
-			break;
-		}
-
-		//
-		// Rule 115:  selection_statement ::= switch ( expression ) statement
-		//
-		case 115: {
-			action.consumeStatementSwitch();
-			break;
-		}
-
-		//
-		// Rule 117:  expression_opt ::= $Empty
-		//
-		case 117: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 118:  iteration_statement ::= do statement while ( expression ) ;
-		//
-		case 118: {
-			action.consumeStatementDoLoop(true);
-			break;
-		}
-
-		//
-		// Rule 119:  iteration_statement ::= do statement
-		//
-		case 119: {
-			action.consumeStatementDoLoop(false);
-			break;
-		}
-
-		//
-		// Rule 120:  iteration_statement ::= while ( expression ) statement
-		//
-		case 120: {
-			action.consumeStatementWhileLoop();
-			break;
-		}
-
-		//
-		// Rule 121:  iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement
-		//
-		case 121: {
-			action.consumeStatementForLoop();
-			break;
-		}
-
-		//
-		// Rule 122:  iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement
-		//
-		case 122: {
-			action.consumeStatementForLoop();
-			break;
-		}
-
-		//
-		// Rule 123:  jump_statement ::= goto identifier_token ;
-		//
-		case 123: {
-			action.consumeStatementGoto();
-			break;
-		}
-
-		//
-		// Rule 124:  jump_statement ::= continue ;
-		//
-		case 124: {
-			action.consumeStatementContinue();
-			break;
-		}
-
-		//
-		// Rule 125:  jump_statement ::= break ;
-		//
-		case 125: {
-			action.consumeStatementBreak();
-			break;
-		}
-
-		//
-		// Rule 126:  jump_statement ::= return ;
-		//
-		case 126: {
-			action.consumeStatementReturn(false);
-			break;
-		}
-
-		//
-		// Rule 127:  jump_statement ::= return expression ;
-		//
-		case 127: {
-			action.consumeStatementReturn(true);
-			break;
-		}
-
-		//
-		// Rule 128:  declaration ::= declaration_specifiers ;
-		//
-		case 128: {
-			action.consumeDeclarationSimple(false);
-			break;
-		}
-
-		//
-		// Rule 129:  declaration ::= declaration_specifiers <openscope-ast> init_declarator_list ;
-		//
-		case 129: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 130:  declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
-		//
-		case 130: {
-			action.consumeDeclarationSpecifiersSimple();
-			break;
-		}
-
-		//
-		// Rule 131:  declaration_specifiers ::= <openscope-ast> struct_or_union_declaration_specifiers
-		//
-		case 131: {
-			action.consumeDeclarationSpecifiersStructUnionEnum();
-			break;
-		}
-
-		//
-		// Rule 132:  declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
-		//
-		case 132: {
-			action.consumeDeclarationSpecifiersStructUnionEnum();
-			break;
-		}
-
-		//
-		// Rule 133:  declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
-		//
-		case 133: {
-			action.consumeDeclarationSpecifiersStructUnionEnum();
-			break;
-		}
-
-		//
-		// Rule 134:  declaration_specifiers ::= <openscope-ast> typdef_name_declaration_specifiers
-		//
-		case 134: {
-			action.consumeDeclarationSpecifiersTypedefName();
-			break;
-		}
-
-		//
-		// Rule 159:  init_declarator ::= complete_declarator = initializer
-		//
-		case 159: {
-			action.consumeDeclaratorWithInitializer(true);
-			break;
-		}
-
-		//
-		// Rule 161:  storage_class_specifier ::= storage_class_specifier_token
-		//
-		case 161: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 167:  simple_type_specifier ::= simple_type_specifier_token
-		//
-		case 167: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 180:  type_name_specifier ::= identifier_token
-		//
-		case 180: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 181:  struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { <openscope-ast> struct_declaration_list_opt }
-		//
-		case 181: {
-			action.consumeTypeSpecifierComposite(false);
-			break;
-		}
-
-		//
-		// Rule 182:  struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { <openscope-ast> struct_declaration_list_opt }
-		//
-		case 182: {
-			action.consumeTypeSpecifierComposite(true);
-			break;
-		}
-
-		//
-		// Rule 187:  elaborated_specifier ::= struct elaborated_specifier_hook identifier_token
-		//
-		case 187: {
-			action.consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct);
-			break;
-		}
-
-		//
-		// Rule 188:  elaborated_specifier ::= union elaborated_specifier_hook identifier_token
-		//
-		case 188: {
-			action.consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union);
-			break;
-		}
-
-		//
-		// Rule 189:  elaborated_specifier ::= enum elaborated_specifier_hook identifier_token
-		//
-		case 189: {
-			action.consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum);
-			break;
-		}
-
-		//
-		// Rule 195:  struct_declaration ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ;
-		//
-		case 195: {
-			action.consumeStructDeclaration(true);
-			break;
-		}
-
-		//
-		// Rule 196:  struct_declaration ::= specifier_qualifier_list ;
-		//
-		case 196: {
-			action.consumeStructDeclaration(false);
-			break;
-		}
-
-		//
-		// Rule 197:  struct_declaration ::= ERROR_TOKEN
-		//
-		case 197: {
-			action.consumeDeclarationProblem();
-			break;
-		}
-
-		//
-		// Rule 203:  struct_declarator ::= : constant_expression
-		//
-		case 203: {
-			action.consumeBitField(false);
-			break;
-		}
-
-		//
-		// Rule 204:  struct_declarator ::= declarator : constant_expression
-		//
-		case 204: {
-			action.consumeBitField(true);
-			break;
-		}
-
-		//
-		// Rule 205:  enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
-		//
-		case 205: {
-			action.consumeTypeSpecifierEnumeration(false);
-			break;
-		}
-
-		//
-		// Rule 206:  enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
-		//
-		case 206: {
-			action.consumeTypeSpecifierEnumeration(true);
-			break;
-		}
-
-		//
-		// Rule 212:  enumerator ::= identifier_token
-		//
-		case 212: {
-			action.consumeEnumerator(false);
-			break;
-		}
-
-		//
-		// Rule 213:  enumerator ::= identifier_token = constant_expression
-		//
-		case 213: {
-			action.consumeEnumerator(true);
-			break;
-		}
-
-		//
-		// Rule 214:  type_qualifier ::= type_qualifier_token
-		//
-		case 214: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 218:  function_specifier ::= inline
-		//
-		case 218: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 220:  declarator ::= <openscope-ast> pointer_seq direct_declarator
-		//
-		case 220: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 225:  basic_direct_declarator ::= declarator_id_name
-		//
-		case 225: {
-			action.consumeDirectDeclaratorIdentifier();
-			break;
-		}
-
-		//
-		// Rule 226:  basic_direct_declarator ::= ( declarator )
-		//
-		case 226: {
-			action.consumeDirectDeclaratorBracketed();
-			break;
-		}
-
-		//
-		// Rule 227:  declarator_id_name ::= identifier
-		//
-		case 227: {
-			action.consumeIdentifierName();
-			break;
-		}
-
-		//
-		// Rule 228:  array_direct_declarator ::= basic_direct_declarator array_modifier
-		//
-		case 228: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 229:  array_direct_declarator ::= array_direct_declarator array_modifier
-		//
-		case 229: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 231:  function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_type_list )
-		//
-		case 231: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true, true);
-			break;
-		}
-
-		//
-		// Rule 232:  function_direct_declarator ::= basic_direct_declarator ( )
-		//
-		case 232: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true, false);
-			break;
-		}
-
-		//
-		// Rule 234:  function_declarator ::= <openscope-ast> pointer_seq function_direct_declarator
-		//
-		case 234: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 235:  knr_direct_declarator ::= basic_direct_declarator ( <openscope-ast> identifier_list )
-		//
-		case 235: {
-			action.consumeDirectDeclaratorFunctionDeclaratorKnR();
-			break;
-		}
-
-		//
-		// Rule 237:  knr_function_declarator ::= <openscope-ast> pointer_seq knr_direct_declarator
-		//
-		case 237: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 238:  identifier_list ::= identifier
-		//
-		case 238: {
-			action.consumeIdentifierKnR();
-			break;
-		}
-
-		//
-		// Rule 239:  identifier_list ::= identifier_list , identifier
-		//
-		case 239: {
-			action.consumeIdentifierKnR();
-			break;
-		}
-
-		//
-		// Rule 240:  array_modifier ::= [ ]
-		//
-		case 240: {
-			action.consumeDirectDeclaratorArrayModifier(false);
-			break;
-		}
-
-		//
-		// Rule 241:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ]
-		//
-		case 241: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false);
-			break;
-		}
-
-		//
-		// Rule 242:  array_modifier ::= [ assignment_expression ]
-		//
-		case 242: {
-			action.consumeDirectDeclaratorArrayModifier(true);
-			break;
-		}
-
-		//
-		// Rule 243:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
-		//
-		case 243: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 244:  array_modifier ::= [ static assignment_expression ]
-		//
-		case 244: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true);
-			break;
-		}
-
-		//
-		// Rule 245:  array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
-		//
-		case 245: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 246:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ]
-		//
-		case 246: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 247:  array_modifier ::= [ * ]
-		//
-		case 247: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false);
-			break;
-		}
-
-		//
-		// Rule 248:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ]
-		//
-		case 248: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false);
-			break;
-		}
-
-		//
-		// Rule 250:  pointer_seq ::= pointer_hook * pointer_hook
-		//
-		case 250: {
-			action.consumePointer();
-			break;
-		}
-
-		//
-		// Rule 251:  pointer_seq ::= pointer_seq pointer_hook * pointer_hook
-		//
-		case 251: {
-			action.consumePointer();
-			break;
-		}
-
-		//
-		// Rule 252:  pointer_seq ::= pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
-		//
-		case 252: {
-			action.consumePointerTypeQualifierList();
-			break;
-		}
-
-		//
-		// Rule 253:  pointer_seq ::= pointer_seq pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
-		//
-		case 253: {
-			action.consumePointerTypeQualifierList();
-			break;
-		}
-
-		//
-		// Rule 257:  parameter_type_list ::= parameter_list
-		//
-		case 257: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 258:  parameter_type_list ::= parameter_list , ...
-		//
-		case 258: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 259:  parameter_type_list ::= ...
-		//
-		case 259: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 262:  parameter_declaration ::= declaration_specifiers complete_parameter_declarator
-		//
-		case 262: {
-			action.consumeParameterDeclaration();
-			break;
-		}
-
-		//
-		// Rule 263:  parameter_declaration ::= declaration_specifiers
-		//
-		case 263: {
-			action.consumeParameterDeclarationWithoutDeclarator();
-			break;
-		}
-
-		//
-		// Rule 266:  type_id ::= specifier_qualifier_list
-		//
-		case 266: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 267:  type_id ::= specifier_qualifier_list abstract_declarator
-		//
-		case 267: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 269:  abstract_declarator ::= <openscope-ast> pointer_seq
-		//
-		case 269: {
-			action.consumeDeclaratorWithPointer(false);
-			break;
-		}
-
-		//
-		// Rule 270:  abstract_declarator ::= <openscope-ast> pointer_seq direct_abstract_declarator
-		//
-		case 270: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 274:  basic_direct_abstract_declarator ::= ( abstract_declarator )
-		//
-		case 274: {
-			action.consumeDirectDeclaratorBracketed();
-			break;
-		}
-
-		//
-		// Rule 275:  array_direct_abstract_declarator ::= array_modifier
-		//
-		case 275: {
-			action.consumeDirectDeclaratorArrayDeclarator(false);
-			break;
-		}
-
-		//
-		// Rule 276:  array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
-		//
-		case 276: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 277:  array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
-		//
-		case 277: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 278:  function_direct_abstract_declarator ::= ( )
-		//
-		case 278: {
-			action.consumeDirectDeclaratorFunctionDeclarator(false, false);
-			break;
-		}
-
-		//
-		// Rule 279:  function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( )
-		//
-		case 279: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true, false);
-			break;
-		}
-
-		//
-		// Rule 280:  function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list )
-		//
-		case 280: {
-			action.consumeDirectDeclaratorFunctionDeclarator(false, true);
-			break;
-		}
-
-		//
-		// Rule 281:  function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list )
-		//
-		case 281: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true, true);
-			break;
-		}
-
-		//
-		// Rule 282:  initializer ::= assignment_expression
-		//
-		case 282: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 283:  initializer ::= initializer_list
-		//
-		case 283: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 284:  initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq comma_opt } end_initializer_list
-		//
-		case 284: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 285:  initializer_list ::= { <openscope-ast> }
-		//
-		case 285: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 286:  start_initializer_list ::= $Empty
-		//
-		case 286: {
-			action.initializerListStart();
-			break;
-		}
-
-		//
-		// Rule 287:  end_initializer_list ::= $Empty
-		//
-		case 287: {
-			action.initializerListEnd();
-			break;
-		}
-
-		//
-		// Rule 292:  designated_initializer ::= <openscope-ast> designation = initializer
-		//
-		case 292: {
-			action.consumeInitializerDesignated();
-			break;
-		}
-
-		//
-		// Rule 296:  designator_base ::= [ constant_expression ]
-		//
-		case 296: {
-			action.consumeDesignatorArray();
-			break;
-		}
-
-		//
-		// Rule 297:  designator_base ::= . identifier_token
-		//
-		case 297: {
-			action.consumeDesignatorField();
-			break;
-		}
-
-		//
-		// Rule 298:  designator ::= [ constant_expression ]
-		//
-		case 298: {
-			action.consumeDesignatorArray();
-			break;
-		}
-
-		//
-		// Rule 299:  designator ::= . identifier_token
-		//
-		case 299: {
-			action.consumeDesignatorField();
-			break;
-		}
-
-		//
-		// Rule 300:  translation_unit ::= external_declaration_list
-		//
-		case 300: {
-			action.consumeTranslationUnit();
-			break;
-		}
-
-		//
-		// Rule 301:  translation_unit ::= $Empty
-		//
-		case 301: {
-			action.consumeTranslationUnit();
-			break;
-		}
-
-		//
-		// Rule 306:  external_declaration ::= ;
-		//
-		case 306: {
-			action.consumeDeclarationEmpty();
-			break;
-		}
-
-		//
-		// Rule 307:  external_declaration ::= ERROR_TOKEN
-		//
-		case 307: {
-			action.consumeDeclarationProblem();
-			break;
-		}
-
-		//
-		// Rule 311:  function_definition ::= <openscope-ast> function_declarator function_body
-		//
-		case 311: {
-			action.consumeFunctionDefinition(false);
-			break;
-		}
-
-		//
-		// Rule 312:  function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
-		//
-		case 312: {
-			action.consumeFunctionDefinitionKnR();
-			break;
-		}
-
-		//
-		// Rule 313:  normal_function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
-		//
-		case 313: {
-			action.consumeFunctionDefinition(true);
-			break;
-		}
-
-		//
-		// Rule 314:  function_body ::= { }
-		//
-		case 314: {
-			action.consumeStatementCompoundStatement(false);
-			break;
-		}
-
-		//
-		// Rule 315:  function_body ::= { <openscope-ast> block_item_list }
-		//
-		case 315: {
-			action.consumeStatementCompoundStatement(true);
-			break;
-		}
-
-		default:
-			break;
-		}
-		return;
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parserprs.java
deleted file mode 100644
index 9365f48..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parserprs.java
+++ /dev/null
@@ -1,843 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2015 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.lrparser.c99;
-
-public class C99Parserprs implements lpg.lpgjavaruntime.ParseTable, C99Parsersym {
-
-	public interface IsKeyword {
-		public final static byte isKeyword[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0 };
-	}
-
-	public final static byte isKeyword[] = IsKeyword.isKeyword;
-
-	public final boolean isKeyword(int index) {
-		return isKeyword[index] != 0;
-	}
-
-	public interface BaseCheck {
-		public final static short baseCheck[] = { 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 4,
-				4, 3, 3, 2, 2, 4, 1, 0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 1, 4, 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 3, 3,
-				3, 3, 1, 3, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 2, 1, 0, 1,
-				3, 1, 1, 1, 1, 1, 1, 1, 1, 3, 4, 3, 2, 4, 1, 2, 1, 1, 1, 2, 5, 7, 5, 1, 0, 7, 2, 5, 9, 8, 3, 2, 2, 2, 3,
-				2, 4, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 3, 1, 3, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6, 8, 0, 0, 1, 1, 3, 3, 3, 0, 1, 0, 1, 2, 4, 2, 1,
-				1, 1, 3, 1, 1, 2, 3, 7, 8, 0, 1, 0, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 3, 1, 2, 2, 1, 5, 3,
-				1, 3, 5, 1, 3, 1, 3, 2, 4, 3, 5, 4, 6, 6, 3, 5, 1, 3, 4, 5, 6, 0, 1, 2, 1, 3, 1, 1, 3, 2, 1, 1, 1, 1, 2,
-				1, 2, 3, 1, 1, 1, 3, 1, 2, 2, 2, 3, 4, 5, 1, 1, 7, 3, 0, 0, 1, 1, 3, 3, 4, 1, 1, 2, 3, 2, 3, 2, 1, 0, 1,
-				2, 1, 1, 1, 1, 1, 2, 1, 3, 6, 4, 2, 4, -106, 0, -161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -37, 0,
-				0, 0, -18, 0, -61, -10, 0, 0, -159, 0, -12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -41, 0, 0, 0, 0,
-				0, 0, 0, -9, 0, 0, 0, 0, 0, -236, 0, -4, 0, 0, 0, 0, 0, -23, 0, 0, 0, 0, 0, 0, -2, 0, 0, -242, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -32, 0, -65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, -139, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -13, 0, 0, 0, -33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-39, 0, 0, 0, -120, 0, -267, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -20, 0, 0, 0,
-				-21, 0, -7, -27, 0, 0, -271, 0, -156, 0, -28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -251, -31, 0,
-				0, 0, -46, 0, -22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -24, 0, 0, -148, 0, -30, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -34, 0, 0, -137, 0, -66, 0, 0, 0, 0, 0, 0, 0, 0, 0, -25, 0, -280, 0, -279,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -58, 0, -102, -50, 0, 0, 0, 0, -26, 0, -38, 0, 0, 0, -51, -146, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -192, -53, 0, 0, 0, 0, 0, 0,
-				-150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -138, 0, 0, 0, 0, 0, 0, 0, 0, -35, 0, -36, 0, 0, 0, 0, 0,
-				0, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -113, 0, -119, 0, -132, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -188, 0, 0, 0, 0, 0, -165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -118, 0, -104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -121, 0, -49,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -93, 0, -151, 0, -179, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -67, 0, 0, 0, 0, 0, 0, 0, 0, -122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -133, 0, 0, 0,
-				-160, 0, -123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -124, 0, -189, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -200, 0, 0, 0, 0, 0, -125, 0, -63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -201, 0, -126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -202, 0, 0, 0, 0, 0,
-				-127, 0, -224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -226, 0, -128, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -227, 0, 0, 0, 0, 0, -129, 0, -240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -265, 0, -130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -274, 0, 0, 0, 0, 0, -131, 0,
-				-278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -284, 0, -193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -290, 0, 0, 0, 0, 0, -194, 0, -74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -75, 0, -230, 0, -76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -77, 0, 0, 0, -78, 0, -235, 0, -54,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -79, 0, 0, 0, -249, 0, -80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -81, 0, -147, 0, -82, 0, 0, 0, 0, 0, 0, 0, -260, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -83, 0, 0, 0, -270, 0, -84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -87, 0, 0, 0, -152,
-				0, -89, 0, 0, 0, 0, 0, 0, 0, 0, 0, -277, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -111, 0, 0, 0,
-				-283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -90, 0, 0, 0, -72, 0, -96, 0, 0, 0, 0, 0, -48, 0,
-				0, 0, -149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -95, 0, -42, 0, 0, -238, 0, -62, -97, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -92, -45, 0, 0, -99, -91, 0, 0, 0, -100, -183, 0, 0, 0, 0, 0, -114, 0, 0, -269, 0, 0, 0,
-				-103, 0, -29, 0, 0, -52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -70, 0, -105, 0, 0, 0, 0, 0, 0, 0, -40, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -94, 0, -172, 0, 0, 0, -86, -107, 0, -47, 0, -101, 0, 0, 0, 0, 0, 0, 0, 0,
-				-190, -115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -59, -180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -163, 0, 0, 0, 0, 0, -164, 0, 0, 0, 0, -15, 0, -8, 0, -109, 0, 0, 0, -166, -228, 0, 0, 0, -169,
-				0, 0, 0, 0, -223, -191, -6, -112, 0, 0, -234, 0, 0, 0, 0, 0, 0, 0, -162, 0, 0, 0, -174, 0, 0, 0, 0, 0,
-				0, 0, 0, -17, 0, -116, -252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -176, 0, 0, 0, 0, 0, 0, 0, -195, 0, 0, 0,
-				0, 0, -247, -197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -248, 0, 0, 0, 0, -73, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -177, 0, 0, 0, -184, 0, 0, 0, 0, 0, 0, -263, 0, 0, -98, 0, 0, -85, -185, 0, 0, 0, 0, 0,
-				-204, 0, 0, 0, -282, 0, -276, 0, 0, 0, -205, 0, 0, 0, 0, -206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -155, 0,
-				-207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -173, 0, 0, 0, 0, 0, -208, 0, 0, 0, 0, 0, -108, -57, 0, 0, -209,
-				0, 0, 0, 0, 0, -175, 0, 0, -239, -258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -178, 0, 0, 0, -187, 0, -229, 0,
-				0, -232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -110, 0, 0, 0, 0, 0, -210, 0, 0, 0, 0, 0, -211, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -254, 0, 0, -212, 0, 0, 0, -233, 0, 0, 0, 0, -186, -213, 0, -214, -250, 0, -215, 0, 0, 0, -256,
-				0, 0, -216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -217, 0, -262, 0, -218, -68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -257, 0, 0, -266, -198, 0, 0, -196, 0, 0, 0, 0, 0, 0, 0, 0, -219, 0, 0, 0, 0, 0, -287, 0,
-				0, 0, -220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -225, -261, 0, 0, -203, -243, 0, -289, 0, 0, 0, 0, -268, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -275, -181, 0, 0, -244, -281, 0, -291, 0, 0, -43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -288, 0, 0, 0, 0,
-				-1, 0, 0, 0, -259, -153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -19, -273, 0, 0, -144, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -140, 0, 0, 0, 0, 0, -55, 0, -71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -199, -286, 0, -145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5, 0, 0, -88,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -141, 0, 0, 0, 0, 0, 0, 0, 0, 0, -241, 0, 0, -142, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -231, -246, 0, 0, -245, 0, 0, 0, 0, -143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -11, 0, 0, 0, 0,
-				-14, -182, 0, 0, 0, 0, 0, 0, 0, -16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -64, -135, 0, 0, 0, 0, 0, 0, 0, -136, 0, 0,
-				0, -167, 0, 0, 0, 0, -117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -56, 0, 0, 0, 0, 0, 0, 0, 0, 0, -264, 0, 0, 0,
-				0, 0, -237, 0, 0, 0, 0, 0, 0, -222, 0, 0, 0, 0, 0, 0, 0, 0, 0, -253, 0, 0, 0, 0, -272, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -285, 0, 0, 0, 0, 0, 0, 0, 0, 0, -158, 0, 0, 0, 0, 0, 0, 0, 0, 0, -168, 0, 0, 0, 0, 0,
-				0, 0, -170, 0, 0, 0, -171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static short baseCheck[] = BaseCheck.baseCheck;
-
-	@Override
-	public final int baseCheck(int index) {
-		return baseCheck[index];
-	}
-
-	public final static short rhs[] = baseCheck;
-
-	@Override
-	public final int rhs(int index) {
-		return rhs[index];
-	}
-
-	public interface BaseAction {
-		public final static char baseAction[] = { 107, 2, 125, 40, 40, 23, 23, 45, 45, 17, 17, 1, 1, 3, 3, 3, 3, 4, 4,
-				4, 5, 6, 6, 6, 6, 6, 6, 6, 6, 78, 78, 90, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9, 10, 10, 10,
-				11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 14, 14, 15, 15, 16, 16, 18, 18, 19, 19, 20, 20, 22, 22, 22,
-				22, 22, 22, 22, 22, 22, 22, 22, 22, 29, 27, 21, 108, 108, 91, 91, 56, 30, 30, 30, 30, 30, 30, 30, 31,
-				31, 31, 28, 28, 92, 92, 68, 68, 32, 32, 33, 33, 33, 63, 63, 34, 34, 34, 34, 34, 35, 35, 35, 35, 35, 47,
-				47, 24, 24, 24, 24, 24, 48, 48, 48, 84, 84, 79, 79, 79, 79, 80, 80, 80, 81, 81, 81, 82, 82, 82, 83, 83,
-				83, 93, 93, 85, 85, 86, 49, 51, 51, 51, 51, 51, 64, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 72,
-				69, 69, 109, 110, 74, 74, 70, 70, 70, 87, 94, 94, 95, 95, 88, 88, 88, 57, 111, 111, 96, 97, 97, 97, 71,
-				71, 112, 98, 98, 99, 99, 89, 89, 25, 26, 26, 26, 50, 52, 52, 41, 41, 41, 41, 37, 37, 38, 42, 42, 43, 39,
-				39, 100, 100, 44, 114, 114, 113, 113, 46, 46, 46, 46, 46, 46, 46, 46, 46, 101, 54, 54, 54, 54, 36, 75,
-				75, 66, 66, 66, 67, 67, 58, 58, 115, 115, 77, 77, 76, 76, 76, 59, 59, 59, 60, 61, 61, 61, 62, 62, 62,
-				62, 73, 73, 53, 53, 55, 117, 116, 116, 116, 116, 102, 118, 119, 119, 120, 120, 121, 121, 107, 107, 122,
-				122, 103, 103, 103, 103, 123, 123, 104, 104, 104, 105, 106, 106, 292, 1606, 998, 17, 21, 18, 1133, 949,
-				45, 1152, 1171, 1156, 1194, 1175, 1219, 1200, 1248, 622, 1223, 1254, 75, 331, 92, 359, 176, 136, 214,
-				1426, 20, 505, 17, 21, 18, 1133, 43, 45, 1152, 1171, 1156, 1194, 1175, 1219, 1200, 1248, 908, 1824,
-				2191, 285, 138, 135, 137, 161, 944, 703, 525, 225, 234, 668, 587, 1610, 1051, 180, 337, 242, 140, 167,
-				358, 232, 1355, 144, 147, 150, 153, 754, 340, 333, 1115, 136, 214, 1501, 368, 2105, 2110, 2119, 1544,
-				136, 214, 322, 835, 1407, 20, 1559, 17, 21, 18, 1133, 41, 525, 225, 233, 146, 135, 137, 161, 419, 1313,
-				1519, 789, 138, 135, 137, 161, 703, 666, 225, 230, 443, 220, 610, 222, 224, 128, 275, 541, 140, 167, 90,
-				587, 188, 144, 147, 150, 153, 403, 340, 270, 783, 926, 273, 1501, 368, 2105, 2110, 2119, 1544, 1426, 20,
-				211, 17, 21, 18, 1133, 43, 45, 1152, 1171, 1156, 1194, 1175, 1765, 527, 1350, 20, 551, 17, 21, 18, 1133,
-				949, 45, 1152, 1171, 1156, 1194, 1175, 1219, 1200, 1248, 440, 1223, 1254, 75, 1124, 282, 1265, 20, 551,
-				17, 21, 18, 1133, 949, 45, 1152, 1171, 1156, 1194, 1175, 1219, 1200, 1248, 226, 1223, 1254, 75, 296,
-				282, 256, 214, 314, 595, 324, 402, 987, 283, 1451, 1269, 1426, 20, 442, 17, 21, 18, 1133, 43, 45, 1152,
-				1171, 1156, 1194, 1175, 1219, 1200, 1775, 288, 412, 833, 283, 1335, 1269, 1242, 20, 324, 17, 21, 18,
-				1133, 949, 45, 1152, 1171, 1156, 1194, 1175, 1219, 1200, 1248, 290, 1223, 1254, 75, 892, 282, 289, 1426,
-				20, 501, 17, 21, 18, 1133, 43, 45, 1152, 1171, 1156, 1676, 1766, 129, 587, 187, 314, 587, 31, 1426, 20,
-				291, 17, 21, 18, 1133, 43, 40, 283, 913, 1269, 1369, 20, 421, 17, 21, 18, 1133, 949, 45, 1152, 1171,
-				1156, 1194, 1175, 1219, 1200, 1248, 159, 1223, 1254, 75, 311, 282, 1199, 20, 1360, 17, 21, 18, 1133,
-				949, 45, 1152, 1171, 1156, 1194, 1175, 1219, 1200, 1248, 295, 1223, 1254, 75, 229, 339, 1108, 180, 833,
-				358, 1436, 1682, 313, 283, 1004, 1269, 829, 1857, 531, 294, 749, 1426, 20, 240, 17, 21, 18, 1133, 43,
-				45, 1645, 136, 214, 292, 1426, 20, 25, 17, 21, 18, 1133, 43, 45, 1152, 1171, 1156, 1194, 1175, 1219,
-				1786, 1466, 831, 658, 105, 138, 135, 137, 161, 1426, 20, 228, 17, 21, 18, 1133, 43, 45, 1152, 1171,
-				1734, 140, 167, 587, 31, 1387, 144, 147, 150, 153, 284, 340, 326, 672, 587, 189, 1501, 368, 2105, 2110,
-				2119, 1544, 1388, 20, 2180, 17, 21, 18, 1133, 949, 45, 1152, 1171, 1156, 1194, 1175, 1219, 1200, 1248,
-				261, 1223, 1254, 75, 440, 810, 1223, 20, 440, 17, 21, 18, 1133, 949, 45, 1152, 1171, 1156, 1194, 1175,
-				1219, 1200, 1248, 1285, 1223, 1254, 75, 231, 1567, 1426, 20, 1574, 17, 21, 18, 1133, 949, 45, 1152,
-				1171, 1156, 1194, 1175, 1219, 1200, 1248, 241, 1223, 1254, 75, 359, 92, 1426, 20, 24, 17, 21, 18, 1133,
-				43, 45, 1152, 1171, 1156, 1194, 1175, 1219, 1200, 1248, 277, 1223, 1254, 94, 1426, 20, 418, 17, 21, 18,
-				1133, 949, 45, 1152, 1171, 1156, 1194, 1175, 1219, 1200, 1248, 244, 1223, 1254, 75, 986, 86, 1426, 20,
-				998, 17, 21, 18, 1133, 43, 45, 1152, 1171, 1740, 1535, 1426, 20, 125, 17, 21, 18, 1133, 43, 39, 1426,
-				20, 1559, 17, 21, 18, 1133, 949, 45, 1152, 1171, 1156, 1194, 1175, 1219, 1200, 1248, 440, 1223, 1254,
-				75, 1126, 85, 1426, 20, 181, 17, 21, 18, 1133, 949, 45, 1152, 1171, 1156, 1194, 1175, 1219, 1200, 1248,
-				19, 1223, 1254, 75, 235, 84, 1426, 20, 1132, 17, 21, 18, 1133, 949, 45, 1152, 1171, 1156, 1194, 1175,
-				1219, 1200, 1248, 440, 1223, 1254, 75, 1441, 83, 1426, 20, 384, 17, 21, 18, 1133, 949, 45, 1152, 1171,
-				1156, 1194, 1175, 1219, 1200, 1248, 1573, 1223, 1254, 75, 440, 82, 1426, 20, 276, 17, 21, 18, 1133, 949,
-				45, 1152, 1171, 1156, 1194, 1175, 1219, 1200, 1248, 440, 1223, 1254, 75, 1591, 81, 1426, 20, 440, 17,
-				21, 18, 1133, 949, 45, 1152, 1171, 1156, 1194, 1175, 1219, 1200, 1248, 23, 1223, 1254, 75, 440, 80,
-				1426, 20, 1750, 17, 21, 18, 1133, 949, 45, 1152, 1171, 1156, 1194, 1175, 1219, 1200, 1248, 440, 1223,
-				1254, 75, 1772, 79, 1426, 20, 440, 17, 21, 18, 1133, 949, 45, 1152, 1171, 1156, 1194, 1175, 1219, 1200,
-				1248, 1808, 1223, 1254, 75, 440, 78, 1426, 20, 274, 17, 21, 18, 1133, 949, 45, 1152, 1171, 1156, 1194,
-				1175, 1219, 1200, 1248, 440, 1223, 1254, 75, 280, 77, 1426, 20, 440, 17, 21, 18, 1133, 949, 45, 1152,
-				1171, 1156, 1194, 1175, 1219, 1200, 1248, 1988, 1223, 1254, 75, 440, 76, 1426, 20, 281, 17, 21, 18,
-				1133, 949, 45, 1152, 1171, 1156, 1194, 1175, 1219, 1200, 1248, 440, 1223, 1254, 75, 1852, 1850, 1426,
-				20, 1471, 17, 21, 18, 1133, 949, 45, 1152, 1171, 1156, 1194, 1175, 1219, 1200, 1248, 1874, 1223, 1254,
-				75, 1055, 1871, 1426, 20, 876, 17, 21, 18, 1133, 949, 45, 1152, 1171, 1156, 1194, 1175, 1219, 1200,
-				1248, 663, 1223, 1254, 75, 630, 93, 1426, 20, 331, 17, 21, 18, 1133, 43, 45, 1152, 1171, 1156, 1194,
-				1175, 1219, 1200, 1248, 345, 1223, 1254, 94, 1426, 20, 796, 17, 21, 18, 1133, 949, 45, 1152, 1171, 1156,
-				1194, 1175, 1219, 1200, 1248, 1520, 1223, 1254, 75, 931, 74, 1426, 20, 288, 17, 21, 18, 1133, 43, 45,
-				1658, 1426, 20, 213, 17, 21, 18, 1133, 43, 45, 1152, 1171, 1156, 1194, 1175, 1219, 1200, 1248, 751,
-				1223, 1254, 94, 1426, 20, 550, 17, 21, 18, 1133, 43, 45, 1152, 1171, 1156, 1194, 1175, 1219, 1200, 1248,
-				1067, 1223, 1254, 94, 1426, 20, 1064, 17, 21, 18, 1133, 43, 45, 1152, 1171, 1753, 1426, 20, 203, 17, 21,
-				18, 1133, 43, 45, 1152, 1171, 1156, 1194, 1175, 1219, 1200, 1248, 331, 1223, 1254, 94, 1426, 20, 1872,
-				17, 21, 18, 1133, 43, 45, 1152, 1171, 1156, 1194, 1175, 1219, 1200, 1248, 1069, 1223, 1254, 94, 1445,
-				20, 589, 17, 21, 18, 1133, 34, 178, 1414, 316, 1762, 1426, 20, 204, 17, 21, 18, 1133, 43, 45, 1152,
-				1171, 1156, 1686, 111, 587, 1507, 358, 87, 658, 1295, 1472, 890, 626, 1917, 96, 1445, 109, 95, 97, 98,
-				99, 100, 419, 908, 789, 1623, 708, 1, 1414, 316, 1472, 793, 1464, 110, 256, 214, 255, 214, 946, 126,
-				1518, 587, 297, 88, 111, 54, 232, 331, 87, 1494, 358, 1472, 1728, 308, 107, 96, 1445, 109, 95, 97, 98,
-				99, 100, 1289, 20, 58, 17, 21, 18, 1133, 43, 36, 315, 331, 110, 666, 225, 230, 1376, 219, 610, 222, 224,
-				668, 275, 986, 498, 235, 1414, 316, 264, 358, 1104, 318, 622, 108, 986, 268, 783, 926, 273, 1443, 124,
-				247, 111, 941, 1205, 2071, 87, 668, 1523, 1472, 766, 112, 265, 96, 1445, 109, 95, 97, 98, 99, 100, 419,
-				419, 1546, 1717, 1965, 278, 1683, 703, 666, 225, 1323, 110, 220, 610, 222, 1275, 60, 128, 196, 666, 225,
-				230, 986, 219, 610, 222, 224, 582, 275, 1146, 262, 358, 107, 2111, 494, 986, 119, 1414, 316, 127, 905,
-				268, 783, 926, 273, 986, 331, 355, 1119, 1396, 1712, 998, 123, 111, 136, 214, 1508, 87, 1041, 358, 1472,
-				477, 2224, 172, 96, 1445, 109, 95, 97, 98, 99, 100, 1108, 180, 355, 986, 1422, 143, 135, 137, 161, 106,
-				668, 110, 666, 225, 582, 1261, 219, 610, 222, 535, 2229, 142, 167, 359, 205, 136, 214, 160, 392, 1178,
-				1319, 20, 108, 17, 21, 18, 1133, 43, 44, 666, 225, 230, 735, 219, 610, 222, 224, 1490, 139, 135, 137,
-				161, 1445, 20, 160, 17, 21, 18, 1133, 33, 156, 528, 360, 243, 141, 167, 1118, 733, 577, 145, 148, 151,
-				154, 1489, 340, 558, 480, 1414, 789, 1112, 1465, 658, 28, 28, 1269, 1269, 706, 156, 528, 382, 587, 299,
-				868, 111, 1422, 577, 745, 87, 256, 214, 28, 1480, 1269, 1387, 96, 1445, 1512, 95, 97, 98, 99, 100, 1426,
-				20, 1486, 17, 21, 18, 1133, 43, 45, 1152, 1171, 1156, 1194, 1768, 521, 1414, 789, 666, 225, 230, 367,
-				219, 610, 222, 224, 260, 874, 786, 658, 658, 477, 111, 1846, 764, 1455, 87, 562, 1414, 789, 908, 998,
-				2201, 96, 1445, 104, 95, 97, 98, 99, 100, 198, 1472, 358, 111, 2084, 312, 890, 87, 603, 1414, 789, 868,
-				279, 1422, 96, 1445, 102, 95, 97, 98, 99, 100, 664, 1610, 309, 111, 200, 201, 1284, 87, 899, 255, 214,
-				1473, 1286, 182, 96, 1445, 103, 95, 97, 98, 99, 100, 644, 1414, 789, 1430, 666, 225, 230, 1464, 219,
-				610, 222, 224, 1161, 1432, 2207, 1220, 1500, 111, 672, 1846, 193, 87, 685, 1414, 789, 1141, 858, 1868,
-				96, 1445, 120, 95, 97, 98, 99, 100, 1411, 1358, 998, 111, 1000, 1426, 20, 87, 17, 21, 18, 1133, 43, 38,
-				96, 1445, 115, 95, 97, 98, 99, 100, 726, 1414, 789, 998, 331, 199, 201, 1289, 20, 210, 17, 21, 18, 1133,
-				43, 36, 1467, 111, 1381, 1624, 1926, 87, 767, 1414, 789, 206, 711, 1788, 96, 1445, 1867, 95, 97, 98, 99,
-				100, 1811, 904, 1499, 111, 668, 359, 359, 87, 808, 1414, 789, 248, 614, 1503, 96, 1445, 114, 95, 97, 98,
-				99, 100, 2088, 1142, 933, 111, 658, 359, 359, 87, 849, 1414, 789, 355, 2340, 1422, 96, 1445, 122, 95,
-				97, 98, 99, 100, 2340, 22, 245, 111, 198, 1426, 20, 87, 17, 21, 18, 1133, 43, 37, 96, 1445, 121, 95, 97,
-				98, 99, 100, 2340, 246, 296, 2340, 666, 225, 230, 359, 219, 610, 222, 224, 349, 2340, 376, 1473, 1484,
-				1426, 20, 160, 17, 21, 18, 1133, 43, 45, 1152, 1171, 1763, 306, 355, 986, 1422, 195, 1426, 20, 420, 17,
-				21, 18, 1133, 43, 45, 1152, 1630, 2340, 194, 298, 2242, 358, 2340, 789, 157, 528, 2340, 622, 2340, 1426,
-				20, 305, 17, 21, 18, 1133, 43, 35, 2340, 666, 225, 230, 88, 219, 610, 222, 224, 2340, 1849, 1005, 986,
-				2085, 1426, 20, 494, 17, 21, 18, 1133, 43, 45, 1152, 1640, 703, 666, 225, 230, 118, 220, 610, 222, 224,
-				278, 406, 2340, 376, 1426, 20, 2340, 17, 21, 18, 1133, 43, 36, 2340, 2340, 302, 304, 310, 306, 389,
-				1061, 2340, 1812, 275, 2340, 420, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2011, 2340, 268, 783,
-				926, 273, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 305, 2340, 2340, 1426, 20, 1041, 17, 21, 18,
-				1133, 43, 48, 2340, 950, 2340, 658, 1426, 20, 275, 17, 21, 18, 1133, 43, 47, 2340, 992, 950, 658, 658,
-				1339, 268, 783, 926, 273, 1426, 20, 1387, 17, 21, 18, 1133, 43, 46, 2340, 2340, 2340, 1003, 267, 668,
-				198, 1387, 1062, 664, 1610, 2340, 303, 304, 310, 2340, 2340, 1449, 2340, 668, 2340, 2340, 703, 392,
-				2340, 2340, 2340, 260, 136, 214, 2340, 2340, 275, 136, 214, 1060, 1455, 2088, 2340, 1473, 2340, 260,
-				136, 214, 2340, 270, 783, 926, 273, 1060, 1455, 149, 135, 137, 161, 2340, 152, 135, 137, 161, 358, 358,
-				316, 316, 2340, 155, 135, 137, 161, 358, 193, 316, 2340, 1479, 2340, 316, 1696, 1868, 890, 2340, 2340,
-				88, 88, 2340, 198, 198, 2340, 895, 895, 1084, 88, 658, 2340, 198, 88, 2340, 895, 1472, 210, 1084, 116,
-				658, 2340, 255, 214, 890, 2340, 1757, 1624, 2340, 2340, 2340, 1479, 1387, 789, 2340, 2340, 2030, 2030,
-				2340, 2214, 2340, 1479, 1387, 789, 2340, 2030, 1479, 2340, 789, 255, 214, 2340, 88, 2340, 2340, 1517,
-				768, 941, 116, 1479, 2340, 789, 88, 2340, 2340, 968, 260, 88, 116, 358, 2340, 789, 498, 116, 764, 1455,
-				260, 2340, 2340, 358, 88, 789, 2340, 2340, 1087, 1455, 116, 358, 2340, 789, 88, 358, 2340, 789, 1547,
-				2340, 1790, 2340, 1108, 1617, 88, 2340, 2340, 358, 1941, 789, 995, 2340, 88, 1106, 2340, 2340, 88, 2340,
-				1014, 2340, 2340, 2340, 1033, 2340, 2340, 2340, 1125, 2340, 88, 2340, 2340, 2340, 2340, 2340, 1079,
-				2340, 0, 11, 227, 0, 2348, 1, 0, 1, 2578, 0, 8, 10, 0, 1845, 119, 0, 180, 20, 0, 1, 2567, 0, 113, 1830,
-				0 };
-	}
-
-	public final static char baseAction[] = BaseAction.baseAction;
-
-	@Override
-	public final int baseAction(int index) {
-		return baseAction[index];
-	}
-
-	public final static char lhs[] = baseAction;
-
-	@Override
-	public final int lhs(int index) {
-		return lhs[index];
-	}
-
-	public interface TermCheck {
-		public final static byte termCheck[] = { 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
-				19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
-				45, 46, 47, 48, 49, 50, 51, 52, 0, 54, 55, 56, 0, 58, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
-				15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
-				41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 59, 54, 55, 56, 59, 58, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
-				10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
-				36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 54, 55, 56, 0, 58, 0, 1, 2, 3, 4,
-				5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
-				32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 59, 54, 55, 56, 0,
-				1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
-				29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 54,
-				55, 56, 0, 1, 2, 3, 0, 5, 2, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 23, 2, 25, 26,
-				27, 28, 29, 0, 1, 0, 3, 0, 1, 6, 3, 6, 0, 6, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 54, 55,
-				56, 0, 1, 2, 3, 4, 5, 0, 1, 2, 0, 0, 0, 1, 2, 4, 4, 5, 78, 0, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
-				29, 19, 20, 21, 22, 23, 0, 25, 26, 27, 28, 29, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 54,
-				55, 56, 0, 1, 2, 3, 4, 5, 0, 53, 69, 70, 71, 72, 0, 0, 60, 0, 73, 4, 65, 19, 20, 21, 22, 23, 24, 25, 26,
-				27, 28, 29, 69, 70, 71, 72, 0, 22, 0, 0, 4, 61, 4, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0,
-				54, 55, 56, 61, 22, 53, 0, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 0, 66, 73, 0, 1, 2, 3, 4, 5, 6, 7, 8,
-				9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 57, 60, 0, 22, 61, 24, 0, 1, 6, 3, 0, 30, 31, 32, 33, 34, 35, 36,
-				37, 38, 39, 40, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 0, 0, 1, 22, 3, 24,
-				69, 70, 71, 72, 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
-				13, 14, 15, 16, 17, 18, 0, 0, 1, 22, 3, 24, 0, 1, 0, 3, 2, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
-				0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 0, 1, 2, 22, 0, 24, 2, 0, 0, 81, 82,
-				30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
-				17, 18, 0, 0, 1, 22, 3, 24, 0, 7, 8, 0, 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, 1, 2, 3, 4, 5,
-				6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 74, 75, 0, 22, 0, 24, 2, 0, 1, 7, 8, 30, 31, 32, 33, 34,
-				35, 36, 37, 38, 39, 40, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 0, 74, 75, 22,
-				0, 24, 0, 7, 8, 0, 6, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
-				12, 13, 14, 15, 16, 17, 18, 0, 0, 1, 22, 3, 24, 6, 0, 0, 2, 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
-				40, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 73, 77, 0, 22, 0, 24, 0, 5, 0, 5,
-				4, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
-				17, 18, 0, 1, 2, 22, 76, 24, 0, 1, 0, 3, 4, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, 58, 0, 19,
-				20, 21, 4, 23, 24, 25, 26, 27, 28, 29, 0, 0, 2, 0, 0, 19, 20, 21, 4, 0, 22, 41, 42, 43, 44, 45, 46, 47,
-				48, 49, 50, 51, 52, 59, 54, 55, 56, 0, 58, 0, 1, 30, 3, 4, 62, 63, 9, 0, 1, 2, 0, 4, 0, 1, 2, 57, 0, 5,
-				19, 20, 21, 5, 23, 24, 25, 26, 27, 28, 29, 19, 20, 21, 53, 23, 60, 25, 26, 27, 28, 29, 41, 42, 43, 44,
-				45, 46, 47, 48, 49, 50, 51, 52, 0, 54, 55, 56, 4, 58, 0, 1, 53, 3, 4, 0, 0, 53, 0, 60, 4, 0, 0, 0, 2, 2,
-				22, 4, 0, 19, 20, 21, 64, 23, 24, 25, 26, 27, 28, 29, 19, 20, 21, 0, 23, 0, 25, 26, 27, 28, 29, 41, 42,
-				43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 54, 55, 56, 0, 58, 0, 1, 2, 3, 0, 58, 53, 53, 59, 5, 0, 0, 2,
-				0, 60, 5, 0, 4, 0, 19, 20, 21, 6, 23, 6, 25, 26, 27, 28, 29, 19, 20, 21, 0, 23, 22, 25, 26, 27, 28, 29,
-				41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 54, 55, 56, 0, 1, 6, 3, 0, 1, 53, 0, 1, 2, 0, 0, 5,
-				57, 67, 68, 0, 61, 0, 19, 20, 21, 4, 23, 0, 25, 26, 27, 28, 29, 19, 20, 21, 0, 0, 19, 20, 21, 0, 0, 64,
-				41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 54, 55, 56, 19, 20, 21, 53, 23, 0, 25, 26, 27, 28,
-				29, 64, 0, 0, 61, 19, 20, 21, 57, 6, 53, 60, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 3,
-				4, 5, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 77, 0, 0, 79, 23, 0, 1, 2, 3, 4, 5, 9, 7, 8, 9,
-				10, 11, 12, 13, 14, 15, 16, 17, 18, 0, 1, 2, 3, 23, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
-				0, 57, 0, 65, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 0, 0, 0, 2, 65, 0, 1, 2,
-				3, 4, 5, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 0, 0, 0, 0, 0, 0, 19, 20, 21, 4, 57, 0, 1, 2,
-				3, 58, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 53, 0, 0, 2, 0, 0, 5, 0, 62, 63, 62, 63, 0, 1,
-				2, 3, 65, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 0, 1, 2, 3, 60, 5, 6, 7, 8, 9, 10, 11, 12,
-				13, 14, 15, 16, 17, 18, 0, 1, 2, 3, 53, 5, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 0, 1, 2, 3,
-				0, 5, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 0, 1, 2, 3, 0, 5, 0, 7, 8, 9, 10, 11, 12, 13, 14,
-				15, 16, 17, 18, 0, 1, 2, 3, 0, 5, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 0, 0, 0, 0, 19, 20,
-				21, 0, 23, 2, 25, 26, 27, 28, 29, 0, 0, 10, 11, 4, 0, 5, 0, 76, 4, 0, 0, 5, 62, 63, 62, 63, 6, 0, 0, 0,
-				0, 22, 4, 0, 53, 0, 22, 0, 19, 20, 21, 6, 0, 6, 0, 0, 0, 66, 6, 0, 0, 57, 57, 0, 53, 0, 0, 0, 0, 0, 64,
-				0, 0, 0, 0, 0, 0, 66, 0, 60, 0, 57, 0, 0, 0, 78, 0, 67, 68, 0, 0, 80, 0, 67, 68, 0, 58, 57, 59, 0, 0, 0,
-				0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 59, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static byte termCheck[] = TermCheck.termCheck;
-
-	@Override
-	public final int termCheck(int index) {
-		return termCheck[index];
-	}
-
-	public interface TermAction {
-		public final static char termAction[] = { 0, 2340, 4170, 1, 4169, 1488, 1, 660, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 2349, 1, 2441, 1, 1, 1, 1, 1, 1361, 854, 812, 1434, 1394, 1620, 1329, 1353, 1380, 1371,
-				1375, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2340, 1, 1, 1, 2340, 2347, 8, 2325, 2325, 2325, 2325, 2325,
-				2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325,
-				2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325,
-				2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 1670, 2325, 2325, 2325,
-				1692, 2325, 2340, 4170, 1, 4169, 1488, 1, 660, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2349, 1,
-				2441, 1, 1, 1, 1, 1, 1361, 854, 812, 1434, 1394, 1620, 1329, 1353, 1380, 1371, 1375, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 2340, 1, 1, 1, 183, 2347, 2340, 4170, 1, 4169, 2350, 1, 660, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 2349, 1, 2441, 1, 1, 1, 1, 1, 1361, 854, 812, 1434, 1394, 1620, 1329, 1353, 1380,
-				1371, 1375, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1714, 1, 1, 1, 2340, 4170, 1, 4169, 2350, 1, 660, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2349, 1, 2441, 1, 1, 1, 1, 1, 1361, 854, 812, 1434, 1394, 1620,
-				1329, 1353, 1380, 1371, 1375, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 71, 1, 1, 1, 2340, 2351, 2162, 2352,
-				11, 2014, 2316, 1893, 1791, 1967, 1596, 1327, 405, 2353, 2354, 2355, 2356, 869, 600, 2555, 2556, 2557,
-				2340, 2504, 360, 2505, 2503, 2558, 2506, 2502, 2340, 2351, 2340, 2352, 2340, 2351, 661, 2352, 552, 254,
-				1399, 2509, 2514, 2513, 2511, 2512, 2510, 2515, 2516, 2508, 2517, 2518, 2519, 60, 1499, 439, 345, 2340,
-				1, 1, 1, 2350, 1, 1, 2567, 1940, 1, 2340, 20, 180, 2331, 2344, 2331, 2331, 533, 62, 1, 1, 1, 2349, 1,
-				2647, 1, 1, 1, 1, 1, 180, 180, 180, 2331, 180, 43, 180, 180, 180, 180, 180, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 158, 1, 1, 1, 2340, 1, 1, 1, 2350, 1, 2340, 2331, 1927, 1273, 856, 710, 184, 1, 2331, 287, 301,
-				2350, 2343, 1, 1, 1, 2349, 1, 2647, 1, 1, 1, 1, 1, 1927, 1273, 856, 710, 2340, 2349, 236, 2340, 2346,
-				1085, 224, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2340, 1, 1, 1, 556, 224, 1252, 2340, 1062, 1039, 1016,
-				993, 970, 924, 947, 901, 878, 833, 61, 1390, 300, 2340, 4170, 1, 4169, 2350, 1, 660, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 224, 2345, 230, 2349, 224, 2441, 186, 4160, 233, 4160, 2340, 1361, 854, 812, 1434,
-				1394, 1620, 1329, 1353, 1380, 1371, 1375, 2340, 4170, 1, 4169, 2350, 1, 660, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 2340, 185, 4162, 2349, 4162, 2441, 1927, 1273, 856, 710, 73, 1361, 854, 812, 1434, 1394, 1620,
-				1329, 1353, 1380, 1371, 1375, 2340, 4170, 1, 4169, 2350, 1, 660, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				2340, 207, 4167, 2349, 4167, 2441, 2340, 2351, 2340, 2352, 2175, 1361, 854, 812, 1434, 1394, 1620, 1329,
-				1353, 1380, 1371, 1375, 2340, 4170, 1, 4169, 2350, 1, 660, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 254,
-				2567, 1940, 2349, 2340, 2441, 2262, 2340, 63, 343, 2252, 1361, 854, 812, 1434, 1394, 1620, 1329, 1353,
-				1380, 1371, 1375, 2340, 4170, 1, 4169, 2350, 1, 660, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 52, 209, 2351,
-				2349, 2352, 2441, 2340, 1221, 673, 64, 2340, 1361, 854, 812, 1434, 1394, 1620, 1329, 1353, 1380, 1371,
-				1375, 2340, 4170, 1, 4169, 2350, 1, 660, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1339, 580, 54, 2349, 2340,
-				2441, 2270, 2340, 2579, 1221, 673, 1361, 854, 812, 1434, 1394, 1620, 1329, 1353, 1380, 1371, 1375, 2340,
-				4170, 1, 4169, 2350, 1, 660, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 53, 1339, 580, 2349, 2340, 2441, 69,
-				1221, 673, 2340, 1503, 1361, 854, 812, 1434, 1394, 1620, 1329, 1353, 1380, 1371, 1375, 2340, 4170, 1,
-				4169, 2350, 1, 660, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 208, 374, 2349, 374, 2441, 660, 2340, 2340,
-				2274, 67, 1361, 854, 812, 1434, 1394, 1620, 1329, 1353, 1380, 1371, 1375, 2340, 4170, 1, 4169, 2350, 1,
-				660, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2315, 686, 2340, 2349, 2340, 2441, 1, 1179, 2340, 1302, 2319,
-				1361, 854, 812, 1434, 1394, 1620, 1329, 1353, 1380, 1371, 1375, 2340, 4170, 1, 4169, 2350, 1, 660, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2567, 1940, 2349, 461, 2441, 2340, 1, 55, 1, 192, 1361, 854, 812, 1434,
-				1394, 1620, 1329, 1353, 1380, 1371, 1375, 2340, 2347, 2340, 1, 1, 1, 2350, 1, 2537, 1, 1, 1, 1, 1, 2340,
-				119, 2286, 2340, 1, 2555, 2556, 2557, 2346, 221, 2349, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1231, 1, 1,
-				1, 65, 192, 2340, 1, 2328, 1, 191, 1944, 1990, 1656, 1, 2334, 1454, 131, 2346, 263, 2567, 1454, 1877, 1,
-				1, 1, 1, 1, 254, 1, 2537, 1, 1, 1, 1, 1, 2555, 2556, 2557, 635, 2504, 2345, 2505, 2503, 2558, 2506,
-				2502, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2340, 1, 1, 1, 2350, 191, 2340, 1, 635, 1, 192, 2340, 2340,
-				635, 2340, 2345, 2348, 132, 223, 1, 1372, 1987, 2349, 2346, 2340, 1, 1, 1, 2599, 1, 2537, 1, 1, 1, 1, 1,
-				2555, 2556, 2557, 2340, 2504, 2340, 2505, 2503, 2558, 2506, 2502, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				2340, 1, 1, 1, 2340, 192, 1, 521, 1940, 2352, 49, 2347, 635, 635, 1198, 2093, 266, 133, 1987, 237, 2345,
-				1, 2340, 224, 230, 2555, 2556, 2557, 1531, 2504, 234, 2505, 2503, 2558, 2506, 2502, 2555, 2556, 2557, 1,
-				2504, 224, 2505, 2503, 2558, 2506, 2502, 2509, 2514, 2513, 2511, 2512, 2510, 2515, 2516, 2508, 2517,
-				2518, 2519, 2340, 1499, 439, 345, 2340, 2351, 1708, 2352, 1, 2322, 635, 269, 2567, 1454, 212, 250, 254,
-				224, 2074, 2061, 249, 224, 2340, 2555, 2556, 2557, 2346, 2504, 272, 2505, 2503, 2558, 2506, 2502, 1, 1,
-				1, 70, 113, 2555, 2556, 2557, 130, 2340, 2599, 2509, 2514, 2513, 2511, 2512, 2510, 2515, 2516, 2508,
-				2517, 2518, 2519, 251, 1499, 439, 345, 2555, 2556, 2557, 635, 2504, 2340, 2505, 2503, 2558, 2506, 2502,
-				2599, 2340, 42, 1177, 1, 1, 1, 1834, 4153, 635, 2345, 2509, 2514, 2513, 2511, 2512, 2510, 2515, 2516,
-				2508, 2517, 2518, 2519, 1, 2351, 2162, 2352, 2344, 1412, 257, 1893, 1791, 1967, 1596, 1327, 405, 2353,
-				2354, 2355, 2356, 869, 600, 686, 2340, 66, 2337, 743, 2340, 2351, 2162, 2352, 2344, 1815, 1656, 1893,
-				1791, 1967, 1596, 1327, 405, 2353, 2354, 2355, 2356, 869, 600, 2340, 2351, 2162, 2352, 1131, 2014, 4153,
-				1893, 1791, 1967, 1596, 1327, 405, 2353, 2354, 2355, 2356, 869, 600, 89, 702, 2340, 2343, 1, 2351, 2162,
-				2352, 29, 2014, 4153, 1893, 1791, 1967, 1596, 1327, 405, 2353, 2354, 2355, 2356, 869, 600, 59, 271, 58,
-				1695, 2343, 2340, 2351, 2162, 2352, 2344, 2014, 252, 1893, 1791, 1967, 1596, 1327, 405, 2353, 2354,
-				2355, 2356, 869, 600, 2340, 2340, 2340, 2340, 2340, 1, 2555, 2556, 2557, 91, 1154, 2340, 2351, 2162,
-				2352, 29, 2014, 4153, 1893, 1791, 1967, 1596, 1327, 405, 2353, 2354, 2355, 2356, 869, 600, 635, 269,
-				2340, 1987, 2340, 2340, 254, 2340, 1944, 1990, 1944, 1990, 1, 2351, 2162, 2352, 2343, 2014, 4153, 1893,
-				1791, 1967, 1596, 1327, 405, 2353, 2354, 2355, 2356, 869, 600, 2340, 2351, 2162, 2352, 91, 2014, 4153,
-				1893, 1791, 1967, 1596, 1327, 405, 2353, 2354, 2355, 2356, 869, 600, 1, 2351, 2162, 2352, 635, 2014,
-				2340, 1893, 1791, 1967, 1596, 1327, 405, 2353, 2354, 2355, 2356, 869, 600, 2340, 2351, 2163, 2352, 68,
-				2014, 2340, 1893, 1791, 1967, 1596, 1327, 405, 2353, 2354, 2355, 2356, 869, 600, 2340, 2351, 2162, 2352,
-				57, 2014, 56, 1893, 1791, 1967, 1596, 1327, 405, 2353, 2354, 2355, 2356, 869, 600, 2340, 2351, 2171,
-				2352, 134, 2014, 293, 1893, 1791, 1967, 1596, 1327, 405, 2353, 2354, 2355, 2356, 869, 600, 30, 208, 1,
-				72, 2555, 2556, 2557, 32, 2504, 421, 2505, 2503, 2558, 2506, 2502, 1, 51, 2366, 2367, 117, 2340, 2093,
-				50, 461, 2350, 253, 2340, 2093, 1944, 1990, 1944, 1990, 4153, 2340, 286, 202, 30, 117, 1440, 2340, 1306,
-				190, 2349, 190, 2555, 2556, 2557, 186, 190, 185, 1, 1, 2340, 1634, 207, 2340, 2340, 2369, 3442, 2340,
-				1959, 2340, 2340, 2340, 2340, 2340, 2598, 2340, 2340, 2340, 2340, 2340, 2340, 724, 2340, 117, 2340,
-				1636, 2340, 2340, 2340, 533, 2340, 2074, 2061, 2340, 2340, 598, 2340, 2074, 2061, 2340, 1440, 500, 1285,
-				2340, 2340, 2340, 2340, 2340, 612, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2352, 2351 };
-	}
-
-	public final static char termAction[] = TermAction.termAction;
-
-	@Override
-	public final int termAction(int index) {
-		return termAction[index];
-	}
-
-	public interface Asb {
-		public final static char asb[] = { 0, 496, 1, 425, 281, 496, 427, 494, 310, 322, 492, 322, 492, 492, 322, 492,
-				322, 283, 466, 427, 416, 527, 494, 283, 201, 133, 132, 375, 48, 466, 374, 253, 492, 241, 241, 492, 241,
-				427, 466, 338, 466, 214, 283, 427, 79, 214, 26, 427, 254, 494, 102, 494, 205, 466, 330, 427, 216, 468,
-				283, 425, 141, 99, 306, 167, 269, 451, 451, 451, 451, 451, 83, 451, 451, 451, 161, 178, 183, 181, 189,
-				185, 192, 191, 194, 193, 195, 216, 129, 494, 451, 48, 374, 253, 449, 202, 202, 241, 527, 527, 436, 527,
-				527, 202, 253, 139, 451, 139, 269, 494, 102, 205, 205, 330, 330, 338, 333, 337, 427, 306, 99, 82, 79,
-				451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 338, 338, 529, 269, 269, 241, 241, 3, 451, 451,
-				451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 337, 129, 24,
-				251, 202, 451, 202, 267, 451, 252, 451, 451, 254, 436, 139, 436, 198, 380, 102, 129, 244, 102, 205, 207,
-				431, 207, 330, 306, 335, 336, 211, 466, 216, 451, 451, 99, 83, 26, 466, 211, 338, 338, 338, 99, 181,
-				181, 178, 178, 185, 185, 183, 183, 183, 183, 191, 189, 193, 192, 139, 194, 429, 24, 449, 202, 338, 527,
-				338, 338, 253, 436, 451, 102, 246, 207, 129, 451, 241, 306, 330, 214, 338, 535, 333, 99, 99, 529, 535,
-				341, 494, 451, 207, 45, 202, 449, 436, 451, 436, 436, 129, 201, 451, 200, 129, 330, 216, 338, 129, 22,
-				378, 241, 451, 44, 3, 202, 338, 252, 246, 451, 338, 161, 26, 99, 241, 451, 338, 3, 202, 436, 99, 436,
-				338, 436 };
-	}
-
-	public final static char asb[] = Asb.asb;
-
-	@Override
-	public final int asb(int index) {
-		return asb[index];
-	}
-
-	public interface Asr {
-		public final static byte asr[] = { 0, 73, 0, 4, 60, 12, 13, 14, 15, 16, 1, 3, 2, 10, 11, 9, 5, 7, 8, 17, 18, 0,
-				4, 58, 53, 66, 2, 13, 14, 15, 16, 1, 3, 10, 11, 9, 5, 7, 8, 17, 18, 12, 6, 0, 61, 53, 66, 0, 25, 41, 19,
-				42, 54, 26, 43, 27, 44, 45, 28, 20, 46, 47, 23, 55, 29, 56, 48, 49, 21, 50, 51, 52, 1, 3, 4, 61, 57, 22,
-				0, 19, 20, 21, 23, 10, 11, 9, 5, 7, 8, 17, 18, 12, 2, 1, 3, 13, 14, 15, 16, 65, 4, 0, 25, 41, 19, 42,
-				54, 26, 43, 27, 44, 45, 28, 20, 46, 47, 23, 55, 29, 56, 48, 49, 21, 50, 51, 52, 1, 3, 24, 4, 58, 0, 2,
-				4, 61, 57, 60, 22, 53, 59, 0, 19, 20, 21, 10, 11, 9, 5, 7, 8, 17, 18, 12, 2, 1, 3, 13, 14, 15, 16, 0,
-				53, 2, 66, 80, 10, 11, 61, 83, 84, 85, 86, 87, 89, 88, 90, 91, 92, 5, 67, 68, 7, 8, 63, 62, 69, 70, 71,
-				72, 74, 75, 9, 76, 77, 78, 58, 81, 82, 65, 60, 59, 57, 22, 4, 0, 1, 3, 4, 58, 57, 0, 5, 2, 53, 60, 4,
-				25, 41, 19, 42, 54, 26, 43, 27, 44, 45, 28, 20, 46, 47, 23, 55, 29, 56, 48, 49, 21, 50, 51, 52, 64, 1,
-				3, 0, 22, 4, 5, 1, 2, 59, 0, 73, 79, 58, 32, 34, 6, 38, 40, 35, 30, 36, 37, 33, 31, 39, 24, 4, 22, 12,
-				13, 14, 15, 16, 10, 11, 9, 7, 8, 17, 18, 5, 2, 1, 3, 54, 55, 56, 49, 41, 46, 44, 45, 43, 42, 47, 48, 50,
-				51, 52, 29, 26, 23, 25, 28, 27, 19, 20, 21, 0, 49, 41, 46, 44, 45, 43, 42, 47, 48, 50, 51, 52, 59, 22,
-				29, 26, 23, 25, 28, 27, 19, 20, 21, 5, 1, 2, 53, 57, 60, 4, 0, 9, 5, 7, 8, 67, 68, 62, 63, 69, 70, 71,
-				72, 74, 75, 76, 77, 78, 81, 82, 59, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 65, 60, 58, 6, 4, 57, 22,
-				61, 0, 66, 80, 10, 11, 9, 7, 8, 67, 68, 62, 63, 69, 70, 71, 72, 74, 75, 76, 77, 78, 81, 82, 61, 83, 84,
-				85, 86, 87, 88, 89, 90, 91, 92, 57, 53, 60, 25, 19, 26, 27, 28, 20, 23, 29, 21, 22, 4, 5, 2, 1, 0, 4,
-				57, 58, 61, 0, 32, 34, 6, 38, 40, 35, 30, 36, 37, 33, 31, 39, 24, 22, 4, 2, 13, 14, 15, 16, 1, 3, 10,
-				11, 9, 7, 8, 17, 18, 12, 5, 0, 25, 41, 19, 42, 54, 26, 43, 27, 44, 45, 28, 20, 46, 47, 23, 55, 29, 56,
-				48, 49, 21, 50, 51, 52, 1, 3, 6, 0, 73, 25, 41, 19, 42, 54, 26, 43, 27, 44, 45, 28, 20, 46, 47, 23, 55,
-				29, 56, 48, 49, 21, 50, 51, 52, 1, 3, 5, 22, 4, 24, 2, 0, 4, 60, 5, 2, 53, 0, 5, 25, 41, 19, 42, 54, 26,
-				43, 27, 44, 45, 28, 20, 46, 47, 23, 55, 29, 56, 48, 49, 21, 50, 51, 52, 1, 3, 64, 0 };
-	}
-
-	public final static byte asr[] = Asr.asr;
-
-	@Override
-	public final int asr(int index) {
-		return asr[index];
-	}
-
-	public interface Nasb {
-		public final static char nasb[] = { 0, 150, 25, 32, 15, 159, 110, 45, 121, 122, 13, 122, 108, 108, 122, 107,
-				122, 116, 165, 112, 25, 25, 45, 105, 33, 59, 59, 25, 25, 165, 25, 51, 7, 7, 7, 7, 7, 9, 25, 157, 165,
-				156, 75, 112, 63, 156, 54, 94, 69, 67, 105, 25, 105, 25, 30, 96, 89, 141, 18, 32, 42, 65, 79, 25, 168,
-				43, 43, 43, 43, 43, 64, 43, 43, 43, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 133, 105, 25, 43, 25,
-				25, 85, 81, 33, 33, 7, 25, 25, 128, 25, 25, 33, 51, 25, 43, 25, 1, 25, 137, 105, 7, 30, 105, 157, 101,
-				25, 112, 79, 65, 64, 38, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 157, 157, 103, 168, 168, 57, 57,
-				35, 82, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 82, 43, 157, 52, 105, 25,
-				33, 43, 33, 172, 82, 25, 82, 82, 69, 128, 25, 128, 25, 25, 105, 52, 32, 146, 7, 92, 25, 25, 105, 79, 59,
-				59, 100, 165, 89, 43, 43, 65, 64, 124, 165, 154, 157, 157, 157, 65, 25, 25, 25, 25, 25, 25, 25, 25, 25,
-				25, 25, 25, 25, 25, 25, 25, 25, 41, 174, 33, 157, 25, 157, 157, 85, 128, 43, 137, 112, 92, 52, 43, 7,
-				79, 38, 156, 157, 163, 26, 65, 65, 28, 163, 125, 125, 43, 92, 49, 33, 174, 128, 82, 128, 128, 52, 33,
-				43, 25, 52, 38, 89, 157, 52, 40, 25, 7, 43, 47, 174, 33, 157, 25, 112, 43, 157, 61, 54, 65, 7, 43, 157,
-				174, 33, 128, 65, 128, 157, 128 };
-	}
-
-	public final static char nasb[] = Nasb.nasb;
-
-	@Override
-	public final int nasb(int index) {
-		return nasb[index];
-	}
-
-	public interface Nasr {
-		public final static char nasr[] = { 0, 84, 82, 81, 74, 80, 79, 1, 0, 37, 39, 36, 0, 109, 0, 37, 2, 100, 84, 83,
-				82, 81, 74, 80, 79, 0, 37, 42, 61, 60, 36, 0, 2, 17, 0, 2, 108, 0, 25, 0, 102, 55, 2, 6, 0, 106, 0, 121,
-				0, 119, 0, 2, 45, 0, 6, 55, 0, 90, 0, 46, 0, 117, 0, 2, 6, 40, 0, 110, 0, 2, 24, 1, 29, 92, 0, 24, 2,
-				123, 0, 75, 0, 17, 2, 27, 0, 29, 1, 68, 45, 2, 24, 0, 78, 0, 39, 44, 37, 42, 36, 0, 23, 37, 42, 60, 61,
-				2, 0, 112, 87, 0, 39, 44, 42, 37, 2, 0, 74, 69, 70, 71, 72, 64, 48, 0, 6, 55, 53, 0, 1, 29, 2, 30, 0,
-				113, 2, 24, 0, 95, 2, 57, 0, 2, 24, 47, 28, 0, 2, 57, 88, 0, 122, 2, 24, 0, 60, 61, 2, 23, 0, 2, 24,
-				103, 0, 2, 24, 36, 54, 0, 2, 57, 27, 0, 24, 47, 2, 63, 0 };
-	}
-
-	public final static char nasr[] = Nasr.nasr;
-
-	@Override
-	public final int nasr(int index) {
-		return nasr[index];
-	}
-
-	public interface TerminalIndex {
-		public final static char terminalIndex[] = { 0, 85, 2, 86, 87, 9, 3, 10, 11, 8, 6, 7, 68, 81, 82, 83, 84, 12,
-				13, 48, 64, 76, 92, 69, 93, 44, 55, 60, 63, 72, 77, 45, 46, 49, 50, 51, 57, 58, 59, 65, 71, 47, 52, 56,
-				61, 62, 66, 67, 74, 75, 78, 79, 80, 1, 54, 70, 73, 42, 91, 29, 90, 31, 16, 17, 30, 89, 4, 14, 15, 18,
-				19, 20, 21, 94, 22, 23, 24, 25, 26, 53, 5, 27, 28, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 88 };
-	}
-
-	public final static char terminalIndex[] = TerminalIndex.terminalIndex;
-
-	@Override
-	public final int terminalIndex(int index) {
-		return terminalIndex[index];
-	}
-
-	public interface NonterminalIndex {
-		public final static char nonterminalIndex[] = { 0, 99, 0, 0, 0, 0, 101, 105, 106, 107, 108, 109, 110, 111, 112,
-				113, 114, 98, 115, 116, 0, 0, 117, 96, 126, 134, 0, 100, 122, 118, 121, 0, 0, 0, 0, 0, 0, 156, 0, 159,
-				95, 153, 155, 0, 157, 97, 158, 125, 133, 0, 0, 0, 144, 104, 154, 0, 120, 148, 167, 170, 171, 172, 0, 0,
-				136, 0, 160, 166, 124, 137, 138, 139, 140, 143, 145, 165, 169, 103, 0, 128, 129, 130, 131, 132, 135,
-				141, 142, 0, 147, 152, 102, 119, 123, 127, 0, 146, 150, 0, 0, 151, 161, 164, 174, 179, 0, 0, 181, 0, 0,
-				0, 0, 149, 0, 162, 163, 168, 173, 0, 175, 176, 0, 177, 178, 180, 0, 0 };
-	}
-
-	public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
-
-	@Override
-	public final int nonterminalIndex(int index) {
-		return nonterminalIndex[index];
-	}
-
-	public interface ScopePrefix {
-		public final static char scopePrefix[] = { 82, 113, 92, 35, 41, 121, 12, 136, 21, 51, 69, 28, 47, 103, 145, 162,
-				169, 173, 149, 1, 1, 32, 56, 79, 177, 6, 107, 156, 156, 127, 99, 59, 59, 59 };
-	}
-
-	public final static char scopePrefix[] = ScopePrefix.scopePrefix;
-
-	@Override
-	public final int scopePrefix(int index) {
-		return scopePrefix[index];
-	}
-
-	public interface ScopeSuffix {
-		public final static char scopeSuffix[] = { 90, 90, 90, 4, 4, 90, 18, 142, 26, 4, 26, 26, 4, 101, 90, 26, 26, 4,
-				153, 4, 4, 26, 4, 26, 26, 9, 110, 159, 166, 130, 101, 66, 61, 74 };
-	}
-
-	public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
-
-	@Override
-	public final int scopeSuffix(int index) {
-		return scopeSuffix[index];
-	}
-
-	public interface ScopeLhs {
-		public final static char scopeLhs[] = { 71, 69, 71, 46, 46, 69, 53, 33, 62, 46, 39, 62, 46, 88, 28, 7, 6, 6, 20,
-				121, 120, 60, 46, 37, 4, 102, 88, 8, 6, 34, 88, 39, 44, 39 };
-	}
-
-	public final static char scopeLhs[] = ScopeLhs.scopeLhs;
-
-	@Override
-	public final int scopeLhs(int index) {
-		return scopeLhs[index];
-	}
-
-	public interface ScopeLa {
-		public final static byte scopeLa[] = { 58, 58, 58, 65, 65, 58, 58, 79, 60, 65, 60, 60, 65, 22, 58, 60, 60, 65,
-				59, 65, 65, 60, 65, 60, 60, 61, 1, 60, 60, 30, 22, 2, 2, 2 };
-	}
-
-	public final static byte scopeLa[] = ScopeLa.scopeLa;
-
-	@Override
-	public final int scopeLa(int index) {
-		return scopeLa[index];
-	}
-
-	public interface ScopeStateSet {
-		public final static byte scopeStateSet[] = { 119, 119, 119, 94, 94, 119, 25, 10, 98, 94, 105, 98, 94, 5, 9, 33,
-				33, 33, 63, 1, 3, 98, 94, 105, 33, 91, 5, 36, 33, 10, 5, 105, 107, 105 };
-	}
-
-	public final static byte scopeStateSet[] = ScopeStateSet.scopeStateSet;
-
-	@Override
-	public final int scopeStateSet(int index) {
-		return scopeStateSet[index];
-	}
-
-	public interface ScopeRhs {
-		public final static char scopeRhs[] = { 0, 149, 53, 0, 95, 0, 211, 95, 0, 31, 143, 0, 171, 209, 95, 6, 148, 0,
-				97, 0, 0, 159, 95, 2, 153, 0, 96, 0, 159, 95, 2, 0, 169, 2, 0, 115, 23, 194, 95, 53, 0, 115, 194, 95,
-				23, 53, 0, 115, 23, 53, 0, 115, 194, 95, 53, 0, 115, 53, 0, 130, 0, 2, 0, 162, 96, 0, 2, 96, 0, 159, 95,
-				2, 130, 0, 2, 0, 160, 96, 0, 145, 2, 0, 171, 191, 95, 6, 94, 205, 54, 0, 97, 0, 171, 191, 95, 6, 205,
-				54, 0, 150, 0, 98, 0, 204, 95, 150, 0, 95, 150, 0, 149, 98, 0, 187, 95, 6, 203, 94, 202, 167, 0, 187,
-				95, 6, 202, 167, 0, 123, 35, 0, 77, 2, 100, 96, 98, 0, 123, 116, 120, 2, 38, 0, 53, 121, 0, 185, 95, 6,
-				0, 120, 82, 112, 0, 29, 117, 0, 170, 2, 0, 96, 106, 0, 170, 2, 12, 0, 96, 104, 0, 201, 2, 99, 0, 120,
-				53, 99, 0, 120, 2, 0 };
-	}
-
-	public final static char scopeRhs[] = ScopeRhs.scopeRhs;
-
-	@Override
-	public final int scopeRhs(int index) {
-		return scopeRhs[index];
-	}
-
-	public interface ScopeState {
-		public final static char scopeState[] = { 0, 531, 0, 551, 0, 2084, 1868, 1682, 0, 1683, 1874, 1852, 1830, 1808,
-				1772, 1750, 1714, 1508, 1692, 1670, 1436, 1620, 1376, 1335, 0, 612, 500, 1591, 1573, 477, 1574, 556, 0,
-				1596, 1327, 405, 1574, 1815, 343, 686, 533, 1656, 461, 1927, 1273, 856, 710, 1339, 580, 1221, 673, 1990,
-				1944, 2093, 2074, 2061, 2014, 1967, 1412, 1893, 1791, 869, 600, 1306, 612, 1285, 1252, 1231, 1198, 1177,
-				1154, 1131, 1108, 789, 1085, 1062, 1039, 1016, 993, 970, 947, 924, 901, 878, 833, 766, 316, 812, 743,
-				556, 635, 500, 477, 0, 926, 783, 666, 610, 2088, 392, 1987, 1454, 2030, 1387, 0, 333, 376, 1636, 392,
-				1717, 1454, 1546, 1387, 1965, 1443, 1877, 1940, 1519, 0, 316, 658, 1544, 376, 0 };
-	}
-
-	public final static char scopeState[] = ScopeState.scopeState;
-
-	@Override
-	public final int scopeState(int index) {
-		return scopeState[index];
-	}
-
-	public interface InSymb {
-		public final static char inSymb[] = { 0, 0, 200, 117, 95, 215, 95, 193, 172, 173, 167, 174, 56, 55, 175, 54,
-				176, 177, 95, 2, 1, 130, 193, 207, 186, 135, 130, 179, 137, 95, 132, 6, 202, 180, 180, 205, 180, 147,
-				129, 145, 95, 2, 95, 57, 53, 2, 61, 147, 95, 94, 6, 94, 6, 129, 5, 147, 95, 216, 95, 117, 23, 115, 95,
-				100, 2, 12, 18, 17, 8, 7, 5, 9, 11, 10, 99, 102, 104, 103, 106, 105, 108, 107, 111, 109, 112, 95, 6,
-				148, 5, 137, 132, 185, 39, 31, 33, 37, 36, 30, 35, 40, 38, 122, 6, 34, 32, 94, 95, 203, 95, 6, 95, 5,
-				129, 159, 117, 160, 95, 95, 115, 194, 168, 92, 91, 90, 88, 89, 87, 86, 85, 84, 83, 61, 170, 120, 150, 2,
-				2, 80, 66, 2, 53, 68, 67, 5, 62, 63, 8, 7, 75, 74, 72, 71, 70, 69, 76, 9, 78, 77, 82, 81, 206, 95, 6, 4,
-				120, 95, 94, 2, 2, 123, 2, 2, 95, 59, 149, 59, 184, 94, 6, 187, 150, 188, 95, 191, 94, 192, 129, 95,
-				153, 154, 2, 95, 57, 194, 23, 115, 5, 116, 95, 2, 170, 170, 201, 120, 103, 103, 102, 102, 105, 105, 104,
-				104, 104, 104, 107, 106, 109, 108, 120, 111, 57, 95, 140, 156, 120, 30, 120, 120, 185, 59, 57, 95, 95,
-				191, 171, 61, 57, 95, 168, 2, 169, 95, 147, 115, 115, 147, 95, 116, 116, 59, 209, 95, 156, 110, 116, 2,
-				116, 116, 187, 204, 59, 145, 171, 168, 95, 159, 171, 57, 211, 66, 53, 212, 110, 156, 120, 123, 57, 59,
-				159, 138, 61, 149, 66, 53, 156, 110, 116, 79, 149, 116, 156, 116 };
-	}
-
-	public final static char inSymb[] = InSymb.inSymb;
-
-	@Override
-	public final int inSymb(int index) {
-		return inSymb[index];
-	}
-
-	public interface Name {
-		public final static String name[] = { "", "[", "(", "{", ".", "->", "++", "--", "&", "*", "+", "-", "~", "!",
-				"/", "%", ">>", "<<", "<", ">", "<=", ">=", "==", "!=", "^", "|", "&&", "||", "?", ":", "...", "=",
-				"*=", "/=", "%=", "+=", "-=", ">>=", "<<=", "&=", "^=", "|=", ",", "$empty", "auto", "break", "case",
-				"char", "const", "continue", "default", "do", "double", "else", "enum", "extern", "float", "for",
-				"goto", "if", "inline", "int", "long", "register", "restrict", "return", "short", "signed", "sizeof",
-				"static", "struct", "switch", "typedef", "union", "unsigned", "void", "volatile", "while", "_Bool",
-				"_Complex", "_Imaginary", "integer", "floating", "charconst", "stringlit", "identifier", "Completion",
-				"EndOfCompletion", "Invalid", "RightBracket", "RightParen", "RightBrace", "SemiColon", "ERROR_TOKEN",
-				"EOF_TOKEN", "]", ")", "}", ";", "identifier_token", "expression", "postfix_expression", "member_name",
-				"type_id", "initializer_list", "unary_expression", "cast_expression", "multiplicative_expression",
-				"additive_expression", "shift_expression", "relational_expression", "equality_expression",
-				"and_expression", "exclusive_or_expression", "inclusive_or_expression", "logical_and_expression",
-				"logical_or_expression", "assignment_expression", "expression_in_statement", "expression_list_actual",
-				"constant_expression", "statement", "compound_statement", "block_item_list", "block_item",
-				"declaration", "declaration_specifiers", "init_declarator_list", "simple_declaration_specifiers",
-				"struct_or_union_declaration_sp" + "ecifiers", "elaborated_declaration_specifi" + "ers",
-				"enum_declaration_specifiers", "typdef_name_declaration_specif" + "iers",
-				"no_type_declaration_specifier", "type_qualifier", "no_type_declaration_specifiers",
-				"simple_type_specifier", "struct_or_union_specifier", "elaborated_specifier", "enum_specifier",
-				"type_name_specifier", "init_declarator", "complete_declarator", "initializer", "declarator",
-				"struct_or_union", "struct_declaration_list", "struct_declaration", "specifier_qualifier_list",
-				"struct_declarator_list", "complete_struct_declarator", "enumerator_list", "enumerator",
-				"direct_declarator", "pointer_seq", "array_direct_declarator", "basic_direct_declarator",
-				"knr_direct_declarator", "array_modifier", "function_direct_declarator", "parameter_type_list",
-				"function_declarator", "identifier_list", "knr_function_declarator", "array_modifier_type_qualifiers",
-				"type_qualifier_list", "parameter_list", "parameter_declaration", "complete_parameter_declarator",
-				"abstract_declarator", "direct_abstract_declarator", "basic_direct_abstract_declarat" + "or",
-				"array_direct_abstract_declarat" + "or", "initializer_seq", "designated_initializer", "designation",
-				"designator_list", "designator", "external_declaration_list", "external_declaration",
-				"declaration_list", "function_body" };
-	}
-
-	public final static String name[] = Name.name;
-
-	@Override
-	public final String name(int index) {
-		return name[index];
-	}
-
-	public final static int ERROR_SYMBOL = 24, SCOPE_UBOUND = 33, SCOPE_SIZE = 34, MAX_NAME_LENGTH = 38;
-
-	@Override
-	public final int getErrorSymbol() {
-		return ERROR_SYMBOL;
-	}
-
-	@Override
-	public final int getScopeUbound() {
-		return SCOPE_UBOUND;
-	}
-
-	@Override
-	public final int getScopeSize() {
-		return SCOPE_SIZE;
-	}
-
-	@Override
-	public final int getMaxNameLength() {
-		return MAX_NAME_LENGTH;
-	}
-
-	public final static int NUM_STATES = 291, NT_OFFSET = 93, LA_STATE_OFFSET = 2655, MAX_LA = 2147483647,
-			NUM_RULES = 315, NUM_NONTERMINALS = 125, NUM_SYMBOLS = 218, SEGMENT_SIZE = 8192, START_STATE = 1922,
-			IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 73, EOLT_SYMBOL = 73, ACCEPT_ACTION = 2315, ERROR_ACTION = 2340;
-
-	public final static boolean BACKTRACK = true;
-
-	@Override
-	public final int getNumStates() {
-		return NUM_STATES;
-	}
-
-	@Override
-	public final int getNtOffset() {
-		return NT_OFFSET;
-	}
-
-	@Override
-	public final int getLaStateOffset() {
-		return LA_STATE_OFFSET;
-	}
-
-	@Override
-	public final int getMaxLa() {
-		return MAX_LA;
-	}
-
-	@Override
-	public final int getNumRules() {
-		return NUM_RULES;
-	}
-
-	@Override
-	public final int getNumNonterminals() {
-		return NUM_NONTERMINALS;
-	}
-
-	@Override
-	public final int getNumSymbols() {
-		return NUM_SYMBOLS;
-	}
-
-	@Override
-	public final int getSegmentSize() {
-		return SEGMENT_SIZE;
-	}
-
-	@Override
-	public final int getStartState() {
-		return START_STATE;
-	}
-
-	@Override
-	public final int getStartSymbol() {
-		return lhs[0];
-	}
-
-	public final int getIdentifierSymbol() {
-		return IDENTIFIER_SYMBOL;
-	}
-
-	@Override
-	public final int getEoftSymbol() {
-		return EOFT_SYMBOL;
-	}
-
-	@Override
-	public final int getEoltSymbol() {
-		return EOLT_SYMBOL;
-	}
-
-	@Override
-	public final int getAcceptAction() {
-		return ACCEPT_ACTION;
-	}
-
-	@Override
-	public final int getErrorAction() {
-		return ERROR_ACTION;
-	}
-
-	@Override
-	public final boolean isValidForParser() {
-		return isValidForParser;
-	}
-
-	@Override
-	public final boolean getBacktrack() {
-		return BACKTRACK;
-	}
-
-	@Override
-	public final int originalState(int state) {
-		return -baseCheck[state];
-	}
-
-	@Override
-	public final int asi(int state) {
-		return asb[originalState(state)];
-	}
-
-	@Override
-	public final int nasi(int state) {
-		return nasb[originalState(state)];
-	}
-
-	@Override
-	public final int inSymbol(int state) {
-		return inSymb[originalState(state)];
-	}
-
-	@Override
-	public final int ntAction(int state, int sym) {
-		return baseAction[state + sym];
-	}
-
-	@Override
-	public final int tAction(int state, int sym) {
-		int i = baseAction[state], k = i + sym;
-		return termAction[termCheck[k] == sym ? k : i];
-	}
-
-	@Override
-	public final int lookAhead(int la_state, int sym) {
-		int k = la_state + sym;
-		return termAction[termCheck[k] == sym ? k : la_state];
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parsersym.java
deleted file mode 100644
index e445938..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parsersym.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2010 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.lrparser.c99;
-
-public interface C99Parsersym {
-	public final static int TK_auto = 25, TK_break = 31, TK_case = 32, TK_char = 41, TK_const = 19, TK_continue = 33,
-			TK_default = 34, TK_do = 35, TK_double = 42, TK_else = 79, TK_enum = 54, TK_extern = 26, TK_float = 43,
-			TK_for = 36, TK_goto = 37, TK_if = 38, TK_inline = 27, TK_int = 44, TK_long = 45, TK_register = 28,
-			TK_restrict = 20, TK_return = 39, TK_short = 46, TK_signed = 47, TK_sizeof = 12, TK_static = 23,
-			TK_struct = 55, TK_switch = 40, TK_typedef = 29, TK_union = 56, TK_unsigned = 48, TK_void = 49,
-			TK_volatile = 21, TK_while = 30, TK__Bool = 50, TK__Complex = 51, TK__Imaginary = 52, TK_integer = 13,
-			TK_floating = 14, TK_charconst = 15, TK_stringlit = 16, TK_identifier = 1, TK_Completion = 3,
-			TK_EndOfCompletion = 4, TK_Invalid = 93, TK_LeftBracket = 53, TK_LeftParen = 2, TK_LeftBrace = 6,
-			TK_Dot = 66, TK_Arrow = 80, TK_PlusPlus = 10, TK_MinusMinus = 11, TK_And = 9, TK_Star = 5, TK_Plus = 7,
-			TK_Minus = 8, TK_Tilde = 17, TK_Bang = 18, TK_Slash = 67, TK_Percent = 68, TK_RightShift = 62,
-			TK_LeftShift = 63, TK_LT = 69, TK_GT = 70, TK_LE = 71, TK_GE = 72, TK_EQ = 74, TK_NE = 75, TK_Caret = 76,
-			TK_Or = 77, TK_AndAnd = 78, TK_OrOr = 81, TK_Question = 82, TK_Colon = 59, TK_DotDotDot = 64,
-			TK_Assign = 61, TK_StarAssign = 83, TK_SlashAssign = 84, TK_PercentAssign = 85, TK_PlusAssign = 86,
-			TK_MinusAssign = 87, TK_RightShiftAssign = 88, TK_LeftShiftAssign = 89, TK_AndAssign = 90,
-			TK_CaretAssign = 91, TK_OrAssign = 92, TK_Comma = 57, TK_RightBracket = 65, TK_RightParen = 60,
-			TK_RightBrace = 58, TK_SemiColon = 22, TK_ERROR_TOKEN = 24, TK_EOF_TOKEN = 73;
-
-	public final static String orderedTerminalSymbols[] = { "", "identifier", "LeftParen", "Completion",
-			"EndOfCompletion", "Star", "LeftBrace", "Plus", "Minus", "And", "PlusPlus", "MinusMinus", "sizeof",
-			"integer", "floating", "charconst", "stringlit", "Tilde", "Bang", "const", "restrict", "volatile",
-			"SemiColon", "static", "ERROR_TOKEN", "auto", "extern", "inline", "register", "typedef", "while", "break",
-			"case", "continue", "default", "do", "for", "goto", "if", "return", "switch", "char", "double", "float",
-			"int", "long", "short", "signed", "unsigned", "void", "_Bool", "_Complex", "_Imaginary", "LeftBracket",
-			"enum", "struct", "union", "Comma", "RightBrace", "Colon", "RightParen", "Assign", "RightShift",
-			"LeftShift", "DotDotDot", "RightBracket", "Dot", "Slash", "Percent", "LT", "GT", "LE", "GE", "EOF_TOKEN",
-			"EQ", "NE", "Caret", "Or", "AndAnd", "else", "Arrow", "OrOr", "Question", "StarAssign", "SlashAssign",
-			"PercentAssign", "PlusAssign", "MinusAssign", "RightShiftAssign", "LeftShiftAssign", "AndAssign",
-			"CaretAssign", "OrAssign", "Invalid" };
-
-	public final static boolean isValidForParser = true;
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParser.java
deleted file mode 100644
index 8882a88..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParser.java
+++ /dev/null
@@ -1,1675 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2015 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.lrparser.c99;
-
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.cdt.core.dom.ast.IASTBinaryExpression;
-import org.eclipse.cdt.core.dom.ast.IASTCastExpression;
-import org.eclipse.cdt.core.dom.ast.IASTCompletionNode;
-import org.eclipse.cdt.core.dom.ast.IASTCompositeTypeSpecifier;
-import org.eclipse.cdt.core.dom.ast.IASTElaboratedTypeSpecifier;
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-import org.eclipse.cdt.core.dom.ast.IASTLiteralExpression;
-import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression;
-import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter;
-import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
-import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
-import org.eclipse.cdt.core.dom.lrparser.ITokenCollector;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
-import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
-import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
-import org.eclipse.cdt.core.dom.lrparser.action.c99.C99BuildASTParserAction;
-import org.eclipse.cdt.core.dom.lrparser.action.c99.C99SecondaryParserFactory;
-import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser;
-import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
-import org.eclipse.cdt.core.index.IIndex;
-import org.eclipse.cdt.core.parser.IScanner;
-import org.eclipse.cdt.internal.core.dom.parser.c.CNodeFactory;
-
-import lpg.lpgjavaruntime.BadParseException;
-import lpg.lpgjavaruntime.BadParseSymFileException;
-import lpg.lpgjavaruntime.DiagnoseParser;
-import lpg.lpgjavaruntime.ErrorToken;
-import lpg.lpgjavaruntime.IToken;
-import lpg.lpgjavaruntime.LexStream;
-import lpg.lpgjavaruntime.Monitor;
-import lpg.lpgjavaruntime.NotBacktrackParseTableException;
-import lpg.lpgjavaruntime.NullExportedSymbolsException;
-import lpg.lpgjavaruntime.NullTerminalSymbolsException;
-import lpg.lpgjavaruntime.ParseErrorCodes;
-import lpg.lpgjavaruntime.ParseTable;
-import lpg.lpgjavaruntime.PrsStream;
-import lpg.lpgjavaruntime.RuleAction;
-import lpg.lpgjavaruntime.Token;
-import lpg.lpgjavaruntime.UndefinedEofSymbolException;
-import lpg.lpgjavaruntime.UnimplementedTerminalsException;
-
-public class C99SizeofExpressionParser extends PrsStream
-		implements RuleAction, ITokenStream, ITokenCollector, ISecondaryParser<IASTExpression> {
-	private static ParseTable prs = new C99SizeofExpressionParserprs();
-	private FixedBacktrackingParser btParser;
-
-	public FixedBacktrackingParser getParser() {
-		return btParser;
-	}
-
-	private void setResult(Object object) {
-		btParser.setSym1(object);
-	}
-
-	public Object getRhsSym(int i) {
-		return btParser.getSym(i);
-	}
-
-	public int getRhsTokenIndex(int i) {
-		return btParser.getToken(i);
-	}
-
-	public IToken getRhsIToken(int i) {
-		return super.getIToken(getRhsTokenIndex(i));
-	}
-
-	public int getRhsFirstTokenIndex(int i) {
-		return btParser.getFirstToken(i);
-	}
-
-	public IToken getRhsFirstIToken(int i) {
-		return super.getIToken(getRhsFirstTokenIndex(i));
-	}
-
-	public int getRhsLastTokenIndex(int i) {
-		return btParser.getLastToken(i);
-	}
-
-	public IToken getRhsLastIToken(int i) {
-		return super.getIToken(getRhsLastTokenIndex(i));
-	}
-
-	public int getLeftSpan() {
-		return btParser.getFirstToken();
-	}
-
-	@Override
-	public IToken getLeftIToken() {
-		return super.getIToken(getLeftSpan());
-	}
-
-	public int getRightSpan() {
-		return btParser.getLastToken();
-	}
-
-	@Override
-	public IToken getRightIToken() {
-		return super.getIToken(getRightSpan());
-	}
-
-	public int getRhsErrorTokenIndex(int i) {
-		int index = btParser.getToken(i);
-		IToken err = super.getIToken(index);
-		return (err instanceof ErrorToken ? index : 0);
-	}
-
-	public ErrorToken getRhsErrorIToken(int i) {
-		int index = btParser.getToken(i);
-		IToken err = super.getIToken(index);
-		return (ErrorToken) (err instanceof ErrorToken ? err : null);
-	}
-
-	public C99SizeofExpressionParser(LexStream lexStream) {
-		super(lexStream);
-
-		try {
-			super.remapTerminalSymbols(orderedTerminalSymbols(), C99SizeofExpressionParserprs.EOFT_SYMBOL);
-		} catch (NullExportedSymbolsException e) {
-		} catch (NullTerminalSymbolsException e) {
-		} catch (UnimplementedTerminalsException e) {
-			java.util.ArrayList unimplemented_symbols = e.getSymbols();
-			System.out.println("The Lexer will not scan the following token(s):");
-			for (int i = 0; i < unimplemented_symbols.size(); i++) {
-				Integer id = (Integer) unimplemented_symbols.get(i);
-				System.out.println("    " + C99SizeofExpressionParsersym.orderedTerminalSymbols[id.intValue()]);
-			}
-			System.out.println();
-		} catch (UndefinedEofSymbolException e) {
-			throw new Error(new UndefinedEofSymbolException("The Lexer does not implement the Eof symbol "
-					+ C99SizeofExpressionParsersym.orderedTerminalSymbols[C99SizeofExpressionParserprs.EOFT_SYMBOL]));
-		}
-	}
-
-	@Override
-	public String[] orderedTerminalSymbols() {
-		return C99SizeofExpressionParsersym.orderedTerminalSymbols;
-	}
-
-	public String getTokenKindName(int kind) {
-		return C99SizeofExpressionParsersym.orderedTerminalSymbols[kind];
-	}
-
-	public int getEOFTokenKind() {
-		return C99SizeofExpressionParserprs.EOFT_SYMBOL;
-	}
-
-	public PrsStream getParseStream() {
-		return this;
-	}
-
-	//
-	// Report error message for given error_token.
-	//
-	public final void reportErrorTokenMessage(int error_token, String msg) {
-		int firsttok = super.getFirstErrorToken(error_token), lasttok = super.getLastErrorToken(error_token);
-		String location = super.getFileName() + ':'
-				+ (firsttok > lasttok ? (super.getEndLine(lasttok) + ":" + super.getEndColumn(lasttok))
-						: (super.getLine(error_token) + ":" + super.getColumn(error_token) + ":"
-								+ super.getEndLine(error_token) + ":" + super.getEndColumn(error_token)))
-				+ ": ";
-		super.reportError((firsttok > lasttok ? ParseErrorCodes.INSERTION_CODE : ParseErrorCodes.SUBSTITUTION_CODE),
-				location, msg);
-	}
-
-	public void parser() {
-		parser(null, 0);
-	}
-
-	public void parser(Monitor monitor) {
-		parser(monitor, 0);
-	}
-
-	public void parser(int error_repair_count) {
-		parser(null, error_repair_count);
-	}
-
-	public void parser(Monitor monitor, int error_repair_count) {
-		try {
-			btParser = new FixedBacktrackingParser(monitor, this, prs, this);
-		} catch (NotBacktrackParseTableException e) {
-			throw new Error(new NotBacktrackParseTableException(
-					"Regenerate C99SizeofExpressionParserprs.java with -BACKTRACK option"));
-		} catch (BadParseSymFileException e) {
-			throw new Error(
-					new BadParseSymFileException("Bad Parser Symbol File -- C99SizeofExpressionParsersym.java"));
-		}
-
-		try {
-			btParser.parse(error_repair_count);
-		} catch (BadParseException e) {
-			reset(e.error_token); // point to error token
-			DiagnoseParser diagnoseParser = new DiagnoseParser(this, prs);
-			diagnoseParser.diagnose(e.error_token);
-		}
-	}
-
-	private C99BuildASTParserAction action;
-	private IASTCompletionNode compNode;
-
-	public C99SizeofExpressionParser(IScanner scanner, IDOMTokenMap tokenMap,
-			IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Map<String, String> properties) {
-		initActions(properties);
-		action.initializeTranslationUnit(scanner, builtinBindingsProvider, index);
-		CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap);
-	}
-
-	private void initActions(Map<String, String> properties) {
-		ScopedStack<Object> astStack = new ScopedStack<>();
-
-		action = new C99BuildASTParserAction(this, astStack, CNodeFactory.getDefault(),
-				C99SecondaryParserFactory.getDefault());
-		action.setParserProperties(properties);
-
-	}
-
-	@Override
-	public void addToken(IToken token) {
-		token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called?
-		super.addToken(token);
-	}
-
-	@Override
-	public IASTExpression parse() {
-		// this has to be done, or... kaboom!
-		setStreamLength(getSize());
-
-		final int errorRepairCount = -1; // -1 means full error handling
-		parser(null, errorRepairCount); // do the actual parse
-		super.resetTokenStream(); // allow tokens to be garbage collected
-
-		compNode = action.getASTCompletionNode(); // the completion node may be null
-		return (IASTExpression) action.getParseResult();
-	}
-
-	@Override
-	public IASTCompletionNode getCompletionNode() {
-		return compNode;
-	}
-
-	// uncomment this method to use with backtracking parser
-	@Override
-	public List<IToken> getRuleTokens() {
-		return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
-	}
-
-	@Override
-	public String[] getOrderedTerminalSymbols() {
-		return C99SizeofExpressionParsersym.orderedTerminalSymbols;
-	}
-
-	@Override
-	@SuppressWarnings("nls")
-	public String getName() {
-		return "C99SizeofExpressionParser";
-	}
-
-	private ITokenMap tokenMap = null;
-
-	@Override
-	public void setTokens(List<IToken> tokens) {
-		resetTokenStream();
-		addToken(new Token(null, 0, 0, 0)); // dummy token
-		for (IToken token : tokens) {
-			token.setKind(tokenMap.mapKind(token.getKind()));
-			addToken(token);
-		}
-		addToken(new Token(null, 0, 0, C99SizeofExpressionParsersym.TK_EOF_TOKEN));
-	}
-
-	public C99SizeofExpressionParser(ITokenStream stream, Map<String, String> properties) { // constructor for creating secondary parser
-		initActions(properties);
-		tokenMap = new TokenMap(C99SizeofExpressionParsersym.orderedTerminalSymbols,
-				stream.getOrderedTerminalSymbols());
-	}
-
-	@Override
-	public void ruleAction(int ruleNumber) {
-		switch (ruleNumber) {
-
-		//
-		// Rule 1:  <openscope-ast> ::= $Empty
-		//
-		case 1: {
-			action.openASTScope();
-			break;
-		}
-
-		//
-		// Rule 2:  <empty> ::= $Empty
-		//
-		case 2: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 13:  literal ::= integer
-		//
-		case 13: {
-			action.consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant);
-			break;
-		}
-
-		//
-		// Rule 14:  literal ::= floating
-		//
-		case 14: {
-			action.consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant);
-			break;
-		}
-
-		//
-		// Rule 15:  literal ::= charconst
-		//
-		case 15: {
-			action.consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant);
-			break;
-		}
-
-		//
-		// Rule 16:  literal ::= stringlit
-		//
-		case 16: {
-			action.consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal);
-			break;
-		}
-
-		//
-		// Rule 18:  primary_expression ::= primary_expression_id
-		//
-		case 18: {
-			action.consumeExpressionID();
-			break;
-		}
-
-		//
-		// Rule 19:  primary_expression ::= ( expression )
-		//
-		case 19: {
-			action.consumeExpressionBracketed();
-			break;
-		}
-
-		//
-		// Rule 22:  postfix_expression ::= postfix_expression [ expression ]
-		//
-		case 22: {
-			action.consumeExpressionArraySubscript();
-			break;
-		}
-
-		//
-		// Rule 23:  postfix_expression ::= postfix_expression ( expression_list_opt )
-		//
-		case 23: {
-			action.consumeExpressionFunctionCall();
-			break;
-		}
-
-		//
-		// Rule 24:  postfix_expression ::= postfix_expression . member_name
-		//
-		case 24: {
-			action.consumeExpressionFieldReference(false);
-			break;
-		}
-
-		//
-		// Rule 25:  postfix_expression ::= postfix_expression -> member_name
-		//
-		case 25: {
-			action.consumeExpressionFieldReference(true);
-			break;
-		}
-
-		//
-		// Rule 26:  postfix_expression ::= postfix_expression ++
-		//
-		case 26: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr);
-			break;
-		}
-
-		//
-		// Rule 27:  postfix_expression ::= postfix_expression --
-		//
-		case 27: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr);
-			break;
-		}
-
-		//
-		// Rule 28:  postfix_expression ::= ( type_id ) initializer_list
-		//
-		case 28: {
-			action.consumeExpressionTypeIdInitializer();
-			break;
-		}
-
-		//
-		// Rule 33:  unary_expression ::= ++ unary_expression
-		//
-		case 33: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr);
-			break;
-		}
-
-		//
-		// Rule 34:  unary_expression ::= -- unary_expression
-		//
-		case 34: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr);
-			break;
-		}
-
-		//
-		// Rule 35:  unary_expression ::= & cast_expression
-		//
-		case 35: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper);
-			break;
-		}
-
-		//
-		// Rule 36:  unary_expression ::= * cast_expression
-		//
-		case 36: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_star);
-			break;
-		}
-
-		//
-		// Rule 37:  unary_expression ::= + cast_expression
-		//
-		case 37: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus);
-			break;
-		}
-
-		//
-		// Rule 38:  unary_expression ::= - cast_expression
-		//
-		case 38: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus);
-			break;
-		}
-
-		//
-		// Rule 39:  unary_expression ::= ~ cast_expression
-		//
-		case 39: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde);
-			break;
-		}
-
-		//
-		// Rule 40:  unary_expression ::= ! cast_expression
-		//
-		case 40: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_not);
-			break;
-		}
-
-		//
-		// Rule 41:  unary_expression ::= sizeof unary_expression
-		//
-		case 41: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof);
-			break;
-		}
-
-		//
-		// Rule 43:  cast_expression ::= ( type_id ) cast_expression
-		//
-		case 43: {
-			action.consumeExpressionCast(IASTCastExpression.op_cast);
-			break;
-		}
-
-		//
-		// Rule 45:  multiplicative_expression ::= multiplicative_expression * cast_expression
-		//
-		case 45: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply);
-			break;
-		}
-
-		//
-		// Rule 46:  multiplicative_expression ::= multiplicative_expression / cast_expression
-		//
-		case 46: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide);
-			break;
-		}
-
-		//
-		// Rule 47:  multiplicative_expression ::= multiplicative_expression % cast_expression
-		//
-		case 47: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo);
-			break;
-		}
-
-		//
-		// Rule 49:  additive_expression ::= additive_expression + multiplicative_expression
-		//
-		case 49: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus);
-			break;
-		}
-
-		//
-		// Rule 50:  additive_expression ::= additive_expression - multiplicative_expression
-		//
-		case 50: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus);
-			break;
-		}
-
-		//
-		// Rule 52:  shift_expression ::= shift_expression << additive_expression
-		//
-		case 52: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft);
-			break;
-		}
-
-		//
-		// Rule 53:  shift_expression ::= shift_expression >> additive_expression
-		//
-		case 53: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight);
-			break;
-		}
-
-		//
-		// Rule 55:  relational_expression ::= relational_expression < shift_expression
-		//
-		case 55: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan);
-			break;
-		}
-
-		//
-		// Rule 56:  relational_expression ::= relational_expression > shift_expression
-		//
-		case 56: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan);
-			break;
-		}
-
-		//
-		// Rule 57:  relational_expression ::= relational_expression <= shift_expression
-		//
-		case 57: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual);
-			break;
-		}
-
-		//
-		// Rule 58:  relational_expression ::= relational_expression >= shift_expression
-		//
-		case 58: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual);
-			break;
-		}
-
-		//
-		// Rule 60:  equality_expression ::= equality_expression == relational_expression
-		//
-		case 60: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals);
-			break;
-		}
-
-		//
-		// Rule 61:  equality_expression ::= equality_expression != relational_expression
-		//
-		case 61: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals);
-			break;
-		}
-
-		//
-		// Rule 63:  and_expression ::= and_expression & equality_expression
-		//
-		case 63: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd);
-			break;
-		}
-
-		//
-		// Rule 65:  exclusive_or_expression ::= exclusive_or_expression ^ and_expression
-		//
-		case 65: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor);
-			break;
-		}
-
-		//
-		// Rule 67:  inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression
-		//
-		case 67: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr);
-			break;
-		}
-
-		//
-		// Rule 69:  logical_and_expression ::= logical_and_expression && inclusive_or_expression
-		//
-		case 69: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd);
-			break;
-		}
-
-		//
-		// Rule 71:  logical_or_expression ::= logical_or_expression || logical_and_expression
-		//
-		case 71: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr);
-			break;
-		}
-
-		//
-		// Rule 73:  conditional_expression ::= logical_or_expression ? expression : assignment_expression
-		//
-		case 73: {
-			action.consumeExpressionConditional();
-			break;
-		}
-
-		//
-		// Rule 75:  assignment_expression ::= unary_expression = assignment_expression
-		//
-		case 75: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign);
-			break;
-		}
-
-		//
-		// Rule 76:  assignment_expression ::= unary_expression *= assignment_expression
-		//
-		case 76: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign);
-			break;
-		}
-
-		//
-		// Rule 77:  assignment_expression ::= unary_expression /= assignment_expression
-		//
-		case 77: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign);
-			break;
-		}
-
-		//
-		// Rule 78:  assignment_expression ::= unary_expression %= assignment_expression
-		//
-		case 78: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign);
-			break;
-		}
-
-		//
-		// Rule 79:  assignment_expression ::= unary_expression += assignment_expression
-		//
-		case 79: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign);
-			break;
-		}
-
-		//
-		// Rule 80:  assignment_expression ::= unary_expression -= assignment_expression
-		//
-		case 80: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign);
-			break;
-		}
-
-		//
-		// Rule 81:  assignment_expression ::= unary_expression <<= assignment_expression
-		//
-		case 81: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign);
-			break;
-		}
-
-		//
-		// Rule 82:  assignment_expression ::= unary_expression >>= assignment_expression
-		//
-		case 82: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign);
-			break;
-		}
-
-		//
-		// Rule 83:  assignment_expression ::= unary_expression &= assignment_expression
-		//
-		case 83: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign);
-			break;
-		}
-
-		//
-		// Rule 84:  assignment_expression ::= unary_expression ^= assignment_expression
-		//
-		case 84: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign);
-			break;
-		}
-
-		//
-		// Rule 85:  assignment_expression ::= unary_expression |= assignment_expression
-		//
-		case 85: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign);
-			break;
-		}
-
-		//
-		// Rule 88:  expression_list ::= <openscope-ast> expression_list_actual
-		//
-		case 88: {
-			action.consumeExpressionList();
-			break;
-		}
-
-		//
-		// Rule 90:  expression_list_opt ::= $Empty
-		//
-		case 90: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 100:  statement ::= ERROR_TOKEN
-		//
-		case 100: {
-			action.consumeStatementProblem();
-			break;
-		}
-
-		//
-		// Rule 101:  labeled_statement ::= identifier_token : statement
-		//
-		case 101: {
-			action.consumeStatementLabeled();
-			break;
-		}
-
-		//
-		// Rule 102:  labeled_statement ::= case constant_expression : statement
-		//
-		case 102: {
-			action.consumeStatementCase();
-			break;
-		}
-
-		//
-		// Rule 103:  labeled_statement ::= default : statement
-		//
-		case 103: {
-			action.consumeStatementDefault();
-			break;
-		}
-
-		//
-		// Rule 104:  compound_statement ::= { }
-		//
-		case 104: {
-			action.consumeStatementCompoundStatement(false);
-			break;
-		}
-
-		//
-		// Rule 105:  compound_statement ::= { <openscope-ast> block_item_list }
-		//
-		case 105: {
-			action.consumeStatementCompoundStatement(true);
-			break;
-		}
-
-		//
-		// Rule 109:  block_item ::= declaration
-		//
-		case 109: {
-			action.consumeStatementDeclarationWithDisambiguation();
-			break;
-		}
-
-		//
-		// Rule 110:  expression_statement ::= ;
-		//
-		case 110: {
-			action.consumeStatementNull();
-			break;
-		}
-
-		//
-		// Rule 111:  expression_statement ::= expression_in_statement ;
-		//
-		case 111: {
-			action.consumeStatementExpression();
-			break;
-		}
-
-		//
-		// Rule 112:  selection_statement ::= if ( expression ) statement
-		//
-		case 112: {
-			action.consumeStatementIf(false);
-			break;
-		}
-
-		//
-		// Rule 113:  selection_statement ::= if ( expression ) statement else statement
-		//
-		case 113: {
-			action.consumeStatementIf(true);
-			break;
-		}
-
-		//
-		// Rule 114:  selection_statement ::= switch ( expression ) statement
-		//
-		case 114: {
-			action.consumeStatementSwitch();
-			break;
-		}
-
-		//
-		// Rule 116:  expression_opt ::= $Empty
-		//
-		case 116: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 117:  iteration_statement ::= do statement while ( expression ) ;
-		//
-		case 117: {
-			action.consumeStatementDoLoop(true);
-			break;
-		}
-
-		//
-		// Rule 118:  iteration_statement ::= do statement
-		//
-		case 118: {
-			action.consumeStatementDoLoop(false);
-			break;
-		}
-
-		//
-		// Rule 119:  iteration_statement ::= while ( expression ) statement
-		//
-		case 119: {
-			action.consumeStatementWhileLoop();
-			break;
-		}
-
-		//
-		// Rule 120:  iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement
-		//
-		case 120: {
-			action.consumeStatementForLoop();
-			break;
-		}
-
-		//
-		// Rule 121:  iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement
-		//
-		case 121: {
-			action.consumeStatementForLoop();
-			break;
-		}
-
-		//
-		// Rule 122:  jump_statement ::= goto identifier_token ;
-		//
-		case 122: {
-			action.consumeStatementGoto();
-			break;
-		}
-
-		//
-		// Rule 123:  jump_statement ::= continue ;
-		//
-		case 123: {
-			action.consumeStatementContinue();
-			break;
-		}
-
-		//
-		// Rule 124:  jump_statement ::= break ;
-		//
-		case 124: {
-			action.consumeStatementBreak();
-			break;
-		}
-
-		//
-		// Rule 125:  jump_statement ::= return ;
-		//
-		case 125: {
-			action.consumeStatementReturn(false);
-			break;
-		}
-
-		//
-		// Rule 126:  jump_statement ::= return expression ;
-		//
-		case 126: {
-			action.consumeStatementReturn(true);
-			break;
-		}
-
-		//
-		// Rule 127:  declaration ::= declaration_specifiers ;
-		//
-		case 127: {
-			action.consumeDeclarationSimple(false);
-			break;
-		}
-
-		//
-		// Rule 128:  declaration ::= declaration_specifiers <openscope-ast> init_declarator_list ;
-		//
-		case 128: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 129:  declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
-		//
-		case 129: {
-			action.consumeDeclarationSpecifiersSimple();
-			break;
-		}
-
-		//
-		// Rule 130:  declaration_specifiers ::= <openscope-ast> struct_or_union_declaration_specifiers
-		//
-		case 130: {
-			action.consumeDeclarationSpecifiersStructUnionEnum();
-			break;
-		}
-
-		//
-		// Rule 131:  declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
-		//
-		case 131: {
-			action.consumeDeclarationSpecifiersStructUnionEnum();
-			break;
-		}
-
-		//
-		// Rule 132:  declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
-		//
-		case 132: {
-			action.consumeDeclarationSpecifiersStructUnionEnum();
-			break;
-		}
-
-		//
-		// Rule 133:  declaration_specifiers ::= <openscope-ast> typdef_name_declaration_specifiers
-		//
-		case 133: {
-			action.consumeDeclarationSpecifiersTypedefName();
-			break;
-		}
-
-		//
-		// Rule 158:  init_declarator ::= complete_declarator = initializer
-		//
-		case 158: {
-			action.consumeDeclaratorWithInitializer(true);
-			break;
-		}
-
-		//
-		// Rule 160:  storage_class_specifier ::= storage_class_specifier_token
-		//
-		case 160: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 166:  simple_type_specifier ::= simple_type_specifier_token
-		//
-		case 166: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 179:  type_name_specifier ::= identifier_token
-		//
-		case 179: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 180:  struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { <openscope-ast> struct_declaration_list_opt }
-		//
-		case 180: {
-			action.consumeTypeSpecifierComposite(false);
-			break;
-		}
-
-		//
-		// Rule 181:  struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { <openscope-ast> struct_declaration_list_opt }
-		//
-		case 181: {
-			action.consumeTypeSpecifierComposite(true);
-			break;
-		}
-
-		//
-		// Rule 186:  elaborated_specifier ::= struct elaborated_specifier_hook identifier_token
-		//
-		case 186: {
-			action.consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct);
-			break;
-		}
-
-		//
-		// Rule 187:  elaborated_specifier ::= union elaborated_specifier_hook identifier_token
-		//
-		case 187: {
-			action.consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union);
-			break;
-		}
-
-		//
-		// Rule 188:  elaborated_specifier ::= enum elaborated_specifier_hook identifier_token
-		//
-		case 188: {
-			action.consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum);
-			break;
-		}
-
-		//
-		// Rule 194:  struct_declaration ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ;
-		//
-		case 194: {
-			action.consumeStructDeclaration(true);
-			break;
-		}
-
-		//
-		// Rule 195:  struct_declaration ::= specifier_qualifier_list ;
-		//
-		case 195: {
-			action.consumeStructDeclaration(false);
-			break;
-		}
-
-		//
-		// Rule 196:  struct_declaration ::= ERROR_TOKEN
-		//
-		case 196: {
-			action.consumeDeclarationProblem();
-			break;
-		}
-
-		//
-		// Rule 202:  struct_declarator ::= : constant_expression
-		//
-		case 202: {
-			action.consumeBitField(false);
-			break;
-		}
-
-		//
-		// Rule 203:  struct_declarator ::= declarator : constant_expression
-		//
-		case 203: {
-			action.consumeBitField(true);
-			break;
-		}
-
-		//
-		// Rule 204:  enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
-		//
-		case 204: {
-			action.consumeTypeSpecifierEnumeration(false);
-			break;
-		}
-
-		//
-		// Rule 205:  enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
-		//
-		case 205: {
-			action.consumeTypeSpecifierEnumeration(true);
-			break;
-		}
-
-		//
-		// Rule 211:  enumerator ::= identifier_token
-		//
-		case 211: {
-			action.consumeEnumerator(false);
-			break;
-		}
-
-		//
-		// Rule 212:  enumerator ::= identifier_token = constant_expression
-		//
-		case 212: {
-			action.consumeEnumerator(true);
-			break;
-		}
-
-		//
-		// Rule 213:  type_qualifier ::= type_qualifier_token
-		//
-		case 213: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 217:  function_specifier ::= inline
-		//
-		case 217: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 219:  declarator ::= <openscope-ast> pointer_seq direct_declarator
-		//
-		case 219: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 224:  basic_direct_declarator ::= declarator_id_name
-		//
-		case 224: {
-			action.consumeDirectDeclaratorIdentifier();
-			break;
-		}
-
-		//
-		// Rule 225:  basic_direct_declarator ::= ( declarator )
-		//
-		case 225: {
-			action.consumeDirectDeclaratorBracketed();
-			break;
-		}
-
-		//
-		// Rule 226:  declarator_id_name ::= identifier
-		//
-		case 226: {
-			action.consumeIdentifierName();
-			break;
-		}
-
-		//
-		// Rule 227:  array_direct_declarator ::= basic_direct_declarator array_modifier
-		//
-		case 227: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 228:  array_direct_declarator ::= array_direct_declarator array_modifier
-		//
-		case 228: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 230:  function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_type_list )
-		//
-		case 230: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true, true);
-			break;
-		}
-
-		//
-		// Rule 231:  function_direct_declarator ::= basic_direct_declarator ( )
-		//
-		case 231: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true, false);
-			break;
-		}
-
-		//
-		// Rule 233:  function_declarator ::= <openscope-ast> pointer_seq function_direct_declarator
-		//
-		case 233: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 234:  knr_direct_declarator ::= basic_direct_declarator ( <openscope-ast> identifier_list )
-		//
-		case 234: {
-			action.consumeDirectDeclaratorFunctionDeclaratorKnR();
-			break;
-		}
-
-		//
-		// Rule 236:  knr_function_declarator ::= <openscope-ast> pointer_seq knr_direct_declarator
-		//
-		case 236: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 237:  identifier_list ::= identifier
-		//
-		case 237: {
-			action.consumeIdentifierKnR();
-			break;
-		}
-
-		//
-		// Rule 238:  identifier_list ::= identifier_list , identifier
-		//
-		case 238: {
-			action.consumeIdentifierKnR();
-			break;
-		}
-
-		//
-		// Rule 239:  array_modifier ::= [ ]
-		//
-		case 239: {
-			action.consumeDirectDeclaratorArrayModifier(false);
-			break;
-		}
-
-		//
-		// Rule 240:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ]
-		//
-		case 240: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false);
-			break;
-		}
-
-		//
-		// Rule 241:  array_modifier ::= [ assignment_expression ]
-		//
-		case 241: {
-			action.consumeDirectDeclaratorArrayModifier(true);
-			break;
-		}
-
-		//
-		// Rule 242:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
-		//
-		case 242: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 243:  array_modifier ::= [ static assignment_expression ]
-		//
-		case 243: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true);
-			break;
-		}
-
-		//
-		// Rule 244:  array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
-		//
-		case 244: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 245:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ]
-		//
-		case 245: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 246:  array_modifier ::= [ * ]
-		//
-		case 246: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false);
-			break;
-		}
-
-		//
-		// Rule 247:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ]
-		//
-		case 247: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false);
-			break;
-		}
-
-		//
-		// Rule 249:  pointer_seq ::= pointer_hook * pointer_hook
-		//
-		case 249: {
-			action.consumePointer();
-			break;
-		}
-
-		//
-		// Rule 250:  pointer_seq ::= pointer_seq pointer_hook * pointer_hook
-		//
-		case 250: {
-			action.consumePointer();
-			break;
-		}
-
-		//
-		// Rule 251:  pointer_seq ::= pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
-		//
-		case 251: {
-			action.consumePointerTypeQualifierList();
-			break;
-		}
-
-		//
-		// Rule 252:  pointer_seq ::= pointer_seq pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
-		//
-		case 252: {
-			action.consumePointerTypeQualifierList();
-			break;
-		}
-
-		//
-		// Rule 256:  parameter_type_list ::= parameter_list
-		//
-		case 256: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 257:  parameter_type_list ::= parameter_list , ...
-		//
-		case 257: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 258:  parameter_type_list ::= ...
-		//
-		case 258: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 261:  parameter_declaration ::= declaration_specifiers complete_parameter_declarator
-		//
-		case 261: {
-			action.consumeParameterDeclaration();
-			break;
-		}
-
-		//
-		// Rule 262:  parameter_declaration ::= declaration_specifiers
-		//
-		case 262: {
-			action.consumeParameterDeclarationWithoutDeclarator();
-			break;
-		}
-
-		//
-		// Rule 265:  type_id ::= specifier_qualifier_list
-		//
-		case 265: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 266:  type_id ::= specifier_qualifier_list abstract_declarator
-		//
-		case 266: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 268:  abstract_declarator ::= <openscope-ast> pointer_seq
-		//
-		case 268: {
-			action.consumeDeclaratorWithPointer(false);
-			break;
-		}
-
-		//
-		// Rule 269:  abstract_declarator ::= <openscope-ast> pointer_seq direct_abstract_declarator
-		//
-		case 269: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 273:  basic_direct_abstract_declarator ::= ( abstract_declarator )
-		//
-		case 273: {
-			action.consumeDirectDeclaratorBracketed();
-			break;
-		}
-
-		//
-		// Rule 274:  array_direct_abstract_declarator ::= array_modifier
-		//
-		case 274: {
-			action.consumeDirectDeclaratorArrayDeclarator(false);
-			break;
-		}
-
-		//
-		// Rule 275:  array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
-		//
-		case 275: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 276:  array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
-		//
-		case 276: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 277:  function_direct_abstract_declarator ::= ( )
-		//
-		case 277: {
-			action.consumeDirectDeclaratorFunctionDeclarator(false, false);
-			break;
-		}
-
-		//
-		// Rule 278:  function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( )
-		//
-		case 278: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true, false);
-			break;
-		}
-
-		//
-		// Rule 279:  function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list )
-		//
-		case 279: {
-			action.consumeDirectDeclaratorFunctionDeclarator(false, true);
-			break;
-		}
-
-		//
-		// Rule 280:  function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list )
-		//
-		case 280: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true, true);
-			break;
-		}
-
-		//
-		// Rule 281:  initializer ::= assignment_expression
-		//
-		case 281: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 282:  initializer ::= initializer_list
-		//
-		case 282: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 283:  initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq comma_opt } end_initializer_list
-		//
-		case 283: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 284:  initializer_list ::= { <openscope-ast> }
-		//
-		case 284: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 285:  start_initializer_list ::= $Empty
-		//
-		case 285: {
-			action.initializerListStart();
-			break;
-		}
-
-		//
-		// Rule 286:  end_initializer_list ::= $Empty
-		//
-		case 286: {
-			action.initializerListEnd();
-			break;
-		}
-
-		//
-		// Rule 291:  designated_initializer ::= <openscope-ast> designation = initializer
-		//
-		case 291: {
-			action.consumeInitializerDesignated();
-			break;
-		}
-
-		//
-		// Rule 295:  designator_base ::= [ constant_expression ]
-		//
-		case 295: {
-			action.consumeDesignatorArray();
-			break;
-		}
-
-		//
-		// Rule 296:  designator_base ::= . identifier_token
-		//
-		case 296: {
-			action.consumeDesignatorField();
-			break;
-		}
-
-		//
-		// Rule 297:  designator ::= [ constant_expression ]
-		//
-		case 297: {
-			action.consumeDesignatorArray();
-			break;
-		}
-
-		//
-		// Rule 298:  designator ::= . identifier_token
-		//
-		case 298: {
-			action.consumeDesignatorField();
-			break;
-		}
-
-		//
-		// Rule 299:  translation_unit ::= external_declaration_list
-		//
-		case 299: {
-			action.consumeTranslationUnit();
-			break;
-		}
-
-		//
-		// Rule 300:  translation_unit ::= $Empty
-		//
-		case 300: {
-			action.consumeTranslationUnit();
-			break;
-		}
-
-		//
-		// Rule 305:  external_declaration ::= ;
-		//
-		case 305: {
-			action.consumeDeclarationEmpty();
-			break;
-		}
-
-		//
-		// Rule 306:  external_declaration ::= ERROR_TOKEN
-		//
-		case 306: {
-			action.consumeDeclarationProblem();
-			break;
-		}
-
-		//
-		// Rule 310:  function_definition ::= <openscope-ast> function_declarator function_body
-		//
-		case 310: {
-			action.consumeFunctionDefinition(false);
-			break;
-		}
-
-		//
-		// Rule 311:  function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
-		//
-		case 311: {
-			action.consumeFunctionDefinitionKnR();
-			break;
-		}
-
-		//
-		// Rule 312:  normal_function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
-		//
-		case 312: {
-			action.consumeFunctionDefinition(true);
-			break;
-		}
-
-		//
-		// Rule 313:  function_body ::= { }
-		//
-		case 313: {
-			action.consumeStatementCompoundStatement(false);
-			break;
-		}
-
-		//
-		// Rule 314:  function_body ::= { <openscope-ast> block_item_list }
-		//
-		case 314: {
-			action.consumeStatementCompoundStatement(true);
-			break;
-		}
-
-		//
-		// Rule 316:  no_sizeof_type_id_start ::= ERROR_TOKEN
-		//
-		case 316: {
-			action.consumeEmpty();
-			break;
-		}
-
-		default:
-			break;
-		}
-		return;
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParserprs.java
deleted file mode 100644
index 87a196a..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParserprs.java
+++ /dev/null
@@ -1,702 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2015 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.lrparser.c99;
-
-public class C99SizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C99SizeofExpressionParsersym {
-
-	public interface IsKeyword {
-		public final static byte isKeyword[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0 };
-	}
-
-	public final static byte isKeyword[] = IsKeyword.isKeyword;
-
-	public final boolean isKeyword(int index) {
-		return isKeyword[index] != 0;
-	}
-
-	public interface BaseCheck {
-		public final static short baseCheck[] = { 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 4,
-				4, 3, 3, 2, 2, 4, 1, 0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 4, 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 3, 3, 3,
-				3, 1, 3, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 2, 1, 0, 1, 3,
-				1, 1, 1, 1, 1, 1, 1, 1, 3, 4, 3, 2, 4, 1, 2, 1, 1, 1, 2, 5, 7, 5, 1, 0, 7, 2, 5, 9, 8, 3, 2, 2, 2, 3, 2,
-				4, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 3, 1, 3, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6, 8, 0, 0, 1, 1, 3, 3, 3, 0, 1, 0, 1, 2, 4, 2, 1, 1,
-				1, 3, 1, 1, 2, 3, 7, 8, 0, 1, 0, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 3, 1, 2, 2, 1, 5, 3, 1,
-				3, 5, 1, 3, 1, 3, 2, 4, 3, 5, 4, 6, 6, 3, 5, 1, 3, 4, 5, 6, 0, 1, 2, 1, 3, 1, 1, 3, 2, 1, 1, 1, 1, 2, 1,
-				2, 3, 1, 1, 1, 3, 1, 2, 2, 2, 3, 4, 5, 1, 1, 7, 3, 0, 0, 1, 1, 3, 3, 4, 1, 1, 2, 3, 2, 3, 2, 1, 0, 1, 2,
-				1, 1, 1, 1, 1, 2, 1, 3, 6, 4, 2, 4, 1, 1, -36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -4, -156, -115, 0, -14, 0, 0, 0, 0, -72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -167, 0, -29, 0, -104, 0, 0, 0, 0, -80, 0, 0, -116, 0, -16, 0, -17, 0, 0, 0, 0, 0, 0, 0,
-				-138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -178, 0, -128, -78, 0, 0, -48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -30, 0, 0, 0, -18, 0, -42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6, 0, 0, 0, 0, 0, 0, 0, 0,
-				-189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -19,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -117, 0, 0, -118, 0, -119, 0, 0, 0, -43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5, 0, 0, 0, 0, 0, 0, 0, -127, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -81, 0, 0, 0, 0, 0, 0, 0, 0, 0, -131, 0, -158, 0, -55, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -122, 0, 0, 0, 0, 0, 0, 0, 0, 0, -20, 0, -21, 0, 0, 0, 0, -27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -23, 0, -188, 0, -24, 0, 0, 0, 0, -74, 0, -12, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -57, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -25, 0, 0, 0, 0, 0, 0, 0, 0, 0, -58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -26, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -86, 0, 0, 0, 0, 0, 0, 0, 0, 0, -61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -87, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -88, 0, 0, 0, 0, 0, 0, 0, 0, 0, -63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-89, 0, 0, 0, 0, 0, 0, 0, 0, 0, -64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -90, 0, 0, 0, 0, 0, 0, 0, 0, 0, -65,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -91, 0, 0, 0, 0, 0, 0, 0, 0, 0, -66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -92, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -93, 0, 0, 0, 0, 0, 0, 0, 0, 0, -141, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -94, 0, 0, 0, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -95, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -134, 0, 0, 0, 0, 0, 0, 0, 0, -186, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -197, 0, 0, 0, 0, 0, 0, 0, 0, -13, 0, 0, 0, 0, 0, 0, 0, -7, 0, 0, 0, 0, 0, 0, 0, -192,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -135, 0, 0,
-				0, 0, 0, 0, 0, 0, -155, -96, 0, -170, 0, 0, -97, 0, -70, 0, 0, 0, 0, 0, 0, 0, -206, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -130, 0, 0, 0, 0, 0, 0, 0, -180,
-				-176, 0, 0, 0, 0, -75, 0, 0, -37, 0, 0, 0, 0, 0, 0, 0, 0, 0, -98, -145, 0, 0, -110, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -200, -193, -124, 0, -187, 0, 0, 0, 0, 0, -99, 0, -100, 0, -146, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -31, 0, -101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -184, -102, -85, 0, -33, 0, 0, -51,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -121, 0, 0, 0, 0, 0, 0, 0, -71, 0, 0, 0, 0, 0, 0, 0, -52, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -164, 0, 0, 0, -137, -154, 0, -34, 0, -105, 0, 0, 0, -183, 0, 0, -67, 0, 0, 0, 0, -107,
-				0, -123, 0, -83, 0, 0, 0, -140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -38,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-205, 0, 0, 0, -153, 0, -157, -68, 0, 0, -132, 0, -191, 0, -136, 0, -151, 0, 0, -44, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -8, 0, 0, 0, 0, 0, 0, 0, -166, 0, -45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -46, 0, 0, 0, 0, 0, 0, 0, 0, 0, -47, 0, 0, 0, 0, 0, 0, 0, 0, 0, -73, 0, 0, -76, -69, -109, 0, -112,
-				-139, -165, -171, 0, -111, 0, 0, 0, 0, 0, 0, 0, 0, -172, -175, 0, 0, 0, 0, -207, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -199, -204, 0, -147, 0, 0, 0, 0, -144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -9, 0, 0, 0, 0, 0, 0, 0, -10, 0, 0, 0, 0, 0, 0, 0, -11, 0, 0, 0, 0, 0, 0, 0, -35, -39, 0, 0, 0,
-				0, 0, 0, 0, 0, -113, 0, -40, 0, 0, 0, 0, 0, 0, 0, -173, 0, -103, -126, -143, -162, 0, -41, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -15, -129, -159, 0, 0, 0, 0, -28, -32, 0, 0, 0, 0, -179, 0, -160, -148, -190, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -185, 0, -77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -79, 0, 0, 0, -196, -82,
-				0, 0, 0, 0, 0, -106, -169, 0, 0, 0, 0, 0, 0, -84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -125, 0, 0, -152, -181, 0, 0, 0, 0, -182, 0, 0, 0, 0, 0, 0, -133, 0, 0, -168, 0, 0, 0, -150,
-				-1, -114, -163, 0, 0, 0, 0, 0, -53, 0, 0, 0, 0, 0, 0, -161, -149, 0, -202, 0, 0, 0, 0, 0, 0, 0, -203, 0,
-				0, 0, 0, 0, 0, -201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -194, 0, 0, -195, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static short baseCheck[] = BaseCheck.baseCheck;
-
-	@Override
-	public final int baseCheck(int index) {
-		return baseCheck[index];
-	}
-
-	public final static short rhs[] = baseCheck;
-
-	@Override
-	public final int rhs(int index) {
-		return rhs[index];
-	}
-
-	public interface BaseAction {
-		public final static char baseAction[] = { 87, 11, 102, 24, 24, 23, 23, 39, 39, 69, 69, 1, 1, 2, 2, 2, 2, 3, 3,
-				3, 4, 5, 5, 5, 5, 5, 5, 5, 5, 59, 59, 70, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 10,
-				10, 10, 12, 12, 12, 12, 12, 13, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 20, 20,
-				20, 20, 20, 20, 20, 20, 20, 20, 103, 45, 40, 88, 88, 72, 72, 47, 104, 104, 104, 104, 104, 104, 104, 105,
-				105, 105, 106, 106, 111, 111, 112, 112, 107, 107, 108, 108, 108, 114, 114, 109, 109, 109, 109, 109, 110,
-				110, 110, 110, 110, 113, 113, 25, 25, 25, 25, 25, 28, 28, 28, 78, 78, 73, 73, 73, 73, 74, 74, 74, 75,
-				75, 75, 76, 76, 76, 77, 77, 77, 115, 115, 116, 116, 117, 29, 31, 31, 31, 31, 31, 53, 54, 54, 54, 54, 54,
-				54, 54, 54, 54, 54, 54, 54, 63, 60, 60, 89, 90, 65, 65, 61, 61, 61, 66, 79, 79, 80, 80, 67, 67, 67, 49,
-				91, 91, 81, 82, 82, 82, 62, 62, 92, 83, 83, 84, 84, 68, 68, 21, 22, 22, 22, 30, 48, 48, 32, 32, 32, 32,
-				35, 35, 37, 33, 33, 34, 38, 38, 118, 118, 36, 119, 119, 93, 93, 26, 26, 26, 26, 26, 26, 26, 26, 26, 85,
-				50, 50, 50, 50, 27, 56, 56, 55, 55, 55, 57, 57, 51, 51, 94, 94, 71, 71, 58, 58, 58, 41, 41, 41, 42, 43,
-				43, 43, 44, 44, 44, 44, 64, 64, 46, 46, 52, 96, 95, 95, 95, 95, 86, 97, 98, 98, 99, 99, 100, 100, 120,
-				120, 121, 121, 122, 122, 122, 122, 124, 124, 123, 123, 123, 125, 126, 126, 87, 87, 1, 781, 17, 21, 18,
-				344, 739, 44, 388, 386, 524, 31, 468, 634, 632, 662, 650, 718, 666, 74, 91, 135, 213, 15, 668, 329, 991,
-				607, 137, 134, 136, 160, 275, 20, 17, 21, 18, 344, 739, 44, 388, 386, 524, 1154, 468, 634, 632, 662,
-				650, 718, 666, 74, 1427, 139, 166, 692, 239, 360, 31, 50, 143, 146, 149, 152, 421, 446, 1269, 360, 187,
-				241, 1229, 194, 340, 1425, 1587, 1600, 1605, 1619, 1213, 441, 20, 17, 21, 18, 344, 739, 44, 388, 386,
-				524, 341, 468, 634, 632, 662, 650, 718, 666, 74, 281, 336, 20, 17, 21, 18, 344, 739, 44, 388, 386, 524,
-				341, 468, 634, 632, 662, 650, 718, 666, 74, 281, 1444, 443, 293, 195, 282, 693, 25, 575, 97, 384, 1265,
-				489, 20, 17, 21, 18, 344, 42, 44, 388, 386, 524, 287, 468, 970, 282, 360, 31, 255, 213, 12, 1265, 489,
-				20, 17, 21, 18, 344, 42, 44, 388, 386, 844, 289, 288, 489, 20, 17, 21, 18, 344, 42, 40, 1076, 465, 20,
-				17, 21, 18, 344, 739, 44, 388, 386, 524, 290, 468, 634, 632, 662, 650, 718, 666, 74, 281, 489, 20, 17,
-				21, 18, 344, 739, 44, 388, 386, 524, 30, 468, 634, 632, 662, 650, 718, 666, 74, 91, 24, 342, 360, 186,
-				282, 576, 1356, 360, 188, 294, 1265, 489, 20, 17, 21, 18, 344, 42, 44, 388, 386, 865, 291, 537, 20, 17,
-				21, 18, 344, 739, 44, 388, 386, 524, 1642, 468, 634, 632, 662, 650, 718, 666, 74, 1539, 513, 20, 17, 21,
-				18, 344, 41, 340, 299, 20, 17, 21, 18, 344, 739, 44, 388, 386, 524, 446, 468, 634, 632, 662, 650, 718,
-				666, 74, 1540, 189, 179, 236, 240, 489, 20, 17, 21, 18, 344, 42, 44, 388, 386, 524, 50, 468, 634, 632,
-				662, 1212, 135, 213, 254, 213, 580, 396, 63, 137, 134, 136, 160, 489, 20, 17, 21, 18, 344, 739, 44, 388,
-				386, 524, 219, 468, 634, 632, 662, 650, 718, 666, 74, 92, 139, 166, 313, 536, 282, 1131, 327, 143, 146,
-				149, 152, 323, 446, 513, 20, 17, 21, 18, 344, 34, 1425, 1587, 1600, 1605, 1619, 1213, 489, 20, 17, 21,
-				18, 344, 739, 44, 388, 386, 524, 275, 468, 634, 632, 662, 650, 718, 666, 74, 85, 489, 20, 17, 21, 18,
-				344, 739, 44, 388, 386, 524, 413, 468, 634, 632, 662, 650, 718, 666, 74, 84, 489, 20, 17, 21, 18, 344,
-				739, 44, 388, 386, 524, 524, 468, 634, 632, 662, 650, 718, 666, 74, 83, 489, 20, 17, 21, 18, 344, 739,
-				44, 388, 386, 524, 283, 468, 634, 632, 662, 650, 718, 666, 74, 82, 489, 20, 17, 21, 18, 344, 739, 44,
-				388, 386, 524, 561, 468, 634, 632, 662, 650, 718, 666, 74, 81, 489, 20, 17, 21, 18, 344, 739, 44, 388,
-				386, 524, 199, 468, 634, 632, 662, 650, 718, 666, 74, 80, 489, 20, 17, 21, 18, 344, 739, 44, 388, 386,
-				524, 201, 468, 634, 632, 662, 650, 718, 666, 74, 79, 489, 20, 17, 21, 18, 344, 739, 44, 388, 386, 524,
-				110, 468, 634, 632, 662, 650, 718, 666, 74, 78, 489, 20, 17, 21, 18, 344, 739, 44, 388, 386, 524, 117,
-				468, 634, 632, 662, 650, 718, 666, 74, 77, 489, 20, 17, 21, 18, 344, 739, 44, 388, 386, 524, 448, 468,
-				634, 632, 662, 650, 718, 666, 74, 76, 489, 20, 17, 21, 18, 344, 739, 44, 388, 386, 524, 472, 468, 634,
-				632, 662, 650, 718, 666, 74, 75, 489, 20, 17, 21, 18, 344, 739, 44, 388, 386, 524, 657, 468, 634, 632,
-				662, 650, 718, 666, 74, 73, 489, 20, 17, 21, 18, 344, 739, 44, 388, 386, 524, 678, 468, 634, 632, 662,
-				650, 718, 666, 74, 1556, 489, 20, 17, 21, 18, 344, 739, 44, 388, 386, 524, 200, 468, 634, 632, 662, 650,
-				718, 666, 74, 1569, 489, 20, 17, 21, 18, 344, 42, 44, 388, 386, 524, 191, 468, 634, 632, 662, 650, 718,
-				666, 93, 489, 20, 17, 21, 18, 344, 42, 44, 388, 386, 524, 685, 468, 634, 632, 662, 650, 718, 666, 93,
-				513, 20, 17, 21, 18, 344, 33, 1571, 489, 20, 17, 21, 18, 344, 42, 39, 489, 20, 17, 21, 18, 344, 42, 44,
-				388, 386, 524, 212, 468, 634, 632, 662, 650, 718, 666, 93, 489, 20, 17, 21, 18, 344, 42, 44, 388, 386,
-				524, 50, 468, 634, 632, 662, 650, 718, 666, 93, 394, 57, 1645, 696, 194, 1358, 104, 1692, 416, 20, 17,
-				21, 18, 344, 42, 43, 489, 20, 17, 21, 18, 344, 42, 44, 388, 386, 524, 202, 468, 634, 632, 662, 650, 718,
-				666, 93, 489, 20, 17, 21, 18, 344, 42, 44, 388, 386, 524, 105, 468, 634, 632, 662, 650, 1198, 28, 648,
-				360, 296, 1570, 1536, 1265, 562, 1585, 203, 489, 20, 17, 21, 18, 344, 42, 44, 802, 274, 650, 207, 255,
-				213, 236, 218, 1182, 221, 1462, 223, 224, 229, 1541, 276, 267, 1137, 671, 272, 701, 676, 59, 263, 360,
-				1432, 277, 254, 213, 274, 711, 1699, 6, 264, 718, 218, 1182, 221, 1462, 223, 224, 229, 255, 213, 267,
-				1137, 671, 272, 373, 1285, 429, 1681, 218, 1182, 221, 1462, 223, 224, 229, 513, 228, 1429, 445, 696,
-				246, 189, 179, 397, 1681, 261, 489, 20, 17, 21, 18, 344, 42, 44, 388, 386, 524, 206, 468, 634, 632,
-				1150, 135, 213, 89, 59, 1084, 586, 210, 138, 134, 136, 160, 489, 20, 17, 21, 18, 344, 42, 44, 388, 386,
-				524, 152, 468, 634, 1178, 50, 542, 1432, 397, 1277, 400, 140, 166, 284, 305, 1684, 1261, 397, 144, 147,
-				150, 153, 715, 446, 717, 1699, 470, 274, 1279, 1349, 608, 19, 1611, 219, 1182, 221, 1462, 223, 224, 229,
-				1538, 609, 269, 1137, 671, 272, 218, 1182, 221, 1462, 223, 224, 229, 489, 20, 17, 21, 18, 344, 42, 44,
-				823, 1459, 489, 20, 17, 21, 18, 344, 42, 44, 388, 386, 524, 209, 1077, 489, 20, 17, 21, 18, 344, 42, 44,
-				388, 386, 524, 305, 1082, 1079, 1443, 50, 541, 627, 397, 198, 200, 333, 1699, 360, 298, 716, 1612, 722,
-				1567, 1011, 489, 20, 17, 21, 18, 344, 42, 44, 388, 386, 886, 23, 539, 218, 1182, 221, 1462, 223, 224,
-				229, 489, 20, 17, 21, 18, 344, 42, 38, 206, 1459, 489, 20, 17, 21, 18, 344, 42, 44, 388, 386, 907, 489,
-				20, 17, 21, 18, 344, 42, 44, 388, 928, 489, 20, 17, 21, 18, 344, 42, 44, 388, 949, 675, 199, 200, 232,
-				281, 281, 180, 397, 59, 50, 58, 1526, 365, 20, 17, 21, 18, 344, 42, 36, 1651, 698, 144, 277, 135, 213,
-				274, 706, 22, 241, 273, 142, 134, 136, 160, 1348, 246, 151, 171, 1765, 689, 267, 1137, 671, 272, 365,
-				20, 17, 21, 18, 344, 42, 36, 1765, 1279, 1765, 141, 166, 1429, 219, 1182, 221, 1462, 223, 224, 229, 227,
-				1765, 1765, 247, 489, 20, 17, 21, 18, 344, 42, 37, 489, 20, 17, 21, 18, 344, 42, 36, 489, 20, 17, 21,
-				18, 344, 42, 35, 60, 489, 20, 17, 21, 18, 344, 42, 47, 1765, 544, 1237, 489, 20, 17, 21, 18, 344, 42,
-				46, 206, 607, 52, 281, 281, 544, 274, 489, 20, 17, 21, 18, 344, 42, 45, 1123, 607, 1277, 50, 397, 281,
-				267, 1137, 671, 272, 50, 50, 243, 242, 317, 1123, 236, 1277, 281, 59, 281, 317, 513, 266, 664, 1611,
-				259, 279, 197, 244, 1555, 1765, 1352, 28, 206, 197, 604, 254, 213, 1265, 1256, 259, 245, 87, 295, 1555,
-				1277, 1352, 1263, 613, 87, 87, 1516, 206, 636, 1263, 1426, 135, 213, 1516, 324, 542, 1432, 1765, 145,
-				134, 136, 160, 645, 1256, 135, 213, 1169, 204, 1215, 135, 213, 148, 134, 136, 160, 1272, 151, 134, 136,
-				160, 274, 1279, 1765, 135, 213, 236, 181, 1765, 48, 646, 154, 134, 136, 160, 142, 269, 1137, 671, 272,
-				607, 607, 454, 1765, 1765, 95, 607, 254, 213, 397, 389, 497, 497, 607, 197, 1123, 607, 1765, 50, 1765,
-				197, 513, 1658, 1646, 209, 397, 521, 1123, 206, 513, 197, 1765, 280, 1765, 278, 231, 281, 607, 372,
-				1211, 1443, 259, 445, 59, 372, 1717, 1765, 1352, 225, 1765, 87, 1123, 1765, 259, 372, 315, 192, 1665,
-				87, 1352, 297, 397, 192, 1180, 342, 1765, 1765, 205, 1389, 1661, 1277, 938, 193, 1765, 1604, 1661, 1765,
-				260, 1765, 1765, 1765, 1765, 1765, 1720, 230, 1765, 1765, 234, 1765, 1765, 1765, 1765, 1765, 1449, 1765,
-				1765, 1765, 328, 1765, 0, 20, 179, 0, 1, 1991, 0, 1, 2002, 0 };
-	}
-
-	public final static char baseAction[] = BaseAction.baseAction;
-
-	@Override
-	public final int baseAction(int index) {
-		return baseAction[index];
-	}
-
-	public final static char lhs[] = baseAction;
-
-	@Override
-	public final int lhs(int index) {
-		return lhs[index];
-	}
-
-	public interface TermCheck {
-		public final static byte termCheck[] = { 0, 0, 1, 2, 3, 4, 0, 6, 7, 8, 9, 10, 0, 12, 13, 0, 15, 16, 17, 18, 19,
-				20, 21, 22, 23, 24, 25, 26, 27, 28, 0, 0, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 29, 44, 45,
-				46, 0, 1, 0, 3, 0, 5, 6, 7, 8, 0, 0, 0, 0, 13, 2, 0, 4, 59, 14, 55, 56, 57, 58, 11, 24, 25, 26, 27, 28,
-				47, 48, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 0, 1, 0, 3, 51, 5, 6, 7, 8, 0,
-				0, 1, 2, 13, 4, 0, 80, 55, 56, 57, 58, 11, 0, 60, 24, 25, 26, 27, 28, 61, 62, 31, 32, 33, 34, 35, 36,
-				37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 0, 1, 0, 3, 51, 5, 6, 7, 8, 0, 0, 1, 2, 13, 4, 47, 48, 55, 56,
-				57, 58, 11, 47, 48, 24, 25, 26, 27, 28, 0, 1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
-				45, 46, 0, 1, 0, 3, 51, 0, 6, 7, 8, 4, 0, 0, 0, 13, 4, 60, 4, 0, 0, 1, 2, 59, 5, 5, 24, 25, 26, 27, 28,
-				11, 0, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 0, 44, 45, 46, 0, 30, 6, 7, 8, 0, 6, 7, 8, 13, 0,
-				53, 54, 43, 9, 10, 53, 54, 53, 54, 24, 25, 26, 27, 28, 61, 62, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
-				41, 42, 0, 1, 2, 3, 4, 5, 0, 0, 64, 9, 10, 5, 12, 13, 0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 1, 2, 3,
-				4, 5, 0, 1, 2, 9, 10, 64, 12, 13, 0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 50, 2, 0, 4, 0, 1, 50, 3,
-				0, 11, 11, 0, 1, 2, 3, 4, 5, 0, 14, 0, 9, 10, 5, 12, 50, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 1,
-				29, 3, 59, 0, 1, 2, 3, 4, 5, 29, 30, 0, 9, 10, 63, 12, 5, 43, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 1,
-				2, 3, 4, 0, 68, 69, 0, 9, 10, 0, 12, 5, 30, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 14, 50, 0, 1, 2, 3,
-				4, 0, 1, 29, 3, 9, 10, 30, 12, 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 51, 0, 1, 2, 3, 4, 0, 1, 0, 3,
-				9, 10, 0, 12, 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 1, 2, 3, 4, 0, 1, 0, 3, 9, 10, 0, 12, 65,
-				14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 1, 2, 3, 4, 65, 47, 48, 0, 9, 10, 0, 12, 5, 49, 15, 16, 17,
-				18, 19, 20, 21, 22, 23, 0, 1, 2, 3, 4, 0, 47, 48, 0, 9, 10, 0, 12, 0, 30, 15, 16, 17, 18, 19, 20, 21,
-				22, 23, 0, 1, 2, 3, 4, 0, 1, 0, 3, 9, 10, 4, 12, 0, 0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 2, 2,
-				4, 5, 6, 7, 8, 49, 0, 11, 11, 13, 0, 0, 1, 0, 3, 0, 6, 7, 8, 60, 24, 25, 26, 27, 28, 14, 30, 12, 49, 70,
-				71, 72, 73, 74, 75, 76, 77, 78, 79, 0, 0, 0, 0, 0, 2, 6, 7, 8, 0, 6, 7, 8, 13, 11, 6, 7, 8, 15, 16, 0,
-				0, 13, 0, 24, 25, 26, 27, 28, 6, 7, 8, 0, 24, 25, 26, 27, 28, 6, 7, 8, 0, 0, 1, 0, 13, 0, 6, 7, 8, 6, 7,
-				8, 0, 13, 52, 24, 25, 26, 27, 28, 0, 9, 10, 0, 24, 25, 26, 27, 28, 67, 0, 0, 2, 0, 11, 5, 0, 6, 7, 8, 0,
-				11, 9, 10, 0, 5, 2, 0, 0, 0, 49, 0, 5, 0, 5, 11, 0, 1, 2, 11, 30, 0, 1, 2, 0, 1, 0, 3, 63, 29, 0, 0, 0,
-				0, 4, 52, 4, 0, 12, 0, 29, 0, 29, 0, 11, 14, 0, 0, 0, 0, 0, 14, 43, 14, 0, 14, 0, 14, 0, 0, 52, 0, 0, 0,
-				0, 0, 66, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0 };
-	}
-
-	public final static byte termCheck[] = TermCheck.termCheck;
-
-	@Override
-	public final int termCheck(int index) {
-		return termCheck[index];
-	}
-
-	public interface TermAction {
-		public final static char termAction[] = { 0, 1765, 1776, 1554, 1777, 1500, 1765, 1979, 1980, 1981, 1492, 1381,
-				59, 1508, 1928, 88, 1020, 673, 578, 1778, 1779, 1780, 1781, 1028, 483, 1929, 1927, 1982, 1930, 1926, 54,
-				1765, 1933, 1938, 1937, 1935, 1936, 1934, 1939, 1940, 1932, 1941, 1942, 1943, 639, 1281, 597, 381, 1765,
-				1, 1, 1, 1765, 191, 1, 1, 1, 61, 211, 253, 265, 1, 1422, 62, 1, 917, 2775, 1391, 1361, 545, 470, 349, 1,
-				1, 1, 1, 1, 1402, 1412, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 191, 1, 1, 1, 1765, 1, 182, 1, 1961, 190, 1,
-				1, 1, 60, 262, 1991, 1151, 1, 1, 58, 1755, 1391, 1361, 545, 470, 349, 57, 1000, 1, 1, 1, 1, 1, 1331,
-				1318, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 190, 1, 1, 1, 1765, 1, 1765, 1, 1961, 191, 1, 1, 1, 201, 268,
-				1991, 1151, 1, 253, 1402, 1412, 1391, 1361, 545, 470, 349, 1402, 1412, 1, 1, 1, 1, 1, 1765, 2003, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 191, 1, 1, 1, 1765, 1776, 183, 1777, 1961, 48, 1979, 1980, 1981, 1543, 50,
-				63, 49, 1928, 1543, 492, 1543, 1765, 1, 1759, 1151, 1092, 1773, 1771, 1929, 1927, 1982, 1930, 1926, 349,
-				68, 1933, 1938, 1937, 1935, 1936, 1934, 1939, 1940, 1932, 1941, 1942, 1943, 129, 1281, 597, 381, 1765,
-				1770, 1979, 1980, 1981, 51, 1979, 1980, 1981, 1928, 69, 1528, 1517, 1772, 1308, 1140, 1528, 1517, 1528,
-				1517, 1929, 1927, 1982, 1930, 1926, 1331, 1318, 1933, 1938, 1937, 1935, 1936, 1934, 1939, 1940, 1932,
-				1941, 1942, 1943, 1, 1776, 1554, 1777, 1434, 1769, 1765, 286, 1218, 1492, 1381, 1769, 1508, 557, 1765,
-				1020, 673, 578, 1778, 1779, 1780, 1781, 1028, 483, 1765, 1776, 1554, 1777, 1467, 1769, 1, 1991, 1168,
-				1492, 1381, 1218, 1508, 959, 66, 1020, 673, 578, 1778, 1779, 1780, 1781, 1028, 483, 271, 268, 1768,
-				1422, 72, 253, 1765, 1776, 1768, 1777, 256, 349, 349, 1, 1776, 1554, 1777, 1500, 29, 1765, 1067, 1765,
-				1492, 1381, 1771, 1508, 1768, 2775, 1020, 673, 578, 1778, 1779, 1780, 1781, 1028, 483, 1765, 1776, 1682,
-				1777, 1056, 1765, 1776, 1554, 1777, 1500, 1769, 1460, 1770, 1, 1492, 1381, 1245, 1508, 90, 29, 1020,
-				673, 578, 1778, 1779, 1780, 1781, 1028, 483, 1765, 1, 1, 1, 1, 30, 1112, 1674, 1765, 1, 1, 1765, 1,
-				1771, 90, 1, 1, 1, 1, 1, 1, 1, 1, 1, 70, 622, 1768, 1765, 1776, 1554, 1777, 1500, 185, 2805, 417, 2805,
-				1492, 1381, 1770, 1508, 71, 2775, 1020, 673, 578, 1778, 1779, 1780, 1781, 1028, 483, 2081, 1, 1776,
-				1554, 1777, 1500, 184, 2807, 56, 2807, 1492, 1381, 1765, 1508, 1, 2775, 1020, 673, 578, 1778, 1779,
-				1780, 1781, 1028, 483, 1765, 1776, 1554, 1777, 1500, 206, 2809, 55, 2809, 1492, 1381, 1765, 1508, 611,
-				2775, 1020, 673, 578, 1778, 1779, 1780, 1781, 1028, 483, 1765, 1776, 1554, 1777, 1500, 611, 1402, 1412,
-				1, 1492, 1381, 1765, 1508, 1771, 2023, 1020, 673, 578, 1778, 1779, 1780, 1781, 1028, 483, 1765, 1776,
-				1561, 1777, 1500, 1765, 1402, 1412, 1, 1492, 1381, 42, 1508, 1765, 1770, 1020, 673, 578, 1778, 1779,
-				1780, 1781, 1028, 483, 1, 1776, 1554, 1777, 1500, 208, 1776, 1, 1777, 1492, 1381, 253, 1508, 1765, 1765,
-				1020, 673, 578, 1778, 1779, 1780, 1781, 1028, 483, 20, 270, 1756, 1667, 1756, 1756, 179, 179, 179, 2022,
-				1765, 1756, 349, 179, 248, 1765, 1776, 1765, 1777, 64, 1979, 1980, 1981, 896, 179, 179, 179, 179, 179,
-				1260, 1756, 449, 2023, 875, 854, 833, 812, 791, 749, 770, 728, 707, 686, 130, 1765, 1765, 32, 249, 1196,
-				1979, 1980, 1981, 131, 1, 1, 1, 1928, 1562, 1979, 1980, 1981, 1791, 1792, 1765, 1765, 1928, 250, 1929,
-				1927, 1982, 1930, 1926, 1, 1, 1, 132, 1929, 1927, 1982, 1930, 1926, 1979, 1980, 1981, 133, 1, 1762, 251,
-				1928, 67, 1979, 1980, 1981, 1979, 1980, 1981, 53, 1928, 464, 1929, 1927, 1982, 1930, 1926, 1765, 1308,
-				1140, 1765, 1929, 1927, 1982, 1930, 1926, 374, 1, 252, 1422, 52, 980, 1771, 1765, 1979, 1980, 1981,
-				1765, 349, 1308, 1140, 222, 1775, 1668, 1, 292, 285, 2023, 30, 1775, 207, 376, 349, 1, 1991, 1168, 1036,
-				1770, 253, 1991, 1168, 207, 1172, 65, 1172, 1245, 1342, 1765, 1765, 1765, 220, 1170, 1132, 1430, 1765,
-				449, 189, 1794, 189, 2790, 189, 349, 1346, 1765, 1765, 1765, 1765, 1765, 1431, 376, 185, 1765, 184,
-				1765, 206, 1765, 1765, 1354, 1765, 1765, 1765, 1765, 1765, 1774, 1765, 1765, 1765, 1765, 1765, 1765,
-				1774 };
-	}
-
-	public final static char termAction[] = TermAction.termAction;
-
-	@Override
-	public final int termAction(int index) {
-		return termAction[index];
-	}
-
-	public interface Asb {
-		public final static char asb[] = { 0, 375, 1, 54, 41, 54, 54, 54, 54, 54, 54, 54, 54, 54, 3, 334, 23, 20, 27,
-				25, 33, 31, 35, 34, 37, 36, 9, 54, 334, 258, 258, 203, 54, 170, 170, 286, 334, 54, 54, 54, 54, 54, 54,
-				54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 170,
-				170, 45, 82, 290, 48, 228, 168, 167, 261, 273, 96, 273, 96, 96, 273, 96, 273, 348, 124, 20, 20, 25, 25,
-				25, 25, 23, 23, 31, 27, 27, 34, 33, 76, 36, 35, 98, 200, 98, 286, 290, 104, 45, 371, 52, 170, 305, 231,
-				96, 258, 258, 96, 258, 54, 200, 80, 290, 281, 371, 45, 51, 48, 170, 284, 348, 169, 233, 98, 173, 98,
-				222, 80, 281, 281, 54, 54, 45, 52, 228, 298, 297, 290, 233, 170, 98, 173, 222, 222, 224, 101, 281, 371,
-				45, 45, 170, 305, 231, 284, 173, 200, 71, 173, 222, 224, 292, 224, 200, 78, 295, 258, 54, 100, 371, 281,
-				233, 173, 73, 224, 200, 54, 258, 3, 82, 45, 258, 54, 281, 170, 169, 200, 301, 54, 300, 67, 290, 200, 45,
-				259, 73, 54, 67 };
-	}
-
-	public final static char asb[] = Asb.asb;
-
-	@Override
-	public final int asb(int index) {
-		return asb[index];
-	}
-
-	public interface Asr {
-		public final static byte asr[] = { 0, 80, 0, 11, 2, 52, 67, 15, 16, 60, 70, 71, 72, 73, 74, 76, 75, 77, 78, 79,
-				4, 53, 54, 9, 10, 48, 47, 55, 56, 57, 58, 61, 62, 12, 63, 64, 65, 43, 66, 68, 69, 59, 30, 80, 29, 50, 5,
-				0, 6, 7, 8, 13, 50, 5, 18, 19, 20, 21, 3, 15, 16, 12, 9, 10, 22, 23, 17, 4, 2, 1, 0, 66, 5, 4, 1, 2, 59,
-				0, 5, 43, 11, 52, 15, 16, 12, 4, 9, 10, 22, 23, 17, 2, 18, 19, 20, 21, 1, 3, 14, 0, 60, 11, 52, 0, 6, 7,
-				8, 2, 18, 19, 20, 21, 1, 3, 15, 16, 12, 4, 9, 10, 22, 23, 17, 0, 7, 13, 28, 8, 27, 26, 25, 6, 24, 52,
-				67, 15, 16, 12, 9, 10, 53, 54, 47, 48, 55, 56, 57, 58, 61, 62, 63, 64, 65, 68, 69, 60, 70, 71, 72, 73,
-				74, 75, 76, 77, 78, 79, 4, 2, 11, 29, 30, 5, 0, 24, 31, 6, 32, 44, 25, 33, 26, 34, 35, 27, 7, 36, 37,
-				13, 45, 28, 46, 38, 39, 8, 40, 41, 42, 1, 3, 51, 5, 43, 0, 5, 30, 17, 18, 19, 20, 21, 1, 3, 2, 15, 16,
-				12, 4, 9, 10, 22, 23, 0, 1, 3, 5, 43, 29, 0, 4, 2, 11, 30, 5, 24, 31, 6, 32, 44, 25, 33, 26, 34, 35, 27,
-				7, 36, 37, 13, 45, 28, 46, 38, 39, 8, 40, 41, 42, 49, 3, 1, 0, 39, 31, 36, 34, 35, 33, 32, 37, 38, 40,
-				41, 42, 59, 66, 28, 25, 13, 24, 27, 26, 6, 7, 8, 29, 1, 5, 30, 2, 11, 4, 0, 5, 29, 43, 60, 0, 2, 30, 11,
-				59, 66, 5, 29, 0, 4, 24, 31, 6, 32, 44, 25, 33, 26, 34, 35, 27, 7, 36, 37, 13, 45, 28, 46, 38, 39, 8,
-				40, 41, 42, 1, 3, 49, 0, 17, 18, 19, 20, 21, 2, 15, 16, 12, 4, 9, 10, 22, 23, 1, 3, 44, 45, 46, 39, 31,
-				36, 34, 35, 33, 32, 37, 38, 40, 41, 42, 28, 25, 13, 24, 27, 26, 6, 7, 8, 0, 17, 18, 19, 20, 21, 1, 3, 2,
-				15, 16, 12, 4, 9, 10, 22, 23, 51, 0 };
-	}
-
-	public final static byte asr[] = Asr.asr;
-
-	@Override
-	public final int asr(int index) {
-		return asr[index];
-	}
-
-	public interface Nasb {
-		public final static byte nasb[] = { 0, 118, 41, 23, 41, 23, 23, 23, 23, 23, 23, 23, 23, 23, 41, 98, 41, 41, 41,
-				41, 41, 41, 41, 41, 41, 41, 41, 23, 98, 18, 18, 63, 99, 122, 122, 89, 1, 23, 23, 23, 23, 23, 23, 23, 23,
-				23, 23, 23, 23, 23, 23, 23, 23, 99, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 122, 122, 13,
-				50, 76, 11, 88, 44, 44, 71, 72, 29, 72, 86, 86, 72, 85, 72, 66, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
-				41, 41, 41, 41, 41, 41, 41, 51, 59, 41, 102, 41, 31, 13, 61, 12, 122, 93, 121, 7, 7, 7, 7, 7, 23, 74,
-				59, 41, 83, 61, 13, 12, 27, 122, 55, 34, 41, 95, 46, 59, 41, 59, 21, 83, 59, 23, 23, 13, 12, 54, 44, 44,
-				76, 95, 122, 41, 106, 59, 7, 48, 9, 59, 61, 13, 13, 122, 93, 121, 79, 59, 74, 15, 114, 7, 48, 41, 41,
-				74, 20, 41, 7, 23, 25, 61, 27, 110, 106, 57, 48, 74, 23, 7, 42, 22, 13, 7, 23, 27, 122, 122, 74, 16, 23,
-				41, 57, 76, 74, 13, 41, 57, 23, 81 };
-	}
-
-	public final static byte nasb[] = Nasb.nasb;
-
-	@Override
-	public final int nasb(int index) {
-		return nasb[index];
-	}
-
-	public interface Nasr {
-		public final static char nasr[] = { 0, 78, 76, 75, 65, 74, 73, 1, 0, 98, 0, 11, 5, 24, 0, 11, 69, 0, 70, 0, 86,
-				11, 52, 5, 0, 100, 0, 21, 0, 89, 0, 5, 11, 0, 78, 77, 76, 75, 65, 74, 73, 0, 96, 0, 26, 0, 90, 0, 59, 0,
-				5, 52, 46, 0, 23, 43, 42, 35, 33, 11, 0, 56, 0, 11, 88, 0, 65, 60, 61, 62, 63, 53, 28, 0, 39, 0, 27, 50,
-				0, 43, 42, 35, 33, 27, 0, 92, 66, 0, 23, 42, 43, 11, 0, 27, 50, 11, 25, 0, 49, 11, 45, 0, 43, 42, 27, 0,
-				80, 11, 49, 0, 93, 11, 25, 0, 11, 49, 67, 0, 11, 87, 0, 11, 23, 0 };
-	}
-
-	public final static char nasr[] = Nasr.nasr;
-
-	@Override
-	public final int nasr(int index) {
-		return nasr[index];
-	}
-
-	public interface TerminalIndex {
-		public final static char terminalIndex[] = { 0, 85, 2, 86, 9, 87, 48, 64, 76, 10, 11, 1, 8, 69, 3, 6, 7, 68, 81,
-				82, 83, 84, 12, 13, 44, 55, 60, 63, 72, 42, 90, 47, 52, 56, 61, 62, 66, 67, 74, 75, 78, 79, 80, 91, 54,
-				70, 73, 16, 17, 30, 89, 93, 4, 14, 15, 18, 19, 20, 21, 29, 31, 22, 23, 24, 25, 26, 92, 5, 27, 28, 32,
-				33, 34, 35, 36, 37, 38, 39, 40, 41, 94, 45, 46, 49, 50, 51, 53, 57, 58, 59, 65, 71, 77, 88 };
-	}
-
-	public final static char terminalIndex[] = TerminalIndex.terminalIndex;
-
-	@Override
-	public final int terminalIndex(int index) {
-		return terminalIndex[index];
-	}
-
-	public interface NonterminalIndex {
-		public final static char nonterminalIndex[] = { 0, 100, 0, 0, 0, 102, 106, 107, 108, 109, 110, 0, 111, 112, 113,
-				114, 115, 116, 117, 0, 118, 128, 0, 97, 96, 121, 149, 0, 127, 0, 0, 0, 145, 147, 0, 148, 0, 0, 0, 98, 0,
-				158, 159, 160, 0, 101, 105, 120, 136, 140, 146, 155, 0, 130, 0, 150, 153, 154, 157, 0, 131, 132, 133,
-				134, 135, 137, 0, 139, 144, 99, 103, 104, 119, 122, 123, 124, 125, 126, 129, 0, 138, 142, 0, 0, 143,
-				152, 162, 95, 0, 0, 0, 141, 0, 151, 156, 161, 0, 163, 164, 0, 165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
-
-	@Override
-	public final int nonterminalIndex(int index) {
-		return nonterminalIndex[index];
-	}
-
-	public interface ScopePrefix {
-		public final static char scopePrefix[] = { 82, 113, 92, 35, 41, 121, 12, 136, 21, 51, 69, 28, 47, 103, 161, 165,
-				145, 1, 1, 32, 56, 79, 169, 6, 107, 152, 152, 127, 99, 59, 59, 59 };
-	}
-
-	public final static char scopePrefix[] = ScopePrefix.scopePrefix;
-
-	@Override
-	public final int scopePrefix(int index) {
-		return scopePrefix[index];
-	}
-
-	public interface ScopeSuffix {
-		public final static char scopeSuffix[] = { 90, 90, 90, 4, 4, 90, 18, 142, 26, 4, 26, 26, 4, 101, 26, 4, 149, 4,
-				4, 26, 4, 26, 26, 9, 110, 155, 158, 130, 101, 66, 61, 74 };
-	}
-
-	public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
-
-	@Override
-	public final int scopeSuffix(int index) {
-		return scopeSuffix[index];
-	}
-
-	public interface ScopeLhs {
-		public final static char scopeLhs[] = { 62, 60, 62, 26, 26, 60, 46, 108, 44, 26, 38, 44, 26, 67, 5, 5, 19, 100,
-				99, 42, 26, 35, 3, 86, 67, 7, 5, 109, 67, 38, 36, 38 };
-	}
-
-	public final static char scopeLhs[] = ScopeLhs.scopeLhs;
-
-	@Override
-	public final int scopeLhs(int index) {
-		return scopeLhs[index];
-	}
-
-	public interface ScopeLa {
-		public final static byte scopeLa[] = { 43, 43, 43, 50, 50, 43, 43, 86, 30, 50, 30, 30, 50, 66, 30, 50, 59, 50,
-				50, 30, 50, 30, 30, 60, 1, 30, 30, 92, 66, 2, 2, 2 };
-	}
-
-	public final static byte scopeLa[] = ScopeLa.scopeLa;
-
-	@Override
-	public final int scopeLa(int index) {
-		return scopeLa[index];
-	}
-
-	public interface ScopeStateSet {
-		public final static byte scopeStateSet[] = { 23, 23, 23, 27, 27, 23, 17, -1, 31, 27, 9, 31, 27, 5, 38, 38, 68,
-				1, 3, 31, 27, 9, 38, 94, 5, 41, 38, -1, 5, 9, 9, 9 };
-	}
-
-	public final static byte scopeStateSet[] = ScopeStateSet.scopeStateSet;
-
-	@Override
-	public final int scopeStateSet(int index) {
-		return scopeStateSet[index];
-	}
-
-	public interface ScopeRhs {
-		public final static char scopeRhs[] = { 0, 140, 11, 0, 96, 0, 190, 104, 0, 31, 135, 0, 152, 188, 104, 14, 145,
-				0, 98, 0, 0, 148, 104, 2, 135, 0, 97, 0, 148, 104, 2, 0, 151, 2, 0, 113, 13, 178, 104, 11, 0, 113, 178,
-				104, 13, 11, 0, 113, 13, 11, 0, 113, 178, 104, 11, 0, 113, 11, 0, 128, 0, 2, 0, 151, 97, 0, 2, 97, 0,
-				148, 104, 2, 128, 0, 2, 0, 150, 97, 0, 141, 2, 0, 152, 176, 104, 14, 94, 185, 44, 0, 98, 0, 152, 176,
-				104, 14, 185, 44, 0, 142, 0, 99, 0, 184, 104, 142, 0, 104, 142, 0, 141, 99, 0, 172, 104, 14, 183, 94,
-				182, 158, 0, 172, 104, 14, 182, 158, 0, 197, 85, 0, 77, 2, 101, 97, 99, 0, 197, 116, 138, 2, 89, 0, 53,
-				0, 0, 138, 69, 111, 0, 29, 118, 0, 164, 2, 0, 97, 107, 0, 97, 105, 0, 181, 2, 98, 0, 138, 11, 98, 0,
-				138, 2, 0 };
-	}
-
-	public final static char scopeRhs[] = ScopeRhs.scopeRhs;
-
-	@Override
-	public final int scopeRhs(int index) {
-		return scopeRhs[index];
-	}
-
-	public interface ScopeState {
-		public final static char scopeState[] = { 0, 443, 0, 341, 0, 1651, 1661, 1645, 0, 1449, 1342, 1168, 1269, 1256,
-				1151, 1123, 0, 492, 417, 396, 1538, 1084, 0, 607, 1213, 317, 0, 1462, 1182, 1137, 671, 1256, 1151, 1123,
-				1611, 1422, 1516, 0, 1020, 673, 578, 1467, 1434, 1084, 611, 1112, 1245, 1218, 1331, 1318, 449, 1412,
-				1402, 1391, 1361, 545, 470, 1543, 1528, 1517, 1308, 1140, 1508, 1500, 1492, 1381, 1028, 483, 1092, 1056,
-				1036, 492, 1000, 980, 959, 938, 586, 917, 557, 349, 896, 875, 854, 833, 812, 791, 770, 749, 728, 707,
-				686, 317, 639, 513, 417, 396, 0 };
-	}
-
-	public final static char scopeState[] = ScopeState.scopeState;
-
-	@Override
-	public final int scopeState(int index) {
-		return scopeState[index];
-	}
-
-	public interface InSymb {
-		public final static char inSymb[] = { 0, 0, 180, 104, 165, 17, 23, 22, 10, 9, 4, 12, 16, 15, 98, 2, 102, 101,
-				105, 103, 107, 106, 109, 108, 111, 110, 99, 29, 2, 67, 52, 2, 11, 164, 138, 142, 104, 10, 9, 54, 53, 4,
-				58, 57, 56, 55, 47, 48, 12, 62, 61, 64, 63, 69, 68, 65, 79, 78, 77, 75, 76, 74, 73, 72, 71, 70, 60, 164,
-				181, 138, 116, 104, 11, 2, 136, 135, 166, 167, 158, 168, 46, 45, 169, 44, 170, 171, 94, 101, 101, 103,
-				103, 103, 103, 102, 102, 106, 105, 105, 108, 107, 138, 110, 109, 116, 14, 145, 143, 120, 13, 113, 104,
-				4, 151, 104, 2, 182, 159, 159, 185, 159, 59, 104, 14, 120, 4, 104, 113, 178, 149, 148, 118, 104, 150,
-				104, 94, 14, 94, 14, 104, 4, 120, 178, 13, 113, 4, 2, 126, 128, 104, 29, 148, 183, 104, 14, 104, 188,
-				104, 120, 104, 113, 113, 141, 104, 2, 143, 14, 172, 142, 173, 104, 176, 94, 177, 152, 29, 190, 52, 11,
-				191, 104, 149, 104, 104, 104, 176, 152, 60, 29, 132, 60, 140, 52, 11, 149, 148, 186, 172, 184, 59, 141,
-				2, 104, 152, 140, 29, 29, 59, 143 };
-	}
-
-	public final static char inSymb[] = InSymb.inSymb;
-
-	@Override
-	public final int inSymb(int index) {
-		return inSymb[index];
-	}
-
-	public interface Name {
-		public final static String name[] = { "", "[", "(", "{", ".", "->", "++", "--", "&", "*", "+", "-", "~", "!",
-				"/", "%", ">>", "<<", "<", ">", "<=", ">=", "==", "!=", "^", "|", "&&", "||", "?", ":", "...", "=",
-				"*=", "/=", "%=", "+=", "-=", ">>=", "<<=", "&=", "^=", "|=", ",", "$empty", "auto", "break", "case",
-				"char", "const", "continue", "default", "do", "double", "else", "enum", "extern", "float", "for",
-				"goto", "if", "inline", "int", "long", "register", "restrict", "return", "short", "signed", "sizeof",
-				"static", "struct", "switch", "typedef", "union", "unsigned", "void", "volatile", "while", "_Bool",
-				"_Complex", "_Imaginary", "integer", "floating", "charconst", "stringlit", "identifier", "Completion",
-				"EndOfCompletion", "Invalid", "RightBracket", "RightParen", "RightBrace", "SemiColon", "ERROR_TOKEN",
-				"EOF_TOKEN", "no_sizeof_type_id_start", "]", ")", "}", ";", "identifier_token", "expression",
-				"postfix_expression", "member_name", "type_id", "initializer_list", "unary_expression",
-				"cast_expression", "multiplicative_expression", "additive_expression", "shift_expression",
-				"relational_expression", "equality_expression", "and_expression", "exclusive_or_expression",
-				"inclusive_or_expression", "logical_and_expression", "logical_or_expression", "assignment_expression",
-				"expression_list_actual", "constant_expression", "declaration_specifiers",
-				"simple_declaration_specifiers", "struct_or_union_declaration_sp" + "ecifiers",
-				"elaborated_declaration_specifi" + "ers", "enum_declaration_specifiers",
-				"typdef_name_declaration_specif" + "iers", "no_type_declaration_specifier", "type_qualifier",
-				"no_type_declaration_specifiers", "simple_type_specifier", "struct_or_union_specifier",
-				"elaborated_specifier", "enum_specifier", "type_name_specifier", "initializer", "declarator",
-				"struct_or_union", "struct_declaration_list", "struct_declaration", "specifier_qualifier_list",
-				"struct_declarator_list", "complete_struct_declarator", "enumerator_list", "enumerator",
-				"direct_declarator", "pointer_seq", "array_direct_declarator", "basic_direct_declarator",
-				"array_modifier", "parameter_type_list", "identifier_list", "array_modifier_type_qualifiers",
-				"type_qualifier_list", "parameter_list", "parameter_declaration", "complete_parameter_declarator",
-				"abstract_declarator", "direct_abstract_declarator", "basic_direct_abstract_declarat" + "or",
-				"array_direct_abstract_declarat" + "or", "initializer_seq", "designated_initializer", "designation",
-				"designator_list", "designator" };
-	}
-
-	public final static String name[] = Name.name;
-
-	@Override
-	public final String name(int index) {
-		return name[index];
-	}
-
-	public final static int ERROR_SYMBOL = 51, SCOPE_UBOUND = 31, SCOPE_SIZE = 32, MAX_NAME_LENGTH = 38;
-
-	@Override
-	public final int getErrorSymbol() {
-		return ERROR_SYMBOL;
-	}
-
-	@Override
-	public final int getScopeUbound() {
-		return SCOPE_UBOUND;
-	}
-
-	@Override
-	public final int getScopeSize() {
-		return SCOPE_SIZE;
-	}
-
-	@Override
-	public final int getMaxNameLength() {
-		return MAX_NAME_LENGTH;
-	}
-
-	public final static int NUM_STATES = 207, NT_OFFSET = 93, LA_STATE_OFFSET = 2081, MAX_LA = 2, NUM_RULES = 316,
-			NUM_NONTERMINALS = 126, NUM_SYMBOLS = 219, SEGMENT_SIZE = 8192, START_STATE = 1666, IDENTIFIER_SYMBOL = 0,
-			EOFT_SYMBOL = 80, EOLT_SYMBOL = 80, ACCEPT_ACTION = 1755, ERROR_ACTION = 1765;
-
-	public final static boolean BACKTRACK = true;
-
-	@Override
-	public final int getNumStates() {
-		return NUM_STATES;
-	}
-
-	@Override
-	public final int getNtOffset() {
-		return NT_OFFSET;
-	}
-
-	@Override
-	public final int getLaStateOffset() {
-		return LA_STATE_OFFSET;
-	}
-
-	@Override
-	public final int getMaxLa() {
-		return MAX_LA;
-	}
-
-	@Override
-	public final int getNumRules() {
-		return NUM_RULES;
-	}
-
-	@Override
-	public final int getNumNonterminals() {
-		return NUM_NONTERMINALS;
-	}
-
-	@Override
-	public final int getNumSymbols() {
-		return NUM_SYMBOLS;
-	}
-
-	@Override
-	public final int getSegmentSize() {
-		return SEGMENT_SIZE;
-	}
-
-	@Override
-	public final int getStartState() {
-		return START_STATE;
-	}
-
-	@Override
-	public final int getStartSymbol() {
-		return lhs[0];
-	}
-
-	public final int getIdentifierSymbol() {
-		return IDENTIFIER_SYMBOL;
-	}
-
-	@Override
-	public final int getEoftSymbol() {
-		return EOFT_SYMBOL;
-	}
-
-	@Override
-	public final int getEoltSymbol() {
-		return EOLT_SYMBOL;
-	}
-
-	@Override
-	public final int getAcceptAction() {
-		return ACCEPT_ACTION;
-	}
-
-	@Override
-	public final int getErrorAction() {
-		return ERROR_ACTION;
-	}
-
-	@Override
-	public final boolean isValidForParser() {
-		return isValidForParser;
-	}
-
-	@Override
-	public final boolean getBacktrack() {
-		return BACKTRACK;
-	}
-
-	@Override
-	public final int originalState(int state) {
-		return -baseCheck[state];
-	}
-
-	@Override
-	public final int asi(int state) {
-		return asb[originalState(state)];
-	}
-
-	@Override
-	public final int nasi(int state) {
-		return nasb[originalState(state)];
-	}
-
-	@Override
-	public final int inSymbol(int state) {
-		return inSymb[originalState(state)];
-	}
-
-	@Override
-	public final int ntAction(int state, int sym) {
-		return baseAction[state + sym];
-	}
-
-	@Override
-	public final int tAction(int state, int sym) {
-		int i = baseAction[state], k = i + sym;
-		return termAction[termCheck[k] == sym ? k : i];
-	}
-
-	@Override
-	public final int lookAhead(int la_state, int sym) {
-		int k = la_state + sym;
-		return termAction[termCheck[k] == sym ? k : la_state];
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParsersym.java
deleted file mode 100644
index 8521018..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParsersym.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2010 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.lrparser.c99;
-
-public interface C99SizeofExpressionParsersym {
-	public final static int TK_auto = 24, TK_break = 81, TK_case = 82, TK_char = 31, TK_const = 6, TK_continue = 83,
-			TK_default = 84, TK_do = 85, TK_double = 32, TK_else = 86, TK_enum = 44, TK_extern = 25, TK_float = 33,
-			TK_for = 87, TK_goto = 88, TK_if = 89, TK_inline = 26, TK_int = 34, TK_long = 35, TK_register = 27,
-			TK_restrict = 7, TK_return = 90, TK_short = 36, TK_signed = 37, TK_sizeof = 17, TK_static = 13,
-			TK_struct = 45, TK_switch = 91, TK_typedef = 28, TK_union = 46, TK_unsigned = 38, TK_void = 39,
-			TK_volatile = 8, TK_while = 92, TK__Bool = 40, TK__Complex = 41, TK__Imaginary = 42, TK_integer = 18,
-			TK_floating = 19, TK_charconst = 20, TK_stringlit = 21, TK_identifier = 1, TK_Completion = 3,
-			TK_EndOfCompletion = 5, TK_Invalid = 93, TK_LeftBracket = 11, TK_LeftParen = 2, TK_LeftBrace = 14,
-			TK_Dot = 52, TK_Arrow = 67, TK_PlusPlus = 15, TK_MinusMinus = 16, TK_And = 12, TK_Star = 4, TK_Plus = 9,
-			TK_Minus = 10, TK_Tilde = 22, TK_Bang = 23, TK_Slash = 53, TK_Percent = 54, TK_RightShift = 47,
-			TK_LeftShift = 48, TK_LT = 55, TK_GT = 56, TK_LE = 57, TK_GE = 58, TK_EQ = 61, TK_NE = 62, TK_Caret = 63,
-			TK_Or = 64, TK_AndAnd = 65, TK_OrOr = 68, TK_Question = 69, TK_Colon = 59, TK_DotDotDot = 49,
-			TK_Assign = 60, TK_StarAssign = 70, TK_SlashAssign = 71, TK_PercentAssign = 72, TK_PlusAssign = 73,
-			TK_MinusAssign = 74, TK_RightShiftAssign = 75, TK_LeftShiftAssign = 76, TK_AndAssign = 77,
-			TK_CaretAssign = 78, TK_OrAssign = 79, TK_Comma = 29, TK_RightBracket = 50, TK_RightParen = 30,
-			TK_RightBrace = 43, TK_SemiColon = 66, TK_ERROR_TOKEN = 51, TK_EOF_TOKEN = 80;
-
-	public final static String orderedTerminalSymbols[] = { "", "identifier", "LeftParen", "Completion", "Star",
-			"EndOfCompletion", "const", "restrict", "volatile", "Plus", "Minus", "LeftBracket", "And", "static",
-			"LeftBrace", "PlusPlus", "MinusMinus", "sizeof", "integer", "floating", "charconst", "stringlit", "Tilde",
-			"Bang", "auto", "extern", "inline", "register", "typedef", "Comma", "RightParen", "char", "double", "float",
-			"int", "long", "short", "signed", "unsigned", "void", "_Bool", "_Complex", "_Imaginary", "RightBrace",
-			"enum", "struct", "union", "RightShift", "LeftShift", "DotDotDot", "RightBracket", "ERROR_TOKEN", "Dot",
-			"Slash", "Percent", "LT", "GT", "LE", "GE", "Colon", "Assign", "EQ", "NE", "Caret", "Or", "AndAnd",
-			"SemiColon", "Arrow", "OrOr", "Question", "StarAssign", "SlashAssign", "PercentAssign", "PlusAssign",
-			"MinusAssign", "RightShiftAssign", "LeftShiftAssign", "AndAssign", "CaretAssign", "OrAssign", "EOF_TOKEN",
-			"break", "case", "continue", "default", "do", "else", "for", "goto", "if", "return", "switch", "while",
-			"Invalid" };
-
-	public final static boolean isValidForParser = true;
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParser.java
deleted file mode 100644
index 6999cbe..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParser.java
+++ /dev/null
@@ -1,2864 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2015 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.lrparser.cpp;
-
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.cdt.core.dom.ast.IASTCompletionNode;
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTBinaryExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCastExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTLiteralExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTypeIdExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTUnaryExpression;
-import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter;
-import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
-import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
-import org.eclipse.cdt.core.dom.lrparser.ITokenCollector;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
-import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
-import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
-import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPBuildASTParserAction;
-import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPSecondaryParserFactory;
-import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser;
-import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
-import org.eclipse.cdt.core.index.IIndex;
-import org.eclipse.cdt.core.parser.IScanner;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPNodeFactory;
-
-import lpg.lpgjavaruntime.BadParseException;
-import lpg.lpgjavaruntime.BadParseSymFileException;
-import lpg.lpgjavaruntime.DiagnoseParser;
-import lpg.lpgjavaruntime.ErrorToken;
-import lpg.lpgjavaruntime.IToken;
-import lpg.lpgjavaruntime.LexStream;
-import lpg.lpgjavaruntime.Monitor;
-import lpg.lpgjavaruntime.NotBacktrackParseTableException;
-import lpg.lpgjavaruntime.NullExportedSymbolsException;
-import lpg.lpgjavaruntime.NullTerminalSymbolsException;
-import lpg.lpgjavaruntime.ParseErrorCodes;
-import lpg.lpgjavaruntime.ParseTable;
-import lpg.lpgjavaruntime.PrsStream;
-import lpg.lpgjavaruntime.RuleAction;
-import lpg.lpgjavaruntime.Token;
-import lpg.lpgjavaruntime.UndefinedEofSymbolException;
-import lpg.lpgjavaruntime.UnimplementedTerminalsException;
-
-public class CPPExpressionParser extends PrsStream
-		implements RuleAction, ITokenStream, ITokenCollector, ISecondaryParser<IASTExpression> {
-	private static ParseTable prs = new CPPExpressionParserprs();
-	private FixedBacktrackingParser btParser;
-
-	public FixedBacktrackingParser getParser() {
-		return btParser;
-	}
-
-	private void setResult(Object object) {
-		btParser.setSym1(object);
-	}
-
-	public Object getRhsSym(int i) {
-		return btParser.getSym(i);
-	}
-
-	public int getRhsTokenIndex(int i) {
-		return btParser.getToken(i);
-	}
-
-	public IToken getRhsIToken(int i) {
-		return super.getIToken(getRhsTokenIndex(i));
-	}
-
-	public int getRhsFirstTokenIndex(int i) {
-		return btParser.getFirstToken(i);
-	}
-
-	public IToken getRhsFirstIToken(int i) {
-		return super.getIToken(getRhsFirstTokenIndex(i));
-	}
-
-	public int getRhsLastTokenIndex(int i) {
-		return btParser.getLastToken(i);
-	}
-
-	public IToken getRhsLastIToken(int i) {
-		return super.getIToken(getRhsLastTokenIndex(i));
-	}
-
-	public int getLeftSpan() {
-		return btParser.getFirstToken();
-	}
-
-	@Override
-	public IToken getLeftIToken() {
-		return super.getIToken(getLeftSpan());
-	}
-
-	public int getRightSpan() {
-		return btParser.getLastToken();
-	}
-
-	@Override
-	public IToken getRightIToken() {
-		return super.getIToken(getRightSpan());
-	}
-
-	public int getRhsErrorTokenIndex(int i) {
-		int index = btParser.getToken(i);
-		IToken err = super.getIToken(index);
-		return (err instanceof ErrorToken ? index : 0);
-	}
-
-	public ErrorToken getRhsErrorIToken(int i) {
-		int index = btParser.getToken(i);
-		IToken err = super.getIToken(index);
-		return (ErrorToken) (err instanceof ErrorToken ? err : null);
-	}
-
-	public CPPExpressionParser(LexStream lexStream) {
-		super(lexStream);
-
-		try {
-			super.remapTerminalSymbols(orderedTerminalSymbols(), CPPExpressionParserprs.EOFT_SYMBOL);
-		} catch (NullExportedSymbolsException e) {
-		} catch (NullTerminalSymbolsException e) {
-		} catch (UnimplementedTerminalsException e) {
-			java.util.ArrayList unimplemented_symbols = e.getSymbols();
-			System.out.println("The Lexer will not scan the following token(s):");
-			for (int i = 0; i < unimplemented_symbols.size(); i++) {
-				Integer id = (Integer) unimplemented_symbols.get(i);
-				System.out.println("    " + CPPExpressionParsersym.orderedTerminalSymbols[id.intValue()]);
-			}
-			System.out.println();
-		} catch (UndefinedEofSymbolException e) {
-			throw new Error(new UndefinedEofSymbolException("The Lexer does not implement the Eof symbol "
-					+ CPPExpressionParsersym.orderedTerminalSymbols[CPPExpressionParserprs.EOFT_SYMBOL]));
-		}
-	}
-
-	@Override
-	public String[] orderedTerminalSymbols() {
-		return CPPExpressionParsersym.orderedTerminalSymbols;
-	}
-
-	public String getTokenKindName(int kind) {
-		return CPPExpressionParsersym.orderedTerminalSymbols[kind];
-	}
-
-	public int getEOFTokenKind() {
-		return CPPExpressionParserprs.EOFT_SYMBOL;
-	}
-
-	public PrsStream getParseStream() {
-		return this;
-	}
-
-	//
-	// Report error message for given error_token.
-	//
-	public final void reportErrorTokenMessage(int error_token, String msg) {
-		int firsttok = super.getFirstErrorToken(error_token), lasttok = super.getLastErrorToken(error_token);
-		String location = super.getFileName() + ':'
-				+ (firsttok > lasttok ? (super.getEndLine(lasttok) + ":" + super.getEndColumn(lasttok))
-						: (super.getLine(error_token) + ":" + super.getColumn(error_token) + ":"
-								+ super.getEndLine(error_token) + ":" + super.getEndColumn(error_token)))
-				+ ": ";
-		super.reportError((firsttok > lasttok ? ParseErrorCodes.INSERTION_CODE : ParseErrorCodes.SUBSTITUTION_CODE),
-				location, msg);
-	}
-
-	public void parser() {
-		parser(null, 0);
-	}
-
-	public void parser(Monitor monitor) {
-		parser(monitor, 0);
-	}
-
-	public void parser(int error_repair_count) {
-		parser(null, error_repair_count);
-	}
-
-	public void parser(Monitor monitor, int error_repair_count) {
-		try {
-			btParser = new FixedBacktrackingParser(monitor, this, prs, this);
-		} catch (NotBacktrackParseTableException e) {
-			throw new Error(new NotBacktrackParseTableException(
-					"Regenerate CPPExpressionParserprs.java with -BACKTRACK option"));
-		} catch (BadParseSymFileException e) {
-			throw new Error(new BadParseSymFileException("Bad Parser Symbol File -- CPPExpressionParsersym.java"));
-		}
-
-		try {
-			btParser.parse(error_repair_count);
-		} catch (BadParseException e) {
-			reset(e.error_token); // point to error token
-			DiagnoseParser diagnoseParser = new DiagnoseParser(this, prs);
-			diagnoseParser.diagnose(e.error_token);
-		}
-	}
-
-	private CPPBuildASTParserAction action;
-	private IASTCompletionNode compNode;
-
-	public CPPExpressionParser(IScanner scanner, IDOMTokenMap tokenMap,
-			IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Map<String, String> properties) {
-		initActions(properties);
-		action.initializeTranslationUnit(scanner, builtinBindingsProvider, index);
-		CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap);
-	}
-
-	private void initActions(Map<String, String> properties) {
-		ScopedStack<Object> astStack = new ScopedStack<>();
-
-		action = new CPPBuildASTParserAction(this, astStack, CPPNodeFactory.getDefault(),
-				CPPSecondaryParserFactory.getDefault());
-		action.setParserProperties(properties);
-
-	}
-
-	@Override
-	public void addToken(IToken token) {
-		token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called?
-		super.addToken(token);
-	}
-
-	@Override
-	public IASTExpression parse() {
-		// this has to be done, or... kaboom!
-		setStreamLength(getSize());
-
-		final int errorRepairCount = -1; // -1 means full error handling
-		parser(null, errorRepairCount); // do the actual parse
-		super.resetTokenStream(); // allow tokens to be garbage collected
-
-		compNode = action.getASTCompletionNode(); // the completion node may be null
-		return (IASTExpression) action.getParseResult();
-	}
-
-	@Override
-	public IASTCompletionNode getCompletionNode() {
-		return compNode;
-	}
-
-	// uncomment this method to use with backtracking parser
-	@Override
-	public List<IToken> getRuleTokens() {
-		return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
-	}
-
-	@Override
-	public String[] getOrderedTerminalSymbols() {
-		return CPPExpressionParsersym.orderedTerminalSymbols;
-	}
-
-	@Override
-	@SuppressWarnings("nls")
-	public String getName() {
-		return "CPPExpressionParser";
-	}
-
-	private ITokenMap tokenMap = null;
-
-	@Override
-	public void setTokens(List<IToken> tokens) {
-		resetTokenStream();
-		addToken(new Token(null, 0, 0, 0)); // dummy token
-		for (IToken token : tokens) {
-			token.setKind(tokenMap.mapKind(token.getKind()));
-			addToken(token);
-		}
-		addToken(new Token(null, 0, 0, CPPExpressionParsersym.TK_EOF_TOKEN));
-	}
-
-	public CPPExpressionParser(ITokenStream stream, Map<String, String> properties) { // constructor for creating secondary parser
-		initActions(properties);
-		tokenMap = new TokenMap(CPPExpressionParsersym.orderedTerminalSymbols, stream.getOrderedTerminalSymbols());
-	}
-
-	public CPPExpressionParser(ITokenStream stream, IScanner scanner, IBuiltinBindingsProvider builtinBindingsProvider,
-			IIndex index, Map<String, String> properties) { // constructor for creating secondary parser
-		initActions(properties);
-		action.initializeTranslationUnit(scanner, builtinBindingsProvider, index);
-		tokenMap = new TokenMap(CPPExpressionParsersym.orderedTerminalSymbols, stream.getOrderedTerminalSymbols());
-	}
-
-	@Override
-	public void ruleAction(int ruleNumber) {
-		switch (ruleNumber) {
-
-		//
-		// Rule 1:  <openscope-ast> ::= $Empty
-		//
-		case 1: {
-			action.openASTScope();
-			break;
-		}
-
-		//
-		// Rule 2:  <empty> ::= $Empty
-		//
-		case 2: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 13:  translation_unit ::= declaration_seq_opt
-		//
-		case 13: {
-			action.consumeTranslationUnit();
-			break;
-		}
-
-		//
-		// Rule 16:  literal ::= integer
-		//
-		case 16: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant);
-			break;
-		}
-
-		//
-		// Rule 17:  literal ::= floating
-		//
-		case 17: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_float_constant);
-			break;
-		}
-
-		//
-		// Rule 18:  literal ::= charconst
-		//
-		case 18: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant);
-			break;
-		}
-
-		//
-		// Rule 19:  literal ::= stringlit
-		//
-		case 19: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal);
-			break;
-		}
-
-		//
-		// Rule 20:  literal ::= true
-		//
-		case 20: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true);
-			break;
-		}
-
-		//
-		// Rule 21:  literal ::= false
-		//
-		case 21: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false);
-			break;
-		}
-
-		//
-		// Rule 22:  literal ::= this
-		//
-		case 22: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this);
-			break;
-		}
-
-		//
-		// Rule 24:  primary_expression ::= ( expression )
-		//
-		case 24: {
-			action.consumeExpressionBracketed();
-			break;
-		}
-
-		//
-		// Rule 26:  id_expression ::= qualified_or_unqualified_name
-		//
-		case 26: {
-			action.consumeExpressionName();
-			break;
-		}
-
-		//
-		// Rule 33:  unqualified_id_name ::= ~ identifier_token
-		//
-		case 33: {
-			action.consumeDestructorName();
-			break;
-		}
-
-		//
-		// Rule 34:  unqualified_id_name ::= ~ template_id_name
-		//
-		case 34: {
-			action.consumeDestructorNameTemplateId();
-			break;
-		}
-
-		//
-		// Rule 35:  identifier_name ::= identifier_token
-		//
-		case 35: {
-			action.consumeIdentifierName();
-			break;
-		}
-
-		//
-		// Rule 36:  template_opt ::= template
-		//
-		case 36: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 37:  template_opt ::= $Empty
-		//
-		case 37: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 38:  dcolon_opt ::= ::
-		//
-		case 38: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 39:  dcolon_opt ::= $Empty
-		//
-		case 39: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 40:  qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name
-		//
-		case 40: {
-			action.consumeQualifiedId(true);
-			break;
-		}
-
-		//
-		// Rule 41:  qualified_id_name ::= :: unqualified_id_name
-		//
-		case 41: {
-			action.consumeGlobalQualifiedId();
-			break;
-		}
-
-		//
-		// Rule 42:  nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template
-		//
-		case 42: {
-			action.consumeNestedNameSpecifier(true);
-			break;
-		}
-
-		//
-		// Rule 43:  nested_name_specifier ::= class_or_namespace_name ::
-		//
-		case 43: {
-			action.consumeNestedNameSpecifier(false);
-			break;
-		}
-
-		//
-		// Rule 44:  nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template
-		//
-		case 44: {
-			action.consumeNestedNameSpecifier(true);
-			break;
-		}
-
-		//
-		// Rule 45:  nested_name_specifier_with_template ::= class_or_namespace_name_with_template ::
-		//
-		case 45: {
-			action.consumeNestedNameSpecifier(false);
-			break;
-		}
-
-		//
-		// Rule 46:  class_or_namespace_name_with_template ::= template_opt class_or_namespace_name
-		//
-		case 46: {
-			action.consumeNameWithTemplateKeyword();
-			break;
-		}
-
-		//
-		// Rule 48:  nested_name_specifier_opt ::= $Empty
-		//
-		case 48: {
-			action.consumeNestedNameSpecifierEmpty();
-			break;
-		}
-
-		//
-		// Rule 51:  postfix_expression ::= postfix_expression [ expression ]
-		//
-		case 51: {
-			action.consumeExpressionArraySubscript();
-			break;
-		}
-
-		//
-		// Rule 52:  postfix_expression ::= postfix_expression ( expression_list_opt )
-		//
-		case 52: {
-			action.consumeExpressionFunctionCall();
-			break;
-		}
-
-		//
-		// Rule 53:  postfix_expression ::= simple_type_specifier ( expression_list_opt )
-		//
-		case 53: {
-			action.consumeExpressionSimpleTypeConstructor();
-			break;
-		}
-
-		//
-		// Rule 54:  postfix_expression ::= typename dcolon_opt nested_name_specifier <empty> identifier_name ( expression_list_opt )
-		//
-		case 54: {
-			action.consumeExpressionTypeName();
-			break;
-		}
-
-		//
-		// Rule 55:  postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt )
-		//
-		case 55: {
-			action.consumeExpressionTypeName();
-			break;
-		}
-
-		//
-		// Rule 56:  postfix_expression ::= postfix_expression . qualified_or_unqualified_name
-		//
-		case 56: {
-			action.consumeExpressionFieldReference(false, false);
-			break;
-		}
-
-		//
-		// Rule 57:  postfix_expression ::= postfix_expression -> qualified_or_unqualified_name
-		//
-		case 57: {
-			action.consumeExpressionFieldReference(true, false);
-			break;
-		}
-
-		//
-		// Rule 58:  postfix_expression ::= postfix_expression . template qualified_or_unqualified_name
-		//
-		case 58: {
-			action.consumeExpressionFieldReference(false, true);
-			break;
-		}
-
-		//
-		// Rule 59:  postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name
-		//
-		case 59: {
-			action.consumeExpressionFieldReference(true, true);
-			break;
-		}
-
-		//
-		// Rule 60:  postfix_expression ::= postfix_expression . pseudo_destructor_name
-		//
-		case 60: {
-			action.consumeExpressionFieldReference(false, false);
-			break;
-		}
-
-		//
-		// Rule 61:  postfix_expression ::= postfix_expression -> pseudo_destructor_name
-		//
-		case 61: {
-			action.consumeExpressionFieldReference(true, false);
-			break;
-		}
-
-		//
-		// Rule 62:  postfix_expression ::= postfix_expression ++
-		//
-		case 62: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr);
-			break;
-		}
-
-		//
-		// Rule 63:  postfix_expression ::= postfix_expression --
-		//
-		case 63: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr);
-			break;
-		}
-
-		//
-		// Rule 64:  postfix_expression ::= dynamic_cast < type_id > ( expression )
-		//
-		case 64: {
-			action.consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast);
-			break;
-		}
-
-		//
-		// Rule 65:  postfix_expression ::= static_cast < type_id > ( expression )
-		//
-		case 65: {
-			action.consumeExpressionCast(ICPPASTCastExpression.op_static_cast);
-			break;
-		}
-
-		//
-		// Rule 66:  postfix_expression ::= reinterpret_cast < type_id > ( expression )
-		//
-		case 66: {
-			action.consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast);
-			break;
-		}
-
-		//
-		// Rule 67:  postfix_expression ::= const_cast < type_id > ( expression )
-		//
-		case 67: {
-			action.consumeExpressionCast(ICPPASTCastExpression.op_const_cast);
-			break;
-		}
-
-		//
-		// Rule 68:  postfix_expression ::= typeid ( expression )
-		//
-		case 68: {
-			action.consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid);
-			break;
-		}
-
-		//
-		// Rule 69:  postfix_expression ::= typeid ( type_id )
-		//
-		case 69: {
-			action.consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid);
-			break;
-		}
-
-		//
-		// Rule 70:  pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name
-		//
-		case 70: {
-			action.consumePsudoDestructorName(true);
-			break;
-		}
-
-		//
-		// Rule 71:  pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name
-		//
-		case 71: {
-			action.consumePsudoDestructorName(true);
-			break;
-		}
-
-		//
-		// Rule 72:  pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name
-		//
-		case 72: {
-			action.consumePsudoDestructorName(false);
-			break;
-		}
-
-		//
-		// Rule 73:  destructor_type_name ::= ~ identifier_token
-		//
-		case 73: {
-			action.consumeDestructorName();
-			break;
-		}
-
-		//
-		// Rule 74:  destructor_type_name ::= ~ template_id_name
-		//
-		case 74: {
-			action.consumeDestructorNameTemplateId();
-			break;
-		}
-
-		//
-		// Rule 78:  unary_expression ::= ++ cast_expression
-		//
-		case 78: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr);
-			break;
-		}
-
-		//
-		// Rule 79:  unary_expression ::= -- cast_expression
-		//
-		case 79: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr);
-			break;
-		}
-
-		//
-		// Rule 80:  unary_expression ::= & cast_expression
-		//
-		case 80: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper);
-			break;
-		}
-
-		//
-		// Rule 81:  unary_expression ::= * cast_expression
-		//
-		case 81: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_star);
-			break;
-		}
-
-		//
-		// Rule 82:  unary_expression ::= + cast_expression
-		//
-		case 82: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus);
-			break;
-		}
-
-		//
-		// Rule 83:  unary_expression ::= - cast_expression
-		//
-		case 83: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus);
-			break;
-		}
-
-		//
-		// Rule 84:  unary_expression ::= ~ cast_expression
-		//
-		case 84: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde);
-			break;
-		}
-
-		//
-		// Rule 85:  unary_expression ::= ! cast_expression
-		//
-		case 85: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_not);
-			break;
-		}
-
-		//
-		// Rule 86:  unary_expression ::= sizeof unary_expression
-		//
-		case 86: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof);
-			break;
-		}
-
-		//
-		// Rule 87:  unary_expression ::= sizeof ( type_id )
-		//
-		case 87: {
-			action.consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof);
-			break;
-		}
-
-		//
-		// Rule 88:  new_expression ::= dcolon_opt new new_placement_opt new_type_id <openscope-ast> new_array_expressions_opt new_initializer_opt
-		//
-		case 88: {
-			action.consumeExpressionNew(true);
-			break;
-		}
-
-		//
-		// Rule 89:  new_expression ::= dcolon_opt new new_placement_opt ( type_id ) <openscope-ast> new_array_expressions_opt new_initializer_opt
-		//
-		case 89: {
-			action.consumeExpressionNew(false);
-			break;
-		}
-
-		//
-		// Rule 91:  new_placement_opt ::= $Empty
-		//
-		case 91: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 92:  new_type_id ::= type_specifier_seq
-		//
-		case 92: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 93:  new_type_id ::= type_specifier_seq new_declarator
-		//
-		case 93: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 94:  new_declarator ::= <openscope-ast> new_pointer_operators
-		//
-		case 94: {
-			action.consumeNewDeclarator();
-			break;
-		}
-
-		//
-		// Rule 101:  new_initializer ::= ( expression_list_opt )
-		//
-		case 101: {
-			action.consumeNewInitializer();
-			break;
-		}
-
-		//
-		// Rule 103:  new_initializer_opt ::= $Empty
-		//
-		case 103: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 104:  delete_expression ::= dcolon_opt delete cast_expression
-		//
-		case 104: {
-			action.consumeExpressionDelete(false);
-			break;
-		}
-
-		//
-		// Rule 105:  delete_expression ::= dcolon_opt delete [ ] cast_expression
-		//
-		case 105: {
-			action.consumeExpressionDelete(true);
-			break;
-		}
-
-		//
-		// Rule 107:  cast_expression ::= ( type_id ) cast_expression
-		//
-		case 107: {
-			action.consumeExpressionCast(ICPPASTCastExpression.op_cast);
-			break;
-		}
-
-		//
-		// Rule 109:  pm_expression ::= pm_expression .* cast_expression
-		//
-		case 109: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot);
-			break;
-		}
-
-		//
-		// Rule 110:  pm_expression ::= pm_expression ->* cast_expression
-		//
-		case 110: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow);
-			break;
-		}
-
-		//
-		// Rule 112:  multiplicative_expression ::= multiplicative_expression * pm_expression
-		//
-		case 112: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply);
-			break;
-		}
-
-		//
-		// Rule 113:  multiplicative_expression ::= multiplicative_expression / pm_expression
-		//
-		case 113: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide);
-			break;
-		}
-
-		//
-		// Rule 114:  multiplicative_expression ::= multiplicative_expression % pm_expression
-		//
-		case 114: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo);
-			break;
-		}
-
-		//
-		// Rule 116:  additive_expression ::= additive_expression + multiplicative_expression
-		//
-		case 116: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus);
-			break;
-		}
-
-		//
-		// Rule 117:  additive_expression ::= additive_expression - multiplicative_expression
-		//
-		case 117: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus);
-			break;
-		}
-
-		//
-		// Rule 119:  shift_expression ::= shift_expression << additive_expression
-		//
-		case 119: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft);
-			break;
-		}
-
-		//
-		// Rule 120:  shift_expression ::= shift_expression >> additive_expression
-		//
-		case 120: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight);
-			break;
-		}
-
-		//
-		// Rule 122:  relational_expression ::= relational_expression < shift_expression
-		//
-		case 122: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan);
-			break;
-		}
-
-		//
-		// Rule 123:  relational_expression ::= relational_expression > shift_expression
-		//
-		case 123: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan);
-			break;
-		}
-
-		//
-		// Rule 124:  relational_expression ::= relational_expression <= shift_expression
-		//
-		case 124: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual);
-			break;
-		}
-
-		//
-		// Rule 125:  relational_expression ::= relational_expression >= shift_expression
-		//
-		case 125: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual);
-			break;
-		}
-
-		//
-		// Rule 127:  equality_expression ::= equality_expression == relational_expression
-		//
-		case 127: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals);
-			break;
-		}
-
-		//
-		// Rule 128:  equality_expression ::= equality_expression != relational_expression
-		//
-		case 128: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals);
-			break;
-		}
-
-		//
-		// Rule 130:  and_expression ::= and_expression & equality_expression
-		//
-		case 130: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd);
-			break;
-		}
-
-		//
-		// Rule 132:  exclusive_or_expression ::= exclusive_or_expression ^ and_expression
-		//
-		case 132: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor);
-			break;
-		}
-
-		//
-		// Rule 134:  inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression
-		//
-		case 134: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr);
-			break;
-		}
-
-		//
-		// Rule 136:  logical_and_expression ::= logical_and_expression && inclusive_or_expression
-		//
-		case 136: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd);
-			break;
-		}
-
-		//
-		// Rule 138:  logical_or_expression ::= logical_or_expression || logical_and_expression
-		//
-		case 138: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr);
-			break;
-		}
-
-		//
-		// Rule 140:  conditional_expression ::= logical_or_expression ? expression : assignment_expression
-		//
-		case 140: {
-			action.consumeExpressionConditional();
-			break;
-		}
-
-		//
-		// Rule 142:  relational_expression_inTemplate ::= relational_expression_inTemplate < shift_expression
-		//
-		case 142: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan);
-			break;
-		}
-
-		//
-		// Rule 143:  relational_expression_inTemplate ::= ( relational_expression_inTemplate > shift_expression )
-		//
-		case 143: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan);
-			break;
-		}
-
-		//
-		// Rule 144:  relational_expression_inTemplate ::= relational_expression_inTemplate <= shift_expression
-		//
-		case 144: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual);
-			break;
-		}
-
-		//
-		// Rule 145:  relational_expression_inTemplate ::= relational_expression_inTemplate >= shift_expression
-		//
-		case 145: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual);
-			break;
-		}
-
-		//
-		// Rule 147:  equality_expression_inTemplate ::= equality_expression_inTemplate == relational_expression_inTemplate
-		//
-		case 147: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals);
-			break;
-		}
-
-		//
-		// Rule 148:  equality_expression_inTemplate ::= equality_expression_inTemplate != relational_expression_inTemplate
-		//
-		case 148: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals);
-			break;
-		}
-
-		//
-		// Rule 150:  and_expression_inTemplate ::= and_expression_inTemplate & equality_expression_inTemplate
-		//
-		case 150: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd);
-			break;
-		}
-
-		//
-		// Rule 152:  exclusive_or_expression_inTemplate ::= exclusive_or_expression_inTemplate ^ and_expression_inTemplate
-		//
-		case 152: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor);
-			break;
-		}
-
-		//
-		// Rule 154:  inclusive_or_expression_inTemplate ::= inclusive_or_expression_inTemplate | exclusive_or_expression_inTemplate
-		//
-		case 154: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr);
-			break;
-		}
-
-		//
-		// Rule 156:  logical_and_expression_inTemplate ::= logical_and_expression_inTemplate && inclusive_or_expression_inTemplate
-		//
-		case 156: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd);
-			break;
-		}
-
-		//
-		// Rule 158:  logical_or_expression_inTemplate ::= logical_or_expression_inTemplate || logical_and_expression_inTemplate
-		//
-		case 158: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr);
-			break;
-		}
-
-		//
-		// Rule 160:  conditional_expression_inTemplate ::= logical_or_expression_inTemplate ? expression : assignment_expression_inTemplate
-		//
-		case 160: {
-			action.consumeExpressionConditional();
-			break;
-		}
-
-		//
-		// Rule 163:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate = assignment_expression_inTemplate
-		//
-		case 163: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign);
-			break;
-		}
-
-		//
-		// Rule 164:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate *= assignment_expression_inTemplate
-		//
-		case 164: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign);
-			break;
-		}
-
-		//
-		// Rule 165:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate /= assignment_expression_inTemplate
-		//
-		case 165: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign);
-			break;
-		}
-
-		//
-		// Rule 166:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate %= assignment_expression_inTemplate
-		//
-		case 166: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign);
-			break;
-		}
-
-		//
-		// Rule 167:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate += assignment_expression_inTemplate
-		//
-		case 167: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign);
-			break;
-		}
-
-		//
-		// Rule 168:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate -= assignment_expression_inTemplate
-		//
-		case 168: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign);
-			break;
-		}
-
-		//
-		// Rule 169:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate >>= assignment_expression_inTemplate
-		//
-		case 169: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign);
-			break;
-		}
-
-		//
-		// Rule 170:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate <<= assignment_expression_inTemplate
-		//
-		case 170: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign);
-			break;
-		}
-
-		//
-		// Rule 171:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate &= assignment_expression_inTemplate
-		//
-		case 171: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign);
-			break;
-		}
-
-		//
-		// Rule 172:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate ^= assignment_expression_inTemplate
-		//
-		case 172: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign);
-			break;
-		}
-
-		//
-		// Rule 173:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate |= assignment_expression_inTemplate
-		//
-		case 173: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign);
-			break;
-		}
-
-		//
-		// Rule 174:  throw_expression ::= throw
-		//
-		case 174: {
-			action.consumeExpressionThrow(false);
-			break;
-		}
-
-		//
-		// Rule 175:  throw_expression ::= throw assignment_expression
-		//
-		case 175: {
-			action.consumeExpressionThrow(true);
-			break;
-		}
-
-		//
-		// Rule 178:  assignment_expression ::= logical_or_expression = assignment_expression
-		//
-		case 178: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign);
-			break;
-		}
-
-		//
-		// Rule 179:  assignment_expression ::= logical_or_expression *= assignment_expression
-		//
-		case 179: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign);
-			break;
-		}
-
-		//
-		// Rule 180:  assignment_expression ::= logical_or_expression /= assignment_expression
-		//
-		case 180: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign);
-			break;
-		}
-
-		//
-		// Rule 181:  assignment_expression ::= logical_or_expression %= assignment_expression
-		//
-		case 181: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign);
-			break;
-		}
-
-		//
-		// Rule 182:  assignment_expression ::= logical_or_expression += assignment_expression
-		//
-		case 182: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign);
-			break;
-		}
-
-		//
-		// Rule 183:  assignment_expression ::= logical_or_expression -= assignment_expression
-		//
-		case 183: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign);
-			break;
-		}
-
-		//
-		// Rule 184:  assignment_expression ::= logical_or_expression >>= assignment_expression
-		//
-		case 184: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign);
-			break;
-		}
-
-		//
-		// Rule 185:  assignment_expression ::= logical_or_expression <<= assignment_expression
-		//
-		case 185: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign);
-			break;
-		}
-
-		//
-		// Rule 186:  assignment_expression ::= logical_or_expression &= assignment_expression
-		//
-		case 186: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign);
-			break;
-		}
-
-		//
-		// Rule 187:  assignment_expression ::= logical_or_expression ^= assignment_expression
-		//
-		case 187: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign);
-			break;
-		}
-
-		//
-		// Rule 188:  assignment_expression ::= logical_or_expression |= assignment_expression
-		//
-		case 188: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign);
-			break;
-		}
-
-		//
-		// Rule 190:  expression_list ::= <openscope-ast> expression_list_actual
-		//
-		case 190: {
-			action.consumeExpressionList();
-			break;
-		}
-
-		//
-		// Rule 194:  expression_list_opt ::= $Empty
-		//
-		case 194: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 196:  expression_opt ::= $Empty
-		//
-		case 196: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 199:  constant_expression_opt ::= $Empty
-		//
-		case 199: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 208:  statement ::= ERROR_TOKEN
-		//
-		case 208: {
-			action.consumeStatementProblem();
-			break;
-		}
-
-		//
-		// Rule 209:  labeled_statement ::= identifier : statement
-		//
-		case 209: {
-			action.consumeStatementLabeled();
-			break;
-		}
-
-		//
-		// Rule 210:  labeled_statement ::= case constant_expression : statement
-		//
-		case 210: {
-			action.consumeStatementCase();
-			break;
-		}
-
-		//
-		// Rule 211:  labeled_statement ::= default : statement
-		//
-		case 211: {
-			action.consumeStatementDefault();
-			break;
-		}
-
-		//
-		// Rule 212:  expression_statement ::= expression ;
-		//
-		case 212: {
-			action.consumeStatementExpression();
-			break;
-		}
-
-		//
-		// Rule 213:  expression_statement ::= ;
-		//
-		case 213: {
-			action.consumeStatementNull();
-			break;
-		}
-
-		//
-		// Rule 214:  compound_statement ::= { <openscope-ast> statement_seq }
-		//
-		case 214: {
-			action.consumeStatementCompoundStatement(true);
-			break;
-		}
-
-		//
-		// Rule 215:  compound_statement ::= { }
-		//
-		case 215: {
-			action.consumeStatementCompoundStatement(false);
-			break;
-		}
-
-		//
-		// Rule 218:  selection_statement ::= if ( condition ) statement
-		//
-		case 218: {
-			action.consumeStatementIf(false);
-			break;
-		}
-
-		//
-		// Rule 219:  selection_statement ::= if ( condition ) statement else statement
-		//
-		case 219: {
-			action.consumeStatementIf(true);
-			break;
-		}
-
-		//
-		// Rule 220:  selection_statement ::= switch ( condition ) statement
-		//
-		case 220: {
-			action.consumeStatementSwitch();
-			break;
-		}
-
-		//
-		// Rule 222:  condition ::= type_specifier_seq declarator = assignment_expression
-		//
-		case 222: {
-			action.consumeConditionDeclaration();
-			break;
-		}
-
-		//
-		// Rule 224:  condition_opt ::= $Empty
-		//
-		case 224: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 225:  iteration_statement ::= while ( condition ) statement
-		//
-		case 225: {
-			action.consumeStatementWhileLoop();
-			break;
-		}
-
-		//
-		// Rule 226:  iteration_statement ::= do statement while ( expression ) ;
-		//
-		case 226: {
-			action.consumeStatementDoLoop(true);
-			break;
-		}
-
-		//
-		// Rule 227:  iteration_statement ::= do statement
-		//
-		case 227: {
-			action.consumeStatementDoLoop(false);
-			break;
-		}
-
-		//
-		// Rule 228:  iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement
-		//
-		case 228: {
-			action.consumeStatementForLoop();
-			break;
-		}
-
-		//
-		// Rule 230:  for_init_statement ::= simple_declaration_with_declspec
-		//
-		case 230: {
-			action.consumeStatementDeclaration();
-			break;
-		}
-
-		//
-		// Rule 231:  jump_statement ::= break ;
-		//
-		case 231: {
-			action.consumeStatementBreak();
-			break;
-		}
-
-		//
-		// Rule 232:  jump_statement ::= continue ;
-		//
-		case 232: {
-			action.consumeStatementContinue();
-			break;
-		}
-
-		//
-		// Rule 233:  jump_statement ::= return expression ;
-		//
-		case 233: {
-			action.consumeStatementReturn(true);
-			break;
-		}
-
-		//
-		// Rule 234:  jump_statement ::= return ;
-		//
-		case 234: {
-			action.consumeStatementReturn(false);
-			break;
-		}
-
-		//
-		// Rule 235:  jump_statement ::= goto identifier_token ;
-		//
-		case 235: {
-			action.consumeStatementGoto();
-			break;
-		}
-
-		//
-		// Rule 236:  declaration_statement ::= block_declaration
-		//
-		case 236: {
-			action.consumeStatementDeclarationWithDisambiguation();
-			break;
-		}
-
-		//
-		// Rule 237:  declaration_statement ::= function_definition
-		//
-		case 237: {
-			action.consumeStatementDeclaration();
-			break;
-		}
-
-		//
-		// Rule 245:  declaration ::= ERROR_TOKEN
-		//
-		case 245: {
-			action.consumeDeclarationProblem();
-			break;
-		}
-
-		//
-		// Rule 255:  simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ;
-		//
-		case 255: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 256:  simple_declaration_with_declspec ::= declaration_specifiers <openscope-ast> init_declarator_list_opt ;
-		//
-		case 256: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 257:  declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
-		//
-		case 257: {
-			action.consumeDeclarationSpecifiersSimple();
-			break;
-		}
-
-		//
-		// Rule 258:  declaration_specifiers ::= <openscope-ast> class_declaration_specifiers
-		//
-		case 258: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 259:  declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
-		//
-		case 259: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 260:  declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
-		//
-		case 260: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 261:  declaration_specifiers ::= <openscope-ast> type_name_declaration_specifiers
-		//
-		case 261: {
-			action.consumeDeclarationSpecifiersTypeName();
-			break;
-		}
-
-		//
-		// Rule 263:  declaration_specifiers_opt ::= $Empty
-		//
-		case 263: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 267:  no_type_declaration_specifier ::= friend
-		//
-		case 267: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 268:  no_type_declaration_specifier ::= typedef
-		//
-		case 268: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 288:  storage_class_specifier ::= auto
-		//
-		case 288: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 289:  storage_class_specifier ::= register
-		//
-		case 289: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 290:  storage_class_specifier ::= static
-		//
-		case 290: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 291:  storage_class_specifier ::= extern
-		//
-		case 291: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 292:  storage_class_specifier ::= mutable
-		//
-		case 292: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 293:  function_specifier ::= inline
-		//
-		case 293: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 294:  function_specifier ::= virtual
-		//
-		case 294: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 295:  function_specifier ::= explicit
-		//
-		case 295: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 296:  simple_type_specifier ::= simple_type_specifier_token
-		//
-		case 296: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 310:  type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name
-		//
-		case 310: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 311:  type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name
-		//
-		case 311: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 312:  type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name
-		//
-		case 312: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 313:  type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name
-		//
-		case 313: {
-			action.consumeQualifiedId(true);
-			break;
-		}
-
-		//
-		// Rule 315:  elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name
-		//
-		case 315: {
-			action.consumeTypeSpecifierElaborated(false);
-			break;
-		}
-
-		//
-		// Rule 316:  elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt template_opt template_id_name
-		//
-		case 316: {
-			action.consumeTypeSpecifierElaborated(true);
-			break;
-		}
-
-		//
-		// Rule 317:  elaborated_type_specifier ::= enum elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name
-		//
-		case 317: {
-			action.consumeTypeSpecifierElaborated(false);
-			break;
-		}
-
-		//
-		// Rule 321:  enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
-		//
-		case 321: {
-			action.consumeTypeSpecifierEnumeration(false);
-			break;
-		}
-
-		//
-		// Rule 322:  enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
-		//
-		case 322: {
-			action.consumeTypeSpecifierEnumeration(true);
-			break;
-		}
-
-		//
-		// Rule 328:  enumerator_definition ::= identifier_token
-		//
-		case 328: {
-			action.consumeEnumerator(false);
-			break;
-		}
-
-		//
-		// Rule 329:  enumerator_definition ::= identifier_token = constant_expression
-		//
-		case 329: {
-			action.consumeEnumerator(true);
-			break;
-		}
-
-		//
-		// Rule 331:  namespace_definition ::= namespace namespace_name namespace_definition_hook { <openscope-ast> declaration_seq_opt }
-		//
-		case 331: {
-			action.consumeNamespaceDefinition(true);
-			break;
-		}
-
-		//
-		// Rule 332:  namespace_definition ::= namespace namespace_definition_hook { <openscope-ast> declaration_seq_opt }
-		//
-		case 332: {
-			action.consumeNamespaceDefinition(false);
-			break;
-		}
-
-		//
-		// Rule 334:  namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ;
-		//
-		case 334: {
-			action.consumeNamespaceAliasDefinition();
-			break;
-		}
-
-		//
-		// Rule 335:  using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ;
-		//
-		case 335: {
-			action.consumeUsingDeclaration();
-			break;
-		}
-
-		//
-		// Rule 336:  typename_opt ::= typename
-		//
-		case 336: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 337:  typename_opt ::= $Empty
-		//
-		case 337: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 338:  using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ;
-		//
-		case 338: {
-			action.consumeUsingDirective();
-			break;
-		}
-
-		//
-		// Rule 339:  asm_definition ::= asm ( stringlit ) ;
-		//
-		case 339: {
-			action.consumeDeclarationASM();
-			break;
-		}
-
-		//
-		// Rule 340:  linkage_specification ::= extern stringlit { <openscope-ast> declaration_seq_opt }
-		//
-		case 340: {
-			action.consumeLinkageSpecification();
-			break;
-		}
-
-		//
-		// Rule 341:  linkage_specification ::= extern stringlit <openscope-ast> declaration
-		//
-		case 341: {
-			action.consumeLinkageSpecification();
-			break;
-		}
-
-		//
-		// Rule 346:  init_declarator_complete ::= init_declarator
-		//
-		case 346: {
-			action.consumeInitDeclaratorComplete();
-			break;
-		}
-
-		//
-		// Rule 348:  init_declarator ::= complete_declarator initializer
-		//
-		case 348: {
-			action.consumeDeclaratorWithInitializer(true);
-			break;
-		}
-
-		//
-		// Rule 351:  declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
-		//
-		case 351: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 353:  function_declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
-		//
-		case 353: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 357:  basic_direct_declarator ::= declarator_id_name
-		//
-		case 357: {
-			action.consumeDirectDeclaratorIdentifier();
-			break;
-		}
-
-		//
-		// Rule 358:  basic_direct_declarator ::= ( declarator )
-		//
-		case 358: {
-			action.consumeDirectDeclaratorBracketed();
-			break;
-		}
-
-		//
-		// Rule 359:  function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
-		//
-		case 359: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 360:  array_direct_declarator ::= array_direct_declarator array_modifier
-		//
-		case 360: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 361:  array_direct_declarator ::= basic_direct_declarator array_modifier
-		//
-		case 361: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 362:  array_modifier ::= [ constant_expression ]
-		//
-		case 362: {
-			action.consumeDirectDeclaratorArrayModifier(true);
-			break;
-		}
-
-		//
-		// Rule 363:  array_modifier ::= [ ]
-		//
-		case 363: {
-			action.consumeDirectDeclaratorArrayModifier(false);
-			break;
-		}
-
-		//
-		// Rule 364:  ptr_operator ::= pointer_hook * pointer_hook <openscope-ast> cv_qualifier_seq_opt
-		//
-		case 364: {
-			action.consumePointer();
-			break;
-		}
-
-		//
-		// Rule 365:  ptr_operator ::= pointer_hook & pointer_hook
-		//
-		case 365: {
-			action.consumeReferenceOperator();
-			break;
-		}
-
-		//
-		// Rule 366:  ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * pointer_hook <openscope-ast> cv_qualifier_seq_opt
-		//
-		case 366: {
-			action.consumePointerToMember();
-			break;
-		}
-
-		//
-		// Rule 373:  cv_qualifier ::= const
-		//
-		case 373: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 374:  cv_qualifier ::= volatile
-		//
-		case 374: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 376:  declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name
-		//
-		case 376: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 377:  type_id ::= type_specifier_seq
-		//
-		case 377: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 378:  type_id ::= type_specifier_seq abstract_declarator
-		//
-		case 378: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 381:  abstract_declarator ::= <openscope-ast> ptr_operator_seq
-		//
-		case 381: {
-			action.consumeDeclaratorWithPointer(false);
-			break;
-		}
-
-		//
-		// Rule 382:  abstract_declarator ::= <openscope-ast> ptr_operator_seq direct_abstract_declarator
-		//
-		case 382: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 386:  basic_direct_abstract_declarator ::= ( abstract_declarator )
-		//
-		case 386: {
-			action.consumeDirectDeclaratorBracketed();
-			break;
-		}
-
-		//
-		// Rule 387:  basic_direct_abstract_declarator ::= ( )
-		//
-		case 387: {
-			action.consumeAbstractDeclaratorEmpty();
-			break;
-		}
-
-		//
-		// Rule 388:  array_direct_abstract_declarator ::= array_modifier
-		//
-		case 388: {
-			action.consumeDirectDeclaratorArrayDeclarator(false);
-			break;
-		}
-
-		//
-		// Rule 389:  array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
-		//
-		case 389: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 390:  array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
-		//
-		case 390: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 391:  function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
-		//
-		case 391: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 392:  function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
-		//
-		case 392: {
-			action.consumeDirectDeclaratorFunctionDeclarator(false);
-			break;
-		}
-
-		//
-		// Rule 393:  parameter_declaration_clause ::= parameter_declaration_list_opt ...
-		//
-		case 393: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 394:  parameter_declaration_clause ::= parameter_declaration_list_opt
-		//
-		case 394: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 395:  parameter_declaration_clause ::= parameter_declaration_list , ...
-		//
-		case 395: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 401:  abstract_declarator_opt ::= $Empty
-		//
-		case 401: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 402:  parameter_declaration ::= declaration_specifiers parameter_init_declarator
-		//
-		case 402: {
-			action.consumeParameterDeclaration();
-			break;
-		}
-
-		//
-		// Rule 403:  parameter_declaration ::= declaration_specifiers
-		//
-		case 403: {
-			action.consumeParameterDeclarationWithoutDeclarator();
-			break;
-		}
-
-		//
-		// Rule 405:  parameter_init_declarator ::= declarator = parameter_initializer
-		//
-		case 405: {
-			action.consumeDeclaratorWithInitializer(true);
-			break;
-		}
-
-		//
-		// Rule 407:  parameter_init_declarator ::= abstract_declarator = parameter_initializer
-		//
-		case 407: {
-			action.consumeDeclaratorWithInitializer(true);
-			break;
-		}
-
-		//
-		// Rule 408:  parameter_init_declarator ::= = parameter_initializer
-		//
-		case 408: {
-			action.consumeDeclaratorWithInitializer(false);
-			break;
-		}
-
-		//
-		// Rule 409:  parameter_initializer ::= assignment_expression
-		//
-		case 409: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 410:  function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body
-		//
-		case 410: {
-			action.consumeFunctionDefinition(false);
-			break;
-		}
-
-		//
-		// Rule 411:  function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq
-		//
-		case 411: {
-			action.consumeFunctionDefinition(true);
-			break;
-		}
-
-		//
-		// Rule 414:  initializer ::= ( expression_list )
-		//
-		case 414: {
-			action.consumeInitializerConstructor();
-			break;
-		}
-
-		//
-		// Rule 415:  initializer_clause ::= assignment_expression
-		//
-		case 415: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 416:  initializer_clause ::= initializer_list
-		//
-		case 416: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 417:  initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq , } end_initializer_list
-		//
-		case 417: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 418:  initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq } end_initializer_list
-		//
-		case 418: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 419:  initializer_list ::= { <openscope-ast> }
-		//
-		case 419: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 420:  start_initializer_list ::= $Empty
-		//
-		case 420: {
-			action.initializerListStart();
-			break;
-		}
-
-		//
-		// Rule 421:  end_initializer_list ::= $Empty
-		//
-		case 421: {
-			action.initializerListEnd();
-			break;
-		}
-
-		//
-		// Rule 426:  class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt }
-		//
-		case 426: {
-			action.consumeClassSpecifier();
-			break;
-		}
-
-		//
-		// Rule 427:  class_head ::= class_keyword composite_specifier_hook identifier_name_opt class_name_suffix_hook <openscope-ast> base_clause_opt
-		//
-		case 427: {
-			action.consumeClassHead(false);
-			break;
-		}
-
-		//
-		// Rule 428:  class_head ::= class_keyword composite_specifier_hook template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt
-		//
-		case 428: {
-			action.consumeClassHead(false);
-			break;
-		}
-
-		//
-		// Rule 429:  class_head ::= class_keyword composite_specifier_hook nested_name_specifier identifier_name class_name_suffix_hook <openscope-ast> base_clause_opt
-		//
-		case 429: {
-			action.consumeClassHead(true);
-			break;
-		}
-
-		//
-		// Rule 430:  class_head ::= class_keyword composite_specifier_hook nested_name_specifier template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt
-		//
-		case 430: {
-			action.consumeClassHead(true);
-			break;
-		}
-
-		//
-		// Rule 434:  identifier_name_opt ::= $Empty
-		//
-		case 434: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 438:  visibility_label ::= access_specifier_keyword :
-		//
-		case 438: {
-			action.consumeVisibilityLabel();
-			break;
-		}
-
-		//
-		// Rule 439:  member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
-		//
-		case 439: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 440:  member_declaration ::= declaration_specifiers_opt ;
-		//
-		case 440: {
-			action.consumeDeclarationSimple(false);
-			break;
-		}
-
-		//
-		// Rule 443:  member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ;
-		//
-		case 443: {
-			action.consumeMemberDeclarationQualifiedId();
-			break;
-		}
-
-		//
-		// Rule 449:  member_declaration ::= ERROR_TOKEN
-		//
-		case 449: {
-			action.consumeDeclarationProblem();
-			break;
-		}
-
-		//
-		// Rule 458:  member_declarator ::= declarator constant_initializer
-		//
-		case 458: {
-			action.consumeMemberDeclaratorWithInitializer();
-			break;
-		}
-
-		//
-		// Rule 459:  member_declarator ::= bit_field_declarator : constant_expression
-		//
-		case 459: {
-			action.consumeBitField(true);
-			break;
-		}
-
-		//
-		// Rule 460:  member_declarator ::= : constant_expression
-		//
-		case 460: {
-			action.consumeBitField(false);
-			break;
-		}
-
-		//
-		// Rule 461:  bit_field_declarator ::= identifier_name
-		//
-		case 461: {
-			action.consumeDirectDeclaratorIdentifier();
-			break;
-		}
-
-		//
-		// Rule 462:  constant_initializer ::= = constant_expression
-		//
-		case 462: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 468:  base_specifier ::= dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 468: {
-			action.consumeBaseSpecifier(false, false);
-			break;
-		}
-
-		//
-		// Rule 469:  base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 469: {
-			action.consumeBaseSpecifier(true, true);
-			break;
-		}
-
-		//
-		// Rule 470:  base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 470: {
-			action.consumeBaseSpecifier(true, true);
-			break;
-		}
-
-		//
-		// Rule 471:  base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 471: {
-			action.consumeBaseSpecifier(true, false);
-			break;
-		}
-
-		//
-		// Rule 472:  access_specifier_keyword ::= private
-		//
-		case 472: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 473:  access_specifier_keyword ::= protected
-		//
-		case 473: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 474:  access_specifier_keyword ::= public
-		//
-		case 474: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 476:  access_specifier_keyword_opt ::= $Empty
-		//
-		case 476: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 478:  conversion_function_id_name ::= conversion_function_id < <openscope-ast> template_argument_list_opt >
-		//
-		case 478: {
-			action.consumeTemplateId();
-			break;
-		}
-
-		//
-		// Rule 479:  conversion_function_id ::= operator conversion_type_id
-		//
-		case 479: {
-			action.consumeConversionName();
-			break;
-		}
-
-		//
-		// Rule 480:  conversion_type_id ::= type_specifier_seq conversion_declarator
-		//
-		case 480: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 481:  conversion_type_id ::= type_specifier_seq
-		//
-		case 481: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 482:  conversion_declarator ::= <openscope-ast> ptr_operator_seq
-		//
-		case 482: {
-			action.consumeDeclaratorWithPointer(false);
-			break;
-		}
-
-		//
-		// Rule 488:  mem_initializer ::= mem_initializer_name ( expression_list_opt )
-		//
-		case 488: {
-			action.consumeConstructorChainInitializer();
-			break;
-		}
-
-		//
-		// Rule 489:  mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 489: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 492:  operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt >
-		//
-		case 492: {
-			action.consumeTemplateId();
-			break;
-		}
-
-		//
-		// Rule 493:  operator_id_name ::= operator overloadable_operator
-		//
-		case 493: {
-			action.consumeOperatorName();
-			break;
-		}
-
-		//
-		// Rule 536:  template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration
-		//
-		case 536: {
-			action.consumeTemplateDeclaration();
-			break;
-		}
-
-		//
-		// Rule 537:  export_opt ::= export
-		//
-		case 537: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 538:  export_opt ::= $Empty
-		//
-		case 538: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 542:  template_parameter ::= parameter_declaration
-		//
-		case 542: {
-			action.consumeTemplateParamterDeclaration();
-			break;
-		}
-
-		//
-		// Rule 543:  type_parameter ::= class identifier_name_opt
-		//
-		case 543: {
-			action.consumeSimpleTypeTemplateParameter(false);
-			break;
-		}
-
-		//
-		// Rule 544:  type_parameter ::= class identifier_name_opt = type_id
-		//
-		case 544: {
-			action.consumeSimpleTypeTemplateParameter(true);
-			break;
-		}
-
-		//
-		// Rule 545:  type_parameter ::= typename identifier_name_opt
-		//
-		case 545: {
-			action.consumeSimpleTypeTemplateParameter(false);
-			break;
-		}
-
-		//
-		// Rule 546:  type_parameter ::= typename identifier_name_opt = type_id
-		//
-		case 546: {
-			action.consumeSimpleTypeTemplateParameter(true);
-			break;
-		}
-
-		//
-		// Rule 547:  type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt
-		//
-		case 547: {
-			action.consumeTemplatedTypeTemplateParameter(false);
-			break;
-		}
-
-		//
-		// Rule 548:  type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression
-		//
-		case 548: {
-			action.consumeTemplatedTypeTemplateParameter(true);
-			break;
-		}
-
-		//
-		// Rule 549:  template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt >
-		//
-		case 549: {
-			action.consumeTemplateId();
-			break;
-		}
-
-		//
-		// Rule 556:  nested_name_specifier_inTemplate ::= class_or_namespace_name_inTemplate :: nested_name_specifier_with_template_inTemplate
-		//
-		case 556: {
-			action.consumeNestedNameSpecifier(true);
-			break;
-		}
-
-		//
-		// Rule 557:  nested_name_specifier_inTemplate ::= class_or_namespace_name_inTemplate ::
-		//
-		case 557: {
-			action.consumeNestedNameSpecifier(false);
-			break;
-		}
-
-		//
-		// Rule 558:  nested_name_specifier_with_template_inTemplate ::= class_or_namespace_name_with_template_inTemplate :: nested_name_specifier_with_template_inTemplate
-		//
-		case 558: {
-			action.consumeNestedNameSpecifier(true);
-			break;
-		}
-
-		//
-		// Rule 559:  nested_name_specifier_with_template_inTemplate ::= class_or_namespace_name_with_template_inTemplate ::
-		//
-		case 559: {
-			action.consumeNestedNameSpecifier(false);
-			break;
-		}
-
-		//
-		// Rule 560:  class_or_namespace_name_with_template_inTemplate ::= template_opt class_or_namespace_name_inTemplate
-		//
-		case 560: {
-			action.consumeNameWithTemplateKeyword();
-			break;
-		}
-
-		//
-		// Rule 562:  nested_name_specifier_opt_inTemplate ::= $Empty
-		//
-		case 562: {
-			action.consumeNestedNameSpecifierEmpty();
-			break;
-		}
-
-		//
-		// Rule 565:  type_name_specifier_inTemplate ::= typename dcolon_opt nested_name_specifier identifier_name
-		//
-		case 565: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 566:  type_name_specifier_inTemplate ::= typename dcolon_opt nested_name_specifier template_opt template_id_name
-		//
-		case 566: {
-			action.consumeQualifiedId(true);
-			break;
-		}
-
-		//
-		// Rule 571:  declaration_specifiers_inTemplate ::= <openscope-ast> simple_declaration_specifiers
-		//
-		case 571: {
-			action.consumeDeclarationSpecifiersSimple();
-			break;
-		}
-
-		//
-		// Rule 572:  declaration_specifiers_inTemplate ::= <openscope-ast> class_declaration_specifiers
-		//
-		case 572: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 573:  declaration_specifiers_inTemplate ::= <openscope-ast> elaborated_declaration_specifiers
-		//
-		case 573: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 574:  declaration_specifiers_inTemplate ::= <openscope-ast> enum_declaration_specifiers
-		//
-		case 574: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 575:  declaration_specifiers_inTemplate ::= <openscope-ast> type_name_declaration_specifiers_inTemplate
-		//
-		case 575: {
-			action.consumeDeclarationSpecifiersTypeName();
-			break;
-		}
-
-		//
-		// Rule 577:  type_id_inTemplate ::= type_specifier_seq_inTemplate
-		//
-		case 577: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 578:  type_id_inTemplate ::= type_specifier_seq_inTemplate abstract_declarator
-		//
-		case 578: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 579:  template_argument ::= assignment_expression_inTemplate
-		//
-		case 579: {
-			action.consumeTemplateArgumentExpression();
-			break;
-		}
-
-		//
-		// Rule 580:  template_argument ::= type_id_inTemplate
-		//
-		case 580: {
-			action.consumeTemplateArgumentTypeId();
-			break;
-		}
-
-		//
-		// Rule 581:  explicit_instantiation ::= template declaration
-		//
-		case 581: {
-			action.consumeTemplateExplicitInstantiation();
-			break;
-		}
-
-		//
-		// Rule 582:  explicit_specialization ::= template < > declaration
-		//
-		case 582: {
-			action.consumeTemplateExplicitSpecialization();
-			break;
-		}
-
-		//
-		// Rule 583:  try_block ::= try compound_statement <openscope-ast> handler_seq
-		//
-		case 583: {
-			action.consumeStatementTryBlock(true);
-			break;
-		}
-
-		//
-		// Rule 584:  try_block ::= try compound_statement
-		//
-		case 584: {
-			action.consumeStatementTryBlock(false);
-			break;
-		}
-
-		//
-		// Rule 587:  handler ::= catch ( exception_declaration ) compound_statement
-		//
-		case 587: {
-			action.consumeStatementCatchHandler(false);
-			break;
-		}
-
-		//
-		// Rule 588:  handler ::= catch ( ... ) compound_statement
-		//
-		case 588: {
-			action.consumeStatementCatchHandler(true);
-			break;
-		}
-
-		//
-		// Rule 589:  exception_declaration ::= type_specifier_seq <openscope-ast> declarator
-		//
-		case 589: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 590:  exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
-		//
-		case 590: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 591:  exception_declaration ::= type_specifier_seq
-		//
-		case 591: {
-			action.consumeDeclarationSimple(false);
-			break;
-		}
-
-		//
-		// Rule 593:  exception_specification ::= throw ( )
-		//
-		case 593: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 599:  expression_parser_start ::= ERROR_TOKEN
-		//
-		case 599: {
-			action.consumeEmpty();
-			break;
-		}
-
-		default:
-			break;
-		}
-		return;
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParserprs.java
deleted file mode 100644
index 6cc83c0..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParserprs.java
+++ /dev/null
@@ -1,1555 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2015 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.lrparser.cpp;
-
-public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CPPExpressionParsersym {
-
-	public interface IsKeyword {
-		public final static byte isKeyword[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static byte isKeyword[] = IsKeyword.isKeyword;
-
-	public final boolean isKeyword(int index) {
-		return isKeyword[index] != 0;
-	}
-
-	public interface BaseCheck {
-		public final static short baseCheck[] = { 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 0, 1, 0, 4, 2, 3, 2, 3, 2, 2, 1, 0, 1, 1, 4, 4, 4, 8, 8, 3, 3,
-				4, 4, 3, 3, 2, 2, 7, 7, 7, 7, 4, 4, 5, 6, 3, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 7, 9, 3, 0, 1,
-				2, 2, 1, 2, 3, 4, 1, 0, 3, 1, 0, 3, 5, 1, 4, 1, 3, 3, 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 3, 3, 3, 3, 1, 3,
-				3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 1, 3, 5, 3, 3, 1, 3, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 1, 1,
-				3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 2, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 2, 1, 3, 1, 0, 1, 0, 1,
-				1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 4, 3, 2, 1, 4, 2, 1, 2, 5, 7, 5, 1, 4, 1, 0, 5, 7, 2, 8, 1, 1, 2, 2,
-				3, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 0, 4, 4, 2, 2, 2, 2, 2, 1, 0, 1, 1, 1, 1,
-				1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 3, 4, 4, 5, 2, 5, 6, 5, 0, 1, 0, 7, 8, 0, 1, 3, 1, 0, 1, 3, 1, 7, 6, 0, 7, 6, 1, 0,
-				6, 5, 6, 4, 1, 3, 1, 0, 1, 1, 2, 1, 1, 3, 1, 3, 1, 1, 1, 1, 3, 9, 2, 2, 3, 2, 5, 3, 7, 0, 1, 2, 2, 1, 0,
-				1, 1, 1, 3, 1, 2, 1, 1, 2, 3, 1, 1, 1, 3, 2, 1, 2, 2, 9, 8, 2, 1, 3, 1, 3, 1, 0, 1, 0, 2, 1, 1, 3, 1, 3,
-				2, 1, 5, 8, 1, 2, 3, 1, 1, 7, 6, 3, 0, 0, 1, 3, 1, 1, 5, 6, 6, 7, 7, 0, 0, 1, 0, 1, 1, 1, 2, 4, 2, 2, 1,
-				5, 1, 1, 1, 1, 1, 1, 1, 2, 1, 0, 1, 3, 1, 1, 2, 3, 2, 1, 2, 2, 1, 0, 1, 3, 3, 5, 5, 4, 1, 1, 1, 1, 0, 1,
-				5, 2, 2, 1, 2, 2, 1, 0, 1, 3, 4, 3, 1, 1, 5, 2, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 7, 1, 0, 1, 3, 1, 1, 2, 4, 2, 4, 7,
-				9, 5, 1, 3, 1, 0, 1, 1, 3, 2, 3, 2, 2, 1, 0, 1, 1, 4, 5, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 4,
-				4, 2, 1, 2, 5, 5, 3, 3, 1, 4, 3, 1, 0, 1, 3, 1, 1, -62, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -122, -65, 0, -4, 0, 0, 0, 0, 0, -54, 0, 0, -48, 0, 0, -5, -10, 0, -6, 0,
-				0, -117, -137, -119, 0, 0, -365, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -313, 0, 0, 0, -183, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -73, -120, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -59, 0, 0, -470, 0, 0, 0, 0, -217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -438,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -267, -430, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -262, 0, -115, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -53, 0, -439, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -285, 0, -129, 0, 0, -281, 0, 0, 0, 0, -455, 0, 0, 0, 0, 0, -373, 0, 0, 0, 0, 0, 0, 0,
-				-116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, -508,
-				0, 0, 0, 0, 0, 0, -311, 0, 0, -539, 0, 0, 0, 0, -130, 0, -127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -343, 0, 0, 0, 0, -462, 0, 0, 0, 0, 0, 0, -131, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -213, 0, -463, 0, 0, 0, 0,
-				0, 0, -58, 0, 0, 0, -417, 0, 0, 0, 0, -7, 0, 0, 0, 0, 0, -8, 0, -529, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -144, 0, 0,
-				-150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -9, -421, 0, 0, 0, -474, 0, 0, 0, 0, 0, -138, 0, -407, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -71, 0, 0, 0, 0, -154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -106, 0, 0, 0, 0,
-				-268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -315, 0, 0, 0, -64, 0, 0, 0, 0,
-				0, 0, -347, 0, 0, 0, 0, -573, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -49, -11, 0, -12, 0, 0, 0, 0, 0, 0, 0, 0, -13, 0, 0, 0, -179, 0, 0, 0, -597, 0, 0, 0, 0, -334, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -124, 0, 0, 0, -284, 0, 0, 0, 0, 0, 0, -51,
-				0, 0, 0, -50, 0, -15, 0, 0, 0, -504, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 0, -200, 0, 0, 0, 0, -29,
-				-3, 0, 0, 0, 0, -321, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -57, -30, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -387, 0, 0, -271, 0, 0, 0, 0, -148, -135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -178, 0, 0, 0, 0, -121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-331, 0, 0, 0, 0, -207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -60, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -263, 0, 0, -16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -222, 0, 0, 0,
-				-377, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -146, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -31, 0, 0, 0, -328, 0, 0, -378, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -524, 0, 0, -390, 0, 0, 0, 0, 0, -359, 0, 0, -32, 0, 0, -266, 0, 0,
-				0, 0, -39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -145, -318, 0,
-				0, 0, 0, 0, 0, 0, -33, 0, 0, -34, 0, 0, -264, -237, 0, 0, 0, 0, 0, -41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -503, 0, 0, 0, 0, 0, 0, 0, 0, -588, 0, 0, -423, 0, 0, -275,
-				0, 0, 0, 0, 0, -35, 0, -94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -449, 0, 0, 0, 0, -199, 0, 0, 0, 0, 0, 0, -36, 0, 0, -495, 0, 0, 0, 0, -95, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -201, 0, -37, 0, 0, 0, 0, 0, 0, 0, 0, -38, 0,
-				0, -282, 0, 0, 0, 0, -96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -362, 0, -40, 0, 0, 0, 0, 0, -404, 0, 0, -55, 0, 0, -497, 0, 0, 0, 0, -97, 0, 0, 0, 0, -56, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -355, 0, 0, 0, -425, 0, 0, 0, 0, 0,
-				-531, 0, 0, 0, 0, -98, 0, 0, 0, 0, -415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -66, 0, -445, 0, 0, 0, 0, 0, 0, 0, 0, 0, -532, 0, 0, 0, 0, -99, 0, 0, 0, 0, -448, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -459, 0, -67, 0, 0, 0, 0, 0, -464, 0, 0, 0, 0, 0,
-				-288, 0, 0, 0, 0, -100, 0, 0, 0, 0, -452, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-477, 0, 0, -69, 0, -472, 0, 0, 0, 0, 0, 0, 0, 0, 0, -289, 0, 0, 0, 0, -101, 0, 0, 0, 0, -478, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -558, -473, 0, -70, 0, 0, 0, 0, 0, -481, 0, 0, 0,
-				0, 0, -329, 0, 0, 0, 0, -102, 0, 0, 0, 0, -109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -197, 0, 0, -110, 0, 0, 0, 0, 0, -506, 0, 0, 0, 0, 0, -341, 0, 0, 0, 0, -103, 0, 0, 0, 0, -111, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -211, 0, 0, 0, 0, 0, 0, 0, 0, -112, 0, 0, 0,
-				0, 0, -371, 0, 0, 0, 0, -104, 0, 0, 0, 0, -132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -370, -485, 0, 0, 0, 0, 0, 0, 0, -517, 0, 0, 0, 0, 0, -203, 0, 0, 0, 0, -224, 0, 0, 0, 0, -139, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -113, 0, -322, 0, 0, 0, -526, 0, 0,
-				-402, 0, 0, -380, 0, 0, 0, 0, -248, 0, 0, 0, 0, -140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -141, -505, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -14, 0, -118, 0, -155, 0, -432, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -286, -107, 0, 0, 0, -156, -433, -335, 0, -411, 0, 0, 0, -157, 0, 0, 0, -194, 0,
-				-231, 0, 0, 0, 0, 0, -437, 0, 0, 0, -482, -412, 0, 0, 0, 0, 0, 0, 0, 0, -250, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -108, 0, 0, -114, 0, 0, 0, -158, 0, 0, -274, 0, 0, 0,
-				0, 0, 0, -159, 0, 0, 0, 0, 0, 0, 0, 0, 0, -589, 0, -160, 0, 0, -356, 0, 0, 0, 0, 0, 0, -251, 0, 0, 0, 0,
-				-436, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -566, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -161, 0, 0, 0, -162, 0, -163, 0, -164, 0, 0, 0, 0, 0, -252, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -165, 0, 0, -392, 0, 0, 0, 0,
-				0, -216, 0, 0, 0, -166, 0, 0, 0, -43, 0, -167, 0, -442, 0, -325, 0, 0, 0, 0, 0, -494, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -168, -149,
-				0, 0, -72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -446, 0, 0, 0, -352, 0, 0, -465, -169, 0, 0, 0, 0, 0, 0,
-				0, -170, 0, 0, 0, 0, 0, -254, 0, 0, 0, 0, -153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -209, 0, -152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -466, -272, 0, -171, 0, 0, 0, -596, 0, -358,
-				0, -310, 0, -172, 0, 0, 0, -173, 0, 0, 0, 0, 0, -255, 0, 0, 0, 0, -218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -147, 0, 0, 0, -223, 0, 0, 0, 0, 0, 0, -276, 0, 0, 0, 0, -174, 0,
-				-357, -323, -175, -512, -324, 0, 0, 0, 0, 0, 0, -376, -391, 0, 0, 0, 0, 0, -256, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -176, 0, -395, 0, 0, 0, -528, 0, 0, 0, 0, 0, 0,
-				-283, -177, 0, 0, 0, -180, 0, -413, -574, 0, 0, 0, 0, -184, 0, 0, 0, -394, -572, -185, 0, 0, 0, 0, 0,
-				-257, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -290, 0, 0, -435, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -326, -381, 0, -44, 0, 0, 0, 0, 0, -186, -330, -187, 0, -123, 0, 0, 0, -420,
-				0, -188, 0, 0, 0, 0, 0, -258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -189, 0, 0, 0, 0, -294, 0, 0, -342, -363, 0, 0, 0, 0, 0, -414, 0, -45, 0, -125, 0, -190, 0, -191, 0,
-				-192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -354, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -291, -292, 0, 0, 0, 0, 0, 0, -193, 0, -535, -367, -196, -346, -204, -134, 0, 0,
-				0, 0, 0, -205, 0, 0, 0, -208, 0, 0, 0, -542, 0, 0, 0, -397, 0, 0, 0, 0, 0, -591, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -368, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -219, 0, 0,
-				0, -229, 0, -293, 0, -389, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -230, 0, 0, -527, 0, 0, 0, -238, 0, 0, -340, 0, 0, -405, 0, 0, 0, 0, -559, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -269, 0, 0, 0, -277, 0, 0, 0, -424, 0, 0, -379, 0, 0, -501,
-				-385, 0, 0, -61, -393, 0, -279, -586, 0, 0, -220, 0, 0, 0, -416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -396, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -440, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -327, 0, -602, 0, 0, 0, 0, 0, -287,
-				0, 0, -298, 0, 0, -299, -300, 0, 0, 0, 0, 0, 0, 0, 0, -301, -302, -540, -350, 0, -441, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -232, 0, -538, -303, 0, -585, 0, 0, 0, 0, 0,
-				0, -351, 0, 0, -515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-304, 0, -305, 0, -306, 0, 0, 0, 0, 0, 0, -399, 0, 0, -233, -401, 0, -418, -427, -451, 0, -307, 0, 0, 0,
-				-308, 0, 0, 0, -309, -18, 0, 0, 0, 0, -260, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -476, -353, 0, -280, -1, 0, 0, 0, 0, 0, 0, 0, -314, 0, -316, -317, 0, 0, -480, 0,
-				0, 0, 0, 0, -489, 0, -553, 0, 0, 0, 0, 0, 0, 0, 0, -93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -492, -332, -554, 0, 0, 0, 0, 0, 0, -382, 0, -247, 0, 0, 0, 0, -422, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -434, 0, -534, 0, -537, 0, 0, 0, 0, 0, -556,
-				-560, -333, -344, -569, 0, 0, -561, 0, 0, 0, 0, 0, 0, -348, -349, 0, 0, 0, -91, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -360, -361, -366, 0, -374, 0, 0, 0, -245, 0, 0,
-				0, 0, -450, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -375, -386, -406, 0, -577,
-				-372, 0, -339, 0, 0, -408, 0, 0, -428, -431, -444, -457, -581, 0, -458, 0, -460, -461, -467, -469, -475,
-				0, -484, 0, -92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -530, 0, 0, -246, 0, 0, 0, 0, -533, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -483, -490, -491, 0, -514, -516, -518, 0, -594, -601, -519, -520, -521, -523, -541, -543, -544, 0, 0,
-				0, -88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -546, -551,
-				0, 0, 0, -242, 0, 0, 0, 0, -536, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-555, -562, -570, -579, -587, -592, 0, -603, 0, 0, 0, 0, 0, 0, 0, 0, 0, -565, 0, -89, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -567, -571, 0, -90, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -243, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -456, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -244, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -575, 0, 0, 0, 0, -136, 0, 0,
-				-525, -576, 0, -182, -74, 0, 0, -105, 0, 0, 0, 0, 0, 0, -595, 0, 0, 0, 0, -338, 0, -234, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -235, 0, 0, 0, 0, 0, 0, -82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -83, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -240, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -241, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -297, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -337, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -364, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -198, 0, 0, 0, 0, 0, -295, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -206, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-388, -47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -593, 0, -265, -225, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-493, -128, 0, 0, 0, 0, 0, 0, -143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -568, 0, 0, 0, 0, 0, 0, 0, 0, 0, -151,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -513, 0,
-				-500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-226, 0, 0, 0, 0, 0, -227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -590, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -78, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -496, 0, 0, 0, 0, 0, -509, 0, 0,
-				0, 0, 0, 0, 0, -384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -79, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -522, -270, 0, 0, 0, 0, 0, -410, 0, 0, -228,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -545, 0, -550, 0, 0, 0, 0, 0, -273, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -547, 0, 0, 0, 0, 0, 0, 0, -336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -564, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -409, 0, 0, 0, 0, 0, -345, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -563, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-447, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -17, 0, 0, 0, 0, 0, -46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -580, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -582, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -468, 0, 0, 0, 0, 0, -584,
-				-195, 0, 0, 0, 0, 0, 0, -471, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -320, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -604, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -486, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -202, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -181, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -403, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -498, 0, 0, 0, 0, 0, 0, -20, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -21, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -25, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -63, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -133, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -426, -499,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -215, -454, 0, 0, 0, 0, 0, 0, 0, 0, -507, 0, 0, 0, -502, 0, 0, 0, 0, 0, 0,
-				0, 0, -212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -510, 0, 0, 0, 0, 0, 0, 0, 0, 0, -126, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -42, 0, 0, 0, 0, 0, -68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -236, 0, 0, 0, 0, 0, -398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -429, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -453, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -479,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -548, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -488, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -383, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -549, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -312, 0, 0, 0, 0, 0, 0,
-				-511, 0, 0, 0, 0, 0, 0, -557, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -552, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static short baseCheck[] = BaseCheck.baseCheck;
-
-	@Override
-	public final int baseCheck(int index) {
-		return baseCheck[index];
-	}
-
-	public final static short rhs[] = baseCheck;
-
-	@Override
-	public final int rhs(int index) {
-		return rhs[index];
-	}
-
-	public interface BaseAction {
-		public final static char baseAction[] = { 191, 5, 154, 94, 94, 30, 30, 81, 81, 39, 39, 42, 42, 218, 1, 1, 16,
-				16, 16, 16, 16, 16, 16, 17, 17, 17, 15, 11, 11, 6, 6, 6, 6, 6, 6, 2, 75, 75, 4, 4, 12, 12, 44, 44, 155,
-				155, 156, 67, 67, 43, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
-				157, 157, 157, 131, 131, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 192, 192, 193, 193,
-				194, 160, 160, 161, 161, 158, 158, 162, 159, 159, 21, 21, 22, 22, 23, 23, 23, 24, 24, 24, 24, 25, 25,
-				25, 26, 26, 26, 31, 31, 31, 31, 31, 33, 33, 33, 34, 34, 35, 35, 37, 37, 38, 38, 40, 40, 41, 41, 45, 45,
-				45, 45, 45, 47, 47, 47, 53, 53, 55, 55, 61, 61, 62, 62, 63, 63, 64, 64, 65, 65, 65, 65, 65, 65, 65, 65,
-				65, 65, 65, 65, 65, 29, 29, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 36, 28, 163, 163, 105,
-				105, 195, 195, 104, 219, 219, 82, 82, 82, 82, 82, 82, 82, 82, 82, 83, 83, 83, 79, 79, 66, 66, 196, 196,
-				84, 84, 84, 116, 116, 197, 197, 85, 85, 85, 85, 198, 198, 86, 86, 86, 86, 86, 87, 87, 95, 95, 95, 95,
-				95, 95, 95, 95, 56, 56, 56, 56, 56, 132, 132, 130, 130, 57, 199, 27, 27, 27, 27, 27, 50, 50, 69, 69, 69,
-				69, 69, 137, 137, 133, 133, 133, 133, 133, 134, 134, 134, 135, 135, 135, 136, 136, 136, 165, 165, 165,
-				70, 70, 70, 70, 70, 71, 71, 71, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 106, 138, 138, 138, 138,
-				138, 138, 111, 111, 111, 166, 167, 167, 112, 112, 200, 169, 169, 168, 168, 139, 139, 117, 92, 92, 140,
-				59, 49, 170, 170, 60, 58, 97, 97, 171, 171, 164, 164, 141, 142, 142, 143, 89, 89, 172, 172, 77, 77, 77,
-				73, 73, 72, 78, 78, 80, 80, 68, 68, 68, 54, 98, 98, 108, 107, 107, 51, 51, 74, 74, 76, 76, 52, 109, 109,
-				109, 99, 99, 99, 100, 100, 101, 101, 101, 102, 102, 118, 118, 118, 120, 120, 119, 119, 220, 220, 103,
-				103, 202, 202, 202, 202, 202, 145, 48, 48, 174, 201, 201, 146, 146, 147, 147, 147, 148, 176, 203, 203,
-				32, 32, 110, 114, 114, 114, 114, 205, 122, 121, 121, 113, 113, 113, 177, 178, 178, 178, 178, 178, 178,
-				178, 178, 178, 178, 178, 207, 207, 204, 204, 206, 206, 179, 180, 180, 180, 180, 181, 208, 124, 123, 123,
-				209, 209, 182, 182, 182, 182, 115, 115, 115, 210, 210, 8, 8, 9, 211, 211, 212, 183, 173, 173, 184, 184,
-				185, 186, 186, 7, 7, 10, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
-				213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
-				213, 213, 213, 213, 213, 90, 93, 93, 187, 187, 150, 150, 151, 151, 151, 151, 151, 151, 3, 152, 152, 149,
-				149, 188, 221, 222, 222, 223, 223, 224, 225, 225, 189, 190, 190, 190, 190, 214, 214, 214, 126, 126, 126,
-				126, 126, 127, 128, 128, 125, 125, 96, 91, 88, 88, 175, 175, 129, 129, 215, 215, 215, 153, 153, 144,
-				144, 216, 216, 191, 191, 1119, 35, 2221, 2196, 4455, 1355, 27, 30, 31, 1162, 1215, 26, 28, 2149, 296,
-				25, 23, 50, 1246, 106, 76, 77, 108, 1272, 1474, 1301, 1564, 1938, 1335, 177, 332, 1520, 308, 1625, 1567,
-				1704, 2277, 1666, 1713, 2276, 1751, 176, 413, 147, 1273, 1510, 191, 4350, 1508, 1941, 1350, 266, 5173,
-				1243, 35, 1153, 32, 4862, 4737, 27, 30, 31, 1162, 1215, 375, 28, 534, 193, 1088, 269, 264, 265, 2905,
-				35, 1153, 32, 3328, 600, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108,
-				1272, 1474, 1301, 2779, 379, 189, 266, 2956, 2683, 2276, 1488, 309, 441, 1396, 1273, 276, 279, 282, 627,
-				705, 2277, 368, 3066, 1734, 278, 264, 265, 5007, 1824, 3118, 355, 2291, 357, 810, 389, 350, 1175, 193,
-				2237, 650, 1353, 2839, 5932, 285, 1537, 35, 490, 3432, 5166, 2353, 5739, 2301, 2030, 715, 159, 1638, 35,
-				1153, 32, 4862, 3838, 27, 30, 31, 1162, 1215, 375, 28, 630, 69, 2897, 2360, 35, 1153, 32, 3328, 5363,
-				27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272, 1474, 1301, 2779,
-				1659, 1818, 162, 1492, 35, 3563, 32, 4862, 4737, 27, 30, 31, 1162, 1215, 375, 28, 2592, 1508, 2773,
-				1818, 2837, 5173, 2555, 35, 312, 3327, 2835, 2593, 2878, 352, 3520, 357, 6140, 2929, 2845, 2899, 2901,
-				161, 579, 4270, 1847, 2360, 35, 1153, 32, 3328, 5363, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23,
-				50, 1246, 106, 76, 77, 108, 1272, 1474, 1301, 2779, 2634, 3379, 162, 2956, 71, 35, 330, 355, 2291, 357,
-				2702, 2489, 350, 1175, 71, 35, 330, 2957, 2773, 1818, 2837, 1537, 35, 314, 1050, 5330, 2835, 535, 2878,
-				2045, 550, 576, 3889, 580, 2845, 2899, 2901, 161, 579, 467, 1912, 35, 1153, 32, 6094, 497, 27, 30, 31,
-				1162, 1215, 26, 28, 2627, 2765, 548, 93, 2903, 759, 35, 433, 2887, 483, 3576, 3577, 2360, 35, 1153, 32,
-				3328, 5363, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272, 1474,
-				1301, 2779, 426, 2413, 162, 759, 35, 433, 550, 576, 3889, 580, 71, 1939, 2102, 34, 71, 3522, 1166, 94,
-				2773, 2046, 2837, 496, 455, 456, 3555, 2224, 2835, 1488, 2878, 3225, 2952, 427, 464, 2903, 2845, 2899,
-				2901, 161, 579, 3478, 1820, 2570, 35, 1153, 32, 3328, 5363, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296,
-				25, 23, 50, 1246, 106, 76, 77, 108, 1272, 1474, 1301, 2779, 1818, 2630, 162, 1729, 35, 1153, 32, 6094,
-				2683, 27, 30, 31, 1162, 1215, 59, 28, 2369, 2627, 2773, 3646, 2837, 71, 35, 1892, 425, 3471, 2835, 2532,
-				2878, 2702, 550, 576, 3889, 580, 2845, 2899, 2901, 161, 579, 1543, 35, 1153, 32, 4476, 1818, 27, 30, 31,
-				1162, 1215, 57, 28, 88, 468, 2965, 102, 3647, 2903, 3327, 35, 1153, 32, 3328, 843, 27, 30, 31, 1162,
-				1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272, 1474, 1301, 1564, 325, 1229, 35, 330,
-				1520, 1520, 1625, 1567, 1704, 5762, 1666, 2647, 1365, 551, 576, 3889, 580, 2708, 35, 1153, 32, 3328,
-				390, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272, 1474, 1301,
-				1564, 56, 1400, 177, 2736, 1520, 766, 1625, 1567, 1704, 51, 1666, 1713, 2738, 1751, 176, 3465, 71, 35,
-				3059, 415, 2428, 35, 1153, 32, 3328, 2670, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246,
-				106, 76, 77, 108, 1272, 1474, 1301, 1564, 89, 1213, 177, 102, 1520, 2600, 1625, 1567, 1704, 2705, 1666,
-				1713, 1647, 1751, 176, 3465, 56, 648, 2765, 415, 61, 834, 2638, 35, 1153, 32, 3328, 1517, 27, 30, 31,
-				1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272, 1474, 1301, 1564, 3735, 2639,
-				177, 70, 1520, 3201, 1625, 1567, 1704, 360, 1666, 1713, 458, 1751, 176, 3465, 1537, 35, 314, 415, 5842,
-				1405, 1315, 422, 416, 3257, 1239, 2973, 35, 1153, 32, 3328, 159, 27, 30, 31, 1162, 1215, 26, 28, 1151,
-				296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272, 1474, 1301, 1564, 56, 1449, 177, 1555, 1520, 926, 1625,
-				1567, 1704, 2631, 1666, 1713, 2600, 1751, 176, 1488, 423, 416, 3257, 191, 1595, 2852, 35, 1153, 32,
-				3328, 3122, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272, 1474,
-				1301, 1564, 71, 35, 2102, 3026, 1520, 1655, 1625, 1567, 1704, 2826, 1666, 1713, 914, 2969, 197, 3474,
-				1702, 413, 416, 3257, 2973, 35, 1153, 32, 3328, 1818, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23,
-				50, 1246, 106, 76, 77, 108, 1272, 1474, 1301, 1564, 3125, 2277, 177, 1267, 1520, 2955, 1625, 1567, 1704,
-				266, 1666, 1713, 69, 1751, 176, 1559, 35, 1153, 32, 409, 363, 41, 30, 31, 1162, 1215, 480, 281, 264,
-				265, 1373, 24, 2003, 35, 1892, 425, 2973, 35, 1153, 32, 3328, 630, 27, 30, 31, 1162, 1215, 26, 28, 1151,
-				296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272, 1474, 1301, 1564, 56, 308, 177, 365, 1520, 1273, 1625,
-				1567, 1704, 362, 1666, 1713, 1038, 1751, 176, 3474, 1233, 42, 3022, 409, 71, 35, 317, 2973, 35, 1153,
-				32, 3328, 2658, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272,
-				1474, 1301, 1564, 71, 3387, 177, 1818, 1520, 408, 1625, 1567, 1704, 241, 1666, 1713, 1338, 1751, 176,
-				71, 35, 2176, 1278, 409, 2502, 35, 1153, 32, 3328, 3207, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25,
-				23, 50, 1246, 106, 76, 77, 108, 1272, 1474, 1301, 1564, 2095, 1501, 177, 72, 1520, 4250, 1625, 1567,
-				1704, 55, 1666, 1713, 1662, 1751, 176, 69, 1537, 35, 567, 175, 6161, 407, 2973, 35, 1153, 32, 3328, 379,
-				27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272, 1474, 1301, 1564,
-				56, 97, 177, 723, 1520, 1273, 1625, 1567, 1704, 1488, 1666, 1713, 1818, 1751, 176, 71, 35, 2102, 311,
-				192, 2641, 65, 405, 2973, 35, 1153, 32, 3328, 3704, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23,
-				50, 1246, 106, 76, 77, 108, 1272, 1474, 1301, 1564, 1499, 2630, 177, 2977, 1520, 147, 1625, 1567, 1704,
-				4731, 1666, 1713, 228, 1751, 176, 71, 35, 1892, 425, 188, 2973, 35, 1153, 32, 3328, 588, 27, 30, 31,
-				1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272, 1474, 1301, 1564, 489, 147,
-				177, 61, 1520, 4800, 1625, 1567, 1704, 98, 1666, 1713, 1007, 1751, 176, 931, 35, 2102, 311, 187, 2973,
-				35, 1153, 32, 3328, 1749, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108,
-				1272, 1474, 1301, 1564, 2491, 147, 177, 1334, 1520, 4883, 1625, 1567, 1704, 2491, 1666, 1713, 1348,
-				1751, 176, 71, 35, 1892, 425, 186, 2973, 35, 1153, 32, 3328, 1847, 27, 30, 31, 1162, 1215, 26, 28, 1151,
-				296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272, 1474, 1301, 1564, 471, 439, 177, 392, 1520, 69, 1625,
-				1567, 1704, 2178, 1666, 1713, 594, 1751, 176, 71, 35, 1892, 425, 185, 2973, 35, 1153, 32, 3328, 2489,
-				27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272, 1474, 1301, 1564,
-				470, 443, 177, 233, 1520, 1915, 1625, 1567, 1704, 5180, 1666, 1713, 3119, 1751, 176, 71, 35, 1892, 425,
-				184, 2973, 35, 1153, 32, 3328, 2489, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106,
-				76, 77, 108, 1272, 1474, 1301, 1564, 469, 147, 177, 2795, 1520, 5312, 1625, 1567, 1704, 2178, 1666,
-				1713, 321, 1751, 176, 71, 3485, 2102, 74, 183, 2973, 35, 1153, 32, 3328, 2489, 27, 30, 31, 1162, 1215,
-				26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272, 1474, 1301, 1564, 1499, 335, 177, 1361,
-				1520, 147, 1625, 1567, 1704, 5428, 1666, 1713, 322, 1751, 176, 931, 35, 2102, 3486, 182, 2973, 35, 1153,
-				32, 3328, 2489, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272,
-				1474, 1301, 1564, 1499, 147, 177, 1482, 1520, 5808, 1625, 1567, 1704, 2178, 1666, 1713, 332, 1751, 176,
-				71, 35, 2102, 313, 181, 2973, 35, 1153, 32, 3328, 1413, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25,
-				23, 50, 1246, 106, 76, 77, 108, 1272, 1474, 1301, 1564, 56, 255, 177, 1934, 1520, 4369, 1625, 1567,
-				1704, 2178, 1666, 1713, 331, 1751, 176, 71, 35, 2102, 3554, 180, 2973, 35, 1153, 32, 3328, 2112, 27, 30,
-				31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272, 1474, 1301, 1564, 56, 339,
-				177, 391, 1520, 3364, 1625, 1567, 1704, 2132, 1666, 1713, 594, 1751, 176, 71, 35, 2102, 316, 179, 2973,
-				35, 1153, 32, 3328, 2831, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108,
-				1272, 1474, 1301, 1564, 2634, 147, 177, 359, 1520, 5829, 1625, 1567, 1704, 2178, 1666, 1713, 594, 1751,
-				176, 71, 35, 1892, 425, 178, 2973, 35, 1153, 32, 3328, 1832, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296,
-				25, 23, 50, 1246, 106, 76, 77, 108, 1272, 1474, 1301, 1564, 308, 212, 177, 1104, 1520, 3002, 1625, 1567,
-				1704, 2178, 1666, 1713, 2934, 1751, 176, 71, 35, 1892, 425, 140, 3094, 35, 1153, 32, 3328, 3785, 27, 30,
-				31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272, 1474, 1301, 2779, 308, 232,
-				162, 3724, 1243, 35, 1153, 32, 4862, 4737, 27, 30, 31, 1162, 1215, 375, 28, 2734, 2773, 1257, 2837,
-				2008, 4250, 1229, 3572, 330, 2835, 310, 2878, 428, 464, 1348, 273, 296, 2845, 2899, 2901, 161, 173,
-				3094, 35, 1153, 32, 3328, 379, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77,
-				108, 1272, 1474, 1301, 2779, 2623, 2277, 162, 1209, 266, 2084, 2789, 2701, 376, 2634, 355, 2291, 357,
-				1423, 3010, 350, 1175, 1815, 2773, 3847, 2837, 5173, 274, 264, 265, 1488, 2835, 349, 2878, 2322, 2634,
-				69, 273, 296, 2845, 2899, 2901, 161, 172, 3094, 35, 1153, 32, 3328, 1166, 27, 30, 31, 1162, 1215, 26,
-				28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272, 1474, 1301, 2779, 2277, 2630, 162, 2277, 266,
-				2956, 2309, 1645, 1517, 3125, 2456, 35, 312, 343, 346, 2313, 484, 1653, 2773, 369, 2837, 361, 274, 264,
-				265, 412, 2835, 1488, 2878, 227, 68, 2639, 2007, 53, 2845, 2899, 2901, 161, 171, 3094, 35, 1153, 32,
-				3328, 2934, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272, 1474,
-				1301, 2779, 430, 464, 162, 2630, 1243, 35, 1153, 32, 4862, 4737, 27, 30, 31, 1162, 1215, 375, 28, 2777,
-				2773, 1998, 2837, 429, 464, 44, 3022, 399, 2835, 587, 2878, 415, 479, 417, 493, 2417, 2845, 2899, 2901,
-				161, 170, 3094, 35, 1153, 32, 3328, 1749, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246,
-				106, 76, 77, 108, 1272, 1474, 1301, 2779, 2420, 410, 162, 71, 35, 2102, 566, 364, 371, 56, 355, 2291,
-				357, 495, 1202, 350, 1175, 56, 2773, 2874, 2837, 2345, 4250, 2693, 35, 315, 2835, 3731, 2878, 2171, 35,
-				490, 348, 5166, 2845, 2899, 2901, 161, 169, 3094, 35, 1153, 32, 3328, 379, 27, 30, 31, 1162, 1215, 26,
-				28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272, 1474, 1301, 2779, 3001, 2277, 162, 3118, 2215,
-				35, 1153, 32, 4476, 3327, 27, 30, 31, 1162, 1215, 56, 28, 1556, 2773, 2572, 2837, 2731, 35, 565, 1488,
-				405, 2835, 2008, 2878, 484, 2683, 87, 2092, 1917, 2845, 2899, 2901, 161, 168, 3094, 35, 1153, 32, 3328,
-				2277, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272, 1474, 1301,
-				2779, 2630, 2277, 162, 1729, 35, 1153, 32, 6094, 52, 27, 30, 31, 1162, 1215, 58, 28, 2626, 56, 2773,
-				572, 2837, 4447, 3199, 319, 412, 1488, 2835, 56, 2878, 1752, 2485, 386, 2382, 1929, 2845, 2899, 2901,
-				161, 167, 3094, 35, 1153, 32, 3328, 2277, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246,
-				106, 76, 77, 108, 1272, 1474, 1301, 2779, 475, 3156, 162, 1994, 35, 1153, 32, 2524, 90, 40, 30, 31,
-				1162, 1215, 2277, 487, 3576, 3577, 2773, 2185, 2837, 1335, 56, 2353, 1728, 56, 2835, 861, 2878, 60,
-				2124, 215, 2007, 1365, 2845, 2899, 2901, 161, 166, 3094, 35, 1153, 32, 3328, 2836, 27, 30, 31, 1162,
-				1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272, 1474, 1301, 2779, 3423, 2418, 162,
-				1994, 35, 1153, 32, 71, 3728, 1804, 30, 31, 1162, 1215, 2277, 2450, 2683, 2777, 2773, 2496, 2837, 1734,
-				759, 35, 433, 5007, 2835, 1867, 2878, 1984, 2749, 2007, 1728, 571, 2845, 2899, 2901, 161, 165, 3094, 35,
-				1153, 32, 3328, 2886, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108,
-				1272, 1474, 1301, 2779, 2277, 418, 162, 1994, 35, 1153, 32, 3315, 371, 1898, 30, 31, 1162, 1215, 56,
-				2762, 2777, 56, 2773, 3558, 2837, 585, 4250, 2268, 56, 581, 2835, 1833, 2878, 2712, 67, 2007, 71, 753,
-				2845, 2899, 2901, 161, 164, 3094, 35, 1153, 32, 3328, 379, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296,
-				25, 23, 50, 1246, 106, 76, 77, 108, 1272, 1474, 1301, 2779, 491, 2973, 162, 3118, 1847, 2276, 370, 371,
-				56, 2661, 1273, 3732, 266, 1312, 2183, 2929, 2777, 56, 2773, 1922, 2837, 2006, 4250, 1657, 2683, 1019,
-				2835, 2033, 2878, 585, 284, 264, 265, 193, 2845, 2899, 2901, 161, 163, 3154, 35, 1153, 32, 3328, 379,
-				27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272, 1474, 1301, 2779,
-				2277, 2277, 162, 3118, 266, 466, 3317, 371, 2533, 3260, 2489, 56, 1248, 1904, 2914, 1508, 2293, 5173,
-				2773, 5173, 2837, 2534, 287, 264, 265, 744, 2835, 2055, 2878, 2280, 66, 65, 3568, 1488, 2845, 2899,
-				2901, 161, 160, 3214, 35, 1153, 32, 3328, 3226, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50,
-				1246, 106, 76, 77, 108, 1272, 1474, 1301, 1564, 56, 2956, 177, 2956, 1520, 2314, 1625, 1567, 1704, 3316,
-				1666, 1713, 835, 1751, 176, 2957, 2492, 368, 2277, 222, 3327, 35, 1153, 32, 3328, 340, 27, 30, 31, 1162,
-				1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272, 1474, 1301, 1564, 4312, 64, 2564,
-				1867, 1520, 2178, 1625, 1567, 1704, 3062, 1666, 1713, 2277, 2969, 197, 3327, 35, 1153, 32, 3328, 2489,
-				27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272, 1474, 1301, 1564,
-				3115, 1486, 231, 586, 1520, 2290, 1625, 1567, 1704, 2007, 1666, 1713, 56, 2969, 197, 2007, 56, 4991, 96,
-				3766, 56, 2843, 2018, 2490, 2959, 3108, 71, 35, 1892, 425, 3327, 35, 1153, 32, 3328, 1616, 27, 30, 31,
-				1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272, 1474, 1301, 1564, 56, 49, 419,
-				2777, 1520, 5807, 1625, 1567, 1704, 2777, 1666, 1713, 46, 2969, 197, 3327, 35, 1153, 32, 3328, 460, 27,
-				30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272, 1474, 1301, 1564, 388,
-				1851, 3522, 319, 1520, 2637, 1625, 1567, 1704, 1011, 1666, 1713, 589, 2969, 197, 743, 915, 366, 371,
-				380, 1048, 649, 385, 3463, 371, 925, 2045, 2178, 2277, 378, 3327, 35, 1153, 32, 3328, 329, 27, 30, 31,
-				1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272, 1474, 1301, 1564, 2011, 55,
-				1488, 2542, 1520, 2818, 1625, 1567, 1704, 338, 1666, 1713, 2277, 2969, 197, 3486, 35, 1153, 32, 3328,
-				459, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272, 1474, 1301,
-				1564, 54, 577, 3472, 2486, 1520, 2179, 1625, 1567, 1704, 266, 1666, 1713, 56, 2969, 197, 2092, 56, 3461,
-				56, 56, 56, 2394, 2494, 1654, 5820, 1936, 2389, 278, 264, 265, 757, 1673, 35, 1892, 425, 462, 3433, 35,
-				1153, 32, 3328, 324, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108,
-				1272, 1474, 1301, 2779, 49, 56, 2010, 266, 2594, 2292, 3114, 826, 3553, 4250, 1273, 1845, 628, 2528,
-				3694, 2878, 2945, 417, 2773, 56, 2837, 281, 264, 265, 5833, 56, 2835, 2178, 2878, 586, 4674, 4166, 143,
-				189, 2845, 3323, 3327, 35, 1153, 32, 3328, 598, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50,
-				1246, 106, 76, 77, 108, 1272, 1474, 1301, 1564, 56, 2595, 2178, 235, 1520, 2704, 1625, 1567, 1704, 2277,
-				2633, 3380, 35, 1153, 32, 3328, 2277, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106,
-				76, 77, 108, 1272, 1474, 1301, 2779, 2822, 358, 56, 233, 56, 4250, 396, 1983, 101, 3077, 2669, 56, 2601,
-				2706, 56, 2778, 1123, 2178, 2773, 5129, 2837, 3069, 3104, 3121, 3003, 1663, 2835, 4166, 2878, 3327, 35,
-				1153, 32, 3328, 3302, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108,
-				1272, 1474, 1301, 1564, 334, 2628, 3004, 2664, 1520, 2633, 1625, 1567, 2573, 3380, 35, 1153, 32, 3328,
-				2277, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272, 1474, 1301,
-				2779, 2960, 2778, 2995, 605, 2927, 1851, 3522, 2566, 3361, 4598, 2959, 542, 4250, 1216, 2793, 2961,
-				1218, 2178, 2773, 3064, 2837, 1292, 3006, 3059, 2881, 2962, 2835, 2277, 3298, 3327, 35, 1153, 32, 3328,
-				4166, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272, 1474, 1301,
-				1564, 4367, 2039, 539, 541, 1520, 2277, 1625, 2581, 3380, 35, 1153, 32, 3328, 2416, 27, 30, 31, 1162,
-				1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272, 1474, 1301, 2779, 488, 3117, 3124,
-				3176, 3574, 3092, 3183, 87, 592, 2178, 2178, 3086, 3118, 3119, 3120, 1362, 3147, 173, 2773, 397, 2837,
-				3327, 35, 1153, 32, 3328, 3300, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76,
-				77, 108, 1272, 1474, 1301, 1564, 256, 226, 3212, 2998, 1520, 324, 2495, 3380, 35, 1153, 32, 3328, 2277,
-				27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272, 1474, 1301, 2779,
-				2893, 3553, 3177, 1637, 3178, 3236, 3237, 2966, 414, 2958, 6862, 6862, 6862, 6862, 6862, 6862, 6862,
-				6862, 2773, 2277, 3223, 3327, 35, 1153, 32, 3328, 6862, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25,
-				23, 50, 1246, 106, 76, 77, 108, 1272, 1474, 1301, 1564, 6862, 4978, 2277, 2277, 2501, 3327, 35, 1153,
-				32, 3328, 6862, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272,
-				1474, 1301, 1564, 5040, 5172, 6862, 6862, 2548, 3380, 35, 1153, 32, 3328, 6862, 27, 30, 31, 1162, 1215,
-				26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272, 1474, 1301, 2779, 1258, 35, 1153, 32, 4945,
-				4737, 27, 30, 31, 1162, 1215, 375, 28, 3380, 35, 1153, 32, 3328, 3224, 27, 30, 31, 1162, 1215, 26, 28,
-				1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272, 1474, 1301, 2779, 2277, 6862, 6862, 6862, 6862,
-				2776, 6862, 6862, 2180, 2277, 6187, 2023, 56, 1273, 2956, 56, 2959, 1273, 3258, 6862, 1273, 6862, 2277,
-				6862, 6862, 6862, 6862, 1508, 368, 2181, 1613, 5173, 355, 2291, 357, 387, 189, 350, 1175, 2377, 189,
-				6862, 6862, 189, 3425, 6862, 2783, 234, 1065, 349, 6862, 2643, 3654, 3327, 35, 1153, 32, 3328, 5415, 27,
-				30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272, 1474, 1301, 2379, 266,
-				2956, 6862, 6862, 6862, 388, 6862, 6862, 2277, 6862, 6862, 388, 6862, 6862, 6862, 368, 6862, 266, 284,
-				264, 265, 342, 346, 2313, 380, 1048, 649, 385, 6862, 6862, 380, 1048, 649, 385, 2615, 570, 264, 265,
-				5301, 6862, 578, 6862, 6862, 6862, 1992, 4682, 3327, 35, 1153, 32, 3328, 3645, 27, 30, 31, 1162, 1215,
-				26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272, 1474, 1301, 2441, 3327, 35, 1153, 32, 3328,
-				6862, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272, 1474, 1301,
-				2445, 3327, 35, 1153, 32, 3328, 6862, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106,
-				76, 77, 108, 1272, 1474, 1301, 2447, 3327, 35, 1153, 32, 3328, 6862, 27, 30, 31, 1162, 1215, 26, 28,
-				1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272, 1474, 1301, 3210, 3327, 35, 1153, 32, 3328, 6862,
-				27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272, 1474, 1301, 3213,
-				3327, 35, 1153, 32, 3328, 6862, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76,
-				77, 108, 1272, 1474, 1301, 3214, 1339, 35, 1153, 32, 4862, 3905, 27, 30, 31, 1162, 1215, 375, 28, 3327,
-				35, 1153, 32, 3328, 6862, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108,
-				1272, 1474, 1301, 3362, 3759, 35, 1153, 32, 4862, 6219, 27, 30, 31, 1162, 1215, 375, 28, 6862, 1220, 35,
-				3563, 32, 4945, 4737, 27, 30, 31, 1162, 1215, 375, 28, 6862, 6862, 6862, 387, 6862, 355, 2291, 357,
-				6862, 6862, 350, 1175, 6862, 388, 6862, 6862, 6862, 3539, 35, 1892, 425, 4448, 3473, 6862, 6862, 6862,
-				6862, 6862, 6862, 6862, 271, 296, 380, 1048, 649, 385, 6862, 759, 35, 3100, 1084, 2956, 3424, 2276,
-				6862, 355, 2291, 357, 1273, 308, 350, 1175, 6862, 388, 6862, 368, 6862, 6862, 6862, 355, 2291, 357,
-				3432, 6862, 350, 1175, 6862, 6862, 266, 49, 6862, 193, 380, 1048, 649, 385, 1050, 6862, 6862, 2126,
-				1845, 1523, 2615, 5173, 6862, 5415, 269, 264, 265, 3327, 35, 1153, 32, 3328, 6862, 27, 30, 31, 1162,
-				1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272, 1474, 2449, 6862, 2276, 71, 35, 1892,
-				425, 1273, 6862, 309, 6862, 6862, 6862, 276, 279, 282, 627, 705, 6862, 2956, 3508, 402, 1179, 56, 6862,
-				1273, 6267, 4250, 1273, 6862, 193, 6862, 6862, 369, 3267, 49, 2237, 650, 1353, 2839, 5932, 285, 6862,
-				6862, 749, 388, 1845, 2174, 189, 262, 6862, 189, 454, 456, 3555, 6862, 195, 6862, 6862, 2812, 6862,
-				6862, 6862, 6862, 382, 1048, 649, 385, 2897, 6862, 668, 444, 6008, 6862, 3327, 35, 1153, 32, 3328, 1757,
-				27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272, 1474, 2482, 259,
-				243, 35, 1892, 425, 600, 6862, 3439, 2027, 35, 1892, 425, 445, 446, 447, 3376, 6862, 6862, 6862, 2182,
-				6862, 6862, 6862, 6862, 600, 6862, 6862, 262, 189, 329, 35, 1892, 425, 49, 6862, 6862, 2133, 3373, 6862,
-				213, 49, 6862, 2630, 6862, 1845, 2958, 379, 189, 237, 249, 750, 1845, 954, 6862, 6862, 221, 236, 246,
-				247, 248, 250, 49, 1, 6862, 2775, 6862, 202, 600, 2139, 4250, 6862, 2420, 1845, 2687, 6862, 2139, 6862,
-				6862, 6862, 201, 6862, 6862, 216, 200, 203, 204, 205, 206, 207, 262, 189, 379, 6862, 6862, 593, 6862,
-				1427, 56, 2133, 448, 450, 213, 1273, 56, 2630, 6862, 6862, 6862, 1273, 6862, 237, 249, 750, 6862, 6862,
-				3966, 3118, 6862, 236, 246, 247, 248, 250, 6862, 6862, 189, 872, 6862, 202, 5192, 6862, 189, 6862, 2944,
-				6862, 223, 6862, 6862, 6862, 2945, 596, 201, 6862, 214, 217, 200, 203, 204, 205, 206, 207, 1416, 35,
-				1153, 32, 4862, 3905, 27, 30, 31, 1162, 1215, 375, 28, 3327, 35, 1153, 32, 3328, 6862, 27, 30, 31, 1162,
-				1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272, 2239, 6862, 6862, 3327, 35, 1153, 32,
-				3328, 4509, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108, 1272, 2289,
-				3570, 6862, 6862, 6862, 6862, 2276, 6862, 355, 2291, 357, 1273, 2882, 350, 1175, 6862, 388, 4250, 6862,
-				6862, 1770, 35, 1153, 32, 4945, 589, 27, 30, 31, 1162, 1215, 375, 28, 6862, 193, 380, 1048, 649, 385,
-				4166, 3327, 35, 1153, 32, 3328, 590, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106,
-				76, 77, 108, 2297, 6862, 3622, 6862, 6862, 345, 329, 35, 1892, 425, 600, 2956, 1508, 6862, 6862, 56,
-				5173, 6862, 6862, 6862, 1273, 6862, 6862, 6862, 6862, 369, 6862, 6862, 6862, 355, 2291, 357, 262, 189,
-				351, 1175, 6862, 388, 49, 6862, 6862, 2133, 6862, 189, 213, 6862, 6862, 2630, 3614, 1845, 47, 3028, 542,
-				237, 249, 750, 382, 1048, 649, 385, 6862, 236, 246, 247, 248, 250, 2956, 431, 6862, 2180, 6862, 202,
-				600, 2505, 600, 243, 35, 1892, 425, 6862, 368, 6862, 6862, 6862, 201, 6862, 6862, 3695, 200, 203, 204,
-				205, 206, 207, 262, 189, 3475, 189, 6862, 539, 541, 6862, 6862, 2133, 6862, 2133, 213, 49, 213, 2630,
-				5985, 6862, 6862, 6862, 6862, 237, 249, 750, 1845, 47, 6862, 6862, 6862, 236, 246, 247, 248, 250, 6862,
-				517, 6862, 6862, 6862, 202, 600, 6862, 3659, 243, 35, 1892, 425, 6862, 1478, 6862, 6862, 6862, 201,
-				6862, 229, 211, 200, 203, 204, 205, 206, 207, 262, 189, 329, 35, 1892, 425, 6862, 6862, 6862, 2133,
-				6862, 6862, 213, 49, 56, 2630, 6862, 6862, 6862, 1273, 6862, 237, 249, 750, 1845, 2827, 6862, 6862,
-				6862, 236, 246, 247, 248, 250, 49, 603, 6862, 6862, 6862, 202, 600, 6862, 189, 6862, 6862, 1845, 47,
-				6862, 2186, 2822, 3319, 6862, 201, 6862, 4250, 209, 200, 203, 204, 205, 206, 207, 262, 189, 243, 35,
-				1892, 425, 6862, 2815, 56, 2133, 6862, 6862, 213, 1273, 4166, 2630, 6862, 6862, 6862, 6862, 2700, 237,
-				249, 750, 6862, 4250, 6862, 6862, 6862, 236, 246, 247, 248, 250, 49, 689, 189, 6862, 6862, 202, 600,
-				6862, 6862, 6862, 1511, 1845, 2503, 379, 2594, 4466, 230, 6862, 201, 4250, 6862, 210, 200, 203, 204,
-				205, 206, 207, 262, 189, 243, 35, 1892, 425, 6862, 2186, 6862, 2133, 3557, 6862, 213, 4166, 56, 2630,
-				6862, 6862, 6862, 600, 56, 237, 249, 750, 6862, 4250, 6862, 6862, 542, 236, 246, 247, 248, 250, 49, 775,
-				6862, 6862, 6862, 202, 600, 379, 189, 6862, 6862, 1845, 47, 379, 6862, 6862, 1396, 6862, 201, 6862,
-				6862, 220, 200, 203, 204, 205, 206, 207, 262, 189, 6862, 6862, 3118, 6862, 6862, 1042, 6862, 2133, 3118,
-				6862, 213, 540, 541, 2630, 6862, 6862, 6862, 6862, 6862, 237, 249, 750, 6862, 6862, 6862, 396, 715, 236,
-				246, 247, 248, 250, 2086, 6862, 6862, 6862, 6862, 202, 6862, 6862, 3531, 3104, 3121, 6862, 6862, 6862,
-				6862, 6862, 6862, 6862, 201, 6862, 6862, 3733, 200, 203, 204, 205, 206, 207, 2382, 35, 1153, 32, 4862,
-				4737, 27, 30, 31, 1162, 1215, 375, 28, 3327, 35, 1153, 32, 3328, 6862, 27, 30, 31, 1162, 1215, 26, 28,
-				1151, 296, 25, 23, 50, 1246, 106, 76, 77, 108, 2357, 243, 35, 1892, 425, 6862, 6862, 861, 71, 35, 1892,
-				425, 600, 3887, 6862, 243, 35, 1892, 425, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 1296, 6862,
-				6862, 6862, 6267, 4250, 49, 262, 189, 355, 2291, 357, 6862, 49, 350, 1175, 2133, 1845, 47, 213, 49,
-				6862, 2630, 6862, 1845, 764, 349, 262, 237, 249, 750, 1845, 47, 6862, 6862, 6862, 236, 246, 247, 248,
-				250, 1669, 6862, 6862, 6862, 6862, 202, 947, 668, 444, 6008, 6862, 600, 6862, 6862, 1763, 6862, 6862,
-				6862, 201, 6862, 6862, 225, 200, 203, 204, 205, 206, 207, 6862, 6862, 6862, 6862, 6862, 262, 189, 6862,
-				6862, 342, 346, 2313, 6862, 56, 2133, 6862, 6862, 213, 1273, 6862, 2630, 445, 446, 447, 3376, 6862, 237,
-				249, 750, 6862, 6862, 6862, 3653, 6862, 236, 246, 247, 248, 250, 3645, 1033, 189, 6862, 6862, 202, 600,
-				3373, 6862, 6862, 3900, 6862, 2271, 35, 1892, 425, 6862, 6862, 201, 6862, 6862, 219, 200, 203, 204, 205,
-				206, 207, 262, 189, 71, 35, 1892, 425, 6862, 6862, 6862, 2133, 6862, 6862, 213, 6862, 6862, 2630, 49,
-				6862, 6862, 6862, 6862, 237, 249, 750, 6862, 6862, 6862, 1845, 47, 236, 246, 247, 248, 250, 49, 3638,
-				35, 554, 6862, 202, 6862, 448, 451, 6862, 6862, 1845, 2360, 6862, 271, 296, 6862, 865, 201, 6862, 6862,
-				228, 200, 203, 204, 205, 206, 207, 3327, 35, 1153, 32, 3328, 6862, 27, 30, 31, 1162, 1215, 26, 28, 1151,
-				296, 25, 23, 50, 1246, 106, 76, 77, 108, 2367, 266, 1385, 35, 1153, 32, 4945, 6862, 27, 30, 31, 1162,
-				1215, 375, 28, 243, 35, 1892, 425, 269, 264, 265, 3327, 35, 1153, 32, 3328, 6862, 27, 30, 31, 1162,
-				1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 85, 6862, 6862, 49, 6862, 6862, 6862, 6862,
-				6862, 6862, 6862, 6862, 2956, 6862, 1845, 47, 276, 279, 282, 627, 705, 6862, 6862, 6862, 6862, 6862,
-				369, 6862, 6862, 6862, 355, 2291, 357, 6862, 6862, 353, 1175, 6862, 1810, 2303, 3255, 3312, 3907, 6021,
-				3327, 1939, 1153, 1986, 3328, 6862, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106,
-				76, 77, 84, 3327, 35, 1153, 32, 3328, 6862, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246,
-				106, 76, 77, 83, 6862, 6862, 6862, 6862, 563, 564, 568, 3327, 35, 1153, 32, 3328, 6862, 27, 30, 31,
-				1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 82, 3924, 3327, 35, 1153, 32, 3328, 6862,
-				27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 81, 3327, 35, 1153, 32, 3328,
-				6862, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 80, 3327, 35, 1153, 32,
-				3328, 6862, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 79, 3327, 35,
-				1153, 32, 3328, 6862, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76, 77, 78,
-				3033, 35, 1153, 32, 3328, 6862, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246, 106, 76,
-				77, 104, 3327, 35, 1153, 32, 3328, 6862, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50, 1246,
-				106, 76, 77, 110, 3327, 35, 1153, 32, 3328, 6862, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25, 23, 50,
-				1246, 106, 76, 77, 109, 3327, 35, 1153, 32, 3328, 6862, 27, 30, 31, 1162, 1215, 26, 28, 1151, 296, 25,
-				23, 50, 1246, 106, 76, 77, 107, 3327, 35, 1153, 32, 3328, 6862, 27, 30, 31, 1162, 1215, 26, 28, 1151,
-				296, 25, 23, 50, 1246, 106, 76, 77, 105, 3274, 35, 1153, 32, 3328, 6862, 27, 30, 31, 1162, 1215, 26, 28,
-				1151, 296, 25, 23, 50, 1246, 86, 76, 77, 1603, 243, 35, 1892, 425, 4250, 6862, 6862, 6862, 6862, 6862,
-				6862, 56, 1870, 6862, 6862, 6862, 4250, 4250, 6862, 6862, 6862, 2459, 35, 1892, 425, 1959, 262, 6862,
-				6862, 6862, 4250, 6862, 49, 6862, 71, 35, 1892, 425, 379, 262, 6862, 6862, 6862, 1845, 47, 6862, 6862,
-				239, 249, 750, 6862, 6862, 262, 49, 6862, 238, 246, 247, 248, 250, 239, 249, 750, 3118, 1845, 47, 49,
-				1857, 238, 246, 247, 248, 250, 239, 249, 750, 6862, 1845, 815, 6862, 6862, 238, 246, 247, 248, 250,
-				6862, 2760, 875, 240, 242, 244, 3376, 6862, 251, 241, 243, 6862, 6862, 6862, 6862, 6862, 240, 242, 244,
-				3376, 6862, 251, 241, 243, 6862, 6862, 6862, 6862, 56, 240, 242, 244, 3376, 4250, 251, 241, 243, 6862,
-				3589, 35, 1892, 425, 4448, 1914, 6862, 6125, 6862, 6862, 6862, 6862, 6862, 272, 296, 6862, 56, 379,
-				1961, 6862, 6125, 600, 56, 6862, 6862, 6862, 6862, 600, 6862, 6862, 6862, 2954, 308, 6125, 6862, 6862,
-				6862, 6862, 6862, 6862, 6862, 6862, 3118, 379, 189, 6862, 6862, 6862, 6862, 379, 189, 266, 2350, 1385,
-				35, 1153, 32, 4945, 1396, 27, 30, 31, 1162, 1215, 375, 28, 546, 6862, 3118, 270, 264, 265, 6862, 6862,
-				3118, 6862, 2315, 35, 1153, 32, 4862, 4220, 27, 30, 31, 1162, 1215, 375, 28, 3687, 35, 554, 2285, 6862,
-				6862, 2048, 6862, 6862, 2549, 6862, 4250, 6862, 272, 296, 6862, 6862, 309, 2956, 6862, 6862, 277, 280,
-				283, 627, 705, 440, 6862, 6862, 6862, 1692, 6862, 369, 262, 6862, 4250, 355, 2291, 357, 6862, 6862, 351,
-				1175, 6862, 6862, 6862, 6862, 6862, 6862, 286, 6862, 266, 6862, 6862, 239, 249, 750, 262, 6862, 352,
-				3520, 357, 238, 246, 247, 248, 250, 6862, 6862, 270, 264, 265, 6862, 71, 35, 1892, 425, 6862, 239, 249,
-				750, 6862, 6862, 6862, 6862, 6862, 238, 246, 247, 248, 250, 6862, 6862, 6862, 6862, 6862, 240, 242, 244,
-				3376, 6862, 582, 241, 243, 1781, 49, 6862, 6862, 6862, 4250, 277, 280, 283, 627, 705, 6862, 1845, 628,
-				6862, 2137, 240, 242, 244, 3376, 4250, 581, 241, 243, 6862, 56, 6862, 262, 6862, 6862, 600, 6862, 6862,
-				6862, 6862, 6862, 71, 35, 1892, 425, 6862, 6862, 262, 6862, 6862, 6862, 6862, 6862, 239, 249, 750, 6862,
-				379, 189, 6862, 2887, 238, 246, 247, 248, 250, 221, 2260, 239, 249, 750, 5173, 4250, 49, 6862, 6862,
-				238, 246, 247, 248, 250, 2226, 2420, 6862, 1845, 2569, 4250, 6862, 6862, 563, 564, 569, 6862, 6862,
-				4166, 240, 242, 244, 3376, 2260, 252, 241, 243, 5173, 4250, 6862, 6862, 6862, 262, 6862, 240, 242, 244,
-				3376, 6862, 341, 241, 243, 6862, 6862, 6862, 2956, 6862, 6862, 6862, 6862, 4166, 6862, 56, 239, 249,
-				750, 6862, 600, 6862, 368, 6862, 238, 246, 247, 248, 250, 6862, 6862, 6862, 6862, 3745, 71, 35, 1892,
-				425, 6862, 6862, 2956, 56, 379, 189, 6862, 6862, 4250, 6862, 56, 6862, 6862, 221, 4312, 4250, 368, 6862,
-				6862, 396, 240, 242, 244, 3376, 6862, 536, 241, 243, 49, 2420, 379, 6862, 6862, 56, 2694, 3104, 3121,
-				379, 600, 1845, 2701, 6862, 6862, 6862, 6862, 6862, 4682, 6862, 6862, 6862, 6862, 396, 6862, 6862, 6862,
-				3118, 6862, 6862, 6862, 6862, 379, 189, 3118, 6862, 6862, 6862, 2694, 3104, 3121, 221, 6862, 6862, 6862,
-				6862, 6862, 6862, 6862, 6862, 6862, 544, 6862, 6862, 6862, 6862, 6862, 2420, 597, 6862, 6862, 6862,
-				6862, 6862, 6862, 3776, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862,
-				6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862,
-				6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862,
-				6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 3777, 6862, 0, 39, 6877, 0, 39, 6876, 0, 1150, 29, 0,
-				477, 1213, 0, 491, 1300, 0, 38, 963, 0, 38, 6877, 0, 38, 6876, 0, 4031, 126, 0, 1, 481, 0, 495, 812, 0,
-				494, 880, 0, 1458, 91, 0, 1150, 424, 0, 35, 33, 0, 32, 34, 0, 39, 963, 0, 1, 643, 0, 1, 7169, 0, 1,
-				7168, 0, 1, 7167, 0, 1, 7166, 0, 1, 7165, 0, 1, 7164, 0, 1, 7163, 0, 1, 7162, 0, 1, 7161, 0, 1, 7160, 0,
-				1, 7159, 0, 39, 1, 6877, 0, 39, 1, 6876, 0, 318, 431, 0, 318, 323, 0, 7130, 275, 0, 7129, 275, 0, 7236,
-				275, 0, 7235, 275, 0, 7157, 275, 0, 7156, 275, 0, 7155, 275, 0, 7154, 275, 0, 7153, 275, 0, 7152, 275,
-				0, 7151, 275, 0, 7150, 275, 0, 7169, 275, 0, 7168, 275, 0, 7167, 275, 0, 7166, 275, 0, 7165, 275, 0,
-				7164, 275, 0, 7163, 275, 0, 7162, 275, 0, 7161, 275, 0, 7160, 275, 0, 7159, 275, 0, 39, 6877, 275, 0,
-				39, 6876, 275, 0, 6900, 275, 0, 6877, 48, 0, 6876, 48, 0, 6868, 1, 0, 6867, 1, 0, 639, 271, 0, 32, 425,
-				0, 29, 424, 0, 43, 6898, 0, 43, 37, 0, 4031, 128, 0, 4031, 127, 0, 1, 5785, 0, 1, 5435, 0, 1, 5524, 0,
-				1, 5554, 0, 1, 5578, 0, 1, 5601, 0, 1, 5624, 0, 1, 5647, 0, 1410, 1, 0, 1, 2235, 0, 1, 5501, 0, 1, 6884,
-				0, 1, 6883, 0, 1, 6882, 0, 1, 6881, 0, 1, 6880, 0, 1, 6879, 0, 1, 6878, 0, 1, 642, 0, 1, 645, 0, 1, 972,
-				0, 1, 978, 0, 1, 1037, 0, 1, 672, 0, 39, 1, 0, 367, 482, 0, 6900, 1, 0, 47, 37, 0, 1, 92, 0, 6877, 275,
-				0, 6876, 275, 0, 538, 3375, 0, 6900, 1, 263, 0, 39, 1, 263, 0, 263, 453, 0, 6877, 37, 0, 6876, 37, 0,
-				6877, 2, 37, 0, 6876, 2, 37, 0, 6877, 36, 0, 6876, 36, 0, 6898, 45, 0, 37, 45, 0, 6872, 442, 0, 6871,
-				442, 0, 1, 653, 0, 1, 963, 0, 263, 452, 0, 3111, 354, 0, 367, 95, 0, 35, 73, 0, 1, 367, 0, 2883, 313, 0,
-				538, 6051, 0, 1, 263, 0, 263, 254, 0, 1, 919, 0, 1, 956, 0, 263, 253, 0, 6874, 1, 0, 6870, 1, 0, 1, 263,
-				3650, 0, 6871, 263, 0, 3651, 263, 0, 6874, 420, 0, 6873, 420, 0, 3661, 263, 0, 10, 12, 0, 8, 10, 12, 0,
-				3730, 227, 0, 218, 5239, 0, 3735, 420, 0, 8, 12, 0 };
-	}
-
-	public final static char baseAction[] = BaseAction.baseAction;
-
-	@Override
-	public final int baseAction(int index) {
-		return baseAction[index];
-	}
-
-	public final static char lhs[] = baseAction;
-
-	@Override
-	public final int lhs(int index) {
-		return lhs[index];
-	}
-
-	public interface TermCheck {
-		public final static byte termCheck[] = { 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
-				19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
-				45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 0, 56, 57, 58, 59, 0, 61, 62, 63, 0, 65, 66, 67, 0, 69, 0, 1, 2,
-				73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
-				15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
-				41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 86, 87, 56, 57, 58, 59, 0, 61, 62, 63, 4, 65, 66,
-				67, 94, 69, 92, 93, 0, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
-				10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
-				36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 0, 56, 57, 58, 59, 0, 61, 62,
-				63, 4, 65, 66, 67, 0, 69, 0, 1, 2, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5,
-				6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
-				33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 86, 87, 56, 57, 58,
-				59, 0, 61, 62, 63, 95, 65, 66, 67, 0, 69, 0, 1, 2, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0,
-				1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
-				29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0,
-				68, 56, 57, 58, 59, 0, 61, 62, 63, 0, 65, 66, 67, 0, 69, 0, 3, 0, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82,
-				83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
-				25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
-				51, 52, 53, 86, 87, 56, 57, 58, 59, 0, 61, 62, 63, 0, 65, 66, 67, 94, 69, 86, 87, 86, 87, 74, 75, 76,
-				77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
-				19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
-				45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 0, 56, 57, 58, 59, 0, 61, 62, 63, 0, 65, 66, 67, 94, 69, 92, 93,
-				0, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
-				15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
-				41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 86, 87, 56, 57, 58, 59, 0, 61, 62, 63, 95, 65, 66,
-				67, 94, 69, 92, 93, 86, 87, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8,
-				9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
-				35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 0, 56, 57, 58, 59, 0, 61,
-				62, 63, 0, 65, 66, 67, 0, 69, 0, 1, 2, 5, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4,
-				5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
-				32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 86, 87, 56, 57,
-				58, 59, 0, 61, 62, 63, 4, 65, 66, 67, 0, 69, 101, 102, 4, 95, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
-				84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
-				26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
-				52, 53, 0, 0, 56, 57, 58, 59, 0, 61, 62, 63, 0, 65, 66, 67, 0, 69, 0, 1, 2, 0, 74, 75, 76, 77, 78, 79,
-				80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
-				22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
-				48, 49, 50, 51, 52, 53, 86, 87, 56, 57, 58, 59, 0, 61, 62, 63, 0, 65, 66, 67, 4, 69, 92, 93, 0, 0, 74,
-				75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
-				17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
-				43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 68, 0, 56, 57, 58, 59, 0, 61, 62, 63, 9, 65, 66, 67, 0, 69,
-				96, 0, 1, 2, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 40, 10, 11, 12,
-				13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
-				39, 55, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 0, 56, 57, 58, 59, 0, 1, 2, 3, 4, 5, 6,
-				7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
-				0, 1, 2, 0, 4, 0, 40, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 1, 2, 53, 0, 55, 56, 57, 58, 5, 0, 61, 62, 63, 0, 1,
-				2, 3, 4, 0, 6, 71, 8, 73, 5, 38, 7, 38, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 88, 11, 12, 13, 14, 15, 16, 17,
-				18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 71, 0, 114, 115, 116, 0, 1, 2, 3, 4, 5,
-				6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
-				33, 91, 0, 99, 100, 0, 0, 40, 98, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 53, 0, 55, 56, 57, 58, 0, 64, 61, 62,
-				63, 68, 0, 0, 0, 3, 0, 5, 71, 7, 73, 9, 6, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 88, 0, 1, 2,
-				3, 4, 55, 6, 54, 8, 0, 34, 35, 36, 37, 60, 0, 40, 64, 3, 70, 0, 1, 2, 60, 70, 114, 115, 116, 0, 9, 54,
-				0, 1, 2, 3, 4, 60, 6, 0, 8, 64, 64, 89, 90, 68, 68, 70, 71, 72, 73, 101, 102, 103, 104, 105, 106, 107,
-				108, 109, 110, 111, 112, 86, 87, 0, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
-				105, 106, 107, 108, 109, 110, 111, 112, 69, 120, 60, 64, 117, 118, 119, 120, 0, 34, 35, 3, 0, 5, 0, 7,
-				4, 9, 0, 1, 2, 3, 4, 9, 6, 0, 8, 0, 0, 1, 2, 3, 4, 5, 0, 7, 0, 10, 4, 5, 91, 7, 34, 35, 36, 37, 0, 98,
-				40, 3, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 54, 0, 1, 2, 54, 4, 60, 0, 1, 2, 64, 4, 0, 6, 68,
-				8, 70, 71, 72, 73, 0, 69, 59, 0, 1, 2, 60, 71, 54, 6, 64, 8, 86, 87, 68, 89, 90, 91, 92, 93, 94, 95, 96,
-				97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 0, 1, 2, 55, 117, 118, 119,
-				120, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
-				27, 28, 29, 30, 31, 32, 33, 0, 0, 1, 2, 3, 4, 40, 6, 0, 8, 0, 1, 2, 55, 4, 5, 0, 7, 0, 53, 0, 55, 56,
-				57, 58, 0, 0, 61, 62, 63, 4, 65, 7, 114, 115, 116, 0, 1, 2, 73, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
-				32, 33, 0, 53, 88, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
-				24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 70, 0, 0, 1, 2, 40, 4, 0, 6, 91, 8, 4, 66, 67, 0, 0, 98, 91,
-				53, 54, 55, 56, 57, 58, 98, 0, 61, 62, 63, 22, 65, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
-				111, 112, 0, 1, 2, 3, 4, 5, 6, 7, 8, 38, 88, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
-				17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 1, 2, 0, 4, 5, 40, 7, 71, 0, 1,
-				2, 9, 4, 5, 60, 7, 0, 0, 53, 3, 55, 56, 57, 58, 0, 113, 61, 62, 63, 0, 65, 0, 114, 115, 116, 0, 1, 2,
-				73, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 0, 88, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
-				13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 1, 2, 60, 4, 5,
-				40, 7, 0, 1, 2, 0, 4, 0, 6, 4, 8, 54, 0, 53, 7, 55, 56, 57, 58, 0, 0, 61, 62, 63, 0, 65, 118, 22, 0, 1,
-				2, 0, 4, 73, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 89, 90, 88, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
-				10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 55, 0,
-				1, 2, 0, 64, 40, 6, 60, 8, 0, 1, 2, 0, 0, 0, 6, 0, 0, 53, 5, 55, 56, 57, 58, 0, 9, 61, 62, 63, 0, 65,
-				96, 3, 0, 1, 2, 23, 24, 73, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 0, 88, 0, 1, 2, 3, 4, 5,
-				6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
-				33, 72, 60, 0, 0, 68, 64, 40, 5, 0, 68, 0, 66, 67, 0, 86, 87, 3, 54, 54, 53, 96, 55, 56, 57, 58, 99,
-				100, 61, 62, 63, 0, 65, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 1, 2, 3, 4, 5, 0, 7, 89, 90,
-				88, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
-				27, 28, 29, 30, 31, 32, 33, 0, 1, 2, 0, 4, 64, 40, 0, 0, 0, 0, 0, 99, 100, 0, 60, 9, 3, 9, 53, 9, 55,
-				56, 57, 58, 64, 0, 61, 62, 63, 0, 65, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 1, 2, 40, 4,
-				40, 6, 40, 8, 0, 88, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
-				23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 1, 2, 0, 4, 5, 40, 7, 0, 9, 55, 0, 1, 2, 95, 7, 0, 0, 54,
-				53, 0, 55, 56, 57, 58, 9, 9, 61, 62, 63, 0, 65, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 10, 11, 12, 13, 14, 15,
-				16, 17, 18, 19, 20, 21, 88, 0, 1, 2, 3, 4, 0, 6, 0, 8, 9, 3, 34, 35, 36, 37, 38, 39, 72, 41, 42, 43, 44,
-				45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 72, 72, 5, 59, 0, 0, 62, 40, 3, 97, 66, 67, 0, 1, 2, 3, 4, 5,
-				6, 7, 8, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 1, 2, 3, 4, 97, 6, 0, 8, 9, 70, 113, 34,
-				35, 36, 37, 38, 39, 55, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 0, 0, 0, 59, 0, 3, 40,
-				54, 64, 9, 66, 67, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 34,
-				35, 3, 34, 35, 0, 1, 2, 0, 1, 2, 34, 35, 36, 37, 38, 39, 55, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
-				52, 0, 1, 2, 68, 96, 0, 59, 72, 0, 0, 0, 0, 7, 0, 3, 0, 69, 9, 9, 9, 73, 0, 1, 2, 3, 4, 5, 6, 7, 8, 55,
-				10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 1, 2, 0, 0, 0, 6, 40, 0, 0, 0, 3, 34, 35, 36, 37, 38,
-				39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 68, 68, 64, 59, 73, 73, 0, 71, 0, 3, 66,
-				67, 0, 1, 2, 3, 4, 5, 6, 7, 8, 55, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 60, 0, 0, 0, 54, 64,
-				64, 71, 0, 0, 9, 9, 34, 35, 36, 37, 38, 39, 55, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2,
-				0, 0, 0, 59, 3, 89, 90, 0, 0, 9, 66, 67, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
-				18, 19, 20, 21, 60, 0, 69, 97, 0, 70, 72, 3, 0, 0, 0, 70, 34, 35, 36, 37, 38, 39, 55, 41, 42, 43, 44,
-				45, 46, 47, 48, 49, 50, 51, 52, 97, 64, 0, 1, 2, 0, 59, 0, 73, 0, 0, 0, 70, 3, 71, 0, 69, 0, 1, 2, 3, 4,
-				5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 60, 0, 1, 2, 0, 74, 0, 3, 0, 5, 6, 7, 34,
-				35, 36, 37, 38, 39, 55, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 60, 0, 1, 2, 0, 60, 59, 34, 35,
-				36, 37, 70, 39, 0, 0, 0, 69, 0, 3, 0, 3, 113, 0, 9, 9, 55, 0, 54, 0, 54, 0, 54, 0, 60, 0, 3, 97, 64, 10,
-				66, 67, 68, 0, 70, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 55, 0, 54, 86, 87, 0, 89, 90, 91, 92,
-				93, 94, 95, 96, 0, 10, 99, 100, 101, 60, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 72, 72, 54,
-				61, 117, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 53, 0, 55, 0,
-				0, 4, 0, 0, 4, 3, 54, 34, 35, 36, 37, 38, 39, 10, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1,
-				2, 3, 4, 5, 6, 7, 8, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 54, 0, 54, 113, 54, 54, 0,
-				53, 9, 55, 64, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 0, 0, 0, 0,
-				89, 90, 3, 0, 9, 0, 55, 118, 66, 67, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18,
-				19, 20, 21, 0, 0, 68, 0, 72, 55, 0, 0, 0, 0, 71, 0, 34, 35, 36, 37, 38, 39, 54, 41, 42, 43, 44, 45, 46,
-				47, 48, 49, 50, 51, 52, 0, 0, 68, 68, 71, 73, 59, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 10, 11, 12, 13, 14, 15,
-				16, 17, 18, 19, 20, 21, 54, 54, 54, 54, 0, 54, 0, 0, 0, 0, 64, 71, 34, 35, 36, 37, 38, 39, 75, 41, 42,
-				43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 121, 0, 3, 89, 90, 0, 60, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 10,
-				11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 54, 0, 0, 0, 0, 3, 3, 3, 0, 0, 64, 68, 34, 35, 36, 37, 38,
-				39, 70, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 0, 0, 3, 89, 90, 59, 0, 1, 2, 3, 4, 5, 6, 7,
-				8, 71, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 0, 0, 54, 0, 3, 0, 0, 0, 68, 0, 0, 34, 35, 36,
-				37, 38, 39, 70, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 0, 0, 0, 0, 0, 59, 0, 1, 2, 3, 4, 5,
-				6, 7, 8, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 70, 34,
-				35, 36, 37, 38, 39, 71, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 0, 0, 0, 0, 0, 59, 0, 1, 2,
-				3, 4, 5, 6, 7, 8, 71, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70,
-				70, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 3, 4, 5, 6, 7,
-				8, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 35, 36,
-				37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 10, 11, 12,
-				13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 35, 36, 37, 38, 39, 0, 41,
-				42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 10, 11, 12, 13, 14, 15, 16,
-				17, 18, 19, 20, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45,
-				46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
-				21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49,
-				50, 51, 52, 0, 1, 2, 0, 4, 0, 0, 0, 0, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
-				25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 53, 4, 0,
-				56, 57, 58, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
-				32, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 53, 0, 0, 56, 57, 58, 10, 11, 12, 13,
-				14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 53, 0, 0, 56, 57, 58, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
-				22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0, 3, 0,
-				53, 0, 0, 56, 57, 58, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 0, 1, 2, 3, 4, 40, 6, 0, 8, 9,
-				3, 0, 36, 37, 0, 0, 9, 0, 0, 54, 0, 0, 0, 0, 0, 60, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 60, 72, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 60, 0, 0, 0, 0, 0, 40, 60, 0, 0, 0, 64,
-				72, 0, 0, 68, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 117, 0, 119, 0, 0, 72, 11, 12, 13,
-				14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 1, 2, 3, 4, 5, 0, 7,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 64, 0, 0, 0, 68, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static byte termCheck[] = TermCheck.termCheck;
-
-	@Override
-	public final int termCheck(int index) {
-		return termCheck[index];
-	}
-
-	public interface TermAction {
-		public final static char termAction[] = { 0, 6862, 6824, 6803, 6803, 6803, 6803, 6803, 6803, 6803, 6840, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6828, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 121, 1, 1, 1, 1, 1, 133, 2753, 7070, 2290, 129, 3567, 1, 1, 367, 6873, 6862,
-				6876, 6877, 6869, 980, 3658, 3062, 3270, 2180, 3649, 4730, 3657, 1508, 3656, 3886, 3655, 10, 6843, 6843,
-				6843, 6843, 6843, 6843, 6843, 6843, 6843, 6843, 6843, 6843, 6843, 6843, 6843, 6843, 6843, 6843, 6843,
-				6843, 6843, 6843, 6843, 6843, 6843, 6843, 6843, 6843, 6843, 6843, 6843, 6843, 6843, 6843, 6843, 6843,
-				6843, 6843, 6843, 6843, 6843, 6843, 6843, 6843, 6843, 6843, 6843, 6843, 6843, 6843, 6843, 6843, 6843,
-				4322, 4421, 6843, 6843, 6843, 6843, 39, 6843, 6843, 6843, 6900, 6843, 6843, 6843, 3582, 6843, 3779,
-				3747, 432, 6843, 6843, 6843, 6843, 6843, 6843, 6843, 6843, 6843, 6843, 6843, 6843, 6843, 8, 6846, 6846,
-				6846, 6846, 6846, 6846, 6846, 6846, 6846, 6846, 6846, 6846, 6846, 6846, 6846, 6846, 6846, 6846, 6846,
-				6846, 6846, 6846, 6846, 6846, 6846, 6846, 6846, 6846, 6846, 6846, 6846, 6846, 6846, 6846, 6846, 6846,
-				6846, 6846, 6846, 6846, 6846, 6846, 6846, 6846, 6846, 6846, 6846, 6846, 6846, 6846, 6846, 6846, 6846,
-				125, 135, 6846, 6846, 6846, 6846, 6862, 6846, 6846, 6846, 1320, 6846, 6846, 6846, 333, 6846, 6862, 6607,
-				6604, 6846, 6846, 6846, 6846, 6846, 6846, 6846, 6846, 6846, 6846, 6846, 6846, 6846, 6862, 6824, 6803,
-				6803, 6803, 6803, 6803, 6803, 6803, 6831, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 6828, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4322, 4421, 1, 1, 1, 1, 421,
-				2753, 7070, 2290, 3490, 3567, 1, 1, 6862, 6873, 48, 6607, 6604, 190, 980, 3658, 3062, 3270, 2180, 3649,
-				4730, 3657, 1508, 3656, 3886, 3655, 6862, 6824, 6803, 6803, 6803, 6803, 6803, 6803, 6803, 6831, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6828, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 124, 1577, 1, 1, 1, 1, 134, 2753, 7070, 2290, 6862, 3567, 1, 1, 6862, 6873, 123,
-				5948, 122, 6862, 980, 3658, 3062, 3270, 2180, 3649, 4730, 3657, 1508, 3656, 3886, 3655, 6862, 6824,
-				6803, 6803, 6803, 6803, 6803, 6803, 6803, 6831, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6828, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4322, 4421, 1, 1, 1, 1,
-				153, 2753, 7070, 2290, 130, 3567, 1, 1, 3582, 6873, 4322, 4421, 4322, 4421, 980, 3658, 3062, 3270, 2180,
-				3649, 4730, 3657, 1508, 3656, 3886, 3655, 6862, 6824, 6803, 6803, 6803, 6803, 6803, 6803, 6803, 6831, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6828, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 141, 136, 1, 1, 1, 1, 154, 2753, 7070, 2290, 149, 3567, 1, 1, 3617, 6873,
-				3779, 3747, 145, 6862, 980, 3658, 3062, 3270, 2180, 3649, 4730, 3657, 1508, 3656, 3886, 3655, 6862,
-				6824, 6803, 6803, 6803, 6803, 6803, 6803, 6803, 6831, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6828, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4322, 4421, 1, 1, 1,
-				1, 6862, 2753, 7070, 2290, 3490, 3567, 1, 1, 3617, 6873, 3851, 3811, 4322, 4421, 980, 3658, 3062, 3270,
-				2180, 3649, 4730, 3657, 1508, 3656, 3886, 3655, 6862, 6824, 6803, 6803, 6803, 6803, 6803, 6803, 6803,
-				6831, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6828, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 144, 139, 1, 1, 1, 1, 6862, 2753, 7070, 2290, 155, 3567, 1, 1, 6862,
-				6873, 434, 6876, 6877, 1800, 980, 3658, 3062, 3270, 2180, 3649, 4730, 3657, 1508, 3656, 3886, 3655,
-				6862, 6824, 6803, 6803, 6803, 6803, 6803, 6803, 6803, 6831, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6828, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4322, 4421, 1,
-				1, 1, 1, 6862, 2753, 7070, 2290, 2284, 3567, 1, 1, 432, 6873, 1079, 3893, 425, 3526, 980, 3658, 3062,
-				3270, 2180, 3649, 4730, 3657, 1508, 3656, 3886, 3655, 6862, 6824, 6803, 6803, 6803, 6803, 6803, 6803,
-				6803, 6831, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				6828, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 142, 6862, 1, 1, 1, 1, 6862, 2753, 7070, 2290, 150, 3567,
-				1, 1, 6862, 6873, 36, 6761, 6758, 6862, 980, 3658, 3062, 3270, 2180, 3649, 4730, 3657, 1508, 3656, 3886,
-				3655, 6862, 6824, 6803, 6803, 6803, 6803, 6803, 6803, 6803, 6831, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6828, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4322,
-				4421, 1, 1, 1, 1, 137, 2753, 7070, 2290, 6862, 3567, 1, 1, 1118, 6873, 3851, 3811, 552, 6862, 980, 3658,
-				3062, 3270, 2180, 3649, 4730, 3657, 1508, 3656, 3886, 3655, 6862, 3650, 1, 1, 1, 1, 1, 1, 1, 3651, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6871, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 994, 442, 1, 1, 1, 1, 6862, 2753, 7070, 2290, 6770, 3567, 1, 1, 6862, 6873,
-				3396, 6862, 10586, 10586, 980, 3658, 3062, 3270, 2180, 3649, 4730, 3657, 1508, 3656, 3886, 3655, 39,
-				6426, 6423, 5019, 1410, 5578, 5501, 5601, 2235, 6773, 1262, 7161, 7159, 7168, 7167, 7163, 7164, 7162,
-				7165, 7166, 7169, 7160, 7156, 7235, 7236, 7150, 7157, 7153, 7129, 7155, 7154, 7151, 7152, 7130, 5554,
-				5524, 5647, 5624, 6881, 5435, 6898, 645, 1037, 6883, 972, 5785, 978, 6884, 6882, 642, 6878, 6879, 6880,
-				7297, 6862, 6862, 1198, 7298, 7299, 1528, 6862, 6737, 6737, 263, 6733, 263, 263, 263, 263, 6741, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 323, 6521, 6521, 6862, 318, 6862, 263,
-				6862, 6514, 6510, 653, 6661, 6794, 963, 6794, 2235, 333, 6876, 6877, 1, 115, 6730, 1, 1, 1, 5390, 111,
-				1107, 7311, 1556, 1, 6514, 6510, 653, 6661, 6862, 963, 263, 2235, 453, 1570, 820, 1407, 3580, 257, 345,
-				6514, 6510, 653, 6661, 6794, 963, 6794, 2235, 7399, 7161, 7159, 7168, 7167, 7163, 7164, 7162, 7165,
-				7166, 7169, 7160, 7156, 7235, 7236, 7150, 7157, 7153, 7129, 7155, 7154, 7151, 7152, 7130, 3072, 6862,
-				7334, 7335, 7336, 6862, 6737, 6737, 263, 6733, 263, 263, 263, 263, 6782, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5693, 6862, 5142, 4702, 139, 37, 263, 5716, 126, 403, 6514,
-				6510, 4206, 6661, 1, 963, 1, 2235, 495, 1, 258, 6730, 1, 1, 1, 6862, 6201, 1107, 7311, 1556, 4930, 33,
-				6862, 6862, 6465, 6862, 6465, 263, 6465, 452, 6465, 1904, 7156, 7235, 7236, 7150, 7157, 7153, 7129,
-				7155, 7154, 7151, 7152, 7130, 7399, 367, 6426, 6423, 653, 1410, 6898, 963, 4058, 2235, 6862, 6465, 6465,
-				6465, 6465, 1321, 6862, 6465, 6447, 639, 2097, 6862, 6876, 6877, 6453, 1368, 7334, 7335, 7336, 6862,
-				6874, 6465, 1, 6514, 6510, 4206, 6661, 6465, 963, 114, 2235, 6465, 3729, 4004, 3931, 6465, 4930, 6465,
-				6465, 6465, 6465, 1079, 3893, 2050, 2003, 1956, 1909, 1862, 1815, 1768, 1721, 1674, 1627, 6465, 6465,
-				118, 6465, 6465, 6465, 6465, 6465, 6465, 6465, 6465, 6465, 6465, 6465, 6465, 6465, 6465, 6465, 6465,
-				6465, 6465, 6465, 6465, 6465, 6465, 6465, 6465, 6873, 6422, 1321, 2699, 6465, 6465, 6465, 6465, 6862,
-				4638, 4611, 6468, 433, 6468, 6862, 6468, 424, 6468, 1, 6514, 6510, 653, 6661, 6874, 963, 595, 2235, 337,
-				37, 6877, 6877, 6877, 6877, 6877, 39, 6877, 6862, 7198, 6900, 367, 5693, 367, 6468, 6468, 6468, 6468,
-				91, 5716, 6468, 6459, 6877, 6877, 6877, 6877, 6877, 6877, 6877, 6877, 6877, 6877, 6877, 6877, 6468,
-				6862, 6426, 6423, 1150, 6900, 6468, 6862, 6426, 6423, 6468, 1410, 6862, 6471, 6468, 2235, 6468, 6468,
-				6468, 6468, 476, 6873, 3578, 38, 6444, 6441, 6877, 3072, 2499, 6438, 6877, 2235, 6468, 6468, 6877, 6468,
-				6468, 6468, 6468, 6468, 6468, 6468, 6468, 6468, 6468, 6468, 6468, 6468, 6468, 6468, 6468, 6468, 6468,
-				6468, 6468, 6468, 6468, 6468, 6468, 43, 6628, 6628, 1024, 6468, 6468, 6468, 6468, 6862, 6803, 6803, 263,
-				6803, 263, 263, 263, 263, 6806, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9202, 1, 1, 1, 1, 1,
-				1, 6862, 1, 6514, 6510, 6776, 6661, 263, 6779, 113, 6664, 481, 1, 1, 6625, 1, 6450, 112, 6450, 259, 1,
-				159, 6800, 1, 1, 1, 131, 6862, 2241, 7107, 2290, 2713, 3567, 3665, 7334, 7335, 7336, 6862, 6876, 6877,
-				254, 7156, 7235, 7236, 7150, 7157, 7153, 7129, 7155, 7154, 7151, 7152, 7130, 6862, 2768, 7399, 6862,
-				6803, 6803, 263, 6803, 263, 263, 263, 263, 263, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9202,
-				1, 1, 1, 1, 1, 1, 6862, 2851, 6862, 6862, 6426, 6423, 263, 1410, 39, 963, 5693, 2235, 6900, 5670, 1111,
-				1, 6862, 5716, 5693, 1, 3518, 6800, 1, 1, 1, 5716, 6862, 2241, 7107, 2290, 2565, 3567, 3333, 4895, 2785,
-				2719, 2653, 2587, 2521, 2455, 2389, 2323, 2257, 2191, 381, 6426, 6423, 4206, 1410, 367, 963, 367, 2235,
-				3566, 7399, 6862, 6803, 6803, 263, 6803, 263, 263, 263, 263, 6815, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 9202, 1, 1, 1, 1, 1, 1, 482, 39, 39, 6862, 6900, 6712, 263, 6712, 2144, 92, 1, 1, 6866,
-				1, 6721, 1321, 6721, 271, 260, 1, 6616, 6800, 1, 1, 1, 6862, 3660, 2241, 7107, 2290, 6862, 3567, 494,
-				7334, 7335, 7336, 327, 6876, 6877, 253, 7156, 7235, 7236, 7150, 7157, 7153, 7129, 7155, 7154, 7151,
-				7152, 7130, 146, 6862, 7399, 6862, 6803, 6803, 263, 6803, 263, 263, 263, 263, 6806, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9202, 1, 1, 1, 1, 1, 1, 95, 39, 39, 6456, 6900, 6788, 263, 6788, 6862,
-				6426, 6423, 39, 1410, 132, 963, 6900, 2235, 4139, 261, 1, 3665, 6800, 1, 1, 1, 138, 6862, 2241, 7107,
-				2290, 6862, 3567, 6865, 1941, 431, 6518, 6518, 384, 318, 254, 7156, 7235, 7236, 7150, 7157, 7153, 7129,
-				7155, 7154, 7151, 7152, 7130, 4112, 4085, 7399, 6862, 6803, 6803, 263, 6803, 263, 263, 263, 263, 6806,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9202, 1, 1, 1, 1, 1, 1, 318, 6862, 6876, 6877, 6862,
-				2703, 263, 963, 1321, 2235, 6862, 6876, 6877, 157, 372, 117, 1904, 6862, 572, 1, 5390, 6800, 1, 1, 1,
-				398, 6868, 2241, 7107, 2290, 1, 3567, 3396, 3883, 6862, 6607, 6604, 7235, 7236, 254, 7156, 7235, 7236,
-				7150, 7157, 7153, 7129, 7155, 7154, 7151, 7152, 7130, 148, 6862, 7399, 6862, 6803, 6803, 263, 6803, 263,
-				263, 263, 263, 263, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9202, 1, 1, 1, 1, 1, 1, 6867,
-				1321, 116, 6862, 3560, 577, 263, 5390, 6862, 577, 573, 5670, 1111, 1, 4322, 4421, 5819, 4139, 2829, 1,
-				3434, 6800, 1, 1, 1, 5142, 4702, 2241, 7107, 2290, 6862, 3567, 7156, 7235, 7236, 7150, 7157, 7153, 7129,
-				7155, 7154, 7151, 7152, 7130, 381, 39, 39, 3883, 6900, 367, 6862, 367, 4112, 4085, 7399, 6862, 6803,
-				6803, 263, 6803, 263, 263, 263, 263, 263, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9202, 1, 1,
-				1, 1, 1, 1, 6862, 6426, 6423, 6862, 6900, 2747, 263, 6862, 156, 1, 574, 1, 5142, 4702, 6862, 1321, 6872,
-				4370, 6872, 1, 224, 6800, 1, 1, 1, 2761, 6862, 2241, 7107, 2290, 6862, 3567, 7156, 7235, 7236, 7150,
-				7157, 7153, 7129, 7155, 7154, 7151, 7152, 7130, 6862, 6426, 6423, 6871, 1410, 6871, 6471, 224, 2235,
-				6862, 7399, 6862, 6803, 6803, 263, 6803, 263, 263, 263, 263, 263, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 9202, 1, 1, 1, 1, 1, 1, 1, 6709, 6709, 6862, 6715, 367, 263, 367, 151, 399, 2617, 6862,
-				10340, 10337, 3526, 3699, 1, 6862, 2895, 1, 411, 6800, 1, 1, 1, 194, 6868, 2241, 7107, 2290, 394, 3567,
-				6862, 1, 1, 1, 1, 1, 1, 1, 1, 6862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7399, 1, 6514, 6510, 6776, 6661,
-				6862, 6779, 347, 6664, 6872, 1604, 1, 1, 1, 1, 1, 1, 399, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 37, 6718,
-				6718, 194, 6867, 367, 1, 6862, 6862, 7461, 6871, 4544, 399, 1, 1, 1, 6514, 6510, 672, 1410, 5578, 5501,
-				5601, 2235, 6862, 6474, 6501, 6507, 6480, 6483, 6495, 6492, 6498, 6489, 6486, 6477, 6504, 1, 6514, 6510,
-				653, 6661, 7255, 963, 158, 2235, 345, 1219, 3660, 5554, 5524, 5647, 5624, 6881, 5435, 6898, 645, 1037,
-				6883, 972, 5785, 978, 6884, 6882, 642, 6878, 6879, 6880, 37, 6718, 6718, 6862, 120, 6862, 1528, 119,
-				4550, 345, 5025, 553, 6868, 39, 39, 39, 6426, 6423, 5019, 1410, 5578, 5501, 5601, 2235, 6856, 643, 7161,
-				7159, 7168, 7167, 7163, 7164, 7162, 7165, 7166, 7169, 7160, 6862, 4638, 4611, 4740, 4638, 4611, 6862,
-				6747, 6744, 6862, 10340, 10337, 5554, 5524, 5647, 5624, 6881, 5435, 1716, 645, 1037, 6883, 972, 5785,
-				978, 6884, 6882, 642, 6878, 6879, 6880, 326, 967, 967, 6281, 3434, 152, 1528, 6867, 6862, 6862, 6862,
-				6862, 3699, 6862, 2883, 6862, 6837, 6870, 6870, 6872, 6869, 174, 6426, 6423, 5019, 1410, 5578, 5501,
-				5601, 2235, 6898, 643, 7161, 7159, 7168, 7167, 7163, 7164, 7162, 7165, 7166, 7169, 7160, 37, 6718, 6718,
-				6862, 6862, 6862, 6718, 6871, 383, 6862, 6862, 2077, 5554, 5524, 5647, 5624, 6881, 5435, 147, 645, 1037,
-				6883, 972, 5785, 978, 6884, 6882, 642, 6878, 6879, 6880, 6862, 6754, 6750, 1170, 796, 7411, 1528, 6869,
-				6869, 6862, 2917, 1, 4276, 39, 39, 1, 6514, 6510, 672, 1410, 5578, 5501, 5601, 2235, 1951, 6474, 6501,
-				6507, 6480, 6483, 6495, 6492, 6498, 6489, 6486, 6477, 6504, 1321, 1, 1, 406, 4139, 7340, 7354, 7300,
-				100, 404, 6818, 399, 5554, 5524, 5647, 5624, 6881, 5435, 6898, 645, 1037, 6883, 972, 5785, 978, 6884,
-				6882, 642, 6878, 6879, 6880, 45, 6767, 6767, 1, 103, 6862, 1528, 4349, 4112, 4085, 328, 465, 6821, 39,
-				39, 39, 6426, 6423, 5019, 1410, 5578, 5501, 5601, 2235, 6834, 643, 7161, 7159, 7168, 7167, 7163, 7164,
-				7162, 7165, 7166, 7169, 7160, 4951, 1, 6873, 7257, 6862, 1431, 399, 3111, 6862, 584, 356, 1481, 5554,
-				5524, 5647, 5624, 6881, 5435, 6764, 645, 1037, 6883, 972, 5785, 978, 6884, 6882, 642, 6878, 6879, 6880,
-				399, 6027, 6862, 6747, 6744, 6862, 1528, 6862, 6869, 1, 354, 457, 3129, 6785, 2767, 99, 6837, 39, 6426,
-				6423, 5019, 1410, 5578, 5501, 5601, 2235, 6834, 643, 7161, 7159, 7168, 7167, 7163, 7164, 7162, 7165,
-				7166, 7169, 7160, 1321, 6862, 11342, 8963, 1, 3313, 29, 636, 477, 7362, 7368, 7366, 5554, 5524, 5647,
-				5624, 6881, 5435, 6898, 645, 1037, 6883, 972, 5785, 978, 6884, 6882, 642, 6878, 6879, 6880, 1321, 37,
-				6718, 6718, 491, 3030, 1528, 7360, 7361, 7391, 7392, 3228, 7369, 6862, 1, 1, 6837, 313, 3883, 6862,
-				6797, 1, 575, 6868, 6610, 6898, 6862, 7371, 337, 6429, 6862, 6432, 6862, 794, 424, 3569, 3878, 7372,
-				7198, 1760, 1773, 7393, 6862, 7370, 7156, 7235, 7236, 7150, 7157, 7153, 7129, 7155, 7154, 7151, 7152,
-				7130, 6898, 583, 6435, 7382, 7381, 1, 7387, 7388, 7394, 7385, 7386, 7365, 7367, 7389, 6862, 6809, 7363,
-				7364, 7390, 1321, 7375, 7376, 7377, 7373, 7374, 7383, 7384, 7379, 7378, 7380, 6867, 6613, 6462, 1890,
-				7395, 39, 6426, 6423, 5019, 1410, 5578, 5501, 5601, 2235, 6866, 643, 7161, 7159, 7168, 7167, 7163, 7164,
-				7162, 7165, 7166, 7169, 7160, 128, 6812, 48, 3575, 6862, 48, 6877, 6862, 1, 6876, 4668, 1150, 5554,
-				5524, 5647, 5624, 6881, 5435, 6809, 645, 1037, 6883, 972, 5785, 978, 6884, 6882, 642, 6878, 6879, 6880,
-				1, 6514, 6510, 6706, 6661, 6649, 6667, 6652, 6664, 47, 6474, 6501, 6507, 6480, 6483, 6495, 6492, 6498,
-				6489, 6486, 6477, 6504, 1, 4058, 320, 6877, 3660, 3518, 6876, 485, 6812, 591, 3575, 6631, 6646, 6643,
-				6658, 6655, 6679, 6640, 6862, 6694, 6703, 6673, 6697, 6637, 6700, 6670, 6676, 6691, 6688, 6685, 6682, 8,
-				29, 326, 463, 6862, 4004, 3931, 4511, 218, 6859, 6862, 1619, 6865, 6709, 6709, 39, 6426, 6423, 5019,
-				1410, 5578, 5501, 5601, 2235, 6862, 643, 7161, 7159, 7168, 7167, 7163, 7164, 7162, 7165, 7166, 7169,
-				7160, 6862, 6862, 7181, 227, 591, 3519, 127, 432, 73, 6862, 739, 6862, 5554, 5524, 5647, 5624, 6881,
-				5435, 1150, 645, 1037, 6883, 972, 5785, 978, 6884, 6882, 642, 6878, 6879, 6880, 6862, 6862, 9942, 718,
-				461, 6859, 1528, 39, 6426, 6423, 5019, 1410, 5578, 5501, 5601, 2235, 6862, 643, 7161, 7159, 7168, 7167,
-				7163, 7164, 7162, 7165, 7166, 7169, 7160, 4058, 1150, 6791, 3309, 486, 3385, 6862, 6862, 6862, 35, 6634,
-				3171, 5554, 5524, 5647, 5624, 6881, 5435, 6850, 645, 1037, 6883, 972, 5785, 978, 6884, 6882, 642, 6878,
-				6879, 6880, 6862, 6853, 6862, 6150, 4004, 3931, 6862, 1021, 39, 6426, 6423, 672, 1410, 5578, 5501, 5601,
-				2235, 6862, 643, 7161, 7159, 7168, 7167, 7163, 7164, 7162, 7165, 7166, 7169, 7160, 4139, 344, 6862,
-				6862, 6862, 6248, 4794, 6304, 545, 2, 4179, 2511, 5554, 5524, 5647, 5624, 6881, 5435, 2125, 645, 1037,
-				6883, 972, 5785, 978, 6884, 6882, 642, 6878, 6879, 6880, 6862, 6862, 6862, 4963, 4112, 4085, 1528, 39,
-				6426, 6423, 672, 1410, 5578, 5501, 5601, 2235, 4792, 643, 7161, 7159, 7168, 7167, 7163, 7164, 7162,
-				7165, 7166, 7169, 7160, 543, 6862, 6862, 37, 6862, 5274, 6862, 6862, 6862, 2222, 6862, 6862, 5554, 5524,
-				5647, 5624, 6881, 5435, 5922, 645, 1037, 6883, 972, 5785, 978, 6884, 6882, 642, 6878, 6879, 6880, 6862,
-				6862, 6862, 6862, 6862, 6862, 1528, 39, 6426, 6423, 5019, 1410, 5578, 5501, 5601, 2235, 6862, 643, 7161,
-				7159, 7168, 7167, 7163, 7164, 7162, 7165, 7166, 7169, 7160, 6862, 547, 6862, 6862, 6862, 6862, 6862,
-				6862, 6862, 6862, 6274, 2125, 5554, 5524, 5647, 5624, 6881, 5435, 4854, 645, 1037, 6883, 972, 5785, 978,
-				6884, 6882, 642, 6878, 6879, 6880, 6862, 6862, 6862, 6862, 6862, 6862, 1528, 39, 6426, 6423, 5954, 1410,
-				5578, 5501, 5601, 2235, 4916, 643, 7161, 7159, 7168, 7167, 7163, 7164, 7162, 7165, 7166, 7169, 7160,
-				6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 2983, 901, 5554, 5524, 5647, 5624, 6881,
-				5435, 6862, 645, 1037, 6883, 972, 5785, 978, 6884, 6882, 642, 6878, 6879, 6880, 39, 6426, 6423, 5019,
-				1410, 5578, 5501, 5601, 2235, 6862, 643, 7161, 7159, 7168, 7167, 7163, 7164, 7162, 7165, 7166, 7169,
-				7160, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 5554, 5524, 5647, 5624,
-				6881, 5435, 6862, 645, 1037, 6883, 972, 5785, 978, 6884, 6882, 642, 6878, 6879, 6880, 39, 6426, 6423,
-				672, 1410, 5578, 5501, 5601, 2235, 6862, 643, 7161, 7159, 7168, 7167, 7163, 7164, 7162, 7165, 7166,
-				7169, 7160, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 5554, 5524, 5647,
-				5624, 6881, 5435, 6862, 645, 1037, 6883, 972, 5785, 978, 6884, 6882, 642, 6878, 6879, 6880, 39, 6426,
-				6423, 672, 1410, 5578, 5501, 5601, 2235, 6862, 643, 7161, 7159, 7168, 7167, 7163, 7164, 7162, 7165,
-				7166, 7169, 7160, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 5554, 5524,
-				5647, 5624, 6881, 5435, 6862, 645, 1037, 6883, 972, 5785, 978, 6884, 6882, 642, 6878, 6879, 6880, 39,
-				6426, 6423, 5019, 1410, 5578, 5501, 5601, 2235, 6862, 643, 7161, 7159, 7168, 7167, 7163, 7164, 7162,
-				7165, 7166, 7169, 7160, 1, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 196, 6862, 6862, 5554, 5524,
-				5647, 5624, 6881, 5435, 6862, 645, 1037, 6883, 972, 5785, 978, 6884, 6882, 642, 6878, 6879, 6880, 6862,
-				6426, 6423, 6862, 6900, 6862, 6862, 6862, 6862, 6862, 882, 7161, 7159, 7168, 7167, 7163, 7164, 7162,
-				7165, 7166, 7169, 7160, 7156, 7235, 7236, 7150, 7157, 7153, 7129, 7155, 7154, 7151, 7152, 7130, 6862,
-				6862, 6862, 6862, 6862, 6862, 6862, 196, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 275, 6597,
-				6593, 7297, 6601, 6862, 1198, 7298, 7299, 6862, 882, 6584, 6590, 6563, 6566, 6578, 6575, 6581, 6572,
-				6569, 6560, 6587, 6539, 6533, 6530, 6557, 6536, 6548, 6527, 6542, 6545, 6554, 6551, 6524, 6862, 6862,
-				6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6876, 6877, 6862,
-				7297, 6862, 6862, 1198, 7298, 7299, 1571, 7161, 7159, 7168, 7167, 7163, 7164, 7162, 7165, 7166, 7169,
-				7160, 7156, 7235, 7236, 7150, 7157, 7153, 7129, 7155, 7154, 7151, 7152, 7130, 6862, 6862, 6862, 6862,
-				6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 275, 6727, 6724, 6862, 7297, 6862,
-				6862, 1198, 7298, 7299, 1571, 6584, 6590, 6563, 6566, 6578, 6575, 6581, 6572, 6569, 6560, 6587, 6539,
-				6533, 6530, 6557, 6536, 6548, 6527, 6542, 6545, 6554, 6551, 6524, 6862, 6862, 6862, 29, 424, 424, 6622,
-				424, 6622, 424, 6622, 424, 6622, 6862, 75, 6862, 6862, 704, 6862, 7297, 6862, 6862, 1198, 7298, 7299,
-				424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 6862, 1, 6514, 6510, 4206, 6661, 6622, 963,
-				1, 2235, 6610, 3883, 6862, 6924, 6925, 6862, 6862, 377, 6862, 6862, 6429, 6862, 6862, 6862, 6862, 6862,
-				6622, 32, 425, 425, 6619, 425, 6619, 425, 6619, 425, 6619, 3890, 6622, 6862, 6862, 6862, 6862, 6862,
-				6862, 6862, 6862, 6862, 6862, 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, 1321, 6862,
-				6862, 6862, 6862, 6862, 6619, 1321, 6862, 6862, 6862, 377, 6613, 6862, 6862, 377, 6862, 6862, 6862, 377,
-				6862, 6862, 6862, 6862, 6862, 6862, 6619, 6862, 571, 6862, 6862, 6862, 6862, 1060, 6862, 2552, 6862,
-				6862, 6619, 7161, 7159, 7168, 7167, 7163, 7164, 7162, 7165, 7166, 7169, 7160, 7156, 7235, 7236, 7150,
-				7157, 7153, 7129, 7155, 7154, 7151, 7152, 7130, 37, 6876, 6876, 6876, 6876, 6876, 6862, 6876, 6862,
-				6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6876, 6876, 6876, 6876,
-				6876, 6876, 6876, 6876, 6876, 6876, 6876, 6876, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862,
-				6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862, 6862,
-				6876, 6862, 6862, 6862, 6876, 6862, 6862, 6862, 6876 };
-	}
-
-	public final static char termAction[] = TermAction.termAction;
-
-	@Override
-	public final int termAction(int index) {
-		return termAction[index];
-	}
-
-	public interface Asb {
-		public final static char asb[] = { 0, 790, 15, 671, 9, 831, 880, 880, 880, 880, 536, 831, 562, 562, 468, 562,
-				262, 655, 264, 672, 672, 672, 672, 672, 672, 672, 672, 672, 564, 570, 575, 572, 579, 577, 584, 582, 586,
-				585, 587, 331, 588, 671, 655, 192, 192, 192, 192, 710, 17, 165, 165, 559, 192, 328, 105, 562, 562, 165,
-				710, 105, 105, 96, 655, 947, 191, 1124, 538, 1005, 655, 562, 564, 763, 763, 17, 671, 672, 672, 672, 672,
-				672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 671, 671, 671, 671, 671, 671,
-				671, 671, 671, 671, 671, 671, 672, 105, 105, 1070, 1070, 1070, 1070, 1126, 105, 165, 165, 534, 994,
-				1005, 6, 1005, 1, 1005, 282, 1005, 989, 536, 710, 328, 328, 165, 880, 672, 534, 288, 908, 898, 897, 432,
-				1012, 1012, 536, 264, 328, 191, 671, 708, 1123, 105, 707, 709, 707, 105, 328, 572, 572, 570, 570, 570,
-				577, 577, 577, 577, 575, 575, 582, 579, 579, 585, 584, 586, 1082, 587, 831, 831, 831, 831, 710, 710,
-				1070, 193, 530, 655, 1047, 1045, 1052, 1050, 1054, 1053, 1055, 1056, 1069, 1070, 559, 710, 380, 383, 3,
-				765, 4, 536, 710, 710, 1126, 1070, 96, 328, 603, 105, 910, 912, 710, 1124, 672, 192, 568, 61, 105, 538,
-				710, 710, 709, 1124, 671, 671, 671, 671, 671, 831, 831, 507, 518, 518, 518, 518, 502, 536, 713, 672,
-				672, 672, 672, 672, 672, 672, 672, 672, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 672,
-				655, 381, 557, 555, 383, 710, 720, 160, 718, 1126, 6, 540, 710, 1126, 710, 105, 902, 890, 901, 912,
-				1126, 708, 105, 568, 534, 1123, 538, 710, 708, 105, 105, 105, 105, 17, 17, 710, 672, 1045, 1045, 1045,
-				1050, 1047, 1047, 1053, 1052, 1054, 1082, 1055, 381, 555, 543, 710, 383, 1082, 4, 880, 1128, 147, 1072,
-				383, 720, 719, 720, 720, 1126, 540, 540, 710, 710, 612, 671, 899, 899, 269, 269, 710, 906, 534, 840,
-				105, 710, 568, 569, 568, 671, 61, 152, 564, 538, 105, 105, 1126, 785, 671, 555, 555, 1124, 6, 6, 1070,
-				880, 707, 622, 1074, 704, 831, 720, 720, 720, 720, 710, 540, 542, 835, 542, 612, 671, 671, 912, 710,
-				1124, 105, 910, 890, 612, 443, 568, 17, 672, 328, 152, 710, 555, 554, 708, 724, 6, 109, 399, 708, 720,
-				720, 704, 608, 672, 1082, 277, 873, 710, 534, 720, 720, 546, 542, 543, 672, 710, 777, 912, 612, 569,
-				105, 328, 555, 609, 724, 724, 59, 1084, 372, 831, 4, 146, 399, 708, 720, 6, 536, 1074, 672, 672, 1123,
-				704, 882, 427, 547, 710, 543, 777, 105, 777, 543, 724, 724, 108, 372, 59, 886, 536, 1069, 880, 154, 154,
-				609, 6, 635, 882, 710, 831, 546, 710, 536, 536, 710, 831, 770, 777, 543, 109, 724, 609, 276, 608, 105,
-				536, 710, 399, 109, 399, 1068, 1068, 833, 636, 536, 710, 17, 710, 710, 710, 913, 770, 724, 671, 225,
-				704, 609, 710, 710, 399, 192, 192, 833, 635, 1082, 672, 1082, 609, 634, 831, 831, 831, 636, 831, 710,
-				339, 609, 609, 710, 6, 105, 710, 710, 104, 772, 543, 105, 543, 6, 710, 609, 1069, 627, 831, 627, 636,
-				1082, 636, 655, 655, 653, 634, 655, 609, 609, 783, 633, 192, 772, 543, 225, 609, 222, 840, 636, 105,
-				704, 105, 653, 372, 831, 105, 833, 225, 154, 105, 105, 456, 636, 783, 636, 609, 372, 671, 636, 633, 542,
-				1068, 6, 6, 979, 671, 634, 17, 609, 105, 607, 224, 707, 636, 105, 609, 607, 607, 636 };
-	}
-
-	public final static char asb[] = Asb.asb;
-
-	@Override
-	public final int asb(int index) {
-		return asb[index];
-	}
-
-	public interface Asr {
-		public final static byte asr[] = { 0, 55, 4, 71, 1, 2, 69, 9, 0, 9, 71, 118, 72, 40, 68, 120, 0, 9, 72, 11, 12,
-				41, 66, 13, 42, 43, 14, 15, 16, 67, 8, 44, 17, 18, 45, 46, 47, 59, 48, 49, 10, 19, 20, 21, 50, 51, 52,
-				1, 2, 3, 36, 37, 7, 5, 34, 35, 6, 39, 4, 38, 0, 98, 91, 34, 35, 99, 100, 86, 87, 54, 89, 90, 92, 93, 94,
-				95, 96, 101, 102, 71, 97, 70, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 118, 73, 40, 120, 64, 1,
-				2, 7, 5, 4, 3, 60, 68, 72, 9, 0, 69, 53, 23, 13, 56, 26, 14, 28, 29, 15, 16, 30, 31, 17, 18, 32, 57, 33,
-				58, 19, 22, 20, 24, 21, 12, 11, 25, 9, 3, 7, 5, 40, 63, 65, 88, 27, 62, 55, 61, 8, 1, 2, 4, 10, 6, 0,
-				64, 70, 68, 1, 2, 0, 4, 9, 71, 69, 0, 41, 66, 42, 43, 67, 8, 44, 45, 46, 47, 59, 48, 49, 50, 51, 52, 38,
-				36, 37, 7, 5, 34, 35, 6, 39, 64, 3, 4, 10, 1, 2, 56, 57, 58, 12, 21, 11, 17, 15, 16, 18, 19, 14, 13, 20,
-				25, 31, 32, 27, 30, 29, 22, 26, 23, 24, 28, 33, 53, 0, 73, 59, 36, 37, 7, 5, 34, 35, 39, 45, 3, 4, 50,
-				51, 52, 38, 48, 43, 47, 12, 21, 11, 17, 15, 16, 18, 19, 14, 13, 20, 10, 42, 46, 44, 41, 49, 69, 9, 8, 6,
-				1, 2, 67, 66, 0, 74, 64, 71, 97, 72, 69, 60, 3, 9, 68, 40, 70, 0, 4, 9, 69, 1, 2, 0, 66, 67, 3, 10, 42,
-				46, 44, 41, 49, 12, 21, 11, 17, 15, 16, 18, 19, 14, 13, 20, 50, 51, 52, 38, 48, 43, 47, 6, 8, 4, 36, 37,
-				7, 5, 34, 35, 39, 45, 1, 2, 118, 9, 0, 64, 71, 97, 68, 118, 72, 73, 120, 11, 12, 41, 66, 13, 42, 43, 14,
-				15, 16, 67, 44, 17, 18, 45, 46, 47, 59, 48, 49, 10, 19, 20, 21, 50, 51, 52, 38, 36, 37, 34, 35, 39, 9,
-				40, 6, 8, 1, 2, 4, 3, 7, 5, 0, 88, 61, 8, 114, 115, 116, 63, 9, 3, 7, 5, 6, 71, 73, 40, 62, 25, 11, 12,
-				53, 23, 13, 56, 26, 27, 14, 28, 29, 15, 16, 30, 31, 17, 18, 32, 57, 55, 33, 10, 58, 19, 20, 24, 21, 1,
-				2, 4, 22, 0, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 25, 23, 26, 27, 28, 29, 30, 31, 32, 33, 22, 24,
-				40, 9, 72, 8, 1, 2, 60, 3, 7, 5, 6, 4, 0, 67, 66, 34, 35, 99, 100, 94, 95, 6, 39, 70, 54, 106, 107, 103,
-				104, 105, 111, 110, 112, 87, 86, 108, 109, 92, 93, 89, 90, 96, 101, 36, 37, 91, 117, 10, 56, 53, 57, 58,
-				12, 21, 11, 17, 15, 16, 18, 19, 14, 13, 20, 25, 31, 32, 27, 30, 29, 22, 26, 23, 24, 28, 33, 64, 68, 3,
-				60, 7, 5, 1, 2, 4, 0, 1, 2, 68, 73, 9, 0, 22, 1, 2, 4, 114, 115, 116, 0, 59, 23, 24, 8, 6, 1, 2, 4, 74,
-				69, 119, 117, 36, 37, 60, 3, 98, 91, 5, 99, 100, 34, 35, 87, 86, 54, 89, 90, 92, 93, 7, 94, 95, 96, 64,
-				97, 72, 120, 70, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 71, 118, 101, 102, 73, 68, 40, 9, 0,
-				23, 59, 24, 9, 64, 97, 70, 68, 72, 0, 9, 71, 69, 74, 0, 88, 114, 115, 116, 55, 71, 113, 121, 73, 62, 74,
-				63, 61, 65, 76, 78, 84, 82, 75, 80, 81, 83, 85, 69, 77, 79, 40, 9, 25, 53, 23, 56, 26, 27, 28, 29, 30,
-				31, 32, 57, 33, 58, 22, 24, 59, 66, 67, 10, 42, 46, 44, 41, 49, 12, 21, 11, 17, 15, 16, 18, 19, 14, 13,
-				20, 50, 51, 52, 38, 48, 43, 47, 36, 37, 34, 35, 39, 45, 7, 5, 3, 4, 8, 6, 1, 2, 0, 54, 64, 89, 90, 0, 4,
-				54, 9, 71, 69, 0, 65, 25, 11, 12, 53, 23, 13, 56, 26, 88, 27, 14, 28, 29, 15, 16, 30, 61, 31, 17, 18,
-				32, 57, 33, 10, 58, 19, 63, 22, 20, 24, 21, 9, 3, 7, 5, 73, 40, 62, 8, 6, 55, 1, 2, 4, 0, 23, 24, 74, 3,
-				71, 40, 69, 59, 9, 64, 97, 68, 72, 70, 0, 72, 9, 87, 86, 0, 11, 12, 41, 66, 13, 42, 43, 14, 15, 16, 67,
-				8, 44, 17, 18, 45, 46, 47, 59, 48, 49, 10, 19, 20, 21, 50, 51, 52, 38, 1, 2, 36, 37, 7, 5, 34, 35, 6,
-				39, 4, 62, 3, 0, 113, 0, 9, 68, 73, 70, 0, 25, 11, 12, 53, 23, 13, 56, 26, 27, 14, 28, 29, 15, 16, 30,
-				31, 17, 18, 32, 57, 33, 10, 58, 19, 22, 20, 24, 21, 1, 2, 4, 97, 0, 71, 9, 60, 3, 70, 68, 40, 54, 0, 9,
-				69, 68, 0, 9, 69, 70, 0, 7, 5, 8, 6, 4, 1, 2, 3, 60, 64, 70, 68, 9, 72, 97, 0, 6, 8, 3, 60, 5, 7, 97,
-				25, 11, 12, 53, 23, 13, 56, 26, 27, 14, 28, 29, 15, 16, 30, 31, 17, 18, 32, 57, 33, 10, 58, 19, 22, 20,
-				24, 21, 1, 2, 4, 72, 9, 0, 66, 67, 36, 37, 34, 35, 39, 45, 50, 51, 52, 38, 48, 43, 47, 12, 21, 11, 17,
-				15, 16, 18, 19, 14, 13, 20, 10, 42, 46, 44, 41, 49, 7, 5, 3, 60, 8, 6, 4, 1, 2, 0, 10, 56, 53, 57, 58,
-				12, 21, 11, 17, 15, 16, 18, 19, 14, 13, 20, 74, 71, 97, 118, 73, 69, 120, 8, 31, 32, 33, 22, 24, 1, 2,
-				30, 29, 28, 27, 26, 6, 4, 23, 25, 119, 98, 117, 91, 36, 37, 34, 35, 99, 100, 9, 60, 3, 5, 72, 40, 87,
-				86, 54, 89, 90, 92, 93, 7, 94, 95, 96, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 70,
-				68, 64, 0, 40, 9, 3, 8, 6, 7, 5, 4, 1, 2, 71, 0, 53, 23, 13, 56, 26, 14, 28, 29, 15, 16, 30, 31, 17, 18,
-				32, 57, 33, 10, 58, 19, 22, 20, 24, 21, 12, 11, 25, 9, 3, 7, 40, 63, 61, 65, 88, 27, 62, 54, 4, 5, 8, 6,
-				1, 2, 55, 0 };
-	}
-
-	public final static byte asr[] = Asr.asr;
-
-	@Override
-	public final int asr(int index) {
-		return asr[index];
-	}
-
-	public interface Nasb {
-		public final static char nasb[] = { 0, 160, 12, 82, 12, 12, 12, 12, 12, 12, 86, 12, 12, 12, 125, 12, 238, 26,
-				157, 82, 82, 257, 82, 82, 82, 82, 82, 82, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 82, 12, 82, 26,
-				218, 218, 218, 218, 157, 16, 180, 180, 93, 5, 108, 230, 12, 12, 180, 261, 230, 230, 164, 1, 82, 77, 53,
-				12, 12, 26, 12, 12, 68, 68, 16, 27, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82,
-				82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 27, 82, 230, 230, 12, 12, 12, 12, 120, 230, 43, 43,
-				187, 275, 276, 226, 276, 13, 276, 88, 276, 269, 10, 157, 108, 108, 43, 12, 82, 187, 103, 163, 19, 19,
-				12, 12, 12, 10, 157, 108, 218, 113, 238, 99, 230, 237, 157, 237, 230, 108, 12, 12, 12, 12, 12, 12, 12,
-				12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 192, 11, 12, 250, 164, 21, 12, 12, 12,
-				12, 12, 12, 12, 12, 12, 12, 197, 157, 12, 180, 191, 86, 96, 86, 157, 11, 12, 12, 195, 108, 12, 230, 303,
-				180, 157, 53, 82, 218, 180, 34, 230, 12, 11, 157, 110, 53, 82, 27, 27, 27, 27, 12, 12, 275, 276, 276,
-				276, 276, 286, 10, 12, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82,
-				27, 82, 43, 189, 189, 189, 204, 192, 41, 41, 12, 242, 226, 180, 242, 52, 192, 230, 12, 173, 12, 306, 51,
-				192, 230, 91, 197, 99, 12, 261, 192, 230, 230, 230, 230, 16, 16, 157, 82, 12, 12, 12, 12, 12, 12, 12,
-				12, 12, 12, 12, 12, 180, 145, 157, 170, 12, 74, 12, 12, 116, 278, 204, 41, 41, 180, 180, 52, 180, 262,
-				11, 192, 180, 82, 12, 12, 19, 19, 157, 172, 187, 306, 230, 192, 180, 59, 12, 27, 197, 111, 12, 12, 230,
-				230, 52, 230, 82, 189, 137, 53, 226, 130, 12, 12, 86, 180, 182, 175, 12, 180, 180, 57, 57, 192, 262, 55,
-				12, 12, 137, 82, 82, 180, 11, 53, 230, 303, 232, 180, 12, 91, 16, 82, 108, 111, 192, 180, 137, 238, 180,
-				226, 294, 180, 242, 180, 123, 234, 170, 82, 12, 66, 12, 157, 187, 57, 57, 151, 55, 145, 82, 262, 180,
-				306, 137, 59, 230, 108, 137, 170, 264, 180, 12, 294, 279, 12, 129, 116, 306, 238, 123, 132, 37, 175, 82,
-				82, 139, 234, 12, 86, 142, 242, 145, 118, 230, 180, 145, 294, 264, 225, 182, 12, 12, 86, 12, 12, 61, 61,
-				170, 132, 144, 12, 242, 12, 30, 242, 86, 86, 11, 12, 180, 118, 145, 294, 180, 170, 135, 12, 230, 86,
-				242, 306, 294, 180, 12, 12, 180, 211, 37, 11, 16, 11, 242, 242, 228, 137, 264, 113, 80, 175, 170, 242,
-				75, 306, 218, 218, 149, 221, 12, 82, 12, 170, 12, 12, 12, 12, 222, 12, 262, 168, 170, 170, 262, 63, 230,
-				11, 11, 230, 180, 145, 230, 180, 226, 75, 170, 12, 155, 12, 12, 222, 12, 222, 299, 299, 245, 12, 299,
-				170, 170, 12, 180, 218, 118, 145, 180, 170, 12, 218, 222, 230, 175, 230, 217, 180, 12, 230, 149, 80, 61,
-				230, 230, 180, 222, 12, 222, 170, 175, 27, 222, 155, 145, 12, 63, 63, 173, 82, 12, 201, 170, 230, 147,
-				79, 237, 222, 230, 170, 147, 12, 222 };
-	}
-
-	public final static char nasb[] = Nasb.nasb;
-
-	@Override
-	public final int nasb(int index) {
-		return nasb[index];
-	}
-
-	public interface Nasr {
-		public final static char nasr[] = { 0, 3, 13, 10, 9, 137, 136, 113, 135, 134, 4, 2, 0, 166, 205, 0, 5, 105, 0,
-				80, 0, 13, 2, 9, 10, 4, 52, 5, 36, 0, 4, 115, 182, 0, 5, 194, 0, 186, 4, 185, 0, 122, 0, 4, 10, 9, 2,
-				13, 127, 5, 0, 154, 2, 75, 0, 167, 0, 123, 0, 159, 0, 121, 0, 42, 66, 0, 208, 0, 4, 2, 9, 10, 157, 0,
-				140, 117, 0, 192, 0, 81, 148, 42, 10, 9, 2, 13, 4, 0, 166, 200, 0, 161, 0, 5, 212, 0, 42, 1, 0, 75, 156,
-				155, 0, 13, 2, 9, 10, 4, 94, 0, 2, 131, 0, 5, 28, 0, 170, 0, 144, 0, 154, 75, 0, 173, 0, 5, 52, 213, 0,
-				1, 140, 0, 42, 174, 0, 201, 0, 51, 0, 75, 54, 0, 210, 0, 5, 81, 0, 176, 0, 175, 0, 4, 115, 209, 0, 129,
-				0, 2, 44, 0, 5, 191, 0, 30, 100, 101, 5, 0, 5, 36, 39, 0, 30, 101, 100, 78, 4, 2, 9, 10, 5, 0, 5, 10, 9,
-				2, 78, 4, 98, 54, 0, 44, 2, 3, 0, 101, 100, 54, 4, 68, 0, 5, 195, 0, 5, 50, 93, 115, 48, 4, 0, 5, 50,
-				42, 36, 196, 0, 197, 5, 52, 0, 81, 36, 50, 82, 5, 42, 0, 52, 5, 30, 0, 101, 100, 54, 78, 68, 4, 10, 9,
-				2, 0, 2, 67, 0, 36, 5, 27, 198, 0, 137, 214, 136, 113, 135, 134, 0, 4, 10, 9, 13, 3, 1, 0, 132, 5, 50,
-				93, 0, 2, 4, 113, 110, 111, 112, 13, 69, 0, 39, 4, 2, 9, 10, 5, 172, 0, 113, 69, 13, 110, 111, 112, 190,
-				0, 5, 50, 93, 95, 0, 5, 52, 116, 0, 54, 4, 98, 27, 5, 0 };
-	}
-
-	public final static char nasr[] = Nasr.nasr;
-
-	@Override
-	public final int nasr(int index) {
-		return nasr[index];
-	}
-
-	public interface TerminalIndex {
-		public final static char terminalIndex[] = { 0, 113, 114, 2, 31, 10, 13, 9, 79, 115, 100, 48, 52, 60, 68, 74,
-				75, 86, 87, 102, 105, 107, 104, 54, 106, 47, 64, 66, 70, 73, 76, 83, 89, 98, 11, 12, 7, 8, 112, 14, 120,
-				55, 61, 67, 84, 88, 90, 94, 97, 99, 109, 110, 111, 53, 19, 93, 63, 91, 101, 95, 1, 77, 122, 103, 20, 46,
-				58, 78, 44, 121, 33, 30, 118, 119, 96, 108, 49, 50, 56, 57, 59, 69, 71, 72, 85, 92, 17, 18, 65, 21, 22,
-				6, 23, 24, 25, 26, 27, 32, 4, 15, 16, 28, 29, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 51, 80, 81, 82, 5,
-				117, 3, 123, 62, 116 };
-	}
-
-	public final static char terminalIndex[] = TerminalIndex.terminalIndex;
-
-	@Override
-	public final int terminalIndex(int index) {
-		return terminalIndex[index];
-	}
-
-	public interface NonterminalIndex {
-		public final static char nonterminalIndex[] = { 0, 130, 135, 136, 0, 0, 134, 0, 0, 237, 243, 133, 0, 143, 0,
-				132, 0, 0, 142, 148, 0, 0, 149, 158, 159, 160, 161, 188, 151, 0, 126, 162, 141, 163, 164, 165, 131, 166,
-				167, 128, 168, 0, 129, 138, 137, 170, 169, 171, 185, 0, 0, 195, 152, 172, 0, 173, 0, 0, 0, 0, 0, 174,
-				175, 176, 0, 177, 180, 0, 155, 194, 0, 0, 0, 212, 0, 0, 145, 209, 213, 0, 214, 127, 179, 0, 0, 0, 0, 0,
-				0, 183, 0, 0, 0, 0, 125, 186, 0, 0, 210, 216, 217, 218, 0, 220, 157, 0, 146, 0, 0, 215, 197, 198, 199,
-				201, 227, 228, 182, 204, 0, 0, 219, 0, 0, 0, 0, 248, 0, 251, 0, 252, 0, 147, 187, 189, 190, 191, 192,
-				196, 200, 203, 0, 206, 0, 207, 0, 222, 225, 0, 0, 0, 246, 0, 247, 0, 0, 139, 140, 144, 0, 0, 154, 156,
-				0, 178, 0, 193, 0, 0, 0, 202, 0, 205, 211, 0, 223, 224, 0, 0, 229, 232, 0, 234, 236, 0, 240, 241, 242,
-				245, 0, 0, 249, 124, 0, 150, 153, 0, 181, 0, 184, 0, 0, 208, 221, 226, 0, 0, 230, 231, 233, 235, 0, 238,
-				239, 244, 250, 253, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
-
-	@Override
-	public final int nonterminalIndex(int index) {
-		return nonterminalIndex[index];
-	}
-
-	public interface ScopePrefix {
-		public final static char scopePrefix[] = { 172, 324, 608, 627, 317, 332, 559, 575, 586, 597, 372, 280, 294, 311,
-				344, 55, 305, 392, 430, 180, 616, 502, 20, 33, 64, 84, 93, 98, 103, 143, 208, 339, 350, 20, 467, 157,
-				286, 300, 530, 40, 157, 382, 20, 635, 40, 230, 259, 1, 14, 27, 74, 89, 119, 27, 361, 365, 448, 495, 524,
-				551, 555, 645, 649, 653, 110, 7, 110, 410, 426, 439, 460, 479, 543, 129, 129, 245, 439, 566, 582, 593,
-				604, 220, 513, 69, 69, 169, 235, 238, 69, 254, 275, 238, 238, 69, 369, 492, 499, 169, 69, 668, 123, 355,
-				414, 454, 486, 472, 69, 355, 401, 190, 117, 452, 657, 664, 657, 664, 78, 420, 150, 117, 117, 264 };
-	}
-
-	public final static char scopePrefix[] = ScopePrefix.scopePrefix;
-
-	@Override
-	public final int scopePrefix(int index) {
-		return scopePrefix[index];
-	}
-
-	public interface ScopeSuffix {
-		public final static char scopeSuffix[] = { 18, 148, 5, 5, 148, 148, 5, 5, 5, 5, 379, 148, 108, 148, 25, 61, 291,
-				398, 436, 186, 80, 508, 25, 38, 38, 38, 72, 72, 108, 148, 213, 31, 31, 25, 5, 162, 291, 114, 535, 51,
-				165, 387, 622, 640, 45, 224, 224, 5, 18, 31, 5, 72, 108, 31, 108, 108, 148, 257, 5, 5, 5, 5, 5, 257,
-				666, 11, 114, 379, 379, 379, 464, 483, 535, 133, 138, 249, 443, 570, 570, 570, 570, 224, 517, 72, 72, 5,
-				5, 241, 243, 257, 5, 278, 278, 243, 108, 5, 257, 5, 528, 5, 126, 358, 417, 457, 489, 475, 547, 538, 404,
-				193, 108, 108, 659, 659, 661, 661, 80, 422, 152, 215, 200, 266 };
-	}
-
-	public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
-
-	@Override
-	public final int scopeSuffix(int index) {
-		return scopeSuffix[index];
-	}
-
-	public interface ScopeLhs {
-		public final static char scopeLhs[] = { 48, 112, 18, 18, 92, 112, 18, 18, 18, 18, 85, 97, 49, 92, 111, 90, 59,
-				85, 84, 48, 18, 20, 190, 3, 7, 8, 182, 182, 178, 110, 48, 111, 111, 138, 45, 147, 60, 49, 157, 151, 147,
-				85, 18, 18, 151, 102, 72, 153, 88, 190, 185, 182, 178, 138, 199, 57, 66, 161, 19, 18, 18, 18, 18, 18,
-				12, 129, 178, 85, 84, 84, 64, 41, 157, 114, 114, 68, 84, 18, 18, 18, 18, 102, 20, 186, 182, 201, 100,
-				109, 74, 80, 73, 172, 89, 138, 86, 162, 161, 192, 157, 17, 178, 138, 116, 83, 22, 45, 157, 157, 85, 48,
-				178, 79, 155, 44, 155, 44, 185, 116, 110, 48, 48, 72 };
-	}
-
-	public final static char scopeLhs[] = ScopeLhs.scopeLhs;
-
-	@Override
-	public final int scopeLhs(int index) {
-		return scopeLhs[index];
-	}
-
-	public interface ScopeLa {
-		public final static byte scopeLa[] = { 113, 73, 72, 72, 73, 73, 72, 72, 72, 72, 72, 73, 40, 73, 1, 64, 1, 72,
-				121, 69, 3, 72, 1, 64, 64, 64, 1, 1, 40, 73, 69, 1, 1, 1, 72, 73, 1, 1, 4, 64, 68, 40, 1, 1, 64, 72, 72,
-				72, 113, 1, 72, 1, 40, 1, 40, 40, 73, 118, 72, 72, 72, 72, 72, 118, 1, 72, 1, 72, 72, 72, 71, 71, 4, 1,
-				1, 5, 72, 64, 64, 64, 64, 72, 3, 1, 1, 72, 72, 3, 1, 118, 72, 1, 1, 1, 40, 72, 118, 72, 6, 72, 1, 55,
-				70, 71, 72, 64, 1, 55, 75, 74, 40, 40, 4, 4, 4, 4, 3, 1, 69, 1, 1, 3 };
-	}
-
-	public final static byte scopeLa[] = ScopeLa.scopeLa;
-
-	@Override
-	public final int scopeLa(int index) {
-		return scopeLa[index];
-	}
-
-	public interface ScopeStateSet {
-		public final static char scopeStateSet[] = { 85, 183, 284, 284, 107, 183, 284, 284, 284, 284, 95, 109, 85, 107,
-				183, 107, 87, 95, 95, 85, 284, 284, 118, 214, 260, 260, 54, 54, 82, 183, 85, 183, 183, 185, 140, 371,
-				87, 85, 165, 50, 371, 95, 284, 284, 50, 174, 66, 26, 95, 118, 30, 54, 82, 185, 22, 87, 33, 63, 284, 284,
-				284, 284, 284, 284, 264, 6, 82, 95, 95, 95, 148, 344, 165, 183, 183, 124, 95, 284, 284, 284, 284, 174,
-				284, 30, 54, 24, 174, 176, 66, 170, 66, 60, 71, 185, 95, 57, 63, 168, 165, 284, 82, 185, 1, 95, 285,
-				140, 165, 165, 95, 85, 82, 11, 121, 189, 121, 189, 30, 1, 183, 85, 85, 66 };
-	}
-
-	public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet;
-
-	@Override
-	public final int scopeStateSet(int index) {
-		return scopeStateSet[index];
-	}
-
-	public interface ScopeRhs {
-		public final static char scopeRhs[] = { 0, 338, 3, 59, 0, 126, 0, 337, 3, 113, 0, 126, 180, 0, 127, 188, 74, 0,
-				224, 0, 197, 166, 126, 10, 0, 136, 0, 166, 126, 10, 0, 135, 0, 271, 127, 54, 124, 0, 20, 0, 309, 127,
-				54, 55, 0, 20, 53, 0, 33, 132, 0, 20, 53, 0, 0, 309, 127, 54, 55, 215, 0, 20, 186, 0, 271, 127, 54, 132,
-				0, 189, 126, 0, 141, 0, 227, 3, 308, 0, 308, 0, 2, 0, 126, 0, 271, 127, 54, 131, 0, 189, 126, 237, 0,
-				189, 126, 22, 237, 0, 189, 126, 332, 22, 0, 128, 197, 166, 126, 0, 128, 0, 197, 166, 126, 0, 134, 128,
-				0, 172, 0, 328, 127, 172, 0, 127, 172, 0, 230, 128, 0, 166, 327, 235, 0, 136, 0, 0, 0, 0, 135, 0, 0, 0,
-				0, 326, 127, 164, 236, 0, 127, 0, 236, 0, 129, 0, 0, 127, 0, 325, 127, 164, 270, 0, 127, 0, 0, 44, 127,
-				0, 0, 150, 3, 0, 127, 296, 295, 127, 74, 294, 172, 0, 295, 127, 74, 294, 172, 0, 223, 0, 224, 0, 294,
-				172, 0, 96, 0, 0, 223, 0, 224, 0, 211, 96, 0, 0, 223, 0, 224, 0, 295, 127, 294, 172, 0, 223, 0, 211, 0,
-				0, 223, 0, 240, 127, 3, 0, 126, 0, 0, 0, 0, 0, 240, 127, 3, 222, 0, 231, 3, 0, 220, 127, 0, 216, 0, 146,
-				0, 176, 166, 126, 0, 10, 0, 0, 0, 0, 226, 60, 0, 125, 0, 240, 127, 3, 195, 0, 195, 0, 2, 0, 0, 126, 0,
-				0, 0, 0, 0, 211, 3, 0, 209, 0, 252, 127, 164, 38, 27, 0, 189, 126, 61, 63, 0, 204, 128, 0, 128, 189,
-				126, 292, 63, 0, 189, 126, 292, 63, 0, 189, 126, 70, 123, 61, 0, 252, 127, 164, 262, 61, 0, 252, 127,
-				164, 262, 239, 61, 0, 289, 290, 127, 164, 123, 322, 56, 0, 289, 290, 127, 164, 322, 56, 0, 189, 126,
-				288, 56, 0, 197, 189, 126, 288, 235, 0, 189, 126, 288, 235, 0, 166, 126, 0, 93, 136, 0, 286, 127, 149,
-				0, 286, 127, 172, 0, 158, 84, 0, 317, 161, 319, 320, 3, 81, 0, 126, 179, 0, 319, 320, 3, 81, 0, 128, 0,
-				126, 179, 0, 158, 3, 75, 204, 80, 0, 126, 128, 0, 204, 80, 0, 108, 2, 131, 126, 128, 0, 238, 3, 75, 0,
-				211, 174, 0, 33, 169, 0, 174, 0, 183, 33, 169, 0, 238, 3, 85, 0, 204, 152, 238, 3, 83, 0, 62, 179, 0,
-				238, 3, 83, 0, 126, 179, 62, 179, 0, 318, 127, 164, 0, 158, 0, 226, 77, 0, 30, 179, 0, 158, 102, 185, 0,
-				30, 177, 0, 148, 64, 167, 3, 0, 167, 3, 0, 20, 161, 126, 0, 158, 102, 162, 0, 30, 169, 0, 198, 3, 0,
-				126, 149, 0, 227, 3, 0, 226, 60, 283, 0, 158, 60, 0, 198, 3, 314, 67, 126, 0, 126, 0, 0, 0, 0, 314, 67,
-				126, 0, 2, 145, 126, 0, 0, 0, 0, 198, 3, 45, 0, 147, 0, 125, 55, 166, 126, 0, 31, 147, 0, 93, 136, 31,
-				147, 0, 228, 189, 126, 0, 146, 31, 147, 0, 198, 3, 49, 0, 158, 3, 49, 0, 158, 3, 64, 198, 54, 41, 0,
-				198, 54, 41, 0, 20, 2, 131, 126, 0, 158, 3, 64, 198, 54, 44, 0, 198, 54, 44, 0, 158, 3, 64, 198, 54, 46,
-				0, 198, 54, 46, 0, 158, 3, 64, 198, 54, 42, 0, 198, 54, 42, 0, 227, 3, 125, 197, 166, 126, 10, 0, 125,
-				197, 166, 126, 10, 0, 136, 2, 0, 126, 0, 227, 3, 124, 276, 166, 126, 10, 0, 276, 166, 126, 10, 0, 135,
-				2, 0, 126, 0, 227, 3, 135, 0, 227, 3, 140, 0, 158, 60, 140, 0, 278, 0, 31, 0, 31, 139, 0, 165, 0, 134,
-				0, 158, 3, 0 };
-	}
-
-	public final static char scopeRhs[] = ScopeRhs.scopeRhs;
-
-	@Override
-	public final int scopeRhs(int index) {
-		return scopeRhs[index];
-	}
-
-	public interface ScopeState {
-		public final static char scopeState[] = { 0, 4466, 6304, 6248, 6150, 0, 3260, 2778, 2973, 2704, 0, 5301, 5239,
-				5172, 5040, 4978, 4916, 4854, 4792, 4730, 4509, 4447, 4794, 0, 2313, 0, 1983, 1936, 1654, 0, 2511, 739,
-				0, 5301, 5239, 2377, 1613, 5172, 5040, 4978, 4916, 4854, 4792, 980, 4730, 4509, 4447, 2572, 2309, 0,
-				4674, 4930, 3461, 0, 718, 2767, 0, 1038, 914, 0, 750, 6008, 0, 1312, 1202, 0, 5985, 750, 5415, 4682,
-				6008, 4598, 5129, 2420, 2222, 3838, 796, 653, 4220, 4206, 4166, 0, 5192, 4369, 0, 5192, 4369, 5833,
-				6201, 6140, 5820, 6125, 6051, 5807, 6027, 5301, 5239, 5172, 5040, 4978, 4916, 4854, 4792, 4730, 4509,
-				4447, 0, 5192, 4369, 5833, 6201, 6140, 5820, 6125, 6051, 5807, 6027, 0, 6021, 5363, 0, 2284, 1320, 0,
-				3838, 5985, 4737, 5415, 4682, 6219, 4220, 2957, 3905, 810, 6187, 4312, 2301, 2959, 648, 0, 3333, 3434,
-				3617, 3526, 3851, 3811, 3699, 672, 2917, 994, 2851, 2785, 2719, 2653, 2587, 2521, 2455, 2389, 2323,
-				2257, 2191, 926, 834, 766, 0, 2552, 1060, 0, 1111, 0, 2291, 1175, 1048, 649, 4682, 4312, 4598, 4206,
-				4166, 3889, 3883, 3118, 0, 6021, 5363, 5932, 600, 4250, 0, 5829, 5808, 5428, 5312, 5180, 5166, 5007,
-				4945, 4883, 4862, 6267, 6161, 4800, 4731, 6094, 5842, 5330, 4270, 5173, 4476, 4455, 4448, 4350, 3328, 0,
-				1857, 1810, 5829, 5808, 5428, 1763, 1669, 5312, 1042, 5180, 5166, 5007, 4945, 4883, 2485, 2186, 2092,
-				2045, 4862, 1998, 6267, 6161, 1951, 1904, 1716, 1619, 4800, 4731, 1523, 1427, 6094, 3125, 5842, 2139,
-				5330, 4270, 5173, 1348, 4476, 4455, 4448, 5932, 963, 4250, 4350, 3328, 2815, 2749, 2683, 1410, 901,
-				4598, 5129, 2420, 2222, 3838, 5985, 796, 750, 5415, 4682, 653, 4220, 4206, 6008, 4166, 2617, 1024, 2552,
-				1060, 5785, 2917, 4179, 994, 3333, 2851, 2785, 2719, 2653, 2587, 2521, 2455, 2389, 2323, 2257, 2191,
-				3434, 3617, 3526, 3851, 3811, 3699, 4139, 4112, 4085, 5762, 672, 5739, 926, 834, 766, 1079, 3396, 3582,
-				3490, 3779, 3747, 3665, 4421, 4322, 4058, 4031, 4004, 3931, 5390, 5142, 4702, 4638, 4611, 5716, 5693,
-				5670, 5647, 5624, 5601, 5578, 5554, 5524, 5501, 5435, 2983, 3270, 3228, 3171, 3129, 3072, 3030, 1481,
-				1431, 1368, 2144, 1321, 2097, 2050, 2003, 1956, 1909, 1862, 1815, 1768, 1721, 1674, 1627, 600, 1577,
-				1528, 1273, 1170, 1123, 1219, 0 };
-	}
-
-	public final static char scopeState[] = ScopeState.scopeState;
-
-	@Override
-	public final int scopeState(int index) {
-		return scopeState[index];
-	}
-
-	public interface InSymb {
-		public final static char inSymb[] = { 0, 0, 313, 127, 285, 49, 41, 44, 46, 42, 10, 135, 124, 131, 8, 132, 4, 3,
-				126, 45, 39, 6, 35, 34, 5, 7, 37, 36, 140, 145, 147, 146, 153, 148, 156, 155, 159, 157, 160, 59, 162,
-				68, 3, 54, 54, 54, 54, 126, 3, 54, 54, 174, 127, 60, 3, 66, 67, 54, 6, 198, 158, 174, 127, 66, 67, 166,
-				165, 124, 3, 123, 125, 117, 119, 3, 60, 91, 98, 35, 34, 100, 99, 5, 90, 89, 64, 54, 86, 87, 7, 93, 92,
-				95, 94, 96, 112, 111, 110, 109, 108, 107, 106, 105, 104, 103, 70, 102, 101, 198, 158, 198, 198, 198,
-				198, 166, 227, 127, 127, 127, 255, 256, 236, 257, 235, 258, 56, 287, 259, 10, 126, 60, 60, 127, 124,
-				152, 127, 60, 3, 223, 222, 135, 125, 124, 10, 126, 60, 314, 3, 197, 4, 198, 55, 126, 55, 227, 158, 146,
-				146, 145, 145, 145, 148, 148, 148, 148, 147, 147, 155, 153, 153, 157, 156, 159, 158, 160, 64, 64, 64,
-				64, 197, 276, 271, 127, 249, 3, 167, 148, 175, 169, 183, 177, 184, 185, 274, 271, 220, 126, 176, 164,
-				327, 288, 322, 288, 126, 189, 166, 271, 220, 226, 162, 231, 127, 3, 126, 166, 216, 3, 315, 174, 150,
-				278, 197, 126, 189, 166, 71, 3, 3, 3, 3, 125, 124, 255, 256, 257, 258, 336, 259, 10, 167, 90, 89, 54, 7,
-				93, 92, 95, 94, 96, 112, 111, 110, 109, 108, 107, 106, 105, 104, 103, 70, 102, 101, 68, 166, 7, 5, 127,
-				166, 243, 125, 124, 126, 123, 164, 126, 166, 55, 240, 241, 149, 242, 127, 166, 55, 198, 127, 127, 4,
-				228, 6, 55, 158, 158, 158, 158, 3, 3, 126, 64, 148, 148, 148, 169, 167, 167, 177, 175, 183, 158, 184,
-				176, 176, 326, 126, 170, 237, 61, 55, 215, 63, 172, 329, 125, 124, 244, 244, 189, 164, 127, 189, 197,
-				152, 70, 231, 211, 200, 195, 126, 3, 127, 68, 240, 197, 152, 280, 283, 60, 190, 4, 123, 125, 227, 227,
-				166, 148, 71, 5, 127, 166, 262, 239, 54, 55, 292, 294, 127, 3, 195, 244, 244, 127, 127, 197, 127, 290,
-				123, 291, 127, 70, 70, 3, 189, 166, 211, 127, 220, 152, 125, 127, 3, 60, 158, 4, 197, 176, 173, 197,
-				164, 262, 64, 54, 126, 74, 127, 220, 328, 71, 303, 211, 124, 126, 127, 127, 127, 71, 290, 289, 70, 68,
-				229, 127, 127, 280, 227, 226, 127, 128, 127, 164, 27, 55, 172, 65, 61, 63, 127, 189, 127, 295, 71, 68,
-				71, 70, 166, 220, 331, 237, 22, 126, 289, 127, 240, 229, 252, 254, 127, 38, 127, 3, 123, 61, 309, 55,
-				10, 53, 128, 295, 164, 307, 126, 308, 68, 126, 22, 332, 189, 59, 152, 127, 252, 127, 164, 286, 265, 293,
-				38, 70, 126, 68, 64, 54, 243, 243, 296, 127, 68, 189, 3, 189, 126, 126, 3, 127, 127, 3, 70, 68, 152,
-				126, 189, 127, 70, 70, 127, 318, 79, 77, 1, 158, 9, 85, 83, 81, 80, 75, 82, 84, 78, 76, 61, 74, 227,
-				189, 189, 338, 229, 252, 150, 164, 270, 189, 239, 309, 297, 113, 9, 71, 226, 71, 3, 3, 3, 204, 3, 123,
-				158, 123, 188, 68, 127, 127, 164, 239, 64, 3, 71, 238, 174, 238, 320, 149, 75, 238, 127, 127, 53, 97,
-				337, 174, 152, 211, 152, 319, 127, 3, 152, 297, 325, 243, 152, 152, 127, 70, 204, 161, 286, 158, 203,
-				68, 70, 121, 317, 152, 203, 9, 152 };
-	}
-
-	public final static char inSymb[] = InSymb.inSymb;
-
-	@Override
-	public final int inSymb(int index) {
-		return inSymb[index];
-	}
-
-	public interface Name {
-		public final static String name[] = { "", "[", "(", ".", ".*", "->", "->*", "++", "--", "&", "*", "+", "-", "~",
-				"!", "/", "%", ">>", "<<", "<", ">", "<=", ">=", "==", "!=", "^", "|", "&&", "||", "?", ":", "::",
-				"...", "=", "*=", "/=", "%=", "+=", "-=", ">>=", "<<=", "&=", "^=", "|=", ",", "$empty", "asm", "auto",
-				"bool", "break", "case", "catch", "char", "class", "const", "const_cast", "continue", "default",
-				"delete", "do", "double", "dynamic_cast", "else", "enum", "explicit", "export", "extern", "false",
-				"float", "for", "friend", "goto", "if", "inline", "int", "long", "mutable", "namespace", "new",
-				"operator", "private", "protected", "public", "register", "reinterpret_cast", "return", "short",
-				"signed", "sizeof", "static", "static_cast", "struct", "switch", "template", "this", "throw", "try",
-				"true", "typedef", "typeid", "typename", "union", "unsigned", "using", "virtual", "void", "volatile",
-				"wchar_t", "while", "integer", "floating", "charconst", "stringlit", "identifier", "Completion",
-				"EndOfCompletion", "Invalid", "RightBracket", "RightParen", "RightBrace", "SemiColon", "LeftBrace",
-				"ERROR_TOKEN", "EOF_TOKEN", "expression_parser_start", "]", ")", "}", ";", "{", "identifier_token",
-				"expression", "id_expression", "qualified_or_unqualified_name", "unqualified_id_name",
-				"identifier_name", "template_id_name", "nested_name_specifier", "class_or_namespace_name",
-				"nested_name_specifier_with_tem" + "plate", "class_or_namespace_name_with_t" + "emplate", "class_name",
-				"postfix_expression", "simple_type_specifier", "pseudo_destructor_name", "type_id", "type_name",
-				"destructor_type_name", "unary_expression", "cast_expression", "new_type_id", "expression_list",
-				"type_specifier_seq", "new_declarator", "new_pointer_operators", "ptr_operator",
-				"new_array_expressions", "constant_expression", "pm_expression", "multiplicative_expression",
-				"additive_expression", "shift_expression", "relational_expression", "equality_expression",
-				"and_expression", "exclusive_or_expression", "inclusive_or_expression", "logical_and_expression",
-				"logical_or_expression", "assignment_expression", "relational_expression_inTempla" + "te",
-				"equality_expression_inTemplate", "and_expression_inTemplate",
-				"exclusive_or_expression_inTemp" + "late", "inclusive_or_expression_inTemp" + "late",
-				"logical_and_expression_inTempl" + "ate", "logical_or_expression_inTempla" + "te",
-				"assignment_expression_inTempla" + "te", "expression_list_actual", "statement", "compound_statement",
-				"statement_seq", "condition", "declarator", "for_init_statement", "function_definition", "declaration",
-				"declaration_seq", "declaration_specifiers", "simple_declaration_specifiers",
-				"class_declaration_specifiers", "elaborated_declaration_specifi" + "ers", "enum_declaration_specifiers",
-				"type_name_declaration_specifie" + "rs", "no_type_declaration_specifier", "cv_qualifier",
-				"no_type_declaration_specifiers", "class_specifier", "elaborated_type_specifier", "enum_specifier",
-				"type_name_specifier", "class_keyword", "enumerator_list", "enumerator_definition", "namespace_name",
-				"init_declarator_list", "init_declarator_complete", "complete_declarator", "initializer",
-				"direct_declarator", "ptr_operator_seq", "function_declarator", "basic_direct_declarator",
-				"array_direct_declarator", "array_modifier", "abstract_declarator", "direct_abstract_declarator",
-				"basic_direct_abstract_declarat" + "or", "array_direct_abstract_declarat" + "or",
-				"parameter_declaration_list", "parameter_declaration", "parameter_init_declarator",
-				"parameter_initializer", "function_body", "handler_seq", "initializer_clause", "initializer_seq",
-				"class_head", "access_specifier_keyword", "member_declaration", "member_declarator_list",
-				"member_declaration_list", "member_declarator_complete", "constant_initializer", "bit_field_declarator",
-				"base_specifier_list", "base_specifier", "conversion_function_id", "conversion_type_id",
-				"conversion_declarator", "mem_initializer_list", "mem_initializer", "mem_initializer_name",
-				"operator_id_name", "overloadable_operator", "template_parameter_list", "template_parameter",
-				"template_argument_list", "template_argument", "type_name_specifier_inTemplate",
-				"type_name_declaration_specifie" + "rs_inTemplate", "type_specifier_seq_inTemplate", "handler",
-				"exception_declaration", "type_id_list" };
-	}
-
-	public final static String name[] = Name.name;
-
-	@Override
-	public final String name(int index) {
-		return name[index];
-	}
-
-	public final static int ERROR_SYMBOL = 62, SCOPE_UBOUND = 121, SCOPE_SIZE = 122, MAX_NAME_LENGTH = 43;
-
-	@Override
-	public final int getErrorSymbol() {
-		return ERROR_SYMBOL;
-	}
-
-	@Override
-	public final int getScopeUbound() {
-		return SCOPE_UBOUND;
-	}
-
-	@Override
-	public final int getScopeSize() {
-		return SCOPE_SIZE;
-	}
-
-	@Override
-	public final int getMaxNameLength() {
-		return MAX_NAME_LENGTH;
-	}
-
-	public final static int NUM_STATES = 604, NT_OFFSET = 122, LA_STATE_OFFSET = 7461, MAX_LA = 2147483647,
-			NUM_RULES = 599, NUM_NONTERMINALS = 225, NUM_SYMBOLS = 347, SEGMENT_SIZE = 8192, START_STATE = 3365,
-			IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 120, EOLT_SYMBOL = 120, ACCEPT_ACTION = 6422, ERROR_ACTION = 6862;
-
-	public final static boolean BACKTRACK = true;
-
-	@Override
-	public final int getNumStates() {
-		return NUM_STATES;
-	}
-
-	@Override
-	public final int getNtOffset() {
-		return NT_OFFSET;
-	}
-
-	@Override
-	public final int getLaStateOffset() {
-		return LA_STATE_OFFSET;
-	}
-
-	@Override
-	public final int getMaxLa() {
-		return MAX_LA;
-	}
-
-	@Override
-	public final int getNumRules() {
-		return NUM_RULES;
-	}
-
-	@Override
-	public final int getNumNonterminals() {
-		return NUM_NONTERMINALS;
-	}
-
-	@Override
-	public final int getNumSymbols() {
-		return NUM_SYMBOLS;
-	}
-
-	@Override
-	public final int getSegmentSize() {
-		return SEGMENT_SIZE;
-	}
-
-	@Override
-	public final int getStartState() {
-		return START_STATE;
-	}
-
-	@Override
-	public final int getStartSymbol() {
-		return lhs[0];
-	}
-
-	public final int getIdentifierSymbol() {
-		return IDENTIFIER_SYMBOL;
-	}
-
-	@Override
-	public final int getEoftSymbol() {
-		return EOFT_SYMBOL;
-	}
-
-	@Override
-	public final int getEoltSymbol() {
-		return EOLT_SYMBOL;
-	}
-
-	@Override
-	public final int getAcceptAction() {
-		return ACCEPT_ACTION;
-	}
-
-	@Override
-	public final int getErrorAction() {
-		return ERROR_ACTION;
-	}
-
-	@Override
-	public final boolean isValidForParser() {
-		return isValidForParser;
-	}
-
-	@Override
-	public final boolean getBacktrack() {
-		return BACKTRACK;
-	}
-
-	@Override
-	public final int originalState(int state) {
-		return -baseCheck[state];
-	}
-
-	@Override
-	public final int asi(int state) {
-		return asb[originalState(state)];
-	}
-
-	@Override
-	public final int nasi(int state) {
-		return nasb[originalState(state)];
-	}
-
-	@Override
-	public final int inSymbol(int state) {
-		return inSymb[originalState(state)];
-	}
-
-	@Override
-	public final int ntAction(int state, int sym) {
-		return baseAction[state + sym];
-	}
-
-	@Override
-	public final int tAction(int state, int sym) {
-		int i = baseAction[state], k = i + sym;
-		return termAction[termCheck[k] == sym ? k : i];
-	}
-
-	@Override
-	public final int lookAhead(int la_state, int sym) {
-		int k = la_state + sym;
-		return termAction[termCheck[k] == sym ? k : la_state];
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParsersym.java
deleted file mode 100644
index 2346aa3..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParsersym.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2010 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.lrparser.cpp;
-
-public interface CPPExpressionParsersym {
-	public final static int TK_asm = 65, TK_auto = 25, TK_bool = 11, TK_break = 76, TK_case = 77, TK_catch = 113,
-			TK_char = 12, TK_class = 53, TK_const = 23, TK_const_cast = 41, TK_continue = 78, TK_default = 79,
-			TK_delete = 66, TK_do = 80, TK_double = 13, TK_dynamic_cast = 42, TK_else = 121, TK_enum = 56,
-			TK_explicit = 26, TK_export = 88, TK_extern = 27, TK_false = 43, TK_float = 14, TK_for = 81, TK_friend = 28,
-			TK_goto = 82, TK_if = 83, TK_inline = 29, TK_int = 15, TK_long = 16, TK_mutable = 30, TK_namespace = 61,
-			TK_new = 67, TK_operator = 8, TK_private = 114, TK_protected = 115, TK_public = 116, TK_register = 31,
-			TK_reinterpret_cast = 44, TK_return = 84, TK_short = 17, TK_signed = 18, TK_sizeof = 45, TK_static = 32,
-			TK_static_cast = 46, TK_struct = 57, TK_switch = 85, TK_template = 55, TK_this = 47, TK_throw = 59,
-			TK_try = 74, TK_true = 48, TK_typedef = 33, TK_typeid = 49, TK_typename = 10, TK_union = 58,
-			TK_unsigned = 19, TK_using = 63, TK_virtual = 22, TK_void = 20, TK_volatile = 24, TK_wchar_t = 21,
-			TK_while = 75, TK_integer = 50, TK_floating = 51, TK_charconst = 52, TK_stringlit = 38, TK_identifier = 1,
-			TK_Completion = 2, TK_EndOfCompletion = 9, TK_Invalid = 122, TK_LeftBracket = 60, TK_LeftParen = 3,
-			TK_Dot = 119, TK_DotStar = 98, TK_Arrow = 117, TK_ArrowStar = 91, TK_PlusPlus = 36, TK_MinusMinus = 37,
-			TK_And = 7, TK_Star = 5, TK_Plus = 34, TK_Minus = 35, TK_Tilde = 6, TK_Bang = 39, TK_Slash = 99,
-			TK_Percent = 100, TK_RightShift = 86, TK_LeftShift = 87, TK_LT = 54, TK_GT = 64, TK_LE = 89, TK_GE = 90,
-			TK_EQ = 92, TK_NE = 93, TK_Caret = 94, TK_Or = 95, TK_AndAnd = 96, TK_OrOr = 101, TK_Question = 102,
-			TK_Colon = 71, TK_ColonColon = 4, TK_DotDotDot = 97, TK_Assign = 70, TK_StarAssign = 103,
-			TK_SlashAssign = 104, TK_PercentAssign = 105, TK_PlusAssign = 106, TK_MinusAssign = 107,
-			TK_RightShiftAssign = 108, TK_LeftShiftAssign = 109, TK_AndAssign = 110, TK_CaretAssign = 111,
-			TK_OrAssign = 112, TK_Comma = 68, TK_RightBracket = 118, TK_RightParen = 72, TK_RightBrace = 73,
-			TK_SemiColon = 40, TK_LeftBrace = 69, TK_ERROR_TOKEN = 62, TK_EOF_TOKEN = 120;
-
-	public final static String orderedTerminalSymbols[] = { "", "identifier", "Completion", "LeftParen", "ColonColon",
-			"Star", "Tilde", "And", "operator", "EndOfCompletion", "typename", "bool", "char", "double", "float", "int",
-			"long", "short", "signed", "unsigned", "void", "wchar_t", "virtual", "const", "volatile", "auto",
-			"explicit", "extern", "friend", "inline", "mutable", "register", "static", "typedef", "Plus", "Minus",
-			"PlusPlus", "MinusMinus", "stringlit", "Bang", "SemiColon", "const_cast", "dynamic_cast", "false",
-			"reinterpret_cast", "sizeof", "static_cast", "this", "true", "typeid", "integer", "floating", "charconst",
-			"class", "LT", "template", "enum", "struct", "union", "throw", "LeftBracket", "namespace", "ERROR_TOKEN",
-			"using", "GT", "asm", "delete", "new", "Comma", "LeftBrace", "Assign", "Colon", "RightParen", "RightBrace",
-			"try", "while", "break", "case", "continue", "default", "do", "for", "goto", "if", "return", "switch",
-			"RightShift", "LeftShift", "export", "LE", "GE", "ArrowStar", "EQ", "NE", "Caret", "Or", "AndAnd",
-			"DotDotDot", "DotStar", "Slash", "Percent", "OrOr", "Question", "StarAssign", "SlashAssign",
-			"PercentAssign", "PlusAssign", "MinusAssign", "RightShiftAssign", "LeftShiftAssign", "AndAssign",
-			"CaretAssign", "OrAssign", "catch", "private", "protected", "public", "Arrow", "RightBracket", "Dot",
-			"EOF_TOKEN", "else", "Invalid" };
-
-	public final static boolean isValidForParser = true;
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParser.java
deleted file mode 100644
index 2e64b13..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParser.java
+++ /dev/null
@@ -1,2859 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2015 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.lrparser.cpp;
-
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.cdt.core.dom.ast.IASTCompletionNode;
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTBinaryExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCastExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTLiteralExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTypeIdExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTUnaryExpression;
-import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter;
-import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
-import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
-import org.eclipse.cdt.core.dom.lrparser.ITokenCollector;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
-import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
-import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
-import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPBuildASTParserAction;
-import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPSecondaryParserFactory;
-import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser;
-import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
-import org.eclipse.cdt.core.index.IIndex;
-import org.eclipse.cdt.core.parser.IScanner;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPNodeFactory;
-
-import lpg.lpgjavaruntime.BadParseException;
-import lpg.lpgjavaruntime.BadParseSymFileException;
-import lpg.lpgjavaruntime.DiagnoseParser;
-import lpg.lpgjavaruntime.ErrorToken;
-import lpg.lpgjavaruntime.IToken;
-import lpg.lpgjavaruntime.LexStream;
-import lpg.lpgjavaruntime.Monitor;
-import lpg.lpgjavaruntime.NotBacktrackParseTableException;
-import lpg.lpgjavaruntime.NullExportedSymbolsException;
-import lpg.lpgjavaruntime.NullTerminalSymbolsException;
-import lpg.lpgjavaruntime.ParseErrorCodes;
-import lpg.lpgjavaruntime.ParseTable;
-import lpg.lpgjavaruntime.PrsStream;
-import lpg.lpgjavaruntime.RuleAction;
-import lpg.lpgjavaruntime.Token;
-import lpg.lpgjavaruntime.UndefinedEofSymbolException;
-import lpg.lpgjavaruntime.UnimplementedTerminalsException;
-
-public class CPPNoCastExpressionParser extends PrsStream
-		implements RuleAction, ITokenStream, ITokenCollector, ISecondaryParser<IASTExpression> {
-	private static ParseTable prs = new CPPNoCastExpressionParserprs();
-	private FixedBacktrackingParser btParser;
-
-	public FixedBacktrackingParser getParser() {
-		return btParser;
-	}
-
-	private void setResult(Object object) {
-		btParser.setSym1(object);
-	}
-
-	public Object getRhsSym(int i) {
-		return btParser.getSym(i);
-	}
-
-	public int getRhsTokenIndex(int i) {
-		return btParser.getToken(i);
-	}
-
-	public IToken getRhsIToken(int i) {
-		return super.getIToken(getRhsTokenIndex(i));
-	}
-
-	public int getRhsFirstTokenIndex(int i) {
-		return btParser.getFirstToken(i);
-	}
-
-	public IToken getRhsFirstIToken(int i) {
-		return super.getIToken(getRhsFirstTokenIndex(i));
-	}
-
-	public int getRhsLastTokenIndex(int i) {
-		return btParser.getLastToken(i);
-	}
-
-	public IToken getRhsLastIToken(int i) {
-		return super.getIToken(getRhsLastTokenIndex(i));
-	}
-
-	public int getLeftSpan() {
-		return btParser.getFirstToken();
-	}
-
-	@Override
-	public IToken getLeftIToken() {
-		return super.getIToken(getLeftSpan());
-	}
-
-	public int getRightSpan() {
-		return btParser.getLastToken();
-	}
-
-	@Override
-	public IToken getRightIToken() {
-		return super.getIToken(getRightSpan());
-	}
-
-	public int getRhsErrorTokenIndex(int i) {
-		int index = btParser.getToken(i);
-		IToken err = super.getIToken(index);
-		return (err instanceof ErrorToken ? index : 0);
-	}
-
-	public ErrorToken getRhsErrorIToken(int i) {
-		int index = btParser.getToken(i);
-		IToken err = super.getIToken(index);
-		return (ErrorToken) (err instanceof ErrorToken ? err : null);
-	}
-
-	public CPPNoCastExpressionParser(LexStream lexStream) {
-		super(lexStream);
-
-		try {
-			super.remapTerminalSymbols(orderedTerminalSymbols(), CPPNoCastExpressionParserprs.EOFT_SYMBOL);
-		} catch (NullExportedSymbolsException e) {
-		} catch (NullTerminalSymbolsException e) {
-		} catch (UnimplementedTerminalsException e) {
-			java.util.ArrayList unimplemented_symbols = e.getSymbols();
-			System.out.println("The Lexer will not scan the following token(s):");
-			for (int i = 0; i < unimplemented_symbols.size(); i++) {
-				Integer id = (Integer) unimplemented_symbols.get(i);
-				System.out.println("    " + CPPNoCastExpressionParsersym.orderedTerminalSymbols[id.intValue()]);
-			}
-			System.out.println();
-		} catch (UndefinedEofSymbolException e) {
-			throw new Error(new UndefinedEofSymbolException("The Lexer does not implement the Eof symbol "
-					+ CPPNoCastExpressionParsersym.orderedTerminalSymbols[CPPNoCastExpressionParserprs.EOFT_SYMBOL]));
-		}
-	}
-
-	@Override
-	public String[] orderedTerminalSymbols() {
-		return CPPNoCastExpressionParsersym.orderedTerminalSymbols;
-	}
-
-	public String getTokenKindName(int kind) {
-		return CPPNoCastExpressionParsersym.orderedTerminalSymbols[kind];
-	}
-
-	public int getEOFTokenKind() {
-		return CPPNoCastExpressionParserprs.EOFT_SYMBOL;
-	}
-
-	public PrsStream getParseStream() {
-		return this;
-	}
-
-	//
-	// Report error message for given error_token.
-	//
-	public final void reportErrorTokenMessage(int error_token, String msg) {
-		int firsttok = super.getFirstErrorToken(error_token), lasttok = super.getLastErrorToken(error_token);
-		String location = super.getFileName() + ':'
-				+ (firsttok > lasttok ? (super.getEndLine(lasttok) + ":" + super.getEndColumn(lasttok))
-						: (super.getLine(error_token) + ":" + super.getColumn(error_token) + ":"
-								+ super.getEndLine(error_token) + ":" + super.getEndColumn(error_token)))
-				+ ": ";
-		super.reportError((firsttok > lasttok ? ParseErrorCodes.INSERTION_CODE : ParseErrorCodes.SUBSTITUTION_CODE),
-				location, msg);
-	}
-
-	public void parser() {
-		parser(null, 0);
-	}
-
-	public void parser(Monitor monitor) {
-		parser(monitor, 0);
-	}
-
-	public void parser(int error_repair_count) {
-		parser(null, error_repair_count);
-	}
-
-	public void parser(Monitor monitor, int error_repair_count) {
-		try {
-			btParser = new FixedBacktrackingParser(monitor, this, prs, this);
-		} catch (NotBacktrackParseTableException e) {
-			throw new Error(new NotBacktrackParseTableException(
-					"Regenerate CPPNoCastExpressionParserprs.java with -BACKTRACK option"));
-		} catch (BadParseSymFileException e) {
-			throw new Error(
-					new BadParseSymFileException("Bad Parser Symbol File -- CPPNoCastExpressionParsersym.java"));
-		}
-
-		try {
-			btParser.parse(error_repair_count);
-		} catch (BadParseException e) {
-			reset(e.error_token); // point to error token
-			DiagnoseParser diagnoseParser = new DiagnoseParser(this, prs);
-			diagnoseParser.diagnose(e.error_token);
-		}
-	}
-
-	private CPPBuildASTParserAction action;
-	private IASTCompletionNode compNode;
-
-	public CPPNoCastExpressionParser(IScanner scanner, IDOMTokenMap tokenMap,
-			IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Map<String, String> properties) {
-		initActions(properties);
-		action.initializeTranslationUnit(scanner, builtinBindingsProvider, index);
-		CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap);
-	}
-
-	private void initActions(Map<String, String> properties) {
-		ScopedStack<Object> astStack = new ScopedStack<>();
-
-		action = new CPPBuildASTParserAction(this, astStack, CPPNodeFactory.getDefault(),
-				CPPSecondaryParserFactory.getDefault());
-		action.setParserProperties(properties);
-
-	}
-
-	@Override
-	public void addToken(IToken token) {
-		token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called?
-		super.addToken(token);
-	}
-
-	@Override
-	public IASTExpression parse() {
-		// this has to be done, or... kaboom!
-		setStreamLength(getSize());
-
-		final int errorRepairCount = -1; // -1 means full error handling
-		parser(null, errorRepairCount); // do the actual parse
-		super.resetTokenStream(); // allow tokens to be garbage collected
-
-		compNode = action.getASTCompletionNode(); // the completion node may be null
-		return (IASTExpression) action.getParseResult();
-	}
-
-	@Override
-	public IASTCompletionNode getCompletionNode() {
-		return compNode;
-	}
-
-	// uncomment this method to use with backtracking parser
-	@Override
-	public List<IToken> getRuleTokens() {
-		return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
-	}
-
-	@Override
-	public String[] getOrderedTerminalSymbols() {
-		return CPPNoCastExpressionParsersym.orderedTerminalSymbols;
-	}
-
-	@Override
-	@SuppressWarnings("nls")
-	public String getName() {
-		return "CPPNoCastExpressionParser";
-	}
-
-	private ITokenMap tokenMap = null;
-
-	@Override
-	public void setTokens(List<IToken> tokens) {
-		resetTokenStream();
-		addToken(new Token(null, 0, 0, 0)); // dummy token
-		for (IToken token : tokens) {
-			token.setKind(tokenMap.mapKind(token.getKind()));
-			addToken(token);
-		}
-		addToken(new Token(null, 0, 0, CPPNoCastExpressionParsersym.TK_EOF_TOKEN));
-	}
-
-	public CPPNoCastExpressionParser(ITokenStream stream, Map<String, String> properties) { // constructor for creating secondary parser
-		initActions(properties);
-		tokenMap = new TokenMap(CPPNoCastExpressionParsersym.orderedTerminalSymbols,
-				stream.getOrderedTerminalSymbols());
-	}
-
-	public CPPNoCastExpressionParser(ITokenStream stream, IScanner scanner,
-			IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Map<String, String> properties) { // constructor for creating secondary parser
-		initActions(properties);
-		action.initializeTranslationUnit(scanner, builtinBindingsProvider, index);
-		tokenMap = new TokenMap(CPPNoCastExpressionParsersym.orderedTerminalSymbols,
-				stream.getOrderedTerminalSymbols());
-	}
-
-	@Override
-	public void ruleAction(int ruleNumber) {
-		switch (ruleNumber) {
-
-		//
-		// Rule 1:  <openscope-ast> ::= $Empty
-		//
-		case 1: {
-			action.openASTScope();
-			break;
-		}
-
-		//
-		// Rule 2:  <empty> ::= $Empty
-		//
-		case 2: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 13:  translation_unit ::= declaration_seq_opt
-		//
-		case 13: {
-			action.consumeTranslationUnit();
-			break;
-		}
-
-		//
-		// Rule 16:  literal ::= integer
-		//
-		case 16: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant);
-			break;
-		}
-
-		//
-		// Rule 17:  literal ::= floating
-		//
-		case 17: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_float_constant);
-			break;
-		}
-
-		//
-		// Rule 18:  literal ::= charconst
-		//
-		case 18: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant);
-			break;
-		}
-
-		//
-		// Rule 19:  literal ::= stringlit
-		//
-		case 19: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal);
-			break;
-		}
-
-		//
-		// Rule 20:  literal ::= true
-		//
-		case 20: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true);
-			break;
-		}
-
-		//
-		// Rule 21:  literal ::= false
-		//
-		case 21: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false);
-			break;
-		}
-
-		//
-		// Rule 22:  literal ::= this
-		//
-		case 22: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this);
-			break;
-		}
-
-		//
-		// Rule 24:  primary_expression ::= ( expression )
-		//
-		case 24: {
-			action.consumeExpressionBracketed();
-			break;
-		}
-
-		//
-		// Rule 26:  id_expression ::= qualified_or_unqualified_name
-		//
-		case 26: {
-			action.consumeExpressionName();
-			break;
-		}
-
-		//
-		// Rule 33:  unqualified_id_name ::= ~ identifier_token
-		//
-		case 33: {
-			action.consumeDestructorName();
-			break;
-		}
-
-		//
-		// Rule 34:  unqualified_id_name ::= ~ template_id_name
-		//
-		case 34: {
-			action.consumeDestructorNameTemplateId();
-			break;
-		}
-
-		//
-		// Rule 35:  identifier_name ::= identifier_token
-		//
-		case 35: {
-			action.consumeIdentifierName();
-			break;
-		}
-
-		//
-		// Rule 36:  template_opt ::= template
-		//
-		case 36: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 37:  template_opt ::= $Empty
-		//
-		case 37: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 38:  dcolon_opt ::= ::
-		//
-		case 38: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 39:  dcolon_opt ::= $Empty
-		//
-		case 39: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 40:  qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name
-		//
-		case 40: {
-			action.consumeQualifiedId(true);
-			break;
-		}
-
-		//
-		// Rule 41:  qualified_id_name ::= :: unqualified_id_name
-		//
-		case 41: {
-			action.consumeGlobalQualifiedId();
-			break;
-		}
-
-		//
-		// Rule 42:  nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template
-		//
-		case 42: {
-			action.consumeNestedNameSpecifier(true);
-			break;
-		}
-
-		//
-		// Rule 43:  nested_name_specifier ::= class_or_namespace_name ::
-		//
-		case 43: {
-			action.consumeNestedNameSpecifier(false);
-			break;
-		}
-
-		//
-		// Rule 44:  nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template
-		//
-		case 44: {
-			action.consumeNestedNameSpecifier(true);
-			break;
-		}
-
-		//
-		// Rule 45:  nested_name_specifier_with_template ::= class_or_namespace_name_with_template ::
-		//
-		case 45: {
-			action.consumeNestedNameSpecifier(false);
-			break;
-		}
-
-		//
-		// Rule 46:  class_or_namespace_name_with_template ::= template_opt class_or_namespace_name
-		//
-		case 46: {
-			action.consumeNameWithTemplateKeyword();
-			break;
-		}
-
-		//
-		// Rule 48:  nested_name_specifier_opt ::= $Empty
-		//
-		case 48: {
-			action.consumeNestedNameSpecifierEmpty();
-			break;
-		}
-
-		//
-		// Rule 51:  postfix_expression ::= postfix_expression [ expression ]
-		//
-		case 51: {
-			action.consumeExpressionArraySubscript();
-			break;
-		}
-
-		//
-		// Rule 52:  postfix_expression ::= postfix_expression ( expression_list_opt )
-		//
-		case 52: {
-			action.consumeExpressionFunctionCall();
-			break;
-		}
-
-		//
-		// Rule 53:  postfix_expression ::= simple_type_specifier ( expression_list_opt )
-		//
-		case 53: {
-			action.consumeExpressionSimpleTypeConstructor();
-			break;
-		}
-
-		//
-		// Rule 54:  postfix_expression ::= typename dcolon_opt nested_name_specifier <empty> identifier_name ( expression_list_opt )
-		//
-		case 54: {
-			action.consumeExpressionTypeName();
-			break;
-		}
-
-		//
-		// Rule 55:  postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt )
-		//
-		case 55: {
-			action.consumeExpressionTypeName();
-			break;
-		}
-
-		//
-		// Rule 56:  postfix_expression ::= postfix_expression . qualified_or_unqualified_name
-		//
-		case 56: {
-			action.consumeExpressionFieldReference(false, false);
-			break;
-		}
-
-		//
-		// Rule 57:  postfix_expression ::= postfix_expression -> qualified_or_unqualified_name
-		//
-		case 57: {
-			action.consumeExpressionFieldReference(true, false);
-			break;
-		}
-
-		//
-		// Rule 58:  postfix_expression ::= postfix_expression . template qualified_or_unqualified_name
-		//
-		case 58: {
-			action.consumeExpressionFieldReference(false, true);
-			break;
-		}
-
-		//
-		// Rule 59:  postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name
-		//
-		case 59: {
-			action.consumeExpressionFieldReference(true, true);
-			break;
-		}
-
-		//
-		// Rule 60:  postfix_expression ::= postfix_expression . pseudo_destructor_name
-		//
-		case 60: {
-			action.consumeExpressionFieldReference(false, false);
-			break;
-		}
-
-		//
-		// Rule 61:  postfix_expression ::= postfix_expression -> pseudo_destructor_name
-		//
-		case 61: {
-			action.consumeExpressionFieldReference(true, false);
-			break;
-		}
-
-		//
-		// Rule 62:  postfix_expression ::= postfix_expression ++
-		//
-		case 62: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr);
-			break;
-		}
-
-		//
-		// Rule 63:  postfix_expression ::= postfix_expression --
-		//
-		case 63: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr);
-			break;
-		}
-
-		//
-		// Rule 64:  postfix_expression ::= dynamic_cast < type_id > ( expression )
-		//
-		case 64: {
-			action.consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast);
-			break;
-		}
-
-		//
-		// Rule 65:  postfix_expression ::= static_cast < type_id > ( expression )
-		//
-		case 65: {
-			action.consumeExpressionCast(ICPPASTCastExpression.op_static_cast);
-			break;
-		}
-
-		//
-		// Rule 66:  postfix_expression ::= reinterpret_cast < type_id > ( expression )
-		//
-		case 66: {
-			action.consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast);
-			break;
-		}
-
-		//
-		// Rule 67:  postfix_expression ::= const_cast < type_id > ( expression )
-		//
-		case 67: {
-			action.consumeExpressionCast(ICPPASTCastExpression.op_const_cast);
-			break;
-		}
-
-		//
-		// Rule 68:  postfix_expression ::= typeid ( expression )
-		//
-		case 68: {
-			action.consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid);
-			break;
-		}
-
-		//
-		// Rule 69:  postfix_expression ::= typeid ( type_id )
-		//
-		case 69: {
-			action.consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid);
-			break;
-		}
-
-		//
-		// Rule 70:  pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name
-		//
-		case 70: {
-			action.consumePsudoDestructorName(true);
-			break;
-		}
-
-		//
-		// Rule 71:  pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name
-		//
-		case 71: {
-			action.consumePsudoDestructorName(true);
-			break;
-		}
-
-		//
-		// Rule 72:  pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name
-		//
-		case 72: {
-			action.consumePsudoDestructorName(false);
-			break;
-		}
-
-		//
-		// Rule 73:  destructor_type_name ::= ~ identifier_token
-		//
-		case 73: {
-			action.consumeDestructorName();
-			break;
-		}
-
-		//
-		// Rule 74:  destructor_type_name ::= ~ template_id_name
-		//
-		case 74: {
-			action.consumeDestructorNameTemplateId();
-			break;
-		}
-
-		//
-		// Rule 78:  unary_expression ::= ++ cast_expression
-		//
-		case 78: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr);
-			break;
-		}
-
-		//
-		// Rule 79:  unary_expression ::= -- cast_expression
-		//
-		case 79: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr);
-			break;
-		}
-
-		//
-		// Rule 80:  unary_expression ::= & cast_expression
-		//
-		case 80: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper);
-			break;
-		}
-
-		//
-		// Rule 81:  unary_expression ::= * cast_expression
-		//
-		case 81: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_star);
-			break;
-		}
-
-		//
-		// Rule 82:  unary_expression ::= + cast_expression
-		//
-		case 82: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus);
-			break;
-		}
-
-		//
-		// Rule 83:  unary_expression ::= - cast_expression
-		//
-		case 83: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus);
-			break;
-		}
-
-		//
-		// Rule 84:  unary_expression ::= ~ cast_expression
-		//
-		case 84: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde);
-			break;
-		}
-
-		//
-		// Rule 85:  unary_expression ::= ! cast_expression
-		//
-		case 85: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_not);
-			break;
-		}
-
-		//
-		// Rule 86:  unary_expression ::= sizeof unary_expression
-		//
-		case 86: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof);
-			break;
-		}
-
-		//
-		// Rule 87:  unary_expression ::= sizeof ( type_id )
-		//
-		case 87: {
-			action.consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof);
-			break;
-		}
-
-		//
-		// Rule 88:  new_expression ::= dcolon_opt new new_placement_opt new_type_id <openscope-ast> new_array_expressions_opt new_initializer_opt
-		//
-		case 88: {
-			action.consumeExpressionNew(true);
-			break;
-		}
-
-		//
-		// Rule 89:  new_expression ::= dcolon_opt new new_placement_opt ( type_id ) <openscope-ast> new_array_expressions_opt new_initializer_opt
-		//
-		case 89: {
-			action.consumeExpressionNew(false);
-			break;
-		}
-
-		//
-		// Rule 91:  new_placement_opt ::= $Empty
-		//
-		case 91: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 92:  new_type_id ::= type_specifier_seq
-		//
-		case 92: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 93:  new_type_id ::= type_specifier_seq new_declarator
-		//
-		case 93: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 94:  new_declarator ::= <openscope-ast> new_pointer_operators
-		//
-		case 94: {
-			action.consumeNewDeclarator();
-			break;
-		}
-
-		//
-		// Rule 101:  new_initializer ::= ( expression_list_opt )
-		//
-		case 101: {
-			action.consumeNewInitializer();
-			break;
-		}
-
-		//
-		// Rule 103:  new_initializer_opt ::= $Empty
-		//
-		case 103: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 104:  delete_expression ::= dcolon_opt delete cast_expression
-		//
-		case 104: {
-			action.consumeExpressionDelete(false);
-			break;
-		}
-
-		//
-		// Rule 105:  delete_expression ::= dcolon_opt delete [ ] cast_expression
-		//
-		case 105: {
-			action.consumeExpressionDelete(true);
-			break;
-		}
-
-		//
-		// Rule 108:  pm_expression ::= pm_expression .* cast_expression
-		//
-		case 108: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot);
-			break;
-		}
-
-		//
-		// Rule 109:  pm_expression ::= pm_expression ->* cast_expression
-		//
-		case 109: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow);
-			break;
-		}
-
-		//
-		// Rule 111:  multiplicative_expression ::= multiplicative_expression * pm_expression
-		//
-		case 111: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply);
-			break;
-		}
-
-		//
-		// Rule 112:  multiplicative_expression ::= multiplicative_expression / pm_expression
-		//
-		case 112: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide);
-			break;
-		}
-
-		//
-		// Rule 113:  multiplicative_expression ::= multiplicative_expression % pm_expression
-		//
-		case 113: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo);
-			break;
-		}
-
-		//
-		// Rule 115:  additive_expression ::= additive_expression + multiplicative_expression
-		//
-		case 115: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus);
-			break;
-		}
-
-		//
-		// Rule 116:  additive_expression ::= additive_expression - multiplicative_expression
-		//
-		case 116: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus);
-			break;
-		}
-
-		//
-		// Rule 118:  shift_expression ::= shift_expression << additive_expression
-		//
-		case 118: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft);
-			break;
-		}
-
-		//
-		// Rule 119:  shift_expression ::= shift_expression >> additive_expression
-		//
-		case 119: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight);
-			break;
-		}
-
-		//
-		// Rule 121:  relational_expression ::= relational_expression < shift_expression
-		//
-		case 121: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan);
-			break;
-		}
-
-		//
-		// Rule 122:  relational_expression ::= relational_expression > shift_expression
-		//
-		case 122: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan);
-			break;
-		}
-
-		//
-		// Rule 123:  relational_expression ::= relational_expression <= shift_expression
-		//
-		case 123: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual);
-			break;
-		}
-
-		//
-		// Rule 124:  relational_expression ::= relational_expression >= shift_expression
-		//
-		case 124: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual);
-			break;
-		}
-
-		//
-		// Rule 126:  equality_expression ::= equality_expression == relational_expression
-		//
-		case 126: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals);
-			break;
-		}
-
-		//
-		// Rule 127:  equality_expression ::= equality_expression != relational_expression
-		//
-		case 127: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals);
-			break;
-		}
-
-		//
-		// Rule 129:  and_expression ::= and_expression & equality_expression
-		//
-		case 129: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd);
-			break;
-		}
-
-		//
-		// Rule 131:  exclusive_or_expression ::= exclusive_or_expression ^ and_expression
-		//
-		case 131: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor);
-			break;
-		}
-
-		//
-		// Rule 133:  inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression
-		//
-		case 133: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr);
-			break;
-		}
-
-		//
-		// Rule 135:  logical_and_expression ::= logical_and_expression && inclusive_or_expression
-		//
-		case 135: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd);
-			break;
-		}
-
-		//
-		// Rule 137:  logical_or_expression ::= logical_or_expression || logical_and_expression
-		//
-		case 137: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr);
-			break;
-		}
-
-		//
-		// Rule 139:  conditional_expression ::= logical_or_expression ? expression : assignment_expression
-		//
-		case 139: {
-			action.consumeExpressionConditional();
-			break;
-		}
-
-		//
-		// Rule 141:  relational_expression_inTemplate ::= relational_expression_inTemplate < shift_expression
-		//
-		case 141: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan);
-			break;
-		}
-
-		//
-		// Rule 142:  relational_expression_inTemplate ::= ( relational_expression_inTemplate > shift_expression )
-		//
-		case 142: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan);
-			break;
-		}
-
-		//
-		// Rule 143:  relational_expression_inTemplate ::= relational_expression_inTemplate <= shift_expression
-		//
-		case 143: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual);
-			break;
-		}
-
-		//
-		// Rule 144:  relational_expression_inTemplate ::= relational_expression_inTemplate >= shift_expression
-		//
-		case 144: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual);
-			break;
-		}
-
-		//
-		// Rule 146:  equality_expression_inTemplate ::= equality_expression_inTemplate == relational_expression_inTemplate
-		//
-		case 146: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals);
-			break;
-		}
-
-		//
-		// Rule 147:  equality_expression_inTemplate ::= equality_expression_inTemplate != relational_expression_inTemplate
-		//
-		case 147: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals);
-			break;
-		}
-
-		//
-		// Rule 149:  and_expression_inTemplate ::= and_expression_inTemplate & equality_expression_inTemplate
-		//
-		case 149: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd);
-			break;
-		}
-
-		//
-		// Rule 151:  exclusive_or_expression_inTemplate ::= exclusive_or_expression_inTemplate ^ and_expression_inTemplate
-		//
-		case 151: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor);
-			break;
-		}
-
-		//
-		// Rule 153:  inclusive_or_expression_inTemplate ::= inclusive_or_expression_inTemplate | exclusive_or_expression_inTemplate
-		//
-		case 153: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr);
-			break;
-		}
-
-		//
-		// Rule 155:  logical_and_expression_inTemplate ::= logical_and_expression_inTemplate && inclusive_or_expression_inTemplate
-		//
-		case 155: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd);
-			break;
-		}
-
-		//
-		// Rule 157:  logical_or_expression_inTemplate ::= logical_or_expression_inTemplate || logical_and_expression_inTemplate
-		//
-		case 157: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr);
-			break;
-		}
-
-		//
-		// Rule 159:  conditional_expression_inTemplate ::= logical_or_expression_inTemplate ? expression : assignment_expression_inTemplate
-		//
-		case 159: {
-			action.consumeExpressionConditional();
-			break;
-		}
-
-		//
-		// Rule 162:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate = assignment_expression_inTemplate
-		//
-		case 162: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign);
-			break;
-		}
-
-		//
-		// Rule 163:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate *= assignment_expression_inTemplate
-		//
-		case 163: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign);
-			break;
-		}
-
-		//
-		// Rule 164:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate /= assignment_expression_inTemplate
-		//
-		case 164: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign);
-			break;
-		}
-
-		//
-		// Rule 165:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate %= assignment_expression_inTemplate
-		//
-		case 165: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign);
-			break;
-		}
-
-		//
-		// Rule 166:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate += assignment_expression_inTemplate
-		//
-		case 166: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign);
-			break;
-		}
-
-		//
-		// Rule 167:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate -= assignment_expression_inTemplate
-		//
-		case 167: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign);
-			break;
-		}
-
-		//
-		// Rule 168:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate >>= assignment_expression_inTemplate
-		//
-		case 168: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign);
-			break;
-		}
-
-		//
-		// Rule 169:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate <<= assignment_expression_inTemplate
-		//
-		case 169: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign);
-			break;
-		}
-
-		//
-		// Rule 170:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate &= assignment_expression_inTemplate
-		//
-		case 170: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign);
-			break;
-		}
-
-		//
-		// Rule 171:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate ^= assignment_expression_inTemplate
-		//
-		case 171: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign);
-			break;
-		}
-
-		//
-		// Rule 172:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate |= assignment_expression_inTemplate
-		//
-		case 172: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign);
-			break;
-		}
-
-		//
-		// Rule 173:  throw_expression ::= throw
-		//
-		case 173: {
-			action.consumeExpressionThrow(false);
-			break;
-		}
-
-		//
-		// Rule 174:  throw_expression ::= throw assignment_expression
-		//
-		case 174: {
-			action.consumeExpressionThrow(true);
-			break;
-		}
-
-		//
-		// Rule 177:  assignment_expression ::= logical_or_expression = assignment_expression
-		//
-		case 177: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign);
-			break;
-		}
-
-		//
-		// Rule 178:  assignment_expression ::= logical_or_expression *= assignment_expression
-		//
-		case 178: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign);
-			break;
-		}
-
-		//
-		// Rule 179:  assignment_expression ::= logical_or_expression /= assignment_expression
-		//
-		case 179: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign);
-			break;
-		}
-
-		//
-		// Rule 180:  assignment_expression ::= logical_or_expression %= assignment_expression
-		//
-		case 180: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign);
-			break;
-		}
-
-		//
-		// Rule 181:  assignment_expression ::= logical_or_expression += assignment_expression
-		//
-		case 181: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign);
-			break;
-		}
-
-		//
-		// Rule 182:  assignment_expression ::= logical_or_expression -= assignment_expression
-		//
-		case 182: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign);
-			break;
-		}
-
-		//
-		// Rule 183:  assignment_expression ::= logical_or_expression >>= assignment_expression
-		//
-		case 183: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign);
-			break;
-		}
-
-		//
-		// Rule 184:  assignment_expression ::= logical_or_expression <<= assignment_expression
-		//
-		case 184: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign);
-			break;
-		}
-
-		//
-		// Rule 185:  assignment_expression ::= logical_or_expression &= assignment_expression
-		//
-		case 185: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign);
-			break;
-		}
-
-		//
-		// Rule 186:  assignment_expression ::= logical_or_expression ^= assignment_expression
-		//
-		case 186: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign);
-			break;
-		}
-
-		//
-		// Rule 187:  assignment_expression ::= logical_or_expression |= assignment_expression
-		//
-		case 187: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign);
-			break;
-		}
-
-		//
-		// Rule 189:  expression_list ::= <openscope-ast> expression_list_actual
-		//
-		case 189: {
-			action.consumeExpressionList();
-			break;
-		}
-
-		//
-		// Rule 193:  expression_list_opt ::= $Empty
-		//
-		case 193: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 195:  expression_opt ::= $Empty
-		//
-		case 195: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 198:  constant_expression_opt ::= $Empty
-		//
-		case 198: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 207:  statement ::= ERROR_TOKEN
-		//
-		case 207: {
-			action.consumeStatementProblem();
-			break;
-		}
-
-		//
-		// Rule 208:  labeled_statement ::= identifier : statement
-		//
-		case 208: {
-			action.consumeStatementLabeled();
-			break;
-		}
-
-		//
-		// Rule 209:  labeled_statement ::= case constant_expression : statement
-		//
-		case 209: {
-			action.consumeStatementCase();
-			break;
-		}
-
-		//
-		// Rule 210:  labeled_statement ::= default : statement
-		//
-		case 210: {
-			action.consumeStatementDefault();
-			break;
-		}
-
-		//
-		// Rule 211:  expression_statement ::= expression ;
-		//
-		case 211: {
-			action.consumeStatementExpression();
-			break;
-		}
-
-		//
-		// Rule 212:  expression_statement ::= ;
-		//
-		case 212: {
-			action.consumeStatementNull();
-			break;
-		}
-
-		//
-		// Rule 213:  compound_statement ::= { <openscope-ast> statement_seq }
-		//
-		case 213: {
-			action.consumeStatementCompoundStatement(true);
-			break;
-		}
-
-		//
-		// Rule 214:  compound_statement ::= { }
-		//
-		case 214: {
-			action.consumeStatementCompoundStatement(false);
-			break;
-		}
-
-		//
-		// Rule 217:  selection_statement ::= if ( condition ) statement
-		//
-		case 217: {
-			action.consumeStatementIf(false);
-			break;
-		}
-
-		//
-		// Rule 218:  selection_statement ::= if ( condition ) statement else statement
-		//
-		case 218: {
-			action.consumeStatementIf(true);
-			break;
-		}
-
-		//
-		// Rule 219:  selection_statement ::= switch ( condition ) statement
-		//
-		case 219: {
-			action.consumeStatementSwitch();
-			break;
-		}
-
-		//
-		// Rule 221:  condition ::= type_specifier_seq declarator = assignment_expression
-		//
-		case 221: {
-			action.consumeConditionDeclaration();
-			break;
-		}
-
-		//
-		// Rule 223:  condition_opt ::= $Empty
-		//
-		case 223: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 224:  iteration_statement ::= while ( condition ) statement
-		//
-		case 224: {
-			action.consumeStatementWhileLoop();
-			break;
-		}
-
-		//
-		// Rule 225:  iteration_statement ::= do statement while ( expression ) ;
-		//
-		case 225: {
-			action.consumeStatementDoLoop(true);
-			break;
-		}
-
-		//
-		// Rule 226:  iteration_statement ::= do statement
-		//
-		case 226: {
-			action.consumeStatementDoLoop(false);
-			break;
-		}
-
-		//
-		// Rule 227:  iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement
-		//
-		case 227: {
-			action.consumeStatementForLoop();
-			break;
-		}
-
-		//
-		// Rule 229:  for_init_statement ::= simple_declaration_with_declspec
-		//
-		case 229: {
-			action.consumeStatementDeclaration();
-			break;
-		}
-
-		//
-		// Rule 230:  jump_statement ::= break ;
-		//
-		case 230: {
-			action.consumeStatementBreak();
-			break;
-		}
-
-		//
-		// Rule 231:  jump_statement ::= continue ;
-		//
-		case 231: {
-			action.consumeStatementContinue();
-			break;
-		}
-
-		//
-		// Rule 232:  jump_statement ::= return expression ;
-		//
-		case 232: {
-			action.consumeStatementReturn(true);
-			break;
-		}
-
-		//
-		// Rule 233:  jump_statement ::= return ;
-		//
-		case 233: {
-			action.consumeStatementReturn(false);
-			break;
-		}
-
-		//
-		// Rule 234:  jump_statement ::= goto identifier_token ;
-		//
-		case 234: {
-			action.consumeStatementGoto();
-			break;
-		}
-
-		//
-		// Rule 235:  declaration_statement ::= block_declaration
-		//
-		case 235: {
-			action.consumeStatementDeclarationWithDisambiguation();
-			break;
-		}
-
-		//
-		// Rule 236:  declaration_statement ::= function_definition
-		//
-		case 236: {
-			action.consumeStatementDeclaration();
-			break;
-		}
-
-		//
-		// Rule 244:  declaration ::= ERROR_TOKEN
-		//
-		case 244: {
-			action.consumeDeclarationProblem();
-			break;
-		}
-
-		//
-		// Rule 254:  simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ;
-		//
-		case 254: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 255:  simple_declaration_with_declspec ::= declaration_specifiers <openscope-ast> init_declarator_list_opt ;
-		//
-		case 255: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 256:  declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
-		//
-		case 256: {
-			action.consumeDeclarationSpecifiersSimple();
-			break;
-		}
-
-		//
-		// Rule 257:  declaration_specifiers ::= <openscope-ast> class_declaration_specifiers
-		//
-		case 257: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 258:  declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
-		//
-		case 258: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 259:  declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
-		//
-		case 259: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 260:  declaration_specifiers ::= <openscope-ast> type_name_declaration_specifiers
-		//
-		case 260: {
-			action.consumeDeclarationSpecifiersTypeName();
-			break;
-		}
-
-		//
-		// Rule 262:  declaration_specifiers_opt ::= $Empty
-		//
-		case 262: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 266:  no_type_declaration_specifier ::= friend
-		//
-		case 266: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 267:  no_type_declaration_specifier ::= typedef
-		//
-		case 267: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 287:  storage_class_specifier ::= auto
-		//
-		case 287: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 288:  storage_class_specifier ::= register
-		//
-		case 288: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 289:  storage_class_specifier ::= static
-		//
-		case 289: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 290:  storage_class_specifier ::= extern
-		//
-		case 290: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 291:  storage_class_specifier ::= mutable
-		//
-		case 291: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 292:  function_specifier ::= inline
-		//
-		case 292: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 293:  function_specifier ::= virtual
-		//
-		case 293: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 294:  function_specifier ::= explicit
-		//
-		case 294: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 295:  simple_type_specifier ::= simple_type_specifier_token
-		//
-		case 295: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 309:  type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name
-		//
-		case 309: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 310:  type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name
-		//
-		case 310: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 311:  type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name
-		//
-		case 311: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 312:  type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name
-		//
-		case 312: {
-			action.consumeQualifiedId(true);
-			break;
-		}
-
-		//
-		// Rule 314:  elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name
-		//
-		case 314: {
-			action.consumeTypeSpecifierElaborated(false);
-			break;
-		}
-
-		//
-		// Rule 315:  elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt template_opt template_id_name
-		//
-		case 315: {
-			action.consumeTypeSpecifierElaborated(true);
-			break;
-		}
-
-		//
-		// Rule 316:  elaborated_type_specifier ::= enum elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name
-		//
-		case 316: {
-			action.consumeTypeSpecifierElaborated(false);
-			break;
-		}
-
-		//
-		// Rule 320:  enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
-		//
-		case 320: {
-			action.consumeTypeSpecifierEnumeration(false);
-			break;
-		}
-
-		//
-		// Rule 321:  enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
-		//
-		case 321: {
-			action.consumeTypeSpecifierEnumeration(true);
-			break;
-		}
-
-		//
-		// Rule 327:  enumerator_definition ::= identifier_token
-		//
-		case 327: {
-			action.consumeEnumerator(false);
-			break;
-		}
-
-		//
-		// Rule 328:  enumerator_definition ::= identifier_token = constant_expression
-		//
-		case 328: {
-			action.consumeEnumerator(true);
-			break;
-		}
-
-		//
-		// Rule 330:  namespace_definition ::= namespace namespace_name namespace_definition_hook { <openscope-ast> declaration_seq_opt }
-		//
-		case 330: {
-			action.consumeNamespaceDefinition(true);
-			break;
-		}
-
-		//
-		// Rule 331:  namespace_definition ::= namespace namespace_definition_hook { <openscope-ast> declaration_seq_opt }
-		//
-		case 331: {
-			action.consumeNamespaceDefinition(false);
-			break;
-		}
-
-		//
-		// Rule 333:  namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ;
-		//
-		case 333: {
-			action.consumeNamespaceAliasDefinition();
-			break;
-		}
-
-		//
-		// Rule 334:  using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ;
-		//
-		case 334: {
-			action.consumeUsingDeclaration();
-			break;
-		}
-
-		//
-		// Rule 335:  typename_opt ::= typename
-		//
-		case 335: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 336:  typename_opt ::= $Empty
-		//
-		case 336: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 337:  using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ;
-		//
-		case 337: {
-			action.consumeUsingDirective();
-			break;
-		}
-
-		//
-		// Rule 338:  asm_definition ::= asm ( stringlit ) ;
-		//
-		case 338: {
-			action.consumeDeclarationASM();
-			break;
-		}
-
-		//
-		// Rule 339:  linkage_specification ::= extern stringlit { <openscope-ast> declaration_seq_opt }
-		//
-		case 339: {
-			action.consumeLinkageSpecification();
-			break;
-		}
-
-		//
-		// Rule 340:  linkage_specification ::= extern stringlit <openscope-ast> declaration
-		//
-		case 340: {
-			action.consumeLinkageSpecification();
-			break;
-		}
-
-		//
-		// Rule 345:  init_declarator_complete ::= init_declarator
-		//
-		case 345: {
-			action.consumeInitDeclaratorComplete();
-			break;
-		}
-
-		//
-		// Rule 347:  init_declarator ::= complete_declarator initializer
-		//
-		case 347: {
-			action.consumeDeclaratorWithInitializer(true);
-			break;
-		}
-
-		//
-		// Rule 350:  declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
-		//
-		case 350: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 352:  function_declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
-		//
-		case 352: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 356:  basic_direct_declarator ::= declarator_id_name
-		//
-		case 356: {
-			action.consumeDirectDeclaratorIdentifier();
-			break;
-		}
-
-		//
-		// Rule 357:  basic_direct_declarator ::= ( declarator )
-		//
-		case 357: {
-			action.consumeDirectDeclaratorBracketed();
-			break;
-		}
-
-		//
-		// Rule 358:  function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
-		//
-		case 358: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 359:  array_direct_declarator ::= array_direct_declarator array_modifier
-		//
-		case 359: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 360:  array_direct_declarator ::= basic_direct_declarator array_modifier
-		//
-		case 360: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 361:  array_modifier ::= [ constant_expression ]
-		//
-		case 361: {
-			action.consumeDirectDeclaratorArrayModifier(true);
-			break;
-		}
-
-		//
-		// Rule 362:  array_modifier ::= [ ]
-		//
-		case 362: {
-			action.consumeDirectDeclaratorArrayModifier(false);
-			break;
-		}
-
-		//
-		// Rule 363:  ptr_operator ::= pointer_hook * pointer_hook <openscope-ast> cv_qualifier_seq_opt
-		//
-		case 363: {
-			action.consumePointer();
-			break;
-		}
-
-		//
-		// Rule 364:  ptr_operator ::= pointer_hook & pointer_hook
-		//
-		case 364: {
-			action.consumeReferenceOperator();
-			break;
-		}
-
-		//
-		// Rule 365:  ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * pointer_hook <openscope-ast> cv_qualifier_seq_opt
-		//
-		case 365: {
-			action.consumePointerToMember();
-			break;
-		}
-
-		//
-		// Rule 372:  cv_qualifier ::= const
-		//
-		case 372: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 373:  cv_qualifier ::= volatile
-		//
-		case 373: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 375:  declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name
-		//
-		case 375: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 376:  type_id ::= type_specifier_seq
-		//
-		case 376: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 377:  type_id ::= type_specifier_seq abstract_declarator
-		//
-		case 377: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 380:  abstract_declarator ::= <openscope-ast> ptr_operator_seq
-		//
-		case 380: {
-			action.consumeDeclaratorWithPointer(false);
-			break;
-		}
-
-		//
-		// Rule 381:  abstract_declarator ::= <openscope-ast> ptr_operator_seq direct_abstract_declarator
-		//
-		case 381: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 385:  basic_direct_abstract_declarator ::= ( abstract_declarator )
-		//
-		case 385: {
-			action.consumeDirectDeclaratorBracketed();
-			break;
-		}
-
-		//
-		// Rule 386:  basic_direct_abstract_declarator ::= ( )
-		//
-		case 386: {
-			action.consumeAbstractDeclaratorEmpty();
-			break;
-		}
-
-		//
-		// Rule 387:  array_direct_abstract_declarator ::= array_modifier
-		//
-		case 387: {
-			action.consumeDirectDeclaratorArrayDeclarator(false);
-			break;
-		}
-
-		//
-		// Rule 388:  array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
-		//
-		case 388: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 389:  array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
-		//
-		case 389: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 390:  function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
-		//
-		case 390: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 391:  function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
-		//
-		case 391: {
-			action.consumeDirectDeclaratorFunctionDeclarator(false);
-			break;
-		}
-
-		//
-		// Rule 392:  parameter_declaration_clause ::= parameter_declaration_list_opt ...
-		//
-		case 392: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 393:  parameter_declaration_clause ::= parameter_declaration_list_opt
-		//
-		case 393: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 394:  parameter_declaration_clause ::= parameter_declaration_list , ...
-		//
-		case 394: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 400:  abstract_declarator_opt ::= $Empty
-		//
-		case 400: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 401:  parameter_declaration ::= declaration_specifiers parameter_init_declarator
-		//
-		case 401: {
-			action.consumeParameterDeclaration();
-			break;
-		}
-
-		//
-		// Rule 402:  parameter_declaration ::= declaration_specifiers
-		//
-		case 402: {
-			action.consumeParameterDeclarationWithoutDeclarator();
-			break;
-		}
-
-		//
-		// Rule 404:  parameter_init_declarator ::= declarator = parameter_initializer
-		//
-		case 404: {
-			action.consumeDeclaratorWithInitializer(true);
-			break;
-		}
-
-		//
-		// Rule 406:  parameter_init_declarator ::= abstract_declarator = parameter_initializer
-		//
-		case 406: {
-			action.consumeDeclaratorWithInitializer(true);
-			break;
-		}
-
-		//
-		// Rule 407:  parameter_init_declarator ::= = parameter_initializer
-		//
-		case 407: {
-			action.consumeDeclaratorWithInitializer(false);
-			break;
-		}
-
-		//
-		// Rule 408:  parameter_initializer ::= assignment_expression
-		//
-		case 408: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 409:  function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body
-		//
-		case 409: {
-			action.consumeFunctionDefinition(false);
-			break;
-		}
-
-		//
-		// Rule 410:  function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq
-		//
-		case 410: {
-			action.consumeFunctionDefinition(true);
-			break;
-		}
-
-		//
-		// Rule 413:  initializer ::= ( expression_list )
-		//
-		case 413: {
-			action.consumeInitializerConstructor();
-			break;
-		}
-
-		//
-		// Rule 414:  initializer_clause ::= assignment_expression
-		//
-		case 414: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 415:  initializer_clause ::= initializer_list
-		//
-		case 415: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 416:  initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq , } end_initializer_list
-		//
-		case 416: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 417:  initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq } end_initializer_list
-		//
-		case 417: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 418:  initializer_list ::= { <openscope-ast> }
-		//
-		case 418: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 419:  start_initializer_list ::= $Empty
-		//
-		case 419: {
-			action.initializerListStart();
-			break;
-		}
-
-		//
-		// Rule 420:  end_initializer_list ::= $Empty
-		//
-		case 420: {
-			action.initializerListEnd();
-			break;
-		}
-
-		//
-		// Rule 425:  class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt }
-		//
-		case 425: {
-			action.consumeClassSpecifier();
-			break;
-		}
-
-		//
-		// Rule 426:  class_head ::= class_keyword composite_specifier_hook identifier_name_opt class_name_suffix_hook <openscope-ast> base_clause_opt
-		//
-		case 426: {
-			action.consumeClassHead(false);
-			break;
-		}
-
-		//
-		// Rule 427:  class_head ::= class_keyword composite_specifier_hook template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt
-		//
-		case 427: {
-			action.consumeClassHead(false);
-			break;
-		}
-
-		//
-		// Rule 428:  class_head ::= class_keyword composite_specifier_hook nested_name_specifier identifier_name class_name_suffix_hook <openscope-ast> base_clause_opt
-		//
-		case 428: {
-			action.consumeClassHead(true);
-			break;
-		}
-
-		//
-		// Rule 429:  class_head ::= class_keyword composite_specifier_hook nested_name_specifier template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt
-		//
-		case 429: {
-			action.consumeClassHead(true);
-			break;
-		}
-
-		//
-		// Rule 433:  identifier_name_opt ::= $Empty
-		//
-		case 433: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 437:  visibility_label ::= access_specifier_keyword :
-		//
-		case 437: {
-			action.consumeVisibilityLabel();
-			break;
-		}
-
-		//
-		// Rule 438:  member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
-		//
-		case 438: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 439:  member_declaration ::= declaration_specifiers_opt ;
-		//
-		case 439: {
-			action.consumeDeclarationSimple(false);
-			break;
-		}
-
-		//
-		// Rule 442:  member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ;
-		//
-		case 442: {
-			action.consumeMemberDeclarationQualifiedId();
-			break;
-		}
-
-		//
-		// Rule 448:  member_declaration ::= ERROR_TOKEN
-		//
-		case 448: {
-			action.consumeDeclarationProblem();
-			break;
-		}
-
-		//
-		// Rule 457:  member_declarator ::= declarator constant_initializer
-		//
-		case 457: {
-			action.consumeMemberDeclaratorWithInitializer();
-			break;
-		}
-
-		//
-		// Rule 458:  member_declarator ::= bit_field_declarator : constant_expression
-		//
-		case 458: {
-			action.consumeBitField(true);
-			break;
-		}
-
-		//
-		// Rule 459:  member_declarator ::= : constant_expression
-		//
-		case 459: {
-			action.consumeBitField(false);
-			break;
-		}
-
-		//
-		// Rule 460:  bit_field_declarator ::= identifier_name
-		//
-		case 460: {
-			action.consumeDirectDeclaratorIdentifier();
-			break;
-		}
-
-		//
-		// Rule 461:  constant_initializer ::= = constant_expression
-		//
-		case 461: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 467:  base_specifier ::= dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 467: {
-			action.consumeBaseSpecifier(false, false);
-			break;
-		}
-
-		//
-		// Rule 468:  base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 468: {
-			action.consumeBaseSpecifier(true, true);
-			break;
-		}
-
-		//
-		// Rule 469:  base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 469: {
-			action.consumeBaseSpecifier(true, true);
-			break;
-		}
-
-		//
-		// Rule 470:  base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 470: {
-			action.consumeBaseSpecifier(true, false);
-			break;
-		}
-
-		//
-		// Rule 471:  access_specifier_keyword ::= private
-		//
-		case 471: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 472:  access_specifier_keyword ::= protected
-		//
-		case 472: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 473:  access_specifier_keyword ::= public
-		//
-		case 473: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 475:  access_specifier_keyword_opt ::= $Empty
-		//
-		case 475: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 477:  conversion_function_id_name ::= conversion_function_id < <openscope-ast> template_argument_list_opt >
-		//
-		case 477: {
-			action.consumeTemplateId();
-			break;
-		}
-
-		//
-		// Rule 478:  conversion_function_id ::= operator conversion_type_id
-		//
-		case 478: {
-			action.consumeConversionName();
-			break;
-		}
-
-		//
-		// Rule 479:  conversion_type_id ::= type_specifier_seq conversion_declarator
-		//
-		case 479: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 480:  conversion_type_id ::= type_specifier_seq
-		//
-		case 480: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 481:  conversion_declarator ::= <openscope-ast> ptr_operator_seq
-		//
-		case 481: {
-			action.consumeDeclaratorWithPointer(false);
-			break;
-		}
-
-		//
-		// Rule 487:  mem_initializer ::= mem_initializer_name ( expression_list_opt )
-		//
-		case 487: {
-			action.consumeConstructorChainInitializer();
-			break;
-		}
-
-		//
-		// Rule 488:  mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 488: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 491:  operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt >
-		//
-		case 491: {
-			action.consumeTemplateId();
-			break;
-		}
-
-		//
-		// Rule 492:  operator_id_name ::= operator overloadable_operator
-		//
-		case 492: {
-			action.consumeOperatorName();
-			break;
-		}
-
-		//
-		// Rule 535:  template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration
-		//
-		case 535: {
-			action.consumeTemplateDeclaration();
-			break;
-		}
-
-		//
-		// Rule 536:  export_opt ::= export
-		//
-		case 536: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 537:  export_opt ::= $Empty
-		//
-		case 537: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 541:  template_parameter ::= parameter_declaration
-		//
-		case 541: {
-			action.consumeTemplateParamterDeclaration();
-			break;
-		}
-
-		//
-		// Rule 542:  type_parameter ::= class identifier_name_opt
-		//
-		case 542: {
-			action.consumeSimpleTypeTemplateParameter(false);
-			break;
-		}
-
-		//
-		// Rule 543:  type_parameter ::= class identifier_name_opt = type_id
-		//
-		case 543: {
-			action.consumeSimpleTypeTemplateParameter(true);
-			break;
-		}
-
-		//
-		// Rule 544:  type_parameter ::= typename identifier_name_opt
-		//
-		case 544: {
-			action.consumeSimpleTypeTemplateParameter(false);
-			break;
-		}
-
-		//
-		// Rule 545:  type_parameter ::= typename identifier_name_opt = type_id
-		//
-		case 545: {
-			action.consumeSimpleTypeTemplateParameter(true);
-			break;
-		}
-
-		//
-		// Rule 546:  type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt
-		//
-		case 546: {
-			action.consumeTemplatedTypeTemplateParameter(false);
-			break;
-		}
-
-		//
-		// Rule 547:  type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression
-		//
-		case 547: {
-			action.consumeTemplatedTypeTemplateParameter(true);
-			break;
-		}
-
-		//
-		// Rule 548:  template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt >
-		//
-		case 548: {
-			action.consumeTemplateId();
-			break;
-		}
-
-		//
-		// Rule 555:  nested_name_specifier_inTemplate ::= class_or_namespace_name_inTemplate :: nested_name_specifier_with_template_inTemplate
-		//
-		case 555: {
-			action.consumeNestedNameSpecifier(true);
-			break;
-		}
-
-		//
-		// Rule 556:  nested_name_specifier_inTemplate ::= class_or_namespace_name_inTemplate ::
-		//
-		case 556: {
-			action.consumeNestedNameSpecifier(false);
-			break;
-		}
-
-		//
-		// Rule 557:  nested_name_specifier_with_template_inTemplate ::= class_or_namespace_name_with_template_inTemplate :: nested_name_specifier_with_template_inTemplate
-		//
-		case 557: {
-			action.consumeNestedNameSpecifier(true);
-			break;
-		}
-
-		//
-		// Rule 558:  nested_name_specifier_with_template_inTemplate ::= class_or_namespace_name_with_template_inTemplate ::
-		//
-		case 558: {
-			action.consumeNestedNameSpecifier(false);
-			break;
-		}
-
-		//
-		// Rule 559:  class_or_namespace_name_with_template_inTemplate ::= template_opt class_or_namespace_name_inTemplate
-		//
-		case 559: {
-			action.consumeNameWithTemplateKeyword();
-			break;
-		}
-
-		//
-		// Rule 561:  nested_name_specifier_opt_inTemplate ::= $Empty
-		//
-		case 561: {
-			action.consumeNestedNameSpecifierEmpty();
-			break;
-		}
-
-		//
-		// Rule 564:  type_name_specifier_inTemplate ::= typename dcolon_opt nested_name_specifier identifier_name
-		//
-		case 564: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 565:  type_name_specifier_inTemplate ::= typename dcolon_opt nested_name_specifier template_opt template_id_name
-		//
-		case 565: {
-			action.consumeQualifiedId(true);
-			break;
-		}
-
-		//
-		// Rule 570:  declaration_specifiers_inTemplate ::= <openscope-ast> simple_declaration_specifiers
-		//
-		case 570: {
-			action.consumeDeclarationSpecifiersSimple();
-			break;
-		}
-
-		//
-		// Rule 571:  declaration_specifiers_inTemplate ::= <openscope-ast> class_declaration_specifiers
-		//
-		case 571: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 572:  declaration_specifiers_inTemplate ::= <openscope-ast> elaborated_declaration_specifiers
-		//
-		case 572: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 573:  declaration_specifiers_inTemplate ::= <openscope-ast> enum_declaration_specifiers
-		//
-		case 573: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 574:  declaration_specifiers_inTemplate ::= <openscope-ast> type_name_declaration_specifiers_inTemplate
-		//
-		case 574: {
-			action.consumeDeclarationSpecifiersTypeName();
-			break;
-		}
-
-		//
-		// Rule 576:  type_id_inTemplate ::= type_specifier_seq_inTemplate
-		//
-		case 576: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 577:  type_id_inTemplate ::= type_specifier_seq_inTemplate abstract_declarator
-		//
-		case 577: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 578:  template_argument ::= assignment_expression_inTemplate
-		//
-		case 578: {
-			action.consumeTemplateArgumentExpression();
-			break;
-		}
-
-		//
-		// Rule 579:  template_argument ::= type_id_inTemplate
-		//
-		case 579: {
-			action.consumeTemplateArgumentTypeId();
-			break;
-		}
-
-		//
-		// Rule 580:  explicit_instantiation ::= template declaration
-		//
-		case 580: {
-			action.consumeTemplateExplicitInstantiation();
-			break;
-		}
-
-		//
-		// Rule 581:  explicit_specialization ::= template < > declaration
-		//
-		case 581: {
-			action.consumeTemplateExplicitSpecialization();
-			break;
-		}
-
-		//
-		// Rule 582:  try_block ::= try compound_statement <openscope-ast> handler_seq
-		//
-		case 582: {
-			action.consumeStatementTryBlock(true);
-			break;
-		}
-
-		//
-		// Rule 583:  try_block ::= try compound_statement
-		//
-		case 583: {
-			action.consumeStatementTryBlock(false);
-			break;
-		}
-
-		//
-		// Rule 586:  handler ::= catch ( exception_declaration ) compound_statement
-		//
-		case 586: {
-			action.consumeStatementCatchHandler(false);
-			break;
-		}
-
-		//
-		// Rule 587:  handler ::= catch ( ... ) compound_statement
-		//
-		case 587: {
-			action.consumeStatementCatchHandler(true);
-			break;
-		}
-
-		//
-		// Rule 588:  exception_declaration ::= type_specifier_seq <openscope-ast> declarator
-		//
-		case 588: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 589:  exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
-		//
-		case 589: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 590:  exception_declaration ::= type_specifier_seq
-		//
-		case 590: {
-			action.consumeDeclarationSimple(false);
-			break;
-		}
-
-		//
-		// Rule 592:  exception_specification ::= throw ( )
-		//
-		case 592: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 598:  no_cast_start ::= ERROR_TOKEN
-		//
-		case 598: {
-			action.consumeEmpty();
-			break;
-		}
-
-		default:
-			break;
-		}
-		return;
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParserprs.java
deleted file mode 100644
index 1695588..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParserprs.java
+++ /dev/null
@@ -1,1551 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2015 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.lrparser.cpp;
-
-public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CPPNoCastExpressionParsersym {
-
-	public interface IsKeyword {
-		public final static byte isKeyword[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static byte isKeyword[] = IsKeyword.isKeyword;
-
-	public final boolean isKeyword(int index) {
-		return isKeyword[index] != 0;
-	}
-
-	public interface BaseCheck {
-		public final static short baseCheck[] = { 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 0, 1, 0, 4, 2, 3, 2, 3, 2, 2, 1, 0, 1, 1, 4, 4, 4, 8, 8, 3, 3,
-				4, 4, 3, 3, 2, 2, 7, 7, 7, 7, 4, 4, 5, 6, 3, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 7, 9, 3, 0, 1,
-				2, 2, 1, 2, 3, 4, 1, 0, 3, 1, 0, 3, 5, 1, 1, 3, 3, 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 3, 3, 3, 3, 1, 3, 3,
-				1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 1, 3, 5, 3, 3, 1, 3, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 1, 1, 3,
-				3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 2, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 2, 1, 3, 1, 0, 1, 0, 1, 1,
-				0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 4, 3, 2, 1, 4, 2, 1, 2, 5, 7, 5, 1, 4, 1, 0, 5, 7, 2, 8, 1, 1, 2, 2, 3,
-				2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 0, 4, 4, 2, 2, 2, 2, 2, 1, 0, 1, 1, 1, 1, 1,
-				1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 3, 4, 4, 5, 2, 5, 6, 5, 0, 1, 0, 7, 8, 0, 1, 3, 1, 0, 1, 3, 1, 7, 6, 0, 7, 6, 1, 0, 6,
-				5, 6, 4, 1, 3, 1, 0, 1, 1, 2, 1, 1, 3, 1, 3, 1, 1, 1, 1, 3, 9, 2, 2, 3, 2, 5, 3, 7, 0, 1, 2, 2, 1, 0, 1,
-				1, 1, 3, 1, 2, 1, 1, 2, 3, 1, 1, 1, 3, 2, 1, 2, 2, 9, 8, 2, 1, 3, 1, 3, 1, 0, 1, 0, 2, 1, 1, 3, 1, 3, 2,
-				1, 5, 8, 1, 2, 3, 1, 1, 7, 6, 3, 0, 0, 1, 3, 1, 1, 5, 6, 6, 7, 7, 0, 0, 1, 0, 1, 1, 1, 2, 4, 2, 2, 1, 5,
-				1, 1, 1, 1, 1, 1, 1, 2, 1, 0, 1, 3, 1, 1, 2, 3, 2, 1, 2, 2, 1, 0, 1, 3, 3, 5, 5, 4, 1, 1, 1, 1, 0, 1, 5,
-				2, 2, 1, 2, 2, 1, 0, 1, 3, 4, 3, 1, 1, 5, 2, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 7, 1, 0, 1, 3, 1, 1, 2, 4, 2, 4, 7, 9,
-				5, 1, 3, 1, 0, 1, 1, 3, 2, 3, 2, 2, 1, 0, 1, 1, 4, 5, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 4, 4,
-				2, 1, 2, 5, 5, 3, 3, 1, 4, 3, 1, 0, 1, 3, 1, 1, -107, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4, -309, 0, 0, -207, 0, 0, 0, 0, 0, 0, 0, -5, 0, 0, -6, -286, 0, 0, 0,
-				-58, 0, 0, 0, 0, -165, -7, -428, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -198, 0, 0, 0, 0, -51, -18, 0, 0,
-				0, 0, -114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -8, 0, 0, 0, -106, -506, 0, 0, 0, 0, 0, 0, 0, 0, -53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -460, 0, 0, -68, 0, 0, 0, 0, -9, 0, 0, 0, 0, 0, 0, 0, -126, 0, 0, 0, 0, 0, -176, 0, 0, 0, -115, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -272, 0, 0, 0, 0, 0,
-				0, -522, 0, -561, -264, 0, 0, 0, 0, 0, -136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -311, 0, 0, 0, 0, 0, 0,
-				0, 0, -130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -265, 0, 0,
-				0, -69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -472, 0, 0, 0, 0, 0, 0, -415, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -596, 0, 0, 0, 0, -117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -192, 0, 0, 0, 0, -196, 0, 0, 0, -259,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -134, 0, 0, -62, 0, 0, 0,
-				0, 0, 0, -325, 0, 0, 0, 0, 0, -501, 0, 0, -11, 0, 0, 0, 0, 0, 0, -444, 0, 0, -119, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -275, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -177, 0, 0, 0, -16, 0, 0, 0, 0, -61, 0, 0, 0, 0, 0, -266, 0, 0, 0,
-				0, -595, 0, 0, 0, 0, -54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -10, -197, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -323, 0, 0, 0, 0, -89, 0, 0, 0, 0, -367, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -502, 0, 0, 0, 0, -12, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -112, -13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -170, 0, 0, 0, 0, 0, -135, 0, 0, 0, -15, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0, 0, -121, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-493, 0, 0, 0, 0, -88, 0, 0, 0, 0, -28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -260, -29, 0, -526, 0, 0, 0, 0, 0, 0, 0, -337, 0, 0, 0, 0, -213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -123, -30, 0, 0, -50, 0, 0, 0, 0, 0, 0, 0, -31, 0, 0, 0, -235, 0, 0, 0, 0,
-				-166, -380, 0, 0, 0, 0, -368, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -57, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, 0, -495, 0, 0, 0, 0, -381, 0, 0, 0, 0, -59, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -32, 0, 0, 0, 0, 0, 0, -33, 0, 0, -273, 0, 0, 0,
-				0, -104, -340, 0, -39, 0, 0, 0, 0, -409, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -129, 0, 0, -279, 0, 0, 0, 0, 0, 0, -440, -41, 0, 0, 0, 0, -105,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -132, 0, 0, 0, -142, 0, 0, 0, 0, 0, 0,
-				-216, 0, 0, -326, 0, 0, 0, 0, -91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -377, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -402, 0, 0, -529, 0, 0, 0, 0, -92, 0, 0, 0, 0, -113, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-530, 0, 0, 0, 0, -93, 0, 0, 0, 0, -137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -418, -357, 0, 0, 0, 0, 0, 0, -423, 0, 0, -280, 0, 0, 0, 0, -94, 0, 0, 0, 0, -141, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -195, -35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -540, 0,
-				0, -287, 0, 0, 0, 0, -95, 0, 0, 0, 0, -208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -206, -36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -480, 0, 0, -327, 0, 0, 0, 0, -96, 0, 0, 0, 0, -218, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -220, -37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -38,
-				0, 0, -347, 0, 0, 0, 0, -97, 0, 0, 0, 0, -371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -40, 0, 0, -270, -269, 0, 0, 0, 0, 0, 0, -462, 0, 0, -369, 0, 0, 0, 0, -98, 0, 0, 0, 0, -274,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-261, 0, 0, -390, 0, 0, 0, 0, -99, 0, 0, 0, 0, -281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -308, -55, 0, 0, -56, 0, 0, 0, 0, 0, 0, 0, -262, 0, 0, -400, -288, -356, 0, 0, -100, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -447, 0, 0, 0, -63, 0, 0, 0,
-				-475, 0, 0, 0, 0, 0, -461, 0, 0, 0, 0, -101, 0, 0, 0, 0, -289, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -321, -64, 0, 0, -66, 0, 0, 0, 0, 0, 0, 0, -67, 0, 0, -350, 0, 0, -222, 0, -163, 0,
-				0, 0, 0, -319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -411, -116, -108, 0, 0, 0,
-				0, 0, 0, -329, 0, 0, -333, 0, 0, -214, 0, 0, 0, 0, -354, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -434, 0, 0, 0, -436, 0, 0, -379, 0, 0, 0,
-				0, -109, 0, -246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-503, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -229, 0, -322, -313, 0, 0, 0, 0, 0, 0, 0, -110, -320,
-				0, 0, 0, 0, 0, 0, 0, -247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-277, -111, 0, 0, 0, -413, 0, 0, 0, 0, 0, 0, -446, 0, 0, -341, -324, 0, 0, -118, 0, 0, 0, 0, 0, 0, 0, 0,
-				-131, -492, 0, 0, -435, 0, 0, 0, 0, 0, 0, -248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -443, 0, -416, 0, 0, -14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -316, 0, -392, 0, 0, 0, 0, 0, 0, 0, -249, 0, 0, 0, 0, -143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -290, 0, -363, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -468, 0, -120, 0,
-				0, -457, 0, 0, 0, 0, 0, -328, -463, -450, -410, 0, 0, 0, 0, 0, 0, 0, -250, 0, 0, 0, 0, -144, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -556, -291, 0, -374, 0, 0, 0, 0, 0, 0, 0, 0, -405, 0,
-				0, 0, 0, 0, 0, -145, 0, -146, 0, 0, 0, 0, 0, 0, -147, 0, 0, -421, 0, 0, 0, 0, 0, 0, 0, -251, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -564, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -353, 0, 0, 0, 0, 0, 0, -510, 0, -148, 0, -572, 0, 0, -537, 0, 0, 0, 0, 0, 0, 0, -252, 0,
-				0, 0, 0, -149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -346, 0, 0, -336, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -430, 0, 0, 0, -464, 0, 0, -583, -361, 0, 0, 0, 0, 0, 0, -476, 0, 0, -150, 0, 0,
-				0, 0, 0, -253, 0, 0, 0, 0, -431, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -348,
-				-151, 0, -138, 0, 0, 0, 0, -152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -355, 0, 0, 0, -365, -570, 0, -470, 0, 0,
-				-378, 0, 0, -422, 0, 0, 0, 0, 0, 0, -254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -140, 0, 0, 0, 0, -153, 0, 0, 0, 0, 0, 0, 0, -366, 0, 0, 0, 0, 0, -384, 0, -453,
-				0, -382, 0, 0, 0, -533, 0, -499, -154, 0, 0, 0, 0, 0, -255, 0, 0, 0, 0, -155, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -349, 0, -393, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -388, -156, 0, 0, 0,
-				0, 0, 0, -471, -594, -527, 0, 0, 0, 0, -483, -157, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -433, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -412,
-				-158, -391, -43, 0, -122, 0, 0, 0, -394, 0, 0, -159, 0, 0, -586, -587, -395, -160, -536, 0, 0, 0, 0, 0,
-				-352, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -351, -557, 0, -397,
-				0, 0, 0, 0, 0, 0, -161, 0, -201, 0, 0, 0, -399, -167, 0, -168, 0, 0, 0, 0, 0, 0, -169, 0, -419, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -589, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-425, 0, 0, 0, -449, 0, 0, 0, 0, 0, 0, 0, -479, 0, 0, 0, -385, -417, -172, 0, -376, 0, 0, 0, 0, -448, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -482, 0,
-				0, -403, 0, 0, 0, 0, -173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -285, 0, -174,
-				0, -474, 0, 0, 0, 0, 0, 0, 0, -478, 0, 0, -487, -490, 0, -504, -515, 0, 0, -524, -525, -532, -175, -600,
-				0, -528, 0, -414, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -178, 0, 0, -531, 0, 0, -438, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -535, 0, -182, 0, 0, 0, 0, 0, 0, -183, 0, 0, -554, 0, 0, -184, -185, 0, -186, 0, 0,
-				0, -538, -551, -187, -188, -210, 0, 0, 0, -439, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -124, 0, -189, 0, 0, 0, 0, 0, 0, -190, 0, 0, 0, 0, 0, -513, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -558, -191, -194, 0, 0, 0, 0, 0, 0, 0, 0, 0, -567,
-				0, 0, -575, -202, 0, -552, -559, 0, -180, -579, -584, -203, -209, 0, 0, 0, 0, -103, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -217, 0, 0, -227, 0, 0, 0, -592, 0, 0,
-				-599, -228, -534, -258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-236, 0, -48, 0, 0, -420, 0, 0, -267, 0, 0, -162, -278, -282, -345, 0, -284, -296, 0, 0, 0, 0, 0, 0, 0,
-				0, -297, 0, -298, -299, 0, 0, 0, -300, 0, 0, -90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -301, 0, -302, 0, -303, -304, 0, 0, 0, -563, 0, -245, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -70, -305, 0, -306, -307, 0, 0, 0, 0, -312, -314,
-				-315, -330, -334, -335, -338, 0, -339, 0, -358, 0, -359, 0, 0, 0, 0, -364, 0, 0, -372, -47, 0, 0, 0, 0,
-				-181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -373, -389,
-				-404, -406, -426, -429, -442, 0, -565, 0, 0, -243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -455, 0, -456, 0, -458, -459, -485, -230, -465, -467, -473, 0, -481, -488, -489,
-				-512, -514, -516, 0, -517, 0, -518, -370, 0, -569, 0, -573, 0, -244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -519, 0, 0, -521, -539, -541, -542, -544, -549, -553, -560,
-				-568, -577, -585, -590, -601, 0, 0, 0, 0, 0, 0, 0, -574, 0, -85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -593, -598, 0, -240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -87,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -241, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -193,
-				0, 0, 0, -164, -200, 0, 0, 0, 0, 0, -17, -292, 0, -293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -231, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -232, 0, 0, -233, 0, 0, 0, 0, 0, 0, 0, 0, -79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -71, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -80, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -239, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-295, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -343, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -102, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -375, -494, 0, 0, 0, 0, 0, 0, 0, -276, -332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -52, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -580, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -83, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -84, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -491, -127, 0, 0, 0, 0, 0, 0, -344, 0, 0,
-				-219, 0, 0, 0, 0, 0, 0, -223, -383, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -511, 0, 0, 0, 0, 0, 0, -523, 0, -408, -133, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -588, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -387, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -139, 0, 0, 0, 0, 0, 0, -171, 0, 0, 0, 0, 0, -212, 0, 0, 0, 0, 0, 0, -520,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -224, 0, -44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -386, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -543, -225,
-				0, 0, 0, 0, 0, 0, 0, -268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -545, 0, -548, 0, 0, 0, 0,
-				0, -271, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -591, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -562, 0, 0, 0, 0, 0, 0, -226, -342, 0,
-				0, 0, 0, 0, -498, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -407, 0, 0, 0, 0, 0, -257, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -445, 0, 0, 0, 0, 0, -331, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -582, 0, 0, 0, 0, 0, 0, -581, 0, 0, 0, 0, 0, 0, -46, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -466, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -597, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -469, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -602, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -221, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -24, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -25, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -60, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -204, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -437, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -19,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -424, 0, 0, -508, -42, 0, 0, 0, 0, 0,
-				-234, 0, 0, 0, 0, 0, 0, -452, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -484, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -401,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -441, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -396, -509, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -427, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -496, 0, 0, 0, 0, 0, -566, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -451, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -477, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -432, 0, 0, 0, 0, 0, 0, 0, 0, -215, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -486, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-497, 0, 0, 0, 0, 0, 0, 0, 0, 0, -263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -507, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -505, 0, 0, 0, 0, 0, 0, 0, 0, -65, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -555, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -546, 0, -547, 0, -550, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static short baseCheck[] = BaseCheck.baseCheck;
-
-	@Override
-	public final int baseCheck(int index) {
-		return baseCheck[index];
-	}
-
-	public final static short rhs[] = baseCheck;
-
-	@Override
-	public final int rhs(int index) {
-		return rhs[index];
-	}
-
-	public interface BaseAction {
-		public final static char baseAction[] = { 191, 5, 154, 94, 94, 31, 31, 80, 80, 39, 39, 42, 42, 218, 1, 1, 16,
-				16, 16, 16, 16, 16, 16, 17, 17, 17, 15, 11, 11, 6, 6, 6, 6, 6, 6, 2, 75, 75, 4, 4, 12, 12, 44, 44, 155,
-				155, 156, 67, 67, 43, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
-				157, 157, 157, 131, 131, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 192, 192, 193, 193,
-				194, 160, 160, 161, 161, 158, 158, 162, 159, 159, 21, 21, 22, 23, 23, 23, 24, 24, 24, 24, 25, 25, 25,
-				26, 26, 26, 30, 30, 30, 30, 30, 33, 33, 33, 34, 34, 35, 35, 37, 37, 38, 38, 40, 40, 41, 41, 45, 45, 45,
-				45, 45, 47, 47, 47, 52, 52, 54, 54, 61, 61, 62, 62, 63, 63, 64, 64, 65, 65, 65, 65, 65, 65, 65, 65, 65,
-				65, 65, 65, 65, 29, 29, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 36, 28, 163, 163, 105, 105,
-				195, 195, 104, 219, 219, 82, 82, 82, 82, 82, 82, 82, 82, 82, 83, 83, 83, 78, 78, 66, 66, 196, 196, 84,
-				84, 84, 116, 116, 197, 197, 85, 85, 85, 85, 198, 198, 86, 86, 86, 86, 86, 87, 87, 95, 95, 95, 95, 95,
-				95, 95, 95, 55, 55, 55, 55, 55, 132, 132, 130, 130, 56, 199, 27, 27, 27, 27, 27, 50, 50, 69, 69, 69, 69,
-				69, 137, 137, 133, 133, 133, 133, 133, 134, 134, 134, 135, 135, 135, 136, 136, 136, 165, 165, 165, 70,
-				70, 70, 70, 70, 71, 71, 71, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 106, 138, 138, 138, 138,
-				138, 138, 111, 111, 111, 166, 167, 167, 112, 112, 200, 169, 169, 168, 168, 139, 139, 117, 92, 92, 140,
-				58, 49, 170, 170, 59, 57, 97, 97, 171, 171, 164, 164, 141, 142, 142, 143, 89, 89, 172, 172, 76, 76, 76,
-				73, 73, 72, 77, 77, 79, 79, 68, 68, 68, 53, 98, 98, 108, 107, 107, 51, 51, 74, 74, 81, 81, 60, 109, 109,
-				109, 99, 99, 99, 100, 100, 101, 101, 101, 102, 102, 118, 118, 118, 120, 120, 119, 119, 220, 220, 103,
-				103, 202, 202, 202, 202, 202, 145, 48, 48, 174, 201, 201, 146, 146, 147, 147, 147, 148, 176, 203, 203,
-				32, 32, 110, 114, 114, 114, 114, 205, 122, 121, 121, 113, 113, 113, 177, 178, 178, 178, 178, 178, 178,
-				178, 178, 178, 178, 178, 207, 207, 204, 204, 206, 206, 179, 180, 180, 180, 180, 181, 208, 124, 123, 123,
-				209, 209, 182, 182, 182, 182, 115, 115, 115, 210, 210, 8, 8, 9, 211, 211, 212, 183, 173, 173, 184, 184,
-				185, 186, 186, 7, 7, 10, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
-				213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
-				213, 213, 213, 213, 213, 90, 93, 93, 187, 187, 150, 150, 151, 151, 151, 151, 151, 151, 3, 152, 152, 149,
-				149, 188, 221, 222, 222, 223, 223, 224, 225, 225, 189, 190, 190, 190, 190, 214, 214, 214, 126, 126, 126,
-				126, 126, 127, 128, 128, 125, 125, 96, 91, 88, 88, 175, 175, 129, 129, 215, 215, 215, 153, 153, 144,
-				144, 216, 216, 191, 191, 1119, 35, 2931, 2924, 4701, 1355, 27, 30, 31, 1172, 1197, 26, 28, 2922, 295,
-				25, 23, 50, 1259, 106, 76, 77, 107, 1283, 1332, 1321, 1428, 332, 2489, 176, 1421, 1824, 307, 1705, 1466,
-				1799, 4231, 1752, 1810, 413, 1846, 175, 1510, 2623, 35, 311, 190, 71, 2037, 2273, 34, 265, 2025, 2046,
-				1638, 35, 1149, 32, 4910, 3812, 27, 30, 31, 1172, 1197, 374, 28, 1405, 1850, 268, 263, 264, 1647, 1673,
-				35, 2034, 424, 2081, 2360, 35, 1149, 32, 672, 5349, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23,
-				50, 1259, 106, 76, 77, 107, 1283, 1332, 1321, 3168, 49, 308, 161, 425, 1849, 275, 278, 281, 1212, 985,
-				2224, 1991, 959, 1813, 3766, 71, 35, 329, 3161, 3368, 3175, 351, 3484, 356, 1818, 3174, 388, 3183, 909,
-				2264, 2396, 2858, 5887, 284, 3177, 3184, 3218, 160, 578, 759, 35, 432, 1543, 35, 1149, 32, 4694, 2369,
-				27, 30, 31, 1172, 1197, 57, 28, 1537, 35, 313, 626, 3860, 3216, 71, 35, 2273, 3320, 2360, 35, 1149, 32,
-				672, 5349, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283, 1332,
-				1321, 3168, 1038, 387, 161, 2456, 35, 311, 549, 575, 3279, 579, 71, 3182, 2700, 71, 35, 2210, 2058,
-				4274, 3161, 1595, 3175, 379, 1341, 651, 384, 3174, 534, 3183, 93, 2598, 3126, 377, 1088, 3225, 3177,
-				3184, 3218, 160, 578, 378, 3181, 2360, 35, 1149, 32, 672, 5349, 27, 30, 31, 1172, 1197, 26, 28, 975,
-				295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283, 1332, 1321, 3168, 3573, 159, 161, 440, 3273, 2215, 35,
-				1149, 32, 4694, 1766, 27, 30, 31, 1172, 1197, 56, 28, 3161, 479, 3175, 71, 35, 2034, 424, 3174, 3185,
-				3183, 71, 3487, 549, 575, 3279, 579, 3177, 3184, 3218, 160, 578, 61, 1912, 35, 1149, 32, 4531, 1257, 27,
-				30, 31, 1172, 1197, 26, 28, 467, 3259, 547, 1815, 3225, 272, 295, 3855, 759, 35, 3365, 1053, 2570, 35,
-				1149, 32, 672, 5349, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283,
-				1332, 1321, 3168, 56, 49, 161, 1335, 265, 1207, 549, 575, 3279, 579, 1851, 3487, 1991, 809, 42, 3283,
-				56, 3260, 3161, 1400, 3175, 1207, 273, 263, 264, 3174, 1556, 3183, 1729, 1488, 3282, 2033, 368, 3225,
-				3177, 3184, 3218, 160, 578, 2708, 35, 1149, 32, 672, 3329, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25,
-				23, 50, 1259, 106, 76, 77, 107, 1283, 1332, 1321, 1428, 2600, 3639, 176, 1421, 60, 1704, 1705, 1466,
-				1799, 324, 1752, 1810, 1193, 1846, 175, 3159, 71, 35, 3328, 414, 1559, 35, 1149, 32, 865, 1520, 41, 30,
-				31, 1172, 1197, 843, 550, 575, 3279, 579, 2428, 35, 1149, 32, 672, 2277, 27, 30, 31, 1172, 1197, 26, 28,
-				975, 295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283, 1332, 1321, 1428, 147, 147, 176, 1421, 3488, 4787,
-				1705, 1466, 1799, 533, 1752, 1810, 474, 1846, 175, 3159, 2693, 35, 314, 414, 323, 3327, 35, 1149, 32,
-				672, 2634, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283, 1332,
-				1321, 1428, 147, 1823, 3522, 1421, 4848, 3086, 1705, 2854, 421, 415, 2872, 2638, 35, 1149, 32, 672,
-				2736, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283, 1332, 1321,
-				1428, 1104, 2738, 176, 1421, 2200, 1860, 1705, 1466, 1799, 2089, 1752, 1810, 3470, 1846, 175, 3159,
-				1537, 35, 313, 414, 5241, 2795, 1994, 35, 1149, 32, 2765, 3281, 40, 30, 31, 1172, 1197, 422, 415, 2872,
-				2973, 35, 1149, 32, 672, 1938, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259, 106, 76, 77,
-				107, 1283, 1332, 1321, 1428, 426, 463, 176, 1421, 56, 4512, 1705, 1466, 1799, 677, 1752, 1810, 765,
-				1846, 175, 71, 35, 2034, 424, 190, 3327, 35, 1149, 32, 672, 3735, 27, 30, 31, 1172, 1197, 26, 28, 975,
-				295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283, 1332, 1321, 1428, 488, 69, 1239, 1421, 71, 3625, 1705,
-				1466, 2803, 412, 415, 2872, 2973, 35, 1149, 32, 672, 2524, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25,
-				23, 50, 1259, 106, 76, 77, 107, 1283, 1332, 1321, 1428, 1213, 1449, 176, 1421, 56, 1038, 1705, 1466,
-				1799, 769, 1752, 1810, 1233, 1846, 175, 3462, 1537, 35, 566, 408, 5853, 2532, 2973, 35, 1149, 32, 672,
-				2634, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283, 1332, 1321,
-				1428, 56, 626, 176, 1421, 1193, 837, 1705, 1466, 1799, 1086, 1752, 1810, 1818, 1846, 175, 71, 35, 2034,
-				424, 408, 2973, 35, 1149, 32, 672, 2277, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259,
-				106, 76, 77, 107, 1283, 1332, 1321, 1428, 470, 925, 176, 1421, 389, 1338, 1705, 1466, 1799, 24, 1752,
-				1810, 55, 1846, 175, 71, 35, 2273, 310, 408, 2277, 2670, 407, 2502, 35, 1149, 32, 672, 2634, 27, 30, 31,
-				1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283, 1332, 1321, 1428, 1662, 69, 176,
-				1421, 427, 463, 1705, 1466, 1799, 496, 1752, 1810, 1818, 1846, 175, 71, 3471, 2273, 74, 174, 1133, 406,
-				2345, 2973, 35, 1149, 32, 672, 2277, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259, 106,
-				76, 77, 107, 1283, 1332, 1321, 1428, 359, 1818, 176, 1421, 666, 1818, 1705, 1466, 1799, 68, 1752, 1810,
-				1818, 1846, 175, 71, 35, 316, 404, 191, 2973, 35, 1149, 32, 672, 3462, 27, 30, 31, 1172, 1197, 26, 28,
-				975, 295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283, 1332, 1321, 1428, 1193, 1818, 176, 1421, 429, 463,
-				1705, 1466, 1799, 495, 1752, 1810, 2491, 1846, 175, 71, 35, 2034, 424, 187, 2973, 35, 1149, 32, 672,
-				2277, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283, 1332, 1321,
-				1428, 469, 5679, 176, 1421, 438, 51, 1705, 1466, 1799, 53, 1752, 1810, 361, 1846, 175, 71, 35, 2034,
-				424, 186, 2973, 35, 1149, 32, 672, 2277, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259,
-				106, 76, 77, 107, 1283, 1332, 1321, 1428, 468, 97, 176, 1421, 1818, 241, 1705, 1466, 1799, 87, 1752,
-				1810, 2178, 1846, 175, 931, 35, 2273, 3472, 185, 2973, 35, 1149, 32, 672, 2277, 27, 30, 31, 1172, 1197,
-				26, 28, 975, 295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283, 1332, 1321, 1428, 56, 65, 176, 1421, 442,
-				6191, 1705, 1466, 1799, 52, 1752, 1810, 2280, 1846, 175, 931, 35, 2273, 310, 184, 2973, 35, 1149, 32,
-				672, 2277, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283, 1332,
-				1321, 1428, 56, 228, 176, 1421, 98, 1022, 1705, 1466, 1799, 90, 1752, 1810, 2322, 1846, 175, 71, 35,
-				2273, 312, 183, 2973, 35, 1149, 32, 672, 2277, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23, 50,
-				1259, 106, 76, 77, 107, 1283, 1332, 1321, 1428, 56, 61, 176, 1421, 2870, 3060, 1705, 1466, 1799, 385,
-				1752, 1810, 1007, 1846, 175, 71, 35, 2273, 3523, 182, 2973, 35, 1149, 32, 672, 2018, 27, 30, 31, 1172,
-				1197, 26, 28, 975, 295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283, 1332, 1321, 1428, 585, 1334, 176,
-				1421, 56, 1488, 1705, 1466, 1799, 966, 1752, 1810, 2178, 1846, 175, 71, 35, 2273, 315, 181, 2973, 35,
-				1149, 32, 672, 2277, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283,
-				1332, 1321, 1428, 2261, 147, 176, 1421, 334, 4931, 1705, 1466, 1799, 2405, 1752, 1810, 69, 1846, 175,
-				71, 35, 2273, 565, 180, 2973, 35, 1149, 32, 672, 2277, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23,
-				50, 1259, 106, 76, 77, 107, 1283, 1332, 1321, 1428, 56, 1348, 176, 1421, 1847, 2100, 1705, 1466, 1799,
-				2578, 1752, 1810, 69, 1846, 175, 2934, 2277, 1488, 364, 179, 2973, 35, 1149, 32, 672, 347, 27, 30, 31,
-				1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283, 1332, 1321, 1428, 67, 1499, 176,
-				1421, 2250, 233, 1705, 1466, 1799, 1499, 1752, 1810, 2862, 1846, 175, 759, 35, 432, 1939, 178, 2973, 35,
-				1149, 32, 672, 2277, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283,
-				1332, 1321, 1428, 56, 2795, 176, 1421, 1361, 1111, 1705, 1466, 1799, 66, 1752, 1810, 1482, 1846, 175,
-				2731, 35, 564, 2413, 177, 2852, 35, 1149, 32, 672, 159, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25,
-				23, 50, 1259, 106, 76, 77, 107, 1283, 1332, 1321, 1428, 1734, 1508, 1413, 1421, 5055, 3855, 1705, 1466,
-				1799, 2627, 1752, 1810, 1365, 3317, 196, 2973, 35, 1149, 32, 672, 2007, 27, 30, 31, 1172, 1197, 26, 28,
-				975, 295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283, 1332, 1321, 1428, 3574, 1907, 176, 1421, 1193, 2277,
-				1705, 1466, 1799, 391, 1752, 1810, 3260, 1846, 175, 483, 2934, 390, 593, 139, 1537, 35, 489, 2007, 5117,
-				362, 593, 367, 1934, 2342, 3094, 35, 1149, 32, 672, 1528, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25,
-				23, 50, 1259, 106, 76, 77, 107, 1283, 1332, 1321, 3168, 920, 2664, 161, 1243, 35, 1149, 32, 4910, 4511,
-				27, 30, 31, 1172, 1197, 374, 28, 2312, 2342, 3161, 3847, 3175, 56, 1229, 35, 329, 3174, 1347, 3183, 363,
-				370, 2112, 3002, 272, 295, 3177, 3184, 3218, 160, 172, 3094, 35, 1149, 32, 672, 70, 27, 30, 31, 1172,
-				1197, 26, 28, 975, 295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283, 1332, 1321, 3168, 2555, 2132, 161, 88,
-				265, 2489, 102, 2933, 370, 354, 2260, 356, 2489, 349, 1437, 2701, 56, 465, 3161, 1350, 3175, 3582, 273,
-				263, 264, 3174, 348, 3183, 2831, 2171, 35, 489, 1488, 5117, 3177, 3184, 3218, 160, 171, 3094, 35, 1149,
-				32, 672, 3528, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283, 1332,
-				1321, 3168, 2406, 1915, 161, 2627, 265, 5179, 2734, 1662, 2594, 3185, 483, 4274, 342, 345, 1763, 482,
-				3568, 3569, 3161, 320, 3175, 2723, 277, 263, 264, 3174, 321, 3183, 360, 1501, 1956, 2007, 411, 378,
-				3177, 3184, 3218, 160, 170, 3094, 35, 1149, 32, 672, 2008, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25,
-				23, 50, 1259, 106, 76, 77, 107, 1283, 1332, 1321, 3168, 671, 2277, 161, 1243, 35, 1149, 32, 4910, 4511,
-				27, 30, 31, 1172, 1197, 374, 28, 2342, 1734, 3161, 1655, 3175, 5055, 147, 44, 3283, 3174, 5836, 3183,
-				56, 1488, 2489, 2634, 65, 2446, 3177, 3184, 3218, 160, 169, 3094, 35, 1149, 32, 672, 2084, 27, 30, 31,
-				1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283, 1332, 1321, 3168, 1499, 2277,
-				161, 2600, 265, 2594, 369, 370, 409, 354, 2260, 356, 2696, 349, 1437, 486, 3568, 3569, 3161, 1423, 3175,
-				1645, 280, 263, 264, 3174, 2987, 3183, 1653, 411, 89, 2007, 64, 102, 3177, 3184, 3218, 160, 168, 3094,
-				35, 1149, 32, 672, 331, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259, 106, 76, 77, 107,
-				1283, 1332, 1321, 3168, 2312, 1893, 161, 1243, 35, 1149, 32, 4910, 4511, 27, 30, 31, 1172, 1197, 374,
-				28, 2342, 69, 3161, 478, 3175, 492, 428, 463, 1728, 3174, 227, 3183, 759, 35, 432, 71, 35, 329, 3177,
-				3184, 3218, 160, 167, 3094, 35, 1149, 32, 672, 399, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23,
-				50, 1259, 106, 76, 77, 107, 1283, 1332, 1321, 3168, 2277, 466, 161, 56, 2855, 3076, 2975, 370, 2145,
-				354, 2260, 356, 358, 349, 1437, 1229, 3562, 329, 3161, 2626, 3175, 593, 2818, 2698, 4440, 3174, 3628,
-				3183, 1954, 2314, 2489, 2787, 3470, 415, 3177, 3184, 3218, 160, 166, 3094, 35, 1149, 32, 672, 2789, 27,
-				30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283, 1332, 1321, 3168, 2277,
-				417, 161, 1729, 35, 1149, 32, 4531, 2417, 27, 30, 31, 1172, 1197, 59, 28, 3277, 3629, 3161, 1335, 3175,
-				584, 457, 56, 1728, 3174, 147, 3183, 1444, 1365, 6056, 55, 2007, 214, 3177, 3184, 3218, 160, 165, 3094,
-				35, 1149, 32, 672, 330, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259, 106, 76, 77, 107,
-				1283, 1332, 1321, 3168, 1662, 1716, 161, 1729, 35, 1149, 32, 4531, 2420, 27, 30, 31, 1172, 1197, 58, 28,
-				56, 2342, 3161, 585, 3175, 2408, 2762, 1956, 2593, 3174, 56, 3183, 2776, 6111, 2489, 3362, 2007, 495,
-				3177, 3184, 3218, 160, 164, 3094, 35, 1149, 32, 672, 2874, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25,
-				23, 50, 1259, 106, 76, 77, 107, 1283, 1332, 1321, 3168, 3072, 2277, 161, 1994, 35, 1149, 32, 365, 370,
-				1669, 30, 31, 1172, 1197, 56, 3001, 1893, 2342, 3161, 2474, 3175, 584, 147, 319, 1488, 3174, 6181, 3183,
-				71, 147, 405, 1193, 54, 6233, 3177, 3184, 3218, 160, 163, 3094, 35, 1149, 32, 672, 339, 27, 30, 31,
-				1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283, 1332, 1321, 3168, 2594, 2597,
-				161, 1994, 35, 1149, 32, 3084, 370, 1857, 30, 31, 1172, 1197, 2018, 1917, 56, 56, 3161, 1833, 3175,
-				2673, 4274, 56, 3171, 3174, 572, 3183, 5737, 1488, 1488, 1488, 1752, 1488, 3177, 3184, 3218, 160, 162,
-				3154, 35, 1149, 32, 672, 378, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259, 106, 76, 77,
-				107, 1283, 1332, 1321, 3168, 2010, 2489, 161, 56, 265, 2594, 2594, 2971, 6135, 3258, 1845, 718, 71, 35,
-				2034, 424, 56, 2095, 3161, 3785, 3175, 2138, 283, 263, 264, 3174, 3724, 3183, 56, 587, 586, 142, 2082,
-				1987, 3177, 3184, 3218, 160, 159, 3214, 35, 1149, 32, 672, 307, 27, 30, 31, 1172, 1197, 26, 28, 975,
-				295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283, 1332, 1321, 1428, 56, 417, 176, 1421, 56, 5754, 1705,
-				1466, 1799, 1995, 1752, 1810, 2178, 1846, 175, 418, 2277, 2277, 2185, 221, 3327, 35, 1149, 32, 672,
-				2277, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283, 1332, 1321,
-				1428, 357, 101, 2257, 1421, 254, 309, 1705, 1466, 1799, 3064, 1752, 1810, 2277, 3317, 196, 3327, 35,
-				1149, 32, 672, 2353, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283,
-				1332, 1321, 1428, 2594, 3078, 2418, 1421, 56, 4274, 1705, 1466, 1799, 2739, 1752, 1810, 56, 3317, 196,
-				56, 56, 5815, 2178, 2178, 6205, 2533, 2178, 2178, 56, 2450, 319, 4140, 2277, 2443, 3327, 35, 1149, 32,
-				672, 1661, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283, 1332,
-				1321, 1428, 338, 211, 487, 1421, 231, 230, 1705, 1466, 1799, 2496, 1752, 1810, 2416, 3317, 196, 3327,
-				35, 1149, 32, 672, 459, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259, 106, 76, 77, 107,
-				1283, 1332, 1321, 1428, 56, 591, 1867, 1421, 395, 2906, 1705, 1466, 1799, 571, 1752, 1810, 2669, 3317,
-				196, 2268, 581, 2665, 753, 2575, 3370, 3373, 2178, 2178, 491, 2006, 71, 35, 2034, 424, 3327, 35, 1149,
-				32, 672, 328, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283, 1332,
-				1321, 1428, 1922, 49, 1657, 1421, 337, 234, 1705, 1466, 1799, 1019, 1752, 1810, 46, 3317, 196, 3486, 35,
-				1149, 32, 672, 458, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283,
-				1332, 1321, 1428, 56, 2533, 1248, 1421, 416, 995, 1705, 1466, 1799, 265, 1752, 1810, 56, 3317, 196,
-				2927, 2914, 4329, 2178, 2178, 4591, 2023, 2178, 2490, 2534, 835, 3368, 286, 263, 264, 3327, 35, 1149,
-				32, 672, 461, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283, 1332,
-				1321, 1428, 232, 333, 744, 1421, 4872, 2492, 1705, 1466, 1799, 2178, 1752, 2915, 2178, 2564, 2277, 3433,
-				35, 1149, 32, 672, 3623, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259, 106, 76, 77, 107,
-				1283, 1332, 1321, 3168, 3062, 387, 2276, 413, 2796, 2594, 255, 1207, 1486, 225, 4274, 1508, 1011, 2290,
-				2566, 3855, 1929, 589, 3161, 4274, 3175, 379, 1341, 651, 384, 3174, 743, 3183, 915, 925, 192, 577, 4140,
-				2045, 3177, 3461, 3327, 35, 1149, 32, 672, 4140, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23, 50,
-				1259, 106, 76, 77, 107, 1283, 1332, 1321, 1428, 2542, 3260, 577, 1421, 2486, 2179, 1705, 1466, 1799,
-				2277, 2865, 3380, 35, 1149, 32, 672, 367, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259,
-				106, 76, 77, 107, 1283, 1332, 1321, 3168, 2276, 1930, 4964, 2389, 757, 1207, 1588, 395, 6144, 2494,
-				2878, 2945, 2601, 3003, 1663, 2529, 396, 2595, 3161, 2628, 3175, 3004, 2996, 3370, 3373, 3174, 2664,
-				3183, 192, 2633, 71, 35, 2034, 424, 3425, 2905, 35, 1149, 32, 672, 1207, 27, 30, 31, 1172, 1197, 26, 28,
-				975, 295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283, 1332, 1321, 3168, 49, 188, 2706, 2668, 2995, 2959,
-				1216, 2778, 2735, 1394, 2277, 1991, 1171, 3380, 35, 1149, 32, 672, 3357, 27, 30, 31, 1172, 1197, 26, 28,
-				975, 295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283, 1332, 1321, 3168, 1218, 5026, 3064, 1682, 1292,
-				3006, 2822, 2011, 2929, 2793, 2881, 4274, 2960, 3117, 3124, 3092, 3176, 87, 3161, 2962, 3175, 3026,
-				1851, 3487, 2277, 3174, 2277, 3422, 3380, 35, 1149, 32, 672, 4140, 27, 30, 31, 1172, 1197, 26, 28, 975,
-				295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283, 1332, 1321, 3168, 5088, 3086, 2868, 265, 3118, 1362,
-				3119, 173, 3183, 2998, 3236, 1637, 3120, 3237, 3244, 2966, 2958, 6850, 3161, 6850, 3175, 277, 263, 264,
-				2277, 3424, 3327, 35, 1149, 32, 672, 6850, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259,
-				106, 76, 77, 107, 1283, 1332, 1321, 1428, 6850, 541, 2869, 1421, 2277, 2277, 2740, 3380, 35, 1149, 32,
-				672, 6850, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283, 1332,
-				1321, 3168, 6850, 3327, 5212, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 539,
-				540, 6850, 6850, 3161, 323, 3386, 3327, 35, 1149, 32, 672, 6850, 27, 30, 31, 1172, 1197, 26, 28, 975,
-				295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283, 1332, 1321, 1428, 2853, 3522, 6850, 2751, 3327, 35, 1149,
-				32, 672, 6850, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283, 1332,
-				1321, 1428, 6850, 6850, 6850, 2788, 3380, 35, 1149, 32, 672, 6850, 27, 30, 31, 1172, 1197, 26, 28, 975,
-				295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283, 1332, 1321, 3168, 1258, 35, 1149, 32, 4993, 4511, 27, 30,
-				31, 1172, 1197, 374, 28, 3380, 35, 1149, 32, 672, 3390, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25,
-				23, 50, 1259, 106, 76, 77, 107, 1283, 1332, 1321, 3168, 6850, 6850, 6850, 71, 35, 2034, 424, 2776, 71,
-				35, 2034, 424, 4451, 3260, 56, 2276, 6850, 2276, 3420, 1207, 1207, 6850, 1207, 6850, 6850, 6850, 6850,
-				6850, 367, 2092, 6850, 6850, 354, 2260, 356, 49, 349, 1437, 386, 6850, 49, 2181, 188, 192, 2783, 192,
-				1991, 1282, 6850, 348, 1394, 1991, 799, 3327, 35, 1149, 32, 672, 5914, 27, 30, 31, 1172, 1197, 26, 28,
-				975, 295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283, 1332, 1321, 2535, 265, 6850, 6850, 6850, 6850, 6850,
-				387, 6850, 6850, 56, 6850, 6850, 265, 6850, 1207, 265, 6850, 6850, 280, 263, 264, 341, 345, 1763, 6850,
-				6850, 379, 1341, 651, 384, 283, 263, 264, 569, 263, 264, 1776, 188, 6850, 6850, 2641, 6850, 2774, 6850,
-				2983, 1521, 3327, 35, 1149, 32, 672, 3572, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259,
-				106, 76, 77, 107, 1283, 1332, 1321, 2553, 3327, 35, 1149, 32, 672, 6850, 27, 30, 31, 1172, 1197, 26, 28,
-				975, 295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283, 1332, 1321, 2608, 3327, 35, 1149, 32, 672, 6850, 27,
-				30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283, 1332, 1321, 2642, 3327,
-				35, 1149, 32, 672, 6850, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259, 106, 76, 77, 107,
-				1283, 1332, 1321, 3374, 3327, 35, 1149, 32, 672, 6850, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23,
-				50, 1259, 106, 76, 77, 107, 1283, 1332, 1321, 3383, 3327, 35, 1149, 32, 672, 6850, 27, 30, 31, 1172,
-				1197, 26, 28, 975, 295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283, 1332, 1321, 3385, 1339, 35, 1149, 32,
-				4910, 4448, 27, 30, 31, 1172, 1197, 374, 28, 3327, 35, 1149, 32, 672, 6850, 27, 30, 31, 1172, 1197, 26,
-				28, 975, 295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283, 1332, 1321, 2905, 3759, 35, 1149, 32, 4910,
-				4755, 27, 30, 31, 1172, 1197, 374, 28, 6850, 1220, 35, 3525, 32, 4993, 4511, 27, 30, 31, 1172, 1197,
-				374, 28, 6850, 6850, 6850, 56, 386, 354, 2260, 356, 1207, 349, 1437, 6850, 387, 6850, 6850, 2276, 2276,
-				6850, 6850, 6850, 1207, 1207, 3475, 6850, 1508, 1904, 6850, 6850, 3855, 3855, 6850, 188, 379, 1341, 651,
-				384, 6850, 6850, 6850, 2871, 3260, 6850, 3473, 192, 192, 354, 2260, 356, 6850, 349, 1437, 2292, 387,
-				6850, 6850, 367, 1207, 6850, 6850, 354, 2260, 356, 2987, 349, 1437, 6850, 6850, 3539, 35, 2034, 424,
-				4441, 379, 1341, 651, 384, 2455, 3260, 3260, 188, 270, 295, 1776, 6850, 6850, 5914, 6850, 597, 6850,
-				6850, 6850, 6850, 4232, 4232, 3327, 35, 1149, 32, 672, 307, 27, 30, 31, 1172, 1197, 26, 28, 975, 295,
-				25, 23, 50, 1259, 106, 76, 77, 107, 2462, 265, 6850, 2988, 3088, 2382, 35, 1149, 32, 4910, 4511, 27, 30,
-				31, 1172, 1197, 374, 28, 401, 268, 263, 264, 3327, 35, 1149, 32, 672, 6850, 27, 30, 31, 1172, 1197, 26,
-				28, 975, 295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283, 1332, 2649, 6850, 453, 455, 3524, 6850, 6850,
-				6850, 6850, 308, 6850, 6850, 6850, 275, 278, 281, 1212, 985, 6850, 6850, 94, 96, 6850, 6850, 6850, 6850,
-				6850, 6850, 6850, 1575, 354, 2260, 356, 6850, 349, 1437, 909, 2264, 2396, 2858, 5887, 284, 3327, 35,
-				1149, 32, 672, 348, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283,
-				1332, 2715, 3216, 259, 243, 35, 2034, 424, 599, 6850, 6850, 1508, 604, 6850, 2260, 3855, 6850, 6850,
-				3855, 4274, 6850, 56, 71, 35, 2034, 424, 1207, 6850, 6850, 6850, 261, 188, 6850, 341, 345, 1763, 49,
-				6850, 6850, 3079, 6850, 4140, 212, 6850, 6850, 2594, 6850, 1991, 3274, 188, 6850, 236, 248, 653, 307,
-				6850, 3324, 1955, 235, 245, 246, 247, 249, 3572, 3260, 1, 6850, 3260, 6850, 201, 599, 2917, 2180, 6850,
-				1508, 1832, 6850, 1207, 3855, 367, 4274, 200, 367, 6850, 6850, 215, 199, 202, 203, 204, 205, 206, 261,
-				188, 71, 35, 2034, 424, 6850, 6850, 188, 3079, 378, 6850, 212, 6850, 6850, 2594, 3276, 4675, 6850, 233,
-				6144, 236, 248, 653, 6850, 395, 6850, 6850, 235, 245, 246, 247, 249, 6850, 49, 3260, 375, 6850, 6850,
-				201, 1917, 3370, 3373, 630, 6850, 1991, 959, 6850, 6850, 6850, 367, 200, 6850, 213, 6850, 216, 199, 202,
-				203, 204, 205, 206, 1416, 35, 1149, 32, 4910, 4448, 27, 30, 31, 1172, 1197, 374, 28, 3327, 35, 1149, 32,
-				672, 5962, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259, 106, 76, 77, 107, 1283, 2355,
-				6850, 6850, 3327, 35, 1149, 32, 672, 4502, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259,
-				106, 76, 77, 107, 1283, 2421, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 354, 2260, 356, 6850, 349, 1437,
-				6850, 387, 6850, 6850, 6850, 6850, 1770, 35, 1149, 32, 4993, 588, 27, 30, 31, 1172, 1197, 374, 28, 6850,
-				6850, 379, 1341, 651, 384, 329, 35, 2034, 424, 6850, 6850, 589, 2027, 35, 2034, 424, 1751, 6850, 2003,
-				35, 2034, 424, 6850, 6850, 6850, 345, 6850, 6850, 6850, 6850, 599, 6850, 6850, 6850, 6850, 6850, 6850,
-				49, 6850, 3260, 56, 6850, 56, 6850, 49, 1207, 6850, 4274, 1991, 1298, 307, 6850, 261, 188, 368, 1991,
-				2051, 6850, 354, 2260, 356, 3079, 350, 1437, 212, 387, 2260, 2594, 188, 378, 3855, 4274, 4707, 236, 248,
-				653, 2011, 6850, 6850, 2917, 235, 245, 246, 247, 249, 381, 1341, 651, 384, 431, 56, 201, 6850, 4140,
-				599, 1207, 6850, 6850, 329, 35, 2034, 424, 718, 200, 6850, 6850, 6850, 3624, 199, 202, 203, 204, 205,
-				206, 6850, 6850, 261, 188, 188, 3260, 6850, 6850, 6850, 2150, 3369, 3079, 2378, 6850, 212, 6850, 49,
-				2594, 6850, 6850, 367, 6850, 6850, 236, 248, 653, 6850, 1991, 47, 6850, 235, 245, 246, 247, 249, 72,
-				6850, 517, 6850, 2180, 6850, 201, 599, 6850, 599, 243, 35, 2034, 424, 6850, 4675, 1101, 6850, 200, 6850,
-				395, 6850, 210, 199, 202, 203, 204, 205, 206, 261, 188, 3270, 188, 6850, 3508, 1917, 3370, 3373, 3079,
-				1207, 3079, 212, 49, 212, 2594, 6850, 6850, 6850, 6850, 6850, 236, 248, 653, 1991, 47, 6850, 6850, 235,
-				245, 246, 247, 249, 188, 6850, 603, 6850, 6850, 6850, 201, 599, 194, 56, 243, 35, 2034, 424, 1207, 1531,
-				2775, 6850, 200, 6850, 228, 4274, 208, 199, 202, 203, 204, 205, 206, 261, 188, 329, 35, 2034, 424, 6850,
-				6850, 188, 3079, 6850, 6850, 212, 49, 378, 2594, 2444, 6850, 592, 6850, 6850, 236, 248, 653, 1991, 2729,
-				6850, 6850, 235, 245, 246, 247, 249, 6850, 49, 689, 6850, 6850, 6850, 201, 599, 6850, 6850, 6850, 6850,
-				1991, 47, 718, 4459, 56, 6850, 200, 6850, 6850, 4274, 209, 199, 202, 203, 204, 205, 206, 261, 188, 243,
-				35, 2034, 424, 595, 2842, 56, 3079, 6850, 6850, 212, 1207, 378, 2594, 6850, 6850, 6850, 6850, 6850, 236,
-				248, 653, 6850, 6850, 6850, 6850, 235, 245, 246, 247, 249, 6850, 49, 775, 188, 6850, 6850, 201, 599,
-				6850, 6850, 6850, 3459, 1991, 1488, 718, 6850, 6062, 229, 200, 6850, 6850, 6850, 219, 199, 202, 203,
-				204, 205, 206, 261, 188, 243, 35, 2034, 424, 2209, 4459, 56, 3079, 6850, 6850, 212, 1207, 3673, 2594,
-				6850, 6850, 6850, 6850, 6850, 236, 248, 653, 6850, 6850, 6850, 6850, 235, 245, 246, 247, 249, 6850, 49,
-				861, 188, 6850, 6850, 201, 599, 6850, 56, 6850, 1564, 1991, 47, 1207, 6850, 56, 6850, 200, 6850, 6850,
-				4274, 3630, 199, 202, 203, 204, 205, 206, 261, 188, 243, 35, 2034, 424, 6850, 885, 188, 3079, 6850,
-				6850, 212, 6850, 378, 2594, 3672, 3129, 6850, 6850, 6850, 236, 248, 653, 6850, 6850, 6850, 6850, 235,
-				245, 246, 247, 249, 6850, 49, 947, 6850, 6850, 6850, 201, 599, 6850, 6850, 6850, 6850, 1991, 47, 718,
-				6850, 56, 6850, 200, 6850, 6850, 4274, 224, 199, 202, 203, 204, 205, 206, 261, 188, 243, 35, 2034, 424,
-				2246, 1249, 6850, 3079, 6850, 6850, 212, 6850, 378, 2594, 6850, 6850, 6850, 6850, 6850, 236, 248, 653,
-				6850, 6850, 6850, 6850, 235, 245, 246, 247, 249, 6850, 49, 1033, 6850, 6850, 6850, 201, 599, 6850, 6850,
-				6850, 6850, 1991, 47, 718, 6850, 6850, 6850, 200, 6850, 6850, 6850, 218, 199, 202, 203, 204, 205, 206,
-				261, 188, 71, 35, 2034, 424, 1870, 1384, 6850, 3079, 6850, 6850, 212, 6850, 6850, 2594, 6850, 6850,
-				6850, 6850, 6850, 236, 248, 653, 6850, 6850, 6850, 6850, 235, 245, 246, 247, 249, 6850, 49, 6850, 6850,
-				6850, 6850, 201, 6850, 6850, 6850, 6850, 6850, 1991, 642, 6850, 6850, 6850, 6850, 200, 6850, 6850, 6850,
-				227, 199, 202, 203, 204, 205, 206, 3327, 35, 1149, 32, 672, 6850, 27, 30, 31, 1172, 1197, 26, 28, 975,
-				295, 25, 23, 50, 1259, 106, 76, 77, 107, 2464, 3327, 35, 1149, 32, 672, 6850, 27, 30, 31, 1172, 1197,
-				26, 28, 975, 295, 25, 23, 50, 1259, 106, 76, 77, 107, 2471, 3638, 35, 553, 6850, 6850, 6850, 6850, 6850,
-				6850, 6850, 6850, 6850, 6850, 270, 295, 3327, 35, 1149, 32, 672, 6850, 27, 30, 31, 1172, 1197, 26, 28,
-				975, 295, 25, 23, 50, 1259, 106, 76, 77, 85, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 3327, 2037,
-				1149, 2045, 672, 265, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259, 106, 76, 77, 84, 268,
-				263, 264, 3327, 35, 1149, 32, 672, 6850, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259,
-				106, 76, 77, 83, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850,
-				6850, 275, 278, 281, 1212, 985, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850,
-				6850, 6850, 6850, 6850, 6850, 6850, 2198, 3567, 3881, 3893, 5747, 3327, 35, 1149, 32, 672, 6850, 27, 30,
-				31, 1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259, 106, 76, 77, 82, 3327, 35, 1149, 32, 672, 6850, 27,
-				30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259, 106, 76, 77, 81, 6850, 6850, 6850, 6850, 562,
-				563, 567, 3327, 35, 1149, 32, 672, 6850, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23, 50, 1259,
-				106, 76, 77, 80, 3896, 3327, 35, 1149, 32, 672, 6850, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23,
-				50, 1259, 106, 76, 77, 79, 3327, 35, 1149, 32, 672, 6850, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25,
-				23, 50, 1259, 106, 76, 77, 78, 3033, 35, 1149, 32, 672, 6850, 27, 30, 31, 1172, 1197, 26, 28, 975, 295,
-				25, 23, 50, 1259, 106, 76, 77, 104, 3327, 35, 1149, 32, 672, 6850, 27, 30, 31, 1172, 1197, 26, 28, 975,
-				295, 25, 23, 50, 1259, 106, 76, 77, 109, 3327, 35, 1149, 32, 672, 6850, 27, 30, 31, 1172, 1197, 26, 28,
-				975, 295, 25, 23, 50, 1259, 106, 76, 77, 108, 3327, 35, 1149, 32, 672, 6850, 27, 30, 31, 1172, 1197, 26,
-				28, 975, 295, 25, 23, 50, 1259, 106, 76, 77, 105, 1492, 35, 3525, 32, 4910, 4511, 27, 30, 31, 1172,
-				1197, 374, 28, 3274, 35, 1149, 32, 672, 6850, 27, 30, 31, 1172, 1197, 26, 28, 975, 295, 25, 23, 50,
-				1259, 86, 76, 77, 1603, 6850, 6850, 56, 56, 4274, 6850, 6850, 4274, 599, 3687, 35, 553, 6850, 6850,
-				6850, 6850, 1870, 6850, 6850, 6850, 6850, 4274, 271, 295, 6850, 6850, 261, 6850, 6850, 378, 378, 188,
-				6850, 6850, 6850, 6850, 354, 2260, 356, 1494, 349, 1437, 6850, 261, 6850, 6850, 6850, 238, 248, 653,
-				6850, 6850, 6850, 2455, 237, 245, 246, 247, 249, 6850, 265, 6850, 718, 718, 238, 248, 653, 6850, 6850,
-				6850, 6850, 237, 245, 246, 247, 249, 6850, 1959, 269, 263, 264, 6850, 4274, 545, 1436, 6850, 6850, 6850,
-				6850, 239, 241, 243, 3469, 6850, 250, 240, 242, 6850, 2271, 35, 2034, 424, 6850, 6850, 261, 6850, 239,
-				241, 243, 3469, 6850, 250, 240, 242, 6850, 71, 35, 2034, 424, 276, 279, 282, 1212, 985, 6850, 238, 248,
-				653, 6850, 2407, 49, 6097, 237, 245, 246, 247, 249, 6850, 6850, 6850, 6850, 1991, 47, 454, 455, 3524,
-				2605, 49, 6097, 3589, 35, 2034, 424, 4441, 6850, 6850, 6850, 6850, 1991, 2048, 6850, 6850, 271, 295,
-				6850, 719, 6850, 239, 241, 243, 3469, 6850, 250, 240, 242, 6850, 1385, 35, 1149, 32, 4993, 307, 27, 30,
-				31, 1172, 1197, 374, 28, 6850, 1296, 6850, 6850, 6850, 5951, 4274, 6850, 562, 563, 568, 265, 6850, 6850,
-				6850, 6850, 6850, 6850, 2737, 6850, 6097, 6850, 6850, 6850, 71, 35, 2034, 424, 261, 269, 263, 264, 6850,
-				6850, 6850, 1385, 35, 1149, 32, 4993, 3260, 27, 30, 31, 1172, 1197, 374, 28, 6850, 828, 443, 6002, 6850,
-				6850, 6850, 368, 49, 6850, 6850, 354, 2260, 356, 6850, 352, 1437, 6850, 308, 1991, 2660, 6850, 276, 279,
-				282, 1212, 985, 2315, 35, 1149, 32, 4910, 4194, 27, 30, 31, 1172, 1197, 374, 28, 3260, 6850, 6850, 444,
-				445, 446, 3469, 2048, 56, 6850, 285, 6850, 4274, 4274, 6850, 368, 6850, 6850, 6850, 354, 2260, 356,
-				1692, 350, 1437, 6850, 439, 4274, 3467, 6850, 6850, 6850, 6850, 6850, 261, 378, 6850, 6850, 6850, 6850,
-				6850, 243, 35, 2034, 424, 6850, 6850, 2182, 6850, 261, 6850, 6850, 599, 6850, 6850, 238, 248, 653, 6850,
-				351, 3484, 356, 237, 245, 246, 247, 249, 6850, 718, 6850, 238, 248, 653, 49, 378, 188, 6850, 237, 245,
-				246, 247, 249, 1781, 220, 1991, 47, 6850, 4274, 6850, 543, 447, 450, 6850, 6850, 6850, 6850, 2137, 239,
-				241, 243, 3469, 4274, 581, 240, 242, 6850, 6850, 2512, 1578, 261, 6850, 6850, 239, 241, 243, 3469, 6850,
-				580, 240, 242, 2822, 6850, 6850, 261, 6850, 4274, 6850, 6850, 6850, 2126, 238, 248, 653, 3855, 6850,
-				6850, 6850, 237, 245, 246, 247, 249, 6850, 6850, 238, 248, 653, 4140, 6850, 6850, 6850, 237, 245, 246,
-				247, 249, 2226, 6850, 6850, 2598, 6850, 4274, 6850, 222, 6850, 6850, 243, 35, 2034, 424, 6850, 6850,
-				239, 241, 243, 3469, 1179, 251, 240, 242, 5951, 4274, 3260, 261, 6850, 6850, 239, 241, 243, 3469, 2882,
-				340, 240, 242, 6850, 4274, 6850, 368, 49, 6850, 6850, 6850, 6850, 261, 238, 248, 653, 6850, 387, 1991,
-				47, 237, 245, 246, 247, 249, 6850, 4140, 2459, 35, 2034, 424, 6850, 541, 828, 443, 6002, 56, 381, 1341,
-				651, 384, 599, 1625, 6850, 6850, 6850, 56, 6850, 6850, 6850, 6850, 4274, 6850, 3280, 6850, 239, 241,
-				243, 3469, 49, 535, 240, 242, 378, 188, 6850, 6850, 6850, 6850, 6850, 1991, 47, 1394, 378, 6850, 444,
-				445, 446, 3469, 538, 540, 6850, 56, 6850, 56, 6850, 56, 599, 6850, 599, 6850, 599, 6850, 6850, 2540,
-				6850, 718, 6850, 6850, 6850, 3467, 6850, 541, 6850, 6850, 6850, 718, 6850, 6850, 378, 188, 378, 188,
-				378, 188, 6850, 3564, 1635, 220, 6850, 220, 6850, 220, 6850, 6850, 6850, 6850, 596, 6850, 6850, 6850,
-				6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 2512, 6850, 2512, 6850, 2512, 6850,
-				6850, 538, 540, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 447, 449, 6850, 6850,
-				6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850,
-				6850, 6850, 6850, 3620, 6850, 6850, 627, 6850, 6850, 5928, 6850, 6850, 6850, 6850, 6850, 3429, 6850,
-				3530, 6850, 3584, 6850, 0, 39, 6865, 0, 39, 6864, 0, 1238, 29, 0, 476, 1324, 0, 490, 1369, 0, 38, 646,
-				0, 38, 6865, 0, 38, 6864, 0, 4005, 125, 0, 1, 480, 0, 494, 1381, 0, 493, 1478, 0, 956, 91, 0, 1238, 423,
-				0, 35, 33, 0, 32, 34, 0, 39, 646, 0, 1, 1085, 0, 1, 7156, 0, 1, 7155, 0, 1, 7154, 0, 1, 7153, 0, 1,
-				7152, 0, 1, 7151, 0, 1, 7150, 0, 1, 7149, 0, 1, 7148, 0, 1, 7147, 0, 1, 7146, 0, 39, 1, 6865, 0, 39, 1,
-				6864, 0, 317, 430, 0, 317, 322, 0, 7117, 274, 0, 7116, 274, 0, 7223, 274, 0, 7222, 274, 0, 7144, 274, 0,
-				7143, 274, 0, 7142, 274, 0, 7141, 274, 0, 7140, 274, 0, 7139, 274, 0, 7138, 274, 0, 7137, 274, 0, 7156,
-				274, 0, 7155, 274, 0, 7154, 274, 0, 7153, 274, 0, 7152, 274, 0, 7151, 274, 0, 7150, 274, 0, 7149, 274,
-				0, 7148, 274, 0, 7147, 274, 0, 7146, 274, 0, 39, 6865, 274, 0, 39, 6864, 274, 0, 6888, 274, 0, 6865, 48,
-				0, 6864, 48, 0, 43, 6886, 0, 43, 37, 0, 4005, 127, 0, 4005, 126, 0, 6856, 1, 0, 6855, 1, 0, 3359, 270,
-				0, 32, 424, 0, 29, 423, 0, 1, 5715, 0, 1, 5364, 0, 1, 5421, 0, 1, 5487, 0, 1, 5510, 0, 1, 5540, 0, 1,
-				5564, 0, 1, 5587, 0, 1, 3493, 0, 1042, 1, 0, 1, 2317, 0, 1, 5395, 0, 1, 6872, 0, 1, 6871, 0, 1, 6870, 0,
-				1, 6869, 0, 1, 6868, 0, 1, 6867, 0, 1, 6866, 0, 1, 638, 0, 1, 641, 0, 1, 652, 0, 1, 714, 0, 1, 751, 0,
-				39, 1, 0, 366, 481, 0, 1, 92, 0, 47, 37, 0, 6888, 1, 0, 6865, 274, 0, 6864, 274, 0, 537, 3468, 0, 6888,
-				1, 262, 0, 39, 1, 262, 0, 262, 452, 0, 6865, 37, 0, 6864, 37, 0, 6886, 45, 0, 37, 45, 0, 6865, 36, 0,
-				6864, 36, 0, 6865, 2, 37, 0, 6864, 2, 37, 0, 6860, 441, 0, 6859, 441, 0, 1, 2380, 0, 1, 646, 0, 262,
-				451, 0, 366, 95, 0, 35, 73, 0, 2733, 353, 0, 1, 366, 0, 3867, 312, 0, 537, 6037, 0, 1, 262, 0, 262, 253,
-				0, 1, 743, 0, 1, 2001, 0, 262, 252, 0, 6862, 1, 0, 6858, 1, 0, 1, 262, 3576, 0, 6859, 262, 0, 3577, 262,
-				0, 6862, 419, 0, 6861, 419, 0, 3622, 262, 0, 10, 12, 0, 8, 10, 12, 0, 3627, 226, 0, 217, 5150, 0, 3631,
-				419, 0, 8, 12, 0 };
-	}
-
-	public final static char baseAction[] = BaseAction.baseAction;
-
-	@Override
-	public final int baseAction(int index) {
-		return baseAction[index];
-	}
-
-	public final static char lhs[] = baseAction;
-
-	@Override
-	public final int lhs(int index) {
-		return lhs[index];
-	}
-
-	public interface TermCheck {
-		public final static byte termCheck[] = { 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
-				19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
-				45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 0, 56, 57, 58, 59, 0, 61, 62, 63, 0, 65, 66, 67, 0, 69, 0, 1, 2,
-				73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
-				15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
-				41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 86, 87, 56, 57, 58, 59, 0, 61, 62, 63, 4, 65, 66,
-				67, 94, 69, 92, 93, 0, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
-				10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
-				36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 0, 56, 57, 58, 59, 0, 61, 62,
-				63, 4, 65, 66, 67, 0, 69, 0, 1, 2, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5,
-				6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
-				33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 86, 87, 56, 57, 58,
-				59, 0, 61, 62, 63, 95, 65, 66, 67, 0, 69, 0, 1, 2, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0,
-				1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
-				29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0,
-				68, 56, 57, 58, 59, 0, 61, 62, 63, 0, 65, 66, 67, 0, 69, 0, 3, 0, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82,
-				83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
-				25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
-				51, 52, 53, 86, 87, 56, 57, 58, 59, 0, 61, 62, 63, 0, 65, 66, 67, 94, 69, 86, 87, 86, 87, 74, 75, 76,
-				77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
-				19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
-				45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 0, 56, 57, 58, 59, 0, 61, 62, 63, 0, 65, 66, 67, 94, 69, 92, 93,
-				0, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
-				15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
-				41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 86, 87, 56, 57, 58, 59, 0, 61, 62, 63, 95, 65, 66,
-				67, 94, 69, 92, 93, 86, 87, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8,
-				9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
-				35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 0, 56, 57, 58, 59, 0, 61,
-				62, 63, 0, 65, 66, 67, 0, 69, 0, 1, 2, 5, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4,
-				5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
-				32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 86, 87, 56, 57,
-				58, 59, 0, 61, 62, 63, 4, 65, 66, 67, 0, 69, 101, 102, 4, 95, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
-				84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
-				26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
-				52, 53, 0, 0, 56, 57, 58, 59, 0, 61, 62, 63, 0, 65, 66, 67, 0, 69, 0, 1, 2, 0, 74, 75, 76, 77, 78, 79,
-				80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
-				22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
-				48, 49, 50, 51, 52, 53, 86, 87, 56, 57, 58, 59, 0, 61, 62, 63, 0, 65, 66, 67, 4, 69, 92, 93, 0, 0, 74,
-				75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
-				17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
-				43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 68, 0, 56, 57, 58, 59, 0, 61, 62, 63, 9, 65, 66, 67, 0, 69,
-				96, 0, 1, 2, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 40, 10, 11, 12,
-				13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
-				39, 55, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 0, 56, 57, 58, 59, 0, 1, 2, 3, 4, 5, 6,
-				7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
-				0, 1, 2, 0, 4, 0, 40, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 1, 2, 53, 0, 55, 56, 57, 58, 5, 0, 61, 62, 63, 0, 1,
-				2, 3, 4, 0, 6, 71, 8, 73, 5, 38, 7, 38, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 88, 11, 12, 13, 14, 15, 16, 17,
-				18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 71, 0, 114, 115, 116, 0, 1, 2, 3, 4, 5,
-				6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
-				33, 91, 0, 99, 100, 0, 0, 40, 98, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 53, 0, 55, 56, 57, 58, 0, 64, 61, 62,
-				63, 68, 0, 0, 0, 3, 0, 5, 71, 7, 73, 9, 6, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 88, 0, 1, 2,
-				3, 4, 55, 6, 54, 8, 0, 34, 35, 36, 37, 60, 0, 40, 64, 3, 70, 0, 1, 2, 60, 70, 114, 115, 116, 0, 9, 54,
-				0, 1, 2, 3, 4, 60, 6, 0, 8, 64, 64, 89, 90, 68, 68, 70, 71, 72, 73, 101, 102, 103, 104, 105, 106, 107,
-				108, 109, 110, 111, 112, 86, 87, 0, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
-				105, 106, 107, 108, 109, 110, 111, 112, 69, 120, 60, 64, 117, 118, 119, 120, 0, 34, 35, 3, 0, 5, 0, 7,
-				4, 9, 0, 1, 2, 3, 4, 9, 6, 0, 8, 0, 0, 1, 2, 3, 4, 5, 0, 7, 0, 10, 4, 5, 91, 7, 34, 35, 36, 37, 0, 98,
-				40, 3, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 54, 0, 1, 2, 54, 4, 60, 0, 1, 2, 64, 4, 0, 6, 68,
-				8, 70, 71, 72, 73, 0, 69, 59, 0, 1, 2, 60, 71, 54, 6, 64, 8, 86, 87, 68, 89, 90, 91, 92, 93, 94, 95, 96,
-				97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 0, 1, 2, 55, 117, 118, 119,
-				120, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
-				27, 28, 29, 30, 31, 32, 33, 0, 0, 1, 2, 3, 4, 40, 6, 0, 8, 0, 1, 2, 55, 4, 5, 0, 7, 0, 53, 0, 55, 56,
-				57, 58, 0, 0, 61, 62, 63, 4, 65, 7, 114, 115, 116, 0, 1, 2, 73, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
-				32, 33, 0, 53, 88, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
-				24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 70, 0, 0, 1, 2, 40, 4, 0, 6, 91, 8, 4, 66, 67, 0, 0, 98, 91,
-				53, 54, 55, 56, 57, 58, 98, 0, 61, 62, 63, 22, 65, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
-				111, 112, 0, 1, 2, 3, 4, 5, 6, 7, 8, 38, 88, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
-				17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 1, 2, 0, 4, 5, 40, 7, 71, 0, 1,
-				2, 9, 4, 5, 60, 7, 0, 0, 53, 3, 55, 56, 57, 58, 0, 113, 61, 62, 63, 0, 65, 0, 114, 115, 116, 0, 1, 2,
-				73, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 0, 88, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
-				13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 1, 2, 60, 4, 5,
-				40, 7, 0, 1, 2, 0, 4, 0, 6, 4, 8, 54, 0, 53, 7, 55, 56, 57, 58, 0, 0, 61, 62, 63, 0, 65, 118, 22, 0, 1,
-				2, 96, 4, 73, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 89, 90, 88, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
-				10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 55, 0,
-				1, 2, 68, 64, 40, 6, 71, 8, 0, 1, 2, 0, 0, 0, 6, 0, 0, 53, 5, 55, 56, 57, 58, 0, 9, 61, 62, 63, 0, 65,
-				0, 3, 0, 1, 2, 23, 24, 73, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 0, 88, 0, 1, 2, 3, 4, 5,
-				6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
-				33, 72, 60, 0, 60, 68, 64, 40, 5, 0, 68, 0, 66, 67, 0, 86, 87, 3, 54, 54, 53, 96, 55, 56, 57, 58, 99,
-				100, 61, 62, 63, 0, 65, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 1, 2, 3, 4, 5, 0, 7, 89, 90,
-				88, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
-				27, 28, 29, 30, 31, 32, 33, 0, 1, 2, 0, 4, 64, 40, 0, 0, 0, 0, 0, 99, 100, 0, 60, 9, 3, 9, 53, 9, 55,
-				56, 57, 58, 64, 0, 61, 62, 63, 0, 65, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 1, 2, 40, 4,
-				40, 6, 40, 8, 0, 88, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
-				23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 1, 2, 0, 4, 5, 40, 7, 0, 9, 55, 0, 1, 2, 95, 7, 0, 0, 54,
-				53, 0, 55, 56, 57, 58, 9, 9, 61, 62, 63, 0, 65, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 10, 11, 12, 13, 14, 15,
-				16, 17, 18, 19, 20, 21, 88, 0, 1, 2, 3, 4, 0, 6, 0, 8, 9, 3, 34, 35, 36, 37, 38, 39, 72, 41, 42, 43, 44,
-				45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 72, 72, 5, 59, 0, 0, 62, 40, 3, 97, 66, 67, 0, 1, 2, 3, 4, 5,
-				6, 7, 8, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 1, 2, 3, 4, 97, 6, 0, 8, 9, 70, 113, 34,
-				35, 36, 37, 38, 39, 55, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 0, 0, 0, 59, 0, 3, 40,
-				54, 64, 9, 66, 67, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 34,
-				35, 3, 34, 35, 0, 1, 2, 0, 1, 2, 34, 35, 36, 37, 38, 39, 55, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
-				52, 0, 1, 2, 68, 96, 0, 59, 72, 0, 0, 0, 0, 7, 0, 3, 0, 69, 9, 9, 9, 73, 0, 1, 2, 3, 4, 5, 6, 7, 8, 55,
-				10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 1, 2, 0, 0, 0, 6, 40, 0, 0, 0, 3, 34, 35, 36, 37, 38,
-				39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 68, 68, 64, 59, 73, 73, 0, 71, 0, 3, 66,
-				67, 0, 1, 2, 3, 4, 5, 6, 7, 8, 55, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 60, 0, 0, 0, 54, 64,
-				64, 70, 0, 0, 9, 9, 34, 35, 36, 37, 38, 39, 55, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2,
-				0, 0, 0, 59, 3, 89, 90, 0, 0, 9, 66, 67, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
-				18, 19, 20, 21, 60, 60, 69, 97, 0, 70, 72, 3, 0, 0, 0, 3, 34, 35, 36, 37, 38, 39, 55, 41, 42, 43, 44,
-				45, 46, 47, 48, 49, 50, 51, 52, 97, 64, 0, 1, 2, 0, 59, 0, 73, 0, 0, 0, 70, 3, 71, 0, 69, 0, 1, 2, 3, 4,
-				5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 60, 0, 1, 2, 0, 0, 0, 3, 0, 5, 6, 7, 34,
-				35, 36, 37, 38, 39, 55, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 60, 0, 1, 2, 0, 70, 59, 34, 35,
-				36, 37, 74, 39, 68, 0, 0, 69, 0, 3, 0, 3, 113, 0, 9, 9, 55, 0, 54, 0, 54, 0, 54, 0, 60, 0, 3, 97, 64,
-				10, 66, 67, 68, 68, 70, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 55, 0, 54, 86, 87, 0, 89, 90,
-				91, 92, 93, 94, 95, 96, 0, 10, 99, 100, 101, 60, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 72,
-				72, 54, 61, 117, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 53, 0,
-				55, 0, 0, 4, 0, 0, 4, 3, 54, 34, 35, 36, 37, 38, 39, 10, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
-				0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 54, 0, 54, 113, 54, 54,
-				0, 53, 9, 55, 64, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 0, 0, 0,
-				0, 89, 90, 3, 0, 9, 0, 55, 118, 66, 67, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 10, 11, 12, 13, 14, 15, 16, 17,
-				18, 19, 20, 21, 0, 0, 68, 0, 72, 55, 0, 0, 0, 0, 71, 0, 34, 35, 36, 37, 38, 39, 54, 41, 42, 43, 44, 45,
-				46, 47, 48, 49, 50, 51, 52, 0, 0, 68, 3, 71, 73, 59, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 10, 11, 12, 13, 14,
-				15, 16, 17, 18, 19, 20, 21, 54, 54, 54, 54, 0, 54, 0, 0, 0, 0, 64, 71, 34, 35, 36, 37, 38, 39, 75, 41,
-				42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 121, 0, 3, 89, 90, 0, 60, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0,
-				10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 54, 0, 0, 0, 0, 3, 3, 3, 0, 0, 64, 0, 34, 35, 36, 37,
-				38, 39, 70, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 0, 0, 0, 89, 90, 59, 0, 1, 2, 3, 4, 5, 6,
-				7, 8, 71, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 70, 34, 35,
-				36, 37, 38, 39, 70, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 0, 0, 0, 0, 0, 59, 0, 1, 2, 3, 4,
-				5, 6, 7, 8, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 34,
-				35, 36, 37, 38, 39, 71, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 0, 0, 0, 0, 0, 59, 0, 1, 2,
-				3, 4, 5, 6, 7, 8, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70,
-				70, 34, 35, 36, 37, 38, 39, 70, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 3, 4, 5, 6, 7,
-				8, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 35, 36,
-				37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 10, 11, 12,
-				13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 35, 36, 37, 38, 39, 0, 41,
-				42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 10, 11, 12, 13, 14, 15, 16,
-				17, 18, 19, 20, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45,
-				46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
-				21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49,
-				50, 51, 52, 0, 1, 2, 0, 4, 0, 0, 0, 0, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
-				25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 53, 4, 0,
-				56, 57, 58, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
-				32, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 53, 0, 0, 56, 57, 58, 10, 11, 12, 13,
-				14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 53, 0, 0, 56, 57, 58, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
-				22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0, 3, 0,
-				53, 0, 0, 56, 57, 58, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 0, 1, 2, 3, 4, 40, 6, 0, 8, 9,
-				3, 0, 36, 37, 0, 0, 9, 0, 0, 54, 0, 0, 0, 0, 0, 60, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 60, 72, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 60, 0, 0, 0, 0, 0, 40, 60, 0, 0, 0, 64,
-				72, 0, 0, 68, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 117, 0, 119, 0, 0, 72, 11, 12, 13,
-				14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 1, 2, 3, 4, 5, 0, 7,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 64, 0, 0, 0, 68, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static byte termCheck[] = TermCheck.termCheck;
-
-	@Override
-	public final int termCheck(int index) {
-		return termCheck[index];
-	}
-
-	public interface TermAction {
-		public final static char termAction[] = { 0, 6850, 6812, 6791, 6791, 6791, 6791, 6791, 6791, 6791, 6828, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6816, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 120, 1, 1, 1, 1, 1, 132, 1285, 7057, 2619, 128, 3527, 1, 1, 366, 6861, 6850,
-				6864, 6865, 6857, 2797, 3619, 3083, 3231, 3082, 3575, 4714, 3616, 806, 3581, 4509, 3579, 10, 6831, 6831,
-				6831, 6831, 6831, 6831, 6831, 6831, 6831, 6831, 6831, 6831, 6831, 6831, 6831, 6831, 6831, 6831, 6831,
-				6831, 6831, 6831, 6831, 6831, 6831, 6831, 6831, 6831, 6831, 6831, 6831, 6831, 6831, 6831, 6831, 6831,
-				6831, 6831, 6831, 6831, 6831, 6831, 6831, 6831, 6831, 6831, 6831, 6831, 6831, 6831, 6831, 6831, 6831,
-				4346, 4413, 6831, 6831, 6831, 6831, 39, 6831, 6831, 6831, 6888, 6831, 6831, 6831, 1106, 6831, 3754,
-				3723, 431, 6831, 6831, 6831, 6831, 6831, 6831, 6831, 6831, 6831, 6831, 6831, 6831, 6831, 8, 6834, 6834,
-				6834, 6834, 6834, 6834, 6834, 6834, 6834, 6834, 6834, 6834, 6834, 6834, 6834, 6834, 6834, 6834, 6834,
-				6834, 6834, 6834, 6834, 6834, 6834, 6834, 6834, 6834, 6834, 6834, 6834, 6834, 6834, 6834, 6834, 6834,
-				6834, 6834, 6834, 6834, 6834, 6834, 6834, 6834, 6834, 6834, 6834, 6834, 6834, 6834, 6834, 6834, 6834,
-				124, 134, 6834, 6834, 6834, 6834, 6850, 6834, 6834, 6834, 815, 6834, 6834, 6834, 332, 6834, 6850, 6595,
-				6592, 6834, 6834, 6834, 6834, 6834, 6834, 6834, 6834, 6834, 6834, 6834, 6834, 6834, 6850, 6812, 6791,
-				6791, 6791, 6791, 6791, 6791, 6791, 6819, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 6816, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4346, 4413, 1, 1, 1, 1, 420,
-				1285, 7057, 2619, 1254, 3527, 1, 1, 6850, 6861, 48, 6595, 6592, 189, 2797, 3619, 3083, 3231, 3082, 3575,
-				4714, 3616, 806, 3581, 4509, 3579, 6850, 6812, 6791, 6791, 6791, 6791, 6791, 6791, 6791, 6819, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6816, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 123, 1489, 1, 1, 1, 1, 133, 1285, 7057, 2619, 6850, 3527, 1, 1, 6850, 6861, 122,
-				5741, 121, 6850, 2797, 3619, 3083, 3231, 3082, 3575, 4714, 3616, 806, 3581, 4509, 3579, 6850, 6812,
-				6791, 6791, 6791, 6791, 6791, 6791, 6791, 6819, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6816, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4346, 4413, 1, 1, 1, 1,
-				152, 1285, 7057, 2619, 129, 3527, 1, 1, 1106, 6861, 4346, 4413, 4346, 4413, 2797, 3619, 3083, 3231,
-				3082, 3575, 4714, 3616, 806, 3581, 4509, 3579, 6850, 6812, 6791, 6791, 6791, 6791, 6791, 6791, 6791,
-				6819, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6816, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 140, 135, 1, 1, 1, 1, 153, 1285, 7057, 2619, 148, 3527, 1, 1, 3588,
-				6861, 3754, 3723, 144, 6850, 2797, 3619, 3083, 3231, 3082, 3575, 4714, 3616, 806, 3581, 4509, 3579,
-				6850, 6812, 6791, 6791, 6791, 6791, 6791, 6791, 6791, 6819, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6816, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4346, 4413, 1,
-				1, 1, 1, 6850, 1285, 7057, 2619, 1254, 3527, 1, 1, 3588, 6861, 3825, 3785, 4346, 4413, 2797, 3619, 3083,
-				3231, 3082, 3575, 4714, 3616, 806, 3581, 4509, 3579, 6850, 6812, 6791, 6791, 6791, 6791, 6791, 6791,
-				6791, 6819, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				6816, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 143, 138, 1, 1, 1, 1, 6850, 1285, 7057, 2619, 154, 3527, 1,
-				1, 6850, 6861, 433, 6864, 6865, 2526, 2797, 3619, 3083, 3231, 3082, 3575, 4714, 3616, 806, 3581, 4509,
-				3579, 6850, 6812, 6791, 6791, 6791, 6791, 6791, 6791, 6791, 6819, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6816, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4346,
-				4413, 1, 1, 1, 1, 6850, 1285, 7057, 2619, 2245, 3527, 1, 1, 431, 6861, 3288, 4210, 424, 3533, 2797,
-				3619, 3083, 3231, 3082, 3575, 4714, 3616, 806, 3581, 4509, 3579, 6850, 6812, 6791, 6791, 6791, 6791,
-				6791, 6791, 6791, 6819, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 6816, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 141, 6850, 1, 1, 1, 1, 6850, 1285, 7057, 2619,
-				149, 3527, 1, 1, 6850, 6861, 36, 6747, 6744, 6850, 2797, 3619, 3083, 3231, 3082, 3575, 4714, 3616, 806,
-				3581, 4509, 3579, 6850, 6812, 6791, 6791, 6791, 6791, 6791, 6791, 6791, 6819, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6816, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 4346, 4413, 1, 1, 1, 1, 136, 1285, 7057, 2619, 6850, 3527, 1, 1, 2092, 6861, 3825, 3785, 551, 6850,
-				2797, 3619, 3083, 3231, 3082, 3575, 4714, 3616, 806, 3581, 4509, 3579, 6850, 3576, 1, 1, 1, 1, 1, 1, 1,
-				3577, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6859, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 929, 441, 1, 1, 1, 1, 6850, 1285, 7057, 2619, 6758, 3527, 1, 1,
-				6850, 6861, 3393, 6850, 10573, 10573, 2797, 3619, 3083, 3231, 3082, 3575, 4714, 3616, 806, 3581, 4509,
-				3579, 39, 6414, 6411, 3866, 1042, 5510, 5395, 5540, 2317, 6761, 1187, 7148, 7146, 7155, 7154, 7150,
-				7151, 7149, 7152, 7153, 7156, 7147, 7143, 7222, 7223, 7137, 7144, 7140, 7116, 7142, 7141, 7138, 7139,
-				7117, 5487, 5421, 5587, 5564, 6869, 5364, 6886, 641, 751, 6871, 652, 5715, 714, 6872, 6870, 638, 6866,
-				6867, 6868, 7284, 6850, 6850, 1320, 7285, 7286, 1439, 6850, 6725, 6725, 262, 6721, 262, 262, 262, 262,
-				6729, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 322, 6509, 6509, 6850,
-				317, 6850, 262, 6850, 6502, 6498, 2380, 6652, 6782, 646, 6782, 2317, 332, 6864, 6865, 1, 114, 6718, 1,
-				1, 1, 5325, 110, 2201, 7298, 2340, 1, 6502, 6498, 2380, 6652, 6850, 646, 262, 2317, 452, 1951, 2731,
-				1904, 3030, 256, 344, 6502, 6498, 2380, 6652, 6782, 646, 6782, 2317, 7386, 7148, 7146, 7155, 7154, 7150,
-				7151, 7149, 7152, 7153, 7156, 7147, 7143, 7222, 7223, 7137, 7144, 7140, 7116, 7142, 7141, 7138, 7139,
-				7117, 3033, 6850, 7321, 7322, 7323, 6850, 6725, 6725, 262, 6721, 262, 262, 262, 262, 6770, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5633, 6850, 5301, 4301, 138, 37, 262, 5656,
-				125, 402, 6502, 6498, 4180, 6652, 1, 646, 1, 2317, 494, 1, 257, 6718, 1, 1, 1, 6850, 6171, 2201, 7298,
-				2340, 3566, 33, 6850, 6850, 6453, 6850, 6453, 262, 6453, 451, 6453, 1481, 7143, 7222, 7223, 7137, 7144,
-				7140, 7116, 7142, 7141, 7138, 7139, 7117, 7386, 366, 6414, 6411, 2380, 1042, 6886, 646, 4032, 2317,
-				6850, 6453, 6453, 6453, 6453, 2053, 6850, 6453, 6435, 3359, 2006, 6850, 6864, 6865, 6441, 1293, 7321,
-				7322, 7323, 6850, 6862, 6453, 1, 6502, 6498, 4180, 6652, 6453, 646, 113, 2317, 6453, 3626, 3978, 3905,
-				6453, 3566, 6453, 6453, 6453, 6453, 3288, 4210, 1959, 1912, 1865, 1818, 1771, 1724, 1677, 1630, 1583,
-				1536, 6453, 6453, 117, 6453, 6453, 6453, 6453, 6453, 6453, 6453, 6453, 6453, 6453, 6453, 6453, 6453,
-				6453, 6453, 6453, 6453, 6453, 6453, 6453, 6453, 6453, 6453, 6453, 6861, 6410, 2053, 2989, 6453, 6453,
-				6453, 6453, 6850, 4631, 4604, 6456, 432, 6456, 6850, 6456, 423, 6456, 1, 6502, 6498, 2380, 6652, 6862,
-				646, 594, 2317, 336, 37, 6865, 6865, 6865, 6865, 6865, 39, 6865, 6850, 7185, 6888, 366, 5633, 366, 6456,
-				6456, 6456, 6456, 91, 5656, 6456, 6447, 6865, 6865, 6865, 6865, 6865, 6865, 6865, 6865, 6865, 6865,
-				6865, 6865, 6456, 6850, 6414, 6411, 1238, 6888, 6456, 6850, 6414, 6411, 6456, 1042, 6850, 6459, 6456,
-				2317, 6456, 6456, 6456, 6456, 475, 6861, 3570, 38, 6432, 6429, 6865, 3033, 2856, 6426, 6865, 2317, 6456,
-				6456, 6865, 6456, 6456, 6456, 6456, 6456, 6456, 6456, 6456, 6456, 6456, 6456, 6456, 6456, 6456, 6456,
-				6456, 6456, 6456, 6456, 6456, 6456, 6456, 6456, 6456, 43, 6601, 6601, 2644, 6456, 6456, 6456, 6456,
-				6850, 6791, 6791, 262, 6791, 262, 262, 262, 262, 6794, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 9189, 1, 1, 1, 1, 1, 1, 6850, 1, 6502, 6498, 6764, 6652, 262, 6767, 112, 6655, 480, 1, 1, 6598, 1,
-				6438, 111, 6438, 258, 1, 158, 6788, 1, 1, 1, 130, 6850, 2590, 7094, 2619, 2670, 3527, 3641, 7321, 7322,
-				7323, 6850, 6864, 6865, 253, 7143, 7222, 7223, 7137, 7144, 7140, 7116, 7142, 7141, 7138, 7139, 7117,
-				6850, 2537, 7386, 6850, 6791, 6791, 262, 6791, 262, 262, 262, 262, 262, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 9189, 1, 1, 1, 1, 1, 1, 6850, 2812, 6850, 6850, 6414, 6411, 262, 1042, 39, 646, 5633,
-				2317, 6888, 5610, 1047, 1, 6850, 5656, 5633, 1, 3477, 6788, 1, 1, 1, 5656, 6850, 2590, 7094, 2619, 982,
-				3527, 3330, 4999, 2746, 2680, 2614, 2548, 2482, 2416, 2350, 2284, 2218, 2152, 380, 6414, 6411, 4180,
-				1042, 366, 646, 366, 2317, 3526, 7386, 6850, 6791, 6791, 262, 6791, 262, 262, 262, 262, 6803, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9189, 1, 1, 1, 1, 1, 1, 481, 39, 39, 6850, 6888, 6700, 262,
-				6700, 2095, 92, 1, 1, 6854, 1, 6703, 2053, 6703, 1, 259, 1, 5164, 6788, 1, 1, 1, 6850, 3621, 2590, 7094,
-				2619, 137, 3527, 493, 7321, 7322, 7323, 326, 6864, 6865, 252, 7143, 7222, 7223, 7137, 7144, 7140, 7116,
-				7142, 7141, 7138, 7139, 7117, 145, 6850, 7386, 6850, 6791, 6791, 262, 6791, 262, 262, 262, 262, 6794, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9189, 1, 1, 1, 1, 1, 1, 95, 39, 39, 6444, 6888, 6773,
-				262, 6773, 6850, 6414, 6411, 39, 1042, 131, 646, 6888, 2317, 4113, 260, 1, 3641, 6788, 1, 1, 1, 397,
-				6850, 2590, 7094, 2619, 6850, 3527, 6853, 2667, 430, 6506, 6506, 3393, 317, 253, 7143, 7222, 7223, 7137,
-				7144, 7140, 7116, 7142, 7141, 7138, 7139, 7117, 4086, 4059, 7386, 6850, 6791, 6791, 262, 6791, 262, 262,
-				262, 262, 6794, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9189, 1, 1, 1, 1, 1, 1, 317, 6850,
-				6864, 6865, 3371, 3038, 262, 646, 2878, 2317, 6850, 6864, 6865, 156, 371, 116, 1481, 6850, 571, 1, 5325,
-				6788, 1, 1, 1, 319, 6856, 2590, 7094, 2619, 1, 3527, 383, 3859, 6850, 6595, 6592, 7222, 7223, 253, 7143,
-				7222, 7223, 7137, 7144, 7140, 7116, 7142, 7141, 7138, 7139, 7117, 147, 6850, 7386, 6850, 6791, 6791,
-				262, 6791, 262, 262, 262, 262, 262, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9189, 1, 1, 1, 1,
-				1, 1, 6855, 2053, 115, 2053, 7168, 576, 262, 5325, 6850, 576, 572, 5610, 1047, 270, 4346, 4413, 6616,
-				4113, 4731, 1, 3431, 6788, 1, 1, 1, 5301, 4301, 2590, 7094, 2619, 6850, 3527, 7143, 7222, 7223, 7137,
-				7144, 7140, 7116, 7142, 7141, 7138, 7139, 7117, 380, 39, 39, 3859, 6888, 366, 6850, 366, 4086, 4059,
-				7386, 6850, 6791, 6791, 262, 6791, 262, 262, 262, 262, 262, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 9189, 1, 1, 1, 1, 1, 1, 6850, 6414, 6411, 6850, 6888, 3062, 262, 6850, 155, 1, 573, 1, 5301, 4301,
-				6850, 2053, 6860, 4458, 6860, 1, 223, 6788, 1, 1, 1, 3085, 6850, 2590, 7094, 2619, 6850, 3527, 7143,
-				7222, 7223, 7137, 7144, 7140, 7116, 7142, 7141, 7138, 7139, 7117, 6850, 6414, 6411, 6859, 1042, 6859,
-				6459, 223, 2317, 6850, 7386, 6850, 6791, 6791, 262, 6791, 262, 262, 262, 262, 262, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9189, 1, 1, 1, 1, 1, 1, 1, 6697, 6697, 6850, 6709, 366, 262, 366, 150,
-				398, 2710, 6850, 10327, 10324, 3533, 3675, 1, 6850, 4978, 1, 410, 6788, 1, 1, 1, 193, 6856, 2590, 7094,
-				2619, 393, 3527, 6850, 1, 1, 1, 1, 1, 1, 1, 1, 6850, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7386, 1, 6502,
-				6498, 6764, 6652, 6850, 6767, 346, 6655, 6860, 972, 1, 1, 1, 1, 1, 1, 398, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 37, 6706, 6706, 193, 6855, 366, 1, 6850, 6850, 7448, 6859, 4729, 398, 1, 1, 1, 6502, 6498, 3493,
-				1042, 5510, 5395, 5540, 2317, 6850, 6462, 6489, 6495, 6468, 6471, 6483, 6480, 6486, 6477, 6474, 6465,
-				6492, 1, 6502, 6498, 2380, 6652, 7242, 646, 157, 2317, 344, 1144, 3621, 5487, 5421, 5587, 5564, 6869,
-				5364, 6886, 641, 751, 6871, 652, 5715, 714, 6872, 6870, 638, 6866, 6867, 6868, 37, 6706, 6706, 6850,
-				119, 6850, 1439, 118, 4779, 344, 5102, 552, 6856, 39, 39, 39, 6414, 6411, 3866, 1042, 5510, 5395, 5540,
-				2317, 6844, 1085, 7148, 7146, 7155, 7154, 7150, 7151, 7149, 7152, 7153, 7156, 7147, 6850, 4631, 4604,
-				4909, 4631, 4604, 6850, 6735, 6732, 6850, 10327, 10324, 5487, 5421, 5587, 5564, 6869, 5364, 1719, 641,
-				751, 6871, 652, 5715, 714, 6872, 6870, 638, 6866, 6867, 6868, 325, 892, 892, 6252, 3431, 151, 1439,
-				6855, 6850, 6850, 6850, 6850, 3675, 6850, 3867, 6850, 6825, 6858, 6858, 6860, 6857, 173, 6414, 6411,
-				3866, 1042, 5510, 5395, 5540, 2317, 6886, 1085, 7148, 7146, 7155, 7154, 7150, 7151, 7149, 7152, 7153,
-				7156, 7147, 37, 6706, 6706, 6850, 6850, 405, 6706, 6859, 382, 6850, 6850, 1798, 5487, 5421, 5587, 5564,
-				6869, 5364, 146, 641, 751, 6871, 652, 5715, 714, 6872, 6870, 638, 6866, 6867, 6868, 45, 6741, 6741,
-				1058, 5702, 7398, 1439, 6857, 6857, 6850, 7287, 1, 3869, 39, 39, 1, 6502, 6498, 3493, 1042, 5510, 5395,
-				5540, 2317, 1672, 6462, 6489, 6495, 6468, 6471, 6483, 6480, 6486, 6477, 6474, 6465, 6492, 2053, 1, 1,
-				403, 4113, 7327, 7341, 1342, 100, 99, 6806, 398, 5487, 5421, 5587, 5564, 6869, 5364, 6738, 641, 751,
-				6871, 652, 5715, 714, 6872, 6870, 638, 6866, 6867, 6868, 6850, 6754, 6750, 1, 103, 6850, 1439, 4222,
-				4086, 4059, 327, 464, 6809, 39, 39, 39, 6414, 6411, 3866, 1042, 5510, 5395, 5540, 2317, 6822, 1085,
-				7148, 7146, 7155, 7154, 7150, 7151, 7149, 7152, 7153, 7156, 7147, 5061, 2991, 6861, 7244, 6850, 1389,
-				398, 2733, 312, 583, 355, 6785, 5487, 5421, 5587, 5564, 6869, 5364, 6886, 641, 751, 6871, 652, 5715,
-				714, 6872, 6870, 638, 6866, 6867, 6868, 398, 6022, 6850, 6735, 6732, 456, 1439, 1, 6857, 1, 353, 6850,
-				3090, 6779, 2080, 325, 6825, 39, 6414, 6411, 3866, 1042, 5510, 5395, 5540, 2317, 6822, 1085, 7148, 7146,
-				7155, 7154, 7150, 7151, 7149, 7152, 7153, 7156, 7147, 2053, 6850, 11329, 8950, 1, 462, 29, 1063, 476,
-				7349, 7355, 7353, 5487, 5421, 5587, 5564, 6869, 5364, 6886, 641, 751, 6871, 652, 5715, 714, 6872, 6870,
-				638, 6866, 6867, 6868, 2053, 37, 6706, 6706, 490, 3189, 1439, 7347, 7348, 7378, 7379, 2921, 7356, 9929,
-				1, 1, 6825, 6850, 3859, 6850, 3560, 1, 574, 6856, 6610, 6886, 6850, 7358, 336, 6417, 6850, 6420, 6850,
-				728, 423, 4223, 3586, 7359, 7185, 1940, 1943, 7380, 2394, 7357, 7143, 7222, 7223, 7137, 7144, 7140,
-				7116, 7142, 7141, 7138, 7139, 7117, 6886, 582, 6423, 7369, 7368, 1, 7374, 7375, 7381, 7372, 7373, 7352,
-				7354, 7376, 6850, 6797, 7350, 7351, 7377, 2053, 7362, 7363, 7364, 7360, 7361, 7370, 7371, 7366, 7365,
-				7367, 6855, 6613, 6450, 2399, 7382, 39, 6414, 6411, 3866, 1042, 5510, 5395, 5540, 2317, 6854, 1085,
-				7148, 7146, 7155, 7154, 7150, 7151, 7149, 7152, 7153, 7156, 7147, 127, 6800, 48, 3565, 6850, 48, 6865,
-				6850, 1, 6864, 4916, 1238, 5487, 5421, 5587, 5564, 6869, 5364, 6797, 641, 751, 6871, 652, 5715, 714,
-				6872, 6870, 638, 6866, 6867, 6868, 1, 6502, 6498, 6649, 6652, 6637, 6658, 6640, 6655, 47, 6462, 6489,
-				6495, 6468, 6471, 6483, 6480, 6486, 6477, 6474, 6465, 6492, 1, 4032, 485, 6865, 3621, 3477, 6864, 484,
-				6800, 590, 3565, 6604, 6634, 6631, 6646, 6643, 6670, 6628, 6850, 6685, 6694, 6664, 6688, 6625, 6691,
-				6661, 6667, 6682, 6679, 6676, 6673, 8, 29, 343, 6850, 6850, 3978, 3905, 6288, 217, 6847, 6850, 1431,
-				6853, 6697, 6697, 39, 6414, 6411, 3866, 1042, 5510, 5395, 5540, 2317, 6850, 1085, 7148, 7146, 7155,
-				7154, 7150, 7151, 7149, 7152, 7153, 7156, 7147, 6850, 6850, 2274, 226, 590, 3479, 126, 431, 73, 6850,
-				2142, 6850, 5487, 5421, 5587, 5564, 6869, 5364, 1238, 641, 751, 6871, 652, 5715, 714, 6872, 6870, 638,
-				6866, 6867, 6868, 6850, 6850, 2182, 6290, 460, 6847, 1439, 39, 6414, 6411, 3866, 1042, 5510, 5395, 5540,
-				2317, 6850, 1085, 7148, 7146, 7155, 7154, 7150, 7151, 7149, 7152, 7153, 7156, 7147, 4032, 1238, 6776,
-				2908, 6850, 3075, 6850, 6850, 6850, 35, 6607, 3132, 5487, 5421, 5587, 5564, 6869, 5364, 6838, 641, 751,
-				6871, 652, 5715, 714, 6872, 6870, 638, 6866, 6867, 6868, 6850, 6841, 6850, 4842, 3978, 3905, 6850, 1517,
-				39, 6414, 6411, 3493, 1042, 5510, 5395, 5540, 2317, 6850, 1085, 7148, 7146, 7155, 7154, 7150, 7151,
-				7149, 7152, 7153, 7156, 7147, 4113, 544, 6850, 6850, 6850, 6292, 808, 5095, 542, 2, 4153, 6850, 5487,
-				5421, 5587, 5564, 6869, 5364, 2802, 641, 751, 6871, 652, 5715, 714, 6872, 6870, 638, 6866, 6867, 6868,
-				6850, 6850, 6850, 6850, 4086, 4059, 1439, 39, 6414, 6411, 3493, 1042, 5510, 5395, 5540, 2317, 4778,
-				1085, 7148, 7146, 7155, 7154, 7150, 7151, 7149, 7152, 7153, 7156, 7147, 6850, 6850, 6850, 37, 6850,
-				6850, 6850, 6850, 6850, 6850, 6850, 5740, 5487, 5421, 5587, 5564, 6869, 5364, 6023, 641, 751, 6871, 652,
-				5715, 714, 6872, 6870, 638, 6866, 6867, 6868, 6850, 6850, 6850, 6850, 6850, 6850, 1439, 39, 6414, 6411,
-				3866, 1042, 5510, 5395, 5540, 2317, 6850, 1085, 7148, 7146, 7155, 7154, 7150, 7151, 7149, 7152, 7153,
-				7156, 7147, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 546, 6850, 6850, 4840, 5487, 5421, 5587,
-				5564, 6869, 5364, 4902, 641, 751, 6871, 652, 5715, 714, 6872, 6870, 638, 6866, 6867, 6868, 6850, 6850,
-				6850, 6850, 6850, 6850, 1439, 39, 6414, 6411, 6242, 1042, 5510, 5395, 5540, 2317, 6850, 1085, 7148,
-				7146, 7155, 7154, 7150, 7151, 7149, 7152, 7153, 7156, 7147, 6850, 6850, 6850, 6850, 6850, 6850, 6850,
-				6850, 6850, 6850, 2802, 2944, 5487, 5421, 5587, 5564, 6869, 5364, 904, 641, 751, 6871, 652, 5715, 714,
-				6872, 6870, 638, 6866, 6867, 6868, 39, 6414, 6411, 3866, 1042, 5510, 5395, 5540, 2317, 6850, 1085, 7148,
-				7146, 7155, 7154, 7150, 7151, 7149, 7152, 7153, 7156, 7147, 6850, 6850, 6850, 6850, 6850, 6850, 6850,
-				6850, 6850, 6850, 6850, 6850, 5487, 5421, 5587, 5564, 6869, 5364, 6850, 641, 751, 6871, 652, 5715, 714,
-				6872, 6870, 638, 6866, 6867, 6868, 39, 6414, 6411, 3493, 1042, 5510, 5395, 5540, 2317, 6850, 1085, 7148,
-				7146, 7155, 7154, 7150, 7151, 7149, 7152, 7153, 7156, 7147, 6850, 6850, 6850, 6850, 6850, 6850, 6850,
-				6850, 6850, 6850, 6850, 6850, 5487, 5421, 5587, 5564, 6869, 5364, 6850, 641, 751, 6871, 652, 5715, 714,
-				6872, 6870, 638, 6866, 6867, 6868, 39, 6414, 6411, 3493, 1042, 5510, 5395, 5540, 2317, 6850, 1085, 7148,
-				7146, 7155, 7154, 7150, 7151, 7149, 7152, 7153, 7156, 7147, 6850, 6850, 6850, 6850, 6850, 6850, 6850,
-				6850, 6850, 6850, 6850, 6850, 5487, 5421, 5587, 5564, 6869, 5364, 6850, 641, 751, 6871, 652, 5715, 714,
-				6872, 6870, 638, 6866, 6867, 6868, 39, 6414, 6411, 3866, 1042, 5510, 5395, 5540, 2317, 6850, 1085, 7148,
-				7146, 7155, 7154, 7150, 7151, 7149, 7152, 7153, 7156, 7147, 1, 6850, 6850, 6850, 6850, 6850, 6850, 6850,
-				6850, 195, 6850, 6850, 5487, 5421, 5587, 5564, 6869, 5364, 6850, 641, 751, 6871, 652, 5715, 714, 6872,
-				6870, 638, 6866, 6867, 6868, 6850, 6414, 6411, 6850, 6888, 6850, 6850, 6850, 6850, 6850, 759, 7148,
-				7146, 7155, 7154, 7150, 7151, 7149, 7152, 7153, 7156, 7147, 7143, 7222, 7223, 7137, 7144, 7140, 7116,
-				7142, 7141, 7138, 7139, 7117, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 195, 6850, 6850, 6850, 6850,
-				6850, 6850, 6850, 6850, 274, 6585, 6581, 7284, 6589, 6850, 1320, 7285, 7286, 6850, 759, 6572, 6578,
-				6551, 6554, 6566, 6563, 6569, 6560, 6557, 6548, 6575, 6527, 6521, 6518, 6545, 6524, 6536, 6515, 6530,
-				6533, 6542, 6539, 6512, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850,
-				6850, 6850, 6850, 6864, 6865, 6850, 7284, 6850, 6850, 1320, 7285, 7286, 1336, 7148, 7146, 7155, 7154,
-				7150, 7151, 7149, 7152, 7153, 7156, 7147, 7143, 7222, 7223, 7137, 7144, 7140, 7116, 7142, 7141, 7138,
-				7139, 7117, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850,
-				274, 6715, 6712, 6850, 7284, 6850, 6850, 1320, 7285, 7286, 1336, 6572, 6578, 6551, 6554, 6566, 6563,
-				6569, 6560, 6557, 6548, 6575, 6527, 6521, 6518, 6545, 6524, 6536, 6515, 6530, 6533, 6542, 6539, 6512,
-				6850, 6850, 6850, 29, 423, 423, 6622, 423, 6622, 423, 6622, 423, 6622, 6850, 75, 6850, 6850, 3458, 6850,
-				7284, 6850, 6850, 1320, 7285, 7286, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 6850, 1,
-				6502, 6498, 4180, 6652, 6622, 646, 1, 2317, 6610, 3859, 6850, 6912, 6913, 6850, 6850, 376, 6850, 6850,
-				6417, 6850, 6850, 6850, 6850, 6850, 6622, 32, 424, 424, 6619, 424, 6619, 424, 6619, 424, 6619, 3941,
-				6622, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 424, 424, 424, 424, 424, 424, 424,
-				424, 424, 424, 424, 424, 2053, 6850, 6850, 6850, 6850, 6850, 6619, 2053, 6850, 6850, 6850, 376, 6613,
-				6850, 6850, 376, 6850, 6850, 6850, 376, 6850, 6850, 6850, 6850, 6850, 6850, 6619, 6850, 570, 6850, 6850,
-				6850, 6850, 746, 6850, 869, 6850, 6850, 6619, 7148, 7146, 7155, 7154, 7150, 7151, 7149, 7152, 7153,
-				7156, 7147, 7143, 7222, 7223, 7137, 7144, 7140, 7116, 7142, 7141, 7138, 7139, 7117, 37, 6864, 6864,
-				6864, 6864, 6864, 6850, 6864, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850,
-				6850, 6850, 6864, 6864, 6864, 6864, 6864, 6864, 6864, 6864, 6864, 6864, 6864, 6864, 6850, 6850, 6850,
-				6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850, 6850,
-				6850, 6850, 6850, 6850, 6850, 6850, 6864, 6850, 6850, 6850, 6864, 6850, 6850, 6850, 6864 };
-	}
-
-	public final static char termAction[] = TermAction.termAction;
-
-	@Override
-	public final int termAction(int index) {
-		return termAction[index];
-	}
-
-	public interface Asb {
-		public final static char asb[] = { 0, 904, 7, 343, 1, 945, 837, 837, 837, 837, 510, 945, 522, 522, 442, 522,
-				105, 343, 107, 344, 344, 344, 344, 344, 344, 344, 344, 344, 524, 530, 535, 532, 539, 537, 544, 542, 546,
-				545, 547, 198, 548, 343, 327, 147, 147, 147, 147, 382, 742, 120, 120, 519, 147, 431, 53, 522, 522, 120,
-				382, 53, 947, 146, 1124, 512, 1005, 327, 522, 524, 672, 672, 742, 343, 344, 344, 344, 344, 344, 344,
-				344, 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, 343, 343, 343, 343, 343, 343, 343, 343,
-				343, 343, 343, 343, 344, 53, 53, 44, 327, 1070, 1070, 1070, 1070, 1126, 53, 120, 120, 508, 994, 1005,
-				117, 1005, 112, 1005, 179, 1005, 989, 510, 382, 431, 431, 120, 837, 431, 146, 343, 380, 1123, 53, 379,
-				381, 379, 53, 431, 532, 532, 530, 530, 530, 537, 537, 537, 537, 535, 535, 542, 539, 539, 545, 544, 546,
-				1082, 547, 508, 391, 865, 855, 854, 684, 1012, 1012, 510, 107, 945, 945, 945, 945, 382, 382, 1070, 148,
-				504, 343, 1047, 1045, 1052, 1050, 1054, 1053, 1055, 1056, 1069, 1070, 519, 382, 247, 250, 114, 674, 115,
-				510, 382, 382, 1126, 1070, 344, 147, 528, 9, 53, 512, 382, 382, 381, 1124, 343, 44, 431, 563, 53, 867,
-				869, 382, 1124, 343, 343, 343, 343, 945, 945, 481, 492, 492, 492, 492, 476, 510, 737, 344, 344, 344,
-				344, 344, 344, 344, 344, 344, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 344, 327, 248,
-				517, 515, 250, 382, 788, 62, 786, 1126, 117, 385, 382, 1126, 382, 53, 528, 508, 1123, 512, 382, 380, 53,
-				859, 847, 858, 869, 1126, 380, 53, 53, 53, 53, 742, 742, 382, 344, 1045, 1045, 1045, 1050, 1047, 1047,
-				1053, 1052, 1054, 1082, 1055, 248, 515, 388, 382, 250, 1082, 115, 837, 1128, 626, 1072, 250, 788, 787,
-				788, 788, 1126, 385, 385, 382, 382, 528, 529, 528, 343, 9, 631, 524, 512, 572, 343, 856, 856, 185, 185,
-				382, 863, 508, 792, 53, 382, 53, 53, 1126, 679, 343, 515, 515, 1124, 117, 117, 1070, 837, 379, 582,
-				1074, 376, 945, 788, 788, 788, 788, 382, 385, 387, 825, 387, 528, 742, 344, 431, 631, 572, 343, 343,
-				869, 382, 1124, 53, 867, 847, 572, 695, 382, 515, 514, 380, 633, 117, 588, 266, 380, 788, 788, 376, 568,
-				344, 1082, 193, 830, 382, 508, 788, 788, 434, 387, 388, 344, 382, 529, 53, 431, 727, 869, 572, 515, 569,
-				633, 633, 784, 1084, 239, 945, 115, 625, 266, 380, 788, 117, 510, 1074, 344, 344, 1123, 376, 839, 294,
-				435, 382, 388, 727, 53, 727, 388, 633, 633, 587, 239, 784, 843, 510, 1069, 837, 56, 56, 569, 117, 307,
-				839, 382, 945, 434, 382, 510, 510, 382, 945, 720, 727, 388, 588, 633, 569, 192, 568, 53, 510, 382, 266,
-				588, 266, 1068, 1068, 735, 308, 510, 382, 742, 382, 382, 382, 870, 720, 633, 343, 68, 376, 569, 382,
-				382, 266, 147, 147, 735, 307, 1082, 344, 1082, 569, 306, 945, 945, 945, 308, 945, 382, 206, 569, 569,
-				382, 117, 53, 382, 382, 52, 722, 388, 53, 388, 117, 382, 569, 1069, 299, 945, 299, 308, 1082, 308, 327,
-				327, 325, 306, 327, 569, 569, 733, 305, 147, 722, 388, 68, 569, 177, 792, 308, 53, 376, 53, 325, 239,
-				945, 53, 735, 68, 56, 53, 53, 708, 308, 733, 308, 569, 239, 343, 308, 305, 387, 1068, 117, 117, 979,
-				343, 306, 742, 569, 53, 567, 67, 379, 308, 53, 569, 567, 567, 308 };
-	}
-
-	public final static char asb[] = Asb.asb;
-
-	@Override
-	public final int asb(int index) {
-		return asb[index];
-	}
-
-	public interface Asr {
-		public final static byte asr[] = { 0, 9, 71, 118, 72, 40, 68, 120, 0, 98, 91, 34, 35, 99, 100, 86, 87, 54, 89,
-				90, 92, 93, 94, 95, 96, 101, 102, 71, 97, 70, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 118, 73,
-				40, 120, 64, 1, 2, 7, 5, 4, 3, 60, 68, 72, 9, 0, 64, 70, 68, 1, 2, 0, 4, 9, 71, 69, 0, 73, 59, 36, 37,
-				7, 5, 34, 35, 39, 45, 3, 4, 50, 51, 52, 38, 48, 43, 47, 12, 21, 11, 17, 15, 16, 18, 19, 14, 13, 20, 10,
-				42, 46, 44, 41, 49, 69, 9, 8, 6, 1, 2, 67, 66, 0, 55, 4, 71, 1, 2, 69, 9, 0, 41, 66, 42, 43, 67, 8, 44,
-				45, 46, 47, 59, 48, 49, 50, 51, 52, 38, 36, 37, 7, 5, 34, 35, 6, 39, 64, 3, 4, 10, 1, 2, 56, 57, 58, 12,
-				21, 11, 17, 15, 16, 18, 19, 14, 13, 20, 25, 31, 32, 27, 30, 29, 22, 26, 23, 24, 28, 33, 53, 0, 4, 9, 69,
-				1, 2, 0, 74, 64, 71, 97, 72, 69, 60, 3, 9, 68, 40, 70, 0, 64, 71, 97, 68, 118, 72, 73, 120, 11, 12, 41,
-				66, 13, 42, 43, 14, 15, 16, 67, 44, 17, 18, 45, 46, 47, 59, 48, 49, 10, 19, 20, 21, 50, 51, 52, 38, 36,
-				37, 34, 35, 39, 9, 40, 6, 8, 1, 2, 4, 3, 7, 5, 0, 88, 61, 8, 114, 115, 116, 63, 9, 3, 7, 5, 6, 71, 73,
-				40, 62, 25, 11, 12, 53, 23, 13, 56, 26, 27, 14, 28, 29, 15, 16, 30, 31, 17, 18, 32, 57, 55, 33, 10, 58,
-				19, 20, 24, 21, 1, 2, 4, 22, 0, 88, 114, 115, 116, 55, 71, 113, 121, 73, 62, 74, 63, 61, 65, 76, 78, 84,
-				82, 75, 80, 81, 83, 85, 69, 77, 79, 40, 9, 25, 53, 23, 56, 26, 27, 28, 29, 30, 31, 32, 57, 33, 58, 22,
-				24, 59, 66, 67, 10, 42, 46, 44, 41, 49, 12, 21, 11, 17, 15, 16, 18, 19, 14, 13, 20, 50, 51, 52, 38, 48,
-				43, 47, 36, 37, 34, 35, 39, 45, 7, 5, 3, 4, 8, 6, 1, 2, 0, 1, 2, 68, 73, 9, 0, 66, 67, 10, 42, 46, 44,
-				41, 49, 12, 21, 11, 17, 15, 16, 18, 19, 14, 13, 20, 50, 51, 52, 38, 48, 43, 47, 6, 8, 4, 3, 36, 37, 7,
-				5, 34, 35, 39, 45, 1, 2, 118, 9, 0, 22, 1, 2, 4, 114, 115, 116, 0, 67, 66, 34, 35, 99, 100, 94, 95, 6,
-				39, 70, 54, 106, 107, 103, 104, 105, 111, 110, 112, 87, 86, 108, 109, 92, 93, 89, 90, 96, 101, 36, 37,
-				91, 117, 10, 56, 53, 57, 58, 12, 21, 11, 17, 15, 16, 18, 19, 14, 13, 20, 25, 31, 32, 27, 30, 29, 22, 26,
-				23, 24, 28, 33, 64, 68, 3, 60, 7, 5, 1, 2, 4, 0, 59, 23, 24, 8, 6, 1, 2, 4, 74, 69, 119, 117, 36, 37,
-				60, 3, 98, 91, 5, 99, 100, 34, 35, 87, 86, 54, 89, 90, 92, 93, 7, 94, 95, 96, 64, 97, 72, 120, 70, 103,
-				104, 105, 106, 107, 108, 109, 110, 111, 112, 71, 118, 101, 102, 73, 68, 40, 9, 0, 23, 59, 24, 9, 64, 97,
-				70, 68, 72, 0, 9, 71, 69, 74, 0, 69, 53, 23, 13, 56, 26, 14, 28, 29, 15, 16, 30, 31, 17, 18, 32, 57, 33,
-				58, 19, 22, 20, 24, 21, 12, 11, 25, 9, 3, 7, 5, 40, 63, 65, 88, 27, 62, 55, 61, 8, 1, 2, 4, 10, 6, 0,
-				65, 25, 11, 12, 53, 23, 13, 56, 26, 88, 27, 14, 28, 29, 15, 16, 30, 61, 31, 17, 18, 32, 57, 33, 10, 58,
-				19, 63, 22, 20, 24, 21, 9, 3, 7, 5, 73, 40, 62, 8, 6, 55, 1, 2, 4, 0, 72, 9, 87, 86, 0, 11, 12, 13, 14,
-				15, 16, 17, 18, 19, 20, 21, 25, 23, 26, 27, 28, 29, 30, 31, 32, 33, 22, 24, 40, 9, 72, 8, 1, 2, 60, 3,
-				7, 5, 6, 4, 0, 23, 24, 74, 3, 71, 40, 69, 59, 9, 64, 97, 68, 72, 70, 0, 113, 0, 54, 64, 89, 90, 0, 9,
-				72, 11, 12, 41, 66, 13, 42, 43, 14, 15, 16, 67, 8, 44, 17, 18, 45, 46, 47, 59, 48, 49, 10, 19, 20, 21,
-				50, 51, 52, 1, 2, 3, 36, 37, 7, 5, 34, 35, 6, 39, 4, 38, 0, 4, 54, 9, 71, 69, 0, 25, 11, 12, 53, 23, 13,
-				56, 26, 27, 14, 28, 29, 15, 16, 30, 31, 17, 18, 32, 57, 33, 10, 58, 19, 22, 20, 24, 21, 1, 2, 4, 97, 0,
-				9, 68, 73, 70, 0, 71, 9, 60, 3, 70, 68, 40, 54, 0, 9, 69, 68, 0, 9, 69, 70, 0, 7, 5, 8, 6, 4, 1, 2, 3,
-				60, 64, 70, 68, 9, 72, 97, 0, 6, 8, 3, 60, 5, 7, 97, 25, 11, 12, 53, 23, 13, 56, 26, 27, 14, 28, 29, 15,
-				16, 30, 31, 17, 18, 32, 57, 33, 10, 58, 19, 22, 20, 24, 21, 1, 2, 4, 72, 9, 0, 11, 12, 41, 66, 13, 42,
-				43, 14, 15, 16, 67, 8, 44, 17, 18, 45, 46, 47, 59, 48, 49, 10, 19, 20, 21, 50, 51, 52, 38, 1, 2, 36, 37,
-				7, 5, 34, 35, 6, 39, 4, 62, 3, 0, 66, 67, 36, 37, 34, 35, 39, 45, 50, 51, 52, 38, 48, 43, 47, 12, 21,
-				11, 17, 15, 16, 18, 19, 14, 13, 20, 10, 42, 46, 44, 41, 49, 7, 5, 3, 60, 8, 6, 4, 1, 2, 0, 10, 56, 53,
-				57, 58, 12, 21, 11, 17, 15, 16, 18, 19, 14, 13, 20, 74, 71, 97, 118, 73, 69, 120, 8, 31, 32, 33, 22, 24,
-				1, 2, 30, 29, 28, 27, 26, 6, 4, 23, 25, 119, 98, 117, 91, 36, 37, 34, 35, 99, 100, 9, 60, 3, 5, 72, 40,
-				87, 86, 54, 89, 90, 92, 93, 7, 94, 95, 96, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
-				70, 68, 64, 0, 40, 9, 3, 8, 6, 7, 5, 4, 1, 2, 71, 0, 53, 23, 13, 56, 26, 14, 28, 29, 15, 16, 30, 31, 17,
-				18, 32, 57, 33, 10, 58, 19, 22, 20, 24, 21, 12, 11, 25, 9, 3, 7, 40, 63, 61, 65, 88, 27, 62, 54, 4, 5,
-				8, 6, 1, 2, 55, 0 };
-	}
-
-	public final static byte asr[] = Asr.asr;
-
-	@Override
-	public final int asr(int index) {
-		return asr[index];
-	}
-
-	public interface Nasb {
-		public final static char nasb[] = { 0, 184, 12, 69, 12, 12, 12, 12, 12, 12, 73, 12, 12, 12, 124, 12, 216, 157,
-				28, 69, 69, 245, 69, 69, 69, 69, 69, 69, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 69, 12, 69, 257,
-				292, 292, 292, 292, 28, 149, 173, 173, 25, 5, 104, 236, 12, 12, 173, 249, 236, 69, 64, 18, 12, 12, 257,
-				12, 12, 41, 41, 149, 157, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69,
-				69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 157, 69, 236, 236, 161, 1, 12, 12, 12, 12, 77, 236, 31, 31,
-				180, 275, 276, 204, 276, 80, 276, 83, 276, 269, 10, 28, 104, 104, 31, 12, 104, 292, 57, 216, 47, 236,
-				215, 28, 215, 236, 104, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 180,
-				99, 160, 20, 20, 12, 12, 12, 10, 28, 12, 12, 12, 12, 54, 11, 12, 238, 161, 152, 12, 12, 12, 12, 12, 12,
-				12, 12, 12, 12, 297, 28, 12, 173, 53, 73, 22, 73, 28, 11, 12, 12, 69, 292, 173, 13, 236, 12, 11, 28,
-				220, 18, 69, 295, 104, 12, 236, 193, 173, 28, 18, 157, 157, 157, 157, 12, 12, 275, 276, 276, 276, 276,
-				261, 10, 12, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 157, 69,
-				31, 182, 182, 182, 301, 54, 51, 51, 12, 223, 204, 173, 223, 17, 54, 236, 62, 297, 47, 12, 249, 54, 236,
-				12, 166, 12, 196, 16, 54, 236, 236, 236, 236, 149, 149, 28, 69, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
-				12, 12, 173, 142, 28, 208, 12, 118, 12, 12, 128, 278, 301, 51, 51, 173, 173, 17, 173, 250, 11, 54, 173,
-				110, 12, 157, 297, 221, 12, 12, 173, 69, 12, 12, 20, 20, 28, 165, 180, 196, 236, 54, 236, 236, 17, 236,
-				69, 182, 112, 18, 204, 139, 12, 12, 73, 173, 175, 168, 12, 173, 173, 75, 75, 54, 250, 93, 12, 12, 62,
-				149, 69, 104, 221, 112, 69, 69, 173, 11, 18, 236, 193, 210, 173, 12, 54, 173, 112, 216, 173, 204, 286,
-				173, 223, 173, 95, 212, 208, 69, 12, 134, 12, 28, 180, 75, 75, 106, 93, 142, 69, 250, 110, 236, 104,
-				173, 196, 112, 112, 208, 252, 173, 12, 286, 279, 12, 138, 128, 196, 216, 95, 121, 114, 168, 69, 69, 86,
-				212, 12, 73, 60, 223, 142, 97, 236, 173, 142, 286, 252, 203, 175, 12, 12, 73, 12, 12, 39, 39, 208, 121,
-				141, 12, 223, 12, 130, 223, 73, 73, 11, 12, 173, 97, 142, 286, 173, 208, 91, 12, 236, 73, 223, 196, 286,
-				173, 12, 12, 173, 187, 114, 11, 149, 11, 223, 223, 234, 112, 252, 57, 67, 168, 208, 223, 119, 196, 292,
-				292, 136, 199, 12, 69, 12, 208, 12, 12, 12, 12, 200, 12, 250, 206, 208, 208, 250, 146, 236, 11, 11, 236,
-				173, 142, 236, 173, 204, 119, 208, 12, 89, 12, 12, 200, 12, 200, 308, 308, 226, 12, 308, 208, 208, 12,
-				173, 292, 97, 142, 173, 208, 12, 292, 200, 236, 168, 236, 291, 173, 12, 236, 136, 67, 39, 236, 236, 173,
-				200, 12, 200, 208, 168, 157, 200, 89, 142, 12, 146, 146, 166, 69, 12, 231, 208, 236, 144, 66, 215, 200,
-				236, 208, 144, 12, 200 };
-	}
-
-	public final static char nasb[] = Nasb.nasb;
-
-	@Override
-	public final int nasb(int index) {
-		return nasb[index];
-	}
-
-	public interface Nasr {
-		public final static char nasr[] = { 0, 3, 13, 10, 9, 137, 136, 113, 135, 134, 4, 2, 0, 5, 194, 0, 154, 2, 75, 0,
-				79, 0, 42, 1, 0, 5, 212, 0, 2, 44, 0, 4, 10, 9, 2, 13, 127, 5, 0, 121, 0, 4, 2, 9, 10, 157, 0, 75, 156,
-				155, 0, 122, 0, 44, 2, 3, 0, 5, 28, 0, 210, 0, 161, 0, 192, 0, 80, 148, 42, 10, 9, 2, 13, 4, 0, 123, 0,
-				154, 75, 0, 166, 205, 0, 166, 200, 0, 75, 53, 0, 129, 0, 201, 0, 167, 0, 173, 0, 144, 0, 13, 2, 9, 10,
-				4, 94, 0, 4, 115, 209, 0, 159, 0, 51, 0, 186, 4, 185, 0, 140, 117, 0, 42, 174, 0, 5, 60, 213, 0, 170, 0,
-				4, 115, 182, 0, 208, 0, 175, 0, 1, 140, 0, 5, 80, 0, 176, 0, 42, 66, 0, 5, 105, 0, 13, 2, 9, 10, 4, 5,
-				36, 0, 31, 100, 101, 5, 0, 31, 101, 100, 77, 4, 2, 9, 10, 5, 0, 5, 10, 9, 2, 77, 4, 98, 53, 0, 5, 191,
-				0, 5, 50, 42, 36, 196, 0, 53, 4, 98, 27, 5, 0, 80, 36, 50, 82, 5, 42, 0, 5, 36, 39, 0, 101, 100, 53, 77,
-				68, 4, 10, 9, 2, 0, 2, 131, 0, 2, 67, 0, 36, 5, 27, 198, 0, 5, 195, 0, 60, 5, 31, 0, 137, 214, 136, 113,
-				135, 134, 0, 4, 10, 9, 13, 3, 1, 0, 132, 5, 50, 93, 0, 5, 60, 36, 0, 113, 69, 13, 110, 111, 112, 190, 0,
-				2, 4, 113, 110, 111, 112, 13, 69, 0, 39, 4, 2, 9, 10, 5, 172, 0, 5, 50, 93, 95, 0, 197, 5, 60, 0, 101,
-				100, 53, 4, 68, 0, 5, 50, 93, 115, 48, 4, 0, 5, 60, 116, 0 };
-	}
-
-	public final static char nasr[] = Nasr.nasr;
-
-	@Override
-	public final int nasr(int index) {
-		return nasr[index];
-	}
-
-	public interface TerminalIndex {
-		public final static char terminalIndex[] = { 0, 113, 114, 2, 31, 10, 13, 9, 79, 115, 100, 48, 52, 60, 68, 74,
-				75, 86, 87, 102, 105, 107, 104, 54, 106, 47, 64, 66, 70, 73, 76, 83, 89, 98, 11, 12, 7, 8, 112, 14, 120,
-				55, 61, 67, 84, 88, 90, 94, 97, 99, 109, 110, 111, 53, 19, 93, 63, 91, 101, 95, 1, 77, 122, 103, 20, 46,
-				58, 78, 44, 121, 33, 30, 118, 119, 96, 108, 49, 50, 56, 57, 59, 69, 71, 72, 85, 92, 17, 18, 65, 21, 22,
-				6, 23, 24, 25, 26, 27, 32, 4, 15, 16, 28, 29, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 51, 80, 81, 82, 5,
-				117, 3, 123, 62, 116 };
-	}
-
-	public final static char terminalIndex[] = TerminalIndex.terminalIndex;
-
-	@Override
-	public final int terminalIndex(int index) {
-		return terminalIndex[index];
-	}
-
-	public interface NonterminalIndex {
-		public final static char nonterminalIndex[] = { 0, 130, 135, 136, 0, 0, 134, 0, 0, 237, 243, 133, 0, 143, 0,
-				132, 0, 0, 142, 148, 0, 0, 149, 158, 159, 160, 161, 188, 151, 0, 162, 126, 141, 163, 164, 165, 131, 166,
-				167, 128, 168, 0, 129, 138, 137, 170, 169, 171, 185, 0, 0, 195, 172, 0, 173, 0, 0, 0, 0, 0, 152, 174,
-				175, 176, 0, 177, 180, 0, 155, 194, 0, 0, 0, 212, 0, 0, 209, 213, 0, 214, 127, 145, 179, 0, 0, 0, 0, 0,
-				0, 183, 0, 0, 0, 0, 125, 186, 0, 0, 210, 216, 217, 218, 0, 220, 157, 0, 146, 0, 0, 215, 197, 198, 199,
-				201, 227, 228, 182, 204, 0, 0, 219, 0, 0, 0, 0, 248, 0, 251, 0, 252, 0, 147, 187, 189, 190, 191, 192,
-				196, 200, 203, 0, 206, 0, 207, 0, 222, 225, 0, 0, 0, 246, 0, 247, 0, 0, 139, 140, 144, 0, 0, 154, 156,
-				0, 178, 0, 193, 0, 0, 0, 202, 0, 205, 211, 0, 223, 224, 0, 0, 229, 232, 0, 234, 236, 0, 240, 241, 242,
-				245, 0, 0, 249, 124, 0, 150, 153, 0, 181, 0, 184, 0, 0, 208, 221, 226, 0, 0, 230, 231, 233, 235, 0, 238,
-				239, 244, 250, 253, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
-
-	@Override
-	public final int nonterminalIndex(int index) {
-		return nonterminalIndex[index];
-	}
-
-	public interface ScopePrefix {
-		public final static char scopePrefix[] = { 172, 324, 602, 621, 317, 332, 553, 569, 580, 591, 372, 280, 294, 311,
-				344, 55, 305, 392, 430, 180, 610, 496, 20, 33, 64, 84, 93, 98, 103, 143, 208, 339, 350, 20, 467, 157,
-				286, 300, 524, 40, 157, 382, 20, 629, 40, 230, 259, 1, 14, 27, 74, 89, 119, 27, 361, 365, 448, 489, 518,
-				545, 549, 639, 643, 647, 110, 7, 110, 410, 426, 439, 460, 479, 537, 129, 129, 245, 439, 560, 576, 587,
-				598, 220, 507, 69, 69, 169, 235, 238, 69, 254, 275, 238, 238, 69, 369, 486, 493, 169, 69, 662, 123, 355,
-				414, 454, 472, 69, 355, 401, 190, 117, 452, 651, 658, 651, 658, 78, 420, 150, 117, 117, 264 };
-	}
-
-	public final static char scopePrefix[] = ScopePrefix.scopePrefix;
-
-	@Override
-	public final int scopePrefix(int index) {
-		return scopePrefix[index];
-	}
-
-	public interface ScopeSuffix {
-		public final static char scopeSuffix[] = { 18, 148, 5, 5, 148, 148, 5, 5, 5, 5, 379, 148, 108, 148, 25, 61, 291,
-				398, 436, 186, 80, 502, 25, 38, 38, 38, 72, 72, 108, 148, 213, 31, 31, 25, 5, 162, 291, 114, 529, 51,
-				165, 387, 616, 634, 45, 224, 224, 5, 18, 31, 5, 72, 108, 31, 108, 108, 148, 257, 5, 5, 5, 5, 5, 257,
-				660, 11, 114, 379, 379, 379, 464, 483, 529, 133, 138, 249, 443, 564, 564, 564, 564, 224, 511, 72, 72, 5,
-				5, 241, 243, 257, 5, 278, 278, 243, 108, 5, 257, 5, 522, 5, 126, 358, 417, 457, 475, 541, 532, 404, 193,
-				108, 108, 653, 653, 655, 655, 80, 422, 152, 215, 200, 266 };
-	}
-
-	public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
-
-	@Override
-	public final int scopeSuffix(int index) {
-		return scopeSuffix[index];
-	}
-
-	public interface ScopeLhs {
-		public final static char scopeLhs[] = { 48, 112, 18, 18, 92, 112, 18, 18, 18, 18, 85, 97, 49, 92, 111, 90, 58,
-				85, 84, 48, 18, 20, 190, 3, 7, 8, 182, 182, 178, 110, 48, 111, 111, 138, 45, 147, 59, 49, 157, 151, 147,
-				85, 18, 18, 151, 102, 72, 153, 88, 190, 185, 182, 178, 138, 199, 56, 66, 161, 19, 18, 18, 18, 18, 18,
-				12, 129, 178, 85, 84, 84, 64, 41, 157, 114, 114, 68, 84, 18, 18, 18, 18, 102, 20, 186, 182, 201, 100,
-				109, 74, 79, 73, 172, 89, 138, 86, 162, 161, 192, 157, 17, 178, 138, 116, 83, 45, 157, 157, 85, 48, 178,
-				78, 155, 44, 155, 44, 185, 116, 110, 48, 48, 72 };
-	}
-
-	public final static char scopeLhs[] = ScopeLhs.scopeLhs;
-
-	@Override
-	public final int scopeLhs(int index) {
-		return scopeLhs[index];
-	}
-
-	public interface ScopeLa {
-		public final static byte scopeLa[] = { 113, 73, 72, 72, 73, 73, 72, 72, 72, 72, 72, 73, 40, 73, 1, 64, 1, 72,
-				121, 69, 3, 72, 1, 64, 64, 64, 1, 1, 40, 73, 69, 1, 1, 1, 72, 73, 1, 1, 4, 64, 68, 40, 1, 1, 64, 72, 72,
-				72, 113, 1, 72, 1, 40, 1, 40, 40, 73, 118, 72, 72, 72, 72, 72, 118, 1, 72, 1, 72, 72, 72, 71, 71, 4, 1,
-				1, 5, 72, 64, 64, 64, 64, 72, 3, 1, 1, 72, 72, 3, 1, 118, 72, 1, 1, 1, 40, 72, 118, 72, 6, 72, 1, 55,
-				70, 71, 64, 1, 55, 75, 74, 40, 40, 4, 4, 4, 4, 3, 1, 69, 1, 1, 3 };
-	}
-
-	public final static byte scopeLa[] = ScopeLa.scopeLa;
-
-	@Override
-	public final int scopeLa(int index) {
-		return scopeLa[index];
-	}
-
-	public interface ScopeStateSet {
-		public final static char scopeStateSet[] = { 85, 183, 284, 284, 107, 183, 284, 284, 284, 284, 95, 109, 85, 107,
-				183, 107, 87, 95, 95, 85, 284, 284, 118, 214, 260, 260, 54, 54, 82, 183, 85, 183, 183, 185, 140, 370,
-				87, 85, 178, 50, 370, 95, 284, 284, 50, 169, 63, 26, 95, 118, 30, 54, 82, 185, 22, 87, 33, 79, 284, 284,
-				284, 284, 284, 284, 264, 6, 82, 95, 95, 95, 148, 343, 178, 183, 183, 124, 95, 284, 284, 284, 284, 169,
-				284, 30, 54, 24, 169, 171, 63, 165, 63, 60, 68, 185, 95, 57, 79, 181, 178, 284, 82, 185, 1, 95, 140,
-				178, 178, 95, 85, 82, 11, 121, 189, 121, 189, 30, 1, 183, 85, 85, 63 };
-	}
-
-	public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet;
-
-	@Override
-	public final int scopeStateSet(int index) {
-		return scopeStateSet[index];
-	}
-
-	public interface ScopeRhs {
-		public final static char scopeRhs[] = { 0, 338, 3, 59, 0, 126, 0, 337, 3, 113, 0, 126, 180, 0, 127, 188, 74, 0,
-				224, 0, 197, 166, 126, 10, 0, 136, 0, 166, 126, 10, 0, 135, 0, 271, 127, 54, 124, 0, 20, 0, 309, 127,
-				54, 55, 0, 20, 53, 0, 33, 132, 0, 20, 53, 0, 0, 309, 127, 54, 55, 215, 0, 20, 186, 0, 271, 127, 54, 132,
-				0, 189, 126, 0, 141, 0, 227, 3, 308, 0, 308, 0, 2, 0, 126, 0, 271, 127, 54, 131, 0, 189, 126, 237, 0,
-				189, 126, 22, 237, 0, 189, 126, 332, 22, 0, 128, 197, 166, 126, 0, 128, 0, 197, 166, 126, 0, 134, 128,
-				0, 172, 0, 328, 127, 172, 0, 127, 172, 0, 230, 128, 0, 166, 327, 235, 0, 136, 0, 0, 0, 0, 135, 0, 0, 0,
-				0, 326, 127, 164, 236, 0, 127, 0, 236, 0, 129, 0, 0, 127, 0, 325, 127, 164, 270, 0, 127, 0, 0, 44, 127,
-				0, 0, 150, 3, 0, 127, 296, 295, 127, 74, 294, 172, 0, 295, 127, 74, 294, 172, 0, 223, 0, 224, 0, 294,
-				172, 0, 96, 0, 0, 223, 0, 224, 0, 211, 96, 0, 0, 223, 0, 224, 0, 295, 127, 294, 172, 0, 223, 0, 211, 0,
-				0, 223, 0, 240, 127, 3, 0, 126, 0, 0, 0, 0, 0, 240, 127, 3, 222, 0, 231, 3, 0, 220, 127, 0, 216, 0, 146,
-				0, 175, 166, 126, 0, 10, 0, 0, 0, 0, 226, 60, 0, 125, 0, 240, 127, 3, 195, 0, 195, 0, 2, 0, 0, 126, 0,
-				0, 0, 0, 0, 211, 3, 0, 209, 0, 252, 127, 164, 38, 27, 0, 189, 126, 61, 63, 0, 204, 128, 0, 128, 189,
-				126, 292, 63, 0, 189, 126, 292, 63, 0, 189, 126, 70, 123, 61, 0, 252, 127, 164, 262, 61, 0, 252, 127,
-				164, 262, 239, 61, 0, 289, 290, 127, 164, 123, 322, 56, 0, 289, 290, 127, 164, 322, 56, 0, 189, 126,
-				288, 56, 0, 197, 189, 126, 288, 235, 0, 189, 126, 288, 235, 0, 166, 126, 0, 93, 136, 0, 286, 127, 149,
-				0, 286, 127, 172, 0, 158, 84, 0, 317, 161, 319, 320, 3, 81, 0, 126, 179, 0, 319, 320, 3, 81, 0, 128, 0,
-				126, 179, 0, 158, 3, 75, 204, 80, 0, 126, 128, 0, 204, 80, 0, 108, 2, 131, 126, 128, 0, 238, 3, 75, 0,
-				211, 182, 0, 33, 169, 0, 182, 0, 183, 33, 169, 0, 238, 3, 85, 0, 204, 153, 238, 3, 83, 0, 62, 179, 0,
-				238, 3, 83, 0, 126, 179, 62, 179, 0, 318, 127, 164, 0, 158, 0, 226, 77, 0, 30, 179, 0, 158, 102, 185, 0,
-				30, 177, 0, 148, 64, 167, 3, 0, 167, 3, 0, 20, 161, 126, 0, 158, 102, 162, 0, 30, 169, 0, 227, 3, 0,
-				226, 60, 283, 0, 158, 60, 0, 203, 3, 314, 67, 126, 0, 126, 0, 0, 0, 0, 314, 67, 126, 0, 2, 145, 126, 0,
-				0, 0, 0, 203, 3, 45, 0, 147, 0, 125, 55, 166, 126, 0, 31, 147, 0, 93, 136, 31, 147, 0, 228, 189, 126, 0,
-				146, 31, 147, 0, 203, 3, 49, 0, 158, 3, 49, 0, 158, 3, 64, 203, 54, 41, 0, 203, 54, 41, 0, 20, 2, 131,
-				126, 0, 158, 3, 64, 203, 54, 44, 0, 203, 54, 44, 0, 158, 3, 64, 203, 54, 46, 0, 203, 54, 46, 0, 158, 3,
-				64, 203, 54, 42, 0, 203, 54, 42, 0, 227, 3, 125, 197, 166, 126, 10, 0, 125, 197, 166, 126, 10, 0, 136,
-				2, 0, 126, 0, 227, 3, 124, 276, 166, 126, 10, 0, 276, 166, 126, 10, 0, 135, 2, 0, 126, 0, 227, 3, 135,
-				0, 227, 3, 140, 0, 158, 60, 140, 0, 278, 0, 31, 0, 31, 139, 0, 165, 0, 134, 0, 158, 3, 0 };
-	}
-
-	public final static char scopeRhs[] = ScopeRhs.scopeRhs;
-
-	@Override
-	public final int scopeRhs(int index) {
-		return scopeRhs[index];
-	}
-
-	public interface ScopeState {
-		public final static char scopeState[] = { 0, 6062, 6292, 6290, 6288, 0, 2597, 2665, 1716, 2533, 0, 5212, 5150,
-				5088, 5026, 4964, 4902, 4840, 4778, 4714, 4502, 4440, 4842, 0, 1763, 0, 2443, 1995, 1987, 0, 2274, 2142,
-				0, 5212, 5150, 2869, 2868, 5088, 5026, 4964, 4902, 4840, 4778, 2797, 4714, 4502, 4440, 2406, 2277, 0,
-				6205, 3566, 6135, 0, 2394, 2080, 0, 2314, 2089, 0, 653, 6002, 0, 5962, 653, 5914, 4675, 6002, 4591,
-				4329, 2512, 2182, 3812, 5702, 2380, 4194, 4180, 4140, 0, 2446, 1022, 0, 5928, 6191, 0, 5928, 6191, 5815,
-				6171, 6111, 5754, 6097, 6037, 5737, 6022, 5212, 5150, 5088, 5026, 4964, 4902, 4840, 4778, 4714, 4502,
-				4440, 0, 5928, 6191, 5815, 6171, 6111, 5754, 6097, 6037, 5737, 6022, 0, 5747, 5349, 0, 2245, 815, 0,
-				3812, 5962, 4511, 5914, 4675, 4755, 4194, 4448, 4232, 4231, 4451, 6144, 920, 3368, 2081, 0, 3330, 3431,
-				3588, 3533, 3825, 3785, 3675, 3493, 2878, 929, 2812, 2746, 2680, 2614, 2548, 2482, 2416, 2350, 2284,
-				2218, 2152, 837, 769, 677, 0, 2260, 1437, 1341, 651, 4675, 6144, 4591, 4180, 4140, 3279, 3859, 718, 0,
-				869, 746, 0, 1047, 0, 5747, 5349, 5887, 599, 4274, 0, 6233, 6181, 6056, 5836, 5179, 5117, 5055, 4993,
-				4931, 4910, 5951, 5853, 4848, 4787, 5241, 4531, 3860, 925, 3855, 4701, 4694, 4441, 3488, 672, 0, 1625,
-				1578, 6233, 6181, 6056, 1384, 1249, 5836, 885, 5179, 5117, 5055, 4993, 4931, 1907, 4459, 1860, 1813,
-				4910, 1766, 5951, 5853, 1719, 1672, 1481, 1431, 4848, 4787, 809, 5241, 4707, 4531, 3185, 2917, 3860,
-				925, 3855, 765, 4701, 4694, 4441, 5887, 646, 4274, 3488, 672, 2842, 2776, 1193, 1042, 904, 4591, 4329,
-				2512, 2182, 3812, 5962, 5702, 653, 5914, 4675, 2380, 4194, 4180, 6002, 4140, 2710, 2644, 869, 746, 2878,
-				4153, 929, 3330, 2812, 2746, 2680, 2614, 2548, 2482, 2416, 2350, 2284, 2218, 2152, 3431, 3588, 3533,
-				3825, 3785, 3675, 4113, 4086, 4059, 5679, 3493, 837, 769, 677, 3288, 3393, 1106, 1254, 3754, 3723, 3641,
-				4413, 4346, 4032, 4005, 3978, 3905, 5325, 5301, 4301, 4631, 4604, 5656, 5633, 5610, 5587, 5564, 5540,
-				5510, 5487, 5421, 5395, 5364, 5715, 2944, 3231, 3189, 3132, 3090, 3033, 1389, 1342, 2991, 1293, 2095,
-				2053, 599, 2006, 1959, 1912, 1865, 1818, 1771, 1724, 1677, 1630, 1583, 1536, 1489, 1439, 1207, 1058,
-				995, 1144, 0 };
-	}
-
-	public final static char scopeState[] = ScopeState.scopeState;
-
-	@Override
-	public final int scopeState(int index) {
-		return scopeState[index];
-	}
-
-	public interface InSymb {
-		public final static char inSymb[] = { 0, 0, 313, 127, 285, 49, 41, 44, 46, 42, 10, 135, 124, 131, 8, 132, 4, 3,
-				126, 45, 39, 6, 35, 34, 5, 7, 37, 36, 140, 145, 147, 146, 152, 148, 156, 155, 159, 157, 160, 59, 162,
-				68, 3, 54, 54, 54, 54, 126, 3, 54, 54, 182, 127, 60, 3, 66, 67, 54, 6, 158, 66, 67, 166, 165, 124, 3,
-				123, 125, 117, 119, 3, 60, 91, 98, 35, 34, 100, 99, 5, 90, 89, 64, 54, 86, 87, 7, 93, 92, 95, 94, 96,
-				112, 111, 110, 109, 108, 107, 106, 105, 104, 103, 70, 102, 101, 203, 158, 182, 127, 203, 203, 203, 203,
-				166, 227, 127, 127, 127, 255, 256, 236, 257, 235, 258, 56, 287, 259, 10, 126, 60, 60, 127, 124, 60, 314,
-				3, 197, 4, 203, 55, 126, 55, 227, 158, 146, 146, 145, 145, 145, 148, 148, 148, 148, 147, 147, 155, 152,
-				152, 157, 156, 159, 158, 160, 127, 60, 3, 223, 222, 135, 125, 124, 10, 126, 64, 64, 64, 64, 197, 276,
-				271, 127, 249, 3, 167, 148, 174, 169, 183, 176, 184, 185, 274, 271, 220, 126, 175, 164, 327, 288, 322,
-				288, 126, 189, 166, 271, 216, 3, 315, 182, 150, 278, 197, 126, 189, 166, 71, 220, 226, 162, 231, 127, 3,
-				126, 166, 3, 3, 3, 3, 125, 124, 255, 256, 257, 258, 336, 259, 10, 167, 90, 89, 54, 7, 93, 92, 95, 94,
-				96, 112, 111, 110, 109, 108, 107, 106, 105, 104, 103, 70, 102, 101, 68, 166, 7, 5, 127, 166, 243, 125,
-				124, 126, 123, 164, 126, 166, 55, 203, 127, 127, 4, 228, 6, 55, 240, 241, 149, 242, 127, 166, 55, 158,
-				158, 158, 158, 3, 3, 126, 64, 148, 148, 148, 169, 167, 167, 176, 174, 183, 158, 184, 175, 175, 326, 126,
-				170, 237, 61, 55, 215, 63, 172, 329, 125, 124, 244, 244, 189, 164, 127, 189, 197, 153, 280, 283, 60,
-				190, 4, 123, 125, 153, 70, 231, 211, 199, 195, 126, 3, 127, 68, 240, 197, 227, 227, 166, 148, 71, 5,
-				127, 166, 262, 239, 54, 55, 292, 294, 127, 3, 195, 244, 244, 127, 127, 197, 127, 290, 123, 291, 127, 3,
-				60, 158, 4, 127, 70, 70, 3, 189, 166, 211, 127, 220, 153, 125, 197, 175, 173, 197, 164, 262, 64, 54,
-				126, 74, 127, 220, 328, 71, 303, 211, 124, 126, 127, 127, 127, 71, 290, 289, 70, 68, 280, 227, 226, 229,
-				127, 127, 127, 128, 127, 164, 27, 55, 172, 65, 61, 63, 127, 189, 127, 295, 71, 68, 71, 70, 166, 220,
-				331, 237, 22, 126, 289, 127, 240, 229, 252, 254, 127, 38, 127, 3, 123, 61, 309, 55, 10, 53, 128, 295,
-				164, 307, 126, 308, 68, 126, 22, 332, 189, 59, 153, 127, 252, 127, 164, 286, 265, 293, 38, 70, 126, 68,
-				64, 54, 243, 243, 296, 127, 68, 189, 3, 189, 126, 126, 3, 127, 127, 3, 70, 68, 153, 126, 189, 127, 70,
-				70, 127, 318, 79, 77, 1, 158, 9, 85, 83, 81, 80, 75, 82, 84, 78, 76, 61, 74, 227, 189, 189, 338, 229,
-				252, 150, 164, 270, 189, 239, 309, 297, 113, 9, 71, 226, 71, 3, 3, 3, 204, 3, 123, 158, 123, 188, 68,
-				127, 127, 164, 239, 64, 3, 71, 238, 182, 238, 320, 149, 75, 238, 127, 127, 53, 97, 337, 182, 153, 211,
-				153, 319, 127, 3, 153, 297, 325, 243, 153, 153, 127, 70, 204, 161, 286, 158, 202, 68, 70, 121, 317, 153,
-				202, 9, 153 };
-	}
-
-	public final static char inSymb[] = InSymb.inSymb;
-
-	@Override
-	public final int inSymb(int index) {
-		return inSymb[index];
-	}
-
-	public interface Name {
-		public final static String name[] = { "", "[", "(", ".", ".*", "->", "->*", "++", "--", "&", "*", "+", "-", "~",
-				"!", "/", "%", ">>", "<<", "<", ">", "<=", ">=", "==", "!=", "^", "|", "&&", "||", "?", ":", "::",
-				"...", "=", "*=", "/=", "%=", "+=", "-=", ">>=", "<<=", "&=", "^=", "|=", ",", "$empty", "asm", "auto",
-				"bool", "break", "case", "catch", "char", "class", "const", "const_cast", "continue", "default",
-				"delete", "do", "double", "dynamic_cast", "else", "enum", "explicit", "export", "extern", "false",
-				"float", "for", "friend", "goto", "if", "inline", "int", "long", "mutable", "namespace", "new",
-				"operator", "private", "protected", "public", "register", "reinterpret_cast", "return", "short",
-				"signed", "sizeof", "static", "static_cast", "struct", "switch", "template", "this", "throw", "try",
-				"true", "typedef", "typeid", "typename", "union", "unsigned", "using", "virtual", "void", "volatile",
-				"wchar_t", "while", "integer", "floating", "charconst", "stringlit", "identifier", "Completion",
-				"EndOfCompletion", "Invalid", "RightBracket", "RightParen", "RightBrace", "SemiColon", "LeftBrace",
-				"ERROR_TOKEN", "EOF_TOKEN", "no_cast_start", "]", ")", "}", ";", "{", "identifier_token", "expression",
-				"id_expression", "qualified_or_unqualified_name", "unqualified_id_name", "identifier_name",
-				"template_id_name", "nested_name_specifier", "class_or_namespace_name",
-				"nested_name_specifier_with_tem" + "plate", "class_or_namespace_name_with_t" + "emplate", "class_name",
-				"postfix_expression", "simple_type_specifier", "pseudo_destructor_name", "type_id", "type_name",
-				"destructor_type_name", "unary_expression", "cast_expression", "new_type_id", "expression_list",
-				"type_specifier_seq", "new_declarator", "new_pointer_operators", "ptr_operator",
-				"new_array_expressions", "constant_expression", "pm_expression", "multiplicative_expression",
-				"additive_expression", "shift_expression", "relational_expression", "equality_expression",
-				"and_expression", "exclusive_or_expression", "inclusive_or_expression", "logical_and_expression",
-				"logical_or_expression", "assignment_expression", "relational_expression_inTempla" + "te",
-				"equality_expression_inTemplate", "and_expression_inTemplate",
-				"exclusive_or_expression_inTemp" + "late", "inclusive_or_expression_inTemp" + "late",
-				"logical_and_expression_inTempl" + "ate", "logical_or_expression_inTempla" + "te",
-				"assignment_expression_inTempla" + "te", "expression_list_actual", "statement", "compound_statement",
-				"statement_seq", "condition", "declarator", "for_init_statement", "function_definition", "declaration",
-				"declaration_seq", "declaration_specifiers", "simple_declaration_specifiers",
-				"class_declaration_specifiers", "elaborated_declaration_specifi" + "ers", "enum_declaration_specifiers",
-				"type_name_declaration_specifie" + "rs", "no_type_declaration_specifier", "cv_qualifier",
-				"no_type_declaration_specifiers", "class_specifier", "elaborated_type_specifier", "enum_specifier",
-				"type_name_specifier", "class_keyword", "enumerator_list", "enumerator_definition", "namespace_name",
-				"init_declarator_list", "init_declarator_complete", "complete_declarator", "initializer",
-				"direct_declarator", "ptr_operator_seq", "function_declarator", "basic_direct_declarator",
-				"array_direct_declarator", "array_modifier", "abstract_declarator", "direct_abstract_declarator",
-				"basic_direct_abstract_declarat" + "or", "array_direct_abstract_declarat" + "or",
-				"parameter_declaration_list", "parameter_declaration", "parameter_init_declarator",
-				"parameter_initializer", "function_body", "handler_seq", "initializer_clause", "initializer_seq",
-				"class_head", "access_specifier_keyword", "member_declaration", "member_declarator_list",
-				"member_declaration_list", "member_declarator_complete", "constant_initializer", "bit_field_declarator",
-				"base_specifier_list", "base_specifier", "conversion_function_id", "conversion_type_id",
-				"conversion_declarator", "mem_initializer_list", "mem_initializer", "mem_initializer_name",
-				"operator_id_name", "overloadable_operator", "template_parameter_list", "template_parameter",
-				"template_argument_list", "template_argument", "type_name_specifier_inTemplate",
-				"type_name_declaration_specifie" + "rs_inTemplate", "type_specifier_seq_inTemplate", "handler",
-				"exception_declaration", "type_id_list" };
-	}
-
-	public final static String name[] = Name.name;
-
-	@Override
-	public final String name(int index) {
-		return name[index];
-	}
-
-	public final static int ERROR_SYMBOL = 62, SCOPE_UBOUND = 120, SCOPE_SIZE = 121, MAX_NAME_LENGTH = 43;
-
-	@Override
-	public final int getErrorSymbol() {
-		return ERROR_SYMBOL;
-	}
-
-	@Override
-	public final int getScopeUbound() {
-		return SCOPE_UBOUND;
-	}
-
-	@Override
-	public final int getScopeSize() {
-		return SCOPE_SIZE;
-	}
-
-	@Override
-	public final int getMaxNameLength() {
-		return MAX_NAME_LENGTH;
-	}
-
-	public final static int NUM_STATES = 602, NT_OFFSET = 122, LA_STATE_OFFSET = 7448, MAX_LA = 2147483647,
-			NUM_RULES = 598, NUM_NONTERMINALS = 225, NUM_SYMBOLS = 347, SEGMENT_SIZE = 8192, START_STATE = 4258,
-			IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 120, EOLT_SYMBOL = 120, ACCEPT_ACTION = 6410, ERROR_ACTION = 6850;
-
-	public final static boolean BACKTRACK = true;
-
-	@Override
-	public final int getNumStates() {
-		return NUM_STATES;
-	}
-
-	@Override
-	public final int getNtOffset() {
-		return NT_OFFSET;
-	}
-
-	@Override
-	public final int getLaStateOffset() {
-		return LA_STATE_OFFSET;
-	}
-
-	@Override
-	public final int getMaxLa() {
-		return MAX_LA;
-	}
-
-	@Override
-	public final int getNumRules() {
-		return NUM_RULES;
-	}
-
-	@Override
-	public final int getNumNonterminals() {
-		return NUM_NONTERMINALS;
-	}
-
-	@Override
-	public final int getNumSymbols() {
-		return NUM_SYMBOLS;
-	}
-
-	@Override
-	public final int getSegmentSize() {
-		return SEGMENT_SIZE;
-	}
-
-	@Override
-	public final int getStartState() {
-		return START_STATE;
-	}
-
-	@Override
-	public final int getStartSymbol() {
-		return lhs[0];
-	}
-
-	public final int getIdentifierSymbol() {
-		return IDENTIFIER_SYMBOL;
-	}
-
-	@Override
-	public final int getEoftSymbol() {
-		return EOFT_SYMBOL;
-	}
-
-	@Override
-	public final int getEoltSymbol() {
-		return EOLT_SYMBOL;
-	}
-
-	@Override
-	public final int getAcceptAction() {
-		return ACCEPT_ACTION;
-	}
-
-	@Override
-	public final int getErrorAction() {
-		return ERROR_ACTION;
-	}
-
-	@Override
-	public final boolean isValidForParser() {
-		return isValidForParser;
-	}
-
-	@Override
-	public final boolean getBacktrack() {
-		return BACKTRACK;
-	}
-
-	@Override
-	public final int originalState(int state) {
-		return -baseCheck[state];
-	}
-
-	@Override
-	public final int asi(int state) {
-		return asb[originalState(state)];
-	}
-
-	@Override
-	public final int nasi(int state) {
-		return nasb[originalState(state)];
-	}
-
-	@Override
-	public final int inSymbol(int state) {
-		return inSymb[originalState(state)];
-	}
-
-	@Override
-	public final int ntAction(int state, int sym) {
-		return baseAction[state + sym];
-	}
-
-	@Override
-	public final int tAction(int state, int sym) {
-		int i = baseAction[state], k = i + sym;
-		return termAction[termCheck[k] == sym ? k : i];
-	}
-
-	@Override
-	public final int lookAhead(int la_state, int sym) {
-		int k = la_state + sym;
-		return termAction[termCheck[k] == sym ? k : la_state];
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParsersym.java
deleted file mode 100644
index e53e86f..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParsersym.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2010 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.lrparser.cpp;
-
-public interface CPPNoCastExpressionParsersym {
-	public final static int TK_asm = 65, TK_auto = 25, TK_bool = 11, TK_break = 76, TK_case = 77, TK_catch = 113,
-			TK_char = 12, TK_class = 53, TK_const = 23, TK_const_cast = 41, TK_continue = 78, TK_default = 79,
-			TK_delete = 66, TK_do = 80, TK_double = 13, TK_dynamic_cast = 42, TK_else = 121, TK_enum = 56,
-			TK_explicit = 26, TK_export = 88, TK_extern = 27, TK_false = 43, TK_float = 14, TK_for = 81, TK_friend = 28,
-			TK_goto = 82, TK_if = 83, TK_inline = 29, TK_int = 15, TK_long = 16, TK_mutable = 30, TK_namespace = 61,
-			TK_new = 67, TK_operator = 8, TK_private = 114, TK_protected = 115, TK_public = 116, TK_register = 31,
-			TK_reinterpret_cast = 44, TK_return = 84, TK_short = 17, TK_signed = 18, TK_sizeof = 45, TK_static = 32,
-			TK_static_cast = 46, TK_struct = 57, TK_switch = 85, TK_template = 55, TK_this = 47, TK_throw = 59,
-			TK_try = 74, TK_true = 48, TK_typedef = 33, TK_typeid = 49, TK_typename = 10, TK_union = 58,
-			TK_unsigned = 19, TK_using = 63, TK_virtual = 22, TK_void = 20, TK_volatile = 24, TK_wchar_t = 21,
-			TK_while = 75, TK_integer = 50, TK_floating = 51, TK_charconst = 52, TK_stringlit = 38, TK_identifier = 1,
-			TK_Completion = 2, TK_EndOfCompletion = 9, TK_Invalid = 122, TK_LeftBracket = 60, TK_LeftParen = 3,
-			TK_Dot = 119, TK_DotStar = 98, TK_Arrow = 117, TK_ArrowStar = 91, TK_PlusPlus = 36, TK_MinusMinus = 37,
-			TK_And = 7, TK_Star = 5, TK_Plus = 34, TK_Minus = 35, TK_Tilde = 6, TK_Bang = 39, TK_Slash = 99,
-			TK_Percent = 100, TK_RightShift = 86, TK_LeftShift = 87, TK_LT = 54, TK_GT = 64, TK_LE = 89, TK_GE = 90,
-			TK_EQ = 92, TK_NE = 93, TK_Caret = 94, TK_Or = 95, TK_AndAnd = 96, TK_OrOr = 101, TK_Question = 102,
-			TK_Colon = 71, TK_ColonColon = 4, TK_DotDotDot = 97, TK_Assign = 70, TK_StarAssign = 103,
-			TK_SlashAssign = 104, TK_PercentAssign = 105, TK_PlusAssign = 106, TK_MinusAssign = 107,
-			TK_RightShiftAssign = 108, TK_LeftShiftAssign = 109, TK_AndAssign = 110, TK_CaretAssign = 111,
-			TK_OrAssign = 112, TK_Comma = 68, TK_RightBracket = 118, TK_RightParen = 72, TK_RightBrace = 73,
-			TK_SemiColon = 40, TK_LeftBrace = 69, TK_ERROR_TOKEN = 62, TK_EOF_TOKEN = 120;
-
-	public final static String orderedTerminalSymbols[] = { "", "identifier", "Completion", "LeftParen", "ColonColon",
-			"Star", "Tilde", "And", "operator", "EndOfCompletion", "typename", "bool", "char", "double", "float", "int",
-			"long", "short", "signed", "unsigned", "void", "wchar_t", "virtual", "const", "volatile", "auto",
-			"explicit", "extern", "friend", "inline", "mutable", "register", "static", "typedef", "Plus", "Minus",
-			"PlusPlus", "MinusMinus", "stringlit", "Bang", "SemiColon", "const_cast", "dynamic_cast", "false",
-			"reinterpret_cast", "sizeof", "static_cast", "this", "true", "typeid", "integer", "floating", "charconst",
-			"class", "LT", "template", "enum", "struct", "union", "throw", "LeftBracket", "namespace", "ERROR_TOKEN",
-			"using", "GT", "asm", "delete", "new", "Comma", "LeftBrace", "Assign", "Colon", "RightParen", "RightBrace",
-			"try", "while", "break", "case", "continue", "default", "do", "for", "goto", "if", "return", "switch",
-			"RightShift", "LeftShift", "export", "LE", "GE", "ArrowStar", "EQ", "NE", "Caret", "Or", "AndAnd",
-			"DotDotDot", "DotStar", "Slash", "Percent", "OrOr", "Question", "StarAssign", "SlashAssign",
-			"PercentAssign", "PlusAssign", "MinusAssign", "RightShiftAssign", "LeftShiftAssign", "AndAssign",
-			"CaretAssign", "OrAssign", "catch", "private", "protected", "public", "Arrow", "RightBracket", "Dot",
-			"EOF_TOKEN", "else", "Invalid" };
-
-	public final static boolean isValidForParser = true;
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParser.java
deleted file mode 100644
index 7639017..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParser.java
+++ /dev/null
@@ -1,2859 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2015 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.lrparser.cpp;
-
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.cdt.core.dom.ast.IASTCompletionNode;
-import org.eclipse.cdt.core.dom.ast.IASTDeclarator;
-import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTBinaryExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCastExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTLiteralExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTypeIdExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTUnaryExpression;
-import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter;
-import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
-import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
-import org.eclipse.cdt.core.dom.lrparser.ITokenCollector;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
-import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
-import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
-import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPBuildASTParserAction;
-import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPSecondaryParserFactory;
-import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser;
-import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
-import org.eclipse.cdt.core.index.IIndex;
-import org.eclipse.cdt.core.parser.IScanner;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPNodeFactory;
-
-import lpg.lpgjavaruntime.BadParseException;
-import lpg.lpgjavaruntime.BadParseSymFileException;
-import lpg.lpgjavaruntime.DiagnoseParser;
-import lpg.lpgjavaruntime.ErrorToken;
-import lpg.lpgjavaruntime.IToken;
-import lpg.lpgjavaruntime.LexStream;
-import lpg.lpgjavaruntime.Monitor;
-import lpg.lpgjavaruntime.NotBacktrackParseTableException;
-import lpg.lpgjavaruntime.NullExportedSymbolsException;
-import lpg.lpgjavaruntime.NullTerminalSymbolsException;
-import lpg.lpgjavaruntime.ParseErrorCodes;
-import lpg.lpgjavaruntime.ParseTable;
-import lpg.lpgjavaruntime.PrsStream;
-import lpg.lpgjavaruntime.RuleAction;
-import lpg.lpgjavaruntime.Token;
-import lpg.lpgjavaruntime.UndefinedEofSymbolException;
-import lpg.lpgjavaruntime.UnimplementedTerminalsException;
-
-public class CPPNoFunctionDeclaratorParser extends PrsStream
-		implements RuleAction, ITokenStream, ITokenCollector, ISecondaryParser<IASTDeclarator> {
-	private static ParseTable prs = new CPPNoFunctionDeclaratorParserprs();
-	private FixedBacktrackingParser btParser;
-
-	public FixedBacktrackingParser getParser() {
-		return btParser;
-	}
-
-	private void setResult(Object object) {
-		btParser.setSym1(object);
-	}
-
-	public Object getRhsSym(int i) {
-		return btParser.getSym(i);
-	}
-
-	public int getRhsTokenIndex(int i) {
-		return btParser.getToken(i);
-	}
-
-	public IToken getRhsIToken(int i) {
-		return super.getIToken(getRhsTokenIndex(i));
-	}
-
-	public int getRhsFirstTokenIndex(int i) {
-		return btParser.getFirstToken(i);
-	}
-
-	public IToken getRhsFirstIToken(int i) {
-		return super.getIToken(getRhsFirstTokenIndex(i));
-	}
-
-	public int getRhsLastTokenIndex(int i) {
-		return btParser.getLastToken(i);
-	}
-
-	public IToken getRhsLastIToken(int i) {
-		return super.getIToken(getRhsLastTokenIndex(i));
-	}
-
-	public int getLeftSpan() {
-		return btParser.getFirstToken();
-	}
-
-	@Override
-	public IToken getLeftIToken() {
-		return super.getIToken(getLeftSpan());
-	}
-
-	public int getRightSpan() {
-		return btParser.getLastToken();
-	}
-
-	@Override
-	public IToken getRightIToken() {
-		return super.getIToken(getRightSpan());
-	}
-
-	public int getRhsErrorTokenIndex(int i) {
-		int index = btParser.getToken(i);
-		IToken err = super.getIToken(index);
-		return (err instanceof ErrorToken ? index : 0);
-	}
-
-	public ErrorToken getRhsErrorIToken(int i) {
-		int index = btParser.getToken(i);
-		IToken err = super.getIToken(index);
-		return (ErrorToken) (err instanceof ErrorToken ? err : null);
-	}
-
-	public CPPNoFunctionDeclaratorParser(LexStream lexStream) {
-		super(lexStream);
-
-		try {
-			super.remapTerminalSymbols(orderedTerminalSymbols(), CPPNoFunctionDeclaratorParserprs.EOFT_SYMBOL);
-		} catch (NullExportedSymbolsException e) {
-		} catch (NullTerminalSymbolsException e) {
-		} catch (UnimplementedTerminalsException e) {
-			java.util.ArrayList unimplemented_symbols = e.getSymbols();
-			System.out.println("The Lexer will not scan the following token(s):");
-			for (int i = 0; i < unimplemented_symbols.size(); i++) {
-				Integer id = (Integer) unimplemented_symbols.get(i);
-				System.out.println("    " + CPPNoFunctionDeclaratorParsersym.orderedTerminalSymbols[id.intValue()]);
-			}
-			System.out.println();
-		} catch (UndefinedEofSymbolException e) {
-			throw new Error(new UndefinedEofSymbolException("The Lexer does not implement the Eof symbol "
-					+ CPPNoFunctionDeclaratorParsersym.orderedTerminalSymbols[CPPNoFunctionDeclaratorParserprs.EOFT_SYMBOL]));
-		}
-	}
-
-	@Override
-	public String[] orderedTerminalSymbols() {
-		return CPPNoFunctionDeclaratorParsersym.orderedTerminalSymbols;
-	}
-
-	public String getTokenKindName(int kind) {
-		return CPPNoFunctionDeclaratorParsersym.orderedTerminalSymbols[kind];
-	}
-
-	public int getEOFTokenKind() {
-		return CPPNoFunctionDeclaratorParserprs.EOFT_SYMBOL;
-	}
-
-	public PrsStream getParseStream() {
-		return this;
-	}
-
-	//
-	// Report error message for given error_token.
-	//
-	public final void reportErrorTokenMessage(int error_token, String msg) {
-		int firsttok = super.getFirstErrorToken(error_token), lasttok = super.getLastErrorToken(error_token);
-		String location = super.getFileName() + ':'
-				+ (firsttok > lasttok ? (super.getEndLine(lasttok) + ":" + super.getEndColumn(lasttok))
-						: (super.getLine(error_token) + ":" + super.getColumn(error_token) + ":"
-								+ super.getEndLine(error_token) + ":" + super.getEndColumn(error_token)))
-				+ ": ";
-		super.reportError((firsttok > lasttok ? ParseErrorCodes.INSERTION_CODE : ParseErrorCodes.SUBSTITUTION_CODE),
-				location, msg);
-	}
-
-	public void parser() {
-		parser(null, 0);
-	}
-
-	public void parser(Monitor monitor) {
-		parser(monitor, 0);
-	}
-
-	public void parser(int error_repair_count) {
-		parser(null, error_repair_count);
-	}
-
-	public void parser(Monitor monitor, int error_repair_count) {
-		try {
-			btParser = new FixedBacktrackingParser(monitor, this, prs, this);
-		} catch (NotBacktrackParseTableException e) {
-			throw new Error(new NotBacktrackParseTableException(
-					"Regenerate CPPNoFunctionDeclaratorParserprs.java with -BACKTRACK option"));
-		} catch (BadParseSymFileException e) {
-			throw new Error(
-					new BadParseSymFileException("Bad Parser Symbol File -- CPPNoFunctionDeclaratorParsersym.java"));
-		}
-
-		try {
-			btParser.parse(error_repair_count);
-		} catch (BadParseException e) {
-			reset(e.error_token); // point to error token
-			DiagnoseParser diagnoseParser = new DiagnoseParser(this, prs);
-			diagnoseParser.diagnose(e.error_token);
-		}
-	}
-
-	private CPPBuildASTParserAction action;
-	private IASTCompletionNode compNode;
-
-	public CPPNoFunctionDeclaratorParser(IScanner scanner, IDOMTokenMap tokenMap,
-			IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Map<String, String> properties) {
-		initActions(properties);
-		action.initializeTranslationUnit(scanner, builtinBindingsProvider, index);
-		CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap);
-	}
-
-	private void initActions(Map<String, String> properties) {
-		ScopedStack<Object> astStack = new ScopedStack<>();
-
-		action = new CPPBuildASTParserAction(this, astStack, CPPNodeFactory.getDefault(),
-				CPPSecondaryParserFactory.getDefault());
-		action.setParserProperties(properties);
-
-	}
-
-	@Override
-	public void addToken(IToken token) {
-		token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called?
-		super.addToken(token);
-	}
-
-	@Override
-	public IASTDeclarator parse() {
-		// this has to be done, or... kaboom!
-		setStreamLength(getSize());
-
-		final int errorRepairCount = -1; // -1 means full error handling
-		parser(null, errorRepairCount); // do the actual parse
-		super.resetTokenStream(); // allow tokens to be garbage collected
-
-		compNode = action.getASTCompletionNode(); // the completion node may be null
-		return (IASTDeclarator) action.getParseResult();
-	}
-
-	@Override
-	public IASTCompletionNode getCompletionNode() {
-		return compNode;
-	}
-
-	// uncomment this method to use with backtracking parser
-	@Override
-	public List<IToken> getRuleTokens() {
-		return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
-	}
-
-	@Override
-	public String[] getOrderedTerminalSymbols() {
-		return CPPNoFunctionDeclaratorParsersym.orderedTerminalSymbols;
-	}
-
-	@Override
-	@SuppressWarnings("nls")
-	public String getName() {
-		return "CPPNoFunctionDeclaratorParser";
-	}
-
-	private ITokenMap tokenMap = null;
-
-	@Override
-	public void setTokens(List<IToken> tokens) {
-		resetTokenStream();
-		addToken(new Token(null, 0, 0, 0)); // dummy token
-		for (IToken token : tokens) {
-			token.setKind(tokenMap.mapKind(token.getKind()));
-			addToken(token);
-		}
-		addToken(new Token(null, 0, 0, CPPNoFunctionDeclaratorParsersym.TK_EOF_TOKEN));
-	}
-
-	public CPPNoFunctionDeclaratorParser(ITokenStream stream, Map<String, String> properties) { // constructor for creating secondary parser
-		initActions(properties);
-		tokenMap = new TokenMap(CPPNoFunctionDeclaratorParsersym.orderedTerminalSymbols,
-				stream.getOrderedTerminalSymbols());
-	}
-
-	public CPPNoFunctionDeclaratorParser(ITokenStream stream, IScanner scanner,
-			IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Map<String, String> properties) { // constructor for creating secondary parser
-		initActions(properties);
-		action.initializeTranslationUnit(scanner, builtinBindingsProvider, index);
-		tokenMap = new TokenMap(CPPNoFunctionDeclaratorParsersym.orderedTerminalSymbols,
-				stream.getOrderedTerminalSymbols());
-	}
-
-	@Override
-	public void ruleAction(int ruleNumber) {
-		switch (ruleNumber) {
-
-		//
-		// Rule 1:  <openscope-ast> ::= $Empty
-		//
-		case 1: {
-			action.openASTScope();
-			break;
-		}
-
-		//
-		// Rule 2:  <empty> ::= $Empty
-		//
-		case 2: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 13:  translation_unit ::= declaration_seq_opt
-		//
-		case 13: {
-			action.consumeTranslationUnit();
-			break;
-		}
-
-		//
-		// Rule 16:  literal ::= integer
-		//
-		case 16: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant);
-			break;
-		}
-
-		//
-		// Rule 17:  literal ::= floating
-		//
-		case 17: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_float_constant);
-			break;
-		}
-
-		//
-		// Rule 18:  literal ::= charconst
-		//
-		case 18: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant);
-			break;
-		}
-
-		//
-		// Rule 19:  literal ::= stringlit
-		//
-		case 19: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal);
-			break;
-		}
-
-		//
-		// Rule 20:  literal ::= true
-		//
-		case 20: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true);
-			break;
-		}
-
-		//
-		// Rule 21:  literal ::= false
-		//
-		case 21: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false);
-			break;
-		}
-
-		//
-		// Rule 22:  literal ::= this
-		//
-		case 22: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this);
-			break;
-		}
-
-		//
-		// Rule 24:  primary_expression ::= ( expression )
-		//
-		case 24: {
-			action.consumeExpressionBracketed();
-			break;
-		}
-
-		//
-		// Rule 26:  id_expression ::= qualified_or_unqualified_name
-		//
-		case 26: {
-			action.consumeExpressionName();
-			break;
-		}
-
-		//
-		// Rule 33:  unqualified_id_name ::= ~ identifier_token
-		//
-		case 33: {
-			action.consumeDestructorName();
-			break;
-		}
-
-		//
-		// Rule 34:  unqualified_id_name ::= ~ template_id_name
-		//
-		case 34: {
-			action.consumeDestructorNameTemplateId();
-			break;
-		}
-
-		//
-		// Rule 35:  identifier_name ::= identifier_token
-		//
-		case 35: {
-			action.consumeIdentifierName();
-			break;
-		}
-
-		//
-		// Rule 36:  template_opt ::= template
-		//
-		case 36: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 37:  template_opt ::= $Empty
-		//
-		case 37: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 38:  dcolon_opt ::= ::
-		//
-		case 38: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 39:  dcolon_opt ::= $Empty
-		//
-		case 39: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 40:  qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name
-		//
-		case 40: {
-			action.consumeQualifiedId(true);
-			break;
-		}
-
-		//
-		// Rule 41:  qualified_id_name ::= :: unqualified_id_name
-		//
-		case 41: {
-			action.consumeGlobalQualifiedId();
-			break;
-		}
-
-		//
-		// Rule 42:  nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template
-		//
-		case 42: {
-			action.consumeNestedNameSpecifier(true);
-			break;
-		}
-
-		//
-		// Rule 43:  nested_name_specifier ::= class_or_namespace_name ::
-		//
-		case 43: {
-			action.consumeNestedNameSpecifier(false);
-			break;
-		}
-
-		//
-		// Rule 44:  nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template
-		//
-		case 44: {
-			action.consumeNestedNameSpecifier(true);
-			break;
-		}
-
-		//
-		// Rule 45:  nested_name_specifier_with_template ::= class_or_namespace_name_with_template ::
-		//
-		case 45: {
-			action.consumeNestedNameSpecifier(false);
-			break;
-		}
-
-		//
-		// Rule 46:  class_or_namespace_name_with_template ::= template_opt class_or_namespace_name
-		//
-		case 46: {
-			action.consumeNameWithTemplateKeyword();
-			break;
-		}
-
-		//
-		// Rule 48:  nested_name_specifier_opt ::= $Empty
-		//
-		case 48: {
-			action.consumeNestedNameSpecifierEmpty();
-			break;
-		}
-
-		//
-		// Rule 51:  postfix_expression ::= postfix_expression [ expression ]
-		//
-		case 51: {
-			action.consumeExpressionArraySubscript();
-			break;
-		}
-
-		//
-		// Rule 52:  postfix_expression ::= postfix_expression ( expression_list_opt )
-		//
-		case 52: {
-			action.consumeExpressionFunctionCall();
-			break;
-		}
-
-		//
-		// Rule 53:  postfix_expression ::= simple_type_specifier ( expression_list_opt )
-		//
-		case 53: {
-			action.consumeExpressionSimpleTypeConstructor();
-			break;
-		}
-
-		//
-		// Rule 54:  postfix_expression ::= typename dcolon_opt nested_name_specifier <empty> identifier_name ( expression_list_opt )
-		//
-		case 54: {
-			action.consumeExpressionTypeName();
-			break;
-		}
-
-		//
-		// Rule 55:  postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt )
-		//
-		case 55: {
-			action.consumeExpressionTypeName();
-			break;
-		}
-
-		//
-		// Rule 56:  postfix_expression ::= postfix_expression . qualified_or_unqualified_name
-		//
-		case 56: {
-			action.consumeExpressionFieldReference(false, false);
-			break;
-		}
-
-		//
-		// Rule 57:  postfix_expression ::= postfix_expression -> qualified_or_unqualified_name
-		//
-		case 57: {
-			action.consumeExpressionFieldReference(true, false);
-			break;
-		}
-
-		//
-		// Rule 58:  postfix_expression ::= postfix_expression . template qualified_or_unqualified_name
-		//
-		case 58: {
-			action.consumeExpressionFieldReference(false, true);
-			break;
-		}
-
-		//
-		// Rule 59:  postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name
-		//
-		case 59: {
-			action.consumeExpressionFieldReference(true, true);
-			break;
-		}
-
-		//
-		// Rule 60:  postfix_expression ::= postfix_expression . pseudo_destructor_name
-		//
-		case 60: {
-			action.consumeExpressionFieldReference(false, false);
-			break;
-		}
-
-		//
-		// Rule 61:  postfix_expression ::= postfix_expression -> pseudo_destructor_name
-		//
-		case 61: {
-			action.consumeExpressionFieldReference(true, false);
-			break;
-		}
-
-		//
-		// Rule 62:  postfix_expression ::= postfix_expression ++
-		//
-		case 62: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr);
-			break;
-		}
-
-		//
-		// Rule 63:  postfix_expression ::= postfix_expression --
-		//
-		case 63: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr);
-			break;
-		}
-
-		//
-		// Rule 64:  postfix_expression ::= dynamic_cast < type_id > ( expression )
-		//
-		case 64: {
-			action.consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast);
-			break;
-		}
-
-		//
-		// Rule 65:  postfix_expression ::= static_cast < type_id > ( expression )
-		//
-		case 65: {
-			action.consumeExpressionCast(ICPPASTCastExpression.op_static_cast);
-			break;
-		}
-
-		//
-		// Rule 66:  postfix_expression ::= reinterpret_cast < type_id > ( expression )
-		//
-		case 66: {
-			action.consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast);
-			break;
-		}
-
-		//
-		// Rule 67:  postfix_expression ::= const_cast < type_id > ( expression )
-		//
-		case 67: {
-			action.consumeExpressionCast(ICPPASTCastExpression.op_const_cast);
-			break;
-		}
-
-		//
-		// Rule 68:  postfix_expression ::= typeid ( expression )
-		//
-		case 68: {
-			action.consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid);
-			break;
-		}
-
-		//
-		// Rule 69:  postfix_expression ::= typeid ( type_id )
-		//
-		case 69: {
-			action.consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid);
-			break;
-		}
-
-		//
-		// Rule 70:  pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name
-		//
-		case 70: {
-			action.consumePsudoDestructorName(true);
-			break;
-		}
-
-		//
-		// Rule 71:  pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name
-		//
-		case 71: {
-			action.consumePsudoDestructorName(true);
-			break;
-		}
-
-		//
-		// Rule 72:  pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name
-		//
-		case 72: {
-			action.consumePsudoDestructorName(false);
-			break;
-		}
-
-		//
-		// Rule 73:  destructor_type_name ::= ~ identifier_token
-		//
-		case 73: {
-			action.consumeDestructorName();
-			break;
-		}
-
-		//
-		// Rule 74:  destructor_type_name ::= ~ template_id_name
-		//
-		case 74: {
-			action.consumeDestructorNameTemplateId();
-			break;
-		}
-
-		//
-		// Rule 78:  unary_expression ::= ++ cast_expression
-		//
-		case 78: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr);
-			break;
-		}
-
-		//
-		// Rule 79:  unary_expression ::= -- cast_expression
-		//
-		case 79: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr);
-			break;
-		}
-
-		//
-		// Rule 80:  unary_expression ::= & cast_expression
-		//
-		case 80: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper);
-			break;
-		}
-
-		//
-		// Rule 81:  unary_expression ::= * cast_expression
-		//
-		case 81: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_star);
-			break;
-		}
-
-		//
-		// Rule 82:  unary_expression ::= + cast_expression
-		//
-		case 82: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus);
-			break;
-		}
-
-		//
-		// Rule 83:  unary_expression ::= - cast_expression
-		//
-		case 83: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus);
-			break;
-		}
-
-		//
-		// Rule 84:  unary_expression ::= ~ cast_expression
-		//
-		case 84: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde);
-			break;
-		}
-
-		//
-		// Rule 85:  unary_expression ::= ! cast_expression
-		//
-		case 85: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_not);
-			break;
-		}
-
-		//
-		// Rule 86:  unary_expression ::= sizeof unary_expression
-		//
-		case 86: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof);
-			break;
-		}
-
-		//
-		// Rule 87:  unary_expression ::= sizeof ( type_id )
-		//
-		case 87: {
-			action.consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof);
-			break;
-		}
-
-		//
-		// Rule 88:  new_expression ::= dcolon_opt new new_placement_opt new_type_id <openscope-ast> new_array_expressions_opt new_initializer_opt
-		//
-		case 88: {
-			action.consumeExpressionNew(true);
-			break;
-		}
-
-		//
-		// Rule 89:  new_expression ::= dcolon_opt new new_placement_opt ( type_id ) <openscope-ast> new_array_expressions_opt new_initializer_opt
-		//
-		case 89: {
-			action.consumeExpressionNew(false);
-			break;
-		}
-
-		//
-		// Rule 91:  new_placement_opt ::= $Empty
-		//
-		case 91: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 92:  new_type_id ::= type_specifier_seq
-		//
-		case 92: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 93:  new_type_id ::= type_specifier_seq new_declarator
-		//
-		case 93: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 94:  new_declarator ::= <openscope-ast> new_pointer_operators
-		//
-		case 94: {
-			action.consumeNewDeclarator();
-			break;
-		}
-
-		//
-		// Rule 101:  new_initializer ::= ( expression_list_opt )
-		//
-		case 101: {
-			action.consumeNewInitializer();
-			break;
-		}
-
-		//
-		// Rule 103:  new_initializer_opt ::= $Empty
-		//
-		case 103: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 104:  delete_expression ::= dcolon_opt delete cast_expression
-		//
-		case 104: {
-			action.consumeExpressionDelete(false);
-			break;
-		}
-
-		//
-		// Rule 105:  delete_expression ::= dcolon_opt delete [ ] cast_expression
-		//
-		case 105: {
-			action.consumeExpressionDelete(true);
-			break;
-		}
-
-		//
-		// Rule 107:  cast_expression ::= ( type_id ) cast_expression
-		//
-		case 107: {
-			action.consumeExpressionCast(ICPPASTCastExpression.op_cast);
-			break;
-		}
-
-		//
-		// Rule 109:  pm_expression ::= pm_expression .* cast_expression
-		//
-		case 109: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot);
-			break;
-		}
-
-		//
-		// Rule 110:  pm_expression ::= pm_expression ->* cast_expression
-		//
-		case 110: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow);
-			break;
-		}
-
-		//
-		// Rule 112:  multiplicative_expression ::= multiplicative_expression * pm_expression
-		//
-		case 112: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply);
-			break;
-		}
-
-		//
-		// Rule 113:  multiplicative_expression ::= multiplicative_expression / pm_expression
-		//
-		case 113: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide);
-			break;
-		}
-
-		//
-		// Rule 114:  multiplicative_expression ::= multiplicative_expression % pm_expression
-		//
-		case 114: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo);
-			break;
-		}
-
-		//
-		// Rule 116:  additive_expression ::= additive_expression + multiplicative_expression
-		//
-		case 116: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus);
-			break;
-		}
-
-		//
-		// Rule 117:  additive_expression ::= additive_expression - multiplicative_expression
-		//
-		case 117: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus);
-			break;
-		}
-
-		//
-		// Rule 119:  shift_expression ::= shift_expression << additive_expression
-		//
-		case 119: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft);
-			break;
-		}
-
-		//
-		// Rule 120:  shift_expression ::= shift_expression >> additive_expression
-		//
-		case 120: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight);
-			break;
-		}
-
-		//
-		// Rule 122:  relational_expression ::= relational_expression < shift_expression
-		//
-		case 122: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan);
-			break;
-		}
-
-		//
-		// Rule 123:  relational_expression ::= relational_expression > shift_expression
-		//
-		case 123: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan);
-			break;
-		}
-
-		//
-		// Rule 124:  relational_expression ::= relational_expression <= shift_expression
-		//
-		case 124: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual);
-			break;
-		}
-
-		//
-		// Rule 125:  relational_expression ::= relational_expression >= shift_expression
-		//
-		case 125: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual);
-			break;
-		}
-
-		//
-		// Rule 127:  equality_expression ::= equality_expression == relational_expression
-		//
-		case 127: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals);
-			break;
-		}
-
-		//
-		// Rule 128:  equality_expression ::= equality_expression != relational_expression
-		//
-		case 128: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals);
-			break;
-		}
-
-		//
-		// Rule 130:  and_expression ::= and_expression & equality_expression
-		//
-		case 130: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd);
-			break;
-		}
-
-		//
-		// Rule 132:  exclusive_or_expression ::= exclusive_or_expression ^ and_expression
-		//
-		case 132: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor);
-			break;
-		}
-
-		//
-		// Rule 134:  inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression
-		//
-		case 134: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr);
-			break;
-		}
-
-		//
-		// Rule 136:  logical_and_expression ::= logical_and_expression && inclusive_or_expression
-		//
-		case 136: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd);
-			break;
-		}
-
-		//
-		// Rule 138:  logical_or_expression ::= logical_or_expression || logical_and_expression
-		//
-		case 138: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr);
-			break;
-		}
-
-		//
-		// Rule 140:  conditional_expression ::= logical_or_expression ? expression : assignment_expression
-		//
-		case 140: {
-			action.consumeExpressionConditional();
-			break;
-		}
-
-		//
-		// Rule 142:  relational_expression_inTemplate ::= relational_expression_inTemplate < shift_expression
-		//
-		case 142: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan);
-			break;
-		}
-
-		//
-		// Rule 143:  relational_expression_inTemplate ::= ( relational_expression_inTemplate > shift_expression )
-		//
-		case 143: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan);
-			break;
-		}
-
-		//
-		// Rule 144:  relational_expression_inTemplate ::= relational_expression_inTemplate <= shift_expression
-		//
-		case 144: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual);
-			break;
-		}
-
-		//
-		// Rule 145:  relational_expression_inTemplate ::= relational_expression_inTemplate >= shift_expression
-		//
-		case 145: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual);
-			break;
-		}
-
-		//
-		// Rule 147:  equality_expression_inTemplate ::= equality_expression_inTemplate == relational_expression_inTemplate
-		//
-		case 147: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals);
-			break;
-		}
-
-		//
-		// Rule 148:  equality_expression_inTemplate ::= equality_expression_inTemplate != relational_expression_inTemplate
-		//
-		case 148: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals);
-			break;
-		}
-
-		//
-		// Rule 150:  and_expression_inTemplate ::= and_expression_inTemplate & equality_expression_inTemplate
-		//
-		case 150: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd);
-			break;
-		}
-
-		//
-		// Rule 152:  exclusive_or_expression_inTemplate ::= exclusive_or_expression_inTemplate ^ and_expression_inTemplate
-		//
-		case 152: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor);
-			break;
-		}
-
-		//
-		// Rule 154:  inclusive_or_expression_inTemplate ::= inclusive_or_expression_inTemplate | exclusive_or_expression_inTemplate
-		//
-		case 154: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr);
-			break;
-		}
-
-		//
-		// Rule 156:  logical_and_expression_inTemplate ::= logical_and_expression_inTemplate && inclusive_or_expression_inTemplate
-		//
-		case 156: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd);
-			break;
-		}
-
-		//
-		// Rule 158:  logical_or_expression_inTemplate ::= logical_or_expression_inTemplate || logical_and_expression_inTemplate
-		//
-		case 158: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr);
-			break;
-		}
-
-		//
-		// Rule 160:  conditional_expression_inTemplate ::= logical_or_expression_inTemplate ? expression : assignment_expression_inTemplate
-		//
-		case 160: {
-			action.consumeExpressionConditional();
-			break;
-		}
-
-		//
-		// Rule 163:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate = assignment_expression_inTemplate
-		//
-		case 163: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign);
-			break;
-		}
-
-		//
-		// Rule 164:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate *= assignment_expression_inTemplate
-		//
-		case 164: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign);
-			break;
-		}
-
-		//
-		// Rule 165:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate /= assignment_expression_inTemplate
-		//
-		case 165: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign);
-			break;
-		}
-
-		//
-		// Rule 166:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate %= assignment_expression_inTemplate
-		//
-		case 166: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign);
-			break;
-		}
-
-		//
-		// Rule 167:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate += assignment_expression_inTemplate
-		//
-		case 167: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign);
-			break;
-		}
-
-		//
-		// Rule 168:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate -= assignment_expression_inTemplate
-		//
-		case 168: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign);
-			break;
-		}
-
-		//
-		// Rule 169:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate >>= assignment_expression_inTemplate
-		//
-		case 169: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign);
-			break;
-		}
-
-		//
-		// Rule 170:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate <<= assignment_expression_inTemplate
-		//
-		case 170: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign);
-			break;
-		}
-
-		//
-		// Rule 171:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate &= assignment_expression_inTemplate
-		//
-		case 171: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign);
-			break;
-		}
-
-		//
-		// Rule 172:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate ^= assignment_expression_inTemplate
-		//
-		case 172: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign);
-			break;
-		}
-
-		//
-		// Rule 173:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate |= assignment_expression_inTemplate
-		//
-		case 173: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign);
-			break;
-		}
-
-		//
-		// Rule 174:  throw_expression ::= throw
-		//
-		case 174: {
-			action.consumeExpressionThrow(false);
-			break;
-		}
-
-		//
-		// Rule 175:  throw_expression ::= throw assignment_expression
-		//
-		case 175: {
-			action.consumeExpressionThrow(true);
-			break;
-		}
-
-		//
-		// Rule 178:  assignment_expression ::= logical_or_expression = assignment_expression
-		//
-		case 178: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign);
-			break;
-		}
-
-		//
-		// Rule 179:  assignment_expression ::= logical_or_expression *= assignment_expression
-		//
-		case 179: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign);
-			break;
-		}
-
-		//
-		// Rule 180:  assignment_expression ::= logical_or_expression /= assignment_expression
-		//
-		case 180: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign);
-			break;
-		}
-
-		//
-		// Rule 181:  assignment_expression ::= logical_or_expression %= assignment_expression
-		//
-		case 181: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign);
-			break;
-		}
-
-		//
-		// Rule 182:  assignment_expression ::= logical_or_expression += assignment_expression
-		//
-		case 182: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign);
-			break;
-		}
-
-		//
-		// Rule 183:  assignment_expression ::= logical_or_expression -= assignment_expression
-		//
-		case 183: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign);
-			break;
-		}
-
-		//
-		// Rule 184:  assignment_expression ::= logical_or_expression >>= assignment_expression
-		//
-		case 184: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign);
-			break;
-		}
-
-		//
-		// Rule 185:  assignment_expression ::= logical_or_expression <<= assignment_expression
-		//
-		case 185: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign);
-			break;
-		}
-
-		//
-		// Rule 186:  assignment_expression ::= logical_or_expression &= assignment_expression
-		//
-		case 186: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign);
-			break;
-		}
-
-		//
-		// Rule 187:  assignment_expression ::= logical_or_expression ^= assignment_expression
-		//
-		case 187: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign);
-			break;
-		}
-
-		//
-		// Rule 188:  assignment_expression ::= logical_or_expression |= assignment_expression
-		//
-		case 188: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign);
-			break;
-		}
-
-		//
-		// Rule 190:  expression_list ::= <openscope-ast> expression_list_actual
-		//
-		case 190: {
-			action.consumeExpressionList();
-			break;
-		}
-
-		//
-		// Rule 194:  expression_list_opt ::= $Empty
-		//
-		case 194: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 196:  expression_opt ::= $Empty
-		//
-		case 196: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 199:  constant_expression_opt ::= $Empty
-		//
-		case 199: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 208:  statement ::= ERROR_TOKEN
-		//
-		case 208: {
-			action.consumeStatementProblem();
-			break;
-		}
-
-		//
-		// Rule 209:  labeled_statement ::= identifier : statement
-		//
-		case 209: {
-			action.consumeStatementLabeled();
-			break;
-		}
-
-		//
-		// Rule 210:  labeled_statement ::= case constant_expression : statement
-		//
-		case 210: {
-			action.consumeStatementCase();
-			break;
-		}
-
-		//
-		// Rule 211:  labeled_statement ::= default : statement
-		//
-		case 211: {
-			action.consumeStatementDefault();
-			break;
-		}
-
-		//
-		// Rule 212:  expression_statement ::= expression ;
-		//
-		case 212: {
-			action.consumeStatementExpression();
-			break;
-		}
-
-		//
-		// Rule 213:  expression_statement ::= ;
-		//
-		case 213: {
-			action.consumeStatementNull();
-			break;
-		}
-
-		//
-		// Rule 214:  compound_statement ::= { <openscope-ast> statement_seq }
-		//
-		case 214: {
-			action.consumeStatementCompoundStatement(true);
-			break;
-		}
-
-		//
-		// Rule 215:  compound_statement ::= { }
-		//
-		case 215: {
-			action.consumeStatementCompoundStatement(false);
-			break;
-		}
-
-		//
-		// Rule 218:  selection_statement ::= if ( condition ) statement
-		//
-		case 218: {
-			action.consumeStatementIf(false);
-			break;
-		}
-
-		//
-		// Rule 219:  selection_statement ::= if ( condition ) statement else statement
-		//
-		case 219: {
-			action.consumeStatementIf(true);
-			break;
-		}
-
-		//
-		// Rule 220:  selection_statement ::= switch ( condition ) statement
-		//
-		case 220: {
-			action.consumeStatementSwitch();
-			break;
-		}
-
-		//
-		// Rule 222:  condition ::= type_specifier_seq declarator = assignment_expression
-		//
-		case 222: {
-			action.consumeConditionDeclaration();
-			break;
-		}
-
-		//
-		// Rule 224:  condition_opt ::= $Empty
-		//
-		case 224: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 225:  iteration_statement ::= while ( condition ) statement
-		//
-		case 225: {
-			action.consumeStatementWhileLoop();
-			break;
-		}
-
-		//
-		// Rule 226:  iteration_statement ::= do statement while ( expression ) ;
-		//
-		case 226: {
-			action.consumeStatementDoLoop(true);
-			break;
-		}
-
-		//
-		// Rule 227:  iteration_statement ::= do statement
-		//
-		case 227: {
-			action.consumeStatementDoLoop(false);
-			break;
-		}
-
-		//
-		// Rule 228:  iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement
-		//
-		case 228: {
-			action.consumeStatementForLoop();
-			break;
-		}
-
-		//
-		// Rule 230:  for_init_statement ::= simple_declaration_with_declspec
-		//
-		case 230: {
-			action.consumeStatementDeclaration();
-			break;
-		}
-
-		//
-		// Rule 231:  jump_statement ::= break ;
-		//
-		case 231: {
-			action.consumeStatementBreak();
-			break;
-		}
-
-		//
-		// Rule 232:  jump_statement ::= continue ;
-		//
-		case 232: {
-			action.consumeStatementContinue();
-			break;
-		}
-
-		//
-		// Rule 233:  jump_statement ::= return expression ;
-		//
-		case 233: {
-			action.consumeStatementReturn(true);
-			break;
-		}
-
-		//
-		// Rule 234:  jump_statement ::= return ;
-		//
-		case 234: {
-			action.consumeStatementReturn(false);
-			break;
-		}
-
-		//
-		// Rule 235:  jump_statement ::= goto identifier_token ;
-		//
-		case 235: {
-			action.consumeStatementGoto();
-			break;
-		}
-
-		//
-		// Rule 236:  declaration_statement ::= block_declaration
-		//
-		case 236: {
-			action.consumeStatementDeclarationWithDisambiguation();
-			break;
-		}
-
-		//
-		// Rule 237:  declaration_statement ::= function_definition
-		//
-		case 237: {
-			action.consumeStatementDeclaration();
-			break;
-		}
-
-		//
-		// Rule 245:  declaration ::= ERROR_TOKEN
-		//
-		case 245: {
-			action.consumeDeclarationProblem();
-			break;
-		}
-
-		//
-		// Rule 255:  simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ;
-		//
-		case 255: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 256:  simple_declaration_with_declspec ::= declaration_specifiers <openscope-ast> init_declarator_list_opt ;
-		//
-		case 256: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 257:  declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
-		//
-		case 257: {
-			action.consumeDeclarationSpecifiersSimple();
-			break;
-		}
-
-		//
-		// Rule 258:  declaration_specifiers ::= <openscope-ast> class_declaration_specifiers
-		//
-		case 258: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 259:  declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
-		//
-		case 259: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 260:  declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
-		//
-		case 260: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 261:  declaration_specifiers ::= <openscope-ast> type_name_declaration_specifiers
-		//
-		case 261: {
-			action.consumeDeclarationSpecifiersTypeName();
-			break;
-		}
-
-		//
-		// Rule 263:  declaration_specifiers_opt ::= $Empty
-		//
-		case 263: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 267:  no_type_declaration_specifier ::= friend
-		//
-		case 267: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 268:  no_type_declaration_specifier ::= typedef
-		//
-		case 268: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 288:  storage_class_specifier ::= auto
-		//
-		case 288: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 289:  storage_class_specifier ::= register
-		//
-		case 289: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 290:  storage_class_specifier ::= static
-		//
-		case 290: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 291:  storage_class_specifier ::= extern
-		//
-		case 291: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 292:  storage_class_specifier ::= mutable
-		//
-		case 292: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 293:  function_specifier ::= inline
-		//
-		case 293: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 294:  function_specifier ::= virtual
-		//
-		case 294: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 295:  function_specifier ::= explicit
-		//
-		case 295: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 296:  simple_type_specifier ::= simple_type_specifier_token
-		//
-		case 296: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 310:  type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name
-		//
-		case 310: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 311:  type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name
-		//
-		case 311: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 312:  type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name
-		//
-		case 312: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 313:  type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name
-		//
-		case 313: {
-			action.consumeQualifiedId(true);
-			break;
-		}
-
-		//
-		// Rule 315:  elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name
-		//
-		case 315: {
-			action.consumeTypeSpecifierElaborated(false);
-			break;
-		}
-
-		//
-		// Rule 316:  elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt template_opt template_id_name
-		//
-		case 316: {
-			action.consumeTypeSpecifierElaborated(true);
-			break;
-		}
-
-		//
-		// Rule 317:  elaborated_type_specifier ::= enum elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name
-		//
-		case 317: {
-			action.consumeTypeSpecifierElaborated(false);
-			break;
-		}
-
-		//
-		// Rule 321:  enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
-		//
-		case 321: {
-			action.consumeTypeSpecifierEnumeration(false);
-			break;
-		}
-
-		//
-		// Rule 322:  enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
-		//
-		case 322: {
-			action.consumeTypeSpecifierEnumeration(true);
-			break;
-		}
-
-		//
-		// Rule 328:  enumerator_definition ::= identifier_token
-		//
-		case 328: {
-			action.consumeEnumerator(false);
-			break;
-		}
-
-		//
-		// Rule 329:  enumerator_definition ::= identifier_token = constant_expression
-		//
-		case 329: {
-			action.consumeEnumerator(true);
-			break;
-		}
-
-		//
-		// Rule 331:  namespace_definition ::= namespace namespace_name namespace_definition_hook { <openscope-ast> declaration_seq_opt }
-		//
-		case 331: {
-			action.consumeNamespaceDefinition(true);
-			break;
-		}
-
-		//
-		// Rule 332:  namespace_definition ::= namespace namespace_definition_hook { <openscope-ast> declaration_seq_opt }
-		//
-		case 332: {
-			action.consumeNamespaceDefinition(false);
-			break;
-		}
-
-		//
-		// Rule 334:  namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ;
-		//
-		case 334: {
-			action.consumeNamespaceAliasDefinition();
-			break;
-		}
-
-		//
-		// Rule 335:  using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ;
-		//
-		case 335: {
-			action.consumeUsingDeclaration();
-			break;
-		}
-
-		//
-		// Rule 336:  typename_opt ::= typename
-		//
-		case 336: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 337:  typename_opt ::= $Empty
-		//
-		case 337: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 338:  using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ;
-		//
-		case 338: {
-			action.consumeUsingDirective();
-			break;
-		}
-
-		//
-		// Rule 339:  asm_definition ::= asm ( stringlit ) ;
-		//
-		case 339: {
-			action.consumeDeclarationASM();
-			break;
-		}
-
-		//
-		// Rule 340:  linkage_specification ::= extern stringlit { <openscope-ast> declaration_seq_opt }
-		//
-		case 340: {
-			action.consumeLinkageSpecification();
-			break;
-		}
-
-		//
-		// Rule 341:  linkage_specification ::= extern stringlit <openscope-ast> declaration
-		//
-		case 341: {
-			action.consumeLinkageSpecification();
-			break;
-		}
-
-		//
-		// Rule 347:  init_declarator ::= complete_declarator initializer
-		//
-		case 347: {
-			action.consumeDeclaratorWithInitializer(true);
-			break;
-		}
-
-		//
-		// Rule 350:  declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
-		//
-		case 350: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 352:  function_declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
-		//
-		case 352: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 355:  basic_direct_declarator ::= declarator_id_name
-		//
-		case 355: {
-			action.consumeDirectDeclaratorIdentifier();
-			break;
-		}
-
-		//
-		// Rule 356:  basic_direct_declarator ::= ( declarator )
-		//
-		case 356: {
-			action.consumeDirectDeclaratorBracketed();
-			break;
-		}
-
-		//
-		// Rule 357:  function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
-		//
-		case 357: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 358:  array_direct_declarator ::= array_direct_declarator array_modifier
-		//
-		case 358: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 359:  array_direct_declarator ::= basic_direct_declarator array_modifier
-		//
-		case 359: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 360:  array_modifier ::= [ constant_expression ]
-		//
-		case 360: {
-			action.consumeDirectDeclaratorArrayModifier(true);
-			break;
-		}
-
-		//
-		// Rule 361:  array_modifier ::= [ ]
-		//
-		case 361: {
-			action.consumeDirectDeclaratorArrayModifier(false);
-			break;
-		}
-
-		//
-		// Rule 362:  ptr_operator ::= pointer_hook * pointer_hook <openscope-ast> cv_qualifier_seq_opt
-		//
-		case 362: {
-			action.consumePointer();
-			break;
-		}
-
-		//
-		// Rule 363:  ptr_operator ::= pointer_hook & pointer_hook
-		//
-		case 363: {
-			action.consumeReferenceOperator();
-			break;
-		}
-
-		//
-		// Rule 364:  ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * pointer_hook <openscope-ast> cv_qualifier_seq_opt
-		//
-		case 364: {
-			action.consumePointerToMember();
-			break;
-		}
-
-		//
-		// Rule 371:  cv_qualifier ::= const
-		//
-		case 371: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 372:  cv_qualifier ::= volatile
-		//
-		case 372: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 374:  declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name
-		//
-		case 374: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 375:  type_id ::= type_specifier_seq
-		//
-		case 375: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 376:  type_id ::= type_specifier_seq abstract_declarator
-		//
-		case 376: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 379:  abstract_declarator ::= <openscope-ast> ptr_operator_seq
-		//
-		case 379: {
-			action.consumeDeclaratorWithPointer(false);
-			break;
-		}
-
-		//
-		// Rule 380:  abstract_declarator ::= <openscope-ast> ptr_operator_seq direct_abstract_declarator
-		//
-		case 380: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 384:  basic_direct_abstract_declarator ::= ( abstract_declarator )
-		//
-		case 384: {
-			action.consumeDirectDeclaratorBracketed();
-			break;
-		}
-
-		//
-		// Rule 385:  basic_direct_abstract_declarator ::= ( )
-		//
-		case 385: {
-			action.consumeAbstractDeclaratorEmpty();
-			break;
-		}
-
-		//
-		// Rule 386:  array_direct_abstract_declarator ::= array_modifier
-		//
-		case 386: {
-			action.consumeDirectDeclaratorArrayDeclarator(false);
-			break;
-		}
-
-		//
-		// Rule 387:  array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
-		//
-		case 387: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 388:  array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
-		//
-		case 388: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 389:  function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
-		//
-		case 389: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 390:  function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
-		//
-		case 390: {
-			action.consumeDirectDeclaratorFunctionDeclarator(false);
-			break;
-		}
-
-		//
-		// Rule 391:  parameter_declaration_clause ::= parameter_declaration_list_opt ...
-		//
-		case 391: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 392:  parameter_declaration_clause ::= parameter_declaration_list_opt
-		//
-		case 392: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 393:  parameter_declaration_clause ::= parameter_declaration_list , ...
-		//
-		case 393: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 399:  abstract_declarator_opt ::= $Empty
-		//
-		case 399: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 400:  parameter_declaration ::= declaration_specifiers parameter_init_declarator
-		//
-		case 400: {
-			action.consumeParameterDeclaration();
-			break;
-		}
-
-		//
-		// Rule 401:  parameter_declaration ::= declaration_specifiers
-		//
-		case 401: {
-			action.consumeParameterDeclarationWithoutDeclarator();
-			break;
-		}
-
-		//
-		// Rule 403:  parameter_init_declarator ::= declarator = parameter_initializer
-		//
-		case 403: {
-			action.consumeDeclaratorWithInitializer(true);
-			break;
-		}
-
-		//
-		// Rule 405:  parameter_init_declarator ::= abstract_declarator = parameter_initializer
-		//
-		case 405: {
-			action.consumeDeclaratorWithInitializer(true);
-			break;
-		}
-
-		//
-		// Rule 406:  parameter_init_declarator ::= = parameter_initializer
-		//
-		case 406: {
-			action.consumeDeclaratorWithInitializer(false);
-			break;
-		}
-
-		//
-		// Rule 407:  parameter_initializer ::= assignment_expression
-		//
-		case 407: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 408:  function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body
-		//
-		case 408: {
-			action.consumeFunctionDefinition(false);
-			break;
-		}
-
-		//
-		// Rule 409:  function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq
-		//
-		case 409: {
-			action.consumeFunctionDefinition(true);
-			break;
-		}
-
-		//
-		// Rule 412:  initializer ::= ( expression_list )
-		//
-		case 412: {
-			action.consumeInitializerConstructor();
-			break;
-		}
-
-		//
-		// Rule 413:  initializer_clause ::= assignment_expression
-		//
-		case 413: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 414:  initializer_clause ::= initializer_list
-		//
-		case 414: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 415:  initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq , } end_initializer_list
-		//
-		case 415: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 416:  initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq } end_initializer_list
-		//
-		case 416: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 417:  initializer_list ::= { <openscope-ast> }
-		//
-		case 417: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 418:  start_initializer_list ::= $Empty
-		//
-		case 418: {
-			action.initializerListStart();
-			break;
-		}
-
-		//
-		// Rule 419:  end_initializer_list ::= $Empty
-		//
-		case 419: {
-			action.initializerListEnd();
-			break;
-		}
-
-		//
-		// Rule 424:  class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt }
-		//
-		case 424: {
-			action.consumeClassSpecifier();
-			break;
-		}
-
-		//
-		// Rule 425:  class_head ::= class_keyword composite_specifier_hook identifier_name_opt class_name_suffix_hook <openscope-ast> base_clause_opt
-		//
-		case 425: {
-			action.consumeClassHead(false);
-			break;
-		}
-
-		//
-		// Rule 426:  class_head ::= class_keyword composite_specifier_hook template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt
-		//
-		case 426: {
-			action.consumeClassHead(false);
-			break;
-		}
-
-		//
-		// Rule 427:  class_head ::= class_keyword composite_specifier_hook nested_name_specifier identifier_name class_name_suffix_hook <openscope-ast> base_clause_opt
-		//
-		case 427: {
-			action.consumeClassHead(true);
-			break;
-		}
-
-		//
-		// Rule 428:  class_head ::= class_keyword composite_specifier_hook nested_name_specifier template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt
-		//
-		case 428: {
-			action.consumeClassHead(true);
-			break;
-		}
-
-		//
-		// Rule 432:  identifier_name_opt ::= $Empty
-		//
-		case 432: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 436:  visibility_label ::= access_specifier_keyword :
-		//
-		case 436: {
-			action.consumeVisibilityLabel();
-			break;
-		}
-
-		//
-		// Rule 437:  member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
-		//
-		case 437: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 438:  member_declaration ::= declaration_specifiers_opt ;
-		//
-		case 438: {
-			action.consumeDeclarationSimple(false);
-			break;
-		}
-
-		//
-		// Rule 441:  member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ;
-		//
-		case 441: {
-			action.consumeMemberDeclarationQualifiedId();
-			break;
-		}
-
-		//
-		// Rule 447:  member_declaration ::= ERROR_TOKEN
-		//
-		case 447: {
-			action.consumeDeclarationProblem();
-			break;
-		}
-
-		//
-		// Rule 456:  member_declarator ::= declarator constant_initializer
-		//
-		case 456: {
-			action.consumeMemberDeclaratorWithInitializer();
-			break;
-		}
-
-		//
-		// Rule 457:  member_declarator ::= bit_field_declarator : constant_expression
-		//
-		case 457: {
-			action.consumeBitField(true);
-			break;
-		}
-
-		//
-		// Rule 458:  member_declarator ::= : constant_expression
-		//
-		case 458: {
-			action.consumeBitField(false);
-			break;
-		}
-
-		//
-		// Rule 459:  bit_field_declarator ::= identifier_name
-		//
-		case 459: {
-			action.consumeDirectDeclaratorIdentifier();
-			break;
-		}
-
-		//
-		// Rule 460:  constant_initializer ::= = constant_expression
-		//
-		case 460: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 466:  base_specifier ::= dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 466: {
-			action.consumeBaseSpecifier(false, false);
-			break;
-		}
-
-		//
-		// Rule 467:  base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 467: {
-			action.consumeBaseSpecifier(true, true);
-			break;
-		}
-
-		//
-		// Rule 468:  base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 468: {
-			action.consumeBaseSpecifier(true, true);
-			break;
-		}
-
-		//
-		// Rule 469:  base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 469: {
-			action.consumeBaseSpecifier(true, false);
-			break;
-		}
-
-		//
-		// Rule 470:  access_specifier_keyword ::= private
-		//
-		case 470: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 471:  access_specifier_keyword ::= protected
-		//
-		case 471: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 472:  access_specifier_keyword ::= public
-		//
-		case 472: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 474:  access_specifier_keyword_opt ::= $Empty
-		//
-		case 474: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 476:  conversion_function_id_name ::= conversion_function_id < <openscope-ast> template_argument_list_opt >
-		//
-		case 476: {
-			action.consumeTemplateId();
-			break;
-		}
-
-		//
-		// Rule 477:  conversion_function_id ::= operator conversion_type_id
-		//
-		case 477: {
-			action.consumeConversionName();
-			break;
-		}
-
-		//
-		// Rule 478:  conversion_type_id ::= type_specifier_seq conversion_declarator
-		//
-		case 478: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 479:  conversion_type_id ::= type_specifier_seq
-		//
-		case 479: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 480:  conversion_declarator ::= <openscope-ast> ptr_operator_seq
-		//
-		case 480: {
-			action.consumeDeclaratorWithPointer(false);
-			break;
-		}
-
-		//
-		// Rule 486:  mem_initializer ::= mem_initializer_name ( expression_list_opt )
-		//
-		case 486: {
-			action.consumeConstructorChainInitializer();
-			break;
-		}
-
-		//
-		// Rule 487:  mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 487: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 490:  operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt >
-		//
-		case 490: {
-			action.consumeTemplateId();
-			break;
-		}
-
-		//
-		// Rule 491:  operator_id_name ::= operator overloadable_operator
-		//
-		case 491: {
-			action.consumeOperatorName();
-			break;
-		}
-
-		//
-		// Rule 534:  template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration
-		//
-		case 534: {
-			action.consumeTemplateDeclaration();
-			break;
-		}
-
-		//
-		// Rule 535:  export_opt ::= export
-		//
-		case 535: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 536:  export_opt ::= $Empty
-		//
-		case 536: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 540:  template_parameter ::= parameter_declaration
-		//
-		case 540: {
-			action.consumeTemplateParamterDeclaration();
-			break;
-		}
-
-		//
-		// Rule 541:  type_parameter ::= class identifier_name_opt
-		//
-		case 541: {
-			action.consumeSimpleTypeTemplateParameter(false);
-			break;
-		}
-
-		//
-		// Rule 542:  type_parameter ::= class identifier_name_opt = type_id
-		//
-		case 542: {
-			action.consumeSimpleTypeTemplateParameter(true);
-			break;
-		}
-
-		//
-		// Rule 543:  type_parameter ::= typename identifier_name_opt
-		//
-		case 543: {
-			action.consumeSimpleTypeTemplateParameter(false);
-			break;
-		}
-
-		//
-		// Rule 544:  type_parameter ::= typename identifier_name_opt = type_id
-		//
-		case 544: {
-			action.consumeSimpleTypeTemplateParameter(true);
-			break;
-		}
-
-		//
-		// Rule 545:  type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt
-		//
-		case 545: {
-			action.consumeTemplatedTypeTemplateParameter(false);
-			break;
-		}
-
-		//
-		// Rule 546:  type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression
-		//
-		case 546: {
-			action.consumeTemplatedTypeTemplateParameter(true);
-			break;
-		}
-
-		//
-		// Rule 547:  template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt >
-		//
-		case 547: {
-			action.consumeTemplateId();
-			break;
-		}
-
-		//
-		// Rule 554:  nested_name_specifier_inTemplate ::= class_or_namespace_name_inTemplate :: nested_name_specifier_with_template_inTemplate
-		//
-		case 554: {
-			action.consumeNestedNameSpecifier(true);
-			break;
-		}
-
-		//
-		// Rule 555:  nested_name_specifier_inTemplate ::= class_or_namespace_name_inTemplate ::
-		//
-		case 555: {
-			action.consumeNestedNameSpecifier(false);
-			break;
-		}
-
-		//
-		// Rule 556:  nested_name_specifier_with_template_inTemplate ::= class_or_namespace_name_with_template_inTemplate :: nested_name_specifier_with_template_inTemplate
-		//
-		case 556: {
-			action.consumeNestedNameSpecifier(true);
-			break;
-		}
-
-		//
-		// Rule 557:  nested_name_specifier_with_template_inTemplate ::= class_or_namespace_name_with_template_inTemplate ::
-		//
-		case 557: {
-			action.consumeNestedNameSpecifier(false);
-			break;
-		}
-
-		//
-		// Rule 558:  class_or_namespace_name_with_template_inTemplate ::= template_opt class_or_namespace_name_inTemplate
-		//
-		case 558: {
-			action.consumeNameWithTemplateKeyword();
-			break;
-		}
-
-		//
-		// Rule 560:  nested_name_specifier_opt_inTemplate ::= $Empty
-		//
-		case 560: {
-			action.consumeNestedNameSpecifierEmpty();
-			break;
-		}
-
-		//
-		// Rule 563:  type_name_specifier_inTemplate ::= typename dcolon_opt nested_name_specifier identifier_name
-		//
-		case 563: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 564:  type_name_specifier_inTemplate ::= typename dcolon_opt nested_name_specifier template_opt template_id_name
-		//
-		case 564: {
-			action.consumeQualifiedId(true);
-			break;
-		}
-
-		//
-		// Rule 569:  declaration_specifiers_inTemplate ::= <openscope-ast> simple_declaration_specifiers
-		//
-		case 569: {
-			action.consumeDeclarationSpecifiersSimple();
-			break;
-		}
-
-		//
-		// Rule 570:  declaration_specifiers_inTemplate ::= <openscope-ast> class_declaration_specifiers
-		//
-		case 570: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 571:  declaration_specifiers_inTemplate ::= <openscope-ast> elaborated_declaration_specifiers
-		//
-		case 571: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 572:  declaration_specifiers_inTemplate ::= <openscope-ast> enum_declaration_specifiers
-		//
-		case 572: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 573:  declaration_specifiers_inTemplate ::= <openscope-ast> type_name_declaration_specifiers_inTemplate
-		//
-		case 573: {
-			action.consumeDeclarationSpecifiersTypeName();
-			break;
-		}
-
-		//
-		// Rule 575:  type_id_inTemplate ::= type_specifier_seq_inTemplate
-		//
-		case 575: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 576:  type_id_inTemplate ::= type_specifier_seq_inTemplate abstract_declarator
-		//
-		case 576: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 577:  template_argument ::= assignment_expression_inTemplate
-		//
-		case 577: {
-			action.consumeTemplateArgumentExpression();
-			break;
-		}
-
-		//
-		// Rule 578:  template_argument ::= type_id_inTemplate
-		//
-		case 578: {
-			action.consumeTemplateArgumentTypeId();
-			break;
-		}
-
-		//
-		// Rule 579:  explicit_instantiation ::= template declaration
-		//
-		case 579: {
-			action.consumeTemplateExplicitInstantiation();
-			break;
-		}
-
-		//
-		// Rule 580:  explicit_specialization ::= template < > declaration
-		//
-		case 580: {
-			action.consumeTemplateExplicitSpecialization();
-			break;
-		}
-
-		//
-		// Rule 581:  try_block ::= try compound_statement <openscope-ast> handler_seq
-		//
-		case 581: {
-			action.consumeStatementTryBlock(true);
-			break;
-		}
-
-		//
-		// Rule 582:  try_block ::= try compound_statement
-		//
-		case 582: {
-			action.consumeStatementTryBlock(false);
-			break;
-		}
-
-		//
-		// Rule 585:  handler ::= catch ( exception_declaration ) compound_statement
-		//
-		case 585: {
-			action.consumeStatementCatchHandler(false);
-			break;
-		}
-
-		//
-		// Rule 586:  handler ::= catch ( ... ) compound_statement
-		//
-		case 586: {
-			action.consumeStatementCatchHandler(true);
-			break;
-		}
-
-		//
-		// Rule 587:  exception_declaration ::= type_specifier_seq <openscope-ast> declarator
-		//
-		case 587: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 588:  exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
-		//
-		case 588: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 589:  exception_declaration ::= type_specifier_seq
-		//
-		case 589: {
-			action.consumeDeclarationSimple(false);
-			break;
-		}
-
-		//
-		// Rule 591:  exception_specification ::= throw ( )
-		//
-		case 591: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 597:  no_function_declarator_start ::= ERROR_TOKEN
-		//
-		case 597: {
-			action.consumeEmpty();
-			break;
-		}
-
-		default:
-			break;
-		}
-		return;
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParserprs.java
deleted file mode 100644
index 1346a3e..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParserprs.java
+++ /dev/null
@@ -1,1546 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2015 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.lrparser.cpp;
-
-public class CPPNoFunctionDeclaratorParserprs
-		implements lpg.lpgjavaruntime.ParseTable, CPPNoFunctionDeclaratorParsersym {
-
-	public interface IsKeyword {
-		public final static byte isKeyword[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static byte isKeyword[] = IsKeyword.isKeyword;
-
-	public final boolean isKeyword(int index) {
-		return isKeyword[index] != 0;
-	}
-
-	public interface BaseCheck {
-		public final static short baseCheck[] = { 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 0, 1, 0, 4, 2, 3, 2, 3, 2, 2, 1, 0, 1, 1, 4, 4, 4, 8, 8, 3, 3,
-				4, 4, 3, 3, 2, 2, 7, 7, 7, 7, 4, 4, 5, 6, 3, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 7, 9, 3, 0, 1,
-				2, 2, 1, 2, 3, 4, 1, 0, 3, 1, 0, 3, 5, 1, 4, 1, 3, 3, 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 3, 3, 3, 3, 1, 3,
-				3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 1, 3, 5, 3, 3, 1, 3, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 1, 1,
-				3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 2, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 2, 1, 3, 1, 0, 1, 0, 1,
-				1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 4, 3, 2, 1, 4, 2, 1, 2, 5, 7, 5, 1, 4, 1, 0, 5, 7, 2, 8, 1, 1, 2, 2,
-				3, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 0, 4, 4, 2, 2, 2, 2, 2, 1, 0, 1, 1, 1, 1,
-				1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 3, 4, 4, 5, 2, 5, 6, 5, 0, 1, 0, 7, 8, 0, 1, 3, 1, 0, 1, 3, 1, 7, 6, 0, 7, 6, 1, 0,
-				6, 5, 6, 4, 1, 3, 1, 0, 1, 2, 1, 1, 3, 1, 3, 1, 1, 1, 3, 9, 2, 2, 3, 2, 5, 3, 7, 0, 1, 2, 2, 1, 0, 1, 1,
-				1, 3, 1, 2, 1, 1, 2, 3, 1, 1, 1, 3, 2, 1, 2, 2, 9, 8, 2, 1, 3, 1, 3, 1, 0, 1, 0, 2, 1, 1, 3, 1, 3, 2, 1,
-				5, 8, 1, 2, 3, 1, 1, 7, 6, 3, 0, 0, 1, 3, 1, 1, 5, 6, 6, 7, 7, 0, 0, 1, 0, 1, 1, 1, 2, 4, 2, 2, 1, 5, 1,
-				1, 1, 1, 1, 1, 1, 2, 1, 0, 1, 3, 1, 1, 2, 3, 2, 1, 2, 2, 1, 0, 1, 3, 3, 5, 5, 4, 1, 1, 1, 1, 0, 1, 5, 2,
-				2, 1, 2, 2, 1, 0, 1, 3, 4, 3, 1, 1, 5, 2, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 7, 1, 0, 1, 3, 1, 1, 2, 4, 2, 4, 7, 9, 5,
-				1, 3, 1, 0, 1, 1, 3, 2, 3, 2, 2, 1, 0, 1, 1, 4, 5, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 4, 4, 2,
-				1, 2, 5, 5, 3, 3, 1, 4, 3, 1, 0, 1, 3, 1, 1, 1, -110, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -7, -13, 0, -8, 0, 0, 0, 0, 0, 0, -11, 0, -19, 0, 0, -10, 0, 0, 0, 0, -14,
-				-448, 0, 0, 0, 0, -280, 0, 0, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -93, -27, 0, 0, 0, -245, 0, 0, 0,
-				0, -487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -28, -88, 0, 0, 0, 0, 0, -29, 0,
-				0, 0, 0, 0, -30, -106, -271, 0, 0, 0, 0, 0, -112, 0, 0, -33, 0, 0, -34, 0, 0, 0, -343, 0, 0, 0, 0, 0, 0,
-				0, 0, -533, 0, 0, 0, 0, -440, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -199, 0, 0, 0, 0, 0, -76, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -25, 0, -449, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -41, 0, -35, 0, 0, 0, -325, 0, 0, 0, 0, 0, -3, 0, 0, 0, -98, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -20, -237, 0, 0, 0, 0, 0, 0, -15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -169, 0, 0, 0, 0, -21, -486, 0, 0, 0, 0, -92, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -318, 0, -118, -263, 0, 0, 0, 0, 0,
-				0, 0, 0, -328, 0, 0, 0, -346, 0, -23, 0, 0, 0, 0, 0, -40, 0, -42, 0, -90, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-182, 0, 0, 0, 0, -194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -521, 0, 0, 0, 0,
-				-203, 0, 0, 0, 0, 0, 0, -46, 0, 0, 0, 0, -327, 0, 0, -319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -315, 0, 0, 0, -17, 0, 0, 0, 0, -43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -261, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -44, -600, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -331, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -189, 0, 0, -26, 0, 0, 0, 0, 0, 0, -37, 0,
-				0, 0, 0, 0, -352, 0, 0, 0, -22, -31, 0, 0, -152, 0, 0, 0, -473, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-39, -32, 0, 0, 0, 0, -16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -290, 0, 0, 0, 0, 0, 0, -172, 0, 0, 0, 0, 0, -395, 0, -51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -38, 0, 0, 0, 0, -45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -47, 0, 0, 0, 0, 0, 0, 0, 0, -59, 0, -60, 0, 0, -272, 0, 0, 0, 0, -122, 0,
-				0, 0, 0, -83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -382, 0, 0, 0, 0, -61,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -537, 0, 0, 0, 0, -512, 0, 0, 0, 0, -313,
-				0, -91, 0, 0, -279, 0, 0, 0, 0, -366, -424, 0, 0, 0, 0, -62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -85, 0, 0, 0, 0, -73, 0, 0, 0, 0, -81, 0, 0, 0, 0, -505, 0, 0, 0, 0, -425, 0, 0, 0,
-				0, -264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -230, 0, -63, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -329, 0, 0, 0, 0, 0, -64, 0, -36, 0, 0, 0, 0, -65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -577, 0, 0, 0, 0, 0, 0, 0, 0, 0, -70, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -379, -411, 0, -74, 0, 0, 0, 0, 0, 0, 0, 0, -75,
-				0, 0, 0, 0, -173, 0, 0, -344, 0, 0, 0, 0, 0, 0, -229, 0, -139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -357, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -66, 0, 0, -508, 0, 0, 0, 0,
-				-140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -99,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -541, 0, 0, 0, 0, -141, 0, 0, 0, 0, -370, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -67, 0, -68, 0, -154, 0, 0, 0, 0, 0, 0, -69, 0, 0, -542, 0, 0, 0, 0, -142,
-				0, 0, 0, 0, -417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -71, 0, -170,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -349, 0, 0, 0, 0, -143, 0, 0, 0, 0, -195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -420, 0, 0, -96, 0, -466, 0, 0, 0, 0, 0, 0, -97, 0, 0, -350, 0, 0, 0, 0,
-				-144, 0, 0, 0, 0, -115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -174, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -153, 0, 0, -368, 0, 0, 0, 0, -145, 0, 0, 0, 0, -576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -269, -95, 0, 0, 0, 0, 0, 0, 0, 0, -268, 0, -155, 0, 0, -389, 0, 0, 0,
-				0, -146, 0, 0, 0, 0, -159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -160, 0,
-				-161, 0, 0, 0, 0, 0, 0, -162, 0, -163, 0, 0, -398, 0, 0, 0, 0, -147, 0, 0, 0, 0, -164, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -165, 0, -166, 0, -455, 0, 0, 0, 0, -167, 0, -360, 0, 0,
-				0, 0, -107, -108, 0, -148, 0, 0, 0, 0, -548, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -430, 0, -284, 0, 0, 0, 0, 0, 0, 0, 0, 0, -356, -367, -183, -273, 0, -149, 0, 0, 0, 0, -168,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -177, 0, -265, 0, -391, 0, 0, 0, 0, 0,
-				0, -297, 0, 0, -474, 0, 0, -184, 0, -181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -178, 0, -289, 0, 0, 0, 0, 0, 0, -179, 0, 0, 0, 0, -414, -185, 0, -248, 0, 0, 0,
-				0, -186, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -570, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -79, -113, 0, 0, 0, -187, 0, -286, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -249,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -201, 0, 0, 0, 0, 0, 0,
-				-399, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -311, 0, 0, 0, 0, -447, 0, 0, 0, 0, 0, 0, -415, -476, 0, 0, 0, 0,
-				0, 0, -250, 0, 0, 0, 0, -406, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -190, 0,
-				-116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -231, -209, 0, -454, 0, -188, -294, 0, 0, -321, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -251, 0, 0, 0, 0, -204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -196, 0, 0, -117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -80, -418, 0, -197, 0, 0, 0, 0, 0, 0, 0,
-				-322, 0, -504, 0, 0, 0, 0, 0, 0, 0, 0, 0, -252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -82, 0, 0, 0, 0, 0, 0, 0, -538,
-				-446, 0, 0, 0, 0, -434, 0, -198, -330, 0, 0, 0, 0, 0, -253, 0, 0, 0, 0, -208, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -84, -355, 0, 0,
-				0, 0, 0, 0, 0, -210, 0, 0, 0, -351, -517, 0, 0, -211, 0, 0, 0, 0, 0, -254, 0, 0, 0, 0, -282, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -212, 0, 0, -445, 0, 0, 0, -457, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -213, 0, 0, 0, 0, -86, -214, 0, 0, 0, -482, -423, 0, -592, 0, 0, 0, 0, 0, 0, -255, 0, 0, 0,
-				0, -460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -477, 0, 0, 0, -463, 0, -296,
-				0, 0, 0, 0, 0, -489, 0, 0, -232, -9, 0, -470, 0, 0, 0, 0, -233, -215, 0, -408, 0, 0, 0, 0, 0, -435, 0,
-				0, 0, 0, 0, -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -323, -544, 0, -216, 0, 0, -4, -291, 0, -217, 0, 0, 0, 0, 0, 0, 0, -234, -373, 0, 0, 0, 0,
-				0, 0, -593, -218, 0, 0, 0, 0, 0, -257, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -324, 0, 0, -338, 0, 0, -326, 0, 0, 0, -361, 0, -219, 0, -364, 0, -235, 0, 0, 0, 0, -347, 0,
-				-394, -401, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -345, -442, 0, 0, -220, -221, 0, -222, 0, -293, 0, 0, 0, -459,
-				-223, 0, -365, 0, 0, 0, 0, 0, 0, 0, 0, 0, -224, 0, -225, 0, 0, 0, 0, 0, 0, 0, -295, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -381, 0, 0, 0, 0, 0, 0, 0, 0, 0, -226, 0, -227,
-				0, 0, -171, 0, 0, 0, 0, -354, 0, 0, 0, 0, -353, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -228, -443, 0, 0, 0, 0, 0, 0, -238, -375, -266, -390, -400, 0, -403, 0, 0, 0, -433,
-				0, -405, 0, -484, 0, -275, 0, 0, 0, 0, 0, 0, 0, 0, 0, -595, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -413, -540, 0, -276, 0, 0, 0, 0, 0, 0, -428, 0, -462, 0, 0, 0, -590,
-				-376, -377, 0, -409, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-277, 0, 0, 0, 0, 0, 0, 0, -278, 0, -300, 0, 0, -419, 0, 0, 0, 0, -301, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -545, 0, 0, -302, 0, -437, 0, 0, 0, 0, 0, 0, -458, 0, 0, -303, 0, 0, 0, 0,
-				0, -304, -475, -305, -306, -180, 0, 0, 0, -432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -307, 0, 0, -308, 0, 0, 0, 0, 0, 0, -309, 0, 0, 0, 0, -450, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -579, 0, 0, -310, 0, -488, 0, 0, 0, 0, 0, 0, -485,
-				0, 0, -491, 0, -492, 0, -109, 0, -314, -316, -317, 0, -176, 0, 0, 0, -451, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -336, -337, 0, -499, 0, 0, 0, 0, 0, 0, -339, 0, 0,
-				-524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -378, -341, -348,
-				0, -380, 0, 0, 0, 0, 0, 0, -495, 0, 0, -358, 0, -359, -502, 0, 0, 0, 0, 0, -363, 0, -515, -371, -526, 0,
-				-372, 0, 0, 0, 0, -158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -507, 0, -416, 0, -562, 0, 0, -535, 0, 0, -563, -536, 0, -374, -383, 0, 0, -388, -151, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -421, 0,
-				-260, 0, 0, 0, 0, -546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -387, 0, -342,
-				-431, -573, 0, -582, 0, 0, 0, -384, 0, -392, -396, -567, -397, -410, 0, 0, 0, 0, -412, -429, -438, -441,
-				-453, 0, 0, 0, 0, -468, 0, 0, -422, 0, 0, -138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -369, 0, 0, 0, -469, 0, 0, 0, 0, -247, 0, 0, 0, 0, -461, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -471, 0, -472, 0, -478, -480, 0, 0, -493, -500, -501, -511,
-				-523, -525, -527, -528, -559, 0, -560, 0, -529, 0, 0, 0, -530, 0, 0, 0, -136, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -532, 0, -547, 0, -549, 0, 0, 0, -137, 0, 0, 0, 0,
-				-550, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -552, -557, -565, -586, 0, -481, 0,
-				0, -246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -561, 0, -566,
-				0, 0, 0, 0, -574, -598, -584, -603, -591, -596, 0, 0, 0, 0, 0, -494, 0, -133, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -539, 0, -242, 0, 0, 0, 0, -564, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -569, 0, -134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -18, 0,
-				0, 0, 0, -243, 0, 0, 0, 0, -571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -575, 0, 0, -244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -130, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -239, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -467, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -580, -24, 0, 0, 0, 0, 0, -554, -534, 0, -581, -119, 0, 0, 0,
-				0, 0, -340, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -599, 0, 0, 0, 0, 0, 0, -320, 0, 0, -202, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -506, 0, 0, 0, 0, 0, 0, -597, 0, -602, 0, 0, 0, 0, 0, -556, 0, 0, 0, 0, 0,
-				-12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -385, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -72, 0, 0, 0, -193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -48, 0, 0, 0, 0, 0,
-				-281, 0, 0, 0, 0, 0, 0, 0, -259, 0, -497, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -503, -332, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -543, -522, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -531, -89, 0, 0, 0, 0, 0, 0, -200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -87, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -551,
-				-333, 0, 0, 0, 0, 0, -334, 0, -78, -192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -553, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -206, 0, 0, 0, -267, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -568, 0, 0, 0, 0, 0, 0, -335,
-				0, -386, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -270, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -404, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -393, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -585, 0, 0, 0, 0, 0, 0, -588, 0, 0, 0, 0, 0, -452, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -456, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -589, 0, -101, -100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-594, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -479, 0, 0, 0, 0, 0, -483, 0, 0, 0, 0, 0, 0, 0, -601, 0, 0, 0, 0, 0, 0, 0, -496, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -604, 0, 0, 0, 0, 0, 0, 0, -509, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -126, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-427, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -587, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -285, 0, 0, 0,
-				0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -102, 0, 0, 0, 0, 0, -283, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -510, 0, 0, 0, 0, 0, 0, 0, -516, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -52, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -56, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -111, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -191, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -287, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -514, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -436, -292, 0, 0, 0, 0, 0, 0, -298, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -465,
-				-312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -513, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -444, 0, 0, 0, -288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -402, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-407, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -439, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -464, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -490, 0, 0, -520, -518, 0, 0, 0, 0, 0, 0, 0, 0,
-				-498, 0, -236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -262, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -572, 0, 0,
-				0, 0, 0, 0, 0, -555, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -558, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static short baseCheck[] = BaseCheck.baseCheck;
-
-	@Override
-	public final int baseCheck(int index) {
-		return baseCheck[index];
-	}
-
-	public final static short rhs[] = baseCheck;
-
-	@Override
-	public final int rhs(int index) {
-		return rhs[index];
-	}
-
-	public interface BaseAction {
-		public final static char baseAction[] = { 191, 5, 153, 93, 93, 30, 30, 80, 80, 39, 39, 42, 42, 218, 1, 1, 16,
-				16, 16, 16, 16, 16, 16, 17, 17, 17, 15, 11, 11, 6, 6, 6, 6, 6, 6, 2, 76, 76, 4, 4, 12, 12, 44, 44, 154,
-				154, 155, 69, 69, 43, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
-				156, 156, 156, 133, 133, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 192, 192, 193, 193,
-				194, 159, 159, 160, 160, 157, 157, 161, 158, 158, 21, 21, 22, 22, 23, 23, 23, 24, 24, 24, 24, 25, 25,
-				25, 26, 26, 26, 31, 31, 31, 31, 31, 33, 33, 33, 34, 34, 35, 35, 36, 36, 38, 38, 40, 40, 41, 41, 45, 45,
-				45, 45, 45, 47, 47, 47, 53, 53, 55, 55, 61, 61, 62, 62, 63, 63, 64, 64, 65, 65, 65, 65, 65, 65, 65, 65,
-				65, 65, 65, 65, 65, 29, 29, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 37, 28, 162, 162, 104,
-				104, 195, 195, 103, 219, 219, 81, 81, 81, 81, 81, 81, 81, 81, 81, 82, 82, 82, 78, 78, 66, 66, 196, 196,
-				83, 83, 83, 115, 115, 197, 197, 84, 84, 84, 84, 198, 198, 85, 85, 85, 85, 85, 86, 86, 94, 94, 94, 94,
-				94, 94, 94, 94, 56, 56, 56, 56, 56, 134, 134, 132, 132, 57, 199, 27, 27, 27, 27, 27, 50, 50, 71, 71, 71,
-				71, 71, 139, 139, 135, 135, 135, 135, 135, 136, 136, 136, 137, 137, 137, 138, 138, 138, 164, 164, 164,
-				72, 72, 72, 72, 72, 73, 73, 73, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 105, 140, 140, 140, 140,
-				140, 140, 110, 110, 110, 165, 166, 166, 111, 111, 200, 168, 168, 167, 167, 141, 141, 116, 91, 91, 142,
-				59, 49, 169, 169, 60, 58, 96, 96, 170, 170, 163, 163, 118, 118, 119, 88, 88, 171, 171, 74, 74, 67, 67,
-				172, 75, 75, 79, 79, 70, 70, 70, 54, 97, 97, 107, 106, 106, 51, 51, 68, 68, 77, 77, 52, 108, 108, 108,
-				98, 98, 98, 99, 99, 100, 100, 100, 101, 101, 120, 120, 120, 122, 122, 121, 121, 220, 220, 102, 102, 202,
-				202, 202, 202, 202, 144, 48, 48, 174, 201, 201, 145, 145, 146, 146, 146, 147, 176, 203, 203, 32, 32,
-				109, 113, 113, 113, 113, 205, 124, 123, 123, 112, 112, 112, 177, 178, 178, 178, 178, 178, 178, 178, 178,
-				178, 178, 178, 207, 207, 204, 204, 206, 206, 179, 180, 180, 180, 180, 181, 208, 126, 125, 125, 209, 209,
-				182, 182, 182, 182, 114, 114, 114, 210, 210, 8, 8, 9, 211, 211, 212, 183, 173, 173, 184, 184, 185, 186,
-				186, 7, 7, 10, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
-				213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
-				213, 213, 213, 89, 92, 92, 187, 187, 149, 149, 150, 150, 150, 150, 150, 150, 3, 151, 151, 148, 148, 188,
-				221, 222, 222, 223, 223, 224, 225, 225, 189, 190, 190, 190, 190, 214, 214, 214, 128, 128, 128, 128, 128,
-				129, 130, 130, 127, 127, 95, 90, 87, 87, 175, 175, 131, 131, 215, 215, 215, 152, 152, 143, 143, 216,
-				216, 191, 191, 117, 1119, 35, 2497, 2418, 4666, 1254, 27, 30, 31, 629, 626, 26, 28, 2399, 296, 25, 23,
-				50, 1329, 106, 76, 77, 108, 1331, 1420, 1372, 1510, 1238, 1342, 177, 1405, 1492, 308, 1649, 1517, 1734,
-				1732, 1754, 1743, 1248, 1781, 176, 71, 713, 707, 34, 191, 1513, 1229, 35, 488, 266, 5158, 71, 35, 3286,
-				1243, 35, 636, 32, 4256, 2742, 27, 30, 31, 629, 626, 373, 28, 2405, 1648, 269, 264, 265, 3298, 35, 636,
-				32, 4575, 2916, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420,
-				1372, 1967, 1911, 1229, 35, 314, 309, 5263, 358, 2199, 276, 279, 282, 1344, 1452, 1336, 1638, 2465, 35,
-				312, 1944, 1292, 1976, 402, 646, 355, 61, 359, 1969, 2629, 3153, 349, 627, 2568, 35, 312, 2217, 2415,
-				2481, 2547, 4680, 285, 71, 3590, 193, 875, 3154, 1532, 35, 636, 32, 4256, 4163, 27, 30, 31, 629, 626,
-				373, 28, 1229, 35, 314, 1837, 5414, 2621, 2267, 35, 636, 32, 4575, 5370, 27, 30, 31, 629, 626, 26, 28,
-				1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420, 1372, 1967, 1504, 1452, 162, 1468, 35, 3494,
-				32, 4256, 2742, 27, 30, 31, 629, 626, 373, 28, 1934, 55, 1944, 2391, 1976, 3349, 355, 2465, 35, 315,
-				1969, 2334, 1991, 329, 390, 42, 2166, 2252, 1978, 2014, 2016, 161, 577, 592, 481, 3578, 3579, 2267, 35,
-				636, 32, 4575, 5370, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331,
-				1420, 1372, 1967, 646, 355, 162, 1332, 35, 636, 32, 349, 627, 41, 30, 31, 629, 626, 1377, 1229, 35, 565,
-				1944, 5904, 1976, 1582, 69, 652, 533, 900, 1969, 1292, 1991, 1887, 548, 574, 4491, 578, 1978, 2014,
-				2016, 161, 577, 1968, 35, 636, 32, 417, 356, 40, 30, 31, 629, 626, 1181, 1931, 4221, 1622, 2023, 2805,
-				351, 3862, 69, 71, 35, 727, 423, 764, 2267, 35, 636, 32, 4575, 5370, 27, 30, 31, 629, 626, 26, 28, 1320,
-				296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420, 1372, 1967, 466, 1355, 162, 1638, 71, 35, 2426,
-				2358, 1292, 548, 574, 4491, 578, 71, 35, 317, 638, 2463, 1944, 1614, 1976, 453, 454, 3489, 4729, 1389,
-				1969, 2922, 1991, 1452, 2085, 193, 367, 2023, 1978, 2014, 2016, 161, 577, 2537, 35, 636, 32, 4575, 2176,
-				27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420, 1372, 1510,
-				1613, 1689, 177, 347, 1492, 69, 1649, 1517, 1734, 1732, 1292, 1743, 147, 1781, 176, 1213, 5062, 2431,
-				3352, 413, 2290, 35, 636, 32, 4256, 4400, 27, 30, 31, 629, 626, 373, 28, 2743, 548, 574, 4491, 578,
-				2152, 35, 330, 2509, 1360, 35, 636, 32, 4429, 2923, 27, 30, 31, 629, 626, 373, 28, 2157, 495, 387, 2023,
-				438, 2597, 35, 636, 32, 4575, 5370, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76,
-				77, 108, 1331, 1420, 1372, 1967, 3349, 355, 162, 2981, 1879, 35, 636, 32, 5897, 638, 27, 30, 31, 629,
-				626, 26, 28, 2025, 1944, 546, 1976, 2112, 646, 355, 3485, 367, 1969, 1993, 1991, 350, 627, 420, 414,
-				977, 1978, 2014, 2016, 161, 577, 2335, 35, 636, 32, 4575, 583, 27, 30, 31, 629, 626, 26, 28, 1320, 296,
-				25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420, 1372, 1510, 2438, 1637, 177, 1377, 1492, 324, 1649,
-				1517, 1734, 1732, 1377, 1743, 478, 1781, 176, 1213, 2666, 35, 563, 413, 69, 69, 2038, 1132, 1485, 834,
-				925, 2075, 502, 35, 431, 1709, 3355, 532, 549, 574, 4491, 578, 2805, 351, 412, 2498, 69, 71, 35, 727,
-				423, 824, 2409, 35, 636, 32, 4575, 2754, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106,
-				76, 77, 108, 1331, 1420, 1372, 1510, 308, 1409, 177, 1884, 1492, 1712, 1649, 1517, 1734, 1732, 2816,
-				1743, 147, 1781, 176, 1213, 4815, 1981, 657, 413, 3245, 35, 636, 32, 4575, 900, 27, 30, 31, 629, 626,
-				26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 85, 421, 414, 977, 2891, 35, 636, 32, 4575, 2984, 27,
-				30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420, 1372, 1510, 374,
-				141, 177, 3583, 1492, 652, 1649, 1517, 1734, 1732, 2590, 1743, 1239, 1781, 176, 71, 35, 707, 311, 191,
-				3245, 35, 636, 32, 4575, 1346, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77,
-				108, 1331, 2556, 411, 414, 977, 2891, 35, 636, 32, 4575, 1463, 27, 30, 31, 629, 626, 26, 28, 1320, 296,
-				25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420, 1372, 1510, 71, 3701, 177, 70, 1492, 2916, 1649, 1517,
-				1734, 1732, 2323, 1743, 1452, 1781, 176, 71, 35, 707, 3285, 407, 2853, 2891, 35, 636, 32, 4575, 1975,
-				27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420, 1372, 1510,
-				1213, 439, 177, 93, 1492, 155, 1649, 1517, 1734, 1732, 1389, 1743, 1837, 1781, 176, 71, 35, 727, 423,
-				407, 2891, 35, 636, 32, 4575, 227, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76,
-				77, 108, 1331, 1420, 1372, 1510, 487, 1465, 177, 2437, 1492, 1783, 1649, 1517, 1734, 1732, 494, 1743,
-				1884, 1781, 176, 71, 35, 707, 313, 407, 1258, 244, 406, 2770, 35, 636, 32, 4575, 230, 27, 30, 31, 629,
-				626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420, 1372, 1510, 425, 462, 2119, 389,
-				1492, 2916, 1649, 1517, 1734, 1732, 2942, 1743, 592, 1828, 197, 2469, 35, 636, 32, 4575, 405, 27, 30,
-				31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420, 1372, 1510, 1638, 3214,
-				177, 155, 1492, 1292, 1649, 1517, 1734, 1732, 2736, 1743, 155, 1781, 176, 362, 369, 2237, 1929, 175,
-				2492, 35, 707, 311, 361, 403, 1873, 155, 193, 2891, 35, 636, 32, 4575, 1920, 27, 30, 31, 629, 626, 26,
-				28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420, 1372, 1510, 499, 363, 177, 1919, 1492,
-				1598, 1649, 1517, 1734, 1732, 1736, 1743, 323, 1781, 176, 71, 35, 727, 423, 188, 2891, 35, 636, 32,
-				4575, 2670, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420,
-				1372, 1510, 469, 3444, 177, 357, 1492, 69, 1649, 1517, 1734, 1732, 991, 1743, 592, 1781, 176, 71, 35,
-				727, 423, 187, 2891, 35, 636, 32, 4575, 2327, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329,
-				106, 76, 77, 108, 1331, 1420, 1372, 1510, 468, 495, 177, 233, 1492, 69, 1649, 1517, 1734, 1732, 1490,
-				1743, 313, 1781, 176, 71, 35, 727, 423, 186, 2891, 35, 636, 32, 4575, 2327, 27, 30, 31, 629, 626, 26,
-				28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420, 1372, 1510, 467, 2819, 177, 1632, 1492,
-				69, 1649, 1517, 1734, 1732, 6299, 1743, 456, 1781, 176, 71, 3486, 707, 74, 185, 2891, 35, 636, 32, 4575,
-				2499, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420, 1372,
-				1510, 71, 3352, 177, 316, 1492, 2525, 1649, 1517, 1734, 1732, 6206, 1743, 1090, 1781, 176, 2492, 35,
-				707, 3488, 184, 2891, 35, 636, 32, 4575, 1457, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50,
-				1329, 106, 76, 77, 108, 1331, 1420, 1372, 1510, 3242, 147, 177, 2416, 1492, 4873, 1649, 1517, 1734,
-				1732, 388, 1743, 757, 1781, 176, 71, 35, 707, 316, 183, 2891, 35, 636, 32, 4575, 1613, 27, 30, 31, 629,
-				626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420, 1372, 1510, 69, 1452, 177, 2604,
-				1492, 1035, 1649, 1517, 1734, 1732, 1389, 1743, 1467, 1781, 176, 71, 35, 707, 3495, 182, 2891, 35, 636,
-				32, 4575, 1931, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420,
-				1372, 1510, 325, 501, 177, 660, 1492, 2801, 1649, 1517, 1734, 1732, 581, 1743, 753, 1781, 176, 71, 35,
-				707, 564, 181, 2891, 35, 636, 32, 4575, 319, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329,
-				106, 76, 77, 108, 1331, 1420, 1372, 1510, 360, 743, 177, 1731, 1492, 2320, 1649, 1517, 1734, 1732, 1356,
-				1743, 147, 1781, 176, 583, 4935, 1377, 1377, 180, 2891, 35, 636, 32, 4575, 2328, 27, 30, 31, 629, 626,
-				26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420, 1372, 1510, 5815, 24, 177, 2463,
-				1492, 69, 1649, 1517, 1734, 1732, 3475, 1743, 3056, 1781, 176, 1389, 2853, 1377, 2562, 179, 2891, 35,
-				636, 32, 4575, 2324, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331,
-				1420, 1372, 1510, 69, 1344, 177, 1093, 1492, 1625, 1649, 1517, 1734, 1732, 2991, 1743, 1465, 1781, 176,
-				502, 35, 431, 1377, 178, 2891, 35, 636, 32, 4575, 473, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23,
-				50, 1329, 106, 76, 77, 108, 1331, 1420, 1372, 1510, 3154, 68, 177, 2400, 1492, 69, 1649, 1517, 1734,
-				1732, 969, 1743, 241, 1781, 176, 584, 2119, 2853, 2497, 192, 3012, 35, 636, 32, 4575, 2651, 27, 30, 31,
-				629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420, 1372, 1967, 426, 462, 162,
-				1243, 35, 636, 32, 4256, 2742, 27, 30, 31, 629, 626, 373, 28, 1257, 1331, 1944, 2641, 1976, 2653, 3485,
-				2565, 368, 369, 1969, 3239, 1991, 273, 296, 44, 2166, 2795, 1978, 2014, 2016, 161, 173, 3012, 35, 636,
-				32, 4575, 3584, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420,
-				1372, 1967, 1452, 266, 162, 88, 646, 355, 102, 1968, 35, 636, 32, 349, 627, 2696, 30, 31, 629, 626,
-				1944, 2252, 1976, 274, 264, 265, 1389, 3710, 1969, 900, 1991, 428, 462, 2853, 1389, 900, 1978, 2014,
-				2016, 161, 172, 3012, 35, 636, 32, 4575, 3130, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50,
-				1329, 106, 76, 77, 108, 1331, 1420, 1372, 1967, 2664, 1377, 162, 1514, 35, 636, 32, 4811, 2664, 27, 30,
-				31, 629, 626, 57, 28, 3765, 1452, 1944, 2065, 1976, 2768, 1644, 5164, 410, 227, 1969, 5838, 1991, 273,
-				296, 53, 410, 424, 1978, 2014, 2016, 161, 171, 3012, 35, 636, 32, 4575, 1377, 27, 30, 31, 629, 626, 26,
-				28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420, 1372, 1967, 485, 266, 162, 2243, 35, 636,
-				32, 4811, 87, 27, 30, 31, 629, 626, 56, 28, 1630, 2252, 1944, 3703, 1976, 274, 264, 265, 427, 462, 1969,
-				3101, 1991, 2146, 35, 488, 900, 5158, 1978, 2014, 2016, 161, 170, 3012, 35, 636, 32, 4575, 51, 27, 30,
-				31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420, 1372, 1967, 408, 266,
-				162, 1703, 35, 636, 32, 5897, 3343, 27, 30, 31, 629, 626, 59, 28, 1897, 2809, 1944, 2291, 1976, 278,
-				264, 265, 1389, 3130, 1969, 61, 1991, 482, 657, 321, 3642, 243, 1978, 2014, 2016, 161, 169, 3012, 35,
-				636, 32, 4575, 1377, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331,
-				1420, 1372, 1967, 2664, 266, 162, 1703, 35, 636, 32, 5897, 52, 27, 30, 31, 629, 626, 58, 28, 1986, 1331,
-				1944, 2880, 1976, 281, 264, 265, 3393, 1983, 1969, 60, 1991, 1465, 71, 35, 330, 2058, 1978, 2014, 2016,
-				161, 168, 3012, 35, 636, 32, 4575, 1377, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106,
-				76, 77, 108, 1331, 1420, 1372, 1967, 1886, 266, 162, 1968, 35, 636, 32, 2252, 384, 3151, 30, 31, 629,
-				626, 2119, 485, 3578, 3579, 1944, 2073, 1976, 284, 264, 265, 2067, 2276, 1969, 2274, 1991, 1798, 1465,
-				71, 1389, 4997, 1978, 2014, 2016, 161, 167, 3012, 35, 636, 32, 4575, 1625, 27, 30, 31, 629, 626, 26, 28,
-				1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420, 1372, 1967, 2299, 2847, 162, 364, 369, 2252,
-				4480, 69, 2664, 266, 482, 416, 2560, 2252, 3451, 2119, 2156, 2652, 1944, 147, 1976, 322, 4181, 5180,
-				2854, 589, 1969, 2669, 1991, 287, 264, 265, 586, 2682, 1978, 2014, 2016, 161, 166, 3012, 35, 636, 32,
-				4575, 377, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420,
-				1372, 1967, 437, 266, 162, 971, 3141, 369, 441, 69, 2252, 266, 845, 2352, 1414, 1519, 1377, 215, 847,
-				3862, 1944, 332, 1976, 278, 264, 265, 3662, 243, 1969, 331, 1991, 281, 264, 265, 1389, 1017, 1978, 2014,
-				2016, 161, 165, 3012, 35, 636, 32, 4575, 90, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329,
-				106, 76, 77, 108, 1331, 1420, 1372, 1967, 69, 638, 162, 1377, 89, 2076, 69, 102, 2664, 266, 2248, 3537,
-				2364, 465, 69, 2311, 3721, 366, 1944, 2171, 1976, 1519, 340, 1792, 1389, 3862, 1969, 3862, 1991, 284,
-				264, 265, 585, 2927, 1978, 2014, 2016, 161, 164, 3012, 35, 636, 32, 4575, 1060, 27, 30, 31, 629, 626,
-				26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420, 1372, 1967, 3134, 266, 162, 1377,
-				2152, 3541, 330, 2368, 1572, 638, 2660, 638, 1889, 35, 727, 423, 1465, 2919, 1944, 69, 1976, 568, 264,
-				265, 2298, 2818, 1969, 2818, 1991, 491, 477, 918, 491, 2990, 1978, 2014, 2016, 161, 163, 2891, 35, 636,
-				32, 4575, 308, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420,
-				1372, 1510, 69, 2119, 177, 415, 1492, 2627, 1649, 1517, 1734, 1732, 1620, 1743, 2001, 1781, 176, 502,
-				35, 2989, 2110, 140, 3072, 35, 636, 32, 4575, 1718, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50,
-				1329, 106, 76, 77, 108, 1331, 1420, 1372, 1967, 49, 94, 162, 96, 3328, 915, 2852, 1637, 143, 3232, 369,
-				724, 956, 2980, 1377, 2680, 69, 69, 1944, 69, 1976, 2063, 5896, 1452, 5989, 69, 1969, 147, 1991, 746,
-				2490, 5242, 72, 2075, 1978, 2014, 2016, 161, 160, 3132, 35, 636, 32, 4575, 67, 27, 30, 31, 629, 626, 26,
-				28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420, 1372, 1510, 69, 1465, 177, 829, 1492,
-				4981, 1649, 1517, 1734, 1732, 69, 1743, 1452, 1781, 176, 2877, 3160, 1377, 1377, 222, 3245, 35, 636, 32,
-				4575, 1467, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420,
-				1372, 1510, 66, 65, 843, 97, 1492, 2119, 1649, 1517, 1734, 1732, 1001, 1743, 1019, 1828, 197, 3245, 35,
-				636, 32, 4575, 1806, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331,
-				1420, 1372, 1510, 71, 35, 330, 2155, 1492, 69, 1649, 1517, 1734, 1732, 5916, 1743, 69, 1828, 197, 2297,
-				98, 678, 3399, 369, 2025, 2442, 2682, 2636, 577, 71, 35, 727, 423, 3245, 35, 636, 32, 4575, 458, 27, 30,
-				31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420, 1372, 1510, 1642, 49,
-				584, 1810, 1492, 335, 1649, 1517, 1734, 1732, 2330, 1743, 46, 1828, 197, 3245, 35, 636, 32, 4575, 329,
-				27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420, 1372, 1510,
-				502, 35, 431, 1800, 1492, 69, 1649, 1517, 1734, 1732, 1399, 1743, 147, 1828, 197, 69, 5492, 2682, 3667,
-				3434, 5977, 2524, 3043, 2198, 4730, 71, 35, 727, 423, 3245, 35, 636, 32, 4575, 3052, 27, 30, 31, 629,
-				626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420, 1372, 1510, 255, 308, 1015,
-				1173, 1492, 69, 1649, 1517, 1734, 1732, 6210, 1743, 1791, 1828, 197, 3404, 35, 636, 32, 4575, 457, 27,
-				30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420, 1372, 1510, 386,
-				1377, 1904, 1994, 1492, 1638, 1649, 1517, 1734, 1732, 1292, 1743, 147, 1828, 197, 2851, 5500, 3102, 69,
-				378, 1803, 996, 383, 1018, 1216, 3712, 2682, 1909, 2682, 376, 2508, 64, 310, 193, 460, 2823, 35, 636,
-				32, 4575, 599, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420,
-				1372, 1967, 377, 189, 69, 339, 1798, 212, 3158, 3041, 4997, 2682, 2031, 1897, 69, 2682, 3665, 2662,
-				2848, 1544, 2987, 1377, 3245, 35, 636, 32, 4575, 3246, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23,
-				50, 1329, 106, 76, 77, 108, 1331, 1420, 1372, 1510, 3506, 232, 3050, 2030, 1492, 231, 1649, 1517, 1734,
-				1732, 1377, 2979, 3351, 35, 636, 32, 4575, 2682, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50,
-				1329, 106, 76, 77, 108, 1331, 1420, 1372, 1967, 3006, 55, 2163, 1638, 69, 4181, 3492, 4181, 1292, 5400,
-				3161, 5118, 2500, 3105, 3126, 2162, 3254, 338, 1944, 4181, 1976, 3040, 2530, 3125, 2620, 3096, 1969,
-				4197, 1991, 4197, 3127, 193, 2352, 1377, 1978, 3230, 3245, 35, 636, 32, 4575, 377, 27, 30, 31, 629, 626,
-				26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420, 1372, 1510, 54, 2431, 3352, 3479,
-				1492, 3267, 1649, 1517, 1734, 2937, 3298, 35, 636, 32, 4575, 1377, 27, 30, 31, 629, 626, 26, 28, 1320,
-				296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420, 1372, 1967, 464, 2730, 395, 3162, 394, 3157, 2710,
-				3551, 101, 3307, 3320, 3360, 2728, 3426, 3429, 87, 2944, 2682, 1944, 2682, 1976, 2945, 3406, 3295, 3327,
-				2946, 1969, 3498, 1991, 3245, 35, 636, 32, 4575, 3188, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23,
-				50, 1329, 106, 76, 77, 108, 1331, 1420, 1372, 1510, 235, 3004, 233, 2914, 1492, 3036, 1649, 1517, 2890,
-				3245, 35, 636, 32, 4575, 173, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77,
-				108, 1331, 1420, 1372, 1510, 3432, 2990, 2682, 2682, 1492, 1377, 1649, 2892, 3298, 35, 636, 32, 4575,
-				324, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420, 1372,
-				1967, 3389, 3435, 4190, 2057, 1756, 3355, 334, 4242, 3185, 2682, 3491, 2682, 3608, 1007, 6952, 6952,
-				6952, 6952, 1944, 1377, 1976, 3245, 35, 636, 32, 4575, 3185, 27, 30, 31, 629, 626, 26, 28, 1320, 296,
-				25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420, 1372, 1510, 256, 3351, 226, 6952, 1492, 1377, 2869,
-				3298, 35, 636, 32, 4575, 2661, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77,
-				108, 1331, 1420, 1372, 1967, 6952, 486, 6952, 6952, 6952, 6952, 6952, 6952, 590, 6952, 6952, 6952, 6952,
-				6952, 6952, 6952, 6952, 6952, 1944, 1377, 3144, 3245, 35, 636, 32, 4575, 6952, 27, 30, 31, 629, 626, 26,
-				28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420, 1372, 1510, 6952, 4906, 6952, 6952, 2871,
-				3245, 35, 636, 32, 4575, 6952, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77,
-				108, 1331, 1420, 1372, 1510, 71, 35, 727, 423, 2878, 3298, 35, 636, 32, 4575, 1377, 27, 30, 31, 629,
-				626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420, 1372, 1967, 49, 6952, 6952,
-				6952, 6952, 6952, 6952, 6952, 4968, 6952, 1377, 724, 1447, 3298, 35, 636, 32, 4575, 3150, 27, 30, 31,
-				629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420, 1372, 1967, 5030, 6952,
-				6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 3245, 35, 636, 32, 4575, 3152, 27, 30,
-				31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420, 1372, 2688, 3245, 35,
-				636, 32, 4575, 6952, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331,
-				1420, 1372, 2739, 3245, 35, 636, 32, 4575, 6952, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50,
-				1329, 106, 76, 77, 108, 1331, 1420, 1372, 2745, 3245, 35, 636, 32, 4575, 6952, 27, 30, 31, 629, 626, 26,
-				28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420, 1372, 2762, 3245, 35, 636, 32, 4575,
-				6952, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420, 1372,
-				3099, 3245, 35, 636, 32, 4575, 6952, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76,
-				77, 108, 1331, 1420, 1372, 3107, 3245, 35, 636, 32, 4575, 6952, 27, 30, 31, 629, 626, 26, 28, 1320, 296,
-				25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420, 1372, 3132, 3245, 35, 636, 32, 4575, 6952, 27, 30, 31,
-				629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420, 1372, 2952, 1258, 35, 636,
-				32, 4429, 2742, 27, 30, 31, 629, 626, 373, 28, 6952, 6952, 6952, 6952, 1377, 3457, 35, 727, 423, 4659,
-				6952, 69, 2921, 6952, 1377, 69, 599, 1292, 271, 296, 1292, 1413, 35, 636, 32, 4256, 4853, 27, 30, 31,
-				629, 626, 373, 28, 2629, 1377, 6952, 308, 377, 189, 189, 638, 1296, 189, 2761, 571, 5917, 4181, 221,
-				3592, 4181, 234, 2350, 6952, 646, 355, 266, 366, 6952, 1638, 6952, 349, 627, 2204, 1292, 3711, 3541,
-				6952, 1377, 262, 6952, 1292, 377, 6952, 2921, 348, 269, 264, 265, 599, 157, 35, 727, 423, 6051, 6952,
-				6952, 193, 646, 355, 1404, 442, 1038, 6952, 189, 349, 627, 1251, 5234, 6952, 386, 3477, 189, 195, 342,
-				598, 820, 6952, 6952, 3483, 309, 3353, 49, 213, 276, 279, 282, 1344, 1452, 378, 1803, 996, 383, 724,
-				810, 69, 3801, 6952, 6952, 3403, 1292, 443, 444, 445, 3250, 6952, 6952, 6952, 6952, 6952, 2217, 2415,
-				2481, 2547, 4680, 285, 6952, 6952, 6952, 1214, 3244, 6952, 229, 189, 6952, 6952, 3248, 3582, 6952, 6952,
-				6952, 6952, 2939, 3753, 3245, 35, 636, 32, 4575, 2621, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23,
-				50, 1329, 106, 76, 77, 108, 1331, 1420, 2807, 3245, 35, 636, 32, 4575, 6952, 27, 30, 31, 629, 626, 26,
-				28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331, 1420, 2868, 6952, 6952, 6952, 446, 449, 6952,
-				6952, 400, 1220, 35, 3494, 32, 4429, 2742, 27, 30, 31, 629, 626, 373, 28, 6952, 2159, 1822, 35, 636, 32,
-				4256, 6253, 27, 30, 31, 629, 626, 373, 28, 6952, 157, 35, 727, 423, 2621, 6952, 6952, 6952, 4244, 5445,
-				6952, 6952, 6952, 6952, 6952, 6952, 385, 6952, 6952, 6316, 230, 69, 6952, 6952, 6952, 638, 599, 2190,
-				6952, 6952, 6952, 3862, 49, 6952, 385, 69, 6952, 2792, 646, 355, 1292, 366, 4181, 724, 1195, 349, 627,
-				6952, 377, 189, 6952, 259, 69, 646, 355, 6952, 599, 1292, 2031, 1582, 349, 627, 2000, 189, 4197, 386,
-				6952, 4730, 6051, 1214, 6952, 6952, 3195, 3246, 875, 6952, 6952, 6952, 262, 189, 189, 638, 6952, 386,
-				378, 1803, 996, 383, 3353, 2988, 213, 6952, 6952, 2664, 2575, 6952, 6952, 367, 2030, 237, 249, 745, 378,
-				1803, 996, 383, 386, 236, 246, 247, 248, 250, 2575, 6952, 6952, 3427, 1, 202, 6952, 6952, 4181, 599,
-				6952, 6952, 6952, 380, 1803, 996, 383, 201, 6952, 6952, 216, 200, 203, 204, 205, 206, 207, 540, 6952,
-				386, 377, 262, 189, 591, 1915, 35, 727, 423, 452, 454, 3489, 3353, 6952, 213, 6952, 6952, 2664, 6952,
-				378, 1803, 996, 383, 237, 249, 745, 3246, 6952, 6952, 576, 6952, 236, 246, 247, 248, 250, 2690, 49,
-				6952, 6952, 6952, 202, 6952, 6952, 6952, 538, 539, 6952, 724, 2218, 6952, 594, 6952, 201, 6952, 214,
-				217, 200, 203, 204, 205, 206, 207, 3245, 35, 636, 32, 4575, 6952, 27, 30, 31, 629, 626, 26, 28, 1320,
-				296, 25, 23, 50, 1329, 106, 76, 77, 108, 1331, 2564, 345, 157, 35, 727, 423, 599, 6952, 6952, 2004, 35,
-				727, 423, 6952, 6952, 6952, 6952, 6952, 6952, 4545, 6952, 6952, 6952, 3507, 35, 727, 423, 4659, 262,
-				189, 6952, 6952, 6952, 6952, 49, 6952, 272, 296, 3353, 6952, 213, 49, 6952, 2664, 6952, 724, 2108, 6952,
-				6952, 237, 249, 745, 724, 2224, 6952, 308, 6952, 236, 246, 247, 248, 250, 6952, 431, 69, 6952, 6952,
-				202, 599, 1292, 69, 3252, 1519, 1519, 266, 1292, 3862, 3862, 3252, 201, 6952, 6952, 3666, 200, 203, 204,
-				205, 206, 207, 6952, 262, 189, 189, 6952, 270, 264, 265, 6952, 189, 6952, 3353, 3057, 213, 3760, 6952,
-				2664, 6952, 3058, 6952, 6952, 6952, 237, 249, 745, 6952, 6952, 6952, 6952, 6952, 236, 246, 247, 248,
-				250, 6952, 517, 638, 638, 309, 202, 599, 6952, 277, 280, 283, 1344, 1452, 6952, 6952, 6952, 6952, 201,
-				366, 366, 211, 200, 203, 204, 205, 206, 207, 6952, 262, 189, 759, 35, 727, 423, 759, 35, 727, 423, 3353,
-				286, 213, 6952, 6952, 2664, 6952, 914, 4456, 6952, 6952, 237, 249, 745, 6952, 6952, 6952, 6952, 6952,
-				236, 246, 247, 248, 250, 49, 603, 6952, 6952, 49, 202, 599, 6952, 69, 6952, 1519, 724, 2355, 1292, 3862,
-				724, 47, 201, 6952, 6952, 209, 200, 203, 204, 205, 206, 207, 6952, 262, 189, 157, 35, 727, 423, 6952,
-				6952, 189, 2873, 3353, 6952, 213, 814, 6952, 2664, 6952, 3326, 6952, 6952, 6952, 237, 249, 745, 6952,
-				6952, 6952, 6952, 6952, 236, 246, 247, 248, 250, 49, 689, 638, 6952, 6952, 202, 599, 6952, 6952, 6952,
-				6952, 724, 47, 6952, 6952, 6952, 6952, 201, 366, 6952, 210, 200, 203, 204, 205, 206, 207, 6952, 262,
-				189, 759, 35, 727, 423, 6952, 6952, 6952, 965, 3353, 6952, 213, 69, 6952, 2664, 6952, 5386, 1292, 6952,
-				6952, 237, 249, 745, 6952, 6952, 6952, 6952, 6952, 236, 246, 247, 248, 250, 49, 775, 6952, 6952, 6952,
-				202, 599, 189, 69, 6952, 6952, 724, 47, 1292, 2163, 6952, 2997, 201, 6952, 4181, 220, 200, 203, 204,
-				205, 206, 207, 6952, 262, 189, 157, 35, 727, 423, 6952, 6952, 189, 2600, 3353, 6952, 213, 4197, 6952,
-				2664, 6952, 4211, 6952, 6952, 6952, 237, 249, 745, 6952, 6952, 6952, 6952, 6952, 236, 246, 247, 248,
-				250, 49, 861, 6952, 69, 69, 202, 599, 6952, 4181, 599, 6952, 724, 47, 6952, 6952, 6952, 6952, 201, 6952,
-				6952, 3713, 200, 203, 204, 205, 206, 207, 6952, 262, 189, 377, 377, 189, 71, 35, 727, 423, 920, 3353,
-				6952, 213, 2125, 6952, 2664, 6952, 6952, 6952, 6952, 6952, 237, 249, 745, 6952, 6952, 394, 3246, 3246,
-				236, 246, 247, 248, 250, 6952, 6952, 6952, 49, 6952, 202, 6952, 6952, 6952, 6952, 3670, 3295, 3327,
-				6952, 724, 1171, 6952, 201, 2172, 2077, 225, 200, 203, 204, 205, 206, 207, 1391, 35, 636, 32, 4256,
-				4853, 27, 30, 31, 629, 626, 373, 28, 3245, 35, 636, 32, 4575, 6952, 27, 30, 31, 629, 626, 26, 28, 1320,
-				296, 25, 23, 50, 1329, 106, 76, 77, 108, 2597, 6952, 6952, 6952, 157, 35, 727, 423, 6952, 6952, 157, 35,
-				727, 423, 6952, 6952, 6952, 6952, 947, 6952, 6952, 6952, 6952, 599, 6952, 6952, 2765, 35, 727, 423,
-				6952, 646, 355, 6952, 6952, 6952, 49, 6952, 349, 627, 6952, 6952, 49, 386, 6952, 262, 189, 724, 47,
-				6952, 6952, 6952, 587, 724, 47, 3353, 6952, 213, 49, 6952, 2664, 6952, 378, 1803, 996, 383, 237, 249,
-				745, 724, 47, 6952, 588, 1457, 236, 246, 247, 248, 250, 1652, 1033, 6952, 6952, 6952, 202, 599, 6952,
-				6952, 157, 35, 727, 423, 6952, 6952, 6952, 2561, 201, 6952, 6952, 219, 200, 203, 204, 205, 206, 207,
-				6952, 262, 189, 71, 35, 727, 423, 6952, 6952, 6952, 6952, 3353, 6952, 213, 49, 6952, 2664, 6952, 6952,
-				6952, 6952, 6952, 237, 249, 745, 724, 47, 6952, 6952, 6952, 236, 246, 247, 248, 250, 49, 6952, 6952,
-				6952, 6952, 202, 6952, 6952, 6952, 6952, 6952, 724, 715, 6952, 6952, 6952, 1699, 201, 6952, 6952, 228,
-				200, 203, 204, 205, 206, 207, 3245, 35, 636, 32, 4575, 6952, 27, 30, 31, 629, 626, 26, 28, 1320, 296,
-				25, 23, 50, 1329, 106, 76, 77, 108, 2616, 3245, 35, 636, 32, 4575, 6952, 27, 30, 31, 629, 626, 26, 28,
-				1320, 296, 25, 23, 50, 1329, 106, 76, 77, 108, 2622, 3556, 35, 552, 6952, 6952, 6952, 6952, 6952, 6952,
-				6952, 6952, 6952, 6952, 271, 296, 6952, 2101, 35, 636, 32, 4429, 6952, 27, 30, 31, 629, 626, 373, 28,
-				6952, 2357, 35, 636, 32, 4256, 2742, 27, 30, 31, 629, 626, 373, 28, 6952, 71, 35, 727, 423, 6952, 6952,
-				6952, 266, 1745, 35, 636, 32, 4256, 2742, 27, 30, 31, 629, 626, 373, 28, 6952, 6952, 6952, 6952, 69,
-				638, 269, 264, 265, 4181, 1378, 49, 6952, 6952, 3862, 4181, 6952, 6952, 646, 355, 6952, 367, 724, 731,
-				6952, 350, 627, 6952, 6952, 6952, 386, 377, 646, 355, 6952, 6952, 69, 4197, 6952, 349, 627, 4181, 6952,
-				6952, 276, 279, 282, 1344, 1452, 380, 1803, 996, 383, 348, 646, 355, 3246, 157, 35, 727, 423, 349, 627,
-				377, 638, 2795, 35, 727, 423, 6952, 2349, 2679, 2687, 2753, 6221, 348, 6952, 6952, 6952, 6952, 366,
-				2179, 342, 598, 820, 6952, 6952, 6952, 3246, 49, 69, 6952, 6952, 6952, 6952, 599, 6952, 49, 6952, 6952,
-				724, 47, 6952, 6952, 596, 598, 820, 4456, 724, 47, 6952, 6952, 394, 2222, 6952, 6952, 6952, 377, 189,
-				6952, 6952, 6952, 6952, 561, 562, 566, 1746, 2031, 3709, 6952, 2798, 3295, 3327, 6952, 3129, 3582, 6952,
-				6952, 6952, 6952, 6952, 6952, 3246, 6952, 3245, 713, 636, 1850, 4575, 2811, 27, 30, 31, 629, 626, 26,
-				28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 84, 2377, 6952, 6952, 6952, 6952, 6952, 3245, 35, 636, 32,
-				4575, 604, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 83, 3245, 35, 636,
-				32, 4575, 6952, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 82, 3245, 35,
-				636, 32, 4575, 6952, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 81, 3245,
-				35, 636, 32, 4575, 6952, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77, 80,
-				3245, 35, 636, 32, 4575, 6952, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76, 77,
-				79, 3245, 35, 636, 32, 4575, 6952, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106, 76,
-				77, 78, 2951, 35, 636, 32, 4575, 6952, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329, 106,
-				76, 77, 104, 3245, 35, 636, 32, 4575, 6952, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50, 1329,
-				106, 76, 77, 110, 3245, 35, 636, 32, 4575, 6952, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23, 50,
-				1329, 106, 76, 77, 109, 3245, 35, 636, 32, 4575, 6952, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25, 23,
-				50, 1329, 106, 76, 77, 107, 3245, 35, 636, 32, 4575, 6952, 27, 30, 31, 629, 626, 26, 28, 1320, 296, 25,
-				23, 50, 1329, 106, 76, 77, 105, 3192, 35, 636, 32, 4575, 6952, 27, 30, 31, 629, 626, 26, 28, 1320, 296,
-				25, 23, 50, 1329, 86, 76, 77, 1243, 35, 636, 32, 4256, 2742, 27, 30, 31, 629, 626, 373, 28, 1578, 71,
-				35, 727, 423, 4181, 6952, 6952, 71, 35, 727, 423, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 1845,
-				71, 35, 727, 423, 4181, 6952, 262, 6952, 6952, 6952, 6952, 6952, 49, 6952, 6952, 69, 6952, 6952, 6952,
-				49, 4181, 6952, 6952, 724, 2218, 6952, 262, 239, 249, 745, 724, 1187, 49, 646, 355, 238, 246, 247, 248,
-				250, 349, 627, 377, 724, 2548, 6952, 6952, 239, 249, 745, 6952, 6952, 6952, 6952, 348, 238, 246, 247,
-				248, 250, 1934, 6952, 6952, 6952, 6952, 4181, 6952, 3246, 240, 242, 244, 3250, 2792, 251, 241, 243, 69,
-				4181, 6952, 6952, 6952, 4181, 6952, 343, 598, 820, 6952, 262, 240, 242, 244, 3250, 2354, 251, 241, 243,
-				6952, 6952, 6952, 4197, 6952, 6952, 6952, 377, 6952, 6952, 6952, 6952, 239, 249, 745, 2668, 6952, 6136,
-				6952, 6952, 238, 246, 247, 248, 250, 2023, 6952, 6952, 6952, 6952, 4181, 6952, 3246, 6952, 6952, 2676,
-				6952, 6136, 1360, 35, 636, 32, 4429, 6952, 27, 30, 31, 629, 626, 373, 28, 6952, 262, 240, 242, 244,
-				3250, 2864, 251, 241, 243, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 69, 239,
-				249, 745, 6952, 4181, 540, 6952, 6952, 238, 246, 247, 248, 250, 6952, 6952, 6952, 6952, 6952, 6952, 638,
-				6952, 6952, 1667, 2737, 6952, 6136, 377, 4181, 6952, 6952, 6952, 6952, 646, 355, 6952, 367, 6952, 6952,
-				6952, 352, 627, 240, 242, 244, 3250, 6952, 580, 241, 243, 262, 1756, 3246, 537, 539, 6952, 4181, 6952,
-				6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 239, 249, 745, 6952, 6952,
-				6952, 544, 262, 238, 246, 247, 248, 250, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 3574, 6952, 6952,
-				6952, 6952, 6952, 6952, 6952, 239, 249, 745, 6952, 6952, 6952, 6952, 6952, 238, 246, 247, 248, 250, 240,
-				242, 244, 3250, 6952, 579, 241, 243, 6952, 2112, 6952, 6952, 69, 2793, 4181, 6952, 6952, 4181, 4181,
-				6952, 6952, 6952, 2201, 6952, 3605, 35, 552, 4181, 240, 242, 244, 3250, 6952, 252, 241, 243, 262, 272,
-				296, 377, 4197, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 262, 6952, 6952, 6952, 6952, 6952, 6952,
-				1378, 239, 249, 745, 3862, 4181, 6952, 6952, 3246, 238, 246, 247, 248, 250, 239, 249, 745, 6952, 6952,
-				266, 6952, 6952, 238, 246, 247, 248, 250, 4197, 6952, 6952, 6952, 6952, 6952, 542, 6952, 6952, 6952,
-				6952, 6952, 270, 264, 265, 240, 242, 244, 3250, 1179, 341, 241, 243, 5917, 4181, 6952, 6952, 638, 240,
-				242, 244, 3250, 540, 534, 241, 243, 3042, 6952, 6952, 6952, 6952, 599, 6952, 366, 69, 6952, 262, 6952,
-				6952, 599, 277, 280, 283, 1344, 1452, 69, 6952, 6952, 6952, 6952, 599, 6952, 6952, 377, 189, 6952, 6952,
-				1404, 442, 1038, 5386, 377, 189, 221, 6952, 394, 6952, 6952, 6952, 537, 539, 221, 377, 189, 6952, 69,
-				6952, 6952, 2204, 6952, 4181, 6952, 221, 2798, 3295, 3327, 2204, 6952, 6952, 6952, 6952, 6952, 6952,
-				6952, 6952, 6952, 6952, 2204, 443, 444, 445, 3250, 377, 6952, 6952, 6952, 6952, 3632, 6952, 6952, 6952,
-				6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 561, 562, 567, 6952, 3248, 6952, 6952, 6952, 3246, 6952,
-				6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 223, 6952, 6952, 6952, 6952,
-				6952, 6952, 6952, 3872, 6952, 6952, 595, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 3904, 6952, 6952,
-				6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952,
-				6952, 6952, 6952, 6952, 6952, 6952, 446, 448, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952,
-				6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 2286,
-				6952, 6952, 4218, 6952, 6952, 6952, 6952, 6952, 6952, 3668, 6952, 0, 864, 1, 0, 39, 6967, 1, 0, 39,
-				6966, 1, 0, 38, 641, 0, 38, 6967, 0, 38, 6966, 0, 489, 919, 0, 475, 1191, 0, 1192, 29, 0, 6967, 48, 0,
-				6966, 48, 0, 6964, 418, 0, 6963, 418, 0, 39, 6967, 0, 39, 6966, 0, 1, 479, 0, 493, 981, 0, 492, 1406, 0,
-				35, 33, 0, 1192, 422, 0, 47, 37, 0, 4001, 126, 0, 1, 1030, 0, 1, 7259, 0, 1, 7258, 0, 1, 7257, 0, 1,
-				7256, 0, 1, 7255, 0, 1, 7254, 0, 1, 7253, 0, 1, 7252, 0, 1, 7251, 0, 1, 7250, 0, 1, 7249, 0, 318, 429,
-				0, 318, 323, 0, 7220, 275, 0, 7219, 275, 0, 7324, 275, 0, 7323, 275, 0, 7247, 275, 0, 7246, 275, 0,
-				7245, 275, 0, 7244, 275, 0, 7243, 275, 0, 7242, 275, 0, 7241, 275, 0, 7240, 275, 0, 7259, 275, 0, 7258,
-				275, 0, 7257, 275, 0, 7256, 275, 0, 7255, 275, 0, 7254, 275, 0, 7253, 275, 0, 7252, 275, 0, 7251, 275,
-				0, 7250, 275, 0, 7249, 275, 0, 39, 6967, 275, 0, 39, 6966, 275, 0, 6990, 275, 0, 43, 6988, 0, 43, 37, 0,
-				1023, 91, 0, 32, 34, 0, 39, 641, 0, 1, 5861, 0, 1, 1266, 0, 1, 5608, 0, 1, 5631, 0, 1, 5654, 0, 1, 5677,
-				0, 1, 5700, 0, 1, 5723, 0, 2680, 1, 0, 5579, 1, 0, 1, 6974, 0, 1, 6973, 0, 1, 6972, 0, 1, 6971, 0, 1,
-				6970, 0, 1, 6969, 0, 1, 6968, 0, 1, 808, 0, 1, 979, 0, 1, 1065, 0, 1, 1108, 0, 1, 1297, 0, 1, 3360, 0,
-				39, 1, 0, 365, 480, 0, 6958, 1, 0, 6957, 1, 0, 271, 714, 0, 32, 423, 0, 29, 422, 0, 4001, 128, 0, 4001,
-				127, 0, 6967, 275, 0, 6966, 275, 0, 536, 3249, 0, 6990, 1, 263, 0, 39, 1, 263, 0, 263, 451, 0, 6967, 37,
-				0, 6966, 37, 0, 6988, 45, 0, 37, 45, 0, 6990, 1, 0, 1, 92, 0, 6962, 440, 0, 6961, 440, 0, 655, 1, 0,
-				641, 1, 0, 263, 450, 0, 3402, 418, 0, 6967, 2, 37, 0, 6966, 2, 37, 0, 6967, 36, 0, 6966, 36, 0, 1, 365,
-				0, 8, 12, 0, 365, 95, 0, 35, 73, 0, 536, 6108, 0, 1, 263, 0, 313, 1581, 0, 263, 254, 0, 1, 1199, 0, 1,
-				2122, 0, 263, 253, 0, 6964, 1, 0, 6960, 1, 0, 1, 263, 3587, 0, 6961, 263, 0, 3588, 263, 0, 3643, 263, 0,
-				10, 12, 0, 8, 10, 12, 0, 3708, 227, 0, 218, 5172, 0 };
-	}
-
-	public final static char baseAction[] = BaseAction.baseAction;
-
-	@Override
-	public final int baseAction(int index) {
-		return baseAction[index];
-	}
-
-	public final static char lhs[] = baseAction;
-
-	@Override
-	public final int lhs(int index) {
-		return lhs[index];
-	}
-
-	public interface TermCheck {
-		public final static byte termCheck[] = { 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
-				19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
-				45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 55, 56, 3, 58, 59, 0, 61, 62, 63, 4, 65, 66, 67, 0, 69, 0, 1, 2,
-				73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
-				15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
-				41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 55, 56, 3, 58, 59, 0, 61, 62, 63, 4, 65, 66, 67,
-				0, 69, 0, 1, 2, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
-				11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
-				37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 55, 56, 0, 58, 59, 0, 61, 62, 63,
-				7, 65, 66, 67, 0, 69, 0, 0, 4, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6,
-				7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
-				34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 55, 56, 0, 58, 59, 0,
-				61, 62, 63, 0, 65, 66, 67, 94, 69, 0, 86, 87, 3, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1,
-				2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
-				30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 70, 55,
-				56, 0, 58, 59, 3, 61, 62, 63, 96, 65, 66, 67, 94, 69, 92, 93, 101, 102, 74, 75, 76, 77, 78, 79, 80, 81,
-				82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
-				24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
-				50, 51, 52, 53, 0, 55, 56, 3, 58, 59, 0, 61, 62, 63, 0, 65, 66, 67, 0, 69, 0, 0, 1, 2, 74, 75, 76, 77,
-				78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
-				20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
-				46, 47, 48, 49, 50, 51, 52, 53, 0, 55, 56, 3, 58, 59, 0, 61, 62, 63, 0, 65, 66, 67, 94, 69, 86, 87, 0,
-				95, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
-				15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
-				41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 55, 56, 0, 58, 59, 6, 61, 62, 63, 7, 65, 66, 67,
-				94, 69, 92, 93, 86, 87, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
-				10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
-				36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 55, 56, 0, 58, 59, 3, 61, 62,
-				63, 0, 65, 66, 67, 0, 69, 0, 1, 2, 5, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5,
-				6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
-				33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 55, 56, 3, 58,
-				59, 0, 61, 62, 63, 96, 65, 66, 67, 0, 69, 0, 3, 0, 95, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
-				0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
-				28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
-				0, 55, 56, 0, 58, 59, 0, 61, 62, 63, 7, 65, 66, 67, 0, 69, 86, 87, 86, 87, 74, 75, 76, 77, 78, 79, 80,
-				81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
-				23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
-				49, 50, 51, 52, 53, 0, 55, 56, 3, 58, 59, 0, 61, 62, 63, 96, 65, 66, 67, 0, 69, 0, 3, 0, 0, 74, 75, 76,
-				77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
-				19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
-				45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 55, 56, 0, 58, 59, 0, 61, 62, 63, 4, 65, 66, 67, 0, 69, 86, 87,
-				86, 87, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 121, 10, 11, 12, 13,
-				14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 68,
-				40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 55, 56, 3, 58, 59, 0, 1, 2, 3, 4, 5, 6, 7, 8,
-				9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 1,
-				2, 0, 4, 39, 3, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 1, 2, 53, 4, 55, 56, 57, 58, 0, 0, 61, 62, 63, 0, 1, 2, 3,
-				4, 0, 6, 71, 8, 73, 5, 0, 7, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 88, 11, 12, 13, 14, 15, 16, 17, 18, 19,
-				20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 71, 54, 114, 115, 116, 0, 1, 2, 3, 4, 5, 6, 7,
-				8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
-				91, 0, 0, 1, 2, 39, 0, 98, 6, 3, 8, 5, 0, 7, 0, 9, 0, 1, 2, 53, 4, 55, 56, 57, 58, 0, 0, 61, 62, 63, 0,
-				1, 2, 3, 4, 10, 6, 71, 8, 73, 34, 35, 36, 37, 120, 39, 0, 0, 0, 1, 2, 0, 4, 5, 88, 7, 9, 9, 57, 0, 54,
-				0, 1, 2, 3, 4, 60, 6, 9, 8, 64, 57, 60, 57, 68, 0, 70, 71, 72, 73, 114, 115, 116, 0, 1, 2, 3, 4, 5, 6,
-				7, 8, 86, 87, 68, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
-				108, 109, 110, 111, 112, 72, 72, 60, 0, 117, 118, 119, 120, 0, 69, 54, 3, 9, 5, 0, 7, 0, 9, 0, 0, 1, 2,
-				3, 4, 60, 6, 97, 8, 0, 1, 2, 3, 4, 5, 70, 7, 0, 1, 2, 23, 24, 5, 34, 35, 36, 37, 0, 39, 34, 35, 22, 23,
-				24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 54, 0, 0, 0, 1, 2, 60, 4, 0, 6, 64, 8, 4, 5, 68, 7, 70, 71, 72,
-				73, 64, 0, 1, 2, 3, 4, 60, 6, 71, 8, 64, 57, 86, 87, 68, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
-				100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 118, 57, 0, 60, 117, 118, 119, 120, 0,
-				1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
-				29, 30, 31, 32, 33, 0, 0, 0, 1, 2, 39, 4, 5, 0, 7, 0, 1, 2, 0, 4, 5, 3, 7, 0, 53, 0, 55, 56, 57, 58, 0,
-				0, 61, 62, 63, 0, 65, 0, 1, 2, 9, 0, 7, 6, 73, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 92, 93,
-				88, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
-				27, 28, 29, 30, 31, 32, 33, 57, 70, 0, 1, 2, 39, 4, 60, 6, 72, 8, 0, 1, 2, 95, 4, 5, 0, 7, 53, 54, 55,
-				56, 57, 58, 113, 9, 61, 62, 63, 0, 65, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 0, 1,
-				2, 3, 4, 5, 6, 7, 8, 0, 88, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
-				21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 72, 0, 0, 1, 2, 39, 4, 5, 0, 7, 0, 70, 4, 0, 86, 87,
-				0, 62, 54, 53, 0, 55, 56, 57, 58, 0, 0, 61, 62, 63, 22, 65, 0, 1, 2, 3, 4, 0, 6, 73, 8, 9, 101, 102,
-				103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 88, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
-				15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 1, 2, 60, 4, 39, 6, 0, 8,
-				97, 0, 1, 2, 86, 87, 72, 6, 96, 0, 53, 0, 55, 56, 57, 58, 0, 95, 61, 62, 63, 0, 65, 0, 114, 115, 116, 0,
-				1, 2, 73, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 0, 88, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
-				11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 1, 2, 60,
-				68, 39, 6, 0, 8, 91, 0, 70, 5, 66, 67, 0, 98, 54, 0, 53, 5, 55, 56, 57, 58, 0, 0, 61, 62, 63, 4, 65, 0,
-				0, 9, 3, 0, 1, 2, 73, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 89, 90, 88, 0, 1, 2, 3, 4, 5, 6,
-				7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
-				0, 0, 0, 60, 68, 39, 5, 64, 0, 73, 0, 68, 4, 66, 67, 71, 0, 99, 100, 53, 0, 55, 56, 57, 58, 99, 100, 61,
-				62, 63, 22, 65, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 1, 2, 3, 4, 5, 6, 7, 8, 53, 88, 0, 1,
-				2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
-				30, 31, 32, 33, 0, 1, 2, 0, 4, 39, 0, 1, 2, 0, 0, 99, 100, 0, 0, 60, 0, 0, 91, 53, 4, 55, 56, 57, 58,
-				98, 9, 61, 62, 63, 0, 65, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 1, 2, 3, 4, 5, 0, 7, 0, 0,
-				88, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
-				27, 28, 29, 30, 31, 32, 33, 72, 60, 0, 1, 2, 39, 86, 87, 0, 1, 2, 9, 4, 0, 6, 60, 8, 0, 54, 53, 57, 55,
-				56, 57, 58, 97, 9, 61, 62, 63, 0, 65, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18,
-				19, 20, 21, 88, 0, 1, 2, 3, 4, 0, 6, 0, 8, 9, 57, 34, 35, 36, 37, 38, 69, 40, 41, 42, 43, 44, 45, 46,
-				47, 48, 49, 50, 51, 52, 0, 0, 74, 0, 0, 73, 59, 0, 0, 39, 0, 64, 9, 66, 67, 0, 1, 2, 3, 4, 5, 6, 7, 8,
-				9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 1, 2, 3, 4, 39, 6, 0, 8, 9, 91, 0, 34, 35, 36, 37,
-				38, 98, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 64, 92, 93, 0, 1, 2, 59, 68, 39, 0, 34, 35,
-				0, 71, 34, 35, 69, 0, 1, 2, 73, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
-				20, 21, 0, 1, 2, 114, 115, 116, 0, 0, 1, 2, 113, 0, 34, 35, 36, 37, 38, 57, 40, 41, 42, 43, 44, 45, 46,
-				47, 48, 49, 50, 51, 52, 57, 0, 64, 0, 1, 2, 59, 0, 1, 2, 3, 4, 5, 6, 7, 8, 69, 10, 11, 12, 13, 14, 15,
-				16, 17, 18, 19, 20, 21, 54, 0, 1, 2, 57, 54, 0, 0, 0, 0, 64, 3, 34, 35, 36, 37, 38, 0, 40, 41, 42, 43,
-				44, 45, 46, 47, 48, 49, 50, 51, 52, 57, 60, 0, 0, 89, 90, 59, 0, 0, 89, 90, 3, 9, 66, 67, 0, 1, 2, 3, 4,
-				5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 60, 60, 64, 0, 1, 2, 0, 1, 2, 0, 1, 2,
-				34, 35, 36, 37, 38, 68, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 0, 0, 3, 69, 71, 59, 0,
-				1, 2, 3, 4, 5, 6, 7, 8, 69, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 57, 0, 0, 57, 3, 3, 57, 36,
-				37, 0, 0, 9, 34, 35, 36, 37, 38, 0, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 60, 0, 0, 0, 0,
-				3, 59, 5, 6, 7, 0, 0, 0, 66, 67, 0, 0, 1, 2, 0, 9, 9, 0, 1, 2, 3, 4, 5, 9, 7, 0, 60, 0, 54, 4, 0, 34,
-				35, 36, 37, 54, 9, 40, 72, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 54, 117, 39, 119, 0, 0, 60,
-				3, 54, 64, 64, 64, 66, 67, 68, 39, 70, 57, 64, 89, 90, 0, 0, 68, 0, 3, 60, 72, 54, 73, 64, 68, 86, 87,
-				68, 89, 90, 91, 92, 93, 94, 95, 96, 89, 90, 99, 100, 101, 0, 103, 104, 105, 106, 107, 108, 109, 110,
-				111, 112, 0, 1, 2, 0, 117, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
-				0, 0, 64, 0, 1, 2, 68, 0, 1, 2, 10, 10, 34, 35, 36, 37, 38, 0, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
-				50, 51, 52, 0, 1, 2, 3, 4, 5, 6, 7, 8, 64, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 53, 53, 0, 0,
-				57, 57, 0, 0, 0, 0, 0, 9, 34, 35, 36, 37, 38, 10, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
-				22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 118, 66, 67, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 10, 11, 12,
-				13, 14, 15, 16, 17, 18, 19, 20, 21, 61, 0, 64, 0, 0, 70, 0, 73, 0, 0, 0, 71, 34, 35, 36, 37, 38, 9, 40,
-				41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 0, 0, 3, 3, 3, 59, 0, 1, 2, 3, 4, 5, 6, 7, 8, 39, 10,
-				11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 54, 0, 59, 54, 54, 64, 0, 0, 0, 68, 64, 0, 34, 35, 36, 37,
-				38, 0, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 0, 0, 3, 89, 90, 0, 60, 0, 1, 2, 3, 4, 5,
-				6, 7, 8, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 54, 54, 0, 0, 54, 3, 0, 0, 0, 0, 64, 4, 34,
-				35, 36, 37, 38, 9, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 75, 0, 0, 0, 89, 90, 59, 0, 1, 2,
-				3, 4, 5, 6, 7, 8, 39, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 54, 54, 0, 54, 0, 0, 0, 0, 0, 97,
-				4, 0, 34, 35, 36, 37, 38, 71, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 0, 0, 0, 0, 0, 59,
-				0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 54, 54, 54, 0, 0, 54, 0,
-				0, 0, 38, 68, 38, 34, 35, 36, 37, 38, 0, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 0, 0, 3,
-				0, 0, 59, 0, 1, 2, 3, 4, 5, 6, 7, 8, 71, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 0, 54, 0, 0,
-				0, 0, 0, 0, 97, 38, 68, 34, 35, 36, 37, 38, 70, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0,
-				1, 2, 3, 4, 5, 6, 7, 8, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 0, 54, 0, 113, 0, 113, 0,
-				0, 0, 0, 0, 34, 35, 36, 37, 38, 70, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 3, 4,
-				5, 6, 7, 8, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 0, 0, 0, 0, 71, 0, 0, 0, 0, 0, 0, 34,
-				35, 36, 37, 38, 70, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0,
-				10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 35, 36, 37, 38,
-				70, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 10, 11, 12, 13,
-				14, 15, 16, 17, 18, 19, 20, 21, 0, 0, 0, 0, 70, 0, 0, 0, 0, 0, 9, 3, 34, 35, 36, 37, 38, 9, 40, 41, 42,
-				43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 0, 4, 0, 0, 0, 0, 0, 10, 11, 12, 13, 14, 15, 16, 17,
-				18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 0, 0, 60, 0, 0, 71, 64, 72, 71, 9,
-				68, 71, 0, 70, 72, 0, 1, 2, 53, 4, 55, 56, 0, 58, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
-				23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 1, 2, 0, 53,
-				70, 55, 56, 72, 58, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
-				31, 32, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 53, 0, 55, 56, 72, 58, 10, 11, 12,
-				13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 0, 0, 0, 1, 2, 3,
-				4, 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 0, 53, 0, 55, 56, 0, 58, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
-				33, 0, 0, 70, 0, 0, 39, 0, 0, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 54, 0, 0, 0, 0, 0, 60, 0,
-				1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
-				32, 33, 0, 0, 0, 0, 0, 39, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, 0, 0, 0, 60,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
-				28, 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static byte termCheck[] = TermCheck.termCheck;
-
-	@Override
-	public final int termCheck(int index) {
-		return termCheck[index];
-	}
-
-	public interface TermAction {
-		public final static char termAction[] = { 0, 6952, 6926, 6902, 6902, 6902, 6902, 6902, 6902, 6902, 6936, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6930, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 6952, 1, 1, 5033, 1, 1, 6952, 1394, 7160, 2980, 668, 3497, 1, 1, 1, 6963, 6952,
-				6966, 6967, 6959, 2489, 3630, 3400, 3298, 3396, 3586, 4658, 3598, 740, 3594, 4188, 3589, 10, 6939, 6939,
-				6939, 6939, 6939, 6939, 6939, 6939, 6939, 6939, 6939, 6939, 6939, 6939, 6939, 6939, 6939, 6939, 6939,
-				6939, 6939, 6939, 6939, 6939, 6939, 6939, 6939, 6939, 6939, 6939, 6939, 6939, 6939, 6939, 6939, 6939,
-				6939, 6939, 6939, 6939, 6939, 6939, 6939, 6939, 6939, 6939, 6939, 6939, 6939, 6939, 6939, 6939, 6939,
-				6952, 6939, 6939, 714, 6939, 6939, 39, 6939, 6939, 6939, 6990, 6939, 6939, 6939, 365, 6939, 6952, 6548,
-				6545, 6939, 6939, 6939, 6939, 6939, 6939, 6939, 6939, 6939, 6939, 6939, 6939, 6939, 8, 6942, 6942, 6942,
-				6942, 6942, 6942, 6942, 6942, 6942, 6942, 6942, 6942, 6942, 6942, 6942, 6942, 6942, 6942, 6942, 6942,
-				6942, 6942, 6942, 6942, 6942, 6942, 6942, 6942, 6942, 6942, 6942, 6942, 6942, 6942, 6942, 6942, 6942,
-				6942, 6942, 6942, 6942, 6942, 6942, 6942, 6942, 6942, 6942, 6942, 6942, 6942, 6942, 6942, 6942, 430,
-				6942, 6942, 131, 6942, 6942, 133, 6942, 6942, 6942, 3721, 6942, 6942, 6942, 6952, 6942, 419, 121, 2078,
-				6942, 6942, 6942, 6942, 6942, 6942, 6942, 6942, 6942, 6942, 6942, 6942, 6942, 6952, 6926, 6902, 6902,
-				6902, 6902, 6902, 6902, 6902, 6933, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 6930, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 137, 1, 1, 139, 1, 1, 153, 1394, 7160,
-				2980, 129, 3497, 1, 1, 3638, 6963, 346, 4340, 4366, 883, 2489, 3630, 3400, 3298, 3396, 3586, 4658, 3598,
-				740, 3594, 4188, 3589, 6952, 6926, 6902, 6902, 6902, 6902, 6902, 6902, 6902, 6933, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6930, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1219, 1, 1, 91, 1, 1, 6712, 1394, 7160, 2980, 3509, 3497, 1, 1, 3673, 6963, 3835, 3803, 3407,
-				4301, 2489, 3630, 3400, 3298, 3396, 3586, 4658, 3598, 740, 3594, 4188, 3589, 6952, 6926, 6902, 6902,
-				6902, 6902, 6902, 6902, 6902, 6933, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 6930, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 271, 1, 1, 6802, 1, 1, 134, 1394,
-				7160, 2980, 135, 3497, 1, 1, 333, 6963, 141, 432, 6966, 6967, 2489, 3630, 3400, 3298, 3396, 3586, 4658,
-				3598, 740, 3594, 4188, 3589, 6952, 6926, 6902, 6902, 6902, 6902, 6902, 6902, 6902, 6933, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6930, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 5993, 1, 1, 154, 1394, 7160, 2980, 149, 3497, 1, 1, 3638, 6963, 4340, 4366, 125,
-				3602, 2489, 3630, 3400, 3298, 3396, 3586, 4658, 3598, 740, 3594, 4188, 3589, 6952, 6926, 6902, 6902,
-				6902, 6902, 6902, 6902, 6902, 6933, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 6930, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6952, 1, 1, 151, 1, 1, 1793, 1394,
-				7160, 2980, 3755, 3497, 1, 1, 3673, 6963, 3907, 3867, 4340, 4366, 2489, 3630, 3400, 3298, 3396, 3586,
-				4658, 3598, 740, 3594, 4188, 3589, 6952, 6926, 6902, 6902, 6902, 6902, 6902, 6902, 6902, 6933, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6930, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 157, 1, 1, 6952, 1, 1, 4481, 1394, 7160, 2980, 155, 3497, 1, 1, 6952, 6963, 48,
-				6548, 6545, 1608, 2489, 3630, 3400, 3298, 3396, 3586, 4658, 3598, 740, 3594, 4188, 3589, 6952, 6926,
-				6902, 6902, 6902, 6902, 6902, 6902, 6902, 6933, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6930, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6952, 1, 1, 4721, 1, 1,
-				6952, 1394, 7160, 2980, 3546, 3497, 1, 1, 6952, 6963, 124, 4727, 123, 673, 2489, 3630, 3400, 3298, 3396,
-				3586, 4658, 3598, 740, 3594, 4188, 3589, 6952, 6926, 6902, 6902, 6902, 6902, 6902, 6902, 6902, 6933, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6930, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 138, 1, 1, 132, 1, 1, 6952, 1394, 7160, 2980, 3721, 3497, 1, 1, 6952, 6963,
-				4340, 4366, 4340, 4366, 2489, 3630, 3400, 3298, 3396, 3586, 4658, 3598, 740, 3594, 4188, 3589, 6952,
-				6926, 6902, 6902, 6902, 6902, 6902, 6902, 6902, 6933, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6930, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6952, 1, 1, 4851, 1,
-				1, 218, 1394, 7160, 2980, 3509, 3497, 1, 1, 6952, 6963, 122, 1581, 145, 6952, 2489, 3630, 3400, 3298,
-				3396, 3586, 4658, 3598, 740, 3594, 4188, 3589, 6952, 3587, 1, 1, 1, 1, 1, 1, 1, 3588, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6961, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 6952, 1, 1, 190, 1, 1, 430, 1394, 7160, 2980, 423, 3497, 1, 1, 6952, 6963, 4340, 4366, 4340,
-				4366, 2489, 3630, 3400, 3298, 3396, 3586, 4658, 3598, 740, 3594, 4188, 3589, 39, 6560, 6557, 4450, 864,
-				5654, 5579, 5677, 2680, 6949, 758, 7251, 7249, 7258, 7257, 7253, 7254, 7252, 7255, 7256, 7259, 7250,
-				7246, 7323, 7324, 7240, 7247, 7243, 7219, 7245, 7244, 7241, 7242, 7220, 5631, 5608, 5723, 5700, 6971,
-				2127, 1266, 979, 1297, 6973, 1065, 5861, 1108, 6974, 6972, 808, 6968, 6969, 6970, 7385, 6952, 1442,
-				7386, 3330, 7387, 1554, 6952, 6830, 6830, 263, 6826, 263, 263, 263, 263, 6834, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 323, 6623, 6623, 6952, 318, 263, 3040, 6952, 6523, 6519,
-				655, 6516, 6887, 641, 6887, 2680, 6952, 6560, 6557, 1, 6990, 1, 1, 6823, 1, 489, 111, 1056, 7399, 953,
-				1, 6523, 6519, 655, 6516, 6952, 641, 263, 2680, 451, 1593, 6952, 1584, 6952, 257, 345, 6523, 6519, 655,
-				6516, 6887, 641, 6887, 2680, 7487, 7251, 7249, 7258, 7257, 7253, 7254, 7252, 7255, 7256, 7259, 7250,
-				7246, 7323, 7324, 7240, 7247, 7243, 7219, 7245, 7244, 7241, 7242, 7220, 3060, 6536, 7422, 7423, 7424,
-				6952, 6830, 6830, 263, 6826, 263, 263, 263, 263, 6867, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 5769, 37, 38, 6533, 6530, 263, 33, 5792, 6527, 6572, 2680, 6572, 354, 6572, 47,
-				6572, 429, 6620, 6620, 1, 318, 1, 1, 6823, 1, 337, 550, 1056, 7399, 953, 365, 6560, 6557, 655, 864,
-				7288, 641, 263, 2680, 450, 6572, 6572, 6572, 6572, 6515, 6572, 6952, 6952, 1, 6790, 6790, 6952, 6849,
-				365, 7487, 365, 6958, 397, 6988, 6952, 6572, 1, 6523, 6519, 4415, 6516, 6572, 641, 6964, 2680, 6572,
-				1334, 1512, 318, 6572, 475, 6572, 6572, 6572, 6572, 7422, 7423, 7424, 401, 6523, 6519, 4415, 6516, 1,
-				641, 1, 2680, 6572, 6572, 1078, 6572, 6572, 6572, 6572, 6572, 6572, 6572, 6572, 6572, 6572, 6572, 6572,
-				6572, 6572, 6572, 6572, 6572, 6572, 6572, 6572, 6572, 6572, 6572, 6572, 6957, 397, 1512, 6952, 6572,
-				6572, 6572, 6572, 6952, 6963, 6539, 6715, 6956, 6715, 118, 6715, 370, 6715, 6952, 1, 6523, 6519, 655,
-				6516, 1512, 641, 397, 2680, 37, 6967, 6967, 6967, 6967, 6967, 1367, 6967, 37, 6578, 6578, 7323, 7324,
-				365, 6715, 6715, 6715, 6715, 6952, 6715, 4633, 1339, 6967, 6967, 6967, 6967, 6967, 6967, 6967, 6967,
-				6967, 6967, 6967, 6967, 6715, 6952, 353, 6952, 6560, 6557, 6715, 864, 39, 6718, 6715, 2680, 6990, 365,
-				6715, 365, 6715, 6715, 6715, 6715, 7442, 1, 6523, 6519, 6861, 6516, 6967, 6864, 3060, 6745, 6967, 6988,
-				6715, 6715, 6967, 6715, 6715, 6715, 6715, 6715, 6715, 6715, 6715, 6715, 6715, 6715, 6715, 6715, 6715,
-				6715, 6715, 6715, 6715, 6715, 6715, 6715, 6715, 6715, 6715, 6955, 2468, 130, 1512, 6715, 6715, 6715,
-				6715, 6952, 6902, 6902, 263, 6902, 263, 263, 263, 263, 6908, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 10736, 1, 1, 1, 1, 1, 1, 6952, 6952, 479, 1, 1, 263, 1, 6563, 136, 6563, 480, 39, 39, 103,
-				6990, 6793, 3476, 6793, 258, 1, 139, 1, 1, 6899, 1, 6952, 1, 2865, 7197, 2980, 152, 3497, 37, 6578,
-				6578, 194, 493, 3755, 6578, 254, 7246, 7323, 7324, 7240, 7247, 7243, 7219, 7245, 7244, 7241, 7242, 7220,
-				3835, 3803, 7487, 6952, 6902, 6902, 263, 6902, 263, 263, 263, 263, 263, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 10736, 1, 1, 1, 1, 1, 1, 1840, 2080, 6952, 6560, 6557, 263, 864, 6566, 641, 194, 2680,
-				92, 1, 1, 3602, 1, 6852, 6952, 6852, 1, 3340, 1, 1, 6899, 1, 3634, 6958, 2865, 7197, 2980, 159, 3497,
-				3407, 4301, 2033, 1986, 1939, 1892, 1845, 1798, 1751, 1704, 1657, 1610, 6952, 6523, 6519, 655, 6516, 1,
-				641, 1, 2680, 29, 7487, 6952, 6902, 6902, 263, 6902, 263, 263, 263, 263, 6917, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 10736, 1, 1, 1, 1, 1, 1, 6957, 392, 95, 39, 39, 263, 6990, 6893, 39, 6893,
-				158, 2834, 6990, 6952, 4340, 4366, 144, 7549, 6542, 1, 156, 1, 1, 6899, 1, 6952, 6952, 2865, 7197, 2980,
-				2018, 3497, 1, 6523, 6519, 4415, 6516, 6952, 641, 253, 2680, 6796, 3446, 4464, 2768, 2702, 2636, 2570,
-				2504, 2438, 2372, 2306, 2240, 2174, 7487, 6952, 6902, 6902, 263, 6902, 263, 263, 263, 263, 6908, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 10736, 1, 1, 1, 1, 1, 1, 6952, 6560, 6557, 1512, 864, 263,
-				641, 114, 2680, 7343, 6952, 6966, 6967, 4340, 4366, 6799, 1793, 3546, 259, 1, 6952, 1, 1, 6899, 1, 396,
-				673, 2865, 7197, 2980, 328, 3497, 492, 7422, 7423, 7424, 6952, 6966, 6967, 254, 7246, 7323, 7324, 7240,
-				7247, 7243, 7219, 7245, 7244, 7241, 7242, 7220, 146, 6952, 7487, 6952, 6902, 6902, 263, 6902, 263, 263,
-				263, 263, 6908, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 10736, 1, 1, 1, 1, 1, 1, 6952, 6966,
-				6967, 6569, 3473, 263, 641, 115, 2680, 5769, 6952, 3102, 5346, 5746, 721, 117, 5792, 4109, 260, 1, 5346,
-				1, 1, 6899, 1, 6952, 6952, 2865, 7197, 2980, 1264, 3497, 1, 6952, 6960, 4433, 6952, 6548, 6545, 254,
-				7246, 7323, 7324, 7240, 7247, 7243, 7219, 7245, 7244, 7241, 7242, 7220, 4082, 4055, 7487, 6952, 6902,
-				6902, 263, 6902, 263, 263, 263, 263, 263, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 10736, 1,
-				1, 1, 1, 1, 1, 6952, 116, 6952, 1512, 1144, 263, 5346, 575, 39, 6959, 261, 575, 6990, 5746, 721, 2900,
-				113, 5322, 5131, 1, 6952, 1, 1, 6899, 1, 5322, 5131, 2865, 7197, 2980, 3001, 3497, 7246, 7323, 7324,
-				7240, 7247, 7243, 7219, 7245, 7244, 7241, 7242, 7220, 379, 6560, 6557, 4415, 864, 365, 641, 365, 2680,
-				3227, 7487, 6952, 6902, 6902, 263, 6902, 263, 263, 263, 263, 263, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 10736, 1, 1, 1, 1, 1, 1, 6952, 6560, 6557, 6952, 6990, 263, 333, 6966, 6967, 142, 570, 5322,
-				5131, 6952, 6952, 1512, 6952, 1, 5769, 1, 2495, 1, 1, 6899, 1, 5792, 397, 2865, 7197, 2980, 382, 3497,
-				7246, 7323, 7324, 7240, 7247, 7243, 7219, 7245, 7244, 7241, 7242, 7220, 379, 39, 39, 4433, 6990, 365,
-				6952, 365, 6952, 6952, 7487, 6952, 6902, 6902, 263, 6902, 263, 263, 263, 263, 263, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 10736, 1, 1, 1, 1, 1, 1, 397, 1512, 6952, 6966, 6967, 263, 4340, 4366,
-				6952, 6560, 6557, 6964, 864, 1, 6718, 1512, 2680, 6952, 1192, 1, 3342, 1, 1, 6899, 1, 397, 6960, 2865,
-				7197, 2980, 6952, 3497, 1, 6523, 6519, 3360, 864, 5654, 5579, 5677, 2680, 112, 6584, 6611, 6617, 6590,
-				6593, 6605, 6602, 6608, 6599, 6596, 6587, 6614, 7487, 1, 6523, 6519, 6861, 6516, 6952, 6864, 150, 6745,
-				6962, 2534, 5631, 5608, 5723, 5700, 6971, 6963, 1266, 979, 1297, 6973, 1065, 5861, 1108, 6974, 6972,
-				808, 6968, 6969, 6970, 474, 6952, 2999, 440, 6952, 6959, 1554, 320, 409, 6961, 6952, 551, 6855, 39, 39,
-				39, 6560, 6557, 4450, 864, 5654, 5579, 5677, 2680, 6870, 1030, 7251, 7249, 7258, 7257, 7253, 7254, 7252,
-				7255, 7256, 7259, 7250, 1, 6523, 6519, 655, 6516, 6858, 641, 120, 2680, 345, 5769, 119, 5631, 5608,
-				5723, 5700, 6971, 5792, 1266, 979, 1297, 6973, 1065, 5861, 1108, 6974, 6972, 808, 6968, 6969, 6970,
-				7428, 3907, 3867, 37, 6578, 6578, 1554, 7271, 345, 6952, 4633, 1339, 6952, 2947, 4633, 1339, 6554, 43,
-				6709, 6709, 6959, 39, 6560, 6557, 4450, 864, 5654, 5579, 5677, 2680, 6551, 1030, 7251, 7249, 7258, 7257,
-				7253, 7254, 7252, 7255, 7256, 7259, 7250, 327, 6966, 6967, 7422, 7423, 7424, 126, 6952, 10765, 10765,
-				3634, 148, 5631, 5608, 5723, 5700, 6971, 6988, 1266, 979, 1297, 6973, 1065, 5861, 1108, 6974, 6972, 808,
-				6968, 6969, 6970, 6706, 100, 7499, 6952, 6840, 6837, 1554, 174, 6560, 6557, 4450, 864, 5654, 5579, 5677,
-				2680, 6554, 1030, 7251, 7249, 7258, 7257, 7253, 7254, 7252, 7255, 7256, 7259, 7250, 4028, 36, 6884,
-				6881, 6988, 4109, 6952, 6952, 381, 99, 6581, 2065, 5631, 5608, 5723, 5700, 6971, 326, 1266, 979, 1297,
-				6973, 1065, 5861, 1108, 6974, 6972, 808, 6968, 6969, 6970, 6988, 4946, 6952, 1, 3974, 3947, 1554, 6952,
-				313, 4082, 4055, 6905, 6920, 39, 39, 39, 6560, 6557, 4450, 864, 5654, 5579, 5677, 2680, 6551, 1030,
-				7251, 7249, 7258, 7257, 7253, 7254, 7252, 7255, 7256, 7259, 7250, 1512, 3158, 3003, 45, 6846, 6846, 37,
-				6578, 6578, 6952, 6877, 6873, 5631, 5608, 5723, 5700, 6971, 10349, 1266, 979, 1297, 6973, 1065, 5861,
-				1108, 6974, 6972, 808, 6968, 6969, 6970, 75, 6952, 6952, 955, 6963, 7388, 1554, 1, 6523, 6519, 3360,
-				864, 5654, 5579, 5677, 2680, 6554, 6584, 6611, 6617, 6590, 6593, 6605, 6602, 6608, 6599, 6596, 6587,
-				6614, 6843, 6952, 1, 1601, 3503, 4433, 6988, 7014, 7015, 6952, 422, 6796, 5631, 5608, 5723, 5700, 6971,
-				147, 1266, 979, 1297, 6973, 1065, 5861, 1108, 6974, 6972, 808, 6968, 6969, 6970, 4191, 6952, 1, 6952,
-				6952, 1174, 1554, 7450, 7456, 7454, 128, 6952, 8, 39, 39, 6952, 6952, 10222, 9027, 6952, 6958, 6890, 37,
-				6966, 6966, 6966, 6966, 6966, 6962, 6966, 431, 1512, 6952, 6575, 422, 6952, 7448, 7449, 7479, 7480,
-				4109, 6962, 7457, 6799, 6966, 6966, 6966, 6966, 6966, 6966, 6966, 6966, 6966, 6966, 6966, 6966, 7459,
-				2336, 6961, 2402, 6952, 6952, 792, 4235, 4028, 3043, 7460, 3089, 669, 700, 7481, 6961, 7458, 6988, 6811,
-				4082, 4055, 6952, 6952, 6365, 6952, 4544, 6966, 6957, 1192, 6890, 6966, 794, 7470, 7469, 6966, 7475,
-				7476, 7482, 7473, 7474, 7453, 7455, 7477, 3974, 3947, 7451, 7452, 7478, 6952, 7463, 7464, 7465, 7461,
-				7462, 7471, 7472, 7467, 7466, 7468, 6952, 10650, 10591, 6952, 7483, 39, 6560, 6557, 4450, 864, 5654,
-				5579, 5677, 2680, 6956, 1030, 7251, 7249, 7258, 7257, 7253, 7254, 7252, 7255, 7256, 7259, 7250, 1, 1,
-				6219, 6952, 10650, 10591, 4466, 326, 1825, 1825, 6911, 6911, 5631, 5608, 5723, 5700, 6971, 6952, 1266,
-				979, 1297, 6973, 1065, 5861, 1108, 6974, 6972, 808, 6968, 6969, 6970, 1, 6523, 6519, 6787, 6516, 6733,
-				6748, 6736, 6745, 3097, 6584, 6611, 6617, 6590, 6593, 6605, 6602, 6608, 6599, 6596, 6587, 6614, 6914,
-				6914, 1, 404, 3576, 3576, 6952, 337, 463, 571, 6952, 6923, 6730, 6727, 6742, 6739, 6760, 7288, 6724,
-				6775, 6784, 6754, 6778, 6721, 6781, 6751, 6757, 6772, 6769, 6766, 6763, 7246, 7323, 7324, 7240, 7247,
-				7243, 7219, 7245, 7244, 7241, 7242, 7220, 6955, 6790, 6790, 39, 6560, 6557, 4450, 864, 5654, 5579, 5677,
-				2680, 6952, 1030, 7251, 7249, 7258, 7257, 7253, 7254, 7252, 7255, 7256, 7259, 7250, 2682, 6952, 6038,
-				593, 6952, 1415, 127, 6959, 1, 6952, 6952, 3391, 5631, 5608, 5723, 5700, 6971, 6962, 1266, 979, 1297,
-				6973, 1065, 5861, 1108, 6974, 6972, 808, 6968, 6969, 6970, 6952, 6952, 6952, 4187, 6324, 4250, 1554, 39,
-				6560, 6557, 4450, 864, 5654, 5579, 5677, 2680, 6961, 1030, 7251, 7249, 7258, 7257, 7253, 7254, 7252,
-				7255, 7256, 7259, 7250, 4028, 6952, 3585, 5032, 5439, 3703, 6952, 6952, 6952, 4466, 6814, 6952, 5631,
-				5608, 5723, 5700, 6971, 227, 1266, 979, 1297, 6973, 1065, 5861, 1108, 6974, 6972, 808, 6968, 6969, 6970,
-				6952, 6952, 1, 6335, 3974, 3947, 6952, 2267, 39, 6560, 6557, 3360, 864, 5654, 5579, 5677, 2680, 6952,
-				1030, 7251, 7249, 7258, 7257, 7253, 7254, 7252, 7255, 7256, 7259, 7250, 4109, 5471, 6952, 6952, 5932,
-				3487, 29, 48, 1, 6952, 4136, 6967, 5631, 5608, 5723, 5700, 6971, 224, 1266, 979, 1297, 6973, 1065, 5861,
-				1108, 6974, 6972, 808, 6968, 6969, 6970, 6946, 6952, 6952, 6952, 4082, 4055, 1554, 39, 6560, 6557, 3360,
-				864, 5654, 5579, 5677, 2680, 224, 1030, 7251, 7249, 7258, 7257, 7253, 7254, 7252, 7255, 7256, 7259,
-				7250, 1192, 6967, 461, 3340, 6952, 6952, 48, 430, 6952, 7345, 6966, 73, 5631, 5608, 5723, 5700, 6971,
-				459, 1266, 979, 1297, 6973, 1065, 5861, 1108, 6974, 6972, 808, 6968, 6969, 6970, 6952, 1, 6952, 6952,
-				6952, 483, 1554, 39, 6560, 6557, 4450, 864, 5654, 5579, 5677, 2680, 6952, 1030, 7251, 7249, 7258, 7257,
-				7253, 7254, 7252, 7255, 7256, 7259, 7250, 6966, 1192, 2993, 484, 582, 6896, 581, 402, 6952, 1830, 2626,
-				3719, 5631, 5608, 5723, 5700, 6971, 6952, 1266, 979, 1297, 6973, 1065, 5861, 1108, 6974, 6972, 808,
-				6968, 6969, 6970, 6952, 1, 6952, 4975, 6952, 6952, 1554, 39, 6560, 6557, 5525, 864, 5654, 5579, 5677,
-				2680, 647, 1030, 7251, 7249, 7258, 7257, 7253, 7254, 7252, 7255, 7256, 7259, 7250, 455, 2, 3288, 6952,
-				6952, 6952, 6952, 6952, 6952, 4180, 3496, 2428, 5631, 5608, 5723, 5700, 6971, 1462, 1266, 979, 1297,
-				6973, 1065, 5861, 1108, 6974, 6972, 808, 6968, 6969, 6970, 39, 6560, 6557, 4450, 864, 5654, 5579, 5677,
-				2680, 6952, 1030, 7251, 7249, 7258, 7257, 7253, 7254, 7252, 7255, 7256, 7259, 7250, 35, 6952, 37, 6952,
-				1, 6952, 3634, 6952, 6952, 6952, 6952, 6952, 5631, 5608, 5723, 5700, 6971, 3256, 1266, 979, 1297, 6973,
-				1065, 5861, 1108, 6974, 6972, 808, 6968, 6969, 6970, 39, 6560, 6557, 3360, 864, 5654, 5579, 5677, 2680,
-				344, 1030, 7251, 7249, 7258, 7257, 7253, 7254, 7252, 7255, 7256, 7259, 7250, 543, 6952, 6952, 6952,
-				6952, 3200, 6952, 6952, 6952, 6952, 6952, 6952, 5631, 5608, 5723, 5700, 6971, 3337, 1266, 979, 1297,
-				6973, 1065, 5861, 1108, 6974, 6972, 808, 6968, 6969, 6970, 39, 6560, 6557, 3360, 864, 5654, 5579, 5677,
-				2680, 541, 1030, 7251, 7249, 7258, 7257, 7253, 7254, 7252, 7255, 7256, 7259, 7250, 6952, 6952, 5883,
-				6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 5631, 5608, 5723, 5700, 6971, 6085, 1266, 979,
-				1297, 6973, 1065, 5861, 1108, 6974, 6972, 808, 6968, 6969, 6970, 39, 6560, 6557, 4450, 864, 5654, 5579,
-				5677, 2680, 6952, 1030, 7251, 7249, 7258, 7257, 7253, 7254, 7252, 7255, 7256, 7259, 7250, 6952, 1, 6952,
-				6952, 6209, 6952, 6952, 6952, 1, 6952, 6958, 4433, 5631, 5608, 5723, 5700, 6971, 375, 1266, 979, 1297,
-				6973, 1065, 5861, 1108, 6974, 6972, 808, 6968, 6969, 6970, 6952, 6560, 6557, 6952, 6990, 6952, 6952,
-				6952, 6952, 6952, 701, 7251, 7249, 7258, 7257, 7253, 7254, 7252, 7255, 7256, 7259, 7250, 7246, 7323,
-				7324, 7240, 7247, 7243, 7219, 7245, 7244, 7241, 7242, 7220, 6952, 1, 6952, 1512, 6952, 6952, 4720, 375,
-				6957, 4782, 589, 375, 4844, 6952, 3337, 375, 275, 6699, 6695, 7385, 6703, 1442, 7386, 6952, 7387, 6952,
-				701, 6686, 6692, 6665, 6668, 6680, 6677, 6683, 6674, 6671, 6662, 6689, 6641, 6635, 6632, 6659, 6638,
-				6650, 6629, 6644, 6647, 6656, 6653, 6626, 1, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 196, 6952,
-				6952, 6952, 6952, 6952, 6952, 6966, 6967, 6952, 7385, 3013, 1442, 7386, 589, 7387, 876, 7251, 7249,
-				7258, 7257, 7253, 7254, 7252, 7255, 7256, 7259, 7250, 7246, 7323, 7324, 7240, 7247, 7243, 7219, 7245,
-				7244, 7241, 7242, 7220, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952,
-				6952, 6952, 275, 6820, 6817, 545, 7385, 6952, 1442, 7386, 196, 7387, 876, 6686, 6692, 6665, 6668, 6680,
-				6677, 6683, 6674, 6671, 6662, 6689, 6641, 6635, 6632, 6659, 6638, 6650, 6629, 6644, 6647, 6656, 6653,
-				6626, 6952, 6952, 6952, 29, 422, 422, 6808, 422, 6808, 422, 6808, 422, 6808, 6952, 6952, 6952, 6952,
-				6952, 6952, 7385, 6952, 1442, 7386, 572, 7387, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422,
-				422, 6952, 6952, 1109, 6952, 6952, 6808, 6952, 6952, 7246, 7323, 7324, 7240, 7247, 7243, 7219, 7245,
-				7244, 7241, 7242, 7220, 6542, 6952, 6952, 6952, 6952, 6952, 6808, 32, 423, 423, 6805, 423, 6805, 423,
-				6805, 423, 6805, 6952, 6808, 6952, 6952, 6952, 6952, 6952, 6952, 573, 6952, 6952, 6952, 423, 423, 423,
-				423, 423, 423, 423, 423, 423, 423, 423, 423, 6952, 6952, 6952, 6952, 6952, 6805, 7246, 7323, 7324, 7240,
-				7247, 7243, 7219, 7245, 7244, 7241, 7242, 7220, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6805,
-				6952, 569, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6952, 6805, 7251, 7249, 7258, 7257, 7253,
-				7254, 7252, 7255, 7256, 7259, 7250, 7246, 7323, 7324, 7240, 7247, 7243, 7219, 7245, 7244, 7241, 7242,
-				7220 };
-	}
-
-	public final static char termAction[] = TermAction.termAction;
-
-	@Override
-	public final int termAction(int index) {
-		return termAction[index];
-	}
-
-	public interface Asb {
-		public final static char asb[] = { 0, 436, 1, 10, 716, 536, 177, 558, 558, 650, 542, 558, 542, 3, 3, 503, 140,
-				536, 542, 348, 234, 68, 68, 555, 95, 296, 234, 558, 558, 856, 558, 68, 542, 720, 939, 788, 256, 234,
-				503, 647, 806, 1046, 856, 856, 856, 856, 718, 1046, 487, 179, 504, 504, 504, 504, 504, 504, 504, 504,
-				504, 560, 566, 571, 568, 575, 573, 580, 578, 582, 581, 583, 299, 584, 542, 349, 553, 551, 68, 68, 716,
-				928, 939, 806, 939, 242, 939, 250, 939, 923, 718, 542, 296, 296, 68, 17, 540, 296, 599, 446, 647, 140,
-				487, 95, 95, 95, 95, 542, 24, 234, 234, 225, 487, 1006, 94, 788, 487, 560, 787, 787, 24, 503, 504, 504,
-				504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 503, 503, 503, 503,
-				503, 503, 503, 503, 503, 503, 503, 503, 504, 17, 349, 551, 1004, 96, 712, 487, 981, 979, 986, 984, 988,
-				987, 989, 990, 1003, 1004, 555, 351, 244, 237, 245, 718, 542, 542, 790, 1004, 720, 542, 503, 140, 234,
-				234, 1004, 1004, 1004, 1004, 790, 234, 504, 716, 884, 874, 873, 608, 946, 946, 718, 179, 296, 94, 503,
-				234, 539, 541, 539, 234, 296, 568, 568, 566, 566, 566, 573, 573, 573, 573, 571, 571, 578, 575, 575, 581,
-				580, 582, 137, 583, 551, 551, 689, 700, 700, 700, 700, 684, 718, 737, 504, 504, 504, 504, 504, 504, 504,
-				504, 504, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 504, 487, 351, 542, 805, 545, 742,
-				790, 806, 453, 542, 790, 542, 17, 646, 1046, 1046, 1046, 1046, 542, 542, 225, 234, 886, 888, 542, 788,
-				504, 95, 564, 190, 234, 542, 541, 788, 503, 551, 550, 542, 504, 979, 979, 979, 984, 981, 981, 987, 986,
-				988, 137, 989, 647, 542, 351, 137, 245, 856, 792, 1087, 127, 351, 805, 743, 805, 805, 790, 453, 453,
-				542, 542, 644, 139, 503, 503, 503, 503, 1046, 1046, 234, 878, 866, 877, 888, 790, 540, 234, 564, 716,
-				720, 542, 540, 551, 790, 732, 503, 788, 806, 806, 1004, 856, 539, 804, 129, 1046, 805, 805, 805, 805,
-				542, 453, 646, 796, 646, 644, 644, 234, 234, 234, 234, 24, 24, 722, 503, 875, 875, 882, 716, 817, 234,
-				542, 564, 565, 564, 503, 190, 444, 560, 720, 542, 540, 748, 806, 401, 367, 540, 805, 805, 536, 604, 504,
-				137, 12, 850, 888, 805, 805, 809, 646, 647, 504, 542, 234, 234, 722, 503, 503, 886, 866, 722, 619, 564,
-				24, 504, 296, 444, 605, 748, 748, 66, 1048, 340, 1046, 245, 1086, 367, 540, 805, 806, 718, 129, 504,
-				504, 888, 858, 395, 810, 542, 647, 724, 722, 565, 234, 296, 647, 748, 748, 400, 340, 66, 862, 718, 1003,
-				856, 184, 184, 605, 806, 467, 858, 542, 1046, 234, 809, 542, 718, 718, 542, 724, 724, 647, 401, 748,
-				605, 604, 234, 718, 542, 367, 401, 367, 1002, 1002, 794, 468, 718, 542, 24, 801, 542, 542, 542, 1046,
-				724, 748, 536, 605, 542, 542, 367, 95, 95, 794, 467, 137, 504, 137, 605, 466, 1046, 1046, 1046, 468,
-				1046, 542, 307, 605, 605, 542, 806, 234, 801, 542, 542, 889, 647, 542, 605, 1003, 459, 1046, 459, 468,
-				137, 468, 487, 487, 485, 466, 487, 605, 605, 15, 465, 803, 233, 605, 125, 817, 468, 234, 536, 234, 485,
-				340, 1046, 234, 794, 803, 95, 184, 234, 234, 632, 468, 15, 468, 605, 340, 503, 468, 465, 1002, 806, 806,
-				1038, 503, 466, 24, 605, 234, 539, 468, 234, 605, 468 };
-	}
-
-	public final static char asb[] = Asb.asb;
-
-	@Override
-	public final int asb(int index) {
-		return asb[index];
-	}
-
-	public interface Asr {
-		public final static byte asr[] = { 0, 120, 0, 74, 64, 71, 97, 72, 69, 60, 120, 3, 9, 68, 39, 70, 0, 8, 5, 6, 1,
-				2, 57, 0, 9, 72, 11, 12, 41, 66, 13, 42, 43, 14, 15, 16, 67, 8, 44, 17, 18, 45, 46, 47, 59, 48, 49, 10,
-				19, 20, 21, 50, 51, 52, 1, 2, 3, 36, 37, 7, 5, 34, 35, 6, 40, 4, 38, 0, 41, 66, 42, 43, 67, 8, 44, 45,
-				46, 47, 59, 48, 49, 50, 51, 52, 38, 36, 37, 7, 5, 34, 35, 6, 40, 64, 3, 4, 10, 1, 2, 55, 56, 58, 12, 21,
-				11, 17, 15, 16, 18, 19, 14, 13, 20, 25, 31, 32, 27, 30, 29, 22, 26, 23, 24, 28, 33, 53, 0, 39, 9, 3, 8,
-				6, 7, 5, 4, 1, 2, 71, 0, 73, 59, 36, 37, 7, 5, 34, 35, 40, 45, 3, 4, 50, 51, 52, 38, 48, 43, 47, 12, 21,
-				11, 17, 15, 16, 18, 19, 14, 13, 20, 10, 42, 46, 44, 41, 49, 69, 9, 8, 6, 1, 2, 67, 66, 0, 64, 70, 68, 1,
-				2, 0, 98, 91, 34, 35, 99, 100, 86, 87, 54, 89, 90, 92, 93, 94, 95, 96, 101, 102, 71, 97, 70, 103, 104,
-				105, 106, 107, 108, 109, 110, 111, 112, 118, 73, 39, 120, 64, 1, 2, 7, 5, 4, 3, 60, 68, 72, 9, 0, 57, 1,
-				2, 4, 0, 57, 4, 71, 1, 2, 69, 9, 0, 4, 9, 69, 1, 2, 0, 66, 67, 3, 10, 42, 46, 44, 41, 49, 12, 21, 11,
-				17, 15, 16, 18, 19, 14, 13, 20, 50, 51, 52, 38, 48, 43, 47, 6, 8, 4, 36, 37, 7, 5, 34, 35, 40, 45, 1, 2,
-				118, 9, 0, 64, 71, 97, 68, 118, 72, 73, 120, 11, 12, 41, 66, 13, 42, 43, 14, 15, 16, 67, 44, 17, 18, 45,
-				46, 47, 59, 48, 49, 10, 19, 20, 21, 50, 51, 52, 38, 36, 37, 34, 35, 40, 9, 39, 6, 8, 1, 2, 4, 3, 7, 5,
-				0, 88, 61, 8, 114, 115, 116, 63, 9, 3, 7, 5, 6, 71, 73, 39, 62, 25, 11, 12, 53, 23, 13, 55, 26, 27, 14,
-				28, 29, 15, 16, 30, 31, 17, 18, 32, 56, 57, 33, 10, 58, 19, 20, 24, 21, 1, 2, 4, 22, 0, 69, 53, 23, 13,
-				55, 26, 14, 28, 29, 15, 16, 30, 31, 17, 18, 32, 56, 33, 10, 58, 19, 22, 20, 24, 21, 12, 11, 25, 9, 39,
-				63, 61, 65, 88, 27, 57, 7, 5, 8, 3, 62, 1, 2, 4, 6, 0, 9, 71, 118, 72, 39, 68, 0, 1, 2, 9, 68, 73, 0,
-				88, 114, 115, 116, 57, 71, 113, 121, 73, 62, 74, 63, 61, 65, 76, 78, 84, 82, 75, 80, 81, 83, 85, 69, 77,
-				79, 39, 9, 25, 53, 23, 55, 26, 27, 28, 29, 30, 31, 32, 56, 33, 58, 22, 24, 59, 66, 67, 10, 42, 46, 44,
-				41, 49, 12, 21, 11, 17, 15, 16, 18, 19, 14, 13, 20, 50, 51, 52, 38, 48, 43, 47, 36, 37, 34, 35, 40, 45,
-				7, 5, 3, 4, 8, 6, 1, 2, 0, 4, 9, 71, 69, 0, 59, 23, 24, 8, 6, 1, 2, 4, 74, 69, 119, 117, 36, 37, 60, 3,
-				98, 91, 5, 99, 100, 34, 35, 87, 86, 54, 89, 90, 92, 93, 7, 94, 95, 96, 64, 97, 72, 120, 70, 103, 104,
-				105, 106, 107, 108, 109, 110, 111, 112, 71, 118, 73, 101, 102, 68, 39, 9, 0, 11, 12, 13, 14, 15, 16, 17,
-				18, 19, 20, 21, 25, 23, 26, 27, 28, 29, 30, 31, 32, 33, 22, 24, 39, 9, 72, 8, 1, 2, 60, 3, 7, 5, 6, 4,
-				0, 39, 120, 68, 9, 73, 0, 67, 66, 34, 35, 99, 100, 94, 95, 6, 40, 70, 54, 106, 107, 103, 104, 105, 111,
-				110, 112, 87, 86, 108, 109, 92, 93, 89, 90, 96, 101, 36, 37, 91, 117, 10, 55, 53, 56, 58, 12, 21, 11,
-				17, 15, 16, 18, 19, 14, 13, 20, 25, 31, 32, 27, 30, 29, 22, 26, 23, 24, 28, 33, 64, 68, 3, 60, 7, 5, 1,
-				2, 4, 0, 23, 24, 59, 9, 64, 97, 70, 68, 72, 0, 72, 9, 87, 86, 0, 54, 64, 89, 90, 0, 4, 9, 71, 69, 54, 0,
-				65, 25, 11, 12, 53, 23, 13, 55, 26, 88, 27, 14, 28, 29, 15, 16, 30, 61, 31, 17, 18, 32, 56, 33, 10, 58,
-				19, 63, 22, 20, 24, 21, 9, 3, 7, 5, 73, 39, 62, 4, 8, 6, 1, 2, 57, 0, 113, 0, 9, 68, 73, 70, 0, 23, 24,
-				59, 74, 71, 69, 9, 0, 22, 1, 2, 4, 114, 115, 116, 0, 25, 11, 12, 53, 23, 13, 55, 26, 27, 14, 28, 29, 15,
-				16, 30, 31, 17, 18, 32, 56, 33, 10, 58, 19, 22, 20, 24, 21, 1, 2, 4, 97, 0, 71, 9, 60, 70, 68, 39, 54,
-				0, 9, 69, 68, 0, 9, 69, 70, 0, 7, 5, 8, 6, 4, 1, 2, 3, 60, 64, 70, 68, 9, 72, 97, 0, 6, 8, 3, 60, 5, 7,
-				97, 25, 11, 12, 53, 23, 13, 55, 26, 27, 14, 28, 29, 15, 16, 30, 31, 17, 18, 32, 56, 33, 10, 58, 19, 22,
-				20, 24, 21, 1, 2, 4, 72, 9, 0, 10, 55, 53, 56, 58, 12, 21, 11, 17, 15, 16, 18, 19, 14, 13, 20, 74, 71,
-				97, 118, 73, 69, 120, 8, 31, 32, 33, 22, 24, 1, 2, 30, 29, 28, 27, 26, 6, 4, 23, 25, 119, 98, 117, 91,
-				36, 37, 34, 35, 99, 100, 9, 60, 3, 5, 72, 39, 87, 86, 54, 89, 90, 92, 93, 7, 94, 95, 96, 101, 102, 103,
-				104, 105, 106, 107, 108, 109, 110, 111, 112, 70, 68, 64, 0, 66, 67, 36, 37, 34, 35, 40, 45, 50, 51, 52,
-				38, 48, 43, 47, 12, 21, 11, 17, 15, 16, 18, 19, 14, 13, 20, 10, 42, 46, 44, 41, 49, 7, 5, 60, 8, 6, 4,
-				1, 2, 3, 0, 53, 23, 13, 55, 26, 14, 28, 29, 15, 16, 30, 31, 17, 18, 32, 56, 33, 58, 19, 22, 20, 24, 21,
-				12, 11, 25, 9, 3, 7, 5, 39, 63, 65, 88, 27, 62, 54, 57, 61, 8, 1, 2, 6, 4, 10, 0 };
-	}
-
-	public final static byte asr[] = Asr.asr;
-
-	@Override
-	public final int asr(int index) {
-		return asr[index];
-	}
-
-	public interface Nasb {
-		public final static char nasb[] = { 0, 200, 12, 42, 193, 200, 260, 12, 12, 142, 274, 12, 185, 13, 13, 44, 68,
-				256, 185, 12, 226, 205, 205, 51, 5, 104, 226, 12, 12, 12, 12, 205, 262, 12, 12, 32, 99, 226, 70, 205,
-				233, 12, 12, 12, 12, 12, 11, 12, 161, 185, 70, 70, 270, 70, 70, 70, 70, 70, 70, 12, 12, 12, 12, 12, 12,
-				12, 12, 12, 12, 12, 70, 12, 185, 195, 195, 195, 34, 34, 193, 241, 242, 233, 242, 87, 242, 92, 242, 235,
-				10, 185, 104, 104, 34, 19, 260, 104, 12, 12, 140, 205, 161, 303, 303, 303, 303, 185, 25, 226, 226, 208,
-				1, 70, 28, 32, 161, 12, 124, 124, 25, 162, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
-				70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 162, 70, 79, 12, 205, 12, 247, 208, 156, 12,
-				12, 12, 12, 12, 12, 12, 12, 12, 12, 214, 205, 152, 11, 108, 11, 185, 262, 12, 12, 12, 262, 70, 68, 226,
-				226, 12, 12, 12, 12, 76, 226, 70, 193, 207, 13, 13, 12, 12, 12, 10, 185, 104, 303, 44, 226, 259, 185,
-				259, 226, 104, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 195, 97, 241,
-				242, 242, 242, 242, 287, 10, 12, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
-				70, 70, 162, 70, 34, 295, 153, 95, 95, 12, 244, 233, 205, 244, 31, 153, 19, 140, 12, 12, 12, 12, 153,
-				262, 212, 226, 264, 205, 185, 32, 70, 303, 205, 84, 226, 185, 149, 32, 70, 205, 97, 185, 70, 12, 12, 12,
-				12, 12, 12, 12, 12, 12, 12, 12, 140, 185, 175, 12, 64, 12, 12, 47, 56, 295, 95, 95, 205, 205, 31, 205,
-				275, 262, 153, 133, 67, 162, 162, 162, 162, 12, 12, 226, 12, 198, 12, 267, 30, 153, 226, 49, 214, 12,
-				274, 153, 97, 31, 226, 70, 32, 233, 147, 12, 12, 11, 205, 188, 12, 205, 205, 90, 90, 153, 275, 111, 12,
-				12, 133, 12, 226, 226, 226, 226, 25, 25, 205, 70, 12, 12, 197, 193, 267, 226, 153, 205, 117, 12, 162,
-				214, 150, 12, 12, 153, 260, 205, 233, 282, 205, 244, 205, 122, 256, 175, 70, 12, 106, 12, 205, 90, 90,
-				165, 111, 140, 70, 275, 226, 226, 97, 70, 70, 264, 254, 205, 12, 49, 25, 70, 104, 150, 175, 277, 205,
-				12, 282, 57, 12, 146, 47, 267, 260, 122, 119, 15, 200, 70, 70, 267, 12, 11, 113, 244, 140, 205, 97, 117,
-				226, 104, 140, 282, 277, 232, 188, 12, 12, 11, 12, 12, 82, 82, 175, 119, 139, 12, 244, 12, 226, 135,
-				244, 11, 11, 262, 23, 205, 140, 282, 205, 175, 12, 226, 11, 244, 267, 282, 205, 12, 12, 205, 218, 15,
-				262, 25, 205, 262, 244, 244, 12, 23, 277, 200, 175, 244, 65, 267, 303, 303, 54, 228, 12, 70, 12, 175,
-				12, 12, 12, 12, 229, 12, 275, 173, 175, 175, 275, 130, 226, 97, 262, 262, 224, 140, 65, 175, 12, 115,
-				12, 12, 229, 12, 229, 169, 169, 180, 12, 169, 175, 175, 12, 205, 205, 226, 175, 12, 303, 229, 226, 200,
-				226, 302, 205, 12, 226, 54, 23, 303, 82, 226, 226, 205, 229, 12, 229, 175, 200, 162, 229, 115, 12, 130,
-				130, 198, 70, 12, 177, 175, 226, 259, 229, 226, 175, 229 };
-	}
-
-	public final static char nasb[] = Nasb.nasb;
-
-	@Override
-	public final int nasb(int index) {
-		return nasb[index];
-	}
-
-	public interface Nasr {
-		public final static char nasr[] = { 0, 3, 13, 10, 9, 139, 138, 112, 137, 136, 2, 4, 0, 79, 0, 186, 4, 185, 0,
-				76, 155, 154, 0, 143, 0, 5, 104, 0, 192, 0, 153, 2, 76, 0, 4, 10, 9, 2, 13, 129, 5, 0, 201, 0, 5, 28, 0,
-				169, 0, 160, 0, 5, 212, 0, 175, 0, 39, 4, 2, 9, 10, 5, 171, 0, 142, 116, 0, 80, 147, 42, 4, 10, 9, 2,
-				13, 0, 153, 76, 0, 76, 54, 0, 123, 0, 5, 194, 0, 165, 205, 0, 125, 0, 165, 200, 0, 124, 0, 51, 0, 13, 2,
-				9, 10, 4, 93, 0, 208, 0, 42, 1, 0, 166, 0, 210, 0, 131, 0, 158, 0, 42, 174, 0, 173, 0, 4, 2, 9, 10, 156,
-				0, 42, 66, 0, 176, 0, 4, 114, 182, 0, 5, 80, 0, 5, 52, 213, 0, 1, 142, 0, 2, 133, 0, 44, 2, 3, 0, 13, 2,
-				9, 10, 4, 52, 5, 37, 0, 4, 114, 209, 0, 5, 52, 115, 0, 5, 37, 39, 0, 5, 195, 0, 37, 5, 27, 198, 0, 44,
-				2, 0, 5, 10, 9, 2, 75, 4, 97, 54, 0, 30, 100, 99, 75, 4, 2, 9, 10, 5, 0, 30, 99, 100, 5, 0, 100, 99, 54,
-				4, 70, 0, 5, 50, 42, 37, 196, 0, 52, 5, 30, 0, 80, 37, 50, 81, 5, 42, 0, 2, 4, 112, 109, 110, 111, 13,
-				71, 0, 2, 69, 0, 139, 214, 138, 112, 137, 136, 0, 100, 99, 54, 75, 70, 4, 10, 9, 2, 0, 54, 4, 97, 27, 5,
-				0, 4, 10, 9, 13, 3, 1, 0, 134, 5, 50, 92, 0, 5, 50, 92, 94, 0, 112, 71, 13, 109, 110, 111, 190, 0, 5,
-				50, 92, 114, 48, 4, 0, 197, 5, 52, 0 };
-	}
-
-	public final static char nasr[] = Nasr.nasr;
-
-	@Override
-	public final int nasr(int index) {
-		return nasr[index];
-	}
-
-	public interface TerminalIndex {
-		public final static char terminalIndex[] = { 0, 113, 114, 2, 31, 10, 13, 9, 79, 115, 100, 48, 52, 60, 68, 74,
-				75, 86, 87, 102, 105, 107, 104, 54, 106, 47, 64, 66, 70, 73, 76, 83, 89, 98, 11, 12, 7, 8, 112, 120, 14,
-				55, 61, 67, 84, 88, 90, 94, 97, 99, 109, 110, 111, 53, 19, 63, 91, 93, 101, 95, 1, 77, 122, 103, 20, 46,
-				58, 78, 44, 121, 33, 30, 118, 119, 96, 108, 49, 50, 56, 57, 59, 69, 71, 72, 85, 92, 17, 18, 65, 21, 22,
-				6, 23, 24, 25, 26, 27, 32, 4, 15, 16, 28, 29, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 51, 80, 81, 82, 5,
-				117, 3, 123, 62, 116 };
-	}
-
-	public final static char terminalIndex[] = TerminalIndex.terminalIndex;
-
-	@Override
-	public final int terminalIndex(int index) {
-		return terminalIndex[index];
-	}
-
-	public interface NonterminalIndex {
-		public final static char nonterminalIndex[] = { 0, 130, 135, 136, 0, 0, 134, 0, 0, 237, 243, 133, 0, 143, 0,
-				132, 0, 0, 142, 148, 0, 0, 149, 158, 159, 160, 161, 188, 151, 0, 126, 162, 141, 163, 164, 165, 166, 131,
-				167, 128, 168, 0, 129, 138, 137, 170, 169, 171, 185, 0, 0, 195, 152, 172, 0, 173, 0, 0, 0, 0, 0, 174,
-				175, 176, 0, 177, 180, 212, 0, 0, 155, 194, 0, 0, 209, 213, 0, 145, 0, 214, 127, 179, 0, 0, 0, 0, 0, 0,
-				183, 0, 0, 0, 0, 125, 186, 0, 0, 210, 216, 217, 218, 0, 220, 157, 0, 146, 0, 0, 215, 197, 198, 199, 201,
-				227, 228, 182, 204, 206, 0, 207, 0, 0, 219, 0, 0, 0, 0, 248, 0, 251, 0, 252, 0, 147, 187, 189, 190, 191,
-				192, 196, 200, 203, 0, 0, 222, 225, 0, 0, 0, 246, 0, 247, 0, 0, 139, 140, 144, 0, 0, 154, 156, 0, 178,
-				0, 193, 0, 0, 0, 202, 0, 205, 211, 0, 0, 223, 224, 0, 0, 229, 232, 0, 234, 236, 0, 240, 241, 242, 245,
-				0, 0, 249, 124, 0, 150, 153, 0, 181, 0, 184, 0, 0, 208, 221, 226, 0, 0, 230, 231, 233, 235, 0, 238, 239,
-				244, 250, 253, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
-
-	@Override
-	public final int nonterminalIndex(int index) {
-		return nonterminalIndex[index];
-	}
-
-	public interface ScopePrefix {
-		public final static char scopePrefix[] = { 172, 324, 608, 627, 317, 332, 559, 575, 586, 597, 372, 280, 294, 311,
-				344, 55, 305, 392, 430, 180, 616, 502, 20, 33, 64, 84, 93, 98, 103, 143, 208, 339, 350, 20, 467, 157,
-				286, 300, 530, 40, 157, 382, 20, 635, 40, 230, 259, 1, 14, 27, 74, 89, 119, 27, 361, 365, 448, 495, 524,
-				551, 555, 645, 649, 653, 110, 7, 110, 410, 426, 439, 460, 479, 543, 129, 129, 245, 439, 566, 582, 593,
-				604, 220, 513, 69, 69, 169, 235, 238, 69, 254, 275, 238, 238, 69, 369, 492, 499, 169, 69, 668, 123, 355,
-				414, 454, 486, 472, 69, 355, 401, 190, 117, 452, 657, 664, 657, 664, 78, 420, 150, 117, 117, 264 };
-	}
-
-	public final static char scopePrefix[] = ScopePrefix.scopePrefix;
-
-	@Override
-	public final int scopePrefix(int index) {
-		return scopePrefix[index];
-	}
-
-	public interface ScopeSuffix {
-		public final static char scopeSuffix[] = { 18, 148, 5, 5, 148, 148, 5, 5, 5, 5, 379, 148, 108, 148, 25, 61, 291,
-				398, 436, 186, 80, 508, 25, 38, 38, 38, 72, 72, 108, 148, 213, 31, 31, 25, 5, 162, 291, 114, 535, 51,
-				165, 387, 622, 640, 45, 224, 224, 5, 18, 31, 5, 72, 108, 31, 108, 108, 148, 257, 5, 5, 5, 5, 5, 257,
-				666, 11, 114, 379, 379, 379, 464, 483, 535, 133, 138, 249, 443, 570, 570, 570, 570, 224, 517, 72, 72, 5,
-				5, 241, 243, 257, 5, 278, 278, 243, 108, 5, 257, 5, 528, 5, 126, 358, 417, 457, 489, 475, 547, 538, 404,
-				193, 108, 108, 659, 659, 661, 661, 80, 422, 152, 215, 200, 266 };
-	}
-
-	public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
-
-	@Override
-	public final int scopeSuffix(int index) {
-		return scopeSuffix[index];
-	}
-
-	public interface ScopeLhs {
-		public final static char scopeLhs[] = { 48, 111, 18, 18, 91, 111, 18, 18, 18, 18, 84, 96, 49, 91, 110, 89, 59,
-				84, 83, 48, 18, 20, 190, 3, 7, 8, 182, 182, 178, 109, 48, 110, 110, 140, 45, 146, 60, 49, 156, 150, 146,
-				84, 18, 18, 150, 101, 172, 152, 87, 190, 185, 182, 178, 140, 199, 57, 66, 160, 19, 18, 18, 18, 18, 18,
-				12, 131, 178, 84, 83, 83, 64, 41, 156, 113, 113, 70, 83, 18, 18, 18, 18, 101, 20, 186, 182, 201, 99,
-				108, 68, 79, 67, 171, 88, 140, 85, 161, 160, 192, 156, 17, 178, 140, 115, 82, 22, 45, 156, 156, 84, 48,
-				178, 78, 154, 44, 154, 44, 185, 115, 109, 48, 48, 172 };
-	}
-
-	public final static char scopeLhs[] = ScopeLhs.scopeLhs;
-
-	@Override
-	public final int scopeLhs(int index) {
-		return scopeLhs[index];
-	}
-
-	public interface ScopeLa {
-		public final static byte scopeLa[] = { 113, 73, 72, 72, 73, 73, 72, 72, 72, 72, 72, 73, 39, 73, 1, 64, 1, 72,
-				121, 69, 3, 72, 1, 64, 64, 64, 1, 1, 39, 73, 69, 1, 1, 1, 72, 73, 1, 1, 4, 64, 68, 39, 1, 1, 64, 72, 72,
-				72, 113, 1, 72, 1, 39, 1, 39, 39, 73, 118, 72, 72, 72, 72, 72, 118, 1, 72, 1, 72, 72, 72, 71, 71, 4, 1,
-				1, 5, 72, 64, 64, 64, 64, 72, 3, 1, 1, 72, 72, 3, 1, 118, 72, 1, 1, 1, 39, 72, 118, 72, 6, 72, 1, 57,
-				70, 71, 72, 64, 1, 57, 75, 74, 39, 39, 4, 4, 4, 4, 3, 1, 69, 1, 1, 3 };
-	}
-
-	public final static byte scopeLa[] = ScopeLa.scopeLa;
-
-	@Override
-	public final int scopeLa(int index) {
-		return scopeLa[index];
-	}
-
-	public interface ScopeStateSet {
-		public final static char scopeStateSet[] = { 67, 136, 286, 286, 89, 136, 286, 286, 286, 286, 77, 91, 67, 89,
-				136, 89, 69, 77, 77, 67, 286, 286, 100, 215, 261, 261, 52, 52, 64, 136, 67, 136, 136, 138, 111, 373, 69,
-				67, 103, 48, 373, 77, 286, 286, 48, 146, 61, 24, 77, 100, 28, 52, 64, 138, 22, 69, 31, 58, 286, 286,
-				286, 286, 286, 286, 265, 6, 64, 77, 77, 77, 119, 346, 103, 136, 136, 180, 77, 286, 286, 286, 286, 146,
-				286, 28, 52, 196, 146, 148, 198, 142, 198, 61, 203, 138, 77, 55, 58, 106, 103, 286, 64, 138, 1, 77, 287,
-				111, 103, 103, 77, 67, 64, 11, 108, 155, 108, 155, 28, 1, 136, 67, 67, 61 };
-	}
-
-	public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet;
-
-	@Override
-	public final int scopeStateSet(int index) {
-		return scopeStateSet[index];
-	}
-
-	public interface ScopeRhs {
-		public final static char scopeRhs[] = { 0, 338, 3, 59, 0, 126, 0, 337, 3, 113, 0, 126, 180, 0, 127, 188, 74, 0,
-				224, 0, 198, 166, 126, 10, 0, 136, 0, 166, 126, 10, 0, 135, 0, 270, 127, 54, 124, 0, 20, 0, 309, 127,
-				54, 57, 0, 20, 53, 0, 33, 132, 0, 20, 53, 0, 0, 309, 127, 54, 57, 214, 0, 20, 186, 0, 270, 127, 54, 132,
-				0, 191, 126, 0, 141, 0, 226, 3, 308, 0, 308, 0, 2, 0, 126, 0, 270, 127, 54, 131, 0, 191, 126, 236, 0,
-				191, 126, 22, 236, 0, 191, 126, 332, 22, 0, 128, 198, 166, 126, 0, 128, 0, 198, 166, 126, 0, 134, 128,
-				0, 172, 0, 328, 127, 172, 0, 127, 172, 0, 230, 128, 0, 166, 327, 234, 0, 136, 0, 0, 0, 0, 135, 0, 0, 0,
-				0, 326, 127, 164, 235, 0, 127, 0, 235, 0, 129, 0, 0, 127, 0, 325, 127, 164, 269, 0, 127, 0, 0, 44, 127,
-				0, 0, 150, 3, 0, 127, 296, 295, 127, 74, 293, 172, 0, 295, 127, 74, 293, 172, 0, 223, 0, 224, 0, 293,
-				172, 0, 96, 0, 0, 223, 0, 224, 0, 211, 96, 0, 0, 223, 0, 224, 0, 295, 127, 293, 172, 0, 223, 0, 211, 0,
-				0, 223, 0, 242, 127, 3, 0, 126, 0, 0, 0, 0, 0, 242, 127, 3, 221, 0, 230, 3, 0, 219, 127, 0, 216, 0, 146,
-				0, 176, 166, 126, 0, 10, 0, 0, 0, 0, 225, 60, 0, 125, 0, 242, 127, 3, 189, 0, 189, 0, 2, 0, 0, 126, 0,
-				0, 0, 0, 0, 210, 3, 0, 209, 0, 254, 127, 164, 38, 27, 0, 191, 126, 61, 63, 0, 204, 128, 0, 128, 191,
-				126, 291, 63, 0, 191, 126, 291, 63, 0, 191, 126, 70, 123, 61, 0, 254, 127, 164, 264, 61, 0, 254, 127,
-				164, 264, 238, 61, 0, 288, 289, 127, 164, 123, 322, 55, 0, 288, 289, 127, 164, 322, 55, 0, 191, 126,
-				287, 55, 0, 198, 191, 126, 287, 234, 0, 191, 126, 287, 234, 0, 166, 126, 0, 93, 136, 0, 285, 127, 149,
-				0, 285, 127, 172, 0, 159, 84, 0, 317, 161, 319, 320, 3, 81, 0, 126, 179, 0, 319, 320, 3, 81, 0, 128, 0,
-				126, 179, 0, 159, 3, 75, 203, 80, 0, 126, 128, 0, 203, 80, 0, 108, 2, 131, 126, 128, 0, 237, 3, 75, 0,
-				210, 174, 0, 33, 169, 0, 174, 0, 183, 33, 169, 0, 237, 3, 85, 0, 203, 152, 237, 3, 83, 0, 62, 179, 0,
-				237, 3, 83, 0, 126, 179, 62, 179, 0, 318, 127, 164, 0, 159, 0, 225, 77, 0, 30, 179, 0, 159, 102, 185, 0,
-				30, 177, 0, 148, 64, 167, 3, 0, 167, 3, 0, 20, 161, 126, 0, 159, 102, 162, 0, 30, 169, 0, 199, 3, 0,
-				126, 149, 0, 226, 3, 0, 225, 60, 282, 0, 159, 60, 0, 199, 3, 314, 67, 126, 0, 126, 0, 0, 0, 0, 314, 67,
-				126, 0, 2, 145, 126, 0, 0, 0, 0, 199, 3, 45, 0, 147, 0, 125, 57, 166, 126, 0, 31, 147, 0, 93, 136, 31,
-				147, 0, 227, 191, 126, 0, 146, 31, 147, 0, 199, 3, 49, 0, 159, 3, 49, 0, 159, 3, 64, 199, 54, 41, 0,
-				199, 54, 41, 0, 20, 2, 131, 126, 0, 159, 3, 64, 199, 54, 44, 0, 199, 54, 44, 0, 159, 3, 64, 199, 54, 46,
-				0, 199, 54, 46, 0, 159, 3, 64, 199, 54, 42, 0, 199, 54, 42, 0, 226, 3, 125, 198, 166, 126, 10, 0, 125,
-				198, 166, 126, 10, 0, 136, 2, 0, 126, 0, 226, 3, 124, 275, 166, 126, 10, 0, 275, 166, 126, 10, 0, 135,
-				2, 0, 126, 0, 226, 3, 135, 0, 226, 3, 140, 0, 159, 60, 140, 0, 277, 0, 31, 0, 31, 139, 0, 165, 0, 134,
-				0, 159, 3, 0 };
-	}
-
-	public final static char scopeRhs[] = ScopeRhs.scopeRhs;
-
-	@Override
-	public final int scopeRhs(int index) {
-		return scopeRhs[index];
-	}
-
-	public interface ScopeState {
-		public final static char scopeState[] = { 0, 6316, 6335, 6324, 4187, 0, 3056, 1897, 2038, 1018, 0, 5234, 5172,
-				5030, 4968, 4906, 4844, 4782, 4720, 4658, 4545, 4480, 4250, 0, 1544, 1399, 678, 0, 2428, 647, 0, 5234,
-				5172, 2761, 2629, 5030, 4968, 4906, 4844, 4782, 4720, 2489, 4658, 4545, 4480, 2299, 2291, 0, 6210, 4466,
-				5989, 0, 2626, 3391, 0, 2641, 2112, 0, 2063, 969, 0, 745, 1038, 0, 4218, 6299, 0, 4218, 6299, 5977,
-				6219, 6206, 5916, 6136, 6108, 5896, 6038, 5234, 5172, 5030, 4968, 4906, 4844, 4782, 4720, 4658, 4545,
-				4480, 0, 4218, 6299, 5977, 6219, 6206, 5916, 6136, 6108, 5896, 6038, 0, 6221, 5370, 0, 2402, 2336, 0,
-				721, 0, 2078, 668, 0, 3446, 3546, 3673, 673, 3907, 3867, 3755, 3360, 2947, 1078, 2834, 2768, 2702, 2636,
-				2570, 2504, 2438, 2372, 2306, 2240, 2174, 925, 834, 764, 0, 6221, 5370, 599, 4680, 4181, 0, 1803, 996,
-				646, 627, 5386, 4456, 5118, 4415, 4197, 4433, 4491, 3246, 0, 5500, 5492, 5242, 5180, 5164, 5158, 4997,
-				4935, 5917, 5904, 5897, 5414, 4873, 4815, 4811, 4666, 5263, 2942, 5062, 4659, 4429, 4575, 3862, 4256, 0,
-				4163, 5386, 6253, 6051, 2818, 4853, 4400, 2816, 5445, 4456, 4730, 914, 4729, 1060, 2742, 0, 820, 0, 745,
-				5386, 6051, 1038, 1060, 5118, 5400, 2204, 5883, 4163, 794, 4415, 4400, 4197, 655, 5422, 0, 1746, 1699,
-				5500, 5492, 5242, 1652, 1457, 5180, 920, 5164, 5158, 4997, 4935, 1981, 1934, 1887, 1840, 1793, 1601,
-				1504, 5917, 5904, 2873, 5897, 5414, 1409, 1334, 4873, 4815, 956, 4811, 4666, 3154, 3252, 5263, 2942,
-				5062, 4659, 4680, 4429, 4575, 1214, 4181, 3862, 4256, 641, 2600, 2274, 900, 864, 1109, 5118, 5400, 2204,
-				5883, 4163, 794, 745, 5386, 6051, 4415, 4400, 4197, 1038, 2534, 2468, 2402, 2336, 1060, 655, 5422, 5861,
-				2947, 4136, 5838, 1078, 3446, 2834, 2768, 2702, 2636, 2570, 2504, 2438, 2372, 2306, 2240, 2174, 3546,
-				3673, 673, 3907, 3867, 3755, 4109, 4082, 4055, 5815, 3360, 3407, 3509, 3638, 3602, 3835, 3803, 3721,
-				4366, 4340, 4028, 4001, 3974, 3947, 5346, 5322, 5131, 4633, 1339, 5792, 5769, 5746, 925, 834, 764, 5723,
-				5700, 5677, 5654, 5631, 5608, 5579, 1266, 3013, 3298, 3256, 3200, 3158, 1462, 1415, 3102, 3060, 1367,
-				2900, 2127, 2080, 2033, 1986, 1939, 1892, 1845, 1798, 1751, 1704, 1657, 1610, 599, 1554, 1292, 1512,
-				1144, 991, 1219, 0 };
-	}
-
-	public final static char scopeState[] = ScopeState.scopeState;
-
-	@Override
-	public final int scopeState(int index) {
-		return scopeState[index];
-	}
-
-	public interface InSymb {
-		public final static char inSymb[] = { 0, 0, 313, 241, 127, 3, 4, 132, 131, 8, 6, 124, 126, 197, 189, 3, 70, 219,
-				126, 176, 210, 54, 54, 174, 127, 60, 3, 66, 67, 124, 123, 54, 191, 165, 124, 166, 60, 150, 127, 164,
-				269, 49, 41, 44, 46, 42, 10, 135, 3, 126, 45, 40, 6, 35, 34, 5, 7, 37, 36, 140, 145, 147, 146, 153, 148,
-				156, 155, 158, 157, 160, 59, 162, 126, 166, 7, 5, 127, 127, 127, 257, 258, 235, 259, 234, 260, 55, 286,
-				261, 10, 126, 60, 60, 127, 4, 198, 225, 162, 284, 127, 164, 3, 54, 54, 54, 54, 126, 3, 199, 159, 174,
-				127, 66, 67, 166, 3, 125, 117, 119, 3, 60, 91, 98, 35, 34, 100, 99, 5, 90, 89, 64, 54, 86, 87, 7, 93,
-				92, 95, 94, 96, 112, 111, 110, 109, 108, 107, 106, 105, 104, 103, 70, 102, 101, 166, 176, 176, 270, 127,
-				251, 3, 167, 148, 175, 169, 183, 177, 184, 185, 273, 270, 219, 164, 327, 287, 322, 287, 126, 191, 166,
-				270, 277, 198, 68, 127, 199, 159, 199, 199, 199, 199, 166, 226, 152, 127, 3, 222, 221, 135, 125, 124,
-				10, 126, 60, 314, 3, 199, 57, 126, 57, 226, 159, 146, 146, 145, 145, 145, 148, 148, 148, 148, 147, 147,
-				155, 153, 153, 157, 156, 158, 159, 160, 5, 127, 257, 258, 259, 260, 336, 261, 10, 167, 90, 89, 54, 7,
-				93, 92, 95, 94, 96, 112, 111, 110, 109, 108, 107, 106, 105, 104, 103, 70, 102, 101, 68, 127, 166, 245,
-				125, 124, 126, 123, 164, 126, 166, 57, 4, 325, 64, 64, 64, 64, 198, 275, 219, 230, 127, 3, 126, 166,
-				215, 3, 315, 174, 150, 126, 191, 166, 71, 176, 173, 126, 64, 148, 148, 148, 169, 167, 167, 177, 175,
-				183, 159, 184, 326, 126, 170, 236, 61, 57, 214, 63, 172, 329, 125, 124, 246, 246, 191, 164, 127, 191,
-				198, 202, 68, 3, 3, 3, 3, 125, 124, 242, 243, 149, 244, 127, 166, 57, 199, 127, 127, 227, 6, 57, 127,
-				166, 148, 71, 166, 264, 238, 54, 57, 291, 293, 127, 189, 246, 246, 127, 127, 198, 127, 289, 123, 290,
-				202, 9, 159, 159, 159, 159, 3, 3, 152, 70, 230, 210, 3, 127, 68, 242, 198, 152, 279, 282, 60, 192, 4,
-				123, 125, 198, 198, 164, 264, 64, 54, 126, 74, 127, 219, 328, 71, 303, 210, 124, 3, 127, 127, 71, 289,
-				288, 70, 68, 226, 226, 127, 70, 70, 127, 219, 152, 125, 127, 3, 60, 159, 4, 128, 127, 164, 27, 57, 172,
-				65, 61, 63, 127, 191, 127, 295, 71, 68, 71, 70, 127, 331, 236, 22, 126, 288, 228, 127, 279, 226, 225,
-				254, 256, 127, 38, 127, 3, 123, 61, 309, 57, 10, 53, 128, 295, 164, 307, 126, 308, 242, 68, 126, 22,
-				332, 191, 127, 228, 254, 127, 164, 285, 292, 38, 70, 126, 68, 64, 54, 245, 245, 296, 127, 68, 191, 3,
-				152, 191, 126, 126, 59, 127, 127, 68, 152, 126, 191, 127, 70, 70, 127, 318, 79, 77, 1, 159, 9, 85, 83,
-				81, 80, 75, 82, 84, 78, 76, 61, 74, 226, 127, 191, 191, 3, 254, 191, 238, 309, 297, 113, 9, 71, 225, 71,
-				3, 3, 3, 203, 3, 123, 159, 123, 188, 228, 338, 238, 64, 3, 71, 237, 174, 237, 320, 149, 75, 237, 127,
-				127, 68, 53, 97, 337, 174, 152, 210, 152, 319, 127, 3, 152, 297, 245, 152, 152, 127, 70, 203, 161, 285,
-				159, 70, 121, 317, 152, 152 };
-	}
-
-	public final static char inSymb[] = InSymb.inSymb;
-
-	@Override
-	public final int inSymb(int index) {
-		return inSymb[index];
-	}
-
-	public interface Name {
-		public final static String name[] = { "", "[", "(", ".", ".*", "->", "->*", "++", "--", "&", "*", "+", "-", "~",
-				"!", "/", "%", ">>", "<<", "<", ">", "<=", ">=", "==", "!=", "^", "|", "&&", "||", "?", ":", "::",
-				"...", "=", "*=", "/=", "%=", "+=", "-=", ">>=", "<<=", "&=", "^=", "|=", ",", "$empty", "asm", "auto",
-				"bool", "break", "case", "catch", "char", "class", "const", "const_cast", "continue", "default",
-				"delete", "do", "double", "dynamic_cast", "else", "enum", "explicit", "export", "extern", "false",
-				"float", "for", "friend", "goto", "if", "inline", "int", "long", "mutable", "namespace", "new",
-				"operator", "private", "protected", "public", "register", "reinterpret_cast", "return", "short",
-				"signed", "sizeof", "static", "static_cast", "struct", "switch", "template", "this", "throw", "try",
-				"true", "typedef", "typeid", "typename", "union", "unsigned", "using", "virtual", "void", "volatile",
-				"wchar_t", "while", "integer", "floating", "charconst", "stringlit", "identifier", "Completion",
-				"EndOfCompletion", "Invalid", "RightBracket", "RightParen", "RightBrace", "SemiColon", "LeftBrace",
-				"ERROR_TOKEN", "EOF_TOKEN", "no_function_declarator_start", "]", ")", "}", ";", "{", "identifier_token",
-				"expression", "id_expression", "qualified_or_unqualified_name", "unqualified_id_name",
-				"identifier_name", "template_id_name", "nested_name_specifier", "class_or_namespace_name",
-				"nested_name_specifier_with_tem" + "plate", "class_or_namespace_name_with_t" + "emplate", "class_name",
-				"postfix_expression", "simple_type_specifier", "pseudo_destructor_name", "type_id", "type_name",
-				"destructor_type_name", "unary_expression", "cast_expression", "new_type_id", "expression_list",
-				"type_specifier_seq", "new_declarator", "new_pointer_operators", "ptr_operator",
-				"new_array_expressions", "constant_expression", "pm_expression", "multiplicative_expression",
-				"additive_expression", "shift_expression", "relational_expression", "equality_expression",
-				"and_expression", "exclusive_or_expression", "inclusive_or_expression", "logical_and_expression",
-				"logical_or_expression", "assignment_expression", "relational_expression_inTempla" + "te",
-				"equality_expression_inTemplate", "and_expression_inTemplate",
-				"exclusive_or_expression_inTemp" + "late", "inclusive_or_expression_inTemp" + "late",
-				"logical_and_expression_inTempl" + "ate", "logical_or_expression_inTempla" + "te",
-				"assignment_expression_inTempla" + "te", "expression_list_actual", "statement", "compound_statement",
-				"statement_seq", "condition", "declarator", "for_init_statement", "function_definition", "declaration",
-				"declaration_seq", "declaration_specifiers", "simple_declaration_specifiers",
-				"class_declaration_specifiers", "elaborated_declaration_specifi" + "ers", "enum_declaration_specifiers",
-				"type_name_declaration_specifie" + "rs", "no_type_declaration_specifier", "cv_qualifier",
-				"no_type_declaration_specifiers", "class_specifier", "elaborated_type_specifier", "enum_specifier",
-				"type_name_specifier", "class_keyword", "enumerator_list", "enumerator_definition", "namespace_name",
-				"init_declarator_list", "init_declarator_complete", "complete_declarator", "initializer",
-				"direct_declarator", "ptr_operator_seq", "function_declarator", "basic_direct_declarator",
-				"array_direct_declarator", "array_modifier", "abstract_declarator", "direct_abstract_declarator",
-				"basic_direct_abstract_declarat" + "or", "array_direct_abstract_declarat" + "or",
-				"parameter_declaration_list", "parameter_declaration", "parameter_init_declarator",
-				"parameter_initializer", "function_body", "handler_seq", "initializer_clause", "initializer_seq",
-				"class_head", "access_specifier_keyword", "member_declaration", "member_declarator_list",
-				"member_declaration_list", "member_declarator_complete", "constant_initializer", "bit_field_declarator",
-				"base_specifier_list", "base_specifier", "conversion_function_id", "conversion_type_id",
-				"conversion_declarator", "mem_initializer_list", "mem_initializer", "mem_initializer_name",
-				"operator_id_name", "overloadable_operator", "template_parameter_list", "template_parameter",
-				"template_argument_list", "template_argument", "type_name_specifier_inTemplate",
-				"type_name_declaration_specifie" + "rs_inTemplate", "type_specifier_seq_inTemplate", "handler",
-				"exception_declaration", "type_id_list" };
-	}
-
-	public final static String name[] = Name.name;
-
-	@Override
-	public final String name(int index) {
-		return name[index];
-	}
-
-	public final static int ERROR_SYMBOL = 62, SCOPE_UBOUND = 121, SCOPE_SIZE = 122, MAX_NAME_LENGTH = 43;
-
-	@Override
-	public final int getErrorSymbol() {
-		return ERROR_SYMBOL;
-	}
-
-	@Override
-	public final int getScopeUbound() {
-		return SCOPE_UBOUND;
-	}
-
-	@Override
-	public final int getScopeSize() {
-		return SCOPE_SIZE;
-	}
-
-	@Override
-	public final int getMaxNameLength() {
-		return MAX_NAME_LENGTH;
-	}
-
-	public final static int NUM_STATES = 604, NT_OFFSET = 122, LA_STATE_OFFSET = 7550, MAX_LA = 2147483647,
-			NUM_RULES = 598, NUM_NONTERMINALS = 225, NUM_SYMBOLS = 347, SEGMENT_SIZE = 8192, START_STATE = 5422,
-			IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 120, EOLT_SYMBOL = 120, ACCEPT_ACTION = 6515, ERROR_ACTION = 6952;
-
-	public final static boolean BACKTRACK = true;
-
-	@Override
-	public final int getNumStates() {
-		return NUM_STATES;
-	}
-
-	@Override
-	public final int getNtOffset() {
-		return NT_OFFSET;
-	}
-
-	@Override
-	public final int getLaStateOffset() {
-		return LA_STATE_OFFSET;
-	}
-
-	@Override
-	public final int getMaxLa() {
-		return MAX_LA;
-	}
-
-	@Override
-	public final int getNumRules() {
-		return NUM_RULES;
-	}
-
-	@Override
-	public final int getNumNonterminals() {
-		return NUM_NONTERMINALS;
-	}
-
-	@Override
-	public final int getNumSymbols() {
-		return NUM_SYMBOLS;
-	}
-
-	@Override
-	public final int getSegmentSize() {
-		return SEGMENT_SIZE;
-	}
-
-	@Override
-	public final int getStartState() {
-		return START_STATE;
-	}
-
-	@Override
-	public final int getStartSymbol() {
-		return lhs[0];
-	}
-
-	public final int getIdentifierSymbol() {
-		return IDENTIFIER_SYMBOL;
-	}
-
-	@Override
-	public final int getEoftSymbol() {
-		return EOFT_SYMBOL;
-	}
-
-	@Override
-	public final int getEoltSymbol() {
-		return EOLT_SYMBOL;
-	}
-
-	@Override
-	public final int getAcceptAction() {
-		return ACCEPT_ACTION;
-	}
-
-	@Override
-	public final int getErrorAction() {
-		return ERROR_ACTION;
-	}
-
-	@Override
-	public final boolean isValidForParser() {
-		return isValidForParser;
-	}
-
-	@Override
-	public final boolean getBacktrack() {
-		return BACKTRACK;
-	}
-
-	@Override
-	public final int originalState(int state) {
-		return -baseCheck[state];
-	}
-
-	@Override
-	public final int asi(int state) {
-		return asb[originalState(state)];
-	}
-
-	@Override
-	public final int nasi(int state) {
-		return nasb[originalState(state)];
-	}
-
-	@Override
-	public final int inSymbol(int state) {
-		return inSymb[originalState(state)];
-	}
-
-	@Override
-	public final int ntAction(int state, int sym) {
-		return baseAction[state + sym];
-	}
-
-	@Override
-	public final int tAction(int state, int sym) {
-		int i = baseAction[state], k = i + sym;
-		return termAction[termCheck[k] == sym ? k : i];
-	}
-
-	@Override
-	public final int lookAhead(int la_state, int sym) {
-		int k = la_state + sym;
-		return termAction[termCheck[k] == sym ? k : la_state];
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParsersym.java
deleted file mode 100644
index 4916bf7..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParsersym.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2010 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.lrparser.cpp;
-
-public interface CPPNoFunctionDeclaratorParsersym {
-	public final static int TK_asm = 65, TK_auto = 25, TK_bool = 11, TK_break = 76, TK_case = 77, TK_catch = 113,
-			TK_char = 12, TK_class = 53, TK_const = 23, TK_const_cast = 41, TK_continue = 78, TK_default = 79,
-			TK_delete = 66, TK_do = 80, TK_double = 13, TK_dynamic_cast = 42, TK_else = 121, TK_enum = 55,
-			TK_explicit = 26, TK_export = 88, TK_extern = 27, TK_false = 43, TK_float = 14, TK_for = 81, TK_friend = 28,
-			TK_goto = 82, TK_if = 83, TK_inline = 29, TK_int = 15, TK_long = 16, TK_mutable = 30, TK_namespace = 61,
-			TK_new = 67, TK_operator = 8, TK_private = 114, TK_protected = 115, TK_public = 116, TK_register = 31,
-			TK_reinterpret_cast = 44, TK_return = 84, TK_short = 17, TK_signed = 18, TK_sizeof = 45, TK_static = 32,
-			TK_static_cast = 46, TK_struct = 56, TK_switch = 85, TK_template = 57, TK_this = 47, TK_throw = 59,
-			TK_try = 74, TK_true = 48, TK_typedef = 33, TK_typeid = 49, TK_typename = 10, TK_union = 58,
-			TK_unsigned = 19, TK_using = 63, TK_virtual = 22, TK_void = 20, TK_volatile = 24, TK_wchar_t = 21,
-			TK_while = 75, TK_integer = 50, TK_floating = 51, TK_charconst = 52, TK_stringlit = 38, TK_identifier = 1,
-			TK_Completion = 2, TK_EndOfCompletion = 9, TK_Invalid = 122, TK_LeftBracket = 60, TK_LeftParen = 3,
-			TK_Dot = 119, TK_DotStar = 98, TK_Arrow = 117, TK_ArrowStar = 91, TK_PlusPlus = 36, TK_MinusMinus = 37,
-			TK_And = 7, TK_Star = 5, TK_Plus = 34, TK_Minus = 35, TK_Tilde = 6, TK_Bang = 40, TK_Slash = 99,
-			TK_Percent = 100, TK_RightShift = 86, TK_LeftShift = 87, TK_LT = 54, TK_GT = 64, TK_LE = 89, TK_GE = 90,
-			TK_EQ = 92, TK_NE = 93, TK_Caret = 94, TK_Or = 95, TK_AndAnd = 96, TK_OrOr = 101, TK_Question = 102,
-			TK_Colon = 71, TK_ColonColon = 4, TK_DotDotDot = 97, TK_Assign = 70, TK_StarAssign = 103,
-			TK_SlashAssign = 104, TK_PercentAssign = 105, TK_PlusAssign = 106, TK_MinusAssign = 107,
-			TK_RightShiftAssign = 108, TK_LeftShiftAssign = 109, TK_AndAssign = 110, TK_CaretAssign = 111,
-			TK_OrAssign = 112, TK_Comma = 68, TK_RightBracket = 118, TK_RightParen = 72, TK_RightBrace = 73,
-			TK_SemiColon = 39, TK_LeftBrace = 69, TK_ERROR_TOKEN = 62, TK_EOF_TOKEN = 120;
-
-	public final static String orderedTerminalSymbols[] = { "", "identifier", "Completion", "LeftParen", "ColonColon",
-			"Star", "Tilde", "And", "operator", "EndOfCompletion", "typename", "bool", "char", "double", "float", "int",
-			"long", "short", "signed", "unsigned", "void", "wchar_t", "virtual", "const", "volatile", "auto",
-			"explicit", "extern", "friend", "inline", "mutable", "register", "static", "typedef", "Plus", "Minus",
-			"PlusPlus", "MinusMinus", "stringlit", "SemiColon", "Bang", "const_cast", "dynamic_cast", "false",
-			"reinterpret_cast", "sizeof", "static_cast", "this", "true", "typeid", "integer", "floating", "charconst",
-			"class", "LT", "enum", "struct", "template", "union", "throw", "LeftBracket", "namespace", "ERROR_TOKEN",
-			"using", "GT", "asm", "delete", "new", "Comma", "LeftBrace", "Assign", "Colon", "RightParen", "RightBrace",
-			"try", "while", "break", "case", "continue", "default", "do", "for", "goto", "if", "return", "switch",
-			"RightShift", "LeftShift", "export", "LE", "GE", "ArrowStar", "EQ", "NE", "Caret", "Or", "AndAnd",
-			"DotDotDot", "DotStar", "Slash", "Percent", "OrOr", "Question", "StarAssign", "SlashAssign",
-			"PercentAssign", "PlusAssign", "MinusAssign", "RightShiftAssign", "LeftShiftAssign", "AndAssign",
-			"CaretAssign", "OrAssign", "catch", "private", "protected", "public", "Arrow", "RightBracket", "Dot",
-			"EOF_TOKEN", "else", "Invalid" };
-
-	public final static boolean isValidForParser = true;
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParser.java
deleted file mode 100644
index 51f5712..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParser.java
+++ /dev/null
@@ -1,2829 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2015 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.lrparser.cpp;
-
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.cdt.core.dom.ast.IASTCompletionNode;
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTBinaryExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCastExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTLiteralExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTypeIdExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTUnaryExpression;
-import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter;
-import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
-import org.eclipse.cdt.core.dom.lrparser.IParser;
-import org.eclipse.cdt.core.dom.lrparser.ITokenCollector;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
-import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
-import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPBuildASTParserAction;
-import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPSecondaryParserFactory;
-import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser;
-import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
-import org.eclipse.cdt.core.index.IIndex;
-import org.eclipse.cdt.core.parser.IScanner;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPNodeFactory;
-
-import lpg.lpgjavaruntime.BadParseException;
-import lpg.lpgjavaruntime.BadParseSymFileException;
-import lpg.lpgjavaruntime.DiagnoseParser;
-import lpg.lpgjavaruntime.ErrorToken;
-import lpg.lpgjavaruntime.IToken;
-import lpg.lpgjavaruntime.LexStream;
-import lpg.lpgjavaruntime.Monitor;
-import lpg.lpgjavaruntime.NotBacktrackParseTableException;
-import lpg.lpgjavaruntime.NullExportedSymbolsException;
-import lpg.lpgjavaruntime.NullTerminalSymbolsException;
-import lpg.lpgjavaruntime.ParseErrorCodes;
-import lpg.lpgjavaruntime.ParseTable;
-import lpg.lpgjavaruntime.PrsStream;
-import lpg.lpgjavaruntime.RuleAction;
-import lpg.lpgjavaruntime.UndefinedEofSymbolException;
-import lpg.lpgjavaruntime.UnimplementedTerminalsException;
-
-public class CPPParser extends PrsStream
-		implements RuleAction, ITokenStream, ITokenCollector, IParser<IASTTranslationUnit>
-
-{
-	private static ParseTable prs = new CPPParserprs();
-	private FixedBacktrackingParser btParser;
-
-	public FixedBacktrackingParser getParser() {
-		return btParser;
-	}
-
-	private void setResult(Object object) {
-		btParser.setSym1(object);
-	}
-
-	public Object getRhsSym(int i) {
-		return btParser.getSym(i);
-	}
-
-	public int getRhsTokenIndex(int i) {
-		return btParser.getToken(i);
-	}
-
-	public IToken getRhsIToken(int i) {
-		return super.getIToken(getRhsTokenIndex(i));
-	}
-
-	public int getRhsFirstTokenIndex(int i) {
-		return btParser.getFirstToken(i);
-	}
-
-	public IToken getRhsFirstIToken(int i) {
-		return super.getIToken(getRhsFirstTokenIndex(i));
-	}
-
-	public int getRhsLastTokenIndex(int i) {
-		return btParser.getLastToken(i);
-	}
-
-	public IToken getRhsLastIToken(int i) {
-		return super.getIToken(getRhsLastTokenIndex(i));
-	}
-
-	public int getLeftSpan() {
-		return btParser.getFirstToken();
-	}
-
-	@Override
-	public IToken getLeftIToken() {
-		return super.getIToken(getLeftSpan());
-	}
-
-	public int getRightSpan() {
-		return btParser.getLastToken();
-	}
-
-	@Override
-	public IToken getRightIToken() {
-		return super.getIToken(getRightSpan());
-	}
-
-	public int getRhsErrorTokenIndex(int i) {
-		int index = btParser.getToken(i);
-		IToken err = super.getIToken(index);
-		return (err instanceof ErrorToken ? index : 0);
-	}
-
-	public ErrorToken getRhsErrorIToken(int i) {
-		int index = btParser.getToken(i);
-		IToken err = super.getIToken(index);
-		return (ErrorToken) (err instanceof ErrorToken ? err : null);
-	}
-
-	public CPPParser(LexStream lexStream) {
-		super(lexStream);
-
-		try {
-			super.remapTerminalSymbols(orderedTerminalSymbols(), CPPParserprs.EOFT_SYMBOL);
-		} catch (NullExportedSymbolsException e) {
-		} catch (NullTerminalSymbolsException e) {
-		} catch (UnimplementedTerminalsException e) {
-			java.util.ArrayList unimplemented_symbols = e.getSymbols();
-			System.out.println("The Lexer will not scan the following token(s):");
-			for (int i = 0; i < unimplemented_symbols.size(); i++) {
-				Integer id = (Integer) unimplemented_symbols.get(i);
-				System.out.println("    " + CPPParsersym.orderedTerminalSymbols[id.intValue()]);
-			}
-			System.out.println();
-		} catch (UndefinedEofSymbolException e) {
-			throw new Error(new UndefinedEofSymbolException("The Lexer does not implement the Eof symbol "
-					+ CPPParsersym.orderedTerminalSymbols[CPPParserprs.EOFT_SYMBOL]));
-		}
-	}
-
-	@Override
-	public String[] orderedTerminalSymbols() {
-		return CPPParsersym.orderedTerminalSymbols;
-	}
-
-	public String getTokenKindName(int kind) {
-		return CPPParsersym.orderedTerminalSymbols[kind];
-	}
-
-	public int getEOFTokenKind() {
-		return CPPParserprs.EOFT_SYMBOL;
-	}
-
-	public PrsStream getParseStream() {
-		return this;
-	}
-
-	//
-	// Report error message for given error_token.
-	//
-	public final void reportErrorTokenMessage(int error_token, String msg) {
-		int firsttok = super.getFirstErrorToken(error_token), lasttok = super.getLastErrorToken(error_token);
-		String location = super.getFileName() + ':'
-				+ (firsttok > lasttok ? (super.getEndLine(lasttok) + ":" + super.getEndColumn(lasttok))
-						: (super.getLine(error_token) + ":" + super.getColumn(error_token) + ":"
-								+ super.getEndLine(error_token) + ":" + super.getEndColumn(error_token)))
-				+ ": ";
-		super.reportError((firsttok > lasttok ? ParseErrorCodes.INSERTION_CODE : ParseErrorCodes.SUBSTITUTION_CODE),
-				location, msg);
-	}
-
-	public void parser() {
-		parser(null, 0);
-	}
-
-	public void parser(Monitor monitor) {
-		parser(monitor, 0);
-	}
-
-	public void parser(int error_repair_count) {
-		parser(null, error_repair_count);
-	}
-
-	public void parser(Monitor monitor, int error_repair_count) {
-		try {
-			btParser = new FixedBacktrackingParser(monitor, this, prs, this);
-		} catch (NotBacktrackParseTableException e) {
-			throw new Error(new NotBacktrackParseTableException("Regenerate CPPParserprs.java with -BACKTRACK option"));
-		} catch (BadParseSymFileException e) {
-			throw new Error(new BadParseSymFileException("Bad Parser Symbol File -- CPPParsersym.java"));
-		}
-
-		try {
-			btParser.parse(error_repair_count);
-		} catch (BadParseException e) {
-			reset(e.error_token); // point to error token
-			DiagnoseParser diagnoseParser = new DiagnoseParser(this, prs);
-			diagnoseParser.diagnose(e.error_token);
-		}
-	}
-
-	private CPPBuildASTParserAction action;
-	private IASTCompletionNode compNode;
-
-	public CPPParser(IScanner scanner, IDOMTokenMap tokenMap, IBuiltinBindingsProvider builtinBindingsProvider,
-			IIndex index, Map<String, String> properties) {
-		initActions(properties);
-		action.initializeTranslationUnit(scanner, builtinBindingsProvider, index);
-		CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap);
-	}
-
-	private void initActions(Map<String, String> properties) {
-		ScopedStack<Object> astStack = new ScopedStack<>();
-
-		action = new CPPBuildASTParserAction(this, astStack, CPPNodeFactory.getDefault(),
-				CPPSecondaryParserFactory.getDefault());
-		action.setParserProperties(properties);
-
-	}
-
-	@Override
-	public void addToken(IToken token) {
-		token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called?
-		super.addToken(token);
-	}
-
-	@Override
-	public IASTTranslationUnit parse() {
-		// this has to be done, or... kaboom!
-		setStreamLength(getSize());
-
-		final int errorRepairCount = -1; // -1 means full error handling
-		parser(null, errorRepairCount); // do the actual parse
-		super.resetTokenStream(); // allow tokens to be garbage collected
-
-		compNode = action.getASTCompletionNode(); // the completion node may be null
-		return (IASTTranslationUnit) action.getParseResult();
-	}
-
-	@Override
-	public IASTCompletionNode getCompletionNode() {
-		return compNode;
-	}
-
-	// uncomment this method to use with backtracking parser
-	@Override
-	public List<IToken> getRuleTokens() {
-		return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
-	}
-
-	@Override
-	public String[] getOrderedTerminalSymbols() {
-		return CPPParsersym.orderedTerminalSymbols;
-	}
-
-	@Override
-	@SuppressWarnings("nls")
-	public String getName() {
-		return "CPPParser";
-	}
-
-	@Override
-	public void ruleAction(int ruleNumber) {
-		switch (ruleNumber) {
-
-		//
-		// Rule 1:  <openscope-ast> ::= $Empty
-		//
-		case 1: {
-			action.openASTScope();
-			break;
-		}
-
-		//
-		// Rule 2:  <empty> ::= $Empty
-		//
-		case 2: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 13:  translation_unit ::= declaration_seq_opt
-		//
-		case 13: {
-			action.consumeTranslationUnit();
-			break;
-		}
-
-		//
-		// Rule 16:  literal ::= integer
-		//
-		case 16: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant);
-			break;
-		}
-
-		//
-		// Rule 17:  literal ::= floating
-		//
-		case 17: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_float_constant);
-			break;
-		}
-
-		//
-		// Rule 18:  literal ::= charconst
-		//
-		case 18: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant);
-			break;
-		}
-
-		//
-		// Rule 19:  literal ::= stringlit
-		//
-		case 19: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal);
-			break;
-		}
-
-		//
-		// Rule 20:  literal ::= true
-		//
-		case 20: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true);
-			break;
-		}
-
-		//
-		// Rule 21:  literal ::= false
-		//
-		case 21: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false);
-			break;
-		}
-
-		//
-		// Rule 22:  literal ::= this
-		//
-		case 22: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this);
-			break;
-		}
-
-		//
-		// Rule 24:  primary_expression ::= ( expression )
-		//
-		case 24: {
-			action.consumeExpressionBracketed();
-			break;
-		}
-
-		//
-		// Rule 26:  id_expression ::= qualified_or_unqualified_name
-		//
-		case 26: {
-			action.consumeExpressionName();
-			break;
-		}
-
-		//
-		// Rule 33:  unqualified_id_name ::= ~ identifier_token
-		//
-		case 33: {
-			action.consumeDestructorName();
-			break;
-		}
-
-		//
-		// Rule 34:  unqualified_id_name ::= ~ template_id_name
-		//
-		case 34: {
-			action.consumeDestructorNameTemplateId();
-			break;
-		}
-
-		//
-		// Rule 35:  identifier_name ::= identifier_token
-		//
-		case 35: {
-			action.consumeIdentifierName();
-			break;
-		}
-
-		//
-		// Rule 36:  template_opt ::= template
-		//
-		case 36: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 37:  template_opt ::= $Empty
-		//
-		case 37: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 38:  dcolon_opt ::= ::
-		//
-		case 38: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 39:  dcolon_opt ::= $Empty
-		//
-		case 39: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 40:  qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name
-		//
-		case 40: {
-			action.consumeQualifiedId(true);
-			break;
-		}
-
-		//
-		// Rule 41:  qualified_id_name ::= :: unqualified_id_name
-		//
-		case 41: {
-			action.consumeGlobalQualifiedId();
-			break;
-		}
-
-		//
-		// Rule 42:  nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template
-		//
-		case 42: {
-			action.consumeNestedNameSpecifier(true);
-			break;
-		}
-
-		//
-		// Rule 43:  nested_name_specifier ::= class_or_namespace_name ::
-		//
-		case 43: {
-			action.consumeNestedNameSpecifier(false);
-			break;
-		}
-
-		//
-		// Rule 44:  nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template
-		//
-		case 44: {
-			action.consumeNestedNameSpecifier(true);
-			break;
-		}
-
-		//
-		// Rule 45:  nested_name_specifier_with_template ::= class_or_namespace_name_with_template ::
-		//
-		case 45: {
-			action.consumeNestedNameSpecifier(false);
-			break;
-		}
-
-		//
-		// Rule 46:  class_or_namespace_name_with_template ::= template_opt class_or_namespace_name
-		//
-		case 46: {
-			action.consumeNameWithTemplateKeyword();
-			break;
-		}
-
-		//
-		// Rule 48:  nested_name_specifier_opt ::= $Empty
-		//
-		case 48: {
-			action.consumeNestedNameSpecifierEmpty();
-			break;
-		}
-
-		//
-		// Rule 51:  postfix_expression ::= postfix_expression [ expression ]
-		//
-		case 51: {
-			action.consumeExpressionArraySubscript();
-			break;
-		}
-
-		//
-		// Rule 52:  postfix_expression ::= postfix_expression ( expression_list_opt )
-		//
-		case 52: {
-			action.consumeExpressionFunctionCall();
-			break;
-		}
-
-		//
-		// Rule 53:  postfix_expression ::= simple_type_specifier ( expression_list_opt )
-		//
-		case 53: {
-			action.consumeExpressionSimpleTypeConstructor();
-			break;
-		}
-
-		//
-		// Rule 54:  postfix_expression ::= typename dcolon_opt nested_name_specifier <empty> identifier_name ( expression_list_opt )
-		//
-		case 54: {
-			action.consumeExpressionTypeName();
-			break;
-		}
-
-		//
-		// Rule 55:  postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt )
-		//
-		case 55: {
-			action.consumeExpressionTypeName();
-			break;
-		}
-
-		//
-		// Rule 56:  postfix_expression ::= postfix_expression . qualified_or_unqualified_name
-		//
-		case 56: {
-			action.consumeExpressionFieldReference(false, false);
-			break;
-		}
-
-		//
-		// Rule 57:  postfix_expression ::= postfix_expression -> qualified_or_unqualified_name
-		//
-		case 57: {
-			action.consumeExpressionFieldReference(true, false);
-			break;
-		}
-
-		//
-		// Rule 58:  postfix_expression ::= postfix_expression . template qualified_or_unqualified_name
-		//
-		case 58: {
-			action.consumeExpressionFieldReference(false, true);
-			break;
-		}
-
-		//
-		// Rule 59:  postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name
-		//
-		case 59: {
-			action.consumeExpressionFieldReference(true, true);
-			break;
-		}
-
-		//
-		// Rule 60:  postfix_expression ::= postfix_expression . pseudo_destructor_name
-		//
-		case 60: {
-			action.consumeExpressionFieldReference(false, false);
-			break;
-		}
-
-		//
-		// Rule 61:  postfix_expression ::= postfix_expression -> pseudo_destructor_name
-		//
-		case 61: {
-			action.consumeExpressionFieldReference(true, false);
-			break;
-		}
-
-		//
-		// Rule 62:  postfix_expression ::= postfix_expression ++
-		//
-		case 62: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr);
-			break;
-		}
-
-		//
-		// Rule 63:  postfix_expression ::= postfix_expression --
-		//
-		case 63: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr);
-			break;
-		}
-
-		//
-		// Rule 64:  postfix_expression ::= dynamic_cast < type_id > ( expression )
-		//
-		case 64: {
-			action.consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast);
-			break;
-		}
-
-		//
-		// Rule 65:  postfix_expression ::= static_cast < type_id > ( expression )
-		//
-		case 65: {
-			action.consumeExpressionCast(ICPPASTCastExpression.op_static_cast);
-			break;
-		}
-
-		//
-		// Rule 66:  postfix_expression ::= reinterpret_cast < type_id > ( expression )
-		//
-		case 66: {
-			action.consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast);
-			break;
-		}
-
-		//
-		// Rule 67:  postfix_expression ::= const_cast < type_id > ( expression )
-		//
-		case 67: {
-			action.consumeExpressionCast(ICPPASTCastExpression.op_const_cast);
-			break;
-		}
-
-		//
-		// Rule 68:  postfix_expression ::= typeid ( expression )
-		//
-		case 68: {
-			action.consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid);
-			break;
-		}
-
-		//
-		// Rule 69:  postfix_expression ::= typeid ( type_id )
-		//
-		case 69: {
-			action.consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid);
-			break;
-		}
-
-		//
-		// Rule 70:  pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name
-		//
-		case 70: {
-			action.consumePsudoDestructorName(true);
-			break;
-		}
-
-		//
-		// Rule 71:  pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name
-		//
-		case 71: {
-			action.consumePsudoDestructorName(true);
-			break;
-		}
-
-		//
-		// Rule 72:  pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name
-		//
-		case 72: {
-			action.consumePsudoDestructorName(false);
-			break;
-		}
-
-		//
-		// Rule 73:  destructor_type_name ::= ~ identifier_token
-		//
-		case 73: {
-			action.consumeDestructorName();
-			break;
-		}
-
-		//
-		// Rule 74:  destructor_type_name ::= ~ template_id_name
-		//
-		case 74: {
-			action.consumeDestructorNameTemplateId();
-			break;
-		}
-
-		//
-		// Rule 78:  unary_expression ::= ++ cast_expression
-		//
-		case 78: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr);
-			break;
-		}
-
-		//
-		// Rule 79:  unary_expression ::= -- cast_expression
-		//
-		case 79: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr);
-			break;
-		}
-
-		//
-		// Rule 80:  unary_expression ::= & cast_expression
-		//
-		case 80: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper);
-			break;
-		}
-
-		//
-		// Rule 81:  unary_expression ::= * cast_expression
-		//
-		case 81: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_star);
-			break;
-		}
-
-		//
-		// Rule 82:  unary_expression ::= + cast_expression
-		//
-		case 82: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus);
-			break;
-		}
-
-		//
-		// Rule 83:  unary_expression ::= - cast_expression
-		//
-		case 83: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus);
-			break;
-		}
-
-		//
-		// Rule 84:  unary_expression ::= ~ cast_expression
-		//
-		case 84: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde);
-			break;
-		}
-
-		//
-		// Rule 85:  unary_expression ::= ! cast_expression
-		//
-		case 85: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_not);
-			break;
-		}
-
-		//
-		// Rule 86:  unary_expression ::= sizeof unary_expression
-		//
-		case 86: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof);
-			break;
-		}
-
-		//
-		// Rule 87:  unary_expression ::= sizeof ( type_id )
-		//
-		case 87: {
-			action.consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof);
-			break;
-		}
-
-		//
-		// Rule 88:  new_expression ::= dcolon_opt new new_placement_opt new_type_id <openscope-ast> new_array_expressions_opt new_initializer_opt
-		//
-		case 88: {
-			action.consumeExpressionNew(true);
-			break;
-		}
-
-		//
-		// Rule 89:  new_expression ::= dcolon_opt new new_placement_opt ( type_id ) <openscope-ast> new_array_expressions_opt new_initializer_opt
-		//
-		case 89: {
-			action.consumeExpressionNew(false);
-			break;
-		}
-
-		//
-		// Rule 91:  new_placement_opt ::= $Empty
-		//
-		case 91: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 92:  new_type_id ::= type_specifier_seq
-		//
-		case 92: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 93:  new_type_id ::= type_specifier_seq new_declarator
-		//
-		case 93: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 94:  new_declarator ::= <openscope-ast> new_pointer_operators
-		//
-		case 94: {
-			action.consumeNewDeclarator();
-			break;
-		}
-
-		//
-		// Rule 101:  new_initializer ::= ( expression_list_opt )
-		//
-		case 101: {
-			action.consumeNewInitializer();
-			break;
-		}
-
-		//
-		// Rule 103:  new_initializer_opt ::= $Empty
-		//
-		case 103: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 104:  delete_expression ::= dcolon_opt delete cast_expression
-		//
-		case 104: {
-			action.consumeExpressionDelete(false);
-			break;
-		}
-
-		//
-		// Rule 105:  delete_expression ::= dcolon_opt delete [ ] cast_expression
-		//
-		case 105: {
-			action.consumeExpressionDelete(true);
-			break;
-		}
-
-		//
-		// Rule 107:  cast_expression ::= ( type_id ) cast_expression
-		//
-		case 107: {
-			action.consumeExpressionCast(ICPPASTCastExpression.op_cast);
-			break;
-		}
-
-		//
-		// Rule 109:  pm_expression ::= pm_expression .* cast_expression
-		//
-		case 109: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot);
-			break;
-		}
-
-		//
-		// Rule 110:  pm_expression ::= pm_expression ->* cast_expression
-		//
-		case 110: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow);
-			break;
-		}
-
-		//
-		// Rule 112:  multiplicative_expression ::= multiplicative_expression * pm_expression
-		//
-		case 112: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply);
-			break;
-		}
-
-		//
-		// Rule 113:  multiplicative_expression ::= multiplicative_expression / pm_expression
-		//
-		case 113: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide);
-			break;
-		}
-
-		//
-		// Rule 114:  multiplicative_expression ::= multiplicative_expression % pm_expression
-		//
-		case 114: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo);
-			break;
-		}
-
-		//
-		// Rule 116:  additive_expression ::= additive_expression + multiplicative_expression
-		//
-		case 116: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus);
-			break;
-		}
-
-		//
-		// Rule 117:  additive_expression ::= additive_expression - multiplicative_expression
-		//
-		case 117: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus);
-			break;
-		}
-
-		//
-		// Rule 119:  shift_expression ::= shift_expression << additive_expression
-		//
-		case 119: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft);
-			break;
-		}
-
-		//
-		// Rule 120:  shift_expression ::= shift_expression >> additive_expression
-		//
-		case 120: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight);
-			break;
-		}
-
-		//
-		// Rule 122:  relational_expression ::= relational_expression < shift_expression
-		//
-		case 122: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan);
-			break;
-		}
-
-		//
-		// Rule 123:  relational_expression ::= relational_expression > shift_expression
-		//
-		case 123: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan);
-			break;
-		}
-
-		//
-		// Rule 124:  relational_expression ::= relational_expression <= shift_expression
-		//
-		case 124: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual);
-			break;
-		}
-
-		//
-		// Rule 125:  relational_expression ::= relational_expression >= shift_expression
-		//
-		case 125: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual);
-			break;
-		}
-
-		//
-		// Rule 127:  equality_expression ::= equality_expression == relational_expression
-		//
-		case 127: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals);
-			break;
-		}
-
-		//
-		// Rule 128:  equality_expression ::= equality_expression != relational_expression
-		//
-		case 128: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals);
-			break;
-		}
-
-		//
-		// Rule 130:  and_expression ::= and_expression & equality_expression
-		//
-		case 130: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd);
-			break;
-		}
-
-		//
-		// Rule 132:  exclusive_or_expression ::= exclusive_or_expression ^ and_expression
-		//
-		case 132: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor);
-			break;
-		}
-
-		//
-		// Rule 134:  inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression
-		//
-		case 134: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr);
-			break;
-		}
-
-		//
-		// Rule 136:  logical_and_expression ::= logical_and_expression && inclusive_or_expression
-		//
-		case 136: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd);
-			break;
-		}
-
-		//
-		// Rule 138:  logical_or_expression ::= logical_or_expression || logical_and_expression
-		//
-		case 138: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr);
-			break;
-		}
-
-		//
-		// Rule 140:  conditional_expression ::= logical_or_expression ? expression : assignment_expression
-		//
-		case 140: {
-			action.consumeExpressionConditional();
-			break;
-		}
-
-		//
-		// Rule 142:  relational_expression_inTemplate ::= relational_expression_inTemplate < shift_expression
-		//
-		case 142: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan);
-			break;
-		}
-
-		//
-		// Rule 143:  relational_expression_inTemplate ::= ( relational_expression_inTemplate > shift_expression )
-		//
-		case 143: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan);
-			break;
-		}
-
-		//
-		// Rule 144:  relational_expression_inTemplate ::= relational_expression_inTemplate <= shift_expression
-		//
-		case 144: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual);
-			break;
-		}
-
-		//
-		// Rule 145:  relational_expression_inTemplate ::= relational_expression_inTemplate >= shift_expression
-		//
-		case 145: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual);
-			break;
-		}
-
-		//
-		// Rule 147:  equality_expression_inTemplate ::= equality_expression_inTemplate == relational_expression_inTemplate
-		//
-		case 147: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals);
-			break;
-		}
-
-		//
-		// Rule 148:  equality_expression_inTemplate ::= equality_expression_inTemplate != relational_expression_inTemplate
-		//
-		case 148: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals);
-			break;
-		}
-
-		//
-		// Rule 150:  and_expression_inTemplate ::= and_expression_inTemplate & equality_expression_inTemplate
-		//
-		case 150: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd);
-			break;
-		}
-
-		//
-		// Rule 152:  exclusive_or_expression_inTemplate ::= exclusive_or_expression_inTemplate ^ and_expression_inTemplate
-		//
-		case 152: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor);
-			break;
-		}
-
-		//
-		// Rule 154:  inclusive_or_expression_inTemplate ::= inclusive_or_expression_inTemplate | exclusive_or_expression_inTemplate
-		//
-		case 154: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr);
-			break;
-		}
-
-		//
-		// Rule 156:  logical_and_expression_inTemplate ::= logical_and_expression_inTemplate && inclusive_or_expression_inTemplate
-		//
-		case 156: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd);
-			break;
-		}
-
-		//
-		// Rule 158:  logical_or_expression_inTemplate ::= logical_or_expression_inTemplate || logical_and_expression_inTemplate
-		//
-		case 158: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr);
-			break;
-		}
-
-		//
-		// Rule 160:  conditional_expression_inTemplate ::= logical_or_expression_inTemplate ? expression : assignment_expression_inTemplate
-		//
-		case 160: {
-			action.consumeExpressionConditional();
-			break;
-		}
-
-		//
-		// Rule 163:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate = assignment_expression_inTemplate
-		//
-		case 163: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign);
-			break;
-		}
-
-		//
-		// Rule 164:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate *= assignment_expression_inTemplate
-		//
-		case 164: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign);
-			break;
-		}
-
-		//
-		// Rule 165:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate /= assignment_expression_inTemplate
-		//
-		case 165: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign);
-			break;
-		}
-
-		//
-		// Rule 166:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate %= assignment_expression_inTemplate
-		//
-		case 166: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign);
-			break;
-		}
-
-		//
-		// Rule 167:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate += assignment_expression_inTemplate
-		//
-		case 167: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign);
-			break;
-		}
-
-		//
-		// Rule 168:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate -= assignment_expression_inTemplate
-		//
-		case 168: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign);
-			break;
-		}
-
-		//
-		// Rule 169:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate >>= assignment_expression_inTemplate
-		//
-		case 169: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign);
-			break;
-		}
-
-		//
-		// Rule 170:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate <<= assignment_expression_inTemplate
-		//
-		case 170: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign);
-			break;
-		}
-
-		//
-		// Rule 171:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate &= assignment_expression_inTemplate
-		//
-		case 171: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign);
-			break;
-		}
-
-		//
-		// Rule 172:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate ^= assignment_expression_inTemplate
-		//
-		case 172: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign);
-			break;
-		}
-
-		//
-		// Rule 173:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate |= assignment_expression_inTemplate
-		//
-		case 173: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign);
-			break;
-		}
-
-		//
-		// Rule 174:  throw_expression ::= throw
-		//
-		case 174: {
-			action.consumeExpressionThrow(false);
-			break;
-		}
-
-		//
-		// Rule 175:  throw_expression ::= throw assignment_expression
-		//
-		case 175: {
-			action.consumeExpressionThrow(true);
-			break;
-		}
-
-		//
-		// Rule 178:  assignment_expression ::= logical_or_expression = assignment_expression
-		//
-		case 178: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign);
-			break;
-		}
-
-		//
-		// Rule 179:  assignment_expression ::= logical_or_expression *= assignment_expression
-		//
-		case 179: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign);
-			break;
-		}
-
-		//
-		// Rule 180:  assignment_expression ::= logical_or_expression /= assignment_expression
-		//
-		case 180: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign);
-			break;
-		}
-
-		//
-		// Rule 181:  assignment_expression ::= logical_or_expression %= assignment_expression
-		//
-		case 181: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign);
-			break;
-		}
-
-		//
-		// Rule 182:  assignment_expression ::= logical_or_expression += assignment_expression
-		//
-		case 182: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign);
-			break;
-		}
-
-		//
-		// Rule 183:  assignment_expression ::= logical_or_expression -= assignment_expression
-		//
-		case 183: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign);
-			break;
-		}
-
-		//
-		// Rule 184:  assignment_expression ::= logical_or_expression >>= assignment_expression
-		//
-		case 184: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign);
-			break;
-		}
-
-		//
-		// Rule 185:  assignment_expression ::= logical_or_expression <<= assignment_expression
-		//
-		case 185: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign);
-			break;
-		}
-
-		//
-		// Rule 186:  assignment_expression ::= logical_or_expression &= assignment_expression
-		//
-		case 186: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign);
-			break;
-		}
-
-		//
-		// Rule 187:  assignment_expression ::= logical_or_expression ^= assignment_expression
-		//
-		case 187: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign);
-			break;
-		}
-
-		//
-		// Rule 188:  assignment_expression ::= logical_or_expression |= assignment_expression
-		//
-		case 188: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign);
-			break;
-		}
-
-		//
-		// Rule 190:  expression_list ::= <openscope-ast> expression_list_actual
-		//
-		case 190: {
-			action.consumeExpressionList();
-			break;
-		}
-
-		//
-		// Rule 194:  expression_list_opt ::= $Empty
-		//
-		case 194: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 196:  expression_opt ::= $Empty
-		//
-		case 196: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 199:  constant_expression_opt ::= $Empty
-		//
-		case 199: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 208:  statement ::= ERROR_TOKEN
-		//
-		case 208: {
-			action.consumeStatementProblem();
-			break;
-		}
-
-		//
-		// Rule 209:  labeled_statement ::= identifier : statement
-		//
-		case 209: {
-			action.consumeStatementLabeled();
-			break;
-		}
-
-		//
-		// Rule 210:  labeled_statement ::= case constant_expression : statement
-		//
-		case 210: {
-			action.consumeStatementCase();
-			break;
-		}
-
-		//
-		// Rule 211:  labeled_statement ::= default : statement
-		//
-		case 211: {
-			action.consumeStatementDefault();
-			break;
-		}
-
-		//
-		// Rule 212:  expression_statement ::= expression ;
-		//
-		case 212: {
-			action.consumeStatementExpression();
-			break;
-		}
-
-		//
-		// Rule 213:  expression_statement ::= ;
-		//
-		case 213: {
-			action.consumeStatementNull();
-			break;
-		}
-
-		//
-		// Rule 214:  compound_statement ::= { <openscope-ast> statement_seq }
-		//
-		case 214: {
-			action.consumeStatementCompoundStatement(true);
-			break;
-		}
-
-		//
-		// Rule 215:  compound_statement ::= { }
-		//
-		case 215: {
-			action.consumeStatementCompoundStatement(false);
-			break;
-		}
-
-		//
-		// Rule 218:  selection_statement ::= if ( condition ) statement
-		//
-		case 218: {
-			action.consumeStatementIf(false);
-			break;
-		}
-
-		//
-		// Rule 219:  selection_statement ::= if ( condition ) statement else statement
-		//
-		case 219: {
-			action.consumeStatementIf(true);
-			break;
-		}
-
-		//
-		// Rule 220:  selection_statement ::= switch ( condition ) statement
-		//
-		case 220: {
-			action.consumeStatementSwitch();
-			break;
-		}
-
-		//
-		// Rule 222:  condition ::= type_specifier_seq declarator = assignment_expression
-		//
-		case 222: {
-			action.consumeConditionDeclaration();
-			break;
-		}
-
-		//
-		// Rule 224:  condition_opt ::= $Empty
-		//
-		case 224: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 225:  iteration_statement ::= while ( condition ) statement
-		//
-		case 225: {
-			action.consumeStatementWhileLoop();
-			break;
-		}
-
-		//
-		// Rule 226:  iteration_statement ::= do statement while ( expression ) ;
-		//
-		case 226: {
-			action.consumeStatementDoLoop(true);
-			break;
-		}
-
-		//
-		// Rule 227:  iteration_statement ::= do statement
-		//
-		case 227: {
-			action.consumeStatementDoLoop(false);
-			break;
-		}
-
-		//
-		// Rule 228:  iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement
-		//
-		case 228: {
-			action.consumeStatementForLoop();
-			break;
-		}
-
-		//
-		// Rule 230:  for_init_statement ::= simple_declaration_with_declspec
-		//
-		case 230: {
-			action.consumeStatementDeclaration();
-			break;
-		}
-
-		//
-		// Rule 231:  jump_statement ::= break ;
-		//
-		case 231: {
-			action.consumeStatementBreak();
-			break;
-		}
-
-		//
-		// Rule 232:  jump_statement ::= continue ;
-		//
-		case 232: {
-			action.consumeStatementContinue();
-			break;
-		}
-
-		//
-		// Rule 233:  jump_statement ::= return expression ;
-		//
-		case 233: {
-			action.consumeStatementReturn(true);
-			break;
-		}
-
-		//
-		// Rule 234:  jump_statement ::= return ;
-		//
-		case 234: {
-			action.consumeStatementReturn(false);
-			break;
-		}
-
-		//
-		// Rule 235:  jump_statement ::= goto identifier_token ;
-		//
-		case 235: {
-			action.consumeStatementGoto();
-			break;
-		}
-
-		//
-		// Rule 236:  declaration_statement ::= block_declaration
-		//
-		case 236: {
-			action.consumeStatementDeclarationWithDisambiguation();
-			break;
-		}
-
-		//
-		// Rule 237:  declaration_statement ::= function_definition
-		//
-		case 237: {
-			action.consumeStatementDeclaration();
-			break;
-		}
-
-		//
-		// Rule 245:  declaration ::= ERROR_TOKEN
-		//
-		case 245: {
-			action.consumeDeclarationProblem();
-			break;
-		}
-
-		//
-		// Rule 255:  simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ;
-		//
-		case 255: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 256:  simple_declaration_with_declspec ::= declaration_specifiers <openscope-ast> init_declarator_list_opt ;
-		//
-		case 256: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 257:  declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
-		//
-		case 257: {
-			action.consumeDeclarationSpecifiersSimple();
-			break;
-		}
-
-		//
-		// Rule 258:  declaration_specifiers ::= <openscope-ast> class_declaration_specifiers
-		//
-		case 258: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 259:  declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
-		//
-		case 259: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 260:  declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
-		//
-		case 260: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 261:  declaration_specifiers ::= <openscope-ast> type_name_declaration_specifiers
-		//
-		case 261: {
-			action.consumeDeclarationSpecifiersTypeName();
-			break;
-		}
-
-		//
-		// Rule 263:  declaration_specifiers_opt ::= $Empty
-		//
-		case 263: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 267:  no_type_declaration_specifier ::= friend
-		//
-		case 267: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 268:  no_type_declaration_specifier ::= typedef
-		//
-		case 268: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 288:  storage_class_specifier ::= auto
-		//
-		case 288: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 289:  storage_class_specifier ::= register
-		//
-		case 289: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 290:  storage_class_specifier ::= static
-		//
-		case 290: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 291:  storage_class_specifier ::= extern
-		//
-		case 291: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 292:  storage_class_specifier ::= mutable
-		//
-		case 292: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 293:  function_specifier ::= inline
-		//
-		case 293: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 294:  function_specifier ::= virtual
-		//
-		case 294: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 295:  function_specifier ::= explicit
-		//
-		case 295: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 296:  simple_type_specifier ::= simple_type_specifier_token
-		//
-		case 296: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 310:  type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name
-		//
-		case 310: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 311:  type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name
-		//
-		case 311: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 312:  type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name
-		//
-		case 312: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 313:  type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name
-		//
-		case 313: {
-			action.consumeQualifiedId(true);
-			break;
-		}
-
-		//
-		// Rule 315:  elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name
-		//
-		case 315: {
-			action.consumeTypeSpecifierElaborated(false);
-			break;
-		}
-
-		//
-		// Rule 316:  elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt template_opt template_id_name
-		//
-		case 316: {
-			action.consumeTypeSpecifierElaborated(true);
-			break;
-		}
-
-		//
-		// Rule 317:  elaborated_type_specifier ::= enum elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name
-		//
-		case 317: {
-			action.consumeTypeSpecifierElaborated(false);
-			break;
-		}
-
-		//
-		// Rule 321:  enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
-		//
-		case 321: {
-			action.consumeTypeSpecifierEnumeration(false);
-			break;
-		}
-
-		//
-		// Rule 322:  enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
-		//
-		case 322: {
-			action.consumeTypeSpecifierEnumeration(true);
-			break;
-		}
-
-		//
-		// Rule 328:  enumerator_definition ::= identifier_token
-		//
-		case 328: {
-			action.consumeEnumerator(false);
-			break;
-		}
-
-		//
-		// Rule 329:  enumerator_definition ::= identifier_token = constant_expression
-		//
-		case 329: {
-			action.consumeEnumerator(true);
-			break;
-		}
-
-		//
-		// Rule 331:  namespace_definition ::= namespace namespace_name namespace_definition_hook { <openscope-ast> declaration_seq_opt }
-		//
-		case 331: {
-			action.consumeNamespaceDefinition(true);
-			break;
-		}
-
-		//
-		// Rule 332:  namespace_definition ::= namespace namespace_definition_hook { <openscope-ast> declaration_seq_opt }
-		//
-		case 332: {
-			action.consumeNamespaceDefinition(false);
-			break;
-		}
-
-		//
-		// Rule 334:  namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ;
-		//
-		case 334: {
-			action.consumeNamespaceAliasDefinition();
-			break;
-		}
-
-		//
-		// Rule 335:  using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ;
-		//
-		case 335: {
-			action.consumeUsingDeclaration();
-			break;
-		}
-
-		//
-		// Rule 336:  typename_opt ::= typename
-		//
-		case 336: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 337:  typename_opt ::= $Empty
-		//
-		case 337: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 338:  using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ;
-		//
-		case 338: {
-			action.consumeUsingDirective();
-			break;
-		}
-
-		//
-		// Rule 339:  asm_definition ::= asm ( stringlit ) ;
-		//
-		case 339: {
-			action.consumeDeclarationASM();
-			break;
-		}
-
-		//
-		// Rule 340:  linkage_specification ::= extern stringlit { <openscope-ast> declaration_seq_opt }
-		//
-		case 340: {
-			action.consumeLinkageSpecification();
-			break;
-		}
-
-		//
-		// Rule 341:  linkage_specification ::= extern stringlit <openscope-ast> declaration
-		//
-		case 341: {
-			action.consumeLinkageSpecification();
-			break;
-		}
-
-		//
-		// Rule 346:  init_declarator_complete ::= init_declarator
-		//
-		case 346: {
-			action.consumeInitDeclaratorComplete();
-			break;
-		}
-
-		//
-		// Rule 348:  init_declarator ::= complete_declarator initializer
-		//
-		case 348: {
-			action.consumeDeclaratorWithInitializer(true);
-			break;
-		}
-
-		//
-		// Rule 351:  declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
-		//
-		case 351: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 353:  function_declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
-		//
-		case 353: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 357:  basic_direct_declarator ::= declarator_id_name
-		//
-		case 357: {
-			action.consumeDirectDeclaratorIdentifier();
-			break;
-		}
-
-		//
-		// Rule 358:  basic_direct_declarator ::= ( declarator )
-		//
-		case 358: {
-			action.consumeDirectDeclaratorBracketed();
-			break;
-		}
-
-		//
-		// Rule 359:  function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
-		//
-		case 359: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 360:  array_direct_declarator ::= array_direct_declarator array_modifier
-		//
-		case 360: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 361:  array_direct_declarator ::= basic_direct_declarator array_modifier
-		//
-		case 361: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 362:  array_modifier ::= [ constant_expression ]
-		//
-		case 362: {
-			action.consumeDirectDeclaratorArrayModifier(true);
-			break;
-		}
-
-		//
-		// Rule 363:  array_modifier ::= [ ]
-		//
-		case 363: {
-			action.consumeDirectDeclaratorArrayModifier(false);
-			break;
-		}
-
-		//
-		// Rule 364:  ptr_operator ::= pointer_hook * pointer_hook <openscope-ast> cv_qualifier_seq_opt
-		//
-		case 364: {
-			action.consumePointer();
-			break;
-		}
-
-		//
-		// Rule 365:  ptr_operator ::= pointer_hook & pointer_hook
-		//
-		case 365: {
-			action.consumeReferenceOperator();
-			break;
-		}
-
-		//
-		// Rule 366:  ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * pointer_hook <openscope-ast> cv_qualifier_seq_opt
-		//
-		case 366: {
-			action.consumePointerToMember();
-			break;
-		}
-
-		//
-		// Rule 373:  cv_qualifier ::= const
-		//
-		case 373: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 374:  cv_qualifier ::= volatile
-		//
-		case 374: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 376:  declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name
-		//
-		case 376: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 377:  type_id ::= type_specifier_seq
-		//
-		case 377: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 378:  type_id ::= type_specifier_seq abstract_declarator
-		//
-		case 378: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 381:  abstract_declarator ::= <openscope-ast> ptr_operator_seq
-		//
-		case 381: {
-			action.consumeDeclaratorWithPointer(false);
-			break;
-		}
-
-		//
-		// Rule 382:  abstract_declarator ::= <openscope-ast> ptr_operator_seq direct_abstract_declarator
-		//
-		case 382: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 386:  basic_direct_abstract_declarator ::= ( abstract_declarator )
-		//
-		case 386: {
-			action.consumeDirectDeclaratorBracketed();
-			break;
-		}
-
-		//
-		// Rule 387:  basic_direct_abstract_declarator ::= ( )
-		//
-		case 387: {
-			action.consumeAbstractDeclaratorEmpty();
-			break;
-		}
-
-		//
-		// Rule 388:  array_direct_abstract_declarator ::= array_modifier
-		//
-		case 388: {
-			action.consumeDirectDeclaratorArrayDeclarator(false);
-			break;
-		}
-
-		//
-		// Rule 389:  array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
-		//
-		case 389: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 390:  array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
-		//
-		case 390: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 391:  function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
-		//
-		case 391: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 392:  function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
-		//
-		case 392: {
-			action.consumeDirectDeclaratorFunctionDeclarator(false);
-			break;
-		}
-
-		//
-		// Rule 393:  parameter_declaration_clause ::= parameter_declaration_list_opt ...
-		//
-		case 393: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 394:  parameter_declaration_clause ::= parameter_declaration_list_opt
-		//
-		case 394: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 395:  parameter_declaration_clause ::= parameter_declaration_list , ...
-		//
-		case 395: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 401:  abstract_declarator_opt ::= $Empty
-		//
-		case 401: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 402:  parameter_declaration ::= declaration_specifiers parameter_init_declarator
-		//
-		case 402: {
-			action.consumeParameterDeclaration();
-			break;
-		}
-
-		//
-		// Rule 403:  parameter_declaration ::= declaration_specifiers
-		//
-		case 403: {
-			action.consumeParameterDeclarationWithoutDeclarator();
-			break;
-		}
-
-		//
-		// Rule 405:  parameter_init_declarator ::= declarator = parameter_initializer
-		//
-		case 405: {
-			action.consumeDeclaratorWithInitializer(true);
-			break;
-		}
-
-		//
-		// Rule 407:  parameter_init_declarator ::= abstract_declarator = parameter_initializer
-		//
-		case 407: {
-			action.consumeDeclaratorWithInitializer(true);
-			break;
-		}
-
-		//
-		// Rule 408:  parameter_init_declarator ::= = parameter_initializer
-		//
-		case 408: {
-			action.consumeDeclaratorWithInitializer(false);
-			break;
-		}
-
-		//
-		// Rule 409:  parameter_initializer ::= assignment_expression
-		//
-		case 409: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 410:  function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body
-		//
-		case 410: {
-			action.consumeFunctionDefinition(false);
-			break;
-		}
-
-		//
-		// Rule 411:  function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq
-		//
-		case 411: {
-			action.consumeFunctionDefinition(true);
-			break;
-		}
-
-		//
-		// Rule 414:  initializer ::= ( expression_list )
-		//
-		case 414: {
-			action.consumeInitializerConstructor();
-			break;
-		}
-
-		//
-		// Rule 415:  initializer_clause ::= assignment_expression
-		//
-		case 415: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 416:  initializer_clause ::= initializer_list
-		//
-		case 416: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 417:  initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq , } end_initializer_list
-		//
-		case 417: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 418:  initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq } end_initializer_list
-		//
-		case 418: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 419:  initializer_list ::= { <openscope-ast> }
-		//
-		case 419: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 420:  start_initializer_list ::= $Empty
-		//
-		case 420: {
-			action.initializerListStart();
-			break;
-		}
-
-		//
-		// Rule 421:  end_initializer_list ::= $Empty
-		//
-		case 421: {
-			action.initializerListEnd();
-			break;
-		}
-
-		//
-		// Rule 426:  class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt }
-		//
-		case 426: {
-			action.consumeClassSpecifier();
-			break;
-		}
-
-		//
-		// Rule 427:  class_head ::= class_keyword composite_specifier_hook identifier_name_opt class_name_suffix_hook <openscope-ast> base_clause_opt
-		//
-		case 427: {
-			action.consumeClassHead(false);
-			break;
-		}
-
-		//
-		// Rule 428:  class_head ::= class_keyword composite_specifier_hook template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt
-		//
-		case 428: {
-			action.consumeClassHead(false);
-			break;
-		}
-
-		//
-		// Rule 429:  class_head ::= class_keyword composite_specifier_hook nested_name_specifier identifier_name class_name_suffix_hook <openscope-ast> base_clause_opt
-		//
-		case 429: {
-			action.consumeClassHead(true);
-			break;
-		}
-
-		//
-		// Rule 430:  class_head ::= class_keyword composite_specifier_hook nested_name_specifier template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt
-		//
-		case 430: {
-			action.consumeClassHead(true);
-			break;
-		}
-
-		//
-		// Rule 434:  identifier_name_opt ::= $Empty
-		//
-		case 434: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 438:  visibility_label ::= access_specifier_keyword :
-		//
-		case 438: {
-			action.consumeVisibilityLabel();
-			break;
-		}
-
-		//
-		// Rule 439:  member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
-		//
-		case 439: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 440:  member_declaration ::= declaration_specifiers_opt ;
-		//
-		case 440: {
-			action.consumeDeclarationSimple(false);
-			break;
-		}
-
-		//
-		// Rule 443:  member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ;
-		//
-		case 443: {
-			action.consumeMemberDeclarationQualifiedId();
-			break;
-		}
-
-		//
-		// Rule 449:  member_declaration ::= ERROR_TOKEN
-		//
-		case 449: {
-			action.consumeDeclarationProblem();
-			break;
-		}
-
-		//
-		// Rule 458:  member_declarator ::= declarator constant_initializer
-		//
-		case 458: {
-			action.consumeMemberDeclaratorWithInitializer();
-			break;
-		}
-
-		//
-		// Rule 459:  member_declarator ::= bit_field_declarator : constant_expression
-		//
-		case 459: {
-			action.consumeBitField(true);
-			break;
-		}
-
-		//
-		// Rule 460:  member_declarator ::= : constant_expression
-		//
-		case 460: {
-			action.consumeBitField(false);
-			break;
-		}
-
-		//
-		// Rule 461:  bit_field_declarator ::= identifier_name
-		//
-		case 461: {
-			action.consumeDirectDeclaratorIdentifier();
-			break;
-		}
-
-		//
-		// Rule 462:  constant_initializer ::= = constant_expression
-		//
-		case 462: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 468:  base_specifier ::= dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 468: {
-			action.consumeBaseSpecifier(false, false);
-			break;
-		}
-
-		//
-		// Rule 469:  base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 469: {
-			action.consumeBaseSpecifier(true, true);
-			break;
-		}
-
-		//
-		// Rule 470:  base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 470: {
-			action.consumeBaseSpecifier(true, true);
-			break;
-		}
-
-		//
-		// Rule 471:  base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 471: {
-			action.consumeBaseSpecifier(true, false);
-			break;
-		}
-
-		//
-		// Rule 472:  access_specifier_keyword ::= private
-		//
-		case 472: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 473:  access_specifier_keyword ::= protected
-		//
-		case 473: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 474:  access_specifier_keyword ::= public
-		//
-		case 474: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 476:  access_specifier_keyword_opt ::= $Empty
-		//
-		case 476: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 478:  conversion_function_id_name ::= conversion_function_id < <openscope-ast> template_argument_list_opt >
-		//
-		case 478: {
-			action.consumeTemplateId();
-			break;
-		}
-
-		//
-		// Rule 479:  conversion_function_id ::= operator conversion_type_id
-		//
-		case 479: {
-			action.consumeConversionName();
-			break;
-		}
-
-		//
-		// Rule 480:  conversion_type_id ::= type_specifier_seq conversion_declarator
-		//
-		case 480: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 481:  conversion_type_id ::= type_specifier_seq
-		//
-		case 481: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 482:  conversion_declarator ::= <openscope-ast> ptr_operator_seq
-		//
-		case 482: {
-			action.consumeDeclaratorWithPointer(false);
-			break;
-		}
-
-		//
-		// Rule 488:  mem_initializer ::= mem_initializer_name ( expression_list_opt )
-		//
-		case 488: {
-			action.consumeConstructorChainInitializer();
-			break;
-		}
-
-		//
-		// Rule 489:  mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 489: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 492:  operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt >
-		//
-		case 492: {
-			action.consumeTemplateId();
-			break;
-		}
-
-		//
-		// Rule 493:  operator_id_name ::= operator overloadable_operator
-		//
-		case 493: {
-			action.consumeOperatorName();
-			break;
-		}
-
-		//
-		// Rule 536:  template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration
-		//
-		case 536: {
-			action.consumeTemplateDeclaration();
-			break;
-		}
-
-		//
-		// Rule 537:  export_opt ::= export
-		//
-		case 537: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 538:  export_opt ::= $Empty
-		//
-		case 538: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 542:  template_parameter ::= parameter_declaration
-		//
-		case 542: {
-			action.consumeTemplateParamterDeclaration();
-			break;
-		}
-
-		//
-		// Rule 543:  type_parameter ::= class identifier_name_opt
-		//
-		case 543: {
-			action.consumeSimpleTypeTemplateParameter(false);
-			break;
-		}
-
-		//
-		// Rule 544:  type_parameter ::= class identifier_name_opt = type_id
-		//
-		case 544: {
-			action.consumeSimpleTypeTemplateParameter(true);
-			break;
-		}
-
-		//
-		// Rule 545:  type_parameter ::= typename identifier_name_opt
-		//
-		case 545: {
-			action.consumeSimpleTypeTemplateParameter(false);
-			break;
-		}
-
-		//
-		// Rule 546:  type_parameter ::= typename identifier_name_opt = type_id
-		//
-		case 546: {
-			action.consumeSimpleTypeTemplateParameter(true);
-			break;
-		}
-
-		//
-		// Rule 547:  type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt
-		//
-		case 547: {
-			action.consumeTemplatedTypeTemplateParameter(false);
-			break;
-		}
-
-		//
-		// Rule 548:  type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression
-		//
-		case 548: {
-			action.consumeTemplatedTypeTemplateParameter(true);
-			break;
-		}
-
-		//
-		// Rule 549:  template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt >
-		//
-		case 549: {
-			action.consumeTemplateId();
-			break;
-		}
-
-		//
-		// Rule 556:  nested_name_specifier_inTemplate ::= class_or_namespace_name_inTemplate :: nested_name_specifier_with_template_inTemplate
-		//
-		case 556: {
-			action.consumeNestedNameSpecifier(true);
-			break;
-		}
-
-		//
-		// Rule 557:  nested_name_specifier_inTemplate ::= class_or_namespace_name_inTemplate ::
-		//
-		case 557: {
-			action.consumeNestedNameSpecifier(false);
-			break;
-		}
-
-		//
-		// Rule 558:  nested_name_specifier_with_template_inTemplate ::= class_or_namespace_name_with_template_inTemplate :: nested_name_specifier_with_template_inTemplate
-		//
-		case 558: {
-			action.consumeNestedNameSpecifier(true);
-			break;
-		}
-
-		//
-		// Rule 559:  nested_name_specifier_with_template_inTemplate ::= class_or_namespace_name_with_template_inTemplate ::
-		//
-		case 559: {
-			action.consumeNestedNameSpecifier(false);
-			break;
-		}
-
-		//
-		// Rule 560:  class_or_namespace_name_with_template_inTemplate ::= template_opt class_or_namespace_name_inTemplate
-		//
-		case 560: {
-			action.consumeNameWithTemplateKeyword();
-			break;
-		}
-
-		//
-		// Rule 562:  nested_name_specifier_opt_inTemplate ::= $Empty
-		//
-		case 562: {
-			action.consumeNestedNameSpecifierEmpty();
-			break;
-		}
-
-		//
-		// Rule 565:  type_name_specifier_inTemplate ::= typename dcolon_opt nested_name_specifier identifier_name
-		//
-		case 565: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 566:  type_name_specifier_inTemplate ::= typename dcolon_opt nested_name_specifier template_opt template_id_name
-		//
-		case 566: {
-			action.consumeQualifiedId(true);
-			break;
-		}
-
-		//
-		// Rule 571:  declaration_specifiers_inTemplate ::= <openscope-ast> simple_declaration_specifiers
-		//
-		case 571: {
-			action.consumeDeclarationSpecifiersSimple();
-			break;
-		}
-
-		//
-		// Rule 572:  declaration_specifiers_inTemplate ::= <openscope-ast> class_declaration_specifiers
-		//
-		case 572: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 573:  declaration_specifiers_inTemplate ::= <openscope-ast> elaborated_declaration_specifiers
-		//
-		case 573: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 574:  declaration_specifiers_inTemplate ::= <openscope-ast> enum_declaration_specifiers
-		//
-		case 574: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 575:  declaration_specifiers_inTemplate ::= <openscope-ast> type_name_declaration_specifiers_inTemplate
-		//
-		case 575: {
-			action.consumeDeclarationSpecifiersTypeName();
-			break;
-		}
-
-		//
-		// Rule 577:  type_id_inTemplate ::= type_specifier_seq_inTemplate
-		//
-		case 577: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 578:  type_id_inTemplate ::= type_specifier_seq_inTemplate abstract_declarator
-		//
-		case 578: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 579:  template_argument ::= assignment_expression_inTemplate
-		//
-		case 579: {
-			action.consumeTemplateArgumentExpression();
-			break;
-		}
-
-		//
-		// Rule 580:  template_argument ::= type_id_inTemplate
-		//
-		case 580: {
-			action.consumeTemplateArgumentTypeId();
-			break;
-		}
-
-		//
-		// Rule 581:  explicit_instantiation ::= template declaration
-		//
-		case 581: {
-			action.consumeTemplateExplicitInstantiation();
-			break;
-		}
-
-		//
-		// Rule 582:  explicit_specialization ::= template < > declaration
-		//
-		case 582: {
-			action.consumeTemplateExplicitSpecialization();
-			break;
-		}
-
-		//
-		// Rule 583:  try_block ::= try compound_statement <openscope-ast> handler_seq
-		//
-		case 583: {
-			action.consumeStatementTryBlock(true);
-			break;
-		}
-
-		//
-		// Rule 584:  try_block ::= try compound_statement
-		//
-		case 584: {
-			action.consumeStatementTryBlock(false);
-			break;
-		}
-
-		//
-		// Rule 587:  handler ::= catch ( exception_declaration ) compound_statement
-		//
-		case 587: {
-			action.consumeStatementCatchHandler(false);
-			break;
-		}
-
-		//
-		// Rule 588:  handler ::= catch ( ... ) compound_statement
-		//
-		case 588: {
-			action.consumeStatementCatchHandler(true);
-			break;
-		}
-
-		//
-		// Rule 589:  exception_declaration ::= type_specifier_seq <openscope-ast> declarator
-		//
-		case 589: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 590:  exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
-		//
-		case 590: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 591:  exception_declaration ::= type_specifier_seq
-		//
-		case 591: {
-			action.consumeDeclarationSimple(false);
-			break;
-		}
-
-		//
-		// Rule 593:  exception_specification ::= throw ( )
-		//
-		case 593: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		default:
-			break;
-		}
-		return;
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParserAction.java
deleted file mode 100644
index e69f9dd..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParserAction.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.lrparser.cpp;
-
-import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPBuildASTParserAction;
-
-class CPPParserAction {
-
-	public CPPBuildASTParserAction builder;
-
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParserprs.java
deleted file mode 100644
index 4930ccb..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParserprs.java
+++ /dev/null
@@ -1,1556 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2015 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.lrparser.cpp;
-
-public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym {
-
-	public interface IsKeyword {
-		public final static byte isKeyword[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static byte isKeyword[] = IsKeyword.isKeyword;
-
-	public final boolean isKeyword(int index) {
-		return isKeyword[index] != 0;
-	}
-
-	public interface BaseCheck {
-		public final static short baseCheck[] = { 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 0, 1, 0, 4, 2, 3, 2, 3, 2, 2, 1, 0, 1, 1, 4, 4, 4, 8, 8, 3, 3,
-				4, 4, 3, 3, 2, 2, 7, 7, 7, 7, 4, 4, 5, 6, 3, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 7, 9, 3, 0, 1,
-				2, 2, 1, 2, 3, 4, 1, 0, 3, 1, 0, 3, 5, 1, 4, 1, 3, 3, 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 3, 3, 3, 3, 1, 3,
-				3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 1, 3, 5, 3, 3, 1, 3, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 1, 1,
-				3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 2, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 2, 1, 3, 1, 0, 1, 0, 1,
-				1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 4, 3, 2, 1, 4, 2, 1, 2, 5, 7, 5, 1, 4, 1, 0, 5, 7, 2, 8, 1, 1, 2, 2,
-				3, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 0, 4, 4, 2, 2, 2, 2, 2, 1, 0, 1, 1, 1, 1,
-				1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 3, 4, 4, 5, 2, 5, 6, 5, 0, 1, 0, 7, 8, 0, 1, 3, 1, 0, 1, 3, 1, 7, 6, 0, 7, 6, 1, 0,
-				6, 5, 6, 4, 1, 3, 1, 0, 1, 1, 2, 1, 1, 3, 1, 3, 1, 1, 1, 1, 3, 9, 2, 2, 3, 2, 5, 3, 7, 0, 1, 2, 2, 1, 0,
-				1, 1, 1, 3, 1, 2, 1, 1, 2, 3, 1, 1, 1, 3, 2, 1, 2, 2, 9, 8, 2, 1, 3, 1, 3, 1, 0, 1, 0, 2, 1, 1, 3, 1, 3,
-				2, 1, 5, 8, 1, 2, 3, 1, 1, 7, 6, 3, 0, 0, 1, 3, 1, 1, 5, 6, 6, 7, 7, 0, 0, 1, 0, 1, 1, 1, 2, 4, 2, 2, 1,
-				5, 1, 1, 1, 1, 1, 1, 1, 2, 1, 0, 1, 3, 1, 1, 2, 3, 2, 1, 2, 2, 1, 0, 1, 3, 3, 5, 5, 4, 1, 1, 1, 1, 0, 1,
-				5, 2, 2, 1, 2, 2, 1, 0, 1, 3, 4, 3, 1, 1, 5, 2, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 7, 1, 0, 1, 3, 1, 1, 2, 4, 2, 4, 7,
-				9, 5, 1, 3, 1, 0, 1, 1, 3, 2, 3, 2, 2, 1, 0, 1, 1, 4, 5, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 4,
-				4, 2, 1, 2, 5, 5, 3, 3, 1, 4, 3, 1, 0, 1, 3, -271, 0, 0, 0, 0, -21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -72, -63, 0, -2, 0, 0, 0, 0, 0, 0, -119, 0, -4, 0, 0, -514, -25, 0, 0, 0, 0,
-				-519, 0, 0, 0, -418, 0, -6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -40, -7, 0, 0, 0, 0, -145, 0, -53, 0, 0,
-				0, -100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -217, 0, 0, 0, 0, -71, 0, -231, 0, 0, 0, 0, 0, 0, 0, -9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -227, -450, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -88, 0, 0, -515, 0, -3, 0, 0, -48, 0, 0, 0, 0, -116,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -406, 0, 0,
-				0, 0, 0, 0, 0, 0, -34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-42, 0, 0, -117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-257, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -251, -14, 0, 0, 0, 0, -110, 0, -12, -24, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -30, 0, 0, 0, -16, 0, 0, 0, 0, 0, 0, 0, 0, 0, -27, 0, 0, 0, 0, 0, -106, 0, 0, 0, 0, 0,
-				0, -297, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -31, 0, 0, -92,
-				0, 0, 0, 0, 0, 0, 0, -58, -302, 0, 0, 0, 0, 0, 0, 0, 0, 0, -32, 0, -50, 0, 0, -13, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -438, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -374, 0, 0, 0, 0, 0, 0, -210, 0, 0, 0, 0, -35, -79, 0, -258, 0, 0, 0, 0, -228, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -146, 0, 0, -532, 0, 0, 0, 0, -37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -47, -38, 0, 0, 0, 0, 0, 0, 0, 0, -59, 0, 0, 0, 0, 0, 0, 0, 0, 0, -273, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -18, -39, 0, 0, 0, 0, 0, 0, -111, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -17, 0, -470, 0, 0, 0, 0, 0,
-				0, -60, 0, 0, 0, 0, -533, -253, 0, -358, 0, -89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -43, 0, 0, 0, 0, 0, 0,
-				-202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -55, -49, 0, -56, 0,
-				0, 0, 0, 0, 0, -93, 0, -64, 0, 0, -503, 0, 0, 0, 0, -304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -466, 0, 0, 0, 0, 0, 0, -333, 0, 0, 0, 0, -41, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -576, -51, 0, -67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -102, 0,
-				0, 0, 0, 0, 0, -442, 0, 0, 0, 0, -130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-103, 0, 0, 0, 0, 0, 0, 0, 0, 0, -74, 0, 0, 0, 0, -535, 0, 0, 0, 0, -443, 0, 0, 0, 0, -223, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -114, 0, -75, 0, -52, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-182, 0, 0, 0, 0, -46, -298, 0, -107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -62, -531, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -186, -352, 0, 0, 0, 0, 0, 0, 0, 0, -76, 0, -77, 0, 0, 0,
-				0, 0, -530, 0, -95, -218, 0, 0, 0, 0, 0, -230, 0, -284, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -479, 0, -112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -15, -33, 0, -10, 0,
-				0, 0, 0, -105, 0, 0, 0, 0, 0, 0, -353, -133, 0, 0, 0, 0, 0, 0, -285, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -101, 0, 0, 0, 0, 0, -57, 0, 0, 0, -20, 0,
-				0, 0, 0, 0, 0, 0, 0, -87, 0, 0, -185, 0, 0, -135, -94, 0, 0, 0, 0, 0, 0, -286, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -147, 0, 0, 0, 0, 0, -569, 0, 0, 0, 0, 0,
-				0, -234, -69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -551, -115, 0, 0, 0, 0, 0, 0, -287, 0, 0, 0, 0,
-				-580, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -29, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -22, -246, 0, 0, 0, 0, 0, 0, 0, 0, 0, -240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -288, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -229, 0, 0, 0, 0,
-				0, 0, -70, -61, 0, 0, -235, 0, 0, 0, 0, 0, -150, 0, -423, -155, 0, 0, -151, 0, 0, 0, -200, 0, 0, 0, 0,
-				0, 0, -289, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -524,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -236, -247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -136, -152, -222, 0, 0, 0,
-				0, 0, 0, 0, 0, -290, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -547,
-				0, 0, 0, -390, 0, 0, -592, 0, 0, 0, 0, -422, 0, 0, 0, -113, -248, 0, 0, 0, 0, 0, 0, -582, -139, 0, 0,
-				-454, -153, 0, -154, 0, 0, 0, 0, 0, 0, 0, -291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -68, 0, 0, -601, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -143, 0, 0, 0, 0,
-				0, 0, 0, -301, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -292, 0, 0, 0, 0, -73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -201, 0, -376, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -237, 0, 0, 0, -134, 0,
-				0, 0, -583, -104, 0, 0, 0, 0, 0, 0, -86, 0, 0, 0, 0, 0, 0, -293, 0, 0, 0, 0, -156, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -378, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -238, -80,
-				0, 0, 0, 0, 0, 0, 0, -167, 0, -465, 0, 0, 0, -330, -97, 0, 0, 0, 0, 0, 0, -294, 0, 0, 0, 0, -168, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -350, 0, 0, -121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -373, 0, 0, 0, 0, 0, 0, 0, -169, 0, -170, 0, -504, 0, 0, 0, 0, 0, 0, 0, 0, 0, -319, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -120, 0, 0, 0, -172, 0, 0, 0, 0, 0,
-				0, -190, 0, 0, -570, 0, 0, 0, 0, -320, 0, 0, 0, 0, -173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -174, 0, -175, 0, -81, 0, 0, 0, 0, 0, 0, -176, 0, 0, -571, 0, 0, 0, 0, -321, 0, 0, 0,
-				0, -219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -372, 0, -84, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -517, 0, 0, 0, 0, -322, 0, 0, 0, 0, -220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -602, 0, 0, 0, 0, -85, 0, 0, 0, 0, 0, 0, 0, 0, 0, -518, 0, 0, 0, 0, -323, 0, 0, 0, 0,
-				-317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -98, -380, 0, 0, 0, 0, 0, 0, 0, 0,
-				-177, 0, 0, 0, 0, -520, 0, 0, 0, 0, -324, 0, 0, 0, 0, -565, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -126, -579, 0, -596, 0, 0, 0, 0, 0, 0, -178, 0, 0, 0, 0, -554, 0, 0, 0, 0, -325, 0, 0,
-				0, 0, -90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -141, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -142, 0, 0, 0, 0, 0, -344, 0, -128, 0, -326, 0, 0, 0, 0, -129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -180, 0, 0, 0, -356, 0, -132, 0, -327, 0,
-				0, 0, 0, -181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -203, -183, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -207, 0, 0, -204, -187, 0, -140, 0, -328, 0, 0, 0, 0, -457, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -225, -594, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -226, 0, 0, -189, -192, 0,
-				-193, 0, -329, 0, 0, 0, 0, -495, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -455,
-				-331, 0, -355, 0, -299, 0, 0, 0, 0, 0, 0, 0, 0, 0, -54, 0, 0, 0, 0, -437, 0, 0, 0, 0, -194, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -254, 0, 0, 0, 0, 0, 0, -318, 0, 0, 0, 0, 0,
-				-458, 0, 0, 0, -478, 0, 0, 0, 0, -211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-268, -243, 0, -346, 0, 0, 0, -370, 0, 0, 0, 0, 0, 0, 0, 0, -474, -195, 0, 0, -332, 0, 0, 0, -341, 0, 0,
-				0, -345, 0, 0, 0, -347, 0, 0, 0, 0, 0, 0, -494, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -196, 0, 0, -197, 0, 0, 0, 0, 0, 0, 0, 0, -198, 0, 0, 0, 0, -244, -269, 0, -585, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -363, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -411, 0, -501, 0, 0, -476, 0, -361, -420, 0, -348, 0, 0, 0, 0, -199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -421, 0, 0, 0, 0, 0, 0, -364, 0, 0, -357, 0, 0, 0, 0, -449,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -205, 0, -439, 0, 0, 0, 0, 0, 0,
-				-502, 0, 0, -469, 0, 0, -490, -149, 0, -491, -206, -208, 0, -209, -184, 0, 0, 0, -409, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -212, 0, 0, -493, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -451, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -118, -566,
-				-214, 0, 0, 0, 0, 0, 0, -497, 0, -505, 0, 0, 0, -440, 0, -527, 0, 0, 0, 0, 0, -215, -78, 0, 0, 0, 0,
-				-452, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -216, -232, 0, 0,
-				-561, 0, 0, 0, 0, 0, 0, 0, 0, 0, -578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -365, 0, -371, 0, -539, 0, 0, 0, 0, 0, 0, -241, 0, 0, -546, 0, -557, -233, -256, 0, -572,
-				0, -441, 0, 0, 0, -272, -588, -593, -599, 0, 0, 0, 0, 0, -171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -316, -550, 0, -334, 0, 0, 0, -335, 0, 0, -342, -343, 0, -349,
-				0, 0, 0, -351, -296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-338, 0, -259, -366, -337, 0, -367, 0, 0, -368, -369, -381, -382, -123, 0, -383, -384, 0, 0, 0, 0, -270,
-				0, 0, -385, 0, 0, 0, -387, -388, 0, -389, 0, 0, 0, -315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -393, 0, -394, -395, 0, -396, 0, 0, 0, 0, 0, 0, -283, 0, 0, 0, 0, -397, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -398, -446, -399, 0, -400, -499, 0,
-				-375, -401, 0, -496, 0, 0, -402, -403, 0, 0, 0, 0, 0, 0, -404, -405, 0, -408, -410, 0, -412, 0, -413, 0,
-				0, -312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -414, 0,
-				-415, 0, 0, 0, 0, -281, 0, 0, 0, 0, -417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -425, -426, -427, -428, -429, -430, -431, 0, -432, -433, -434, -435, -436, -453, -461, -462, -463, 0,
-				-464, -480, 0, 0, 0, 0, -481, 0, -379, -313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -483, 0, -488, 0, 0, 0, -282, 0, 0, 0, 0, -424, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -459, -492, -498, -511, -512, -516, 0, -528, -534, -548, -552,
-				-553, -559, -567, -568, -581, 0, -586, -591, 0, 0, 0, -471, -477, 0, -310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -278, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -109, 0, 0, 0, 0, -311, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -303, 0, 0, 0, 0, 0, 0, 0, -506, -513, -523, -525, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -279, 0, 0, 0, 0, -529, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -540, -541, -339, -542, -543, 0, -555, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -280, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -305,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -224, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -556, -574, 0, 0, 0,
-				0, 0, -26, 0, 0, 0, 0, 0, 0, 0, 0, -575, 0, 0, -589, 0, 0, 0, -595, 0, 0, 0, 0, -598, 0, 0, 0, -122, 0,
-				0, -600, -544, 0, 0, 0, -460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -275, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -419, -260, 0,
-				-295, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-307, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -308, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -309, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -360, 0,
-				0, 0, 0, 0, 0, 0, -392, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-5, 0, 0, 0, 0, 0, -314, -507, 0, -538, -521, 0, 0, 0, 0, 0, 0, 0, -508, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -587, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -573, 0, 0, 0, 0, 0, 0, -277, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -300, 0, 0, 0, -362, 0, 0, 0, 0, 0, 0, 0, 0, -242, 0, 0, -509, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -36, 0, 0, 0, 0, 0, 0, 0, -510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-407, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-131, 0, 0, 0, 0, 0, 0, 0, -549, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -584, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -264, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -563, 0, 0, 0, 0, 0, -416,
-				0, 0, 0, 0, 0, 0, -485, -44, 0, 0, 0, 0, -545, 0, -354, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -445, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -265, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -482, 0, 0, 0, 0, 0, 0, 0, -45, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -249, 0, 0, 0, 0, 0, 0, -487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -484, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -66, 0, 0, 0, -96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -522, 0, 0, 0, 0, 0, 0, 0, -526, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -558, 0, 0, 0, 0, 0, 0, 0, 0, -444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-560, 0, 0, 0, 0, 0, 0, -577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -148, 0, 0, 0, 0,
-				0, 0, 0, 0, -188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -562, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -564, 0, 0, 0, 0, 0, -473, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -377, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -250, 0, 0, 0, 0, 0, 0, 0, 0,
-				-597, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -603, 0, 0, 0, 0, 0,
-				0, 0, -391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -359, 0, 0, 0, -472, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -266, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -267, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -159, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -162,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -166, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -262, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -386, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -467, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -456, 0, 0, 0, -158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -124, -447, 0, 0, 0, 0,
-				0, 0, 0, 0, -448, -468, -125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -500, 0, 0, 0, 0,
-				0, 0, 0, -475, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -604, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -8, -536, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -537, 0, 0, 0, 0, 0, 0, 0, 0, -191, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -82,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -83, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -340, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-91, 0, 0, 0, 0, 0, 0, 0, 0, 0, -590, 0, 0, 0, 0, 0, -138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -255, 0, 0, 0, 0, 0, 0, 0, -486, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -489, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static short baseCheck[] = BaseCheck.baseCheck;
-
-	@Override
-	public final int baseCheck(int index) {
-		return baseCheck[index];
-	}
-
-	public final static short rhs[] = baseCheck;
-
-	@Override
-	public final int rhs(int index) {
-		return rhs[index];
-	}
-
-	public interface BaseAction {
-		public final static char baseAction[] = { 191, 5, 154, 94, 94, 30, 30, 81, 81, 39, 39, 42, 42, 191, 1, 1, 16,
-				16, 16, 16, 16, 16, 16, 17, 17, 17, 15, 11, 11, 6, 6, 6, 6, 6, 6, 2, 75, 75, 4, 4, 12, 12, 44, 44, 155,
-				155, 156, 67, 67, 43, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
-				157, 157, 157, 132, 132, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 192, 192, 193, 193,
-				194, 160, 160, 161, 161, 158, 158, 162, 159, 159, 21, 21, 22, 22, 23, 23, 23, 24, 24, 24, 24, 25, 25,
-				25, 26, 26, 26, 31, 31, 31, 31, 31, 33, 33, 33, 34, 34, 35, 35, 36, 36, 38, 38, 40, 40, 41, 41, 45, 45,
-				45, 45, 45, 50, 50, 50, 53, 53, 60, 60, 61, 61, 62, 62, 63, 63, 64, 64, 65, 65, 65, 65, 65, 65, 65, 65,
-				65, 65, 65, 65, 65, 29, 29, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 37, 28, 163, 163, 105,
-				105, 195, 195, 104, 218, 218, 82, 82, 82, 82, 82, 82, 82, 82, 82, 83, 83, 83, 79, 79, 66, 66, 196, 196,
-				84, 84, 84, 117, 117, 197, 197, 85, 85, 85, 85, 198, 198, 86, 86, 86, 86, 86, 87, 87, 95, 95, 95, 95,
-				95, 95, 95, 95, 54, 54, 54, 54, 54, 118, 118, 116, 116, 55, 199, 27, 27, 27, 27, 27, 49, 49, 69, 69, 69,
-				69, 69, 137, 137, 133, 133, 133, 133, 133, 134, 134, 134, 135, 135, 135, 136, 136, 136, 165, 165, 165,
-				70, 70, 70, 70, 70, 71, 71, 71, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 106, 138, 138, 138, 138,
-				138, 138, 111, 111, 111, 166, 167, 167, 112, 112, 200, 169, 169, 168, 168, 139, 139, 119, 91, 91, 140,
-				57, 48, 170, 170, 58, 56, 97, 97, 171, 171, 164, 164, 141, 142, 142, 143, 93, 93, 172, 172, 77, 77, 77,
-				73, 73, 72, 78, 78, 80, 80, 68, 68, 68, 59, 98, 98, 108, 107, 107, 51, 51, 74, 74, 76, 76, 52, 109, 109,
-				109, 99, 99, 99, 100, 100, 101, 101, 101, 102, 102, 120, 120, 120, 122, 122, 121, 121, 219, 219, 103,
-				103, 202, 202, 202, 202, 202, 145, 47, 47, 174, 201, 201, 146, 146, 147, 147, 147, 148, 176, 203, 203,
-				32, 32, 110, 114, 114, 114, 114, 205, 124, 123, 123, 113, 113, 113, 177, 178, 178, 178, 178, 178, 178,
-				178, 178, 178, 178, 178, 207, 207, 204, 204, 206, 206, 179, 180, 180, 180, 180, 181, 208, 126, 125, 125,
-				209, 209, 182, 182, 182, 182, 115, 115, 115, 210, 210, 8, 8, 9, 211, 211, 212, 183, 173, 173, 184, 184,
-				185, 186, 186, 7, 7, 10, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
-				213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
-				213, 213, 213, 213, 213, 89, 92, 92, 187, 187, 150, 150, 151, 151, 151, 151, 151, 151, 3, 152, 152, 149,
-				149, 188, 220, 221, 221, 222, 222, 223, 224, 224, 189, 190, 190, 190, 190, 214, 214, 214, 128, 128, 128,
-				128, 128, 129, 130, 130, 127, 127, 96, 90, 88, 88, 175, 175, 131, 131, 215, 215, 215, 153, 153, 144,
-				144, 216, 216, 1119, 35, 3403, 3401, 5379, 1214, 27, 30, 31, 983, 961, 26, 28, 3400, 296, 25, 23, 50,
-				2190, 106, 76, 77, 108, 2209, 2258, 2256, 2736, 1231, 587, 177, 1008, 2792, 308, 2738, 2927, 2878, 2939,
-				1231, 2930, 55, 3066, 176, 3135, 1331, 35, 314, 191, 673, 3230, 35, 312, 266, 243, 3081, 1244, 35, 1044,
-				32, 4550, 3752, 27, 30, 31, 983, 961, 375, 28, 2396, 1513, 269, 264, 265, 6168, 845, 3221, 243, 35, 893,
-				425, 2409, 35, 1044, 32, 5230, 5171, 27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76,
-				77, 108, 2209, 2258, 2256, 2322, 309, 49, 162, 2396, 276, 279, 282, 825, 1180, 501, 35, 433, 1247, 1643,
-				1372, 535, 2544, 2547, 2302, 3163, 352, 1073, 357, 2347, 1564, 497, 2345, 1587, 911, 1142, 1653, 5992,
-				285, 2495, 2356, 2542, 2638, 161, 579, 2149, 2244, 35, 3343, 32, 4550, 1473, 27, 30, 31, 983, 961, 375,
-				28, 243, 35, 330, 1475, 3326, 2243, 1785, 3771, 501, 35, 1535, 1669, 1327, 2409, 35, 1044, 32, 5230,
-				5171, 27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258, 2256,
-				2322, 49, 1967, 162, 1292, 3674, 2608, 985, 550, 576, 3082, 580, 1247, 964, 324, 243, 1527, 1525, 34,
-				2302, 355, 1848, 357, 1329, 2347, 350, 1189, 2345, 921, 2144, 1706, 348, 3327, 2651, 2495, 2356, 2542,
-				2638, 161, 579, 3336, 2231, 69, 720, 3279, 2409, 35, 1044, 32, 5230, 5171, 27, 30, 31, 983, 961, 26, 28,
-				2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258, 2256, 2322, 427, 464, 162, 1579, 35, 1044,
-				32, 5286, 2597, 27, 30, 31, 983, 961, 57, 28, 2433, 1588, 2302, 2642, 1254, 1217, 155, 2347, 62, 1178,
-				2345, 1217, 4752, 550, 576, 3082, 580, 2495, 2356, 2542, 2638, 161, 579, 2120, 35, 1044, 32, 1467, 193,
-				41, 30, 31, 983, 961, 2100, 3086, 94, 332, 2651, 455, 456, 3339, 972, 1331, 35, 490, 480, 5180, 988,
-				585, 2689, 35, 1044, 32, 5230, 5171, 27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76,
-				77, 108, 2209, 2258, 2256, 2322, 1685, 266, 162, 243, 35, 2691, 1992, 550, 576, 3082, 580, 1582, 243,
-				35, 893, 425, 1572, 2131, 2302, 278, 264, 265, 1793, 2347, 2379, 2197, 2345, 62, 3264, 3088, 1245, 4869,
-				2651, 2495, 2356, 2542, 2638, 161, 579, 2757, 35, 1044, 32, 5230, 489, 27, 30, 31, 983, 961, 26, 28,
-				2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258, 2256, 2736, 2485, 61, 177, 765, 2792, 155,
-				2738, 2927, 2878, 2939, 1217, 2930, 1733, 3066, 176, 2673, 3771, 2660, 2573, 415, 1627, 35, 1044, 32,
-				5286, 2149, 27, 30, 31, 983, 961, 56, 28, 3687, 551, 576, 3082, 580, 243, 35, 317, 2477, 35, 1044, 32,
-				5230, 141, 27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258,
-				2256, 2736, 155, 2789, 177, 1329, 2792, 6246, 2738, 2927, 2878, 2939, 1371, 2930, 369, 3066, 176, 2673,
-				483, 2689, 2735, 415, 3325, 35, 1044, 32, 5230, 2234, 27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23,
-				50, 2190, 106, 76, 77, 108, 2209, 2258, 2256, 3434, 1951, 1344, 255, 1595, 422, 416, 2688, 3164, 2551,
-				35, 1044, 32, 5230, 484, 27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108,
-				2209, 2258, 2256, 2736, 428, 464, 177, 1515, 2792, 1941, 2738, 2927, 2878, 2939, 760, 2930, 1563, 3066,
-				176, 2673, 266, 3138, 743, 415, 243, 3221, 2202, 35, 1044, 32, 2745, 60, 2604, 30, 31, 983, 961, 418,
-				281, 264, 265, 423, 416, 2688, 3019, 35, 1044, 32, 5230, 1095, 27, 30, 31, 983, 961, 26, 28, 2143, 296,
-				25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258, 2256, 2736, 1516, 62, 177, 148, 2792, 4956, 2738, 2927,
-				2878, 2939, 413, 2930, 1985, 3066, 176, 243, 35, 893, 425, 191, 3325, 35, 1044, 32, 5230, 360, 27, 30,
-				31, 983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258, 2256, 2736, 468, 243,
-				35, 3669, 3573, 413, 416, 2688, 3019, 35, 1044, 32, 5230, 1515, 27, 30, 31, 983, 961, 26, 28, 2143, 296,
-				25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258, 2256, 2736, 3135, 62, 177, 668, 2792, 5014, 2738, 2927,
-				2878, 2939, 325, 2930, 359, 3066, 176, 243, 35, 1525, 311, 409, 2443, 594, 3019, 35, 1044, 32, 5230,
-				2218, 27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258, 2256,
-				2736, 2836, 93, 177, 2579, 2792, 3326, 2738, 2927, 2878, 2939, 1577, 2930, 2248, 3066, 176, 243, 35,
-				893, 425, 409, 3019, 35, 1044, 32, 5230, 2074, 27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50,
-				2190, 106, 76, 77, 108, 2209, 2258, 2256, 2736, 471, 499, 177, 1964, 2792, 155, 2738, 2927, 2878, 2939,
-				677, 2930, 426, 3066, 176, 243, 35, 1525, 313, 409, 1862, 2920, 408, 2897, 35, 1044, 32, 5230, 3089, 27,
-				30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258, 2256, 2736, 2557,
-				1475, 571, 2864, 2792, 3771, 2738, 2927, 2878, 2939, 365, 2930, 2721, 2999, 197, 3674, 2621, 35, 1044,
-				32, 5230, 407, 27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258,
-				2256, 2736, 2536, 2149, 177, 3089, 2792, 4517, 2738, 2927, 2878, 2939, 2841, 2930, 1449, 3066, 176, 42,
-				2674, 1329, 2608, 175, 1571, 501, 35, 433, 363, 405, 368, 845, 3221, 3142, 35, 1044, 32, 5230, 2309, 27,
-				30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258, 2256, 2322, 4469,
-				2719, 162, 1361, 35, 1044, 32, 4550, 1473, 27, 30, 31, 983, 961, 375, 28, 1258, 2779, 2302, 71, 1210,
-				330, 4351, 2347, 1515, 215, 2345, 44, 2674, 273, 296, 2149, 2142, 2495, 2356, 2542, 2638, 161, 173,
-				3142, 35, 1044, 32, 5230, 379, 27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77,
-				108, 2209, 2258, 2256, 2322, 1515, 266, 162, 718, 430, 464, 2605, 35, 312, 355, 1848, 357, 155, 418,
-				350, 1189, 2040, 2124, 2302, 274, 264, 265, 3337, 2347, 412, 62, 2345, 585, 1515, 5076, 349, 2936, 230,
-				2495, 2356, 2542, 2638, 161, 172, 3142, 35, 1044, 32, 5230, 324, 27, 30, 31, 983, 961, 26, 28, 2143,
-				296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258, 2256, 2322, 586, 266, 162, 2049, 1515, 2510, 838,
-				2770, 3279, 501, 35, 433, 343, 346, 626, 1437, 1375, 155, 2302, 284, 264, 265, 770, 2347, 429, 464,
-				2345, 1304, 412, 273, 296, 2821, 499, 2495, 2356, 2542, 2638, 161, 171, 3142, 35, 1044, 32, 5230, 2821,
-				27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258, 2256, 2322,
-				410, 266, 162, 1361, 35, 1044, 32, 4550, 1473, 27, 30, 31, 983, 961, 375, 28, 2129, 155, 2302, 274, 264,
-				265, 4351, 2347, 2589, 2685, 2345, 1331, 35, 567, 479, 5400, 493, 2495, 2356, 2542, 2638, 161, 170,
-				3142, 35, 1044, 32, 5230, 379, 27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77,
-				108, 2209, 2258, 2256, 2322, 3683, 266, 162, 3393, 2772, 243, 35, 1525, 316, 355, 1848, 357, 155, 1173,
-				350, 1189, 2298, 841, 2302, 287, 264, 265, 238, 2347, 1515, 62, 2345, 3375, 3049, 5300, 2034, 70, 499,
-				2495, 2356, 2542, 2638, 161, 169, 3142, 35, 1044, 32, 5230, 71, 27, 30, 31, 983, 961, 26, 28, 2143, 296,
-				25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258, 2256, 2322, 1515, 266, 162, 1361, 35, 1044, 32, 4550,
-				1473, 27, 30, 31, 983, 961, 375, 28, 2828, 155, 2302, 278, 264, 265, 4351, 2347, 3125, 3085, 2345, 361,
-				664, 3111, 243, 35, 330, 2495, 2356, 2542, 2638, 161, 168, 3142, 35, 1044, 32, 5230, 379, 27, 30, 31,
-				983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258, 2256, 2322, 3136, 266, 162,
-				3393, 1597, 35, 314, 3138, 5913, 355, 1848, 357, 243, 3666, 350, 1189, 2533, 155, 2302, 281, 264, 265,
-				4351, 2347, 1515, 413, 2345, 3378, 1848, 3112, 3677, 3181, 5905, 2495, 2356, 2542, 2638, 161, 167, 3142,
-				35, 1044, 32, 5230, 379, 27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108,
-				2209, 2258, 2256, 2322, 1515, 1862, 162, 3393, 2111, 35, 1044, 32, 5404, 3085, 27, 30, 31, 983, 961, 26,
-				28, 2889, 2302, 548, 2605, 35, 315, 2347, 588, 2234, 2345, 3381, 1331, 35, 490, 358, 5180, 2495, 2356,
-				2542, 2638, 161, 166, 3142, 35, 1044, 32, 5230, 1862, 27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23,
-				50, 2190, 106, 76, 77, 108, 2209, 2258, 2256, 2322, 988, 1862, 162, 1855, 35, 1044, 32, 5404, 534, 27,
-				30, 31, 983, 961, 59, 28, 3748, 2720, 2302, 392, 71, 35, 330, 2347, 1515, 1582, 2345, 88, 594, 1840,
-				102, 414, 1515, 2495, 2356, 2542, 2638, 161, 165, 3142, 35, 1044, 32, 5230, 313, 27, 30, 31, 983, 961,
-				26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258, 2256, 2322, 1515, 266, 162, 1855, 35,
-				1044, 32, 5404, 2532, 27, 30, 31, 983, 961, 58, 28, 3855, 155, 2302, 284, 264, 265, 4052, 2347, 587,
-				3286, 2345, 243, 35, 1525, 3668, 499, 1515, 2495, 2356, 2542, 2638, 161, 164, 3142, 35, 1044, 32, 5230,
-				1158, 27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258, 2256,
-				2322, 2648, 266, 162, 2202, 35, 1044, 32, 838, 2626, 40, 30, 31, 983, 961, 487, 2689, 2735, 840, 2302,
-				570, 264, 265, 4351, 2347, 3068, 1220, 2345, 1939, 1304, 243, 35, 1525, 566, 2495, 2356, 2542, 2638,
-				161, 163, 3019, 35, 1044, 32, 5230, 379, 27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106,
-				76, 77, 108, 2209, 2258, 2256, 2736, 1665, 1231, 177, 1182, 2792, 2418, 2738, 2927, 2878, 2939, 484,
-				2930, 1231, 3066, 176, 243, 35, 893, 425, 188, 3019, 35, 1044, 32, 5230, 931, 27, 30, 31, 983, 961, 26,
-				28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258, 2256, 2736, 470, 320, 177, 496, 2792,
-				155, 2738, 2927, 2878, 2939, 3385, 2930, 1512, 3066, 176, 243, 35, 893, 425, 187, 3019, 35, 1044, 32,
-				5230, 2218, 27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258,
-				2256, 2736, 469, 496, 177, 1231, 2792, 155, 2738, 2927, 2878, 2939, 5873, 2930, 362, 3066, 176, 243,
-				3675, 1525, 74, 186, 3019, 35, 1044, 32, 5230, 2218, 27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23,
-				50, 2190, 106, 76, 77, 108, 2209, 2258, 2256, 2736, 3138, 458, 177, 3078, 2792, 155, 2738, 2927, 2878,
-				2939, 5885, 2930, 340, 3066, 176, 1741, 35, 1525, 3676, 185, 3019, 35, 1044, 32, 5230, 2218, 27, 30, 31,
-				983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258, 2256, 2736, 155, 1231, 177,
-				5784, 2792, 671, 2738, 2927, 2878, 2939, 410, 2930, 332, 3066, 176, 1741, 35, 1525, 311, 184, 3019, 35,
-				1044, 32, 5230, 3244, 27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209,
-				2258, 2256, 2736, 155, 1231, 177, 1231, 2792, 5961, 2738, 2927, 2878, 2939, 836, 2930, 419, 3066, 176,
-				243, 35, 1525, 3680, 183, 3019, 35, 1044, 32, 5230, 1371, 27, 30, 31, 983, 961, 26, 28, 2143, 296, 25,
-				23, 50, 2190, 106, 76, 77, 108, 2209, 2258, 2256, 2736, 155, 51, 177, 391, 2792, 743, 2738, 2927, 2878,
-				2939, 155, 2930, 594, 3066, 176, 1052, 2218, 339, 1371, 182, 3019, 35, 1044, 32, 5230, 1371, 27, 30, 31,
-				983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258, 2256, 2736, 155, 97, 177,
-				98, 2792, 1542, 2738, 2927, 2878, 2939, 338, 2930, 1776, 3066, 176, 586, 2218, 335, 2431, 181, 3019, 35,
-				1044, 32, 5230, 2075, 27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209,
-				2258, 2256, 2736, 155, 574, 177, 331, 2792, 2463, 2738, 2927, 2878, 2939, 441, 2930, 155, 3066, 176,
-				1515, 2398, 2768, 2938, 180, 3019, 35, 1044, 32, 5230, 2218, 27, 30, 31, 983, 961, 26, 28, 2143, 296,
-				25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258, 2256, 2736, 155, 3136, 177, 321, 2792, 1516, 2738, 2927,
-				2878, 2939, 2824, 2930, 155, 3066, 176, 399, 933, 1602, 1012, 179, 3019, 35, 1044, 32, 5230, 1450, 27,
-				30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258, 2256, 2736, 2464,
-				1936, 177, 2544, 2792, 155, 2738, 2927, 2878, 2939, 802, 2930, 322, 3066, 176, 243, 35, 893, 425, 178,
-				3019, 35, 1044, 32, 5230, 1292, 27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77,
-				108, 2209, 2258, 2256, 2736, 308, 2732, 177, 2074, 2792, 3178, 2738, 2927, 2878, 2939, 155, 2930, 1474,
-				3066, 176, 1000, 2926, 35, 565, 192, 3203, 35, 1044, 32, 5230, 1862, 27, 30, 31, 983, 961, 26, 28, 2143,
-				296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258, 2256, 2322, 1862, 2378, 162, 2202, 35, 1044, 32,
-				2923, 2881, 3041, 30, 31, 983, 961, 364, 371, 1965, 582, 2302, 89, 155, 475, 102, 2347, 155, 3284, 2345,
-				310, 1371, 3477, 5761, 2234, 2509, 2495, 2356, 2542, 2638, 161, 160, 3019, 35, 1044, 32, 5230, 2260, 27,
-				30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258, 2256, 2736, 485,
-				334, 177, 1241, 2792, 439, 2738, 2927, 2878, 2939, 2698, 2930, 1933, 3066, 176, 389, 2192, 2614, 1862,
-				140, 3264, 35, 1044, 32, 5230, 2234, 27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76,
-				77, 108, 2209, 2258, 2256, 2736, 155, 24, 177, 3075, 2792, 4060, 2738, 2927, 2878, 2939, 1371, 2930, 62,
-				3066, 176, 3172, 6028, 1862, 1371, 222, 3325, 35, 1044, 32, 5230, 1648, 27, 30, 31, 983, 961, 26, 28,
-				2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258, 2256, 2736, 386, 1292, 212, 390, 2792, 1371,
-				2738, 2927, 2878, 2939, 232, 2930, 1862, 2999, 197, 3325, 35, 1044, 32, 5230, 1371, 27, 30, 31, 983,
-				961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258, 2256, 2736, 69, 2234, 231, 2130,
-				2792, 155, 2738, 2927, 2878, 2939, 3486, 2930, 62, 2999, 197, 155, 6064, 443, 1371, 2438, 640, 1371,
-				757, 2251, 3273, 2437, 243, 35, 893, 425, 3325, 35, 1044, 32, 5230, 460, 27, 30, 31, 983, 961, 26, 28,
-				2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258, 2256, 2736, 235, 49, 227, 233, 2792, 2862,
-				2738, 2927, 2878, 2939, 1533, 2930, 46, 2999, 197, 3325, 35, 1044, 32, 5230, 329, 27, 30, 31, 983, 961,
-				26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258, 2256, 2736, 388, 1475, 571, 2516,
-				2792, 3771, 2738, 2927, 2878, 2939, 155, 2930, 155, 2999, 197, 1194, 1936, 4360, 155, 380, 2944, 2862,
-				385, 5198, 1383, 243, 35, 893, 425, 578, 3325, 35, 1044, 32, 5230, 3630, 27, 30, 31, 983, 961, 26, 28,
-				2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258, 2256, 2736, 308, 3234, 848, 1329, 2792, 1371,
-				2738, 2927, 2878, 2939, 3178, 2930, 368, 2999, 197, 3487, 35, 1044, 32, 5230, 459, 27, 30, 31, 983, 961,
-				26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258, 2256, 2736, 1039, 1862, 4382, 1862,
-				2792, 155, 2738, 2927, 2878, 2939, 4483, 2930, 1475, 2999, 197, 155, 3771, 2645, 2583, 1569, 1326, 155,
-				4668, 1936, 370, 371, 1974, 2919, 1371, 155, 1371, 68, 376, 53, 2438, 462, 2951, 35, 1044, 32, 5230,
-				598, 27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258, 2256,
-				2322, 379, 189, 2616, 2030, 256, 934, 226, 3771, 1329, 2576, 2945, 3178, 2610, 2615, 2535, 2219, 417,
-				368, 3288, 2676, 3433, 35, 1044, 32, 5230, 3393, 27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50,
-				2190, 106, 76, 77, 108, 2209, 2258, 2256, 2322, 4316, 829, 2861, 2433, 2647, 1475, 4351, 2650, 1217,
-				3771, 2716, 2746, 2206, 2209, 3048, 1329, 1935, 2293, 2302, 4351, 3172, 371, 3041, 2347, 3327, 2299,
-				2345, 3273, 3945, 1087, 3792, 193, 3730, 2495, 2356, 3498, 3325, 35, 1044, 32, 5230, 3945, 27, 30, 31,
-				983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258, 2256, 2736, 1937, 1329,
-				2300, 2532, 2792, 2307, 2738, 2927, 2878, 2939, 368, 3585, 3379, 35, 1044, 32, 5230, 2547, 27, 30, 31,
-				983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258, 2256, 2322, 388, 4805, 397,
-				1860, 3293, 2450, 3599, 2698, 1854, 4351, 1862, 660, 5825, 1936, 96, 542, 915, 2297, 2302, 380, 2944,
-				2862, 385, 2347, 2751, 2649, 2345, 2753, 2754, 378, 87, 3945, 1098, 2495, 3490, 3325, 35, 1044, 32,
-				5230, 87, 27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258, 2256,
-				2736, 539, 541, 3178, 1103, 2792, 2292, 2738, 2927, 2878, 3582, 3379, 35, 1044, 32, 5230, 2468, 27, 30,
-				31, 983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258, 2256, 2322, 3186, 3110,
-				3171, 2592, 2744, 2748, 2790, 1351, 542, 1949, 2979, 1853, 2796, 2722, 2780, 2839, 3013, 3042, 2302,
-				3043, 3073, 366, 371, 2347, 1995, 173, 2345, 1862, 3325, 35, 1044, 32, 5230, 3484, 27, 30, 31, 983, 961,
-				26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258, 2256, 2736, 539, 541, 52, 2976, 2792,
-				3108, 2738, 2927, 3583, 3379, 35, 1044, 32, 5230, 1862, 27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23,
-				50, 2190, 106, 76, 77, 108, 2209, 2258, 2256, 2322, 467, 3667, 1862, 2728, 2147, 3075, 3104, 3007, 488,
-				3134, 3201, 3151, 3294, 3258, 2981, 2677, 3167, 3292, 2302, 2216, 2982, 6914, 6914, 2347, 1862, 2217,
-				3489, 3325, 35, 1044, 32, 5230, 3174, 27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106,
-				76, 77, 108, 2209, 2258, 2256, 2736, 90, 143, 6914, 6914, 2792, 6914, 2738, 3579, 3379, 35, 1044, 32,
-				5230, 6914, 27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258,
-				2256, 2322, 1259, 35, 1044, 32, 4952, 1473, 27, 30, 31, 983, 961, 375, 28, 6914, 6914, 6914, 6914, 6914,
-				2302, 243, 35, 893, 425, 3476, 3325, 35, 1044, 32, 5230, 6914, 27, 30, 31, 983, 961, 26, 28, 2143, 296,
-				25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258, 2256, 2736, 49, 6914, 6914, 6914, 2792, 2433, 3581,
-				6914, 1329, 6914, 1217, 1247, 1867, 1862, 1862, 1862, 1862, 368, 6914, 6914, 6914, 355, 1848, 357, 6914,
-				6914, 350, 1189, 1460, 35, 1044, 32, 4952, 193, 27, 30, 31, 983, 961, 375, 28, 6914, 349, 3266, 3276,
-				5047, 5109, 3831, 3379, 35, 1044, 32, 5230, 1862, 27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50,
-				2190, 106, 76, 77, 108, 2209, 2258, 2256, 2322, 6914, 6914, 6914, 1862, 1862, 3048, 1862, 1862, 5211,
-				1862, 4351, 6914, 1329, 6914, 6914, 342, 346, 626, 3478, 6914, 6914, 369, 6914, 6914, 6914, 355, 1848,
-				357, 6914, 6914, 353, 1189, 3945, 67, 66, 3641, 65, 64, 1105, 1991, 3379, 35, 1044, 32, 5230, 1256, 27,
-				30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258, 2256, 2322, 1525,
-				35, 1044, 32, 4550, 3376, 27, 30, 31, 983, 961, 375, 28, 3325, 35, 1044, 32, 5230, 3480, 27, 30, 31,
-				983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258, 2256, 2736, 6914, 542,
-				6914, 6914, 3574, 1222, 35, 3343, 32, 4952, 1473, 27, 30, 31, 983, 961, 375, 28, 1339, 35, 1044, 32,
-				4550, 3990, 27, 30, 31, 983, 961, 375, 28, 6914, 355, 1848, 357, 1862, 1862, 350, 1189, 6914, 388, 6914,
-				157, 35, 893, 425, 6914, 6914, 540, 541, 6914, 1862, 6914, 3333, 1862, 6914, 6914, 440, 1862, 380, 2944,
-				2862, 385, 1862, 1329, 2123, 55, 1465, 6914, 3329, 2395, 2433, 4351, 368, 49, 1465, 1217, 355, 1848,
-				357, 4351, 54, 350, 1189, 3291, 1247, 1244, 6914, 101, 6914, 352, 1073, 357, 5371, 3945, 6914, 6914,
-				6914, 2231, 193, 592, 6914, 3945, 3831, 3325, 35, 1044, 32, 5230, 2782, 27, 30, 31, 983, 961, 26, 28,
-				2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258, 2256, 3436, 3325, 35, 1044, 32, 5230, 6914,
-				27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258, 2256, 3437,
-				6914, 6914, 6914, 6914, 402, 2643, 155, 6914, 155, 6914, 1217, 1217, 396, 1217, 6914, 6914, 6914, 6914,
-				4021, 6914, 396, 6914, 6914, 6914, 6914, 6914, 454, 456, 3339, 2839, 3122, 3165, 921, 189, 189, 6914,
-				189, 3816, 3122, 3165, 6914, 6914, 3084, 2486, 234, 3497, 6914, 6914, 3325, 35, 1044, 32, 5230, 2893,
-				27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258, 2256, 3575,
-				3325, 35, 1044, 32, 5230, 6914, 27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77,
-				108, 2209, 2258, 2256, 3576, 3325, 35, 1044, 32, 5230, 6914, 27, 30, 31, 983, 961, 26, 28, 2143, 296,
-				25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258, 2256, 3577, 3325, 35, 1044, 32, 5230, 6914, 27, 30, 31,
-				983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258, 2256, 3578, 1723, 35, 1044,
-				32, 4550, 5056, 27, 30, 31, 983, 961, 375, 28, 6914, 6914, 6914, 6914, 1504, 6914, 6914, 6914, 3771,
-				6914, 6914, 6914, 3325, 35, 1044, 32, 5230, 387, 27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50,
-				2190, 106, 76, 77, 108, 2209, 2258, 2256, 3688, 3541, 35, 893, 425, 4027, 6914, 155, 155, 6914, 1936,
-				832, 1217, 1217, 271, 296, 4351, 6914, 6914, 155, 6914, 355, 1848, 357, 1217, 1329, 350, 1189, 6914,
-				388, 6914, 6914, 2711, 308, 369, 189, 189, 1217, 379, 6914, 6914, 6914, 2034, 6914, 3584, 3881, 388,
-				189, 380, 2944, 2862, 385, 266, 6914, 6914, 6914, 3882, 6914, 2991, 6914, 189, 3178, 6914, 3278, 6914,
-				382, 2944, 2862, 385, 195, 269, 264, 265, 3325, 35, 1044, 32, 5230, 6914, 27, 30, 31, 983, 961, 26, 28,
-				2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258, 3439, 6914, 6914, 6914, 6914, 6914, 6914,
-				6914, 6914, 309, 6914, 6914, 6914, 276, 279, 282, 825, 1180, 6914, 3282, 371, 1460, 35, 1044, 32, 4952,
-				6914, 27, 30, 31, 983, 961, 375, 28, 6914, 1936, 1587, 911, 1142, 1653, 5992, 285, 3325, 35, 1044, 32,
-				5230, 6914, 27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209, 2258,
-				3451, 1785, 259, 6914, 6914, 6914, 1778, 598, 6914, 6914, 3771, 4351, 6914, 1329, 6914, 2820, 6914,
-				6914, 155, 3178, 4521, 6914, 369, 1217, 6914, 6914, 355, 1848, 357, 262, 189, 351, 1189, 3945, 6914,
-				157, 35, 893, 425, 2984, 6914, 213, 6914, 155, 1515, 387, 189, 6914, 1217, 237, 249, 652, 6914, 6914,
-				6914, 3884, 236, 246, 247, 248, 250, 4020, 4048, 6914, 1, 1329, 6914, 49, 202, 598, 6914, 189, 6914,
-				6914, 368, 3290, 371, 6914, 1247, 1045, 3885, 201, 6914, 6914, 216, 200, 203, 204, 205, 206, 207, 262,
-				189, 6914, 6914, 388, 6914, 243, 35, 893, 425, 2984, 3187, 213, 4316, 155, 1515, 6914, 6914, 396, 1217,
-				237, 249, 652, 380, 2944, 2862, 385, 236, 246, 247, 248, 250, 6914, 2991, 6914, 3665, 3122, 3165, 49,
-				202, 6914, 6914, 189, 6914, 6914, 6914, 6914, 6914, 6914, 1247, 1400, 2533, 201, 6914, 214, 217, 200,
-				203, 204, 205, 206, 207, 2332, 35, 1044, 32, 4550, 3376, 27, 30, 31, 983, 961, 375, 28, 3325, 35, 1044,
-				32, 5230, 6914, 27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 2209, 3383,
-				6914, 6914, 3325, 35, 1044, 32, 5230, 4579, 27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190,
-				106, 76, 77, 108, 2209, 3384, 6914, 6914, 6914, 6914, 6914, 155, 6914, 355, 1848, 357, 1217, 345, 350,
-				1189, 6914, 388, 598, 6914, 155, 329, 35, 893, 425, 598, 2433, 6914, 1854, 6914, 589, 1217, 5825, 6914,
-				6914, 189, 380, 2944, 2862, 385, 262, 189, 6914, 6914, 4039, 6914, 590, 379, 189, 6914, 2984, 6914, 213,
-				49, 193, 1515, 6914, 221, 6914, 6914, 237, 249, 652, 6914, 1247, 47, 6914, 236, 246, 247, 248, 250,
-				1904, 6914, 1889, 35, 1044, 32, 4952, 202, 27, 30, 31, 983, 961, 375, 28, 6914, 757, 6914, 6914, 6914,
-				201, 6914, 6914, 3632, 200, 203, 204, 205, 206, 207, 3325, 35, 1044, 32, 5230, 6914, 27, 30, 31, 983,
-				961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 3387, 6914, 6914, 6914, 6914, 431, 4036,
-				6914, 1329, 6914, 598, 6914, 3818, 415, 35, 893, 425, 369, 1995, 6914, 6914, 355, 1848, 357, 6914, 6914,
-				351, 1189, 6914, 388, 6914, 155, 262, 189, 6914, 6914, 4351, 6914, 2643, 6914, 6914, 6914, 2984, 598,
-				213, 49, 6914, 1515, 382, 2944, 2862, 385, 237, 249, 652, 6914, 1247, 47, 379, 236, 246, 247, 248, 250,
-				6914, 3180, 189, 517, 6914, 6914, 6914, 202, 598, 6914, 6914, 2984, 6914, 213, 6914, 6914, 1199, 6914,
-				6914, 3393, 201, 466, 6914, 211, 200, 203, 204, 205, 206, 207, 262, 189, 157, 35, 893, 425, 415, 35,
-				893, 425, 2984, 6914, 213, 3382, 6914, 1515, 6914, 6914, 3586, 6914, 237, 249, 652, 229, 6914, 6914,
-				6914, 236, 246, 247, 248, 250, 6914, 6914, 49, 603, 6914, 6914, 49, 202, 598, 6914, 6914, 2644, 6914,
-				1247, 1983, 6914, 598, 1247, 47, 6914, 201, 6914, 6914, 209, 200, 203, 204, 205, 206, 207, 262, 189,
-				157, 35, 893, 425, 6914, 3187, 379, 189, 2984, 2053, 213, 6914, 6914, 1515, 6914, 6914, 221, 6914, 237,
-				249, 652, 6914, 6914, 6914, 6914, 236, 246, 247, 248, 250, 6914, 1904, 49, 689, 6914, 6914, 6914, 202,
-				598, 6914, 6914, 6914, 1778, 1247, 47, 6914, 3771, 4351, 6914, 6914, 201, 6914, 6914, 210, 200, 203,
-				204, 205, 206, 207, 262, 189, 759, 35, 893, 425, 6914, 1065, 6914, 3945, 2984, 6914, 213, 6914, 6914,
-				1515, 6914, 6914, 4993, 230, 237, 249, 652, 6914, 6914, 6914, 6914, 236, 246, 247, 248, 250, 6914, 6914,
-				49, 775, 223, 6914, 6914, 202, 598, 1329, 2433, 6914, 6914, 1247, 47, 1217, 6914, 6914, 368, 6914, 201,
-				6914, 6914, 220, 200, 203, 204, 205, 206, 207, 262, 189, 6914, 6914, 6914, 6914, 6914, 1931, 193, 6914,
-				2984, 6914, 213, 6914, 6914, 1515, 6914, 6914, 4805, 6914, 237, 249, 652, 396, 6914, 6914, 6914, 236,
-				246, 247, 248, 250, 6914, 6914, 6914, 3639, 35, 554, 6914, 202, 3665, 3122, 3165, 6914, 157, 35, 893,
-				425, 271, 296, 6914, 6914, 201, 6914, 3224, 3682, 200, 203, 204, 205, 206, 207, 1643, 35, 1044, 32,
-				4550, 1473, 27, 30, 31, 983, 961, 375, 28, 861, 49, 6914, 6914, 6914, 598, 2054, 35, 893, 425, 4043,
-				266, 1247, 47, 6914, 6914, 6914, 6914, 6914, 2057, 35, 893, 425, 6914, 6914, 6914, 6914, 262, 189, 269,
-				264, 265, 6914, 6914, 6914, 6914, 973, 2984, 308, 213, 6914, 6914, 1515, 6914, 6914, 6914, 6914, 237,
-				249, 652, 6914, 49, 6914, 6914, 236, 246, 247, 248, 250, 355, 1848, 357, 1247, 2817, 350, 1189, 202,
-				6914, 6914, 6914, 276, 279, 282, 825, 1180, 415, 35, 893, 425, 201, 349, 6914, 225, 200, 203, 204, 205,
-				206, 207, 243, 35, 893, 425, 1719, 1851, 1917, 2115, 6230, 947, 6914, 6914, 6914, 6914, 598, 6914, 6914,
-				6914, 49, 6914, 6914, 6914, 6914, 3670, 6914, 6914, 6914, 6914, 6914, 1247, 2877, 6914, 49, 6914, 6914,
-				6914, 262, 189, 6914, 342, 346, 626, 6914, 1247, 2868, 6914, 2984, 6914, 213, 72, 6914, 1515, 6914,
-				5217, 6914, 6914, 237, 249, 652, 563, 564, 568, 3289, 236, 246, 247, 248, 250, 6914, 1256, 6914, 1033,
-				6914, 6914, 6914, 202, 598, 6914, 6914, 2434, 35, 893, 425, 6914, 6914, 2181, 6914, 6914, 201, 6914,
-				6914, 219, 200, 203, 204, 205, 206, 207, 262, 189, 243, 35, 893, 425, 243, 35, 893, 425, 2984, 6914,
-				213, 49, 6914, 1515, 6914, 6914, 6914, 6914, 237, 249, 652, 6914, 1247, 2989, 6914, 236, 246, 247, 248,
-				250, 6914, 6914, 49, 6914, 6914, 6914, 49, 202, 6914, 6914, 6914, 6914, 6914, 1247, 2830, 6914, 2782,
-				1247, 2817, 6914, 201, 6914, 6914, 228, 200, 203, 204, 205, 206, 207, 3325, 35, 1044, 32, 5230, 6914,
-				27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 3388, 3325, 35, 1044, 32,
-				5230, 6914, 27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77, 108, 3396, 3325, 35,
-				1044, 32, 5230, 6914, 27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77, 85, 3325,
-				1527, 1044, 3280, 5230, 6914, 27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77,
-				84, 3325, 35, 1044, 32, 5230, 6914, 27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76,
-				77, 83, 3325, 35, 1044, 32, 5230, 6914, 27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 106,
-				76, 77, 82, 3325, 35, 1044, 32, 5230, 6914, 27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190,
-				106, 76, 77, 81, 3325, 35, 1044, 32, 5230, 6914, 27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50,
-				2190, 106, 76, 77, 80, 3325, 35, 1044, 32, 5230, 6914, 27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23,
-				50, 2190, 106, 76, 77, 79, 3325, 35, 1044, 32, 5230, 6914, 27, 30, 31, 983, 961, 26, 28, 2143, 296, 25,
-				23, 50, 2190, 106, 76, 77, 78, 3080, 35, 1044, 32, 5230, 6914, 27, 30, 31, 983, 961, 26, 28, 2143, 296,
-				25, 23, 50, 2190, 106, 76, 77, 104, 3325, 35, 1044, 32, 5230, 6914, 27, 30, 31, 983, 961, 26, 28, 2143,
-				296, 25, 23, 50, 2190, 106, 76, 77, 110, 3325, 35, 1044, 32, 5230, 6914, 27, 30, 31, 983, 961, 26, 28,
-				2143, 296, 25, 23, 50, 2190, 106, 76, 77, 109, 3325, 35, 1044, 32, 5230, 6914, 27, 30, 31, 983, 961, 26,
-				28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77, 107, 3325, 35, 1044, 32, 5230, 6914, 27, 30, 31, 983, 961,
-				26, 28, 2143, 296, 25, 23, 50, 2190, 106, 76, 77, 105, 1689, 6914, 6914, 6914, 6914, 4351, 6914, 6914,
-				6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 157, 35, 893, 425, 1754, 35, 1044, 32, 5230,
-				262, 27, 30, 31, 983, 961, 26, 28, 2143, 296, 25, 23, 50, 2190, 86, 76, 77, 6914, 6914, 6914, 239, 249,
-				652, 49, 6914, 6914, 6914, 238, 246, 247, 248, 250, 6914, 6914, 1247, 47, 6914, 6914, 6914, 1899, 155,
-				6914, 6914, 6914, 4351, 4351, 6914, 6914, 6914, 155, 155, 1988, 6914, 6914, 4351, 4351, 4351, 6914,
-				1259, 6914, 6914, 6914, 240, 242, 244, 666, 262, 379, 251, 241, 243, 157, 35, 893, 425, 6914, 379, 379,
-				262, 243, 35, 893, 425, 6914, 6914, 6914, 239, 249, 652, 13, 6914, 6086, 3393, 238, 246, 247, 248, 250,
-				239, 249, 652, 3393, 3393, 49, 6914, 238, 246, 247, 248, 250, 6914, 49, 6914, 6914, 1247, 47, 546, 6914,
-				6914, 6914, 6914, 6914, 1247, 646, 6914, 544, 3817, 2077, 240, 242, 244, 666, 4351, 6914, 251, 241, 243,
-				6914, 1390, 155, 240, 242, 244, 666, 4351, 6914, 251, 241, 243, 6914, 6914, 6914, 6914, 6914, 262, 2369,
-				6914, 6086, 3590, 35, 893, 425, 4027, 6914, 628, 6914, 379, 2416, 6914, 6086, 6914, 272, 296, 6914, 239,
-				249, 652, 6914, 6914, 6914, 6914, 238, 246, 247, 248, 250, 6914, 6914, 6914, 6914, 308, 3393, 6914,
-				1810, 157, 35, 893, 425, 4351, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 266, 6914,
-				6914, 6914, 6914, 6914, 597, 240, 242, 244, 666, 262, 6914, 251, 241, 243, 6914, 49, 270, 264, 265, 157,
-				35, 893, 425, 6914, 6914, 6914, 1247, 47, 155, 239, 249, 652, 2595, 598, 6086, 6914, 238, 246, 247, 248,
-				250, 1414, 6914, 6914, 6914, 6914, 4351, 6914, 6914, 6914, 2312, 49, 6914, 309, 6914, 379, 189, 277,
-				280, 283, 825, 1180, 1247, 47, 2166, 2945, 6914, 6914, 262, 4351, 6914, 240, 242, 244, 666, 6914, 6914,
-				581, 241, 243, 3393, 6914, 6914, 6914, 6914, 286, 2359, 155, 239, 249, 652, 262, 598, 6914, 6914, 238,
-				246, 247, 248, 250, 6914, 6914, 6914, 6914, 2861, 6914, 6914, 6914, 6914, 6914, 6914, 239, 249, 652,
-				379, 189, 6914, 6914, 238, 246, 247, 248, 250, 2255, 3262, 6914, 6914, 6914, 4351, 6914, 240, 242, 244,
-				666, 6914, 2344, 252, 241, 243, 3393, 4351, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 262,
-				6914, 6914, 240, 242, 244, 666, 6914, 6914, 582, 241, 243, 262, 3033, 6914, 6914, 6914, 6914, 6914,
-				6914, 239, 249, 652, 6914, 6914, 6914, 6914, 238, 246, 247, 248, 250, 239, 249, 652, 3688, 35, 554,
-				6914, 238, 246, 247, 248, 250, 6914, 6914, 6914, 6914, 272, 296, 6914, 1180, 6914, 6914, 6914, 4612,
-				4351, 6914, 6914, 6914, 6914, 3005, 240, 242, 244, 666, 4351, 1297, 341, 241, 243, 4612, 4351, 6914,
-				240, 242, 244, 666, 262, 6914, 536, 241, 243, 6914, 155, 6914, 266, 6914, 379, 598, 6914, 593, 155,
-				6914, 262, 6914, 6914, 598, 2644, 444, 4003, 6914, 6914, 6914, 270, 264, 265, 6914, 6914, 6914, 6914,
-				379, 189, 3393, 2644, 444, 4003, 6914, 6914, 379, 189, 2945, 6914, 6914, 6914, 155, 6914, 6914, 6914,
-				221, 598, 6914, 6914, 6914, 6914, 6914, 3393, 596, 6914, 6914, 445, 446, 447, 666, 1904, 277, 280, 283,
-				825, 1180, 6914, 6914, 379, 189, 6914, 6914, 445, 446, 447, 666, 3483, 6914, 221, 6914, 6914, 6914,
-				1603, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 1904, 6914, 6914, 6914, 6914, 1603,
-				6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914,
-				6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 3819, 6914, 6914, 6914, 6914, 6914, 6914, 6914,
-				6914, 6914, 6914, 6914, 6914, 6914, 563, 564, 569, 6914, 6914, 448, 450, 6914, 6914, 6914, 6914, 6914,
-				6914, 6914, 6914, 6914, 6914, 6914, 6914, 3856, 6914, 448, 451, 6914, 6914, 6914, 6914, 6914, 6914,
-				6914, 6914, 6914, 1353, 6914, 6914, 6262, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914,
-				6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 4055, 6914, 0, 538, 6027, 0, 1, 263, 0, 39, 6929, 0, 39,
-				6928, 0, 1, 1772, 0, 907, 1, 0, 39, 1, 6929, 0, 39, 1, 6928, 0, 1, 1588, 0, 1, 811, 0, 263, 253, 0, 318,
-				431, 0, 318, 323, 0, 7182, 275, 0, 7181, 275, 0, 7288, 275, 0, 7287, 275, 0, 7209, 275, 0, 7208, 275, 0,
-				7207, 275, 0, 7206, 275, 0, 7205, 275, 0, 7204, 275, 0, 7203, 275, 0, 7202, 275, 0, 7221, 275, 0, 7220,
-				275, 0, 7219, 275, 0, 7218, 275, 0, 7217, 275, 0, 7216, 275, 0, 7215, 275, 0, 7214, 275, 0, 7213, 275,
-				0, 7212, 275, 0, 7211, 275, 0, 39, 275, 6929, 0, 39, 275, 6928, 0, 6952, 275, 0, 1427, 424, 0, 6929, 48,
-				0, 6928, 48, 0, 1, 367, 0, 38, 811, 0, 38, 6929, 0, 38, 6928, 0, 491, 1720, 0, 477, 1847, 0, 1427, 29,
-				0, 6926, 1, 0, 2182, 354, 0, 1, 481, 0, 495, 635, 0, 494, 2298, 0, 35, 33, 0, 47, 37, 0, 538, 1668, 0,
-				6952, 1, 263, 0, 39, 1, 263, 0, 263, 453, 0, 1, 1860, 0, 1, 7221, 0, 1, 7220, 0, 1, 7219, 0, 1, 7218, 0,
-				1, 7217, 0, 1, 7216, 0, 1, 7215, 0, 1, 7214, 0, 1, 7213, 0, 1, 7212, 0, 1, 7211, 0, 6929, 37, 0, 6928,
-				37, 0, 43, 6950, 0, 43, 37, 0, 6926, 420, 0, 6925, 420, 0, 1, 713, 0, 1, 1536, 0, 263, 254, 0, 6924,
-				442, 0, 6923, 442, 0, 263, 452, 0, 1, 5829, 0, 1, 5508, 0, 1, 5554, 0, 1, 5577, 0, 1, 5600, 0, 1, 5623,
-				0, 1, 5646, 0, 1, 5669, 0, 1, 5531, 0, 1, 6936, 0, 1, 6935, 0, 1, 6934, 0, 1, 6933, 0, 1, 6932, 0, 1,
-				6931, 0, 1, 6930, 0, 1, 1857, 0, 1, 1863, 0, 1, 1930, 0, 1, 1996, 0, 1, 1998, 0, 1, 3297, 0, 39, 1, 0,
-				6922, 1, 0, 4245, 126, 0, 367, 482, 0, 275, 6929, 0, 275, 6928, 0, 6920, 1, 0, 6919, 1, 0, 1032, 91, 0,
-				32, 34, 0, 39, 811, 0, 6950, 45, 0, 37, 45, 0, 1, 263, 3501, 0, 6923, 263, 0, 3503, 263, 0, 6952, 1, 0,
-				271, 884, 0, 425, 32, 0, 424, 29, 0, 3597, 263, 0, 10, 12, 0, 4245, 128, 0, 4245, 127, 0, 1, 92, 0, 8,
-				10, 12, 0, 3672, 227, 0, 6929, 36, 0, 6928, 36, 0, 6929, 2, 37, 0, 6928, 2, 37, 0, 3678, 420, 0, 367,
-				95, 0, 35, 73, 0, 8, 12, 0, 313, 4056, 0, 218, 5309, 0 };
-	}
-
-	public final static char baseAction[] = BaseAction.baseAction;
-
-	@Override
-	public final int baseAction(int index) {
-		return baseAction[index];
-	}
-
-	public final static char lhs[] = baseAction;
-
-	@Override
-	public final int lhs(int index) {
-		return lhs[index];
-	}
-
-	public interface TermCheck {
-		public final static byte termCheck[] = { 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
-				19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
-				45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 55, 56, 3, 58, 59, 60, 0, 62, 63, 64, 4, 66, 67, 0, 69, 0, 1, 2,
-				73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
-				15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
-				41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 55, 56, 3, 58, 59, 60, 0, 62, 63, 64, 4, 66, 67,
-				0, 69, 0, 1, 2, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
-				11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
-				37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 55, 56, 0, 58, 59, 60, 4, 62, 63,
-				64, 0, 66, 67, 3, 69, 0, 1, 2, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6,
-				7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
-				34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 55, 56, 3, 58, 59,
-				60, 0, 62, 63, 64, 97, 66, 67, 7, 69, 0, 1, 2, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1,
-				2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
-				30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 55,
-				56, 3, 58, 59, 60, 74, 62, 63, 64, 0, 66, 67, 0, 69, 0, 1, 2, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
-				84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
-				26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
-				52, 53, 0, 55, 56, 70, 58, 59, 60, 7, 62, 63, 64, 0, 66, 67, 0, 69, 0, 1, 2, 94, 74, 75, 76, 77, 78, 79,
-				80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
-				22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
-				48, 49, 50, 51, 52, 53, 0, 55, 56, 0, 58, 59, 60, 4, 62, 63, 64, 0, 66, 67, 0, 69, 0, 92, 93, 3, 74, 75,
-				76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
-				18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
-				44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 70, 55, 56, 0, 58, 59, 60, 0, 62, 63, 64, 0, 66, 67, 0, 69, 5,
-				10, 7, 94, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
-				14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
-				40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 55, 56, 3, 58, 59, 60, 0, 62, 63, 64, 94, 66,
-				67, 0, 69, 0, 1, 2, 5, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
-				11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
-				37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 55, 56, 0, 58, 59, 60, 0, 62, 63,
-				64, 0, 66, 67, 3, 69, 0, 1, 2, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6,
-				7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
-				34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 55, 56, 70, 58, 59,
-				60, 7, 62, 63, 64, 97, 66, 67, 97, 69, 0, 96, 0, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0,
-				1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
-				29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0,
-				55, 56, 70, 58, 59, 60, 0, 62, 63, 64, 0, 66, 67, 0, 69, 86, 87, 86, 87, 74, 75, 76, 77, 78, 79, 80, 81,
-				82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
-				24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
-				50, 51, 52, 53, 0, 55, 56, 3, 58, 59, 60, 0, 62, 63, 64, 0, 66, 67, 3, 69, 0, 92, 93, 3, 74, 75, 76, 77,
-				78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 120, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
-				20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, 40, 41, 42, 43, 44, 45,
-				46, 47, 48, 49, 50, 51, 52, 53, 0, 55, 56, 3, 58, 0, 60, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
-				14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 1, 2, 0, 4, 39, 0,
-				41, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 54, 0, 61, 55, 56, 57, 58, 59, 9, 0, 62, 63, 0, 1, 2, 3, 4, 91, 6, 71,
-				8, 73, 34, 35, 98, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 88, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
-				23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 71, 114, 115, 116, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
-				12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 1, 2, 0, 4,
-				39, 96, 41, 0, 1, 2, 3, 4, 0, 6, 54, 8, 9, 118, 0, 0, 55, 56, 57, 58, 59, 65, 7, 62, 63, 0, 1, 2, 3, 4,
-				0, 6, 71, 8, 73, 0, 0, 1, 2, 0, 4, 5, 39, 7, 9, 89, 90, 0, 0, 88, 11, 12, 13, 14, 15, 16, 17, 18, 19,
-				20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 65, 39, 114, 115, 116, 0, 1, 2, 3, 4, 5, 6, 7,
-				8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
-				65, 0, 0, 68, 3, 39, 5, 41, 7, 0, 9, 9, 0, 1, 2, 3, 4, 0, 6, 0, 8, 55, 56, 57, 58, 59, 9, 0, 62, 63, 64,
-				4, 5, 0, 7, 34, 35, 36, 37, 73, 39, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 88, 54, 0, 1, 2,
-				3, 4, 5, 61, 7, 0, 0, 65, 0, 0, 68, 68, 70, 71, 72, 73, 73, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 120, 86, 87,
-				72, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
-				111, 112, 97, 0, 0, 61, 117, 118, 119, 0, 57, 0, 3, 57, 5, 4, 7, 0, 9, 0, 1, 2, 0, 4, 69, 6, 61, 8, 0,
-				0, 1, 2, 3, 4, 5, 70, 7, 0, 1, 2, 0, 4, 38, 34, 35, 36, 37, 95, 39, 0, 0, 22, 23, 24, 25, 26, 27, 28,
-				29, 30, 31, 32, 33, 54, 61, 54, 38, 0, 1, 2, 61, 4, 0, 6, 65, 8, 57, 68, 61, 70, 71, 72, 73, 0, 1, 2, 3,
-				4, 0, 6, 61, 8, 9, 71, 65, 86, 87, 68, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
-				104, 105, 106, 107, 108, 109, 110, 111, 112, 39, 0, 57, 0, 117, 118, 119, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
-				10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 1, 2,
-				3, 4, 39, 6, 41, 8, 9, 0, 1, 2, 0, 4, 5, 54, 7, 0, 1, 2, 55, 56, 57, 58, 59, 101, 102, 62, 63, 64, 0, 1,
-				2, 3, 4, 5, 6, 7, 8, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 88, 0, 1, 2, 0, 4, 5, 61, 7,
-				0, 9, 34, 35, 36, 37, 38, 0, 40, 72, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 120, 0, 1, 2, 3,
-				4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
-				31, 32, 33, 0, 0, 70, 54, 0, 39, 72, 41, 4, 0, 0, 0, 1, 2, 4, 4, 0, 6, 0, 8, 54, 55, 56, 57, 58, 59, 22,
-				9, 62, 63, 64, 97, 22, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 0, 1, 2, 3, 4, 5, 6,
-				7, 8, 88, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
-				26, 27, 28, 29, 30, 31, 32, 33, 0, 72, 0, 0, 0, 39, 0, 41, 0, 1, 2, 5, 4, 5, 94, 7, 0, 61, 0, 92, 93,
-				55, 56, 57, 58, 59, 23, 24, 62, 63, 64, 0, 0, 1, 2, 114, 115, 116, 6, 73, 22, 23, 24, 25, 26, 27, 28,
-				29, 30, 31, 32, 33, 0, 0, 88, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
-				21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 57, 86, 87, 61, 91, 39, 95, 41, 0, 1, 2, 98, 4, 5,
-				0, 7, 99, 100, 0, 92, 93, 55, 56, 57, 58, 59, 0, 0, 62, 63, 64, 68, 0, 1, 2, 0, 1, 2, 6, 73, 22, 23, 24,
-				25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 0, 88, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
-				17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 1, 2, 65, 4, 39, 6, 41, 8, 0, 1,
-				2, 66, 67, 0, 6, 0, 8, 0, 0, 57, 55, 56, 57, 58, 59, 0, 0, 62, 63, 64, 0, 68, 0, 1, 2, 0, 4, 0, 73, 22,
-				23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 38, 0, 88, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
-				15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 70, 57, 0, 1, 2, 39, 0, 41,
-				6, 0, 8, 5, 65, 71, 5, 68, 0, 0, 0, 0, 71, 55, 56, 57, 58, 59, 9, 9, 62, 63, 64, 101, 102, 103, 104,
-				105, 106, 107, 108, 109, 110, 111, 112, 0, 0, 1, 2, 3, 4, 0, 6, 0, 8, 10, 88, 0, 1, 2, 3, 4, 5, 6, 7, 8,
-				9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 72,
-				71, 73, 0, 0, 39, 3, 41, 0, 0, 0, 0, 0, 59, 86, 87, 99, 100, 0, 99, 100, 55, 56, 57, 58, 59, 71, 65, 62,
-				63, 64, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 1, 2, 3, 4, 121, 6, 0, 8, 34, 35, 88, 0, 1,
-				2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
-				30, 31, 32, 33, 0, 0, 1, 2, 0, 39, 91, 41, 86, 87, 9, 0, 91, 98, 95, 61, 0, 0, 0, 98, 0, 55, 56, 57, 58,
-				59, 9, 9, 62, 63, 64, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0,
-				88, 0, 0, 1, 2, 0, 0, 61, 9, 3, 9, 34, 35, 36, 37, 38, 69, 40, 0, 42, 43, 44, 45, 46, 47, 48, 49, 50,
-				51, 52, 53, 68, 0, 69, 68, 72, 0, 60, 39, 3, 54, 0, 65, 66, 67, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
-				12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 61, 66, 67, 65, 65, 54, 72, 68, 89, 90, 0, 0, 34, 35, 36, 37,
-				38, 0, 40, 9, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 0, 0, 1, 2, 0, 60, 5, 89, 90, 0, 1, 2,
-				0, 9, 69, 0, 39, 0, 73, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0,
-				1, 2, 0, 68, 114, 115, 116, 34, 35, 0, 68, 34, 35, 36, 37, 38, 57, 40, 0, 42, 43, 44, 45, 46, 47, 48,
-				49, 50, 51, 52, 53, 0, 1, 2, 0, 73, 0, 60, 68, 0, 0, 0, 0, 3, 86, 87, 69, 0, 1, 2, 3, 4, 5, 6, 7, 8, 57,
-				10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 0, 0, 70, 0, 0, 0, 0, 68, 9, 9, 9, 34, 35, 36, 37,
-				38, 0, 40, 57, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 61, 0, 0, 86, 87, 70, 60, 39, 39, 68, 70,
-				9, 66, 67, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 65, 0, 54,
-				65, 0, 72, 70, 0, 9, 113, 0, 34, 35, 36, 37, 38, 0, 40, 54, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
-				53, 0, 0, 96, 0, 71, 0, 60, 73, 0, 54, 0, 0, 66, 67, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
-				15, 16, 17, 18, 19, 20, 21, 0, 0, 65, 3, 72, 5, 6, 7, 89, 90, 0, 0, 34, 35, 36, 37, 38, 0, 40, 70, 42,
-				43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 65, 0, 34, 35, 36, 37, 60, 96, 40, 0, 0, 71, 3, 71, 71, 69,
-				6, 0, 9, 86, 87, 113, 54, 86, 87, 0, 1, 2, 0, 61, 0, 3, 54, 65, 66, 67, 68, 68, 70, 22, 23, 24, 25, 26,
-				27, 28, 29, 30, 31, 32, 33, 0, 0, 0, 86, 87, 71, 89, 90, 91, 92, 93, 94, 95, 96, 86, 87, 99, 100, 101,
-				61, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 72, 57, 0, 54, 117, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
-				10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 0, 34, 35, 36, 37, 38,
-				0, 40, 0, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 10, 11, 12, 13,
-				14, 15, 16, 17, 18, 19, 20, 21, 54, 0, 113, 0, 57, 4, 0, 57, 0, 0, 57, 65, 34, 35, 36, 37, 38, 54, 40,
-				54, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 0, 0, 89, 90, 4, 4, 0, 0, 9, 118, 3, 66, 67, 0,
-				1, 2, 3, 4, 5, 6, 7, 8, 54, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 0, 0, 3, 3, 3, 71, 0, 0,
-				9, 70, 70, 34, 35, 36, 37, 38, 10, 40, 54, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 95, 0, 3,
-				72, 3, 60, 0, 1, 2, 3, 4, 5, 6, 7, 8, 41, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 61, 54, 0, 57,
-				65, 3, 0, 68, 0, 0, 0, 72, 34, 35, 36, 37, 38, 0, 40, 0, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
-				0, 0, 0, 3, 0, 3, 0, 61, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
-				54, 54, 54, 0, 0, 0, 3, 0, 0, 1, 2, 65, 34, 35, 36, 37, 38, 0, 40, 75, 42, 43, 44, 45, 46, 47, 48, 49,
-				50, 51, 52, 53, 61, 0, 60, 89, 90, 0, 60, 0, 1, 2, 3, 4, 5, 6, 7, 8, 61, 10, 11, 12, 13, 14, 15, 16, 17,
-				18, 19, 20, 21, 54, 0, 0, 0, 57, 0, 1, 2, 0, 0, 54, 65, 34, 35, 36, 37, 38, 41, 40, 0, 42, 43, 44, 45,
-				46, 47, 48, 49, 50, 51, 52, 53, 0, 0, 0, 89, 90, 4, 60, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 10, 11, 12, 13,
-				14, 15, 16, 17, 18, 19, 20, 21, 0, 57, 54, 3, 0, 0, 0, 0, 0, 3, 0, 0, 34, 35, 36, 37, 38, 10, 40, 0, 42,
-				43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 0, 0, 0, 36, 37, 60, 0, 1, 2, 3, 4, 5, 6, 7, 8, 41, 10,
-				11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 61, 54, 0, 57, 54, 0, 0, 0, 0, 0, 113, 0, 34, 35, 36, 37,
-				38, 0, 40, 0, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 10, 11, 12,
-				13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 0, 117, 0, 119, 0, 0, 0, 0, 0, 0, 0, 34, 35, 36, 37, 38, 0, 40,
-				0, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 10, 11, 12, 13, 14, 15,
-				16, 17, 18, 19, 20, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 35, 36, 37, 38, 0, 40, 0, 42, 43, 44,
-				45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18,
-				19, 20, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 35, 36, 37, 38, 0, 40, 0, 42, 43, 44, 45, 46, 47,
-				48, 49, 50, 51, 52, 53, 0, 1, 2, 0, 4, 0, 0, 0, 0, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
-				22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2,
-				0, 4, 0, 55, 56, 0, 58, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
-				30, 31, 32, 33, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 55, 56, 0, 58, 10, 11,
-				12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 0, 0, 0, 0,
-				0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 55, 56, 0, 58, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
-				20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, 0, 0, 41, 0, 1, 2, 3, 4, 5, 6, 7,
-				8, 9, 0, 0, 0, 55, 56, 0, 58, 0, 0, 0, 0, 0, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 0, 0, 0,
-				0, 39, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 0, 54, 0, 0, 0, 0, 0, 0, 61, 0, 1, 2, 3, 4, 5,
-				6, 7, 8, 9, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 0,
-				0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 0, 7, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 72, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
-				33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 0, 0, 65, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static byte termCheck[] = TermCheck.termCheck;
-
-	@Override
-	public final int termCheck(int index) {
-		return termCheck[index];
-	}
-
-	public interface TermAction {
-		public final static char termAction[] = { 0, 6914, 6838, 6478, 6478, 6478, 6478, 6478, 6478, 6478, 6860, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6842, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 6914, 1, 1, 885, 1, 1979, 1, 39, 762, 7122, 637, 6952, 1, 1, 333, 6925, 333,
-				6928, 6929, 6921, 1859, 3550, 3026, 3093, 2992, 3500, 4744, 3540, 650, 3538, 4148, 3505, 10, 6863, 6863,
-				6863, 6863, 6863, 6863, 6863, 6863, 6863, 6863, 6863, 6863, 6863, 6863, 6863, 6863, 6863, 6863, 6863,
-				6863, 6863, 6863, 6863, 6863, 6863, 6863, 6863, 6863, 6863, 6863, 6863, 6863, 6863, 6863, 6863, 6863,
-				6863, 6863, 6863, 6863, 6863, 6863, 6863, 6863, 6863, 6863, 6863, 6863, 6863, 6863, 6863, 6863, 6863,
-				6914, 6863, 6863, 2182, 6863, 6863, 6863, 6914, 6863, 6863, 6863, 1375, 6863, 6863, 1, 6863, 6914, 6602,
-				6599, 6863, 6863, 6863, 6863, 6863, 6863, 6863, 6863, 6863, 6863, 6863, 6863, 6863, 8, 6875, 6875, 6875,
-				6875, 6875, 6875, 6875, 6875, 6875, 6875, 6875, 6875, 6875, 6875, 6875, 6875, 6875, 6875, 6875, 6875,
-				6875, 6875, 6875, 6875, 6875, 6875, 6875, 6875, 6875, 6875, 6875, 6875, 6875, 6875, 6875, 6875, 6875,
-				6875, 6875, 6875, 6875, 6875, 6875, 6875, 6875, 6875, 6875, 6875, 6875, 6875, 6875, 6875, 6875, 394,
-				6875, 6875, 432, 6875, 6875, 6875, 425, 6875, 6875, 6875, 6914, 6875, 6875, 6132, 6875, 6914, 6928,
-				6929, 6875, 6875, 6875, 6875, 6875, 6875, 6875, 6875, 6875, 6875, 6875, 6875, 6875, 6914, 6838, 6478,
-				6478, 6478, 6478, 6478, 6478, 6478, 6845, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 6842, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6914, 1, 1, 884, 1, 1979, 1,
-				151, 762, 7122, 637, 7307, 1, 1, 3725, 6925, 6914, 10517, 10485, 1, 1859, 3550, 3026, 3093, 2992, 3500,
-				4744, 3540, 650, 3538, 4148, 3505, 6914, 6838, 6478, 6478, 6478, 6478, 6478, 6478, 6478, 6845, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6842, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 6914, 1, 1, 3808, 1, 1979, 1, 1649, 762, 7122, 637, 153, 1, 1, 432, 6925, 48, 6602,
-				6599, 35, 1859, 3550, 3026, 3093, 2992, 3500, 4744, 3540, 650, 3538, 4148, 3505, 6914, 6838, 6478, 6478,
-				6478, 6478, 6478, 6478, 6478, 6845, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 6842, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 131, 1, 1, 1662, 1, 1979, 1, 3776,
-				762, 7122, 637, 149, 1, 1, 367, 6925, 434, 6928, 6929, 3636, 1859, 3550, 3026, 3093, 2992, 3500, 4744,
-				3540, 650, 3538, 4148, 3505, 6914, 6838, 6478, 6478, 6478, 6478, 6478, 6478, 6478, 6845, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6842, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 421, 1, 1, 6914, 1, 1979, 1, 1443, 762, 7122, 637, 133, 1, 1, 6914, 6925, 347, 3918,
-				3851, 890, 1859, 3550, 3026, 3093, 2992, 3500, 4744, 3540, 650, 3538, 4148, 3505, 6914, 6838, 6478,
-				6478, 6478, 6478, 6478, 6478, 6478, 6845, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 6842, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1150, 1, 1, 154, 1, 1979, 1,
-				337, 762, 7122, 637, 6914, 1, 1, 6914, 6925, 1735, 7250, 1423, 3690, 1859, 3550, 3026, 3093, 2992, 3500,
-				4744, 3540, 650, 3538, 4148, 3505, 6914, 6838, 6478, 6478, 6478, 6478, 6478, 6478, 6478, 6845, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6842, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 91, 1, 1, 6823, 1, 1979, 1, 6914, 762, 7122, 637, 3636, 1, 1, 6914, 6925, 6914,
-				10517, 10485, 2196, 1859, 3550, 3026, 3093, 2992, 3500, 4744, 3540, 650, 3538, 4148, 3505, 6914, 6838,
-				6478, 6478, 6478, 6478, 6478, 6478, 6478, 6845, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6842, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1979, 1,
-				157, 762, 7122, 637, 1, 1, 1, 5884, 6925, 327, 6928, 6929, 328, 1859, 3550, 3026, 3093, 2992, 3500,
-				4744, 3540, 650, 3538, 4148, 3505, 6914, 6838, 6478, 6478, 6478, 6478, 6478, 6478, 6478, 6845, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6842, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 152, 1, 1, 3036, 1, 1979, 1, 3725, 762, 7122, 637, 7309, 1, 1, 3887, 6925, 141,
-				3446, 121, 406, 1859, 3550, 3026, 3093, 2992, 3500, 4744, 3540, 650, 3538, 4148, 3505, 6914, 6838, 6478,
-				6478, 6478, 6478, 6478, 6478, 6478, 6845, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 6842, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6914, 1, 1, 1348, 1, 1979, 1,
-				6914, 762, 7122, 637, 129, 1, 1, 6914, 6925, 4423, 4490, 4423, 4490, 1859, 3550, 3026, 3093, 2992, 3500,
-				4744, 3540, 650, 3538, 4148, 3505, 6914, 6838, 6478, 6478, 6478, 6478, 6478, 6478, 6478, 6845, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6842, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 271, 1, 1, 6851, 1, 1979, 1, 6914, 762, 7122, 637, 6914, 1, 1, 4751, 6925, 6914,
-				3958, 1264, 6287, 1859, 3550, 3026, 3093, 2992, 3500, 4744, 3540, 650, 3538, 4148, 3505, 39, 6484, 6481,
-				6073, 907, 5600, 5531, 5623, 1588, 6474, 1971, 7213, 7211, 7220, 7219, 7215, 7216, 7214, 7217, 7218,
-				7221, 7212, 7208, 7287, 7288, 7202, 7209, 7205, 7181, 7207, 7206, 7203, 7204, 7182, 5577, 5554, 5669,
-				5646, 6933, 111, 5508, 7349, 1863, 1998, 6935, 1930, 5829, 1996, 6936, 6934, 1857, 6930, 6931, 6932,
-				354, 603, 7350, 6629, 7351, 424, 1488, 6914, 6654, 6654, 263, 6650, 263, 263, 263, 263, 6658, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 323, 6513, 6513, 6914, 318, 263, 118, 1,
-				6914, 6497, 6493, 1772, 6490, 6605, 811, 6605, 1588, 6914, 6596, 6914, 1445, 1, 1, 6647, 1, 2119, 6918,
-				137, 1929, 7363, 1, 6497, 6493, 6487, 6490, 5715, 6504, 263, 6501, 453, 4708, 4681, 5738, 6914, 257,
-				345, 6497, 6493, 1772, 6490, 6605, 811, 6605, 1588, 7451, 7213, 7211, 7220, 7219, 7215, 7216, 7214,
-				7217, 7218, 7221, 7212, 7208, 7287, 7288, 7202, 7209, 7205, 7181, 7207, 7206, 7203, 7204, 7182, 126,
-				2994, 7386, 7387, 7388, 6914, 6654, 6654, 263, 6650, 263, 263, 263, 263, 6730, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6914, 6484, 6481, 6914, 6952, 263, 3508, 1, 1, 6497,
-				6493, 6487, 6490, 6914, 6504, 4272, 6501, 6924, 6917, 6914, 132, 1, 1, 6647, 1, 2119, 6805, 3776, 1929,
-				7363, 1, 6497, 6493, 1772, 6490, 6914, 811, 263, 1588, 452, 6914, 481, 1, 1, 571, 1, 6632, 6923, 6632,
-				6924, 4218, 4191, 6914, 6914, 7451, 7213, 7211, 7220, 7219, 7215, 7216, 7214, 7217, 7218, 7221, 7212,
-				7208, 7287, 7288, 7202, 7209, 7205, 7181, 7207, 7206, 7203, 7204, 7182, 6109, 6923, 7386, 7387, 7388,
-				6914, 6478, 6478, 263, 6478, 263, 263, 263, 263, 6507, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 9636, 1, 1, 1, 1, 1, 1, 6180, 33, 6914, 3883, 6641, 263, 6641, 1, 6641, 6914, 6641, 6922, 367, 6484,
-				6481, 1772, 907, 1, 811, 258, 1588, 1, 1, 6475, 1, 1590, 399, 39, 762, 7159, 637, 6952, 367, 6914, 367,
-				6641, 6641, 6641, 6641, 253, 6641, 7208, 7287, 7288, 7202, 7209, 7205, 7181, 7207, 7206, 7203, 7204,
-				7182, 6914, 7451, 6641, 381, 39, 39, 4530, 6952, 367, 6641, 367, 155, 6914, 6641, 6914, 47, 6641, 1068,
-				6641, 6641, 6641, 6641, 6921, 6926, 403, 6497, 6493, 4299, 6490, 1, 811, 1, 1588, 253, 6641, 6641, 399,
-				6641, 6641, 6641, 6641, 6641, 6641, 6641, 6641, 6641, 6641, 6641, 6641, 6641, 6641, 6641, 6641, 6641,
-				6641, 6641, 6641, 6641, 6641, 6641, 6641, 399, 356, 6914, 1445, 6641, 6641, 6641, 6914, 1096, 433, 6826,
-				1341, 6826, 424, 6826, 495, 6826, 6914, 6484, 6481, 485, 907, 6925, 6829, 1445, 1588, 6914, 37, 6929,
-				6929, 6929, 6929, 6929, 1299, 6929, 6914, 6484, 6481, 6914, 6952, 665, 6826, 6826, 6826, 6826, 3545,
-				6826, 6914, 6914, 6929, 6929, 6929, 6929, 6929, 6929, 6929, 6929, 6929, 6929, 6929, 6929, 6826, 1445,
-				1427, 1442, 6914, 6484, 6481, 6826, 907, 6914, 6829, 6826, 1588, 2102, 6826, 6635, 6826, 6826, 6826,
-				6826, 1, 6497, 6493, 1772, 6490, 139, 811, 6929, 1588, 345, 927, 6929, 6826, 6826, 6929, 6826, 6826,
-				6826, 6826, 6826, 6826, 6826, 6826, 6826, 6826, 6826, 6826, 6826, 6826, 6826, 6826, 6826, 6826, 6826,
-				6826, 6826, 6826, 6826, 6826, 345, 6914, 2168, 491, 6826, 6826, 6826, 6914, 6478, 6478, 263, 6478, 263,
-				263, 263, 263, 263, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9636, 1, 1, 1, 1, 1, 1, 1, 6497,
-				6493, 4299, 6490, 263, 811, 1, 1588, 6817, 482, 39, 39, 6914, 6952, 6808, 6617, 6808, 36, 6885, 6882, 1,
-				1, 6475, 1, 1590, 3407, 4357, 762, 7159, 637, 39, 6484, 6481, 6279, 907, 5600, 5531, 5623, 1588, 6914,
-				1860, 7213, 7211, 7220, 7219, 7215, 7216, 7214, 7217, 7218, 7221, 7212, 159, 7451, 1, 6799, 6799, 6914,
-				6848, 367, 1445, 367, 6914, 399, 5577, 5554, 5669, 5646, 6933, 477, 5508, 6820, 1863, 1998, 6935, 1930,
-				5829, 1996, 6936, 6934, 1857, 6930, 6931, 6932, 6914, 254, 6914, 6478, 6478, 263, 6478, 263, 263, 263,
-				263, 263, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9636, 1, 1, 1, 1, 1, 1, 6914, 6914, 2204,
-				6620, 39, 263, 399, 1, 6952, 134, 39, 6914, 6484, 6481, 6952, 907, 150, 811, 6914, 1588, 1143, 1, 1,
-				6475, 1, 1590, 2986, 6920, 762, 7159, 637, 399, 2767, 3344, 4151, 2138, 2072, 2006, 1940, 1874, 1808,
-				1742, 1676, 1610, 1544, 381, 6484, 6481, 4299, 907, 367, 811, 367, 1588, 7451, 6914, 6478, 6478, 263,
-				6478, 263, 263, 263, 263, 6721, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9636, 1, 1, 1, 1, 1,
-				1, 135, 6919, 114, 372, 145, 263, 115, 1, 92, 1, 1, 5484, 1, 6872, 3690, 6872, 130, 1445, 259, 3918,
-				3851, 1, 1, 6475, 1, 1590, 7287, 7288, 762, 7159, 637, 494, 37, 6644, 6644, 7386, 7387, 7388, 6644, 254,
-				7208, 7287, 7288, 7202, 7209, 7205, 7181, 7207, 7206, 7203, 7204, 7182, 344, 6914, 7451, 6914, 6478,
-				6478, 263, 6478, 263, 263, 263, 263, 6721, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9636, 1,
-				1, 1, 1, 1, 1, 2453, 4423, 4490, 6638, 5715, 263, 3600, 1, 95, 39, 39, 5738, 6952, 6899, 6914, 6899,
-				5460, 4833, 260, 3958, 1264, 1, 1, 6475, 1, 1590, 6914, 6914, 762, 7159, 637, 1574, 6914, 6928, 6929,
-				6914, 6928, 6929, 2406, 254, 7208, 7287, 7288, 7202, 7209, 7205, 7181, 7207, 7206, 7203, 7204, 7182, 37,
-				552, 7451, 6914, 6478, 6478, 263, 6478, 263, 263, 263, 263, 6721, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 9636, 1, 1, 1, 1, 1, 1, 6914, 6484, 6481, 7463, 907, 263, 811, 1, 1588, 38, 6614, 6611,
-				5692, 1195, 1, 6608, 6914, 1588, 261, 139, 6950, 1, 1, 6475, 1, 1590, 6914, 6914, 762, 7159, 637, 6914,
-				934, 431, 6510, 6510, 6914, 318, 465, 254, 7208, 7287, 7288, 7202, 7209, 7205, 7181, 7207, 7206, 7203,
-				7204, 7182, 728, 6914, 7451, 6914, 6478, 6478, 263, 6478, 263, 263, 263, 263, 263, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9636, 1, 1, 1, 1, 1, 1, 2740, 318, 6914, 6928, 6929, 263, 117, 1, 811,
-				116, 1588, 5484, 3673, 7352, 5484, 3883, 218, 6914, 6914, 6914, 4759, 1, 1, 6475, 1, 1590, 6920, 6922,
-				762, 7159, 637, 3407, 4357, 2693, 2646, 2599, 2552, 2505, 2458, 2411, 2364, 2317, 2270, 337, 1, 6497,
-				6493, 1772, 6490, 6914, 811, 6914, 1588, 7250, 7451, 6914, 6478, 6478, 263, 6478, 263, 263, 263, 263,
-				263, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9636, 1, 1, 1, 1, 1, 1, 6919, 3135, 6921, 6914,
-				113, 263, 4894, 1, 156, 572, 112, 144, 6914, 892, 4423, 4490, 5460, 4833, 120, 5460, 4833, 1, 1, 6475,
-				1, 1590, 2994, 7406, 762, 7159, 637, 7208, 7287, 7288, 7202, 7209, 7205, 7181, 7207, 7206, 7203, 7204,
-				7182, 1, 6497, 6493, 4299, 6490, 6911, 811, 6914, 1588, 4708, 4681, 7451, 6914, 6478, 6478, 263, 6478,
-				263, 263, 263, 263, 263, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9636, 1, 1, 1, 1, 1, 1, 384,
-				6914, 6928, 6929, 6914, 263, 5715, 1, 4423, 4490, 6926, 6914, 5715, 5738, 3545, 1445, 6914, 6914, 1,
-				5738, 486, 1, 1, 6475, 1, 1590, 6920, 6626, 762, 7159, 637, 1, 6497, 6493, 3297, 907, 5600, 5531, 5623,
-				1588, 146, 6661, 6688, 6694, 6667, 6670, 6682, 6679, 6685, 6676, 6673, 6664, 6691, 442, 7451, 1, 6914,
-				6602, 6599, 6914, 1, 1445, 6724, 4530, 194, 5577, 5554, 5669, 5646, 6933, 6925, 5508, 148, 1863, 1998,
-				6935, 1930, 5829, 1996, 6936, 6934, 1857, 6930, 6931, 6932, 5973, 476, 6925, 2061, 6919, 6914, 1488,
-				6727, 6320, 4116, 6914, 553, 39, 39, 39, 6484, 6481, 6073, 907, 5600, 5531, 5623, 1588, 6896, 1860,
-				7213, 7211, 7220, 7219, 7215, 7216, 7214, 7217, 7218, 7221, 7212, 1445, 5692, 1195, 7392, 577, 4116,
-				194, 577, 4089, 1115, 6914, 6914, 5577, 5554, 5669, 5646, 6933, 398, 5508, 6924, 1863, 1998, 6935, 1930,
-				5829, 1996, 6936, 6934, 1857, 6930, 6931, 6932, 6914, 142, 37, 6644, 6644, 1, 1488, 367, 4089, 1115,
-				326, 1197, 1197, 320, 6802, 6712, 119, 6923, 6914, 6921, 39, 6484, 6481, 6073, 907, 5600, 5531, 5623,
-				1588, 6709, 1860, 7213, 7211, 7220, 7219, 7215, 7216, 7214, 7217, 7218, 7221, 7212, 37, 6644, 6644, 404,
-				744, 7386, 7387, 7388, 4708, 4681, 326, 3372, 5577, 5554, 5669, 5646, 6933, 6950, 5508, 125, 1863, 1998,
-				6935, 1930, 5829, 1996, 6936, 6934, 1857, 6930, 6931, 6932, 6914, 6700, 6697, 6914, 6921, 545, 1488,
-				7233, 6914, 383, 543, 190, 2974, 4423, 4490, 6712, 174, 6484, 6481, 6073, 907, 5600, 5531, 5623, 1588,
-				6950, 1860, 7213, 7211, 7220, 7219, 7215, 7216, 7214, 7217, 7218, 7221, 7212, 1, 1, 1, 1395, 6914, 457,
-				158, 6914, 10052, 6924, 224, 591, 5577, 5554, 5669, 5646, 6933, 29, 5508, 6950, 1863, 1998, 6935, 1930,
-				5829, 1996, 6936, 6934, 1857, 6930, 6931, 6932, 1445, 29, 8, 4423, 4490, 5874, 1488, 6923, 224, 2787,
-				5883, 6905, 39, 39, 1, 6497, 6493, 3297, 907, 5600, 5531, 5623, 1588, 147, 6661, 6688, 6694, 6667, 6670,
-				6682, 6679, 6685, 6676, 6673, 6664, 6691, 1, 3587, 6914, 6623, 3588, 6914, 591, 3192, 411, 196, 3592,
-				138, 5577, 5554, 5669, 5646, 6933, 6914, 5508, 1427, 1863, 1998, 6935, 1930, 5829, 1996, 6936, 6934,
-				1857, 6930, 6931, 6932, 6914, 124, 3446, 6914, 461, 123, 1488, 6905, 6914, 4116, 6914, 6914, 39, 39, 39,
-				6484, 6481, 6073, 907, 5600, 5531, 5623, 1588, 6709, 1860, 7213, 7211, 7220, 7219, 7215, 7216, 7214,
-				7217, 7218, 7221, 7212, 1, 463, 3589, 2077, 196, 7414, 7420, 7418, 4089, 1115, 6914, 122, 5577, 5554,
-				5669, 5646, 6933, 6914, 5508, 1662, 1863, 1998, 6935, 1930, 5829, 1996, 6936, 6934, 1857, 6930, 6931,
-				6932, 3591, 6914, 7412, 7413, 7443, 7444, 1488, 3508, 7421, 1, 6914, 2834, 4530, 4861, 4923, 6712, 2406,
-				573, 6817, 4423, 4490, 3592, 7423, 4423, 4490, 43, 6706, 6706, 6914, 625, 6914, 4358, 2349, 7424, 1385,
-				1425, 7445, 3481, 7422, 7208, 7287, 7288, 7202, 7209, 7205, 7181, 7207, 7206, 7203, 7204, 7182, 584,
-				6914, 6914, 7434, 7433, 2900, 7439, 7440, 7446, 7437, 7438, 7417, 7419, 7441, 4423, 4490, 7415, 7416,
-				7442, 1445, 7427, 7428, 7429, 7425, 7426, 7435, 7436, 7431, 7430, 7432, 6820, 6703, 6914, 1427, 7447,
-				39, 6484, 6481, 6073, 907, 5600, 5531, 5623, 1588, 6918, 1860, 7213, 7211, 7220, 7219, 7215, 7216, 7214,
-				7217, 7218, 7221, 7212, 6914, 45, 6835, 6835, 6914, 10808, 10808, 6914, 11354, 9100, 6914, 6914, 5577,
-				5554, 5669, 5646, 6933, 6914, 5508, 432, 1863, 1998, 6935, 1930, 5829, 1996, 6936, 6934, 1857, 6930,
-				6931, 6932, 1, 6497, 6493, 6796, 6490, 6745, 6757, 6748, 6501, 6914, 6661, 6688, 6694, 6667, 6670, 6682,
-				6679, 6685, 6676, 6673, 6664, 6691, 4116, 48, 1, 6914, 6832, 6929, 136, 6950, 6914, 547, 6950, 4324,
-				6742, 6739, 6754, 6751, 6769, 1143, 6736, 1427, 6784, 6793, 6763, 6787, 6733, 6790, 6760, 6766, 6781,
-				6778, 6775, 6772, 1, 48, 6914, 4089, 1115, 6928, 1734, 6914, 6914, 6920, 6917, 4369, 6799, 6799, 39,
-				6484, 6481, 6073, 907, 5600, 5531, 5623, 1588, 6929, 1860, 7213, 7211, 7220, 7219, 7215, 7216, 7214,
-				7217, 7218, 7221, 7212, 1, 6914, 6914, 4530, 4533, 4558, 4985, 1, 6914, 377, 2947, 2037, 5577, 5554,
-				5669, 5646, 6933, 6715, 5508, 6928, 1863, 1998, 6935, 1930, 5829, 1996, 6936, 6934, 1857, 6930, 6931,
-				6932, 6914, 3600, 6914, 4361, 6919, 4056, 1488, 39, 6484, 6481, 6073, 907, 5600, 5531, 5623, 1588, 6718,
-				1860, 7213, 7211, 7220, 7219, 7215, 7216, 7214, 7217, 7218, 7221, 7212, 1445, 1786, 6914, 3220, 377,
-				4757, 227, 377, 128, 6914, 6914, 377, 5577, 5554, 5669, 5646, 6933, 6914, 5508, 6914, 1863, 1998, 6935,
-				1930, 5829, 1996, 6936, 6934, 1857, 6930, 6931, 6932, 6914, 100, 103, 4738, 595, 5116, 6914, 2394, 39,
-				6484, 6481, 3297, 907, 5600, 5531, 5623, 1588, 99, 1860, 7213, 7211, 7220, 7219, 7215, 7216, 7214, 7217,
-				7218, 7221, 7212, 4272, 1918, 1984, 6914, 6914, 6914, 6256, 127, 37, 6644, 6644, 6866, 5577, 5554, 5669,
-				5646, 6933, 6914, 5508, 6879, 1863, 1998, 6935, 1930, 5829, 1996, 6936, 6934, 1857, 6930, 6931, 6932,
-				4620, 6914, 3679, 4218, 4191, 6914, 1488, 39, 6484, 6481, 3297, 907, 5600, 5531, 5623, 1588, 3234, 1860,
-				7213, 7211, 7220, 7219, 7215, 7216, 7214, 7217, 7218, 7221, 7212, 4272, 6914, 6914, 6914, 2500, 6914,
-				6892, 6888, 6914, 6914, 4887, 6869, 5577, 5554, 5669, 5646, 6933, 1712, 5508, 583, 1863, 1998, 6935,
-				1930, 5829, 1996, 6936, 6934, 1857, 6930, 6931, 6932, 6914, 6914, 6914, 4218, 4191, 1747, 1488, 39,
-				6484, 6481, 6073, 907, 5600, 5531, 5623, 1588, 6914, 1860, 7213, 7211, 7220, 7219, 7215, 7216, 7214,
-				7217, 7218, 7221, 7212, 75, 6950, 2885, 3374, 6914, 6914, 313, 1, 73, 6908, 6914, 2, 5577, 5554, 5669,
-				5646, 6933, 6715, 5508, 6914, 1863, 1998, 6935, 1930, 5829, 1996, 6936, 6934, 1857, 6930, 6931, 6932,
-				6914, 6914, 6914, 6914, 6976, 6977, 1488, 39, 6484, 6481, 6073, 907, 5600, 5531, 5623, 1588, 6718, 1860,
-				7213, 7211, 7220, 7219, 7215, 7216, 7214, 7217, 7218, 7221, 7212, 4149, 6902, 6914, 3220, 37, 6914,
-				6914, 6914, 6914, 6914, 3592, 6914, 5577, 5554, 5669, 5646, 6933, 6914, 5508, 6914, 1863, 1998, 6935,
-				1930, 5829, 1996, 6936, 6934, 1857, 6930, 6931, 6932, 39, 6484, 6481, 3297, 907, 5600, 5531, 5623, 1588,
-				6914, 1860, 7213, 7211, 7220, 7219, 7215, 7216, 7214, 7217, 7218, 7221, 7212, 6914, 6914, 871, 6914,
-				1047, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 5577, 5554, 5669, 5646, 6933, 6914, 5508, 6914, 1863,
-				1998, 6935, 1930, 5829, 1996, 6936, 6934, 1857, 6930, 6931, 6932, 39, 6484, 6481, 3297, 907, 5600, 5531,
-				5623, 1588, 6914, 1860, 7213, 7211, 7220, 7219, 7215, 7216, 7214, 7217, 7218, 7221, 7212, 6914, 6914,
-				6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 5577, 5554, 5669, 5646, 6933, 6914, 5508,
-				6914, 1863, 1998, 6935, 1930, 5829, 1996, 6936, 6934, 1857, 6930, 6931, 6932, 39, 6484, 6481, 6073, 907,
-				5600, 5531, 5623, 1588, 6914, 1860, 7213, 7211, 7220, 7219, 7215, 7216, 7214, 7217, 7218, 7221, 7212,
-				6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 5577, 5554, 5669, 5646, 6933,
-				6914, 5508, 6914, 1863, 1998, 6935, 1930, 5829, 1996, 6936, 6934, 1857, 6930, 6931, 6932, 6914, 6484,
-				6481, 6914, 6952, 6914, 6914, 6914, 6914, 6914, 641, 7213, 7211, 7220, 7219, 7215, 7216, 7214, 7217,
-				7218, 7221, 7212, 7208, 7287, 7288, 7202, 7209, 7205, 7181, 7207, 7206, 7203, 7204, 7182, 6914, 6914,
-				6914, 6914, 6914, 6914, 6914, 7349, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 275, 6589, 6585, 6914,
-				6593, 6914, 603, 7350, 6914, 7351, 641, 6576, 6582, 6555, 6558, 6570, 6567, 6573, 6564, 6561, 6552,
-				6579, 6531, 6525, 6522, 6549, 6528, 6540, 6519, 6534, 6537, 6546, 6543, 6516, 6914, 6914, 6914, 6914,
-				6914, 6914, 6914, 7349, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 6928, 6929, 6914, 6914, 6914,
-				603, 7350, 6914, 7351, 1796, 7213, 7211, 7220, 7219, 7215, 7216, 7214, 7217, 7218, 7221, 7212, 7208,
-				7287, 7288, 7202, 7209, 7205, 7181, 7207, 7206, 7203, 7204, 7182, 6914, 6914, 6914, 6914, 6914, 6914,
-				6914, 7349, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 275, 6814, 6811, 6914, 6914, 6914, 603, 7350,
-				6914, 7351, 1796, 6576, 6582, 6555, 6558, 6570, 6567, 6573, 6564, 6561, 6552, 6579, 6531, 6525, 6522,
-				6549, 6528, 6540, 6519, 6534, 6537, 6546, 6543, 6516, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 7349,
-				29, 424, 424, 6857, 424, 6857, 424, 6857, 424, 6857, 6914, 6914, 6914, 603, 7350, 6914, 7351, 6914, 574,
-				6914, 6914, 6914, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 6914, 6914, 6914, 6914,
-				6914, 6857, 7208, 7287, 7288, 7202, 7209, 7205, 7181, 7207, 7206, 7203, 7204, 7182, 6914, 6914, 6623,
-				6914, 6914, 6914, 6914, 6914, 6914, 6857, 32, 425, 425, 6854, 425, 6854, 425, 6854, 425, 6854, 6857,
-				6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 425, 425, 425, 425, 425, 425, 425,
-				425, 425, 425, 425, 425, 6914, 6914, 6914, 6914, 6914, 6854, 6914, 6914, 6914, 6914, 6914, 6914, 6914,
-				6914, 6914, 6914, 6914, 37, 6928, 6928, 6928, 6928, 6928, 6914, 6928, 6914, 6914, 6854, 6914, 575, 6914,
-				6914, 6914, 6914, 6914, 6914, 6914, 6914, 6854, 6928, 6928, 6928, 6928, 6928, 6928, 6928, 6928, 6928,
-				6928, 6928, 6928, 7208, 7287, 7288, 7202, 7209, 7205, 7181, 7207, 7206, 7203, 7204, 7182, 6914, 6914,
-				6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 6914, 6928, 6914, 6914, 6914,
-				6928, 6914, 6914, 6928 };
-	}
-
-	public final static char termAction[] = TermAction.termAction;
-
-	@Override
-	public final int termAction(int index) {
-		return termAction[index];
-	}
-
-	public interface Asb {
-		public final static char asb[] = { 0, 946, 7, 1159, 258, 563, 419, 53, 1074, 61, 66, 1120, 519, 330, 61, 997,
-				1008, 68, 1008, 63, 1008, 1, 1008, 992, 1008, 519, 520, 115, 419, 514, 158, 678, 678, 523, 520, 678,
-				520, 258, 751, 1072, 9, 68, 68, 273, 520, 331, 112, 165, 65, 987, 66, 519, 277, 520, 520, 51, 212, 432,
-				432, 270, 260, 260, 517, 267, 269, 514, 520, 427, 112, 277, 277, 675, 376, 112, 678, 678, 751, 678, 520,
-				49, 861, 181, 1122, 1122, 1121, 1121, 68, 519, 520, 331, 270, 165, 520, 432, 595, 430, 51, 68, 633, 520,
-				277, 51, 520, 1113, 432, 68, 519, 336, 514, 520, 481, 121, 514, 1113, 673, 671, 277, 277, 517, 376, 376,
-				331, 861, 181, 1121, 1121, 1121, 520, 270, 270, 724, 520, 165, 853, 66, 751, 329, 843, 165, 432, 431,
-				432, 432, 51, 633, 633, 520, 1072, 564, 250, 258, 751, 751, 751, 751, 519, 258, 160, 482, 482, 482, 482,
-				482, 482, 482, 482, 482, 680, 686, 691, 688, 465, 1049, 1047, 1054, 1052, 1056, 1055, 1057, 379, 1058,
-				1071, 520, 212, 520, 68, 445, 639, 520, 258, 376, 465, 693, 698, 695, 701, 700, 703, 702, 718, 428, 112,
-				481, 724, 68, 704, 428, 671, 1072, 1072, 675, 112, 656, 827, 838, 1071, 751, 55, 55, 724, 724, 1121,
-				520, 49, 845, 432, 432, 432, 432, 520, 633, 723, 727, 723, 600, 611, 611, 611, 611, 557, 519, 517, 857,
-				835, 834, 465, 563, 563, 563, 563, 520, 71, 904, 562, 49, 465, 680, 48, 48, 71, 481, 482, 482, 482, 482,
-				482, 482, 482, 112, 112, 248, 465, 732, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 481, 481,
-				481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 482, 465, 1113, 643, 446, 519, 520, 71, 482, 482, 482,
-				482, 482, 482, 482, 482, 482, 482, 481, 482, 737, 724, 121, 481, 481, 481, 481, 481, 481, 481, 481, 481,
-				481, 481, 671, 671, 645, 481, 836, 836, 855, 517, 753, 181, 1122, 181, 1070, 1070, 724, 270, 331, 269,
-				482, 853, 268, 744, 432, 432, 896, 723, 724, 482, 520, 520, 248, 112, 859, 861, 112, 112, 1072, 1072,
-				1072, 1072, 51, 112, 376, 562, 481, 112, 330, 332, 330, 112, 376, 688, 688, 686, 686, 686, 482, 786,
-				1014, 1014, 519, 160, 482, 1047, 1047, 1047, 691, 691, 1052, 1049, 1049, 1055, 1054, 1056, 853, 1057,
-				643, 445, 853, 482, 853, 270, 444, 258, 258, 258, 446, 258, 520, 386, 270, 270, 520, 68, 112, 695, 695,
-				693, 693, 693, 693, 700, 698, 702, 701, 853, 703, 481, 121, 671, 670, 645, 481, 481, 859, 827, 181, 563,
-				563, 270, 845, 482, 482, 639, 209, 897, 520, 724, 51, 112, 861, 258, 258, 258, 258, 520, 520, 482, 563,
-				684, 214, 112, 520, 332, 49, 520, 49, 822, 481, 436, 258, 436, 446, 853, 446, 465, 465, 463, 444, 465,
-				270, 270, 668, 443, 481, 723, 671, 647, 1071, 896, 520, 519, 519, 520, 520, 660, 112, 481, 481, 481,
-				481, 258, 258, 112, 684, 517, 212, 520, 331, 51, 331, 753, 446, 112, 514, 112, 463, 419, 258, 112, 643,
-				722, 120, 647, 593, 520, 520, 520, 660, 660, 112, 112, 112, 112, 71, 71, 684, 685, 684, 481, 214, 334,
-				680, 212, 520, 112, 112, 810, 446, 668, 446, 270, 419, 481, 446, 443, 722, 722, 258, 55, 520, 520, 652,
-				660, 112, 112, 684, 71, 482, 376, 334, 797, 68, 68, 936, 481, 444, 71, 270, 112, 862, 1070, 652, 652,
-				685, 112, 376, 446, 112, 270, 839, 330, 652, 446, 563 };
-	}
-
-	public final static char asb[] = Asb.asb;
-
-	@Override
-	public final int asb(int index) {
-		return asb[index];
-	}
-
-	public interface Asr {
-		public final static byte asr[] = { 0, 4, 9, 69, 1, 2, 0, 120, 0, 64, 25, 11, 12, 41, 23, 13, 55, 26, 88, 27, 14,
-				28, 29, 15, 16, 30, 59, 31, 17, 18, 32, 56, 33, 10, 58, 19, 62, 22, 20, 24, 21, 3, 7, 5, 39, 63, 69, 9,
-				4, 8, 6, 1, 2, 57, 0, 65, 70, 68, 1, 2, 0, 38, 0, 57, 4, 71, 1, 2, 69, 9, 0, 11, 12, 42, 66, 13, 43, 44,
-				14, 15, 16, 67, 8, 45, 17, 18, 46, 47, 48, 60, 49, 50, 10, 19, 20, 21, 51, 52, 53, 38, 1, 2, 3, 36, 37,
-				7, 5, 34, 35, 6, 40, 4, 72, 9, 0, 9, 71, 69, 74, 0, 73, 60, 36, 37, 7, 5, 34, 35, 40, 46, 3, 4, 51, 52,
-				53, 38, 49, 44, 48, 12, 21, 11, 17, 15, 16, 18, 19, 14, 13, 20, 10, 43, 47, 45, 42, 50, 69, 9, 8, 6, 1,
-				2, 67, 66, 0, 88, 59, 8, 114, 115, 116, 62, 9, 3, 7, 5, 6, 71, 73, 39, 63, 25, 11, 12, 41, 23, 13, 55,
-				26, 27, 14, 28, 29, 15, 16, 30, 31, 17, 18, 32, 56, 57, 33, 10, 58, 19, 20, 24, 21, 1, 2, 22, 4, 0, 98,
-				91, 34, 35, 99, 100, 86, 87, 54, 89, 90, 92, 93, 94, 95, 96, 101, 102, 71, 97, 70, 103, 104, 105, 106,
-				107, 108, 109, 110, 111, 112, 118, 73, 39, 9, 72, 65, 68, 1, 2, 7, 5, 4, 61, 3, 0, 74, 65, 71, 97, 72,
-				69, 61, 3, 70, 68, 39, 9, 0, 9, 69, 70, 0, 25, 11, 12, 41, 23, 42, 66, 13, 43, 55, 26, 27, 44, 14, 28,
-				29, 15, 16, 30, 67, 31, 45, 17, 18, 46, 32, 47, 56, 48, 60, 49, 33, 50, 58, 19, 22, 20, 24, 21, 51, 52,
-				53, 38, 3, 36, 37, 7, 5, 34, 35, 40, 65, 10, 4, 8, 1, 2, 6, 0, 66, 67, 3, 10, 43, 47, 45, 42, 50, 12,
-				21, 11, 17, 15, 16, 18, 19, 14, 13, 20, 51, 52, 53, 38, 49, 44, 48, 6, 8, 4, 36, 37, 7, 5, 34, 35, 40,
-				46, 1, 2, 118, 9, 0, 65, 71, 97, 68, 118, 72, 73, 11, 12, 42, 66, 13, 43, 44, 14, 15, 16, 67, 45, 17,
-				18, 46, 47, 48, 60, 49, 50, 10, 19, 20, 21, 51, 52, 53, 38, 36, 37, 34, 35, 40, 9, 39, 6, 8, 1, 2, 4, 3,
-				7, 5, 0, 4, 54, 9, 71, 69, 0, 88, 114, 115, 116, 57, 71, 120, 113, 121, 73, 63, 74, 62, 59, 64, 76, 78,
-				84, 82, 75, 80, 81, 83, 85, 69, 77, 79, 39, 9, 23, 41, 55, 26, 27, 28, 29, 30, 25, 31, 32, 56, 33, 58,
-				22, 24, 60, 66, 67, 10, 43, 47, 45, 42, 50, 12, 21, 11, 17, 15, 16, 18, 19, 14, 13, 20, 51, 52, 53, 38,
-				49, 44, 48, 36, 37, 34, 35, 40, 46, 6, 8, 3, 7, 5, 4, 1, 2, 0, 67, 66, 34, 35, 99, 100, 94, 95, 6, 40,
-				70, 54, 106, 107, 103, 104, 105, 111, 110, 112, 87, 86, 108, 109, 92, 93, 89, 90, 96, 101, 36, 37, 91,
-				117, 61, 7, 5, 65, 68, 3, 4, 10, 1, 2, 55, 56, 58, 12, 21, 11, 17, 15, 16, 18, 19, 14, 13, 20, 25, 31,
-				32, 27, 30, 29, 22, 26, 23, 24, 28, 33, 41, 0, 4, 9, 71, 69, 0, 12, 21, 11, 17, 15, 16, 18, 19, 14, 13,
-				20, 1, 2, 61, 3, 7, 5, 65, 4, 68, 25, 31, 32, 27, 30, 29, 22, 26, 23, 24, 28, 33, 0, 1, 2, 9, 68, 73, 0,
-				9, 69, 68, 0, 113, 0, 23, 24, 74, 3, 71, 39, 69, 60, 65, 70, 68, 9, 72, 97, 0, 23, 60, 24, 9, 65, 97,
-				68, 72, 70, 0, 60, 23, 24, 8, 6, 1, 2, 4, 74, 69, 119, 117, 36, 37, 61, 3, 98, 91, 5, 99, 100, 34, 35,
-				87, 86, 54, 89, 90, 92, 93, 7, 94, 95, 96, 65, 97, 72, 70, 103, 104, 105, 106, 107, 108, 109, 110, 111,
-				112, 71, 118, 101, 102, 39, 68, 73, 9, 0, 9, 68, 73, 70, 0, 54, 65, 89, 90, 0, 9, 71, 118, 72, 39, 68,
-				0, 71, 9, 61, 3, 70, 68, 39, 54, 0, 25, 11, 12, 41, 23, 13, 55, 26, 27, 14, 28, 29, 15, 16, 30, 31, 17,
-				18, 32, 56, 33, 10, 58, 19, 22, 20, 24, 21, 1, 2, 4, 97, 0, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
-				25, 23, 26, 27, 28, 29, 30, 31, 32, 33, 22, 24, 39, 9, 72, 8, 1, 2, 61, 3, 7, 5, 6, 4, 0, 72, 9, 87, 86,
-				0, 7, 5, 8, 6, 4, 1, 2, 3, 61, 65, 70, 97, 72, 9, 68, 0, 39, 9, 3, 8, 6, 7, 5, 4, 1, 2, 71, 0, 6, 8, 3,
-				61, 5, 7, 97, 25, 11, 12, 41, 23, 13, 55, 26, 27, 14, 28, 29, 15, 16, 30, 31, 17, 18, 32, 56, 33, 10,
-				58, 19, 22, 20, 24, 21, 1, 2, 4, 72, 9, 0, 22, 1, 2, 4, 114, 115, 116, 0, 66, 67, 36, 37, 34, 35, 40,
-				46, 51, 52, 53, 38, 49, 44, 48, 12, 21, 11, 17, 15, 16, 18, 19, 14, 13, 20, 10, 43, 47, 45, 42, 50, 7,
-				5, 3, 61, 8, 6, 4, 1, 2, 0, 9, 3, 7, 5, 6, 8, 39, 25, 11, 12, 41, 23, 13, 55, 26, 14, 28, 29, 15, 16,
-				30, 31, 17, 18, 32, 56, 33, 10, 58, 19, 22, 20, 24, 21, 120, 63, 59, 27, 88, 64, 62, 57, 1, 2, 4, 0, 10,
-				55, 41, 56, 58, 12, 21, 11, 17, 15, 16, 18, 19, 14, 13, 20, 74, 71, 97, 118, 73, 69, 8, 31, 32, 33, 22,
-				24, 1, 2, 30, 29, 28, 27, 26, 6, 4, 23, 25, 119, 98, 117, 91, 36, 37, 34, 35, 99, 100, 9, 61, 3, 5, 72,
-				39, 87, 86, 54, 89, 90, 92, 93, 7, 94, 95, 96, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
-				112, 70, 68, 65, 0, 41, 23, 13, 55, 26, 14, 28, 29, 15, 16, 30, 31, 17, 18, 32, 56, 33, 10, 58, 19, 22,
-				20, 24, 21, 12, 11, 25, 9, 3, 7, 39, 62, 59, 64, 88, 27, 63, 54, 4, 8, 5, 6, 1, 2, 57, 0, 120, 73, 41,
-				23, 13, 55, 26, 14, 28, 29, 15, 16, 30, 31, 17, 18, 32, 56, 33, 58, 19, 22, 20, 24, 21, 12, 11, 25, 9,
-				3, 7, 5, 39, 63, 27, 88, 64, 62, 57, 8, 1, 2, 6, 4, 10, 59, 0 };
-	}
-
-	public final static byte asr[] = Asr.asr;
-
-	@Override
-	public final int asr(int index) {
-		return asr[index];
-	}
-
-	public interface Nasb {
-		public final static char nasb[] = { 0, 270, 12, 41, 12, 5, 166, 12, 284, 12, 117, 284, 80, 80, 12, 281, 282,
-				221, 282, 49, 282, 13, 282, 275, 12, 10, 173, 188, 156, 183, 240, 12, 12, 113, 267, 12, 173, 12, 12, 12,
-				220, 221, 118, 12, 227, 227, 97, 188, 43, 80, 70, 80, 188, 173, 11, 12, 12, 188, 68, 178, 85, 85, 161,
-				16, 12, 236, 173, 12, 97, 188, 188, 34, 104, 97, 12, 12, 12, 12, 11, 22, 188, 188, 284, 284, 188, 188,
-				221, 80, 135, 240, 178, 297, 44, 91, 91, 12, 227, 221, 188, 227, 24, 123, 44, 93, 68, 120, 64, 99, 236,
-				173, 61, 74, 183, 131, 163, 163, 24, 24, 161, 104, 104, 240, 208, 208, 270, 270, 188, 227, 178, 178,
-				109, 173, 178, 12, 134, 12, 41, 165, 297, 91, 91, 188, 188, 123, 188, 268, 11, 12, 253, 212, 12, 12, 12,
-				12, 12, 80, 12, 173, 76, 76, 263, 76, 76, 76, 76, 76, 76, 12, 12, 12, 12, 143, 12, 12, 12, 12, 12, 12,
-				12, 76, 12, 12, 44, 12, 11, 120, 108, 12, 227, 12, 104, 148, 12, 12, 12, 12, 12, 12, 12, 12, 163, 97,
-				76, 188, 221, 12, 12, 188, 12, 12, 192, 97, 12, 181, 12, 12, 12, 32, 32, 109, 109, 270, 135, 22, 156,
-				188, 188, 39, 39, 44, 268, 37, 12, 12, 281, 282, 282, 282, 282, 289, 10, 161, 211, 85, 85, 148, 305,
-				305, 305, 305, 173, 58, 76, 89, 22, 148, 12, 52, 52, 58, 149, 76, 76, 76, 76, 76, 76, 76, 97, 97, 212,
-				1, 12, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 149, 76,
-				24, 93, 188, 199, 64, 11, 58, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 149, 76, 12, 109, 188, 76, 76, 76,
-				76, 76, 76, 76, 76, 76, 76, 76, 163, 141, 188, 76, 12, 12, 180, 161, 208, 208, 284, 188, 12, 12, 109,
-				178, 240, 178, 76, 12, 137, 12, 39, 39, 230, 37, 109, 76, 268, 173, 190, 97, 205, 188, 97, 97, 12, 12,
-				12, 12, 21, 97, 104, 305, 61, 97, 239, 173, 239, 97, 104, 12, 12, 12, 12, 12, 76, 12, 12, 12, 10, 173,
-				76, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 47, 216, 12, 76, 12, 178, 12, 12, 12, 12, 217,
-				12, 268, 176, 178, 178, 268, 126, 97, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 76, 74, 188, 141,
-				141, 76, 76, 205, 234, 208, 305, 305, 178, 183, 76, 76, 12, 80, 139, 227, 109, 123, 97, 208, 12, 12, 12,
-				12, 44, 11, 76, 305, 188, 82, 97, 173, 260, 22, 173, 22, 97, 76, 111, 12, 12, 217, 12, 217, 223, 223,
-				244, 12, 223, 178, 178, 12, 188, 76, 109, 141, 188, 12, 152, 227, 80, 80, 11, 44, 188, 97, 149, 149,
-				149, 149, 12, 12, 97, 18, 192, 12, 267, 44, 20, 44, 305, 217, 97, 183, 97, 249, 188, 12, 97, 47, 106,
-				73, 87, 12, 11, 227, 227, 141, 188, 97, 97, 97, 97, 58, 58, 188, 129, 12, 149, 192, 261, 12, 12, 44, 97,
-				97, 188, 217, 12, 217, 178, 183, 149, 217, 111, 106, 12, 12, 32, 11, 11, 188, 141, 97, 97, 18, 58, 76,
-				104, 261, 12, 126, 126, 181, 76, 12, 196, 178, 97, 304, 12, 87, 188, 129, 97, 104, 217, 97, 178, 97,
-				239, 87, 217, 305 };
-	}
-
-	public final static char nasb[] = Nasb.nasb;
-
-	@Override
-	public final int nasb(int index) {
-		return nasb[index];
-	}
-
-	public interface Nasr {
-		public final static char nasr[] = { 0, 3, 13, 10, 9, 137, 136, 113, 135, 134, 4, 2, 0, 166, 200, 0, 201, 0, 161,
-				0, 2, 154, 75, 0, 4, 10, 9, 2, 13, 129, 5, 0, 123, 0, 5, 212, 0, 167, 0, 125, 0, 170, 0, 44, 2, 3, 0,
-				175, 0, 166, 205, 0, 4, 2, 9, 10, 157, 0, 5, 105, 0, 5, 28, 0, 186, 4, 185, 0, 173, 0, 42, 1, 0, 81,
-				148, 42, 13, 2, 9, 10, 4, 0, 5, 194, 0, 80, 0, 144, 0, 192, 0, 124, 0, 75, 156, 155, 0, 30, 0, 13, 2, 9,
-				10, 4, 94, 0, 176, 0, 5, 81, 0, 131, 0, 5, 52, 213, 0, 1, 140, 0, 42, 174, 0, 2, 75, 0, 42, 66, 0, 159,
-				0, 75, 59, 0, 140, 119, 0, 208, 0, 210, 0, 51, 0, 13, 2, 9, 10, 4, 52, 5, 37, 0, 4, 115, 182, 0, 5, 10,
-				9, 2, 78, 4, 98, 59, 0, 39, 4, 2, 9, 10, 5, 172, 0, 2, 44, 0, 5, 37, 39, 0, 30, 101, 100, 78, 4, 2, 9,
-				10, 5, 0, 101, 100, 59, 4, 68, 0, 5, 195, 0, 5, 49, 42, 37, 196, 0, 59, 4, 98, 27, 5, 0, 30, 100, 101,
-				5, 0, 81, 37, 49, 82, 5, 42, 0, 5, 52, 117, 0, 2, 67, 0, 4, 115, 209, 0, 101, 100, 59, 78, 68, 4, 10, 9,
-				2, 0, 37, 5, 27, 198, 0, 52, 5, 197, 0, 137, 214, 136, 113, 135, 134, 0, 2, 132, 0, 4, 10, 9, 13, 3, 1,
-				0, 118, 92, 49, 5, 0, 2, 4, 113, 110, 111, 112, 13, 69, 0, 5, 49, 92, 95, 0, 113, 69, 13, 110, 111, 112,
-				190, 0, 5, 49, 92, 115, 47, 4, 0, 30, 5, 52, 0 };
-	}
-
-	public final static char nasr[] = Nasr.nasr;
-
-	@Override
-	public final int nasr(int index) {
-		return nasr[index];
-	}
-
-	public interface TerminalIndex {
-		public final static char terminalIndex[] = { 0, 113, 114, 2, 31, 10, 13, 9, 79, 115, 100, 48, 52, 60, 68, 74,
-				75, 86, 87, 102, 105, 107, 104, 54, 106, 47, 64, 66, 70, 73, 76, 83, 89, 98, 11, 12, 7, 8, 112, 120, 14,
-				53, 55, 61, 67, 84, 88, 90, 94, 97, 99, 109, 110, 111, 19, 63, 91, 93, 101, 77, 95, 1, 103, 122, 46, 20,
-				58, 78, 44, 121, 33, 30, 118, 119, 96, 108, 49, 50, 56, 57, 59, 69, 71, 72, 85, 92, 17, 18, 65, 21, 22,
-				6, 23, 24, 25, 26, 27, 32, 4, 15, 16, 28, 29, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 51, 80, 81, 82, 5,
-				117, 3, 123, 62, 116 };
-	}
-
-	public final static char terminalIndex[] = TerminalIndex.terminalIndex;
-
-	@Override
-	public final int terminalIndex(int index) {
-		return terminalIndex[index];
-	}
-
-	public interface NonterminalIndex {
-		public final static char nonterminalIndex[] = { 0, 129, 134, 135, 0, 0, 133, 0, 0, 236, 242, 132, 0, 142, 0,
-				131, 0, 0, 141, 147, 0, 0, 148, 157, 158, 159, 160, 187, 150, 0, 125, 161, 140, 162, 163, 164, 165, 130,
-				166, 127, 167, 0, 128, 137, 136, 169, 168, 184, 0, 0, 170, 194, 151, 171, 0, 0, 0, 0, 0, 0, 172, 173,
-				174, 175, 0, 176, 179, 0, 154, 193, 0, 0, 0, 211, 0, 0, 144, 208, 212, 0, 213, 126, 178, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 182, 124, 185, 0, 0, 209, 215, 216, 217, 0, 219, 156, 0, 145, 0, 0, 214, 196, 197, 198,
-				200, 226, 227, 0, 181, 186, 203, 0, 0, 218, 0, 0, 0, 0, 247, 0, 250, 0, 251, 146, 188, 189, 190, 191,
-				195, 199, 202, 0, 205, 0, 206, 0, 221, 224, 0, 0, 0, 245, 0, 246, 0, 0, 138, 139, 143, 0, 0, 153, 155,
-				0, 177, 0, 192, 0, 0, 0, 201, 0, 204, 210, 0, 222, 223, 0, 0, 228, 231, 0, 233, 235, 0, 239, 240, 241,
-				244, 0, 0, 248, 0, 0, 149, 152, 0, 180, 0, 183, 0, 0, 207, 220, 225, 0, 0, 229, 230, 232, 234, 0, 237,
-				238, 243, 249, 252, 253, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
-
-	@Override
-	public final int nonterminalIndex(int index) {
-		return nonterminalIndex[index];
-	}
-
-	public interface ScopePrefix {
-		public final static char scopePrefix[] = { 172, 324, 608, 627, 317, 332, 559, 575, 586, 597, 372, 280, 294, 311,
-				344, 55, 305, 392, 430, 180, 616, 502, 20, 33, 64, 84, 93, 98, 103, 143, 208, 339, 350, 20, 467, 157,
-				286, 300, 530, 40, 157, 382, 20, 635, 40, 230, 259, 1, 14, 27, 74, 89, 119, 27, 361, 365, 448, 495, 524,
-				551, 555, 645, 649, 653, 110, 7, 110, 410, 426, 439, 460, 479, 543, 129, 129, 245, 439, 566, 582, 593,
-				604, 220, 513, 69, 69, 169, 235, 238, 69, 254, 275, 238, 238, 69, 369, 492, 499, 169, 69, 668, 123, 355,
-				414, 454, 486, 472, 69, 355, 401, 190, 117, 452, 657, 664, 657, 664, 78, 420, 150, 117, 117, 264 };
-	}
-
-	public final static char scopePrefix[] = ScopePrefix.scopePrefix;
-
-	@Override
-	public final int scopePrefix(int index) {
-		return scopePrefix[index];
-	}
-
-	public interface ScopeSuffix {
-		public final static char scopeSuffix[] = { 18, 148, 5, 5, 148, 148, 5, 5, 5, 5, 379, 148, 108, 148, 25, 61, 291,
-				398, 436, 186, 80, 508, 25, 38, 38, 38, 72, 72, 108, 148, 213, 31, 31, 25, 5, 162, 291, 114, 535, 51,
-				165, 387, 622, 640, 45, 224, 224, 5, 18, 31, 5, 72, 108, 31, 108, 108, 148, 257, 5, 5, 5, 5, 5, 257,
-				666, 11, 114, 379, 379, 379, 464, 483, 535, 133, 138, 249, 443, 570, 570, 570, 570, 224, 517, 72, 72, 5,
-				5, 241, 243, 257, 5, 278, 278, 243, 108, 5, 257, 5, 528, 5, 126, 358, 417, 457, 489, 475, 547, 538, 404,
-				193, 108, 108, 659, 659, 661, 661, 80, 422, 152, 215, 200, 266 };
-	}
-
-	public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
-
-	@Override
-	public final int scopeSuffix(int index) {
-		return scopeSuffix[index];
-	}
-
-	public interface ScopeLhs {
-		public final static char scopeLhs[] = { 47, 112, 18, 18, 91, 112, 18, 18, 18, 18, 85, 97, 48, 91, 111, 89, 57,
-				85, 84, 47, 18, 20, 190, 3, 7, 8, 182, 182, 178, 110, 47, 111, 111, 138, 45, 147, 58, 48, 157, 151, 147,
-				85, 18, 18, 151, 102, 72, 153, 88, 190, 185, 182, 178, 138, 199, 55, 66, 161, 19, 18, 18, 18, 18, 18,
-				12, 131, 178, 85, 84, 84, 64, 41, 157, 114, 114, 68, 84, 18, 18, 18, 18, 102, 20, 186, 182, 201, 100,
-				109, 74, 80, 73, 172, 93, 138, 86, 162, 161, 192, 157, 17, 178, 138, 117, 83, 22, 45, 157, 157, 85, 47,
-				178, 79, 155, 44, 155, 44, 185, 117, 110, 47, 47, 72 };
-	}
-
-	public final static char scopeLhs[] = ScopeLhs.scopeLhs;
-
-	@Override
-	public final int scopeLhs(int index) {
-		return scopeLhs[index];
-	}
-
-	public interface ScopeLa {
-		public final static byte scopeLa[] = { 113, 73, 72, 72, 73, 73, 72, 72, 72, 72, 72, 73, 39, 73, 1, 65, 1, 72,
-				121, 69, 3, 72, 1, 65, 65, 65, 1, 1, 39, 73, 69, 1, 1, 1, 72, 73, 1, 1, 4, 65, 68, 39, 1, 1, 65, 72, 72,
-				72, 113, 1, 72, 1, 39, 1, 39, 39, 73, 118, 72, 72, 72, 72, 72, 118, 1, 72, 1, 72, 72, 72, 71, 71, 4, 1,
-				1, 5, 72, 65, 65, 65, 65, 72, 3, 1, 1, 72, 72, 3, 1, 118, 72, 1, 1, 1, 39, 72, 118, 72, 6, 72, 1, 57,
-				70, 71, 72, 65, 1, 57, 75, 74, 39, 39, 4, 4, 4, 4, 3, 1, 69, 1, 1, 3 };
-	}
-
-	public final static byte scopeLa[] = ScopeLa.scopeLa;
-
-	@Override
-	public final int scopeLa(int index) {
-		return scopeLa[index];
-	}
-
-	public interface ScopeStateSet {
-		public final static char scopeStateSet[] = { 342, 336, 245, 245, 365, 336, 245, 245, 245, 245, 353, 367, 342,
-				365, 336, 365, 344, 353, 353, 342, 245, 245, 42, 175, 221, 221, 21, 21, 97, 336, 342, 336, 336, 338, 72,
-				332, 344, 342, 37, 45, 332, 353, 245, 245, 45, 106, 156, 4, 353, 42, 49, 21, 97, 338, 35, 344, 52, 8,
-				245, 245, 245, 245, 245, 245, 225, 16, 97, 353, 353, 353, 80, 305, 37, 336, 336, 115, 353, 245, 245,
-				245, 245, 106, 245, 49, 21, 100, 106, 108, 156, 102, 156, 172, 161, 338, 353, 1, 8, 40, 37, 245, 97,
-				338, 11, 353, 246, 72, 37, 37, 353, 342, 97, 24, 69, 131, 69, 131, 49, 11, 336, 342, 342, 156 };
-	}
-
-	public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet;
-
-	@Override
-	public final int scopeStateSet(int index) {
-		return scopeStateSet[index];
-	}
-
-	public interface ScopeRhs {
-		public final static char scopeRhs[] = { 0, 338, 3, 60, 0, 125, 0, 337, 3, 113, 0, 125, 179, 0, 127, 188, 74, 0,
-				223, 0, 197, 166, 126, 10, 0, 135, 0, 166, 126, 10, 0, 134, 0, 271, 127, 54, 124, 0, 20, 0, 309, 127,
-				54, 57, 0, 20, 53, 0, 33, 131, 0, 20, 53, 0, 0, 309, 127, 54, 57, 214, 0, 20, 185, 0, 271, 127, 54, 132,
-				0, 189, 126, 0, 140, 0, 227, 3, 308, 0, 308, 0, 2, 0, 125, 0, 271, 127, 54, 131, 0, 189, 126, 237, 0,
-				189, 126, 22, 237, 0, 189, 126, 332, 22, 0, 128, 197, 166, 126, 0, 127, 0, 197, 166, 126, 0, 133, 127,
-				0, 171, 0, 328, 127, 171, 0, 127, 171, 0, 229, 127, 0, 166, 327, 235, 0, 135, 0, 0, 0, 0, 134, 0, 0, 0,
-				0, 326, 127, 164, 236, 0, 126, 0, 236, 0, 128, 0, 0, 126, 0, 325, 127, 164, 270, 0, 126, 0, 0, 44, 126,
-				0, 0, 150, 3, 0, 127, 296, 295, 127, 74, 294, 171, 0, 295, 127, 74, 294, 171, 0, 222, 0, 223, 0, 294,
-				171, 0, 96, 0, 0, 222, 0, 223, 0, 210, 96, 0, 0, 222, 0, 223, 0, 295, 127, 294, 171, 0, 222, 0, 210, 0,
-				0, 222, 0, 242, 127, 3, 0, 125, 0, 0, 0, 0, 0, 242, 127, 3, 222, 0, 231, 3, 0, 220, 127, 0, 215, 0, 145,
-				0, 181, 166, 126, 0, 10, 0, 0, 0, 0, 226, 61, 0, 124, 0, 242, 127, 3, 195, 0, 195, 0, 2, 0, 0, 125, 0,
-				0, 0, 0, 0, 215, 3, 0, 208, 0, 238, 127, 164, 38, 27, 0, 189, 126, 59, 62, 0, 203, 127, 0, 128, 189,
-				126, 292, 62, 0, 189, 126, 292, 62, 0, 189, 126, 70, 123, 59, 0, 238, 127, 164, 262, 59, 0, 238, 127,
-				164, 262, 241, 59, 0, 289, 290, 127, 164, 123, 322, 55, 0, 289, 290, 127, 164, 322, 55, 0, 189, 126,
-				288, 55, 0, 197, 189, 126, 288, 235, 0, 189, 126, 288, 235, 0, 166, 126, 0, 93, 135, 0, 286, 127, 149,
-				0, 286, 127, 171, 0, 159, 84, 0, 317, 161, 319, 320, 3, 81, 0, 125, 178, 0, 319, 320, 3, 81, 0, 127, 0,
-				125, 178, 0, 159, 3, 75, 204, 80, 0, 125, 127, 0, 204, 80, 0, 108, 2, 130, 125, 127, 0, 239, 3, 75, 0,
-				215, 174, 0, 33, 168, 0, 174, 0, 182, 33, 168, 0, 239, 3, 85, 0, 204, 152, 239, 3, 83, 0, 62, 178, 0,
-				239, 3, 83, 0, 125, 178, 62, 178, 0, 318, 127, 164, 0, 159, 0, 226, 77, 0, 30, 178, 0, 159, 102, 185, 0,
-				30, 176, 0, 148, 65, 167, 3, 0, 167, 3, 0, 20, 160, 125, 0, 159, 102, 162, 0, 30, 168, 0, 198, 3, 0,
-				125, 148, 0, 227, 3, 0, 226, 61, 283, 0, 159, 61, 0, 198, 3, 314, 67, 126, 0, 125, 0, 0, 0, 0, 314, 67,
-				126, 0, 2, 144, 125, 0, 0, 0, 0, 198, 3, 46, 0, 146, 0, 125, 57, 166, 126, 0, 31, 146, 0, 93, 135, 31,
-				146, 0, 228, 189, 126, 0, 145, 31, 146, 0, 198, 3, 50, 0, 159, 3, 50, 0, 159, 3, 65, 198, 54, 42, 0,
-				198, 54, 42, 0, 20, 2, 130, 125, 0, 159, 3, 65, 198, 54, 45, 0, 198, 54, 45, 0, 159, 3, 65, 198, 54, 47,
-				0, 198, 54, 47, 0, 159, 3, 65, 198, 54, 43, 0, 198, 54, 43, 0, 227, 3, 125, 197, 166, 126, 10, 0, 125,
-				197, 166, 126, 10, 0, 135, 2, 0, 125, 0, 227, 3, 124, 276, 166, 126, 10, 0, 276, 166, 126, 10, 0, 134,
-				2, 0, 125, 0, 227, 3, 135, 0, 227, 3, 140, 0, 159, 61, 140, 0, 278, 0, 31, 0, 31, 138, 0, 165, 0, 133,
-				0, 159, 3, 0 };
-	}
-
-	public final static char scopeRhs[] = ScopeRhs.scopeRhs;
-
-	@Override
-	public final int scopeRhs(int index) {
-		return scopeRhs[index];
-	}
-
-	public interface ScopeState {
-		public final static char scopeState[] = { 0, 2721, 1967, 0, 2438, 1974, 1194, 0, 1326, 640, 0, 4993, 6320, 6287,
-				4751, 0, 2510, 1533, 1572, 802, 0, 3481, 4759, 0, 5371, 5309, 5211, 5109, 5047, 4985, 4923, 4861, 4744,
-				4579, 4517, 4894, 0, 1047, 871, 0, 1195, 0, 6230, 5171, 0, 3477, 3883, 3385, 0, 2061, 927, 0, 5371,
-				5309, 2123, 1991, 5211, 5109, 5047, 4985, 4923, 4861, 1859, 4744, 4579, 4517, 1665, 1595, 0, 1443, 1375,
-				0, 3344, 3446, 3636, 3545, 3918, 3851, 3725, 3297, 2834, 934, 2204, 2138, 2072, 2006, 1940, 1874, 1808,
-				1742, 1676, 1610, 1544, 841, 770, 677, 0, 6262, 6246, 0, 626, 0, 2944, 2862, 1848, 1189, 4805, 4316,
-				4668, 4299, 3393, 4530, 3945, 3082, 0, 3327, 760, 4805, 5056, 4521, 4316, 3376, 3273, 3990, 1039, 3163,
-				4469, 3831, 1473, 3752, 0, 6064, 6028, 5905, 5913, 5404, 5825, 5379, 5286, 5400, 5300, 5180, 5230, 4612,
-				5076, 3771, 5014, 4956, 4952, 673, 765, 4869, 4752, 4550, 4027, 0, 4805, 4003, 4469, 3831, 652, 4668,
-				5198, 1904, 744, 4299, 3990, 3945, 1574, 1772, 3752, 0, 4003, 652, 0, 2359, 2312, 2547, 6064, 6028,
-				1390, 2500, 2453, 2406, 2260, 1259, 5905, 5913, 5217, 5404, 2192, 5825, 5379, 5286, 5400, 973, 5300,
-				1840, 5180, 3089, 1437, 5230, 4612, 5076, 3771, 1341, 5014, 4956, 964, 3187, 4952, 2782, 673, 765, 4869,
-				4752, 4550, 811, 4027, 5992, 4351, 2864, 2234, 1199, 907, 2037, 4668, 5198, 1904, 744, 4805, 2168, 2102,
-				4299, 1047, 871, 3990, 3945, 4003, 1574, 4469, 3831, 1772, 3752, 652, 5829, 2834, 5784, 4324, 5761,
-				3407, 3600, 3508, 3776, 3690, 4272, 4245, 4218, 4191, 3958, 1264, 934, 3344, 2204, 2138, 2072, 2006,
-				1940, 1874, 1808, 1742, 1676, 1610, 1544, 3446, 3636, 3545, 3918, 3851, 3725, 4490, 4423, 4116, 4089,
-				1115, 5484, 5460, 4833, 4708, 4681, 5738, 5715, 5692, 3297, 5669, 5646, 5623, 5600, 5577, 5554, 5531,
-				5508, 841, 770, 677, 2947, 3234, 2900, 3192, 3135, 1395, 1348, 2787, 3093, 3036, 2994, 1299, 2740, 2693,
-				2646, 2599, 2552, 2505, 2458, 2411, 2364, 2317, 2270, 598, 1217, 1488, 1445, 1068, 1000, 1150, 0, 6230,
-				5171, 598, 5992, 4351, 0, 6262, 6246, 6180, 5961, 5885, 5873, 6168, 6109, 6086, 6027, 5807, 5371, 5309,
-				5211, 5109, 5047, 4985, 4923, 4861, 4744, 4579, 4517, 0, 6262, 6246, 6180, 5961, 5885, 5873, 6168, 6109,
-				6086, 6027, 5807, 0 };
-	}
-
-	public final static char scopeState[] = ScopeState.scopeState;
-
-	@Override
-	public final int scopeState(int index) {
-		return scopeState[index];
-	}
-
-	public interface InSymb {
-		public final static char inSymb[] = { 0, 0, 313, 62, 64, 127, 171, 214, 57, 27, 59, 240, 59, 292, 3, 255, 256,
-				236, 257, 235, 258, 55, 287, 259, 124, 10, 126, 294, 127, 3, 4, 132, 131, 8, 6, 124, 126, 195, 57, 54,
-				38, 262, 241, 123, 126, 126, 38, 164, 327, 288, 322, 288, 54, 126, 189, 166, 165, 74, 127, 286, 200,
-				195, 127, 265, 293, 220, 126, 181, 215, 54, 54, 174, 61, 3, 66, 67, 124, 123, 189, 166, 3, 54, 65, 127,
-				164, 164, 262, 70, 189, 189, 152, 127, 166, 245, 125, 124, 126, 123, 164, 126, 127, 166, 57, 4, 127,
-				295, 71, 61, 220, 126, 3, 70, 68, 166, 7, 5, 127, 127, 127, 61, 61, 197, 127, 127, 127, 127, 164, 126,
-				241, 128, 326, 126, 169, 237, 59, 57, 62, 171, 329, 125, 124, 246, 246, 189, 164, 127, 189, 271, 127,
-				251, 50, 42, 45, 47, 43, 10, 135, 126, 46, 40, 6, 35, 34, 5, 7, 37, 36, 140, 145, 147, 146, 3, 167, 148,
-				175, 172, 183, 182, 184, 60, 185, 274, 197, 278, 197, 295, 164, 307, 126, 308, 226, 3, 148, 155, 153,
-				157, 156, 160, 158, 162, 166, 150, 127, 164, 270, 162, 181, 181, 271, 271, 220, 242, 243, 149, 244, 309,
-				57, 10, 41, 238, 238, 127, 189, 166, 127, 246, 246, 127, 127, 197, 127, 290, 123, 291, 255, 256, 257,
-				258, 336, 259, 10, 127, 3, 223, 222, 3, 54, 54, 54, 54, 126, 3, 66, 67, 166, 3, 125, 117, 119, 3, 61,
-				91, 98, 35, 34, 100, 99, 5, 198, 159, 174, 127, 167, 90, 89, 54, 86, 87, 7, 93, 92, 95, 94, 96, 112,
-				111, 110, 109, 108, 107, 106, 105, 104, 103, 70, 102, 101, 68, 4, 296, 127, 68, 189, 3, 93, 92, 90, 89,
-				65, 54, 94, 7, 96, 95, 102, 101, 285, 127, 164, 112, 111, 110, 109, 108, 107, 106, 105, 104, 103, 70, 5,
-				127, 152, 70, 231, 215, 3, 127, 68, 68, 65, 54, 245, 245, 238, 241, 197, 328, 71, 303, 215, 124, 127,
-				127, 71, 290, 289, 70, 68, 126, 220, 231, 127, 3, 198, 159, 198, 198, 198, 198, 166, 227, 61, 314, 3,
-				198, 57, 126, 57, 227, 159, 146, 146, 145, 145, 145, 152, 135, 125, 124, 10, 126, 65, 148, 148, 148,
-				147, 147, 172, 167, 167, 182, 175, 183, 159, 184, 127, 318, 79, 77, 1, 159, 9, 85, 83, 81, 80, 75, 82,
-				84, 78, 76, 59, 74, 227, 153, 153, 148, 148, 148, 148, 156, 155, 158, 157, 159, 160, 68, 127, 181, 173,
-				127, 70, 70, 127, 220, 127, 70, 70, 128, 68, 71, 70, 331, 237, 22, 126, 289, 166, 242, 127, 65, 65, 65,
-				65, 197, 276, 216, 3, 315, 174, 150, 126, 189, 166, 126, 166, 148, 71, 297, 113, 9, 71, 226, 71, 3, 3,
-				3, 204, 3, 123, 159, 123, 188, 71, 325, 127, 229, 309, 68, 126, 22, 332, 189, 197, 152, 242, 3, 3, 3, 3,
-				125, 124, 198, 127, 127, 228, 6, 57, 166, 57, 3, 71, 239, 174, 239, 320, 149, 75, 239, 127, 203, 68,
-				127, 65, 189, 126, 126, 127, 152, 159, 159, 159, 159, 3, 3, 152, 280, 283, 61, 190, 4, 123, 125, 197,
-				97, 337, 174, 152, 215, 152, 319, 127, 3, 152, 297, 203, 9, 60, 41, 189, 189, 229, 127, 227, 227, 127,
-				3, 61, 159, 4, 125, 152, 152, 127, 70, 204, 161, 286, 159, 3, 245, 127, 229, 280, 227, 226, 121, 317,
-				152, 338, 70, 127, 152, 68 };
-	}
-
-	public final static char inSymb[] = InSymb.inSymb;
-
-	@Override
-	public final int inSymb(int index) {
-		return inSymb[index];
-	}
-
-	public interface Name {
-		public final static String name[] = { "", "[", "(", ".", ".*", "->", "->*", "++", "--", "&", "*", "+", "-", "~",
-				"!", "/", "%", ">>", "<<", "<", ">", "<=", ">=", "==", "!=", "^", "|", "&&", "||", "?", ":", "::",
-				"...", "=", "*=", "/=", "%=", "+=", "-=", ">>=", "<<=", "&=", "^=", "|=", ",", "$empty", "asm", "auto",
-				"bool", "break", "case", "catch", "char", "class", "const", "const_cast", "continue", "default",
-				"delete", "do", "double", "dynamic_cast", "else", "enum", "explicit", "export", "extern", "false",
-				"float", "for", "friend", "goto", "if", "inline", "int", "long", "mutable", "namespace", "new",
-				"operator", "private", "protected", "public", "register", "reinterpret_cast", "return", "short",
-				"signed", "sizeof", "static", "static_cast", "struct", "switch", "template", "this", "throw", "try",
-				"true", "typedef", "typeid", "typename", "union", "unsigned", "using", "virtual", "void", "volatile",
-				"wchar_t", "while", "integer", "floating", "charconst", "stringlit", "identifier", "Completion",
-				"EndOfCompletion", "Invalid", "RightBracket", "RightParen", "RightBrace", "SemiColon", "LeftBrace",
-				"ERROR_TOKEN", "EOF_TOKEN", "]", ")", "}", ";", "{", "identifier_token", "expression", "id_expression",
-				"qualified_or_unqualified_name", "unqualified_id_name", "identifier_name", "template_id_name",
-				"nested_name_specifier", "class_or_namespace_name", "nested_name_specifier_with_tem" + "plate",
-				"class_or_namespace_name_with_t" + "emplate", "class_name", "postfix_expression",
-				"simple_type_specifier", "pseudo_destructor_name", "type_id", "type_name", "destructor_type_name",
-				"unary_expression", "cast_expression", "new_type_id", "expression_list", "type_specifier_seq",
-				"new_declarator", "new_pointer_operators", "ptr_operator", "new_array_expressions",
-				"constant_expression", "pm_expression", "multiplicative_expression", "additive_expression",
-				"shift_expression", "relational_expression", "equality_expression", "and_expression",
-				"exclusive_or_expression", "inclusive_or_expression", "logical_and_expression", "logical_or_expression",
-				"assignment_expression", "relational_expression_inTempla" + "te", "equality_expression_inTemplate",
-				"and_expression_inTemplate", "exclusive_or_expression_inTemp" + "late",
-				"inclusive_or_expression_inTemp" + "late", "logical_and_expression_inTempl" + "ate",
-				"logical_or_expression_inTempla" + "te", "assignment_expression_inTempla" + "te",
-				"expression_list_actual", "statement", "compound_statement", "statement_seq", "condition", "declarator",
-				"for_init_statement", "function_definition", "declaration", "declaration_seq", "declaration_specifiers",
-				"simple_declaration_specifiers", "class_declaration_specifiers",
-				"elaborated_declaration_specifi" + "ers", "enum_declaration_specifiers",
-				"type_name_declaration_specifie" + "rs", "no_type_declaration_specifier", "cv_qualifier",
-				"no_type_declaration_specifiers", "class_specifier", "elaborated_type_specifier", "enum_specifier",
-				"type_name_specifier", "class_keyword", "enumerator_list", "enumerator_definition", "namespace_name",
-				"init_declarator_list", "init_declarator_complete", "complete_declarator", "initializer",
-				"direct_declarator", "ptr_operator_seq", "function_declarator", "basic_direct_declarator",
-				"array_direct_declarator", "array_modifier", "abstract_declarator", "direct_abstract_declarator",
-				"basic_direct_abstract_declarat" + "or", "array_direct_abstract_declarat" + "or",
-				"parameter_declaration_list", "parameter_declaration", "parameter_init_declarator",
-				"parameter_initializer", "function_body", "handler_seq", "initializer_clause", "initializer_seq",
-				"class_head", "access_specifier_keyword", "member_declaration", "member_declarator_list",
-				"member_declaration_list", "member_declarator_complete", "constant_initializer", "bit_field_declarator",
-				"base_specifier_list", "base_specifier", "conversion_function_id", "conversion_type_id",
-				"conversion_declarator", "mem_initializer_list", "mem_initializer", "mem_initializer_name",
-				"operator_id_name", "overloadable_operator", "template_parameter_list", "template_parameter",
-				"template_argument_list", "template_argument", "type_name_specifier_inTemplate",
-				"type_name_declaration_specifie" + "rs_inTemplate", "type_specifier_seq_inTemplate", "handler",
-				"exception_declaration", "type_id_list" };
-	}
-
-	public final static String name[] = Name.name;
-
-	@Override
-	public final String name(int index) {
-		return name[index];
-	}
-
-	public final static int ERROR_SYMBOL = 63, SCOPE_UBOUND = 121, SCOPE_SIZE = 122, MAX_NAME_LENGTH = 43;
-
-	@Override
-	public final int getErrorSymbol() {
-		return ERROR_SYMBOL;
-	}
-
-	@Override
-	public final int getScopeUbound() {
-		return SCOPE_UBOUND;
-	}
-
-	@Override
-	public final int getScopeSize() {
-		return SCOPE_SIZE;
-	}
-
-	@Override
-	public final int getMaxNameLength() {
-		return MAX_NAME_LENGTH;
-	}
-
-	public final static int NUM_STATES = 604, NT_OFFSET = 122, LA_STATE_OFFSET = 7511, MAX_LA = 2147483647,
-			NUM_RULES = 597, NUM_NONTERMINALS = 224, NUM_SYMBOLS = 346, SEGMENT_SIZE = 8192, START_STATE = 5807,
-			IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 120, EOLT_SYMBOL = 120, ACCEPT_ACTION = 6474, ERROR_ACTION = 6914;
-
-	public final static boolean BACKTRACK = true;
-
-	@Override
-	public final int getNumStates() {
-		return NUM_STATES;
-	}
-
-	@Override
-	public final int getNtOffset() {
-		return NT_OFFSET;
-	}
-
-	@Override
-	public final int getLaStateOffset() {
-		return LA_STATE_OFFSET;
-	}
-
-	@Override
-	public final int getMaxLa() {
-		return MAX_LA;
-	}
-
-	@Override
-	public final int getNumRules() {
-		return NUM_RULES;
-	}
-
-	@Override
-	public final int getNumNonterminals() {
-		return NUM_NONTERMINALS;
-	}
-
-	@Override
-	public final int getNumSymbols() {
-		return NUM_SYMBOLS;
-	}
-
-	@Override
-	public final int getSegmentSize() {
-		return SEGMENT_SIZE;
-	}
-
-	@Override
-	public final int getStartState() {
-		return START_STATE;
-	}
-
-	@Override
-	public final int getStartSymbol() {
-		return lhs[0];
-	}
-
-	public final int getIdentifierSymbol() {
-		return IDENTIFIER_SYMBOL;
-	}
-
-	@Override
-	public final int getEoftSymbol() {
-		return EOFT_SYMBOL;
-	}
-
-	@Override
-	public final int getEoltSymbol() {
-		return EOLT_SYMBOL;
-	}
-
-	@Override
-	public final int getAcceptAction() {
-		return ACCEPT_ACTION;
-	}
-
-	@Override
-	public final int getErrorAction() {
-		return ERROR_ACTION;
-	}
-
-	@Override
-	public final boolean isValidForParser() {
-		return isValidForParser;
-	}
-
-	@Override
-	public final boolean getBacktrack() {
-		return BACKTRACK;
-	}
-
-	@Override
-	public final int originalState(int state) {
-		return -baseCheck[state];
-	}
-
-	@Override
-	public final int asi(int state) {
-		return asb[originalState(state)];
-	}
-
-	@Override
-	public final int nasi(int state) {
-		return nasb[originalState(state)];
-	}
-
-	@Override
-	public final int inSymbol(int state) {
-		return inSymb[originalState(state)];
-	}
-
-	@Override
-	public final int ntAction(int state, int sym) {
-		return baseAction[state + sym];
-	}
-
-	@Override
-	public final int tAction(int state, int sym) {
-		int i = baseAction[state], k = i + sym;
-		return termAction[termCheck[k] == sym ? k : i];
-	}
-
-	@Override
-	public final int lookAhead(int la_state, int sym) {
-		int k = la_state + sym;
-		return termAction[termCheck[k] == sym ? k : la_state];
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParsersym.java
deleted file mode 100644
index 80d6f55..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParsersym.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2010 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.lrparser.cpp;
-
-public interface CPPParsersym {
-	public final static int TK_asm = 64, TK_auto = 25, TK_bool = 11, TK_break = 76, TK_case = 77, TK_catch = 113,
-			TK_char = 12, TK_class = 41, TK_const = 23, TK_const_cast = 42, TK_continue = 78, TK_default = 79,
-			TK_delete = 66, TK_do = 80, TK_double = 13, TK_dynamic_cast = 43, TK_else = 121, TK_enum = 55,
-			TK_explicit = 26, TK_export = 88, TK_extern = 27, TK_false = 44, TK_float = 14, TK_for = 81, TK_friend = 28,
-			TK_goto = 82, TK_if = 83, TK_inline = 29, TK_int = 15, TK_long = 16, TK_mutable = 30, TK_namespace = 59,
-			TK_new = 67, TK_operator = 8, TK_private = 114, TK_protected = 115, TK_public = 116, TK_register = 31,
-			TK_reinterpret_cast = 45, TK_return = 84, TK_short = 17, TK_signed = 18, TK_sizeof = 46, TK_static = 32,
-			TK_static_cast = 47, TK_struct = 56, TK_switch = 85, TK_template = 57, TK_this = 48, TK_throw = 60,
-			TK_try = 74, TK_true = 49, TK_typedef = 33, TK_typeid = 50, TK_typename = 10, TK_union = 58,
-			TK_unsigned = 19, TK_using = 62, TK_virtual = 22, TK_void = 20, TK_volatile = 24, TK_wchar_t = 21,
-			TK_while = 75, TK_integer = 51, TK_floating = 52, TK_charconst = 53, TK_stringlit = 38, TK_identifier = 1,
-			TK_Completion = 2, TK_EndOfCompletion = 9, TK_Invalid = 122, TK_LeftBracket = 61, TK_LeftParen = 3,
-			TK_Dot = 119, TK_DotStar = 98, TK_Arrow = 117, TK_ArrowStar = 91, TK_PlusPlus = 36, TK_MinusMinus = 37,
-			TK_And = 7, TK_Star = 5, TK_Plus = 34, TK_Minus = 35, TK_Tilde = 6, TK_Bang = 40, TK_Slash = 99,
-			TK_Percent = 100, TK_RightShift = 86, TK_LeftShift = 87, TK_LT = 54, TK_GT = 65, TK_LE = 89, TK_GE = 90,
-			TK_EQ = 92, TK_NE = 93, TK_Caret = 94, TK_Or = 95, TK_AndAnd = 96, TK_OrOr = 101, TK_Question = 102,
-			TK_Colon = 71, TK_ColonColon = 4, TK_DotDotDot = 97, TK_Assign = 70, TK_StarAssign = 103,
-			TK_SlashAssign = 104, TK_PercentAssign = 105, TK_PlusAssign = 106, TK_MinusAssign = 107,
-			TK_RightShiftAssign = 108, TK_LeftShiftAssign = 109, TK_AndAssign = 110, TK_CaretAssign = 111,
-			TK_OrAssign = 112, TK_Comma = 68, TK_RightBracket = 118, TK_RightParen = 72, TK_RightBrace = 73,
-			TK_SemiColon = 39, TK_LeftBrace = 69, TK_ERROR_TOKEN = 63, TK_EOF_TOKEN = 120;
-
-	public final static String orderedTerminalSymbols[] = { "", "identifier", "Completion", "LeftParen", "ColonColon",
-			"Star", "Tilde", "And", "operator", "EndOfCompletion", "typename", "bool", "char", "double", "float", "int",
-			"long", "short", "signed", "unsigned", "void", "wchar_t", "virtual", "const", "volatile", "auto",
-			"explicit", "extern", "friend", "inline", "mutable", "register", "static", "typedef", "Plus", "Minus",
-			"PlusPlus", "MinusMinus", "stringlit", "SemiColon", "Bang", "class", "const_cast", "dynamic_cast", "false",
-			"reinterpret_cast", "sizeof", "static_cast", "this", "true", "typeid", "integer", "floating", "charconst",
-			"LT", "enum", "struct", "template", "union", "namespace", "throw", "LeftBracket", "using", "ERROR_TOKEN",
-			"asm", "GT", "delete", "new", "Comma", "LeftBrace", "Assign", "Colon", "RightParen", "RightBrace", "try",
-			"while", "break", "case", "continue", "default", "do", "for", "goto", "if", "return", "switch",
-			"RightShift", "LeftShift", "export", "LE", "GE", "ArrowStar", "EQ", "NE", "Caret", "Or", "AndAnd",
-			"DotDotDot", "DotStar", "Slash", "Percent", "OrOr", "Question", "StarAssign", "SlashAssign",
-			"PercentAssign", "PlusAssign", "MinusAssign", "RightShiftAssign", "LeftShiftAssign", "AndAssign",
-			"CaretAssign", "OrAssign", "catch", "private", "protected", "public", "Arrow", "RightBracket", "Dot",
-			"EOF_TOKEN", "else", "Invalid" };
-
-	public final static boolean isValidForParser = true;
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPRules.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPRules.java
deleted file mode 100644
index 0d61e68..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPRules.java
+++ /dev/null
@@ -1,647 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2013 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.lrparser.cpp;
-
-import java.util.HashMap;
-import java.util.Map;
-
-public class CPPRules {
-	static Map fRules = new HashMap();
-
-	static {
-		fRules.put(Integer.valueOf(3), "] ::= RightBracket");
-		fRules.put(Integer.valueOf(4), "] ::= EndOfCompletion");
-		fRules.put(Integer.valueOf(5), ") ::= RightParen");
-		fRules.put(Integer.valueOf(6), ") ::= EndOfCompletion");
-		fRules.put(Integer.valueOf(7), "} ::= RightBrace");
-		fRules.put(Integer.valueOf(8), "} ::= EndOfCompletion");
-		fRules.put(Integer.valueOf(9), "; ::= SemiColon");
-		fRules.put(Integer.valueOf(10), "; ::= EndOfCompletion");
-		fRules.put(Integer.valueOf(41), "dcolon_opt ::= ColonColon");
-		fRules.put(Integer.valueOf(42), "dcolon_opt ::=");
-		fRules.put(Integer.valueOf(228), "declaration_specifiers_opt ::=");
-		fRules.put(Integer.valueOf(229), "declaration_specifiers_opt ::= declaration_specifiers");
-		fRules.put(Integer.valueOf(383), "class_name ::= identifier_name");
-		fRules.put(Integer.valueOf(384), "class_name ::= template_id_name");
-		fRules.put(Integer.valueOf(493), "template_parameter ::= type_parameter");
-		fRules.put(Integer.valueOf(1), "<openscope-ast> ::=");
-		fRules.put(Integer.valueOf(17), "identifier_token ::= identifier");
-		fRules.put(Integer.valueOf(18), "identifier_token ::= Completion");
-		fRules.put(Integer.valueOf(38), "identifier_name ::= identifier_token");
-		fRules.put(Integer.valueOf(445), "operator_id_name ::= operator overloadable_operator");
-		fRules.put(Integer.valueOf(443), "operator_function_id_name ::= operator_id_name");
-		fRules.put(Integer.valueOf(444),
-				"operator_function_id_name ::= operator_id_name LT <openscope-ast> template_argument_list_opt GT");
-		fRules.put(Integer.valueOf(431), "conversion_function_id_name ::= operator conversion_type_id");
-		fRules.put(Integer.valueOf(502), "template_identifier ::= identifier_name");
-		fRules.put(Integer.valueOf(501),
-				"template_id_name ::= template_identifier LT <openscope-ast> template_argument_list_opt GT");
-		fRules.put(Integer.valueOf(33), "unqualified_id_name ::= identifier_name");
-		fRules.put(Integer.valueOf(34), "unqualified_id_name ::= operator_function_id_name");
-		fRules.put(Integer.valueOf(35), "unqualified_id_name ::= conversion_function_id_name");
-		fRules.put(Integer.valueOf(36), "unqualified_id_name ::= template_id_name");
-		fRules.put(Integer.valueOf(37), "unqualified_id_name ::= Tilde class_name");
-		fRules.put(Integer.valueOf(54), "class_or_namespace_name ::= class_name");
-		fRules.put(Integer.valueOf(47),
-				"nested_name_specifier ::= class_or_namespace_name ColonColon nested_name_specifier_with_template");
-		fRules.put(Integer.valueOf(48), "nested_name_specifier ::= class_or_namespace_name ColonColon");
-		fRules.put(Integer.valueOf(43),
-				"qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name");
-		fRules.put(Integer.valueOf(44), "qualified_id_name ::= ColonColon identifier_name");
-		fRules.put(Integer.valueOf(45), "qualified_id_name ::= ColonColon operator_function_id_name");
-		fRules.put(Integer.valueOf(46), "qualified_id_name ::= ColonColon template_id_name");
-		fRules.put(Integer.valueOf(31), "qualified_or_unqualified_name ::= unqualified_id_name");
-		fRules.put(Integer.valueOf(32), "qualified_or_unqualified_name ::= qualified_id_name");
-		fRules.put(Integer.valueOf(52), "nested_name_specifier_opt ::= nested_name_specifier");
-		fRules.put(Integer.valueOf(53), "nested_name_specifier_opt ::=");
-		fRules.put(Integer.valueOf(274), "type_name ::= class_name");
-		fRules.put(Integer.valueOf(338), "declarator_id_name ::= qualified_or_unqualified_name");
-		fRules.put(Integer.valueOf(339), "declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name");
-		fRules.put(Integer.valueOf(321), "basic_direct_declarator ::= declarator_id_name");
-		fRules.put(Integer.valueOf(322), "basic_direct_declarator ::= LeftParen declarator )");
-		fRules.put(Integer.valueOf(323),
-				"function_direct_declarator ::= basic_direct_declarator LeftParen <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt");
-		fRules.put(Integer.valueOf(324), "array_direct_declarator ::= array_direct_declarator array_modifier");
-		fRules.put(Integer.valueOf(325), "array_direct_declarator ::= basic_direct_declarator array_modifier");
-		fRules.put(Integer.valueOf(318), "direct_declarator ::= basic_direct_declarator");
-		fRules.put(Integer.valueOf(319), "direct_declarator ::= function_direct_declarator");
-		fRules.put(Integer.valueOf(320), "direct_declarator ::= array_direct_declarator");
-		fRules.put(Integer.valueOf(328), "ptr_operator ::= Star <openscope-ast> cv_qualifier_seq_opt");
-		fRules.put(Integer.valueOf(329), "ptr_operator ::= And");
-		fRules.put(Integer.valueOf(330),
-				"ptr_operator ::= dcolon_opt nested_name_specifier Star <openscope-ast> cv_qualifier_seq_opt");
-		fRules.put(Integer.valueOf(331), "ptr_operator_seq ::= ptr_operator");
-		fRules.put(Integer.valueOf(332), "ptr_operator_seq ::= ptr_operator_seq ptr_operator");
-		fRules.put(Integer.valueOf(314), "declarator ::= direct_declarator");
-		fRules.put(Integer.valueOf(315), "declarator ::= <openscope-ast> ptr_operator_seq direct_declarator");
-		fRules.put(Integer.valueOf(312), "init_declarator ::= declarator");
-		fRules.put(Integer.valueOf(313), "init_declarator ::= declarator initializer");
-		fRules.put(Integer.valueOf(311), "init_declarator_complete ::= init_declarator");
-		fRules.put(Integer.valueOf(307), "init_declarator_list ::= init_declarator_complete");
-		fRules.put(Integer.valueOf(308),
-				"init_declarator_list ::= init_declarator_list Comma init_declarator_complete");
-		fRules.put(Integer.valueOf(309), "init_declarator_list_opt ::= init_declarator_list");
-		fRules.put(Integer.valueOf(310), "init_declarator_list_opt ::=");
-		fRules.put(Integer.valueOf(221),
-				"simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ;");
-		fRules.put(Integer.valueOf(304), "asm_definition ::= asm LeftParen stringlit ) ;");
-		fRules.put(Integer.valueOf(299),
-				"namespace_alias_definition ::= namespace identifier_token Assign dcolon_opt nested_name_specifier_opt namespace_name ;");
-		fRules.put(Integer.valueOf(300),
-				"using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ;");
-		fRules.put(Integer.valueOf(303),
-				"using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ;");
-		fRules.put(Integer.valueOf(212), "block_declaration ::= simple_declaration");
-		fRules.put(Integer.valueOf(213), "block_declaration ::= asm_definition");
-		fRules.put(Integer.valueOf(214), "block_declaration ::= namespace_alias_definition");
-		fRules.put(Integer.valueOf(215), "block_declaration ::= using_declaration");
-		fRules.put(Integer.valueOf(216), "block_declaration ::= using_directive");
-		fRules.put(Integer.valueOf(316), "function_declarator ::= function_direct_declarator");
-		fRules.put(Integer.valueOf(317), "function_declarator ::= <openscope-ast> ptr_operator_seq direct_declarator");
-		fRules.put(Integer.valueOf(372),
-				"function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body");
-		fRules.put(Integer.valueOf(373),
-				"function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq");
-		fRules.put(Integer.valueOf(489), "export_opt ::= export");
-		fRules.put(Integer.valueOf(490), "export_opt ::=");
-		fRules.put(Integer.valueOf(488),
-				"template_declaration ::= export_opt template LT <openscope-ast> template_parameter_list GT declaration");
-		fRules.put(Integer.valueOf(510), "explicit_instantiation ::= template declaration");
-		fRules.put(Integer.valueOf(511), "explicit_specialization ::= template LT GT declaration");
-		fRules.put(Integer.valueOf(305),
-				"linkage_specification ::= extern stringlit LeftBrace <openscope-ast> declaration_seq_opt }");
-		fRules.put(Integer.valueOf(306), "linkage_specification ::= extern stringlit <openscope-ast> declaration");
-		fRules.put(Integer.valueOf(296),
-				"original_namespace_definition ::= namespace identifier_name LeftBrace <openscope-ast> declaration_seq_opt }");
-		fRules.put(Integer.valueOf(297),
-				"extension_namespace_definition ::= namespace original_namespace_name LeftBrace <openscope-ast> declaration_seq_opt }");
-		fRules.put(Integer.valueOf(294), "named_namespace_definition ::= original_namespace_definition");
-		fRules.put(Integer.valueOf(295), "named_namespace_definition ::= extension_namespace_definition");
-		fRules.put(Integer.valueOf(298),
-				"unnamed_namespace_definition ::= namespace LeftBrace <openscope-ast> declaration_seq_opt }");
-		fRules.put(Integer.valueOf(292), "namespace_definition ::= named_namespace_definition");
-		fRules.put(Integer.valueOf(293), "namespace_definition ::= unnamed_namespace_definition");
-		fRules.put(Integer.valueOf(205), "declaration ::= block_declaration");
-		fRules.put(Integer.valueOf(206), "declaration ::= function_definition");
-		fRules.put(Integer.valueOf(207), "declaration ::= template_declaration");
-		fRules.put(Integer.valueOf(208), "declaration ::= explicit_instantiation");
-		fRules.put(Integer.valueOf(209), "declaration ::= explicit_specialization");
-		fRules.put(Integer.valueOf(210), "declaration ::= linkage_specification");
-		fRules.put(Integer.valueOf(211), "declaration ::= namespace_definition");
-		fRules.put(Integer.valueOf(15), "external_declaration ::= declaration");
-		fRules.put(Integer.valueOf(16), "external_declaration ::= ERROR_TOKEN");
-		fRules.put(Integer.valueOf(13), "external_declaration_list ::= external_declaration");
-		fRules.put(Integer.valueOf(14), "external_declaration_list ::= external_declaration_list external_declaration");
-		fRules.put(Integer.valueOf(11), "translation_unit ::= external_declaration_list");
-		fRules.put(Integer.valueOf(12), "translation_unit ::=");
-		fRules.put(Integer.valueOf(0), "$accept ::= translation_unit");
-		fRules.put(Integer.valueOf(2), "<empty> ::=");
-		fRules.put(Integer.valueOf(19), "literal ::= integer");
-		fRules.put(Integer.valueOf(20), "literal ::= zero");
-		fRules.put(Integer.valueOf(21), "literal ::= floating");
-		fRules.put(Integer.valueOf(22), "literal ::= charconst");
-		fRules.put(Integer.valueOf(23), "literal ::= stringlit");
-		fRules.put(Integer.valueOf(24), "literal ::= true");
-		fRules.put(Integer.valueOf(25), "literal ::= false");
-		fRules.put(Integer.valueOf(26), "literal ::= this");
-		fRules.put(Integer.valueOf(30), "id_expression ::= qualified_or_unqualified_name");
-		fRules.put(Integer.valueOf(27), "primary_expression ::= literal");
-		fRules.put(Integer.valueOf(28), "primary_expression ::= LeftParen expression )");
-		fRules.put(Integer.valueOf(29), "primary_expression ::= id_expression");
-		fRules.put(Integer.valueOf(263), "simple_type_specifier_token ::= char");
-		fRules.put(Integer.valueOf(264), "simple_type_specifier_token ::= wchar_t");
-		fRules.put(Integer.valueOf(265), "simple_type_specifier_token ::= bool");
-		fRules.put(Integer.valueOf(266), "simple_type_specifier_token ::= short");
-		fRules.put(Integer.valueOf(267), "simple_type_specifier_token ::= int");
-		fRules.put(Integer.valueOf(268), "simple_type_specifier_token ::= long");
-		fRules.put(Integer.valueOf(269), "simple_type_specifier_token ::= signed");
-		fRules.put(Integer.valueOf(270), "simple_type_specifier_token ::= unsigned");
-		fRules.put(Integer.valueOf(271), "simple_type_specifier_token ::= float");
-		fRules.put(Integer.valueOf(272), "simple_type_specifier_token ::= double");
-		fRules.put(Integer.valueOf(273), "simple_type_specifier_token ::= void");
-		fRules.put(Integer.valueOf(262), "simple_type_specifier ::= simple_type_specifier_token");
-		fRules.put(Integer.valueOf(55), "postfix_expression ::= primary_expression");
-		fRules.put(Integer.valueOf(56), "postfix_expression ::= postfix_expression LeftBracket expression ]");
-		fRules.put(Integer.valueOf(57), "postfix_expression ::= postfix_expression LeftParen expression_list_opt )");
-		fRules.put(Integer.valueOf(58), "postfix_expression ::= simple_type_specifier LeftParen expression_list_opt )");
-		fRules.put(Integer.valueOf(59),
-				"postfix_expression ::= typename dcolon_opt nested_name_specifier <empty> identifier_name LeftParen expression_list_opt )");
-		fRules.put(Integer.valueOf(60),
-				"postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name LeftParen expression_list_opt )");
-		fRules.put(Integer.valueOf(61), "postfix_expression ::= postfix_expression Dot qualified_or_unqualified_name");
-		fRules.put(Integer.valueOf(62),
-				"postfix_expression ::= postfix_expression Arrow qualified_or_unqualified_name");
-		fRules.put(Integer.valueOf(63),
-				"postfix_expression ::= postfix_expression Dot template qualified_or_unqualified_name");
-		fRules.put(Integer.valueOf(64),
-				"postfix_expression ::= postfix_expression Arrow template qualified_or_unqualified_name");
-		fRules.put(Integer.valueOf(65), "postfix_expression ::= postfix_expression Dot pseudo_destructor_name");
-		fRules.put(Integer.valueOf(66), "postfix_expression ::= postfix_expression Arrow pseudo_destructor_name");
-		fRules.put(Integer.valueOf(67), "postfix_expression ::= postfix_expression PlusPlus");
-		fRules.put(Integer.valueOf(68), "postfix_expression ::= postfix_expression MinusMinus");
-		fRules.put(Integer.valueOf(69), "postfix_expression ::= dynamic_cast LT type_id GT LeftParen expression )");
-		fRules.put(Integer.valueOf(70), "postfix_expression ::= static_cast LT type_id GT LeftParen expression )");
-		fRules.put(Integer.valueOf(71), "postfix_expression ::= reinterpret_cast LT type_id GT LeftParen expression )");
-		fRules.put(Integer.valueOf(72), "postfix_expression ::= const_cast LT type_id GT LeftParen expression )");
-		fRules.put(Integer.valueOf(73), "postfix_expression ::= typeid LeftParen expression )");
-		fRules.put(Integer.valueOf(74), "postfix_expression ::= typeid LeftParen type_id )");
-		fRules.put(Integer.valueOf(92),
-				"new_expression ::= dcolon_opt new new_placement_opt new_type_id <openscope-ast> new_array_expressions_opt new_initializer_opt");
-		fRules.put(Integer.valueOf(93),
-				"new_expression ::= dcolon_opt new new_placement_opt LeftParen type_id ) <openscope-ast> new_array_expressions_opt new_initializer_opt");
-		fRules.put(Integer.valueOf(108), "delete_expression ::= dcolon_opt delete cast_expression");
-		fRules.put(Integer.valueOf(109), "delete_expression ::= dcolon_opt delete LeftBracket ] cast_expression");
-		fRules.put(Integer.valueOf(79), "unary_expression ::= postfix_expression");
-		fRules.put(Integer.valueOf(80), "unary_expression ::= new_expression");
-		fRules.put(Integer.valueOf(81), "unary_expression ::= delete_expression");
-		fRules.put(Integer.valueOf(82), "unary_expression ::= PlusPlus cast_expression");
-		fRules.put(Integer.valueOf(83), "unary_expression ::= MinusMinus cast_expression");
-		fRules.put(Integer.valueOf(84), "unary_expression ::= And cast_expression");
-		fRules.put(Integer.valueOf(85), "unary_expression ::= Star cast_expression");
-		fRules.put(Integer.valueOf(86), "unary_expression ::= Plus cast_expression");
-		fRules.put(Integer.valueOf(87), "unary_expression ::= Minus cast_expression");
-		fRules.put(Integer.valueOf(88), "unary_expression ::= Tilde cast_expression");
-		fRules.put(Integer.valueOf(89), "unary_expression ::= Bang cast_expression");
-		fRules.put(Integer.valueOf(90), "unary_expression ::= sizeof unary_expression");
-		fRules.put(Integer.valueOf(91), "unary_expression ::= sizeof LeftParen type_id )");
-		fRules.put(Integer.valueOf(110), "cast_expression ::= unary_expression");
-		fRules.put(Integer.valueOf(111), "cast_expression ::= LeftParen type_id ) cast_expression");
-		fRules.put(Integer.valueOf(112), "pm_expression ::= cast_expression");
-		fRules.put(Integer.valueOf(113), "pm_expression ::= pm_expression DotStar cast_expression");
-		fRules.put(Integer.valueOf(114), "pm_expression ::= pm_expression ArrowStar cast_expression");
-		fRules.put(Integer.valueOf(115), "multiplicative_expression ::= pm_expression");
-		fRules.put(Integer.valueOf(116), "multiplicative_expression ::= multiplicative_expression Star pm_expression");
-		fRules.put(Integer.valueOf(117), "multiplicative_expression ::= multiplicative_expression Slash pm_expression");
-		fRules.put(Integer.valueOf(118),
-				"multiplicative_expression ::= multiplicative_expression Percent pm_expression");
-		fRules.put(Integer.valueOf(119), "additive_expression ::= multiplicative_expression");
-		fRules.put(Integer.valueOf(120), "additive_expression ::= additive_expression Plus multiplicative_expression");
-		fRules.put(Integer.valueOf(121), "additive_expression ::= additive_expression Minus multiplicative_expression");
-		fRules.put(Integer.valueOf(122), "shift_expression ::= additive_expression");
-		fRules.put(Integer.valueOf(123), "shift_expression ::= shift_expression LeftShift additive_expression");
-		fRules.put(Integer.valueOf(124), "shift_expression ::= shift_expression RightShift additive_expression");
-		fRules.put(Integer.valueOf(125), "relational_expression ::= shift_expression");
-		fRules.put(Integer.valueOf(126), "relational_expression ::= relational_expression LT shift_expression");
-		fRules.put(Integer.valueOf(127), "relational_expression ::= relational_expression GT shift_expression");
-		fRules.put(Integer.valueOf(128), "relational_expression ::= relational_expression LE shift_expression");
-		fRules.put(Integer.valueOf(129), "relational_expression ::= relational_expression GE shift_expression");
-		fRules.put(Integer.valueOf(130), "equality_expression ::= relational_expression");
-		fRules.put(Integer.valueOf(131), "equality_expression ::= equality_expression EQ relational_expression");
-		fRules.put(Integer.valueOf(132), "equality_expression ::= equality_expression NE relational_expression");
-		fRules.put(Integer.valueOf(133), "and_expression ::= equality_expression");
-		fRules.put(Integer.valueOf(134), "and_expression ::= and_expression And equality_expression");
-		fRules.put(Integer.valueOf(135), "exclusive_or_expression ::= and_expression");
-		fRules.put(Integer.valueOf(136), "exclusive_or_expression ::= exclusive_or_expression Caret and_expression");
-		fRules.put(Integer.valueOf(137), "inclusive_or_expression ::= exclusive_or_expression");
-		fRules.put(Integer.valueOf(138),
-				"inclusive_or_expression ::= inclusive_or_expression Or exclusive_or_expression");
-		fRules.put(Integer.valueOf(139), "logical_and_expression ::= inclusive_or_expression");
-		fRules.put(Integer.valueOf(140),
-				"logical_and_expression ::= logical_and_expression AndAnd inclusive_or_expression");
-		fRules.put(Integer.valueOf(141), "logical_or_expression ::= logical_and_expression");
-		fRules.put(Integer.valueOf(142), "logical_or_expression ::= logical_or_expression OrOr logical_and_expression");
-		fRules.put(Integer.valueOf(143), "conditional_expression ::= logical_or_expression");
-		fRules.put(Integer.valueOf(144),
-				"conditional_expression ::= logical_or_expression Question expression Colon assignment_expression");
-		fRules.put(Integer.valueOf(145), "throw_expression ::= throw");
-		fRules.put(Integer.valueOf(146), "throw_expression ::= throw assignment_expression");
-		fRules.put(Integer.valueOf(147), "assignment_expression ::= conditional_expression");
-		fRules.put(Integer.valueOf(148), "assignment_expression ::= throw_expression");
-		fRules.put(Integer.valueOf(149),
-				"assignment_expression ::= logical_or_expression Assign assignment_expression");
-		fRules.put(Integer.valueOf(150),
-				"assignment_expression ::= logical_or_expression StarAssign assignment_expression");
-		fRules.put(Integer.valueOf(151),
-				"assignment_expression ::= logical_or_expression SlashAssign assignment_expression");
-		fRules.put(Integer.valueOf(152),
-				"assignment_expression ::= logical_or_expression PercentAssign assignment_expression");
-		fRules.put(Integer.valueOf(153),
-				"assignment_expression ::= logical_or_expression PlusAssign assignment_expression");
-		fRules.put(Integer.valueOf(154),
-				"assignment_expression ::= logical_or_expression MinusAssign assignment_expression");
-		fRules.put(Integer.valueOf(155),
-				"assignment_expression ::= logical_or_expression RightShiftAssign assignment_expression");
-		fRules.put(Integer.valueOf(156),
-				"assignment_expression ::= logical_or_expression LeftShiftAssign assignment_expression");
-		fRules.put(Integer.valueOf(157),
-				"assignment_expression ::= logical_or_expression AndAssign assignment_expression");
-		fRules.put(Integer.valueOf(158),
-				"assignment_expression ::= logical_or_expression CaretAssign assignment_expression");
-		fRules.put(Integer.valueOf(159),
-				"assignment_expression ::= logical_or_expression OrAssign assignment_expression");
-		fRules.put(Integer.valueOf(162), "expression_list_actual ::= assignment_expression");
-		fRules.put(Integer.valueOf(163),
-				"expression_list_actual ::= expression_list_actual Comma assignment_expression");
-		fRules.put(Integer.valueOf(161), "expression_list ::= <openscope-ast> expression_list_actual");
-		fRules.put(Integer.valueOf(160), "expression ::= expression_list");
-		fRules.put(Integer.valueOf(39), "template_opt ::= template");
-		fRules.put(Integer.valueOf(40), "template_opt ::=");
-		fRules.put(Integer.valueOf(51),
-				"class_or_namespace_name_with_template ::= template_opt class_or_namespace_name");
-		fRules.put(Integer.valueOf(49),
-				"nested_name_specifier_with_template ::= class_or_namespace_name_with_template ColonColon nested_name_specifier_with_template");
-		fRules.put(Integer.valueOf(50),
-				"nested_name_specifier_with_template ::= class_or_namespace_name_with_template ColonColon");
-		fRules.put(Integer.valueOf(164), "expression_list_opt ::= expression_list");
-		fRules.put(Integer.valueOf(165), "expression_list_opt ::=");
-		fRules.put(Integer.valueOf(78), "destructor_type_name ::= Tilde type_name");
-		fRules.put(Integer.valueOf(75),
-				"pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name ColonColon destructor_type_name");
-		fRules.put(Integer.valueOf(76),
-				"pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name ColonColon destructor_type_name");
-		fRules.put(Integer.valueOf(77),
-				"pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name");
-		fRules.put(Integer.valueOf(254), "storage_class_specifier ::= auto");
-		fRules.put(Integer.valueOf(255), "storage_class_specifier ::= register");
-		fRules.put(Integer.valueOf(256), "storage_class_specifier ::= static");
-		fRules.put(Integer.valueOf(257), "storage_class_specifier ::= extern");
-		fRules.put(Integer.valueOf(258), "storage_class_specifier ::= mutable");
-		fRules.put(Integer.valueOf(259), "function_specifier ::= inline");
-		fRules.put(Integer.valueOf(260), "function_specifier ::= virtual");
-		fRules.put(Integer.valueOf(261), "function_specifier ::= explicit");
-		fRules.put(Integer.valueOf(336), "cv_qualifier ::= const");
-		fRules.put(Integer.valueOf(337), "cv_qualifier ::= volatile");
-		fRules.put(Integer.valueOf(230), "no_type_declaration_specifier ::= storage_class_specifier");
-		fRules.put(Integer.valueOf(231), "no_type_declaration_specifier ::= function_specifier");
-		fRules.put(Integer.valueOf(232), "no_type_declaration_specifier ::= cv_qualifier");
-		fRules.put(Integer.valueOf(233), "no_type_declaration_specifier ::= friend");
-		fRules.put(Integer.valueOf(234), "no_type_declaration_specifier ::= typedef");
-		fRules.put(Integer.valueOf(235), "no_type_declaration_specifiers ::= no_type_declaration_specifier");
-		fRules.put(Integer.valueOf(236),
-				"no_type_declaration_specifiers ::= no_type_declaration_specifiers no_type_declaration_specifier");
-		fRules.put(Integer.valueOf(237), "simple_declaration_specifiers ::= simple_type_specifier");
-		fRules.put(Integer.valueOf(238),
-				"simple_declaration_specifiers ::= no_type_declaration_specifiers simple_type_specifier");
-		fRules.put(Integer.valueOf(239),
-				"simple_declaration_specifiers ::= simple_declaration_specifiers simple_type_specifier");
-		fRules.put(Integer.valueOf(240),
-				"simple_declaration_specifiers ::= simple_declaration_specifiers no_type_declaration_specifier");
-		fRules.put(Integer.valueOf(241), "simple_declaration_specifiers ::= no_type_declaration_specifiers");
-		fRules.put(Integer.valueOf(392), "class_keyword ::= class");
-		fRules.put(Integer.valueOf(393), "class_keyword ::= struct");
-		fRules.put(Integer.valueOf(394), "class_keyword ::= union");
-		fRules.put(Integer.valueOf(386),
-				"class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt");
-		fRules.put(Integer.valueOf(387),
-				"class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt");
-		fRules.put(Integer.valueOf(388),
-				"class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt");
-		fRules.put(Integer.valueOf(389),
-				"class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt");
-		fRules.put(Integer.valueOf(385),
-				"class_specifier ::= class_head LeftBrace <openscope-ast> member_declaration_list_opt }");
-		fRules.put(Integer.valueOf(242), "class_declaration_specifiers ::= class_specifier");
-		fRules.put(Integer.valueOf(243),
-				"class_declaration_specifiers ::= no_type_declaration_specifiers class_specifier");
-		fRules.put(Integer.valueOf(244),
-				"class_declaration_specifiers ::= class_declaration_specifiers no_type_declaration_specifier");
-		fRules.put(Integer.valueOf(280),
-				"elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name");
-		fRules.put(Integer.valueOf(281),
-				"elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name");
-		fRules.put(Integer.valueOf(282),
-				"elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name");
-		fRules.put(Integer.valueOf(245), "elaborated_declaration_specifiers ::= elaborated_type_specifier");
-		fRules.put(Integer.valueOf(246),
-				"elaborated_declaration_specifiers ::= no_type_declaration_specifiers elaborated_type_specifier");
-		fRules.put(Integer.valueOf(247),
-				"elaborated_declaration_specifiers ::= elaborated_declaration_specifiers no_type_declaration_specifier");
-		fRules.put(Integer.valueOf(283), "enum_specifier ::= enum LeftBrace <openscope-ast> enumerator_list_opt }");
-		fRules.put(Integer.valueOf(284),
-				"enum_specifier ::= enum identifier_token LeftBrace <openscope-ast> enumerator_list_opt }");
-		fRules.put(Integer.valueOf(248), "enum_declaration_specifiers ::= enum_specifier");
-		fRules.put(Integer.valueOf(249),
-				"enum_declaration_specifiers ::= no_type_declaration_specifiers enum_specifier");
-		fRules.put(Integer.valueOf(250),
-				"enum_declaration_specifiers ::= enum_declaration_specifiers no_type_declaration_specifier");
-		fRules.put(Integer.valueOf(275), "type_name_specifier ::= type_name");
-		fRules.put(Integer.valueOf(276), "type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name");
-		fRules.put(Integer.valueOf(277),
-				"type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name");
-		fRules.put(Integer.valueOf(278),
-				"type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name");
-		fRules.put(Integer.valueOf(279),
-				"type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name");
-		fRules.put(Integer.valueOf(251), "type_name_declaration_specifiers ::= type_name_specifier");
-		fRules.put(Integer.valueOf(252),
-				"type_name_declaration_specifiers ::= no_type_declaration_specifiers type_name_specifier");
-		fRules.put(Integer.valueOf(253),
-				"type_name_declaration_specifiers ::= type_name_declaration_specifiers no_type_declaration_specifier");
-		fRules.put(Integer.valueOf(223), "declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers");
-		fRules.put(Integer.valueOf(224), "declaration_specifiers ::= <openscope-ast> class_declaration_specifiers");
-		fRules.put(Integer.valueOf(225),
-				"declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers");
-		fRules.put(Integer.valueOf(226), "declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers");
-		fRules.put(Integer.valueOf(227), "declaration_specifiers ::= <openscope-ast> type_name_declaration_specifiers");
-		fRules.put(Integer.valueOf(342), "type_specifier_seq ::= declaration_specifiers");
-		fRules.put(Integer.valueOf(340), "type_id ::= type_specifier_seq");
-		fRules.put(Integer.valueOf(341), "type_id ::= type_specifier_seq abstract_declarator");
-		fRules.put(Integer.valueOf(94), "new_placement_opt ::= LeftParen expression_list )");
-		fRules.put(Integer.valueOf(95), "new_placement_opt ::=");
-		fRules.put(Integer.valueOf(96), "new_type_id ::= type_specifier_seq");
-		fRules.put(Integer.valueOf(97), "new_type_id ::= type_specifier_seq new_declarator");
-		fRules.put(Integer.valueOf(101), "new_array_expressions ::= LeftBracket expression ]");
-		fRules.put(Integer.valueOf(102),
-				"new_array_expressions ::= new_array_expressions LeftBracket constant_expression ]");
-		fRules.put(Integer.valueOf(103), "new_array_expressions_opt ::= new_array_expressions");
-		fRules.put(Integer.valueOf(104), "new_array_expressions_opt ::=");
-		fRules.put(Integer.valueOf(105), "new_initializer ::= LeftParen expression_list_opt )");
-		fRules.put(Integer.valueOf(106), "new_initializer_opt ::= new_initializer");
-		fRules.put(Integer.valueOf(107), "new_initializer_opt ::=");
-		fRules.put(Integer.valueOf(99), "new_pointer_operators ::= ptr_operator");
-		fRules.put(Integer.valueOf(100), "new_pointer_operators ::= ptr_operator new_pointer_operators");
-		fRules.put(Integer.valueOf(98), "new_declarator ::= <openscope-ast> new_pointer_operators");
-		fRules.put(Integer.valueOf(168), "constant_expression ::= conditional_expression");
-		fRules.put(Integer.valueOf(166), "expression_opt ::= expression");
-		fRules.put(Integer.valueOf(167), "expression_opt ::=");
-		fRules.put(Integer.valueOf(169), "constant_expression_opt ::= constant_expression");
-		fRules.put(Integer.valueOf(170), "constant_expression_opt ::=");
-		fRules.put(Integer.valueOf(180), "labeled_statement ::= identifier Colon statement");
-		fRules.put(Integer.valueOf(181), "labeled_statement ::= case constant_expression Colon");
-		fRules.put(Integer.valueOf(182), "labeled_statement ::= default Colon");
-		fRules.put(Integer.valueOf(183), "expression_statement ::= expression ;");
-		fRules.put(Integer.valueOf(184), "expression_statement ::= ;");
-		fRules.put(Integer.valueOf(185), "compound_statement ::= LeftBrace <openscope-ast> statement_seq }");
-		fRules.put(Integer.valueOf(186), "compound_statement ::= LeftBrace }");
-		fRules.put(Integer.valueOf(189), "selection_statement ::= if LeftParen condition ) statement");
-		fRules.put(Integer.valueOf(190), "selection_statement ::= if LeftParen condition ) statement else statement");
-		fRules.put(Integer.valueOf(191), "selection_statement ::= switch LeftParen condition ) statement");
-		fRules.put(Integer.valueOf(194), "iteration_statement ::= while LeftParen condition ) statement");
-		fRules.put(Integer.valueOf(195), "iteration_statement ::= do statement while LeftParen expression ) ;");
-		fRules.put(Integer.valueOf(196),
-				"iteration_statement ::= for LeftParen expression_opt ; expression_opt ; expression_opt ) statement");
-		fRules.put(Integer.valueOf(197),
-				"iteration_statement ::= for LeftParen simple_declaration_with_declspec expression_opt ; expression_opt ) statement");
-		fRules.put(Integer.valueOf(198), "jump_statement ::= break ;");
-		fRules.put(Integer.valueOf(199), "jump_statement ::= continue ;");
-		fRules.put(Integer.valueOf(200), "jump_statement ::= return expression ;");
-		fRules.put(Integer.valueOf(201), "jump_statement ::= return ;");
-		fRules.put(Integer.valueOf(202), "jump_statement ::= goto identifier_token ;");
-		fRules.put(Integer.valueOf(203), "declaration_statement ::= block_declaration");
-		fRules.put(Integer.valueOf(204), "declaration_statement ::= function_definition");
-		fRules.put(Integer.valueOf(512), "try_block ::= try compound_statement <openscope-ast> handler_seq");
-		fRules.put(Integer.valueOf(171), "statement ::= labeled_statement");
-		fRules.put(Integer.valueOf(172), "statement ::= expression_statement");
-		fRules.put(Integer.valueOf(173), "statement ::= compound_statement");
-		fRules.put(Integer.valueOf(174), "statement ::= selection_statement");
-		fRules.put(Integer.valueOf(175), "statement ::= iteration_statement");
-		fRules.put(Integer.valueOf(176), "statement ::= jump_statement");
-		fRules.put(Integer.valueOf(177), "statement ::= declaration_statement");
-		fRules.put(Integer.valueOf(178), "statement ::= try_block");
-		fRules.put(Integer.valueOf(179), "statement ::= ERROR_TOKEN");
-		fRules.put(Integer.valueOf(187), "statement_seq ::= statement");
-		fRules.put(Integer.valueOf(188), "statement_seq ::= statement_seq statement");
-		fRules.put(Integer.valueOf(192), "condition ::= expression");
-		fRules.put(Integer.valueOf(193), "condition ::= type_specifier_seq declarator Assign assignment_expression");
-		fRules.put(Integer.valueOf(222),
-				"simple_declaration_with_declspec ::= declaration_specifiers <openscope-ast> init_declarator_list_opt ;");
-		fRules.put(Integer.valueOf(217), "declaration_seq ::= declaration");
-		fRules.put(Integer.valueOf(218), "declaration_seq ::= declaration_seq declaration");
-		fRules.put(Integer.valueOf(219), "declaration_seq_opt ::= declaration_seq");
-		fRules.put(Integer.valueOf(220), "declaration_seq_opt ::=");
-		fRules.put(Integer.valueOf(289), "enumerator_definition ::= identifier_token");
-		fRules.put(Integer.valueOf(290), "enumerator_definition ::= identifier_token Assign constant_expression");
-		fRules.put(Integer.valueOf(285), "enumerator_list ::= enumerator_definition");
-		fRules.put(Integer.valueOf(286), "enumerator_list ::= enumerator_list Comma enumerator_definition");
-		fRules.put(Integer.valueOf(287), "enumerator_list_opt ::= enumerator_list");
-		fRules.put(Integer.valueOf(288), "enumerator_list_opt ::=");
-		fRules.put(Integer.valueOf(291), "namespace_name ::= identifier_name");
-		fRules.put(Integer.valueOf(301), "typename_opt ::= typename");
-		fRules.put(Integer.valueOf(302), "typename_opt ::=");
-		fRules.put(Integer.valueOf(375), "initializer ::= Assign initializer_clause");
-		fRules.put(Integer.valueOf(376), "initializer ::= LeftParen expression_list )");
-		fRules.put(Integer.valueOf(364), "parameter_declaration ::= declaration_specifiers parameter_init_declarator");
-		fRules.put(Integer.valueOf(365), "parameter_declaration ::= declaration_specifiers");
-		fRules.put(Integer.valueOf(358), "parameter_declaration_list ::= parameter_declaration");
-		fRules.put(Integer.valueOf(359),
-				"parameter_declaration_list ::= parameter_declaration_list Comma parameter_declaration");
-		fRules.put(Integer.valueOf(360), "parameter_declaration_list_opt ::= parameter_declaration_list");
-		fRules.put(Integer.valueOf(361), "parameter_declaration_list_opt ::=");
-		fRules.put(Integer.valueOf(355), "parameter_declaration_clause ::= parameter_declaration_list_opt DotDotDot");
-		fRules.put(Integer.valueOf(357), "parameter_declaration_clause ::= parameter_declaration_list Comma DotDotDot");
-		fRules.put(Integer.valueOf(356), "parameter_declaration_clause ::= parameter_declaration_list_opt");
-		fRules.put(Integer.valueOf(333), "cv_qualifier_seq ::= cv_qualifier cv_qualifier_seq_opt");
-		fRules.put(Integer.valueOf(334), "cv_qualifier_seq_opt ::= cv_qualifier_seq");
-		fRules.put(Integer.valueOf(335), "cv_qualifier_seq_opt ::=");
-		fRules.put(Integer.valueOf(520), "exception_specification ::= throw LeftParen type_id_list )");
-		fRules.put(Integer.valueOf(521), "exception_specification ::= throw LeftParen )");
-		fRules.put(Integer.valueOf(522), "exception_specification_opt ::= exception_specification");
-		fRules.put(Integer.valueOf(523), "exception_specification_opt ::=");
-		fRules.put(Integer.valueOf(326), "array_modifier ::= LeftBracket constant_expression ]");
-		fRules.put(Integer.valueOf(327), "array_modifier ::= LeftBracket ]");
-		fRules.put(Integer.valueOf(349), "basic_direct_abstract_declarator ::= LeftParen abstract_declarator )");
-		fRules.put(Integer.valueOf(350), "array_direct_abstract_declarator ::= array_modifier");
-		fRules.put(Integer.valueOf(351),
-				"array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier");
-		fRules.put(Integer.valueOf(352),
-				"array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier");
-		fRules.put(Integer.valueOf(353),
-				"function_direct_abstract_declarator ::= basic_direct_abstract_declarator LeftParen <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt");
-		fRules.put(Integer.valueOf(354),
-				"function_direct_abstract_declarator ::= LeftParen <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt");
-		fRules.put(Integer.valueOf(346), "direct_abstract_declarator ::= basic_direct_abstract_declarator");
-		fRules.put(Integer.valueOf(347), "direct_abstract_declarator ::= array_direct_abstract_declarator");
-		fRules.put(Integer.valueOf(348), "direct_abstract_declarator ::= function_direct_abstract_declarator");
-		fRules.put(Integer.valueOf(343), "abstract_declarator ::= direct_abstract_declarator");
-		fRules.put(Integer.valueOf(344), "abstract_declarator ::= <openscope-ast> ptr_operator_seq");
-		fRules.put(Integer.valueOf(345),
-				"abstract_declarator ::= <openscope-ast> ptr_operator_seq direct_abstract_declarator");
-		fRules.put(Integer.valueOf(362), "abstract_declarator_opt ::= abstract_declarator");
-		fRules.put(Integer.valueOf(363), "abstract_declarator_opt ::=");
-		fRules.put(Integer.valueOf(366), "parameter_init_declarator ::= declarator");
-		fRules.put(Integer.valueOf(367), "parameter_init_declarator ::= declarator Assign parameter_initializer");
-		fRules.put(Integer.valueOf(368), "parameter_init_declarator ::= abstract_declarator");
-		fRules.put(Integer.valueOf(369),
-				"parameter_init_declarator ::= abstract_declarator Assign parameter_initializer");
-		fRules.put(Integer.valueOf(370), "parameter_init_declarator ::= Assign parameter_initializer");
-		fRules.put(Integer.valueOf(371), "parameter_initializer ::= assignment_expression");
-		fRules.put(Integer.valueOf(435), "ctor_initializer_list ::= Colon mem_initializer_list");
-		fRules.put(Integer.valueOf(436), "ctor_initializer_list_opt ::= ctor_initializer_list");
-		fRules.put(Integer.valueOf(437), "ctor_initializer_list_opt ::=");
-		fRules.put(Integer.valueOf(374), "function_body ::= compound_statement");
-		fRules.put(Integer.valueOf(515), "handler ::= catch LeftParen exception_declaration ) compound_statement");
-		fRules.put(Integer.valueOf(516), "handler ::= catch LeftParen DotDotDot ) compound_statement");
-		fRules.put(Integer.valueOf(513), "handler_seq ::= handler");
-		fRules.put(Integer.valueOf(514), "handler_seq ::= handler_seq handler");
-		fRules.put(Integer.valueOf(377), "initializer_clause ::= assignment_expression");
-		fRules.put(Integer.valueOf(378), "initializer_clause ::= LeftBrace <openscope-ast> initializer_list Comma }");
-		fRules.put(Integer.valueOf(379), "initializer_clause ::= LeftBrace <openscope-ast> initializer_list }");
-		fRules.put(Integer.valueOf(380), "initializer_clause ::= LeftBrace <openscope-ast> }");
-		fRules.put(Integer.valueOf(381), "initializer_list ::= initializer_clause");
-		fRules.put(Integer.valueOf(382), "initializer_list ::= initializer_list Comma initializer_clause");
-		fRules.put(Integer.valueOf(415), "bit_field_declarator ::= identifier_name");
-		fRules.put(Integer.valueOf(411), "member_declarator ::= declarator");
-		fRules.put(Integer.valueOf(412), "member_declarator ::= declarator constant_initializer");
-		fRules.put(Integer.valueOf(413), "member_declarator ::= bit_field_declarator Colon constant_expression");
-		fRules.put(Integer.valueOf(414), "member_declarator ::= Colon constant_expression");
-		fRules.put(Integer.valueOf(409), "member_declarator_list ::= member_declarator");
-		fRules.put(Integer.valueOf(410), "member_declarator_list ::= member_declarator_list Comma member_declarator");
-		fRules.put(Integer.valueOf(426), "access_specifier_keyword ::= private");
-		fRules.put(Integer.valueOf(427), "access_specifier_keyword ::= protected");
-		fRules.put(Integer.valueOf(428), "access_specifier_keyword ::= public");
-		fRules.put(Integer.valueOf(395), "visibility_label ::= access_specifier_keyword Colon");
-		fRules.put(Integer.valueOf(396),
-				"member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;");
-		fRules.put(Integer.valueOf(397), "member_declaration ::= declaration_specifiers_opt ;");
-		fRules.put(Integer.valueOf(398), "member_declaration ::= function_definition ;");
-		fRules.put(Integer.valueOf(399), "member_declaration ::= function_definition");
-		fRules.put(Integer.valueOf(400),
-				"member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ;");
-		fRules.put(Integer.valueOf(401), "member_declaration ::= using_declaration");
-		fRules.put(Integer.valueOf(402), "member_declaration ::= template_declaration");
-		fRules.put(Integer.valueOf(403), "member_declaration ::= visibility_label");
-		fRules.put(Integer.valueOf(404), "member_declaration ::= ERROR_TOKEN");
-		fRules.put(Integer.valueOf(405), "member_declaration_list ::= member_declaration");
-		fRules.put(Integer.valueOf(406), "member_declaration_list ::= member_declaration_list member_declaration");
-		fRules.put(Integer.valueOf(407), "member_declaration_list_opt ::= member_declaration_list");
-		fRules.put(Integer.valueOf(408), "member_declaration_list_opt ::=");
-		fRules.put(Integer.valueOf(390), "identifier_name_opt ::= identifier_name");
-		fRules.put(Integer.valueOf(391), "identifier_name_opt ::=");
-		fRules.put(Integer.valueOf(417), "base_clause ::= Colon base_specifier_list");
-		fRules.put(Integer.valueOf(418), "base_clause_opt ::= base_clause");
-		fRules.put(Integer.valueOf(419), "base_clause_opt ::=");
-		fRules.put(Integer.valueOf(416), "constant_initializer ::= Assign constant_expression");
-		fRules.put(Integer.valueOf(422), "base_specifier ::= dcolon_opt nested_name_specifier_opt class_name");
-		fRules.put(Integer.valueOf(423),
-				"base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name");
-		fRules.put(Integer.valueOf(424),
-				"base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name");
-		fRules.put(Integer.valueOf(425),
-				"base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name");
-		fRules.put(Integer.valueOf(420), "base_specifier_list ::= base_specifier");
-		fRules.put(Integer.valueOf(421), "base_specifier_list ::= base_specifier_list Comma base_specifier");
-		fRules.put(Integer.valueOf(429), "access_specifier_keyword_opt ::= access_specifier_keyword");
-		fRules.put(Integer.valueOf(430), "access_specifier_keyword_opt ::=");
-		fRules.put(Integer.valueOf(432), "conversion_type_id ::= type_specifier_seq conversion_declarator");
-		fRules.put(Integer.valueOf(433), "conversion_type_id ::= type_specifier_seq");
-		fRules.put(Integer.valueOf(434), "conversion_declarator ::= <openscope-ast> ptr_operator_seq");
-		fRules.put(Integer.valueOf(441), "mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name");
-		fRules.put(Integer.valueOf(442), "mem_initializer_name ::= identifier_name");
-		fRules.put(Integer.valueOf(440), "mem_initializer ::= mem_initializer_name LeftParen expression_list_opt )");
-		fRules.put(Integer.valueOf(438), "mem_initializer_list ::= mem_initializer");
-		fRules.put(Integer.valueOf(439), "mem_initializer_list ::= mem_initializer Comma mem_initializer_list");
-		fRules.put(Integer.valueOf(507), "template_argument ::= assignment_expression");
-		fRules.put(Integer.valueOf(508), "template_argument ::= type_id");
-		fRules.put(Integer.valueOf(509), "template_argument ::= qualified_or_unqualified_name");
-		fRules.put(Integer.valueOf(503), "template_argument_list ::= template_argument");
-		fRules.put(Integer.valueOf(504), "template_argument_list ::= template_argument_list Comma template_argument");
-		fRules.put(Integer.valueOf(505), "template_argument_list_opt ::= template_argument_list");
-		fRules.put(Integer.valueOf(506), "template_argument_list_opt ::=");
-		fRules.put(Integer.valueOf(446), "overloadable_operator ::= new");
-		fRules.put(Integer.valueOf(447), "overloadable_operator ::= delete");
-		fRules.put(Integer.valueOf(448), "overloadable_operator ::= new LeftBracket ]");
-		fRules.put(Integer.valueOf(449), "overloadable_operator ::= delete LeftBracket ]");
-		fRules.put(Integer.valueOf(450), "overloadable_operator ::= Plus");
-		fRules.put(Integer.valueOf(451), "overloadable_operator ::= Minus");
-		fRules.put(Integer.valueOf(452), "overloadable_operator ::= Star");
-		fRules.put(Integer.valueOf(453), "overloadable_operator ::= Slash");
-		fRules.put(Integer.valueOf(454), "overloadable_operator ::= Percent");
-		fRules.put(Integer.valueOf(455), "overloadable_operator ::= Caret");
-		fRules.put(Integer.valueOf(456), "overloadable_operator ::= And");
-		fRules.put(Integer.valueOf(457), "overloadable_operator ::= Or");
-		fRules.put(Integer.valueOf(458), "overloadable_operator ::= Tilde");
-		fRules.put(Integer.valueOf(459), "overloadable_operator ::= Bang");
-		fRules.put(Integer.valueOf(460), "overloadable_operator ::= Assign");
-		fRules.put(Integer.valueOf(461), "overloadable_operator ::= LT");
-		fRules.put(Integer.valueOf(462), "overloadable_operator ::= GT");
-		fRules.put(Integer.valueOf(463), "overloadable_operator ::= PlusAssign");
-		fRules.put(Integer.valueOf(464), "overloadable_operator ::= MinusAssign");
-		fRules.put(Integer.valueOf(465), "overloadable_operator ::= StarAssign");
-		fRules.put(Integer.valueOf(466), "overloadable_operator ::= SlashAssign");
-		fRules.put(Integer.valueOf(467), "overloadable_operator ::= PercentAssign");
-		fRules.put(Integer.valueOf(468), "overloadable_operator ::= CaretAssign");
-		fRules.put(Integer.valueOf(469), "overloadable_operator ::= AndAssign");
-		fRules.put(Integer.valueOf(470), "overloadable_operator ::= OrAssign");
-		fRules.put(Integer.valueOf(471), "overloadable_operator ::= LeftShift");
-		fRules.put(Integer.valueOf(472), "overloadable_operator ::= RightShift");
-		fRules.put(Integer.valueOf(473), "overloadable_operator ::= RightShiftAssign");
-		fRules.put(Integer.valueOf(474), "overloadable_operator ::= LeftShiftAssign");
-		fRules.put(Integer.valueOf(475), "overloadable_operator ::= EQ");
-		fRules.put(Integer.valueOf(476), "overloadable_operator ::= NE");
-		fRules.put(Integer.valueOf(477), "overloadable_operator ::= LE");
-		fRules.put(Integer.valueOf(478), "overloadable_operator ::= GE");
-		fRules.put(Integer.valueOf(479), "overloadable_operator ::= AndAnd");
-		fRules.put(Integer.valueOf(480), "overloadable_operator ::= OrOr");
-		fRules.put(Integer.valueOf(481), "overloadable_operator ::= PlusPlus");
-		fRules.put(Integer.valueOf(482), "overloadable_operator ::= MinusMinus");
-		fRules.put(Integer.valueOf(483), "overloadable_operator ::= Comma");
-		fRules.put(Integer.valueOf(484), "overloadable_operator ::= ArrowStar");
-		fRules.put(Integer.valueOf(485), "overloadable_operator ::= Arrow");
-		fRules.put(Integer.valueOf(486), "overloadable_operator ::= LeftParen )");
-		fRules.put(Integer.valueOf(487), "overloadable_operator ::= LeftBracket ]");
-		fRules.put(Integer.valueOf(494), "template_parameter ::= parameter_declaration");
-		fRules.put(Integer.valueOf(491), "template_parameter_list ::= template_parameter");
-		fRules.put(Integer.valueOf(492),
-				"template_parameter_list ::= template_parameter_list Comma template_parameter");
-		fRules.put(Integer.valueOf(495), "type_parameter ::= class identifier_name_opt");
-		fRules.put(Integer.valueOf(496), "type_parameter ::= class identifier_name_opt Assign type_id");
-		fRules.put(Integer.valueOf(497), "type_parameter ::= typename identifier_name_opt");
-		fRules.put(Integer.valueOf(498), "type_parameter ::= typename identifier_name_opt Assign type_id");
-		fRules.put(Integer.valueOf(499),
-				"type_parameter ::= template LT <openscope-ast> template_parameter_list GT class identifier_name_opt");
-		fRules.put(Integer.valueOf(500),
-				"type_parameter ::= template LT <openscope-ast> template_parameter_list GT class identifier_name_opt Assign id_expression");
-		fRules.put(Integer.valueOf(517), "exception_declaration ::= type_specifier_seq <openscope-ast> declarator");
-		fRules.put(Integer.valueOf(518),
-				"exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator");
-		fRules.put(Integer.valueOf(519), "exception_declaration ::= type_specifier_seq");
-		fRules.put(Integer.valueOf(524), "type_id_list ::= type_id");
-		fRules.put(Integer.valueOf(525), "type_id_list ::= type_id_list Comma type_id");
-
-	}
-
-	public static String lookup(int ruleNumber) {
-		return (String) fRules.get(Integer.valueOf(ruleNumber));
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParser.java
deleted file mode 100644
index 293e79b..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParser.java
+++ /dev/null
@@ -1,2850 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2015 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.lrparser.cpp;
-
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.cdt.core.dom.ast.IASTCompletionNode;
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTBinaryExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCastExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTLiteralExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTUnaryExpression;
-import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter;
-import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
-import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
-import org.eclipse.cdt.core.dom.lrparser.ITokenCollector;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
-import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
-import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
-import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPBuildASTParserAction;
-import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPSecondaryParserFactory;
-import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser;
-import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
-import org.eclipse.cdt.core.index.IIndex;
-import org.eclipse.cdt.core.parser.IScanner;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPNodeFactory;
-
-import lpg.lpgjavaruntime.BadParseException;
-import lpg.lpgjavaruntime.BadParseSymFileException;
-import lpg.lpgjavaruntime.DiagnoseParser;
-import lpg.lpgjavaruntime.ErrorToken;
-import lpg.lpgjavaruntime.IToken;
-import lpg.lpgjavaruntime.LexStream;
-import lpg.lpgjavaruntime.Monitor;
-import lpg.lpgjavaruntime.NotBacktrackParseTableException;
-import lpg.lpgjavaruntime.NullExportedSymbolsException;
-import lpg.lpgjavaruntime.NullTerminalSymbolsException;
-import lpg.lpgjavaruntime.ParseErrorCodes;
-import lpg.lpgjavaruntime.ParseTable;
-import lpg.lpgjavaruntime.PrsStream;
-import lpg.lpgjavaruntime.RuleAction;
-import lpg.lpgjavaruntime.Token;
-import lpg.lpgjavaruntime.UndefinedEofSymbolException;
-import lpg.lpgjavaruntime.UnimplementedTerminalsException;
-
-public class CPPSizeofExpressionParser extends PrsStream
-		implements RuleAction, ITokenStream, ITokenCollector, ISecondaryParser<IASTExpression> {
-	private static ParseTable prs = new CPPSizeofExpressionParserprs();
-	private FixedBacktrackingParser btParser;
-
-	public FixedBacktrackingParser getParser() {
-		return btParser;
-	}
-
-	private void setResult(Object object) {
-		btParser.setSym1(object);
-	}
-
-	public Object getRhsSym(int i) {
-		return btParser.getSym(i);
-	}
-
-	public int getRhsTokenIndex(int i) {
-		return btParser.getToken(i);
-	}
-
-	public IToken getRhsIToken(int i) {
-		return super.getIToken(getRhsTokenIndex(i));
-	}
-
-	public int getRhsFirstTokenIndex(int i) {
-		return btParser.getFirstToken(i);
-	}
-
-	public IToken getRhsFirstIToken(int i) {
-		return super.getIToken(getRhsFirstTokenIndex(i));
-	}
-
-	public int getRhsLastTokenIndex(int i) {
-		return btParser.getLastToken(i);
-	}
-
-	public IToken getRhsLastIToken(int i) {
-		return super.getIToken(getRhsLastTokenIndex(i));
-	}
-
-	public int getLeftSpan() {
-		return btParser.getFirstToken();
-	}
-
-	@Override
-	public IToken getLeftIToken() {
-		return super.getIToken(getLeftSpan());
-	}
-
-	public int getRightSpan() {
-		return btParser.getLastToken();
-	}
-
-	@Override
-	public IToken getRightIToken() {
-		return super.getIToken(getRightSpan());
-	}
-
-	public int getRhsErrorTokenIndex(int i) {
-		int index = btParser.getToken(i);
-		IToken err = super.getIToken(index);
-		return (err instanceof ErrorToken ? index : 0);
-	}
-
-	public ErrorToken getRhsErrorIToken(int i) {
-		int index = btParser.getToken(i);
-		IToken err = super.getIToken(index);
-		return (ErrorToken) (err instanceof ErrorToken ? err : null);
-	}
-
-	public CPPSizeofExpressionParser(LexStream lexStream) {
-		super(lexStream);
-
-		try {
-			super.remapTerminalSymbols(orderedTerminalSymbols(), CPPSizeofExpressionParserprs.EOFT_SYMBOL);
-		} catch (NullExportedSymbolsException e) {
-		} catch (NullTerminalSymbolsException e) {
-		} catch (UnimplementedTerminalsException e) {
-			java.util.ArrayList unimplemented_symbols = e.getSymbols();
-			System.out.println("The Lexer will not scan the following token(s):");
-			for (int i = 0; i < unimplemented_symbols.size(); i++) {
-				Integer id = (Integer) unimplemented_symbols.get(i);
-				System.out.println("    " + CPPSizeofExpressionParsersym.orderedTerminalSymbols[id.intValue()]);
-			}
-			System.out.println();
-		} catch (UndefinedEofSymbolException e) {
-			throw new Error(new UndefinedEofSymbolException("The Lexer does not implement the Eof symbol "
-					+ CPPSizeofExpressionParsersym.orderedTerminalSymbols[CPPSizeofExpressionParserprs.EOFT_SYMBOL]));
-		}
-	}
-
-	@Override
-	public String[] orderedTerminalSymbols() {
-		return CPPSizeofExpressionParsersym.orderedTerminalSymbols;
-	}
-
-	public String getTokenKindName(int kind) {
-		return CPPSizeofExpressionParsersym.orderedTerminalSymbols[kind];
-	}
-
-	public int getEOFTokenKind() {
-		return CPPSizeofExpressionParserprs.EOFT_SYMBOL;
-	}
-
-	public PrsStream getParseStream() {
-		return this;
-	}
-
-	//
-	// Report error message for given error_token.
-	//
-	public final void reportErrorTokenMessage(int error_token, String msg) {
-		int firsttok = super.getFirstErrorToken(error_token), lasttok = super.getLastErrorToken(error_token);
-		String location = super.getFileName() + ':'
-				+ (firsttok > lasttok ? (super.getEndLine(lasttok) + ":" + super.getEndColumn(lasttok))
-						: (super.getLine(error_token) + ":" + super.getColumn(error_token) + ":"
-								+ super.getEndLine(error_token) + ":" + super.getEndColumn(error_token)))
-				+ ": ";
-		super.reportError((firsttok > lasttok ? ParseErrorCodes.INSERTION_CODE : ParseErrorCodes.SUBSTITUTION_CODE),
-				location, msg);
-	}
-
-	public void parser() {
-		parser(null, 0);
-	}
-
-	public void parser(Monitor monitor) {
-		parser(monitor, 0);
-	}
-
-	public void parser(int error_repair_count) {
-		parser(null, error_repair_count);
-	}
-
-	public void parser(Monitor monitor, int error_repair_count) {
-		try {
-			btParser = new FixedBacktrackingParser(monitor, this, prs, this);
-		} catch (NotBacktrackParseTableException e) {
-			throw new Error(new NotBacktrackParseTableException(
-					"Regenerate CPPSizeofExpressionParserprs.java with -BACKTRACK option"));
-		} catch (BadParseSymFileException e) {
-			throw new Error(
-					new BadParseSymFileException("Bad Parser Symbol File -- CPPSizeofExpressionParsersym.java"));
-		}
-
-		try {
-			btParser.parse(error_repair_count);
-		} catch (BadParseException e) {
-			reset(e.error_token); // point to error token
-			DiagnoseParser diagnoseParser = new DiagnoseParser(this, prs);
-			diagnoseParser.diagnose(e.error_token);
-		}
-	}
-
-	private CPPBuildASTParserAction action;
-	private IASTCompletionNode compNode;
-
-	public CPPSizeofExpressionParser(IScanner scanner, IDOMTokenMap tokenMap,
-			IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Map<String, String> properties) {
-		initActions(properties);
-		action.initializeTranslationUnit(scanner, builtinBindingsProvider, index);
-		CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap);
-	}
-
-	private void initActions(Map<String, String> properties) {
-		ScopedStack<Object> astStack = new ScopedStack<>();
-
-		action = new CPPBuildASTParserAction(this, astStack, CPPNodeFactory.getDefault(),
-				CPPSecondaryParserFactory.getDefault());
-		action.setParserProperties(properties);
-
-	}
-
-	@Override
-	public void addToken(IToken token) {
-		token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called?
-		super.addToken(token);
-	}
-
-	@Override
-	public IASTExpression parse() {
-		// this has to be done, or... kaboom!
-		setStreamLength(getSize());
-
-		final int errorRepairCount = -1; // -1 means full error handling
-		parser(null, errorRepairCount); // do the actual parse
-		super.resetTokenStream(); // allow tokens to be garbage collected
-
-		compNode = action.getASTCompletionNode(); // the completion node may be null
-		return (IASTExpression) action.getParseResult();
-	}
-
-	@Override
-	public IASTCompletionNode getCompletionNode() {
-		return compNode;
-	}
-
-	// uncomment this method to use with backtracking parser
-	@Override
-	public List<IToken> getRuleTokens() {
-		return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
-	}
-
-	@Override
-	public String[] getOrderedTerminalSymbols() {
-		return CPPSizeofExpressionParsersym.orderedTerminalSymbols;
-	}
-
-	@Override
-	@SuppressWarnings("nls")
-	public String getName() {
-		return "CPPSizeofExpressionParser";
-	}
-
-	private ITokenMap tokenMap = null;
-
-	@Override
-	public void setTokens(List<IToken> tokens) {
-		resetTokenStream();
-		addToken(new Token(null, 0, 0, 0)); // dummy token
-		for (IToken token : tokens) {
-			token.setKind(tokenMap.mapKind(token.getKind()));
-			addToken(token);
-		}
-		addToken(new Token(null, 0, 0, CPPSizeofExpressionParsersym.TK_EOF_TOKEN));
-	}
-
-	public CPPSizeofExpressionParser(ITokenStream stream, Map<String, String> properties) { // constructor for creating secondary parser
-		initActions(properties);
-		tokenMap = new TokenMap(CPPSizeofExpressionParsersym.orderedTerminalSymbols,
-				stream.getOrderedTerminalSymbols());
-	}
-
-	public CPPSizeofExpressionParser(ITokenStream stream, IScanner scanner,
-			IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Map<String, String> properties) { // constructor for creating secondary parser
-		initActions(properties);
-		action.initializeTranslationUnit(scanner, builtinBindingsProvider, index);
-		tokenMap = new TokenMap(CPPSizeofExpressionParsersym.orderedTerminalSymbols,
-				stream.getOrderedTerminalSymbols());
-	}
-
-	@Override
-	public void ruleAction(int ruleNumber) {
-		switch (ruleNumber) {
-
-		//
-		// Rule 1:  <openscope-ast> ::= $Empty
-		//
-		case 1: {
-			action.openASTScope();
-			break;
-		}
-
-		//
-		// Rule 2:  <empty> ::= $Empty
-		//
-		case 2: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 13:  translation_unit ::= declaration_seq_opt
-		//
-		case 13: {
-			action.consumeTranslationUnit();
-			break;
-		}
-
-		//
-		// Rule 16:  literal ::= integer
-		//
-		case 16: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant);
-			break;
-		}
-
-		//
-		// Rule 17:  literal ::= floating
-		//
-		case 17: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_float_constant);
-			break;
-		}
-
-		//
-		// Rule 18:  literal ::= charconst
-		//
-		case 18: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant);
-			break;
-		}
-
-		//
-		// Rule 19:  literal ::= stringlit
-		//
-		case 19: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal);
-			break;
-		}
-
-		//
-		// Rule 20:  literal ::= true
-		//
-		case 20: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true);
-			break;
-		}
-
-		//
-		// Rule 21:  literal ::= false
-		//
-		case 21: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false);
-			break;
-		}
-
-		//
-		// Rule 22:  literal ::= this
-		//
-		case 22: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this);
-			break;
-		}
-
-		//
-		// Rule 24:  primary_expression ::= ( expression )
-		//
-		case 24: {
-			action.consumeExpressionBracketed();
-			break;
-		}
-
-		//
-		// Rule 26:  id_expression ::= qualified_or_unqualified_name
-		//
-		case 26: {
-			action.consumeExpressionName();
-			break;
-		}
-
-		//
-		// Rule 33:  unqualified_id_name ::= ~ identifier_token
-		//
-		case 33: {
-			action.consumeDestructorName();
-			break;
-		}
-
-		//
-		// Rule 34:  unqualified_id_name ::= ~ template_id_name
-		//
-		case 34: {
-			action.consumeDestructorNameTemplateId();
-			break;
-		}
-
-		//
-		// Rule 35:  identifier_name ::= identifier_token
-		//
-		case 35: {
-			action.consumeIdentifierName();
-			break;
-		}
-
-		//
-		// Rule 36:  template_opt ::= template
-		//
-		case 36: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 37:  template_opt ::= $Empty
-		//
-		case 37: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 38:  dcolon_opt ::= ::
-		//
-		case 38: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 39:  dcolon_opt ::= $Empty
-		//
-		case 39: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 40:  qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name
-		//
-		case 40: {
-			action.consumeQualifiedId(true);
-			break;
-		}
-
-		//
-		// Rule 41:  qualified_id_name ::= :: unqualified_id_name
-		//
-		case 41: {
-			action.consumeGlobalQualifiedId();
-			break;
-		}
-
-		//
-		// Rule 42:  nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template
-		//
-		case 42: {
-			action.consumeNestedNameSpecifier(true);
-			break;
-		}
-
-		//
-		// Rule 43:  nested_name_specifier ::= class_or_namespace_name ::
-		//
-		case 43: {
-			action.consumeNestedNameSpecifier(false);
-			break;
-		}
-
-		//
-		// Rule 44:  nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template
-		//
-		case 44: {
-			action.consumeNestedNameSpecifier(true);
-			break;
-		}
-
-		//
-		// Rule 45:  nested_name_specifier_with_template ::= class_or_namespace_name_with_template ::
-		//
-		case 45: {
-			action.consumeNestedNameSpecifier(false);
-			break;
-		}
-
-		//
-		// Rule 46:  class_or_namespace_name_with_template ::= template_opt class_or_namespace_name
-		//
-		case 46: {
-			action.consumeNameWithTemplateKeyword();
-			break;
-		}
-
-		//
-		// Rule 48:  nested_name_specifier_opt ::= $Empty
-		//
-		case 48: {
-			action.consumeNestedNameSpecifierEmpty();
-			break;
-		}
-
-		//
-		// Rule 51:  postfix_expression ::= postfix_expression [ expression ]
-		//
-		case 51: {
-			action.consumeExpressionArraySubscript();
-			break;
-		}
-
-		//
-		// Rule 52:  postfix_expression ::= postfix_expression ( expression_list_opt )
-		//
-		case 52: {
-			action.consumeExpressionFunctionCall();
-			break;
-		}
-
-		//
-		// Rule 53:  postfix_expression ::= simple_type_specifier ( expression_list_opt )
-		//
-		case 53: {
-			action.consumeExpressionSimpleTypeConstructor();
-			break;
-		}
-
-		//
-		// Rule 54:  postfix_expression ::= typename dcolon_opt nested_name_specifier <empty> identifier_name ( expression_list_opt )
-		//
-		case 54: {
-			action.consumeExpressionTypeName();
-			break;
-		}
-
-		//
-		// Rule 55:  postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt )
-		//
-		case 55: {
-			action.consumeExpressionTypeName();
-			break;
-		}
-
-		//
-		// Rule 56:  postfix_expression ::= postfix_expression . qualified_or_unqualified_name
-		//
-		case 56: {
-			action.consumeExpressionFieldReference(false, false);
-			break;
-		}
-
-		//
-		// Rule 57:  postfix_expression ::= postfix_expression -> qualified_or_unqualified_name
-		//
-		case 57: {
-			action.consumeExpressionFieldReference(true, false);
-			break;
-		}
-
-		//
-		// Rule 58:  postfix_expression ::= postfix_expression . template qualified_or_unqualified_name
-		//
-		case 58: {
-			action.consumeExpressionFieldReference(false, true);
-			break;
-		}
-
-		//
-		// Rule 59:  postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name
-		//
-		case 59: {
-			action.consumeExpressionFieldReference(true, true);
-			break;
-		}
-
-		//
-		// Rule 60:  postfix_expression ::= postfix_expression . pseudo_destructor_name
-		//
-		case 60: {
-			action.consumeExpressionFieldReference(false, false);
-			break;
-		}
-
-		//
-		// Rule 61:  postfix_expression ::= postfix_expression -> pseudo_destructor_name
-		//
-		case 61: {
-			action.consumeExpressionFieldReference(true, false);
-			break;
-		}
-
-		//
-		// Rule 62:  postfix_expression ::= postfix_expression ++
-		//
-		case 62: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr);
-			break;
-		}
-
-		//
-		// Rule 63:  postfix_expression ::= postfix_expression --
-		//
-		case 63: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr);
-			break;
-		}
-
-		//
-		// Rule 64:  postfix_expression ::= dynamic_cast < type_id > ( expression )
-		//
-		case 64: {
-			action.consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast);
-			break;
-		}
-
-		//
-		// Rule 65:  postfix_expression ::= static_cast < type_id > ( expression )
-		//
-		case 65: {
-			action.consumeExpressionCast(ICPPASTCastExpression.op_static_cast);
-			break;
-		}
-
-		//
-		// Rule 66:  postfix_expression ::= reinterpret_cast < type_id > ( expression )
-		//
-		case 66: {
-			action.consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast);
-			break;
-		}
-
-		//
-		// Rule 67:  postfix_expression ::= const_cast < type_id > ( expression )
-		//
-		case 67: {
-			action.consumeExpressionCast(ICPPASTCastExpression.op_const_cast);
-			break;
-		}
-
-		//
-		// Rule 68:  postfix_expression ::= typeid ( expression )
-		//
-		case 68: {
-			action.consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid);
-			break;
-		}
-
-		//
-		// Rule 69:  pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name
-		//
-		case 69: {
-			action.consumePsudoDestructorName(true);
-			break;
-		}
-
-		//
-		// Rule 70:  pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name
-		//
-		case 70: {
-			action.consumePsudoDestructorName(true);
-			break;
-		}
-
-		//
-		// Rule 71:  pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name
-		//
-		case 71: {
-			action.consumePsudoDestructorName(false);
-			break;
-		}
-
-		//
-		// Rule 72:  destructor_type_name ::= ~ identifier_token
-		//
-		case 72: {
-			action.consumeDestructorName();
-			break;
-		}
-
-		//
-		// Rule 73:  destructor_type_name ::= ~ template_id_name
-		//
-		case 73: {
-			action.consumeDestructorNameTemplateId();
-			break;
-		}
-
-		//
-		// Rule 77:  unary_expression ::= ++ cast_expression
-		//
-		case 77: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr);
-			break;
-		}
-
-		//
-		// Rule 78:  unary_expression ::= -- cast_expression
-		//
-		case 78: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr);
-			break;
-		}
-
-		//
-		// Rule 79:  unary_expression ::= & cast_expression
-		//
-		case 79: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper);
-			break;
-		}
-
-		//
-		// Rule 80:  unary_expression ::= * cast_expression
-		//
-		case 80: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_star);
-			break;
-		}
-
-		//
-		// Rule 81:  unary_expression ::= + cast_expression
-		//
-		case 81: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus);
-			break;
-		}
-
-		//
-		// Rule 82:  unary_expression ::= - cast_expression
-		//
-		case 82: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus);
-			break;
-		}
-
-		//
-		// Rule 83:  unary_expression ::= ~ cast_expression
-		//
-		case 83: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde);
-			break;
-		}
-
-		//
-		// Rule 84:  unary_expression ::= ! cast_expression
-		//
-		case 84: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_not);
-			break;
-		}
-
-		//
-		// Rule 85:  unary_expression ::= sizeof unary_expression
-		//
-		case 85: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof);
-			break;
-		}
-
-		//
-		// Rule 86:  new_expression ::= dcolon_opt new new_placement_opt new_type_id <openscope-ast> new_array_expressions_opt new_initializer_opt
-		//
-		case 86: {
-			action.consumeExpressionNew(true);
-			break;
-		}
-
-		//
-		// Rule 87:  new_expression ::= dcolon_opt new new_placement_opt ( type_id ) <openscope-ast> new_array_expressions_opt new_initializer_opt
-		//
-		case 87: {
-			action.consumeExpressionNew(false);
-			break;
-		}
-
-		//
-		// Rule 89:  new_placement_opt ::= $Empty
-		//
-		case 89: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 90:  new_type_id ::= type_specifier_seq
-		//
-		case 90: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 91:  new_type_id ::= type_specifier_seq new_declarator
-		//
-		case 91: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 92:  new_declarator ::= <openscope-ast> new_pointer_operators
-		//
-		case 92: {
-			action.consumeNewDeclarator();
-			break;
-		}
-
-		//
-		// Rule 99:  new_initializer ::= ( expression_list_opt )
-		//
-		case 99: {
-			action.consumeNewInitializer();
-			break;
-		}
-
-		//
-		// Rule 101:  new_initializer_opt ::= $Empty
-		//
-		case 101: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 102:  delete_expression ::= dcolon_opt delete cast_expression
-		//
-		case 102: {
-			action.consumeExpressionDelete(false);
-			break;
-		}
-
-		//
-		// Rule 103:  delete_expression ::= dcolon_opt delete [ ] cast_expression
-		//
-		case 103: {
-			action.consumeExpressionDelete(true);
-			break;
-		}
-
-		//
-		// Rule 105:  cast_expression ::= ( type_id ) cast_expression
-		//
-		case 105: {
-			action.consumeExpressionCast(ICPPASTCastExpression.op_cast);
-			break;
-		}
-
-		//
-		// Rule 107:  pm_expression ::= pm_expression .* cast_expression
-		//
-		case 107: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot);
-			break;
-		}
-
-		//
-		// Rule 108:  pm_expression ::= pm_expression ->* cast_expression
-		//
-		case 108: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow);
-			break;
-		}
-
-		//
-		// Rule 110:  multiplicative_expression ::= multiplicative_expression * pm_expression
-		//
-		case 110: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply);
-			break;
-		}
-
-		//
-		// Rule 111:  multiplicative_expression ::= multiplicative_expression / pm_expression
-		//
-		case 111: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide);
-			break;
-		}
-
-		//
-		// Rule 112:  multiplicative_expression ::= multiplicative_expression % pm_expression
-		//
-		case 112: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo);
-			break;
-		}
-
-		//
-		// Rule 114:  additive_expression ::= additive_expression + multiplicative_expression
-		//
-		case 114: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus);
-			break;
-		}
-
-		//
-		// Rule 115:  additive_expression ::= additive_expression - multiplicative_expression
-		//
-		case 115: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus);
-			break;
-		}
-
-		//
-		// Rule 117:  shift_expression ::= shift_expression << additive_expression
-		//
-		case 117: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft);
-			break;
-		}
-
-		//
-		// Rule 118:  shift_expression ::= shift_expression >> additive_expression
-		//
-		case 118: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight);
-			break;
-		}
-
-		//
-		// Rule 120:  relational_expression ::= relational_expression < shift_expression
-		//
-		case 120: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan);
-			break;
-		}
-
-		//
-		// Rule 121:  relational_expression ::= relational_expression > shift_expression
-		//
-		case 121: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan);
-			break;
-		}
-
-		//
-		// Rule 122:  relational_expression ::= relational_expression <= shift_expression
-		//
-		case 122: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual);
-			break;
-		}
-
-		//
-		// Rule 123:  relational_expression ::= relational_expression >= shift_expression
-		//
-		case 123: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual);
-			break;
-		}
-
-		//
-		// Rule 125:  equality_expression ::= equality_expression == relational_expression
-		//
-		case 125: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals);
-			break;
-		}
-
-		//
-		// Rule 126:  equality_expression ::= equality_expression != relational_expression
-		//
-		case 126: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals);
-			break;
-		}
-
-		//
-		// Rule 128:  and_expression ::= and_expression & equality_expression
-		//
-		case 128: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd);
-			break;
-		}
-
-		//
-		// Rule 130:  exclusive_or_expression ::= exclusive_or_expression ^ and_expression
-		//
-		case 130: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor);
-			break;
-		}
-
-		//
-		// Rule 132:  inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression
-		//
-		case 132: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr);
-			break;
-		}
-
-		//
-		// Rule 134:  logical_and_expression ::= logical_and_expression && inclusive_or_expression
-		//
-		case 134: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd);
-			break;
-		}
-
-		//
-		// Rule 136:  logical_or_expression ::= logical_or_expression || logical_and_expression
-		//
-		case 136: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr);
-			break;
-		}
-
-		//
-		// Rule 138:  conditional_expression ::= logical_or_expression ? expression : assignment_expression
-		//
-		case 138: {
-			action.consumeExpressionConditional();
-			break;
-		}
-
-		//
-		// Rule 140:  relational_expression_inTemplate ::= relational_expression_inTemplate < shift_expression
-		//
-		case 140: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan);
-			break;
-		}
-
-		//
-		// Rule 141:  relational_expression_inTemplate ::= ( relational_expression_inTemplate > shift_expression )
-		//
-		case 141: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan);
-			break;
-		}
-
-		//
-		// Rule 142:  relational_expression_inTemplate ::= relational_expression_inTemplate <= shift_expression
-		//
-		case 142: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual);
-			break;
-		}
-
-		//
-		// Rule 143:  relational_expression_inTemplate ::= relational_expression_inTemplate >= shift_expression
-		//
-		case 143: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual);
-			break;
-		}
-
-		//
-		// Rule 145:  equality_expression_inTemplate ::= equality_expression_inTemplate == relational_expression_inTemplate
-		//
-		case 145: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals);
-			break;
-		}
-
-		//
-		// Rule 146:  equality_expression_inTemplate ::= equality_expression_inTemplate != relational_expression_inTemplate
-		//
-		case 146: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals);
-			break;
-		}
-
-		//
-		// Rule 148:  and_expression_inTemplate ::= and_expression_inTemplate & equality_expression_inTemplate
-		//
-		case 148: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd);
-			break;
-		}
-
-		//
-		// Rule 150:  exclusive_or_expression_inTemplate ::= exclusive_or_expression_inTemplate ^ and_expression_inTemplate
-		//
-		case 150: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor);
-			break;
-		}
-
-		//
-		// Rule 152:  inclusive_or_expression_inTemplate ::= inclusive_or_expression_inTemplate | exclusive_or_expression_inTemplate
-		//
-		case 152: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr);
-			break;
-		}
-
-		//
-		// Rule 154:  logical_and_expression_inTemplate ::= logical_and_expression_inTemplate && inclusive_or_expression_inTemplate
-		//
-		case 154: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd);
-			break;
-		}
-
-		//
-		// Rule 156:  logical_or_expression_inTemplate ::= logical_or_expression_inTemplate || logical_and_expression_inTemplate
-		//
-		case 156: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr);
-			break;
-		}
-
-		//
-		// Rule 158:  conditional_expression_inTemplate ::= logical_or_expression_inTemplate ? expression : assignment_expression_inTemplate
-		//
-		case 158: {
-			action.consumeExpressionConditional();
-			break;
-		}
-
-		//
-		// Rule 161:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate = assignment_expression_inTemplate
-		//
-		case 161: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign);
-			break;
-		}
-
-		//
-		// Rule 162:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate *= assignment_expression_inTemplate
-		//
-		case 162: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign);
-			break;
-		}
-
-		//
-		// Rule 163:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate /= assignment_expression_inTemplate
-		//
-		case 163: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign);
-			break;
-		}
-
-		//
-		// Rule 164:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate %= assignment_expression_inTemplate
-		//
-		case 164: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign);
-			break;
-		}
-
-		//
-		// Rule 165:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate += assignment_expression_inTemplate
-		//
-		case 165: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign);
-			break;
-		}
-
-		//
-		// Rule 166:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate -= assignment_expression_inTemplate
-		//
-		case 166: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign);
-			break;
-		}
-
-		//
-		// Rule 167:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate >>= assignment_expression_inTemplate
-		//
-		case 167: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign);
-			break;
-		}
-
-		//
-		// Rule 168:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate <<= assignment_expression_inTemplate
-		//
-		case 168: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign);
-			break;
-		}
-
-		//
-		// Rule 169:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate &= assignment_expression_inTemplate
-		//
-		case 169: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign);
-			break;
-		}
-
-		//
-		// Rule 170:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate ^= assignment_expression_inTemplate
-		//
-		case 170: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign);
-			break;
-		}
-
-		//
-		// Rule 171:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate |= assignment_expression_inTemplate
-		//
-		case 171: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign);
-			break;
-		}
-
-		//
-		// Rule 172:  throw_expression ::= throw
-		//
-		case 172: {
-			action.consumeExpressionThrow(false);
-			break;
-		}
-
-		//
-		// Rule 173:  throw_expression ::= throw assignment_expression
-		//
-		case 173: {
-			action.consumeExpressionThrow(true);
-			break;
-		}
-
-		//
-		// Rule 176:  assignment_expression ::= logical_or_expression = assignment_expression
-		//
-		case 176: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign);
-			break;
-		}
-
-		//
-		// Rule 177:  assignment_expression ::= logical_or_expression *= assignment_expression
-		//
-		case 177: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign);
-			break;
-		}
-
-		//
-		// Rule 178:  assignment_expression ::= logical_or_expression /= assignment_expression
-		//
-		case 178: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign);
-			break;
-		}
-
-		//
-		// Rule 179:  assignment_expression ::= logical_or_expression %= assignment_expression
-		//
-		case 179: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign);
-			break;
-		}
-
-		//
-		// Rule 180:  assignment_expression ::= logical_or_expression += assignment_expression
-		//
-		case 180: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign);
-			break;
-		}
-
-		//
-		// Rule 181:  assignment_expression ::= logical_or_expression -= assignment_expression
-		//
-		case 181: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign);
-			break;
-		}
-
-		//
-		// Rule 182:  assignment_expression ::= logical_or_expression >>= assignment_expression
-		//
-		case 182: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign);
-			break;
-		}
-
-		//
-		// Rule 183:  assignment_expression ::= logical_or_expression <<= assignment_expression
-		//
-		case 183: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign);
-			break;
-		}
-
-		//
-		// Rule 184:  assignment_expression ::= logical_or_expression &= assignment_expression
-		//
-		case 184: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign);
-			break;
-		}
-
-		//
-		// Rule 185:  assignment_expression ::= logical_or_expression ^= assignment_expression
-		//
-		case 185: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign);
-			break;
-		}
-
-		//
-		// Rule 186:  assignment_expression ::= logical_or_expression |= assignment_expression
-		//
-		case 186: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign);
-			break;
-		}
-
-		//
-		// Rule 188:  expression_list ::= <openscope-ast> expression_list_actual
-		//
-		case 188: {
-			action.consumeExpressionList();
-			break;
-		}
-
-		//
-		// Rule 192:  expression_list_opt ::= $Empty
-		//
-		case 192: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 194:  expression_opt ::= $Empty
-		//
-		case 194: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 197:  constant_expression_opt ::= $Empty
-		//
-		case 197: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 206:  statement ::= ERROR_TOKEN
-		//
-		case 206: {
-			action.consumeStatementProblem();
-			break;
-		}
-
-		//
-		// Rule 207:  labeled_statement ::= identifier : statement
-		//
-		case 207: {
-			action.consumeStatementLabeled();
-			break;
-		}
-
-		//
-		// Rule 208:  labeled_statement ::= case constant_expression : statement
-		//
-		case 208: {
-			action.consumeStatementCase();
-			break;
-		}
-
-		//
-		// Rule 209:  labeled_statement ::= default : statement
-		//
-		case 209: {
-			action.consumeStatementDefault();
-			break;
-		}
-
-		//
-		// Rule 210:  expression_statement ::= expression ;
-		//
-		case 210: {
-			action.consumeStatementExpression();
-			break;
-		}
-
-		//
-		// Rule 211:  expression_statement ::= ;
-		//
-		case 211: {
-			action.consumeStatementNull();
-			break;
-		}
-
-		//
-		// Rule 212:  compound_statement ::= { <openscope-ast> statement_seq }
-		//
-		case 212: {
-			action.consumeStatementCompoundStatement(true);
-			break;
-		}
-
-		//
-		// Rule 213:  compound_statement ::= { }
-		//
-		case 213: {
-			action.consumeStatementCompoundStatement(false);
-			break;
-		}
-
-		//
-		// Rule 216:  selection_statement ::= if ( condition ) statement
-		//
-		case 216: {
-			action.consumeStatementIf(false);
-			break;
-		}
-
-		//
-		// Rule 217:  selection_statement ::= if ( condition ) statement else statement
-		//
-		case 217: {
-			action.consumeStatementIf(true);
-			break;
-		}
-
-		//
-		// Rule 218:  selection_statement ::= switch ( condition ) statement
-		//
-		case 218: {
-			action.consumeStatementSwitch();
-			break;
-		}
-
-		//
-		// Rule 220:  condition ::= type_specifier_seq declarator = assignment_expression
-		//
-		case 220: {
-			action.consumeConditionDeclaration();
-			break;
-		}
-
-		//
-		// Rule 222:  condition_opt ::= $Empty
-		//
-		case 222: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 223:  iteration_statement ::= while ( condition ) statement
-		//
-		case 223: {
-			action.consumeStatementWhileLoop();
-			break;
-		}
-
-		//
-		// Rule 224:  iteration_statement ::= do statement while ( expression ) ;
-		//
-		case 224: {
-			action.consumeStatementDoLoop(true);
-			break;
-		}
-
-		//
-		// Rule 225:  iteration_statement ::= do statement
-		//
-		case 225: {
-			action.consumeStatementDoLoop(false);
-			break;
-		}
-
-		//
-		// Rule 226:  iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement
-		//
-		case 226: {
-			action.consumeStatementForLoop();
-			break;
-		}
-
-		//
-		// Rule 228:  for_init_statement ::= simple_declaration_with_declspec
-		//
-		case 228: {
-			action.consumeStatementDeclaration();
-			break;
-		}
-
-		//
-		// Rule 229:  jump_statement ::= break ;
-		//
-		case 229: {
-			action.consumeStatementBreak();
-			break;
-		}
-
-		//
-		// Rule 230:  jump_statement ::= continue ;
-		//
-		case 230: {
-			action.consumeStatementContinue();
-			break;
-		}
-
-		//
-		// Rule 231:  jump_statement ::= return expression ;
-		//
-		case 231: {
-			action.consumeStatementReturn(true);
-			break;
-		}
-
-		//
-		// Rule 232:  jump_statement ::= return ;
-		//
-		case 232: {
-			action.consumeStatementReturn(false);
-			break;
-		}
-
-		//
-		// Rule 233:  jump_statement ::= goto identifier_token ;
-		//
-		case 233: {
-			action.consumeStatementGoto();
-			break;
-		}
-
-		//
-		// Rule 234:  declaration_statement ::= block_declaration
-		//
-		case 234: {
-			action.consumeStatementDeclarationWithDisambiguation();
-			break;
-		}
-
-		//
-		// Rule 235:  declaration_statement ::= function_definition
-		//
-		case 235: {
-			action.consumeStatementDeclaration();
-			break;
-		}
-
-		//
-		// Rule 243:  declaration ::= ERROR_TOKEN
-		//
-		case 243: {
-			action.consumeDeclarationProblem();
-			break;
-		}
-
-		//
-		// Rule 253:  simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ;
-		//
-		case 253: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 254:  simple_declaration_with_declspec ::= declaration_specifiers <openscope-ast> init_declarator_list_opt ;
-		//
-		case 254: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 255:  declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
-		//
-		case 255: {
-			action.consumeDeclarationSpecifiersSimple();
-			break;
-		}
-
-		//
-		// Rule 256:  declaration_specifiers ::= <openscope-ast> class_declaration_specifiers
-		//
-		case 256: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 257:  declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
-		//
-		case 257: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 258:  declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
-		//
-		case 258: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 259:  declaration_specifiers ::= <openscope-ast> type_name_declaration_specifiers
-		//
-		case 259: {
-			action.consumeDeclarationSpecifiersTypeName();
-			break;
-		}
-
-		//
-		// Rule 261:  declaration_specifiers_opt ::= $Empty
-		//
-		case 261: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 265:  no_type_declaration_specifier ::= friend
-		//
-		case 265: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 266:  no_type_declaration_specifier ::= typedef
-		//
-		case 266: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 286:  storage_class_specifier ::= auto
-		//
-		case 286: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 287:  storage_class_specifier ::= register
-		//
-		case 287: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 288:  storage_class_specifier ::= static
-		//
-		case 288: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 289:  storage_class_specifier ::= extern
-		//
-		case 289: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 290:  storage_class_specifier ::= mutable
-		//
-		case 290: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 291:  function_specifier ::= inline
-		//
-		case 291: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 292:  function_specifier ::= virtual
-		//
-		case 292: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 293:  function_specifier ::= explicit
-		//
-		case 293: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 294:  simple_type_specifier ::= simple_type_specifier_token
-		//
-		case 294: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 308:  type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name
-		//
-		case 308: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 309:  type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name
-		//
-		case 309: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 310:  type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name
-		//
-		case 310: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 311:  type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name
-		//
-		case 311: {
-			action.consumeQualifiedId(true);
-			break;
-		}
-
-		//
-		// Rule 313:  elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name
-		//
-		case 313: {
-			action.consumeTypeSpecifierElaborated(false);
-			break;
-		}
-
-		//
-		// Rule 314:  elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt template_opt template_id_name
-		//
-		case 314: {
-			action.consumeTypeSpecifierElaborated(true);
-			break;
-		}
-
-		//
-		// Rule 315:  elaborated_type_specifier ::= enum elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name
-		//
-		case 315: {
-			action.consumeTypeSpecifierElaborated(false);
-			break;
-		}
-
-		//
-		// Rule 319:  enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
-		//
-		case 319: {
-			action.consumeTypeSpecifierEnumeration(false);
-			break;
-		}
-
-		//
-		// Rule 320:  enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
-		//
-		case 320: {
-			action.consumeTypeSpecifierEnumeration(true);
-			break;
-		}
-
-		//
-		// Rule 326:  enumerator_definition ::= identifier_token
-		//
-		case 326: {
-			action.consumeEnumerator(false);
-			break;
-		}
-
-		//
-		// Rule 327:  enumerator_definition ::= identifier_token = constant_expression
-		//
-		case 327: {
-			action.consumeEnumerator(true);
-			break;
-		}
-
-		//
-		// Rule 329:  namespace_definition ::= namespace namespace_name namespace_definition_hook { <openscope-ast> declaration_seq_opt }
-		//
-		case 329: {
-			action.consumeNamespaceDefinition(true);
-			break;
-		}
-
-		//
-		// Rule 330:  namespace_definition ::= namespace namespace_definition_hook { <openscope-ast> declaration_seq_opt }
-		//
-		case 330: {
-			action.consumeNamespaceDefinition(false);
-			break;
-		}
-
-		//
-		// Rule 332:  namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ;
-		//
-		case 332: {
-			action.consumeNamespaceAliasDefinition();
-			break;
-		}
-
-		//
-		// Rule 333:  using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ;
-		//
-		case 333: {
-			action.consumeUsingDeclaration();
-			break;
-		}
-
-		//
-		// Rule 334:  typename_opt ::= typename
-		//
-		case 334: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 335:  typename_opt ::= $Empty
-		//
-		case 335: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 336:  using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ;
-		//
-		case 336: {
-			action.consumeUsingDirective();
-			break;
-		}
-
-		//
-		// Rule 337:  asm_definition ::= asm ( stringlit ) ;
-		//
-		case 337: {
-			action.consumeDeclarationASM();
-			break;
-		}
-
-		//
-		// Rule 338:  linkage_specification ::= extern stringlit { <openscope-ast> declaration_seq_opt }
-		//
-		case 338: {
-			action.consumeLinkageSpecification();
-			break;
-		}
-
-		//
-		// Rule 339:  linkage_specification ::= extern stringlit <openscope-ast> declaration
-		//
-		case 339: {
-			action.consumeLinkageSpecification();
-			break;
-		}
-
-		//
-		// Rule 344:  init_declarator_complete ::= init_declarator
-		//
-		case 344: {
-			action.consumeInitDeclaratorComplete();
-			break;
-		}
-
-		//
-		// Rule 346:  init_declarator ::= complete_declarator initializer
-		//
-		case 346: {
-			action.consumeDeclaratorWithInitializer(true);
-			break;
-		}
-
-		//
-		// Rule 349:  declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
-		//
-		case 349: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 351:  function_declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
-		//
-		case 351: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 355:  basic_direct_declarator ::= declarator_id_name
-		//
-		case 355: {
-			action.consumeDirectDeclaratorIdentifier();
-			break;
-		}
-
-		//
-		// Rule 356:  basic_direct_declarator ::= ( declarator )
-		//
-		case 356: {
-			action.consumeDirectDeclaratorBracketed();
-			break;
-		}
-
-		//
-		// Rule 357:  function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
-		//
-		case 357: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 358:  array_direct_declarator ::= array_direct_declarator array_modifier
-		//
-		case 358: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 359:  array_direct_declarator ::= basic_direct_declarator array_modifier
-		//
-		case 359: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 360:  array_modifier ::= [ constant_expression ]
-		//
-		case 360: {
-			action.consumeDirectDeclaratorArrayModifier(true);
-			break;
-		}
-
-		//
-		// Rule 361:  array_modifier ::= [ ]
-		//
-		case 361: {
-			action.consumeDirectDeclaratorArrayModifier(false);
-			break;
-		}
-
-		//
-		// Rule 362:  ptr_operator ::= pointer_hook * pointer_hook <openscope-ast> cv_qualifier_seq_opt
-		//
-		case 362: {
-			action.consumePointer();
-			break;
-		}
-
-		//
-		// Rule 363:  ptr_operator ::= pointer_hook & pointer_hook
-		//
-		case 363: {
-			action.consumeReferenceOperator();
-			break;
-		}
-
-		//
-		// Rule 364:  ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * pointer_hook <openscope-ast> cv_qualifier_seq_opt
-		//
-		case 364: {
-			action.consumePointerToMember();
-			break;
-		}
-
-		//
-		// Rule 371:  cv_qualifier ::= const
-		//
-		case 371: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 372:  cv_qualifier ::= volatile
-		//
-		case 372: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 374:  declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name
-		//
-		case 374: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 375:  type_id ::= type_specifier_seq
-		//
-		case 375: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 376:  type_id ::= type_specifier_seq abstract_declarator
-		//
-		case 376: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 379:  abstract_declarator ::= <openscope-ast> ptr_operator_seq
-		//
-		case 379: {
-			action.consumeDeclaratorWithPointer(false);
-			break;
-		}
-
-		//
-		// Rule 380:  abstract_declarator ::= <openscope-ast> ptr_operator_seq direct_abstract_declarator
-		//
-		case 380: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 384:  basic_direct_abstract_declarator ::= ( abstract_declarator )
-		//
-		case 384: {
-			action.consumeDirectDeclaratorBracketed();
-			break;
-		}
-
-		//
-		// Rule 385:  basic_direct_abstract_declarator ::= ( )
-		//
-		case 385: {
-			action.consumeAbstractDeclaratorEmpty();
-			break;
-		}
-
-		//
-		// Rule 386:  array_direct_abstract_declarator ::= array_modifier
-		//
-		case 386: {
-			action.consumeDirectDeclaratorArrayDeclarator(false);
-			break;
-		}
-
-		//
-		// Rule 387:  array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
-		//
-		case 387: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 388:  array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
-		//
-		case 388: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 389:  function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
-		//
-		case 389: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 390:  function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
-		//
-		case 390: {
-			action.consumeDirectDeclaratorFunctionDeclarator(false);
-			break;
-		}
-
-		//
-		// Rule 391:  parameter_declaration_clause ::= parameter_declaration_list_opt ...
-		//
-		case 391: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 392:  parameter_declaration_clause ::= parameter_declaration_list_opt
-		//
-		case 392: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 393:  parameter_declaration_clause ::= parameter_declaration_list , ...
-		//
-		case 393: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 399:  abstract_declarator_opt ::= $Empty
-		//
-		case 399: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 400:  parameter_declaration ::= declaration_specifiers parameter_init_declarator
-		//
-		case 400: {
-			action.consumeParameterDeclaration();
-			break;
-		}
-
-		//
-		// Rule 401:  parameter_declaration ::= declaration_specifiers
-		//
-		case 401: {
-			action.consumeParameterDeclarationWithoutDeclarator();
-			break;
-		}
-
-		//
-		// Rule 403:  parameter_init_declarator ::= declarator = parameter_initializer
-		//
-		case 403: {
-			action.consumeDeclaratorWithInitializer(true);
-			break;
-		}
-
-		//
-		// Rule 405:  parameter_init_declarator ::= abstract_declarator = parameter_initializer
-		//
-		case 405: {
-			action.consumeDeclaratorWithInitializer(true);
-			break;
-		}
-
-		//
-		// Rule 406:  parameter_init_declarator ::= = parameter_initializer
-		//
-		case 406: {
-			action.consumeDeclaratorWithInitializer(false);
-			break;
-		}
-
-		//
-		// Rule 407:  parameter_initializer ::= assignment_expression
-		//
-		case 407: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 408:  function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body
-		//
-		case 408: {
-			action.consumeFunctionDefinition(false);
-			break;
-		}
-
-		//
-		// Rule 409:  function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq
-		//
-		case 409: {
-			action.consumeFunctionDefinition(true);
-			break;
-		}
-
-		//
-		// Rule 412:  initializer ::= ( expression_list )
-		//
-		case 412: {
-			action.consumeInitializerConstructor();
-			break;
-		}
-
-		//
-		// Rule 413:  initializer_clause ::= assignment_expression
-		//
-		case 413: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 414:  initializer_clause ::= initializer_list
-		//
-		case 414: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 415:  initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq , } end_initializer_list
-		//
-		case 415: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 416:  initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq } end_initializer_list
-		//
-		case 416: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 417:  initializer_list ::= { <openscope-ast> }
-		//
-		case 417: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 418:  start_initializer_list ::= $Empty
-		//
-		case 418: {
-			action.initializerListStart();
-			break;
-		}
-
-		//
-		// Rule 419:  end_initializer_list ::= $Empty
-		//
-		case 419: {
-			action.initializerListEnd();
-			break;
-		}
-
-		//
-		// Rule 424:  class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt }
-		//
-		case 424: {
-			action.consumeClassSpecifier();
-			break;
-		}
-
-		//
-		// Rule 425:  class_head ::= class_keyword composite_specifier_hook identifier_name_opt class_name_suffix_hook <openscope-ast> base_clause_opt
-		//
-		case 425: {
-			action.consumeClassHead(false);
-			break;
-		}
-
-		//
-		// Rule 426:  class_head ::= class_keyword composite_specifier_hook template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt
-		//
-		case 426: {
-			action.consumeClassHead(false);
-			break;
-		}
-
-		//
-		// Rule 427:  class_head ::= class_keyword composite_specifier_hook nested_name_specifier identifier_name class_name_suffix_hook <openscope-ast> base_clause_opt
-		//
-		case 427: {
-			action.consumeClassHead(true);
-			break;
-		}
-
-		//
-		// Rule 428:  class_head ::= class_keyword composite_specifier_hook nested_name_specifier template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt
-		//
-		case 428: {
-			action.consumeClassHead(true);
-			break;
-		}
-
-		//
-		// Rule 432:  identifier_name_opt ::= $Empty
-		//
-		case 432: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 436:  visibility_label ::= access_specifier_keyword :
-		//
-		case 436: {
-			action.consumeVisibilityLabel();
-			break;
-		}
-
-		//
-		// Rule 437:  member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
-		//
-		case 437: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 438:  member_declaration ::= declaration_specifiers_opt ;
-		//
-		case 438: {
-			action.consumeDeclarationSimple(false);
-			break;
-		}
-
-		//
-		// Rule 441:  member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ;
-		//
-		case 441: {
-			action.consumeMemberDeclarationQualifiedId();
-			break;
-		}
-
-		//
-		// Rule 447:  member_declaration ::= ERROR_TOKEN
-		//
-		case 447: {
-			action.consumeDeclarationProblem();
-			break;
-		}
-
-		//
-		// Rule 456:  member_declarator ::= declarator constant_initializer
-		//
-		case 456: {
-			action.consumeMemberDeclaratorWithInitializer();
-			break;
-		}
-
-		//
-		// Rule 457:  member_declarator ::= bit_field_declarator : constant_expression
-		//
-		case 457: {
-			action.consumeBitField(true);
-			break;
-		}
-
-		//
-		// Rule 458:  member_declarator ::= : constant_expression
-		//
-		case 458: {
-			action.consumeBitField(false);
-			break;
-		}
-
-		//
-		// Rule 459:  bit_field_declarator ::= identifier_name
-		//
-		case 459: {
-			action.consumeDirectDeclaratorIdentifier();
-			break;
-		}
-
-		//
-		// Rule 460:  constant_initializer ::= = constant_expression
-		//
-		case 460: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 466:  base_specifier ::= dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 466: {
-			action.consumeBaseSpecifier(false, false);
-			break;
-		}
-
-		//
-		// Rule 467:  base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 467: {
-			action.consumeBaseSpecifier(true, true);
-			break;
-		}
-
-		//
-		// Rule 468:  base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 468: {
-			action.consumeBaseSpecifier(true, true);
-			break;
-		}
-
-		//
-		// Rule 469:  base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 469: {
-			action.consumeBaseSpecifier(true, false);
-			break;
-		}
-
-		//
-		// Rule 470:  access_specifier_keyword ::= private
-		//
-		case 470: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 471:  access_specifier_keyword ::= protected
-		//
-		case 471: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 472:  access_specifier_keyword ::= public
-		//
-		case 472: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 474:  access_specifier_keyword_opt ::= $Empty
-		//
-		case 474: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 476:  conversion_function_id_name ::= conversion_function_id < <openscope-ast> template_argument_list_opt >
-		//
-		case 476: {
-			action.consumeTemplateId();
-			break;
-		}
-
-		//
-		// Rule 477:  conversion_function_id ::= operator conversion_type_id
-		//
-		case 477: {
-			action.consumeConversionName();
-			break;
-		}
-
-		//
-		// Rule 478:  conversion_type_id ::= type_specifier_seq conversion_declarator
-		//
-		case 478: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 479:  conversion_type_id ::= type_specifier_seq
-		//
-		case 479: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 480:  conversion_declarator ::= <openscope-ast> ptr_operator_seq
-		//
-		case 480: {
-			action.consumeDeclaratorWithPointer(false);
-			break;
-		}
-
-		//
-		// Rule 486:  mem_initializer ::= mem_initializer_name ( expression_list_opt )
-		//
-		case 486: {
-			action.consumeConstructorChainInitializer();
-			break;
-		}
-
-		//
-		// Rule 487:  mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 487: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 490:  operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt >
-		//
-		case 490: {
-			action.consumeTemplateId();
-			break;
-		}
-
-		//
-		// Rule 491:  operator_id_name ::= operator overloadable_operator
-		//
-		case 491: {
-			action.consumeOperatorName();
-			break;
-		}
-
-		//
-		// Rule 534:  template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration
-		//
-		case 534: {
-			action.consumeTemplateDeclaration();
-			break;
-		}
-
-		//
-		// Rule 535:  export_opt ::= export
-		//
-		case 535: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 536:  export_opt ::= $Empty
-		//
-		case 536: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 540:  template_parameter ::= parameter_declaration
-		//
-		case 540: {
-			action.consumeTemplateParamterDeclaration();
-			break;
-		}
-
-		//
-		// Rule 541:  type_parameter ::= class identifier_name_opt
-		//
-		case 541: {
-			action.consumeSimpleTypeTemplateParameter(false);
-			break;
-		}
-
-		//
-		// Rule 542:  type_parameter ::= class identifier_name_opt = type_id
-		//
-		case 542: {
-			action.consumeSimpleTypeTemplateParameter(true);
-			break;
-		}
-
-		//
-		// Rule 543:  type_parameter ::= typename identifier_name_opt
-		//
-		case 543: {
-			action.consumeSimpleTypeTemplateParameter(false);
-			break;
-		}
-
-		//
-		// Rule 544:  type_parameter ::= typename identifier_name_opt = type_id
-		//
-		case 544: {
-			action.consumeSimpleTypeTemplateParameter(true);
-			break;
-		}
-
-		//
-		// Rule 545:  type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt
-		//
-		case 545: {
-			action.consumeTemplatedTypeTemplateParameter(false);
-			break;
-		}
-
-		//
-		// Rule 546:  type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression
-		//
-		case 546: {
-			action.consumeTemplatedTypeTemplateParameter(true);
-			break;
-		}
-
-		//
-		// Rule 547:  template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt >
-		//
-		case 547: {
-			action.consumeTemplateId();
-			break;
-		}
-
-		//
-		// Rule 554:  nested_name_specifier_inTemplate ::= class_or_namespace_name_inTemplate :: nested_name_specifier_with_template_inTemplate
-		//
-		case 554: {
-			action.consumeNestedNameSpecifier(true);
-			break;
-		}
-
-		//
-		// Rule 555:  nested_name_specifier_inTemplate ::= class_or_namespace_name_inTemplate ::
-		//
-		case 555: {
-			action.consumeNestedNameSpecifier(false);
-			break;
-		}
-
-		//
-		// Rule 556:  nested_name_specifier_with_template_inTemplate ::= class_or_namespace_name_with_template_inTemplate :: nested_name_specifier_with_template_inTemplate
-		//
-		case 556: {
-			action.consumeNestedNameSpecifier(true);
-			break;
-		}
-
-		//
-		// Rule 557:  nested_name_specifier_with_template_inTemplate ::= class_or_namespace_name_with_template_inTemplate ::
-		//
-		case 557: {
-			action.consumeNestedNameSpecifier(false);
-			break;
-		}
-
-		//
-		// Rule 558:  class_or_namespace_name_with_template_inTemplate ::= template_opt class_or_namespace_name_inTemplate
-		//
-		case 558: {
-			action.consumeNameWithTemplateKeyword();
-			break;
-		}
-
-		//
-		// Rule 560:  nested_name_specifier_opt_inTemplate ::= $Empty
-		//
-		case 560: {
-			action.consumeNestedNameSpecifierEmpty();
-			break;
-		}
-
-		//
-		// Rule 563:  type_name_specifier_inTemplate ::= typename dcolon_opt nested_name_specifier identifier_name
-		//
-		case 563: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 564:  type_name_specifier_inTemplate ::= typename dcolon_opt nested_name_specifier template_opt template_id_name
-		//
-		case 564: {
-			action.consumeQualifiedId(true);
-			break;
-		}
-
-		//
-		// Rule 569:  declaration_specifiers_inTemplate ::= <openscope-ast> simple_declaration_specifiers
-		//
-		case 569: {
-			action.consumeDeclarationSpecifiersSimple();
-			break;
-		}
-
-		//
-		// Rule 570:  declaration_specifiers_inTemplate ::= <openscope-ast> class_declaration_specifiers
-		//
-		case 570: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 571:  declaration_specifiers_inTemplate ::= <openscope-ast> elaborated_declaration_specifiers
-		//
-		case 571: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 572:  declaration_specifiers_inTemplate ::= <openscope-ast> enum_declaration_specifiers
-		//
-		case 572: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 573:  declaration_specifiers_inTemplate ::= <openscope-ast> type_name_declaration_specifiers_inTemplate
-		//
-		case 573: {
-			action.consumeDeclarationSpecifiersTypeName();
-			break;
-		}
-
-		//
-		// Rule 575:  type_id_inTemplate ::= type_specifier_seq_inTemplate
-		//
-		case 575: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 576:  type_id_inTemplate ::= type_specifier_seq_inTemplate abstract_declarator
-		//
-		case 576: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 577:  template_argument ::= assignment_expression_inTemplate
-		//
-		case 577: {
-			action.consumeTemplateArgumentExpression();
-			break;
-		}
-
-		//
-		// Rule 578:  template_argument ::= type_id_inTemplate
-		//
-		case 578: {
-			action.consumeTemplateArgumentTypeId();
-			break;
-		}
-
-		//
-		// Rule 579:  explicit_instantiation ::= template declaration
-		//
-		case 579: {
-			action.consumeTemplateExplicitInstantiation();
-			break;
-		}
-
-		//
-		// Rule 580:  explicit_specialization ::= template < > declaration
-		//
-		case 580: {
-			action.consumeTemplateExplicitSpecialization();
-			break;
-		}
-
-		//
-		// Rule 581:  try_block ::= try compound_statement <openscope-ast> handler_seq
-		//
-		case 581: {
-			action.consumeStatementTryBlock(true);
-			break;
-		}
-
-		//
-		// Rule 582:  try_block ::= try compound_statement
-		//
-		case 582: {
-			action.consumeStatementTryBlock(false);
-			break;
-		}
-
-		//
-		// Rule 585:  handler ::= catch ( exception_declaration ) compound_statement
-		//
-		case 585: {
-			action.consumeStatementCatchHandler(false);
-			break;
-		}
-
-		//
-		// Rule 586:  handler ::= catch ( ... ) compound_statement
-		//
-		case 586: {
-			action.consumeStatementCatchHandler(true);
-			break;
-		}
-
-		//
-		// Rule 587:  exception_declaration ::= type_specifier_seq <openscope-ast> declarator
-		//
-		case 587: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 588:  exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
-		//
-		case 588: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 589:  exception_declaration ::= type_specifier_seq
-		//
-		case 589: {
-			action.consumeDeclarationSimple(false);
-			break;
-		}
-
-		//
-		// Rule 591:  exception_specification ::= throw ( )
-		//
-		case 591: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 597:  no_sizeof_type_id_start ::= ERROR_TOKEN
-		//
-		case 597: {
-			action.consumeEmpty();
-			break;
-		}
-
-		default:
-			break;
-		}
-		return;
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParserprs.java
deleted file mode 100644
index 5f1d9ae..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParserprs.java
+++ /dev/null
@@ -1,1555 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2015 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.lrparser.cpp;
-
-public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CPPSizeofExpressionParsersym {
-
-	public interface IsKeyword {
-		public final static byte isKeyword[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static byte isKeyword[] = IsKeyword.isKeyword;
-
-	public final boolean isKeyword(int index) {
-		return isKeyword[index] != 0;
-	}
-
-	public interface BaseCheck {
-		public final static short baseCheck[] = { 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 0, 1, 0, 4, 2, 3, 2, 3, 2, 2, 1, 0, 1, 1, 4, 4, 4, 8, 8, 3, 3,
-				4, 4, 3, 3, 2, 2, 7, 7, 7, 7, 4, 5, 6, 3, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 7, 9, 3, 0, 1, 2, 2,
-				1, 2, 3, 4, 1, 0, 3, 1, 0, 3, 5, 1, 4, 1, 3, 3, 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, 1,
-				3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 1, 3, 5, 3, 3, 1, 3, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 1, 1, 3, 3,
-				3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 2, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 2, 1, 3, 1, 0, 1, 0, 1, 1, 0,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 4, 3, 2, 1, 4, 2, 1, 2, 5, 7, 5, 1, 4, 1, 0, 5, 7, 2, 8, 1, 1, 2, 2, 3, 2,
-				3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 0, 4, 4, 2, 2, 2, 2, 2, 1, 0, 1, 1, 1, 1, 1, 1,
-				2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 3, 4, 4, 5, 2, 5, 6, 5, 0, 1, 0, 7, 8, 0, 1, 3, 1, 0, 1, 3, 1, 7, 6, 0, 7, 6, 1, 0, 6, 5,
-				6, 4, 1, 3, 1, 0, 1, 1, 2, 1, 1, 3, 1, 3, 1, 1, 1, 1, 3, 9, 2, 2, 3, 2, 5, 3, 7, 0, 1, 2, 2, 1, 0, 1, 1,
-				1, 3, 1, 2, 1, 1, 2, 3, 1, 1, 1, 3, 2, 1, 2, 2, 9, 8, 2, 1, 3, 1, 3, 1, 0, 1, 0, 2, 1, 1, 3, 1, 3, 2, 1,
-				5, 8, 1, 2, 3, 1, 1, 7, 6, 3, 0, 0, 1, 3, 1, 1, 5, 6, 6, 7, 7, 0, 0, 1, 0, 1, 1, 1, 2, 4, 2, 2, 1, 5, 1,
-				1, 1, 1, 1, 1, 1, 2, 1, 0, 1, 3, 1, 1, 2, 3, 2, 1, 2, 2, 1, 0, 1, 3, 3, 5, 5, 4, 1, 1, 1, 1, 0, 1, 5, 2,
-				2, 1, 2, 2, 1, 0, 1, 3, 4, 3, 1, 1, 5, 2, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 7, 1, 0, 1, 3, 1, 1, 2, 4, 2, 4, 7, 9, 5,
-				1, 3, 1, 0, 1, 1, 3, 2, 3, 2, 2, 1, 0, 1, 1, 4, 5, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 4, 4, 2,
-				1, 2, 5, 5, 3, 3, 1, 4, 3, 1, 0, 1, 3, 1, 1, -62, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -4, -10, 0, 0, 0, 0, 0, 0, 0, -123, 0, 0, -5, 0, 0, -472, 0, 0, 0, 0, -279, 0,
-				0, -136, 0, -137, -594, -428, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -198, 0, 0, 0, 0, -6, 0, -18, 0, 0, 0,
-				-114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -282, 0, 0,
-				0, 0, 0, 0, -49, -42, 0, 0, -61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -415, 0, -71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -126, 0, 0, 0, 0, 0, -196, 0, 0, 0, -115, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -53, 0, 0, 0, 0, 0, 0,
-				-522, 0, 0, 0, -58, 0, 0, 0, 0, -7, 0, 0, 0, 0, 0, 0, -121, 0, -385, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-8, -130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -260, 0, 0,
-				-128, 0, -72, 0, 0, 0, 0, -9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -51, 0, -50, -54, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -596, 0, 0, 0, 0, -117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -261, -47, 0, 0, 0,
-				-259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -64, 0, -65, 0,
-				0, 0, 0, 0, 0, -325, 0, 0, 0, -444, -141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -311, 0, 0, -11, 0, 0, 0,
-				0, 0, 0, 0, -571, 0, 0, 0, 0, -262, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -12,
-				0, 0, 0, 0, 0, 0, 0, 0, -13, 0, 0, 0, 0, 0, 0, -177, 0, 0, 0, -16, 0, 0, 0, -526, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -595, 0, 0, 0, 0, -510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-197, 0, 0, -215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -272, 0, 0, 0, 0, -92, 0, 0, 0, 0, -367, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -119, 0, 0, 0, -211, 0, 0, 0, 0, 0, 0, -502, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -112, -15, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -28, 0, 0, 0, -235, 0, 0, 0, 0, 0, -146, 0, 0, 0, -368, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -199, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -176, 0, 0, 0, 0, -91, 0, 0, 0, 0, -29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -57, -30, 0, 0, -31, 0, 0, 0, 0, 0, 0, 0, -329, 0, 0, 0, 0, -269, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -195, 0, 0, 0, 0, 0, 0, 0, -32, 0, 0, -264, 0, 0, 0, 0, 0,
-				-570, -375, 0, 0, 0, 0, -33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -209, 0, 0,
-				0, -129, 0, 0, 0, 0, -402, 0, 0, -143, 0, 0, -273, 0, 0, 0, 0, -376, 0, 0, 0, 0, -316, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -48, 0, 0, 0, -214, 0, 0, 0, 0, 0, 0, 0, -357, 0, 0, -280,
-				0, 0, 0, 0, -345, -34, 0, -39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -152, 0, 0, -286, 0, 0, 0, 0, -356, 0, -440, -41, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -205, 0, 0, -270, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -326, 0, 0, 0, 0, -94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -388, 0, 0, -287, 0, 0, 0, 0, -95, 0, 0, 0, 0, -35, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -308, 0, 0, 0, -321, 0, 0, 0, 0, 0, 0, 0,
-				-421, 0, 0, -327, 0, 0, 0, 0, -96, 0, 0, 0, 0, -36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -322, -37, 0, 0, -324, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -339, 0, 0, 0, 0, -97, 0, 0, 0, 0,
-				-371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -328, -38, 0, 0, -340, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0, -98, 0, 0, 0, 0, -40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -360, -55, 0, 0, 0, -405, 0, 0, 0, -423, 0, 0, -56, 0, 0, -390, 0, 0, 0, 0, -99, 0, 0,
-				0, 0, -66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -361, 0, 0, 0, -365, 0, 0, 0,
-				0, 0, 0, 0, -366, 0, 0, -59, -60, 0, -409, 0, -100, 0, 0, 0, 0, -67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -69, 0, 0, 0, -353, 0, 0, -377, 0, 0, -107, -113, 0, -410, 0,
-				-101, 0, 0, 0, 0, -70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -383,
-				-108, 0, 0, 0, 0, 0, 0, -443, 0, 0, 0, 0, -400, -309, 0, -102, 0, 0, 0, 0, -109, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -391, -110, 0, 0, 0, 0, 0, 0, -394, 0, 0, -434, -332,
-				0, -111, 0, -103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -395, 0, 0, 0, -447, 0, 0, -131, 0, 0, -460, 0, 0, -138, 0, -104, 0, 0, 0, 0, -540, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -397, -139, 0, 0, 0, 0, 0, 0, -140, 0, 0,
-				-323, 0, 0, -221, 0, -134, 0, 0, 0, 0, -265, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -411, -116, 0, 0, 0, 0, 0, 0, 0, -341, 0, 0, 0, 0, 0, -222, 0, 0, 0, 0, -354, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -153, 0, 0, 0, 0, 0, 0, -266, 0, 0, 0,
-				-436, 0, 0, -374, 0, 0, 0, 0, -154, 0, -246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -503, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -229, 0, -399, -313, 0, 0,
-				0, 0, 0, 0, 0, -155, -319, 0, 0, 0, 0, 0, 0, 0, -247, 0, 0, 0, 0, -156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -147, -355, 0, 0, 0, -413, 0, 0, 0, 0, 0, 0, -446, 0, 0, 0, -333, 0, 0,
-				-118, 0, -157, 0, 0, 0, 0, 0, 0, -158, -492, 0, 0, -320, 0, 0, 0, 0, 0, 0, -248, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -475, -457, 0, -159, 0, 0, -14, 0, -284, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -431, 0, 0, -392, -160, 0, 0, 0, 0, 0, 0, -249, 0, 0, 0,
-				0, -161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -151, 0, -363, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -120, 0, -379, 0, 0, 0, 0, -416, 0, -461, 0, 0, 0, -412, 0, 0, 0, 0, 0, 0,
-				-250, 0, 0, 0, 0, -600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -501, -389, 0,
-				-419, 0, 0, 0, 0, -162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -163, 0, 0, 0, 0, 0, 0, 0, 0, 0, -192, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -251, 0, 0, 0, 0, -164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-207, 0, -564, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -350, 0, 0, 0, -165, 0, -572, 0, 0,
-				0, -435, 0, 0, 0, 0, 0, 0, -252, 0, 0, 0, 0, -166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -167, -168, -450, -169, -464, 0, 0, 0, 0, 0, 0, 0, -430, 0, 0, 0, -480, 0, -170, 0,
-				-425, -463, 0, 0, 0, 0, -171, 0, 0, 0, 0, 0, 0, 0, 0, 0, -253, 0, 0, 0, 0, -172, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -216, 0, -148, 0, 0, 0, 0, -173, 0, 0, 0, 0, 0, 0, 0, -174, 0,
-				0, 0, 0, 0, -470, -449, 0, 0, 0, 0, 0, -506, 0, 0, -418, 0, 0, 0, 0, 0, 0, -254, 0, 0, 0, 0, -175, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -274, 0, -150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -474, 0, 0, -478, 0, 0, -471, 0, 0, 0, 0, 0, -178, -537, 0, 0, -422, 0, 0, 0, 0, 0, 0, -255, 0, 0,
-				0, 0, -182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -281, 0, -393, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -476, -487, 0, 0, -483, 0, 0, 0, 0, -453, 0, -490, 0, -462, 0, -499, 0, -583, 0, 0,
-				0, 0, 0, 0, -256, 0, 0, 0, 0, -183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -433, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -532, -43, 0, -122, 0, 0, 0, -184, -536, 0, -185, 0, -283,
-				0, -479, -527, 0, -586, 0, 0, 0, 0, 0, -352, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -186, 0, 0, 0, 0, 0, 0, -187, 0, -188, 0, -288, -344, -535, 0, -554, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -556, 0, -504, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -589, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -558, -189, 0, 0, 0, 0, 0, 0, -515, 0, 0, 0, -289, -290,
-				-190, 0, -387, 0, 0, 0, 0, -587, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -567, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -524, 0, 0, -403, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -278, -191, 0, 0, -194, 0, 0, 0, 0, 0, 0, 0, -575, 0, 0, 0, -202, 0, 0, -533, -525,
-				-203, -206, -538, 0, -291, -338, 0, -557, -348, -414, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -217, 0, 0, -349, 0, 0, -438, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -227, 0, 0, 0, -228, 0, 0, 0, 0, 0, 0, -236,
-				0, 0, -267, -275, -277, -285, 0, 0, 0, -551, -552, -296, -297, -218, 0, 0, 0, -439, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -298, -299, 0, 0, 0, 0, 0, 0, -300, 0, 0, 0,
-				0, 0, -513, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -180, -301,
-				-351, 0, -302, 0, 0, 0, 0, -303, 0, 0, -304, 0, 0, -124, -305, -306, -307, -312, -230, -437, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -314, 0, -315, -584, -330, -331, 0, 0, -220, 0, 0, 0, 0, -73, 0, -342, 0, -346, 0, 0, 0,
-				0, -347, -133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -358, 0, -559, 0, -380, -420, 0, 0, -448, -106,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -482, 0,
-				-337, -359, -417, 0, -364, 0, 0, 0, -201, 0, 0, 0, -372, -373, -384, -404, 0, -406, 0, -426, 0, 0, 0, 0,
-				0, 0, -579, 0, -429, 0, 0, -528, 0, 0, -93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -592, -599, 0, 0, 0, -442, 0, 0, 0, -531, 0, -245, 0, 0, 0, 0, -534, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -455, 0, 0, 0, 0, -456, 0, -458, -459, -465, 0, -467, -473,
-				-481, -488, 0, -489, -512, 0, -514, 0, 0, 0, 0, -563, 0, -516, 0, -517, -243, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -518, -378, 0, 0, 0, -519, -231, -521, -539, -541,
-				-336, -542, -544, -549, 0, -553, -560, 0, -568, 0, -577, -370, 0, -565, 0, -585, 0, -244, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -590, 0, -601, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -569, 0, -573, -574, 0, -240, 0, 0, 0, 0, -593, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -89, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -90, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -241, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -242,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -193, 0, 0, 0, 0, 0, -135,
-				-598, 0, 0, 0, 0, 0, 0, -493, 0, 0, 0, 0, -495, 0, 0, 0, 0, 0, 0, 0, 0, 0, -232, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -523, 0, 0, 0, 0, 0, 0, 0, 0, 0, -529, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -238, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -295, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -335, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -127, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -530, 0, 0, 0, 0, 0, 0, 0, -292, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -200, 0, 0, 0, 0, -77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -468, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -401,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -491, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -208, 0, 0, -44, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -511, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -144, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -210, 0, 0, 0, 0, 0, -68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -588, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -382, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -441, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -386, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -204, 0, 0, 0, 0, 0, 0, 0, 0, 0, -74, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -498, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -543, 0, -548, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -545, 0, 0, 0, 0, 0, 0, 0, 0, -268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -271,
-				0, 0, 0, 0, 0, 0, 0, 0, -485, 0, 0, -105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-562, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -334, 0, 0, 0,
-				-223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -576, 0, 0, 0,
-				0, 0, 0, 0, -408, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -398, 0, 0, 0, 0, 0, -591,
-				0, 0, 0, 0, 0, -224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -578, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -219, 0, 0, 0, -225, 0, -226, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -580, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -79, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -494, 0, -582, 0, 0, 0, 0, 0, 0, 0,
-				0, -407, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -17, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -597, 0, -257, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -343, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -602, 0, 0, 0, 0, 0, 0, 0, 0,
-				-445, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -581, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -179, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -22, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -23, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -27, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -76, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -19, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -424, 0, 0, 0, -46, 0, 0, 0, 0, 0, 0, 0,
-				-452, 0, 0, 0, 0, 0, -566, 0, 0, 0, 0, 0, -500, 0, 0, 0, 0, 0, 0, 0, -466, 0, 0, 0, 0, 0, -561, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -125, 0, 0, 0, 0, 0, -396, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -546,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -427, 0, 0, 0, 0, 0, 0, 0, 0, 0, -432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -451, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -477, 0, 0, 0, 0, 0, 0, 0, -507, -469, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -486, -234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -263, 0, 0, 0, 0, 0, 0, -381, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -484, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -496, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -497, 0, 0, 0, 0, 0, 0, 0, -213, 0, 0, 0, 0, 0, -505, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -547, 0, 0, 0, 0, 0, -550, 0, 0, 0, -508, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-509, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -555, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0 };
-	}
-
-	public final static short baseCheck[] = BaseCheck.baseCheck;
-
-	@Override
-	public final int baseCheck(int index) {
-		return baseCheck[index];
-	}
-
-	public final static short rhs[] = baseCheck;
-
-	@Override
-	public final int rhs(int index) {
-		return rhs[index];
-	}
-
-	public interface BaseAction {
-		public final static char baseAction[] = { 191, 5, 154, 94, 94, 32, 32, 80, 80, 39, 39, 42, 42, 218, 1, 1, 16,
-				16, 16, 16, 16, 16, 16, 17, 17, 17, 15, 11, 11, 6, 6, 6, 6, 6, 6, 2, 75, 75, 4, 4, 12, 12, 44, 44, 155,
-				155, 156, 67, 67, 43, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 157,
-				157, 157, 131, 131, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 192, 192, 193, 193, 194,
-				160, 160, 161, 161, 158, 158, 162, 159, 159, 21, 21, 22, 22, 23, 23, 23, 24, 24, 24, 24, 25, 25, 25, 26,
-				26, 26, 30, 30, 30, 30, 30, 33, 33, 33, 34, 34, 35, 35, 37, 37, 38, 38, 40, 40, 41, 41, 45, 45, 45, 45,
-				45, 47, 47, 47, 52, 52, 54, 54, 61, 61, 62, 62, 63, 63, 64, 64, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
-				65, 65, 65, 29, 29, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 36, 28, 163, 163, 105, 105, 195,
-				195, 104, 219, 219, 82, 82, 82, 82, 82, 82, 82, 82, 82, 83, 83, 83, 78, 78, 66, 66, 196, 196, 84, 84,
-				84, 116, 116, 197, 197, 85, 85, 85, 85, 198, 198, 86, 86, 86, 86, 86, 87, 87, 95, 95, 95, 95, 95, 95,
-				95, 95, 55, 55, 55, 55, 55, 132, 132, 130, 130, 56, 199, 27, 27, 27, 27, 27, 50, 50, 69, 69, 69, 69, 69,
-				137, 137, 133, 133, 133, 133, 133, 134, 134, 134, 135, 135, 135, 136, 136, 136, 165, 165, 165, 70, 70,
-				70, 70, 70, 71, 71, 71, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 106, 138, 138, 138, 138, 138,
-				138, 111, 111, 111, 166, 167, 167, 112, 112, 200, 169, 169, 168, 168, 139, 139, 117, 92, 92, 140, 58,
-				49, 170, 170, 59, 57, 97, 97, 171, 171, 164, 164, 141, 142, 142, 143, 89, 89, 172, 172, 76, 76, 76, 73,
-				73, 72, 77, 77, 79, 79, 68, 68, 68, 53, 98, 98, 108, 107, 107, 51, 51, 74, 74, 81, 81, 60, 109, 109,
-				109, 99, 99, 99, 100, 100, 101, 101, 101, 102, 102, 118, 118, 118, 120, 120, 119, 119, 220, 220, 103,
-				103, 202, 202, 202, 202, 202, 145, 48, 48, 174, 201, 201, 146, 146, 147, 147, 147, 148, 176, 203, 203,
-				31, 31, 110, 114, 114, 114, 114, 205, 122, 121, 121, 113, 113, 113, 177, 178, 178, 178, 178, 178, 178,
-				178, 178, 178, 178, 178, 207, 207, 204, 204, 206, 206, 179, 180, 180, 180, 180, 181, 208, 124, 123, 123,
-				209, 209, 182, 182, 182, 182, 115, 115, 115, 210, 210, 8, 8, 9, 211, 211, 212, 183, 173, 173, 184, 184,
-				185, 186, 186, 7, 7, 10, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
-				213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
-				213, 213, 213, 213, 213, 90, 93, 93, 187, 187, 150, 150, 151, 151, 151, 151, 151, 151, 3, 152, 152, 149,
-				149, 188, 221, 222, 222, 223, 223, 224, 225, 225, 189, 190, 190, 190, 190, 214, 214, 214, 126, 126, 126,
-				126, 126, 127, 128, 128, 125, 125, 96, 91, 88, 88, 175, 175, 129, 129, 215, 215, 215, 153, 153, 144,
-				144, 216, 216, 191, 191, 1119, 35, 2044, 2037, 4502, 1355, 27, 30, 31, 1030, 1171, 26, 28, 2003, 294,
-				25, 23, 50, 1182, 104, 75, 76, 106, 1258, 1284, 1281, 1346, 332, 147, 175, 1331, 306, 924, 1587, 1436,
-				1657, 1213, 1634, 1704, 413, 1728, 174, 71, 35, 1822, 423, 189, 2555, 35, 310, 1941, 264, 2532, 319,
-				1638, 35, 1021, 32, 4949, 3844, 27, 30, 31, 1030, 1171, 373, 28, 1405, 1297, 267, 262, 263, 1510, 466,
-				1673, 35, 1822, 423, 2360, 35, 1021, 32, 672, 5442, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23,
-				50, 1182, 104, 75, 76, 106, 1258, 1284, 1281, 2816, 49, 307, 160, 2600, 1519, 274, 277, 280, 821, 1132,
-				56, 56, 1775, 958, 3766, 676, 1206, 1671, 2750, 3345, 2864, 350, 3441, 355, 387, 2861, 388, 2912, 908,
-				2263, 2395, 2857, 5962, 283, 2905, 2914, 2975, 159, 577, 187, 71, 3449, 1543, 35, 1021, 32, 4828, 1859,
-				27, 30, 31, 1030, 1171, 57, 28, 1537, 35, 312, 625, 4328, 3272, 759, 35, 3173, 2137, 2360, 35, 1021, 32,
-				672, 5442, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258, 1284,
-				1281, 2816, 49, 386, 160, 1818, 1037, 1238, 548, 574, 3257, 578, 71, 3180, 1775, 1334, 71, 1849, 1997,
-				34, 2750, 2046, 2864, 378, 650, 648, 383, 2861, 1938, 2912, 2600, 1797, 2734, 376, 416, 2988, 2905,
-				2914, 2975, 159, 577, 665, 2224, 2360, 35, 1021, 32, 672, 5442, 27, 30, 31, 1030, 1171, 26, 28, 986,
-				294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258, 1284, 1281, 2816, 69, 2088, 160, 1818, 3337, 2215, 35,
-				1021, 32, 4828, 2369, 27, 30, 31, 1030, 1171, 56, 28, 2750, 323, 2864, 1647, 2057, 56, 2277, 2861, 2080,
-				2912, 768, 533, 548, 574, 3257, 578, 2905, 2914, 2975, 159, 577, 61, 1912, 35, 1021, 32, 5073, 1257, 27,
-				30, 31, 1030, 1171, 26, 28, 3275, 3060, 546, 532, 2988, 271, 294, 69, 71, 35, 1822, 423, 2570, 35, 1021,
-				32, 672, 5442, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258, 1284,
-				1281, 2816, 49, 1520, 160, 1335, 264, 495, 548, 574, 3257, 578, 1851, 3449, 1775, 1170, 1556, 1537, 35,
-				312, 2750, 4564, 2864, 363, 272, 262, 263, 2861, 2445, 2912, 1088, 3337, 3080, 1400, 1085, 2988, 2905,
-				2914, 2975, 159, 577, 2708, 35, 1021, 32, 672, 69, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50,
-				1182, 104, 75, 76, 106, 1258, 1284, 1281, 1346, 2736, 439, 175, 1331, 60, 764, 1587, 1436, 1657, 2738,
-				1634, 1704, 1192, 1728, 174, 2918, 71, 35, 3163, 413, 1559, 35, 1021, 32, 71, 3608, 41, 30, 31, 1030,
-				1171, 1609, 549, 574, 3257, 578, 2428, 35, 1021, 32, 672, 1728, 27, 30, 31, 1030, 1171, 26, 28, 986,
-				294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258, 1284, 1281, 1346, 473, 147, 175, 1331, 1824, 4867, 1587,
-				1436, 1657, 2866, 1634, 1704, 478, 1728, 174, 2918, 2456, 35, 310, 413, 322, 3327, 35, 1021, 32, 672,
-				2634, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258, 1284, 1281,
-				1346, 1488, 1681, 3450, 1331, 2413, 2420, 1587, 2578, 420, 414, 2862, 2638, 35, 1021, 32, 672, 4549, 27,
-				30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258, 1284, 1281, 1346, 1104,
-				2765, 175, 1331, 1323, 1624, 1587, 1436, 1657, 2728, 1634, 1704, 3735, 1728, 174, 2918, 1537, 35, 565,
-				413, 5195, 583, 1994, 35, 1021, 32, 2634, 3325, 40, 30, 31, 1030, 1171, 421, 414, 2862, 2973, 35, 1021,
-				32, 672, 1192, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258, 1284,
-				1281, 1346, 425, 462, 175, 1331, 2010, 147, 1587, 1436, 1657, 4887, 1634, 1704, 1248, 1728, 174, 71, 35,
-				1997, 3159, 189, 3327, 35, 1021, 32, 672, 1239, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50,
-				1182, 104, 75, 76, 106, 1258, 1284, 1281, 1346, 56, 1449, 91, 1331, 1233, 836, 1587, 1436, 2577, 411,
-				414, 2862, 2973, 35, 1021, 32, 672, 1488, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182,
-				104, 75, 76, 106, 1258, 1284, 1281, 1346, 426, 462, 175, 1331, 56, 1037, 1587, 1436, 1657, 6195, 1634,
-				1704, 1338, 1728, 174, 71, 35, 2276, 2209, 407, 1660, 1728, 2973, 35, 1021, 32, 672, 55, 27, 30, 31,
-				1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258, 1284, 1281, 1346, 56, 625, 175,
-				1331, 1818, 3059, 1587, 1436, 1657, 2491, 1634, 1704, 1818, 1728, 174, 71, 35, 1997, 309, 407, 2973, 35,
-				1021, 32, 672, 1501, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258,
-				1284, 1281, 1346, 2276, 437, 175, 1331, 56, 1206, 1587, 1436, 1657, 706, 1634, 1704, 241, 1728, 174,
-				931, 35, 1997, 309, 407, 1365, 1662, 406, 2502, 35, 1021, 32, 672, 191, 27, 30, 31, 1030, 1171, 26, 28,
-				986, 294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258, 1284, 1281, 1346, 56, 494, 175, 1331, 583, 1206,
-				1587, 1436, 1657, 5795, 1634, 1704, 1818, 1728, 174, 71, 3339, 1997, 73, 173, 1488, 405, 2345, 2973, 35,
-				1021, 32, 672, 2641, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258,
-				1284, 1281, 1346, 2804, 1818, 175, 1331, 56, 1860, 1587, 1436, 1657, 965, 1634, 1704, 1950, 1728, 174,
-				71, 35, 315, 403, 190, 2973, 35, 1021, 32, 672, 3275, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23,
-				50, 1182, 104, 75, 76, 106, 1258, 1284, 1281, 1346, 1192, 1750, 175, 1331, 69, 1990, 1587, 1436, 1657,
-				51, 1634, 1704, 1818, 1728, 174, 931, 35, 1997, 3344, 186, 2973, 35, 1021, 32, 672, 65, 27, 30, 31,
-				1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258, 1284, 1281, 1346, 56, 360, 175,
-				1331, 56, 2099, 1587, 1436, 1657, 1110, 1634, 1704, 1818, 1728, 174, 71, 35, 1997, 311, 185, 2973, 35,
-				1021, 32, 672, 228, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258,
-				1284, 1281, 1346, 56, 61, 175, 1331, 56, 1196, 1587, 1436, 1657, 3614, 1634, 1704, 95, 1728, 174, 71,
-				35, 1997, 3451, 184, 2973, 35, 1021, 32, 672, 2929, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23,
-				50, 1182, 104, 75, 76, 106, 1258, 1284, 1281, 1346, 56, 1007, 175, 1331, 56, 2144, 1587, 1436, 1657,
-				823, 1634, 1704, 96, 1728, 174, 71, 35, 1997, 314, 183, 2973, 35, 1021, 32, 672, 1334, 27, 30, 31, 1030,
-				1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258, 1284, 1281, 1346, 147, 1348, 175,
-				1331, 5011, 2702, 1587, 1436, 1657, 2178, 1634, 1704, 1847, 1728, 174, 71, 35, 1997, 564, 182, 2973, 35,
-				1021, 32, 672, 233, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258,
-				1284, 1281, 1346, 2661, 441, 175, 1331, 56, 1908, 1587, 1436, 1657, 1815, 1634, 1704, 56, 1728, 174,
-				2277, 2277, 1862, 2634, 181, 2973, 35, 1021, 32, 672, 2795, 27, 30, 31, 1030, 1171, 26, 28, 986, 294,
-				25, 23, 50, 1182, 104, 75, 76, 106, 1258, 1284, 1281, 1346, 5772, 24, 175, 1331, 2249, 1361, 1587, 1436,
-				1657, 69, 1634, 1704, 56, 1728, 174, 2277, 2277, 3439, 2634, 180, 2973, 35, 1021, 32, 672, 1482, 27, 30,
-				31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258, 1284, 1281, 1346, 68, 53,
-				175, 1331, 56, 1413, 1587, 1436, 1657, 2672, 1634, 1704, 1915, 1728, 174, 1942, 6110, 2934, 2489, 179,
-				2973, 35, 1021, 32, 672, 1934, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76,
-				106, 1258, 1284, 1281, 1346, 428, 462, 175, 1331, 56, 2112, 1587, 1436, 1657, 2738, 1634, 1704, 56,
-				1728, 174, 2934, 2670, 5840, 2132, 178, 2973, 35, 1021, 32, 672, 456, 27, 30, 31, 1030, 1171, 26, 28,
-				986, 294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258, 1284, 1281, 1346, 427, 462, 175, 1331, 424, 1488,
-				1587, 1436, 1657, 1499, 1634, 1704, 2831, 1728, 174, 759, 35, 431, 1832, 177, 2973, 35, 1021, 32, 672,
-				2280, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258, 1284, 1281,
-				1346, 2597, 358, 175, 1331, 56, 3785, 1587, 1436, 1657, 6039, 1634, 1704, 3724, 1728, 174, 2693, 35,
-				313, 2524, 176, 2852, 35, 1021, 32, 672, 159, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50,
-				1182, 104, 75, 76, 106, 1258, 1284, 1281, 1346, 1734, 1508, 2540, 1331, 5314, 3884, 1587, 1436, 1657,
-				2627, 1634, 1704, 482, 3081, 195, 2973, 35, 1021, 32, 672, 2007, 27, 30, 31, 1030, 1171, 26, 28, 986,
-				294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258, 1284, 1281, 1346, 3550, 1718, 175, 1331, 1192, 2598,
-				1587, 1436, 1657, 2008, 1634, 1704, 3063, 1728, 174, 482, 843, 390, 584, 138, 1537, 35, 488, 2007, 5872,
-				361, 592, 366, 2084, 2341, 3094, 35, 1021, 32, 672, 1516, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25,
-				23, 50, 1182, 104, 75, 76, 106, 1258, 1284, 1281, 2816, 2471, 1613, 160, 1243, 35, 1021, 32, 4949, 4990,
-				27, 30, 31, 1030, 1171, 373, 28, 1903, 2341, 2750, 3847, 2864, 56, 1229, 35, 328, 2861, 1953, 2912, 362,
-				369, 1423, 159, 271, 294, 2905, 2914, 2975, 159, 171, 3094, 35, 1021, 32, 672, 1645, 27, 30, 31, 1030,
-				1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258, 1284, 1281, 2816, 1595, 1335, 160, 86,
-				264, 2489, 100, 2402, 369, 353, 2260, 355, 2489, 348, 1954, 1656, 2701, 464, 2750, 1350, 2864, 1653,
-				272, 262, 263, 2861, 347, 2912, 227, 2171, 35, 488, 3002, 5872, 2905, 2914, 2975, 159, 170, 3094, 35,
-				1021, 32, 672, 3503, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258,
-				1284, 1281, 2816, 1499, 147, 160, 399, 264, 6246, 2734, 1427, 2623, 3184, 2775, 4307, 341, 344, 2593,
-				481, 3545, 3547, 2750, 319, 2864, 1801, 276, 262, 263, 2861, 320, 2912, 2789, 359, 1485, 2007, 415, 377,
-				2905, 2914, 2975, 159, 169, 3094, 35, 1021, 32, 672, 417, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25,
-				23, 50, 1182, 104, 75, 76, 106, 1258, 1284, 1281, 2816, 884, 2277, 160, 1243, 35, 1021, 32, 4949, 4990,
-				27, 30, 31, 1030, 1171, 373, 28, 2341, 3184, 2750, 1655, 2864, 2762, 1809, 42, 3125, 2861, 56, 2912,
-				759, 35, 431, 1994, 2929, 52, 2905, 2914, 2975, 159, 168, 3094, 35, 1021, 32, 672, 319, 27, 30, 31,
-				1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258, 1284, 1281, 2816, 56, 1365, 160,
-				2627, 264, 1206, 368, 369, 2417, 353, 2260, 355, 389, 348, 1954, 485, 3545, 3547, 2750, 2420, 2864, 592,
-				279, 262, 263, 2861, 3364, 2912, 3514, 1815, 1192, 44, 3125, 3884, 2905, 2914, 2975, 159, 167, 3094, 35,
-				1021, 32, 672, 495, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258,
-				1284, 1281, 2816, 1750, 2277, 160, 1243, 35, 1021, 32, 4949, 4990, 27, 30, 31, 1030, 1171, 373, 28,
-				3063, 3552, 2750, 477, 2864, 491, 2731, 35, 563, 2861, 2874, 2912, 759, 35, 431, 367, 1488, 384, 2905,
-				2914, 2975, 159, 166, 3094, 35, 1021, 32, 672, 3001, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23,
-				50, 1182, 104, 75, 76, 106, 1258, 1284, 1281, 2816, 70, 2256, 160, 405, 1917, 2489, 572, 2626, 2581,
-				353, 2260, 355, 4473, 348, 1954, 1229, 3541, 328, 2750, 2322, 2864, 1752, 415, 56, 1488, 2861, 3613,
-				2912, 5852, 1929, 87, 1765, 410, 100, 2905, 2914, 2975, 159, 165, 3094, 35, 1021, 32, 672, 2185, 27, 30,
-				31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258, 1284, 1281, 2816, 2581,
-				2277, 160, 1729, 35, 1021, 32, 5073, 2353, 27, 30, 31, 1030, 1171, 59, 28, 2418, 3618, 2750, 330, 2864,
-				213, 147, 56, 410, 2861, 6263, 2912, 2310, 71, 35, 328, 2007, 88, 2905, 2914, 2975, 159, 164, 3094, 35,
-				1021, 32, 672, 2450, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258,
-				1284, 1281, 2816, 1427, 2277, 160, 1729, 35, 1021, 32, 5073, 408, 27, 30, 31, 1030, 1171, 58, 28, 56,
-				2341, 2750, 56, 2864, 2802, 147, 1485, 5864, 2861, 6301, 2912, 2496, 71, 35, 328, 2007, 1703, 2905,
-				2914, 2975, 159, 163, 3094, 35, 1021, 32, 672, 1867, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23,
-				50, 1182, 104, 75, 76, 106, 1258, 1284, 1281, 2816, 2798, 2277, 160, 1994, 35, 1021, 32, 2663, 369,
-				1759, 30, 31, 1030, 1171, 3082, 2489, 56, 2341, 2750, 147, 2864, 6109, 346, 6315, 2593, 2861, 56, 2912,
-				2178, 6101, 2007, 1062, 2818, 1707, 2905, 2914, 2975, 159, 162, 3094, 35, 1021, 32, 672, 571, 27, 30,
-				31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258, 1284, 1281, 2816, 2725, 333,
-				160, 1994, 35, 1021, 32, 364, 369, 2800, 30, 31, 1030, 1171, 3362, 2341, 56, 56, 2750, 1833, 2864, 2930,
-				4307, 2268, 1488, 2861, 581, 2912, 1508, 329, 2178, 1488, 3884, 1488, 2905, 2914, 2975, 159, 161, 3154,
-				35, 1021, 32, 672, 377, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106,
-				1258, 1284, 1281, 2816, 2974, 753, 160, 253, 264, 2854, 369, 2581, 491, 2581, 2006, 717, 2277, 1904, 56,
-				3063, 2669, 3884, 2750, 3087, 2864, 1340, 282, 262, 263, 2861, 1499, 2912, 2178, 584, 2917, 2920, 1896,
-				586, 2905, 2914, 2975, 159, 158, 3214, 35, 1021, 32, 672, 67, 27, 30, 31, 1030, 1171, 26, 28, 986, 294,
-				25, 23, 50, 1182, 104, 75, 76, 106, 1258, 1284, 1281, 1346, 3063, 337, 175, 1331, 56, 1657, 1587, 1436,
-				1657, 994, 1634, 1704, 2178, 1728, 174, 2917, 2277, 2277, 1019, 220, 3327, 35, 1021, 32, 672, 1488, 27,
-				30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258, 1284, 1281, 1346, 56,
-				66, 65, 1331, 210, 5133, 1587, 1436, 1657, 92, 1634, 1704, 2178, 3081, 195, 3327, 35, 1021, 32, 672,
-				2581, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258, 1284, 1281,
-				1346, 2594, 2533, 585, 1331, 1248, 4307, 1587, 1436, 1657, 230, 1634, 1704, 2927, 3081, 195, 357, 2914,
-				4624, 94, 2489, 2178, 2534, 744, 2178, 592, 2277, 2277, 4172, 2489, 2277, 3327, 35, 1021, 32, 672, 1621,
-				27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258, 1284, 1281, 1346,
-				64, 1895, 229, 1331, 55, 336, 1587, 1436, 1657, 835, 1634, 1704, 2277, 3081, 195, 3327, 35, 1021, 32,
-				672, 458, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258, 1284,
-				1281, 1346, 338, 2492, 54, 1331, 394, 2564, 1587, 1436, 1657, 417, 1634, 1704, 3062, 3081, 195, 1486,
-				2290, 2018, 1011, 3085, 3174, 3175, 2178, 2178, 589, 743, 71, 35, 1822, 423, 3327, 35, 1021, 32, 672,
-				327, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258, 1284, 1281,
-				1346, 49, 915, 925, 1331, 233, 231, 1587, 1436, 1657, 2045, 1634, 1704, 46, 3081, 195, 3486, 35, 1021,
-				32, 672, 457, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258, 1284,
-				1281, 1346, 2023, 2542, 2010, 1331, 577, 3345, 1587, 1436, 1657, 2486, 1634, 1704, 2179, 3081, 195,
-				1922, 2494, 2389, 757, 2528, 2011, 1492, 35, 3454, 32, 4949, 4990, 27, 30, 31, 1030, 1171, 373, 28, 141,
-				460, 2905, 35, 1021, 32, 672, 598, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75,
-				76, 106, 1258, 1284, 1281, 2816, 377, 187, 2878, 264, 2945, 2490, 2595, 2601, 264, 1813, 2003, 35, 1822,
-				423, 3605, 2276, 386, 2706, 3170, 3003, 1206, 285, 262, 263, 1663, 1508, 276, 262, 263, 3884, 353, 2260,
-				355, 717, 348, 1954, 378, 650, 648, 383, 2628, 306, 2178, 191, 2277, 2277, 576, 1755, 2277, 3327, 35,
-				1021, 32, 672, 1812, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258,
-				1284, 1281, 1346, 356, 99, 3063, 1331, 2722, 332, 1587, 1436, 1657, 651, 1634, 2603, 3433, 35, 1021, 32,
-				672, 366, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258, 1284,
-				1281, 2816, 2277, 3176, 2566, 3004, 2594, 2377, 2664, 4307, 4706, 4307, 71, 35, 1822, 423, 2633, 2960,
-				2778, 2995, 2750, 2959, 2864, 1216, 453, 454, 3452, 2861, 71, 2912, 2178, 4172, 2793, 4172, 2932, 2277,
-				2905, 3274, 3327, 35, 1021, 32, 672, 306, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182,
-				104, 75, 76, 106, 1258, 1284, 1281, 1346, 2178, 2178, 486, 1331, 5017, 2961, 1587, 1436, 1657, 2416,
-				2580, 3380, 35, 1021, 32, 672, 2277, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104,
-				75, 76, 106, 1258, 1284, 1281, 2816, 1218, 254, 224, 590, 395, 3064, 394, 1292, 3006, 3059, 412, 2881,
-				2962, 3117, 3124, 308, 3176, 3092, 2750, 3183, 2864, 3368, 3174, 3175, 2277, 2861, 87, 2912, 3086, 3380,
-				35, 1021, 32, 672, 3269, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106,
-				1258, 1284, 1281, 2816, 4982, 3118, 71, 35, 1822, 423, 3119, 2092, 3120, 1362, 3147, 1508, 173, 3212,
-				2998, 3884, 3177, 1637, 2750, 3178, 2864, 3236, 1851, 3449, 2277, 2861, 3237, 3261, 3380, 35, 1021, 32,
-				672, 306, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258, 1284,
-				1281, 2816, 2966, 5044, 2958, 264, 6892, 6892, 6892, 6892, 6892, 3063, 6892, 6892, 6892, 6892, 6892,
-				6892, 6892, 6892, 2750, 6892, 2864, 279, 262, 263, 366, 3266, 3327, 35, 1021, 32, 672, 6892, 27, 30, 31,
-				1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258, 1284, 1281, 1346, 374, 4664,
-				2277, 1331, 2277, 2277, 2486, 3380, 35, 1021, 32, 672, 2277, 27, 30, 31, 1030, 1171, 26, 28, 986, 294,
-				25, 23, 50, 1182, 104, 75, 76, 106, 1258, 1284, 1281, 2816, 5175, 6892, 2871, 2995, 6892, 6892, 6892,
-				6892, 6892, 6892, 3499, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 2750, 322, 3217, 3327, 35, 1021, 32,
-				672, 6892, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258, 1284,
-				1281, 1346, 2408, 3450, 6892, 2534, 3327, 35, 1021, 32, 672, 6892, 27, 30, 31, 1030, 1171, 26, 28, 986,
-				294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258, 1284, 1281, 1346, 6892, 6892, 6892, 2552, 3380, 35, 1021,
-				32, 672, 6892, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258, 1284,
-				1281, 2816, 1258, 35, 1021, 32, 5184, 4990, 27, 30, 31, 1030, 1171, 373, 28, 3380, 35, 1021, 32, 672,
-				3224, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258, 1284, 1281,
-				2816, 71, 35, 1822, 423, 6892, 6892, 2776, 2277, 6892, 6892, 6892, 4484, 6892, 3063, 71, 35, 1822, 423,
-				3258, 71, 35, 1822, 423, 6892, 6892, 6892, 6892, 6892, 366, 2181, 6892, 49, 353, 2260, 355, 6892, 348,
-				1954, 385, 5305, 2783, 6892, 6892, 1775, 863, 487, 6892, 6892, 6892, 347, 469, 6892, 6892, 3327, 35,
-				1021, 32, 672, 4422, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258,
-				1284, 1281, 2272, 264, 6892, 6892, 6892, 2180, 386, 6892, 6892, 6892, 1206, 6892, 264, 6892, 6892, 71,
-				35, 1822, 423, 282, 262, 263, 340, 344, 2593, 6892, 378, 650, 648, 383, 568, 262, 263, 187, 6892, 6892,
-				2509, 6892, 6892, 6892, 6892, 3181, 6892, 6892, 232, 2868, 468, 3327, 35, 1021, 32, 672, 3549, 27, 30,
-				31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258, 1284, 1281, 2313, 3327, 35,
-				1021, 32, 672, 6892, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258,
-				1284, 1281, 2342, 3327, 35, 1021, 32, 672, 6892, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50,
-				1182, 104, 75, 76, 106, 1258, 1284, 1281, 2354, 3327, 35, 1021, 32, 672, 6892, 27, 30, 31, 1030, 1171,
-				26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258, 1284, 1281, 3182, 3327, 35, 1021, 32, 672,
-				6892, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258, 1284, 1281,
-				3183, 3327, 35, 1021, 32, 672, 6892, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104,
-				75, 76, 106, 1258, 1284, 1281, 3216, 1339, 35, 1021, 32, 4949, 3603, 27, 30, 31, 1030, 1171, 373, 28,
-				3327, 35, 1021, 32, 672, 6892, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76,
-				106, 1258, 1284, 1281, 3259, 6892, 6892, 6892, 3759, 35, 1021, 32, 4949, 6202, 27, 30, 31, 1030, 1171,
-				373, 28, 6892, 1220, 35, 3454, 32, 5184, 4990, 27, 30, 31, 1030, 1171, 373, 28, 6892, 6892, 353, 2260,
-				355, 385, 348, 1954, 6892, 386, 243, 35, 1822, 423, 6892, 6892, 6892, 6892, 6892, 3327, 71, 35, 1822,
-				423, 6892, 6892, 6892, 6892, 2276, 378, 650, 648, 383, 1206, 6892, 6892, 6892, 6892, 6892, 3326, 3063,
-				49, 6892, 6892, 6892, 353, 2260, 355, 6892, 348, 1954, 467, 386, 1775, 3075, 366, 191, 6892, 6892, 353,
-				2260, 355, 3364, 348, 1954, 3539, 35, 1822, 423, 4252, 6892, 6892, 378, 650, 648, 383, 1755, 3445, 269,
-				294, 6892, 6892, 2509, 6892, 6892, 4422, 71, 35, 1822, 423, 6892, 3327, 35, 1021, 32, 672, 306, 27, 30,
-				31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258, 2130, 264, 49, 6892, 1734,
-				6892, 6892, 6892, 5314, 6892, 6892, 6892, 6892, 6892, 1775, 1100, 6892, 400, 3088, 267, 262, 263, 3327,
-				35, 1021, 32, 672, 6892, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106,
-				1258, 1284, 2450, 6892, 6892, 6892, 452, 454, 3452, 2276, 6892, 307, 6892, 6892, 1206, 274, 277, 280,
-				821, 1132, 1385, 35, 1021, 32, 5184, 6892, 27, 30, 31, 1030, 1171, 373, 28, 1377, 6892, 6892, 6892, 191,
-				908, 2263, 2395, 2857, 5962, 283, 3327, 35, 1021, 32, 672, 6892, 27, 30, 31, 1030, 1171, 26, 28, 986,
-				294, 25, 23, 50, 1182, 104, 75, 76, 106, 1258, 1284, 2461, 3272, 259, 6892, 3063, 1903, 6892, 598, 6892,
-				6892, 6892, 6892, 6892, 2260, 6892, 6892, 56, 3884, 4307, 367, 6892, 4307, 6892, 353, 2260, 355, 6892,
-				351, 1954, 260, 187, 2027, 35, 1822, 423, 6892, 6892, 2292, 2982, 6892, 4172, 211, 1206, 377, 2581,
-				3128, 6892, 6892, 6892, 6892, 235, 247, 652, 6892, 6892, 6892, 6892, 234, 244, 245, 246, 248, 49, 6892,
-				1, 187, 3063, 6892, 200, 598, 6892, 6892, 465, 596, 1775, 1136, 717, 6892, 2095, 6892, 199, 366, 6892,
-				4307, 214, 198, 201, 202, 203, 204, 205, 260, 187, 71, 35, 1822, 423, 1916, 3445, 56, 2982, 6892, 6892,
-				211, 1206, 377, 2581, 6892, 6892, 6892, 6892, 4706, 235, 247, 652, 6892, 394, 6892, 6892, 234, 244, 245,
-				246, 248, 49, 6892, 6892, 187, 6892, 6892, 200, 2707, 3174, 3175, 6892, 1813, 1775, 645, 1088, 6892,
-				6892, 6892, 199, 6892, 212, 6892, 215, 198, 201, 202, 203, 204, 205, 1416, 35, 1021, 32, 4949, 3603, 27,
-				30, 31, 1030, 1171, 373, 28, 3327, 35, 1021, 32, 672, 6892, 27, 30, 31, 1030, 1171, 26, 28, 986, 294,
-				25, 23, 50, 1182, 104, 75, 76, 106, 1258, 2149, 6892, 6892, 1770, 35, 1021, 32, 5184, 4535, 27, 30, 31,
-				1030, 1171, 373, 28, 1385, 35, 1021, 32, 5184, 6892, 27, 30, 31, 1030, 1171, 373, 28, 2276, 6892, 6892,
-				6892, 6892, 1206, 353, 2260, 355, 603, 348, 1954, 6892, 386, 6892, 6892, 2126, 6892, 6892, 6892, 3884,
-				6892, 6892, 587, 6892, 6892, 56, 3063, 191, 6892, 6892, 1206, 6892, 378, 650, 648, 383, 6892, 6892,
-				6892, 3063, 6892, 367, 588, 345, 6892, 353, 2260, 355, 598, 349, 1954, 1419, 386, 187, 367, 6892, 6892,
-				6892, 353, 2260, 355, 1477, 349, 1954, 6892, 6892, 6892, 6892, 3063, 6892, 260, 187, 380, 650, 648, 383,
-				2775, 6892, 6892, 2982, 6892, 4307, 211, 367, 6892, 2581, 6892, 6892, 6892, 6892, 6892, 235, 247, 652,
-				386, 6892, 6892, 6892, 234, 244, 245, 246, 248, 377, 3365, 431, 6892, 2180, 591, 200, 598, 6892, 598,
-				6892, 380, 650, 648, 383, 6892, 6892, 6892, 199, 6892, 6892, 6892, 3606, 198, 201, 202, 203, 204, 205,
-				260, 187, 3017, 187, 717, 329, 35, 1822, 423, 2982, 6892, 2982, 211, 6892, 211, 2581, 6892, 6892, 6892,
-				6892, 6892, 235, 247, 652, 6892, 594, 6892, 6892, 234, 244, 245, 246, 248, 6892, 6892, 517, 49, 6892,
-				6892, 200, 598, 6892, 6892, 6892, 329, 35, 1822, 423, 1775, 2050, 6892, 199, 6892, 227, 6892, 209, 198,
-				201, 202, 203, 204, 205, 260, 187, 243, 35, 1822, 423, 6892, 6892, 6892, 2982, 3330, 2822, 211, 49, 56,
-				2581, 4307, 6892, 6892, 1206, 6892, 235, 247, 652, 6892, 1775, 47, 6892, 234, 244, 245, 246, 248, 49,
-				6892, 603, 6892, 6892, 4172, 200, 598, 6892, 187, 6892, 6892, 1775, 47, 6892, 6892, 2047, 2595, 199,
-				6892, 6892, 6892, 207, 198, 201, 202, 203, 204, 205, 260, 187, 243, 35, 1822, 423, 56, 1530, 6892, 2982,
-				6892, 1206, 211, 6892, 6892, 2581, 6892, 6892, 6892, 6892, 6892, 235, 247, 652, 6892, 6892, 6892, 6892,
-				234, 244, 245, 246, 248, 49, 187, 689, 3507, 6892, 6892, 200, 598, 6892, 2916, 1508, 6892, 1775, 2397,
-				3884, 6892, 5858, 228, 199, 540, 6892, 6892, 208, 198, 201, 202, 203, 204, 205, 260, 187, 329, 35, 1822,
-				423, 6892, 3594, 3508, 2982, 6892, 6892, 211, 1206, 56, 2581, 6892, 6892, 6892, 1206, 6892, 235, 247,
-				652, 6892, 6892, 6892, 6892, 234, 244, 245, 246, 248, 49, 3063, 775, 187, 538, 539, 200, 598, 6892, 187,
-				6892, 193, 1775, 47, 6892, 6892, 366, 2986, 199, 6892, 6892, 6892, 218, 198, 201, 202, 203, 204, 205,
-				260, 187, 71, 35, 1822, 423, 56, 2841, 56, 2982, 6892, 1206, 211, 1206, 6892, 2581, 6892, 4677, 6892,
-				6892, 56, 235, 247, 652, 6892, 4307, 6892, 6892, 234, 244, 245, 246, 248, 49, 187, 6892, 187, 6892,
-				6892, 200, 6892, 6892, 2987, 6892, 3084, 1775, 958, 377, 6892, 6892, 6892, 199, 6892, 6892, 6892, 3647,
-				198, 201, 202, 203, 204, 205, 2382, 35, 1021, 32, 4949, 4990, 27, 30, 31, 1030, 1171, 373, 28, 3327, 35,
-				1021, 32, 672, 717, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106, 2208,
-				6892, 6892, 1943, 2276, 6892, 861, 6892, 6892, 1206, 6892, 598, 6892, 6892, 6892, 243, 35, 1822, 423,
-				6892, 6892, 6892, 6892, 6892, 6892, 6892, 71, 35, 1822, 423, 6892, 6892, 191, 260, 187, 6892, 353, 2260,
-				355, 56, 348, 1954, 2982, 3891, 598, 211, 49, 6892, 2581, 6892, 6892, 6892, 6892, 347, 235, 247, 652,
-				49, 1775, 1487, 6892, 234, 244, 245, 246, 248, 377, 187, 6892, 1775, 2530, 6892, 200, 6892, 947, 1813,
-				56, 6892, 6892, 598, 6892, 1206, 3594, 6892, 199, 6892, 6892, 6892, 223, 198, 201, 202, 203, 204, 205,
-				71, 35, 1822, 423, 717, 6892, 260, 187, 6892, 187, 340, 344, 2593, 6892, 3468, 2982, 6892, 3273, 211,
-				56, 6892, 2581, 6892, 6892, 1206, 1812, 6892, 235, 247, 652, 6892, 49, 6892, 3498, 234, 244, 245, 246,
-				248, 6892, 3549, 1033, 6892, 1775, 2245, 200, 598, 187, 6892, 6892, 243, 35, 1822, 423, 6892, 1574,
-				6892, 199, 6892, 6892, 6892, 217, 198, 201, 202, 203, 204, 205, 260, 187, 6892, 6892, 6892, 56, 6892,
-				6892, 6892, 2982, 1206, 6892, 211, 49, 6892, 2581, 6892, 6892, 6892, 6892, 6892, 235, 247, 652, 6892,
-				1775, 47, 6892, 234, 244, 245, 246, 248, 187, 6892, 6892, 6892, 6892, 6892, 200, 6892, 3712, 6892, 6892,
-				6892, 6892, 6892, 6892, 6892, 640, 6892, 199, 6892, 6892, 6892, 226, 198, 201, 202, 203, 204, 205, 3327,
-				35, 1021, 32, 672, 6892, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 106,
-				2222, 3327, 35, 1021, 32, 672, 6892, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104,
-				75, 76, 106, 2265, 3638, 35, 552, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 269, 294,
-				3327, 35, 1021, 32, 672, 6892, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76,
-				84, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 3327, 1849, 1021, 1869, 672, 264, 27, 30, 31, 1030,
-				1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 83, 267, 262, 263, 3327, 35, 1021, 32, 672, 6892,
-				27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 82, 6892, 6892, 6892, 6892,
-				6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 274, 277, 280, 821, 1132, 6892, 6892,
-				6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 2197,
-				3277, 3599, 3913, 6162, 3327, 35, 1021, 32, 672, 6892, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23,
-				50, 1182, 104, 75, 76, 81, 3327, 35, 1021, 32, 672, 6892, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25,
-				23, 50, 1182, 104, 75, 76, 80, 6892, 6892, 6892, 6892, 561, 562, 566, 3327, 35, 1021, 32, 672, 6892, 27,
-				30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 79, 3924, 3327, 35, 1021, 32, 672,
-				6892, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 78, 3327, 35, 1021, 32,
-				672, 6892, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 77, 3033, 35, 1021,
-				32, 672, 6892, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 102, 3327, 35,
-				1021, 32, 672, 6892, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 108, 3327,
-				35, 1021, 32, 672, 6892, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76, 107,
-				3327, 35, 1021, 32, 672, 6892, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75, 76,
-				105, 3327, 35, 1021, 32, 672, 6892, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 104, 75,
-				76, 103, 3274, 35, 1021, 32, 672, 6892, 27, 30, 31, 1030, 1171, 26, 28, 986, 294, 25, 23, 50, 1182, 85,
-				75, 76, 1603, 6892, 6892, 6892, 56, 4307, 6892, 6892, 6892, 4307, 6892, 6892, 1870, 6892, 6892, 6892,
-				6892, 4307, 2182, 6892, 6892, 6892, 6892, 598, 1959, 6892, 6892, 260, 6892, 4307, 6892, 377, 243, 35,
-				1822, 423, 6892, 6892, 2700, 260, 6892, 6892, 6892, 4307, 6892, 377, 187, 6892, 237, 247, 652, 260,
-				6892, 6892, 219, 236, 244, 245, 246, 248, 237, 247, 652, 49, 717, 377, 6892, 236, 244, 245, 246, 248,
-				237, 247, 652, 1775, 47, 6892, 2511, 236, 244, 245, 246, 248, 6892, 1956, 6892, 6892, 6892, 6892, 238,
-				240, 242, 3324, 6892, 249, 239, 241, 3071, 3898, 6892, 6892, 238, 240, 242, 3324, 6892, 249, 239, 241,
-				6892, 6892, 6892, 6892, 238, 240, 242, 3324, 6892, 249, 239, 241, 3589, 35, 1822, 423, 4252, 6892, 2048,
-				6892, 2579, 6892, 6089, 4307, 221, 270, 294, 6892, 6892, 6892, 6892, 6892, 2787, 56, 6089, 6892, 6892,
-				6892, 598, 6892, 6892, 6892, 6892, 306, 3078, 260, 6089, 2315, 35, 1021, 32, 4949, 4229, 27, 30, 31,
-				1030, 1171, 373, 28, 377, 187, 6892, 264, 6892, 6892, 237, 247, 652, 219, 6892, 6892, 6892, 236, 244,
-				245, 246, 248, 6892, 1692, 6892, 268, 262, 263, 4307, 6892, 438, 6892, 6892, 2822, 6892, 6892, 6892,
-				2511, 4307, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 3463, 260, 6892, 238, 240, 242,
-				3324, 6892, 580, 239, 241, 4172, 6892, 307, 350, 3441, 355, 275, 278, 281, 821, 1132, 237, 247, 652,
-				6892, 6892, 6892, 6892, 236, 244, 245, 246, 248, 1781, 6892, 6892, 6892, 3705, 4307, 6892, 6892, 6892,
-				6892, 3560, 284, 2137, 6892, 6892, 6892, 6892, 4307, 6892, 6892, 2882, 243, 35, 1822, 423, 4307, 6892,
-				260, 6892, 6892, 238, 240, 242, 3324, 6892, 579, 239, 241, 6892, 260, 6892, 6892, 6892, 6892, 6892,
-				6892, 6892, 4172, 237, 247, 652, 6892, 49, 540, 6892, 236, 244, 245, 246, 248, 237, 247, 652, 6892,
-				1775, 47, 6892, 236, 244, 245, 246, 248, 2226, 3687, 35, 552, 6892, 4307, 6892, 6892, 1797, 6892, 6892,
-				6892, 6892, 6892, 270, 294, 3903, 6892, 238, 240, 242, 3324, 6892, 250, 239, 241, 6892, 260, 537, 539,
-				238, 240, 242, 3324, 1179, 339, 239, 241, 5264, 4307, 6892, 2260, 6892, 6892, 6892, 3884, 4307, 6892,
-				237, 247, 652, 540, 264, 6892, 6892, 236, 244, 245, 246, 248, 6892, 260, 6892, 6892, 6892, 3543, 6892,
-				6892, 4172, 6892, 268, 262, 263, 1296, 6892, 6892, 6892, 5264, 4307, 6892, 6892, 6892, 983, 442, 5997,
-				2271, 35, 1822, 423, 6892, 238, 240, 242, 3324, 3063, 534, 239, 241, 537, 539, 260, 6892, 243, 35, 1822,
-				423, 6892, 6892, 6892, 366, 6892, 275, 278, 281, 821, 1132, 49, 6892, 6892, 6892, 6892, 983, 442, 5997,
-				443, 444, 445, 3324, 1775, 47, 6892, 6892, 6892, 49, 6892, 3601, 6892, 6892, 6892, 4664, 243, 35, 1822,
-				423, 394, 1775, 47, 6892, 56, 3276, 6892, 6892, 2669, 4307, 2459, 35, 1822, 423, 6892, 2707, 3174, 3175,
-				6892, 443, 444, 445, 3324, 56, 6892, 3978, 6892, 49, 598, 56, 6892, 377, 6892, 56, 598, 6892, 6892,
-				6892, 4307, 1775, 47, 49, 6892, 56, 3276, 561, 562, 567, 4307, 6892, 377, 187, 6892, 1775, 47, 6892,
-				377, 187, 6892, 219, 377, 56, 6892, 4262, 717, 219, 4307, 446, 448, 6892, 377, 6892, 6892, 6892, 6892,
-				6892, 6892, 2735, 6892, 6892, 6892, 6892, 6892, 2511, 6892, 2773, 6892, 6892, 377, 2511, 6892, 6892,
-				6892, 717, 1909, 6892, 6892, 6234, 6892, 6892, 6892, 6892, 6892, 717, 6892, 6892, 446, 449, 6892, 6892,
-				6892, 6892, 6892, 6892, 544, 6892, 6892, 6892, 6892, 6892, 6892, 717, 6892, 6892, 542, 6892, 6892, 6892,
-				6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 3616, 6892, 6892, 595, 6892, 6892,
-				3702, 6892, 0, 39, 6907, 0, 39, 6906, 0, 713, 29, 0, 475, 886, 0, 489, 1280, 0, 38, 809, 0, 38, 6907, 0,
-				38, 6906, 0, 4037, 124, 0, 1, 479, 0, 493, 866, 0, 492, 1372, 0, 1465, 89, 0, 713, 422, 0, 35, 33, 0,
-				32, 34, 0, 39, 809, 0, 1, 626, 0, 1, 7197, 0, 1, 7196, 0, 1, 7195, 0, 1, 7194, 0, 1, 7193, 0, 1, 7192,
-				0, 1, 7191, 0, 1, 7190, 0, 1, 7189, 0, 1, 7188, 0, 1, 7187, 0, 39, 1, 6907, 0, 39, 1, 6906, 0, 316, 429,
-				0, 316, 321, 0, 7158, 273, 0, 7157, 273, 0, 7264, 273, 0, 7263, 273, 0, 7185, 273, 0, 7184, 273, 0,
-				7183, 273, 0, 7182, 273, 0, 7181, 273, 0, 7180, 273, 0, 7179, 273, 0, 7178, 273, 0, 7197, 273, 0, 7196,
-				273, 0, 7195, 273, 0, 7194, 273, 0, 7193, 273, 0, 7192, 273, 0, 7191, 273, 0, 7190, 273, 0, 7189, 273,
-				0, 7188, 273, 0, 7187, 273, 0, 39, 6907, 273, 0, 39, 6906, 273, 0, 6930, 273, 0, 6907, 48, 0, 6906, 48,
-				0, 6898, 1, 0, 6897, 1, 0, 1415, 269, 0, 32, 423, 0, 29, 422, 0, 43, 6928, 0, 43, 37, 0, 4037, 126, 0,
-				4037, 125, 0, 1, 5818, 0, 1, 5457, 0, 1, 5514, 0, 1, 5580, 0, 1, 5603, 0, 1, 5633, 0, 1, 5657, 0, 1,
-				5680, 0, 1041, 1, 0, 1, 2316, 0, 1, 5488, 0, 1, 6914, 0, 1, 6913, 0, 1, 6912, 0, 1, 6911, 0, 1, 6910, 0,
-				1, 6909, 0, 1, 6908, 0, 1, 637, 0, 1, 670, 0, 1, 814, 0, 1, 835, 0, 1, 873, 0, 1, 3293, 0, 39, 1, 0,
-				365, 480, 0, 6930, 1, 0, 47, 37, 0, 1, 90, 0, 6907, 273, 0, 6906, 273, 0, 536, 3322, 0, 6930, 1, 261, 0,
-				39, 1, 261, 0, 261, 451, 0, 6907, 37, 0, 6906, 37, 0, 6907, 2, 37, 0, 6906, 2, 37, 0, 6907, 36, 0, 6906,
-				36, 0, 6928, 45, 0, 37, 45, 0, 6902, 440, 0, 6901, 440, 0, 1, 2379, 0, 1, 809, 0, 261, 450, 0, 1856,
-				352, 0, 365, 93, 0, 35, 72, 0, 1, 365, 0, 4270, 311, 0, 536, 6029, 0, 1, 261, 0, 261, 252, 0, 1, 2000,
-				0, 1, 2404, 0, 261, 251, 0, 6904, 1, 0, 6900, 1, 0, 1, 261, 3555, 0, 6901, 261, 0, 3562, 261, 0, 6904,
-				418, 0, 6903, 418, 0, 3604, 261, 0, 10, 12, 0, 8, 10, 12, 0, 3611, 225, 0, 216, 5243, 0, 3649, 418, 0,
-				8, 12, 0 };
-	}
-
-	public final static char baseAction[] = BaseAction.baseAction;
-
-	@Override
-	public final int baseAction(int index) {
-		return baseAction[index];
-	}
-
-	public final static char lhs[] = baseAction;
-
-	@Override
-	public final int lhs(int index) {
-		return lhs[index];
-	}
-
-	public interface TermCheck {
-		public final static byte termCheck[] = { 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
-				19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
-				45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 0, 56, 57, 58, 59, 0, 61, 62, 63, 0, 65, 66, 67, 0, 69, 0, 1, 2,
-				73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
-				15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
-				41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 86, 87, 56, 57, 58, 59, 0, 61, 62, 63, 4, 65, 66,
-				67, 94, 69, 92, 93, 0, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
-				10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
-				36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 0, 56, 57, 58, 59, 0, 61, 62,
-				63, 4, 65, 66, 67, 0, 69, 0, 1, 2, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5,
-				6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
-				33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 86, 87, 56, 57, 58,
-				59, 0, 61, 62, 63, 95, 65, 66, 67, 0, 69, 0, 1, 2, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0,
-				1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
-				29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0,
-				68, 56, 57, 58, 59, 0, 61, 62, 63, 0, 65, 66, 67, 0, 69, 0, 3, 0, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82,
-				83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
-				25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
-				51, 52, 53, 86, 87, 56, 57, 58, 59, 0, 61, 62, 63, 0, 65, 66, 67, 94, 69, 86, 87, 86, 87, 74, 75, 76,
-				77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
-				19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
-				45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 0, 56, 57, 58, 59, 0, 61, 62, 63, 0, 65, 66, 67, 94, 69, 92, 93,
-				0, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
-				15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
-				41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 86, 87, 56, 57, 58, 59, 0, 61, 62, 63, 95, 65, 66,
-				67, 94, 69, 92, 93, 86, 87, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8,
-				9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
-				35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 0, 56, 57, 58, 59, 0, 61,
-				62, 63, 0, 65, 66, 67, 0, 69, 0, 1, 2, 5, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4,
-				5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
-				32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 86, 87, 56, 57,
-				58, 59, 0, 61, 62, 63, 4, 65, 66, 67, 0, 69, 101, 102, 4, 95, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
-				84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
-				26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
-				52, 53, 0, 0, 56, 57, 58, 59, 0, 61, 62, 63, 0, 65, 66, 67, 0, 69, 0, 1, 2, 0, 74, 75, 76, 77, 78, 79,
-				80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
-				22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
-				48, 49, 50, 51, 52, 53, 86, 87, 56, 57, 58, 59, 0, 61, 62, 63, 0, 65, 66, 67, 4, 69, 92, 93, 0, 0, 74,
-				75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
-				17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
-				43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 68, 0, 56, 57, 58, 59, 0, 61, 62, 63, 9, 65, 66, 67, 0, 69,
-				96, 0, 1, 2, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 40, 10, 11, 12,
-				13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
-				39, 55, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 0, 56, 57, 58, 59, 0, 1, 2, 3, 4, 5, 6,
-				7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
-				0, 1, 2, 0, 4, 0, 40, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 1, 2, 53, 0, 55, 56, 57, 58, 5, 0, 61, 62, 63, 0, 1,
-				2, 3, 4, 0, 6, 71, 8, 73, 5, 38, 7, 38, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 88, 11, 12, 13, 14, 15, 16, 17,
-				18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 71, 0, 114, 115, 116, 0, 1, 2, 3, 4, 5,
-				6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
-				33, 91, 0, 99, 100, 0, 0, 40, 98, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 53, 0, 55, 56, 57, 58, 0, 64, 61, 62,
-				63, 68, 0, 0, 0, 3, 0, 5, 71, 7, 73, 9, 6, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 88, 0, 1, 2,
-				3, 4, 55, 6, 54, 8, 0, 34, 35, 36, 37, 60, 0, 40, 64, 3, 70, 0, 1, 2, 60, 70, 114, 115, 116, 0, 9, 54,
-				0, 1, 2, 3, 4, 60, 6, 0, 8, 64, 64, 89, 90, 68, 68, 70, 71, 72, 73, 101, 102, 103, 104, 105, 106, 107,
-				108, 109, 110, 111, 112, 86, 87, 0, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
-				105, 106, 107, 108, 109, 110, 111, 112, 69, 120, 60, 64, 117, 118, 119, 120, 0, 34, 35, 3, 0, 5, 0, 7,
-				4, 9, 0, 1, 2, 3, 4, 9, 6, 0, 8, 0, 0, 1, 2, 3, 4, 5, 0, 7, 0, 10, 4, 5, 91, 7, 34, 35, 36, 37, 0, 98,
-				40, 3, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 54, 0, 1, 2, 54, 4, 60, 0, 1, 2, 64, 4, 0, 6, 68,
-				8, 70, 71, 72, 73, 0, 69, 59, 0, 1, 2, 60, 71, 54, 6, 64, 8, 86, 87, 68, 89, 90, 91, 92, 93, 94, 95, 96,
-				97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 0, 1, 2, 55, 117, 118, 119,
-				120, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
-				27, 28, 29, 30, 31, 32, 33, 0, 0, 1, 2, 3, 4, 40, 6, 0, 8, 0, 1, 2, 55, 4, 5, 0, 7, 0, 53, 0, 55, 56,
-				57, 58, 0, 0, 61, 62, 63, 4, 65, 7, 114, 115, 116, 0, 1, 2, 73, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
-				32, 33, 0, 53, 88, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
-				24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 70, 0, 0, 1, 2, 40, 4, 0, 6, 91, 8, 4, 66, 67, 0, 0, 98, 91,
-				53, 54, 55, 56, 57, 58, 98, 0, 61, 62, 63, 22, 65, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
-				111, 112, 0, 1, 2, 3, 4, 5, 6, 7, 8, 38, 88, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
-				17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 1, 2, 0, 4, 5, 40, 7, 71, 0, 1,
-				2, 9, 4, 5, 60, 7, 0, 0, 53, 3, 55, 56, 57, 58, 0, 113, 61, 62, 63, 0, 65, 0, 114, 115, 116, 0, 1, 2,
-				73, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 0, 88, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
-				13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 1, 2, 60, 4, 5,
-				40, 7, 0, 1, 2, 0, 4, 0, 6, 4, 8, 54, 0, 53, 7, 55, 56, 57, 58, 0, 0, 61, 62, 63, 0, 65, 118, 22, 0, 1,
-				2, 0, 4, 73, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 89, 90, 88, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
-				10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 55, 0,
-				1, 2, 0, 64, 40, 6, 60, 8, 0, 1, 2, 0, 0, 0, 6, 0, 0, 53, 5, 55, 56, 57, 58, 0, 9, 61, 62, 63, 0, 65,
-				96, 3, 0, 1, 2, 23, 24, 73, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 0, 88, 0, 1, 2, 3, 4, 5,
-				6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
-				33, 72, 60, 0, 0, 68, 64, 40, 5, 0, 68, 0, 66, 67, 0, 86, 87, 3, 54, 54, 53, 96, 55, 56, 57, 58, 99,
-				100, 61, 62, 63, 0, 65, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 1, 2, 3, 4, 5, 0, 7, 89, 90,
-				88, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
-				27, 28, 29, 30, 31, 32, 33, 0, 1, 2, 0, 4, 64, 40, 0, 0, 0, 0, 0, 99, 100, 0, 60, 9, 3, 9, 53, 9, 55,
-				56, 57, 58, 64, 0, 61, 62, 63, 0, 65, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 1, 2, 40, 4,
-				40, 6, 40, 8, 0, 88, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
-				23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 1, 2, 0, 4, 5, 40, 7, 0, 9, 55, 0, 1, 2, 95, 7, 0, 0, 54,
-				53, 0, 55, 56, 57, 58, 9, 9, 61, 62, 63, 0, 65, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 10, 11, 12, 13, 14, 15,
-				16, 17, 18, 19, 20, 21, 88, 0, 1, 2, 3, 4, 0, 6, 0, 8, 9, 3, 34, 35, 36, 37, 38, 39, 72, 41, 42, 43, 44,
-				45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 72, 72, 5, 59, 0, 0, 62, 40, 3, 97, 66, 67, 0, 1, 2, 3, 4, 5,
-				6, 7, 8, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 1, 2, 3, 4, 97, 6, 0, 8, 9, 70, 113, 34,
-				35, 36, 37, 38, 39, 55, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 0, 0, 0, 59, 0, 3, 40,
-				54, 64, 9, 66, 67, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 34,
-				35, 3, 34, 35, 0, 1, 2, 0, 1, 2, 34, 35, 36, 37, 38, 39, 55, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
-				52, 0, 1, 2, 68, 96, 0, 59, 72, 0, 0, 0, 0, 7, 0, 3, 0, 69, 9, 9, 9, 73, 0, 1, 2, 3, 4, 5, 6, 7, 8, 55,
-				10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 1, 2, 0, 0, 0, 6, 40, 0, 0, 0, 3, 34, 35, 36, 37, 38,
-				39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 68, 68, 64, 59, 73, 73, 0, 71, 0, 3, 66,
-				67, 0, 1, 2, 3, 4, 5, 6, 7, 8, 55, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 60, 0, 0, 0, 54, 64,
-				64, 71, 0, 0, 9, 9, 34, 35, 36, 37, 38, 39, 55, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2,
-				0, 0, 0, 59, 3, 89, 90, 0, 0, 9, 66, 67, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
-				18, 19, 20, 21, 60, 0, 69, 97, 0, 70, 72, 3, 0, 0, 0, 70, 34, 35, 36, 37, 38, 39, 55, 41, 42, 43, 44,
-				45, 46, 47, 48, 49, 50, 51, 52, 97, 64, 0, 1, 2, 0, 59, 0, 73, 0, 0, 0, 70, 3, 71, 0, 69, 0, 1, 2, 3, 4,
-				5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 60, 0, 1, 2, 0, 74, 0, 3, 0, 5, 6, 7, 34,
-				35, 36, 37, 38, 39, 55, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 60, 0, 1, 2, 0, 60, 59, 34, 35,
-				36, 37, 70, 39, 0, 0, 0, 69, 0, 3, 0, 3, 113, 0, 9, 9, 55, 0, 54, 0, 54, 0, 54, 0, 60, 0, 3, 97, 64, 10,
-				66, 67, 68, 0, 70, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 55, 0, 54, 86, 87, 0, 89, 90, 91, 92,
-				93, 94, 95, 96, 0, 10, 99, 100, 101, 60, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 72, 72, 54,
-				61, 117, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 53, 0, 55, 0,
-				0, 4, 0, 0, 4, 3, 54, 34, 35, 36, 37, 38, 39, 10, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1,
-				2, 3, 4, 5, 6, 7, 8, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 54, 0, 54, 113, 54, 54, 0,
-				53, 9, 55, 64, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 0, 0, 0, 0,
-				89, 90, 3, 0, 9, 0, 55, 118, 66, 67, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18,
-				19, 20, 21, 0, 0, 68, 0, 72, 55, 0, 0, 0, 0, 71, 0, 34, 35, 36, 37, 38, 39, 54, 41, 42, 43, 44, 45, 46,
-				47, 48, 49, 50, 51, 52, 0, 0, 68, 68, 71, 73, 59, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 10, 11, 12, 13, 14, 15,
-				16, 17, 18, 19, 20, 21, 54, 54, 54, 54, 0, 54, 0, 0, 0, 0, 64, 71, 34, 35, 36, 37, 38, 39, 75, 41, 42,
-				43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 121, 0, 3, 89, 90, 0, 60, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 10,
-				11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 54, 0, 0, 0, 0, 3, 3, 3, 0, 0, 64, 68, 34, 35, 36, 37, 38,
-				39, 70, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 0, 0, 3, 89, 90, 59, 0, 1, 2, 3, 4, 5, 6, 7,
-				8, 71, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 0, 0, 54, 0, 3, 0, 0, 0, 68, 0, 0, 34, 35, 36,
-				37, 38, 39, 70, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 0, 0, 0, 0, 0, 59, 0, 1, 2, 3, 4, 5,
-				6, 7, 8, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 70, 34,
-				35, 36, 37, 38, 39, 71, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 0, 0, 0, 0, 0, 59, 0, 1, 2,
-				3, 4, 5, 6, 7, 8, 71, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70,
-				70, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 3, 4, 5, 6, 7,
-				8, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 35, 36,
-				37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 10, 11, 12,
-				13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 35, 36, 37, 38, 39, 0, 41,
-				42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 10, 11, 12, 13, 14, 15, 16,
-				17, 18, 19, 20, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45,
-				46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
-				21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49,
-				50, 51, 52, 0, 1, 2, 0, 4, 0, 0, 0, 0, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
-				25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 53, 4, 0,
-				56, 57, 58, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
-				32, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 53, 0, 0, 56, 57, 58, 10, 11, 12, 13,
-				14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 53, 0, 0, 56, 57, 58, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
-				22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0, 3, 0,
-				53, 0, 0, 56, 57, 58, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 0, 1, 2, 3, 4, 40, 6, 0, 8, 9,
-				3, 0, 36, 37, 0, 0, 9, 0, 0, 54, 0, 0, 0, 0, 0, 60, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 60, 72, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 60, 0, 0, 0, 0, 0, 40, 60, 0, 0, 0, 64,
-				72, 0, 0, 68, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 117, 0, 119, 0, 0, 72, 11, 12, 13,
-				14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 1, 2, 3, 4, 5, 0, 7,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 64, 0, 0, 0, 68, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static byte termCheck[] = TermCheck.termCheck;
-
-	@Override
-	public final int termCheck(int index) {
-		return termCheck[index];
-	}
-
-	public interface TermAction {
-		public final static char termAction[] = { 0, 6892, 6854, 6833, 6833, 6833, 6833, 6833, 6833, 6833, 6870, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6858, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 119, 1, 1, 1, 1, 1, 131, 1045, 7098, 2338, 127, 3465, 1, 1, 365, 6903, 6892,
-				6906, 6907, 6899, 2869, 3600, 3079, 3230, 3029, 3553, 4734, 3598, 805, 3593, 3968, 3564, 10, 6873, 6873,
-				6873, 6873, 6873, 6873, 6873, 6873, 6873, 6873, 6873, 6873, 6873, 6873, 6873, 6873, 6873, 6873, 6873,
-				6873, 6873, 6873, 6873, 6873, 6873, 6873, 6873, 6873, 6873, 6873, 6873, 6873, 6873, 6873, 6873, 6873,
-				6873, 6873, 6873, 6873, 6873, 6873, 6873, 6873, 6873, 6873, 6873, 6873, 6873, 6873, 6873, 6873, 6873,
-				4379, 4446, 6873, 6873, 6873, 6873, 39, 6873, 6873, 6873, 6930, 6873, 6873, 6873, 1105, 6873, 3786,
-				3755, 430, 6873, 6873, 6873, 6873, 6873, 6873, 6873, 6873, 6873, 6873, 6873, 6873, 6873, 8, 6876, 6876,
-				6876, 6876, 6876, 6876, 6876, 6876, 6876, 6876, 6876, 6876, 6876, 6876, 6876, 6876, 6876, 6876, 6876,
-				6876, 6876, 6876, 6876, 6876, 6876, 6876, 6876, 6876, 6876, 6876, 6876, 6876, 6876, 6876, 6876, 6876,
-				6876, 6876, 6876, 6876, 6876, 6876, 6876, 6876, 6876, 6876, 6876, 6876, 6876, 6876, 6876, 6876, 6876,
-				123, 133, 6876, 6876, 6876, 6876, 6892, 6876, 6876, 6876, 2244, 6876, 6876, 6876, 331, 6876, 6892, 6637,
-				6634, 6876, 6876, 6876, 6876, 6876, 6876, 6876, 6876, 6876, 6876, 6876, 6876, 6876, 6892, 6854, 6833,
-				6833, 6833, 6833, 6833, 6833, 6833, 6861, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 6858, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4379, 4446, 1, 1, 1, 1, 419,
-				1045, 7098, 2338, 1253, 3465, 1, 1, 6892, 6903, 48, 6637, 6634, 188, 2869, 3600, 3079, 3230, 3029, 3553,
-				4734, 3598, 805, 3593, 3968, 3564, 6892, 6854, 6833, 6833, 6833, 6833, 6833, 6833, 6833, 6861, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6858, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 122, 1488, 1, 1, 1, 1, 132, 1045, 7098, 2338, 6892, 3465, 1, 1, 6892, 6903, 121,
-				714, 120, 6892, 2869, 3600, 3079, 3230, 3029, 3553, 4734, 3598, 805, 3593, 3968, 3564, 6892, 6854, 6833,
-				6833, 6833, 6833, 6833, 6833, 6833, 6861, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 6858, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4379, 4446, 1, 1, 1, 1, 151,
-				1045, 7098, 2338, 128, 3465, 1, 1, 1105, 6903, 4379, 4446, 4379, 4446, 2869, 3600, 3079, 3230, 3029,
-				3553, 4734, 3598, 805, 3593, 3968, 3564, 6892, 6854, 6833, 6833, 6833, 6833, 6833, 6833, 6833, 6861, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6858, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 139, 134, 1, 1, 1, 1, 152, 1045, 7098, 2338, 147, 3465, 1, 1, 3620, 6903,
-				3786, 3755, 143, 6892, 2869, 3600, 3079, 3230, 3029, 3553, 4734, 3598, 805, 3593, 3968, 3564, 6892,
-				6854, 6833, 6833, 6833, 6833, 6833, 6833, 6833, 6861, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6858, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4379, 4446, 1, 1, 1,
-				1, 6892, 1045, 7098, 2338, 1253, 3465, 1, 1, 3620, 6903, 3857, 3817, 4379, 4446, 2869, 3600, 3079, 3230,
-				3029, 3553, 4734, 3598, 805, 3593, 3968, 3564, 6892, 6854, 6833, 6833, 6833, 6833, 6833, 6833, 6833,
-				6861, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6858, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 142, 137, 1, 1, 1, 1, 6892, 1045, 7098, 2338, 153, 3465, 1, 1, 6892,
-				6903, 432, 6906, 6907, 1853, 2869, 3600, 3079, 3230, 3029, 3553, 4734, 3598, 805, 3593, 3968, 3564,
-				6892, 6854, 6833, 6833, 6833, 6833, 6833, 6833, 6833, 6861, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6858, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4379, 4446, 1,
-				1, 1, 1, 6892, 1045, 7098, 2338, 2318, 3465, 1, 1, 430, 6903, 3369, 4899, 423, 3565, 2869, 3600, 3079,
-				3230, 3029, 3553, 4734, 3598, 805, 3593, 3968, 3564, 6892, 6854, 6833, 6833, 6833, 6833, 6833, 6833,
-				6833, 6861, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				6858, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 140, 6892, 1, 1, 1, 1, 6892, 1045, 7098, 2338, 148, 3465,
-				1, 1, 6892, 6903, 36, 6791, 6788, 6892, 2869, 3600, 3079, 3230, 3029, 3553, 4734, 3598, 805, 3593, 3968,
-				3564, 6892, 6854, 6833, 6833, 6833, 6833, 6833, 6833, 6833, 6861, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6858, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4379,
-				4446, 1, 1, 1, 1, 135, 1045, 7098, 2338, 6892, 3465, 1, 1, 1435, 6903, 3857, 3817, 550, 6892, 2869,
-				3600, 3079, 3230, 3029, 3553, 4734, 3598, 805, 3593, 3968, 3564, 6892, 3555, 1, 1, 1, 1, 1, 1, 1, 3562,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6901, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 928, 440, 1, 1, 1, 1, 6892, 1045, 7098, 2338, 6800, 3465, 1, 1, 6892,
-				6903, 3471, 6892, 10614, 10614, 2869, 3600, 3079, 3230, 3029, 3553, 4734, 3598, 805, 3593, 3968, 3564,
-				39, 6456, 6453, 5208, 1041, 5603, 5488, 5633, 2316, 6803, 970, 7189, 7187, 7196, 7195, 7191, 7192, 7190,
-				7193, 7194, 7197, 7188, 7184, 7263, 7264, 7178, 7185, 7181, 7157, 7183, 7182, 7179, 7180, 7158, 5580,
-				5514, 5680, 5657, 6911, 5457, 6928, 670, 873, 6913, 814, 5818, 835, 6914, 6912, 637, 6908, 6909, 6910,
-				7325, 6892, 6892, 634, 7326, 7327, 1438, 6892, 6767, 6767, 261, 6763, 261, 261, 261, 261, 6771, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 321, 6551, 6551, 6892, 316, 6892, 261,
-				6892, 6544, 6540, 2379, 6691, 6824, 809, 6824, 2316, 331, 6906, 6907, 1, 113, 6760, 1, 1, 1, 5418, 109,
-				2200, 7339, 1393, 1, 6544, 6540, 2379, 6691, 6892, 809, 261, 2316, 451, 999, 2796, 923, 3435, 255, 343,
-				6544, 6540, 2379, 6691, 6824, 809, 6824, 2316, 7427, 7189, 7187, 7196, 7195, 7191, 7192, 7190, 7193,
-				7194, 7197, 7188, 7184, 7263, 7264, 7178, 7185, 7181, 7157, 7183, 7182, 7179, 7180, 7158, 3032, 6892,
-				7362, 7363, 7364, 6892, 6767, 6767, 261, 6763, 261, 261, 261, 261, 6812, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5726, 6892, 5394, 5146, 137, 37, 261, 5749, 124, 401, 6544,
-				6540, 4215, 6691, 1, 809, 1, 2316, 493, 1, 256, 6760, 1, 1, 1, 6892, 6161, 2200, 7339, 1393, 4896, 33,
-				6892, 6892, 6495, 6892, 6495, 261, 6495, 450, 6495, 1480, 7184, 7263, 7264, 7178, 7185, 7181, 7157,
-				7183, 7182, 7179, 7180, 7158, 7427, 365, 6456, 6453, 2379, 1041, 6928, 809, 4064, 2316, 6892, 6495,
-				6495, 6495, 6495, 2052, 6892, 6495, 6477, 1415, 2005, 6892, 6906, 6907, 6483, 1292, 7362, 7363, 7364,
-				6892, 6904, 6495, 1, 6544, 6540, 4215, 6691, 6495, 809, 112, 2316, 6495, 3609, 4010, 3937, 6495, 4896,
-				6495, 6495, 6495, 6495, 3369, 4899, 1958, 1911, 1864, 1817, 1770, 1723, 1676, 1629, 1582, 1535, 6495,
-				6495, 116, 6495, 6495, 6495, 6495, 6495, 6495, 6495, 6495, 6495, 6495, 6495, 6495, 6495, 6495, 6495,
-				6495, 6495, 6495, 6495, 6495, 6495, 6495, 6495, 6495, 6903, 6452, 2052, 2618, 6495, 6495, 6495, 6495,
-				6892, 4637, 4333, 6498, 431, 6498, 6892, 6498, 422, 6498, 1, 6544, 6540, 2379, 6691, 6904, 809, 593,
-				2316, 335, 37, 6907, 6907, 6907, 6907, 6907, 39, 6907, 6892, 7226, 6930, 365, 5726, 365, 6498, 6498,
-				6498, 6498, 89, 5749, 6498, 6489, 6907, 6907, 6907, 6907, 6907, 6907, 6907, 6907, 6907, 6907, 6907,
-				6907, 6498, 6892, 6456, 6453, 713, 6930, 6498, 6892, 6456, 6453, 6498, 1041, 6892, 6501, 6498, 2316,
-				6498, 6498, 6498, 6498, 474, 6903, 3548, 38, 6474, 6471, 6907, 3032, 2855, 6468, 6907, 2316, 6498, 6498,
-				6907, 6498, 6498, 6498, 6498, 6498, 6498, 6498, 6498, 6498, 6498, 6498, 6498, 6498, 6498, 6498, 6498,
-				6498, 6498, 6498, 6498, 6498, 6498, 6498, 6498, 43, 6658, 6658, 2643, 6498, 6498, 6498, 6498, 6892,
-				6833, 6833, 261, 6833, 261, 261, 261, 261, 6836, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				9230, 1, 1, 1, 1, 1, 1, 6892, 1, 6544, 6540, 6806, 6691, 261, 6809, 111, 6694, 479, 1, 1, 6655, 1, 6480,
-				110, 6480, 257, 1, 157, 6830, 1, 1, 1, 129, 6892, 2589, 7135, 2338, 2443, 3465, 3673, 7362, 7363, 7364,
-				6892, 6906, 6907, 252, 7184, 7263, 7264, 7178, 7185, 7181, 7157, 7183, 7182, 7179, 7180, 7158, 6892,
-				2536, 7427, 6892, 6833, 6833, 261, 6833, 261, 261, 261, 261, 261, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 9230, 1, 1, 1, 1, 1, 1, 6892, 2811, 6892, 6892, 6456, 6453, 261, 1041, 39, 809, 5726, 2316,
-				6930, 5703, 956, 1, 6892, 5749, 5726, 1, 3360, 6830, 1, 1, 1, 5749, 6892, 2589, 7135, 2338, 969, 3465,
-				3408, 5245, 2745, 2679, 2613, 2547, 2481, 2415, 2349, 2283, 2217, 2151, 379, 6456, 6453, 4215, 1041,
-				365, 809, 365, 2316, 3456, 7427, 6892, 6833, 6833, 261, 6833, 261, 261, 261, 261, 6845, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9230, 1, 1, 1, 1, 1, 1, 480, 39, 39, 6892, 6930, 6742, 261, 6742,
-				2094, 90, 1, 1, 6896, 1, 6751, 2052, 6751, 269, 258, 1, 6646, 6830, 1, 1, 1, 6892, 3602, 2589, 7135,
-				2338, 6892, 3465, 492, 7362, 7363, 7364, 325, 6906, 6907, 251, 7184, 7263, 7264, 7178, 7185, 7181, 7157,
-				7183, 7182, 7179, 7180, 7158, 144, 6892, 7427, 6892, 6833, 6833, 261, 6833, 261, 261, 261, 261, 6836, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9230, 1, 1, 1, 1, 1, 1, 93, 39, 39, 6486, 6930, 6818,
-				261, 6818, 6892, 6456, 6453, 39, 1041, 130, 809, 6930, 2316, 4145, 259, 1, 3673, 6830, 1, 1, 1, 136,
-				6892, 2589, 7135, 2338, 6892, 3465, 6895, 2662, 429, 6548, 6548, 382, 316, 252, 7184, 7263, 7264, 7178,
-				7185, 7181, 7157, 7183, 7182, 7179, 7180, 7158, 4118, 4091, 7427, 6892, 6833, 6833, 261, 6833, 261, 261,
-				261, 261, 6836, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9230, 1, 1, 1, 1, 1, 1, 316, 6892,
-				6906, 6907, 6892, 2648, 261, 809, 2052, 2316, 6892, 6906, 6907, 155, 370, 115, 1480, 6892, 570, 1, 5418,
-				6830, 1, 1, 1, 396, 6898, 2589, 7135, 2338, 1, 3465, 3471, 3890, 6892, 6637, 6634, 7263, 7264, 252,
-				7184, 7263, 7264, 7178, 7185, 7181, 7157, 7183, 7182, 7179, 7180, 7158, 146, 6892, 7427, 6892, 6833,
-				6833, 261, 6833, 261, 261, 261, 261, 261, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9230, 1, 1,
-				1, 1, 1, 1, 6897, 2052, 114, 6892, 3437, 575, 261, 5418, 6892, 575, 571, 5703, 956, 1, 4379, 4446, 6309,
-				4145, 4487, 1, 3509, 6830, 1, 1, 1, 5394, 5146, 2589, 7135, 2338, 6892, 3465, 7184, 7263, 7264, 7178,
-				7185, 7181, 7157, 7183, 7182, 7179, 7180, 7158, 379, 39, 39, 3890, 6930, 365, 6892, 365, 4118, 4091,
-				7427, 6892, 6833, 6833, 261, 6833, 261, 261, 261, 261, 261, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 9230, 1, 1, 1, 1, 1, 1, 6892, 6456, 6453, 6892, 6930, 2656, 261, 6892, 154, 1, 572, 1, 5394, 5146,
-				6892, 2052, 6902, 4953, 6902, 1, 222, 6830, 1, 1, 1, 2684, 6892, 2589, 7135, 2338, 6892, 3465, 7184,
-				7263, 7264, 7178, 7185, 7181, 7157, 7183, 7182, 7179, 7180, 7158, 6892, 6456, 6453, 6901, 1041, 6901,
-				6501, 222, 2316, 6892, 7427, 6892, 6833, 6833, 261, 6833, 261, 261, 261, 261, 261, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9230, 1, 1, 1, 1, 1, 1, 1, 6739, 6739, 6892, 6745, 365, 261, 365, 149,
-				397, 2709, 6892, 10368, 10365, 3565, 3707, 1, 6892, 5091, 1, 409, 6830, 1, 1, 1, 192, 6898, 2589, 7135,
-				2338, 392, 3465, 6892, 1, 1, 1, 1, 1, 1, 1, 1, 6892, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7427, 1, 6544,
-				6540, 6806, 6691, 6892, 6809, 345, 6694, 6902, 2442, 1, 1, 1, 1, 1, 1, 397, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 37, 6748, 6748, 192, 6897, 365, 1, 6892, 6892, 7489, 6901, 5023, 397, 1, 1, 1, 6544, 6540,
-				3293, 1041, 5603, 5488, 5633, 2316, 6892, 6504, 6531, 6537, 6510, 6513, 6525, 6522, 6528, 6519, 6516,
-				6507, 6534, 1, 6544, 6540, 2379, 6691, 7283, 809, 156, 2316, 343, 1143, 3602, 5580, 5514, 5680, 5657,
-				6911, 5457, 6928, 670, 873, 6913, 814, 5818, 835, 6914, 6912, 637, 6908, 6909, 6910, 37, 6748, 6748,
-				6892, 118, 6892, 1438, 117, 5077, 343, 5844, 551, 6898, 39, 39, 39, 6456, 6453, 5208, 1041, 5603, 5488,
-				5633, 2316, 6886, 626, 7189, 7187, 7196, 7195, 7191, 7192, 7190, 7193, 7194, 7197, 7188, 6892, 4637,
-				4333, 5079, 4637, 4333, 6892, 6777, 6774, 6892, 10368, 10365, 5580, 5514, 5680, 5657, 6911, 5457, 1430,
-				670, 873, 6913, 814, 5818, 835, 6914, 6912, 637, 6908, 6909, 6910, 324, 743, 743, 6366, 3509, 150, 1438,
-				6897, 6892, 6892, 6892, 6892, 3707, 6892, 4270, 6892, 6867, 6900, 6900, 6902, 6899, 172, 6456, 6453,
-				5208, 1041, 5603, 5488, 5633, 2316, 6928, 626, 7189, 7187, 7196, 7195, 7191, 7192, 7190, 7193, 7194,
-				7197, 7188, 37, 6748, 6748, 6892, 6892, 6892, 6748, 6901, 381, 6892, 6892, 1368, 5580, 5514, 5680, 5657,
-				6911, 5457, 145, 670, 873, 6913, 814, 5818, 835, 6914, 6912, 637, 6908, 6909, 6910, 6892, 6784, 6780,
-				1057, 3278, 7439, 1438, 6899, 6899, 6892, 2877, 1, 4411, 39, 39, 1, 6544, 6540, 3293, 1041, 5603, 5488,
-				5633, 2316, 1577, 6504, 6531, 6537, 6510, 6513, 6525, 6522, 6528, 6519, 6516, 6507, 6534, 2052, 1, 1,
-				404, 4145, 7368, 7382, 7328, 98, 402, 6848, 397, 5580, 5514, 5680, 5657, 6911, 5457, 6928, 670, 873,
-				6913, 814, 5818, 835, 6914, 6912, 637, 6908, 6909, 6910, 45, 6797, 6797, 1, 101, 6892, 1438, 4690, 4118,
-				4091, 326, 463, 6851, 39, 39, 39, 6456, 6453, 5208, 1041, 5603, 5488, 5633, 2316, 6864, 626, 7189, 7187,
-				7196, 7195, 7191, 7192, 7190, 7193, 7194, 7197, 7188, 5283, 1, 6903, 7285, 6892, 1341, 397, 1856, 6892,
-				582, 354, 1388, 5580, 5514, 5680, 5657, 6911, 5457, 6794, 670, 873, 6913, 814, 5818, 835, 6914, 6912,
-				637, 6908, 6909, 6910, 397, 5968, 6892, 6777, 6774, 6892, 1438, 6892, 6899, 1, 352, 455, 3089, 6815,
-				2079, 97, 6867, 39, 6456, 6453, 5208, 1041, 5603, 5488, 5633, 2316, 6864, 626, 7189, 7187, 7196, 7195,
-				7191, 7192, 7190, 7193, 7194, 7197, 7188, 2052, 6892, 11370, 8991, 1, 2199, 29, 887, 475, 7390, 7396,
-				7394, 5580, 5514, 5680, 5657, 6911, 5457, 6928, 670, 873, 6913, 814, 5818, 835, 6914, 6912, 637, 6908,
-				6909, 6910, 2052, 37, 6748, 6748, 489, 2990, 1438, 7388, 7389, 7419, 7420, 3188, 7397, 6892, 1, 1, 6867,
-				311, 3890, 6892, 6827, 1, 573, 6898, 6640, 6928, 6892, 7399, 335, 6459, 6892, 6462, 6892, 798, 422,
-				3536, 3704, 7400, 7226, 1751, 1762, 7421, 6892, 7398, 7184, 7263, 7264, 7178, 7185, 7181, 7157, 7183,
-				7182, 7179, 7180, 7158, 6928, 581, 6465, 7410, 7409, 1, 7415, 7416, 7422, 7413, 7414, 7393, 7395, 7417,
-				6892, 6839, 7391, 7392, 7418, 2052, 7403, 7404, 7405, 7401, 7402, 7411, 7412, 7407, 7406, 7408, 6897,
-				6643, 6492, 2311, 7423, 39, 6456, 6453, 5208, 1041, 5603, 5488, 5633, 2316, 6896, 626, 7189, 7187, 7196,
-				7195, 7191, 7192, 7190, 7193, 7194, 7197, 7188, 126, 6842, 48, 3544, 6892, 48, 6907, 6892, 1, 6906,
-				5173, 713, 5580, 5514, 5680, 5657, 6911, 5457, 6839, 670, 873, 6913, 814, 5818, 835, 6914, 6912, 637,
-				6908, 6909, 6910, 1, 6544, 6540, 6736, 6691, 6679, 6697, 6682, 6694, 47, 6504, 6531, 6537, 6510, 6513,
-				6525, 6522, 6528, 6519, 6516, 6507, 6534, 1, 4064, 318, 6907, 3602, 3360, 6906, 483, 6842, 589, 3544,
-				6661, 6676, 6673, 6688, 6685, 6709, 6670, 6892, 6724, 6733, 6703, 6727, 6667, 6730, 6700, 6706, 6721,
-				6718, 6715, 6712, 8, 29, 324, 461, 6892, 4010, 3937, 4767, 216, 6889, 6892, 1383, 6895, 6739, 6739, 39,
-				6456, 6453, 5208, 1041, 5603, 5488, 5633, 2316, 6892, 626, 7189, 7187, 7196, 7195, 7191, 7192, 7190,
-				7193, 7194, 7197, 7188, 6892, 6892, 7209, 225, 589, 3438, 125, 430, 72, 6892, 2141, 6892, 5580, 5514,
-				5680, 5657, 6911, 5457, 713, 670, 873, 6913, 814, 5818, 835, 6914, 6912, 637, 6908, 6909, 6910, 6892,
-				6892, 9970, 4361, 459, 6889, 1438, 39, 6456, 6453, 5208, 1041, 5603, 5488, 5633, 2316, 6892, 626, 7189,
-				7187, 7196, 7195, 7191, 7192, 7190, 7193, 7194, 7197, 7188, 4064, 713, 6821, 2036, 484, 2788, 6892,
-				6892, 6892, 35, 6664, 3131, 5580, 5514, 5680, 5657, 6911, 5457, 6880, 670, 873, 6913, 814, 5818, 835,
-				6914, 6912, 637, 6908, 6909, 6910, 6892, 6883, 6892, 5983, 4010, 3937, 6892, 1380, 39, 6456, 6453, 3293,
-				1041, 5603, 5488, 5633, 2316, 6892, 626, 7189, 7187, 7196, 7195, 7191, 7192, 7190, 7193, 7194, 7197,
-				7188, 4145, 342, 6892, 6892, 6892, 6328, 4798, 6334, 543, 2, 4185, 2273, 5580, 5514, 5680, 5657, 6911,
-				5457, 2791, 670, 873, 6913, 814, 5818, 835, 6914, 6912, 637, 6908, 6909, 6910, 6892, 6892, 6892, 5878,
-				4118, 4091, 1438, 39, 6456, 6453, 3293, 1041, 5603, 5488, 5633, 2316, 4796, 626, 7189, 7187, 7196, 7195,
-				7191, 7192, 7190, 7193, 7194, 7197, 7188, 541, 6892, 6892, 37, 6892, 5337, 6892, 6892, 6892, 2181, 6892,
-				6892, 5580, 5514, 5680, 5657, 6911, 5457, 6338, 670, 873, 6913, 814, 5818, 835, 6914, 6912, 637, 6908,
-				6909, 6910, 6892, 6892, 6892, 6892, 6892, 6892, 1438, 39, 6456, 6453, 5208, 1041, 5603, 5488, 5633,
-				2316, 6892, 626, 7189, 7187, 7196, 7195, 7191, 7192, 7190, 7193, 7194, 7197, 7188, 6892, 545, 6892,
-				6892, 6892, 6892, 6892, 6892, 6892, 6892, 6348, 2791, 5580, 5514, 5680, 5657, 6911, 5457, 4858, 670,
-				873, 6913, 814, 5818, 835, 6914, 6912, 637, 6908, 6909, 6910, 6892, 6892, 6892, 6892, 6892, 6892, 1438,
-				39, 6456, 6453, 4570, 1041, 5603, 5488, 5633, 2316, 4920, 626, 7189, 7187, 7196, 7195, 7191, 7192, 7190,
-				7193, 7194, 7197, 7188, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 2943, 903, 5580,
-				5514, 5680, 5657, 6911, 5457, 6892, 670, 873, 6913, 814, 5818, 835, 6914, 6912, 637, 6908, 6909, 6910,
-				39, 6456, 6453, 5208, 1041, 5603, 5488, 5633, 2316, 6892, 626, 7189, 7187, 7196, 7195, 7191, 7192, 7190,
-				7193, 7194, 7197, 7188, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 5580,
-				5514, 5680, 5657, 6911, 5457, 6892, 670, 873, 6913, 814, 5818, 835, 6914, 6912, 637, 6908, 6909, 6910,
-				39, 6456, 6453, 3293, 1041, 5603, 5488, 5633, 2316, 6892, 626, 7189, 7187, 7196, 7195, 7191, 7192, 7190,
-				7193, 7194, 7197, 7188, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 5580,
-				5514, 5680, 5657, 6911, 5457, 6892, 670, 873, 6913, 814, 5818, 835, 6914, 6912, 637, 6908, 6909, 6910,
-				39, 6456, 6453, 3293, 1041, 5603, 5488, 5633, 2316, 6892, 626, 7189, 7187, 7196, 7195, 7191, 7192, 7190,
-				7193, 7194, 7197, 7188, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 5580,
-				5514, 5680, 5657, 6911, 5457, 6892, 670, 873, 6913, 814, 5818, 835, 6914, 6912, 637, 6908, 6909, 6910,
-				39, 6456, 6453, 5208, 1041, 5603, 5488, 5633, 2316, 6892, 626, 7189, 7187, 7196, 7195, 7191, 7192, 7190,
-				7193, 7194, 7197, 7188, 1, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 194, 6892, 6892, 5580, 5514,
-				5680, 5657, 6911, 5457, 6892, 670, 873, 6913, 814, 5818, 835, 6914, 6912, 637, 6908, 6909, 6910, 6892,
-				6456, 6453, 6892, 6930, 6892, 6892, 6892, 6892, 6892, 758, 7189, 7187, 7196, 7195, 7191, 7192, 7190,
-				7193, 7194, 7197, 7188, 7184, 7263, 7264, 7178, 7185, 7181, 7157, 7183, 7182, 7179, 7180, 7158, 6892,
-				6892, 6892, 6892, 6892, 6892, 6892, 194, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 273, 6627,
-				6623, 7325, 6631, 6892, 634, 7326, 7327, 6892, 758, 6614, 6620, 6593, 6596, 6608, 6605, 6611, 6602,
-				6599, 6590, 6617, 6569, 6563, 6560, 6587, 6566, 6578, 6557, 6572, 6575, 6584, 6581, 6554, 6892, 6892,
-				6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6906, 6907, 6892,
-				7325, 6892, 6892, 634, 7326, 7327, 1186, 7189, 7187, 7196, 7195, 7191, 7192, 7190, 7193, 7194, 7197,
-				7188, 7184, 7263, 7264, 7178, 7185, 7181, 7157, 7183, 7182, 7179, 7180, 7158, 6892, 6892, 6892, 6892,
-				6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 273, 6757, 6754, 6892, 7325, 6892,
-				6892, 634, 7326, 7327, 1186, 6614, 6620, 6593, 6596, 6608, 6605, 6611, 6602, 6599, 6590, 6617, 6569,
-				6563, 6560, 6587, 6566, 6578, 6557, 6572, 6575, 6584, 6581, 6554, 6892, 6892, 6892, 29, 422, 422, 6652,
-				422, 6652, 422, 6652, 422, 6652, 6892, 74, 6892, 6892, 3335, 6892, 7325, 6892, 6892, 634, 7326, 7327,
-				422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 6892, 1, 6544, 6540, 4215, 6691, 6652, 809,
-				1, 2316, 6640, 3890, 6892, 6954, 6955, 6892, 6892, 375, 6892, 6892, 6459, 6892, 6892, 6892, 6892, 6892,
-				6652, 32, 423, 423, 6649, 423, 6649, 423, 6649, 423, 6649, 4716, 6652, 6892, 6892, 6892, 6892, 6892,
-				6892, 6892, 6892, 6892, 6892, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 2052, 6892,
-				6892, 6892, 6892, 6892, 6649, 2052, 6892, 6892, 6892, 375, 6643, 6892, 6892, 375, 6892, 6892, 6892, 375,
-				6892, 6892, 6892, 6892, 6892, 6892, 6649, 6892, 569, 6892, 6892, 6892, 6892, 745, 6892, 868, 6892, 6892,
-				6649, 7189, 7187, 7196, 7195, 7191, 7192, 7190, 7193, 7194, 7197, 7188, 7184, 7263, 7264, 7178, 7185,
-				7181, 7157, 7183, 7182, 7179, 7180, 7158, 37, 6906, 6906, 6906, 6906, 6906, 6892, 6906, 6892, 6892,
-				6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6906, 6906, 6906, 6906, 6906,
-				6906, 6906, 6906, 6906, 6906, 6906, 6906, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892,
-				6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6892, 6906,
-				6892, 6892, 6892, 6906, 6892, 6892, 6892, 6906 };
-	}
-
-	public final static char termAction[] = TermAction.termAction;
-
-	@Override
-	public final int termAction(int index) {
-		return termAction[index];
-	}
-
-	public interface Asb {
-		public final static char asb[] = { 0, 904, 7, 485, 1, 945, 837, 837, 837, 837, 651, 945, 663, 663, 583, 663,
-				120, 469, 122, 486, 486, 486, 486, 486, 486, 486, 486, 486, 665, 671, 676, 673, 680, 678, 685, 683, 687,
-				686, 688, 267, 689, 485, 485, 42, 42, 42, 42, 524, 223, 15, 15, 660, 42, 567, 171, 663, 663, 15, 524,
-				171, 171, 162, 469, 947, 41, 1124, 653, 1005, 485, 663, 665, 379, 379, 223, 485, 486, 486, 486, 486,
-				486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 485, 485, 485, 485, 485, 485,
-				485, 485, 485, 485, 485, 485, 486, 171, 1070, 1070, 1070, 1070, 1126, 171, 15, 15, 649, 994, 1005, 79,
-				1005, 74, 1005, 9, 1005, 989, 651, 524, 567, 567, 15, 837, 486, 649, 527, 865, 855, 854, 405, 1012,
-				1012, 651, 122, 567, 41, 485, 522, 1123, 521, 523, 521, 171, 567, 673, 673, 671, 671, 671, 678, 678,
-				678, 678, 676, 676, 683, 680, 680, 686, 685, 687, 1082, 688, 945, 945, 945, 945, 524, 524, 1070, 43,
-				645, 469, 1047, 1045, 1052, 1050, 1054, 1053, 1055, 1056, 1069, 1070, 660, 524, 316, 174, 76, 381, 77,
-				651, 524, 524, 1126, 1070, 162, 567, 704, 171, 867, 869, 524, 1124, 486, 42, 669, 127, 171, 653, 524,
-				524, 523, 1124, 485, 485, 485, 485, 485, 945, 945, 622, 633, 633, 633, 633, 617, 651, 776, 486, 486,
-				486, 486, 486, 486, 486, 486, 486, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 486, 469,
-				317, 658, 656, 174, 524, 783, 578, 781, 1126, 79, 319, 524, 1126, 524, 171, 859, 847, 858, 869, 1126,
-				522, 171, 669, 649, 1123, 653, 524, 522, 171, 171, 171, 171, 223, 223, 524, 486, 1045, 1045, 1045, 1050,
-				1047, 1047, 1053, 1052, 1054, 1082, 1055, 317, 656, 322, 524, 174, 1082, 77, 837, 1128, 767, 1072, 174,
-				783, 782, 783, 783, 1126, 319, 319, 524, 524, 325, 485, 856, 856, 386, 386, 524, 863, 649, 792, 171,
-				524, 669, 670, 669, 485, 127, 772, 665, 653, 171, 171, 1126, 787, 485, 656, 656, 1124, 79, 79, 1070,
-				837, 521, 335, 1074, 518, 945, 783, 783, 783, 783, 524, 319, 321, 825, 321, 325, 485, 485, 869, 524,
-				1124, 171, 867, 847, 325, 416, 669, 223, 486, 567, 772, 524, 656, 655, 522, 340, 79, 729, 190, 522, 783,
-				783, 518, 709, 486, 1082, 394, 830, 524, 649, 783, 783, 570, 321, 322, 486, 524, 720, 869, 325, 670,
-				171, 567, 656, 710, 340, 340, 265, 1084, 308, 945, 77, 766, 190, 522, 783, 79, 651, 1074, 486, 486,
-				1123, 518, 839, 218, 571, 524, 322, 720, 171, 720, 322, 340, 340, 728, 308, 265, 843, 651, 1069, 837,
-				399, 399, 710, 79, 449, 839, 524, 945, 570, 524, 651, 651, 524, 945, 713, 720, 322, 729, 340, 710, 393,
-				709, 171, 651, 524, 190, 729, 190, 1068, 1068, 774, 450, 651, 524, 223, 524, 524, 524, 870, 713, 340,
-				485, 83, 518, 710, 524, 524, 190, 42, 42, 774, 449, 1082, 486, 1082, 710, 448, 945, 945, 945, 450, 945,
-				524, 275, 710, 710, 524, 79, 171, 524, 524, 170, 715, 322, 171, 322, 79, 524, 710, 1069, 441, 945, 441,
-				450, 1082, 450, 469, 469, 467, 448, 469, 710, 710, 726, 447, 42, 715, 322, 83, 710, 72, 792, 450, 171,
-				518, 171, 467, 308, 945, 171, 774, 83, 399, 171, 171, 429, 450, 726, 450, 710, 308, 485, 450, 447, 321,
-				1068, 79, 79, 979, 485, 448, 223, 710, 171, 708, 82, 521, 450, 171, 710, 708, 708, 450 };
-	}
-
-	public final static char asb[] = Asb.asb;
-
-	@Override
-	public final int asb(int index) {
-		return asb[index];
-	}
-
-	public interface Asr {
-		public final static byte asr[] = { 0, 9, 71, 118, 72, 40, 68, 120, 0, 4, 9, 69, 1, 2, 0, 41, 66, 42, 43, 67, 8,
-				44, 45, 46, 47, 59, 48, 49, 50, 51, 52, 38, 36, 37, 7, 5, 34, 35, 6, 39, 64, 3, 4, 10, 1, 2, 56, 57, 58,
-				12, 21, 11, 17, 15, 16, 18, 19, 14, 13, 20, 25, 31, 32, 27, 30, 29, 22, 26, 23, 24, 28, 33, 53, 0, 55,
-				4, 71, 1, 2, 69, 9, 0, 73, 59, 36, 37, 7, 5, 34, 35, 39, 45, 3, 4, 50, 51, 52, 38, 48, 43, 47, 12, 21,
-				11, 17, 15, 16, 18, 19, 14, 13, 20, 10, 42, 46, 44, 41, 49, 69, 9, 8, 6, 1, 2, 67, 66, 0, 98, 91, 34,
-				35, 99, 100, 86, 87, 54, 89, 90, 92, 93, 94, 95, 96, 101, 102, 71, 97, 70, 103, 104, 105, 106, 107, 108,
-				109, 110, 111, 112, 118, 73, 40, 120, 64, 1, 2, 7, 5, 4, 3, 60, 68, 72, 9, 0, 88, 61, 8, 114, 115, 116,
-				63, 9, 3, 7, 5, 6, 71, 73, 40, 62, 25, 11, 12, 53, 23, 13, 56, 26, 27, 14, 28, 29, 15, 16, 30, 31, 17,
-				18, 32, 57, 55, 33, 10, 58, 19, 20, 24, 21, 1, 2, 4, 22, 0, 9, 72, 11, 12, 41, 66, 13, 42, 43, 14, 15,
-				16, 67, 8, 44, 17, 18, 45, 46, 47, 59, 48, 49, 10, 19, 20, 21, 50, 51, 52, 1, 2, 3, 36, 37, 7, 5, 34,
-				35, 6, 39, 4, 38, 0, 64, 71, 97, 68, 118, 72, 73, 120, 11, 12, 41, 66, 13, 42, 43, 14, 15, 16, 67, 44,
-				17, 18, 45, 46, 47, 59, 48, 49, 10, 19, 20, 21, 50, 51, 52, 38, 36, 37, 34, 35, 39, 9, 40, 6, 8, 1, 2,
-				4, 3, 7, 5, 0, 1, 2, 68, 73, 9, 0, 23, 59, 24, 9, 64, 97, 70, 68, 72, 0, 9, 71, 69, 74, 0, 65, 25, 11,
-				12, 53, 23, 13, 56, 26, 88, 27, 14, 28, 29, 15, 16, 30, 61, 31, 17, 18, 32, 57, 33, 10, 58, 19, 63, 22,
-				20, 24, 21, 9, 3, 7, 5, 73, 40, 62, 8, 6, 55, 1, 2, 4, 0, 74, 64, 71, 97, 72, 69, 60, 3, 9, 68, 40, 70,
-				0, 64, 70, 68, 1, 2, 0, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 25, 23, 26, 27, 28, 29, 30, 31, 32,
-				33, 22, 24, 40, 9, 72, 8, 1, 2, 60, 3, 7, 5, 6, 4, 0, 88, 114, 115, 116, 55, 71, 113, 121, 73, 62, 74,
-				63, 61, 65, 76, 78, 84, 82, 75, 80, 81, 83, 85, 69, 77, 79, 40, 9, 25, 53, 23, 56, 26, 27, 28, 29, 30,
-				31, 32, 57, 33, 58, 22, 24, 59, 66, 67, 10, 42, 46, 44, 41, 49, 12, 21, 11, 17, 15, 16, 18, 19, 14, 13,
-				20, 50, 51, 52, 38, 48, 43, 47, 36, 37, 34, 35, 39, 45, 7, 5, 3, 4, 8, 6, 1, 2, 0, 66, 67, 3, 10, 42,
-				46, 44, 41, 49, 12, 21, 11, 17, 15, 16, 18, 19, 14, 13, 20, 50, 51, 52, 38, 48, 43, 47, 6, 8, 4, 36, 37,
-				7, 5, 34, 35, 39, 45, 1, 2, 118, 9, 0, 22, 1, 2, 4, 114, 115, 116, 0, 4, 9, 71, 69, 0, 67, 66, 34, 35,
-				99, 100, 94, 95, 6, 39, 70, 54, 106, 107, 103, 104, 105, 111, 110, 112, 87, 86, 108, 109, 92, 93, 89,
-				90, 96, 101, 36, 37, 91, 117, 10, 56, 53, 57, 58, 12, 21, 11, 17, 15, 16, 18, 19, 14, 13, 20, 25, 31,
-				32, 27, 30, 29, 22, 26, 23, 24, 28, 33, 64, 68, 3, 60, 7, 5, 1, 2, 4, 0, 59, 23, 24, 8, 6, 1, 2, 4, 74,
-				69, 119, 117, 36, 37, 60, 3, 98, 91, 5, 99, 100, 34, 35, 87, 86, 54, 89, 90, 92, 93, 7, 94, 95, 96, 64,
-				97, 72, 120, 70, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 71, 118, 101, 102, 73, 68, 40, 9, 0,
-				23, 24, 74, 3, 71, 40, 69, 59, 9, 64, 97, 68, 72, 70, 0, 69, 53, 23, 13, 56, 26, 14, 28, 29, 15, 16, 30,
-				31, 17, 18, 32, 57, 33, 58, 19, 22, 20, 24, 21, 12, 11, 25, 9, 3, 7, 5, 40, 63, 65, 88, 27, 62, 55, 61,
-				8, 1, 2, 4, 10, 6, 0, 113, 0, 54, 64, 89, 90, 0, 4, 54, 9, 71, 69, 0, 72, 9, 87, 86, 0, 25, 11, 12, 53,
-				23, 13, 56, 26, 27, 14, 28, 29, 15, 16, 30, 31, 17, 18, 32, 57, 33, 10, 58, 19, 22, 20, 24, 21, 1, 2, 4,
-				97, 0, 9, 68, 73, 70, 0, 71, 9, 60, 3, 70, 68, 40, 54, 0, 9, 69, 68, 0, 9, 69, 70, 0, 7, 5, 8, 6, 4, 1,
-				2, 3, 60, 64, 70, 68, 9, 72, 97, 0, 6, 8, 3, 60, 5, 7, 97, 25, 11, 12, 53, 23, 13, 56, 26, 27, 14, 28,
-				29, 15, 16, 30, 31, 17, 18, 32, 57, 33, 10, 58, 19, 22, 20, 24, 21, 1, 2, 4, 72, 9, 0, 11, 12, 41, 66,
-				13, 42, 43, 14, 15, 16, 67, 8, 44, 17, 18, 45, 46, 47, 59, 48, 49, 10, 19, 20, 21, 50, 51, 52, 38, 1, 2,
-				36, 37, 7, 5, 34, 35, 6, 39, 4, 62, 3, 0, 66, 67, 36, 37, 34, 35, 39, 45, 50, 51, 52, 38, 48, 43, 47,
-				12, 21, 11, 17, 15, 16, 18, 19, 14, 13, 20, 10, 42, 46, 44, 41, 49, 7, 5, 3, 60, 8, 6, 4, 1, 2, 0, 10,
-				56, 53, 57, 58, 12, 21, 11, 17, 15, 16, 18, 19, 14, 13, 20, 74, 71, 97, 118, 73, 69, 120, 8, 31, 32, 33,
-				22, 24, 1, 2, 30, 29, 28, 27, 26, 6, 4, 23, 25, 119, 98, 117, 91, 36, 37, 34, 35, 99, 100, 9, 60, 3, 5,
-				72, 40, 87, 86, 54, 89, 90, 92, 93, 7, 94, 95, 96, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
-				111, 112, 70, 68, 64, 0, 40, 9, 3, 8, 6, 7, 5, 4, 1, 2, 71, 0, 53, 23, 13, 56, 26, 14, 28, 29, 15, 16,
-				30, 31, 17, 18, 32, 57, 33, 10, 58, 19, 22, 20, 24, 21, 12, 11, 25, 9, 3, 7, 40, 63, 61, 65, 88, 27, 62,
-				54, 4, 5, 8, 6, 1, 2, 55, 0 };
-	}
-
-	public final static byte asr[] = Asr.asr;
-
-	@Override
-	public final int asr(int index) {
-		return asr[index];
-	}
-
-	public interface Nasb {
-		public final static char nasb[] = { 0, 204, 12, 63, 12, 12, 12, 12, 12, 12, 67, 12, 12, 12, 130, 12, 220, 153,
-				27, 63, 63, 252, 63, 63, 63, 63, 63, 63, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 63, 12, 63, 195,
-				154, 154, 154, 154, 27, 81, 177, 177, 53, 5, 107, 232, 12, 12, 177, 256, 232, 232, 161, 1, 63, 56, 18,
-				12, 12, 195, 12, 12, 40, 40, 81, 195, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
-				63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 195, 63, 232, 12, 12, 12, 12, 76, 232, 30, 30,
-				184, 274, 275, 212, 275, 50, 275, 13, 275, 268, 10, 27, 107, 107, 30, 12, 63, 184, 102, 160, 20, 20, 12,
-				12, 12, 10, 27, 107, 154, 84, 220, 126, 219, 27, 219, 232, 107, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
-				12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 47, 11, 12, 245, 161, 148, 12, 12, 12, 12, 12, 12,
-				12, 12, 12, 12, 226, 27, 12, 177, 46, 67, 24, 67, 27, 11, 12, 12, 224, 107, 12, 232, 198, 177, 27, 18,
-				63, 154, 177, 71, 232, 12, 11, 27, 157, 18, 63, 195, 195, 195, 195, 12, 12, 274, 275, 275, 275, 275,
-				294, 10, 12, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 195, 63,
-				30, 186, 186, 186, 302, 47, 109, 109, 12, 239, 212, 177, 239, 17, 47, 232, 12, 170, 12, 201, 16, 47,
-				232, 38, 226, 126, 12, 256, 47, 232, 232, 232, 232, 81, 81, 27, 63, 12, 12, 12, 12, 12, 12, 12, 12, 12,
-				12, 12, 12, 177, 138, 27, 167, 12, 123, 12, 12, 79, 286, 302, 109, 109, 177, 177, 17, 177, 257, 11, 47,
-				177, 63, 12, 12, 20, 20, 27, 169, 184, 201, 232, 47, 177, 115, 12, 195, 226, 158, 12, 12, 232, 232, 17,
-				232, 63, 186, 117, 18, 212, 141, 12, 12, 67, 177, 179, 172, 12, 177, 177, 74, 74, 47, 257, 90, 12, 12,
-				117, 63, 63, 177, 11, 18, 232, 198, 214, 177, 12, 38, 81, 63, 107, 158, 47, 177, 117, 220, 177, 212,
-				277, 177, 239, 177, 94, 216, 167, 63, 12, 92, 12, 27, 184, 74, 74, 111, 90, 138, 63, 257, 177, 201, 117,
-				115, 232, 107, 117, 167, 259, 177, 12, 277, 287, 12, 140, 79, 201, 220, 94, 134, 119, 172, 63, 63, 87,
-				216, 12, 67, 58, 239, 138, 96, 232, 177, 138, 277, 259, 211, 179, 12, 12, 67, 12, 12, 98, 98, 167, 134,
-				137, 12, 239, 12, 188, 239, 67, 67, 11, 12, 177, 96, 138, 277, 177, 167, 143, 12, 232, 67, 239, 201,
-				277, 177, 12, 12, 177, 192, 119, 11, 81, 11, 239, 239, 230, 117, 259, 84, 61, 172, 167, 239, 124, 201,
-				154, 154, 69, 207, 12, 63, 12, 167, 12, 12, 12, 12, 208, 12, 257, 165, 167, 167, 257, 145, 232, 11, 11,
-				232, 177, 138, 232, 177, 212, 124, 167, 12, 100, 12, 12, 208, 12, 208, 282, 282, 234, 12, 282, 167, 167,
-				12, 177, 154, 96, 138, 177, 167, 12, 154, 208, 232, 172, 232, 264, 177, 12, 232, 69, 61, 98, 232, 232,
-				177, 208, 12, 208, 167, 172, 195, 208, 100, 138, 12, 145, 145, 170, 63, 12, 242, 167, 232, 22, 60, 219,
-				208, 232, 167, 22, 12, 208 };
-	}
-
-	public final static char nasb[] = Nasb.nasb;
-
-	@Override
-	public final int nasb(int index) {
-		return nasb[index];
-	}
-
-	public interface Nasr {
-		public final static char nasr[] = { 0, 3, 13, 10, 9, 137, 136, 113, 135, 134, 4, 2, 0, 166, 200, 0, 154, 2, 75,
-				0, 79, 0, 176, 0, 42, 1, 0, 2, 44, 0, 4, 10, 9, 2, 13, 127, 5, 0, 161, 0, 4, 2, 9, 10, 157, 0, 44, 2, 3,
-				0, 166, 205, 0, 5, 212, 0, 192, 0, 210, 0, 80, 148, 42, 10, 9, 2, 13, 4, 0, 175, 0, 5, 194, 0, 123, 0,
-				154, 75, 0, 170, 0, 5, 105, 0, 5, 28, 0, 75, 53, 0, 167, 0, 208, 0, 173, 0, 144, 0, 121, 0, 129, 0, 13,
-				2, 9, 10, 4, 94, 0, 122, 0, 4, 115, 209, 0, 159, 0, 51, 0, 186, 4, 185, 0, 140, 117, 0, 75, 156, 155, 0,
-				5, 60, 213, 0, 42, 174, 0, 5, 80, 0, 1, 140, 0, 201, 0, 42, 66, 0, 13, 2, 9, 10, 4, 36, 5, 60, 0, 2,
-				131, 0, 32, 100, 101, 5, 0, 5, 36, 39, 0, 32, 101, 100, 77, 4, 2, 9, 10, 5, 0, 5, 10, 9, 2, 77, 4, 98,
-				53, 0, 4, 115, 182, 0, 50, 42, 196, 5, 36, 0, 53, 4, 98, 27, 5, 0, 5, 191, 0, 80, 36, 50, 82, 5, 42, 0,
-				101, 100, 53, 77, 68, 4, 10, 9, 2, 0, 101, 100, 53, 4, 68, 0, 60, 5, 32, 0, 36, 5, 27, 198, 0, 2, 67, 0,
-				5, 195, 0, 137, 214, 136, 113, 135, 134, 0, 4, 10, 9, 13, 3, 1, 0, 132, 5, 50, 93, 0, 60, 5, 197, 0, 2,
-				4, 113, 110, 111, 112, 13, 69, 0, 5, 50, 93, 95, 0, 5, 60, 116, 0, 39, 4, 2, 9, 10, 5, 172, 0, 113, 69,
-				13, 110, 111, 112, 190, 0, 5, 50, 93, 115, 48, 4, 0 };
-	}
-
-	public final static char nasr[] = Nasr.nasr;
-
-	@Override
-	public final int nasr(int index) {
-		return nasr[index];
-	}
-
-	public interface TerminalIndex {
-		public final static char terminalIndex[] = { 0, 113, 114, 2, 31, 10, 13, 9, 79, 115, 100, 48, 52, 60, 68, 74,
-				75, 86, 87, 102, 105, 107, 104, 54, 106, 47, 64, 66, 70, 73, 76, 83, 89, 98, 11, 12, 7, 8, 112, 14, 120,
-				55, 61, 67, 84, 88, 90, 94, 97, 99, 109, 110, 111, 53, 19, 93, 63, 91, 101, 95, 1, 77, 122, 103, 20, 46,
-				58, 78, 44, 121, 33, 30, 118, 119, 96, 108, 49, 50, 56, 57, 59, 69, 71, 72, 85, 92, 17, 18, 65, 21, 22,
-				6, 23, 24, 25, 26, 27, 32, 4, 15, 16, 28, 29, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 51, 80, 81, 82, 5,
-				117, 3, 123, 62, 116 };
-	}
-
-	public final static char terminalIndex[] = TerminalIndex.terminalIndex;
-
-	@Override
-	public final int terminalIndex(int index) {
-		return terminalIndex[index];
-	}
-
-	public interface NonterminalIndex {
-		public final static char nonterminalIndex[] = { 0, 130, 135, 136, 0, 0, 134, 0, 0, 237, 243, 133, 0, 143, 0,
-				132, 0, 0, 142, 148, 0, 0, 149, 158, 159, 160, 161, 188, 151, 0, 162, 141, 126, 163, 164, 165, 131, 166,
-				167, 128, 168, 0, 129, 138, 137, 170, 169, 171, 185, 0, 0, 195, 172, 0, 173, 0, 0, 0, 0, 0, 152, 174,
-				175, 176, 0, 177, 180, 0, 155, 194, 0, 0, 0, 212, 0, 0, 209, 213, 0, 214, 127, 145, 179, 0, 0, 0, 0, 0,
-				0, 183, 0, 0, 0, 0, 125, 186, 0, 0, 210, 216, 217, 218, 0, 220, 157, 0, 146, 0, 0, 215, 197, 198, 199,
-				201, 227, 228, 182, 204, 0, 0, 219, 0, 0, 0, 0, 248, 0, 251, 0, 252, 0, 147, 187, 189, 190, 191, 192,
-				196, 200, 203, 0, 206, 0, 207, 0, 222, 225, 0, 0, 0, 246, 0, 247, 0, 0, 139, 140, 144, 0, 0, 154, 156,
-				0, 178, 0, 193, 0, 0, 0, 202, 0, 205, 211, 0, 223, 224, 0, 0, 229, 232, 0, 234, 236, 0, 240, 241, 242,
-				245, 0, 0, 249, 124, 0, 150, 153, 0, 181, 0, 184, 0, 0, 208, 221, 226, 0, 0, 230, 231, 233, 235, 0, 238,
-				239, 244, 250, 253, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
-
-	@Override
-	public final int nonterminalIndex(int index) {
-		return nonterminalIndex[index];
-	}
-
-	public interface ScopePrefix {
-		public final static char scopePrefix[] = { 172, 324, 600, 619, 317, 332, 551, 567, 578, 589, 372, 280, 294, 311,
-				344, 55, 305, 392, 430, 180, 608, 502, 20, 33, 64, 84, 93, 98, 103, 143, 208, 339, 350, 20, 467, 157,
-				286, 300, 526, 40, 157, 382, 20, 627, 40, 230, 259, 1, 14, 27, 74, 89, 119, 27, 361, 365, 448, 495, 547,
-				637, 641, 645, 110, 7, 110, 410, 426, 439, 460, 479, 539, 129, 129, 245, 439, 558, 574, 585, 596, 220,
-				513, 69, 69, 169, 235, 238, 69, 254, 275, 238, 238, 69, 369, 492, 499, 169, 69, 660, 123, 355, 414, 454,
-				486, 472, 69, 355, 401, 190, 117, 452, 649, 656, 649, 656, 78, 420, 150, 117, 117, 264 };
-	}
-
-	public final static char scopePrefix[] = ScopePrefix.scopePrefix;
-
-	@Override
-	public final int scopePrefix(int index) {
-		return scopePrefix[index];
-	}
-
-	public interface ScopeSuffix {
-		public final static char scopeSuffix[] = { 18, 148, 5, 5, 148, 148, 5, 5, 5, 5, 379, 148, 108, 148, 25, 61, 291,
-				398, 436, 186, 80, 508, 25, 38, 38, 38, 72, 72, 108, 148, 213, 31, 31, 25, 5, 162, 291, 114, 531, 51,
-				165, 387, 614, 632, 45, 224, 224, 5, 18, 31, 5, 72, 108, 31, 108, 108, 148, 257, 5, 5, 5, 257, 658, 11,
-				114, 379, 379, 379, 464, 483, 531, 133, 138, 249, 443, 562, 562, 562, 562, 224, 517, 72, 72, 5, 5, 241,
-				243, 257, 5, 278, 278, 243, 108, 5, 257, 5, 524, 5, 126, 358, 417, 457, 489, 475, 543, 534, 404, 193,
-				108, 108, 651, 651, 653, 653, 80, 422, 152, 215, 200, 266 };
-	}
-
-	public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
-
-	@Override
-	public final int scopeSuffix(int index) {
-		return scopeSuffix[index];
-	}
-
-	public interface ScopeLhs {
-		public final static char scopeLhs[] = { 48, 112, 18, 18, 92, 112, 18, 18, 18, 18, 85, 97, 49, 92, 111, 90, 58,
-				85, 84, 48, 18, 20, 190, 3, 7, 8, 182, 182, 178, 110, 48, 111, 111, 138, 45, 147, 59, 49, 157, 151, 147,
-				85, 18, 18, 151, 102, 72, 153, 88, 190, 185, 182, 178, 138, 199, 56, 66, 161, 18, 18, 18, 18, 12, 129,
-				178, 85, 84, 84, 64, 41, 157, 114, 114, 68, 84, 18, 18, 18, 18, 102, 20, 186, 182, 201, 100, 109, 74,
-				79, 73, 172, 89, 138, 86, 162, 161, 192, 157, 17, 178, 138, 116, 83, 22, 45, 157, 157, 85, 48, 178, 78,
-				155, 44, 155, 44, 185, 116, 110, 48, 48, 72 };
-	}
-
-	public final static char scopeLhs[] = ScopeLhs.scopeLhs;
-
-	@Override
-	public final int scopeLhs(int index) {
-		return scopeLhs[index];
-	}
-
-	public interface ScopeLa {
-		public final static byte scopeLa[] = { 113, 73, 72, 72, 73, 73, 72, 72, 72, 72, 72, 73, 40, 73, 1, 64, 1, 72,
-				121, 69, 3, 72, 1, 64, 64, 64, 1, 1, 40, 73, 69, 1, 1, 1, 72, 73, 1, 1, 4, 64, 68, 40, 1, 1, 64, 72, 72,
-				72, 113, 1, 72, 1, 40, 1, 40, 40, 73, 118, 72, 72, 72, 118, 1, 72, 1, 72, 72, 72, 71, 71, 4, 1, 1, 5,
-				72, 64, 64, 64, 64, 72, 3, 1, 1, 72, 72, 3, 1, 118, 72, 1, 1, 1, 40, 72, 118, 72, 6, 72, 1, 55, 70, 71,
-				72, 64, 1, 55, 75, 74, 40, 40, 4, 4, 4, 4, 3, 1, 69, 1, 1, 3 };
-	}
-
-	public final static byte scopeLa[] = ScopeLa.scopeLa;
-
-	@Override
-	public final int scopeLa(int index) {
-		return scopeLa[index];
-	}
-
-	public interface ScopeStateSet {
-		public final static char scopeStateSet[] = { 85, 183, 284, 284, 107, 183, 284, 284, 284, 284, 95, 109, 85, 107,
-				183, 107, 87, 95, 95, 85, 284, 284, 118, 214, 260, 260, 54, 54, 82, 183, 85, 183, 183, 185, 140, 371,
-				87, 85, 165, 50, 371, 95, 284, 284, 50, 174, 66, 26, 95, 118, 30, 54, 82, 185, 22, 87, 33, 63, 284, 284,
-				284, 284, 264, 6, 82, 95, 95, 95, 148, 344, 165, 183, 183, 124, 95, 284, 284, 284, 284, 174, 284, 30,
-				54, 24, 174, 176, 66, 170, 66, 60, 71, 185, 95, 57, 63, 168, 165, 284, 82, 185, 1, 95, 285, 140, 165,
-				165, 95, 85, 82, 11, 121, 189, 121, 189, 30, 1, 183, 85, 85, 66 };
-	}
-
-	public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet;
-
-	@Override
-	public final int scopeStateSet(int index) {
-		return scopeStateSet[index];
-	}
-
-	public interface ScopeRhs {
-		public final static char scopeRhs[] = { 0, 338, 3, 59, 0, 126, 0, 337, 3, 113, 0, 126, 180, 0, 127, 188, 74, 0,
-				224, 0, 197, 166, 126, 10, 0, 136, 0, 166, 126, 10, 0, 135, 0, 271, 127, 54, 124, 0, 20, 0, 309, 127,
-				54, 55, 0, 20, 53, 0, 33, 132, 0, 20, 53, 0, 0, 309, 127, 54, 55, 215, 0, 20, 186, 0, 271, 127, 54, 132,
-				0, 189, 126, 0, 141, 0, 227, 3, 308, 0, 308, 0, 2, 0, 126, 0, 271, 127, 54, 131, 0, 189, 126, 237, 0,
-				189, 126, 22, 237, 0, 189, 126, 332, 22, 0, 128, 197, 166, 126, 0, 128, 0, 197, 166, 126, 0, 134, 128,
-				0, 172, 0, 328, 127, 172, 0, 127, 172, 0, 230, 128, 0, 166, 327, 235, 0, 136, 0, 0, 0, 0, 135, 0, 0, 0,
-				0, 326, 127, 164, 236, 0, 127, 0, 236, 0, 129, 0, 0, 127, 0, 325, 127, 164, 270, 0, 127, 0, 0, 44, 127,
-				0, 0, 150, 3, 0, 127, 296, 295, 127, 74, 294, 172, 0, 295, 127, 74, 294, 172, 0, 223, 0, 224, 0, 294,
-				172, 0, 96, 0, 0, 223, 0, 224, 0, 211, 96, 0, 0, 223, 0, 224, 0, 295, 127, 294, 172, 0, 223, 0, 211, 0,
-				0, 223, 0, 240, 127, 3, 0, 126, 0, 0, 0, 0, 0, 240, 127, 3, 222, 0, 231, 3, 0, 220, 127, 0, 216, 0, 146,
-				0, 175, 166, 126, 0, 10, 0, 0, 0, 0, 226, 60, 0, 125, 0, 240, 127, 3, 195, 0, 195, 0, 2, 0, 0, 126, 0,
-				0, 0, 0, 0, 211, 3, 0, 209, 0, 252, 127, 164, 38, 27, 0, 189, 126, 61, 63, 0, 204, 128, 0, 128, 189,
-				126, 292, 63, 0, 189, 126, 292, 63, 0, 189, 126, 70, 123, 61, 0, 252, 127, 164, 262, 61, 0, 252, 127,
-				164, 262, 239, 61, 0, 289, 290, 127, 164, 123, 322, 56, 0, 289, 290, 127, 164, 322, 56, 0, 189, 126,
-				288, 56, 0, 197, 189, 126, 288, 235, 0, 189, 126, 288, 235, 0, 166, 126, 0, 93, 136, 0, 286, 127, 149,
-				0, 286, 127, 172, 0, 158, 84, 0, 317, 161, 319, 320, 3, 81, 0, 126, 179, 0, 319, 320, 3, 81, 0, 128, 0,
-				126, 179, 0, 158, 3, 75, 204, 80, 0, 126, 128, 0, 204, 80, 0, 108, 2, 131, 126, 128, 0, 238, 3, 75, 0,
-				211, 182, 0, 33, 169, 0, 182, 0, 183, 33, 169, 0, 238, 3, 85, 0, 204, 154, 238, 3, 83, 0, 62, 179, 0,
-				238, 3, 83, 0, 126, 179, 62, 179, 0, 318, 127, 164, 0, 158, 0, 226, 77, 0, 30, 179, 0, 158, 102, 185, 0,
-				30, 177, 0, 148, 64, 167, 3, 0, 167, 3, 0, 20, 161, 126, 0, 158, 102, 162, 0, 30, 169, 0, 203, 3, 0,
-				126, 149, 0, 227, 3, 0, 226, 60, 283, 0, 158, 60, 0, 203, 3, 314, 67, 126, 0, 126, 0, 0, 0, 0, 314, 67,
-				126, 0, 2, 145, 126, 0, 0, 0, 0, 147, 0, 125, 55, 166, 126, 0, 31, 147, 0, 93, 136, 31, 147, 0, 228,
-				189, 126, 0, 146, 31, 147, 0, 158, 3, 49, 0, 158, 3, 64, 203, 54, 41, 0, 203, 54, 41, 0, 20, 2, 131,
-				126, 0, 158, 3, 64, 203, 54, 44, 0, 203, 54, 44, 0, 158, 3, 64, 203, 54, 46, 0, 203, 54, 46, 0, 158, 3,
-				64, 203, 54, 42, 0, 203, 54, 42, 0, 227, 3, 125, 197, 166, 126, 10, 0, 125, 197, 166, 126, 10, 0, 136,
-				2, 0, 126, 0, 227, 3, 124, 276, 166, 126, 10, 0, 276, 166, 126, 10, 0, 135, 2, 0, 126, 0, 227, 3, 135,
-				0, 227, 3, 140, 0, 158, 60, 140, 0, 278, 0, 31, 0, 31, 139, 0, 165, 0, 134, 0, 158, 3, 0 };
-	}
-
-	public final static char scopeRhs[] = ScopeRhs.scopeRhs;
-
-	@Override
-	public final int scopeRhs(int index) {
-		return scopeRhs[index];
-	}
-
-	public interface ScopeState {
-		public final static char scopeState[] = { 0, 5858, 6334, 6328, 5983, 0, 2804, 1340, 2010, 1062, 0, 5305, 5243,
-				5175, 5044, 4982, 4920, 4858, 4796, 4734, 4535, 4473, 4798, 0, 2593, 0, 2930, 2310, 1994, 0, 2273, 2141,
-				0, 5305, 5243, 2995, 2871, 5175, 5044, 4982, 4920, 4858, 4796, 2869, 4734, 4535, 4473, 2598, 2540, 0,
-				6109, 4896, 6039, 0, 4361, 2079, 0, 2445, 2088, 0, 652, 5997, 0, 823, 706, 0, 4677, 652, 4422, 4664,
-				5997, 4624, 5133, 2511, 2181, 3844, 3278, 2379, 4229, 4215, 4172, 0, 6234, 6195, 0, 6234, 6195, 5864,
-				6161, 6101, 5852, 6089, 6029, 5840, 5968, 5305, 5243, 5175, 5044, 4982, 4920, 4858, 4796, 4734, 4535,
-				4473, 0, 6234, 6195, 5864, 6161, 6101, 5852, 6089, 6029, 5840, 5968, 0, 6162, 5442, 0, 2318, 2244, 0,
-				3844, 4677, 4990, 4422, 4664, 6202, 4229, 2917, 3603, 2866, 4484, 4706, 2471, 3345, 2080, 0, 3408, 3509,
-				3620, 3565, 3857, 3817, 3707, 3293, 2877, 928, 2811, 2745, 2679, 2613, 2547, 2481, 2415, 2349, 2283,
-				2217, 2151, 836, 768, 676, 0, 868, 745, 0, 956, 0, 2260, 1954, 650, 648, 4664, 4706, 4624, 4215, 4172,
-				3257, 3890, 717, 0, 6162, 5442, 5962, 598, 4307, 0, 6315, 6301, 6263, 6246, 6110, 5872, 5314, 5184,
-				5011, 4949, 5264, 5195, 4887, 4867, 5073, 4564, 4328, 764, 3884, 4828, 4502, 4252, 924, 672, 0, 4262,
-				3978, 6315, 6301, 6263, 3903, 3898, 6246, 640, 6110, 5872, 5314, 5184, 5011, 1765, 3594, 1718, 1671,
-				4949, 1624, 5264, 5195, 1577, 1480, 1430, 1383, 4887, 4867, 1334, 3330, 5073, 3184, 4564, 3445, 4328,
-				764, 3884, 1248, 4828, 4502, 4252, 5962, 809, 4307, 924, 672, 2841, 2775, 1192, 1041, 903, 4624, 5133,
-				2511, 2181, 3844, 4677, 3278, 652, 4422, 4664, 2379, 4229, 4215, 5997, 4172, 2709, 2643, 868, 745, 5818,
-				2877, 4185, 928, 3408, 2811, 2745, 2679, 2613, 2547, 2481, 2415, 2349, 2283, 2217, 2151, 3509, 3620,
-				3565, 3857, 3817, 3707, 4145, 4118, 4091, 5795, 3293, 5772, 836, 768, 676, 3369, 3471, 1105, 1253, 3786,
-				3755, 3673, 4446, 4379, 4064, 4037, 4010, 3937, 5418, 5394, 5146, 4637, 4333, 5749, 5726, 5703, 5680,
-				5657, 5633, 5603, 5580, 5514, 5488, 5457, 2943, 3230, 3188, 3131, 3089, 3032, 2990, 1388, 1341, 1292,
-				2094, 2052, 2005, 1958, 1911, 1864, 1817, 1770, 1723, 1676, 1629, 1582, 1535, 598, 1488, 1438, 1206,
-				1057, 994, 1143, 0 };
-	}
-
-	public final static char scopeState[] = ScopeState.scopeState;
-
-	@Override
-	public final int scopeState(int index) {
-		return scopeState[index];
-	}
-
-	public interface InSymb {
-		public final static char inSymb[] = { 0, 0, 313, 127, 285, 49, 41, 44, 46, 42, 10, 135, 124, 131, 8, 132, 4, 3,
-				126, 45, 39, 6, 35, 34, 5, 7, 37, 36, 140, 145, 147, 146, 152, 148, 156, 155, 159, 157, 160, 59, 162,
-				68, 3, 54, 54, 54, 54, 126, 3, 54, 54, 182, 127, 60, 3, 66, 67, 54, 6, 203, 158, 182, 127, 66, 67, 166,
-				165, 124, 3, 123, 125, 117, 119, 3, 60, 91, 98, 35, 34, 100, 99, 5, 90, 89, 64, 54, 86, 87, 7, 93, 92,
-				95, 94, 96, 112, 111, 110, 109, 108, 107, 106, 105, 104, 103, 70, 102, 101, 158, 203, 203, 203, 203,
-				166, 227, 127, 127, 127, 255, 256, 236, 257, 235, 258, 56, 287, 259, 10, 126, 60, 60, 127, 124, 154,
-				127, 60, 3, 223, 222, 135, 125, 124, 10, 126, 60, 314, 3, 197, 4, 55, 126, 55, 227, 158, 146, 146, 145,
-				145, 145, 148, 148, 148, 148, 147, 147, 155, 152, 152, 157, 156, 159, 158, 160, 64, 64, 64, 64, 197,
-				276, 271, 127, 249, 3, 167, 148, 174, 169, 183, 176, 184, 185, 274, 271, 220, 126, 175, 164, 327, 288,
-				322, 288, 126, 189, 166, 271, 220, 226, 162, 231, 127, 3, 126, 166, 216, 3, 315, 182, 150, 278, 197,
-				126, 189, 166, 71, 3, 3, 3, 3, 125, 124, 255, 256, 257, 258, 336, 259, 10, 167, 90, 89, 54, 7, 93, 92,
-				95, 94, 96, 112, 111, 110, 109, 108, 107, 106, 105, 104, 103, 70, 102, 101, 68, 166, 7, 5, 127, 166,
-				243, 125, 124, 126, 123, 164, 126, 166, 55, 240, 241, 149, 242, 127, 166, 55, 203, 127, 127, 4, 228, 6,
-				55, 158, 158, 158, 158, 3, 3, 126, 64, 148, 148, 148, 169, 167, 167, 176, 174, 183, 158, 184, 175, 175,
-				326, 126, 170, 237, 61, 55, 215, 63, 172, 329, 125, 124, 244, 244, 189, 164, 127, 189, 197, 154, 70,
-				231, 211, 199, 195, 126, 3, 127, 68, 240, 197, 154, 280, 283, 60, 190, 4, 123, 125, 227, 227, 166, 148,
-				71, 5, 127, 166, 262, 239, 54, 55, 292, 294, 127, 3, 195, 244, 244, 127, 127, 197, 127, 290, 123, 291,
-				127, 70, 70, 3, 189, 166, 211, 127, 220, 154, 125, 127, 3, 60, 158, 4, 197, 175, 173, 197, 164, 262, 64,
-				54, 126, 74, 127, 220, 328, 71, 303, 211, 124, 126, 127, 127, 127, 71, 290, 289, 70, 68, 229, 127, 127,
-				280, 227, 226, 127, 128, 127, 164, 27, 55, 172, 65, 61, 63, 127, 189, 127, 295, 71, 68, 71, 70, 166,
-				220, 331, 237, 22, 126, 289, 127, 240, 229, 252, 254, 127, 38, 127, 3, 123, 61, 309, 55, 10, 53, 128,
-				295, 164, 307, 126, 308, 68, 126, 22, 332, 189, 59, 154, 127, 252, 127, 164, 286, 265, 293, 38, 70, 126,
-				68, 64, 54, 243, 243, 296, 127, 68, 189, 3, 189, 126, 126, 3, 127, 127, 3, 70, 68, 154, 126, 189, 127,
-				70, 70, 127, 318, 79, 77, 1, 158, 9, 85, 83, 81, 80, 75, 82, 84, 78, 76, 61, 74, 227, 189, 189, 338,
-				229, 252, 150, 164, 270, 189, 239, 309, 297, 113, 9, 71, 226, 71, 3, 3, 3, 204, 3, 123, 158, 123, 188,
-				68, 127, 127, 164, 239, 64, 3, 71, 238, 182, 238, 320, 149, 75, 238, 127, 127, 53, 97, 337, 182, 154,
-				211, 154, 319, 127, 3, 154, 297, 325, 243, 154, 154, 127, 70, 204, 161, 286, 158, 202, 68, 70, 121, 317,
-				154, 202, 9, 154 };
-	}
-
-	public final static char inSymb[] = InSymb.inSymb;
-
-	@Override
-	public final int inSymb(int index) {
-		return inSymb[index];
-	}
-
-	public interface Name {
-		public final static String name[] = { "", "[", "(", ".", ".*", "->", "->*", "++", "--", "&", "*", "+", "-", "~",
-				"!", "/", "%", ">>", "<<", "<", ">", "<=", ">=", "==", "!=", "^", "|", "&&", "||", "?", ":", "::",
-				"...", "=", "*=", "/=", "%=", "+=", "-=", ">>=", "<<=", "&=", "^=", "|=", ",", "$empty", "asm", "auto",
-				"bool", "break", "case", "catch", "char", "class", "const", "const_cast", "continue", "default",
-				"delete", "do", "double", "dynamic_cast", "else", "enum", "explicit", "export", "extern", "false",
-				"float", "for", "friend", "goto", "if", "inline", "int", "long", "mutable", "namespace", "new",
-				"operator", "private", "protected", "public", "register", "reinterpret_cast", "return", "short",
-				"signed", "sizeof", "static", "static_cast", "struct", "switch", "template", "this", "throw", "try",
-				"true", "typedef", "typeid", "typename", "union", "unsigned", "using", "virtual", "void", "volatile",
-				"wchar_t", "while", "integer", "floating", "charconst", "stringlit", "identifier", "Completion",
-				"EndOfCompletion", "Invalid", "RightBracket", "RightParen", "RightBrace", "SemiColon", "LeftBrace",
-				"ERROR_TOKEN", "EOF_TOKEN", "no_sizeof_type_id_start", "]", ")", "}", ";", "{", "identifier_token",
-				"expression", "id_expression", "qualified_or_unqualified_name", "unqualified_id_name",
-				"identifier_name", "template_id_name", "nested_name_specifier", "class_or_namespace_name",
-				"nested_name_specifier_with_tem" + "plate", "class_or_namespace_name_with_t" + "emplate", "class_name",
-				"postfix_expression", "simple_type_specifier", "pseudo_destructor_name", "type_id", "type_name",
-				"destructor_type_name", "unary_expression", "cast_expression", "new_type_id", "expression_list",
-				"type_specifier_seq", "new_declarator", "new_pointer_operators", "ptr_operator",
-				"new_array_expressions", "constant_expression", "pm_expression", "multiplicative_expression",
-				"additive_expression", "shift_expression", "relational_expression", "equality_expression",
-				"and_expression", "exclusive_or_expression", "inclusive_or_expression", "logical_and_expression",
-				"logical_or_expression", "assignment_expression", "relational_expression_inTempla" + "te",
-				"equality_expression_inTemplate", "and_expression_inTemplate",
-				"exclusive_or_expression_inTemp" + "late", "inclusive_or_expression_inTemp" + "late",
-				"logical_and_expression_inTempl" + "ate", "logical_or_expression_inTempla" + "te",
-				"assignment_expression_inTempla" + "te", "expression_list_actual", "statement", "compound_statement",
-				"statement_seq", "condition", "declarator", "for_init_statement", "function_definition", "declaration",
-				"declaration_seq", "declaration_specifiers", "simple_declaration_specifiers",
-				"class_declaration_specifiers", "elaborated_declaration_specifi" + "ers", "enum_declaration_specifiers",
-				"type_name_declaration_specifie" + "rs", "no_type_declaration_specifier", "cv_qualifier",
-				"no_type_declaration_specifiers", "class_specifier", "elaborated_type_specifier", "enum_specifier",
-				"type_name_specifier", "class_keyword", "enumerator_list", "enumerator_definition", "namespace_name",
-				"init_declarator_list", "init_declarator_complete", "complete_declarator", "initializer",
-				"direct_declarator", "ptr_operator_seq", "function_declarator", "basic_direct_declarator",
-				"array_direct_declarator", "array_modifier", "abstract_declarator", "direct_abstract_declarator",
-				"basic_direct_abstract_declarat" + "or", "array_direct_abstract_declarat" + "or",
-				"parameter_declaration_list", "parameter_declaration", "parameter_init_declarator",
-				"parameter_initializer", "function_body", "handler_seq", "initializer_clause", "initializer_seq",
-				"class_head", "access_specifier_keyword", "member_declaration", "member_declarator_list",
-				"member_declaration_list", "member_declarator_complete", "constant_initializer", "bit_field_declarator",
-				"base_specifier_list", "base_specifier", "conversion_function_id", "conversion_type_id",
-				"conversion_declarator", "mem_initializer_list", "mem_initializer", "mem_initializer_name",
-				"operator_id_name", "overloadable_operator", "template_parameter_list", "template_parameter",
-				"template_argument_list", "template_argument", "type_name_specifier_inTemplate",
-				"type_name_declaration_specifie" + "rs_inTemplate", "type_specifier_seq_inTemplate", "handler",
-				"exception_declaration", "type_id_list" };
-	}
-
-	public final static String name[] = Name.name;
-
-	@Override
-	public final String name(int index) {
-		return name[index];
-	}
-
-	public final static int ERROR_SYMBOL = 62, SCOPE_UBOUND = 119, SCOPE_SIZE = 120, MAX_NAME_LENGTH = 43;
-
-	@Override
-	public final int getErrorSymbol() {
-		return ERROR_SYMBOL;
-	}
-
-	@Override
-	public final int getScopeUbound() {
-		return SCOPE_UBOUND;
-	}
-
-	@Override
-	public final int getScopeSize() {
-		return SCOPE_SIZE;
-	}
-
-	@Override
-	public final int getMaxNameLength() {
-		return MAX_NAME_LENGTH;
-	}
-
-	public final static int NUM_STATES = 602, NT_OFFSET = 122, LA_STATE_OFFSET = 7489, MAX_LA = 2147483647,
-			NUM_RULES = 597, NUM_NONTERMINALS = 225, NUM_SYMBOLS = 347, SEGMENT_SIZE = 8192, START_STATE = 4508,
-			IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 120, EOLT_SYMBOL = 120, ACCEPT_ACTION = 6452, ERROR_ACTION = 6892;
-
-	public final static boolean BACKTRACK = true;
-
-	@Override
-	public final int getNumStates() {
-		return NUM_STATES;
-	}
-
-	@Override
-	public final int getNtOffset() {
-		return NT_OFFSET;
-	}
-
-	@Override
-	public final int getLaStateOffset() {
-		return LA_STATE_OFFSET;
-	}
-
-	@Override
-	public final int getMaxLa() {
-		return MAX_LA;
-	}
-
-	@Override
-	public final int getNumRules() {
-		return NUM_RULES;
-	}
-
-	@Override
-	public final int getNumNonterminals() {
-		return NUM_NONTERMINALS;
-	}
-
-	@Override
-	public final int getNumSymbols() {
-		return NUM_SYMBOLS;
-	}
-
-	@Override
-	public final int getSegmentSize() {
-		return SEGMENT_SIZE;
-	}
-
-	@Override
-	public final int getStartState() {
-		return START_STATE;
-	}
-
-	@Override
-	public final int getStartSymbol() {
-		return lhs[0];
-	}
-
-	public final int getIdentifierSymbol() {
-		return IDENTIFIER_SYMBOL;
-	}
-
-	@Override
-	public final int getEoftSymbol() {
-		return EOFT_SYMBOL;
-	}
-
-	@Override
-	public final int getEoltSymbol() {
-		return EOLT_SYMBOL;
-	}
-
-	@Override
-	public final int getAcceptAction() {
-		return ACCEPT_ACTION;
-	}
-
-	@Override
-	public final int getErrorAction() {
-		return ERROR_ACTION;
-	}
-
-	@Override
-	public final boolean isValidForParser() {
-		return isValidForParser;
-	}
-
-	@Override
-	public final boolean getBacktrack() {
-		return BACKTRACK;
-	}
-
-	@Override
-	public final int originalState(int state) {
-		return -baseCheck[state];
-	}
-
-	@Override
-	public final int asi(int state) {
-		return asb[originalState(state)];
-	}
-
-	@Override
-	public final int nasi(int state) {
-		return nasb[originalState(state)];
-	}
-
-	@Override
-	public final int inSymbol(int state) {
-		return inSymb[originalState(state)];
-	}
-
-	@Override
-	public final int ntAction(int state, int sym) {
-		return baseAction[state + sym];
-	}
-
-	@Override
-	public final int tAction(int state, int sym) {
-		int i = baseAction[state], k = i + sym;
-		return termAction[termCheck[k] == sym ? k : i];
-	}
-
-	@Override
-	public final int lookAhead(int la_state, int sym) {
-		int k = la_state + sym;
-		return termAction[termCheck[k] == sym ? k : la_state];
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParsersym.java
deleted file mode 100644
index f40ff74..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParsersym.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2010 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.lrparser.cpp;
-
-public interface CPPSizeofExpressionParsersym {
-	public final static int TK_asm = 65, TK_auto = 25, TK_bool = 11, TK_break = 76, TK_case = 77, TK_catch = 113,
-			TK_char = 12, TK_class = 53, TK_const = 23, TK_const_cast = 41, TK_continue = 78, TK_default = 79,
-			TK_delete = 66, TK_do = 80, TK_double = 13, TK_dynamic_cast = 42, TK_else = 121, TK_enum = 56,
-			TK_explicit = 26, TK_export = 88, TK_extern = 27, TK_false = 43, TK_float = 14, TK_for = 81, TK_friend = 28,
-			TK_goto = 82, TK_if = 83, TK_inline = 29, TK_int = 15, TK_long = 16, TK_mutable = 30, TK_namespace = 61,
-			TK_new = 67, TK_operator = 8, TK_private = 114, TK_protected = 115, TK_public = 116, TK_register = 31,
-			TK_reinterpret_cast = 44, TK_return = 84, TK_short = 17, TK_signed = 18, TK_sizeof = 45, TK_static = 32,
-			TK_static_cast = 46, TK_struct = 57, TK_switch = 85, TK_template = 55, TK_this = 47, TK_throw = 59,
-			TK_try = 74, TK_true = 48, TK_typedef = 33, TK_typeid = 49, TK_typename = 10, TK_union = 58,
-			TK_unsigned = 19, TK_using = 63, TK_virtual = 22, TK_void = 20, TK_volatile = 24, TK_wchar_t = 21,
-			TK_while = 75, TK_integer = 50, TK_floating = 51, TK_charconst = 52, TK_stringlit = 38, TK_identifier = 1,
-			TK_Completion = 2, TK_EndOfCompletion = 9, TK_Invalid = 122, TK_LeftBracket = 60, TK_LeftParen = 3,
-			TK_Dot = 119, TK_DotStar = 98, TK_Arrow = 117, TK_ArrowStar = 91, TK_PlusPlus = 36, TK_MinusMinus = 37,
-			TK_And = 7, TK_Star = 5, TK_Plus = 34, TK_Minus = 35, TK_Tilde = 6, TK_Bang = 39, TK_Slash = 99,
-			TK_Percent = 100, TK_RightShift = 86, TK_LeftShift = 87, TK_LT = 54, TK_GT = 64, TK_LE = 89, TK_GE = 90,
-			TK_EQ = 92, TK_NE = 93, TK_Caret = 94, TK_Or = 95, TK_AndAnd = 96, TK_OrOr = 101, TK_Question = 102,
-			TK_Colon = 71, TK_ColonColon = 4, TK_DotDotDot = 97, TK_Assign = 70, TK_StarAssign = 103,
-			TK_SlashAssign = 104, TK_PercentAssign = 105, TK_PlusAssign = 106, TK_MinusAssign = 107,
-			TK_RightShiftAssign = 108, TK_LeftShiftAssign = 109, TK_AndAssign = 110, TK_CaretAssign = 111,
-			TK_OrAssign = 112, TK_Comma = 68, TK_RightBracket = 118, TK_RightParen = 72, TK_RightBrace = 73,
-			TK_SemiColon = 40, TK_LeftBrace = 69, TK_ERROR_TOKEN = 62, TK_EOF_TOKEN = 120;
-
-	public final static String orderedTerminalSymbols[] = { "", "identifier", "Completion", "LeftParen", "ColonColon",
-			"Star", "Tilde", "And", "operator", "EndOfCompletion", "typename", "bool", "char", "double", "float", "int",
-			"long", "short", "signed", "unsigned", "void", "wchar_t", "virtual", "const", "volatile", "auto",
-			"explicit", "extern", "friend", "inline", "mutable", "register", "static", "typedef", "Plus", "Minus",
-			"PlusPlus", "MinusMinus", "stringlit", "Bang", "SemiColon", "const_cast", "dynamic_cast", "false",
-			"reinterpret_cast", "sizeof", "static_cast", "this", "true", "typeid", "integer", "floating", "charconst",
-			"class", "LT", "template", "enum", "struct", "union", "throw", "LeftBracket", "namespace", "ERROR_TOKEN",
-			"using", "GT", "asm", "delete", "new", "Comma", "LeftBrace", "Assign", "Colon", "RightParen", "RightBrace",
-			"try", "while", "break", "case", "continue", "default", "do", "for", "goto", "if", "return", "switch",
-			"RightShift", "LeftShift", "export", "LE", "GE", "ArrowStar", "EQ", "NE", "Caret", "Or", "AndAnd",
-			"DotDotDot", "DotStar", "Slash", "Percent", "OrOr", "Question", "StarAssign", "SlashAssign",
-			"PercentAssign", "PlusAssign", "MinusAssign", "RightShiftAssign", "LeftShiftAssign", "AndAssign",
-			"CaretAssign", "OrAssign", "catch", "private", "protected", "public", "Arrow", "RightBracket", "Dot",
-			"EOF_TOKEN", "else", "Invalid" };
-
-	public final static boolean isValidForParser = true;
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParser.java
deleted file mode 100644
index 8ddcf57..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParser.java
+++ /dev/null
@@ -1,2867 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2015 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.lrparser.cpp;
-
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.cdt.core.dom.ast.IASTCompletionNode;
-import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTBinaryExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCastExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTLiteralExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateParameter;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTypeIdExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTUnaryExpression;
-import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter;
-import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
-import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
-import org.eclipse.cdt.core.dom.lrparser.ITokenCollector;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
-import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
-import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
-import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPBuildASTParserAction;
-import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPSecondaryParserFactory;
-import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser;
-import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
-import org.eclipse.cdt.core.index.IIndex;
-import org.eclipse.cdt.core.parser.IScanner;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPNodeFactory;
-
-import lpg.lpgjavaruntime.BadParseException;
-import lpg.lpgjavaruntime.BadParseSymFileException;
-import lpg.lpgjavaruntime.DiagnoseParser;
-import lpg.lpgjavaruntime.ErrorToken;
-import lpg.lpgjavaruntime.IToken;
-import lpg.lpgjavaruntime.LexStream;
-import lpg.lpgjavaruntime.Monitor;
-import lpg.lpgjavaruntime.NotBacktrackParseTableException;
-import lpg.lpgjavaruntime.NullExportedSymbolsException;
-import lpg.lpgjavaruntime.NullTerminalSymbolsException;
-import lpg.lpgjavaruntime.ParseErrorCodes;
-import lpg.lpgjavaruntime.ParseTable;
-import lpg.lpgjavaruntime.PrsStream;
-import lpg.lpgjavaruntime.RuleAction;
-import lpg.lpgjavaruntime.Token;
-import lpg.lpgjavaruntime.UndefinedEofSymbolException;
-import lpg.lpgjavaruntime.UnimplementedTerminalsException;
-
-public class CPPTemplateTypeParameterParser extends PrsStream
-		implements RuleAction, ITokenStream, ITokenCollector, ISecondaryParser<ICPPASTTemplateParameter> {
-	private static ParseTable prs = new CPPTemplateTypeParameterParserprs();
-	private FixedBacktrackingParser btParser;
-
-	public FixedBacktrackingParser getParser() {
-		return btParser;
-	}
-
-	private void setResult(Object object) {
-		btParser.setSym1(object);
-	}
-
-	public Object getRhsSym(int i) {
-		return btParser.getSym(i);
-	}
-
-	public int getRhsTokenIndex(int i) {
-		return btParser.getToken(i);
-	}
-
-	public IToken getRhsIToken(int i) {
-		return super.getIToken(getRhsTokenIndex(i));
-	}
-
-	public int getRhsFirstTokenIndex(int i) {
-		return btParser.getFirstToken(i);
-	}
-
-	public IToken getRhsFirstIToken(int i) {
-		return super.getIToken(getRhsFirstTokenIndex(i));
-	}
-
-	public int getRhsLastTokenIndex(int i) {
-		return btParser.getLastToken(i);
-	}
-
-	public IToken getRhsLastIToken(int i) {
-		return super.getIToken(getRhsLastTokenIndex(i));
-	}
-
-	public int getLeftSpan() {
-		return btParser.getFirstToken();
-	}
-
-	@Override
-	public IToken getLeftIToken() {
-		return super.getIToken(getLeftSpan());
-	}
-
-	public int getRightSpan() {
-		return btParser.getLastToken();
-	}
-
-	@Override
-	public IToken getRightIToken() {
-		return super.getIToken(getRightSpan());
-	}
-
-	public int getRhsErrorTokenIndex(int i) {
-		int index = btParser.getToken(i);
-		IToken err = super.getIToken(index);
-		return (err instanceof ErrorToken ? index : 0);
-	}
-
-	public ErrorToken getRhsErrorIToken(int i) {
-		int index = btParser.getToken(i);
-		IToken err = super.getIToken(index);
-		return (ErrorToken) (err instanceof ErrorToken ? err : null);
-	}
-
-	public CPPTemplateTypeParameterParser(LexStream lexStream) {
-		super(lexStream);
-
-		try {
-			super.remapTerminalSymbols(orderedTerminalSymbols(), CPPTemplateTypeParameterParserprs.EOFT_SYMBOL);
-		} catch (NullExportedSymbolsException e) {
-		} catch (NullTerminalSymbolsException e) {
-		} catch (UnimplementedTerminalsException e) {
-			java.util.ArrayList unimplemented_symbols = e.getSymbols();
-			System.out.println("The Lexer will not scan the following token(s):");
-			for (int i = 0; i < unimplemented_symbols.size(); i++) {
-				Integer id = (Integer) unimplemented_symbols.get(i);
-				System.out.println("    " + CPPTemplateTypeParameterParsersym.orderedTerminalSymbols[id.intValue()]);
-			}
-			System.out.println();
-		} catch (UndefinedEofSymbolException e) {
-			throw new Error(new UndefinedEofSymbolException("The Lexer does not implement the Eof symbol "
-					+ CPPTemplateTypeParameterParsersym.orderedTerminalSymbols[CPPTemplateTypeParameterParserprs.EOFT_SYMBOL]));
-		}
-	}
-
-	@Override
-	public String[] orderedTerminalSymbols() {
-		return CPPTemplateTypeParameterParsersym.orderedTerminalSymbols;
-	}
-
-	public String getTokenKindName(int kind) {
-		return CPPTemplateTypeParameterParsersym.orderedTerminalSymbols[kind];
-	}
-
-	public int getEOFTokenKind() {
-		return CPPTemplateTypeParameterParserprs.EOFT_SYMBOL;
-	}
-
-	public PrsStream getParseStream() {
-		return this;
-	}
-
-	//
-	// Report error message for given error_token.
-	//
-	public final void reportErrorTokenMessage(int error_token, String msg) {
-		int firsttok = super.getFirstErrorToken(error_token), lasttok = super.getLastErrorToken(error_token);
-		String location = super.getFileName() + ':'
-				+ (firsttok > lasttok ? (super.getEndLine(lasttok) + ":" + super.getEndColumn(lasttok))
-						: (super.getLine(error_token) + ":" + super.getColumn(error_token) + ":"
-								+ super.getEndLine(error_token) + ":" + super.getEndColumn(error_token)))
-				+ ": ";
-		super.reportError((firsttok > lasttok ? ParseErrorCodes.INSERTION_CODE : ParseErrorCodes.SUBSTITUTION_CODE),
-				location, msg);
-	}
-
-	public void parser() {
-		parser(null, 0);
-	}
-
-	public void parser(Monitor monitor) {
-		parser(monitor, 0);
-	}
-
-	public void parser(int error_repair_count) {
-		parser(null, error_repair_count);
-	}
-
-	public void parser(Monitor monitor, int error_repair_count) {
-		try {
-			btParser = new FixedBacktrackingParser(monitor, this, prs, this);
-		} catch (NotBacktrackParseTableException e) {
-			throw new Error(new NotBacktrackParseTableException(
-					"Regenerate CPPTemplateTypeParameterParserprs.java with -BACKTRACK option"));
-		} catch (BadParseSymFileException e) {
-			throw new Error(
-					new BadParseSymFileException("Bad Parser Symbol File -- CPPTemplateTypeParameterParsersym.java"));
-		}
-
-		try {
-			btParser.parse(error_repair_count);
-		} catch (BadParseException e) {
-			reset(e.error_token); // point to error token
-			DiagnoseParser diagnoseParser = new DiagnoseParser(this, prs);
-			diagnoseParser.diagnose(e.error_token);
-		}
-	}
-
-	private CPPBuildASTParserAction action;
-	private IASTCompletionNode compNode;
-
-	public CPPTemplateTypeParameterParser(IScanner scanner, IDOMTokenMap tokenMap,
-			IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Map<String, String> properties) {
-		initActions(properties);
-		action.initializeTranslationUnit(scanner, builtinBindingsProvider, index);
-		CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap);
-	}
-
-	private void initActions(Map<String, String> properties) {
-		ScopedStack<Object> astStack = new ScopedStack<>();
-
-		action = new CPPBuildASTParserAction(this, astStack, CPPNodeFactory.getDefault(),
-				CPPSecondaryParserFactory.getDefault());
-		action.setParserProperties(properties);
-
-	}
-
-	@Override
-	public void addToken(IToken token) {
-		token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called?
-		super.addToken(token);
-	}
-
-	@Override
-	public ICPPASTTemplateParameter parse() {
-		// this has to be done, or... kaboom!
-		setStreamLength(getSize());
-
-		final int errorRepairCount = -1; // -1 means full error handling
-		parser(null, errorRepairCount); // do the actual parse
-		super.resetTokenStream(); // allow tokens to be garbage collected
-
-		compNode = action.getASTCompletionNode(); // the completion node may be null
-		return (ICPPASTTemplateParameter) action.getParseResult();
-	}
-
-	@Override
-	public IASTCompletionNode getCompletionNode() {
-		return compNode;
-	}
-
-	// uncomment this method to use with backtracking parser
-	@Override
-	public List<IToken> getRuleTokens() {
-		return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
-	}
-
-	@Override
-	public String[] getOrderedTerminalSymbols() {
-		return CPPTemplateTypeParameterParsersym.orderedTerminalSymbols;
-	}
-
-	@Override
-	@SuppressWarnings("nls")
-	public String getName() {
-		return "CPPTemplateTypeParameterParser";
-	}
-
-	private ITokenMap tokenMap = null;
-
-	@Override
-	public void setTokens(List<IToken> tokens) {
-		resetTokenStream();
-		addToken(new Token(null, 0, 0, 0)); // dummy token
-		for (IToken token : tokens) {
-			token.setKind(tokenMap.mapKind(token.getKind()));
-			addToken(token);
-		}
-		addToken(new Token(null, 0, 0, CPPTemplateTypeParameterParsersym.TK_EOF_TOKEN));
-	}
-
-	public CPPTemplateTypeParameterParser(ITokenStream stream, Map<String, String> properties) { // constructor for creating secondary parser
-		initActions(properties);
-		tokenMap = new TokenMap(CPPTemplateTypeParameterParsersym.orderedTerminalSymbols,
-				stream.getOrderedTerminalSymbols());
-	}
-
-	public CPPTemplateTypeParameterParser(ITokenStream stream, IScanner scanner,
-			IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Map<String, String> properties) { // constructor for creating secondary parser
-		initActions(properties);
-		action.initializeTranslationUnit(scanner, builtinBindingsProvider, index);
-		tokenMap = new TokenMap(CPPTemplateTypeParameterParsersym.orderedTerminalSymbols,
-				stream.getOrderedTerminalSymbols());
-	}
-
-	@Override
-	public void ruleAction(int ruleNumber) {
-		switch (ruleNumber) {
-
-		//
-		// Rule 1:  <openscope-ast> ::= $Empty
-		//
-		case 1: {
-			action.openASTScope();
-			break;
-		}
-
-		//
-		// Rule 2:  <empty> ::= $Empty
-		//
-		case 2: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 13:  translation_unit ::= declaration_seq_opt
-		//
-		case 13: {
-			action.consumeTranslationUnit();
-			break;
-		}
-
-		//
-		// Rule 16:  literal ::= integer
-		//
-		case 16: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant);
-			break;
-		}
-
-		//
-		// Rule 17:  literal ::= floating
-		//
-		case 17: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_float_constant);
-			break;
-		}
-
-		//
-		// Rule 18:  literal ::= charconst
-		//
-		case 18: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant);
-			break;
-		}
-
-		//
-		// Rule 19:  literal ::= stringlit
-		//
-		case 19: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal);
-			break;
-		}
-
-		//
-		// Rule 20:  literal ::= true
-		//
-		case 20: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true);
-			break;
-		}
-
-		//
-		// Rule 21:  literal ::= false
-		//
-		case 21: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false);
-			break;
-		}
-
-		//
-		// Rule 22:  literal ::= this
-		//
-		case 22: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this);
-			break;
-		}
-
-		//
-		// Rule 24:  primary_expression ::= ( expression )
-		//
-		case 24: {
-			action.consumeExpressionBracketed();
-			break;
-		}
-
-		//
-		// Rule 26:  id_expression ::= qualified_or_unqualified_name
-		//
-		case 26: {
-			action.consumeExpressionName();
-			break;
-		}
-
-		//
-		// Rule 33:  unqualified_id_name ::= ~ identifier_token
-		//
-		case 33: {
-			action.consumeDestructorName();
-			break;
-		}
-
-		//
-		// Rule 34:  unqualified_id_name ::= ~ template_id_name
-		//
-		case 34: {
-			action.consumeDestructorNameTemplateId();
-			break;
-		}
-
-		//
-		// Rule 35:  identifier_name ::= identifier_token
-		//
-		case 35: {
-			action.consumeIdentifierName();
-			break;
-		}
-
-		//
-		// Rule 36:  template_opt ::= template
-		//
-		case 36: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 37:  template_opt ::= $Empty
-		//
-		case 37: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 38:  dcolon_opt ::= ::
-		//
-		case 38: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 39:  dcolon_opt ::= $Empty
-		//
-		case 39: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 40:  qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name
-		//
-		case 40: {
-			action.consumeQualifiedId(true);
-			break;
-		}
-
-		//
-		// Rule 41:  qualified_id_name ::= :: unqualified_id_name
-		//
-		case 41: {
-			action.consumeGlobalQualifiedId();
-			break;
-		}
-
-		//
-		// Rule 42:  nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template
-		//
-		case 42: {
-			action.consumeNestedNameSpecifier(true);
-			break;
-		}
-
-		//
-		// Rule 43:  nested_name_specifier ::= class_or_namespace_name ::
-		//
-		case 43: {
-			action.consumeNestedNameSpecifier(false);
-			break;
-		}
-
-		//
-		// Rule 44:  nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template
-		//
-		case 44: {
-			action.consumeNestedNameSpecifier(true);
-			break;
-		}
-
-		//
-		// Rule 45:  nested_name_specifier_with_template ::= class_or_namespace_name_with_template ::
-		//
-		case 45: {
-			action.consumeNestedNameSpecifier(false);
-			break;
-		}
-
-		//
-		// Rule 46:  class_or_namespace_name_with_template ::= template_opt class_or_namespace_name
-		//
-		case 46: {
-			action.consumeNameWithTemplateKeyword();
-			break;
-		}
-
-		//
-		// Rule 48:  nested_name_specifier_opt ::= $Empty
-		//
-		case 48: {
-			action.consumeNestedNameSpecifierEmpty();
-			break;
-		}
-
-		//
-		// Rule 51:  postfix_expression ::= postfix_expression [ expression ]
-		//
-		case 51: {
-			action.consumeExpressionArraySubscript();
-			break;
-		}
-
-		//
-		// Rule 52:  postfix_expression ::= postfix_expression ( expression_list_opt )
-		//
-		case 52: {
-			action.consumeExpressionFunctionCall();
-			break;
-		}
-
-		//
-		// Rule 53:  postfix_expression ::= simple_type_specifier ( expression_list_opt )
-		//
-		case 53: {
-			action.consumeExpressionSimpleTypeConstructor();
-			break;
-		}
-
-		//
-		// Rule 54:  postfix_expression ::= typename dcolon_opt nested_name_specifier <empty> identifier_name ( expression_list_opt )
-		//
-		case 54: {
-			action.consumeExpressionTypeName();
-			break;
-		}
-
-		//
-		// Rule 55:  postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt )
-		//
-		case 55: {
-			action.consumeExpressionTypeName();
-			break;
-		}
-
-		//
-		// Rule 56:  postfix_expression ::= postfix_expression . qualified_or_unqualified_name
-		//
-		case 56: {
-			action.consumeExpressionFieldReference(false, false);
-			break;
-		}
-
-		//
-		// Rule 57:  postfix_expression ::= postfix_expression -> qualified_or_unqualified_name
-		//
-		case 57: {
-			action.consumeExpressionFieldReference(true, false);
-			break;
-		}
-
-		//
-		// Rule 58:  postfix_expression ::= postfix_expression . template qualified_or_unqualified_name
-		//
-		case 58: {
-			action.consumeExpressionFieldReference(false, true);
-			break;
-		}
-
-		//
-		// Rule 59:  postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name
-		//
-		case 59: {
-			action.consumeExpressionFieldReference(true, true);
-			break;
-		}
-
-		//
-		// Rule 60:  postfix_expression ::= postfix_expression . pseudo_destructor_name
-		//
-		case 60: {
-			action.consumeExpressionFieldReference(false, false);
-			break;
-		}
-
-		//
-		// Rule 61:  postfix_expression ::= postfix_expression -> pseudo_destructor_name
-		//
-		case 61: {
-			action.consumeExpressionFieldReference(true, false);
-			break;
-		}
-
-		//
-		// Rule 62:  postfix_expression ::= postfix_expression ++
-		//
-		case 62: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr);
-			break;
-		}
-
-		//
-		// Rule 63:  postfix_expression ::= postfix_expression --
-		//
-		case 63: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr);
-			break;
-		}
-
-		//
-		// Rule 64:  postfix_expression ::= dynamic_cast < type_id > ( expression )
-		//
-		case 64: {
-			action.consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast);
-			break;
-		}
-
-		//
-		// Rule 65:  postfix_expression ::= static_cast < type_id > ( expression )
-		//
-		case 65: {
-			action.consumeExpressionCast(ICPPASTCastExpression.op_static_cast);
-			break;
-		}
-
-		//
-		// Rule 66:  postfix_expression ::= reinterpret_cast < type_id > ( expression )
-		//
-		case 66: {
-			action.consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast);
-			break;
-		}
-
-		//
-		// Rule 67:  postfix_expression ::= const_cast < type_id > ( expression )
-		//
-		case 67: {
-			action.consumeExpressionCast(ICPPASTCastExpression.op_const_cast);
-			break;
-		}
-
-		//
-		// Rule 68:  postfix_expression ::= typeid ( expression )
-		//
-		case 68: {
-			action.consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid);
-			break;
-		}
-
-		//
-		// Rule 69:  postfix_expression ::= typeid ( type_id )
-		//
-		case 69: {
-			action.consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid);
-			break;
-		}
-
-		//
-		// Rule 70:  pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name
-		//
-		case 70: {
-			action.consumePsudoDestructorName(true);
-			break;
-		}
-
-		//
-		// Rule 71:  pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name
-		//
-		case 71: {
-			action.consumePsudoDestructorName(true);
-			break;
-		}
-
-		//
-		// Rule 72:  pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name
-		//
-		case 72: {
-			action.consumePsudoDestructorName(false);
-			break;
-		}
-
-		//
-		// Rule 73:  destructor_type_name ::= ~ identifier_token
-		//
-		case 73: {
-			action.consumeDestructorName();
-			break;
-		}
-
-		//
-		// Rule 74:  destructor_type_name ::= ~ template_id_name
-		//
-		case 74: {
-			action.consumeDestructorNameTemplateId();
-			break;
-		}
-
-		//
-		// Rule 78:  unary_expression ::= ++ cast_expression
-		//
-		case 78: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr);
-			break;
-		}
-
-		//
-		// Rule 79:  unary_expression ::= -- cast_expression
-		//
-		case 79: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr);
-			break;
-		}
-
-		//
-		// Rule 80:  unary_expression ::= & cast_expression
-		//
-		case 80: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper);
-			break;
-		}
-
-		//
-		// Rule 81:  unary_expression ::= * cast_expression
-		//
-		case 81: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_star);
-			break;
-		}
-
-		//
-		// Rule 82:  unary_expression ::= + cast_expression
-		//
-		case 82: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus);
-			break;
-		}
-
-		//
-		// Rule 83:  unary_expression ::= - cast_expression
-		//
-		case 83: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus);
-			break;
-		}
-
-		//
-		// Rule 84:  unary_expression ::= ~ cast_expression
-		//
-		case 84: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde);
-			break;
-		}
-
-		//
-		// Rule 85:  unary_expression ::= ! cast_expression
-		//
-		case 85: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_not);
-			break;
-		}
-
-		//
-		// Rule 86:  unary_expression ::= sizeof unary_expression
-		//
-		case 86: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof);
-			break;
-		}
-
-		//
-		// Rule 87:  unary_expression ::= sizeof ( type_id )
-		//
-		case 87: {
-			action.consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof);
-			break;
-		}
-
-		//
-		// Rule 88:  new_expression ::= dcolon_opt new new_placement_opt new_type_id <openscope-ast> new_array_expressions_opt new_initializer_opt
-		//
-		case 88: {
-			action.consumeExpressionNew(true);
-			break;
-		}
-
-		//
-		// Rule 89:  new_expression ::= dcolon_opt new new_placement_opt ( type_id ) <openscope-ast> new_array_expressions_opt new_initializer_opt
-		//
-		case 89: {
-			action.consumeExpressionNew(false);
-			break;
-		}
-
-		//
-		// Rule 91:  new_placement_opt ::= $Empty
-		//
-		case 91: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 92:  new_type_id ::= type_specifier_seq
-		//
-		case 92: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 93:  new_type_id ::= type_specifier_seq new_declarator
-		//
-		case 93: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 94:  new_declarator ::= <openscope-ast> new_pointer_operators
-		//
-		case 94: {
-			action.consumeNewDeclarator();
-			break;
-		}
-
-		//
-		// Rule 101:  new_initializer ::= ( expression_list_opt )
-		//
-		case 101: {
-			action.consumeNewInitializer();
-			break;
-		}
-
-		//
-		// Rule 103:  new_initializer_opt ::= $Empty
-		//
-		case 103: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 104:  delete_expression ::= dcolon_opt delete cast_expression
-		//
-		case 104: {
-			action.consumeExpressionDelete(false);
-			break;
-		}
-
-		//
-		// Rule 105:  delete_expression ::= dcolon_opt delete [ ] cast_expression
-		//
-		case 105: {
-			action.consumeExpressionDelete(true);
-			break;
-		}
-
-		//
-		// Rule 107:  cast_expression ::= ( type_id ) cast_expression
-		//
-		case 107: {
-			action.consumeExpressionCast(ICPPASTCastExpression.op_cast);
-			break;
-		}
-
-		//
-		// Rule 109:  pm_expression ::= pm_expression .* cast_expression
-		//
-		case 109: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot);
-			break;
-		}
-
-		//
-		// Rule 110:  pm_expression ::= pm_expression ->* cast_expression
-		//
-		case 110: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow);
-			break;
-		}
-
-		//
-		// Rule 112:  multiplicative_expression ::= multiplicative_expression * pm_expression
-		//
-		case 112: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply);
-			break;
-		}
-
-		//
-		// Rule 113:  multiplicative_expression ::= multiplicative_expression / pm_expression
-		//
-		case 113: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide);
-			break;
-		}
-
-		//
-		// Rule 114:  multiplicative_expression ::= multiplicative_expression % pm_expression
-		//
-		case 114: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo);
-			break;
-		}
-
-		//
-		// Rule 116:  additive_expression ::= additive_expression + multiplicative_expression
-		//
-		case 116: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus);
-			break;
-		}
-
-		//
-		// Rule 117:  additive_expression ::= additive_expression - multiplicative_expression
-		//
-		case 117: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus);
-			break;
-		}
-
-		//
-		// Rule 119:  shift_expression ::= shift_expression << additive_expression
-		//
-		case 119: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft);
-			break;
-		}
-
-		//
-		// Rule 120:  shift_expression ::= shift_expression >> additive_expression
-		//
-		case 120: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight);
-			break;
-		}
-
-		//
-		// Rule 122:  relational_expression ::= relational_expression < shift_expression
-		//
-		case 122: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan);
-			break;
-		}
-
-		//
-		// Rule 123:  relational_expression ::= relational_expression > shift_expression
-		//
-		case 123: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan);
-			break;
-		}
-
-		//
-		// Rule 124:  relational_expression ::= relational_expression <= shift_expression
-		//
-		case 124: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual);
-			break;
-		}
-
-		//
-		// Rule 125:  relational_expression ::= relational_expression >= shift_expression
-		//
-		case 125: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual);
-			break;
-		}
-
-		//
-		// Rule 127:  equality_expression ::= equality_expression == relational_expression
-		//
-		case 127: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals);
-			break;
-		}
-
-		//
-		// Rule 128:  equality_expression ::= equality_expression != relational_expression
-		//
-		case 128: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals);
-			break;
-		}
-
-		//
-		// Rule 130:  and_expression ::= and_expression & equality_expression
-		//
-		case 130: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd);
-			break;
-		}
-
-		//
-		// Rule 132:  exclusive_or_expression ::= exclusive_or_expression ^ and_expression
-		//
-		case 132: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor);
-			break;
-		}
-
-		//
-		// Rule 134:  inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression
-		//
-		case 134: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr);
-			break;
-		}
-
-		//
-		// Rule 136:  logical_and_expression ::= logical_and_expression && inclusive_or_expression
-		//
-		case 136: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd);
-			break;
-		}
-
-		//
-		// Rule 138:  logical_or_expression ::= logical_or_expression || logical_and_expression
-		//
-		case 138: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr);
-			break;
-		}
-
-		//
-		// Rule 140:  conditional_expression ::= logical_or_expression ? expression : assignment_expression
-		//
-		case 140: {
-			action.consumeExpressionConditional();
-			break;
-		}
-
-		//
-		// Rule 142:  relational_expression_inTemplate ::= relational_expression_inTemplate < shift_expression
-		//
-		case 142: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan);
-			break;
-		}
-
-		//
-		// Rule 143:  relational_expression_inTemplate ::= ( relational_expression_inTemplate > shift_expression )
-		//
-		case 143: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan);
-			break;
-		}
-
-		//
-		// Rule 144:  relational_expression_inTemplate ::= relational_expression_inTemplate <= shift_expression
-		//
-		case 144: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual);
-			break;
-		}
-
-		//
-		// Rule 145:  relational_expression_inTemplate ::= relational_expression_inTemplate >= shift_expression
-		//
-		case 145: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual);
-			break;
-		}
-
-		//
-		// Rule 147:  equality_expression_inTemplate ::= equality_expression_inTemplate == relational_expression_inTemplate
-		//
-		case 147: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals);
-			break;
-		}
-
-		//
-		// Rule 148:  equality_expression_inTemplate ::= equality_expression_inTemplate != relational_expression_inTemplate
-		//
-		case 148: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals);
-			break;
-		}
-
-		//
-		// Rule 150:  and_expression_inTemplate ::= and_expression_inTemplate & equality_expression_inTemplate
-		//
-		case 150: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd);
-			break;
-		}
-
-		//
-		// Rule 152:  exclusive_or_expression_inTemplate ::= exclusive_or_expression_inTemplate ^ and_expression_inTemplate
-		//
-		case 152: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor);
-			break;
-		}
-
-		//
-		// Rule 154:  inclusive_or_expression_inTemplate ::= inclusive_or_expression_inTemplate | exclusive_or_expression_inTemplate
-		//
-		case 154: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr);
-			break;
-		}
-
-		//
-		// Rule 156:  logical_and_expression_inTemplate ::= logical_and_expression_inTemplate && inclusive_or_expression_inTemplate
-		//
-		case 156: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd);
-			break;
-		}
-
-		//
-		// Rule 158:  logical_or_expression_inTemplate ::= logical_or_expression_inTemplate || logical_and_expression_inTemplate
-		//
-		case 158: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr);
-			break;
-		}
-
-		//
-		// Rule 160:  conditional_expression_inTemplate ::= logical_or_expression_inTemplate ? expression : assignment_expression_inTemplate
-		//
-		case 160: {
-			action.consumeExpressionConditional();
-			break;
-		}
-
-		//
-		// Rule 163:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate = assignment_expression_inTemplate
-		//
-		case 163: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign);
-			break;
-		}
-
-		//
-		// Rule 164:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate *= assignment_expression_inTemplate
-		//
-		case 164: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign);
-			break;
-		}
-
-		//
-		// Rule 165:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate /= assignment_expression_inTemplate
-		//
-		case 165: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign);
-			break;
-		}
-
-		//
-		// Rule 166:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate %= assignment_expression_inTemplate
-		//
-		case 166: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign);
-			break;
-		}
-
-		//
-		// Rule 167:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate += assignment_expression_inTemplate
-		//
-		case 167: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign);
-			break;
-		}
-
-		//
-		// Rule 168:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate -= assignment_expression_inTemplate
-		//
-		case 168: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign);
-			break;
-		}
-
-		//
-		// Rule 169:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate >>= assignment_expression_inTemplate
-		//
-		case 169: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign);
-			break;
-		}
-
-		//
-		// Rule 170:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate <<= assignment_expression_inTemplate
-		//
-		case 170: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign);
-			break;
-		}
-
-		//
-		// Rule 171:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate &= assignment_expression_inTemplate
-		//
-		case 171: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign);
-			break;
-		}
-
-		//
-		// Rule 172:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate ^= assignment_expression_inTemplate
-		//
-		case 172: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign);
-			break;
-		}
-
-		//
-		// Rule 173:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate |= assignment_expression_inTemplate
-		//
-		case 173: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign);
-			break;
-		}
-
-		//
-		// Rule 174:  throw_expression ::= throw
-		//
-		case 174: {
-			action.consumeExpressionThrow(false);
-			break;
-		}
-
-		//
-		// Rule 175:  throw_expression ::= throw assignment_expression
-		//
-		case 175: {
-			action.consumeExpressionThrow(true);
-			break;
-		}
-
-		//
-		// Rule 178:  assignment_expression ::= logical_or_expression = assignment_expression
-		//
-		case 178: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign);
-			break;
-		}
-
-		//
-		// Rule 179:  assignment_expression ::= logical_or_expression *= assignment_expression
-		//
-		case 179: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign);
-			break;
-		}
-
-		//
-		// Rule 180:  assignment_expression ::= logical_or_expression /= assignment_expression
-		//
-		case 180: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign);
-			break;
-		}
-
-		//
-		// Rule 181:  assignment_expression ::= logical_or_expression %= assignment_expression
-		//
-		case 181: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign);
-			break;
-		}
-
-		//
-		// Rule 182:  assignment_expression ::= logical_or_expression += assignment_expression
-		//
-		case 182: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign);
-			break;
-		}
-
-		//
-		// Rule 183:  assignment_expression ::= logical_or_expression -= assignment_expression
-		//
-		case 183: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign);
-			break;
-		}
-
-		//
-		// Rule 184:  assignment_expression ::= logical_or_expression >>= assignment_expression
-		//
-		case 184: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign);
-			break;
-		}
-
-		//
-		// Rule 185:  assignment_expression ::= logical_or_expression <<= assignment_expression
-		//
-		case 185: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign);
-			break;
-		}
-
-		//
-		// Rule 186:  assignment_expression ::= logical_or_expression &= assignment_expression
-		//
-		case 186: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign);
-			break;
-		}
-
-		//
-		// Rule 187:  assignment_expression ::= logical_or_expression ^= assignment_expression
-		//
-		case 187: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign);
-			break;
-		}
-
-		//
-		// Rule 188:  assignment_expression ::= logical_or_expression |= assignment_expression
-		//
-		case 188: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign);
-			break;
-		}
-
-		//
-		// Rule 190:  expression_list ::= <openscope-ast> expression_list_actual
-		//
-		case 190: {
-			action.consumeExpressionList();
-			break;
-		}
-
-		//
-		// Rule 194:  expression_list_opt ::= $Empty
-		//
-		case 194: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 196:  expression_opt ::= $Empty
-		//
-		case 196: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 199:  constant_expression_opt ::= $Empty
-		//
-		case 199: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 208:  statement ::= ERROR_TOKEN
-		//
-		case 208: {
-			action.consumeStatementProblem();
-			break;
-		}
-
-		//
-		// Rule 209:  labeled_statement ::= identifier : statement
-		//
-		case 209: {
-			action.consumeStatementLabeled();
-			break;
-		}
-
-		//
-		// Rule 210:  labeled_statement ::= case constant_expression : statement
-		//
-		case 210: {
-			action.consumeStatementCase();
-			break;
-		}
-
-		//
-		// Rule 211:  labeled_statement ::= default : statement
-		//
-		case 211: {
-			action.consumeStatementDefault();
-			break;
-		}
-
-		//
-		// Rule 212:  expression_statement ::= expression ;
-		//
-		case 212: {
-			action.consumeStatementExpression();
-			break;
-		}
-
-		//
-		// Rule 213:  expression_statement ::= ;
-		//
-		case 213: {
-			action.consumeStatementNull();
-			break;
-		}
-
-		//
-		// Rule 214:  compound_statement ::= { <openscope-ast> statement_seq }
-		//
-		case 214: {
-			action.consumeStatementCompoundStatement(true);
-			break;
-		}
-
-		//
-		// Rule 215:  compound_statement ::= { }
-		//
-		case 215: {
-			action.consumeStatementCompoundStatement(false);
-			break;
-		}
-
-		//
-		// Rule 218:  selection_statement ::= if ( condition ) statement
-		//
-		case 218: {
-			action.consumeStatementIf(false);
-			break;
-		}
-
-		//
-		// Rule 219:  selection_statement ::= if ( condition ) statement else statement
-		//
-		case 219: {
-			action.consumeStatementIf(true);
-			break;
-		}
-
-		//
-		// Rule 220:  selection_statement ::= switch ( condition ) statement
-		//
-		case 220: {
-			action.consumeStatementSwitch();
-			break;
-		}
-
-		//
-		// Rule 222:  condition ::= type_specifier_seq declarator = assignment_expression
-		//
-		case 222: {
-			action.consumeConditionDeclaration();
-			break;
-		}
-
-		//
-		// Rule 224:  condition_opt ::= $Empty
-		//
-		case 224: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 225:  iteration_statement ::= while ( condition ) statement
-		//
-		case 225: {
-			action.consumeStatementWhileLoop();
-			break;
-		}
-
-		//
-		// Rule 226:  iteration_statement ::= do statement while ( expression ) ;
-		//
-		case 226: {
-			action.consumeStatementDoLoop(true);
-			break;
-		}
-
-		//
-		// Rule 227:  iteration_statement ::= do statement
-		//
-		case 227: {
-			action.consumeStatementDoLoop(false);
-			break;
-		}
-
-		//
-		// Rule 228:  iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement
-		//
-		case 228: {
-			action.consumeStatementForLoop();
-			break;
-		}
-
-		//
-		// Rule 230:  for_init_statement ::= simple_declaration_with_declspec
-		//
-		case 230: {
-			action.consumeStatementDeclaration();
-			break;
-		}
-
-		//
-		// Rule 231:  jump_statement ::= break ;
-		//
-		case 231: {
-			action.consumeStatementBreak();
-			break;
-		}
-
-		//
-		// Rule 232:  jump_statement ::= continue ;
-		//
-		case 232: {
-			action.consumeStatementContinue();
-			break;
-		}
-
-		//
-		// Rule 233:  jump_statement ::= return expression ;
-		//
-		case 233: {
-			action.consumeStatementReturn(true);
-			break;
-		}
-
-		//
-		// Rule 234:  jump_statement ::= return ;
-		//
-		case 234: {
-			action.consumeStatementReturn(false);
-			break;
-		}
-
-		//
-		// Rule 235:  jump_statement ::= goto identifier_token ;
-		//
-		case 235: {
-			action.consumeStatementGoto();
-			break;
-		}
-
-		//
-		// Rule 236:  declaration_statement ::= block_declaration
-		//
-		case 236: {
-			action.consumeStatementDeclarationWithDisambiguation();
-			break;
-		}
-
-		//
-		// Rule 237:  declaration_statement ::= function_definition
-		//
-		case 237: {
-			action.consumeStatementDeclaration();
-			break;
-		}
-
-		//
-		// Rule 245:  declaration ::= ERROR_TOKEN
-		//
-		case 245: {
-			action.consumeDeclarationProblem();
-			break;
-		}
-
-		//
-		// Rule 255:  simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ;
-		//
-		case 255: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 256:  simple_declaration_with_declspec ::= declaration_specifiers <openscope-ast> init_declarator_list_opt ;
-		//
-		case 256: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 257:  declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
-		//
-		case 257: {
-			action.consumeDeclarationSpecifiersSimple();
-			break;
-		}
-
-		//
-		// Rule 258:  declaration_specifiers ::= <openscope-ast> class_declaration_specifiers
-		//
-		case 258: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 259:  declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
-		//
-		case 259: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 260:  declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
-		//
-		case 260: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 261:  declaration_specifiers ::= <openscope-ast> type_name_declaration_specifiers
-		//
-		case 261: {
-			action.consumeDeclarationSpecifiersTypeName();
-			break;
-		}
-
-		//
-		// Rule 263:  declaration_specifiers_opt ::= $Empty
-		//
-		case 263: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 267:  no_type_declaration_specifier ::= friend
-		//
-		case 267: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 268:  no_type_declaration_specifier ::= typedef
-		//
-		case 268: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 288:  storage_class_specifier ::= auto
-		//
-		case 288: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 289:  storage_class_specifier ::= register
-		//
-		case 289: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 290:  storage_class_specifier ::= static
-		//
-		case 290: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 291:  storage_class_specifier ::= extern
-		//
-		case 291: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 292:  storage_class_specifier ::= mutable
-		//
-		case 292: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 293:  function_specifier ::= inline
-		//
-		case 293: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 294:  function_specifier ::= virtual
-		//
-		case 294: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 295:  function_specifier ::= explicit
-		//
-		case 295: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 296:  simple_type_specifier ::= simple_type_specifier_token
-		//
-		case 296: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 310:  type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name
-		//
-		case 310: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 311:  type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name
-		//
-		case 311: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 312:  type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name
-		//
-		case 312: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 313:  type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name
-		//
-		case 313: {
-			action.consumeQualifiedId(true);
-			break;
-		}
-
-		//
-		// Rule 315:  elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name
-		//
-		case 315: {
-			action.consumeTypeSpecifierElaborated(false);
-			break;
-		}
-
-		//
-		// Rule 316:  elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt template_opt template_id_name
-		//
-		case 316: {
-			action.consumeTypeSpecifierElaborated(true);
-			break;
-		}
-
-		//
-		// Rule 317:  elaborated_type_specifier ::= enum elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name
-		//
-		case 317: {
-			action.consumeTypeSpecifierElaborated(false);
-			break;
-		}
-
-		//
-		// Rule 321:  enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
-		//
-		case 321: {
-			action.consumeTypeSpecifierEnumeration(false);
-			break;
-		}
-
-		//
-		// Rule 322:  enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
-		//
-		case 322: {
-			action.consumeTypeSpecifierEnumeration(true);
-			break;
-		}
-
-		//
-		// Rule 328:  enumerator_definition ::= identifier_token
-		//
-		case 328: {
-			action.consumeEnumerator(false);
-			break;
-		}
-
-		//
-		// Rule 329:  enumerator_definition ::= identifier_token = constant_expression
-		//
-		case 329: {
-			action.consumeEnumerator(true);
-			break;
-		}
-
-		//
-		// Rule 331:  namespace_definition ::= namespace namespace_name namespace_definition_hook { <openscope-ast> declaration_seq_opt }
-		//
-		case 331: {
-			action.consumeNamespaceDefinition(true);
-			break;
-		}
-
-		//
-		// Rule 332:  namespace_definition ::= namespace namespace_definition_hook { <openscope-ast> declaration_seq_opt }
-		//
-		case 332: {
-			action.consumeNamespaceDefinition(false);
-			break;
-		}
-
-		//
-		// Rule 334:  namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ;
-		//
-		case 334: {
-			action.consumeNamespaceAliasDefinition();
-			break;
-		}
-
-		//
-		// Rule 335:  using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ;
-		//
-		case 335: {
-			action.consumeUsingDeclaration();
-			break;
-		}
-
-		//
-		// Rule 336:  typename_opt ::= typename
-		//
-		case 336: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 337:  typename_opt ::= $Empty
-		//
-		case 337: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 338:  using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ;
-		//
-		case 338: {
-			action.consumeUsingDirective();
-			break;
-		}
-
-		//
-		// Rule 339:  asm_definition ::= asm ( stringlit ) ;
-		//
-		case 339: {
-			action.consumeDeclarationASM();
-			break;
-		}
-
-		//
-		// Rule 340:  linkage_specification ::= extern stringlit { <openscope-ast> declaration_seq_opt }
-		//
-		case 340: {
-			action.consumeLinkageSpecification();
-			break;
-		}
-
-		//
-		// Rule 341:  linkage_specification ::= extern stringlit <openscope-ast> declaration
-		//
-		case 341: {
-			action.consumeLinkageSpecification();
-			break;
-		}
-
-		//
-		// Rule 346:  init_declarator_complete ::= init_declarator
-		//
-		case 346: {
-			action.consumeInitDeclaratorComplete();
-			break;
-		}
-
-		//
-		// Rule 348:  init_declarator ::= complete_declarator initializer
-		//
-		case 348: {
-			action.consumeDeclaratorWithInitializer(true);
-			break;
-		}
-
-		//
-		// Rule 351:  declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
-		//
-		case 351: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 353:  function_declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
-		//
-		case 353: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 357:  basic_direct_declarator ::= declarator_id_name
-		//
-		case 357: {
-			action.consumeDirectDeclaratorIdentifier();
-			break;
-		}
-
-		//
-		// Rule 358:  basic_direct_declarator ::= ( declarator )
-		//
-		case 358: {
-			action.consumeDirectDeclaratorBracketed();
-			break;
-		}
-
-		//
-		// Rule 359:  function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
-		//
-		case 359: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 360:  array_direct_declarator ::= array_direct_declarator array_modifier
-		//
-		case 360: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 361:  array_direct_declarator ::= basic_direct_declarator array_modifier
-		//
-		case 361: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 362:  array_modifier ::= [ constant_expression ]
-		//
-		case 362: {
-			action.consumeDirectDeclaratorArrayModifier(true);
-			break;
-		}
-
-		//
-		// Rule 363:  array_modifier ::= [ ]
-		//
-		case 363: {
-			action.consumeDirectDeclaratorArrayModifier(false);
-			break;
-		}
-
-		//
-		// Rule 364:  ptr_operator ::= pointer_hook * pointer_hook <openscope-ast> cv_qualifier_seq_opt
-		//
-		case 364: {
-			action.consumePointer();
-			break;
-		}
-
-		//
-		// Rule 365:  ptr_operator ::= pointer_hook & pointer_hook
-		//
-		case 365: {
-			action.consumeReferenceOperator();
-			break;
-		}
-
-		//
-		// Rule 366:  ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * pointer_hook <openscope-ast> cv_qualifier_seq_opt
-		//
-		case 366: {
-			action.consumePointerToMember();
-			break;
-		}
-
-		//
-		// Rule 373:  cv_qualifier ::= const
-		//
-		case 373: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 374:  cv_qualifier ::= volatile
-		//
-		case 374: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 376:  declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name
-		//
-		case 376: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 377:  type_id ::= type_specifier_seq
-		//
-		case 377: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 378:  type_id ::= type_specifier_seq abstract_declarator
-		//
-		case 378: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 381:  abstract_declarator ::= <openscope-ast> ptr_operator_seq
-		//
-		case 381: {
-			action.consumeDeclaratorWithPointer(false);
-			break;
-		}
-
-		//
-		// Rule 382:  abstract_declarator ::= <openscope-ast> ptr_operator_seq direct_abstract_declarator
-		//
-		case 382: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 386:  basic_direct_abstract_declarator ::= ( abstract_declarator )
-		//
-		case 386: {
-			action.consumeDirectDeclaratorBracketed();
-			break;
-		}
-
-		//
-		// Rule 387:  basic_direct_abstract_declarator ::= ( )
-		//
-		case 387: {
-			action.consumeAbstractDeclaratorEmpty();
-			break;
-		}
-
-		//
-		// Rule 388:  array_direct_abstract_declarator ::= array_modifier
-		//
-		case 388: {
-			action.consumeDirectDeclaratorArrayDeclarator(false);
-			break;
-		}
-
-		//
-		// Rule 389:  array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
-		//
-		case 389: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 390:  array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
-		//
-		case 390: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 391:  function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
-		//
-		case 391: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 392:  function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
-		//
-		case 392: {
-			action.consumeDirectDeclaratorFunctionDeclarator(false);
-			break;
-		}
-
-		//
-		// Rule 393:  parameter_declaration_clause ::= parameter_declaration_list_opt ...
-		//
-		case 393: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 394:  parameter_declaration_clause ::= parameter_declaration_list_opt
-		//
-		case 394: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 395:  parameter_declaration_clause ::= parameter_declaration_list , ...
-		//
-		case 395: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 401:  abstract_declarator_opt ::= $Empty
-		//
-		case 401: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 402:  parameter_declaration ::= declaration_specifiers parameter_init_declarator
-		//
-		case 402: {
-			action.consumeParameterDeclaration();
-			break;
-		}
-
-		//
-		// Rule 403:  parameter_declaration ::= declaration_specifiers
-		//
-		case 403: {
-			action.consumeParameterDeclarationWithoutDeclarator();
-			break;
-		}
-
-		//
-		// Rule 405:  parameter_init_declarator ::= declarator = parameter_initializer
-		//
-		case 405: {
-			action.consumeDeclaratorWithInitializer(true);
-			break;
-		}
-
-		//
-		// Rule 407:  parameter_init_declarator ::= abstract_declarator = parameter_initializer
-		//
-		case 407: {
-			action.consumeDeclaratorWithInitializer(true);
-			break;
-		}
-
-		//
-		// Rule 408:  parameter_init_declarator ::= = parameter_initializer
-		//
-		case 408: {
-			action.consumeDeclaratorWithInitializer(false);
-			break;
-		}
-
-		//
-		// Rule 409:  parameter_initializer ::= assignment_expression
-		//
-		case 409: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 410:  function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body
-		//
-		case 410: {
-			action.consumeFunctionDefinition(false);
-			break;
-		}
-
-		//
-		// Rule 411:  function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq
-		//
-		case 411: {
-			action.consumeFunctionDefinition(true);
-			break;
-		}
-
-		//
-		// Rule 414:  initializer ::= ( expression_list )
-		//
-		case 414: {
-			action.consumeInitializerConstructor();
-			break;
-		}
-
-		//
-		// Rule 415:  initializer_clause ::= assignment_expression
-		//
-		case 415: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 416:  initializer_clause ::= initializer_list
-		//
-		case 416: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 417:  initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq , } end_initializer_list
-		//
-		case 417: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 418:  initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq } end_initializer_list
-		//
-		case 418: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 419:  initializer_list ::= { <openscope-ast> }
-		//
-		case 419: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 420:  start_initializer_list ::= $Empty
-		//
-		case 420: {
-			action.initializerListStart();
-			break;
-		}
-
-		//
-		// Rule 421:  end_initializer_list ::= $Empty
-		//
-		case 421: {
-			action.initializerListEnd();
-			break;
-		}
-
-		//
-		// Rule 426:  class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt }
-		//
-		case 426: {
-			action.consumeClassSpecifier();
-			break;
-		}
-
-		//
-		// Rule 427:  class_head ::= class_keyword composite_specifier_hook identifier_name_opt class_name_suffix_hook <openscope-ast> base_clause_opt
-		//
-		case 427: {
-			action.consumeClassHead(false);
-			break;
-		}
-
-		//
-		// Rule 428:  class_head ::= class_keyword composite_specifier_hook template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt
-		//
-		case 428: {
-			action.consumeClassHead(false);
-			break;
-		}
-
-		//
-		// Rule 429:  class_head ::= class_keyword composite_specifier_hook nested_name_specifier identifier_name class_name_suffix_hook <openscope-ast> base_clause_opt
-		//
-		case 429: {
-			action.consumeClassHead(true);
-			break;
-		}
-
-		//
-		// Rule 430:  class_head ::= class_keyword composite_specifier_hook nested_name_specifier template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt
-		//
-		case 430: {
-			action.consumeClassHead(true);
-			break;
-		}
-
-		//
-		// Rule 434:  identifier_name_opt ::= $Empty
-		//
-		case 434: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 438:  visibility_label ::= access_specifier_keyword :
-		//
-		case 438: {
-			action.consumeVisibilityLabel();
-			break;
-		}
-
-		//
-		// Rule 439:  member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
-		//
-		case 439: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 440:  member_declaration ::= declaration_specifiers_opt ;
-		//
-		case 440: {
-			action.consumeDeclarationSimple(false);
-			break;
-		}
-
-		//
-		// Rule 443:  member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ;
-		//
-		case 443: {
-			action.consumeMemberDeclarationQualifiedId();
-			break;
-		}
-
-		//
-		// Rule 449:  member_declaration ::= ERROR_TOKEN
-		//
-		case 449: {
-			action.consumeDeclarationProblem();
-			break;
-		}
-
-		//
-		// Rule 458:  member_declarator ::= declarator constant_initializer
-		//
-		case 458: {
-			action.consumeMemberDeclaratorWithInitializer();
-			break;
-		}
-
-		//
-		// Rule 459:  member_declarator ::= bit_field_declarator : constant_expression
-		//
-		case 459: {
-			action.consumeBitField(true);
-			break;
-		}
-
-		//
-		// Rule 460:  member_declarator ::= : constant_expression
-		//
-		case 460: {
-			action.consumeBitField(false);
-			break;
-		}
-
-		//
-		// Rule 461:  bit_field_declarator ::= identifier_name
-		//
-		case 461: {
-			action.consumeDirectDeclaratorIdentifier();
-			break;
-		}
-
-		//
-		// Rule 462:  constant_initializer ::= = constant_expression
-		//
-		case 462: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 468:  base_specifier ::= dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 468: {
-			action.consumeBaseSpecifier(false, false);
-			break;
-		}
-
-		//
-		// Rule 469:  base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 469: {
-			action.consumeBaseSpecifier(true, true);
-			break;
-		}
-
-		//
-		// Rule 470:  base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 470: {
-			action.consumeBaseSpecifier(true, true);
-			break;
-		}
-
-		//
-		// Rule 471:  base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 471: {
-			action.consumeBaseSpecifier(true, false);
-			break;
-		}
-
-		//
-		// Rule 472:  access_specifier_keyword ::= private
-		//
-		case 472: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 473:  access_specifier_keyword ::= protected
-		//
-		case 473: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 474:  access_specifier_keyword ::= public
-		//
-		case 474: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 476:  access_specifier_keyword_opt ::= $Empty
-		//
-		case 476: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 478:  conversion_function_id_name ::= conversion_function_id < <openscope-ast> template_argument_list_opt >
-		//
-		case 478: {
-			action.consumeTemplateId();
-			break;
-		}
-
-		//
-		// Rule 479:  conversion_function_id ::= operator conversion_type_id
-		//
-		case 479: {
-			action.consumeConversionName();
-			break;
-		}
-
-		//
-		// Rule 480:  conversion_type_id ::= type_specifier_seq conversion_declarator
-		//
-		case 480: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 481:  conversion_type_id ::= type_specifier_seq
-		//
-		case 481: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 482:  conversion_declarator ::= <openscope-ast> ptr_operator_seq
-		//
-		case 482: {
-			action.consumeDeclaratorWithPointer(false);
-			break;
-		}
-
-		//
-		// Rule 488:  mem_initializer ::= mem_initializer_name ( expression_list_opt )
-		//
-		case 488: {
-			action.consumeConstructorChainInitializer();
-			break;
-		}
-
-		//
-		// Rule 489:  mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 489: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 492:  operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt >
-		//
-		case 492: {
-			action.consumeTemplateId();
-			break;
-		}
-
-		//
-		// Rule 493:  operator_id_name ::= operator overloadable_operator
-		//
-		case 493: {
-			action.consumeOperatorName();
-			break;
-		}
-
-		//
-		// Rule 536:  template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration
-		//
-		case 536: {
-			action.consumeTemplateDeclaration();
-			break;
-		}
-
-		//
-		// Rule 537:  export_opt ::= export
-		//
-		case 537: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 538:  export_opt ::= $Empty
-		//
-		case 538: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 542:  template_parameter ::= parameter_declaration
-		//
-		case 542: {
-			action.consumeTemplateParamterDeclaration();
-			break;
-		}
-
-		//
-		// Rule 543:  type_parameter ::= class identifier_name_opt
-		//
-		case 543: {
-			action.consumeSimpleTypeTemplateParameter(false);
-			break;
-		}
-
-		//
-		// Rule 544:  type_parameter ::= class identifier_name_opt = type_id
-		//
-		case 544: {
-			action.consumeSimpleTypeTemplateParameter(true);
-			break;
-		}
-
-		//
-		// Rule 545:  type_parameter ::= typename identifier_name_opt
-		//
-		case 545: {
-			action.consumeSimpleTypeTemplateParameter(false);
-			break;
-		}
-
-		//
-		// Rule 546:  type_parameter ::= typename identifier_name_opt = type_id
-		//
-		case 546: {
-			action.consumeSimpleTypeTemplateParameter(true);
-			break;
-		}
-
-		//
-		// Rule 547:  type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt
-		//
-		case 547: {
-			action.consumeTemplatedTypeTemplateParameter(false);
-			break;
-		}
-
-		//
-		// Rule 548:  type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression
-		//
-		case 548: {
-			action.consumeTemplatedTypeTemplateParameter(true);
-			break;
-		}
-
-		//
-		// Rule 549:  template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt >
-		//
-		case 549: {
-			action.consumeTemplateId();
-			break;
-		}
-
-		//
-		// Rule 556:  nested_name_specifier_inTemplate ::= class_or_namespace_name_inTemplate :: nested_name_specifier_with_template_inTemplate
-		//
-		case 556: {
-			action.consumeNestedNameSpecifier(true);
-			break;
-		}
-
-		//
-		// Rule 557:  nested_name_specifier_inTemplate ::= class_or_namespace_name_inTemplate ::
-		//
-		case 557: {
-			action.consumeNestedNameSpecifier(false);
-			break;
-		}
-
-		//
-		// Rule 558:  nested_name_specifier_with_template_inTemplate ::= class_or_namespace_name_with_template_inTemplate :: nested_name_specifier_with_template_inTemplate
-		//
-		case 558: {
-			action.consumeNestedNameSpecifier(true);
-			break;
-		}
-
-		//
-		// Rule 559:  nested_name_specifier_with_template_inTemplate ::= class_or_namespace_name_with_template_inTemplate ::
-		//
-		case 559: {
-			action.consumeNestedNameSpecifier(false);
-			break;
-		}
-
-		//
-		// Rule 560:  class_or_namespace_name_with_template_inTemplate ::= template_opt class_or_namespace_name_inTemplate
-		//
-		case 560: {
-			action.consumeNameWithTemplateKeyword();
-			break;
-		}
-
-		//
-		// Rule 562:  nested_name_specifier_opt_inTemplate ::= $Empty
-		//
-		case 562: {
-			action.consumeNestedNameSpecifierEmpty();
-			break;
-		}
-
-		//
-		// Rule 565:  type_name_specifier_inTemplate ::= typename dcolon_opt nested_name_specifier identifier_name
-		//
-		case 565: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 566:  type_name_specifier_inTemplate ::= typename dcolon_opt nested_name_specifier template_opt template_id_name
-		//
-		case 566: {
-			action.consumeQualifiedId(true);
-			break;
-		}
-
-		//
-		// Rule 571:  declaration_specifiers_inTemplate ::= <openscope-ast> simple_declaration_specifiers
-		//
-		case 571: {
-			action.consumeDeclarationSpecifiersSimple();
-			break;
-		}
-
-		//
-		// Rule 572:  declaration_specifiers_inTemplate ::= <openscope-ast> class_declaration_specifiers
-		//
-		case 572: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 573:  declaration_specifiers_inTemplate ::= <openscope-ast> elaborated_declaration_specifiers
-		//
-		case 573: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 574:  declaration_specifiers_inTemplate ::= <openscope-ast> enum_declaration_specifiers
-		//
-		case 574: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 575:  declaration_specifiers_inTemplate ::= <openscope-ast> type_name_declaration_specifiers_inTemplate
-		//
-		case 575: {
-			action.consumeDeclarationSpecifiersTypeName();
-			break;
-		}
-
-		//
-		// Rule 577:  type_id_inTemplate ::= type_specifier_seq_inTemplate
-		//
-		case 577: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 578:  type_id_inTemplate ::= type_specifier_seq_inTemplate abstract_declarator
-		//
-		case 578: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 579:  template_argument ::= assignment_expression_inTemplate
-		//
-		case 579: {
-			action.consumeTemplateArgumentExpression();
-			break;
-		}
-
-		//
-		// Rule 580:  template_argument ::= type_id_inTemplate
-		//
-		case 580: {
-			action.consumeTemplateArgumentTypeId();
-			break;
-		}
-
-		//
-		// Rule 581:  explicit_instantiation ::= template declaration
-		//
-		case 581: {
-			action.consumeTemplateExplicitInstantiation();
-			break;
-		}
-
-		//
-		// Rule 582:  explicit_specialization ::= template < > declaration
-		//
-		case 582: {
-			action.consumeTemplateExplicitSpecialization();
-			break;
-		}
-
-		//
-		// Rule 583:  try_block ::= try compound_statement <openscope-ast> handler_seq
-		//
-		case 583: {
-			action.consumeStatementTryBlock(true);
-			break;
-		}
-
-		//
-		// Rule 584:  try_block ::= try compound_statement
-		//
-		case 584: {
-			action.consumeStatementTryBlock(false);
-			break;
-		}
-
-		//
-		// Rule 587:  handler ::= catch ( exception_declaration ) compound_statement
-		//
-		case 587: {
-			action.consumeStatementCatchHandler(false);
-			break;
-		}
-
-		//
-		// Rule 588:  handler ::= catch ( ... ) compound_statement
-		//
-		case 588: {
-			action.consumeStatementCatchHandler(true);
-			break;
-		}
-
-		//
-		// Rule 589:  exception_declaration ::= type_specifier_seq <openscope-ast> declarator
-		//
-		case 589: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 590:  exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
-		//
-		case 590: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 591:  exception_declaration ::= type_specifier_seq
-		//
-		case 591: {
-			action.consumeDeclarationSimple(false);
-			break;
-		}
-
-		//
-		// Rule 593:  exception_specification ::= throw ( )
-		//
-		case 593: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 599:  type_parameter_start ::= ERROR_TOKEN
-		//
-		case 599: {
-			action.consumeEmpty();
-			break;
-		}
-
-		default:
-			break;
-		}
-		return;
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParserprs.java
deleted file mode 100644
index 3525b87..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParserprs.java
+++ /dev/null
@@ -1,1558 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2015 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.lrparser.cpp;
-
-public class CPPTemplateTypeParameterParserprs
-		implements lpg.lpgjavaruntime.ParseTable, CPPTemplateTypeParameterParsersym {
-
-	public interface IsKeyword {
-		public final static byte isKeyword[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static byte isKeyword[] = IsKeyword.isKeyword;
-
-	public final boolean isKeyword(int index) {
-		return isKeyword[index] != 0;
-	}
-
-	public interface BaseCheck {
-		public final static short baseCheck[] = { 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 0, 1, 0, 4, 2, 3, 2, 3, 2, 2, 1, 0, 1, 1, 4, 4, 4, 8, 8, 3, 3,
-				4, 4, 3, 3, 2, 2, 7, 7, 7, 7, 4, 4, 5, 6, 3, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 7, 9, 3, 0, 1,
-				2, 2, 1, 2, 3, 4, 1, 0, 3, 1, 0, 3, 5, 1, 4, 1, 3, 3, 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 3, 3, 3, 3, 1, 3,
-				3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 1, 3, 5, 3, 3, 1, 3, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 1, 1,
-				3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 2, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 2, 1, 3, 1, 0, 1, 0, 1,
-				1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 4, 3, 2, 1, 4, 2, 1, 2, 5, 7, 5, 1, 4, 1, 0, 5, 7, 2, 8, 1, 1, 2, 2,
-				3, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 0, 4, 4, 2, 2, 2, 2, 2, 1, 0, 1, 1, 1, 1,
-				1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 3, 4, 4, 5, 2, 5, 6, 5, 0, 1, 0, 7, 8, 0, 1, 3, 1, 0, 1, 3, 1, 7, 6, 0, 7, 6, 1, 0,
-				6, 5, 6, 4, 1, 3, 1, 0, 1, 1, 2, 1, 1, 3, 1, 3, 1, 1, 1, 1, 3, 9, 2, 2, 3, 2, 5, 3, 7, 0, 1, 2, 2, 1, 0,
-				1, 1, 1, 3, 1, 2, 1, 1, 2, 3, 1, 1, 1, 3, 2, 1, 2, 2, 9, 8, 2, 1, 3, 1, 3, 1, 0, 1, 0, 2, 1, 1, 3, 1, 3,
-				2, 1, 5, 8, 1, 2, 3, 1, 1, 7, 6, 3, 0, 0, 1, 3, 1, 1, 5, 6, 6, 7, 7, 0, 0, 1, 0, 1, 1, 1, 2, 4, 2, 2, 1,
-				5, 1, 1, 1, 1, 1, 1, 1, 2, 1, 0, 1, 3, 1, 1, 2, 3, 2, 1, 2, 2, 1, 0, 1, 3, 3, 5, 5, 4, 1, 1, 1, 1, 0, 1,
-				5, 2, 2, 1, 2, 2, 1, 0, 1, 3, 4, 3, 1, 1, 5, 2, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 7, 1, 0, 1, 3, 1, 1, 2, 4, 2, 4, 7,
-				9, 5, 1, 3, 1, 0, 1, 1, 3, 2, 3, 2, 2, 1, 0, 1, 1, 4, 5, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 4,
-				4, 2, 1, 2, 5, 5, 3, 3, 1, 4, 3, 1, 0, 1, 3, 1, 1, -126, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -39, -3, 0, -7, 0, 0, 0, 0, 0, 0, -398, 0, -215, 0, 0, -273, -8, 0,
-				-15, 0, -519, 0, 0, 0, 0, -12, -22, -474, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -16, 0, 0, 0, -246, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -448, 0, 0, -368, 0, 0,
-				-37, 0, 0, 0, 0, 0, 0, 0, -109, 0, 0, -58, 0, 0, 0, 0, -461, 0, 0, 0, 0, 0, -532, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6, 0, -36, 0, -19, 0, 0, -4, 0, 0, 0, 0, 0, 0, 0, -170, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, 0, 0, 0, -32, 0,
-				0, 0, -23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -20, 0, 0, 0, 0, 0, 0,
-				-412, 0, -171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -182, 0,
-				0, -132, 0, 0, 0, 0, -337, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -83, 0, -24, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -25, -187, -440, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5, 0, 0, 0, -107, 0, 0, 0,
-				-175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -41, 0, 0, -49, 0,
-				0, -85, 0, 0, 0, 0, 0, 0, 0, -270, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -191, 0, 0, 0, 0, 0, 0,
-				0, 0, -546, 0, 0, -335, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -196, 0, 0, 0, 0, -27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -597, -45, 0, 0, 0, 0, 0, -28, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -217, 0, 0, 0, 0, -30, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -167, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -91, -44, 0, 0, 0, 0, 0, 0, 0, 0, -55, 0,
-				-50, 0, 0, 0, 0, 0, 0, -576, 0, 0, 0, 0, -266, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -86, 0, 0, -92, 0, 0, 0, 0, 0, 0, -51, 0, -173, 0, 0, 0, -291, 0, 0, 0, -598, 0, 0, 0, 0, -52, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -10, 0, 0, -53, 0, 0, 0, 0, 0, 0, -268, 0,
-				0, 0, 0, 0, -211, 0, 0, 0, 0, 0, -515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -108, 0, 0, 0, 0, -433, 0, 0, -186, 0, 0, 0, 0, 0, 0, 0,
-				-18, 0, 0, 0, 0, -54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -421, -174, 0,
-				-498, 0, -89, 0, 0, 0, 0, 0, 0, -466, 0, 0, 0, 0, 0, 0, 0, -154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -35, -311, 0, 0, 0, 0, 0, 0, 0, 0, -90, -298, -96, 0, 0, 0, 0, 0,
-				0, 0, 0, -81, 0, 0, 0, 0, -99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -34, 0,
-				0, 0, 0, 0, 0, 0, 0, -56, 0, 0, 0, 0, -195, 0, 0, 0, 0, 0, 0, 0, 0, 0, -82, 0, 0, 0, 0, -446, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-68, 0, 0, 0, -205, 0, 0, 0, 0, -129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-408, 0, -213, 0, 0, 0, 0, 0, 0, 0, 0, -69, 0, 0, -284, 0, 0, 0, 0, 0, -21, 0, 0, 0, 0, -425, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -38, -194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -443, 0,
-				0, -260, 0, 0, 0, -79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-403, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -290, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -177, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-110, 0, -183, 0, 0, 0, 0, 0, 0, -465, 0, -221, 0, 0, -489, 0, 0, 0, 0, -156, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -342, 0, -184, 0, 0, 0, 0, 0, 0, 0, 0, -70, 0, 0,
-				-507, 0, 0, 0, 0, -157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-71, 0, -464, 0, -338, 0, 0, 0, 0, 0, 0, 0, 0, 0, -509, 0, 0, 0, 0, -158, 0, 0, 0, 0, -410, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -192, 0, 0, 0, 0, 0, 0, 0, 0, 0, -539,
-				0, 0, 0, 0, -159, 0, 0, 0, 0, -457, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -261, 0, 0, 0, 0, 0, 0, 0, 0, 0, -540, 0, 0, 0, 0, -160, 0, 0, 0, 0, -470, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -492, 0, -72, 0, -473, 0, 0, 0, 0, 0, 0, 0, 0, 0, -354, 0,
-				0, 0, 0, -161, 0, 0, 0, 0, -494, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -73,
-				0, -74, 0, -265, 0, 0, 0, 0, 0, 0, 0, 0, 0, -366, 0, 0, 0, 0, -162, 0, 0, 0, 0, -542, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -278, 0, 0, -75, 0, 0, 0, 0, 0, 0, -76, 0, 0, 0, 0, -371,
-				0, 0, 0, 0, -163, 0, 0, 0, 0, -77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -279,
-				-78, 0, -80, 0, 0, 0, 0, 0, 0, -84, 0, 0, 0, 0, -372, 0, 0, 0, 0, -164, 0, 0, 0, 0, -563, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -281, -87, 0, -88, 0, 0, 0, 0, 0, 0, -94, 0, -548, 0, 0,
-				-419, 0, 0, 0, 0, -165, 0, 0, 0, 0, -588, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-297, -95, 0, -98, 0, 0, 0, 0, 0, 0, -105, 0, 0, 0, 0, -468, 0, 0, 0, 0, -292, 0, 0, 0, 0, -113, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -352, -116, 0, -131, 0, -303, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -97, 0, 0, 0, 0, -302, 0, 0, 0, 0, -356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -203, 0, -188, 0, 0, 0, 0, -276, 0, -277, 0, 0, -112, 0, 0, 0, 0, -322, 0, 0, 0, 0,
-				-179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -180, 0, -189, -516, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -29, 0, -305, 0, -263, 0, -442, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-323, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -304, -514, 0, 0, 0,
-				0, 0, -199, 0, 0, 0, 0, 0, -200, 0, 0, 0, -455, 0, 0, 0, 0, 0, 0, 0, -447, 0, 0, 0, 0, 0, -480, 0, -201,
-				0, 0, 0, 0, 0, -324, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -467,
-				0, 0, -391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -11, 0, -345, 0, -587, 0, 0, -202, 0, 0, -207, 0,
-				-257, -208, 0, 0, 0, 0, 0, 0, 0, 0, -325, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -209, 0, 0, -348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -40, 0, -506, 0, 0, -210,
-				0, 0, 0, 0, -341, 0, 0, 0, -537, 0, 0, 0, 0, 0, -326, 0, 0, 0, 0, -93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -100, 0, 0, -222, 0, 0, -223, 0, 0, 0, 0, 0, 0, 0, -353, 0, 0, -224, 0, 0,
-				0, 0, 0, 0, 0, -589, 0, 0, 0, 0, 0, -536, 0, 0, 0, 0, 0, 0, 0, -327, 0, 0, 0, 0, -225, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -490, 0, 0, -226, -569, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-485, 0, -42, 0, 0, -365, 0, 0, 0, 0, -346, 0, -227, -602, -409, 0, -406, 0, 0, 0, 0, 0, -328, 0, 0, 0,
-				0, -400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -176, -228, 0, -101, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -229, -481, 0, 0, 0, 0, 0, 0, -454, 0, 0, 0, 0, 0, 0, 0, -230, -407, 0, -231, 0, 0, 0, 0,
-				0, 0, -329, 0, 0, 0, 0, -435, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -124, 0,
-				-232, -133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -233, 0, -280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -339,
-				-520, 0, 0, 0, 0, 0, -330, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -234, 0, 0, -235, 0, 0, 0, 0, 0, -393, 0, -236, 0,
-				-373, 0, -374, -575, -237, 0, 0, 0, 0, 0, -331, 0, 0, 0, 0, -238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -294, 0, 0, -445, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -301, 0, -118, 0, -239, 0,
-				-240, 0, -430, 0, 0, 0, -350, 0, 0, -389, 0, 0, -243, 0, 0, 0, 0, 0, -332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -247, -125, 0, 0, 0, 0, 0, 0, -351, 0, 0, -248, -47, 0,
-				-249, 0, 0, -119, 0, -306, 0, -340, 0, -250, 0, -434, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, -432, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -336, 0, 0, 0, 0, 0, -388,
-				-390, 0, 0, -392, 0, 0, 0, -172, 0, 0, 0, 0, 0, -477, 0, 0, 0, 0, 0, 0, 0, -487, 0, 0, -479, 0, 0, 0, 0,
-				0, 0, -592, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -488, 0, 0, -251, 0, 0, -178, 0, -401, 0, 0, 0, 0, -545, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -252, -590, 0, -253, 0, 0, 0, 0, 0, 0, -197, 0, 0, -411, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -395, 0, 0, 0, 0,
-				0, 0, -397, 0, 0, -420, -428, 0, -429, -245, 0, 0, -501, 0, 0, -254, 0, 0, -497, -255, -450, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -437, -282, 0, -256, 0, 0, 0, 0, 0, 0,
-				0, 0, -258, 0, 0, -451, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-259, -264, -269, 0, -496, 0, 0, 0, 0, 0, 0, -504, 0, 0, -271, -272, 0, -286, 0, 0, 0, 0, -355, 0, -287,
-				-288, -198, -204, 0, -463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -289, -312, 0, -517, 0, 0, 0, 0, -343, 0, -344, 0, 0, -523, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -349, 0, -357, 0, -544, 0, 0, 0, 0, 0, 0, -562, 0, 0, -307,
-				-564, 0, -572, -579, -358, 0, -363, 0, 0, -308, -525, -364, 0, 0, -534, -104, 0, 0, 0, 0, -334, 0, 0, 0,
-				0, -216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -370, -377, 0, -378,
-				0, -379, -380, 0, 0, 0, 0, -309, -381, -382, 0, -383, 0, 0, 0, 0, -384, -535, 0, -385, 0, 0, 0, 0, 0, 0,
-				0, 0, -321, 0, 0, 0, 0, -220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -262, 0,
-				-405, 0, -386, 0, 0, -387, 0, -402, -404, -422, -426, -427, -438, -441, -453, -460, 0, -547, 0, 0, 0, 0,
-				-469, -475, 0, 0, 0, -152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -559, 0, -560, 0, -476, 0, 0, 0, -319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -478, -482, -484, -499, 0, -522, 0, -566, 0, -524, -526, 0, 0, -527, -528, -529, -531,
-				-565, 0, -583, 0, -549, -550, -552, -557, -561, 0, -241, 0, -153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -242, 0, 0, -320, 0, 0, 0, 0, -299, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -573, -581, -593, -603, 0, 0, 0, 0, -595, 0, -601, 0,
-				0, 0, 0, 0, 0, 0, -367, 0, -149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -413, 0, -316, 0, 0, 0, 0, -414, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -150, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -415, -416, 0, -151, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -318, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -399, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -533, -431, -458, 0, 0, 0, 0, 0, 0, 0, -459, 0, 0, 0, 0,
-				-491, -135, 0, 0, -500, -512, 0, 0, 0, -111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -538, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -144, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -145, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -315,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -347, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -376, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-543, -166, -31, 0, 0, 0, 0, -14, 0, 0, 0, 0, 0, 0, -594, 0, 0, 0, 0, 0, 0, 0, -122, 0, 0, 0, -568, 0,
-				0, 0, 0, 0, 0, 0, 0, -556, 0, 0, 0, 0, 0, -570, 0, -574, 0, 0, 0, -333, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -267, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -584, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -449, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-505, 0, 0, 0, -123, 0, 0, 0, -359, 0, -360, 0, 0, 0, -48, 0, 0, 0, 0, 0, -285, 0, 0, 0, -578, -596, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -600, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -521, 0, 0, -214, 0, 0, 0, -361, 0, 0, 0, 0, 0, -134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -591, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -424, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -138,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -530, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -9, 0, -168, -444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -46, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -551, 0, 0, 0, 0, 0,
-				0, -423, 0, 0, 0, 0, 0, -169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -181, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -553, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -567, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -193, 0, 0, 0, 0, 0, -417, 0, 0, 0, 0, 0, -585, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -580, 0, 0, 0, 0, 0, 0, 0, -418, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -582, 0, 0, 0, 0, 0, 0, 0, -462, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -218, 0, 0, 0, 0, 0, -508, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -396, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -456, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -604, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -61,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -62, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -66, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -137, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -295, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -59, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -436, -483, 0, 0, 0, 0, 0, -300, 0, 0, 0, 0, 0, -472, 0, 0, 0,
-				0, 0, 0, 0, 0, -486, 0, 0, 0, -513, 0, 0, 0, 0, 0, 0, 0, 0, -293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -452, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -274, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -502, 0, 0, 0, 0, 0, -394, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-439, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -471, -510, 0, 0, 0, 0,
-				0, 0, -511, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -375, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -495, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -503, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -185, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -102, 0, 0, 0,
-				0, 0, 0, -518, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -275, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -115, 0, 0, 0, 0, 0, -571, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -493, 0, 0, 0, 0, 0, 0, 0, 0, -120, 0, 0, 0, 0, 0, 0, 0, 0, 0, -554, 0, 0, 0, 0, 0, 0,
-				-555, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -121, 0, 0, 0, 0, 0, 0, -558, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-296, 0, 0, 0, 0, 0, 0, -541, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static short baseCheck[] = BaseCheck.baseCheck;
-
-	@Override
-	public final int baseCheck(int index) {
-		return baseCheck[index];
-	}
-
-	public final static short rhs[] = baseCheck;
-
-	@Override
-	public final int rhs(int index) {
-		return rhs[index];
-	}
-
-	public interface BaseAction {
-		public final static char baseAction[] = { 191, 5, 154, 94, 94, 30, 30, 81, 81, 39, 39, 42, 42, 218, 1, 1, 16,
-				16, 16, 16, 16, 16, 16, 17, 17, 17, 15, 11, 11, 6, 6, 6, 6, 6, 6, 2, 75, 75, 4, 4, 12, 12, 44, 44, 155,
-				155, 156, 67, 67, 43, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
-				157, 157, 157, 132, 132, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 192, 192, 193, 193,
-				194, 160, 160, 161, 161, 158, 158, 162, 159, 159, 21, 21, 22, 22, 23, 23, 23, 24, 24, 24, 24, 25, 25,
-				25, 26, 26, 26, 31, 31, 31, 31, 31, 33, 33, 33, 34, 34, 35, 35, 36, 36, 38, 38, 40, 40, 41, 41, 45, 45,
-				45, 45, 45, 47, 47, 47, 53, 53, 55, 55, 61, 61, 62, 62, 63, 63, 64, 64, 65, 65, 65, 65, 65, 65, 65, 65,
-				65, 65, 65, 65, 65, 29, 29, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 37, 28, 163, 163, 105,
-				105, 195, 195, 104, 219, 219, 82, 82, 82, 82, 82, 82, 82, 82, 82, 83, 83, 83, 79, 79, 66, 66, 196, 196,
-				84, 84, 84, 116, 116, 197, 197, 85, 85, 85, 85, 198, 198, 86, 86, 86, 86, 86, 87, 87, 95, 95, 95, 95,
-				95, 95, 95, 95, 56, 56, 56, 56, 56, 133, 133, 131, 131, 57, 199, 27, 27, 27, 27, 27, 50, 50, 69, 69, 69,
-				69, 69, 138, 138, 134, 134, 134, 134, 134, 135, 135, 135, 136, 136, 136, 137, 137, 137, 165, 165, 165,
-				70, 70, 70, 70, 70, 71, 71, 71, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 106, 139, 139, 139, 139,
-				139, 139, 111, 111, 111, 166, 167, 167, 112, 112, 200, 169, 169, 168, 168, 140, 140, 117, 92, 92, 141,
-				59, 49, 170, 170, 60, 58, 97, 97, 171, 171, 164, 164, 142, 143, 143, 144, 89, 89, 172, 172, 77, 77, 77,
-				73, 73, 72, 78, 78, 80, 80, 68, 68, 68, 54, 98, 98, 108, 107, 107, 51, 51, 74, 74, 76, 76, 52, 109, 109,
-				109, 99, 99, 99, 100, 100, 101, 101, 101, 102, 102, 118, 118, 118, 120, 120, 119, 119, 220, 220, 103,
-				103, 202, 202, 202, 202, 202, 146, 48, 48, 174, 201, 201, 147, 147, 148, 148, 148, 149, 176, 203, 203,
-				32, 32, 110, 114, 114, 114, 114, 205, 122, 121, 121, 113, 113, 113, 177, 178, 178, 178, 178, 178, 178,
-				178, 178, 178, 178, 178, 207, 207, 204, 204, 206, 206, 179, 180, 180, 180, 180, 181, 208, 124, 123, 123,
-				209, 209, 182, 182, 182, 182, 115, 115, 115, 210, 210, 8, 8, 9, 211, 211, 212, 183, 173, 173, 184, 184,
-				185, 186, 186, 7, 7, 10, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
-				213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
-				213, 213, 213, 213, 213, 90, 93, 93, 187, 187, 151, 151, 125, 125, 125, 125, 125, 125, 3, 152, 152, 150,
-				150, 188, 221, 222, 222, 223, 223, 224, 225, 225, 189, 190, 190, 190, 190, 214, 214, 214, 127, 127, 127,
-				127, 127, 128, 129, 129, 126, 126, 96, 91, 88, 88, 175, 175, 130, 130, 215, 215, 215, 153, 153, 145,
-				145, 216, 216, 191, 191, 1119, 35, 2489, 2466, 4990, 1128, 27, 30, 31, 1052, 1067, 26, 28, 2429, 296,
-				25, 23, 50, 1467, 106, 76, 77, 108, 1510, 1751, 1715, 1939, 1346, 1484, 177, 588, 1894, 308, 1988, 1941,
-				2010, 1995, 2713, 2033, 69, 2035, 176, 1986, 1394, 1471, 1331, 191, 157, 35, 330, 2939, 266, 1572, 1389,
-				1258, 35, 1032, 32, 4804, 3474, 27, 30, 31, 1052, 1067, 375, 28, 3633, 2107, 269, 264, 265, 2856, 35,
-				1032, 32, 718, 600, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108, 1510,
-				1751, 1715, 2938, 379, 189, 1642, 35, 490, 2823, 5769, 309, 2505, 2136, 2928, 276, 279, 282, 627, 707,
-				2295, 984, 3307, 2289, 35, 1108, 425, 368, 2823, 645, 388, 355, 901, 357, 157, 3529, 350, 891, 390,
-				1351, 753, 1546, 2484, 5866, 285, 157, 35, 317, 349, 380, 653, 803, 385, 2730, 1451, 49, 69, 3902, 1628,
-				378, 1647, 4724, 1802, 71, 35, 433, 2129, 1476, 2426, 3491, 2616, 2265, 35, 1032, 32, 718, 5370, 27, 30,
-				31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108, 1510, 1751, 1715, 2938, 1261,
-				2357, 162, 342, 346, 1307, 1533, 35, 1032, 32, 1231, 266, 41, 30, 31, 1052, 1067, 2358, 2927, 2418,
-				2950, 157, 2082, 2080, 34, 3176, 2941, 484, 3108, 278, 264, 265, 3567, 1808, 3074, 3111, 3173, 161, 579,
-				923, 157, 3349, 2265, 35, 1032, 32, 718, 5370, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50,
-				1467, 106, 76, 77, 108, 1510, 1751, 1715, 2938, 1304, 155, 162, 3483, 2233, 35, 1032, 32, 5052, 1232,
-				27, 30, 31, 1052, 1067, 57, 28, 630, 2927, 2597, 2950, 389, 3483, 483, 3565, 3566, 2941, 2389, 3108,
-				1998, 550, 576, 3167, 580, 3074, 3111, 3173, 161, 579, 2711, 228, 1610, 35, 1032, 32, 4230, 654, 27, 30,
-				31, 1052, 1067, 375, 28, 2894, 3249, 3177, 71, 35, 433, 2891, 71, 35, 2270, 2225, 2265, 35, 1032, 32,
-				718, 5370, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108, 1510, 1751,
-				1715, 2938, 1213, 49, 162, 71, 35, 433, 69, 550, 576, 3167, 580, 4726, 2129, 1269, 931, 35, 330, 360,
-				2927, 325, 2950, 352, 3347, 357, 3000, 371, 2941, 361, 3108, 362, 2505, 3208, 4486, 3177, 3074, 3111,
-				3173, 161, 579, 157, 35, 330, 2475, 35, 1032, 32, 718, 5370, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296,
-				25, 23, 50, 1467, 106, 76, 77, 108, 1510, 1751, 1715, 2938, 61, 1985, 162, 2079, 1701, 35, 1032, 32,
-				4441, 1752, 27, 30, 31, 1052, 1067, 26, 28, 643, 2927, 548, 2950, 902, 585, 1642, 35, 314, 2941, 3939,
-				3108, 2895, 550, 576, 3167, 580, 3074, 3111, 3173, 161, 579, 1701, 35, 1032, 32, 4441, 2897, 27, 30, 31,
-				1052, 1067, 59, 28, 2624, 3013, 3217, 2174, 3177, 3279, 35, 1032, 32, 718, 1704, 27, 30, 31, 1052, 1067,
-				26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108, 1510, 1751, 1715, 1939, 1619, 2956, 2494, 3581,
-				1894, 3008, 1988, 1941, 2010, 1995, 61, 2882, 1402, 1657, 4250, 551, 576, 3167, 580, 2613, 35, 1032, 32,
-				718, 2566, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108, 1510, 1751,
-				1715, 1939, 69, 715, 177, 2389, 1894, 4788, 1988, 1941, 2010, 1995, 2957, 2033, 2389, 2035, 176, 3351,
-				157, 35, 3373, 415, 2333, 35, 1032, 32, 718, 2963, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23,
-				50, 1467, 106, 76, 77, 108, 1510, 1751, 1715, 1939, 69, 598, 177, 3015, 1894, 4235, 1988, 1941, 2010,
-				1995, 2636, 2033, 426, 2035, 176, 3351, 1642, 35, 314, 415, 5803, 418, 2543, 35, 1032, 32, 718, 379, 27,
-				30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108, 1510, 1751, 1715, 1939, 441,
-				535, 177, 645, 1894, 2627, 1988, 1941, 2010, 1995, 497, 2033, 61, 2035, 176, 3351, 4866, 2889, 605, 415,
-				157, 35, 2232, 2230, 422, 416, 3084, 546, 2924, 35, 1032, 32, 718, 3076, 27, 30, 31, 1052, 1067, 26, 28,
-				1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108, 1510, 1751, 1715, 1939, 2882, 2389, 177, 1645, 1894, 69,
-				1988, 1941, 2010, 1995, 766, 2033, 2889, 2035, 176, 480, 423, 416, 3084, 409, 3279, 35, 1032, 32, 718,
-				2104, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108, 1510, 1751, 1715,
-				1939, 1257, 1642, 35, 567, 1894, 6068, 1988, 1941, 2010, 2839, 69, 1886, 69, 273, 296, 835, 2956, 927,
-				413, 416, 3084, 2924, 35, 1032, 32, 718, 1103, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50,
-				1467, 106, 76, 77, 108, 1510, 1751, 1715, 1939, 496, 1518, 177, 266, 1894, 3377, 1988, 1941, 2010, 1995,
-				2147, 2033, 392, 2035, 176, 157, 35, 2080, 311, 409, 594, 274, 264, 265, 408, 2924, 35, 1032, 32, 718,
-				2713, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108, 1510, 1751, 1715,
-				1939, 69, 1618, 177, 2136, 1894, 6147, 1988, 1941, 2010, 1995, 391, 2033, 88, 2035, 176, 102, 3645, 368,
-				594, 409, 2924, 35, 1032, 32, 718, 1570, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467,
-				106, 76, 77, 108, 1510, 1751, 1715, 1939, 4585, 1885, 177, 2389, 1894, 5176, 1988, 1941, 2010, 1995,
-				348, 2033, 1531, 2035, 176, 157, 35, 2080, 313, 191, 407, 2683, 35, 1032, 32, 718, 1087, 27, 30, 31,
-				1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108, 1510, 1751, 1715, 1939, 1895, 2461,
-				35, 312, 1894, 1618, 1988, 1941, 2010, 1995, 93, 2033, 2790, 2042, 197, 157, 35, 1108, 425, 2407, 35,
-				1032, 32, 718, 405, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108, 1510,
-				1751, 1715, 1939, 3136, 49, 177, 5723, 1894, 266, 1988, 1941, 2010, 1995, 2364, 2033, 46, 2035, 176,
-				157, 35, 2080, 3368, 175, 484, 363, 2684, 281, 264, 265, 1788, 35, 1032, 32, 1513, 889, 40, 30, 31,
-				1052, 1067, 2924, 35, 1032, 32, 718, 2426, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467,
-				106, 76, 77, 108, 1510, 1751, 1715, 1939, 70, 61, 177, 155, 1894, 4928, 1988, 1941, 2010, 1995, 1087,
-				2033, 2389, 2035, 176, 157, 35, 1108, 425, 188, 2924, 35, 1032, 32, 718, 466, 27, 30, 31, 1052, 1067,
-				26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108, 1510, 1751, 1715, 1939, 468, 332, 177, 155, 1894,
-				3488, 1988, 1941, 2010, 1995, 365, 2033, 1219, 2035, 176, 157, 35, 1108, 425, 187, 2924, 35, 1032, 32,
-				718, 2418, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108, 1510, 1751,
-				1715, 1939, 489, 1233, 177, 2389, 1894, 155, 1988, 1941, 2010, 1995, 1943, 2033, 51, 2035, 176, 157, 35,
-				1108, 425, 186, 2924, 35, 1032, 32, 718, 2566, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50,
-				1467, 106, 76, 77, 108, 1510, 1751, 1715, 1939, 471, 71, 177, 458, 1894, 69, 1988, 1941, 2010, 1995,
-				3206, 2033, 3001, 2035, 176, 157, 35, 1108, 425, 185, 2924, 35, 1032, 32, 718, 2566, 27, 30, 31, 1052,
-				1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108, 1510, 1751, 1715, 1939, 470, 2820, 177, 97,
-				1894, 69, 1988, 1941, 2010, 1995, 871, 2033, 321, 2035, 176, 157, 35, 1108, 425, 184, 2924, 35, 1032,
-				32, 718, 2566, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108, 1510,
-				1751, 1715, 1939, 469, 2389, 177, 1398, 1894, 2573, 1988, 1941, 2010, 1995, 6108, 2033, 322, 2035, 176,
-				157, 35, 2080, 316, 183, 2924, 35, 1032, 32, 718, 2566, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25,
-				23, 50, 1467, 106, 76, 77, 108, 1510, 1751, 1715, 1939, 3252, 55, 177, 1349, 1894, 69, 1988, 1941, 2010,
-				1995, 2761, 2033, 332, 2035, 176, 2102, 35, 2080, 311, 182, 2924, 35, 1032, 32, 718, 2566, 27, 30, 31,
-				1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108, 1510, 1751, 1715, 1939, 69, 98, 177,
-				237, 1894, 2173, 1988, 1941, 2010, 1995, 56, 2033, 331, 2035, 176, 157, 3484, 2080, 74, 181, 2924, 35,
-				1032, 32, 718, 147, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108, 1510,
-				1751, 1715, 1939, 69, 227, 177, 1630, 1894, 2545, 1988, 1941, 2010, 1995, 314, 2033, 340, 2035, 176,
-				2102, 35, 2080, 3485, 180, 2924, 35, 1032, 32, 718, 2566, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25,
-				23, 50, 1467, 106, 76, 77, 108, 1510, 1751, 1715, 1939, 69, 3077, 177, 1336, 1894, 3270, 1988, 1941,
-				2010, 1995, 2004, 2033, 3191, 2035, 176, 157, 35, 2080, 3489, 179, 2924, 35, 1032, 32, 718, 2567, 27,
-				30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108, 1510, 1751, 1715, 1939, 69,
-				2328, 177, 405, 1894, 704, 1988, 1941, 2010, 1995, 1489, 2033, 419, 2035, 176, 157, 35, 2080, 566, 178,
-				2924, 35, 1032, 32, 718, 1338, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77,
-				108, 1510, 1751, 1715, 1939, 2540, 1910, 177, 1456, 1894, 69, 1988, 1941, 2010, 1995, 2824, 2033, 1045,
-				2035, 176, 157, 35, 1108, 425, 192, 2924, 35, 1032, 32, 718, 1724, 27, 30, 31, 1052, 1067, 26, 28, 1409,
-				296, 25, 23, 50, 1467, 106, 76, 77, 108, 1510, 1751, 1715, 1939, 308, 586, 177, 2529, 1894, 491, 1988,
-				1941, 2010, 1995, 228, 2033, 3133, 2035, 176, 157, 35, 1108, 425, 140, 3045, 35, 1032, 32, 718, 1374,
-				27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108, 1510, 1751, 1715, 2938,
-				308, 762, 162, 2600, 1243, 35, 1032, 32, 4230, 3474, 27, 30, 31, 1052, 1067, 375, 28, 2738, 2927, 2737,
-				2950, 2361, 4235, 931, 3533, 330, 2941, 376, 3108, 427, 464, 1607, 273, 296, 3074, 3111, 3173, 161, 173,
-				3045, 35, 1032, 32, 718, 379, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77,
-				108, 1510, 1751, 1715, 2938, 69, 69, 162, 1107, 266, 2826, 1471, 1635, 310, 3249, 355, 901, 357, 2326,
-				2032, 350, 891, 1985, 2927, 2888, 2950, 2935, 274, 264, 265, 2505, 2941, 349, 3108, 4228, 1618, 2505,
-				1775, 2401, 3074, 3111, 3173, 161, 172, 3045, 35, 1032, 32, 718, 1169, 27, 30, 31, 1052, 1067, 26, 28,
-				1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108, 1510, 1751, 1715, 2938, 2889, 2677, 162, 1788, 35, 1032,
-				32, 2677, 1704, 2707, 30, 31, 1052, 1067, 343, 346, 1307, 69, 2927, 61, 2950, 3250, 4235, 5114, 2437,
-				412, 2941, 934, 3108, 1800, 2394, 412, 2494, 3377, 3074, 3111, 3173, 161, 171, 3045, 35, 1032, 32, 718,
-				379, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108, 1510, 1751, 1715,
-				2938, 475, 3745, 162, 645, 1243, 35, 1032, 32, 4230, 3474, 27, 30, 31, 1052, 1067, 375, 28, 2136, 2927,
-				1984, 2950, 1968, 35, 490, 3684, 5769, 2941, 544, 3108, 2505, 479, 369, 493, 2505, 3074, 3111, 3173,
-				161, 170, 3045, 35, 1032, 32, 718, 1894, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467,
-				106, 76, 77, 108, 1510, 1751, 1715, 2938, 1894, 410, 162, 2399, 266, 3004, 2433, 3259, 534, 2677, 355,
-				901, 357, 359, 2540, 350, 891, 1982, 2927, 586, 2950, 594, 284, 264, 265, 2505, 2941, 2666, 3108, 3071,
-				386, 157, 3589, 3358, 3074, 3111, 3173, 161, 169, 3045, 35, 1032, 32, 718, 2071, 27, 30, 31, 1052, 1067,
-				26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108, 1510, 1751, 1715, 2938, 2882, 2677, 162, 2274,
-				1243, 35, 1032, 32, 4230, 3474, 27, 30, 31, 1052, 1067, 375, 28, 1885, 2927, 2065, 2950, 5176, 2878, 35,
-				312, 588, 2941, 2673, 3108, 313, 585, 1724, 637, 2540, 3074, 3111, 3173, 161, 168, 3045, 35, 1032, 32,
-				718, 2396, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108, 1510, 1751,
-				1715, 2938, 2429, 331, 162, 1894, 266, 428, 464, 487, 3565, 3566, 355, 901, 357, 485, 2601, 350, 891,
-				439, 2927, 4421, 2950, 2059, 287, 264, 265, 5790, 2941, 3657, 3108, 587, 2540, 2094, 1342, 358, 3074,
-				3111, 3173, 161, 167, 3045, 35, 1032, 32, 718, 2637, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23,
-				50, 1467, 106, 76, 77, 108, 1510, 1751, 1715, 2938, 2684, 1894, 162, 1877, 2243, 35, 1032, 32, 5052,
-				1561, 27, 30, 31, 1052, 1067, 56, 28, 443, 2927, 667, 2950, 2461, 35, 315, 430, 464, 2941, 89, 3108,
-				215, 102, 5700, 1232, 3190, 3074, 3111, 3173, 161, 166, 3045, 35, 1032, 32, 718, 1169, 27, 30, 31, 1052,
-				1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108, 1510, 1751, 1715, 2938, 1822, 467, 162,
-				1710, 35, 1032, 32, 4441, 417, 27, 30, 31, 1052, 1067, 58, 28, 1913, 2891, 2927, 2952, 2950, 429, 464,
-				42, 3248, 2505, 2941, 233, 3108, 1232, 1906, 1232, 3190, 1791, 3074, 3111, 3173, 161, 165, 3045, 35,
-				1032, 32, 718, 486, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108, 1510,
-				1751, 1715, 2938, 2597, 3205, 162, 1788, 35, 1032, 32, 364, 371, 3025, 30, 31, 1052, 1067, 2891, 2319,
-				2891, 69, 2927, 2432, 2950, 1001, 4235, 2953, 35, 565, 2941, 69, 3108, 60, 1232, 585, 2630, 2440, 3074,
-				3111, 3173, 161, 164, 3045, 35, 1032, 32, 718, 379, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23,
-				50, 1467, 106, 76, 77, 108, 1510, 1751, 1715, 2938, 1825, 1894, 162, 645, 3164, 371, 3166, 371, 69,
-				1618, 2091, 589, 1518, 2693, 1902, 2891, 3377, 69, 2927, 2154, 2950, 1570, 4235, 753, 1618, 1232, 2941,
-				2340, 3108, 1518, 585, 24, 2141, 3377, 3074, 3111, 3173, 161, 163, 3105, 35, 1032, 32, 718, 379, 27, 30,
-				31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108, 1510, 1751, 1715, 2938, 2136,
-				2667, 162, 645, 266, 370, 371, 69, 69, 2420, 2891, 69, 1266, 2952, 368, 1518, 5768, 2136, 2927, 3377,
-				2950, 61, 278, 264, 265, 5964, 2941, 2346, 3108, 61, 2402, 4600, 2637, 6048, 3074, 3111, 3173, 161, 160,
-				3165, 35, 1032, 32, 718, 4666, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77,
-				108, 1510, 1751, 1715, 1939, 366, 371, 177, 2136, 1894, 335, 1988, 1941, 2010, 1995, 1561, 2033, 61,
-				2035, 176, 925, 6055, 368, 1894, 222, 3279, 35, 1032, 32, 718, 2505, 27, 30, 31, 1052, 1067, 26, 28,
-				1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108, 1510, 1751, 1715, 1939, 2428, 1849, 319, 2505, 1894,
-				1386, 1988, 1941, 2010, 1995, 94, 2033, 1894, 2042, 197, 3279, 35, 1032, 32, 718, 3362, 27, 30, 31,
-				1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108, 1510, 1751, 1715, 1939, 69, 44, 3248,
-				2677, 1894, 69, 1988, 1941, 2010, 1995, 4727, 2033, 69, 2042, 197, 69, 69, 1429, 69, 2327, 723, 1316,
-				61, 2399, 2939, 1729, 6189, 587, 2637, 1106, 3279, 35, 1032, 32, 718, 460, 27, 30, 31, 1052, 1067, 26,
-				28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108, 1510, 1751, 1715, 1939, 69, 1017, 3349, 2508, 1894,
-				5781, 1988, 1941, 2010, 1995, 255, 2033, 2539, 2042, 197, 3279, 35, 1032, 32, 718, 329, 27, 30, 31,
-				1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108, 1510, 1751, 1715, 1939, 388, 835,
-				499, 2537, 1894, 69, 1988, 1941, 2010, 1995, 5794, 2033, 69, 2042, 197, 3084, 2740, 2762, 2568, 380,
-				653, 803, 385, 1017, 3349, 2606, 2638, 1894, 1894, 578, 3279, 35, 1032, 32, 718, 459, 27, 30, 31, 1052,
-				1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108, 1510, 1751, 1715, 1939, 68, 53, 2678, 3073,
-				1894, 2637, 1988, 1941, 2010, 1995, 2644, 2033, 3134, 2042, 197, 3441, 35, 1032, 32, 718, 462, 27, 30,
-				31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108, 1510, 1751, 1715, 1939, 324,
-				2706, 339, 2607, 1894, 69, 1988, 1941, 2010, 1995, 2057, 2033, 3247, 2042, 197, 2787, 69, 2827, 69,
-				3248, 2085, 1126, 2782, 4350, 4572, 2888, 2637, 2881, 2198, 3366, 2637, 157, 35, 1108, 425, 1892, 3387,
-				35, 1032, 32, 718, 1894, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108,
-				1510, 1751, 1715, 2938, 49, 324, 212, 266, 1007, 657, 232, 761, 87, 829, 1365, 2129, 863, 266, 3587,
-				3702, 1929, 2446, 2927, 577, 2950, 281, 264, 265, 2246, 2637, 2941, 1532, 3108, 2628, 3366, 284, 264,
-				265, 3074, 3479, 3333, 35, 1032, 32, 718, 1894, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50,
-				1467, 106, 76, 77, 108, 1510, 1751, 1715, 2938, 1424, 231, 1518, 266, 2705, 4235, 3377, 1896, 52, 3043,
-				2252, 2886, 3135, 1814, 2605, 2947, 2502, 2978, 2927, 2637, 2950, 570, 264, 265, 2979, 2739, 2941, 3849,
-				3108, 3279, 35, 1032, 32, 718, 3436, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106,
-				76, 77, 108, 1510, 1751, 1715, 1939, 2136, 2637, 338, 2637, 1894, 3194, 1988, 1941, 2822, 3333, 35,
-				1032, 32, 718, 368, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108, 1510,
-				1751, 1715, 2938, 2106, 2786, 3009, 3129, 235, 3103, 233, 3101, 5938, 3195, 87, 397, 4235, 3067, 3099,
-				3193, 3219, 2637, 2927, 2637, 2950, 3220, 173, 3234, 2746, 3288, 2941, 1894, 3428, 3279, 35, 1032, 32,
-				718, 379, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108, 1510, 1751,
-				1715, 1939, 334, 2178, 4242, 3365, 1894, 1894, 1988, 2828, 3333, 35, 1032, 32, 718, 1894, 27, 30, 31,
-				1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108, 1510, 1751, 1715, 2938, 2333, 3249,
-				3342, 2965, 2715, 6984, 6984, 6984, 90, 2637, 6984, 2637, 6984, 6984, 6984, 6984, 6984, 6984, 2927,
-				1894, 2950, 3279, 35, 1032, 32, 718, 3433, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467,
-				106, 76, 77, 108, 1510, 1751, 1715, 1939, 256, 3163, 226, 6984, 1894, 1894, 2748, 3333, 35, 1032, 32,
-				718, 1894, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108, 1510, 1751,
-				1715, 2938, 6984, 67, 6984, 6984, 6984, 6984, 6984, 6984, 66, 6984, 6984, 6984, 6984, 6984, 6984, 6984,
-				6984, 6984, 2927, 6984, 3419, 3279, 35, 1032, 32, 718, 6984, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296,
-				25, 23, 50, 1467, 106, 76, 77, 108, 1510, 1751, 1715, 1939, 6984, 4445, 1894, 1894, 2811, 3279, 35,
-				1032, 32, 718, 6984, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108,
-				1510, 1751, 1715, 1939, 65, 64, 6984, 6984, 2814, 3333, 35, 1032, 32, 718, 6984, 27, 30, 31, 1052, 1067,
-				26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108, 1510, 1751, 1715, 2938, 1743, 35, 1032, 32, 4230,
-				1400, 27, 30, 31, 1052, 1067, 375, 28, 3333, 35, 1032, 32, 718, 3425, 27, 30, 31, 1052, 1067, 26, 28,
-				1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108, 1510, 1751, 1715, 2938, 1820, 35, 1032, 32, 4230, 6182,
-				27, 30, 31, 1052, 1067, 375, 28, 1360, 35, 1032, 32, 4804, 3426, 27, 30, 31, 1052, 1067, 375, 28, 2671,
-				2707, 1894, 6984, 387, 1471, 355, 901, 357, 6984, 1894, 350, 891, 6984, 388, 1894, 69, 6984, 6984, 1894,
-				2497, 1471, 6984, 826, 157, 35, 1108, 425, 189, 6984, 6984, 143, 55, 380, 653, 803, 385, 3531, 6984,
-				234, 54, 2136, 1894, 755, 189, 101, 355, 901, 357, 3309, 592, 350, 891, 1668, 388, 369, 49, 6984, 6984,
-				355, 901, 357, 6984, 2666, 353, 891, 6984, 2129, 1547, 6984, 6984, 6984, 488, 380, 653, 803, 385, 6984,
-				3279, 35, 1032, 32, 718, 2531, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77,
-				108, 1510, 1751, 1715, 2626, 3279, 35, 1032, 32, 718, 6984, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296,
-				25, 23, 50, 1467, 106, 76, 77, 108, 1510, 1751, 1715, 2664, 6984, 6984, 6984, 6984, 402, 3279, 35, 1032,
-				32, 718, 6984, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108, 1510,
-				1751, 1715, 2676, 3279, 35, 1032, 32, 718, 6984, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50,
-				1467, 106, 76, 77, 108, 1510, 1751, 1715, 2692, 3279, 35, 1032, 32, 718, 6984, 27, 30, 31, 1052, 1067,
-				26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108, 1510, 1751, 1715, 3414, 3279, 35, 1032, 32, 718,
-				6984, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108, 1510, 1751, 1715,
-				3416, 3279, 35, 1032, 32, 718, 6984, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106,
-				76, 77, 108, 1510, 1751, 1715, 3418, 1221, 35, 3482, 32, 4804, 3474, 27, 30, 31, 1052, 1067, 375, 28,
-				3279, 35, 1032, 32, 718, 6984, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77,
-				108, 1510, 1751, 1715, 3916, 6984, 1894, 69, 243, 35, 1108, 425, 1471, 3495, 35, 1108, 425, 4742, 6984,
-				2136, 3302, 6984, 6984, 6984, 6984, 1471, 271, 296, 157, 35, 1108, 425, 1894, 368, 6984, 189, 414, 355,
-				901, 357, 49, 2671, 350, 891, 2880, 308, 600, 1894, 189, 1894, 6984, 2129, 1377, 69, 1592, 6984, 6984,
-				195, 1471, 6984, 49, 6984, 4961, 3902, 266, 6984, 6984, 6984, 3364, 189, 6984, 2129, 2223, 6984, 6984,
-				2188, 6984, 5023, 3372, 5085, 213, 189, 269, 264, 265, 3279, 35, 1032, 32, 718, 3476, 27, 30, 31, 1052,
-				1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108, 1510, 1751, 2695, 157, 35, 1108, 425, 6984,
-				6984, 6984, 6984, 309, 229, 6984, 6984, 276, 279, 282, 627, 707, 2155, 35, 1032, 32, 4230, 3474, 27, 30,
-				31, 1052, 1067, 375, 28, 6984, 1894, 49, 454, 456, 3481, 1351, 753, 1546, 2484, 5866, 285, 6984, 2129,
-				2948, 1466, 35, 3482, 32, 4230, 3474, 27, 30, 31, 1052, 1067, 375, 28, 6984, 6984, 2641, 2556, 3279, 35,
-				1032, 32, 718, 2616, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108,
-				1510, 1751, 2732, 259, 355, 901, 357, 2250, 600, 350, 891, 69, 1471, 69, 6984, 6984, 1471, 2780, 1471,
-				4472, 6984, 349, 6241, 157, 35, 1108, 425, 1894, 1894, 6984, 262, 189, 355, 901, 357, 193, 6984, 350,
-				891, 189, 3372, 189, 213, 6247, 230, 2677, 6984, 387, 3708, 1592, 3715, 237, 249, 903, 1894, 49, 6984,
-				3109, 3666, 236, 246, 247, 248, 250, 6984, 1, 2129, 1476, 2436, 202, 600, 6984, 69, 4235, 342, 346,
-				1307, 1471, 2250, 6984, 6984, 6984, 201, 1471, 5209, 216, 200, 203, 204, 205, 206, 207, 262, 189, 6984,
-				379, 3664, 388, 6984, 6984, 189, 6984, 3372, 3567, 213, 69, 193, 2677, 6984, 3787, 1471, 6984, 3275,
-				237, 249, 903, 380, 653, 803, 385, 1362, 236, 246, 247, 248, 250, 2531, 6984, 6984, 6984, 6984, 202,
-				6984, 189, 6984, 6984, 6984, 6984, 6984, 455, 456, 3481, 3788, 6984, 201, 6984, 214, 217, 200, 203, 204,
-				205, 206, 207, 1511, 35, 1032, 32, 4230, 1400, 27, 30, 31, 1052, 1067, 375, 28, 1413, 35, 1032, 32,
-				4804, 6984, 27, 30, 31, 1052, 1067, 375, 28, 6984, 6984, 1974, 3450, 6984, 6984, 3377, 6984, 6984, 6984,
-				6984, 6984, 6984, 6984, 3279, 35, 1032, 32, 718, 4483, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25,
-				23, 50, 1467, 106, 76, 77, 108, 1510, 2534, 6984, 6984, 2136, 6984, 6984, 6984, 6984, 355, 901, 357,
-				6984, 6984, 350, 891, 6984, 388, 369, 2136, 6984, 6984, 355, 901, 357, 6984, 589, 351, 891, 6984, 388,
-				2188, 6984, 4600, 6984, 3377, 380, 653, 803, 385, 6984, 6984, 6984, 6984, 2126, 6984, 590, 6984, 6984,
-				382, 653, 803, 385, 3279, 35, 1032, 32, 718, 6984, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23,
-				50, 1467, 106, 76, 77, 108, 1510, 2537, 345, 6984, 6984, 6984, 6984, 600, 6984, 2136, 6984, 6984, 6984,
-				2393, 6984, 1388, 2781, 6984, 4235, 6984, 4235, 4235, 6984, 369, 6984, 6984, 6984, 6984, 6984, 262, 189,
-				243, 35, 1108, 425, 388, 6984, 6984, 6984, 3372, 3849, 213, 3849, 3849, 2677, 6984, 6984, 6984, 6984,
-				96, 237, 249, 903, 6984, 382, 653, 803, 385, 236, 246, 247, 248, 250, 49, 431, 6984, 6984, 6984, 202,
-				600, 6984, 69, 6984, 6984, 2129, 2151, 1471, 1388, 6984, 6984, 6984, 201, 4235, 6984, 3588, 200, 203,
-				204, 205, 206, 207, 262, 189, 243, 35, 1108, 425, 6984, 2235, 189, 6984, 3372, 6984, 213, 3849, 6984,
-				2677, 6984, 1753, 6984, 6984, 6984, 237, 249, 903, 6984, 542, 6984, 396, 542, 236, 246, 247, 248, 250,
-				49, 517, 6984, 6984, 6984, 202, 600, 6984, 3591, 2245, 2268, 2129, 2288, 541, 2393, 6984, 541, 6984,
-				201, 4235, 6984, 211, 200, 203, 204, 205, 206, 207, 262, 189, 501, 35, 1108, 425, 6984, 2188, 6984,
-				6984, 3372, 539, 213, 3849, 539, 2677, 6984, 6984, 6984, 6984, 6984, 237, 249, 903, 6984, 6984, 6984,
-				396, 6984, 236, 246, 247, 248, 250, 49, 603, 6984, 6984, 6984, 202, 600, 6984, 3625, 2245, 2268, 2129,
-				47, 652, 6984, 6984, 3564, 6984, 201, 6984, 6984, 209, 200, 203, 204, 205, 206, 207, 262, 189, 243, 35,
-				1108, 425, 6984, 2750, 2250, 6984, 3372, 6984, 213, 1471, 69, 2677, 6984, 6984, 6984, 1471, 6984, 237,
-				249, 903, 6984, 6984, 6984, 542, 6984, 236, 246, 247, 248, 250, 49, 689, 193, 6984, 6984, 202, 600,
-				6984, 189, 2250, 6984, 2129, 47, 6984, 1471, 541, 6984, 4446, 201, 6984, 6984, 210, 200, 203, 204, 205,
-				206, 207, 262, 189, 2292, 35, 1108, 425, 6984, 740, 6984, 193, 3372, 6984, 213, 540, 6984, 2677, 6984,
-				6984, 6984, 6984, 6984, 237, 249, 903, 6984, 6984, 6984, 6984, 6984, 236, 246, 247, 248, 250, 49, 775,
-				6984, 6984, 6984, 202, 600, 6984, 6984, 2250, 6984, 2129, 2861, 6984, 1471, 6984, 6984, 3917, 201, 6984,
-				6984, 220, 200, 203, 204, 205, 206, 207, 262, 189, 501, 35, 1108, 425, 6984, 2235, 2250, 193, 3372,
-				6984, 213, 1471, 6984, 2677, 6984, 6984, 6984, 6984, 6984, 237, 249, 903, 3925, 6984, 6984, 6984, 6984,
-				236, 246, 247, 248, 250, 49, 861, 193, 6984, 6984, 202, 600, 6984, 6984, 6984, 6984, 2129, 2876, 6984,
-				6984, 6984, 6984, 6984, 201, 6984, 6984, 3658, 200, 203, 204, 205, 206, 207, 262, 189, 501, 35, 1108,
-				425, 6984, 5775, 6984, 6984, 3372, 6984, 213, 6984, 6984, 2677, 6984, 6984, 6984, 6984, 6984, 237, 249,
-				903, 3930, 6984, 6984, 6984, 6984, 236, 246, 247, 248, 250, 49, 947, 6984, 6984, 6984, 202, 600, 6984,
-				6984, 6984, 6984, 2129, 47, 6984, 6984, 6984, 6984, 3957, 201, 6984, 6984, 225, 200, 203, 204, 205, 206,
-				207, 262, 189, 243, 35, 1108, 425, 6984, 2864, 6984, 6984, 3372, 6984, 213, 6984, 69, 2677, 6984, 6984,
-				6984, 600, 6984, 237, 249, 903, 6984, 6984, 6984, 6984, 6984, 236, 246, 247, 248, 250, 49, 1033, 6984,
-				6984, 6984, 202, 600, 379, 189, 6984, 6984, 2129, 47, 6984, 6984, 6984, 6984, 2928, 201, 6984, 6984,
-				219, 200, 203, 204, 205, 206, 207, 262, 189, 6984, 6984, 645, 6984, 6984, 1671, 6984, 6984, 3372, 6984,
-				213, 6984, 6984, 2677, 6984, 6984, 6984, 6984, 6984, 237, 249, 903, 6984, 6984, 6984, 6984, 2730, 236,
-				246, 247, 248, 250, 6984, 6984, 6984, 6984, 6984, 202, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984,
-				6984, 6984, 6984, 6984, 201, 6984, 6984, 228, 200, 203, 204, 205, 206, 207, 3279, 35, 1032, 32, 718,
-				6984, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108, 2548, 3279, 35,
-				1032, 32, 718, 6984, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 108,
-				2575, 3279, 35, 1032, 32, 718, 6984, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106,
-				76, 77, 108, 2600, 3593, 35, 554, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 271, 296,
-				3279, 35, 1032, 32, 718, 6984, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77,
-				85, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 3279, 2082, 1032, 2176, 718, 266, 27, 30, 31, 1052,
-				1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 84, 269, 264, 265, 3279, 35, 1032, 32, 718,
-				6984, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 83, 6984, 6984, 6984,
-				6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 276, 279, 282, 627, 707, 6984,
-				6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984,
-				6984, 2286, 2946, 3361, 3371, 6159, 3279, 35, 1032, 32, 718, 6984, 27, 30, 31, 1052, 1067, 26, 28, 1409,
-				296, 25, 23, 50, 1467, 106, 76, 77, 82, 3279, 35, 1032, 32, 718, 6984, 27, 30, 31, 1052, 1067, 26, 28,
-				1409, 296, 25, 23, 50, 1467, 106, 76, 77, 81, 6984, 6984, 6984, 563, 564, 568, 3279, 35, 1032, 32, 718,
-				6984, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 80, 3424, 3279, 35,
-				1032, 32, 718, 6984, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 79, 3279,
-				35, 1032, 32, 718, 6984, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77, 78,
-				2984, 35, 1032, 32, 718, 6984, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106, 76, 77,
-				104, 3279, 35, 1032, 32, 718, 6984, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467, 106,
-				76, 77, 110, 3279, 35, 1032, 32, 718, 6984, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50, 1467,
-				106, 76, 77, 109, 3279, 35, 1032, 32, 718, 6984, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25, 23, 50,
-				1467, 106, 76, 77, 107, 3279, 35, 1032, 32, 718, 6984, 27, 30, 31, 1052, 1067, 26, 28, 1409, 296, 25,
-				23, 50, 1467, 106, 76, 77, 105, 3225, 35, 1032, 32, 718, 6984, 27, 30, 31, 1052, 1067, 26, 28, 1409,
-				296, 25, 23, 50, 1467, 86, 76, 77, 1576, 243, 35, 1108, 425, 4235, 6984, 2055, 35, 1108, 425, 6984,
-				6984, 1843, 6984, 6984, 6984, 6984, 4235, 6984, 6984, 6984, 243, 35, 1108, 425, 1932, 262, 6984, 6984,
-				6984, 4235, 6984, 49, 6984, 157, 35, 1108, 425, 308, 262, 6984, 6984, 6984, 2129, 47, 6984, 6984, 239,
-				249, 903, 6984, 6984, 262, 49, 6984, 238, 246, 247, 248, 250, 239, 249, 903, 6984, 2129, 47, 49, 1718,
-				238, 246, 247, 248, 250, 239, 249, 903, 6984, 2129, 2619, 6984, 6984, 238, 246, 247, 248, 250, 6984,
-				6984, 1765, 240, 242, 244, 3263, 6984, 251, 241, 243, 3544, 35, 1108, 425, 4742, 240, 242, 244, 3263,
-				6984, 251, 241, 243, 272, 296, 3413, 6984, 6984, 240, 242, 244, 3263, 6984, 251, 241, 243, 6984, 6984,
-				6984, 6984, 6984, 6984, 308, 1869, 6984, 6047, 6984, 6984, 6984, 6984, 6984, 72, 6984, 6984, 6984, 6984,
-				1916, 6984, 6047, 6984, 6984, 266, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 1963, 6984, 6047, 6984,
-				6984, 6984, 6984, 6984, 6984, 6984, 270, 264, 265, 1360, 35, 1032, 32, 4804, 6984, 27, 30, 31, 1052,
-				1067, 375, 28, 2066, 35, 1032, 32, 4230, 4187, 27, 30, 31, 1052, 1067, 375, 28, 2144, 35, 1108, 425,
-				6984, 6984, 2021, 6984, 309, 6984, 6984, 4235, 277, 280, 283, 627, 707, 6984, 6984, 6984, 6984, 6984,
-				1665, 6984, 6984, 6984, 440, 4235, 2136, 6984, 6984, 6984, 49, 262, 6984, 6984, 6984, 6984, 6984, 6984,
-				6984, 286, 369, 2129, 47, 6984, 355, 901, 357, 262, 6984, 351, 891, 6984, 239, 249, 903, 6984, 6984,
-				352, 3347, 357, 238, 246, 247, 248, 250, 647, 6984, 6984, 239, 249, 903, 6984, 6984, 6984, 6984, 6984,
-				238, 246, 247, 248, 250, 1754, 243, 35, 1108, 425, 4235, 6984, 6984, 243, 35, 1108, 425, 6984, 240, 242,
-				244, 3263, 6984, 582, 241, 243, 157, 35, 1108, 425, 6984, 6984, 262, 6984, 240, 242, 244, 3263, 49, 581,
-				241, 243, 6984, 6984, 6984, 49, 6984, 6984, 6984, 2129, 47, 6984, 6984, 239, 249, 903, 2129, 47, 49,
-				6984, 6984, 238, 246, 247, 248, 250, 2110, 6984, 6984, 2129, 2884, 4235, 6984, 1812, 6984, 6984, 6984,
-				6984, 6984, 2199, 1859, 2624, 6984, 6984, 4235, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 262,
-				6984, 240, 242, 244, 3263, 6984, 252, 241, 243, 6984, 6984, 1179, 262, 6984, 6984, 4333, 4235, 6984,
-				6984, 6984, 239, 249, 903, 3642, 35, 554, 6984, 6984, 238, 246, 247, 248, 250, 239, 249, 903, 272, 296,
-				262, 6984, 6984, 238, 246, 247, 248, 250, 1378, 6984, 6984, 6984, 3377, 4235, 6984, 2467, 35, 1108, 425,
-				6984, 6984, 1210, 444, 5951, 240, 242, 244, 3263, 6984, 341, 241, 243, 6984, 6984, 6984, 3849, 266, 240,
-				242, 244, 3263, 1296, 536, 241, 243, 4333, 4235, 49, 6984, 6984, 6984, 6984, 6984, 6984, 270, 264, 265,
-				6984, 2129, 47, 6984, 6984, 2136, 445, 446, 447, 3263, 1378, 262, 6984, 6984, 3377, 4235, 2826, 6984,
-				6984, 368, 6984, 600, 6984, 6984, 6984, 993, 6984, 6984, 6984, 6984, 69, 3250, 1210, 444, 5951, 600,
-				6984, 3849, 277, 280, 283, 627, 707, 379, 189, 6984, 6984, 6984, 6984, 4585, 6984, 6984, 6984, 221, 396,
-				6984, 6984, 379, 189, 6984, 69, 6984, 6984, 6984, 2136, 600, 6984, 3274, 2601, 3077, 2245, 2268, 6984,
-				6984, 445, 446, 447, 3263, 368, 6984, 6984, 6984, 645, 6984, 6984, 6984, 6984, 379, 189, 6984, 6984,
-				6984, 6984, 448, 450, 2670, 6984, 2928, 6984, 3250, 4235, 6984, 6984, 6984, 69, 6984, 3118, 6984, 4666,
-				4235, 6984, 6984, 645, 396, 69, 6984, 563, 564, 569, 600, 1131, 69, 379, 6215, 6984, 593, 600, 6984,
-				3077, 2245, 2268, 379, 223, 69, 6984, 6984, 3387, 6984, 4235, 6984, 69, 379, 189, 6984, 6984, 600, 6984,
-				645, 379, 189, 6984, 221, 69, 6984, 6984, 6984, 645, 4235, 221, 69, 379, 448, 451, 6984, 4235, 6984,
-				2601, 379, 189, 6984, 6984, 596, 6984, 2601, 6984, 6984, 6984, 221, 6984, 379, 2366, 6984, 6984, 6984,
-				6984, 645, 379, 6984, 6984, 6984, 6984, 6984, 2601, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984,
-				6984, 6984, 6984, 645, 6984, 6984, 6984, 6984, 2423, 6984, 645, 6984, 3583, 6984, 6984, 6984, 6984,
-				6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 3674, 6984, 4254, 6984, 6984, 6984, 6984,
-				597, 6984, 4269, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984,
-				6984, 6984, 6984, 6984, 4271, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984,
-				6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984,
-				6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984,
-				6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 3935, 6984, 0, 758, 1, 0, 919, 1, 0, 39, 1, 6999, 0, 39,
-				1, 6998, 0, 799, 1, 0, 39, 6999, 0, 39, 6998, 0, 1153, 354, 0, 1309, 29, 0, 477, 1361, 0, 491, 1363, 0,
-				6999, 48, 0, 6998, 48, 0, 38, 814, 0, 38, 6999, 0, 38, 6998, 0, 6990, 1, 0, 6989, 1, 0, 318, 431, 0,
-				318, 323, 0, 7252, 275, 0, 7251, 275, 0, 7358, 275, 0, 7357, 275, 0, 7279, 275, 0, 7278, 275, 0, 7277,
-				275, 0, 7276, 275, 0, 7275, 275, 0, 7274, 275, 0, 7273, 275, 0, 7272, 275, 0, 7291, 275, 0, 7290, 275,
-				0, 7289, 275, 0, 7288, 275, 0, 7287, 275, 0, 7286, 275, 0, 7285, 275, 0, 7284, 275, 0, 7283, 275, 0,
-				7282, 275, 0, 7281, 275, 0, 39, 275, 6999, 0, 39, 275, 6998, 0, 7022, 275, 0, 1309, 424, 0, 4052, 126,
-				0, 35, 33, 0, 1, 481, 0, 495, 1165, 0, 494, 1305, 0, 47, 37, 0, 7022, 1, 0, 39, 1, 0, 639, 91, 0, 32,
-				34, 0, 39, 814, 0, 1, 1117, 0, 1, 7291, 0, 1, 7290, 0, 1, 7289, 0, 1, 7288, 0, 1, 7287, 0, 1, 7286, 0,
-				1, 7285, 0, 1, 7284, 0, 1, 7283, 0, 1, 7282, 0, 1, 7281, 0, 43, 7020, 0, 43, 37, 0, 538, 3262, 0, 7022,
-				1, 263, 0, 39, 1, 263, 0, 263, 453, 0, 6999, 37, 0, 6998, 37, 0, 271, 4425, 0, 425, 32, 0, 424, 29, 0,
-				4052, 128, 0, 4052, 127, 0, 1, 5746, 0, 1, 5385, 0, 1, 5442, 0, 1, 5509, 0, 1, 5532, 0, 1, 5561, 0, 1,
-				5585, 0, 1, 5608, 0, 1, 2284, 0, 1, 5416, 0, 1, 7006, 0, 1, 7005, 0, 1, 7004, 0, 1, 7003, 0, 1, 7002, 0,
-				1, 7001, 0, 1, 7000, 0, 1, 1119, 0, 1, 1163, 0, 1, 1178, 0, 1, 1203, 0, 1, 1282, 0, 1, 672, 0, 367, 482,
-				0, 6994, 442, 0, 6993, 442, 0, 1, 2469, 0, 1, 814, 0, 263, 452, 0, 1, 92, 0, 275, 6999, 0, 275, 6998, 0,
-				7020, 45, 0, 37, 45, 0, 1, 367, 0, 2, 6999, 37, 0, 2, 6998, 37, 0, 6999, 36, 0, 6998, 36, 0, 538, 5986,
-				0, 1, 263, 0, 367, 95, 0, 35, 73, 0, 263, 254, 0, 313, 4934, 0, 263, 253, 0, 6996, 1, 0, 6992, 1, 0, 1,
-				263, 3573, 0, 6993, 263, 0, 3574, 263, 0, 6996, 420, 0, 6995, 420, 0, 3586, 263, 0, 10, 12, 0, 8, 10,
-				12, 0, 3656, 227, 0, 218, 5147, 0, 3659, 420, 0, 8, 12, 0 };
-	}
-
-	public final static char baseAction[] = BaseAction.baseAction;
-
-	@Override
-	public final int baseAction(int index) {
-		return baseAction[index];
-	}
-
-	public final static char lhs[] = baseAction;
-
-	@Override
-	public final int lhs(int index) {
-		return lhs[index];
-	}
-
-	public interface TermCheck {
-		public final static byte termCheck[] = { 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
-				19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
-				45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 0, 56, 57, 58, 59, 0, 61, 62, 63, 4, 65, 66, 67, 0, 69, 0, 1, 2,
-				73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
-				15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
-				41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 86, 87, 56, 57, 58, 59, 0, 61, 62, 63, 95, 65, 66,
-				67, 0, 69, 0, 1, 2, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
-				10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
-				36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 0, 56, 57, 58, 59, 0, 61, 62,
-				63, 0, 65, 66, 67, 94, 69, 0, 1, 2, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4,
-				5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
-				32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 0, 56, 57,
-				58, 59, 0, 61, 62, 63, 96, 65, 66, 67, 94, 69, 92, 93, 0, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
-				85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
-				27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
-				53, 86, 87, 56, 57, 58, 59, 0, 61, 62, 63, 4, 65, 66, 67, 94, 69, 101, 102, 86, 87, 74, 75, 76, 77, 78,
-				79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
-				21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
-				47, 48, 49, 50, 51, 52, 53, 0, 0, 56, 57, 58, 59, 0, 61, 62, 63, 4, 65, 66, 67, 0, 69, 0, 1, 2, 5, 74,
-				75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
-				17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
-				43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 86, 87, 56, 57, 58, 59, 0, 61, 62, 63, 95, 65, 66, 67, 0,
-				69, 0, 0, 0, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
-				12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
-				38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 70, 56, 57, 58, 59, 0, 61, 62, 63, 0,
-				65, 66, 67, 94, 69, 86, 87, 86, 87, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6,
-				7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
-				34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 86, 87, 56, 57, 58, 59,
-				0, 61, 62, 63, 0, 65, 66, 67, 0, 69, 92, 93, 0, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1,
-				2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
-				30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 68,
-				56, 57, 58, 59, 0, 61, 62, 63, 4, 65, 66, 67, 0, 69, 92, 93, 86, 87, 74, 75, 76, 77, 78, 79, 80, 81, 82,
-				83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
-				25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
-				51, 52, 53, 86, 87, 56, 57, 58, 59, 0, 61, 62, 63, 0, 65, 66, 67, 0, 69, 0, 1, 2, 0, 74, 75, 76, 77, 78,
-				79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
-				21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
-				47, 48, 49, 50, 51, 52, 53, 0, 68, 56, 57, 58, 59, 0, 61, 62, 63, 4, 65, 66, 67, 0, 69, 0, 1, 2, 95, 74,
-				75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
-				17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
-				43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 0, 56, 57, 58, 59, 6, 61, 62, 63, 96, 65, 66, 67, 0, 69,
-				0, 1, 2, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 10, 11, 12,
-				13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
-				55, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 68, 56, 57, 58, 59, 0, 1, 2, 3, 4, 5, 6,
-				7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
-				0, 1, 2, 0, 4, 39, 0, 41, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 0, 0, 0, 55, 56, 57, 58, 5, 0, 61, 62, 63, 0, 1,
-				2, 3, 4, 120, 6, 71, 8, 73, 34, 35, 23, 24, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 88, 11, 12, 13, 14, 15, 16,
-				17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 60, 71, 114, 115, 116, 0, 1, 2, 3,
-				4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
-				31, 32, 33, 0, 0, 99, 100, 3, 39, 0, 41, 0, 3, 9, 5, 0, 7, 0, 9, 0, 1, 2, 0, 4, 55, 56, 57, 58, 0, 7,
-				61, 62, 63, 0, 1, 2, 3, 4, 0, 6, 71, 8, 73, 34, 35, 36, 37, 0, 39, 34, 35, 0, 1, 2, 0, 4, 5, 88, 7, 0,
-				9, 0, 0, 54, 60, 3, 55, 0, 64, 60, 9, 0, 68, 64, 55, 0, 72, 68, 3, 70, 71, 72, 73, 114, 115, 116, 0, 1,
-				2, 3, 4, 5, 6, 7, 8, 86, 87, 0, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
-				105, 106, 107, 108, 109, 110, 111, 112, 60, 72, 120, 54, 117, 118, 119, 0, 92, 93, 3, 72, 5, 64, 7, 70,
-				9, 0, 1, 2, 3, 4, 97, 6, 60, 8, 97, 0, 1, 2, 3, 4, 5, 96, 7, 0, 97, 0, 89, 90, 0, 34, 35, 36, 37, 5, 39,
-				7, 0, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 54, 0, 1, 2, 3, 4, 60, 6, 0, 8, 64, 97, 4, 5, 68,
-				7, 70, 71, 72, 73, 0, 0, 0, 0, 1, 2, 60, 71, 54, 6, 64, 8, 86, 87, 68, 89, 90, 91, 92, 93, 94, 95, 96,
-				97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 0, 0, 60, 0, 117, 118, 119,
-				0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
-				28, 29, 30, 31, 32, 33, 0, 1, 2, 3, 4, 39, 6, 41, 8, 0, 1, 2, 91, 4, 5, 55, 7, 95, 0, 98, 0, 55, 56, 57,
-				58, 0, 64, 61, 62, 63, 68, 65, 0, 1, 2, 0, 4, 0, 3, 73, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
-				0, 0, 88, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
-				26, 27, 28, 29, 30, 31, 32, 33, 64, 70, 0, 1, 2, 39, 4, 41, 6, 0, 8, 0, 1, 2, 0, 4, 70, 6, 70, 8, 54,
-				55, 56, 57, 58, 0, 0, 61, 62, 63, 0, 65, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 0,
-				1, 2, 3, 4, 5, 6, 7, 8, 0, 88, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
-				21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 1, 2, 0, 68, 39, 6, 41, 8, 0, 7, 70, 0, 1, 2, 60,
-				4, 5, 54, 7, 0, 55, 56, 57, 58, 70, 0, 61, 62, 63, 4, 65, 0, 1, 2, 3, 4, 0, 6, 73, 8, 9, 101, 102, 103,
-				104, 105, 106, 107, 108, 109, 110, 111, 112, 88, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
-				16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 70, 54, 60, 0, 39, 0, 41, 0,
-				0, 1, 2, 4, 4, 5, 72, 7, 0, 0, 0, 0, 55, 56, 57, 58, 0, 9, 61, 62, 63, 22, 65, 7, 0, 34, 35, 0, 89, 90,
-				73, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 0, 88, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
-				13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 72, 54, 0, 1, 2, 39,
-				4, 41, 0, 1, 2, 64, 4, 5, 70, 7, 0, 54, 0, 0, 0, 55, 56, 57, 58, 0, 96, 61, 62, 63, 10, 65, 0, 114, 115,
-				116, 89, 90, 0, 73, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 89, 90, 88, 0, 1, 2, 3, 4, 5, 6, 7,
-				8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0,
-				1, 2, 60, 0, 39, 6, 41, 4, 60, 0, 0, 1, 2, 3, 4, 0, 6, 91, 8, 9, 55, 56, 57, 58, 98, 22, 61, 62, 63, 0,
-				65, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 114, 115, 116, 0, 1, 2, 39, 0, 0, 0, 88, 0, 1, 2, 3,
-				4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
-				31, 32, 33, 0, 1, 2, 0, 41, 39, 3, 41, 0, 68, 0, 0, 1, 2, 3, 4, 0, 6, 91, 8, 9, 55, 56, 57, 58, 98, 64,
-				61, 62, 63, 68, 65, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 1, 2, 3, 4, 5, 39, 7, 0, 0, 88,
-				0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
-				28, 29, 30, 31, 32, 33, 0, 1, 2, 0, 4, 39, 6, 41, 8, 0, 0, 1, 2, 0, 4, 60, 6, 0, 8, 0, 7, 55, 56, 57,
-				58, 0, 9, 61, 62, 63, 0, 65, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
-				21, 88, 55, 0, 1, 2, 0, 1, 2, 0, 1, 2, 55, 34, 35, 36, 37, 38, 9, 40, 54, 42, 43, 44, 45, 46, 47, 48,
-				49, 50, 51, 52, 53, 0, 1, 2, 72, 71, 59, 6, 0, 0, 0, 64, 3, 66, 67, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
-				11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 66, 67, 0, 66, 67, 3, 0, 1, 2, 69, 91, 5, 34, 35, 36, 37,
-				38, 98, 40, 55, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 60, 60, 0, 64, 64, 59, 0, 0, 68, 0, 3,
-				9, 0, 0, 0, 69, 10, 5, 9, 73, 0, 1, 2, 3, 4, 5, 6, 7, 8, 55, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
-				21, 0, 1, 2, 0, 0, 41, 39, 0, 0, 5, 3, 0, 34, 35, 36, 37, 38, 0, 40, 55, 42, 43, 44, 45, 46, 47, 48, 49,
-				50, 51, 52, 53, 0, 1, 2, 68, 64, 59, 0, 1, 2, 0, 1, 2, 66, 67, 0, 1, 2, 3, 4, 5, 6, 7, 8, 55, 10, 11,
-				12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 99, 100, 54, 64, 0, 71, 64, 0, 9, 118, 0, 34, 35, 36, 37, 38,
-				9, 40, 55, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 1, 2, 99, 100, 59, 89, 90, 0, 0, 0, 0, 66,
-				67, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 68, 0, 0, 0, 72, 68,
-				3, 64, 0, 69, 9, 9, 34, 35, 36, 37, 38, 9, 40, 55, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 1,
-				2, 0, 0, 59, 64, 4, 0, 0, 0, 71, 3, 9, 71, 69, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
-				17, 18, 19, 20, 21, 68, 0, 0, 0, 73, 73, 3, 69, 38, 0, 9, 9, 34, 35, 36, 37, 38, 55, 40, 54, 42, 43, 44,
-				45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 1, 2, 0, 0, 59, 0, 73, 39, 39, 70, 0, 9, 9, 3, 69, 0, 1, 2, 3, 4,
-				5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 0, 0, 64, 3, 39, 0, 0, 0, 3, 0, 9, 34,
-				35, 36, 37, 38, 55, 40, 9, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 0, 0, 0, 3, 72, 5, 6, 7,
-				0, 74, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 60,
-				34, 35, 36, 37, 71, 38, 40, 72, 0, 0, 0, 3, 71, 3, 0, 0, 73, 9, 0, 10, 54, 86, 87, 55, 0, 0, 60, 0, 10,
-				118, 64, 4, 66, 67, 68, 0, 70, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 75, 41, 0, 86, 87, 0, 89,
-				90, 91, 92, 93, 94, 95, 96, 9, 55, 99, 100, 101, 60, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
-				61, 72, 54, 68, 117, 0, 1, 2, 3, 4, 5, 6, 7, 8, 39, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0,
-				1, 2, 0, 0, 60, 3, 3, 0, 0, 0, 0, 34, 35, 36, 37, 38, 0, 40, 0, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
-				52, 53, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 66, 67, 0, 1, 2, 3, 4, 5, 6, 7, 8, 55, 10, 11,
-				12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 60, 0, 59, 54, 3, 54, 0, 0, 1, 2, 0, 0, 34, 35, 36, 37, 38, 0,
-				40, 0, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 0, 0, 3, 3, 59, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0,
-				10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 54, 0, 55, 0, 54, 54, 3, 0, 0, 0, 64, 54, 34, 35, 36,
-				37, 38, 10, 40, 0, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 0, 0, 89, 90, 0, 60, 0, 1, 2, 3,
-				4, 5, 6, 7, 8, 41, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 55, 54, 3, 0, 0, 0, 0, 62, 0, 0,
-				4, 34, 35, 36, 37, 38, 0, 40, 121, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 0, 0, 3, 0, 59, 0,
-				1, 2, 3, 4, 5, 6, 7, 8, 71, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 54, 54, 0, 54, 54, 0, 0, 0,
-				0, 0, 64, 54, 34, 35, 36, 37, 38, 0, 40, 0, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 0, 0, 89,
-				90, 59, 0, 1, 2, 3, 4, 5, 6, 7, 8, 71, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 54, 54, 54, 0, 0,
-				0, 0, 0, 0, 3, 68, 97, 34, 35, 36, 37, 38, 0, 40, 70, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0,
-				0, 0, 3, 3, 59, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 0, 0,
-				0, 0, 3, 0, 0, 0, 0, 9, 54, 34, 35, 36, 37, 38, 70, 40, 71, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
-				53, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 0, 113, 113, 71, 0,
-				0, 0, 0, 0, 9, 0, 34, 35, 36, 37, 38, 0, 40, 72, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 1,
-				2, 3, 4, 5, 6, 7, 8, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 38, 0, 70, 0, 113, 0, 0, 113,
-				0, 0, 0, 34, 35, 36, 37, 38, 0, 40, 72, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 1, 2, 3, 4,
-				5, 6, 7, 8, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 34,
-				35, 36, 37, 38, 0, 40, 0, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0,
-				10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 35, 36, 37, 38,
-				0, 40, 0, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 1, 2, 0, 4, 0, 0, 0, 0, 0, 10, 11, 12, 13,
-				14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, 0, 0, 41,
-				0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 4, 0, 0, 56, 57, 58, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
-				22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2,
-				0, 0, 0, 0, 56, 57, 58, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
-				30, 31, 32, 33, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 3, 56, 57, 58, 10, 11,
-				12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 0, 0, 0, 0,
-				36, 37, 41, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0, 56, 57, 58, 0, 0, 0, 0, 60, 22, 23, 24, 25, 26,
-				27, 28, 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, 39, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 0, 54,
-				0, 0, 0, 0, 0, 60, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 72, 0, 0, 0, 0, 0, 117, 0, 119, 0, 0, 22, 23, 24,
-				25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4,
-				5, 0, 7, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 64, 0, 0, 0, 68,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static byte termCheck[] = TermCheck.termCheck;
-
-	@Override
-	public final int termCheck(int index) {
-		return termCheck[index];
-	}
-
-	public interface TermAction {
-		public final static char termAction[] = { 0, 6984, 6946, 6922, 6922, 6922, 6922, 6922, 6922, 6922, 6962, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6950, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 121, 135, 1, 1, 1, 1, 39, 2562, 7192, 1558, 7022, 3487, 1, 1, 1, 6995, 434,
-				6998, 6999, 6991, 2498, 3580, 3434, 3319, 3376, 3569, 4713, 3579, 729, 3578, 3915, 3577, 10, 6965, 6965,
-				6965, 6965, 6965, 6965, 6965, 6965, 6965, 6965, 6965, 6965, 6965, 6965, 6965, 6965, 6965, 6965, 6965,
-				6965, 6965, 6965, 6965, 6965, 6965, 6965, 6965, 6965, 6965, 6965, 6965, 6965, 6965, 6965, 6965, 6965,
-				6965, 6965, 6965, 6965, 6965, 6965, 6965, 6965, 6965, 6965, 6965, 6965, 6965, 6965, 6965, 6965, 6965,
-				4307, 4395, 6965, 6965, 6965, 6965, 133, 6965, 6965, 6965, 3501, 6965, 6965, 6965, 367, 6965, 6984,
-				6998, 6999, 6965, 6965, 6965, 6965, 6965, 6965, 6965, 6965, 6965, 6965, 6965, 6965, 6965, 8, 6968, 6968,
-				6968, 6968, 6968, 6968, 6968, 6968, 6968, 6968, 6968, 6968, 6968, 6968, 6968, 6968, 6968, 6968, 6968,
-				6968, 6968, 6968, 6968, 6968, 6968, 6968, 6968, 6968, 6968, 6968, 6968, 6968, 6968, 6968, 6968, 6968,
-				6968, 6968, 6968, 6968, 6968, 6968, 6968, 6968, 6968, 6968, 6968, 6968, 6968, 6968, 6968, 6968, 6968,
-				137, 432, 6968, 6968, 6968, 6968, 134, 6968, 6968, 6968, 129, 6968, 6968, 6968, 3593, 6968, 6984, 6583,
-				6580, 6968, 6968, 6968, 6968, 6968, 6968, 6968, 6968, 6968, 6968, 6968, 6968, 6968, 6984, 6946, 6922,
-				6922, 6922, 6922, 6922, 6922, 6922, 6953, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 6950, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 125, 139, 1, 1, 1, 1, 153, 2562,
-				7192, 1558, 1324, 3487, 1, 1, 3593, 6995, 3790, 3758, 124, 333, 2498, 3580, 3434, 3319, 3376, 3569,
-				4713, 3579, 729, 3578, 3915, 3577, 6984, 6946, 6922, 6922, 6922, 6922, 6922, 6922, 6922, 6953, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6950, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 4307, 4395, 1, 1, 1, 1, 6984, 2562, 7192, 1558, 2663, 3487, 1, 1, 3628, 6995, 1080,
-				4229, 4307, 4395, 2498, 3580, 3434, 3319, 3376, 3569, 4713, 3579, 729, 3578, 3915, 3577, 6984, 6946,
-				6922, 6922, 6922, 6922, 6922, 6922, 6922, 6953, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6950, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 123, 136, 1, 1, 1, 1, 432,
-				2562, 7192, 1558, 425, 3487, 1, 1, 6984, 6995, 48, 6583, 6580, 1755, 2498, 3580, 3434, 3319, 3376, 3569,
-				4713, 3579, 729, 3578, 3915, 3577, 6984, 6946, 6922, 6922, 6922, 6922, 6922, 6922, 6922, 6953, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6950, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 4307, 4395, 1, 1, 1, 1, 154, 2562, 7192, 1558, 3501, 3487, 1, 1, 421, 6995, 122,
-				545, 141, 6984, 2498, 3580, 3434, 3319, 3376, 3569, 4713, 3579, 729, 3578, 3915, 3577, 6984, 6946, 6922,
-				6922, 6922, 6922, 6922, 6922, 6922, 6953, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 6950, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 145, 1200, 1, 1, 1, 1, 6984,
-				2562, 7192, 1558, 130, 3487, 1, 1, 3628, 6995, 4307, 4395, 4307, 4395, 2498, 3580, 3434, 3319, 3376,
-				3569, 4713, 3579, 729, 3578, 3915, 3577, 6984, 6946, 6922, 6922, 6922, 6922, 6922, 6922, 6922, 6953, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6950, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 4307, 4395, 1, 1, 1, 1, 6984, 2562, 7192, 1558, 149, 3487, 1, 1, 6984, 6995,
-				3790, 3758, 144, 398, 2498, 3580, 3434, 3319, 3376, 3569, 4713, 3579, 729, 3578, 3915, 3577, 6984, 6946,
-				6922, 6922, 6922, 6922, 6922, 6922, 6922, 6953, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6950, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 142, 3472, 1, 1, 1, 1,
-				6984, 2562, 7192, 1558, 2994, 3487, 1, 1, 6984, 6995, 3862, 3822, 4307, 4395, 2498, 3580, 3434, 3319,
-				3376, 3569, 4713, 3579, 729, 3578, 3915, 3577, 6984, 6946, 6922, 6922, 6922, 6922, 6922, 6922, 6922,
-				6953, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6950, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4307, 4395, 1, 1, 1, 1, 6984, 2562, 7192, 1558, 155, 3487, 1, 1,
-				6984, 6995, 333, 6998, 6999, 190, 2498, 3580, 3434, 3319, 3376, 3569, 4713, 3579, 729, 3578, 3915, 3577,
-				6984, 6946, 6922, 6922, 6922, 6922, 6922, 6922, 6922, 6953, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6950, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 138, 2146, 1,
-				1, 1, 1, 6984, 2562, 7192, 1558, 1524, 3487, 1, 1, 6984, 6995, 327, 6998, 6999, 3537, 2498, 3580, 3434,
-				3319, 3376, 3569, 4713, 3579, 729, 3578, 3915, 3577, 6984, 3573, 1, 1, 1, 1, 1, 1, 1, 3574, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6993, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 6984, 6984, 1, 1, 1, 1, 2000, 2562, 7192, 1558, 1324, 3487, 1, 1, 6984, 6995, 37,
-				6705, 6705, 552, 2498, 3580, 3434, 3319, 3376, 3569, 4713, 3579, 729, 3578, 3915, 3577, 39, 6565, 6562,
-				5188, 799, 5532, 5416, 5561, 2284, 6984, 1216, 7283, 7281, 7290, 7289, 7285, 7286, 7284, 7287, 7288,
-				7291, 7282, 7278, 7357, 7358, 7272, 7279, 7275, 7251, 7277, 7276, 7273, 7274, 7252, 5509, 5442, 5608,
-				5585, 7003, 7020, 5385, 7419, 1163, 1282, 7005, 1178, 5746, 1203, 7006, 7004, 1119, 7000, 7001, 7002,
-				6984, 996, 954, 7420, 7421, 1565, 6984, 6772, 6772, 263, 6768, 263, 263, 263, 263, 6776, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 323, 6604, 6604, 6984, 318, 263, 118, 1, 6984,
-				6555, 6551, 2469, 6559, 6902, 814, 6902, 2284, 6984, 384, 372, 115, 6765, 1, 1, 1, 5346, 6984, 968,
-				7433, 642, 1, 6555, 6551, 2469, 6559, 6544, 814, 263, 2284, 453, 4688, 4612, 7357, 7358, 257, 345, 6555,
-				6551, 2469, 6559, 6902, 814, 6902, 2284, 7521, 7283, 7281, 7290, 7289, 7285, 7286, 7284, 7287, 7288,
-				7291, 7282, 7278, 7357, 7358, 7272, 7279, 7275, 7251, 7277, 7276, 7273, 7274, 7252, 1519, 3079, 7456,
-				7457, 7458, 6984, 6772, 6772, 263, 6768, 263, 263, 263, 263, 6884, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6984, 1, 5322, 5298, 4435, 263, 33, 1, 47, 6693, 377, 6693, 120,
-				6693, 6984, 6693, 431, 6601, 6601, 131, 318, 6765, 1, 1, 1, 6984, 3676, 968, 7433, 642, 367, 6565, 6562,
-				2469, 799, 150, 814, 263, 2284, 452, 6693, 6693, 6693, 6693, 394, 6693, 4688, 4612, 1, 6711, 6711, 6984,
-				6708, 367, 7521, 367, 157, 399, 1, 383, 6693, 1519, 960, 1414, 543, 377, 6693, 399, 126, 377, 6693, 318,
-				6984, 377, 6693, 6261, 6693, 6693, 6693, 6693, 7456, 7457, 7458, 381, 6565, 6562, 3889, 799, 367, 814,
-				367, 2284, 6693, 6693, 1, 6693, 6693, 6693, 6693, 6693, 6693, 6693, 6693, 6693, 6693, 6693, 6693, 6693,
-				6693, 6693, 6693, 6693, 6693, 6693, 6693, 6693, 6693, 6693, 6693, 1519, 399, 377, 4079, 6693, 6693,
-				6693, 6984, 3862, 3822, 6717, 399, 6717, 6690, 6717, 2416, 6717, 1, 6555, 6551, 2469, 6559, 7377, 814,
-				1519, 2284, 399, 37, 6999, 6999, 6999, 6999, 6999, 3445, 6999, 6984, 399, 6984, 4020, 3993, 6984, 6717,
-				6717, 6717, 6717, 1706, 6717, 1659, 6984, 6999, 6999, 6999, 6999, 6999, 6999, 6999, 6999, 6999, 6999,
-				6999, 6999, 6717, 1, 6555, 6551, 3889, 6559, 6717, 814, 39, 2284, 6717, 7379, 7022, 367, 6717, 367,
-				6717, 6717, 6717, 6717, 6984, 111, 156, 38, 6592, 6589, 6999, 3079, 751, 6586, 6999, 2284, 6717, 6717,
-				6999, 6717, 6717, 6717, 6717, 6717, 6717, 6717, 6717, 6717, 6717, 6717, 6717, 6717, 6717, 6717, 6717,
-				6717, 6717, 6717, 6717, 6717, 6717, 6717, 6717, 6984, 37, 1519, 6984, 6717, 6717, 6717, 6984, 6922,
-				6922, 263, 6922, 263, 263, 263, 263, 6931, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 10901, 1,
-				1, 1, 1, 1, 1, 1, 6555, 6551, 6878, 6559, 263, 6881, 1, 6824, 481, 1, 1, 5654, 1, 6696, 7020, 6696,
-				3537, 258, 5677, 139, 6919, 1, 1, 1, 6984, 668, 2290, 7229, 1558, 4850, 3487, 6984, 6565, 6562, 347,
-				7022, 406, 2334, 254, 7278, 7357, 7358, 7272, 7279, 7275, 7251, 7277, 7276, 7273, 7274, 7252, 6984,
-				6984, 7521, 6984, 6922, 6922, 263, 6922, 263, 263, 263, 263, 263, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 10901, 1, 1, 1, 1, 1, 1, 3265, 2099, 6984, 6565, 6562, 263, 799, 1, 814, 6984, 2284, 6984,
-				6565, 6562, 6984, 799, 1222, 814, 1372, 2284, 3314, 6919, 1, 1, 1, 320, 6984, 2290, 7229, 1558, 159,
-				3487, 1080, 4229, 2052, 2005, 1958, 1911, 1864, 1817, 1770, 1723, 1676, 1629, 403, 6555, 6551, 3889,
-				6559, 1, 814, 1, 2284, 29, 7521, 6984, 6922, 6922, 263, 6922, 263, 263, 263, 263, 6937, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 10901, 1, 1, 1, 1, 1, 1, 6984, 6998, 6999, 132, 7303, 263, 814, 1,
-				2284, 6984, 3676, 2900, 482, 39, 39, 1519, 7022, 6869, 6571, 6869, 404, 6919, 1, 1, 1, 1277, 6984, 2290,
-				7229, 1558, 1666, 3487, 1, 6555, 6551, 3889, 6559, 146, 814, 253, 2284, 6595, 3382, 4275, 2834, 2768,
-				2702, 2636, 2570, 2504, 2438, 2372, 2306, 2240, 7521, 6984, 6922, 6922, 263, 6922, 263, 263, 263, 263,
-				6931, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 10901, 1, 1, 1, 1, 1, 1, 119, 1424, 4160, 1519,
-				6984, 263, 6984, 1, 39, 92, 1, 1, 7022, 1, 6887, 6598, 6887, 6984, 259, 158, 6984, 6919, 1, 1, 1, 151,
-				6990, 2290, 7229, 1558, 2350, 3487, 3710, 547, 4688, 4612, 128, 4133, 4106, 254, 7278, 7357, 7358, 7272,
-				7279, 7275, 7251, 7277, 7276, 7273, 7274, 7252, 148, 6984, 7521, 6984, 6922, 6922, 263, 6922, 263, 263,
-				263, 263, 6931, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 10901, 1, 1, 1, 1, 1, 1, 6989, 4079,
-				6984, 6565, 6562, 263, 7022, 1, 95, 39, 39, 6794, 7022, 6925, 1027, 6925, 114, 4160, 260, 476, 337,
-				6919, 1, 1, 1, 6984, 3445, 2290, 7229, 1558, 7320, 3487, 356, 7456, 7457, 7458, 4020, 3993, 495, 254,
-				7278, 7357, 7358, 7272, 7279, 7275, 7251, 7277, 7276, 7273, 7274, 7252, 4133, 4106, 7521, 6984, 6922,
-				6922, 263, 6922, 263, 263, 263, 263, 263, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 10901, 1,
-				1, 1, 1, 1, 1, 6984, 6998, 6999, 1519, 39, 263, 2000, 1, 7022, 6699, 261, 1, 6555, 6551, 6878, 6559,
-				113, 6881, 5654, 6824, 6994, 6919, 1, 1, 1, 5677, 3022, 2290, 7229, 1558, 326, 3487, 7278, 7357, 7358,
-				7272, 7279, 7275, 7251, 7277, 7276, 7273, 7274, 7252, 7456, 7457, 7458, 36, 6916, 6913, 6993, 6984,
-				6984, 6984, 7521, 6984, 6922, 6922, 263, 6922, 263, 263, 263, 263, 263, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 10901, 1, 1, 1, 1, 1, 1, 6984, 10657, 10382, 6984, 957, 263, 4425, 1, 6984, 10053,
-				572, 1, 6555, 6551, 2469, 6559, 6984, 814, 5654, 2284, 345, 6919, 1, 1, 1, 5677, 6121, 2290, 7229, 1558,
-				4850, 3487, 7278, 7357, 7358, 7272, 7279, 7275, 7251, 7277, 7276, 7273, 7274, 7252, 381, 39, 39, 4435,
-				7022, 367, 345, 367, 6984, 6984, 7521, 6984, 6922, 6922, 263, 6922, 263, 263, 263, 263, 263, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 10901, 1, 1, 1, 1, 1, 1, 6984, 6565, 6562, 6984, 799, 263, 6720,
-				1, 2284, 6984, 6984, 6565, 6562, 152, 799, 1519, 6720, 1, 2284, 29, 3710, 6919, 1, 1, 1, 6984, 194,
-				2290, 7229, 1558, 6984, 3487, 1, 6555, 6551, 672, 799, 5532, 5416, 5561, 2284, 112, 6723, 6750, 6756,
-				6729, 6732, 6744, 6741, 6747, 6738, 6735, 6726, 6753, 7521, 1062, 6984, 6998, 6999, 6984, 6583, 6580,
-				6984, 6998, 6999, 2798, 5509, 5442, 5608, 5585, 7003, 6996, 5385, 1309, 1163, 1282, 7005, 1178, 5746,
-				1203, 7006, 7004, 1119, 7000, 7001, 7002, 37, 6705, 6705, 194, 461, 1565, 6705, 6984, 1, 494, 553, 4435,
-				39, 39, 39, 6565, 6562, 5188, 799, 5532, 5416, 5561, 2284, 6978, 1117, 7283, 7281, 7290, 7289, 7285,
-				7286, 7284, 7287, 7288, 7291, 7282, 5631, 794, 91, 5631, 794, 6714, 37, 6705, 6705, 6995, 5654, 367,
-				5509, 5442, 5608, 5585, 7003, 5677, 5385, 2047, 1163, 1282, 7005, 1178, 5746, 1203, 7006, 7004, 1119,
-				7000, 7001, 7002, 1519, 6702, 6984, 3272, 577, 1565, 1, 271, 577, 6984, 6785, 6988, 117, 6984, 6984,
-				6959, 6545, 5346, 6994, 6991, 174, 6565, 6562, 5188, 799, 5532, 5416, 5561, 2284, 7020, 1117, 7283,
-				7281, 7290, 7289, 7285, 7286, 7284, 7287, 7288, 7291, 7282, 43, 6762, 6762, 6984, 116, 6548, 6993, 1,
-				6984, 5346, 6383, 6984, 5509, 5442, 5608, 5585, 7003, 147, 5385, 628, 1163, 1282, 7005, 1178, 5746,
-				1203, 7006, 7004, 1119, 7000, 7001, 7002, 6984, 6782, 6779, 4378, 3273, 1565, 6984, 10657, 10382, 326,
-				833, 833, 39, 39, 1, 6555, 6551, 672, 799, 5532, 5416, 5561, 2284, 6759, 6723, 6750, 6756, 6729, 6732,
-				6744, 6741, 6747, 6738, 6735, 6726, 6753, 6984, 5322, 5298, 4160, 3306, 463, 2193, 7533, 6984, 6990,
-				6987, 6984, 5509, 5442, 5608, 5585, 7003, 6996, 5385, 7020, 1163, 1282, 7005, 1178, 5746, 1203, 7006,
-				7004, 1119, 7000, 7001, 7002, 6984, 10787, 10787, 5322, 5298, 1565, 4133, 4106, 6984, 6984, 6984, 465,
-				39, 39, 39, 6565, 6562, 5188, 799, 5532, 5416, 5561, 2284, 6956, 1117, 7283, 7281, 7290, 7289, 7285,
-				7286, 7284, 7287, 7288, 7291, 7282, 6390, 6984, 6984, 6984, 6989, 2614, 4429, 7462, 1, 6995, 6992, 6992,
-				5509, 5442, 5608, 5585, 7003, 6940, 5385, 7020, 1163, 1282, 7005, 1178, 5746, 1203, 7006, 7004, 1119,
-				7000, 7001, 7002, 37, 6705, 6705, 433, 1, 1565, 7476, 424, 6984, 6984, 328, 7422, 4431, 6943, 1499,
-				6959, 39, 6565, 6562, 5188, 799, 5532, 5416, 5561, 2284, 6956, 1117, 7283, 7281, 7290, 7289, 7285, 7286,
-				7284, 7287, 7288, 7291, 7282, 1173, 442, 6984, 6984, 6991, 6991, 4490, 6995, 1896, 6984, 6872, 6994,
-				5509, 5442, 5608, 5585, 7003, 1953, 5385, 1309, 1163, 1282, 7005, 1178, 5746, 1203, 7006, 7004, 1119,
-				7000, 7001, 7002, 45, 6899, 6899, 1, 1, 1565, 1, 6991, 6875, 6993, 3121, 6984, 6990, 6994, 4523, 6959,
-				39, 6565, 6562, 5188, 799, 5532, 5416, 5561, 2284, 6988, 1117, 7283, 7281, 7290, 7289, 7285, 7286, 7284,
-				7287, 7288, 7291, 7282, 6984, 6984, 6984, 5970, 1153, 6993, 354, 6984, 485, 6568, 8, 6990, 5509, 5442,
-				5608, 5585, 7003, 6896, 5385, 6981, 1163, 1282, 7005, 1178, 5746, 1203, 7006, 7004, 1119, 7000, 7001,
-				7002, 571, 1, 6984, 6984, 2509, 6989, 7484, 7490, 7488, 227, 3160, 7283, 7281, 7290, 7289, 7285, 7286,
-				7284, 7287, 7288, 7291, 7282, 7278, 7357, 7358, 7272, 7279, 7275, 7251, 7277, 7276, 7273, 7274, 7252,
-				1519, 7482, 7483, 7513, 7514, 2966, 3934, 7491, 6989, 1, 1, 6984, 4435, 701, 4934, 486, 573, 6981, 6595,
-				337, 6545, 7493, 4307, 4395, 3316, 6984, 6984, 1156, 48, 7320, 6987, 7494, 6999, 2089, 2127, 7515, 6984,
-				7492, 7278, 7357, 7358, 7272, 7279, 7275, 7251, 7277, 7276, 7273, 7274, 7252, 6972, 6548, 100, 7504,
-				7503, 1, 7509, 7510, 7516, 7507, 7508, 7487, 7489, 7511, 224, 628, 7485, 7486, 7512, 1519, 7497, 7498,
-				7499, 7495, 7496, 7505, 7506, 7501, 7500, 7502, 3014, 6598, 6999, 2486, 7517, 1, 6555, 6551, 6866, 6559,
-				6812, 6827, 6815, 6824, 224, 6723, 6750, 6756, 6729, 6732, 6744, 6741, 6747, 6738, 6735, 6726, 6753,
-				6984, 6909, 6905, 6984, 103, 4782, 4969, 5031, 99, 6984, 574, 595, 6809, 6806, 6821, 6818, 6839, 477,
-				6803, 491, 6854, 6863, 6833, 6857, 6800, 6860, 6830, 6836, 6851, 6848, 6845, 6842, 7278, 7357, 7358,
-				7272, 7279, 7275, 7251, 7277, 7276, 7273, 7274, 7252, 6711, 6711, 39, 6565, 6562, 5188, 799, 5532, 5416,
-				5561, 2284, 7020, 1117, 7283, 7281, 7290, 7289, 7285, 7286, 7284, 7287, 7288, 7291, 7282, 3277, 6984,
-				3496, 6574, 3497, 6577, 127, 6984, 11379, 9059, 424, 6984, 5509, 5442, 5608, 5585, 7003, 6984, 5385,
-				218, 1163, 1282, 7005, 1178, 5746, 1203, 7006, 7004, 1119, 7000, 7001, 7002, 313, 6984, 6984, 6934,
-				6326, 1565, 39, 6565, 6562, 5188, 799, 5532, 5416, 5561, 2284, 6984, 1117, 7283, 7281, 7290, 7289, 7285,
-				7286, 7284, 7287, 7288, 7291, 7282, 4079, 6984, 7020, 6984, 6687, 2878, 5058, 6984, 6984, 6984, 6797,
-				2944, 5509, 5442, 5608, 5585, 7003, 758, 5385, 6984, 1163, 1282, 7005, 1178, 5746, 1203, 7006, 7004,
-				1119, 7000, 7001, 7002, 6984, 6984, 6984, 4020, 3993, 6984, 1501, 39, 6565, 6562, 672, 799, 5532, 5416,
-				5561, 2284, 919, 1117, 7283, 7281, 7290, 7289, 7285, 7286, 7284, 7287, 7288, 7291, 7282, 6984, 628,
-				6335, 6345, 6984, 6984, 6984, 48, 7583, 6984, 6984, 6998, 5509, 5442, 5608, 5585, 7003, 6984, 5385,
-				6975, 1163, 1282, 7005, 1178, 5746, 1203, 7006, 7004, 1119, 7000, 7001, 7002, 6984, 6984, 1, 6352, 6984,
-				1565, 39, 6565, 6562, 672, 799, 5532, 5416, 5561, 2284, 3178, 1117, 7283, 7281, 7290, 7289, 7285, 7286,
-				7284, 7287, 7288, 7291, 7282, 4160, 6998, 344, 6364, 1309, 6984, 432, 6984, 73, 457, 4200, 3314, 5509,
-				5442, 5608, 5585, 7003, 6984, 5385, 6984, 1163, 1282, 7005, 1178, 5746, 1203, 7006, 7004, 1119, 7000,
-				7001, 7002, 6984, 6984, 6984, 4133, 4106, 1565, 39, 6565, 6562, 5188, 799, 5532, 5416, 5561, 2284, 4775,
-				1117, 7283, 7281, 7290, 7289, 7285, 7286, 7284, 7287, 7288, 7291, 7282, 1309, 3153, 6928, 6984, 411,
-				6984, 6984, 35, 6984, 4263, 2271, 4364, 5509, 5442, 5608, 5585, 7003, 2, 5385, 3220, 1163, 1282, 7005,
-				1178, 5746, 1203, 7006, 7004, 1119, 7000, 7001, 7002, 6984, 6984, 6984, 6371, 3571, 1565, 39, 6565,
-				6562, 6291, 799, 5532, 5416, 5561, 2284, 6984, 1117, 7283, 7281, 7290, 7289, 7285, 7286, 7284, 7287,
-				7288, 7291, 7282, 584, 1, 6984, 583, 6984, 4940, 6984, 6984, 6984, 6984, 591, 37, 5509, 5442, 5608,
-				5585, 7003, 3170, 5385, 4837, 1163, 1282, 7005, 1178, 5746, 1203, 7006, 7004, 1119, 7000, 7001, 7002,
-				39, 6565, 6562, 5188, 799, 5532, 5416, 5561, 2284, 6984, 1117, 7283, 7281, 7290, 7289, 7285, 7286, 7284,
-				7287, 7288, 7291, 7282, 6984, 1, 3585, 3585, 4899, 6984, 6984, 6984, 6984, 6984, 196, 6984, 5509, 5442,
-				5608, 5585, 7003, 1, 5385, 591, 1163, 1282, 7005, 1178, 5746, 1203, 7006, 7004, 1119, 7000, 7001, 7002,
-				39, 6565, 6562, 672, 799, 5532, 5416, 5561, 2284, 6984, 1117, 7283, 7281, 7290, 7289, 7285, 7286, 7284,
-				7287, 7288, 7291, 7282, 6984, 3486, 6984, 3170, 6984, 1, 6984, 6984, 3585, 6984, 6984, 6984, 5509, 5442,
-				5608, 5585, 7003, 6984, 5385, 196, 1163, 1282, 7005, 1178, 5746, 1203, 7006, 7004, 1119, 7000, 7001,
-				7002, 39, 6565, 6562, 672, 799, 5532, 5416, 5561, 2284, 6984, 1117, 7283, 7281, 7290, 7289, 7285, 7286,
-				7284, 7287, 7288, 7291, 7282, 6984, 6984, 6984, 3032, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984,
-				5509, 5442, 5608, 5585, 7003, 6984, 5385, 6984, 1163, 1282, 7005, 1178, 5746, 1203, 7006, 7004, 1119,
-				7000, 7001, 7002, 39, 6565, 6562, 5188, 799, 5532, 5416, 5561, 2284, 6984, 1117, 7283, 7281, 7290, 7289,
-				7285, 7286, 7284, 7287, 7288, 7291, 7282, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984,
-				6984, 6984, 5509, 5442, 5608, 5585, 7003, 6984, 5385, 6984, 1163, 1282, 7005, 1178, 5746, 1203, 7006,
-				7004, 1119, 7000, 7001, 7002, 6984, 6565, 6562, 6984, 7022, 6984, 6984, 6984, 6984, 6984, 1046, 7283,
-				7281, 7290, 7289, 7285, 7286, 7284, 7287, 7288, 7291, 7282, 7278, 7357, 7358, 7272, 7279, 7275, 7251,
-				7277, 7276, 7273, 7274, 7252, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 7419, 6984, 6984, 6984, 6984,
-				6984, 6984, 6984, 275, 6680, 6676, 6984, 6684, 6984, 6984, 954, 7420, 7421, 1046, 6667, 6673, 6646,
-				6649, 6661, 6658, 6664, 6655, 6652, 6643, 6670, 6622, 6616, 6613, 6640, 6619, 6631, 6610, 6625, 6628,
-				6637, 6634, 6607, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 7419, 6984, 6984, 6984, 6984, 6984, 6984,
-				6984, 6984, 6998, 6999, 6984, 6984, 6984, 6984, 954, 7420, 7421, 1352, 7283, 7281, 7290, 7289, 7285,
-				7286, 7284, 7287, 7288, 7291, 7282, 7278, 7357, 7358, 7272, 7279, 7275, 7251, 7277, 7276, 7273, 7274,
-				7252, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 7419, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 275,
-				6893, 6890, 75, 6984, 6984, 4496, 954, 7420, 7421, 1352, 6667, 6673, 6646, 6649, 6661, 6658, 6664, 6655,
-				6652, 6643, 6670, 6622, 6616, 6613, 6640, 6619, 6631, 6610, 6625, 6628, 6637, 6634, 6607, 6984, 6984,
-				6984, 6984, 6984, 7046, 7047, 7419, 29, 424, 424, 6791, 424, 6791, 424, 6791, 424, 6791, 6984, 6984,
-				6984, 6984, 954, 7420, 7421, 6984, 575, 6984, 6984, 3931, 424, 424, 424, 424, 424, 424, 424, 424, 424,
-				424, 424, 424, 6984, 6984, 6984, 6984, 6984, 6791, 7278, 7357, 7358, 7272, 7279, 7275, 7251, 7277, 7276,
-				7273, 7274, 7252, 6984, 6984, 6571, 6984, 6984, 6984, 6984, 6984, 6791, 32, 425, 425, 6788, 425, 6788,
-				425, 6788, 425, 6788, 6984, 6791, 6984, 6984, 6984, 6984, 6984, 866, 6984, 2733, 6984, 6984, 425, 425,
-				425, 425, 425, 425, 425, 425, 425, 425, 425, 425, 6984, 6984, 6984, 6984, 6984, 6788, 6984, 6984, 6984,
-				6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 37, 6998, 6998, 6998, 6998, 6998, 6984, 6998, 6984,
-				6788, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6788, 6998, 6998, 6998, 6998,
-				6998, 6998, 6998, 6998, 6998, 6998, 6998, 6998, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984,
-				6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984, 6984,
-				6998, 6984, 6984, 6984, 6998, 6984, 6984, 6984, 6998 };
-	}
-
-	public final static char termAction[] = TermAction.termAction;
-
-	@Override
-	public final int termAction(int index) {
-		return termAction[index];
-	}
-
-	public interface Asb {
-		public final static char asb[] = { 0, 58, 20, 522, 32, 32, 229, 376, 376, 229, 135, 135, 1037, 809, 135, 9, 165,
-				229, 471, 818, 818, 270, 22, 23, 39, 39, 510, 662, 662, 524, 662, 510, 101, 825, 590, 962, 973, 608,
-				973, 1, 973, 52, 973, 957, 973, 592, 510, 590, 827, 32, 955, 522, 522, 522, 522, 592, 955, 455, 103,
-				472, 472, 472, 472, 472, 472, 472, 472, 472, 665, 671, 676, 673, 680, 678, 685, 683, 687, 686, 688, 313,
-				689, 471, 471, 310, 703, 831, 831, 522, 662, 108, 108, 659, 310, 912, 662, 662, 108, 510, 594, 1092,
-				912, 912, 829, 809, 510, 361, 213, 3, 753, 4, 592, 510, 510, 1094, 9, 829, 376, 455, 135, 135, 135, 135,
-				510, 871, 912, 912, 455, 915, 134, 1092, 455, 665, 751, 751, 871, 471, 472, 472, 472, 472, 472, 472,
-				472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 471, 471, 471, 471, 471, 471, 471, 471,
-				471, 471, 471, 471, 472, 831, 831, 108, 108, 590, 310, 310, 108, 1091, 508, 912, 28, 820, 510, 362, 657,
-				655, 213, 510, 607, 513, 518, 1094, 608, 364, 510, 1094, 510, 507, 912, 912, 1038, 1038, 1038, 1038,
-				1094, 912, 471, 472, 611, 618, 980, 980, 592, 103, 310, 134, 471, 912, 507, 509, 507, 912, 310, 673,
-				673, 671, 671, 671, 678, 678, 678, 678, 676, 676, 683, 680, 680, 686, 685, 687, 1050, 688, 912, 912,
-				1038, 136, 586, 455, 1015, 1013, 1020, 1018, 1022, 1021, 1023, 1024, 1037, 1038, 659, 1038, 594, 510,
-				370, 770, 1091, 362, 655, 367, 510, 213, 1050, 4, 522, 1096, 420, 1040, 213, 607, 519, 607, 607, 1094,
-				364, 364, 510, 510, 510, 955, 955, 955, 955, 510, 510, 471, 510, 1092, 472, 135, 669, 167, 912, 509,
-				1092, 471, 370, 596, 563, 574, 574, 574, 574, 558, 592, 760, 472, 472, 472, 472, 472, 472, 472, 472,
-				472, 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, 472, 455, 1091, 370, 655, 655, 1092,
-				608, 608, 1038, 522, 507, 606, 1042, 504, 955, 607, 607, 607, 607, 510, 364, 366, 765, 366, 471, 471,
-				471, 471, 955, 955, 1094, 508, 912, 669, 590, 594, 510, 508, 370, 596, 510, 472, 1013, 1013, 1013, 1018,
-				1015, 1015, 1021, 1020, 1022, 1050, 1023, 372, 654, 655, 508, 712, 608, 382, 229, 508, 607, 607, 504,
-				708, 472, 1050, 208, 204, 590, 607, 607, 262, 366, 367, 472, 510, 912, 912, 912, 912, 871, 871, 510,
-				669, 670, 669, 471, 167, 425, 665, 594, 372, 598, 1094, 866, 471, 372, 655, 709, 712, 712, 803, 1052,
-				353, 955, 4, 419, 229, 508, 607, 608, 592, 1042, 472, 472, 504, 805, 257, 263, 510, 367, 912, 912, 629,
-				669, 871, 472, 310, 425, 372, 598, 510, 955, 367, 712, 712, 381, 353, 803, 48, 592, 1037, 709, 608, 435,
-				805, 510, 955, 262, 510, 592, 592, 510, 670, 912, 310, 832, 367, 382, 712, 709, 207, 708, 912, 592, 510,
-				382, 758, 436, 592, 510, 871, 510, 510, 510, 821, 712, 471, 64, 504, 709, 510, 510, 758, 435, 1050, 472,
-				1050, 709, 434, 955, 955, 955, 436, 955, 510, 320, 709, 709, 510, 608, 912, 510, 510, 135, 367, 912,
-				367, 608, 510, 709, 427, 955, 427, 436, 1050, 436, 455, 455, 453, 434, 455, 709, 709, 211, 433, 367, 64,
-				709, 770, 436, 912, 504, 912, 453, 353, 955, 912, 758, 64, 912, 912, 642, 436, 211, 436, 709, 353, 471,
-				436, 433, 366, 608, 608, 947, 471, 434, 871, 709, 912, 707, 63, 436, 912, 709, 707, 707, 436 };
-	}
-
-	public final static char asb[] = Asb.asb;
-
-	@Override
-	public final int asb(int index) {
-		return asb[index];
-	}
-
-	public interface Asr {
-		public final static byte asr[] = { 0, 55, 4, 71, 1, 2, 69, 9, 0, 9, 64, 68, 72, 1, 2, 7, 5, 4, 3, 60, 120, 0, 3,
-				64, 70, 68, 120, 60, 9, 72, 97, 0, 64, 70, 68, 120, 1, 2, 0, 74, 3, 64, 71, 97, 68, 72, 39, 60, 9, 69,
-				70, 0, 4, 9, 69, 1, 2, 0, 41, 10, 55, 62, 0, 73, 59, 36, 37, 7, 5, 34, 35, 40, 46, 3, 4, 51, 52, 53, 38,
-				49, 44, 48, 12, 21, 11, 17, 15, 16, 18, 19, 14, 13, 20, 10, 43, 47, 45, 42, 50, 69, 9, 8, 6, 1, 2, 67,
-				66, 0, 42, 66, 43, 44, 67, 8, 45, 46, 47, 48, 59, 49, 50, 51, 52, 53, 38, 36, 37, 7, 5, 34, 35, 6, 40,
-				64, 3, 4, 10, 1, 2, 56, 57, 58, 12, 21, 11, 17, 15, 16, 18, 19, 14, 13, 20, 25, 31, 32, 27, 30, 29, 22,
-				26, 23, 24, 28, 33, 41, 0, 98, 91, 34, 35, 99, 100, 86, 87, 64, 89, 90, 92, 93, 94, 95, 96, 101, 102,
-				97, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 118, 72, 73, 1, 2, 4, 7, 5, 71, 60, 54, 3, 9, 68,
-				39, 70, 0, 88, 61, 8, 114, 115, 116, 63, 9, 3, 7, 5, 6, 71, 73, 39, 62, 25, 11, 12, 41, 23, 13, 56, 26,
-				27, 14, 28, 29, 15, 16, 30, 31, 17, 18, 32, 57, 55, 33, 10, 58, 19, 20, 24, 21, 1, 2, 4, 22, 0, 22, 1,
-				2, 4, 114, 115, 116, 0, 66, 67, 3, 10, 43, 47, 45, 42, 50, 12, 21, 11, 17, 15, 16, 18, 19, 14, 13, 20,
-				51, 52, 53, 38, 49, 44, 48, 6, 8, 4, 36, 37, 7, 5, 34, 35, 40, 46, 1, 2, 118, 9, 0, 64, 71, 97, 68, 118,
-				72, 73, 11, 12, 42, 66, 13, 43, 44, 14, 15, 16, 67, 45, 17, 18, 46, 47, 48, 59, 49, 50, 10, 19, 20, 21,
-				51, 52, 53, 38, 36, 37, 34, 35, 40, 9, 39, 6, 8, 1, 2, 4, 3, 7, 5, 0, 1, 2, 68, 73, 9, 0, 23, 24, 59, 9,
-				97, 72, 64, 68, 120, 70, 0, 69, 41, 23, 13, 56, 26, 14, 28, 29, 15, 16, 30, 31, 17, 18, 32, 57, 33, 58,
-				19, 22, 20, 24, 21, 12, 11, 25, 9, 3, 7, 5, 39, 63, 65, 88, 27, 62, 55, 61, 8, 1, 2, 4, 10, 6, 0, 88,
-				114, 115, 116, 55, 71, 113, 121, 73, 62, 74, 63, 61, 65, 76, 78, 84, 82, 75, 80, 81, 83, 85, 69, 77, 79,
-				39, 9, 25, 41, 23, 56, 26, 27, 28, 29, 30, 31, 32, 57, 33, 58, 22, 24, 59, 66, 67, 10, 43, 47, 45, 42,
-				50, 12, 21, 11, 17, 15, 16, 18, 19, 14, 13, 20, 51, 52, 53, 38, 49, 44, 48, 36, 37, 34, 35, 40, 46, 7,
-				5, 3, 4, 8, 6, 1, 2, 0, 4, 9, 71, 69, 0, 4, 9, 71, 69, 54, 0, 67, 66, 34, 35, 99, 100, 94, 95, 6, 40,
-				70, 54, 106, 107, 103, 104, 105, 111, 110, 112, 87, 86, 108, 109, 92, 93, 89, 90, 96, 101, 36, 37, 91,
-				117, 10, 56, 41, 57, 58, 12, 21, 11, 17, 15, 16, 18, 19, 14, 13, 20, 25, 31, 32, 27, 30, 29, 22, 26, 23,
-				24, 28, 33, 64, 68, 3, 60, 7, 5, 1, 2, 4, 0, 23, 24, 59, 3, 64, 97, 70, 68, 72, 39, 74, 71, 69, 9, 0, 9,
-				71, 118, 72, 39, 68, 0, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 25, 23, 26, 27, 28, 29, 30, 31, 32,
-				33, 22, 24, 39, 9, 72, 8, 1, 2, 60, 3, 7, 5, 6, 4, 0, 59, 23, 24, 8, 6, 1, 2, 4, 74, 69, 120, 119, 117,
-				36, 37, 60, 3, 98, 91, 5, 99, 100, 34, 35, 87, 86, 54, 89, 90, 92, 93, 7, 94, 95, 96, 64, 97, 72, 70,
-				103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 71, 118, 101, 102, 73, 68, 39, 9, 0, 65, 25, 11, 12,
-				41, 23, 13, 56, 26, 88, 27, 14, 28, 29, 15, 16, 30, 61, 31, 17, 18, 32, 57, 33, 10, 58, 19, 63, 22, 20,
-				24, 21, 9, 3, 7, 5, 73, 39, 62, 8, 6, 55, 1, 2, 4, 0, 113, 0, 54, 64, 89, 90, 0, 9, 68, 73, 70, 0, 25,
-				11, 12, 41, 23, 13, 56, 26, 27, 14, 28, 29, 15, 16, 30, 31, 17, 18, 32, 57, 33, 10, 58, 19, 22, 20, 24,
-				21, 1, 2, 4, 97, 0, 38, 0, 9, 69, 68, 0, 7, 5, 3, 8, 6, 60, 4, 1, 2, 64, 70, 97, 72, 9, 68, 0, 6, 8, 3,
-				60, 5, 7, 97, 25, 11, 12, 41, 23, 13, 56, 26, 27, 14, 28, 29, 15, 16, 30, 31, 17, 18, 32, 57, 33, 10,
-				58, 19, 22, 20, 24, 21, 1, 2, 4, 72, 9, 0, 72, 9, 87, 86, 0, 11, 12, 42, 66, 13, 43, 44, 14, 15, 16, 67,
-				8, 45, 17, 18, 46, 47, 48, 59, 49, 50, 10, 19, 20, 21, 51, 52, 53, 38, 1, 2, 3, 36, 37, 7, 5, 34, 35, 6,
-				40, 4, 72, 9, 0, 66, 67, 36, 37, 34, 35, 40, 46, 51, 52, 53, 38, 49, 44, 48, 12, 21, 11, 17, 15, 16, 18,
-				19, 14, 13, 20, 10, 43, 47, 45, 42, 50, 7, 5, 60, 8, 6, 4, 1, 2, 3, 0, 10, 56, 41, 57, 58, 12, 21, 11,
-				17, 15, 16, 18, 19, 14, 13, 20, 74, 71, 97, 118, 73, 69, 120, 8, 31, 32, 33, 22, 24, 1, 2, 30, 29, 28,
-				27, 26, 6, 4, 23, 25, 119, 98, 117, 91, 36, 37, 34, 35, 99, 100, 9, 60, 3, 5, 72, 39, 87, 86, 54, 89,
-				90, 92, 93, 7, 94, 95, 96, 101, 102, 70, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 68, 64, 0,
-				39, 9, 3, 8, 6, 7, 5, 4, 1, 2, 71, 0, 41, 23, 13, 56, 26, 14, 28, 29, 15, 16, 30, 31, 17, 18, 32, 57,
-				33, 10, 58, 19, 22, 20, 24, 21, 12, 11, 25, 9, 3, 7, 39, 63, 61, 65, 88, 27, 62, 54, 4, 5, 8, 6, 1, 2,
-				55, 0 };
-	}
-
-	public final static byte asr[] = Asr.asr;
-
-	@Override
-	public final int asr(int index) {
-		return asr[index];
-	}
-
-	public interface Nasb {
-		public final static char nasb[] = { 0, 77, 12, 12, 43, 43, 32, 12, 12, 293, 297, 297, 12, 158, 5, 201, 12, 293,
-				85, 12, 12, 104, 23, 23, 23, 23, 242, 12, 12, 122, 12, 180, 218, 157, 176, 259, 260, 210, 260, 13, 260,
-				69, 260, 253, 12, 10, 180, 176, 200, 43, 12, 12, 12, 12, 12, 165, 12, 30, 180, 85, 85, 238, 85, 85, 85,
-				85, 85, 85, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 85, 12, 85, 85, 109, 12, 32, 32, 12, 12, 32, 32,
-				79, 109, 302, 12, 12, 32, 11, 12, 146, 302, 302, 290, 212, 180, 12, 32, 65, 165, 40, 165, 180, 11, 12,
-				222, 290, 12, 30, 297, 297, 297, 297, 180, 197, 302, 302, 1, 85, 53, 146, 30, 12, 55, 55, 197, 31, 85,
-				85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
-				85, 85, 85, 31, 85, 293, 293, 45, 45, 176, 109, 109, 45, 148, 218, 302, 12, 12, 180, 178, 178, 178, 275,
-				66, 63, 63, 12, 228, 210, 32, 228, 111, 66, 217, 302, 302, 12, 12, 12, 12, 145, 302, 85, 85, 12, 12, 12,
-				12, 10, 180, 109, 297, 18, 302, 217, 180, 217, 302, 109, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
-				12, 12, 12, 12, 12, 12, 12, 302, 302, 12, 231, 201, 25, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 224, 12,
-				12, 11, 32, 293, 126, 12, 32, 153, 180, 169, 12, 72, 12, 12, 21, 262, 275, 63, 63, 32, 32, 111, 32, 243,
-				11, 66, 180, 12, 12, 12, 12, 66, 11, 85, 180, 146, 85, 297, 32, 97, 302, 250, 146, 85, 32, 32, 259, 260,
-				260, 260, 260, 282, 10, 12, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
-				85, 31, 85, 45, 148, 61, 178, 61, 146, 210, 130, 12, 12, 165, 32, 171, 160, 12, 32, 32, 118, 118, 66,
-				243, 120, 12, 12, 31, 31, 31, 31, 12, 12, 144, 66, 302, 38, 224, 12, 242, 66, 61, 61, 180, 85, 12, 12,
-				12, 12, 12, 12, 12, 12, 12, 12, 12, 32, 61, 32, 218, 32, 210, 270, 32, 228, 32, 16, 214, 169, 85, 12,
-				114, 12, 176, 118, 118, 100, 120, 153, 85, 243, 302, 302, 302, 302, 197, 197, 66, 32, 93, 12, 31, 224,
-				251, 12, 12, 32, 32, 111, 302, 85, 91, 61, 169, 245, 32, 12, 270, 263, 12, 129, 21, 293, 218, 16, 134,
-				34, 160, 85, 85, 214, 12, 165, 132, 228, 153, 302, 302, 12, 38, 197, 85, 109, 251, 91, 91, 66, 12, 153,
-				270, 245, 209, 171, 12, 12, 165, 12, 169, 134, 152, 12, 228, 12, 140, 228, 165, 165, 11, 93, 302, 109,
-				300, 153, 270, 32, 169, 95, 12, 302, 165, 228, 270, 32, 191, 34, 11, 197, 11, 228, 228, 302, 245, 18,
-				83, 160, 169, 228, 73, 155, 205, 12, 85, 12, 169, 12, 12, 12, 12, 206, 12, 243, 167, 169, 169, 243, 137,
-				302, 11, 11, 297, 153, 302, 32, 210, 73, 169, 116, 12, 12, 206, 12, 206, 304, 304, 186, 12, 304, 169,
-				169, 12, 32, 153, 32, 169, 297, 206, 302, 160, 302, 296, 32, 12, 302, 155, 83, 302, 302, 32, 206, 12,
-				206, 169, 160, 31, 206, 116, 153, 137, 137, 158, 85, 12, 183, 169, 302, 75, 82, 206, 302, 169, 75, 12,
-				206 };
-	}
-
-	public final static char nasb[] = Nasb.nasb;
-
-	@Override
-	public final int nasb(int index) {
-		return nasb[index];
-	}
-
-	public interface Nasr {
-		public final static char nasr[] = { 0, 3, 13, 10, 9, 138, 137, 113, 136, 135, 4, 2, 0, 166, 205, 0, 173, 0, 5,
-				28, 0, 170, 0, 80, 0, 13, 2, 9, 10, 4, 52, 37, 5, 0, 186, 4, 185, 0, 161, 0, 42, 1, 0, 121, 0, 4, 10, 9,
-				2, 13, 128, 5, 0, 192, 0, 4, 2, 9, 10, 157, 0, 51, 0, 122, 0, 44, 2, 3, 0, 166, 200, 0, 141, 117, 0,
-				176, 0, 191, 0, 5, 212, 0, 81, 149, 42, 4, 10, 9, 2, 13, 0, 145, 0, 159, 0, 201, 0, 5, 194, 0, 4, 115,
-				209, 0, 13, 2, 9, 10, 4, 94, 0, 2, 75, 0, 208, 0, 130, 0, 123, 0, 167, 0, 5, 52, 213, 0, 75, 54, 0, 1,
-				141, 0, 210, 0, 42, 174, 0, 42, 66, 0, 4, 115, 182, 0, 2, 154, 75, 0, 75, 156, 155, 0, 5, 81, 0, 175, 0,
-				30, 101, 100, 78, 2, 9, 10, 5, 4, 0, 5, 37, 39, 0, 5, 10, 9, 2, 78, 4, 98, 54, 0, 44, 2, 0, 5, 195, 0,
-				37, 5, 27, 198, 0, 5, 50, 42, 37, 196, 0, 5, 105, 0, 30, 100, 101, 5, 0, 81, 37, 50, 82, 5, 42, 0, 101,
-				100, 54, 78, 68, 4, 10, 9, 2, 0, 101, 100, 54, 4, 68, 0, 2, 67, 0, 138, 214, 137, 113, 136, 135, 0, 4,
-				10, 9, 13, 3, 1, 0, 133, 5, 50, 93, 0, 2, 132, 0, 2, 4, 113, 110, 111, 112, 13, 69, 0, 39, 4, 2, 9, 10,
-				5, 172, 0, 5, 50, 93, 95, 0, 5, 50, 93, 115, 48, 4, 0, 113, 69, 13, 110, 111, 112, 190, 0, 54, 4, 98, 5,
-				27, 0, 197, 5, 52, 0, 52, 5, 30, 0, 5, 52, 116, 0 };
-	}
-
-	public final static char nasr[] = Nasr.nasr;
-
-	@Override
-	public final int nasr(int index) {
-		return nasr[index];
-	}
-
-	public interface TerminalIndex {
-		public final static char terminalIndex[] = { 0, 113, 114, 2, 31, 10, 13, 9, 79, 115, 100, 48, 52, 60, 68, 74,
-				75, 86, 87, 102, 105, 107, 104, 54, 106, 47, 64, 66, 70, 73, 76, 83, 89, 98, 11, 12, 7, 8, 112, 120, 14,
-				53, 55, 61, 67, 84, 88, 90, 94, 97, 99, 109, 110, 111, 19, 93, 63, 91, 101, 95, 1, 77, 122, 103, 20, 46,
-				58, 78, 44, 121, 33, 30, 118, 119, 96, 108, 49, 50, 56, 57, 59, 69, 71, 72, 85, 92, 17, 18, 65, 21, 22,
-				6, 23, 24, 25, 26, 27, 32, 4, 15, 16, 28, 29, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 51, 80, 81, 82, 5,
-				117, 3, 123, 62, 116 };
-	}
-
-	public final static char terminalIndex[] = TerminalIndex.terminalIndex;
-
-	@Override
-	public final int terminalIndex(int index) {
-		return terminalIndex[index];
-	}
-
-	public interface NonterminalIndex {
-		public final static char nonterminalIndex[] = { 0, 130, 135, 136, 0, 0, 134, 0, 0, 237, 243, 133, 0, 143, 0,
-				132, 0, 0, 142, 148, 0, 0, 149, 158, 159, 160, 161, 188, 151, 0, 126, 162, 141, 163, 164, 165, 166, 131,
-				167, 128, 168, 0, 129, 138, 137, 170, 169, 171, 185, 0, 0, 195, 152, 172, 0, 173, 0, 0, 0, 0, 0, 174,
-				175, 176, 0, 177, 180, 0, 155, 194, 0, 0, 0, 212, 0, 0, 145, 209, 213, 0, 214, 127, 179, 0, 0, 0, 0, 0,
-				0, 183, 0, 0, 0, 0, 125, 186, 0, 0, 210, 216, 217, 218, 0, 220, 157, 0, 146, 0, 0, 215, 197, 198, 199,
-				201, 227, 228, 182, 204, 0, 0, 219, 0, 0, 0, 0, 0, 248, 0, 251, 0, 252, 0, 147, 187, 189, 190, 191, 192,
-				196, 200, 203, 0, 206, 0, 207, 0, 222, 225, 0, 0, 0, 246, 247, 0, 0, 139, 140, 144, 0, 0, 154, 156, 0,
-				178, 0, 193, 0, 0, 0, 202, 0, 205, 211, 0, 223, 224, 0, 0, 229, 232, 0, 234, 236, 0, 240, 241, 242, 245,
-				0, 0, 249, 124, 0, 150, 153, 0, 181, 0, 184, 0, 0, 208, 221, 226, 0, 0, 230, 231, 233, 235, 0, 238, 239,
-				244, 250, 253, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
-
-	@Override
-	public final int nonterminalIndex(int index) {
-		return nonterminalIndex[index];
-	}
-
-	public interface ScopePrefix {
-		public final static char scopePrefix[] = { 172, 324, 608, 627, 317, 332, 559, 575, 586, 597, 372, 280, 294, 311,
-				344, 55, 305, 392, 430, 180, 616, 502, 20, 33, 64, 84, 93, 98, 103, 143, 208, 339, 350, 20, 467, 157,
-				286, 300, 530, 40, 157, 382, 20, 635, 40, 230, 259, 1, 14, 27, 74, 89, 119, 27, 361, 365, 448, 495, 524,
-				551, 555, 645, 649, 653, 110, 7, 110, 410, 426, 439, 460, 479, 543, 129, 129, 245, 439, 566, 582, 593,
-				604, 220, 513, 69, 69, 169, 235, 238, 69, 254, 275, 238, 238, 69, 369, 492, 499, 169, 69, 668, 123, 355,
-				414, 454, 486, 472, 69, 355, 401, 190, 117, 452, 657, 664, 657, 664, 78, 420, 150, 117, 117, 264 };
-	}
-
-	public final static char scopePrefix[] = ScopePrefix.scopePrefix;
-
-	@Override
-	public final int scopePrefix(int index) {
-		return scopePrefix[index];
-	}
-
-	public interface ScopeSuffix {
-		public final static char scopeSuffix[] = { 18, 148, 5, 5, 148, 148, 5, 5, 5, 5, 379, 148, 108, 148, 25, 61, 291,
-				398, 436, 186, 80, 508, 25, 38, 38, 38, 72, 72, 108, 148, 213, 31, 31, 25, 5, 162, 291, 114, 535, 51,
-				165, 387, 622, 640, 45, 224, 224, 5, 18, 31, 5, 72, 108, 31, 108, 108, 148, 257, 5, 5, 5, 5, 5, 257,
-				666, 11, 114, 379, 379, 379, 464, 483, 535, 133, 138, 249, 443, 570, 570, 570, 570, 224, 517, 72, 72, 5,
-				5, 241, 243, 257, 5, 278, 278, 243, 108, 5, 257, 5, 528, 5, 126, 358, 417, 457, 489, 475, 547, 538, 404,
-				193, 108, 108, 659, 659, 661, 661, 80, 422, 152, 215, 200, 266 };
-	}
-
-	public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
-
-	@Override
-	public final int scopeSuffix(int index) {
-		return scopeSuffix[index];
-	}
-
-	public interface ScopeLhs {
-		public final static char scopeLhs[] = { 48, 112, 18, 18, 92, 112, 18, 18, 18, 18, 85, 97, 49, 92, 111, 90, 59,
-				85, 84, 48, 18, 20, 190, 3, 7, 8, 182, 182, 178, 110, 48, 111, 111, 139, 45, 148, 60, 49, 157, 125, 148,
-				85, 18, 18, 125, 102, 72, 153, 88, 190, 185, 182, 178, 139, 199, 57, 66, 161, 19, 18, 18, 18, 18, 18,
-				12, 130, 178, 85, 84, 84, 64, 41, 157, 114, 114, 68, 84, 18, 18, 18, 18, 102, 20, 186, 182, 201, 100,
-				109, 74, 80, 73, 172, 89, 139, 86, 162, 161, 192, 157, 17, 178, 139, 116, 83, 22, 45, 157, 157, 85, 48,
-				178, 79, 155, 44, 155, 44, 185, 116, 110, 48, 48, 72 };
-	}
-
-	public final static char scopeLhs[] = ScopeLhs.scopeLhs;
-
-	@Override
-	public final int scopeLhs(int index) {
-		return scopeLhs[index];
-	}
-
-	public interface ScopeLa {
-		public final static byte scopeLa[] = { 113, 73, 72, 72, 73, 73, 72, 72, 72, 72, 72, 73, 39, 73, 1, 64, 1, 72,
-				121, 69, 3, 72, 1, 64, 64, 64, 1, 1, 39, 73, 69, 1, 1, 1, 72, 73, 1, 1, 4, 64, 68, 39, 1, 1, 64, 72, 72,
-				72, 113, 1, 72, 1, 39, 1, 39, 39, 73, 118, 72, 72, 72, 72, 72, 118, 1, 72, 1, 72, 72, 72, 71, 71, 4, 1,
-				1, 5, 72, 64, 64, 64, 64, 72, 3, 1, 1, 72, 72, 3, 1, 118, 72, 1, 1, 1, 39, 72, 118, 72, 6, 72, 1, 55,
-				70, 71, 72, 64, 1, 55, 75, 74, 39, 39, 4, 4, 4, 4, 3, 1, 69, 1, 1, 3 };
-	}
-
-	public final static byte scopeLa[] = ScopeLa.scopeLa;
-
-	@Override
-	public final int scopeLa(int index) {
-		return scopeLa[index];
-	}
-
-	public interface ScopeStateSet {
-		public final static char scopeStateSet[] = { 68, 175, 267, 267, 90, 175, 267, 267, 267, 267, 78, 92, 68, 90,
-				175, 90, 70, 78, 78, 68, 267, 267, 62, 197, 243, 243, 53, 53, 65, 175, 68, 175, 175, 177, 104, 354, 70,
-				68, 129, 371, 354, 78, 267, 267, 371, 362, 181, 46, 78, 62, 26, 53, 65, 177, 22, 70, 29, 56, 267, 267,
-				267, 267, 267, 267, 247, 6, 65, 78, 78, 78, 112, 327, 129, 175, 175, 134, 78, 267, 267, 267, 267, 362,
-				267, 26, 53, 24, 362, 364, 181, 358, 181, 59, 186, 177, 78, 50, 56, 132, 129, 267, 65, 177, 1, 78, 268,
-				104, 129, 129, 78, 68, 65, 11, 101, 150, 101, 150, 26, 1, 175, 68, 68, 181 };
-	}
-
-	public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet;
-
-	@Override
-	public final int scopeStateSet(int index) {
-		return scopeStateSet[index];
-	}
-
-	public interface ScopeRhs {
-		public final static char scopeRhs[] = { 0, 338, 3, 59, 0, 126, 0, 337, 3, 113, 0, 126, 180, 0, 127, 188, 74, 0,
-				224, 0, 197, 166, 126, 10, 0, 136, 0, 166, 126, 10, 0, 135, 0, 272, 127, 54, 124, 0, 20, 0, 309, 127,
-				54, 55, 0, 20, 53, 0, 33, 132, 0, 20, 53, 0, 0, 309, 127, 54, 55, 215, 0, 20, 186, 0, 272, 127, 54, 132,
-				0, 189, 126, 0, 141, 0, 227, 3, 308, 0, 308, 0, 2, 0, 126, 0, 272, 127, 54, 131, 0, 189, 126, 237, 0,
-				189, 126, 22, 237, 0, 189, 126, 332, 22, 0, 128, 197, 166, 126, 0, 128, 0, 197, 166, 126, 0, 134, 128,
-				0, 172, 0, 328, 127, 172, 0, 127, 172, 0, 230, 128, 0, 166, 327, 235, 0, 136, 0, 0, 0, 0, 135, 0, 0, 0,
-				0, 326, 127, 164, 236, 0, 127, 0, 236, 0, 129, 0, 0, 127, 0, 325, 127, 164, 271, 0, 127, 0, 0, 44, 127,
-				0, 0, 150, 3, 0, 127, 296, 295, 127, 74, 294, 172, 0, 295, 127, 74, 294, 172, 0, 223, 0, 224, 0, 294,
-				172, 0, 96, 0, 0, 223, 0, 224, 0, 211, 96, 0, 0, 223, 0, 224, 0, 295, 127, 294, 172, 0, 223, 0, 211, 0,
-				0, 223, 0, 240, 127, 3, 0, 126, 0, 0, 0, 0, 0, 240, 127, 3, 222, 0, 231, 3, 0, 220, 127, 0, 216, 0, 146,
-				0, 176, 166, 126, 0, 10, 0, 0, 0, 0, 226, 60, 0, 125, 0, 240, 127, 3, 195, 0, 195, 0, 2, 0, 0, 126, 0,
-				0, 0, 0, 0, 211, 3, 0, 209, 0, 253, 127, 164, 38, 27, 0, 189, 126, 61, 63, 0, 204, 128, 0, 128, 189,
-				126, 292, 63, 0, 189, 126, 292, 63, 0, 189, 126, 70, 123, 61, 0, 253, 127, 164, 263, 61, 0, 253, 127,
-				164, 263, 239, 61, 0, 289, 290, 127, 164, 123, 322, 56, 0, 289, 290, 127, 164, 322, 56, 0, 189, 126,
-				288, 56, 0, 197, 189, 126, 288, 235, 0, 189, 126, 288, 235, 0, 166, 126, 0, 93, 136, 0, 286, 127, 149,
-				0, 286, 127, 172, 0, 159, 84, 0, 317, 161, 319, 320, 3, 81, 0, 126, 179, 0, 319, 320, 3, 81, 0, 128, 0,
-				126, 179, 0, 159, 3, 75, 204, 80, 0, 126, 128, 0, 204, 80, 0, 108, 2, 131, 126, 128, 0, 238, 3, 75, 0,
-				211, 174, 0, 33, 169, 0, 174, 0, 183, 33, 169, 0, 238, 3, 85, 0, 204, 152, 238, 3, 83, 0, 62, 179, 0,
-				238, 3, 83, 0, 126, 179, 62, 179, 0, 318, 127, 164, 0, 159, 0, 226, 77, 0, 30, 179, 0, 159, 102, 185, 0,
-				30, 177, 0, 148, 64, 167, 3, 0, 167, 3, 0, 20, 161, 126, 0, 159, 102, 162, 0, 30, 169, 0, 198, 3, 0,
-				126, 149, 0, 227, 3, 0, 226, 60, 283, 0, 159, 60, 0, 198, 3, 314, 67, 126, 0, 126, 0, 0, 0, 0, 314, 67,
-				126, 0, 2, 145, 126, 0, 0, 0, 0, 198, 3, 46, 0, 147, 0, 125, 55, 166, 126, 0, 31, 147, 0, 93, 136, 31,
-				147, 0, 228, 189, 126, 0, 146, 31, 147, 0, 198, 3, 50, 0, 159, 3, 50, 0, 159, 3, 64, 198, 54, 42, 0,
-				198, 54, 42, 0, 20, 2, 131, 126, 0, 159, 3, 64, 198, 54, 45, 0, 198, 54, 45, 0, 159, 3, 64, 198, 54, 47,
-				0, 198, 54, 47, 0, 159, 3, 64, 198, 54, 43, 0, 198, 54, 43, 0, 227, 3, 125, 197, 166, 126, 10, 0, 125,
-				197, 166, 126, 10, 0, 136, 2, 0, 126, 0, 227, 3, 124, 276, 166, 126, 10, 0, 276, 166, 126, 10, 0, 135,
-				2, 0, 126, 0, 227, 3, 135, 0, 227, 3, 140, 0, 159, 60, 140, 0, 278, 0, 31, 0, 31, 139, 0, 165, 0, 134,
-				0, 159, 3, 0 };
-	}
-
-	public final static char scopeRhs[] = ScopeRhs.scopeRhs;
-
-	@Override
-	public final int scopeRhs(int index) {
-		return scopeRhs[index];
-	}
-
-	public interface ScopeState {
-		public final static char scopeState[] = { 0, 6247, 6371, 6352, 6345, 0, 2420, 2827, 2091, 2762, 0, 5209, 5147,
-				5085, 5023, 4961, 4899, 4837, 4775, 4713, 4483, 4421, 4263, 0, 1307, 0, 2486, 701, 0, 5209, 5147, 3109,
-				2556, 5085, 5023, 4961, 4899, 4837, 4775, 2498, 4713, 4483, 4421, 2364, 2358, 0, 2399, 1316, 1266, 0,
-				2597, 1304, 0, 2614, 1499, 0, 723, 704, 0, 903, 5951, 0, 6159, 5370, 0, 6215, 6147, 0, 6215, 6147, 5794,
-				6121, 6108, 5781, 6047, 5986, 5768, 5970, 5209, 5147, 5085, 5023, 4961, 4899, 4837, 4775, 4713, 4483,
-				4421, 0, 6215, 6147, 5794, 6121, 6108, 5781, 6047, 5986, 5768, 5970, 0, 2994, 2663, 0, 3382, 3445, 3628,
-				3537, 3862, 3822, 3710, 672, 2966, 996, 2900, 2834, 2768, 2702, 2636, 2570, 2504, 2438, 2372, 2306,
-				2240, 927, 835, 766, 0, 2733, 866, 0, 794, 0, 654, 5938, 4600, 3474, 3902, 2956, 4187, 2428, 3008, 6241,
-				4666, 4585, 6182, 2939, 1400, 0, 6189, 6055, 6048, 5964, 5790, 5769, 5176, 5114, 6068, 5803, 4441, 4333,
-				5052, 4990, 4928, 4866, 4804, 4250, 3939, 923, 3377, 718, 4742, 4230, 0, 6159, 5370, 600, 5866, 4235, 0,
-				5938, 903, 3902, 5951, 4585, 4572, 4350, 2601, 2271, 654, 4378, 2469, 4187, 3889, 3849, 0, 1859, 1812,
-				6189, 6055, 6048, 1765, 1718, 5964, 1671, 5790, 5769, 2141, 5176, 2094, 5114, 6068, 2047, 2000, 1953,
-				1906, 5775, 5803, 1607, 4441, 1513, 4333, 1561, 5052, 4990, 1414, 4928, 4866, 1269, 4804, 4250, 2235,
-				3939, 923, 3377, 2188, 718, 4742, 5866, 4230, 814, 4235, 2864, 2402, 1618, 799, 4572, 4350, 2601, 2271,
-				654, 5938, 4378, 903, 3902, 2469, 4187, 5951, 2798, 1062, 1027, 2733, 866, 4585, 3889, 3849, 5746, 2966,
-				4200, 996, 3382, 2900, 2834, 2768, 2702, 2636, 2570, 2504, 2438, 2372, 2306, 2240, 3445, 3628, 3537,
-				3862, 3822, 3710, 4160, 4133, 4106, 5723, 672, 5700, 927, 835, 766, 1080, 1324, 3593, 3501, 3790, 3758,
-				3676, 4395, 4307, 4079, 4052, 4020, 3993, 5346, 5322, 5298, 4688, 4612, 5677, 5654, 5631, 5608, 5585,
-				5561, 5532, 5509, 5442, 5416, 5385, 3032, 3319, 3277, 3220, 3178, 3121, 3079, 2193, 2146, 1471, 2099,
-				2052, 2005, 1958, 1911, 1864, 1817, 1770, 1723, 1676, 1629, 600, 1424, 1372, 1565, 1519, 1277, 1173,
-				1126, 1222, 0, 901, 891, 803, 653, 4666, 4585, 4572, 3167, 4435, 3889, 645, 3849, 0, 4727, 4850, 4724,
-				1076, 0 };
-	}
-
-	public final static char scopeState[] = ScopeState.scopeState;
-
-	@Override
-	public final int scopeState(int index) {
-		return scopeState[index];
-	}
-
-	public interface InSymb {
-		public final static char inSymb[] = { 0, 0, 313, 55, 10, 41, 54, 243, 243, 127, 70, 70, 309, 149, 127, 174, 64,
-				68, 70, 231, 211, 60, 222, 223, 200, 195, 6, 124, 131, 8, 132, 126, 4, 3, 127, 256, 257, 236, 258, 235,
-				259, 56, 287, 260, 124, 10, 126, 127, 3, 41, 50, 42, 45, 47, 43, 10, 135, 3, 126, 46, 40, 6, 35, 34, 5,
-				7, 37, 36, 140, 145, 147, 146, 153, 148, 156, 155, 158, 157, 160, 59, 162, 70, 70, 226, 162, 3, 3, 124,
-				123, 54, 54, 174, 60, 3, 66, 67, 54, 189, 165, 166, 231, 211, 127, 220, 126, 176, 164, 327, 288, 322,
-				288, 126, 189, 166, 220, 127, 243, 3, 54, 54, 54, 54, 126, 3, 198, 159, 127, 66, 67, 166, 3, 125, 117,
-				119, 3, 60, 91, 98, 35, 34, 100, 99, 5, 90, 89, 64, 54, 86, 87, 7, 93, 92, 95, 94, 96, 112, 111, 110,
-				109, 108, 107, 106, 105, 104, 103, 70, 102, 101, 127, 127, 127, 127, 127, 60, 60, 127, 4, 197, 240, 241,
-				242, 126, 166, 7, 5, 127, 166, 243, 125, 124, 126, 123, 164, 126, 166, 55, 70, 198, 159, 198, 198, 198,
-				198, 166, 227, 127, 152, 285, 135, 125, 124, 10, 126, 60, 314, 3, 198, 55, 126, 55, 227, 159, 146, 146,
-				145, 145, 145, 148, 148, 148, 148, 147, 147, 155, 153, 153, 157, 156, 158, 159, 160, 240, 240, 272, 127,
-				250, 3, 167, 148, 175, 169, 183, 177, 184, 185, 274, 272, 220, 272, 278, 197, 152, 68, 166, 176, 176,
-				326, 126, 170, 237, 61, 55, 215, 63, 172, 329, 125, 124, 244, 244, 189, 164, 127, 189, 197, 126, 64, 64,
-				64, 64, 197, 276, 68, 126, 166, 216, 3, 315, 174, 150, 189, 166, 71, 152, 152, 256, 257, 258, 259, 336,
-				260, 10, 167, 90, 89, 54, 7, 93, 92, 95, 94, 96, 112, 111, 110, 109, 108, 107, 106, 105, 104, 103, 70,
-				102, 101, 68, 4, 127, 5, 127, 166, 263, 239, 54, 55, 292, 294, 127, 3, 195, 244, 244, 127, 127, 197,
-				127, 290, 123, 291, 3, 3, 3, 3, 125, 124, 166, 55, 198, 127, 127, 228, 6, 55, 127, 127, 126, 64, 148,
-				148, 148, 169, 167, 167, 177, 175, 183, 159, 184, 229, 173, 176, 197, 164, 263, 64, 54, 126, 74, 127,
-				220, 328, 71, 303, 211, 124, 127, 127, 127, 71, 290, 289, 70, 68, 159, 159, 159, 159, 3, 3, 197, 152,
-				280, 283, 60, 190, 4, 123, 125, 229, 229, 166, 148, 71, 127, 127, 128, 127, 164, 27, 55, 172, 65, 61,
-				63, 127, 189, 127, 295, 71, 68, 71, 70, 220, 331, 237, 22, 126, 289, 227, 227, 125, 127, 3, 60, 159, 4,
-				127, 127, 197, 59, 253, 255, 127, 38, 127, 3, 123, 61, 309, 128, 295, 164, 307, 126, 308, 68, 126, 22,
-				332, 189, 280, 227, 226, 3, 253, 127, 164, 286, 266, 293, 38, 70, 126, 64, 296, 127, 68, 189, 3, 189,
-				126, 126, 338, 127, 3, 70, 68, 152, 126, 189, 127, 318, 79, 77, 1, 159, 9, 85, 83, 81, 80, 75, 82, 84,
-				78, 76, 61, 74, 227, 189, 189, 68, 253, 150, 164, 271, 189, 239, 297, 113, 9, 71, 226, 71, 3, 3, 3, 204,
-				3, 123, 159, 123, 188, 127, 164, 239, 3, 71, 238, 174, 238, 320, 149, 75, 238, 127, 127, 97, 337, 174,
-				152, 211, 152, 319, 127, 3, 152, 297, 325, 152, 152, 127, 70, 204, 161, 286, 159, 203, 68, 121, 317,
-				152, 203, 9, 152 };
-	}
-
-	public final static char inSymb[] = InSymb.inSymb;
-
-	@Override
-	public final int inSymb(int index) {
-		return inSymb[index];
-	}
-
-	public interface Name {
-		public final static String name[] = { "", "[", "(", ".", ".*", "->", "->*", "++", "--", "&", "*", "+", "-", "~",
-				"!", "/", "%", ">>", "<<", "<", ">", "<=", ">=", "==", "!=", "^", "|", "&&", "||", "?", ":", "::",
-				"...", "=", "*=", "/=", "%=", "+=", "-=", ">>=", "<<=", "&=", "^=", "|=", ",", "$empty", "asm", "auto",
-				"bool", "break", "case", "catch", "char", "class", "const", "const_cast", "continue", "default",
-				"delete", "do", "double", "dynamic_cast", "else", "enum", "explicit", "export", "extern", "false",
-				"float", "for", "friend", "goto", "if", "inline", "int", "long", "mutable", "namespace", "new",
-				"operator", "private", "protected", "public", "register", "reinterpret_cast", "return", "short",
-				"signed", "sizeof", "static", "static_cast", "struct", "switch", "template", "this", "throw", "try",
-				"true", "typedef", "typeid", "typename", "union", "unsigned", "using", "virtual", "void", "volatile",
-				"wchar_t", "while", "integer", "floating", "charconst", "stringlit", "identifier", "Completion",
-				"EndOfCompletion", "Invalid", "RightBracket", "RightParen", "RightBrace", "SemiColon", "LeftBrace",
-				"ERROR_TOKEN", "EOF_TOKEN", "type_parameter_start", "]", ")", "}", ";", "{", "identifier_token",
-				"expression", "id_expression", "qualified_or_unqualified_name", "unqualified_id_name",
-				"identifier_name", "template_id_name", "nested_name_specifier", "class_or_namespace_name",
-				"nested_name_specifier_with_tem" + "plate", "class_or_namespace_name_with_t" + "emplate", "class_name",
-				"postfix_expression", "simple_type_specifier", "pseudo_destructor_name", "type_id", "type_name",
-				"destructor_type_name", "unary_expression", "cast_expression", "new_type_id", "expression_list",
-				"type_specifier_seq", "new_declarator", "new_pointer_operators", "ptr_operator",
-				"new_array_expressions", "constant_expression", "pm_expression", "multiplicative_expression",
-				"additive_expression", "shift_expression", "relational_expression", "equality_expression",
-				"and_expression", "exclusive_or_expression", "inclusive_or_expression", "logical_and_expression",
-				"logical_or_expression", "assignment_expression", "relational_expression_inTempla" + "te",
-				"equality_expression_inTemplate", "and_expression_inTemplate",
-				"exclusive_or_expression_inTemp" + "late", "inclusive_or_expression_inTemp" + "late",
-				"logical_and_expression_inTempl" + "ate", "logical_or_expression_inTempla" + "te",
-				"assignment_expression_inTempla" + "te", "expression_list_actual", "statement", "compound_statement",
-				"statement_seq", "condition", "declarator", "for_init_statement", "function_definition", "declaration",
-				"declaration_seq", "declaration_specifiers", "simple_declaration_specifiers",
-				"class_declaration_specifiers", "elaborated_declaration_specifi" + "ers", "enum_declaration_specifiers",
-				"type_name_declaration_specifie" + "rs", "no_type_declaration_specifier", "cv_qualifier",
-				"no_type_declaration_specifiers", "class_specifier", "elaborated_type_specifier", "enum_specifier",
-				"type_name_specifier", "class_keyword", "enumerator_list", "enumerator_definition", "namespace_name",
-				"init_declarator_list", "init_declarator_complete", "complete_declarator", "initializer",
-				"direct_declarator", "ptr_operator_seq", "function_declarator", "basic_direct_declarator",
-				"array_direct_declarator", "array_modifier", "abstract_declarator", "direct_abstract_declarator",
-				"basic_direct_abstract_declarat" + "or", "array_direct_abstract_declarat" + "or",
-				"parameter_declaration_list", "parameter_declaration", "parameter_init_declarator",
-				"parameter_initializer", "function_body", "handler_seq", "initializer_clause", "initializer_seq",
-				"class_head", "access_specifier_keyword", "member_declaration", "member_declarator_list",
-				"member_declaration_list", "member_declarator_complete", "constant_initializer", "bit_field_declarator",
-				"base_specifier_list", "base_specifier", "conversion_function_id", "conversion_type_id",
-				"conversion_declarator", "mem_initializer_list", "mem_initializer", "mem_initializer_name",
-				"operator_id_name", "overloadable_operator", "template_parameter_list", "template_parameter",
-				"template_argument_list", "template_argument", "type_name_specifier_inTemplate",
-				"type_name_declaration_specifie" + "rs_inTemplate", "type_specifier_seq_inTemplate", "handler",
-				"exception_declaration", "type_id_list" };
-	}
-
-	public final static String name[] = Name.name;
-
-	@Override
-	public final String name(int index) {
-		return name[index];
-	}
-
-	public final static int ERROR_SYMBOL = 62, SCOPE_UBOUND = 121, SCOPE_SIZE = 122, MAX_NAME_LENGTH = 43;
-
-	@Override
-	public final int getErrorSymbol() {
-		return ERROR_SYMBOL;
-	}
-
-	@Override
-	public final int getScopeUbound() {
-		return SCOPE_UBOUND;
-	}
-
-	@Override
-	public final int getScopeSize() {
-		return SCOPE_SIZE;
-	}
-
-	@Override
-	public final int getMaxNameLength() {
-		return MAX_NAME_LENGTH;
-	}
-
-	public final static int NUM_STATES = 604, NT_OFFSET = 122, LA_STATE_OFFSET = 7583, MAX_LA = 2147483647,
-			NUM_RULES = 599, NUM_NONTERMINALS = 225, NUM_SYMBOLS = 347, SEGMENT_SIZE = 8192, START_STATE = 1076,
-			IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 120, EOLT_SYMBOL = 120, ACCEPT_ACTION = 6544, ERROR_ACTION = 6984;
-
-	public final static boolean BACKTRACK = true;
-
-	@Override
-	public final int getNumStates() {
-		return NUM_STATES;
-	}
-
-	@Override
-	public final int getNtOffset() {
-		return NT_OFFSET;
-	}
-
-	@Override
-	public final int getLaStateOffset() {
-		return LA_STATE_OFFSET;
-	}
-
-	@Override
-	public final int getMaxLa() {
-		return MAX_LA;
-	}
-
-	@Override
-	public final int getNumRules() {
-		return NUM_RULES;
-	}
-
-	@Override
-	public final int getNumNonterminals() {
-		return NUM_NONTERMINALS;
-	}
-
-	@Override
-	public final int getNumSymbols() {
-		return NUM_SYMBOLS;
-	}
-
-	@Override
-	public final int getSegmentSize() {
-		return SEGMENT_SIZE;
-	}
-
-	@Override
-	public final int getStartState() {
-		return START_STATE;
-	}
-
-	@Override
-	public final int getStartSymbol() {
-		return lhs[0];
-	}
-
-	public final int getIdentifierSymbol() {
-		return IDENTIFIER_SYMBOL;
-	}
-
-	@Override
-	public final int getEoftSymbol() {
-		return EOFT_SYMBOL;
-	}
-
-	@Override
-	public final int getEoltSymbol() {
-		return EOLT_SYMBOL;
-	}
-
-	@Override
-	public final int getAcceptAction() {
-		return ACCEPT_ACTION;
-	}
-
-	@Override
-	public final int getErrorAction() {
-		return ERROR_ACTION;
-	}
-
-	@Override
-	public final boolean isValidForParser() {
-		return isValidForParser;
-	}
-
-	@Override
-	public final boolean getBacktrack() {
-		return BACKTRACK;
-	}
-
-	@Override
-	public final int originalState(int state) {
-		return -baseCheck[state];
-	}
-
-	@Override
-	public final int asi(int state) {
-		return asb[originalState(state)];
-	}
-
-	@Override
-	public final int nasi(int state) {
-		return nasb[originalState(state)];
-	}
-
-	@Override
-	public final int inSymbol(int state) {
-		return inSymb[originalState(state)];
-	}
-
-	@Override
-	public final int ntAction(int state, int sym) {
-		return baseAction[state + sym];
-	}
-
-	@Override
-	public final int tAction(int state, int sym) {
-		int i = baseAction[state], k = i + sym;
-		return termAction[termCheck[k] == sym ? k : i];
-	}
-
-	@Override
-	public final int lookAhead(int la_state, int sym) {
-		int k = la_state + sym;
-		return termAction[termCheck[k] == sym ? k : la_state];
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParsersym.java
deleted file mode 100644
index b6ab660..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParsersym.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2010 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.lrparser.cpp;
-
-public interface CPPTemplateTypeParameterParsersym {
-	public final static int TK_asm = 65, TK_auto = 25, TK_bool = 11, TK_break = 76, TK_case = 77, TK_catch = 113,
-			TK_char = 12, TK_class = 41, TK_const = 23, TK_const_cast = 42, TK_continue = 78, TK_default = 79,
-			TK_delete = 66, TK_do = 80, TK_double = 13, TK_dynamic_cast = 43, TK_else = 121, TK_enum = 56,
-			TK_explicit = 26, TK_export = 88, TK_extern = 27, TK_false = 44, TK_float = 14, TK_for = 81, TK_friend = 28,
-			TK_goto = 82, TK_if = 83, TK_inline = 29, TK_int = 15, TK_long = 16, TK_mutable = 30, TK_namespace = 61,
-			TK_new = 67, TK_operator = 8, TK_private = 114, TK_protected = 115, TK_public = 116, TK_register = 31,
-			TK_reinterpret_cast = 45, TK_return = 84, TK_short = 17, TK_signed = 18, TK_sizeof = 46, TK_static = 32,
-			TK_static_cast = 47, TK_struct = 57, TK_switch = 85, TK_template = 55, TK_this = 48, TK_throw = 59,
-			TK_try = 74, TK_true = 49, TK_typedef = 33, TK_typeid = 50, TK_typename = 10, TK_union = 58,
-			TK_unsigned = 19, TK_using = 63, TK_virtual = 22, TK_void = 20, TK_volatile = 24, TK_wchar_t = 21,
-			TK_while = 75, TK_integer = 51, TK_floating = 52, TK_charconst = 53, TK_stringlit = 38, TK_identifier = 1,
-			TK_Completion = 2, TK_EndOfCompletion = 9, TK_Invalid = 122, TK_LeftBracket = 60, TK_LeftParen = 3,
-			TK_Dot = 119, TK_DotStar = 98, TK_Arrow = 117, TK_ArrowStar = 91, TK_PlusPlus = 36, TK_MinusMinus = 37,
-			TK_And = 7, TK_Star = 5, TK_Plus = 34, TK_Minus = 35, TK_Tilde = 6, TK_Bang = 40, TK_Slash = 99,
-			TK_Percent = 100, TK_RightShift = 86, TK_LeftShift = 87, TK_LT = 54, TK_GT = 64, TK_LE = 89, TK_GE = 90,
-			TK_EQ = 92, TK_NE = 93, TK_Caret = 94, TK_Or = 95, TK_AndAnd = 96, TK_OrOr = 101, TK_Question = 102,
-			TK_Colon = 71, TK_ColonColon = 4, TK_DotDotDot = 97, TK_Assign = 70, TK_StarAssign = 103,
-			TK_SlashAssign = 104, TK_PercentAssign = 105, TK_PlusAssign = 106, TK_MinusAssign = 107,
-			TK_RightShiftAssign = 108, TK_LeftShiftAssign = 109, TK_AndAssign = 110, TK_CaretAssign = 111,
-			TK_OrAssign = 112, TK_Comma = 68, TK_RightBracket = 118, TK_RightParen = 72, TK_RightBrace = 73,
-			TK_SemiColon = 39, TK_LeftBrace = 69, TK_ERROR_TOKEN = 62, TK_EOF_TOKEN = 120;
-
-	public final static String orderedTerminalSymbols[] = { "", "identifier", "Completion", "LeftParen", "ColonColon",
-			"Star", "Tilde", "And", "operator", "EndOfCompletion", "typename", "bool", "char", "double", "float", "int",
-			"long", "short", "signed", "unsigned", "void", "wchar_t", "virtual", "const", "volatile", "auto",
-			"explicit", "extern", "friend", "inline", "mutable", "register", "static", "typedef", "Plus", "Minus",
-			"PlusPlus", "MinusMinus", "stringlit", "SemiColon", "Bang", "class", "const_cast", "dynamic_cast", "false",
-			"reinterpret_cast", "sizeof", "static_cast", "this", "true", "typeid", "integer", "floating", "charconst",
-			"LT", "template", "enum", "struct", "union", "throw", "LeftBracket", "namespace", "ERROR_TOKEN", "using",
-			"GT", "asm", "delete", "new", "Comma", "LeftBrace", "Assign", "Colon", "RightParen", "RightBrace", "try",
-			"while", "break", "case", "continue", "default", "do", "for", "goto", "if", "return", "switch",
-			"RightShift", "LeftShift", "export", "LE", "GE", "ArrowStar", "EQ", "NE", "Caret", "Or", "AndAnd",
-			"DotDotDot", "DotStar", "Slash", "Percent", "OrOr", "Question", "StarAssign", "SlashAssign",
-			"PercentAssign", "PlusAssign", "MinusAssign", "RightShiftAssign", "LeftShiftAssign", "AndAssign",
-			"CaretAssign", "OrAssign", "catch", "private", "protected", "public", "Arrow", "RightBracket", "Dot",
-			"EOF_TOKEN", "else", "Invalid" };
-
-	public final static boolean isValidForParser = true;
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCParser.java
deleted file mode 100644
index ff441f3..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCParser.java
+++ /dev/null
@@ -1,1812 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2015 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.lrparser.gcc;
-
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.cdt.core.dom.ast.IASTBinaryExpression;
-import org.eclipse.cdt.core.dom.ast.IASTCastExpression;
-import org.eclipse.cdt.core.dom.ast.IASTCompletionNode;
-import org.eclipse.cdt.core.dom.ast.IASTCompositeTypeSpecifier;
-import org.eclipse.cdt.core.dom.ast.IASTElaboratedTypeSpecifier;
-import org.eclipse.cdt.core.dom.ast.IASTLiteralExpression;
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.ast.IASTTypeIdExpression;
-import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression;
-import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter;
-import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
-import org.eclipse.cdt.core.dom.lrparser.IParser;
-import org.eclipse.cdt.core.dom.lrparser.ITokenCollector;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
-import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
-import org.eclipse.cdt.core.dom.lrparser.action.gnu.GCCBuildASTParserAction;
-import org.eclipse.cdt.core.dom.lrparser.action.gnu.GCCSecondaryParserFactory;
-import org.eclipse.cdt.core.dom.lrparser.action.gnu.GNUBuildASTParserAction;
-import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser;
-import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
-import org.eclipse.cdt.core.index.IIndex;
-import org.eclipse.cdt.core.parser.IScanner;
-import org.eclipse.cdt.internal.core.dom.parser.c.CNodeFactory;
-
-import lpg.lpgjavaruntime.BadParseException;
-import lpg.lpgjavaruntime.BadParseSymFileException;
-import lpg.lpgjavaruntime.DiagnoseParser;
-import lpg.lpgjavaruntime.ErrorToken;
-import lpg.lpgjavaruntime.IToken;
-import lpg.lpgjavaruntime.LexStream;
-import lpg.lpgjavaruntime.Monitor;
-import lpg.lpgjavaruntime.NotBacktrackParseTableException;
-import lpg.lpgjavaruntime.NullExportedSymbolsException;
-import lpg.lpgjavaruntime.NullTerminalSymbolsException;
-import lpg.lpgjavaruntime.ParseErrorCodes;
-import lpg.lpgjavaruntime.ParseTable;
-import lpg.lpgjavaruntime.PrsStream;
-import lpg.lpgjavaruntime.RuleAction;
-import lpg.lpgjavaruntime.UndefinedEofSymbolException;
-import lpg.lpgjavaruntime.UnimplementedTerminalsException;
-
-public class GCCParser extends PrsStream
-		implements RuleAction, ITokenStream, ITokenCollector, IParser<IASTTranslationUnit>
-
-{
-	private static ParseTable prs = new GCCParserprs();
-	private FixedBacktrackingParser btParser;
-
-	public FixedBacktrackingParser getParser() {
-		return btParser;
-	}
-
-	private void setResult(Object object) {
-		btParser.setSym1(object);
-	}
-
-	public Object getRhsSym(int i) {
-		return btParser.getSym(i);
-	}
-
-	public int getRhsTokenIndex(int i) {
-		return btParser.getToken(i);
-	}
-
-	public IToken getRhsIToken(int i) {
-		return super.getIToken(getRhsTokenIndex(i));
-	}
-
-	public int getRhsFirstTokenIndex(int i) {
-		return btParser.getFirstToken(i);
-	}
-
-	public IToken getRhsFirstIToken(int i) {
-		return super.getIToken(getRhsFirstTokenIndex(i));
-	}
-
-	public int getRhsLastTokenIndex(int i) {
-		return btParser.getLastToken(i);
-	}
-
-	public IToken getRhsLastIToken(int i) {
-		return super.getIToken(getRhsLastTokenIndex(i));
-	}
-
-	public int getLeftSpan() {
-		return btParser.getFirstToken();
-	}
-
-	@Override
-	public IToken getLeftIToken() {
-		return super.getIToken(getLeftSpan());
-	}
-
-	public int getRightSpan() {
-		return btParser.getLastToken();
-	}
-
-	@Override
-	public IToken getRightIToken() {
-		return super.getIToken(getRightSpan());
-	}
-
-	public int getRhsErrorTokenIndex(int i) {
-		int index = btParser.getToken(i);
-		IToken err = super.getIToken(index);
-		return (err instanceof ErrorToken ? index : 0);
-	}
-
-	public ErrorToken getRhsErrorIToken(int i) {
-		int index = btParser.getToken(i);
-		IToken err = super.getIToken(index);
-		return (ErrorToken) (err instanceof ErrorToken ? err : null);
-	}
-
-	public GCCParser(LexStream lexStream) {
-		super(lexStream);
-
-		try {
-			super.remapTerminalSymbols(orderedTerminalSymbols(), GCCParserprs.EOFT_SYMBOL);
-		} catch (NullExportedSymbolsException e) {
-		} catch (NullTerminalSymbolsException e) {
-		} catch (UnimplementedTerminalsException e) {
-			java.util.ArrayList unimplemented_symbols = e.getSymbols();
-			System.out.println("The Lexer will not scan the following token(s):");
-			for (int i = 0; i < unimplemented_symbols.size(); i++) {
-				Integer id = (Integer) unimplemented_symbols.get(i);
-				System.out.println("    " + GCCParsersym.orderedTerminalSymbols[id.intValue()]);
-			}
-			System.out.println();
-		} catch (UndefinedEofSymbolException e) {
-			throw new Error(new UndefinedEofSymbolException("The Lexer does not implement the Eof symbol "
-					+ GCCParsersym.orderedTerminalSymbols[GCCParserprs.EOFT_SYMBOL]));
-		}
-	}
-
-	@Override
-	public String[] orderedTerminalSymbols() {
-		return GCCParsersym.orderedTerminalSymbols;
-	}
-
-	public String getTokenKindName(int kind) {
-		return GCCParsersym.orderedTerminalSymbols[kind];
-	}
-
-	public int getEOFTokenKind() {
-		return GCCParserprs.EOFT_SYMBOL;
-	}
-
-	public PrsStream getParseStream() {
-		return this;
-	}
-
-	//
-	// Report error message for given error_token.
-	//
-	public final void reportErrorTokenMessage(int error_token, String msg) {
-		int firsttok = super.getFirstErrorToken(error_token), lasttok = super.getLastErrorToken(error_token);
-		String location = super.getFileName() + ':'
-				+ (firsttok > lasttok ? (super.getEndLine(lasttok) + ":" + super.getEndColumn(lasttok))
-						: (super.getLine(error_token) + ":" + super.getColumn(error_token) + ":"
-								+ super.getEndLine(error_token) + ":" + super.getEndColumn(error_token)))
-				+ ": ";
-		super.reportError((firsttok > lasttok ? ParseErrorCodes.INSERTION_CODE : ParseErrorCodes.SUBSTITUTION_CODE),
-				location, msg);
-	}
-
-	public void parser() {
-		parser(null, 0);
-	}
-
-	public void parser(Monitor monitor) {
-		parser(monitor, 0);
-	}
-
-	public void parser(int error_repair_count) {
-		parser(null, error_repair_count);
-	}
-
-	public void parser(Monitor monitor, int error_repair_count) {
-		try {
-			btParser = new FixedBacktrackingParser(monitor, this, prs, this);
-		} catch (NotBacktrackParseTableException e) {
-			throw new Error(new NotBacktrackParseTableException("Regenerate GCCParserprs.java with -BACKTRACK option"));
-		} catch (BadParseSymFileException e) {
-			throw new Error(new BadParseSymFileException("Bad Parser Symbol File -- GCCParsersym.java"));
-		}
-
-		try {
-			btParser.parse(error_repair_count);
-		} catch (BadParseException e) {
-			reset(e.error_token); // point to error token
-			DiagnoseParser diagnoseParser = new DiagnoseParser(this, prs);
-			diagnoseParser.diagnose(e.error_token);
-		}
-	}
-
-	private GCCBuildASTParserAction action;
-	private IASTCompletionNode compNode;
-
-	public GCCParser(IScanner scanner, IDOMTokenMap tokenMap, IBuiltinBindingsProvider builtinBindingsProvider,
-			IIndex index, Map<String, String> properties) {
-		initActions(properties);
-		action.initializeTranslationUnit(scanner, builtinBindingsProvider, index);
-		CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap);
-	}
-
-	private void initActions(Map<String, String> properties) {
-		ScopedStack<Object> astStack = new ScopedStack<>();
-
-		action = new GCCBuildASTParserAction(this, astStack, CNodeFactory.getDefault(),
-				GCCSecondaryParserFactory.getDefault());
-		action.setParserProperties(properties);
-
-		gnuAction = new GNUBuildASTParserAction(this, astStack, CNodeFactory.getDefault());
-		gnuAction.setParserProperties(properties);
-
-	}
-
-	@Override
-	public void addToken(IToken token) {
-		token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called?
-		super.addToken(token);
-	}
-
-	@Override
-	public IASTTranslationUnit parse() {
-		// this has to be done, or... kaboom!
-		setStreamLength(getSize());
-
-		final int errorRepairCount = -1; // -1 means full error handling
-		parser(null, errorRepairCount); // do the actual parse
-		super.resetTokenStream(); // allow tokens to be garbage collected
-
-		compNode = action.getASTCompletionNode(); // the completion node may be null
-		return (IASTTranslationUnit) action.getParseResult();
-	}
-
-	@Override
-	public IASTCompletionNode getCompletionNode() {
-		return compNode;
-	}
-
-	// uncomment this method to use with backtracking parser
-	@Override
-	public List<IToken> getRuleTokens() {
-		return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
-	}
-
-	@Override
-	public String[] getOrderedTerminalSymbols() {
-		return GCCParsersym.orderedTerminalSymbols;
-	}
-
-	@Override
-	@SuppressWarnings("nls")
-	public String getName() {
-		return "GCCParser";
-	}
-
-	private GNUBuildASTParserAction gnuAction;
-
-	@Override
-	public void ruleAction(int ruleNumber) {
-		switch (ruleNumber) {
-
-		//
-		// Rule 1:  <openscope-ast> ::= $Empty
-		//
-		case 1: {
-			action.openASTScope();
-			break;
-		}
-
-		//
-		// Rule 2:  <empty> ::= $Empty
-		//
-		case 2: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 13:  literal ::= integer
-		//
-		case 13: {
-			action.consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant);
-			break;
-		}
-
-		//
-		// Rule 14:  literal ::= floating
-		//
-		case 14: {
-			action.consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant);
-			break;
-		}
-
-		//
-		// Rule 15:  literal ::= charconst
-		//
-		case 15: {
-			action.consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant);
-			break;
-		}
-
-		//
-		// Rule 16:  literal ::= stringlit
-		//
-		case 16: {
-			action.consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal);
-			break;
-		}
-
-		//
-		// Rule 18:  primary_expression ::= primary_expression_id
-		//
-		case 18: {
-			action.consumeExpressionID();
-			break;
-		}
-
-		//
-		// Rule 19:  primary_expression ::= ( expression )
-		//
-		case 19: {
-			action.consumeExpressionBracketed();
-			break;
-		}
-
-		//
-		// Rule 22:  postfix_expression ::= postfix_expression [ expression ]
-		//
-		case 22: {
-			action.consumeExpressionArraySubscript();
-			break;
-		}
-
-		//
-		// Rule 23:  postfix_expression ::= postfix_expression ( expression_list_opt )
-		//
-		case 23: {
-			action.consumeExpressionFunctionCall();
-			break;
-		}
-
-		//
-		// Rule 24:  postfix_expression ::= postfix_expression . member_name
-		//
-		case 24: {
-			action.consumeExpressionFieldReference(false);
-			break;
-		}
-
-		//
-		// Rule 25:  postfix_expression ::= postfix_expression -> member_name
-		//
-		case 25: {
-			action.consumeExpressionFieldReference(true);
-			break;
-		}
-
-		//
-		// Rule 26:  postfix_expression ::= postfix_expression ++
-		//
-		case 26: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr);
-			break;
-		}
-
-		//
-		// Rule 27:  postfix_expression ::= postfix_expression --
-		//
-		case 27: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr);
-			break;
-		}
-
-		//
-		// Rule 28:  postfix_expression ::= ( type_id ) initializer_list
-		//
-		case 28: {
-			action.consumeExpressionTypeIdInitializer();
-			break;
-		}
-
-		//
-		// Rule 33:  unary_expression ::= ++ unary_expression
-		//
-		case 33: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr);
-			break;
-		}
-
-		//
-		// Rule 34:  unary_expression ::= -- unary_expression
-		//
-		case 34: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr);
-			break;
-		}
-
-		//
-		// Rule 35:  unary_expression ::= & cast_expression
-		//
-		case 35: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper);
-			break;
-		}
-
-		//
-		// Rule 36:  unary_expression ::= * cast_expression
-		//
-		case 36: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_star);
-			break;
-		}
-
-		//
-		// Rule 37:  unary_expression ::= + cast_expression
-		//
-		case 37: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus);
-			break;
-		}
-
-		//
-		// Rule 38:  unary_expression ::= - cast_expression
-		//
-		case 38: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus);
-			break;
-		}
-
-		//
-		// Rule 39:  unary_expression ::= ~ cast_expression
-		//
-		case 39: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde);
-			break;
-		}
-
-		//
-		// Rule 40:  unary_expression ::= ! cast_expression
-		//
-		case 40: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_not);
-			break;
-		}
-
-		//
-		// Rule 41:  unary_expression ::= sizeof unary_expression
-		//
-		case 41: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof);
-			break;
-		}
-
-		//
-		// Rule 42:  unary_expression ::= sizeof ( type_id )
-		//
-		case 42: {
-			action.consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof);
-			break;
-		}
-
-		//
-		// Rule 44:  cast_expression ::= ( type_id ) cast_expression
-		//
-		case 44: {
-			action.consumeExpressionCast(IASTCastExpression.op_cast);
-			break;
-		}
-
-		//
-		// Rule 46:  multiplicative_expression ::= multiplicative_expression * cast_expression
-		//
-		case 46: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply);
-			break;
-		}
-
-		//
-		// Rule 47:  multiplicative_expression ::= multiplicative_expression / cast_expression
-		//
-		case 47: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide);
-			break;
-		}
-
-		//
-		// Rule 48:  multiplicative_expression ::= multiplicative_expression % cast_expression
-		//
-		case 48: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo);
-			break;
-		}
-
-		//
-		// Rule 50:  additive_expression ::= additive_expression + multiplicative_expression
-		//
-		case 50: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus);
-			break;
-		}
-
-		//
-		// Rule 51:  additive_expression ::= additive_expression - multiplicative_expression
-		//
-		case 51: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus);
-			break;
-		}
-
-		//
-		// Rule 53:  shift_expression ::= shift_expression << additive_expression
-		//
-		case 53: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft);
-			break;
-		}
-
-		//
-		// Rule 54:  shift_expression ::= shift_expression >> additive_expression
-		//
-		case 54: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight);
-			break;
-		}
-
-		//
-		// Rule 56:  relational_expression ::= relational_expression < shift_expression
-		//
-		case 56: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan);
-			break;
-		}
-
-		//
-		// Rule 57:  relational_expression ::= relational_expression > shift_expression
-		//
-		case 57: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan);
-			break;
-		}
-
-		//
-		// Rule 58:  relational_expression ::= relational_expression <= shift_expression
-		//
-		case 58: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual);
-			break;
-		}
-
-		//
-		// Rule 59:  relational_expression ::= relational_expression >= shift_expression
-		//
-		case 59: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual);
-			break;
-		}
-
-		//
-		// Rule 61:  equality_expression ::= equality_expression == relational_expression
-		//
-		case 61: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals);
-			break;
-		}
-
-		//
-		// Rule 62:  equality_expression ::= equality_expression != relational_expression
-		//
-		case 62: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals);
-			break;
-		}
-
-		//
-		// Rule 64:  and_expression ::= and_expression & equality_expression
-		//
-		case 64: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd);
-			break;
-		}
-
-		//
-		// Rule 66:  exclusive_or_expression ::= exclusive_or_expression ^ and_expression
-		//
-		case 66: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor);
-			break;
-		}
-
-		//
-		// Rule 68:  inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression
-		//
-		case 68: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr);
-			break;
-		}
-
-		//
-		// Rule 70:  logical_and_expression ::= logical_and_expression && inclusive_or_expression
-		//
-		case 70: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd);
-			break;
-		}
-
-		//
-		// Rule 72:  logical_or_expression ::= logical_or_expression || logical_and_expression
-		//
-		case 72: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr);
-			break;
-		}
-
-		//
-		// Rule 74:  conditional_expression ::= logical_or_expression ? expression : assignment_expression
-		//
-		case 74: {
-			action.consumeExpressionConditional();
-			break;
-		}
-
-		//
-		// Rule 76:  assignment_expression ::= unary_expression = assignment_expression
-		//
-		case 76: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign);
-			break;
-		}
-
-		//
-		// Rule 77:  assignment_expression ::= unary_expression *= assignment_expression
-		//
-		case 77: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign);
-			break;
-		}
-
-		//
-		// Rule 78:  assignment_expression ::= unary_expression /= assignment_expression
-		//
-		case 78: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign);
-			break;
-		}
-
-		//
-		// Rule 79:  assignment_expression ::= unary_expression %= assignment_expression
-		//
-		case 79: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign);
-			break;
-		}
-
-		//
-		// Rule 80:  assignment_expression ::= unary_expression += assignment_expression
-		//
-		case 80: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign);
-			break;
-		}
-
-		//
-		// Rule 81:  assignment_expression ::= unary_expression -= assignment_expression
-		//
-		case 81: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign);
-			break;
-		}
-
-		//
-		// Rule 82:  assignment_expression ::= unary_expression <<= assignment_expression
-		//
-		case 82: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign);
-			break;
-		}
-
-		//
-		// Rule 83:  assignment_expression ::= unary_expression >>= assignment_expression
-		//
-		case 83: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign);
-			break;
-		}
-
-		//
-		// Rule 84:  assignment_expression ::= unary_expression &= assignment_expression
-		//
-		case 84: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign);
-			break;
-		}
-
-		//
-		// Rule 85:  assignment_expression ::= unary_expression ^= assignment_expression
-		//
-		case 85: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign);
-			break;
-		}
-
-		//
-		// Rule 86:  assignment_expression ::= unary_expression |= assignment_expression
-		//
-		case 86: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign);
-			break;
-		}
-
-		//
-		// Rule 89:  expression_list ::= <openscope-ast> expression_list_actual
-		//
-		case 89: {
-			action.consumeExpressionList();
-			break;
-		}
-
-		//
-		// Rule 91:  expression_list_opt ::= $Empty
-		//
-		case 91: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 101:  statement ::= ERROR_TOKEN
-		//
-		case 101: {
-			action.consumeStatementProblem();
-			break;
-		}
-
-		//
-		// Rule 102:  labeled_statement ::= identifier_token : statement
-		//
-		case 102: {
-			action.consumeStatementLabeled();
-			break;
-		}
-
-		//
-		// Rule 103:  labeled_statement ::= case constant_expression : statement
-		//
-		case 103: {
-			action.consumeStatementCase();
-			break;
-		}
-
-		//
-		// Rule 104:  labeled_statement ::= default : statement
-		//
-		case 104: {
-			action.consumeStatementDefault();
-			break;
-		}
-
-		//
-		// Rule 105:  compound_statement ::= { }
-		//
-		case 105: {
-			action.consumeStatementCompoundStatement(false);
-			break;
-		}
-
-		//
-		// Rule 106:  compound_statement ::= { <openscope-ast> block_item_list }
-		//
-		case 106: {
-			action.consumeStatementCompoundStatement(true);
-			break;
-		}
-
-		//
-		// Rule 110:  block_item ::= declaration
-		//
-		case 110: {
-			action.consumeStatementDeclarationWithDisambiguation();
-			break;
-		}
-
-		//
-		// Rule 111:  expression_statement ::= ;
-		//
-		case 111: {
-			action.consumeStatementNull();
-			break;
-		}
-
-		//
-		// Rule 112:  expression_statement ::= expression_in_statement ;
-		//
-		case 112: {
-			action.consumeStatementExpression();
-			break;
-		}
-
-		//
-		// Rule 113:  selection_statement ::= if ( expression ) statement
-		//
-		case 113: {
-			action.consumeStatementIf(false);
-			break;
-		}
-
-		//
-		// Rule 114:  selection_statement ::= if ( expression ) statement else statement
-		//
-		case 114: {
-			action.consumeStatementIf(true);
-			break;
-		}
-
-		//
-		// Rule 115:  selection_statement ::= switch ( expression ) statement
-		//
-		case 115: {
-			action.consumeStatementSwitch();
-			break;
-		}
-
-		//
-		// Rule 117:  expression_opt ::= $Empty
-		//
-		case 117: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 118:  iteration_statement ::= do statement while ( expression ) ;
-		//
-		case 118: {
-			action.consumeStatementDoLoop(true);
-			break;
-		}
-
-		//
-		// Rule 119:  iteration_statement ::= do statement
-		//
-		case 119: {
-			action.consumeStatementDoLoop(false);
-			break;
-		}
-
-		//
-		// Rule 120:  iteration_statement ::= while ( expression ) statement
-		//
-		case 120: {
-			action.consumeStatementWhileLoop();
-			break;
-		}
-
-		//
-		// Rule 121:  iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement
-		//
-		case 121: {
-			action.consumeStatementForLoop();
-			break;
-		}
-
-		//
-		// Rule 122:  iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement
-		//
-		case 122: {
-			action.consumeStatementForLoop();
-			break;
-		}
-
-		//
-		// Rule 123:  jump_statement ::= goto identifier_token ;
-		//
-		case 123: {
-			action.consumeStatementGoto();
-			break;
-		}
-
-		//
-		// Rule 124:  jump_statement ::= continue ;
-		//
-		case 124: {
-			action.consumeStatementContinue();
-			break;
-		}
-
-		//
-		// Rule 125:  jump_statement ::= break ;
-		//
-		case 125: {
-			action.consumeStatementBreak();
-			break;
-		}
-
-		//
-		// Rule 126:  jump_statement ::= return ;
-		//
-		case 126: {
-			action.consumeStatementReturn(false);
-			break;
-		}
-
-		//
-		// Rule 127:  jump_statement ::= return expression ;
-		//
-		case 127: {
-			action.consumeStatementReturn(true);
-			break;
-		}
-
-		//
-		// Rule 128:  declaration ::= declaration_specifiers ;
-		//
-		case 128: {
-			action.consumeDeclarationSimple(false);
-			break;
-		}
-
-		//
-		// Rule 129:  declaration ::= declaration_specifiers <openscope-ast> init_declarator_list ;
-		//
-		case 129: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 130:  declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
-		//
-		case 130: {
-			action.consumeDeclarationSpecifiersSimple();
-			break;
-		}
-
-		//
-		// Rule 131:  declaration_specifiers ::= <openscope-ast> struct_or_union_declaration_specifiers
-		//
-		case 131: {
-			action.consumeDeclarationSpecifiersStructUnionEnum();
-			break;
-		}
-
-		//
-		// Rule 132:  declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
-		//
-		case 132: {
-			action.consumeDeclarationSpecifiersStructUnionEnum();
-			break;
-		}
-
-		//
-		// Rule 133:  declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
-		//
-		case 133: {
-			action.consumeDeclarationSpecifiersStructUnionEnum();
-			break;
-		}
-
-		//
-		// Rule 134:  declaration_specifiers ::= <openscope-ast> typdef_name_declaration_specifiers
-		//
-		case 134: {
-			action.consumeDeclarationSpecifiersTypedefName();
-			break;
-		}
-
-		//
-		// Rule 159:  init_declarator ::= complete_declarator = initializer
-		//
-		case 159: {
-			action.consumeDeclaratorWithInitializer(true);
-			break;
-		}
-
-		//
-		// Rule 161:  storage_class_specifier ::= storage_class_specifier_token
-		//
-		case 161: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 167:  simple_type_specifier ::= simple_type_specifier_token
-		//
-		case 167: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 180:  type_name_specifier ::= identifier_token
-		//
-		case 180: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 181:  struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { <openscope-ast> struct_declaration_list_opt }
-		//
-		case 181: {
-			action.consumeTypeSpecifierComposite(false);
-			break;
-		}
-
-		//
-		// Rule 182:  struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { <openscope-ast> struct_declaration_list_opt }
-		//
-		case 182: {
-			action.consumeTypeSpecifierComposite(true);
-			break;
-		}
-
-		//
-		// Rule 187:  elaborated_specifier ::= struct elaborated_specifier_hook identifier_token
-		//
-		case 187: {
-			action.consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct);
-			break;
-		}
-
-		//
-		// Rule 188:  elaborated_specifier ::= union elaborated_specifier_hook identifier_token
-		//
-		case 188: {
-			action.consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union);
-			break;
-		}
-
-		//
-		// Rule 189:  elaborated_specifier ::= enum elaborated_specifier_hook identifier_token
-		//
-		case 189: {
-			action.consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum);
-			break;
-		}
-
-		//
-		// Rule 195:  struct_declaration ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ;
-		//
-		case 195: {
-			action.consumeStructDeclaration(true);
-			break;
-		}
-
-		//
-		// Rule 196:  struct_declaration ::= specifier_qualifier_list ;
-		//
-		case 196: {
-			action.consumeStructDeclaration(false);
-			break;
-		}
-
-		//
-		// Rule 197:  struct_declaration ::= ERROR_TOKEN
-		//
-		case 197: {
-			action.consumeDeclarationProblem();
-			break;
-		}
-
-		//
-		// Rule 203:  struct_declarator ::= : constant_expression
-		//
-		case 203: {
-			action.consumeBitField(false);
-			break;
-		}
-
-		//
-		// Rule 204:  struct_declarator ::= declarator : constant_expression
-		//
-		case 204: {
-			action.consumeBitField(true);
-			break;
-		}
-
-		//
-		// Rule 205:  enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
-		//
-		case 205: {
-			action.consumeTypeSpecifierEnumeration(false);
-			break;
-		}
-
-		//
-		// Rule 206:  enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
-		//
-		case 206: {
-			action.consumeTypeSpecifierEnumeration(true);
-			break;
-		}
-
-		//
-		// Rule 212:  enumerator ::= identifier_token
-		//
-		case 212: {
-			action.consumeEnumerator(false);
-			break;
-		}
-
-		//
-		// Rule 213:  enumerator ::= identifier_token = constant_expression
-		//
-		case 213: {
-			action.consumeEnumerator(true);
-			break;
-		}
-
-		//
-		// Rule 214:  type_qualifier ::= type_qualifier_token
-		//
-		case 214: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 218:  function_specifier ::= inline
-		//
-		case 218: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 220:  declarator ::= <openscope-ast> pointer_seq direct_declarator
-		//
-		case 220: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 225:  basic_direct_declarator ::= declarator_id_name
-		//
-		case 225: {
-			action.consumeDirectDeclaratorIdentifier();
-			break;
-		}
-
-		//
-		// Rule 226:  basic_direct_declarator ::= ( declarator )
-		//
-		case 226: {
-			action.consumeDirectDeclaratorBracketed();
-			break;
-		}
-
-		//
-		// Rule 227:  declarator_id_name ::= identifier
-		//
-		case 227: {
-			action.consumeIdentifierName();
-			break;
-		}
-
-		//
-		// Rule 228:  array_direct_declarator ::= basic_direct_declarator array_modifier
-		//
-		case 228: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 229:  array_direct_declarator ::= array_direct_declarator array_modifier
-		//
-		case 229: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 231:  function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_type_list )
-		//
-		case 231: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true, true);
-			break;
-		}
-
-		//
-		// Rule 232:  function_direct_declarator ::= basic_direct_declarator ( )
-		//
-		case 232: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true, false);
-			break;
-		}
-
-		//
-		// Rule 234:  function_declarator ::= <openscope-ast> pointer_seq function_direct_declarator
-		//
-		case 234: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 235:  knr_direct_declarator ::= basic_direct_declarator ( <openscope-ast> identifier_list )
-		//
-		case 235: {
-			action.consumeDirectDeclaratorFunctionDeclaratorKnR();
-			break;
-		}
-
-		//
-		// Rule 237:  knr_function_declarator ::= <openscope-ast> pointer_seq knr_direct_declarator
-		//
-		case 237: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 238:  identifier_list ::= identifier
-		//
-		case 238: {
-			action.consumeIdentifierKnR();
-			break;
-		}
-
-		//
-		// Rule 239:  identifier_list ::= identifier_list , identifier
-		//
-		case 239: {
-			action.consumeIdentifierKnR();
-			break;
-		}
-
-		//
-		// Rule 240:  array_modifier ::= [ ]
-		//
-		case 240: {
-			action.consumeDirectDeclaratorArrayModifier(false);
-			break;
-		}
-
-		//
-		// Rule 241:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ]
-		//
-		case 241: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false);
-			break;
-		}
-
-		//
-		// Rule 242:  array_modifier ::= [ assignment_expression ]
-		//
-		case 242: {
-			action.consumeDirectDeclaratorArrayModifier(true);
-			break;
-		}
-
-		//
-		// Rule 243:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
-		//
-		case 243: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 244:  array_modifier ::= [ static assignment_expression ]
-		//
-		case 244: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true);
-			break;
-		}
-
-		//
-		// Rule 245:  array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
-		//
-		case 245: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 246:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ]
-		//
-		case 246: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 247:  array_modifier ::= [ * ]
-		//
-		case 247: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false);
-			break;
-		}
-
-		//
-		// Rule 248:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ]
-		//
-		case 248: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false);
-			break;
-		}
-
-		//
-		// Rule 250:  pointer_seq ::= pointer_hook * pointer_hook
-		//
-		case 250: {
-			action.consumePointer();
-			break;
-		}
-
-		//
-		// Rule 251:  pointer_seq ::= pointer_seq pointer_hook * pointer_hook
-		//
-		case 251: {
-			action.consumePointer();
-			break;
-		}
-
-		//
-		// Rule 252:  pointer_seq ::= pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
-		//
-		case 252: {
-			action.consumePointerTypeQualifierList();
-			break;
-		}
-
-		//
-		// Rule 253:  pointer_seq ::= pointer_seq pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
-		//
-		case 253: {
-			action.consumePointerTypeQualifierList();
-			break;
-		}
-
-		//
-		// Rule 257:  parameter_type_list ::= parameter_list
-		//
-		case 257: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 258:  parameter_type_list ::= parameter_list , ...
-		//
-		case 258: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 259:  parameter_type_list ::= ...
-		//
-		case 259: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 262:  parameter_declaration ::= declaration_specifiers complete_parameter_declarator
-		//
-		case 262: {
-			action.consumeParameterDeclaration();
-			break;
-		}
-
-		//
-		// Rule 263:  parameter_declaration ::= declaration_specifiers
-		//
-		case 263: {
-			action.consumeParameterDeclarationWithoutDeclarator();
-			break;
-		}
-
-		//
-		// Rule 266:  type_id ::= specifier_qualifier_list
-		//
-		case 266: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 267:  type_id ::= specifier_qualifier_list abstract_declarator
-		//
-		case 267: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 269:  abstract_declarator ::= <openscope-ast> pointer_seq
-		//
-		case 269: {
-			action.consumeDeclaratorWithPointer(false);
-			break;
-		}
-
-		//
-		// Rule 270:  abstract_declarator ::= <openscope-ast> pointer_seq direct_abstract_declarator
-		//
-		case 270: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 274:  basic_direct_abstract_declarator ::= ( abstract_declarator )
-		//
-		case 274: {
-			action.consumeDirectDeclaratorBracketed();
-			break;
-		}
-
-		//
-		// Rule 275:  array_direct_abstract_declarator ::= array_modifier
-		//
-		case 275: {
-			action.consumeDirectDeclaratorArrayDeclarator(false);
-			break;
-		}
-
-		//
-		// Rule 276:  array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
-		//
-		case 276: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 277:  array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
-		//
-		case 277: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 278:  function_direct_abstract_declarator ::= ( )
-		//
-		case 278: {
-			action.consumeDirectDeclaratorFunctionDeclarator(false, false);
-			break;
-		}
-
-		//
-		// Rule 279:  function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( )
-		//
-		case 279: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true, false);
-			break;
-		}
-
-		//
-		// Rule 280:  function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list )
-		//
-		case 280: {
-			action.consumeDirectDeclaratorFunctionDeclarator(false, true);
-			break;
-		}
-
-		//
-		// Rule 281:  function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list )
-		//
-		case 281: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true, true);
-			break;
-		}
-
-		//
-		// Rule 282:  initializer ::= assignment_expression
-		//
-		case 282: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 283:  initializer ::= initializer_list
-		//
-		case 283: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 284:  initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq comma_opt } end_initializer_list
-		//
-		case 284: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 285:  initializer_list ::= { <openscope-ast> }
-		//
-		case 285: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 286:  start_initializer_list ::= $Empty
-		//
-		case 286: {
-			action.initializerListStart();
-			break;
-		}
-
-		//
-		// Rule 287:  end_initializer_list ::= $Empty
-		//
-		case 287: {
-			action.initializerListEnd();
-			break;
-		}
-
-		//
-		// Rule 292:  designated_initializer ::= <openscope-ast> designation = initializer
-		//
-		case 292: {
-			action.consumeInitializerDesignated();
-			break;
-		}
-
-		//
-		// Rule 296:  designator_base ::= [ constant_expression ]
-		//
-		case 296: {
-			action.consumeDesignatorArray();
-			break;
-		}
-
-		//
-		// Rule 297:  designator_base ::= . identifier_token
-		//
-		case 297: {
-			action.consumeDesignatorField();
-			break;
-		}
-
-		//
-		// Rule 298:  designator ::= [ constant_expression ]
-		//
-		case 298: {
-			action.consumeDesignatorArray();
-			break;
-		}
-
-		//
-		// Rule 299:  designator ::= . identifier_token
-		//
-		case 299: {
-			action.consumeDesignatorField();
-			break;
-		}
-
-		//
-		// Rule 300:  translation_unit ::= external_declaration_list
-		//
-		case 300: {
-			action.consumeTranslationUnit();
-			break;
-		}
-
-		//
-		// Rule 301:  translation_unit ::= $Empty
-		//
-		case 301: {
-			action.consumeTranslationUnit();
-			break;
-		}
-
-		//
-		// Rule 306:  external_declaration ::= ;
-		//
-		case 306: {
-			action.consumeDeclarationEmpty();
-			break;
-		}
-
-		//
-		// Rule 307:  external_declaration ::= ERROR_TOKEN
-		//
-		case 307: {
-			action.consumeDeclarationProblem();
-			break;
-		}
-
-		//
-		// Rule 311:  function_definition ::= <openscope-ast> function_declarator function_body
-		//
-		case 311: {
-			action.consumeFunctionDefinition(false);
-			break;
-		}
-
-		//
-		// Rule 312:  function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
-		//
-		case 312: {
-			action.consumeFunctionDefinitionKnR();
-			break;
-		}
-
-		//
-		// Rule 313:  normal_function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
-		//
-		case 313: {
-			action.consumeFunctionDefinition(true);
-			break;
-		}
-
-		//
-		// Rule 314:  function_body ::= { }
-		//
-		case 314: {
-			action.consumeStatementCompoundStatement(false);
-			break;
-		}
-
-		//
-		// Rule 315:  function_body ::= { <openscope-ast> block_item_list }
-		//
-		case 315: {
-			action.consumeStatementCompoundStatement(true);
-			break;
-		}
-
-		//
-		// Rule 332:  attribute_parameter ::= assignment_expression
-		//
-		case 332: {
-			action.consumeIgnore();
-			break;
-		}
-
-		//
-		// Rule 343:  extended_asm_declaration ::= asm volatile_opt ( extended_asm_param_seq ) ;
-		//
-		case 343: {
-			gnuAction.consumeDeclarationASM();
-			break;
-		}
-
-		//
-		// Rule 354:  unary_expression ::= __alignof__ unary_expression
-		//
-		case 354: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_alignOf);
-			break;
-		}
-
-		//
-		// Rule 355:  unary_expression ::= __alignof__ ( type_id )
-		//
-		case 355: {
-			action.consumeExpressionTypeId(IASTTypeIdExpression.op_alignof);
-			break;
-		}
-
-		//
-		// Rule 356:  unary_expression ::= typeof unary_expression
-		//
-		case 356: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof);
-			break;
-		}
-
-		//
-		// Rule 357:  unary_expression ::= typeof ( type_id )
-		//
-		case 357: {
-			action.consumeExpressionTypeId(IASTTypeIdExpression.op_typeof);
-			break;
-		}
-
-		//
-		// Rule 358:  relational_expression ::= relational_expression >? shift_expression
-		//
-		case 358: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_max);
-			break;
-		}
-
-		//
-		// Rule 359:  relational_expression ::= relational_expression <? shift_expression
-		//
-		case 359: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_min);
-			break;
-		}
-
-		//
-		// Rule 360:  conditional_expression ::= logical_or_expression ? <empty> : assignment_expression
-		//
-		case 360: {
-			action.consumeExpressionConditional();
-			break;
-		}
-
-		//
-		// Rule 361:  primary_expression ::= ( compound_statement )
-		//
-		case 361: {
-			gnuAction.consumeCompoundStatementExpression();
-			break;
-		}
-
-		//
-		// Rule 362:  labeled_statement ::= case case_range_expression : statement
-		//
-		case 362: {
-			action.consumeStatementCase();
-			break;
-		}
-
-		//
-		// Rule 363:  case_range_expression ::= constant_expression ... constant_expression
-		//
-		case 363: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign);
-			break;
-		}
-
-		//
-		// Rule 367:  typeof_type_specifier ::= typeof unary_expression
-		//
-		case 367: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof);
-			break;
-		}
-
-		//
-		// Rule 368:  typeof_type_specifier ::= typeof ( type_id )
-		//
-		case 368: {
-			action.consumeExpressionTypeId(IASTTypeIdExpression.op_typeof);
-			break;
-		}
-
-		//
-		// Rule 369:  declaration_specifiers ::= <openscope-ast> typeof_declaration_specifiers
-		//
-		case 369: {
-			action.consumeDeclarationSpecifiersTypeof();
-			break;
-		}
-
-		//
-		// Rule 385:  field_name_designator ::= identifier_token :
-		//
-		case 385: {
-			action.consumeDesignatorFieldGCC();
-			break;
-		}
-
-		//
-		// Rule 386:  array_range_designator ::= [ constant_expression ... constant_expression ]
-		//
-		case 386: {
-			action.consumeDesignatorArrayRange();
-			break;
-		}
-
-		//
-		// Rule 387:  designated_initializer ::= <openscope-ast> field_name_designator initializer
-		//
-		case 387: {
-			action.consumeInitializerDesignated();
-			break;
-		}
-
-		//
-		// Rule 388:  block_item ::= normal_function_definition
-		//
-		case 388: {
-			action.consumeStatementDeclaration();
-			break;
-		}
-
-		default:
-			break;
-		}
-		return;
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCParserprs.java
deleted file mode 100644
index f6e3cb8..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCParserprs.java
+++ /dev/null
@@ -1,1035 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2015 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.lrparser.gcc;
-
-public class GCCParserprs implements lpg.lpgjavaruntime.ParseTable, GCCParsersym {
-
-	public interface IsKeyword {
-		public final static byte isKeyword[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static byte isKeyword[] = IsKeyword.isKeyword;
-
-	public final boolean isKeyword(int index) {
-		return isKeyword[index] != 0;
-	}
-
-	public interface BaseCheck {
-		public final static short baseCheck[] = { 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 4,
-				4, 3, 3, 2, 2, 4, 1, 0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 1, 4, 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 3, 3,
-				3, 3, 1, 3, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 2, 1, 0, 1,
-				3, 1, 1, 1, 1, 1, 1, 1, 1, 3, 4, 3, 2, 4, 1, 2, 1, 1, 1, 2, 5, 7, 5, 1, 0, 7, 2, 5, 9, 8, 3, 2, 2, 2, 3,
-				2, 4, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 3, 1, 3, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6, 8, 0, 0, 1, 1, 3, 3, 3, 0, 1, 0, 1, 2, 4, 2, 1,
-				1, 1, 3, 1, 1, 2, 3, 7, 8, 0, 1, 0, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 3, 1, 2, 2, 1, 5, 3,
-				1, 3, 5, 1, 3, 1, 3, 2, 4, 3, 5, 4, 6, 6, 3, 5, 1, 3, 4, 5, 6, 0, 1, 2, 1, 3, 1, 1, 3, 2, 1, 1, 1, 1, 2,
-				1, 2, 3, 1, 1, 1, 3, 1, 2, 2, 2, 3, 4, 5, 1, 1, 7, 3, 0, 0, 1, 1, 3, 3, 4, 1, 1, 2, 3, 2, 3, 2, 1, 0, 1,
-				2, 1, 1, 1, 1, 1, 2, 1, 3, 6, 4, 2, 4, 1, 1, 1, 1, 2, 6, 3, 1, 3, 1, 4, 0, 1, 1, 1, 3, 1, 0, 4, 3, 1, 2,
-				1, 3, 4, 4, 4, 6, 1, 0, 1, 3, 1, 3, 0, 1, 4, 5, 2, 4, 2, 4, 3, 3, 5, 3, 4, 3, 1, 2, 2, 2, 4, 2, 1, 1, 2,
-				2, 3, 2, 2, 3, 1, 1, 1, 1, 1, 1, 1, 2, 5, 3, 1, -105, 0, -114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -2, 0, 0, 0, 0, 0, 0, -351, -312, 0, 0, -41, -224, 0, 0, 0, -111, -260, 0, -7, 0, 0, 0, 0, 0, 0,
-				-222, 0, -84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -32, 0, 0, 0, 0, -3, -35, -107, 0, -58, 0, 0,
-				0, -146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5, 0, 0, -120, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -10, -11, -253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -221, 0, 0, 0, 0, 0, 0, 0, 0, -62, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -190, 0, 0, 0, 0, 0, 0, 0, 0,
-				-4, 0, 0, 0, -360, 0, 0, 0, 0, 0, 0, 0, -42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -12, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -109, -112, 0, -209, 0, 0, 0, 0, 0, 0, 0, 0, 0, -80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -314, 0, 0,
-				0, -33, 0, -13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -172, 0, -295, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-24, 0, 0, 0, 0, -25, 0, 0, 0, 0, 0, 0, -37, -123, 0, 0, 0, 0, 0, 0, 0, 0, -36, -108, 0, -345, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -38, -274, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-257, 0, -81, 0, 0, 0, 0, 0, 0, 0, 0, 0, -45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -121, -63, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -210, 0, -9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -245, 0, 0, -40,
-				-30, -347, 0, 0, 0, 0, 0, 0, 0, 0, 0, -47, 0, 0, 0, 0, 0, 0, 0, -43, 0, 0, 0, 0, 0, 0, -44, -205, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -54, -361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -56, 0, 0, 0, 0,
-				0, 0, -239, -64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -79, 0, 0, 0, 0, 0, 0, 0, 0, 0, -49, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -310, -65, 0, 0, 0, 0, 0, 0, 0, 0, 0, -241, 0, 0, 0, 0, 0, 0, 0, 0, 0, -31, -71,
-				0, 0, 0, 0, 0, 0, -73, 0, 0, 0, 0, 0, 0, 0, -50, 0, 0, -119, 0, 0, 0, 0, 0, 0, 0, 0, 0, -106, -29, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -74, -151, 0, 0, 0, 0, 0, 0, 0, 0, 0, -51, 0, 0, 0, 0, 0, 0, 0, -85, 0,
-				0, 0, 0, 0, 0, -182, 0, -86, 0, 0, 0, 0, 0, 0, 0, -90, 0, 0, -141, 0, 0, 0, 0, -72, 0, 0, 0, 0, 0, 0,
-				-92, -189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -113, 0, 0, 0, 0, 0, 0, -258, -28, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -333, 0, -122, 0, 0, 0, 0, 0, 0, 0, -143, 0, -87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -8, -124, 0, 0, -265, 0, 0, -117, -125, 0, 0, 0, 0, 0, 0, 0, 0, 0, -27, 0, -126, -89, 0, 0, -296, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -59, 0, -183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -66, 0, 0, 0, 0,
-				0, 0, 0, 0, -217, 0, -127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, 0, 0, -75, -256, 0, 0,
-				0, 0, 0, -129, 0, 0, -188, 0, 0, 0, 0, 0, 0, -130, 0, -191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -131, -101,
-				0, 0, 0, 0, -132, 0, 0, 0, 0, 0, 0, -91, 0, 0, 0, -192, 0, 0, 0, 0, 0, 0, 0, 0, 0, -133, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -142, -193, 0, 0, 0, 0, 0, 0, 0, 0, 0, -153, -246, 0, 0, 0, 0, 0, 0, -136, 0,
-				0, 0, 0, 0, 0, 0, -194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -259, -137, 0, 0, 0, 0, -102, 0, 0, 0, 0, 0, 0,
-				-149, -195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -175, 0, -261, 0, 0, 0, 0, -176, 0, 0, 0, 0, 0, 0, 0, -196, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -343, -227, 0, 0, 0, 0, -103, 0, 0, 0, 0, 0, 0, -138, -197, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -348,
-				0, 0, 0, 0, 0, -144, 0, 0, 0, 0, 0, 0, -228, -199, 0, 0, 0, 0, 0, 0, 0, 0, 0, -135, -160, 0, 0, 0, 0, 0,
-				0, -154, 0, 0, 0, 0, 0, 0, 0, -200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -163, -297, 0, 0, 0, 0, 0, -156, 0, 0,
-				0, 0, 0, 0, -326, -201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -225, 0, 0, 0, 0, 0, 0, -164, 0, 0, 0, 0, 0, 0, 0,
-				-266, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -244, -145, 0, 0, 0, 0, 0, -167, 0, 0, 0, 0, 0, 0, -249, -271, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -252, -334, 0, 0, 0, 0, 0, -168, 0, 0, 0, 0, 0, 0, -335, -272, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -340, -353, -309, 0, 0, 0, 0, -169, 0, 0, 0, 0, 0, 0, 0, -303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-273, 0, 0, 0, 0, 0, 0, -170, 0, 0, 0, 0, 0, 0, -311, 0, -324, 0, 0, 0, 0, 0, 0, 0, 0, 0, -367, 0, 0, 0,
-				0, 0, -171, 0, 0, 0, 0, 0, 0, -322, 0, -320, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -181, 0, 0, 0,
-				0, 0, 0, 0, -323, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -321, -147, 0, 0, 0, 0, -185, 0, 0, 0, 0, 0, 0, 0,
-				-336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -363, 0, 0, 0, 0, 0, 0, -223, 0, 0, 0, 0, 0, 0, -349, 0, -148, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -150, -152, 0, 0, 0, 0, -240, 0, 0, 0, 0, 0, 0, -357, 0, -155, 0, 0, 0, 0, 0, 0, 0,
-				-344, 0, 0, -157, 0, 0, 0, 0, -242, 0, 0, 0, 0, 0, 0, -364, 0, -166, 0, 0, 0, 0, 0, 0, 0, -177, 0, 0,
-				-178, 0, 0, 0, 0, -243, 0, 0, 0, 0, 0, 0, -370, 0, -184, 0, 0, 0, 0, 0, 0, 0, -226, 0, 0, 0, 0, 0, 0, 0,
-				-231, 0, 0, 0, 0, 0, 0, -83, 0, 0, -67, 0, -263, 0, 0, 0, 0, 0, 0, 0, -211, 0, -235, 0, 0, 0, 0, 0, 0,
-				0, 0, -236, 0, 0, 0, 0, 0, 0, -250, -362, -325, 0, -251, -267, 0, 0, 0, 0, 0, 0, 0, 0, -275, -139, 0, 0,
-				-220, 0, -276, 0, 0, 0, 0, 0, 0, 0, -371, 0, 0, -277, 0, 0, 0, 0, -278, 0, 0, 0, 0, 0, -270, -279, 0, 0,
-				0, -280, -281, -313, 0, -282, -283, 0, 0, 0, 0, 0, 0, 0, 0, -180, 0, 0, -284, -341, -60, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -23, -374, 0, 0, 0, -22, -285, 0, 0, 0, -286, -298, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -238, 0, 0, -300, 0, -301, 0, 0, 0, -287, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-306, 0, 0, 0, 0, 0, 0, -288, 0, 0, 0, -269, 0, 0, 0, 0, 0, -317, 0, 0, 0, 0, 0, -289, -61, 0, 0, 0, 0,
-				0, 0, 0, -316, -290, 0, 0, 0, 0, -291, -292, 0, 0, 0, 0, 0, 0, -115, -319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-293, 0, -134, -294, 0, 0, 0, 0, 0, 0, 0, 0, -299, 0, 0, -337, 0, 0, 0, 0, 0, 0, 0, 0, -186, -346, 0,
-				-247, -342, 0, 0, 0, -354, 0, 0, 0, 0, 0, -350, -365, 0, 0, 0, 0, -355, -159, 0, 0, 0, 0, 0, 0, -308, 0,
-				0, -373, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -76, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -161, 0, 0, 0, 0, 0, 0, 0, 0,
-				-165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -356, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -187, 0, 0, 0, 0, 0, 0, 0,
-				0, -68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -248, 0, 0, 0, 0, 0,
-				-93, 0, 0, 0, 0, 0, 0, -338, 0, 0, 0, 0, 0, 0, -104, 0, 0, 0, 0, 0, 0, 0, -34, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -110, 0, 0, -82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -332, -70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -234, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -302, 0, 0, -48, 0, 0, 0, -304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -315, -230, 0, 0, 0, -328,
-				0, 0, 0, 0, 0, 0, 0, 0, -206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -330, 0, 0, 0, 0, 0, 0, -331, 0, 0, 0, 0, 0, 0, -202, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -368, 0, 0, 0, 0, 0, 0, -372, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -375, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -262, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -207, 0, -14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -15, 0, 0, 0, 0, 0, 0, 0, -16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -19, 0, 0, 0, 0, 0, 0, 0, -21, 0, 0, 0, 0, 0, -26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -140, 0, 0, -52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -213, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -215, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -232, -174, 0, 0, 0, 0, -216, 0, 0, 0, 0, 0, 0, 0, 0, 0, -53, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -6, 0, 0, -208, 0, -20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -96, 0,
-				0, 0, 0, 0, -39, 0, 0, -307, -57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -97, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -233, 0, 0, 0, 0, 0, 0, 0, 0, -55, -98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -100, 0, 0, 0, 0, 0, 0,
-				-173, 0, 0, -327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -268, -352, 0, 0, 0, 0, 0, 0, -255, -204,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -305, 0, 0, 0, -17, 0, 0,
-				0, -77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -18, -366, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -88, 0, 0, -329, -162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -179, 0, 0, 0, 0, 0, 0, 0, -78, 0, 0, 0, 0, 0, -339, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -358, 0, 0, 0, -118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -158, 0, 0, 0, -359, 0, 0, 0, -369, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static short baseCheck[] = BaseCheck.baseCheck;
-
-	@Override
-	public final int baseCheck(int index) {
-		return baseCheck[index];
-	}
-
-	public final static short rhs[] = baseCheck;
-
-	@Override
-	public final int rhs(int index) {
-		return rhs[index];
-	}
-
-	public interface BaseAction {
-		public final static char baseAction[] = { 121, 2, 122, 49, 49, 18, 18, 53, 53, 26, 26, 1, 1, 3, 3, 3, 3, 4, 4,
-				4, 5, 6, 6, 6, 6, 6, 6, 6, 6, 88, 88, 103, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9, 14, 14,
-				14, 15, 15, 15, 16, 16, 16, 16, 16, 17, 17, 17, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 28, 28,
-				28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 38, 31, 25, 123, 123, 104, 104, 62, 39, 39, 39, 39, 39, 39, 39,
-				40, 40, 40, 30, 30, 105, 105, 77, 77, 41, 41, 42, 42, 42, 71, 71, 43, 43, 43, 43, 43, 44, 44, 44, 44,
-				44, 60, 60, 29, 29, 29, 29, 29, 54, 54, 54, 95, 95, 90, 90, 90, 90, 91, 91, 91, 92, 92, 92, 93, 93, 93,
-				94, 94, 94, 89, 89, 82, 82, 83, 55, 57, 57, 57, 57, 57, 72, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
-				74, 81, 78, 78, 124, 125, 84, 84, 79, 79, 79, 96, 106, 106, 107, 107, 97, 97, 97, 58, 126, 126, 108, 98,
-				98, 98, 80, 80, 127, 109, 109, 110, 110, 99, 99, 32, 33, 33, 33, 56, 52, 52, 45, 45, 45, 45, 34, 34, 35,
-				46, 46, 47, 36, 36, 100, 100, 48, 129, 129, 128, 128, 59, 59, 59, 59, 59, 59, 59, 59, 59, 111, 63, 63,
-				63, 63, 37, 85, 85, 75, 75, 75, 76, 76, 65, 65, 130, 130, 64, 64, 86, 86, 86, 66, 66, 66, 67, 68, 68,
-				68, 69, 69, 69, 69, 73, 73, 50, 50, 51, 132, 131, 131, 131, 131, 112, 133, 134, 134, 135, 135, 136, 136,
-				121, 121, 137, 137, 113, 113, 113, 113, 138, 138, 114, 114, 114, 70, 115, 115, 10, 10, 10, 27, 27, 11,
-				11, 139, 139, 116, 116, 116, 117, 117, 140, 140, 118, 118, 12, 12, 141, 141, 119, 119, 119, 119, 13, 61,
-				142, 142, 143, 143, 120, 120, 120, 101, 101, 101, 7, 7, 7, 7, 16, 16, 24, 4, 40, 144, 102, 102, 102, 87,
-				87, 29, 60, 54, 83, 83, 83, 108, 108, 108, 127, 124, 125, 37, 96, 135, 135, 145, 146, 112, 77, 329,
-				1714, 247, 17, 21, 18, 898, 1031, 45, 1055, 371, 316, 317, 318, 1074, 1062, 1134, 1118, 403, 1155, 1145,
-				1175, 1169, 1196, 75, 2102, 961, 1782, 92, 734, 2014, 1751, 136, 214, 115, 1679, 20, 612, 17, 21, 18,
-				898, 43, 44, 1871, 20, 755, 17, 21, 18, 898, 43, 45, 1055, 138, 135, 137, 161, 1074, 1062, 1134, 1118,
-				1220, 1155, 1145, 1175, 1972, 37, 339, 961, 31, 1971, 140, 2293, 167, 730, 1664, 967, 144, 147, 150,
-				153, 314, 285, 2654, 28, 1230, 364, 129, 232, 499, 2636, 2662, 2688, 2696, 1072, 1456, 180, 1865, 823,
-				87, 111, 2702, 349, 1711, 96, 371, 316, 317, 318, 651, 712, 1542, 1263, 1744, 95, 97, 98, 99, 100, 371,
-				316, 317, 318, 1163, 211, 967, 229, 136, 214, 656, 225, 233, 1871, 20, 941, 17, 21, 18, 898, 43, 40,
-				136, 214, 255, 214, 1521, 180, 242, 88, 138, 135, 137, 161, 347, 1953, 371, 316, 317, 318, 1830, 295,
-				323, 1678, 143, 135, 137, 161, 140, 419, 167, 1054, 25, 169, 144, 147, 150, 153, 136, 214, 2654, 1440,
-				142, 364, 167, 1386, 499, 2636, 2662, 2688, 2696, 1072, 256, 214, 800, 128, 754, 617, 2702, 322, 138,
-				135, 137, 161, 2112, 635, 967, 1871, 20, 426, 17, 21, 18, 898, 43, 45, 1055, 1971, 140, 1974, 167, 1074,
-				1062, 1825, 144, 147, 150, 153, 1926, 90, 2654, 343, 1288, 364, 851, 232, 499, 2636, 2662, 2688, 2696,
-				1072, 319, 316, 317, 318, 1952, 1676, 2702, 1703, 20, 1784, 17, 21, 18, 898, 1031, 45, 1055, 3068, 256,
-				214, 1013, 1074, 1062, 1134, 1118, 1061, 1155, 1145, 1175, 1169, 1196, 75, 443, 1610, 20, 282, 17, 21,
-				18, 898, 43, 36, 927, 961, 31, 1586, 20, 1784, 17, 21, 18, 898, 1031, 45, 1055, 28, 1230, 283, 1230,
-				1074, 1062, 1134, 1118, 284, 1155, 1145, 1175, 1169, 1196, 75, 364, 1610, 20, 282, 17, 21, 18, 898, 43,
-				36, 288, 2113, 247, 1643, 20, 1592, 17, 21, 18, 898, 1031, 45, 1055, 500, 3114, 283, 1230, 1074, 1062,
-				1134, 1118, 228, 1155, 1145, 1175, 1169, 1196, 75, 1542, 1871, 20, 282, 17, 21, 18, 898, 43, 39, 290,
-				289, 248, 1871, 20, 499, 17, 21, 18, 898, 43, 45, 1055, 28, 1230, 283, 1230, 1074, 1062, 1829, 1551,
-				2014, 255, 214, 1337, 499, 1727, 20, 24, 17, 21, 18, 898, 1031, 45, 1055, 961, 188, 159, 291, 1074,
-				1062, 1134, 1118, 1500, 1155, 1145, 1175, 1169, 1196, 75, 181, 1871, 20, 282, 17, 21, 18, 898, 43, 45,
-				1055, 335, 396, 1751, 20, 1796, 17, 21, 18, 898, 1031, 45, 1055, 181, 549, 283, 1230, 1074, 1062, 1134,
-				1118, 1082, 1155, 1145, 1175, 1169, 1196, 75, 755, 1871, 20, 282, 17, 21, 18, 898, 43, 38, 387, 226,
-				993, 435, 20, 739, 17, 21, 18, 898, 1031, 45, 1055, 961, 187, 283, 1230, 1074, 1062, 1134, 1118, 311,
-				1155, 1145, 1175, 1169, 1196, 75, 2014, 1871, 20, 488, 17, 21, 18, 898, 43, 37, 292, 1967, 20, 313, 17,
-				21, 18, 898, 1031, 45, 1055, 49, 2036, 1138, 240, 1074, 1062, 1134, 1118, 1089, 1155, 1145, 1175, 1169,
-				1196, 75, 336, 1289, 977, 332, 1919, 20, 2217, 17, 21, 18, 898, 1031, 45, 1055, 734, 115, 1843, 205,
-				1074, 1062, 1134, 1118, 960, 1155, 1145, 1175, 1169, 1196, 75, 363, 1871, 20, 1148, 17, 21, 18, 898, 43,
-				45, 1055, 961, 189, 324, 1678, 1074, 1062, 1134, 1118, 1500, 1155, 1145, 1175, 1169, 1196, 94, 1871, 20,
-				1149, 17, 21, 18, 898, 1031, 45, 1055, 1522, 334, 105, 635, 1074, 1062, 1134, 1118, 1614, 1155, 1145,
-				1175, 1169, 1196, 75, 418, 533, 20, 92, 17, 21, 18, 898, 1031, 45, 1055, 594, 1775, 330, 125, 1074,
-				1062, 1134, 1118, 1339, 1155, 1145, 1175, 1169, 1196, 75, 2131, 1775, 20, 1535, 17, 21, 18, 898, 367,
-				1914, 941, 1967, 20, 426, 17, 21, 18, 898, 1031, 45, 1055, 961, 1367, 1082, 241, 1074, 1062, 1134, 1118,
-				346, 1155, 1145, 1175, 1169, 1196, 75, 413, 1779, 2879, 332, 1971, 342, 2452, 419, 36, 1996, 319, 316,
-				317, 318, 28, 1230, 985, 1711, 1521, 180, 868, 49, 279, 2017, 920, 337, 967, 2279, 371, 316, 317, 318,
-				1766, 128, 673, 225, 773, 1799, 20, 823, 17, 21, 18, 898, 356, 219, 457, 222, 701, 88, 136, 214, 621,
-				1871, 20, 116, 17, 21, 18, 898, 43, 36, 1871, 20, 416, 17, 21, 18, 898, 43, 45, 1055, 139, 135, 137,
-				161, 1074, 1062, 1134, 1118, 798, 1897, 156, 663, 537, 916, 535, 535, 22, 451, 141, 325, 167, 331, 823,
-				1419, 145, 148, 151, 154, 774, 1478, 2654, 1871, 20, 365, 17, 21, 18, 898, 1031, 45, 1055, 1061, 2092,
-				355, 1082, 1074, 1062, 1134, 1118, 1116, 1155, 1145, 1175, 1169, 1196, 75, 49, 897, 2083, 86, 1871, 20,
-				361, 17, 21, 18, 898, 1031, 45, 1055, 1037, 244, 308, 370, 1074, 1062, 1134, 1118, 261, 1155, 1145,
-				1175, 1169, 1196, 75, 635, 1871, 20, 85, 17, 21, 18, 898, 1031, 45, 1055, 419, 419, 1888, 2024, 1074,
-				1062, 1134, 1118, 1524, 1155, 1145, 1175, 1169, 1196, 75, 124, 1871, 20, 84, 17, 21, 18, 898, 1031, 45,
-				1055, 128, 196, 2149, 2035, 1074, 1062, 1134, 1118, 1082, 1155, 1145, 1175, 1169, 1196, 75, 635, 1871,
-				20, 83, 17, 21, 18, 898, 1031, 45, 1055, 636, 804, 1960, 2152, 1074, 1062, 1134, 1118, 1992, 1155, 1145,
-				1175, 1169, 1196, 75, 112, 1871, 20, 82, 17, 21, 18, 898, 1031, 45, 1055, 28, 1230, 601, 635, 1074,
-				1062, 1134, 1118, 1082, 1155, 1145, 1175, 1169, 1196, 75, 1547, 1871, 20, 81, 17, 21, 18, 898, 1031, 45,
-				1055, 19, 28, 1230, 127, 1074, 1062, 1134, 1118, 276, 1155, 1145, 1175, 1169, 1196, 75, 277, 1871, 20,
-				80, 17, 21, 18, 898, 1031, 45, 1055, 28, 1230, 961, 297, 1074, 1062, 1134, 1118, 1251, 1155, 1145, 1175,
-				1169, 1196, 75, 635, 1871, 20, 79, 17, 21, 18, 898, 1031, 45, 1055, 49, 49, 419, 2251, 1074, 1062, 1134,
-				1118, 2050, 1155, 1145, 1175, 1169, 1196, 75, 123, 1871, 20, 78, 17, 21, 18, 898, 1031, 45, 1055, 1669,
-				1782, 635, 501, 1074, 1062, 1134, 1118, 1112, 1155, 1145, 1175, 1169, 1196, 75, 635, 1871, 20, 77, 17,
-				21, 18, 898, 1031, 45, 1055, 339, 49, 2975, 638, 1074, 1062, 1134, 1118, 1082, 1155, 1145, 1175, 1169,
-				1196, 75, 3025, 1871, 20, 76, 17, 21, 18, 898, 1031, 45, 1055, 231, 49, 1271, 2882, 1074, 1062, 1134,
-				1118, 1082, 1155, 1145, 1175, 1169, 1196, 75, 1300, 1871, 20, 93, 17, 21, 18, 898, 1031, 45, 1055, 712,
-				1878, 2014, 1831, 1074, 1062, 1134, 1118, 1082, 1155, 1145, 1175, 1169, 1196, 75, 1364, 1871, 20, 1576,
-				17, 21, 18, 898, 1031, 45, 1055, 1018, 2014, 635, 1300, 1074, 1062, 1134, 1118, 1082, 1155, 1145, 1175,
-				1169, 1196, 75, 195, 1871, 20, 1612, 17, 21, 18, 898, 43, 45, 1055, 1250, 823, 3090, 182, 1074, 1062,
-				1134, 1118, 1082, 1155, 1145, 1175, 1169, 1196, 94, 1871, 20, 1682, 17, 21, 18, 898, 43, 45, 1055, 876,
-				424, 635, 206, 1074, 1062, 1134, 1118, 1082, 1155, 1145, 1175, 1169, 1196, 94, 1871, 20, 823, 17, 21,
-				18, 898, 1031, 45, 1055, 243, 1277, 363, 118, 1074, 1062, 1134, 1118, 1082, 1155, 1145, 1175, 1169,
-				1196, 75, 1509, 1871, 20, 360, 17, 21, 18, 898, 1031, 45, 1055, 23, 213, 823, 1415, 1074, 1062, 1134,
-				1118, 1082, 1155, 1145, 1175, 1169, 1196, 75, 245, 1871, 20, 74, 17, 21, 18, 898, 43, 45, 1055, 352,
-				961, 299, 1686, 1074, 1062, 1134, 1118, 2091, 1155, 1145, 1175, 1169, 1196, 94, 1871, 20, 1543, 17, 21,
-				18, 898, 43, 45, 1055, 246, 235, 677, 1058, 1074, 1062, 1134, 1118, 1082, 1155, 1145, 1175, 1169, 1196,
-				94, 1871, 20, 1646, 17, 21, 18, 898, 43, 45, 1055, 2014, 321, 203, 1673, 1074, 1062, 1134, 1118, 1082,
-				1155, 1145, 1175, 1169, 1196, 94, 1871, 20, 848, 17, 21, 18, 898, 43, 45, 1055, 1128, 341, 1783, 789,
-				1074, 1062, 1134, 1118, 1082, 1155, 1145, 1175, 1169, 1196, 94, 1871, 20, 1243, 17, 21, 18, 898, 43, 45,
-				1055, 67, 340, 204, 562, 1074, 1062, 1134, 1118, 569, 1155, 1145, 1175, 1169, 1196, 94, 199, 1664, 389,
-				1871, 20, 1082, 17, 21, 18, 898, 43, 35, 1810, 1871, 20, 1504, 17, 21, 18, 898, 43, 45, 1055, 274, 1078,
-				87, 111, 1074, 1830, 1222, 96, 1639, 1172, 2070, 2010, 1396, 951, 1861, 1263, 109, 95, 97, 98, 99, 100,
-				1030, 1, 1664, 389, 1871, 20, 1192, 17, 21, 18, 898, 43, 45, 1055, 823, 110, 370, 1827, 1074, 1062,
-				1134, 1118, 1875, 1155, 1947, 388, 87, 111, 1082, 960, 1222, 96, 107, 1122, 168, 1542, 296, 299, 1527,
-				1263, 109, 95, 97, 98, 99, 100, 353, 264, 1664, 389, 1668, 2095, 1823, 20, 315, 17, 21, 18, 898, 354,
-				1797, 110, 370, 298, 685, 823, 2883, 255, 214, 1240, 2090, 388, 87, 111, 2097, 1082, 1222, 96, 108, 319,
-				316, 317, 318, 256, 214, 1263, 109, 95, 97, 98, 99, 100, 413, 2482, 3060, 1082, 2922, 1082, 673, 225,
-				230, 1568, 319, 316, 317, 318, 812, 110, 370, 219, 457, 222, 224, 2529, 386, 2536, 831, 388, 2096, 2279,
-				1847, 1997, 414, 294, 107, 2101, 673, 225, 773, 133, 1664, 389, 2834, 775, 384, 1082, 326, 219, 457,
-				222, 224, 1923, 1847, 20, 621, 17, 21, 18, 898, 41, 1634, 2054, 1925, 280, 87, 111, 2109, 2124, 1222,
-				96, 319, 316, 317, 318, 784, 1082, 535, 1263, 109, 95, 97, 98, 99, 100, 156, 663, 2111, 2922, 1393,
-				1385, 535, 451, 106, 1302, 673, 225, 230, 992, 1710, 110, 370, 2135, 774, 1061, 312, 220, 457, 222, 224,
-				388, 413, 1758, 2883, 940, 1082, 535, 108, 2092, 1082, 275, 319, 316, 317, 318, 2154, 1082, 270, 1282,
-				1275, 273, 662, 778, 281, 535, 309, 370, 1561, 2279, 1670, 3392, 2883, 1082, 198, 2563, 673, 225, 230,
-				3392, 319, 316, 317, 318, 3392, 260, 3392, 219, 457, 222, 224, 2583, 198, 3392, 621, 1438, 1703, 2264,
-				3392, 413, 3392, 2883, 3392, 1223, 673, 225, 230, 3392, 3392, 319, 316, 317, 318, 3392, 3392, 219, 457,
-				222, 224, 3392, 3392, 1223, 1987, 3392, 156, 663, 2279, 3392, 3392, 1477, 1782, 451, 3392, 673, 225,
-				230, 3392, 3392, 2010, 3392, 3032, 3392, 194, 3392, 219, 457, 222, 224, 1644, 1871, 20, 621, 17, 21, 18,
-				898, 43, 45, 1055, 3392, 193, 3392, 3392, 1074, 1062, 1134, 1921, 3392, 3146, 770, 1999, 3392, 673, 225,
-				230, 1436, 3392, 2477, 199, 3392, 3392, 157, 663, 219, 457, 222, 224, 3392, 3392, 1996, 264, 535, 3392,
-				278, 3392, 3392, 1497, 275, 3392, 319, 316, 317, 318, 3392, 268, 1282, 1275, 273, 3392, 673, 225, 230,
-				3392, 3392, 3392, 3392, 2922, 3392, 2092, 1336, 219, 457, 222, 224, 265, 3392, 812, 831, 210, 320, 316,
-				317, 318, 3392, 275, 2055, 3392, 2883, 1471, 1786, 3392, 268, 1282, 1275, 273, 319, 316, 317, 318, 3392,
-				3392, 3392, 2618, 3392, 260, 3392, 3392, 3392, 3392, 3392, 3392, 1756, 2264, 1542, 1931, 1703, 3392,
-				3392, 262, 673, 225, 230, 1895, 20, 3392, 17, 21, 18, 898, 34, 219, 457, 222, 224, 3392, 1871, 20, 1987,
-				17, 21, 18, 898, 43, 45, 1055, 255, 214, 1477, 1782, 1074, 1062, 1134, 1118, 2080, 1155, 1145, 1937,
-				3392, 3392, 3392, 1670, 3392, 2883, 319, 316, 317, 318, 398, 3392, 2972, 320, 316, 317, 318, 3392, 413,
-				3392, 2883, 3392, 3392, 2922, 3392, 3392, 3146, 3392, 320, 316, 317, 318, 657, 1405, 535, 3392, 200,
-				673, 225, 230, 3392, 549, 3392, 49, 3392, 967, 758, 3392, 219, 457, 222, 224, 673, 225, 230, 1987, 319,
-				316, 317, 318, 3392, 2092, 3392, 219, 457, 222, 224, 1472, 88, 275, 3140, 3392, 3392, 2922, 1093, 758,
-				268, 1282, 1275, 273, 673, 225, 1315, 992, 3392, 319, 316, 317, 318, 210, 3392, 220, 457, 222, 1251,
-				3392, 267, 260, 3392, 1511, 1786, 3164, 2922, 758, 1459, 3392, 389, 1438, 1703, 673, 225, 230, 992, 319,
-				316, 317, 318, 844, 1664, 967, 220, 457, 222, 224, 3392, 3392, 3392, 3392, 3392, 88, 2922, 3392, 3392,
-				198, 1170, 1308, 3392, 673, 225, 1315, 992, 3392, 87, 111, 892, 1664, 967, 96, 220, 457, 222, 224, 3392,
-				3392, 3392, 1263, 104, 95, 97, 98, 99, 100, 2271, 3392, 1006, 1664, 967, 1384, 1256, 87, 111, 1054,
-				1664, 967, 96, 3392, 3392, 320, 316, 317, 318, 3392, 1263, 102, 95, 97, 98, 99, 100, 87, 111, 657, 3392,
-				535, 96, 3392, 87, 111, 3392, 3392, 3392, 96, 1263, 362, 95, 97, 98, 99, 100, 1263, 103, 95, 97, 98, 99,
-				100, 2060, 49, 535, 967, 2092, 1168, 1664, 967, 3392, 3392, 319, 316, 317, 318, 1871, 20, 3392, 17, 21,
-				18, 898, 43, 45, 1055, 3392, 3392, 88, 2922, 1802, 2092, 87, 111, 1871, 3392, 3392, 96, 3392, 812, 3392,
-				3392, 260, 3392, 3392, 1263, 120, 95, 97, 98, 99, 100, 2000, 1703, 1216, 1664, 967, 3392, 3392, 3392,
-				3392, 1264, 1664, 967, 3392, 1946, 3392, 260, 1871, 20, 3392, 17, 21, 18, 898, 43, 48, 1931, 1703, 87,
-				111, 1312, 1664, 967, 96, 3392, 87, 111, 1360, 1664, 967, 96, 1263, 115, 95, 97, 98, 99, 100, 1263,
-				2016, 95, 97, 98, 99, 100, 87, 111, 1408, 1664, 967, 96, 3392, 87, 111, 590, 3392, 485, 96, 1263, 114,
-				95, 97, 98, 99, 100, 1263, 122, 95, 97, 98, 99, 100, 87, 111, 3392, 3392, 3392, 96, 3392, 3392, 306,
-				3392, 369, 558, 3392, 1263, 121, 95, 97, 98, 99, 100, 319, 316, 317, 318, 3392, 3392, 1871, 20, 1113,
-				17, 21, 18, 898, 43, 45, 1813, 3392, 2922, 371, 316, 317, 318, 305, 370, 3392, 3392, 656, 992, 3392,
-				3392, 3392, 3392, 310, 3392, 1466, 3392, 319, 316, 317, 318, 136, 214, 3392, 3392, 371, 316, 317, 318,
-				3392, 275, 3392, 3392, 3392, 2173, 3392, 3392, 270, 1282, 1275, 273, 1531, 3392, 146, 135, 137, 161,
-				136, 214, 1991, 3392, 371, 316, 317, 318, 2001, 302, 304, 3392, 371, 316, 317, 318, 3392, 407, 371, 316,
-				317, 318, 149, 135, 137, 161, 136, 214, 3392, 419, 3392, 967, 1079, 2848, 136, 214, 3392, 3392, 3392,
-				3392, 136, 214, 320, 316, 317, 318, 3392, 3392, 152, 135, 137, 161, 3392, 3392, 88, 126, 155, 135, 137,
-				161, 1303, 3392, 366, 135, 137, 161, 1871, 20, 3392, 17, 21, 18, 898, 43, 45, 1055, 3392, 3392, 3392,
-				3392, 1074, 1833, 1871, 20, 724, 17, 21, 18, 898, 43, 45, 1055, 3392, 3392, 3392, 3392, 1074, 1834,
-				1871, 20, 3392, 17, 21, 18, 898, 43, 45, 1055, 3392, 3392, 3392, 3392, 1074, 1846, 1871, 20, 3392, 17,
-				21, 18, 898, 43, 45, 1055, 49, 1432, 967, 2143, 1074, 1866, 1871, 20, 3392, 17, 21, 18, 898, 43, 45,
-				1055, 758, 3392, 3392, 278, 1074, 1870, 3392, 3392, 3392, 88, 319, 316, 317, 318, 665, 1891, 485, 1871,
-				20, 917, 17, 21, 18, 898, 43, 45, 1818, 2922, 3392, 319, 316, 317, 318, 3392, 656, 225, 234, 992, 3392,
-				1459, 306, 389, 3392, 558, 275, 1240, 2726, 3392, 1102, 1240, 535, 268, 1282, 1275, 273, 319, 316, 317,
-				318, 319, 316, 317, 318, 3392, 88, 1459, 3392, 389, 198, 1170, 1308, 1756, 2922, 3392, 305, 370, 2922,
-				198, 3392, 49, 3392, 967, 812, 3392, 310, 3392, 812, 3392, 1533, 1459, 88, 389, 3392, 3392, 198, 1170,
-				1308, 2271, 320, 316, 317, 318, 3392, 1464, 88, 1459, 1223, 389, 2307, 3392, 1893, 3392, 2336, 3392, 88,
-				952, 3392, 3392, 198, 1170, 1308, 3392, 3392, 2271, 3392, 3392, 3392, 303, 304, 1490, 88, 1459, 3392,
-				389, 198, 1170, 1308, 3392, 1240, 3392, 3392, 920, 3392, 967, 3392, 193, 913, 2271, 319, 316, 317, 318,
-				3392, 1516, 1484, 1999, 88, 1316, 3392, 389, 198, 1170, 1308, 2271, 3392, 2922, 88, 3392, 3392, 1542,
-				3392, 3392, 116, 1871, 20, 812, 17, 21, 18, 898, 43, 47, 88, 3392, 3392, 3392, 1061, 3392, 116, 2271,
-				1459, 920, 389, 967, 3392, 1567, 3392, 3392, 1240, 1871, 20, 2618, 17, 21, 18, 898, 43, 46, 319, 316,
-				317, 318, 1510, 3392, 3392, 88, 88, 1078, 370, 198, 1170, 1308, 116, 3392, 3392, 2922, 1240, 3392, 1406,
-				3392, 423, 3392, 3392, 3392, 2040, 812, 319, 316, 317, 318, 319, 316, 317, 318, 320, 316, 317, 318,
-				2271, 3392, 3392, 3392, 3392, 2922, 1961, 524, 920, 2428, 967, 3392, 3392, 1946, 2011, 812, 3392, 319,
-				316, 317, 318, 1895, 20, 3392, 17, 21, 18, 898, 33, 3392, 3392, 3392, 2074, 88, 2428, 49, 2080, 967,
-				3392, 116, 3392, 2364, 319, 316, 317, 318, 319, 316, 317, 318, 1943, 20, 3392, 17, 21, 18, 898, 1787,
-				2069, 3182, 88, 3392, 3392, 2922, 2110, 3392, 2004, 3392, 319, 316, 317, 318, 3392, 1483, 319, 316, 317,
-				318, 785, 2027, 3392, 3392, 2126, 3392, 3392, 3168, 2085, 3392, 3392, 3392, 3392, 3186, 319, 316, 317,
-				318, 320, 316, 317, 318, 2100, 3392, 3392, 861, 2138, 3392, 3392, 3392, 2143, 3190, 320, 316, 317, 318,
-				320, 316, 317, 318, 320, 316, 317, 318, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392,
-				3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392,
-				3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 1689, 3392, 0, 1, 456, 0, 1, 500, 0, 1, 583, 0, 1, 623,
-				0, 500, 130, 0, 583, 130, 0, 623, 130, 0, 500, 131, 0, 583, 131, 0, 623, 131, 0, 500, 132, 0, 583, 132,
-				0, 623, 132, 0, 623, 186, 0, 583, 186, 0, 500, 186, 0, 186, 190, 0, 623, 185, 0, 583, 185, 0, 500, 185,
-				0, 185, 190, 0, 500, 133, 0, 583, 133, 0, 623, 133, 0, 500, 134, 0, 583, 134, 0, 623, 134, 0, 11, 227,
-				0, 500, 369, 0, 583, 369, 0, 623, 369, 0, 224, 236, 0, 3400, 1, 0, 623, 381, 0, 583, 381, 0, 500, 381,
-				0, 593, 32, 0, 2304, 32, 0, 623, 254, 0, 583, 254, 0, 500, 254, 0, 1, 3630, 0, 224, 237, 0, 180, 20, 0,
-				8, 10, 0, 1984, 119, 0, 1, 3619, 0, 367, 356, 0, 368, 357, 0, 113, 2556, 0 };
-	}
-
-	public final static char baseAction[] = BaseAction.baseAction;
-
-	@Override
-	public final int baseAction(int index) {
-		return baseAction[index];
-	}
-
-	public final static char lhs[] = baseAction;
-
-	@Override
-	public final int lhs(int index) {
-		return lhs[index];
-	}
-
-	public interface TermCheck {
-		public final static byte termCheck[] = { 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
-				19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 0, 0, 37, 38, 39, 40, 41, 42, 43, 44,
-				45, 46, 47, 0, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 25, 62, 63, 64, 65, 0, 1, 2, 3, 4, 5, 6,
-				7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
-				34, 66, 67, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 0, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
-				60, 13, 62, 63, 64, 65, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
-				22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 0, 0, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 0,
-				49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 13, 62, 63, 64, 65, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
-				11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 66, 67,
-				37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 0, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 13, 62,
-				63, 64, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
-				26, 27, 28, 29, 30, 31, 32, 33, 34, 0, 0, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 0, 49, 50, 51, 52,
-				53, 54, 55, 56, 57, 58, 59, 60, 0, 62, 63, 64, 0, 1, 2, 0, 4, 5, 6, 7, 8, 9, 0, 11, 12, 13, 14, 15, 16,
-				17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 27, 28, 29, 30, 31, 32, 33, 0, 0, 66, 67, 3, 4, 0, 1, 7, 8, 4,
-				35, 6, 7, 8, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 26, 62, 63, 64, 0, 1, 0, 3, 0, 1, 6, 3, 6,
-				0, 35, 11, 12, 82, 14, 15, 16, 48, 48, 0, 1, 2, 0, 4, 0, 0, 7, 8, 3, 0, 6, 2, 0, 4, 5, 35, 7, 8, 68, 35,
-				36, 0, 1, 2, 3, 84, 5, 6, 48, 0, 9, 26, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 65, 66, 67,
-				68, 28, 70, 71, 72, 73, 74, 75, 76, 0, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
-				94, 95, 96, 97, 0, 1, 68, 3, 80, 81, 6, 0, 0, 98, 2, 11, 12, 5, 14, 15, 16, 10, 10, 68, 77, 0, 88, 89,
-				90, 91, 92, 93, 94, 95, 96, 97, 0, 0, 2, 35, 4, 5, 0, 7, 8, 0, 1, 2, 3, 0, 5, 6, 48, 4, 9, 0, 11, 12,
-				13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 65, 66, 67, 68, 28, 70, 71, 72, 73, 74, 75, 76, 0, 78, 79,
-				80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0,
-				0, 1, 2, 3, 4, 37, 6, 7, 8, 77, 10, 0, 1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 24, 25, 26, 27,
-				28, 29, 30, 31, 32, 33, 0, 35, 36, 3, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 0, 62, 63, 64, 4,
-				0, 0, 7, 8, 4, 26, 0, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 24, 25, 0, 27, 28, 29, 30, 31, 32, 33, 0, 1,
-				2, 98, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 0, 1,
-				49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 69, 62, 63, 64, 0, 1, 2, 3, 0, 5, 6, 3, 61, 9, 10, 11,
-				12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 26, 2, 0, 1, 2, 99, 4, 98, 34, 7, 8, 37, 38, 39,
-				40, 41, 42, 43, 44, 45, 46, 47, 0, 24, 2, 3, 4, 5, 0, 7, 8, 9, 4, 0, 1, 2, 3, 4, 10, 6, 7, 8, 0, 65, 0,
-				1, 24, 25, 0, 27, 28, 29, 30, 31, 32, 33, 34, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 35, 36, 3, 49,
-				50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 35, 62, 63, 64, 65, 0, 1, 2, 3, 0, 5, 6, 0, 1, 9, 10, 11,
-				12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 26, 73, 74, 75, 76, 0, 78, 79, 34, 11, 12, 37, 38,
-				39, 40, 41, 42, 43, 44, 45, 46, 47, 0, 1, 2, 3, 48, 5, 6, 0, 77, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
-				19, 20, 21, 22, 23, 0, 0, 26, 2, 0, 4, 5, 3, 7, 8, 34, 0, 1, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
-				0, 0, 2, 3, 4, 5, 26, 7, 8, 9, 0, 0, 1, 2, 3, 4, 36, 6, 7, 8, 0, 0, 35, 2, 24, 25, 5, 27, 28, 29, 30,
-				31, 32, 33, 34, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 69, 35, 36, 0, 49, 50, 51, 52, 53, 54, 55, 56,
-				57, 58, 59, 60, 0, 62, 63, 64, 65, 0, 1, 2, 3, 0, 5, 6, 0, 1, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
-				20, 21, 22, 23, 0, 0, 26, 73, 74, 75, 76, 0, 78, 79, 34, 11, 12, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
-				47, 0, 1, 2, 3, 0, 5, 6, 0, 1, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 26, 2,
-				0, 4, 5, 3, 7, 8, 34, 0, 1, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 0, 0, 2, 3, 4, 5, 0, 7, 8, 9, 0,
-				0, 2, 3, 0, 4, 36, 61, 7, 8, 0, 86, 87, 13, 24, 25, 0, 27, 28, 29, 30, 31, 32, 33, 34, 24, 25, 61, 27,
-				28, 29, 30, 31, 32, 33, 69, 36, 0, 1, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 0, 62, 63, 64, 65,
-				0, 1, 2, 3, 0, 5, 6, 3, 48, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 26, 73, 74,
-				75, 76, 83, 78, 79, 34, 11, 12, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 0, 1, 2, 3, 0, 5, 6, 3, 61,
-				9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 69, 26, 0, 4, 2, 26, 7, 8, 77, 34, 0, 1,
-				37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 0, 1, 2, 3, 48, 5, 6, 0, 1, 9, 10, 11, 12, 13, 14, 15, 16,
-				17, 18, 19, 20, 21, 22, 23, 0, 0, 26, 2, 4, 0, 5, 7, 8, 0, 34, 10, 0, 37, 38, 39, 40, 41, 42, 43, 44,
-				45, 46, 47, 0, 1, 2, 3, 0, 5, 6, 3, 4, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0,
-				26, 0, 4, 2, 26, 7, 8, 6, 34, 10, 48, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 0, 1, 2, 3, 0, 5, 6,
-				3, 0, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 26, 2, 4, 0, 26, 7, 8, 0, 34, 2,
-				0, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 0, 1, 2, 3, 48, 5, 6, 0, 1, 9, 10, 11, 12, 13, 14, 15,
-				16, 17, 18, 19, 20, 21, 22, 23, 0, 1, 26, 3, 0, 1, 2, 3, 0, 1, 34, 3, 48, 37, 38, 39, 40, 41, 42, 43,
-				44, 45, 46, 47, 0, 1, 2, 0, 4, 5, 69, 7, 8, 9, 0, 35, 36, 10, 4, 35, 36, 7, 8, 0, 36, 0, 0, 2, 24, 25,
-				5, 27, 28, 29, 30, 31, 32, 33, 24, 25, 14, 27, 28, 29, 30, 31, 32, 33, 0, 0, 2, 3, 0, 49, 50, 51, 52,
-				53, 54, 55, 56, 57, 58, 59, 60, 0, 62, 63, 64, 0, 0, 2, 0, 4, 5, 0, 7, 8, 9, 0, 10, 0, 10, 4, 36, 4, 7,
-				8, 7, 8, 0, 0, 1, 24, 25, 0, 27, 28, 29, 30, 31, 32, 33, 24, 25, 10, 27, 28, 29, 30, 31, 32, 33, 61, 24,
-				25, 0, 27, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 14, 62, 63, 64, 0, 1, 2, 3, 0, 5, 6, 66, 67,
-				9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 1, 2, 3, 0, 5, 6, 3, 0, 9, 0, 11, 12, 13,
-				14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 1, 2, 0, 4, 0, 6, 7, 8, 0, 1, 2, 0, 1, 5, 6, 36, 65, 9, 10,
-				11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 35, 0, 1, 2, 0, 4, 61, 0, 7, 8, 0, 1, 2, 0,
-				10, 5, 6, 10, 77, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 1, 2, 0, 68, 5, 6, 0, 1,
-				9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 1, 2, 48, 61, 5, 6, 66, 67, 9, 10, 11, 12,
-				13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 1, 2, 0, 0, 5, 6, 0, 0, 9, 10, 11, 12, 13, 14, 15, 16,
-				17, 18, 19, 20, 21, 22, 23, 0, 1, 2, 0, 0, 5, 6, 0, 0, 9, 6, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
-				22, 23, 0, 1, 2, 0, 0, 5, 6, 24, 25, 9, 27, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 1, 2,
-				68, 0, 5, 6, 0, 0, 9, 6, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 1, 2, 71, 72, 5, 6, 24,
-				25, 9, 27, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 1, 2, 0, 0, 5, 6, 0, 0, 9, 6, 11, 12,
-				13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 1, 2, 71, 72, 5, 6, 24, 25, 9, 27, 11, 12, 13, 14, 15,
-				16, 17, 18, 19, 20, 21, 22, 23, 0, 1, 2, 0, 0, 5, 6, 0, 0, 9, 0, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
-				21, 22, 23, 0, 1, 2, 71, 72, 5, 6, 24, 25, 9, 27, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0,
-				1, 2, 0, 0, 5, 6, 3, 0, 9, 0, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 1, 0, 4, 0, 0,
-				7, 8, 4, 0, 6, 7, 8, 4, 83, 36, 7, 8, 0, 1, 2, 3, 0, 24, 25, 3, 27, 28, 29, 30, 31, 32, 33, 24, 25, 35,
-				27, 28, 29, 30, 31, 32, 33, 0, 0, 1, 3, 4, 0, 0, 7, 8, 4, 35, 36, 7, 8, 0, 0, 15, 16, 3, 0, 0, 1, 2, 48,
-				4, 0, 26, 7, 8, 4, 69, 6, 7, 8, 0, 0, 35, 2, 4, 0, 5, 7, 8, 4, 65, 0, 7, 8, 48, 4, 0, 36, 7, 8, 4, 0, 0,
-				7, 8, 3, 0, 0, 0, 48, 3, 0, 0, 0, 68, 4, 35, 70, 7, 8, 0, 0, 0, 0, 0, 4, 3, 61, 7, 8, 24, 25, 85, 27,
-				10, 0, 0, 0, 36, 3, 69, 4, 0, 36, 7, 8, 0, 82, 35, 0, 48, 70, 10, 4, 0, 48, 7, 8, 4, 36, 0, 7, 8, 0, 0,
-				0, 2, 66, 67, 5, 10, 0, 0, 10, 66, 67, 0, 0, 0, 0, 0, 61, 10, 70, 0, 0, 10, 0, 0, 0, 0, 0, 80, 81, 0, 0,
-				61, 0, 0, 0, 0, 65, 0, 0, 0, 0, 84, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 0,
-				0, 0, 0, 61, 0, 0, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static byte termCheck[] = TermCheck.termCheck;
-
-	@Override
-	public final int termCheck(int index) {
-		return termCheck[index];
-	}
-
-	public interface TermAction {
-		public final static char termAction[] = { 0, 3392, 1, 5946, 1736, 3242, 5940, 1, 1, 1, 1, 926, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 3401, 1, 1, 1, 1, 1, 1, 1, 3493, 55, 345, 1458, 980, 942, 1211, 1663, 464,
-				1360, 1039, 1653, 2723, 1613, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3736, 1, 1, 1, 3399, 8, 3374, 3374,
-				3374, 3374, 3374, 3374, 3374, 3374, 3374, 3374, 3374, 3374, 3374, 3374, 3374, 3374, 3374, 3374, 3374,
-				3374, 3374, 3374, 3374, 3374, 3374, 3374, 3374, 3374, 3374, 3374, 3374, 3374, 3374, 3374, 801, 2491,
-				3374, 3374, 3374, 3374, 3374, 3374, 3374, 3374, 3374, 3374, 3374, 350, 3374, 3374, 3374, 3374, 3374,
-				3374, 3374, 3374, 3374, 3374, 3374, 3374, 905, 3374, 3374, 3374, 3374, 3392, 1, 5946, 1736, 3242, 5940,
-				1, 1, 1, 1, 926, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3401, 1, 1, 1, 1, 1, 1, 1, 3493, 359, 287,
-				1458, 980, 942, 1211, 1663, 464, 1360, 1039, 1653, 2723, 1613, 3392, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1041, 1, 1, 1, 3399, 3392, 1, 5946, 3402, 3242, 5940, 1, 1, 1, 1, 926, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 3401, 1, 1, 1, 1, 1, 1, 1, 3493, 801, 2491, 1458, 980, 942, 1211, 1663, 464, 1360, 1039,
-				1653, 2723, 1613, 3392, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 905, 1, 1, 1, 3392, 1, 5946, 3402, 3242,
-				5940, 1, 1, 1, 1, 926, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3401, 1, 1, 1, 1, 1, 1, 1, 3493,
-				358, 3392, 1458, 980, 942, 1211, 1663, 464, 1360, 1039, 1653, 2723, 1613, 3392, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 67, 1, 1, 1, 3392, 2939, 3403, 3392, 623, 3404, 1107, 500, 583, 3132, 221, 877, 839, 3408,
-				1754, 3103, 2226, 1938, 3405, 3406, 3407, 740, 522, 1848, 3607, 3609, 71, 3608, 3556, 3557, 3555, 3610,
-				3558, 3554, 348, 236, 801, 2491, 224, 3335, 269, 2819, 3335, 3335, 623, 851, 254, 500, 583, 3561, 3566,
-				3565, 3563, 3564, 3562, 3567, 3568, 3560, 3569, 3570, 3571, 224, 2853, 3089, 3064, 1, 3404, 3392, 3404,
-				1, 2819, 3404, 266, 2257, 3392, 851, 3404, 3404, 1116, 3404, 3404, 3404, 391, 224, 1, 1860, 3619, 63,
-				3251, 3392, 1, 3245, 3248, 3402, 186, 3118, 3290, 43, 3281, 3290, 3404, 3287, 3284, 224, 851, 266, 1,
-				2939, 3403, 3396, 2239, 3404, 664, 3404, 158, 1091, 3401, 877, 839, 3408, 1754, 3103, 2226, 1938, 3405,
-				3406, 3407, 740, 522, 1848, 3404, 3404, 3404, 3404, 916, 3404, 3404, 3404, 3404, 3404, 3404, 3404, 3392,
-				3404, 3404, 3404, 3404, 3404, 3404, 3404, 3404, 3404, 3404, 3404, 3404, 3404, 3404, 3404, 3404, 3404,
-				3404, 3404, 3404, 1, 3403, 1420, 3403, 752, 596, 3403, 3392, 3392, 3241, 3403, 3403, 3403, 3404, 3403,
-				3403, 3403, 418, 1075, 714, 3395, 3392, 1394, 1368, 1342, 1316, 1290, 1238, 1264, 1212, 1186, 1157, 185,
-				3392, 3302, 3403, 3293, 3302, 3392, 3299, 3296, 3392, 2939, 3403, 3396, 1, 3404, 702, 3403, 3242, 1091,
-				3392, 877, 839, 3408, 1754, 3103, 2226, 1938, 3405, 3406, 3407, 740, 522, 1848, 3403, 3403, 3403, 3403,
-				1498, 3403, 3403, 3403, 3403, 3403, 3403, 3403, 119, 3403, 3403, 3403, 3403, 3403, 3403, 3403, 3403,
-				3403, 3403, 3403, 3403, 3403, 3403, 3403, 3403, 3403, 3403, 3403, 3403, 3392, 1, 1, 3402, 3242, 1, 1, 1,
-				1, 1, 3392, 357, 368, 368, 3386, 368, 3377, 3386, 368, 368, 3395, 5905, 3392, 927, 1, 1, 3401, 1, 1, 1,
-				1, 1, 1, 1, 3699, 368, 368, 3386, 368, 368, 368, 368, 368, 368, 368, 3392, 368, 3386, 3402, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 130, 1, 1, 1, 3260, 183, 1, 3254, 3257, 623, 3401, 113, 500, 583, 3392, 1, 1,
-				3402, 3242, 1, 1, 1, 1, 1, 3607, 3609, 3392, 3608, 3556, 3557, 3555, 3610, 3558, 3554, 1, 1860, 3619,
-				301, 1, 1, 3401, 1, 1, 1, 1, 1, 1, 1, 3699, 3561, 3566, 3565, 3563, 3564, 3562, 3567, 3568, 3560, 3569,
-				3570, 3571, 3392, 570, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3651, 1, 1, 1, 3392, 1, 5946, 3402, 1, 5940,
-				1, 3338, 2378, 1, 926, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3392, 327, 3401, 3720, 254, 1860, 3619,
-				3389, 623, 300, 3493, 500, 583, 1458, 980, 942, 1211, 1663, 464, 1360, 1039, 1653, 2723, 1613, 3392,
-				3721, 1, 192, 1, 1, 1, 1, 1, 1, 3242, 20, 3371, 180, 3371, 180, 926, 3371, 180, 180, 60, 3399, 3392,
-				793, 1, 1, 272, 1, 1, 1, 1, 1, 1, 1, 3589, 180, 180, 3371, 180, 180, 180, 180, 180, 180, 180, 3392,
-				3371, 3371, 3396, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 851, 1, 1, 1, 192, 3392, 1, 5946, 3402, 257, 5940,
-				1, 3392, 800, 1, 926, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 52, 3392, 3401, 2824, 2808, 2792, 2776,
-				3392, 2760, 1764, 3493, 2851, 2634, 1458, 980, 942, 1211, 1663, 464, 1360, 1039, 1653, 2723, 1613, 3392,
-				1, 5946, 3402, 1139, 5940, 1, 3392, 3395, 1, 926, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 207, 3401,
-				5941, 1, 623, 5941, 117, 500, 583, 3493, 223, 606, 1458, 980, 942, 1211, 1663, 464, 1360, 1039, 1653,
-				2723, 1613, 3392, 3392, 1, 191, 1, 1, 117, 1, 1, 1, 3392, 356, 367, 367, 3383, 367, 117, 3383, 367, 367,
-				62, 3392, 851, 3403, 1, 1, 3404, 1, 1, 1, 1, 1, 1, 1, 3589, 367, 367, 3383, 367, 367, 367, 367, 367,
-				367, 367, 3650, 367, 3383, 3392, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3392, 1, 1, 1, 191, 3392, 1, 5946,
-				3402, 3392, 5940, 1, 11, 3323, 1, 926, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 54, 3392, 3401, 2824,
-				2808, 2792, 2776, 73, 2760, 1764, 3493, 2851, 2634, 1458, 980, 942, 1211, 1663, 464, 1360, 1039, 1653,
-				2723, 1613, 3392, 1, 5946, 3402, 3392, 5940, 1, 3392, 460, 1, 926, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 3392, 378, 3401, 5945, 3392, 623, 5945, 3398, 500, 583, 3493, 351, 1011, 1458, 980, 942, 1211, 1663,
-				464, 1360, 1039, 1653, 2723, 1613, 3392, 3392, 1, 192, 1, 1, 3392, 1, 1, 1, 3392, 131, 1719, 3398, 69,
-				3269, 3397, 2405, 3263, 3266, 61, 433, 513, 1694, 1, 1, 89, 1, 1, 1, 1, 1, 1, 1, 3589, 3607, 3609, 2432,
-				3608, 3556, 3557, 3555, 3610, 3558, 3554, 1524, 3397, 338, 1412, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 192, 3392, 1, 5946, 3402, 3392, 5940, 1, 3396, 1446, 1, 926, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 53, 3392, 3401, 2824, 2808, 2792, 2776, 1800, 2760, 1764, 3493, 2851, 2634, 1458, 980, 942, 1211,
-				1663, 464, 1360, 1039, 1653, 2723, 1613, 3392, 1, 5946, 3402, 3392, 5940, 1, 3402, 2, 1, 926, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 254, 1726, 3401, 3392, 623, 1824, 3401, 500, 583, 3395, 3493, 3392, 2991,
-				1458, 980, 942, 1211, 1663, 464, 1360, 1039, 1653, 2723, 1613, 3392, 1, 5946, 3402, 2053, 5940, 1, 3392,
-				2478, 1, 926, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 160, 3392, 3401, 3403, 623, 3392, 3404, 500, 583,
-				3392, 3493, 1182, 30, 1458, 980, 942, 1211, 1663, 464, 1360, 1039, 1653, 2723, 1613, 3392, 1, 5946,
-				3402, 1, 5940, 1, 117, 3242, 1, 926, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 379, 230, 3401, 3392, 623,
-				1618, 117, 500, 583, 1728, 3493, 233, 3421, 1458, 980, 942, 1211, 1663, 464, 1360, 1039, 1653, 2723,
-				1613, 3392, 1, 5946, 3402, 3392, 5940, 1, 3402, 3392, 1, 926, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				382, 3392, 3401, 3631, 623, 3392, 3401, 500, 583, 1, 3493, 3365, 208, 1458, 980, 942, 1211, 1663, 464,
-				1360, 1039, 1653, 2723, 1613, 3392, 1, 5946, 3402, 2189, 5940, 1, 3392, 2818, 1, 926, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 2819, 3401, 3398, 1, 2129, 3380, 3398, 3392, 435, 3493, 3398, 5933, 1458, 980,
-				942, 1211, 1663, 464, 1360, 1039, 1653, 2723, 1613, 1, 1860, 651, 1, 3251, 3404, 3651, 3245, 3248, 1019,
-				132, 851, 3397, 926, 3278, 851, 3397, 3272, 3275, 3392, 3397, 209, 65, 3403, 3607, 3609, 3404, 3608,
-				3556, 3557, 3555, 3610, 3558, 3554, 3607, 3609, 2103, 3608, 3556, 3557, 3555, 3610, 3558, 3554, 3392,
-				3392, 969, 3398, 3392, 3561, 3566, 3565, 3563, 3564, 3562, 3567, 3568, 3560, 3569, 3570, 3571, 3392,
-				2853, 3089, 3064, 3392, 3392, 3403, 3392, 623, 3404, 59, 500, 583, 1019, 133, 1379, 381, 1431, 3311,
-				3397, 3341, 3305, 3308, 3347, 3344, 3392, 3392, 2913, 3607, 3609, 230, 3608, 3556, 3557, 3555, 3610,
-				3558, 3554, 3607, 3609, 234, 3608, 3556, 3557, 3555, 3610, 3558, 3554, 2425, 3607, 3609, 66, 3608, 3561,
-				3566, 3565, 3563, 3564, 3562, 3567, 3568, 3560, 3569, 3570, 3571, 2103, 2853, 3089, 3064, 1, 2939, 4272,
-				29, 3392, 4174, 1107, 801, 2491, 1091, 5905, 877, 839, 3408, 1754, 3103, 2226, 1938, 3405, 3406, 3407,
-				740, 522, 1848, 3392, 2939, 3403, 3396, 3392, 3404, 1107, 3398, 3392, 1091, 3392, 877, 839, 3408, 1754,
-				3103, 2226, 1938, 3405, 3406, 3407, 740, 522, 1848, 269, 2129, 3619, 3392, 623, 212, 254, 500, 583,
-				3392, 2939, 3403, 325, 887, 3404, 1107, 3397, 29, 1091, 5905, 877, 839, 3408, 1754, 3103, 2226, 1938,
-				3405, 3406, 3407, 740, 522, 1848, 3392, 58, 851, 1, 1860, 3619, 3392, 3251, 423, 368, 3245, 3248, 3392,
-				2939, 3403, 30, 1457, 3404, 1107, 5905, 3395, 1091, 5905, 877, 839, 3408, 1754, 3103, 2226, 1938, 3405,
-				3406, 3407, 740, 522, 1848, 1, 2939, 4272, 3392, 1549, 4174, 1107, 3392, 3117, 1091, 5905, 877, 839,
-				3408, 1754, 3103, 2226, 1938, 3405, 3406, 3407, 740, 522, 1848, 383, 2939, 3403, 676, 1626, 3404, 1107,
-				801, 2491, 1091, 5905, 877, 839, 3408, 1754, 3103, 2226, 1938, 3405, 3406, 3407, 740, 522, 1848, 3392,
-				2939, 3403, 3392, 3392, 3404, 1107, 3392, 3392, 1091, 5905, 877, 839, 3408, 1754, 3103, 2226, 1938,
-				3405, 3406, 3407, 740, 522, 1848, 3392, 2365, 3403, 3392, 49, 3404, 1107, 250, 3392, 1091, 3033, 877,
-				839, 3408, 1754, 3103, 2226, 1938, 3405, 3406, 3407, 740, 522, 1848, 3392, 2873, 3403, 3392, 3392, 3404,
-				1107, 1, 1, 1091, 1, 877, 839, 3408, 1754, 3103, 2226, 1938, 3405, 3406, 3407, 740, 522, 1848, 3392,
-				2899, 3403, 813, 51, 3404, 1107, 249, 3392, 1091, 3033, 877, 839, 3408, 1754, 3103, 2226, 1938, 3405,
-				3406, 3407, 740, 522, 1848, 3392, 2923, 3403, 3007, 2543, 3404, 1107, 3607, 3609, 1091, 3608, 877, 839,
-				3408, 1754, 3103, 2226, 1938, 3405, 3406, 3407, 740, 522, 1848, 3392, 2939, 3403, 3392, 50, 3404, 1107,
-				251, 3392, 1091, 3033, 877, 839, 3408, 1754, 3103, 2226, 1938, 3405, 3406, 3407, 740, 522, 1848, 3392,
-				2965, 3403, 3007, 2543, 3404, 1107, 1, 1, 1091, 1, 877, 839, 3408, 1754, 3103, 2226, 1938, 3405, 3406,
-				3407, 740, 522, 1848, 1, 2939, 3403, 3392, 70, 3404, 1107, 252, 3392, 1091, 3392, 877, 839, 3408, 1754,
-				3103, 2226, 1938, 3405, 3406, 3407, 740, 522, 1848, 3392, 3024, 3403, 3007, 2543, 3404, 1107, 3607,
-				3609, 1091, 3608, 877, 839, 3408, 1754, 3103, 2226, 1938, 3405, 3406, 3407, 740, 522, 1848, 333, 2939,
-				3403, 3392, 1, 3404, 1107, 3398, 3392, 1091, 3392, 877, 839, 3408, 1754, 3103, 2226, 1938, 3405, 3406,
-				3407, 740, 522, 1848, 134, 271, 1058, 3392, 3320, 1, 3392, 3314, 3317, 3251, 369, 254, 3245, 3248, 3332,
-				1800, 3397, 3326, 3329, 1, 2129, 3619, 263, 3392, 3607, 3609, 3400, 3608, 3556, 3557, 3555, 3610, 3558,
-				3554, 3607, 3609, 851, 3608, 3556, 3557, 3555, 3610, 3558, 3554, 237, 32, 3350, 224, 3368, 373, 3392,
-				3368, 3368, 623, 851, 263, 500, 583, 3392, 3392, 3418, 3419, 3398, 68, 1, 1860, 3619, 263, 3251, 1, 224,
-				3245, 3248, 3251, 3651, 254, 3245, 3248, 372, 3392, 3353, 3403, 623, 184, 3404, 500, 583, 623, 3399,
-				254, 500, 583, 224, 3356, 374, 3397, 3362, 3359, 623, 57, 3392, 500, 583, 3398, 253, 3392, 56, 838,
-				3398, 380, 64, 293, 224, 623, 1651, 674, 500, 583, 3392, 201, 72, 1, 357, 623, 91, 1626, 500, 583, 3607,
-				3609, 458, 3608, 5905, 3392, 286, 375, 3397, 1378, 3651, 623, 355, 3397, 500, 583, 202, 1116, 1701, 376,
-				1975, 1354, 5905, 623, 377, 1029, 500, 583, 623, 91, 42, 500, 583, 3392, 208, 3392, 415, 801, 2491, 415,
-				5905, 1, 190, 5905, 801, 2491, 382, 1, 3392, 3392, 3392, 1574, 207, 1637, 3392, 3392, 378, 3392, 3392,
-				3392, 3392, 3392, 752, 596, 3392, 3392, 1600, 3392, 3392, 3392, 3392, 1378, 3392, 3392, 3392, 3392,
-				2239, 1676, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392,
-				3392, 3392, 3392, 3777, 3392, 3392, 3392, 3392, 3392, 3404, 3392, 3392, 3392, 3392, 3392, 3403 };
-	}
-
-	public final static char termAction[] = TermAction.termAction;
-
-	@Override
-	public final int termAction(int index) {
-		return termAction[index];
-	}
-
-	public interface Asb {
-		public final static char asb[] = { 0, 677, 1, 416, 382, 552, 677, 417, 384, 675, 47, 417, 417, 417, 59, 670, 59,
-				670, 670, 59, 670, 59, 386, 384, 373, 417, 59, 554, 28, 419, 675, 554, 469, 187, 384, 125, 124, 190,
-				160, 386, 252, 523, 248, 327, 45, 156, 670, 582, 579, 582, 156, 582, 670, 384, 389, 238, 249, 386, 717,
-				28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 630, 331, 132, 391, 131, 554, 384, 187, 187, 284, 717, 140,
-				384, 524, 7, 327, 424, 249, 672, 473, 675, 507, 389, 238, 384, 719, 630, 630, 630, 630, 630, 249, 249,
-				249, 243, 539, 523, 582, 582, 310, 28, 419, 470, 711, 45, 645, 554, 382, 187, 397, 306, 747, 429, 288,
-				440, 445, 443, 453, 447, 456, 455, 458, 457, 459, 719, 504, 675, 160, 252, 523, 26, 470, 470, 582, 417,
-				417, 13, 417, 417, 470, 79, 28, 79, 382, 120, 392, 326, 675, 672, 473, 507, 507, 238, 238, 249, 241,
-				120, 249, 249, 249, 249, 249, 101, 386, 714, 119, 118, 513, 335, 28, 524, 249, 28, 306, 583, 249, 384,
-				747, 306, 287, 284, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
-				28, 28, 28, 28, 28, 28, 28, 28, 28, 81, 28, 120, 504, 138, 520, 470, 470, 537, 28, 522, 28, 28, 13, 79,
-				585, 13, 384, 7, 249, 309, 249, 249, 473, 504, 71, 473, 507, 509, 588, 509, 238, 747, 714, 386, 719,
-				195, 195, 195, 140, 675, 243, 249, 597, 717, 28, 339, 630, 523, 249, 28, 28, 306, 288, 443, 443, 440,
-				440, 447, 447, 445, 445, 445, 445, 445, 445, 455, 453, 457, 456, 79, 79, 458, 583, 138, 26, 470, 249,
-				417, 249, 249, 13, 28, 13, 386, 120, 473, 73, 509, 504, 28, 582, 747, 238, 597, 241, 249, 719, 249, 306,
-				306, 28, 28, 509, 279, 470, 26, 13, 28, 13, 13, 384, 309, 504, 469, 28, 465, 73, 466, 504, 238, 249,
-				199, 504, 136, 193, 261, 582, 28, 79, 3, 310, 470, 249, 522, 73, 28, 466, 466, 331, 140, 593, 582, 28,
-				249, 310, 470, 13, 466, 28, 306, 13, 249, 306, 13 };
-	}
-
-	public final static char asb[] = Asb.asb;
-
-	@Override
-	public final int asb(int index) {
-		return asb[index];
-	}
-
-	public interface Asr {
-		public final static byte asr[] = { 0, 98, 0, 68, 35, 70, 0, 3, 48, 36, 2, 24, 0, 39, 41, 10, 45, 47, 42, 37, 43,
-				44, 40, 38, 46, 34, 26, 3, 1, 18, 19, 20, 2, 5, 15, 16, 14, 6, 11, 12, 21, 22, 17, 23, 9, 13, 0, 57, 49,
-				54, 52, 53, 51, 50, 55, 56, 58, 59, 60, 35, 48, 36, 33, 30, 28, 29, 32, 24, 27, 25, 31, 26, 3, 6, 2, 1,
-				4, 8, 7, 61, 0, 17, 18, 19, 20, 13, 2, 5, 1, 15, 16, 14, 6, 11, 12, 21, 22, 9, 23, 61, 0, 29, 24, 30,
-				31, 32, 27, 28, 33, 25, 2, 6, 61, 26, 7, 8, 4, 10, 1, 35, 36, 3, 48, 0, 1, 68, 26, 7, 8, 4, 35, 48, 36,
-				3, 61, 0, 3, 65, 35, 70, 1, 18, 19, 20, 13, 15, 16, 14, 6, 11, 12, 21, 22, 17, 23, 9, 2, 5, 10, 0, 50,
-				62, 30, 51, 31, 52, 53, 32, 27, 54, 55, 28, 63, 33, 64, 56, 57, 25, 58, 59, 60, 2, 5, 9, 24, 49, 29, 7,
-				8, 4, 3, 48, 26, 68, 0, 61, 69, 77, 65, 32, 28, 33, 31, 30, 29, 14, 11, 12, 71, 72, 66, 67, 73, 74, 75,
-				76, 80, 81, 82, 83, 84, 86, 87, 68, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 78, 79, 10, 26, 24, 27, 25,
-				48, 2, 6, 7, 8, 4, 35, 1, 36, 3, 0, 10, 3, 68, 48, 26, 7, 8, 4, 0, 68, 1, 18, 19, 20, 13, 15, 16, 14, 6,
-				11, 12, 21, 22, 17, 23, 9, 10, 2, 5, 35, 70, 0, 24, 27, 25, 28, 15, 16, 14, 6, 11, 12, 21, 22, 17, 23,
-				9, 1, 2, 5, 18, 19, 20, 13, 77, 3, 0, 48, 17, 18, 19, 20, 5, 1, 15, 16, 14, 6, 11, 12, 21, 22, 9, 23,
-				13, 36, 3, 2, 0, 61, 69, 77, 65, 70, 85, 15, 16, 35, 14, 11, 12, 71, 72, 66, 67, 73, 74, 75, 76, 80, 81,
-				82, 83, 84, 86, 87, 68, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 48, 78, 79, 36, 29, 24, 30, 31, 32, 27,
-				28, 33, 25, 26, 3, 2, 1, 7, 8, 4, 6, 0, 61, 3, 48, 36, 1, 0, 24, 27, 15, 16, 14, 6, 11, 12, 21, 22, 17,
-				23, 9, 2, 5, 18, 19, 20, 13, 25, 1, 0, 3, 61, 36, 13, 0, 2, 3, 36, 1, 0, 68, 88, 89, 90, 91, 92, 94, 93,
-				95, 96, 97, 6, 71, 72, 11, 12, 67, 66, 73, 74, 75, 76, 78, 79, 80, 81, 14, 82, 83, 84, 69, 77, 36, 65,
-				86, 87, 61, 7, 8, 4, 48, 26, 3, 0, 29, 49, 24, 50, 62, 30, 51, 31, 52, 53, 32, 27, 54, 55, 28, 63, 33,
-				64, 56, 57, 25, 58, 59, 60, 2, 5, 9, 7, 8, 4, 34, 3, 65, 0, 2, 5, 3, 65, 48, 0, 3, 61, 77, 36, 26, 48,
-				0, 36, 98, 99, 65, 39, 41, 10, 45, 47, 42, 37, 43, 44, 40, 38, 46, 34, 3, 26, 18, 19, 20, 13, 15, 16,
-				14, 11, 12, 21, 22, 17, 23, 6, 1, 9, 62, 63, 64, 57, 49, 54, 52, 53, 51, 50, 55, 56, 58, 59, 60, 33, 30,
-				28, 29, 32, 24, 27, 25, 31, 7, 8, 4, 5, 2, 0, 61, 69, 0, 3, 48, 65, 68, 0, 77, 3, 69, 0, 6, 29, 49, 24,
-				50, 62, 30, 51, 31, 52, 53, 32, 27, 54, 55, 28, 63, 33, 64, 56, 57, 25, 58, 59, 60, 2, 5, 9, 69, 4, 8,
-				7, 0, 17, 18, 19, 20, 13, 1, 15, 16, 14, 6, 11, 12, 21, 22, 23, 29, 49, 24, 50, 62, 30, 51, 31, 52, 53,
-				32, 27, 54, 55, 28, 63, 33, 64, 56, 57, 25, 58, 59, 60, 9, 2, 5, 7, 8, 4, 10, 0, 98, 29, 49, 24, 50, 62,
-				30, 51, 31, 52, 53, 32, 27, 54, 55, 28, 63, 33, 64, 56, 57, 25, 58, 59, 60, 5, 1, 9, 7, 8, 26, 3, 34, 4,
-				2, 6, 0, 6, 1, 35, 36, 3, 29, 49, 50, 62, 30, 51, 31, 52, 53, 32, 54, 55, 28, 63, 33, 64, 56, 57, 58,
-				59, 60, 2, 5, 9, 7, 8, 4, 69, 24, 27, 25, 0 };
-	}
-
-	public final static byte asr[] = Asr.asr;
-
-	@Override
-	public final int asr(int index) {
-		return asr[index];
-	}
-
-	public interface Nasb {
-		public final static char nasb[] = { 0, 176, 43, 21, 181, 32, 189, 43, 82, 65, 95, 43, 43, 43, 96, 87, 96, 87,
-				87, 96, 87, 96, 157, 144, 43, 43, 96, 89, 58, 74, 65, 153, 182, 87, 160, 23, 23, 43, 43, 157, 43, 12,
-				187, 67, 43, 8, 163, 8, 163, 8, 8, 8, 163, 167, 43, 163, 187, 157, 186, 58, 58, 58, 58, 58, 58, 58, 58,
-				58, 58, 58, 171, 43, 187, 43, 43, 98, 143, 163, 87, 70, 186, 60, 165, 104, 19, 79, 43, 187, 87, 153, 43,
-				153, 43, 87, 85, 117, 171, 171, 171, 171, 171, 187, 187, 187, 151, 1, 12, 25, 25, 52, 173, 74, 182, 43,
-				74, 126, 35, 181, 163, 57, 72, 63, 43, 71, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 131, 153, 43, 43, 43,
-				113, 180, 182, 182, 8, 43, 43, 27, 43, 43, 182, 43, 76, 43, 181, 187, 43, 187, 43, 163, 139, 153, 8, 87,
-				153, 187, 149, 43, 187, 187, 187, 187, 187, 16, 157, 184, 23, 23, 43, 43, 58, 104, 187, 58, 72, 43, 187,
-				143, 63, 72, 71, 48, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
-				58, 58, 58, 58, 58, 58, 58, 58, 58, 44, 58, 187, 13, 153, 43, 182, 182, 193, 173, 43, 173, 173, 27, 43,
-				43, 27, 83, 19, 187, 58, 187, 187, 153, 13, 181, 135, 8, 102, 43, 43, 153, 63, 148, 157, 117, 16, 16,
-				16, 15, 16, 122, 187, 155, 186, 58, 43, 171, 113, 187, 58, 58, 72, 71, 43, 43, 43, 43, 43, 43, 43, 43,
-				43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 56, 195, 182, 187, 43, 187, 187, 27, 58, 27, 157, 187,
-				139, 143, 102, 13, 58, 8, 63, 48, 155, 120, 187, 117, 187, 72, 72, 58, 58, 102, 110, 182, 195, 27, 173,
-				27, 27, 84, 58, 13, 182, 58, 43, 160, 87, 13, 48, 187, 16, 13, 55, 43, 60, 8, 58, 43, 10, 195, 182, 187,
-				43, 143, 58, 87, 163, 50, 60, 72, 8, 58, 187, 195, 182, 27, 163, 58, 72, 27, 187, 72, 27 };
-	}
-
-	public final static char nasb[] = Nasb.nasb;
-
-	@Override
-	public final int nasb(int index) {
-		return nasb[index];
-	}
-
-	public interface Nasr {
-		public final static char nasr[] = { 0, 95, 102, 93, 92, 84, 91, 90, 1, 0, 136, 0, 2, 53, 0, 6, 51, 50, 0, 117,
-				0, 142, 0, 59, 0, 103, 0, 1, 38, 2, 39, 0, 34, 2, 100, 95, 102, 94, 93, 92, 84, 91, 90, 0, 2, 31, 122,
-				0, 32, 0, 132, 0, 2, 123, 0, 112, 51, 2, 6, 0, 6, 51, 0, 85, 0, 115, 0, 141, 18, 0, 2, 6, 49, 0, 101, 0,
-				6, 144, 0, 18, 119, 0, 48, 2, 36, 34, 46, 27, 0, 84, 78, 79, 80, 81, 87, 72, 54, 0, 29, 2, 138, 0, 88,
-				0, 29, 2, 1, 38, 105, 0, 1, 145, 0, 38, 1, 77, 53, 2, 29, 0, 34, 46, 68, 67, 27, 0, 2, 29, 60, 30, 0,
-				128, 2, 29, 0, 2, 58, 97, 0, 107, 2, 58, 0, 27, 46, 34, 2, 0, 18, 34, 46, 67, 68, 2, 0, 2, 29, 27, 63,
-				0, 46, 34, 2, 10, 0, 46, 48, 27, 34, 36, 0, 58, 30, 2, 31, 0, 137, 2, 29, 0, 31, 2, 26, 0, 67, 68, 2,
-				18, 0, 2, 29, 113, 0, 29, 60, 2, 71, 0 };
-	}
-
-	public final static char nasr[] = Nasr.nasr;
-
-	@Override
-	public final int nasr(int index) {
-		return nasr[index];
-	}
-
-	public interface TerminalIndex {
-		public final static char terminalIndex[] = { 0, 2, 87, 89, 99, 88, 9, 97, 98, 95, 3, 10, 11, 86, 8, 6, 7, 70,
-				83, 84, 85, 12, 13, 96, 50, 78, 94, 66, 71, 46, 57, 62, 65, 74, 100, 1, 92, 79, 47, 48, 51, 52, 53, 59,
-				60, 61, 67, 73, 42, 49, 54, 58, 63, 64, 68, 69, 76, 77, 80, 81, 82, 29, 56, 72, 75, 93, 16, 17, 31, 30,
-				4, 14, 15, 18, 19, 20, 21, 91, 43, 44, 22, 23, 24, 25, 26, 5, 27, 28, 32, 33, 34, 35, 36, 37, 38, 39,
-				40, 41, 101, 55, 90 };
-	}
-
-	public final static char terminalIndex[] = TerminalIndex.terminalIndex;
-
-	@Override
-	public final int terminalIndex(int index) {
-		return terminalIndex[index];
-	}
-
-	public interface NonterminalIndex {
-		public final static char nonterminalIndex[] = { 0, 106, 0, 0, 0, 0, 108, 112, 113, 114, 190, 0, 0, 0, 115, 116,
-				117, 118, 103, 119, 120, 121, 122, 123, 0, 0, 105, 191, 124, 133, 129, 107, 141, 0, 164, 0, 167, 0, 125,
-				128, 0, 0, 0, 0, 0, 161, 163, 0, 165, 102, 111, 0, 151, 104, 140, 0, 0, 0, 155, 166, 132, 0, 127, 162,
-				110, 175, 178, 179, 180, 0, 0, 0, 143, 150, 0, 168, 174, 131, 144, 145, 146, 147, 148, 149, 152, 173,
-				177, 198, 0, 134, 135, 136, 137, 138, 139, 142, 0, 154, 158, 160, 169, 195, 197, 109, 126, 130, 0, 153,
-				157, 0, 159, 172, 182, 187, 0, 189, 0, 192, 0, 194, 0, 0, 0, 0, 0, 0, 156, 0, 170, 171, 176, 181, 0,
-				183, 184, 0, 185, 186, 188, 0, 0, 193, 0, 0, 196, 199, 0, 0 };
-	}
-
-	public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
-
-	@Override
-	public final int nonterminalIndex(int index) {
-		return nonterminalIndex[index];
-	}
-
-	public interface ScopePrefix {
-		public final static char scopePrefix[] = { 202, 258, 334, 220, 314, 125, 151, 157, 286, 99, 363, 385, 342, 1,
-				108, 141, 167, 187, 67, 266, 324, 35, 35, 59, 63, 75, 81, 113, 163, 237, 302, 75, 421, 428, 432, 359,
-				381, 394, 408, 394, 348, 15, 27, 56, 8, 8, 117, 120, 172, 120, 197, 120, 247, 252, 255, 311, 436, 50,
-				87, 93, 133, 241, 87, 405, 415, 415, 8, 133, 276, 210, 372, 210, 276, 20, 20, 41, 233, 41, 41, 41, 41,
-				41, 309, 403, 20, 20, 45, 146, 175, 146, 175, 175 };
-	}
-
-	public final static char scopePrefix[] = ScopePrefix.scopePrefix;
-
-	@Override
-	public final int scopePrefix(int index) {
-		return scopePrefix[index];
-	}
-
-	public interface ScopeSuffix {
-		public final static char scopeSuffix[] = { 79, 79, 321, 79, 321, 131, 6, 6, 79, 105, 369, 391, 329, 6, 39, 131,
-				6, 39, 72, 271, 329, 39, 39, 39, 39, 79, 85, 39, 6, 235, 235, 79, 39, 39, 6, 321, 321, 321, 412, 398,
-				352, 18, 18, 39, 6, 6, 39, 123, 6, 182, 39, 200, 250, 250, 250, 235, 39, 53, 90, 96, 148, 244, 306, 53,
-				418, 425, 11, 136, 271, 227, 375, 213, 279, 25, 33, 43, 235, 292, 294, 296, 298, 300, 235, 235, 22, 30,
-				47, 148, 184, 136, 177, 192 };
-	}
-
-	public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
-
-	@Override
-	public final int scopeSuffix(int index) {
-		return scopeSuffix[index];
-	}
-
-	public interface ScopeLhs {
-		public final static char scopeLhs[] = { 80, 78, 43, 80, 43, 63, 59, 59, 78, 50, 43, 42, 43, 146, 69, 63, 59, 36,
-				11, 78, 43, 87, 7, 7, 116, 115, 70, 69, 59, 97, 60, 30, 7, 6, 6, 43, 42, 42, 24, 42, 43, 108, 83, 4,
-				136, 135, 67, 86, 59, 100, 34, 52, 79, 79, 79, 44, 4, 40, 70, 112, 63, 97, 60, 40, 8, 6, 146, 63, 78,
-				80, 43, 80, 78, 108, 83, 102, 97, 94, 93, 92, 91, 90, 60, 41, 108, 83, 144, 63, 36, 63, 48, 36 };
-	}
-
-	public final static char scopeLhs[] = ScopeLhs.scopeLhs;
-
-	@Override
-	public final int scopeLhs(int index) {
-		return scopeLhs[index];
-	}
-
-	public interface ScopeLa {
-		public final static byte scopeLa[] = { 65, 65, 36, 65, 36, 24, 77, 77, 65, 65, 36, 99, 26, 77, 36, 24, 77, 36,
-				36, 10, 26, 36, 36, 36, 36, 65, 10, 36, 77, 26, 26, 65, 36, 36, 77, 36, 36, 36, 61, 36, 26, 7, 7, 36,
-				77, 77, 36, 1, 77, 2, 36, 2, 2, 2, 2, 26, 36, 61, 2, 68, 6, 2, 2, 61, 36, 36, 69, 6, 10, 10, 37, 2, 2,
-				2, 2, 9, 26, 2, 62, 63, 63, 57, 26, 26, 2, 2, 69, 6, 1, 6, 1, 1 };
-	}
-
-	public final static byte scopeLa[] = ScopeLa.scopeLa;
-
-	@Override
-	public final int scopeLa(int index) {
-		return scopeLa[index];
-	}
-
-	public interface ScopeStateSet {
-		public final static char scopeStateSet[] = { 141, 141, 38, 141, 38, 208, 54, 54, 141, 17, 38, 38, 38, 3, 58,
-				208, 54, 146, 164, 141, 38, 141, 65, 65, 14, 138, 224, 58, 54, 8, 221, 30, 65, 65, 65, 38, 38, 38, 101,
-				38, 38, 5, 159, 65, 1, 3, 58, 60, 54, 217, 146, 152, 141, 141, 141, 38, 65, 38, 224, 135, 208, 8, 221,
-				38, 72, 65, 3, 208, 141, 141, 38, 141, 141, 5, 159, 142, 8, 142, 142, 142, 142, 142, 221, 38, 5, 159,
-				12, 208, 146, 208, 148, 146 };
-	}
-
-	public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet;
-
-	@Override
-	public final int scopeStateSet(int index) {
-		return scopeStateSet[index];
-	}
-
-	public interface ScopeRhs {
-		public final static char scopeRhs[] = { 0, 162, 69, 162, 35, 0, 102, 0, 162, 35, 0, 30, 127, 102, 0, 198, 127,
-				0, 191, 0, 127, 0, 158, 191, 0, 158, 0, 152, 127, 0, 151, 191, 0, 151, 0, 164, 1, 9, 0, 103, 0, 195, 0,
-				198, 0, 162, 0, 30, 127, 0, 244, 39, 0, 29, 128, 0, 130, 1, 0, 164, 1, 23, 0, 240, 1, 217, 0, 239, 1, 1,
-				7, 0, 103, 103, 0, 205, 102, 10, 0, 104, 0, 200, 102, 129, 0, 189, 0, 102, 129, 0, 169, 189, 0, 233,
-				102, 0, 31, 150, 0, 188, 231, 102, 10, 151, 0, 104, 0, 0, 175, 102, 1, 167, 0, 175, 102, 1, 0, 186, 1,
-				0, 163, 102, 0, 178, 0, 102, 137, 6, 137, 163, 0, 173, 0, 137, 163, 0, 9, 0, 0, 173, 0, 102, 137, 6,
-				137, 0, 137, 0, 9, 0, 0, 128, 28, 211, 102, 35, 0, 128, 211, 102, 28, 35, 0, 128, 28, 35, 0, 128, 211,
-				102, 35, 0, 128, 35, 0, 134, 0, 2, 0, 170, 103, 0, 167, 0, 2, 103, 0, 175, 102, 1, 134, 0, 2, 0, 168,
-				103, 0, 152, 1, 0, 161, 0, 188, 209, 102, 10, 101, 227, 62, 0, 227, 62, 0, 106, 3, 0, 0, 0, 104, 0, 188,
-				209, 102, 10, 227, 62, 0, 3, 0, 0, 0, 104, 0, 158, 0, 105, 0, 226, 102, 158, 0, 102, 158, 0, 156, 105,
-				0, 196, 62, 0, 106, 0, 196, 64, 0, 196, 63, 0, 206, 102, 10, 225, 101, 224, 184, 0, 225, 101, 224, 184,
-				0, 3, 0, 0, 104, 0, 224, 184, 0, 106, 0, 3, 0, 0, 104, 0, 206, 102, 10, 224, 184, 0, 147, 0, 146, 0,
-				145, 0, 144, 0, 143, 0, 189, 102, 129, 0, 134, 105, 0, 129, 0, 131, 46, 0, 171, 126, 171, 160, 1, 43, 0,
-				103, 128, 0, 171, 160, 1, 43, 0, 105, 0, 103, 128, 0, 171, 126, 171, 126, 171, 1, 43, 0, 171, 126, 171,
-				1, 43, 0, 171, 1, 43, 0, 105, 0, 105, 0, 103, 128, 0, 131, 1, 37, 0, 131, 1, 37, 139, 42, 0, 103, 105,
-				0, 139, 42, 0, 79, 2, 107, 103, 105, 0, 131, 1, 47, 0, 139, 118, 131, 1, 45, 0, 55, 128, 0, 131, 1, 45,
-				0, 103, 128, 55, 128, 0, 138, 0, 162, 39, 0, 131, 87, 123, 0, 29, 124, 0, 164, 1, 0, 103, 113, 0, 164,
-				1, 17, 0, 103, 111, 0, 223, 1, 106, 0, 131, 35, 106, 0, 131, 1, 0 };
-	}
-
-	public final static char scopeRhs[] = ScopeRhs.scopeRhs;
-
-	@Override
-	public final int scopeRhs(int index) {
-		return scopeRhs[index];
-	}
-
-	public interface ScopeState {
-		public final static char scopeState[] = { 0, 414, 0, 1784, 0, 2189, 2024, 0, 2882, 1999, 2017, 0, 942, 0, 838,
-				435, 0, 813, 775, 676, 1302, 638, 1277, 424, 1250, 1018, 712, 636, 714, 0, 3024, 1960, 2965, 2939, 2923,
-				2899, 2873, 2365, 2583, 2563, 2556, 2536, 2529, 2482, 2432, 2425, 1925, 2405, 2378, 1843, 464, 1797,
-				1751, 0, 1282, 1275, 673, 457, 1946, 2618, 2129, 2819, 2092, 2271, 0, 3132, 3103, 2226, 1938, 1848,
-				1091, 1019, 702, 424, 433, 1800, 2239, 2103, 1116, 2824, 2808, 2792, 2776, 2760, 1764, 752, 596, 2851,
-				2634, 2491, 801, 3033, 3007, 2543, 664, 1754, 1107, 877, 839, 740, 522, 1726, 1701, 813, 1676, 1651,
-				775, 1626, 1029, 1600, 1574, 1549, 1524, 1498, 1472, 1446, 887, 1420, 1394, 1368, 1342, 1316, 1290,
-				1264, 1238, 1212, 1186, 1157, 993, 967, 942, 916, 389, 714, 851, 676, 638, 0, 774, 754, 0, 1072, 535,
-				389, 485, 0, 2834, 485, 2364, 1946, 2336, 2307, 2189, 2264, 2024, 2129, 2092, 2279, 1860, 1888, 1996,
-				2053, 1054, 0, 3190, 3186, 3164, 2189, 3146, 2264, 2364, 1946, 2024, 2618, 1888, 1996, 3118, 3182, 3168,
-				535, 389, 2336, 2257, 3114, 2307, 3140, 3068, 2053, 2922, 2834, 2726, 2428, 2173, 2279, 621, 1072, 2702,
-				2696, 2853, 2688, 3089, 3064, 2662, 2654, 2636, 499, 1054, 485, 2477, 3060, 2143, 3032, 2972, 2883,
-				2879, 1865, 0, 1888, 1054, 485, 0, 2991, 1960, 1138, 1925, 1843, 1797, 1751, 2848, 2590, 0 };
-	}
-
-	public final static char scopeState[] = ScopeState.scopeState;
-
-	@Override
-	public final int scopeState(int index) {
-		return scopeState[index];
-	}
-
-	public interface InSymb {
-		public final static char inSymb[] = { 0, 0, 221, 4, 129, 102, 237, 242, 102, 200, 190, 7, 8, 4, 191, 184, 192,
-				64, 63, 193, 62, 194, 102, 1, 2, 134, 202, 195, 9, 1, 200, 229, 189, 152, 127, 146, 134, 183, 148, 102,
-				136, 10, 1, 1, 1, 224, 127, 196, 127, 196, 227, 196, 127, 163, 137, 127, 152, 102, 1, 9, 23, 17, 22, 21,
-				12, 11, 6, 14, 16, 15, 1, 106, 243, 13, 201, 102, 48, 127, 152, 35, 1, 68, 163, 102, 1, 241, 2, 13, 101,
-				10, 101, 10, 137, 6, 163, 102, 1, 1, 1, 1, 1, 130, 164, 131, 158, 102, 10, 85, 70, 1, 35, 61, 118, 1,
-				48, 238, 102, 129, 127, 28, 128, 102, 107, 6, 109, 115, 114, 117, 116, 120, 119, 122, 121, 123, 102, 10,
-				151, 148, 136, 205, 46, 38, 40, 44, 43, 37, 42, 47, 45, 138, 41, 39, 101, 129, 239, 217, 1, 225, 127,
-				102, 10, 102, 6, 137, 175, 129, 176, 164, 164, 164, 164, 164, 118, 102, 1, 168, 167, 204, 101, 9, 102,
-				223, 102, 131, 6, 2, 102, 102, 128, 211, 185, 97, 96, 95, 93, 94, 92, 91, 90, 89, 88, 68, 72, 71, 6, 66,
-				67, 12, 11, 81, 80, 79, 78, 76, 75, 74, 73, 82, 14, 84, 83, 87, 86, 228, 102, 10, 3, 131, 101, 1, 1,
-				139, 1, 1, 61, 244, 162, 61, 102, 48, 118, 1, 13, 2, 10, 206, 158, 207, 102, 209, 101, 210, 137, 102, 1,
-				102, 48, 118, 118, 118, 118, 118, 163, 186, 102, 1, 48, 107, 1, 205, 2, 211, 28, 128, 6, 114, 114, 109,
-				109, 116, 116, 115, 115, 115, 115, 115, 115, 119, 117, 121, 120, 222, 131, 122, 48, 102, 160, 171, 131,
-				37, 131, 131, 61, 69, 61, 102, 240, 102, 102, 209, 188, 68, 48, 102, 185, 102, 163, 175, 102, 164, 128,
-				128, 61, 61, 231, 102, 171, 126, 118, 1, 118, 118, 163, 48, 206, 226, 61, 152, 127, 198, 188, 185, 175,
-				118, 188, 48, 233, 245, 70, 35, 101, 234, 126, 171, 131, 139, 48, 61, 198, 127, 153, 68, 162, 70, 35,
-				171, 126, 118, 99, 127, 69, 162, 118, 171, 162, 118 };
-	}
-
-	public final static char inSymb[] = InSymb.inSymb;
-
-	@Override
-	public final int inSymb(int index) {
-		return inSymb[index];
-	}
-
-	public interface Name {
-		public final static String name[] = { "", "[", "(", "{", ".", "->", "++", "--", "&", "*", "+", "-", "~", "!",
-				"/", "%", ">>", "<<", "<", ">", "<=", ">=", "==", "!=", "^", "|", "&&", "||", "?", ":", "...", "=",
-				"*=", "/=", "%=", "+=", "-=", ">>=", "<<=", "&=", "^=", "|=", ",", ">?", "<?", "$empty", "auto",
-				"break", "case", "char", "const", "continue", "default", "do", "double", "else", "enum", "extern",
-				"float", "for", "goto", "if", "inline", "int", "long", "register", "restrict", "return", "short",
-				"signed", "sizeof", "static", "struct", "switch", "typedef", "union", "unsigned", "void", "volatile",
-				"while", "_Bool", "_Complex", "_Imaginary", "integer", "floating", "charconst", "stringlit",
-				"identifier", "Completion", "EndOfCompletion", "Invalid", "RightBracket", "RightParen", "RightBrace",
-				"SemiColon", "typeof", "__alignof__", "__attribute__", "__declspec", "asm", "ERROR_TOKEN", "EOF_TOKEN",
-				"]", ")", "}", ";", "identifier_token", "expression", "postfix_expression", "member_name", "type_id",
-				"initializer_list", "unary_expression", "cast_expression", "multiplicative_expression",
-				"additive_expression", "shift_expression", "relational_expression", "equality_expression",
-				"and_expression", "exclusive_or_expression", "inclusive_or_expression", "logical_and_expression",
-				"logical_or_expression", "assignment_expression", "expression_in_statement", "expression_list_actual",
-				"constant_expression", "statement", "compound_statement", "block_item_list", "block_item",
-				"declaration", "declaration_specifiers", "init_declarator_list", "simple_declaration_specifiers",
-				"struct_or_union_declaration_sp" + "ecifiers", "elaborated_declaration_specifi" + "ers",
-				"enum_declaration_specifiers", "typdef_name_declaration_specif" + "iers",
-				"no_type_declaration_specifier", "type_qualifier", "no_type_declaration_specifiers",
-				"simple_type_specifier", "struct_or_union_specifier", "elaborated_specifier", "enum_specifier",
-				"type_name_specifier", "init_declarator", "complete_declarator", "initializer", "declarator",
-				"struct_or_union", "struct_declaration_list", "struct_declaration", "specifier_qualifier_list",
-				"struct_declarator_list", "complete_struct_declarator", "struct_declarator", "enumerator_list",
-				"enumerator", "direct_declarator", "pointer_seq", "array_direct_declarator", "basic_direct_declarator",
-				"knr_direct_declarator", "array_modifier", "function_direct_declarator", "parameter_type_list",
-				"function_declarator", "identifier_list", "knr_function_declarator", "array_modifier_type_qualifiers",
-				"type_qualifier_list", "parameter_list", "parameter_declaration", "complete_parameter_declarator",
-				"abstract_declarator", "direct_abstract_declarator", "basic_direct_abstract_declarat" + "or",
-				"array_direct_abstract_declarat" + "or", "initializer_seq", "designated_initializer", "designation",
-				"designator_list", "designator", "external_declaration_list", "external_declaration",
-				"declaration_list", "function_body", "attribute_or_decl_specifier",
-				"attribute_or_decl_specifier_se" + "q", "word", "extended_decl_modifier_seq", "extended_decl_modifier",
-				"extended_asm_param", "case_range_expression", "typeof_declaration_specifiers", "typeof_type_specifier",
-				"field_name_designator" };
-	}
-
-	public final static String name[] = Name.name;
-
-	@Override
-	public final String name(int index) {
-		return name[index];
-	}
-
-	public final static int ERROR_SYMBOL = 34, SCOPE_UBOUND = 91, SCOPE_SIZE = 92, MAX_NAME_LENGTH = 38;
-
-	@Override
-	public final int getErrorSymbol() {
-		return ERROR_SYMBOL;
-	}
-
-	@Override
-	public final int getScopeUbound() {
-		return SCOPE_UBOUND;
-	}
-
-	@Override
-	public final int getScopeSize() {
-		return SCOPE_SIZE;
-	}
-
-	@Override
-	public final int getMaxNameLength() {
-		return MAX_NAME_LENGTH;
-	}
-
-	public final static int NUM_STATES = 375, NT_OFFSET = 100, LA_STATE_OFFSET = 3780, MAX_LA = 2147483647,
-			NUM_RULES = 388, NUM_NONTERMINALS = 147, NUM_SYMBOLS = 247, SEGMENT_SIZE = 8192, START_STATE = 2590,
-			IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 98, EOLT_SYMBOL = 98, ACCEPT_ACTION = 3241, ERROR_ACTION = 3392;
-
-	public final static boolean BACKTRACK = true;
-
-	@Override
-	public final int getNumStates() {
-		return NUM_STATES;
-	}
-
-	@Override
-	public final int getNtOffset() {
-		return NT_OFFSET;
-	}
-
-	@Override
-	public final int getLaStateOffset() {
-		return LA_STATE_OFFSET;
-	}
-
-	@Override
-	public final int getMaxLa() {
-		return MAX_LA;
-	}
-
-	@Override
-	public final int getNumRules() {
-		return NUM_RULES;
-	}
-
-	@Override
-	public final int getNumNonterminals() {
-		return NUM_NONTERMINALS;
-	}
-
-	@Override
-	public final int getNumSymbols() {
-		return NUM_SYMBOLS;
-	}
-
-	@Override
-	public final int getSegmentSize() {
-		return SEGMENT_SIZE;
-	}
-
-	@Override
-	public final int getStartState() {
-		return START_STATE;
-	}
-
-	@Override
-	public final int getStartSymbol() {
-		return lhs[0];
-	}
-
-	public final int getIdentifierSymbol() {
-		return IDENTIFIER_SYMBOL;
-	}
-
-	@Override
-	public final int getEoftSymbol() {
-		return EOFT_SYMBOL;
-	}
-
-	@Override
-	public final int getEoltSymbol() {
-		return EOLT_SYMBOL;
-	}
-
-	@Override
-	public final int getAcceptAction() {
-		return ACCEPT_ACTION;
-	}
-
-	@Override
-	public final int getErrorAction() {
-		return ERROR_ACTION;
-	}
-
-	@Override
-	public final boolean isValidForParser() {
-		return isValidForParser;
-	}
-
-	@Override
-	public final boolean getBacktrack() {
-		return BACKTRACK;
-	}
-
-	@Override
-	public final int originalState(int state) {
-		return -baseCheck[state];
-	}
-
-	@Override
-	public final int asi(int state) {
-		return asb[originalState(state)];
-	}
-
-	@Override
-	public final int nasi(int state) {
-		return nasb[originalState(state)];
-	}
-
-	@Override
-	public final int inSymbol(int state) {
-		return inSymb[originalState(state)];
-	}
-
-	@Override
-	public final int ntAction(int state, int sym) {
-		return baseAction[state + sym];
-	}
-
-	@Override
-	public final int tAction(int state, int sym) {
-		int i = baseAction[state], k = i + sym;
-		return termAction[termCheck[k] == sym ? k : i];
-	}
-
-	@Override
-	public final int lookAhead(int la_state, int sym) {
-		int k = la_state + sym;
-		return termAction[termCheck[k] == sym ? k : la_state];
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCParsersym.java
deleted file mode 100644
index f8acf07..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCParsersym.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2010 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.lrparser.gcc;
-
-public interface GCCParsersym {
-	public final static int TK_auto = 29, TK_break = 38, TK_case = 39, TK_char = 49, TK_const = 24, TK_continue = 40,
-			TK_default = 41, TK_do = 42, TK_double = 50, TK_else = 99, TK_enum = 62, TK_extern = 30, TK_float = 51,
-			TK_for = 43, TK_goto = 44, TK_if = 45, TK_inline = 31, TK_int = 52, TK_long = 53, TK_register = 32,
-			TK_restrict = 27, TK_return = 46, TK_short = 54, TK_signed = 55, TK_sizeof = 17, TK_static = 28,
-			TK_struct = 63, TK_switch = 47, TK_typedef = 33, TK_union = 64, TK_unsigned = 56, TK_void = 57,
-			TK_volatile = 25, TK_while = 37, TK__Bool = 58, TK__Complex = 59, TK__Imaginary = 60, TK_integer = 18,
-			TK_floating = 19, TK_charconst = 20, TK_stringlit = 13, TK_identifier = 2, TK_Completion = 5,
-			TK_EndOfCompletion = 3, TK_Invalid = 100, TK_LeftBracket = 35, TK_LeftParen = 1, TK_LeftBrace = 10,
-			TK_Dot = 70, TK_Arrow = 85, TK_PlusPlus = 15, TK_MinusMinus = 16, TK_And = 14, TK_Star = 6, TK_Plus = 11,
-			TK_Minus = 12, TK_Tilde = 21, TK_Bang = 22, TK_Slash = 71, TK_Percent = 72, TK_RightShift = 66,
-			TK_LeftShift = 67, TK_LT = 73, TK_GT = 74, TK_LE = 75, TK_GE = 76, TK_EQ = 80, TK_NE = 81, TK_Caret = 82,
-			TK_Or = 83, TK_AndAnd = 84, TK_OrOr = 86, TK_Question = 87, TK_Colon = 61, TK_DotDotDot = 69,
-			TK_Assign = 68, TK_StarAssign = 88, TK_SlashAssign = 89, TK_PercentAssign = 90, TK_PlusAssign = 91,
-			TK_MinusAssign = 92, TK_RightShiftAssign = 93, TK_LeftShiftAssign = 94, TK_AndAssign = 95,
-			TK_CaretAssign = 96, TK_OrAssign = 97, TK_Comma = 48, TK_RightBracket = 77, TK_RightParen = 36,
-			TK_RightBrace = 65, TK_SemiColon = 26, TK_typeof = 9, TK___alignof__ = 23, TK___attribute__ = 7,
-			TK___declspec = 8, TK_MAX = 78, TK_MIN = 79, TK_asm = 4, TK_ERROR_TOKEN = 34, TK_EOF_TOKEN = 98;
-
-	public final static String orderedTerminalSymbols[] = { "", "LeftParen", "identifier", "EndOfCompletion", "asm",
-			"Completion", "Star", "__attribute__", "__declspec", "typeof", "LeftBrace", "Plus", "Minus", "stringlit",
-			"And", "PlusPlus", "MinusMinus", "sizeof", "integer", "floating", "charconst", "Tilde", "Bang",
-			"__alignof__", "const", "volatile", "SemiColon", "restrict", "static", "auto", "extern", "inline",
-			"register", "typedef", "ERROR_TOKEN", "LeftBracket", "RightParen", "while", "break", "case", "continue",
-			"default", "do", "for", "goto", "if", "return", "switch", "Comma", "char", "double", "float", "int", "long",
-			"short", "signed", "unsigned", "void", "_Bool", "_Complex", "_Imaginary", "Colon", "enum", "struct",
-			"union", "RightBrace", "RightShift", "LeftShift", "Assign", "DotDotDot", "Dot", "Slash", "Percent", "LT",
-			"GT", "LE", "GE", "RightBracket", "MAX", "MIN", "EQ", "NE", "Caret", "Or", "AndAnd", "Arrow", "OrOr",
-			"Question", "StarAssign", "SlashAssign", "PercentAssign", "PlusAssign", "MinusAssign", "RightShiftAssign",
-			"LeftShiftAssign", "AndAssign", "CaretAssign", "OrAssign", "EOF_TOKEN", "else", "Invalid" };
-
-	public final static boolean isValidForParser = true;
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCSizeofExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCSizeofExpressionParser.java
deleted file mode 100644
index d3a1bd6..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCSizeofExpressionParser.java
+++ /dev/null
@@ -1,1818 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2015 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.lrparser.gcc;
-
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.cdt.core.dom.ast.IASTBinaryExpression;
-import org.eclipse.cdt.core.dom.ast.IASTCastExpression;
-import org.eclipse.cdt.core.dom.ast.IASTCompletionNode;
-import org.eclipse.cdt.core.dom.ast.IASTCompositeTypeSpecifier;
-import org.eclipse.cdt.core.dom.ast.IASTElaboratedTypeSpecifier;
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-import org.eclipse.cdt.core.dom.ast.IASTLiteralExpression;
-import org.eclipse.cdt.core.dom.ast.IASTTypeIdExpression;
-import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression;
-import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter;
-import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
-import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
-import org.eclipse.cdt.core.dom.lrparser.ITokenCollector;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
-import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
-import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
-import org.eclipse.cdt.core.dom.lrparser.action.gnu.GCCBuildASTParserAction;
-import org.eclipse.cdt.core.dom.lrparser.action.gnu.GCCSecondaryParserFactory;
-import org.eclipse.cdt.core.dom.lrparser.action.gnu.GNUBuildASTParserAction;
-import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser;
-import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
-import org.eclipse.cdt.core.index.IIndex;
-import org.eclipse.cdt.core.parser.IScanner;
-import org.eclipse.cdt.internal.core.dom.parser.c.CNodeFactory;
-
-import lpg.lpgjavaruntime.BadParseException;
-import lpg.lpgjavaruntime.BadParseSymFileException;
-import lpg.lpgjavaruntime.DiagnoseParser;
-import lpg.lpgjavaruntime.ErrorToken;
-import lpg.lpgjavaruntime.IToken;
-import lpg.lpgjavaruntime.LexStream;
-import lpg.lpgjavaruntime.Monitor;
-import lpg.lpgjavaruntime.NotBacktrackParseTableException;
-import lpg.lpgjavaruntime.NullExportedSymbolsException;
-import lpg.lpgjavaruntime.NullTerminalSymbolsException;
-import lpg.lpgjavaruntime.ParseErrorCodes;
-import lpg.lpgjavaruntime.ParseTable;
-import lpg.lpgjavaruntime.PrsStream;
-import lpg.lpgjavaruntime.RuleAction;
-import lpg.lpgjavaruntime.Token;
-import lpg.lpgjavaruntime.UndefinedEofSymbolException;
-import lpg.lpgjavaruntime.UnimplementedTerminalsException;
-
-public class GCCSizeofExpressionParser extends PrsStream
-		implements RuleAction, ITokenStream, ITokenCollector, ISecondaryParser<IASTExpression> {
-	private static ParseTable prs = new GCCSizeofExpressionParserprs();
-	private FixedBacktrackingParser btParser;
-
-	public FixedBacktrackingParser getParser() {
-		return btParser;
-	}
-
-	private void setResult(Object object) {
-		btParser.setSym1(object);
-	}
-
-	public Object getRhsSym(int i) {
-		return btParser.getSym(i);
-	}
-
-	public int getRhsTokenIndex(int i) {
-		return btParser.getToken(i);
-	}
-
-	public IToken getRhsIToken(int i) {
-		return super.getIToken(getRhsTokenIndex(i));
-	}
-
-	public int getRhsFirstTokenIndex(int i) {
-		return btParser.getFirstToken(i);
-	}
-
-	public IToken getRhsFirstIToken(int i) {
-		return super.getIToken(getRhsFirstTokenIndex(i));
-	}
-
-	public int getRhsLastTokenIndex(int i) {
-		return btParser.getLastToken(i);
-	}
-
-	public IToken getRhsLastIToken(int i) {
-		return super.getIToken(getRhsLastTokenIndex(i));
-	}
-
-	public int getLeftSpan() {
-		return btParser.getFirstToken();
-	}
-
-	@Override
-	public IToken getLeftIToken() {
-		return super.getIToken(getLeftSpan());
-	}
-
-	public int getRightSpan() {
-		return btParser.getLastToken();
-	}
-
-	@Override
-	public IToken getRightIToken() {
-		return super.getIToken(getRightSpan());
-	}
-
-	public int getRhsErrorTokenIndex(int i) {
-		int index = btParser.getToken(i);
-		IToken err = super.getIToken(index);
-		return (err instanceof ErrorToken ? index : 0);
-	}
-
-	public ErrorToken getRhsErrorIToken(int i) {
-		int index = btParser.getToken(i);
-		IToken err = super.getIToken(index);
-		return (ErrorToken) (err instanceof ErrorToken ? err : null);
-	}
-
-	public GCCSizeofExpressionParser(LexStream lexStream) {
-		super(lexStream);
-
-		try {
-			super.remapTerminalSymbols(orderedTerminalSymbols(), GCCSizeofExpressionParserprs.EOFT_SYMBOL);
-		} catch (NullExportedSymbolsException e) {
-		} catch (NullTerminalSymbolsException e) {
-		} catch (UnimplementedTerminalsException e) {
-			java.util.ArrayList unimplemented_symbols = e.getSymbols();
-			System.out.println("The Lexer will not scan the following token(s):");
-			for (int i = 0; i < unimplemented_symbols.size(); i++) {
-				Integer id = (Integer) unimplemented_symbols.get(i);
-				System.out.println("    " + GCCSizeofExpressionParsersym.orderedTerminalSymbols[id.intValue()]);
-			}
-			System.out.println();
-		} catch (UndefinedEofSymbolException e) {
-			throw new Error(new UndefinedEofSymbolException("The Lexer does not implement the Eof symbol "
-					+ GCCSizeofExpressionParsersym.orderedTerminalSymbols[GCCSizeofExpressionParserprs.EOFT_SYMBOL]));
-		}
-	}
-
-	@Override
-	public String[] orderedTerminalSymbols() {
-		return GCCSizeofExpressionParsersym.orderedTerminalSymbols;
-	}
-
-	public String getTokenKindName(int kind) {
-		return GCCSizeofExpressionParsersym.orderedTerminalSymbols[kind];
-	}
-
-	public int getEOFTokenKind() {
-		return GCCSizeofExpressionParserprs.EOFT_SYMBOL;
-	}
-
-	public PrsStream getParseStream() {
-		return this;
-	}
-
-	//
-	// Report error message for given error_token.
-	//
-	public final void reportErrorTokenMessage(int error_token, String msg) {
-		int firsttok = super.getFirstErrorToken(error_token), lasttok = super.getLastErrorToken(error_token);
-		String location = super.getFileName() + ':'
-				+ (firsttok > lasttok ? (super.getEndLine(lasttok) + ":" + super.getEndColumn(lasttok))
-						: (super.getLine(error_token) + ":" + super.getColumn(error_token) + ":"
-								+ super.getEndLine(error_token) + ":" + super.getEndColumn(error_token)))
-				+ ": ";
-		super.reportError((firsttok > lasttok ? ParseErrorCodes.INSERTION_CODE : ParseErrorCodes.SUBSTITUTION_CODE),
-				location, msg);
-	}
-
-	public void parser() {
-		parser(null, 0);
-	}
-
-	public void parser(Monitor monitor) {
-		parser(monitor, 0);
-	}
-
-	public void parser(int error_repair_count) {
-		parser(null, error_repair_count);
-	}
-
-	public void parser(Monitor monitor, int error_repair_count) {
-		try {
-			btParser = new FixedBacktrackingParser(monitor, this, prs, this);
-		} catch (NotBacktrackParseTableException e) {
-			throw new Error(new NotBacktrackParseTableException(
-					"Regenerate GCCSizeofExpressionParserprs.java with -BACKTRACK option"));
-		} catch (BadParseSymFileException e) {
-			throw new Error(
-					new BadParseSymFileException("Bad Parser Symbol File -- GCCSizeofExpressionParsersym.java"));
-		}
-
-		try {
-			btParser.parse(error_repair_count);
-		} catch (BadParseException e) {
-			reset(e.error_token); // point to error token
-			DiagnoseParser diagnoseParser = new DiagnoseParser(this, prs);
-			diagnoseParser.diagnose(e.error_token);
-		}
-	}
-
-	private GCCBuildASTParserAction action;
-	private IASTCompletionNode compNode;
-
-	public GCCSizeofExpressionParser(IScanner scanner, IDOMTokenMap tokenMap,
-			IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Map<String, String> properties) {
-		initActions(properties);
-		action.initializeTranslationUnit(scanner, builtinBindingsProvider, index);
-		CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap);
-	}
-
-	private void initActions(Map<String, String> properties) {
-		ScopedStack<Object> astStack = new ScopedStack<>();
-
-		action = new GCCBuildASTParserAction(this, astStack, CNodeFactory.getDefault(),
-				GCCSecondaryParserFactory.getDefault());
-		action.setParserProperties(properties);
-
-		gnuAction = new GNUBuildASTParserAction(this, astStack, CNodeFactory.getDefault());
-		gnuAction.setParserProperties(properties);
-
-	}
-
-	@Override
-	public void addToken(IToken token) {
-		token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called?
-		super.addToken(token);
-	}
-
-	@Override
-	public IASTExpression parse() {
-		// this has to be done, or... kaboom!
-		setStreamLength(getSize());
-
-		final int errorRepairCount = -1; // -1 means full error handling
-		parser(null, errorRepairCount); // do the actual parse
-		super.resetTokenStream(); // allow tokens to be garbage collected
-
-		compNode = action.getASTCompletionNode(); // the completion node may be null
-		return (IASTExpression) action.getParseResult();
-	}
-
-	@Override
-	public IASTCompletionNode getCompletionNode() {
-		return compNode;
-	}
-
-	// uncomment this method to use with backtracking parser
-	@Override
-	public List<IToken> getRuleTokens() {
-		return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
-	}
-
-	@Override
-	public String[] getOrderedTerminalSymbols() {
-		return GCCSizeofExpressionParsersym.orderedTerminalSymbols;
-	}
-
-	@Override
-	@SuppressWarnings("nls")
-	public String getName() {
-		return "GCCSizeofExpressionParser";
-	}
-
-	private ITokenMap tokenMap = null;
-
-	@Override
-	public void setTokens(List<IToken> tokens) {
-		resetTokenStream();
-		addToken(new Token(null, 0, 0, 0)); // dummy token
-		for (IToken token : tokens) {
-			token.setKind(tokenMap.mapKind(token.getKind()));
-			addToken(token);
-		}
-		addToken(new Token(null, 0, 0, GCCSizeofExpressionParsersym.TK_EOF_TOKEN));
-	}
-
-	public GCCSizeofExpressionParser(ITokenStream stream, Map<String, String> properties) { // constructor for creating secondary parser
-		initActions(properties);
-		tokenMap = new TokenMap(GCCSizeofExpressionParsersym.orderedTerminalSymbols,
-				stream.getOrderedTerminalSymbols());
-	}
-
-	private GNUBuildASTParserAction gnuAction;
-
-	@Override
-	public void ruleAction(int ruleNumber) {
-		switch (ruleNumber) {
-
-		//
-		// Rule 1:  <openscope-ast> ::= $Empty
-		//
-		case 1: {
-			action.openASTScope();
-			break;
-		}
-
-		//
-		// Rule 2:  <empty> ::= $Empty
-		//
-		case 2: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 13:  literal ::= integer
-		//
-		case 13: {
-			action.consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant);
-			break;
-		}
-
-		//
-		// Rule 14:  literal ::= floating
-		//
-		case 14: {
-			action.consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant);
-			break;
-		}
-
-		//
-		// Rule 15:  literal ::= charconst
-		//
-		case 15: {
-			action.consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant);
-			break;
-		}
-
-		//
-		// Rule 16:  literal ::= stringlit
-		//
-		case 16: {
-			action.consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal);
-			break;
-		}
-
-		//
-		// Rule 18:  primary_expression ::= primary_expression_id
-		//
-		case 18: {
-			action.consumeExpressionID();
-			break;
-		}
-
-		//
-		// Rule 19:  primary_expression ::= ( expression )
-		//
-		case 19: {
-			action.consumeExpressionBracketed();
-			break;
-		}
-
-		//
-		// Rule 22:  postfix_expression ::= postfix_expression [ expression ]
-		//
-		case 22: {
-			action.consumeExpressionArraySubscript();
-			break;
-		}
-
-		//
-		// Rule 23:  postfix_expression ::= postfix_expression ( expression_list_opt )
-		//
-		case 23: {
-			action.consumeExpressionFunctionCall();
-			break;
-		}
-
-		//
-		// Rule 24:  postfix_expression ::= postfix_expression . member_name
-		//
-		case 24: {
-			action.consumeExpressionFieldReference(false);
-			break;
-		}
-
-		//
-		// Rule 25:  postfix_expression ::= postfix_expression -> member_name
-		//
-		case 25: {
-			action.consumeExpressionFieldReference(true);
-			break;
-		}
-
-		//
-		// Rule 26:  postfix_expression ::= postfix_expression ++
-		//
-		case 26: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr);
-			break;
-		}
-
-		//
-		// Rule 27:  postfix_expression ::= postfix_expression --
-		//
-		case 27: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr);
-			break;
-		}
-
-		//
-		// Rule 28:  postfix_expression ::= ( type_id ) initializer_list
-		//
-		case 28: {
-			action.consumeExpressionTypeIdInitializer();
-			break;
-		}
-
-		//
-		// Rule 33:  unary_expression ::= ++ unary_expression
-		//
-		case 33: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr);
-			break;
-		}
-
-		//
-		// Rule 34:  unary_expression ::= -- unary_expression
-		//
-		case 34: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr);
-			break;
-		}
-
-		//
-		// Rule 35:  unary_expression ::= & cast_expression
-		//
-		case 35: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper);
-			break;
-		}
-
-		//
-		// Rule 36:  unary_expression ::= * cast_expression
-		//
-		case 36: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_star);
-			break;
-		}
-
-		//
-		// Rule 37:  unary_expression ::= + cast_expression
-		//
-		case 37: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus);
-			break;
-		}
-
-		//
-		// Rule 38:  unary_expression ::= - cast_expression
-		//
-		case 38: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus);
-			break;
-		}
-
-		//
-		// Rule 39:  unary_expression ::= ~ cast_expression
-		//
-		case 39: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde);
-			break;
-		}
-
-		//
-		// Rule 40:  unary_expression ::= ! cast_expression
-		//
-		case 40: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_not);
-			break;
-		}
-
-		//
-		// Rule 41:  unary_expression ::= sizeof unary_expression
-		//
-		case 41: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof);
-			break;
-		}
-
-		//
-		// Rule 43:  cast_expression ::= ( type_id ) cast_expression
-		//
-		case 43: {
-			action.consumeExpressionCast(IASTCastExpression.op_cast);
-			break;
-		}
-
-		//
-		// Rule 45:  multiplicative_expression ::= multiplicative_expression * cast_expression
-		//
-		case 45: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply);
-			break;
-		}
-
-		//
-		// Rule 46:  multiplicative_expression ::= multiplicative_expression / cast_expression
-		//
-		case 46: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide);
-			break;
-		}
-
-		//
-		// Rule 47:  multiplicative_expression ::= multiplicative_expression % cast_expression
-		//
-		case 47: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo);
-			break;
-		}
-
-		//
-		// Rule 49:  additive_expression ::= additive_expression + multiplicative_expression
-		//
-		case 49: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus);
-			break;
-		}
-
-		//
-		// Rule 50:  additive_expression ::= additive_expression - multiplicative_expression
-		//
-		case 50: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus);
-			break;
-		}
-
-		//
-		// Rule 52:  shift_expression ::= shift_expression << additive_expression
-		//
-		case 52: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft);
-			break;
-		}
-
-		//
-		// Rule 53:  shift_expression ::= shift_expression >> additive_expression
-		//
-		case 53: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight);
-			break;
-		}
-
-		//
-		// Rule 55:  relational_expression ::= relational_expression < shift_expression
-		//
-		case 55: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan);
-			break;
-		}
-
-		//
-		// Rule 56:  relational_expression ::= relational_expression > shift_expression
-		//
-		case 56: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan);
-			break;
-		}
-
-		//
-		// Rule 57:  relational_expression ::= relational_expression <= shift_expression
-		//
-		case 57: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual);
-			break;
-		}
-
-		//
-		// Rule 58:  relational_expression ::= relational_expression >= shift_expression
-		//
-		case 58: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual);
-			break;
-		}
-
-		//
-		// Rule 60:  equality_expression ::= equality_expression == relational_expression
-		//
-		case 60: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals);
-			break;
-		}
-
-		//
-		// Rule 61:  equality_expression ::= equality_expression != relational_expression
-		//
-		case 61: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals);
-			break;
-		}
-
-		//
-		// Rule 63:  and_expression ::= and_expression & equality_expression
-		//
-		case 63: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd);
-			break;
-		}
-
-		//
-		// Rule 65:  exclusive_or_expression ::= exclusive_or_expression ^ and_expression
-		//
-		case 65: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor);
-			break;
-		}
-
-		//
-		// Rule 67:  inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression
-		//
-		case 67: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr);
-			break;
-		}
-
-		//
-		// Rule 69:  logical_and_expression ::= logical_and_expression && inclusive_or_expression
-		//
-		case 69: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd);
-			break;
-		}
-
-		//
-		// Rule 71:  logical_or_expression ::= logical_or_expression || logical_and_expression
-		//
-		case 71: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr);
-			break;
-		}
-
-		//
-		// Rule 73:  conditional_expression ::= logical_or_expression ? expression : assignment_expression
-		//
-		case 73: {
-			action.consumeExpressionConditional();
-			break;
-		}
-
-		//
-		// Rule 75:  assignment_expression ::= unary_expression = assignment_expression
-		//
-		case 75: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign);
-			break;
-		}
-
-		//
-		// Rule 76:  assignment_expression ::= unary_expression *= assignment_expression
-		//
-		case 76: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign);
-			break;
-		}
-
-		//
-		// Rule 77:  assignment_expression ::= unary_expression /= assignment_expression
-		//
-		case 77: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign);
-			break;
-		}
-
-		//
-		// Rule 78:  assignment_expression ::= unary_expression %= assignment_expression
-		//
-		case 78: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign);
-			break;
-		}
-
-		//
-		// Rule 79:  assignment_expression ::= unary_expression += assignment_expression
-		//
-		case 79: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign);
-			break;
-		}
-
-		//
-		// Rule 80:  assignment_expression ::= unary_expression -= assignment_expression
-		//
-		case 80: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign);
-			break;
-		}
-
-		//
-		// Rule 81:  assignment_expression ::= unary_expression <<= assignment_expression
-		//
-		case 81: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign);
-			break;
-		}
-
-		//
-		// Rule 82:  assignment_expression ::= unary_expression >>= assignment_expression
-		//
-		case 82: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign);
-			break;
-		}
-
-		//
-		// Rule 83:  assignment_expression ::= unary_expression &= assignment_expression
-		//
-		case 83: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign);
-			break;
-		}
-
-		//
-		// Rule 84:  assignment_expression ::= unary_expression ^= assignment_expression
-		//
-		case 84: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign);
-			break;
-		}
-
-		//
-		// Rule 85:  assignment_expression ::= unary_expression |= assignment_expression
-		//
-		case 85: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign);
-			break;
-		}
-
-		//
-		// Rule 88:  expression_list ::= <openscope-ast> expression_list_actual
-		//
-		case 88: {
-			action.consumeExpressionList();
-			break;
-		}
-
-		//
-		// Rule 90:  expression_list_opt ::= $Empty
-		//
-		case 90: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 100:  statement ::= ERROR_TOKEN
-		//
-		case 100: {
-			action.consumeStatementProblem();
-			break;
-		}
-
-		//
-		// Rule 101:  labeled_statement ::= identifier_token : statement
-		//
-		case 101: {
-			action.consumeStatementLabeled();
-			break;
-		}
-
-		//
-		// Rule 102:  labeled_statement ::= case constant_expression : statement
-		//
-		case 102: {
-			action.consumeStatementCase();
-			break;
-		}
-
-		//
-		// Rule 103:  labeled_statement ::= default : statement
-		//
-		case 103: {
-			action.consumeStatementDefault();
-			break;
-		}
-
-		//
-		// Rule 104:  compound_statement ::= { }
-		//
-		case 104: {
-			action.consumeStatementCompoundStatement(false);
-			break;
-		}
-
-		//
-		// Rule 105:  compound_statement ::= { <openscope-ast> block_item_list }
-		//
-		case 105: {
-			action.consumeStatementCompoundStatement(true);
-			break;
-		}
-
-		//
-		// Rule 109:  block_item ::= declaration
-		//
-		case 109: {
-			action.consumeStatementDeclarationWithDisambiguation();
-			break;
-		}
-
-		//
-		// Rule 110:  expression_statement ::= ;
-		//
-		case 110: {
-			action.consumeStatementNull();
-			break;
-		}
-
-		//
-		// Rule 111:  expression_statement ::= expression_in_statement ;
-		//
-		case 111: {
-			action.consumeStatementExpression();
-			break;
-		}
-
-		//
-		// Rule 112:  selection_statement ::= if ( expression ) statement
-		//
-		case 112: {
-			action.consumeStatementIf(false);
-			break;
-		}
-
-		//
-		// Rule 113:  selection_statement ::= if ( expression ) statement else statement
-		//
-		case 113: {
-			action.consumeStatementIf(true);
-			break;
-		}
-
-		//
-		// Rule 114:  selection_statement ::= switch ( expression ) statement
-		//
-		case 114: {
-			action.consumeStatementSwitch();
-			break;
-		}
-
-		//
-		// Rule 116:  expression_opt ::= $Empty
-		//
-		case 116: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 117:  iteration_statement ::= do statement while ( expression ) ;
-		//
-		case 117: {
-			action.consumeStatementDoLoop(true);
-			break;
-		}
-
-		//
-		// Rule 118:  iteration_statement ::= do statement
-		//
-		case 118: {
-			action.consumeStatementDoLoop(false);
-			break;
-		}
-
-		//
-		// Rule 119:  iteration_statement ::= while ( expression ) statement
-		//
-		case 119: {
-			action.consumeStatementWhileLoop();
-			break;
-		}
-
-		//
-		// Rule 120:  iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement
-		//
-		case 120: {
-			action.consumeStatementForLoop();
-			break;
-		}
-
-		//
-		// Rule 121:  iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement
-		//
-		case 121: {
-			action.consumeStatementForLoop();
-			break;
-		}
-
-		//
-		// Rule 122:  jump_statement ::= goto identifier_token ;
-		//
-		case 122: {
-			action.consumeStatementGoto();
-			break;
-		}
-
-		//
-		// Rule 123:  jump_statement ::= continue ;
-		//
-		case 123: {
-			action.consumeStatementContinue();
-			break;
-		}
-
-		//
-		// Rule 124:  jump_statement ::= break ;
-		//
-		case 124: {
-			action.consumeStatementBreak();
-			break;
-		}
-
-		//
-		// Rule 125:  jump_statement ::= return ;
-		//
-		case 125: {
-			action.consumeStatementReturn(false);
-			break;
-		}
-
-		//
-		// Rule 126:  jump_statement ::= return expression ;
-		//
-		case 126: {
-			action.consumeStatementReturn(true);
-			break;
-		}
-
-		//
-		// Rule 127:  declaration ::= declaration_specifiers ;
-		//
-		case 127: {
-			action.consumeDeclarationSimple(false);
-			break;
-		}
-
-		//
-		// Rule 128:  declaration ::= declaration_specifiers <openscope-ast> init_declarator_list ;
-		//
-		case 128: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 129:  declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
-		//
-		case 129: {
-			action.consumeDeclarationSpecifiersSimple();
-			break;
-		}
-
-		//
-		// Rule 130:  declaration_specifiers ::= <openscope-ast> struct_or_union_declaration_specifiers
-		//
-		case 130: {
-			action.consumeDeclarationSpecifiersStructUnionEnum();
-			break;
-		}
-
-		//
-		// Rule 131:  declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
-		//
-		case 131: {
-			action.consumeDeclarationSpecifiersStructUnionEnum();
-			break;
-		}
-
-		//
-		// Rule 132:  declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
-		//
-		case 132: {
-			action.consumeDeclarationSpecifiersStructUnionEnum();
-			break;
-		}
-
-		//
-		// Rule 133:  declaration_specifiers ::= <openscope-ast> typdef_name_declaration_specifiers
-		//
-		case 133: {
-			action.consumeDeclarationSpecifiersTypedefName();
-			break;
-		}
-
-		//
-		// Rule 158:  init_declarator ::= complete_declarator = initializer
-		//
-		case 158: {
-			action.consumeDeclaratorWithInitializer(true);
-			break;
-		}
-
-		//
-		// Rule 160:  storage_class_specifier ::= storage_class_specifier_token
-		//
-		case 160: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 166:  simple_type_specifier ::= simple_type_specifier_token
-		//
-		case 166: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 179:  type_name_specifier ::= identifier_token
-		//
-		case 179: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 180:  struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { <openscope-ast> struct_declaration_list_opt }
-		//
-		case 180: {
-			action.consumeTypeSpecifierComposite(false);
-			break;
-		}
-
-		//
-		// Rule 181:  struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { <openscope-ast> struct_declaration_list_opt }
-		//
-		case 181: {
-			action.consumeTypeSpecifierComposite(true);
-			break;
-		}
-
-		//
-		// Rule 186:  elaborated_specifier ::= struct elaborated_specifier_hook identifier_token
-		//
-		case 186: {
-			action.consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct);
-			break;
-		}
-
-		//
-		// Rule 187:  elaborated_specifier ::= union elaborated_specifier_hook identifier_token
-		//
-		case 187: {
-			action.consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union);
-			break;
-		}
-
-		//
-		// Rule 188:  elaborated_specifier ::= enum elaborated_specifier_hook identifier_token
-		//
-		case 188: {
-			action.consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum);
-			break;
-		}
-
-		//
-		// Rule 194:  struct_declaration ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ;
-		//
-		case 194: {
-			action.consumeStructDeclaration(true);
-			break;
-		}
-
-		//
-		// Rule 195:  struct_declaration ::= specifier_qualifier_list ;
-		//
-		case 195: {
-			action.consumeStructDeclaration(false);
-			break;
-		}
-
-		//
-		// Rule 196:  struct_declaration ::= ERROR_TOKEN
-		//
-		case 196: {
-			action.consumeDeclarationProblem();
-			break;
-		}
-
-		//
-		// Rule 202:  struct_declarator ::= : constant_expression
-		//
-		case 202: {
-			action.consumeBitField(false);
-			break;
-		}
-
-		//
-		// Rule 203:  struct_declarator ::= declarator : constant_expression
-		//
-		case 203: {
-			action.consumeBitField(true);
-			break;
-		}
-
-		//
-		// Rule 204:  enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
-		//
-		case 204: {
-			action.consumeTypeSpecifierEnumeration(false);
-			break;
-		}
-
-		//
-		// Rule 205:  enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
-		//
-		case 205: {
-			action.consumeTypeSpecifierEnumeration(true);
-			break;
-		}
-
-		//
-		// Rule 211:  enumerator ::= identifier_token
-		//
-		case 211: {
-			action.consumeEnumerator(false);
-			break;
-		}
-
-		//
-		// Rule 212:  enumerator ::= identifier_token = constant_expression
-		//
-		case 212: {
-			action.consumeEnumerator(true);
-			break;
-		}
-
-		//
-		// Rule 213:  type_qualifier ::= type_qualifier_token
-		//
-		case 213: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 217:  function_specifier ::= inline
-		//
-		case 217: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 219:  declarator ::= <openscope-ast> pointer_seq direct_declarator
-		//
-		case 219: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 224:  basic_direct_declarator ::= declarator_id_name
-		//
-		case 224: {
-			action.consumeDirectDeclaratorIdentifier();
-			break;
-		}
-
-		//
-		// Rule 225:  basic_direct_declarator ::= ( declarator )
-		//
-		case 225: {
-			action.consumeDirectDeclaratorBracketed();
-			break;
-		}
-
-		//
-		// Rule 226:  declarator_id_name ::= identifier
-		//
-		case 226: {
-			action.consumeIdentifierName();
-			break;
-		}
-
-		//
-		// Rule 227:  array_direct_declarator ::= basic_direct_declarator array_modifier
-		//
-		case 227: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 228:  array_direct_declarator ::= array_direct_declarator array_modifier
-		//
-		case 228: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 230:  function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_type_list )
-		//
-		case 230: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true, true);
-			break;
-		}
-
-		//
-		// Rule 231:  function_direct_declarator ::= basic_direct_declarator ( )
-		//
-		case 231: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true, false);
-			break;
-		}
-
-		//
-		// Rule 233:  function_declarator ::= <openscope-ast> pointer_seq function_direct_declarator
-		//
-		case 233: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 234:  knr_direct_declarator ::= basic_direct_declarator ( <openscope-ast> identifier_list )
-		//
-		case 234: {
-			action.consumeDirectDeclaratorFunctionDeclaratorKnR();
-			break;
-		}
-
-		//
-		// Rule 236:  knr_function_declarator ::= <openscope-ast> pointer_seq knr_direct_declarator
-		//
-		case 236: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 237:  identifier_list ::= identifier
-		//
-		case 237: {
-			action.consumeIdentifierKnR();
-			break;
-		}
-
-		//
-		// Rule 238:  identifier_list ::= identifier_list , identifier
-		//
-		case 238: {
-			action.consumeIdentifierKnR();
-			break;
-		}
-
-		//
-		// Rule 239:  array_modifier ::= [ ]
-		//
-		case 239: {
-			action.consumeDirectDeclaratorArrayModifier(false);
-			break;
-		}
-
-		//
-		// Rule 240:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ]
-		//
-		case 240: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false);
-			break;
-		}
-
-		//
-		// Rule 241:  array_modifier ::= [ assignment_expression ]
-		//
-		case 241: {
-			action.consumeDirectDeclaratorArrayModifier(true);
-			break;
-		}
-
-		//
-		// Rule 242:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
-		//
-		case 242: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 243:  array_modifier ::= [ static assignment_expression ]
-		//
-		case 243: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true);
-			break;
-		}
-
-		//
-		// Rule 244:  array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
-		//
-		case 244: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 245:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ]
-		//
-		case 245: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 246:  array_modifier ::= [ * ]
-		//
-		case 246: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false);
-			break;
-		}
-
-		//
-		// Rule 247:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ]
-		//
-		case 247: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false);
-			break;
-		}
-
-		//
-		// Rule 249:  pointer_seq ::= pointer_hook * pointer_hook
-		//
-		case 249: {
-			action.consumePointer();
-			break;
-		}
-
-		//
-		// Rule 250:  pointer_seq ::= pointer_seq pointer_hook * pointer_hook
-		//
-		case 250: {
-			action.consumePointer();
-			break;
-		}
-
-		//
-		// Rule 251:  pointer_seq ::= pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
-		//
-		case 251: {
-			action.consumePointerTypeQualifierList();
-			break;
-		}
-
-		//
-		// Rule 252:  pointer_seq ::= pointer_seq pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
-		//
-		case 252: {
-			action.consumePointerTypeQualifierList();
-			break;
-		}
-
-		//
-		// Rule 256:  parameter_type_list ::= parameter_list
-		//
-		case 256: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 257:  parameter_type_list ::= parameter_list , ...
-		//
-		case 257: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 258:  parameter_type_list ::= ...
-		//
-		case 258: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 261:  parameter_declaration ::= declaration_specifiers complete_parameter_declarator
-		//
-		case 261: {
-			action.consumeParameterDeclaration();
-			break;
-		}
-
-		//
-		// Rule 262:  parameter_declaration ::= declaration_specifiers
-		//
-		case 262: {
-			action.consumeParameterDeclarationWithoutDeclarator();
-			break;
-		}
-
-		//
-		// Rule 265:  type_id ::= specifier_qualifier_list
-		//
-		case 265: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 266:  type_id ::= specifier_qualifier_list abstract_declarator
-		//
-		case 266: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 268:  abstract_declarator ::= <openscope-ast> pointer_seq
-		//
-		case 268: {
-			action.consumeDeclaratorWithPointer(false);
-			break;
-		}
-
-		//
-		// Rule 269:  abstract_declarator ::= <openscope-ast> pointer_seq direct_abstract_declarator
-		//
-		case 269: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 273:  basic_direct_abstract_declarator ::= ( abstract_declarator )
-		//
-		case 273: {
-			action.consumeDirectDeclaratorBracketed();
-			break;
-		}
-
-		//
-		// Rule 274:  array_direct_abstract_declarator ::= array_modifier
-		//
-		case 274: {
-			action.consumeDirectDeclaratorArrayDeclarator(false);
-			break;
-		}
-
-		//
-		// Rule 275:  array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
-		//
-		case 275: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 276:  array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
-		//
-		case 276: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 277:  function_direct_abstract_declarator ::= ( )
-		//
-		case 277: {
-			action.consumeDirectDeclaratorFunctionDeclarator(false, false);
-			break;
-		}
-
-		//
-		// Rule 278:  function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( )
-		//
-		case 278: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true, false);
-			break;
-		}
-
-		//
-		// Rule 279:  function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list )
-		//
-		case 279: {
-			action.consumeDirectDeclaratorFunctionDeclarator(false, true);
-			break;
-		}
-
-		//
-		// Rule 280:  function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list )
-		//
-		case 280: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true, true);
-			break;
-		}
-
-		//
-		// Rule 281:  initializer ::= assignment_expression
-		//
-		case 281: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 282:  initializer ::= initializer_list
-		//
-		case 282: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 283:  initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq comma_opt } end_initializer_list
-		//
-		case 283: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 284:  initializer_list ::= { <openscope-ast> }
-		//
-		case 284: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 285:  start_initializer_list ::= $Empty
-		//
-		case 285: {
-			action.initializerListStart();
-			break;
-		}
-
-		//
-		// Rule 286:  end_initializer_list ::= $Empty
-		//
-		case 286: {
-			action.initializerListEnd();
-			break;
-		}
-
-		//
-		// Rule 291:  designated_initializer ::= <openscope-ast> designation = initializer
-		//
-		case 291: {
-			action.consumeInitializerDesignated();
-			break;
-		}
-
-		//
-		// Rule 295:  designator_base ::= [ constant_expression ]
-		//
-		case 295: {
-			action.consumeDesignatorArray();
-			break;
-		}
-
-		//
-		// Rule 296:  designator_base ::= . identifier_token
-		//
-		case 296: {
-			action.consumeDesignatorField();
-			break;
-		}
-
-		//
-		// Rule 297:  designator ::= [ constant_expression ]
-		//
-		case 297: {
-			action.consumeDesignatorArray();
-			break;
-		}
-
-		//
-		// Rule 298:  designator ::= . identifier_token
-		//
-		case 298: {
-			action.consumeDesignatorField();
-			break;
-		}
-
-		//
-		// Rule 299:  translation_unit ::= external_declaration_list
-		//
-		case 299: {
-			action.consumeTranslationUnit();
-			break;
-		}
-
-		//
-		// Rule 300:  translation_unit ::= $Empty
-		//
-		case 300: {
-			action.consumeTranslationUnit();
-			break;
-		}
-
-		//
-		// Rule 305:  external_declaration ::= ;
-		//
-		case 305: {
-			action.consumeDeclarationEmpty();
-			break;
-		}
-
-		//
-		// Rule 306:  external_declaration ::= ERROR_TOKEN
-		//
-		case 306: {
-			action.consumeDeclarationProblem();
-			break;
-		}
-
-		//
-		// Rule 310:  function_definition ::= <openscope-ast> function_declarator function_body
-		//
-		case 310: {
-			action.consumeFunctionDefinition(false);
-			break;
-		}
-
-		//
-		// Rule 311:  function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
-		//
-		case 311: {
-			action.consumeFunctionDefinitionKnR();
-			break;
-		}
-
-		//
-		// Rule 312:  normal_function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
-		//
-		case 312: {
-			action.consumeFunctionDefinition(true);
-			break;
-		}
-
-		//
-		// Rule 313:  function_body ::= { }
-		//
-		case 313: {
-			action.consumeStatementCompoundStatement(false);
-			break;
-		}
-
-		//
-		// Rule 314:  function_body ::= { <openscope-ast> block_item_list }
-		//
-		case 314: {
-			action.consumeStatementCompoundStatement(true);
-			break;
-		}
-
-		//
-		// Rule 331:  attribute_parameter ::= assignment_expression
-		//
-		case 331: {
-			action.consumeIgnore();
-			break;
-		}
-
-		//
-		// Rule 342:  extended_asm_declaration ::= asm volatile_opt ( extended_asm_param_seq ) ;
-		//
-		case 342: {
-			gnuAction.consumeDeclarationASM();
-			break;
-		}
-
-		//
-		// Rule 353:  unary_expression ::= __alignof__ unary_expression
-		//
-		case 353: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_alignOf);
-			break;
-		}
-
-		//
-		// Rule 354:  unary_expression ::= typeof unary_expression
-		//
-		case 354: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof);
-			break;
-		}
-
-		//
-		// Rule 355:  relational_expression ::= relational_expression >? shift_expression
-		//
-		case 355: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_max);
-			break;
-		}
-
-		//
-		// Rule 356:  relational_expression ::= relational_expression <? shift_expression
-		//
-		case 356: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_min);
-			break;
-		}
-
-		//
-		// Rule 357:  conditional_expression ::= logical_or_expression ? <empty> : assignment_expression
-		//
-		case 357: {
-			action.consumeExpressionConditional();
-			break;
-		}
-
-		//
-		// Rule 358:  primary_expression ::= ( compound_statement )
-		//
-		case 358: {
-			gnuAction.consumeCompoundStatementExpression();
-			break;
-		}
-
-		//
-		// Rule 359:  labeled_statement ::= case case_range_expression : statement
-		//
-		case 359: {
-			action.consumeStatementCase();
-			break;
-		}
-
-		//
-		// Rule 360:  case_range_expression ::= constant_expression ... constant_expression
-		//
-		case 360: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign);
-			break;
-		}
-
-		//
-		// Rule 364:  typeof_type_specifier ::= typeof unary_expression
-		//
-		case 364: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof);
-			break;
-		}
-
-		//
-		// Rule 365:  typeof_type_specifier ::= typeof ( type_id )
-		//
-		case 365: {
-			action.consumeExpressionTypeId(IASTTypeIdExpression.op_typeof);
-			break;
-		}
-
-		//
-		// Rule 366:  declaration_specifiers ::= <openscope-ast> typeof_declaration_specifiers
-		//
-		case 366: {
-			action.consumeDeclarationSpecifiersTypeof();
-			break;
-		}
-
-		//
-		// Rule 382:  field_name_designator ::= identifier_token :
-		//
-		case 382: {
-			action.consumeDesignatorFieldGCC();
-			break;
-		}
-
-		//
-		// Rule 383:  array_range_designator ::= [ constant_expression ... constant_expression ]
-		//
-		case 383: {
-			action.consumeDesignatorArrayRange();
-			break;
-		}
-
-		//
-		// Rule 384:  designated_initializer ::= <openscope-ast> field_name_designator initializer
-		//
-		case 384: {
-			action.consumeInitializerDesignated();
-			break;
-		}
-
-		//
-		// Rule 385:  block_item ::= normal_function_definition
-		//
-		case 385: {
-			action.consumeStatementDeclaration();
-			break;
-		}
-
-		//
-		// Rule 387:  no_sizeof_type_name_start ::= ERROR_TOKEN
-		//
-		case 387: {
-			action.consumeEmpty();
-			break;
-		}
-
-		default:
-			break;
-		}
-		return;
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCSizeofExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCSizeofExpressionParserprs.java
deleted file mode 100644
index b924824..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCSizeofExpressionParserprs.java
+++ /dev/null
@@ -1,989 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2015 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.lrparser.gcc;
-
-public class GCCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, GCCSizeofExpressionParsersym {
-
-	public interface IsKeyword {
-		public final static byte isKeyword[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static byte isKeyword[] = IsKeyword.isKeyword;
-
-	public final boolean isKeyword(int index) {
-		return isKeyword[index] != 0;
-	}
-
-	public interface BaseCheck {
-		public final static short baseCheck[] = { 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 4,
-				4, 3, 3, 2, 2, 4, 1, 0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 4, 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 3, 3, 3,
-				3, 1, 3, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 2, 1, 0, 1, 3,
-				1, 1, 1, 1, 1, 1, 1, 1, 3, 4, 3, 2, 4, 1, 2, 1, 1, 1, 2, 5, 7, 5, 1, 0, 7, 2, 5, 9, 8, 3, 2, 2, 2, 3, 2,
-				4, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 3, 1, 3, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6, 8, 0, 0, 1, 1, 3, 3, 3, 0, 1, 0, 1, 2, 4, 2, 1, 1,
-				1, 3, 1, 1, 2, 3, 7, 8, 0, 1, 0, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 3, 1, 2, 2, 1, 5, 3, 1,
-				3, 5, 1, 3, 1, 3, 2, 4, 3, 5, 4, 6, 6, 3, 5, 1, 3, 4, 5, 6, 0, 1, 2, 1, 3, 1, 1, 3, 2, 1, 1, 1, 1, 2, 1,
-				2, 3, 1, 1, 1, 3, 1, 2, 2, 2, 3, 4, 5, 1, 1, 7, 3, 0, 0, 1, 1, 3, 3, 4, 1, 1, 2, 3, 2, 3, 2, 1, 0, 1, 2,
-				1, 1, 1, 1, 1, 2, 1, 3, 6, 4, 2, 4, 1, 1, 1, 1, 2, 6, 3, 1, 3, 1, 4, 0, 1, 1, 1, 3, 1, 0, 4, 3, 1, 2, 1,
-				3, 4, 4, 4, 6, 1, 0, 1, 3, 1, 3, 0, 1, 4, 5, 2, 2, 3, 3, 5, 3, 4, 3, 1, 2, 2, 2, 4, 2, 1, 1, 2, 2, 3, 2,
-				2, 3, 1, 1, 1, 1, 1, 1, 1, 2, 5, 3, 1, 1, 1, -39, 0, 0, 0, 0, 0, 0, -35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -241, 0, -2, 0, -80, -118, -240, 0, 0, 0, -31, 0, -173, 0, -41, 0, 0, 0, 0, 0, 0, -17,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -52, 0, 0, 0, 0, 0, 0, -287, 0, 0, 0, 0, 0, 0, -40, 0, 0, 0, 0, 0, -4,
-				0, -170, 0, 0, 0, 0, 0, -75, 0, 0, 0, 0, 0, 0, 0, 0, -16, 0, -18, -1, 0, 0, 0, 0, 0, 0, 0, 0, -119, -33,
-				0, 0, 0, 0, 0, 0, 0, -19, 0, 0, 0, 0, 0, 0, 0, 0, 0, -125, 0, 0, 0, 0, -176, -20, 0, -21, 0, 0, 0, 0, 0,
-				0, -199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -281, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -134, 0, -260, -289, 0, 0, 0, 0, 0, 0, 0, 0, -32, 0, -232, 0, 0, 0, -22, 0,
-				-250, -278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -61, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -136, 0, 0, 0, 0, 0, 0, 0, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0, -130, 0,
-				-273, 0, 0, -220, 0, 0, 0, 0, -283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -297, 0, -23, 0, -311, 0, 0, 0, 0, 0, 0, -24, 0, 0, 0, 0, 0, 0, 0, -159, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-310, 0, 0, 0, 0, -25, 0, -36, -53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -139, 0, 0, -252, 0, 0, 0, 0, 0, 0, -305, 0, 0, 0, 0, 0, 0,
-				-148, 0, 0, 0, 0, 0, 0, 0, 0, 0, -140, 0, -155, 0, -3, 0, 0, 0, 0, 0, 0, -26, 0, 0, 0, 0, 0, -149, 0,
-				-186, 0, 0, 0, 0, 0, 0, 0, 0, 0, -284, 0, 0, -124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -27, 0, -28, -168,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -83, 0, -157, 0, 0, 0, 0, 0, 0, -248, 0, 0, 0, 0, -123, -84, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -187, 0, -46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -169, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -204, 0, -85, 0, 0, 0, 0, 0, 0, 0, 0, -313, 0, -94, 0, -318, 0, 0, 0, 0, 0, 0,
-				-164, 0, 0, 0, 0, -99, 0, 0, -222, 0, 0, 0, 0, 0, 0, 0, 0, -163, -243, 0, 0, -29, 0, 0, 0, 0, 0, 0, -37,
-				0, 0, 0, 0, -315, 0, -100, -244, 0, 0, 0, 0, 0, 0, 0, 0, -101, -288, -102, 0, -103, 0, 0, 0, -62, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -63, 0, 0, 0, 0, 0, 0,
-				-181, 0, 0, 0, 0, 0, 0, 0, -104, 0, 0, 0, 0, 0, 0, 0, 0, -105, 0, -263, 0, -64, 0, 0, 0, 0, 0, 0, -183,
-				0, 0, 0, 0, 0, -245, 0, -299, 0, 0, 0, 0, 0, 0, 0, 0, 0, -106, -303, 0, -65, 0, 0, 0, 0, 0, 0, -201, 0,
-				0, 0, 0, -312, 0, 0, -320, 0, 0, 0, 0, 0, 0, 0, 0, 0, -107, 0, 0, -66, 0, 0, 0, 0, 0, 0, -218, 0, 0, 0,
-				0, -334, 0, 0, -108, 0, 0, 0, 0, 0, 0, 0, 0, -109, 0, -328, 0, -67, 0, 0, 0, 0, 0, 0, -242, 0, 0, 0, 0,
-				-343, -256, 0, -110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -111, 0, -68, 0, 0, 0, 0, 0, 0, -255, 0, 0, 0, 0,
-				-112, -280, 0, -113, 0, 0, 0, 0, 0, 0, 0, 0, -114, 0, -115, 0, -69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-116, -295, -117, -120, 0, 0, 0, 0, 0, 0, 0, 0, -122, -133, -143, 0, -70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -150, -319, -151, -153, 0, 0, 0, 0, 0, 0, 0, 0, -154, -294, -156, 0, -71, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -158, -165, -174, -178, 0, 0, 0, 0, 0, 0, 0, 0, -182, -302, -185, 0, -72, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -190, -194, -207, -195, 0, 0, 0, 0, 0, 0, 0, 0, -96, 0, -197, 0, -5, 0, 0, 0, 0, 0, 0, -126, 0,
-				0, 0, 0, -213, -215, -161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -325, -225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -237, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -239, -261, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -73, 0, 0, 0, -262, -271, -272, -282, 0, -162, 0, 0, 0, 0, 0, 0, -286,
-				0, 0, 0, 0, -301, -304, -309, 0, 0, 0, 0, 0, 0, 0, 0, 0, -322, -330, 0, 0, -202, 0, 0, 0, 0, 0, 0, -335,
-				0, 0, 0, 0, 0, -219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -208, 0, 0, -229, 0, 0, 0, 0, 0, 0, -74, 0, 0, 0, 0, -128, -131,
-				-171, -179, 0, 0, 0, 0, 0, 0, 0, 0, -285, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -132, 0, 0, -184, 0, 0, 0, 0, 0, 0, 0, 0, -314, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -321, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -211, -259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -333, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -177,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -337, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -135, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -98, 0, 0, 0, 0, 0, 0, 0, -127, 0, 0, 0, 0, 0, 0, -160, 0, -145, 0, 0, 0, 0, 0, -212, 0, 0, 0,
-				0, 0, 0, -231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -137, 0, 0, 0, 0, 0, 0, 0, -214,
-				0, -224, -198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -141, 0, 0, 0, 0, 0, 0, -249, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -47, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -92, 0, 0, 0, 0, 0, 0, 0, 0, -306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -332, 0, 0,
-				-34, -223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -79, 0, 0, -265, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -226, 0, 0, 0, 0, 0, 0,
-				-258, -293, -189, 0, 0, 0, 0, 0, 0, 0, -227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -172, 0, -257, 0, 0, 0, 0, 0, -87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -274, 0, 0, 0,
-				0, 0, -246, 0, 0, 0, -251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -167, -191, 0, 0, 0, -206, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -253, 0, 0, 0, -48, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -336, -254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-270, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-291, 0, 0, -57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -323, 0, 0, 0, 0, 0, 0, 0, 0, -300, 0, 0, 0, 0, 0,
-				0, 0, 0, -58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -279, 0, 0, 0, 0, 0, 0, 0,
-				0, -235, 0, 0, 0, 0, 0, 0, 0, -316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -308, 0, 0, -76, 0, 0, 0, 0, 0, 0, -317, 0, 0, 0,
-				0, 0, -54, 0, 0, 0, 0, 0, 0, -82, 0, 0, 0, 0, 0, -326, -331, 0, 0, 0, 0, 0, 0, 0, 0, -341, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -210, 0, -129, 0, 0, 0, 0, 0, -216, 0, 0, 0, 0, 0, 0, 0, 0, 0, -152, 0, 0, 0, 0, 0,
-				-342, 0, 0, 0, 0, 0, 0, 0, 0, 0, -205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -86, 0, -196, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -230, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -234, 0, 0, 0,
-				0, 0, 0, 0, 0, -247, -266, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -268, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -269, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -329, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -340, 0, 0, -192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -345, 0, 0, -221, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -267, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -56, 0, 0, 0, 0, 0, 0, -121, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -51, 0, 0, 0, 0, 0, 0, -88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -42, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -91, 0, 0, 0, -93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -236, 0, 0, 0, 0, 0, 0, 0, -95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -7, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -10,
-				0, 0, 0, 0, 0, 0, 0, 0, -11, 0, 0, 0, 0, 0, 0, 0, 0, -12, 0, 0, 0, 0, 0, 0, 0, 0, -13, 0, 0, 0, 0, 0, 0,
-				-30, 0, 0, -38, 0, 0, 0, 0, -275, 0, 0, -43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-44, 0, 0, 0, 0, 0, 0, 0, 0, -45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -144, 0, 0, 0, 0, -77, 0, 0, 0, -209, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -188, 0, 0, 0, -238, 0, 0, 0, -14, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -277, 0, 0, 0, 0, 0, 0, 0, 0, -89, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -90, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -97, 0, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 0, 0, 0, -166, 0, 0, 0,
-				-180, 0, 0, 0, 0, -200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -290, 0, 0, -292, 0, -276, 0, 0,
-				0, -175, 0, 0, 0, 0, -59, -324, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -146, -338, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -298, 0, 0, 0, 0, 0, 0, 0, -307, -327,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -339, 0, 0, 0, 0, 0, 0, 0, 0, -344, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0 };
-	}
-
-	public final static short baseCheck[] = BaseCheck.baseCheck;
-
-	@Override
-	public final int baseCheck(int index) {
-		return baseCheck[index];
-	}
-
-	public final static short rhs[] = baseCheck;
-
-	@Override
-	public final int rhs(int index) {
-		return rhs[index];
-	}
-
-	public interface BaseAction {
-		public final static char baseAction[] = { 117, 7, 118, 41, 41, 24, 24, 50, 50, 26, 26, 1, 1, 2, 2, 2, 2, 3, 3,
-				3, 4, 5, 5, 5, 5, 5, 5, 5, 5, 80, 80, 94, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 8, 8, 9, 9, 9, 9, 10, 10, 10,
-				11, 11, 11, 16, 16, 16, 16, 16, 17, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 27, 27, 27,
-				27, 27, 27, 27, 27, 27, 27, 27, 27, 34, 30, 25, 119, 119, 95, 95, 58, 35, 35, 35, 35, 35, 35, 35, 36,
-				36, 36, 29, 29, 96, 96, 71, 71, 37, 37, 38, 38, 38, 67, 67, 39, 39, 39, 39, 39, 40, 40, 40, 40, 40, 66,
-				66, 31, 31, 31, 31, 31, 53, 53, 53, 103, 103, 98, 98, 98, 98, 99, 99, 99, 100, 100, 100, 101, 101, 101,
-				102, 102, 102, 97, 97, 85, 85, 86, 54, 56, 56, 56, 56, 56, 72, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
-				73, 73, 84, 81, 81, 120, 121, 87, 87, 82, 82, 82, 88, 104, 104, 105, 105, 89, 89, 89, 60, 122, 122, 106,
-				90, 90, 90, 83, 83, 123, 107, 107, 108, 108, 91, 91, 32, 33, 33, 33, 55, 51, 51, 42, 42, 42, 42, 45, 45,
-				47, 43, 43, 44, 48, 48, 124, 124, 46, 143, 143, 125, 125, 52, 52, 52, 52, 52, 52, 52, 52, 52, 109, 61,
-				61, 61, 61, 49, 75, 75, 74, 74, 74, 76, 76, 69, 69, 126, 126, 79, 79, 77, 77, 77, 62, 62, 62, 63, 64,
-				64, 64, 65, 65, 65, 65, 68, 68, 57, 57, 59, 128, 127, 127, 127, 127, 110, 129, 130, 130, 131, 131, 132,
-				132, 144, 144, 145, 145, 146, 146, 146, 146, 148, 148, 147, 147, 147, 78, 133, 133, 12, 12, 12, 28, 28,
-				13, 13, 134, 134, 111, 111, 111, 112, 112, 135, 135, 113, 113, 14, 14, 136, 136, 114, 114, 114, 114, 15,
-				70, 137, 137, 138, 138, 115, 115, 115, 92, 92, 92, 6, 6, 16, 16, 23, 3, 36, 139, 116, 116, 116, 93, 93,
-				31, 66, 53, 86, 86, 86, 106, 106, 106, 123, 120, 121, 49, 88, 131, 131, 140, 141, 110, 71, 117, 117,
-				331, 913, 17, 21, 18, 482, 829, 560, 44, 503, 484, 521, 368, 315, 316, 317, 519, 685, 586, 717, 694,
-				827, 794, 74, 1851, 1380, 443, 91, 521, 901, 1429, 358, 135, 213, 672, 31, 1319, 179, 1647, 20, 17, 21,
-				18, 482, 42, 500, 44, 927, 368, 315, 316, 317, 388, 137, 134, 136, 160, 1647, 20, 17, 21, 18, 482, 42,
-				1872, 44, 503, 1084, 135, 213, 87, 398, 139, 166, 395, 950, 197, 629, 1635, 1279, 275, 143, 146, 149,
-				152, 645, 28, 1896, 1186, 137, 134, 136, 160, 361, 1825, 465, 451, 517, 2182, 2286, 2577, 2608, 2612,
-				1279, 787, 2731, 249, 462, 139, 166, 1156, 255, 213, 939, 787, 876, 2637, 143, 146, 149, 152, 104, 87,
-				1896, 719, 645, 22, 386, 25, 361, 753, 302, 89, 37, 2182, 2286, 2577, 2608, 2612, 1279, 1551, 20, 17,
-				21, 18, 482, 829, 412, 44, 503, 484, 521, 2637, 1371, 452, 293, 519, 685, 586, 717, 694, 827, 794, 74,
-				659, 381, 241, 281, 1445, 20, 17, 21, 18, 482, 829, 412, 44, 503, 484, 521, 908, 2920, 1469, 1905, 519,
-				685, 586, 717, 694, 827, 794, 74, 672, 31, 1685, 281, 294, 282, 38, 1186, 753, 1575, 20, 17, 21, 18,
-				482, 829, 287, 44, 503, 484, 521, 369, 414, 255, 213, 519, 685, 586, 717, 694, 827, 794, 74, 282, 1464,
-				1186, 281, 1647, 20, 17, 21, 18, 482, 42, 289, 44, 503, 484, 521, 322, 1295, 672, 187, 519, 685, 586,
-				717, 1185, 288, 1647, 20, 17, 21, 18, 482, 42, 282, 40, 1186, 1747, 1184, 398, 1658, 276, 1661, 418,
-				2951, 158, 1771, 1599, 20, 17, 21, 18, 482, 829, 290, 44, 503, 484, 521, 672, 186, 278, 24, 519, 685,
-				586, 717, 694, 827, 794, 74, 672, 1350, 444, 281, 1623, 20, 17, 21, 18, 482, 829, 543, 44, 503, 484,
-				521, 323, 1295, 313, 1428, 519, 685, 586, 717, 694, 827, 794, 74, 28, 301, 1186, 281, 312, 282, 541,
-				1186, 560, 1647, 20, 17, 21, 18, 482, 42, 384, 44, 503, 1102, 1397, 20, 17, 21, 18, 482, 829, 1290, 44,
-				503, 484, 521, 2162, 282, 783, 1186, 519, 685, 586, 717, 694, 827, 794, 74, 291, 1862, 1251, 513, 1743,
-				20, 17, 21, 18, 482, 829, 1722, 44, 503, 484, 521, 124, 239, 783, 210, 519, 685, 586, 717, 694, 827,
-				794, 74, 672, 188, 783, 331, 1647, 20, 17, 21, 18, 482, 829, 416, 44, 503, 484, 521, 123, 672, 873, 783,
-				519, 685, 586, 717, 694, 827, 794, 74, 111, 672, 296, 91, 1719, 20, 17, 21, 18, 482, 829, 1937, 44, 503,
-				484, 521, 888, 126, 1727, 645, 519, 685, 586, 717, 694, 827, 794, 74, 1281, 283, 554, 830, 1647, 20, 17,
-				21, 18, 482, 42, 1747, 44, 503, 484, 521, 739, 999, 2942, 348, 519, 685, 586, 717, 694, 827, 794, 93,
-				319, 315, 316, 317, 243, 329, 783, 231, 1647, 20, 17, 21, 18, 482, 42, 465, 44, 503, 484, 967, 1421, 20,
-				17, 21, 18, 482, 829, 2045, 44, 503, 484, 521, 122, 645, 1270, 1047, 519, 685, 586, 717, 694, 827, 794,
-				74, 672, 298, 1499, 900, 1743, 20, 17, 21, 18, 482, 829, 249, 44, 503, 484, 521, 1086, 240, 528, 783,
-				519, 685, 586, 717, 694, 827, 794, 74, 456, 1182, 242, 331, 1647, 20, 17, 21, 18, 482, 829, 560, 44,
-				503, 484, 521, 1922, 2989, 1333, 645, 519, 685, 586, 717, 694, 827, 794, 74, 49, 1182, 169, 92, 181,
-				254, 213, 19, 1647, 20, 17, 21, 18, 482, 829, 1268, 44, 503, 484, 521, 255, 213, 284, 1787, 519, 685,
-				586, 717, 694, 827, 794, 74, 244, 254, 213, 85, 1647, 20, 17, 21, 18, 482, 829, 249, 44, 503, 484, 521,
-				571, 128, 2890, 630, 519, 685, 586, 717, 694, 827, 794, 74, 1002, 330, 783, 84, 1647, 20, 17, 21, 18,
-				482, 829, 249, 44, 503, 484, 521, 955, 645, 1414, 783, 519, 685, 586, 717, 694, 827, 794, 74, 3001,
-				1065, 783, 83, 1647, 20, 17, 21, 18, 482, 829, 1330, 44, 503, 484, 521, 1920, 3010, 940, 1935, 519, 685,
-				586, 717, 694, 827, 794, 74, 342, 775, 245, 82, 1647, 20, 17, 21, 18, 482, 829, 249, 44, 503, 484, 521,
-				645, 194, 1572, 911, 519, 685, 586, 717, 694, 827, 794, 74, 520, 295, 783, 81, 1647, 20, 17, 21, 18,
-				482, 829, 1866, 44, 503, 484, 521, 645, 456, 968, 379, 519, 685, 586, 717, 694, 827, 794, 74, 117, 297,
-				474, 80, 1647, 20, 17, 21, 18, 482, 829, 249, 44, 503, 484, 521, 751, 456, 2945, 170, 519, 685, 586,
-				717, 694, 827, 794, 74, 807, 383, 969, 79, 1647, 20, 17, 21, 18, 482, 829, 180, 44, 503, 484, 521, 1147,
-				456, 836, 1308, 519, 685, 586, 717, 694, 827, 794, 74, 758, 334, 1513, 78, 1647, 20, 17, 21, 18, 482,
-				829, 712, 44, 503, 484, 521, 1121, 456, 1201, 1209, 519, 685, 586, 717, 694, 827, 794, 74, 1346, 1469,
-				995, 77, 1647, 20, 17, 21, 18, 482, 829, 204, 44, 503, 484, 521, 998, 1331, 1248, 1494, 519, 685, 586,
-				717, 694, 827, 794, 74, 1528, 905, 67, 76, 1647, 20, 17, 21, 18, 482, 829, 181, 44, 503, 484, 521, 1050,
-				1179, 1473, 811, 519, 685, 586, 717, 694, 827, 794, 74, 1319, 179, 1768, 75, 1671, 20, 17, 21, 18, 482,
-				354, 1182, 368, 315, 316, 317, 1781, 1534, 1647, 20, 17, 21, 18, 482, 829, 1309, 44, 503, 484, 521, 456,
-				1805, 135, 213, 519, 685, 586, 717, 694, 827, 794, 74, 228, 254, 213, 357, 1671, 20, 17, 21, 18, 482,
-				353, 138, 134, 136, 160, 1510, 1647, 20, 17, 21, 18, 482, 42, 1370, 44, 503, 484, 521, 1709, 1558, 140,
-				166, 519, 685, 586, 717, 694, 1183, 205, 144, 147, 150, 153, 560, 467, 1896, 346, 1582, 1853, 1602,
-				1757, 362, 1647, 20, 17, 21, 18, 482, 829, 1212, 44, 503, 484, 521, 1259, 1199, 1913, 417, 519, 685,
-				586, 717, 694, 827, 794, 74, 1230, 1097, 887, 73, 1647, 20, 17, 21, 18, 482, 829, 1606, 44, 503, 484,
-				521, 3218, 1125, 1350, 3218, 519, 685, 586, 717, 694, 827, 794, 74, 3218, 3218, 3218, 958, 1647, 20, 17,
-				21, 18, 482, 829, 3218, 44, 503, 484, 521, 3218, 3218, 3218, 3218, 519, 685, 586, 717, 694, 827, 794,
-				74, 3218, 937, 3218, 1044, 1647, 20, 17, 21, 18, 482, 42, 560, 44, 503, 484, 521, 560, 1857, 560, 560,
-				519, 685, 586, 717, 694, 827, 794, 93, 1647, 20, 17, 21, 18, 482, 42, 23, 44, 503, 484, 521, 273, 321,
-				279, 341, 519, 685, 586, 717, 694, 827, 794, 93, 209, 227, 3218, 1647, 20, 17, 21, 18, 482, 42, 360, 44,
-				503, 484, 521, 1870, 570, 1368, 560, 519, 685, 586, 717, 694, 827, 794, 93, 1647, 20, 17, 21, 18, 482,
-				42, 1071, 44, 503, 484, 521, 334, 3218, 3218, 654, 519, 685, 586, 717, 694, 827, 794, 93, 3218, 3218,
-				3218, 1647, 20, 17, 21, 18, 482, 42, 212, 44, 503, 484, 521, 560, 1125, 1350, 3218, 519, 685, 586, 717,
-				694, 827, 794, 93, 1647, 20, 17, 21, 18, 482, 42, 1099, 44, 503, 484, 521, 280, 3218, 3218, 1870, 519,
-				685, 586, 717, 694, 827, 794, 93, 3218, 3218, 3218, 1647, 20, 17, 21, 18, 482, 42, 202, 44, 503, 484,
-				521, 333, 3218, 3218, 1111, 519, 685, 586, 717, 694, 827, 794, 93, 335, 199, 1239, 319, 315, 316, 317,
-				1127, 388, 419, 20, 17, 21, 18, 482, 42, 666, 36, 1, 1239, 3218, 3218, 1598, 1696, 1875, 388, 86, 110,
-				3218, 209, 95, 905, 1650, 3218, 203, 785, 108, 94, 96, 97, 98, 99, 127, 86, 110, 1224, 1368, 95, 1923,
-				1650, 246, 1247, 785, 108, 94, 96, 97, 98, 99, 1847, 3218, 560, 989, 319, 315, 316, 317, 109, 105, 2816,
-				3218, 367, 106, 3218, 318, 315, 316, 317, 336, 385, 1838, 3218, 3218, 338, 109, 2371, 3218, 366, 367,
-				107, 2110, 3218, 319, 315, 316, 317, 385, 1652, 3218, 318, 315, 316, 317, 3218, 218, 1269, 221, 1454,
-				223, 224, 1349, 3218, 3218, 2361, 3218, 855, 1647, 20, 17, 21, 18, 482, 42, 1370, 44, 503, 484, 969,
-				1772, 219, 1269, 221, 1454, 223, 224, 229, 1240, 265, 1239, 274, 318, 315, 316, 317, 388, 3218, 345,
-				155, 1336, 269, 601, 416, 272, 3218, 133, 1239, 1714, 249, 666, 990, 3218, 388, 86, 110, 787, 1832, 95,
-				3218, 1650, 2013, 3218, 785, 108, 94, 96, 97, 98, 99, 3218, 86, 110, 3218, 87, 95, 127, 1650, 582, 473,
-				785, 108, 94, 96, 97, 98, 99, 1299, 3218, 3218, 989, 3218, 3218, 3218, 2211, 109, 314, 2839, 3218, 367,
-				106, 3218, 318, 315, 316, 317, 560, 385, 783, 3218, 3218, 277, 109, 899, 617, 249, 367, 107, 2110, 3218,
-				424, 2839, 787, 560, 385, 1788, 318, 315, 316, 317, 2387, 3218, 218, 1269, 221, 1454, 223, 224, 229,
-				274, 87, 2361, 2061, 756, 197, 1695, 1828, 2428, 666, 267, 601, 416, 272, 2789, 667, 1856, 218, 1269,
-				221, 1454, 223, 224, 229, 3218, 1469, 1397, 318, 315, 316, 317, 3218, 989, 3218, 1890, 195, 155, 1336,
-				560, 2839, 3218, 3218, 560, 1625, 318, 315, 316, 317, 990, 218, 1269, 221, 1454, 223, 224, 229, 1182,
-				249, 263, 274, 2110, 1832, 225, 193, 787, 2957, 320, 3218, 2370, 267, 601, 416, 272, 3218, 218, 1269,
-				221, 1454, 223, 224, 229, 198, 87, 2361, 264, 277, 560, 1848, 254, 213, 1647, 20, 17, 21, 18, 482, 42,
-				1074, 44, 503, 484, 971, 3218, 218, 1269, 221, 1454, 223, 224, 229, 340, 3218, 1919, 274, 3218, 827,
-				560, 156, 1336, 3218, 3218, 3218, 2839, 267, 601, 416, 272, 318, 315, 316, 317, 467, 1880, 261, 3218,
-				568, 3218, 3218, 1469, 3218, 339, 3218, 3218, 2061, 1647, 20, 17, 21, 18, 482, 42, 3218, 44, 503, 484,
-				1018, 1057, 218, 1269, 221, 1454, 223, 224, 229, 1896, 1401, 1397, 1647, 20, 17, 21, 18, 482, 42, 3218,
-				44, 503, 484, 521, 3218, 617, 3218, 3218, 519, 685, 586, 1155, 2839, 325, 560, 3218, 3218, 319, 315,
-				316, 317, 3218, 3218, 1647, 20, 17, 21, 18, 482, 42, 2957, 44, 503, 484, 521, 3218, 3218, 3218, 1113,
-				519, 685, 1158, 3218, 3218, 3218, 1037, 199, 218, 1269, 221, 1454, 223, 224, 229, 989, 3218, 1397, 318,
-				315, 316, 317, 2839, 560, 3218, 3218, 3218, 319, 315, 316, 317, 3218, 3218, 3218, 855, 1647, 20, 17, 21,
-				18, 482, 42, 3218, 44, 503, 484, 1027, 230, 219, 1269, 221, 1454, 223, 224, 1387, 1240, 2978, 218, 1269,
-				221, 1454, 223, 224, 229, 1037, 3218, 2947, 1470, 20, 17, 21, 18, 482, 42, 1934, 43, 318, 315, 316, 317,
-				1647, 20, 17, 21, 18, 482, 42, 1334, 44, 503, 484, 521, 855, 560, 560, 3218, 519, 1111, 234, 368, 315,
-				316, 317, 560, 3218, 3218, 219, 1269, 221, 1454, 223, 224, 229, 1240, 1021, 3218, 877, 2469, 351, 135,
-				213, 424, 1504, 424, 28, 3218, 1186, 2489, 318, 315, 316, 317, 593, 1239, 319, 315, 316, 317, 560, 787,
-				142, 134, 136, 160, 855, 1888, 3218, 1888, 419, 20, 17, 21, 18, 482, 42, 3218, 36, 86, 110, 141, 166,
-				95, 352, 3218, 3218, 1195, 785, 1267, 94, 96, 97, 98, 99, 641, 1239, 3218, 3218, 2554, 3218, 3218, 787,
-				3218, 3218, 260, 3218, 259, 3218, 3218, 3218, 247, 1471, 748, 1241, 689, 1239, 3218, 3218, 3218, 86,
-				110, 787, 3218, 95, 368, 315, 316, 317, 785, 103, 94, 96, 97, 98, 99, 803, 1239, 3218, 3218, 86, 110,
-				3218, 787, 95, 135, 213, 3218, 3218, 785, 101, 94, 96, 97, 98, 99, 851, 1239, 3218, 3218, 3218, 86, 110,
-				787, 3218, 95, 145, 134, 136, 160, 785, 359, 94, 96, 97, 98, 99, 3218, 3218, 3218, 3218, 86, 110, 3218,
-				3218, 95, 3218, 3218, 1881, 3218, 785, 102, 94, 96, 97, 98, 99, 1087, 965, 1239, 318, 315, 316, 317,
-				424, 787, 3218, 3218, 3218, 318, 315, 316, 317, 3218, 1013, 1239, 2736, 3218, 3218, 3218, 3218, 787,
-				3218, 86, 110, 855, 3218, 95, 1888, 3218, 3218, 3218, 785, 119, 94, 96, 97, 98, 99, 86, 110, 3218, 3218,
-				95, 3218, 3218, 1195, 3218, 785, 114, 94, 96, 97, 98, 99, 1061, 1239, 3218, 1721, 3218, 3218, 3218, 787,
-				3218, 3218, 3218, 259, 3218, 3218, 3218, 3218, 1471, 3218, 1241, 3218, 1175, 1239, 3218, 3218, 3218, 86,
-				110, 787, 3218, 95, 3218, 3218, 3218, 3218, 785, 1385, 94, 96, 97, 98, 99, 1223, 1239, 3218, 249, 86,
-				110, 3218, 787, 95, 3218, 787, 3218, 3218, 785, 113, 94, 96, 97, 98, 99, 1271, 1239, 3218, 1879, 3218,
-				86, 110, 787, 87, 95, 787, 3218, 3218, 1865, 785, 121, 94, 96, 97, 98, 99, 3218, 3218, 249, 3218, 86,
-				110, 3218, 87, 95, 787, 3218, 3218, 115, 785, 120, 94, 96, 97, 98, 99, 1647, 20, 17, 21, 18, 482, 42,
-				87, 44, 503, 484, 521, 2070, 3218, 3218, 3218, 1130, 1647, 20, 17, 21, 18, 482, 42, 713, 44, 503, 484,
-				521, 1029, 3218, 3218, 3218, 1141, 3218, 3218, 318, 315, 316, 317, 1647, 20, 17, 21, 18, 482, 42, 910,
-				44, 503, 484, 1056, 855, 3218, 3218, 3218, 3218, 3218, 3218, 368, 315, 316, 317, 1647, 20, 17, 21, 18,
-				482, 42, 3218, 44, 957, 1240, 3218, 3218, 274, 3218, 1120, 135, 213, 3218, 1767, 3218, 3218, 3218, 269,
-				601, 416, 272, 368, 315, 316, 317, 368, 315, 316, 317, 3218, 313, 148, 134, 136, 160, 3218, 3218, 2839,
-				1778, 3218, 3218, 135, 213, 3218, 3218, 135, 213, 3218, 3218, 3218, 368, 315, 316, 317, 1671, 20, 17,
-				21, 18, 482, 41, 3218, 151, 134, 136, 160, 154, 134, 136, 160, 135, 213, 218, 1269, 221, 1454, 223, 224,
-				229, 3218, 3218, 1919, 1647, 20, 17, 21, 18, 482, 42, 3218, 39, 363, 134, 136, 160, 1647, 20, 17, 21,
-				18, 482, 42, 3218, 38, 1647, 20, 17, 21, 18, 482, 42, 3218, 37, 1647, 20, 17, 21, 18, 482, 42, 3218, 36,
-				1647, 20, 17, 21, 18, 482, 42, 500, 35, 3218, 723, 3218, 3218, 3218, 388, 1893, 3218, 2785, 1647, 20,
-				17, 21, 18, 482, 42, 3218, 47, 319, 315, 316, 317, 3218, 87, 3218, 3218, 3218, 395, 950, 197, 1647, 20,
-				17, 21, 18, 482, 42, 3218, 46, 1647, 20, 17, 21, 18, 482, 42, 3218, 45, 3218, 3218, 500, 3218, 3218,
-				274, 3218, 551, 3218, 388, 2731, 551, 3218, 3218, 3218, 267, 601, 416, 272, 318, 315, 316, 317, 318,
-				315, 316, 317, 87, 3218, 1364, 266, 395, 950, 197, 423, 855, 3218, 3218, 551, 855, 3218, 388, 1671, 20,
-				17, 21, 18, 482, 34, 3218, 318, 315, 316, 317, 3218, 3218, 1195, 3218, 3218, 87, 1195, 551, 2731, 3218,
-				115, 1792, 855, 3218, 2554, 3218, 410, 3218, 1721, 318, 315, 316, 317, 3218, 3218, 3218, 3218, 1523,
-				318, 315, 316, 317, 3218, 1195, 3218, 855, 1671, 20, 17, 21, 18, 482, 33, 3218, 1685, 2101, 2492, 930,
-				508, 3218, 367, 3218, 3218, 3218, 3218, 3218, 1195, 3218, 737, 3218, 318, 315, 316, 317, 3218, 424,
-				3218, 3218, 2159, 1695, 20, 17, 21, 18, 482, 1197, 1685, 1695, 20, 17, 21, 18, 482, 364, 1249, 3218,
-				3218, 3218, 1321, 197, 3218, 3218, 3218, 1249, 3218, 3218, 318, 315, 316, 317, 318, 315, 316, 317, 631,
-				318, 315, 316, 317, 3218, 1295, 3218, 855, 1109, 3218, 1911, 2217, 424, 1890, 858, 424, 855, 3218, 3218,
-				360, 1949, 424, 318, 315, 316, 317, 787, 3218, 1066, 3218, 3218, 671, 318, 315, 316, 317, 1888, 1122,
-				3009, 197, 666, 1951, 192, 3218, 87, 1888, 3218, 787, 3030, 1169, 3218, 3218, 1879, 318, 315, 316, 317,
-				1128, 1855, 787, 3218, 3218, 3218, 3218, 1879, 87, 125, 3218, 1890, 3039, 802, 787, 1932, 1879, 259,
-				3218, 3218, 87, 3218, 2118, 787, 1241, 115, 259, 319, 315, 316, 317, 1571, 87, 1241, 3218, 3218, 1960,
-				115, 3218, 3218, 192, 87, 3218, 3218, 3218, 1965, 115, 1296, 319, 315, 316, 317, 3218, 3218, 3218, 1212,
-				1855, 319, 315, 316, 317, 3218, 1046, 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218, 2169,
-				2188, 3218, 3218, 3218, 3218, 3218, 1167, 3218, 3218, 2198, 3218, 0, 495, 32, 0, 1791, 32, 0, 3226, 1,
-				0, 841, 129, 0, 856, 129, 0, 902, 129, 0, 841, 130, 0, 856, 130, 0, 902, 130, 0, 841, 131, 0, 856, 131,
-				0, 902, 131, 0, 841, 185, 0, 856, 185, 0, 902, 185, 0, 185, 189, 0, 841, 184, 0, 856, 184, 0, 902, 184,
-				0, 184, 189, 0, 841, 132, 0, 856, 132, 0, 902, 132, 0, 841, 133, 0, 856, 133, 0, 902, 133, 0, 20, 179,
-				0, 841, 366, 0, 856, 366, 0, 902, 366, 0, 1, 702, 0, 841, 378, 0, 856, 378, 0, 902, 378, 0, 1, 841, 0,
-				1, 856, 0, 1, 902, 0, 354, 364, 0, 841, 253, 0, 856, 253, 0, 902, 253, 0, 8, 10, 0, 1310, 118, 0, 1,
-				3444, 0, 1, 3455, 0, 112, 2448, 0 };
-	}
-
-	public final static char baseAction[] = BaseAction.baseAction;
-
-	@Override
-	public final int baseAction(int index) {
-		return baseAction[index];
-	}
-
-	public final static char lhs[] = baseAction;
-
-	@Override
-	public final int lhs(int index) {
-		return lhs[index];
-	}
-
-	public interface TermCheck {
-		public final static byte termCheck[] = { 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
-				19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 0, 0, 38, 39, 40, 41, 42, 43, 44,
-				45, 46, 47, 0, 12, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 0, 1, 2, 3, 4, 5, 6,
-				7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
-				34, 35, 66, 67, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 66, 67, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
-				60, 61, 62, 63, 64, 65, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
-				22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 0, 0, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 0,
-				12, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
-				11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 66,
-				67, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 66, 67, 0, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
-				63, 64, 65, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
-				25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 0, 0, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 0, 1, 2, 51,
-				52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 0, 1, 2, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
-				11, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 28, 0, 30, 31, 32, 33, 34, 0, 1, 2, 0, 4, 2, 6,
-				7, 8, 73, 74, 75, 76, 0, 78, 79, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 0, 0, 2, 3,
-				3, 36, 6, 0, 36, 9, 10, 48, 12, 0, 1, 15, 16, 4, 5, 0, 7, 8, 0, 1, 2, 3, 0, 5, 6, 3, 4, 9, 10, 11, 12,
-				13, 36, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 0, 49, 50, 50, 0, 27, 0, 73, 74, 75, 76, 0, 78, 79, 3,
-				9, 10, 0, 66, 67, 3, 69, 70, 71, 72, 73, 74, 75, 76, 0, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
-				90, 91, 92, 93, 94, 95, 96, 97, 0, 77, 2, 3, 37, 0, 6, 86, 87, 9, 10, 50, 12, 0, 1, 15, 16, 4, 5, 14, 7,
-				8, 0, 1, 2, 0, 0, 5, 6, 80, 81, 9, 10, 11, 12, 13, 36, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 99, 0, 49,
-				50, 29, 73, 74, 75, 76, 0, 78, 79, 0, 4, 2, 36, 7, 8, 0, 66, 67, 3, 69, 70, 71, 72, 73, 74, 75, 76, 0,
-				78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 0, 1, 2, 3, 37, 5, 6,
-				80, 81, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 1, 2, 27, 4, 29, 82, 7, 8, 83, 0,
-				35, 0, 0, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 0, 1, 2, 3, 0, 5, 6, 3, 0, 9, 10, 11, 12, 13, 14, 15,
-				16, 17, 18, 19, 20, 21, 22, 23, 48, 0, 0, 27, 3, 29, 4, 0, 1, 7, 8, 35, 5, 49, 38, 39, 40, 41, 42, 43,
-				44, 45, 46, 47, 0, 1, 2, 3, 27, 5, 6, 66, 67, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
-				0, 0, 2, 27, 4, 29, 6, 7, 8, 77, 0, 35, 2, 3, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 0, 1, 0, 3, 4, 5,
-				4, 7, 8, 7, 8, 0, 36, 13, 0, 4, 0, 1, 7, 8, 0, 0, 36, 37, 24, 25, 26, 6, 28, 29, 30, 31, 32, 33, 34, 24,
-				25, 26, 0, 28, 24, 30, 31, 32, 33, 34, 0, 9, 10, 3, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
-				63, 64, 65, 0, 1, 2, 3, 0, 5, 6, 27, 0, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 1,
-				2, 27, 4, 29, 82, 7, 8, 0, 0, 35, 0, 3, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 0, 1, 2, 3, 48, 5, 6, 0,
-				48, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 48, 0, 0, 27, 68, 29, 4, 6, 6, 7, 8, 35,
-				50, 0, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 0, 1, 0, 3, 4, 5, 0, 7, 8, 0, 1, 0, 0, 13, 5, 4, 14, 11,
-				7, 8, 83, 9, 10, 14, 24, 25, 26, 68, 28, 29, 30, 31, 32, 33, 34, 24, 25, 26, 0, 28, 2, 30, 31, 32, 33,
-				34, 68, 0, 71, 72, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 0, 1, 2, 3, 0, 5, 6,
-				84, 36, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 1, 2, 27, 4, 29, 0, 7, 8, 0, 0,
-				35, 2, 0, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 0, 1, 2, 3, 48, 5, 6, 0, 0, 9, 10, 11, 12, 13, 14, 15,
-				16, 17, 18, 19, 20, 21, 22, 23, 0, 1, 2, 27, 4, 29, 48, 7, 8, 48, 0, 35, 2, 0, 38, 39, 40, 41, 42, 43,
-				44, 45, 46, 47, 0, 1, 2, 3, 0, 5, 6, 66, 67, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
-				35, 0, 0, 27, 68, 29, 4, 6, 6, 7, 8, 35, 0, 1, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 0, 1, 0, 3, 4, 5,
-				4, 7, 8, 7, 8, 0, 0, 13, 2, 4, 0, 1, 7, 8, 0, 5, 66, 67, 24, 25, 26, 0, 28, 29, 30, 31, 32, 33, 34, 24,
-				25, 26, 0, 28, 0, 30, 31, 32, 33, 34, 68, 0, 71, 72, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
-				63, 64, 65, 0, 1, 2, 3, 0, 5, 6, 0, 0, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 1,
-				0, 27, 2, 29, 6, 24, 25, 26, 0, 35, 2, 0, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 0, 1, 2, 3, 48, 5, 6,
-				0, 84, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 0, 27, 4, 29, 4, 7, 8, 7, 8, 35,
-				0, 48, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 0, 1, 2, 3, 0, 5, 6, 48, 0, 9, 10, 11, 12, 13, 14, 15,
-				16, 17, 18, 19, 20, 21, 22, 23, 0, 1, 49, 27, 0, 29, 2, 3, 24, 25, 26, 35, 0, 0, 38, 39, 40, 41, 42, 43,
-				44, 45, 46, 47, 0, 1, 0, 14, 4, 5, 4, 7, 8, 7, 8, 0, 0, 13, 0, 0, 36, 37, 6, 4, 6, 0, 7, 8, 24, 25, 26,
-				0, 28, 2, 30, 31, 32, 33, 34, 24, 25, 26, 98, 24, 25, 26, 0, 28, 68, 30, 31, 32, 33, 34, 0, 51, 52, 53,
-				54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 0, 1, 2,
-				3, 0, 5, 6, 71, 72, 9, 10, 11, 12, 13, 0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 1, 2, 3, 28, 5, 6, 0,
-				0, 9, 10, 11, 12, 13, 0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 1, 2, 3, 28, 5, 6, 0, 25, 9, 10, 11, 12,
-				13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 1, 2, 0, 77, 5, 6, 0, 49, 9, 10, 11, 12, 13, 14, 15,
-				16, 17, 18, 19, 20, 21, 22, 23, 0, 50, 2, 0, 77, 0, 1, 2, 3, 4, 0, 6, 7, 8, 4, 36, 0, 7, 8, 0, 1, 2, 3,
-				4, 49, 6, 7, 8, 0, 24, 25, 26, 27, 28, 0, 30, 31, 32, 33, 34, 0, 36, 37, 24, 25, 26, 27, 28, 14, 30, 31,
-				32, 33, 34, 14, 36, 37, 0, 1, 2, 0, 1, 5, 6, 0, 5, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
-				22, 23, 0, 1, 2, 0, 69, 5, 6, 0, 0, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 1, 2,
-				0, 0, 5, 6, 0, 1, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 1, 2, 48, 69, 5, 6, 0,
-				49, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 1, 2, 0, 49, 5, 6, 0, 0, 9, 10, 11,
-				12, 13, 0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 1, 2, 0, 14, 5, 6, 48, 0, 9, 10, 11, 12, 13, 0, 15,
-				16, 17, 18, 19, 20, 21, 22, 23, 0, 1, 2, 0, 14, 5, 6, 0, 0, 9, 10, 11, 12, 13, 0, 15, 16, 17, 18, 19,
-				20, 21, 22, 23, 0, 1, 2, 0, 14, 5, 6, 0, 0, 9, 10, 11, 12, 13, 11, 15, 16, 17, 18, 19, 20, 21, 22, 23,
-				0, 1, 2, 0, 0, 5, 6, 3, 0, 9, 10, 11, 12, 13, 0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 0, 2, 4, 0,
-				1, 7, 8, 4, 5, 0, 7, 8, 0, 4, 2, 37, 7, 8, 0, 0, 0, 3, 24, 25, 26, 0, 28, 69, 30, 31, 32, 33, 34, 24,
-				25, 26, 0, 28, 2, 30, 31, 32, 33, 34, 0, 27, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 0, 69, 2, 0, 1, 2,
-				3, 0, 1, 2, 3, 49, 0, 0, 1, 15, 16, 4, 5, 0, 7, 8, 0, 1, 0, 3, 0, 1, 0, 0, 2, 5, 0, 11, 2, 3, 36, 0, 1,
-				36, 37, 0, 5, 36, 37, 0, 1, 0, 3, 0, 0, 14, 49, 3, 0, 0, 0, 3, 3, 37, 4, 0, 36, 7, 8, 24, 25, 26, 0, 37,
-				70, 0, 4, 0, 3, 7, 8, 0, 0, 0, 0, 27, 37, 36, 0, 85, 0, 37, 0, 0, 4, 37, 37, 7, 8, 0, 70, 0, 3, 49, 0,
-				0, 14, 48, 24, 25, 26, 0, 37, 0, 0, 4, 3, 3, 7, 8, 0, 70, 0, 0, 49, 24, 25, 26, 0, 0, 0, 0, 4, 0, 4, 7,
-				8, 7, 8, 0, 0, 27, 0, 4, 0, 14, 7, 8, 4, 0, 37, 7, 8, 0, 14, 0, 0, 0, 0, 0, 0, 0, 49, 49, 0, 0, 0, 68,
-				0, 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static byte termCheck[] = TermCheck.termCheck;
-
-	@Override
-	public final int termCheck(int index) {
-		return termCheck[index];
-	}
-
-	public interface TermAction {
-		public final static char termAction[] = { 0, 3218, 5235, 1, 1253, 3170, 5183, 1, 1, 1, 1, 1, 1, 1, 1, 459, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3227, 1, 3318, 1, 1, 1, 1, 1, 1213, 54, 64, 745, 843, 773, 1225, 2227,
-				1211, 800, 1223, 2977, 1214, 356, 2175, 3225, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 8, 3203,
-				3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203,
-				3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203,
-				445, 720, 3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203, 445, 720, 3203, 3203, 3203, 3203,
-				3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203, 3218, 5235, 1, 1253, 3170, 5183,
-				1, 1, 1, 1, 1, 1, 1, 1, 459, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3227, 1, 3318, 1, 1, 1, 1, 1, 1213,
-				355, 65, 745, 843, 773, 1225, 2227, 1211, 800, 1223, 2977, 1214, 58, 2175, 3225, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 3218, 5235, 1, 3228, 3170, 5183, 1, 1, 1, 1, 1, 1, 1, 1, 459, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 3227, 1, 3318, 1, 1, 1, 1, 1, 1213, 445, 720, 745, 843, 773, 1225, 2227, 1211, 800, 1223,
-				2977, 1214, 445, 720, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3218, 5235, 1, 3228, 3170, 5183,
-				1, 1, 1, 1, 1, 1, 1, 1, 459, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3227, 1, 3318, 1, 1, 1, 1, 1, 1213,
-				286, 59, 745, 843, 773, 1225, 2227, 1211, 800, 1223, 2977, 1214, 1, 3444, 2629, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 3218, 3229, 433, 3218, 902, 3230, 2712, 841, 856, 2703, 2694, 3234, 2721, 2901,
-				1472, 2868, 2820, 2653, 3231, 3232, 3233, 2681, 639, 1325, 3432, 3434, 3433, 3218, 3381, 1, 3382, 3380,
-				3435, 3383, 3379, 268, 3444, 1942, 270, 902, 649, 253, 841, 856, 2570, 2130, 2025, 1971, 61, 1750, 875,
-				3386, 3391, 3390, 3388, 3389, 3387, 3392, 3393, 3385, 3394, 3395, 3396, 1762, 2880, 2848, 1, 1, 3230,
-				3230, 3086, 731, 3230, 3218, 731, 3230, 3230, 2, 3230, 185, 3125, 3230, 3230, 3122, 3125, 72, 3116,
-				3119, 3218, 3229, 433, 3222, 1, 3230, 2712, 116, 3170, 2703, 2694, 3234, 2721, 1283, 3230, 2868, 2820,
-				2653, 3231, 3232, 3233, 2681, 639, 1325, 3218, 62, 3218, 3230, 3230, 3225, 3218, 116, 51, 2570, 2130,
-				2025, 1971, 3218, 1750, 875, 3226, 2593, 426, 1, 3230, 3230, 90, 3230, 3230, 3230, 3230, 3230, 3230,
-				3230, 3230, 60, 3230, 3230, 3230, 3230, 3230, 3230, 3230, 3230, 3230, 3230, 3230, 3230, 3230, 3230,
-				3230, 3230, 3230, 3230, 3230, 3230, 1, 3221, 3229, 3229, 90, 1, 3229, 1337, 2956, 3229, 3229, 3225,
-				3229, 184, 3137, 3229, 3229, 3134, 3137, 459, 3128, 3131, 3218, 1, 1, 63, 271, 1, 1, 2547, 2530, 1, 1,
-				1, 1, 1, 3229, 1, 1, 1, 1, 1, 1, 1, 1, 1, 66, 3079, 68, 3229, 3229, 3605, 2570, 2130, 2025, 1971, 253,
-				1750, 875, 3218, 902, 1470, 731, 841, 856, 3218, 3229, 3229, 3224, 3229, 3229, 3229, 3229, 3229, 3229,
-				3229, 3229, 3218, 3229, 3229, 3229, 3229, 3229, 3229, 3229, 3229, 3229, 3229, 3229, 3229, 3229, 3229,
-				3229, 3229, 3229, 3229, 3229, 3229, 3218, 5235, 1, 3228, 3223, 5183, 1, 2547, 2530, 1, 1, 1, 1, 1, 459,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3444, 2629, 3227, 3188, 3318, 2079, 3182, 3185, 2048, 3218, 1213, 88, 57,
-				745, 843, 773, 1225, 2227, 1211, 800, 1223, 2977, 1214, 3218, 5235, 1, 3228, 3218, 5183, 1, 3222, 3218,
-				1, 1, 1, 1, 1, 459, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1559, 1, 182, 3227, 3228, 3318, 902, 3218, 3229, 841,
-				856, 1213, 3230, 943, 745, 843, 773, 1225, 2227, 1211, 800, 1223, 2977, 1214, 3218, 5235, 1, 3228, 3227,
-				5183, 1, 445, 720, 1, 1, 1, 1, 1, 459, 1, 1, 1, 1, 1, 1, 1, 1, 1, 268, 3218, 1829, 3227, 902, 3318, 253,
-				841, 856, 3221, 1, 1213, 1829, 265, 745, 843, 773, 1225, 2227, 1211, 800, 1223, 2977, 1214, 3218, 1,
-				378, 191, 1, 1, 3179, 1, 1, 3173, 3176, 130, 731, 1, 67, 3104, 326, 3545, 3098, 3101, 3218, 3218, 731,
-				265, 1, 1, 1, 2916, 1, 3414, 1, 1, 1, 1, 1, 3432, 3434, 3433, 53, 3381, 3546, 3382, 3380, 3435, 3383,
-				3379, 3218, 2593, 426, 3228, 191, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3218, 5235, 1, 3228,
-				3218, 5183, 1, 3227, 3218, 1, 1, 1, 1, 1, 459, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3444, 2629, 3227, 3188,
-				3318, 2079, 3182, 3185, 69, 285, 1213, 3218, 494, 745, 843, 773, 1225, 2227, 1211, 800, 1223, 2977,
-				1214, 3218, 5235, 1, 3228, 1297, 5183, 1, 1, 2329, 1, 1, 1, 1, 1, 459, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1559,
-				48, 1, 3227, 1457, 3318, 3188, 2769, 253, 3182, 3185, 1213, 494, 70, 745, 843, 773, 1225, 2227, 1211,
-				800, 1223, 2977, 1214, 3218, 1, 3218, 190, 1, 1, 349, 1, 1, 3218, 3229, 131, 52, 1, 3230, 3113, 4442,
-				1369, 3107, 3110, 2048, 2593, 426, 1010, 1, 1, 1, 3476, 1, 3414, 1, 1, 1, 1, 1, 3432, 3434, 3433, 222,
-				3381, 850, 3382, 3380, 3435, 3383, 3379, 3476, 3218, 2760, 2739, 190, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 3218, 5235, 1, 3228, 3218, 5183, 1, 617, 731, 1, 1, 1, 1, 1, 459, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 3444, 2629, 3227, 3188, 3318, 3218, 3182, 3185, 3218, 3218, 1213, 1520, 56, 745, 843, 773, 1225,
-				2227, 1211, 800, 1223, 2977, 1214, 3218, 5235, 1, 3228, 1373, 5183, 1, 3218, 1, 1, 1, 1, 1, 1, 459, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 253, 3444, 2629, 3227, 902, 3318, 2268, 841, 856, 2288, 3218, 1213, 1196, 118,
-				745, 843, 773, 1225, 2227, 1211, 800, 1223, 2977, 1214, 3218, 5235, 1, 3228, 55, 5183, 1, 445, 720, 1,
-				1, 1, 1, 1, 459, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3206, 50, 1, 3227, 3475, 3318, 3188, 2769, 253, 3182, 3185,
-				1213, 3218, 2233, 745, 843, 773, 1225, 2227, 1211, 800, 1223, 2977, 1214, 3218, 1, 376, 191, 1, 1, 902,
-				1, 1, 841, 856, 132, 3218, 1, 2812, 3146, 208, 3229, 3140, 3143, 3218, 3230, 445, 720, 1, 1, 1, 3218, 1,
-				3414, 1, 1, 1, 1, 1, 3432, 3434, 3433, 71, 3381, 3218, 3382, 3380, 3435, 3383, 3379, 3476, 3218, 2760,
-				2739, 191, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3218, 5235, 1, 3228, 3218, 5183, 1, 3218, 3218,
-				1, 1, 1, 1, 1, 459, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3218, 2189, 3218, 3227, 1857, 3318, 1398, 3432, 3434,
-				3433, 3218, 1213, 1938, 3218, 745, 843, 773, 1225, 2227, 1211, 800, 1223, 2977, 1214, 3218, 5235, 1,
-				3228, 2309, 5183, 1, 201, 617, 1, 1, 1, 1, 1, 459, 1, 1, 1, 1, 1, 1, 1, 1, 1, 379, 256, 253, 3227, 902,
-				3318, 3200, 841, 856, 3194, 3197, 1213, 112, 3600, 745, 843, 773, 1225, 2227, 1211, 800, 1223, 2977,
-				1214, 3218, 5235, 1, 3228, 3218, 5183, 1, 1610, 248, 1, 1, 1, 1, 1, 459, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				3212, 2209, 3227, 1, 3318, 1829, 3224, 3432, 3434, 3433, 1213, 3218, 3218, 745, 843, 773, 1225, 2227,
-				1211, 800, 1223, 2977, 1214, 3218, 3229, 183, 922, 902, 3230, 902, 841, 856, 841, 856, 249, 3218, 2909,
-				49, 129, 731, 3223, 2925, 3095, 2769, 3218, 3089, 3092, 3432, 3434, 3433, 3218, 3381, 2472, 3382, 3380,
-				3435, 3383, 3379, 1, 1, 1, 3215, 3432, 3434, 3433, 3218, 3381, 3476, 3382, 3380, 3435, 3383, 3379, 3218,
-				3386, 3391, 3390, 3388, 3389, 3387, 3392, 3393, 3385, 3394, 3395, 3396, 1762, 2880, 2848, 3386, 3391,
-				3390, 3388, 3389, 3387, 3392, 3393, 3385, 3394, 3395, 3396, 1, 3229, 433, 3222, 3218, 3230, 1643, 2760,
-				2739, 2703, 2694, 3234, 2721, 1283, 3218, 2868, 2820, 2653, 3231, 3232, 3233, 2681, 639, 1325, 3218,
-				3229, 433, 3222, 815, 3230, 2243, 344, 30, 2703, 2694, 3234, 2721, 1283, 3218, 2868, 2820, 2653, 3231,
-				3232, 3233, 2681, 639, 1325, 1, 4100, 433, 29, 1429, 4002, 2712, 3218, 3561, 2703, 2694, 3234, 2721,
-				1283, 4442, 2868, 2820, 2653, 3231, 3232, 3233, 2681, 639, 1325, 30, 3218, 3229, 433, 220, 3221, 3230,
-				2712, 3218, 556, 2703, 2694, 3234, 2721, 1283, 4442, 2868, 2820, 2653, 3231, 3232, 3233, 2681, 639,
-				1325, 337, 29, 1693, 3218, 3221, 20, 179, 3158, 3158, 179, 377, 3158, 179, 179, 902, 731, 157, 841, 856,
-				354, 364, 364, 3191, 364, 3247, 3191, 364, 364, 3218, 179, 179, 179, 3158, 179, 3218, 179, 179, 179,
-				179, 179, 3218, 3158, 3158, 364, 364, 364, 3191, 364, 1094, 364, 364, 364, 364, 364, 1150, 364, 3191, 1,
-				4100, 433, 207, 683, 4002, 2712, 211, 683, 2703, 2694, 3234, 2721, 1283, 4442, 2868, 2820, 2653, 3231,
-				3232, 3233, 2681, 639, 1325, 3218, 3229, 433, 1, 589, 3230, 2712, 207, 3218, 2703, 2694, 3234, 2721,
-				1283, 4442, 2868, 2820, 2653, 3231, 3232, 3233, 2681, 639, 1325, 380, 3229, 433, 347, 3218, 3230, 2712,
-				3218, 3456, 2703, 2694, 3234, 2721, 1283, 4442, 2868, 2820, 2653, 3231, 3232, 3233, 2681, 639, 1325,
-				3218, 3229, 433, 3230, 1508, 3230, 2712, 1, 5159, 2703, 2694, 3234, 2721, 1283, 4442, 2868, 2820, 2653,
-				3231, 3232, 3233, 2681, 639, 1325, 3218, 3229, 433, 3218, 766, 3230, 2712, 3218, 3218, 2703, 2694, 3234,
-				2721, 1283, 365, 2868, 2820, 2653, 3231, 3232, 3233, 2681, 639, 1325, 3218, 3229, 2728, 3218, 4442,
-				3230, 2712, 3229, 3218, 2703, 2694, 3234, 2721, 1283, 3218, 2868, 2820, 2653, 3231, 3232, 3233, 2681,
-				639, 1325, 3218, 3229, 2780, 3218, 651, 3230, 2712, 3218, 3218, 2703, 2694, 3234, 2721, 1283, 229, 2868,
-				2820, 2653, 3231, 3232, 3233, 2681, 639, 1325, 1, 3229, 433, 3218, 232, 3230, 2712, 3218, 42, 2703,
-				2694, 3234, 2721, 1283, 1369, 2868, 2820, 2653, 3231, 3232, 3233, 2681, 639, 1325, 332, 3229, 433, 3218,
-				1, 3230, 2712, 3224, 3218, 2703, 2694, 3234, 2721, 1283, 3218, 2868, 2820, 2653, 3231, 3232, 3233, 2681,
-				639, 1325, 133, 3218, 3218, 1665, 3155, 206, 5557, 3149, 3152, 902, 5557, 366, 841, 856, 324, 3167, 759,
-				3223, 3161, 3164, 3218, 3218, 3218, 3228, 3432, 3434, 3433, 3218, 3381, 1255, 3382, 3380, 3435, 3383,
-				3379, 3432, 3434, 3433, 3218, 3381, 2512, 3382, 3380, 3435, 3383, 3379, 3218, 3227, 1227, 1199, 1171,
-				1143, 1115, 1059, 1087, 1031, 1003, 975, 32, 687, 3080, 1, 3444, 1942, 262, 1, 3209, 1942, 3224, 1913,
-				3218, 375, 5566, 3244, 3245, 902, 5566, 3218, 841, 856, 3218, 1997, 3218, 3224, 3218, 3229, 350, 3218,
-				1386, 3230, 3218, 1967, 518, 3224, 3083, 3218, 3229, 731, 262, 250, 3230, 731, 3223, 3218, 1242, 292,
-				3224, 3218, 3218, 1038, 262, 3224, 1, 3218, 159, 116, 3224, 3223, 902, 3218, 1481, 841, 856, 1, 1, 1,
-				370, 3223, 580, 3218, 902, 3218, 3224, 841, 856, 3218, 3218, 3218, 251, 116, 3223, 1532, 3218, 422, 369,
-				3223, 229, 3218, 902, 116, 3223, 841, 856, 3218, 812, 252, 3222, 588, 3218, 3218, 233, 1252, 3432, 3434,
-				3433, 371, 3223, 3218, 3218, 902, 3224, 3228, 841, 856, 3218, 911, 3218, 3218, 915, 3432, 3434, 3433,
-				200, 3218, 372, 189, 902, 3218, 902, 841, 856, 841, 856, 373, 379, 3227, 3218, 902, 374, 206, 841, 856,
-				902, 3218, 3223, 841, 856, 3218, 375, 3218, 3218, 3218, 3218, 3218, 3218, 3218, 1408, 1996, 3218, 3218,
-				3218, 1583, 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3221 };
-	}
-
-	public final static char termAction[] = TermAction.termAction;
-
-	@Override
-	public final int termAction(int index) {
-		return termAction[index];
-	}
-
-	public interface Asb {
-		public final static char asb[] = { 0, 123, 1, 31, 54, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 62, 3, 289,
-				286, 293, 291, 301, 299, 303, 302, 305, 304, 275, 31, 3, 430, 430, 254, 31, 272, 272, 272, 114, 387,
-				371, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 618, 31, 31, 31, 31, 31,
-				31, 31, 31, 31, 31, 31, 31, 31, 272, 272, 250, 153, 118, 228, 473, 174, 173, 517, 549, 549, 549, 529,
-				510, 529, 510, 510, 529, 510, 529, 67, 529, 402, 31, 372, 286, 286, 291, 291, 291, 291, 291, 291, 289,
-				289, 299, 293, 293, 302, 301, 200, 200, 304, 303, 171, 351, 171, 114, 121, 109, 28, 250, 506, 232, 272,
-				551, 476, 365, 271, 616, 169, 510, 430, 427, 430, 169, 430, 510, 31, 71, 3, 371, 597, 317, 317, 430,
-				549, 549, 584, 549, 549, 317, 200, 31, 200, 225, 542, 31, 31, 351, 151, 121, 109, 506, 250, 231, 228,
-				272, 112, 402, 452, 478, 143, 271, 364, 272, 440, 320, 171, 354, 272, 369, 317, 317, 385, 31, 370, 31,
-				31, 584, 200, 433, 584, 549, 544, 151, 109, 109, 31, 31, 250, 232, 473, 457, 456, 118, 478, 272, 452,
-				451, 270, 171, 440, 320, 354, 354, 179, 597, 317, 542, 272, 549, 272, 272, 584, 31, 584, 468, 171, 316,
-				460, 544, 544, 463, 118, 436, 356, 220, 109, 506, 250, 250, 272, 551, 476, 112, 143, 272, 253, 272, 272,
-				320, 351, 541, 320, 354, 356, 445, 356, 317, 597, 544, 584, 31, 584, 584, 58, 450, 57, 371, 544, 460,
-				460, 118, 153, 544, 351, 149, 466, 202, 430, 31, 200, 50, 506, 109, 478, 452, 320, 194, 356, 351, 31,
-				430, 254, 317, 272, 370, 468, 317, 47, 616, 372, 460, 544, 436, 62, 153, 360, 430, 31, 109, 272, 452,
-				253, 351, 316, 31, 312, 194, 313, 351, 272, 254, 317, 584, 431, 272, 371, 31, 250, 431, 194, 31, 313,
-				313, 584, 272, 272, 250, 313, 584 };
-	}
-
-	public final static char asb[] = Asb.asb;
-
-	@Override
-	public final int asb(int index) {
-		return asb[index];
-	}
-
-	public interface Asr {
-		public final static byte asr[] = { 0, 99, 0, 30, 51, 52, 63, 31, 53, 32, 54, 55, 33, 56, 57, 28, 64, 34, 65, 58,
-				59, 60, 61, 62, 7, 8, 4, 14, 24, 26, 25, 2, 18, 19, 20, 11, 5, 15, 16, 12, 9, 10, 21, 22, 17, 23, 13, 1,
-				6, 0, 69, 36, 70, 0, 77, 27, 99, 49, 37, 3, 48, 0, 48, 68, 77, 50, 99, 70, 85, 15, 16, 33, 28, 34, 32,
-				31, 30, 12, 9, 10, 71, 72, 66, 67, 73, 74, 75, 76, 80, 81, 82, 83, 84, 86, 87, 69, 88, 89, 90, 91, 92,
-				93, 94, 95, 96, 97, 78, 79, 27, 24, 26, 25, 49, 1, 3, 37, 2, 36, 4, 8, 7, 6, 0, 17, 18, 19, 20, 11, 1,
-				5, 2, 15, 16, 12, 6, 9, 10, 21, 22, 13, 23, 29, 0, 3, 49, 37, 1, 24, 0, 3, 50, 36, 70, 15, 16, 12, 6, 9,
-				10, 21, 22, 17, 23, 13, 2, 18, 19, 20, 11, 1, 5, 14, 0, 2, 3, 49, 37, 36, 0, 30, 24, 31, 32, 33, 26, 28,
-				34, 25, 3, 36, 49, 37, 27, 14, 6, 1, 2, 4, 8, 7, 48, 0, 69, 15, 16, 12, 6, 9, 10, 21, 22, 17, 23, 13, 2,
-				18, 19, 20, 11, 14, 1, 5, 36, 70, 0, 2, 25, 0, 24, 26, 25, 28, 15, 16, 12, 6, 9, 10, 21, 22, 17, 23, 13,
-				2, 1, 5, 18, 19, 20, 11, 77, 3, 0, 49, 17, 18, 19, 20, 5, 2, 15, 16, 12, 6, 9, 10, 21, 22, 13, 23, 11,
-				1, 37, 3, 0, 69, 88, 89, 90, 91, 92, 94, 93, 95, 96, 97, 6, 71, 72, 9, 10, 67, 66, 73, 74, 75, 76, 78,
-				79, 80, 81, 12, 82, 83, 84, 68, 77, 37, 50, 99, 86, 87, 48, 4, 8, 7, 49, 27, 3, 0, 30, 51, 24, 52, 63,
-				31, 53, 32, 54, 55, 33, 26, 56, 57, 28, 64, 34, 65, 58, 59, 25, 60, 61, 62, 1, 5, 13, 7, 8, 4, 29, 3,
-				50, 0, 1, 5, 3, 50, 49, 0, 77, 3, 68, 0, 1, 37, 3, 2, 0, 37, 98, 50, 39, 41, 14, 45, 47, 42, 35, 43, 44,
-				40, 38, 46, 29, 3, 27, 2, 18, 19, 20, 11, 15, 16, 12, 6, 9, 10, 21, 22, 17, 23, 13, 63, 64, 65, 59, 51,
-				56, 54, 55, 53, 52, 57, 58, 60, 61, 62, 34, 31, 28, 30, 33, 24, 26, 25, 32, 4, 8, 7, 5, 1, 0, 48, 68, 0,
-				3, 69, 49, 27, 14, 4, 8, 7, 0, 3, 49, 50, 69, 0, 48, 2, 3, 37, 49, 0, 2, 48, 37, 36, 4, 8, 7, 3, 49, 27,
-				69, 0, 3, 48, 37, 11, 0, 6, 2, 36, 37, 3, 30, 51, 52, 63, 31, 53, 32, 54, 55, 33, 56, 57, 28, 64, 34,
-				65, 58, 59, 60, 61, 62, 1, 5, 13, 7, 8, 4, 68, 24, 26, 25, 0, 1, 5, 14, 4, 8, 7, 0, 59, 51, 56, 54, 55,
-				53, 52, 57, 58, 60, 61, 62, 36, 49, 37, 34, 31, 28, 30, 33, 24, 26, 25, 32, 48, 27, 3, 6, 1, 7, 8, 4, 2,
-				0, 6, 30, 51, 24, 52, 63, 31, 53, 32, 54, 55, 33, 26, 56, 57, 28, 64, 34, 65, 58, 59, 25, 60, 61, 62, 1,
-				5, 13, 68, 4, 8, 7, 0, 39, 41, 14, 45, 47, 42, 35, 43, 44, 40, 38, 46, 29, 17, 18, 19, 20, 1, 5, 2, 15,
-				16, 12, 6, 9, 10, 21, 22, 13, 23, 27, 3, 11, 0, 17, 18, 19, 20, 11, 1, 5, 2, 15, 16, 12, 6, 9, 10, 21,
-				22, 13, 23, 48, 0 };
-	}
-
-	public final static byte asr[] = Asr.asr;
-
-	@Override
-	public final int asr(int index) {
-		return asr[index];
-	}
-
-	public interface Nasb {
-		public final static char nasb[] = { 0, 40, 27, 51, 27, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 27, 28, 27,
-				27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 51, 28, 17, 17, 43, 30, 87, 87, 87, 117, 1, 35, 51, 51, 51, 51,
-				51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 173, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
-				51, 51, 87, 87, 64, 142, 148, 62, 116, 13, 13, 78, 27, 27, 27, 79, 114, 79, 114, 114, 79, 114, 79, 27,
-				79, 72, 51, 89, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 143, 135,
-				27, 156, 27, 140, 66, 64, 81, 63, 87, 146, 55, 87, 83, 27, 8, 140, 8, 140, 8, 8, 8, 140, 51, 27, 28, 95,
-				177, 179, 179, 8, 27, 27, 151, 27, 27, 179, 27, 69, 27, 58, 178, 51, 51, 36, 135, 27, 114, 81, 64, 63,
-				38, 87, 131, 19, 27, 99, 46, 86, 27, 87, 114, 135, 27, 135, 87, 27, 179, 179, 160, 30, 27, 30, 30, 151,
-				27, 27, 151, 27, 104, 49, 114, 135, 51, 51, 64, 63, 130, 13, 13, 148, 99, 87, 87, 27, 87, 27, 140, 165,
-				135, 8, 143, 162, 179, 178, 87, 27, 87, 87, 151, 51, 151, 102, 53, 179, 114, 137, 133, 27, 148, 27, 15,
-				10, 135, 81, 64, 64, 87, 146, 55, 110, 46, 87, 51, 87, 87, 135, 36, 178, 126, 8, 15, 27, 27, 179, 162,
-				121, 151, 30, 151, 151, 87, 27, 27, 35, 121, 140, 114, 148, 50, 105, 36, 48, 27, 50, 8, 51, 27, 33, 81,
-				38, 169, 87, 165, 121, 15, 36, 51, 8, 162, 179, 87, 27, 102, 179, 27, 102, 89, 140, 112, 27, 60, 50, 64,
-				8, 51, 38, 87, 87, 51, 36, 179, 51, 27, 137, 114, 36, 87, 162, 179, 151, 27, 87, 95, 51, 64, 27, 121,
-				51, 114, 140, 151, 87, 87, 64, 140, 151 };
-	}
-
-	public final static char nasb[] = Nasb.nasb;
-
-	@Override
-	public final int nasb(int index) {
-		return nasb[index];
-	}
-
-	public interface Nasr {
-		public final static char nasr[] = { 0, 103, 116, 101, 100, 87, 99, 98, 1, 0, 1, 140, 0, 52, 0, 80, 0, 94, 0,
-				103, 116, 102, 101, 100, 87, 99, 98, 0, 60, 29, 7, 30, 0, 132, 0, 7, 50, 0, 32, 0, 7, 117, 0, 7, 119, 0,
-				112, 0, 110, 7, 59, 5, 0, 133, 0, 24, 7, 0, 137, 0, 128, 0, 7, 5, 41, 0, 5, 7, 0, 5, 139, 0, 87, 81, 82,
-				83, 84, 93, 72, 53, 0, 75, 0, 136, 24, 0, 114, 24, 0, 31, 7, 1, 34, 96, 0, 34, 1, 50, 71, 7, 31, 0, 92,
-				0, 7, 28, 45, 43, 48, 0, 64, 63, 45, 43, 28, 0, 24, 63, 64, 7, 0, 7, 45, 43, 28, 0, 7, 60, 89, 0, 24,
-				64, 63, 43, 45, 7, 0, 43, 45, 7, 12, 0, 5, 59, 57, 0, 7, 31, 28, 61, 0, 1, 34, 7, 35, 0, 64, 63, 28, 0,
-				31, 66, 7, 67, 0, 105, 7, 60, 0, 125, 7, 31, 0, 7, 30, 118, 0, 30, 7, 26, 0 };
-	}
-
-	public final static char nasr[] = Nasr.nasr;
-
-	@Override
-	public final int nasr(int index) {
-		return nasr[index];
-	}
-
-	public interface TerminalIndex {
-		public final static char terminalIndex[] = { 0, 87, 2, 89, 99, 88, 9, 97, 98, 10, 11, 86, 8, 95, 3, 6, 7, 70,
-				83, 84, 85, 12, 13, 96, 50, 78, 66, 94, 71, 100, 46, 57, 62, 65, 74, 79, 1, 92, 47, 48, 51, 52, 53, 59,
-				60, 61, 67, 73, 29, 42, 93, 49, 54, 58, 63, 64, 68, 69, 76, 77, 80, 81, 82, 56, 72, 75, 16, 17, 30, 31,
-				4, 14, 15, 18, 19, 20, 21, 91, 43, 44, 22, 23, 24, 25, 26, 5, 27, 28, 32, 33, 34, 35, 36, 37, 38, 39,
-				40, 41, 55, 101, 90 };
-	}
-
-	public final static char terminalIndex[] = TerminalIndex.terminalIndex;
-
-	@Override
-	public final int terminalIndex(int index) {
-		return terminalIndex[index];
-	}
-
-	public interface NonterminalIndex {
-		public final static char nonterminalIndex[] = { 0, 107, 0, 0, 0, 109, 113, 0, 114, 115, 116, 117, 186, 0, 0, 0,
-				118, 119, 120, 121, 122, 123, 124, 0, 104, 0, 106, 125, 187, 130, 108, 134, 142, 0, 126, 129, 0, 0, 0,
-				0, 0, 103, 162, 164, 0, 165, 0, 0, 167, 0, 105, 152, 166, 141, 0, 0, 0, 112, 128, 0, 156, 163, 177, 178,
-				179, 0, 133, 0, 151, 174, 0, 132, 144, 0, 168, 172, 173, 176, 0, 111, 0, 145, 146, 147, 148, 149, 150,
-				153, 0, 155, 159, 161, 191, 194, 110, 127, 131, 135, 136, 137, 138, 139, 140, 143, 0, 154, 158, 0, 160,
-				171, 181, 0, 188, 0, 190, 0, 193, 102, 0, 0, 0, 0, 157, 0, 169, 170, 175, 180, 0, 182, 183, 0, 184, 185,
-				0, 0, 189, 0, 0, 192, 195, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
-
-	@Override
-	public final int nonterminalIndex(int index) {
-		return nonterminalIndex[index];
-	}
-
-	public interface ScopePrefix {
-		public final static char scopePrefix[] = { 198, 254, 330, 216, 310, 121, 147, 153, 282, 95, 359, 381, 338, 1,
-				104, 137, 163, 183, 63, 262, 320, 35, 59, 71, 77, 109, 159, 233, 298, 71, 420, 424, 355, 377, 390, 404,
-				390, 344, 15, 27, 56, 8, 8, 113, 116, 168, 116, 193, 116, 243, 248, 251, 307, 428, 50, 83, 89, 129, 237,
-				83, 401, 411, 411, 8, 129, 272, 206, 368, 206, 272, 20, 20, 41, 229, 41, 41, 41, 41, 41, 305, 399, 20,
-				20, 45, 142, 171, 142, 171, 171 };
-	}
-
-	public final static char scopePrefix[] = ScopePrefix.scopePrefix;
-
-	@Override
-	public final int scopePrefix(int index) {
-		return scopePrefix[index];
-	}
-
-	public interface ScopeSuffix {
-		public final static char scopeSuffix[] = { 75, 75, 317, 75, 317, 127, 6, 6, 75, 101, 365, 387, 325, 6, 39, 127,
-				6, 39, 68, 267, 325, 39, 39, 75, 81, 39, 6, 231, 231, 75, 39, 6, 317, 317, 317, 408, 394, 348, 18, 18,
-				39, 6, 6, 39, 119, 6, 178, 39, 196, 246, 246, 246, 231, 39, 53, 86, 92, 144, 240, 302, 53, 414, 417, 11,
-				132, 267, 223, 371, 209, 275, 25, 33, 43, 231, 288, 290, 292, 294, 296, 231, 231, 22, 30, 47, 144, 180,
-				132, 173, 188 };
-	}
-
-	public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
-
-	@Override
-	public final int scopeSuffix(int index) {
-		return scopeSuffix[index];
-	}
-
-	public interface ScopeLhs {
-		public final static char scopeLhs[] = { 83, 81, 39, 83, 39, 61, 52, 52, 81, 57, 39, 38, 39, 141, 65, 61, 52, 48,
-				13, 81, 39, 93, 111, 133, 78, 65, 52, 89, 66, 29, 5, 5, 39, 38, 38, 23, 38, 39, 106, 86, 3, 132, 131,
-				63, 77, 52, 124, 45, 51, 82, 82, 82, 40, 3, 36, 78, 110, 61, 89, 66, 36, 8, 5, 141, 61, 81, 83, 39, 83,
-				81, 106, 86, 116, 89, 102, 101, 100, 99, 98, 66, 37, 106, 86, 139, 61, 48, 61, 46, 48 };
-	}
-
-	public final static char scopeLhs[] = ScopeLhs.scopeLhs;
-
-	@Override
-	public final int scopeLhs(int index) {
-		return scopeLhs[index];
-	}
-
-	public interface ScopeLa {
-		public final static byte scopeLa[] = { 50, 50, 37, 50, 37, 24, 77, 77, 50, 50, 37, 98, 27, 77, 37, 24, 77, 37,
-				37, 14, 27, 37, 37, 50, 14, 37, 77, 27, 27, 50, 37, 77, 37, 37, 37, 48, 37, 27, 7, 7, 37, 77, 77, 37, 2,
-				77, 1, 37, 1, 1, 1, 1, 27, 37, 48, 1, 69, 6, 1, 1, 48, 37, 37, 68, 6, 14, 14, 35, 1, 1, 1, 1, 13, 27, 1,
-				63, 64, 64, 59, 27, 27, 1, 1, 68, 6, 2, 6, 2, 2 };
-	}
-
-	public final static byte scopeLa[] = ScopeLa.scopeLa;
-
-	@Override
-	public final int scopeLa(int index) {
-		return scopeLa[index];
-	}
-
-	public interface ScopeStateSet {
-		public final static char scopeStateSet[] = { 48, 48, 113, 48, 113, 92, 99, 99, 48, 39, 113, 113, 113, 6, 103,
-				92, 99, 17, 52, 48, 113, 48, 14, 8, 124, 103, 99, 10, 33, 110, 129, 129, 113, 113, 113, 165, 113, 113,
-				1, 27, 129, 4, 6, 103, 105, 99, 29, 17, 20, 48, 48, 48, 113, 129, 113, 124, 199, 92, 10, 33, 113, 136,
-				129, 6, 92, 48, 48, 113, 48, 48, 1, 27, 49, 10, 49, 49, 49, 49, 49, 33, 113, 1, 27, 31, 92, 17, 92, 17,
-				17 };
-	}
-
-	public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet;
-
-	@Override
-	public final int scopeStateSet(int index) {
-		return scopeStateSet[index];
-	}
-
-	public interface ScopeRhs {
-		public final static char scopeRhs[] = { 0, 158, 68, 158, 36, 0, 103, 0, 158, 36, 0, 30, 128, 103, 0, 190, 128,
-				0, 187, 0, 128, 0, 159, 187, 0, 159, 0, 151, 128, 0, 152, 187, 0, 152, 0, 179, 2, 13, 0, 104, 0, 203, 0,
-				194, 0, 158, 0, 30, 128, 0, 239, 39, 0, 29, 129, 0, 129, 2, 0, 235, 2, 212, 0, 234, 2, 2, 7, 0, 104,
-				104, 0, 196, 107, 14, 0, 105, 0, 224, 107, 131, 0, 185, 0, 107, 131, 0, 169, 185, 0, 229, 107, 0, 31,
-				151, 0, 180, 227, 107, 14, 159, 0, 105, 0, 0, 174, 107, 2, 163, 0, 174, 107, 2, 0, 177, 2, 0, 161, 107,
-				0, 177, 0, 107, 149, 6, 149, 161, 0, 172, 0, 149, 161, 0, 9, 0, 0, 172, 0, 107, 149, 6, 149, 0, 149, 0,
-				9, 0, 0, 127, 28, 209, 107, 36, 0, 127, 209, 107, 28, 36, 0, 127, 28, 36, 0, 127, 209, 107, 36, 0, 127,
-				36, 0, 145, 0, 2, 0, 170, 104, 0, 167, 0, 2, 104, 0, 174, 107, 2, 145, 0, 2, 0, 168, 104, 0, 151, 2, 0,
-				162, 0, 180, 207, 107, 14, 101, 223, 63, 0, 223, 63, 0, 107, 3, 0, 0, 0, 105, 0, 180, 207, 107, 14, 223,
-				63, 0, 3, 0, 0, 0, 105, 0, 160, 0, 106, 0, 222, 107, 160, 0, 107, 160, 0, 157, 106, 0, 188, 63, 0, 107,
-				0, 188, 65, 0, 188, 64, 0, 204, 107, 14, 221, 101, 220, 187, 0, 221, 101, 220, 187, 0, 3, 0, 0, 105, 0,
-				220, 187, 0, 107, 0, 3, 0, 0, 105, 0, 204, 107, 14, 220, 187, 0, 148, 0, 147, 0, 146, 0, 145, 0, 144, 0,
-				197, 107, 131, 0, 135, 106, 0, 131, 0, 130, 46, 0, 167, 126, 167, 166, 2, 43, 0, 104, 129, 0, 167, 166,
-				2, 43, 0, 106, 0, 104, 129, 0, 167, 126, 167, 126, 167, 2, 43, 0, 167, 126, 167, 2, 43, 0, 167, 2, 43,
-				0, 106, 0, 106, 0, 104, 129, 0, 130, 2, 35, 0, 130, 2, 35, 135, 42, 0, 104, 106, 0, 135, 42, 0, 79, 2,
-				108, 104, 106, 0, 130, 2, 47, 0, 135, 124, 130, 2, 45, 0, 55, 129, 0, 130, 2, 45, 0, 104, 129, 55, 129,
-				0, 134, 0, 158, 39, 0, 130, 87, 122, 0, 29, 125, 0, 179, 2, 0, 104, 114, 0, 104, 112, 0, 219, 2, 105, 0,
-				130, 36, 105, 0, 130, 2, 0 };
-	}
-
-	public final static char scopeRhs[] = ScopeRhs.scopeRhs;
-
-	@Override
-	public final int scopeRhs(int index) {
-		return scopeRhs[index];
-	}
-
-	public interface ScopeState {
-		public final static char scopeState[] = { 0, 1996, 1856, 0, 452, 0, 412, 0, 582, 0, 2945, 1855, 2890, 0, 588,
-				518, 0, 2159, 2101, 1721, 1996, 2061, 1856, 2629, 2110, 1942, 1888, 1913, 1832, 1696, 0, 843, 0, 1788,
-				1771, 2812, 1652, 1635, 0, 687, 659, 556, 589, 654, 528, 417, 2162, 0, 1279, 424, 388, 0, 3039, 3030,
-				2978, 1996, 2957, 2061, 2159, 3009, 1856, 2101, 2947, 2736, 1913, 1832, 1721, 2110, 2361, 2217, 2925,
-				1696, 2920, 424, 2916, 1714, 1685, 1625, 855, 2554, 1279, 2637, 2612, 1762, 2608, 2880, 2848, 2577,
-				1896, 2286, 2182, 388, 2839, 2370, 2816, 2789, 2211, 2785, 0, 1454, 1269, 601, 416, 1721, 2554, 1942,
-				1888, 1829, 2731, 0, 2780, 2728, 433, 2489, 2469, 2448, 2428, 2387, 2371, 2329, 2309, 2288, 2268, 2227,
-				1788, 1771, 1652, 1635, 0, 2909, 2901, 2868, 2820, 2653, 1325, 1283, 2243, 1643, 2162, 617, 1337, 2079,
-				2048, 2547, 2530, 2175, 720, 445, 2570, 2130, 2025, 1971, 1750, 875, 2769, 2760, 2739, 2593, 426, 2721,
-				2712, 2703, 2694, 2681, 639, 1610, 1583, 1559, 915, 1532, 687, 1508, 1481, 659, 589, 759, 1457, 1429,
-				1401, 887, 1373, 1297, 843, 815, 731, 1255, 1227, 1199, 1171, 1143, 1115, 1087, 1059, 1031, 1003, 975,
-				388, 943, 787, 556, 528, 0 };
-	}
-
-	public final static char scopeState[] = ScopeState.scopeState;
-
-	@Override
-	public final int scopeState(int index) {
-		return scopeState[index];
-	}
-
-	public interface InSymb {
-		public final static char inSymb[] = { 0, 0, 217, 107, 195, 13, 23, 17, 22, 21, 10, 9, 6, 12, 16, 15, 105, 2,
-				110, 109, 116, 111, 118, 117, 120, 119, 122, 121, 106, 49, 2, 85, 70, 2, 36, 129, 179, 130, 160, 107,
-				14, 10, 9, 72, 71, 6, 79, 78, 76, 75, 74, 73, 66, 67, 12, 81, 80, 83, 82, 87, 86, 84, 97, 96, 95, 93,
-				94, 92, 91, 90, 89, 88, 69, 179, 219, 130, 124, 107, 36, 2, 164, 163, 198, 7, 8, 4, 199, 187, 200, 65,
-				64, 201, 63, 202, 101, 216, 203, 13, 107, 109, 109, 111, 111, 111, 111, 111, 111, 110, 110, 117, 116,
-				116, 119, 118, 218, 130, 121, 120, 124, 14, 159, 161, 149, 128, 28, 127, 107, 6, 177, 107, 2, 2, 2, 2,
-				220, 128, 188, 128, 188, 223, 188, 128, 13, 106, 2, 196, 46, 38, 40, 44, 43, 35, 42, 47, 45, 134, 41,
-				39, 101, 4, 131, 48, 48, 107, 14, 149, 6, 107, 127, 209, 175, 174, 131, 107, 176, 107, 2, 236, 1, 11,
-				101, 14, 101, 14, 179, 3, 130, 101, 2, 2, 135, 2, 2, 48, 239, 158, 48, 237, 107, 107, 6, 149, 209, 28,
-				127, 6, 2, 143, 145, 107, 49, 174, 234, 212, 2, 221, 128, 107, 14, 107, 124, 166, 167, 131, 130, 35,
-				130, 130, 48, 68, 48, 2, 224, 197, 151, 128, 2, 186, 107, 148, 227, 107, 149, 107, 127, 127, 151, 107,
-				2, 161, 49, 124, 2, 11, 1, 14, 204, 160, 205, 107, 207, 101, 208, 167, 126, 107, 124, 2, 124, 124, 238,
-				11, 192, 14, 49, 128, 151, 107, 69, 161, 180, 49, 229, 240, 70, 36, 101, 230, 107, 175, 107, 235, 107,
-				107, 207, 180, 69, 49, 126, 167, 130, 135, 48, 124, 2, 49, 107, 128, 161, 148, 150, 69, 158, 70, 36,
-				175, 174, 225, 49, 204, 222, 48, 151, 128, 190, 180, 167, 126, 124, 98, 6, 1, 196, 68, 158, 49, 49, 48,
-				190, 128, 124, 167, 1, 158, 128, 124 };
-	}
-
-	public final static char inSymb[] = InSymb.inSymb;
-
-	@Override
-	public final int inSymb(int index) {
-		return inSymb[index];
-	}
-
-	public interface Name {
-		public final static String name[] = { "", "[", "(", "{", ".", "->", "++", "--", "&", "*", "+", "-", "~", "!",
-				"/", "%", ">>", "<<", "<", ">", "<=", ">=", "==", "!=", "^", "|", "&&", "||", "?", ":", "...", "=",
-				"*=", "/=", "%=", "+=", "-=", ">>=", "<<=", "&=", "^=", "|=", ",", ">?", "<?", "$empty", "auto",
-				"break", "case", "char", "const", "continue", "default", "do", "double", "else", "enum", "extern",
-				"float", "for", "goto", "if", "inline", "int", "long", "register", "restrict", "return", "short",
-				"signed", "sizeof", "static", "struct", "switch", "typedef", "union", "unsigned", "void", "volatile",
-				"while", "_Bool", "_Complex", "_Imaginary", "integer", "floating", "charconst", "stringlit",
-				"identifier", "Completion", "EndOfCompletion", "Invalid", "RightBracket", "RightParen", "RightBrace",
-				"SemiColon", "typeof", "__alignof__", "__attribute__", "__declspec", "asm", "ERROR_TOKEN", "EOF_TOKEN",
-				"no_sizeof_type_name_start", "]", ")", "}", ";", "identifier_token", "expression", "postfix_expression",
-				"member_name", "type_id", "initializer_list", "unary_expression", "cast_expression",
-				"multiplicative_expression", "additive_expression", "shift_expression", "relational_expression",
-				"equality_expression", "and_expression", "exclusive_or_expression", "inclusive_or_expression",
-				"logical_and_expression", "logical_or_expression", "assignment_expression", "expression_in_statement",
-				"expression_list_actual", "constant_expression", "statement", "compound_statement", "block_item_list",
-				"block_item", "declaration", "declaration_specifiers", "init_declarator_list",
-				"simple_declaration_specifiers", "struct_or_union_declaration_sp" + "ecifiers",
-				"elaborated_declaration_specifi" + "ers", "enum_declaration_specifiers",
-				"typdef_name_declaration_specif" + "iers", "no_type_declaration_specifier", "type_qualifier",
-				"no_type_declaration_specifiers", "simple_type_specifier", "struct_or_union_specifier",
-				"elaborated_specifier", "enum_specifier", "type_name_specifier", "init_declarator",
-				"complete_declarator", "initializer", "declarator", "struct_or_union", "struct_declaration_list",
-				"struct_declaration", "specifier_qualifier_list", "struct_declarator_list",
-				"complete_struct_declarator", "struct_declarator", "enumerator_list", "enumerator", "direct_declarator",
-				"pointer_seq", "array_direct_declarator", "basic_direct_declarator", "array_modifier",
-				"function_direct_declarator", "parameter_type_list", "function_declarator", "identifier_list",
-				"array_modifier_type_qualifiers", "type_qualifier_list", "parameter_list", "parameter_declaration",
-				"complete_parameter_declarator", "abstract_declarator", "direct_abstract_declarator",
-				"basic_direct_abstract_declarat" + "or", "array_direct_abstract_declarat" + "or", "initializer_seq",
-				"designated_initializer", "designation", "designator_list", "designator", "function_body",
-				"attribute_or_decl_specifier", "attribute_or_decl_specifier_se" + "q", "word",
-				"extended_decl_modifier_seq", "extended_decl_modifier", "extended_asm_param", "case_range_expression",
-				"typeof_declaration_specifiers", "typeof_type_specifier", "field_name_designator" };
-	}
-
-	public final static String name[] = Name.name;
-
-	@Override
-	public final String name(int index) {
-		return name[index];
-	}
-
-	public final static int ERROR_SYMBOL = 29, SCOPE_UBOUND = 88, SCOPE_SIZE = 89, MAX_NAME_LENGTH = 38;
-
-	@Override
-	public final int getErrorSymbol() {
-		return ERROR_SYMBOL;
-	}
-
-	@Override
-	public final int getScopeUbound() {
-		return SCOPE_UBOUND;
-	}
-
-	@Override
-	public final int getScopeSize() {
-		return SCOPE_SIZE;
-	}
-
-	@Override
-	public final int getMaxNameLength() {
-		return MAX_NAME_LENGTH;
-	}
-
-	public final static int NUM_STATES = 345, NT_OFFSET = 100, LA_STATE_OFFSET = 3605, MAX_LA = 2147483647,
-			NUM_RULES = 387, NUM_NONTERMINALS = 148, NUM_SYMBOLS = 248, SEGMENT_SIZE = 8192, START_STATE = 485,
-			IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 99, EOLT_SYMBOL = 99, ACCEPT_ACTION = 3079, ERROR_ACTION = 3218;
-
-	public final static boolean BACKTRACK = true;
-
-	@Override
-	public final int getNumStates() {
-		return NUM_STATES;
-	}
-
-	@Override
-	public final int getNtOffset() {
-		return NT_OFFSET;
-	}
-
-	@Override
-	public final int getLaStateOffset() {
-		return LA_STATE_OFFSET;
-	}
-
-	@Override
-	public final int getMaxLa() {
-		return MAX_LA;
-	}
-
-	@Override
-	public final int getNumRules() {
-		return NUM_RULES;
-	}
-
-	@Override
-	public final int getNumNonterminals() {
-		return NUM_NONTERMINALS;
-	}
-
-	@Override
-	public final int getNumSymbols() {
-		return NUM_SYMBOLS;
-	}
-
-	@Override
-	public final int getSegmentSize() {
-		return SEGMENT_SIZE;
-	}
-
-	@Override
-	public final int getStartState() {
-		return START_STATE;
-	}
-
-	@Override
-	public final int getStartSymbol() {
-		return lhs[0];
-	}
-
-	public final int getIdentifierSymbol() {
-		return IDENTIFIER_SYMBOL;
-	}
-
-	@Override
-	public final int getEoftSymbol() {
-		return EOFT_SYMBOL;
-	}
-
-	@Override
-	public final int getEoltSymbol() {
-		return EOLT_SYMBOL;
-	}
-
-	@Override
-	public final int getAcceptAction() {
-		return ACCEPT_ACTION;
-	}
-
-	@Override
-	public final int getErrorAction() {
-		return ERROR_ACTION;
-	}
-
-	@Override
-	public final boolean isValidForParser() {
-		return isValidForParser;
-	}
-
-	@Override
-	public final boolean getBacktrack() {
-		return BACKTRACK;
-	}
-
-	@Override
-	public final int originalState(int state) {
-		return -baseCheck[state];
-	}
-
-	@Override
-	public final int asi(int state) {
-		return asb[originalState(state)];
-	}
-
-	@Override
-	public final int nasi(int state) {
-		return nasb[originalState(state)];
-	}
-
-	@Override
-	public final int inSymbol(int state) {
-		return inSymb[originalState(state)];
-	}
-
-	@Override
-	public final int ntAction(int state, int sym) {
-		return baseAction[state + sym];
-	}
-
-	@Override
-	public final int tAction(int state, int sym) {
-		int i = baseAction[state], k = i + sym;
-		return termAction[termCheck[k] == sym ? k : i];
-	}
-
-	@Override
-	public final int lookAhead(int la_state, int sym) {
-		int k = la_state + sym;
-		return termAction[termCheck[k] == sym ? k : la_state];
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCSizeofExpressionParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCSizeofExpressionParsersym.java
deleted file mode 100644
index 65cabed..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gcc/GCCSizeofExpressionParsersym.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2010 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.lrparser.gcc;
-
-public interface GCCSizeofExpressionParsersym {
-	public final static int TK_auto = 30, TK_break = 38, TK_case = 39, TK_char = 51, TK_const = 24, TK_continue = 40,
-			TK_default = 41, TK_do = 42, TK_double = 52, TK_else = 98, TK_enum = 63, TK_extern = 31, TK_float = 53,
-			TK_for = 43, TK_goto = 44, TK_if = 45, TK_inline = 32, TK_int = 54, TK_long = 55, TK_register = 33,
-			TK_restrict = 26, TK_return = 46, TK_short = 56, TK_signed = 57, TK_sizeof = 17, TK_static = 28,
-			TK_struct = 64, TK_switch = 47, TK_typedef = 34, TK_union = 65, TK_unsigned = 58, TK_void = 59,
-			TK_volatile = 25, TK_while = 35, TK__Bool = 60, TK__Complex = 61, TK__Imaginary = 62, TK_integer = 18,
-			TK_floating = 19, TK_charconst = 20, TK_stringlit = 11, TK_identifier = 1, TK_Completion = 5,
-			TK_EndOfCompletion = 3, TK_Invalid = 100, TK_LeftBracket = 36, TK_LeftParen = 2, TK_LeftBrace = 14,
-			TK_Dot = 70, TK_Arrow = 85, TK_PlusPlus = 15, TK_MinusMinus = 16, TK_And = 12, TK_Star = 6, TK_Plus = 9,
-			TK_Minus = 10, TK_Tilde = 21, TK_Bang = 22, TK_Slash = 71, TK_Percent = 72, TK_RightShift = 66,
-			TK_LeftShift = 67, TK_LT = 73, TK_GT = 74, TK_LE = 75, TK_GE = 76, TK_EQ = 80, TK_NE = 81, TK_Caret = 82,
-			TK_Or = 83, TK_AndAnd = 84, TK_OrOr = 86, TK_Question = 87, TK_Colon = 48, TK_DotDotDot = 68,
-			TK_Assign = 69, TK_StarAssign = 88, TK_SlashAssign = 89, TK_PercentAssign = 90, TK_PlusAssign = 91,
-			TK_MinusAssign = 92, TK_RightShiftAssign = 93, TK_LeftShiftAssign = 94, TK_AndAssign = 95,
-			TK_CaretAssign = 96, TK_OrAssign = 97, TK_Comma = 49, TK_RightBracket = 77, TK_RightParen = 37,
-			TK_RightBrace = 50, TK_SemiColon = 27, TK_typeof = 13, TK___alignof__ = 23, TK___attribute__ = 7,
-			TK___declspec = 8, TK_MAX = 78, TK_MIN = 79, TK_asm = 4, TK_ERROR_TOKEN = 29, TK_EOF_TOKEN = 99;
-
-	public final static String orderedTerminalSymbols[] = { "", "identifier", "LeftParen", "EndOfCompletion", "asm",
-			"Completion", "Star", "__attribute__", "__declspec", "Plus", "Minus", "stringlit", "And", "typeof",
-			"LeftBrace", "PlusPlus", "MinusMinus", "sizeof", "integer", "floating", "charconst", "Tilde", "Bang",
-			"__alignof__", "const", "volatile", "restrict", "SemiColon", "static", "ERROR_TOKEN", "auto", "extern",
-			"inline", "register", "typedef", "while", "LeftBracket", "RightParen", "break", "case", "continue",
-			"default", "do", "for", "goto", "if", "return", "switch", "Colon", "Comma", "RightBrace", "char", "double",
-			"float", "int", "long", "short", "signed", "unsigned", "void", "_Bool", "_Complex", "_Imaginary", "enum",
-			"struct", "union", "RightShift", "LeftShift", "DotDotDot", "Assign", "Dot", "Slash", "Percent", "LT", "GT",
-			"LE", "GE", "RightBracket", "MAX", "MIN", "EQ", "NE", "Caret", "Or", "AndAnd", "Arrow", "OrOr", "Question",
-			"StarAssign", "SlashAssign", "PercentAssign", "PlusAssign", "MinusAssign", "RightShiftAssign",
-			"LeftShiftAssign", "AndAssign", "CaretAssign", "OrAssign", "else", "EOF_TOKEN", "Invalid" };
-
-	public final static boolean isValidForParser = true;
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParser.java
deleted file mode 100644
index 6a6f413..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParser.java
+++ /dev/null
@@ -1,3014 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2015 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.lrparser.gpp;
-
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.cdt.core.dom.ast.IASTBinaryExpression;
-import org.eclipse.cdt.core.dom.ast.IASTCompletionNode;
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.ast.IASTTypeIdExpression;
-import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTBinaryExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCastExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTLiteralExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTypeIdExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTUnaryExpression;
-import org.eclipse.cdt.core.dom.ast.gnu.cpp.IGPPASTExplicitTemplateInstantiation;
-import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter;
-import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
-import org.eclipse.cdt.core.dom.lrparser.IParser;
-import org.eclipse.cdt.core.dom.lrparser.ITokenCollector;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
-import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
-import org.eclipse.cdt.core.dom.lrparser.action.gnu.GNUBuildASTParserAction;
-import org.eclipse.cdt.core.dom.lrparser.action.gnu.GPPBuildASTParserAction;
-import org.eclipse.cdt.core.dom.lrparser.action.gnu.GPPSecondaryParserFactory;
-import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser;
-import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
-import org.eclipse.cdt.core.index.IIndex;
-import org.eclipse.cdt.core.parser.IScanner;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPNodeFactory;
-
-import lpg.lpgjavaruntime.BadParseException;
-import lpg.lpgjavaruntime.BadParseSymFileException;
-import lpg.lpgjavaruntime.DiagnoseParser;
-import lpg.lpgjavaruntime.ErrorToken;
-import lpg.lpgjavaruntime.IToken;
-import lpg.lpgjavaruntime.LexStream;
-import lpg.lpgjavaruntime.Monitor;
-import lpg.lpgjavaruntime.NotBacktrackParseTableException;
-import lpg.lpgjavaruntime.NullExportedSymbolsException;
-import lpg.lpgjavaruntime.NullTerminalSymbolsException;
-import lpg.lpgjavaruntime.ParseErrorCodes;
-import lpg.lpgjavaruntime.ParseTable;
-import lpg.lpgjavaruntime.PrsStream;
-import lpg.lpgjavaruntime.RuleAction;
-import lpg.lpgjavaruntime.UndefinedEofSymbolException;
-import lpg.lpgjavaruntime.UnimplementedTerminalsException;
-
-public class GPPParser extends PrsStream
-		implements RuleAction, ITokenStream, ITokenCollector, IParser<IASTTranslationUnit>
-
-{
-	private static ParseTable prs = new GPPParserprs();
-	private FixedBacktrackingParser btParser;
-
-	public FixedBacktrackingParser getParser() {
-		return btParser;
-	}
-
-	private void setResult(Object object) {
-		btParser.setSym1(object);
-	}
-
-	public Object getRhsSym(int i) {
-		return btParser.getSym(i);
-	}
-
-	public int getRhsTokenIndex(int i) {
-		return btParser.getToken(i);
-	}
-
-	public IToken getRhsIToken(int i) {
-		return super.getIToken(getRhsTokenIndex(i));
-	}
-
-	public int getRhsFirstTokenIndex(int i) {
-		return btParser.getFirstToken(i);
-	}
-
-	public IToken getRhsFirstIToken(int i) {
-		return super.getIToken(getRhsFirstTokenIndex(i));
-	}
-
-	public int getRhsLastTokenIndex(int i) {
-		return btParser.getLastToken(i);
-	}
-
-	public IToken getRhsLastIToken(int i) {
-		return super.getIToken(getRhsLastTokenIndex(i));
-	}
-
-	public int getLeftSpan() {
-		return btParser.getFirstToken();
-	}
-
-	@Override
-	public IToken getLeftIToken() {
-		return super.getIToken(getLeftSpan());
-	}
-
-	public int getRightSpan() {
-		return btParser.getLastToken();
-	}
-
-	@Override
-	public IToken getRightIToken() {
-		return super.getIToken(getRightSpan());
-	}
-
-	public int getRhsErrorTokenIndex(int i) {
-		int index = btParser.getToken(i);
-		IToken err = super.getIToken(index);
-		return (err instanceof ErrorToken ? index : 0);
-	}
-
-	public ErrorToken getRhsErrorIToken(int i) {
-		int index = btParser.getToken(i);
-		IToken err = super.getIToken(index);
-		return (ErrorToken) (err instanceof ErrorToken ? err : null);
-	}
-
-	public GPPParser(LexStream lexStream) {
-		super(lexStream);
-
-		try {
-			super.remapTerminalSymbols(orderedTerminalSymbols(), GPPParserprs.EOFT_SYMBOL);
-		} catch (NullExportedSymbolsException e) {
-		} catch (NullTerminalSymbolsException e) {
-		} catch (UnimplementedTerminalsException e) {
-			java.util.ArrayList unimplemented_symbols = e.getSymbols();
-			System.out.println("The Lexer will not scan the following token(s):");
-			for (int i = 0; i < unimplemented_symbols.size(); i++) {
-				Integer id = (Integer) unimplemented_symbols.get(i);
-				System.out.println("    " + GPPParsersym.orderedTerminalSymbols[id.intValue()]);
-			}
-			System.out.println();
-		} catch (UndefinedEofSymbolException e) {
-			throw new Error(new UndefinedEofSymbolException("The Lexer does not implement the Eof symbol "
-					+ GPPParsersym.orderedTerminalSymbols[GPPParserprs.EOFT_SYMBOL]));
-		}
-	}
-
-	@Override
-	public String[] orderedTerminalSymbols() {
-		return GPPParsersym.orderedTerminalSymbols;
-	}
-
-	public String getTokenKindName(int kind) {
-		return GPPParsersym.orderedTerminalSymbols[kind];
-	}
-
-	public int getEOFTokenKind() {
-		return GPPParserprs.EOFT_SYMBOL;
-	}
-
-	public PrsStream getParseStream() {
-		return this;
-	}
-
-	//
-	// Report error message for given error_token.
-	//
-	public final void reportErrorTokenMessage(int error_token, String msg) {
-		int firsttok = super.getFirstErrorToken(error_token), lasttok = super.getLastErrorToken(error_token);
-		String location = super.getFileName() + ':'
-				+ (firsttok > lasttok ? (super.getEndLine(lasttok) + ":" + super.getEndColumn(lasttok))
-						: (super.getLine(error_token) + ":" + super.getColumn(error_token) + ":"
-								+ super.getEndLine(error_token) + ":" + super.getEndColumn(error_token)))
-				+ ": ";
-		super.reportError((firsttok > lasttok ? ParseErrorCodes.INSERTION_CODE : ParseErrorCodes.SUBSTITUTION_CODE),
-				location, msg);
-	}
-
-	public void parser() {
-		parser(null, 0);
-	}
-
-	public void parser(Monitor monitor) {
-		parser(monitor, 0);
-	}
-
-	public void parser(int error_repair_count) {
-		parser(null, error_repair_count);
-	}
-
-	public void parser(Monitor monitor, int error_repair_count) {
-		try {
-			btParser = new FixedBacktrackingParser(monitor, this, prs, this);
-		} catch (NotBacktrackParseTableException e) {
-			throw new Error(new NotBacktrackParseTableException("Regenerate GPPParserprs.java with -BACKTRACK option"));
-		} catch (BadParseSymFileException e) {
-			throw new Error(new BadParseSymFileException("Bad Parser Symbol File -- GPPParsersym.java"));
-		}
-
-		try {
-			btParser.parse(error_repair_count);
-		} catch (BadParseException e) {
-			reset(e.error_token); // point to error token
-			DiagnoseParser diagnoseParser = new DiagnoseParser(this, prs);
-			diagnoseParser.diagnose(e.error_token);
-		}
-	}
-
-	private GPPBuildASTParserAction action;
-	private IASTCompletionNode compNode;
-
-	public GPPParser(IScanner scanner, IDOMTokenMap tokenMap, IBuiltinBindingsProvider builtinBindingsProvider,
-			IIndex index, Map<String, String> properties) {
-		initActions(properties);
-		action.initializeTranslationUnit(scanner, builtinBindingsProvider, index);
-		CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap);
-	}
-
-	private void initActions(Map<String, String> properties) {
-		ScopedStack<Object> astStack = new ScopedStack<>();
-
-		action = new GPPBuildASTParserAction(this, astStack, CPPNodeFactory.getDefault(),
-				GPPSecondaryParserFactory.getDefault());
-		action.setParserProperties(properties);
-
-		gnuAction = new GNUBuildASTParserAction(this, astStack, CPPNodeFactory.getDefault());
-		gnuAction.setParserProperties(properties);
-
-	}
-
-	@Override
-	public void addToken(IToken token) {
-		token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called?
-		super.addToken(token);
-	}
-
-	@Override
-	public IASTTranslationUnit parse() {
-		// this has to be done, or... kaboom!
-		setStreamLength(getSize());
-
-		final int errorRepairCount = -1; // -1 means full error handling
-		parser(null, errorRepairCount); // do the actual parse
-		super.resetTokenStream(); // allow tokens to be garbage collected
-
-		compNode = action.getASTCompletionNode(); // the completion node may be null
-		return (IASTTranslationUnit) action.getParseResult();
-	}
-
-	@Override
-	public IASTCompletionNode getCompletionNode() {
-		return compNode;
-	}
-
-	// uncomment this method to use with backtracking parser
-	@Override
-	public List<IToken> getRuleTokens() {
-		return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
-	}
-
-	@Override
-	public String[] getOrderedTerminalSymbols() {
-		return GPPParsersym.orderedTerminalSymbols;
-	}
-
-	@Override
-	@SuppressWarnings("nls")
-	public String getName() {
-		return "GPPParser";
-	}
-
-	private GNUBuildASTParserAction gnuAction;
-
-	@Override
-	public void ruleAction(int ruleNumber) {
-		switch (ruleNumber) {
-
-		//
-		// Rule 1:  <openscope-ast> ::= $Empty
-		//
-		case 1: {
-			action.openASTScope();
-			break;
-		}
-
-		//
-		// Rule 2:  <empty> ::= $Empty
-		//
-		case 2: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 13:  translation_unit ::= declaration_seq_opt
-		//
-		case 13: {
-			action.consumeTranslationUnit();
-			break;
-		}
-
-		//
-		// Rule 16:  literal ::= integer
-		//
-		case 16: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant);
-			break;
-		}
-
-		//
-		// Rule 17:  literal ::= floating
-		//
-		case 17: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_float_constant);
-			break;
-		}
-
-		//
-		// Rule 18:  literal ::= charconst
-		//
-		case 18: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant);
-			break;
-		}
-
-		//
-		// Rule 19:  literal ::= stringlit
-		//
-		case 19: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal);
-			break;
-		}
-
-		//
-		// Rule 20:  literal ::= true
-		//
-		case 20: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true);
-			break;
-		}
-
-		//
-		// Rule 21:  literal ::= false
-		//
-		case 21: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false);
-			break;
-		}
-
-		//
-		// Rule 22:  literal ::= this
-		//
-		case 22: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this);
-			break;
-		}
-
-		//
-		// Rule 24:  primary_expression ::= ( expression )
-		//
-		case 24: {
-			action.consumeExpressionBracketed();
-			break;
-		}
-
-		//
-		// Rule 26:  id_expression ::= qualified_or_unqualified_name
-		//
-		case 26: {
-			action.consumeExpressionName();
-			break;
-		}
-
-		//
-		// Rule 33:  unqualified_id_name ::= ~ identifier_token
-		//
-		case 33: {
-			action.consumeDestructorName();
-			break;
-		}
-
-		//
-		// Rule 34:  unqualified_id_name ::= ~ template_id_name
-		//
-		case 34: {
-			action.consumeDestructorNameTemplateId();
-			break;
-		}
-
-		//
-		// Rule 35:  identifier_name ::= identifier_token
-		//
-		case 35: {
-			action.consumeIdentifierName();
-			break;
-		}
-
-		//
-		// Rule 36:  template_opt ::= template
-		//
-		case 36: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 37:  template_opt ::= $Empty
-		//
-		case 37: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 38:  dcolon_opt ::= ::
-		//
-		case 38: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 39:  dcolon_opt ::= $Empty
-		//
-		case 39: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 40:  qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name
-		//
-		case 40: {
-			action.consumeQualifiedId(true);
-			break;
-		}
-
-		//
-		// Rule 41:  qualified_id_name ::= :: unqualified_id_name
-		//
-		case 41: {
-			action.consumeGlobalQualifiedId();
-			break;
-		}
-
-		//
-		// Rule 42:  nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template
-		//
-		case 42: {
-			action.consumeNestedNameSpecifier(true);
-			break;
-		}
-
-		//
-		// Rule 43:  nested_name_specifier ::= class_or_namespace_name ::
-		//
-		case 43: {
-			action.consumeNestedNameSpecifier(false);
-			break;
-		}
-
-		//
-		// Rule 44:  nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template
-		//
-		case 44: {
-			action.consumeNestedNameSpecifier(true);
-			break;
-		}
-
-		//
-		// Rule 45:  nested_name_specifier_with_template ::= class_or_namespace_name_with_template ::
-		//
-		case 45: {
-			action.consumeNestedNameSpecifier(false);
-			break;
-		}
-
-		//
-		// Rule 46:  class_or_namespace_name_with_template ::= template_opt class_or_namespace_name
-		//
-		case 46: {
-			action.consumeNameWithTemplateKeyword();
-			break;
-		}
-
-		//
-		// Rule 48:  nested_name_specifier_opt ::= $Empty
-		//
-		case 48: {
-			action.consumeNestedNameSpecifierEmpty();
-			break;
-		}
-
-		//
-		// Rule 51:  postfix_expression ::= postfix_expression [ expression ]
-		//
-		case 51: {
-			action.consumeExpressionArraySubscript();
-			break;
-		}
-
-		//
-		// Rule 52:  postfix_expression ::= postfix_expression ( expression_list_opt )
-		//
-		case 52: {
-			action.consumeExpressionFunctionCall();
-			break;
-		}
-
-		//
-		// Rule 53:  postfix_expression ::= simple_type_specifier ( expression_list_opt )
-		//
-		case 53: {
-			action.consumeExpressionSimpleTypeConstructor();
-			break;
-		}
-
-		//
-		// Rule 54:  postfix_expression ::= typename dcolon_opt nested_name_specifier <empty> identifier_name ( expression_list_opt )
-		//
-		case 54: {
-			action.consumeExpressionTypeName();
-			break;
-		}
-
-		//
-		// Rule 55:  postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt )
-		//
-		case 55: {
-			action.consumeExpressionTypeName();
-			break;
-		}
-
-		//
-		// Rule 56:  postfix_expression ::= postfix_expression . qualified_or_unqualified_name
-		//
-		case 56: {
-			action.consumeExpressionFieldReference(false, false);
-			break;
-		}
-
-		//
-		// Rule 57:  postfix_expression ::= postfix_expression -> qualified_or_unqualified_name
-		//
-		case 57: {
-			action.consumeExpressionFieldReference(true, false);
-			break;
-		}
-
-		//
-		// Rule 58:  postfix_expression ::= postfix_expression . template qualified_or_unqualified_name
-		//
-		case 58: {
-			action.consumeExpressionFieldReference(false, true);
-			break;
-		}
-
-		//
-		// Rule 59:  postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name
-		//
-		case 59: {
-			action.consumeExpressionFieldReference(true, true);
-			break;
-		}
-
-		//
-		// Rule 60:  postfix_expression ::= postfix_expression . pseudo_destructor_name
-		//
-		case 60: {
-			action.consumeExpressionFieldReference(false, false);
-			break;
-		}
-
-		//
-		// Rule 61:  postfix_expression ::= postfix_expression -> pseudo_destructor_name
-		//
-		case 61: {
-			action.consumeExpressionFieldReference(true, false);
-			break;
-		}
-
-		//
-		// Rule 62:  postfix_expression ::= postfix_expression ++
-		//
-		case 62: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr);
-			break;
-		}
-
-		//
-		// Rule 63:  postfix_expression ::= postfix_expression --
-		//
-		case 63: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr);
-			break;
-		}
-
-		//
-		// Rule 64:  postfix_expression ::= dynamic_cast < type_id > ( expression )
-		//
-		case 64: {
-			action.consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast);
-			break;
-		}
-
-		//
-		// Rule 65:  postfix_expression ::= static_cast < type_id > ( expression )
-		//
-		case 65: {
-			action.consumeExpressionCast(ICPPASTCastExpression.op_static_cast);
-			break;
-		}
-
-		//
-		// Rule 66:  postfix_expression ::= reinterpret_cast < type_id > ( expression )
-		//
-		case 66: {
-			action.consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast);
-			break;
-		}
-
-		//
-		// Rule 67:  postfix_expression ::= const_cast < type_id > ( expression )
-		//
-		case 67: {
-			action.consumeExpressionCast(ICPPASTCastExpression.op_const_cast);
-			break;
-		}
-
-		//
-		// Rule 68:  postfix_expression ::= typeid ( expression )
-		//
-		case 68: {
-			action.consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid);
-			break;
-		}
-
-		//
-		// Rule 69:  postfix_expression ::= typeid ( type_id )
-		//
-		case 69: {
-			action.consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid);
-			break;
-		}
-
-		//
-		// Rule 70:  pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name
-		//
-		case 70: {
-			action.consumePsudoDestructorName(true);
-			break;
-		}
-
-		//
-		// Rule 71:  pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name
-		//
-		case 71: {
-			action.consumePsudoDestructorName(true);
-			break;
-		}
-
-		//
-		// Rule 72:  pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name
-		//
-		case 72: {
-			action.consumePsudoDestructorName(false);
-			break;
-		}
-
-		//
-		// Rule 73:  destructor_type_name ::= ~ identifier_token
-		//
-		case 73: {
-			action.consumeDestructorName();
-			break;
-		}
-
-		//
-		// Rule 74:  destructor_type_name ::= ~ template_id_name
-		//
-		case 74: {
-			action.consumeDestructorNameTemplateId();
-			break;
-		}
-
-		//
-		// Rule 78:  unary_expression ::= ++ cast_expression
-		//
-		case 78: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr);
-			break;
-		}
-
-		//
-		// Rule 79:  unary_expression ::= -- cast_expression
-		//
-		case 79: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr);
-			break;
-		}
-
-		//
-		// Rule 80:  unary_expression ::= & cast_expression
-		//
-		case 80: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper);
-			break;
-		}
-
-		//
-		// Rule 81:  unary_expression ::= * cast_expression
-		//
-		case 81: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_star);
-			break;
-		}
-
-		//
-		// Rule 82:  unary_expression ::= + cast_expression
-		//
-		case 82: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus);
-			break;
-		}
-
-		//
-		// Rule 83:  unary_expression ::= - cast_expression
-		//
-		case 83: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus);
-			break;
-		}
-
-		//
-		// Rule 84:  unary_expression ::= ~ cast_expression
-		//
-		case 84: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde);
-			break;
-		}
-
-		//
-		// Rule 85:  unary_expression ::= ! cast_expression
-		//
-		case 85: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_not);
-			break;
-		}
-
-		//
-		// Rule 86:  unary_expression ::= sizeof unary_expression
-		//
-		case 86: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof);
-			break;
-		}
-
-		//
-		// Rule 87:  unary_expression ::= sizeof ( type_id )
-		//
-		case 87: {
-			action.consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof);
-			break;
-		}
-
-		//
-		// Rule 88:  new_expression ::= dcolon_opt new new_placement_opt new_type_id <openscope-ast> new_array_expressions_opt new_initializer_opt
-		//
-		case 88: {
-			action.consumeExpressionNew(true);
-			break;
-		}
-
-		//
-		// Rule 89:  new_expression ::= dcolon_opt new new_placement_opt ( type_id ) <openscope-ast> new_array_expressions_opt new_initializer_opt
-		//
-		case 89: {
-			action.consumeExpressionNew(false);
-			break;
-		}
-
-		//
-		// Rule 91:  new_placement_opt ::= $Empty
-		//
-		case 91: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 92:  new_type_id ::= type_specifier_seq
-		//
-		case 92: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 93:  new_type_id ::= type_specifier_seq new_declarator
-		//
-		case 93: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 94:  new_declarator ::= <openscope-ast> new_pointer_operators
-		//
-		case 94: {
-			action.consumeNewDeclarator();
-			break;
-		}
-
-		//
-		// Rule 101:  new_initializer ::= ( expression_list_opt )
-		//
-		case 101: {
-			action.consumeNewInitializer();
-			break;
-		}
-
-		//
-		// Rule 103:  new_initializer_opt ::= $Empty
-		//
-		case 103: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 104:  delete_expression ::= dcolon_opt delete cast_expression
-		//
-		case 104: {
-			action.consumeExpressionDelete(false);
-			break;
-		}
-
-		//
-		// Rule 105:  delete_expression ::= dcolon_opt delete [ ] cast_expression
-		//
-		case 105: {
-			action.consumeExpressionDelete(true);
-			break;
-		}
-
-		//
-		// Rule 107:  cast_expression ::= ( type_id ) cast_expression
-		//
-		case 107: {
-			action.consumeExpressionCast(ICPPASTCastExpression.op_cast);
-			break;
-		}
-
-		//
-		// Rule 109:  pm_expression ::= pm_expression .* cast_expression
-		//
-		case 109: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot);
-			break;
-		}
-
-		//
-		// Rule 110:  pm_expression ::= pm_expression ->* cast_expression
-		//
-		case 110: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow);
-			break;
-		}
-
-		//
-		// Rule 112:  multiplicative_expression ::= multiplicative_expression * pm_expression
-		//
-		case 112: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply);
-			break;
-		}
-
-		//
-		// Rule 113:  multiplicative_expression ::= multiplicative_expression / pm_expression
-		//
-		case 113: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide);
-			break;
-		}
-
-		//
-		// Rule 114:  multiplicative_expression ::= multiplicative_expression % pm_expression
-		//
-		case 114: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo);
-			break;
-		}
-
-		//
-		// Rule 116:  additive_expression ::= additive_expression + multiplicative_expression
-		//
-		case 116: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus);
-			break;
-		}
-
-		//
-		// Rule 117:  additive_expression ::= additive_expression - multiplicative_expression
-		//
-		case 117: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus);
-			break;
-		}
-
-		//
-		// Rule 119:  shift_expression ::= shift_expression << additive_expression
-		//
-		case 119: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft);
-			break;
-		}
-
-		//
-		// Rule 120:  shift_expression ::= shift_expression >> additive_expression
-		//
-		case 120: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight);
-			break;
-		}
-
-		//
-		// Rule 122:  relational_expression ::= relational_expression < shift_expression
-		//
-		case 122: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan);
-			break;
-		}
-
-		//
-		// Rule 123:  relational_expression ::= relational_expression > shift_expression
-		//
-		case 123: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan);
-			break;
-		}
-
-		//
-		// Rule 124:  relational_expression ::= relational_expression <= shift_expression
-		//
-		case 124: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual);
-			break;
-		}
-
-		//
-		// Rule 125:  relational_expression ::= relational_expression >= shift_expression
-		//
-		case 125: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual);
-			break;
-		}
-
-		//
-		// Rule 127:  equality_expression ::= equality_expression == relational_expression
-		//
-		case 127: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals);
-			break;
-		}
-
-		//
-		// Rule 128:  equality_expression ::= equality_expression != relational_expression
-		//
-		case 128: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals);
-			break;
-		}
-
-		//
-		// Rule 130:  and_expression ::= and_expression & equality_expression
-		//
-		case 130: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd);
-			break;
-		}
-
-		//
-		// Rule 132:  exclusive_or_expression ::= exclusive_or_expression ^ and_expression
-		//
-		case 132: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor);
-			break;
-		}
-
-		//
-		// Rule 134:  inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression
-		//
-		case 134: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr);
-			break;
-		}
-
-		//
-		// Rule 136:  logical_and_expression ::= logical_and_expression && inclusive_or_expression
-		//
-		case 136: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd);
-			break;
-		}
-
-		//
-		// Rule 138:  logical_or_expression ::= logical_or_expression || logical_and_expression
-		//
-		case 138: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr);
-			break;
-		}
-
-		//
-		// Rule 140:  conditional_expression ::= logical_or_expression ? expression : assignment_expression
-		//
-		case 140: {
-			action.consumeExpressionConditional();
-			break;
-		}
-
-		//
-		// Rule 142:  relational_expression_inTemplate ::= relational_expression_inTemplate < shift_expression
-		//
-		case 142: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan);
-			break;
-		}
-
-		//
-		// Rule 143:  relational_expression_inTemplate ::= ( relational_expression_inTemplate > shift_expression )
-		//
-		case 143: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan);
-			break;
-		}
-
-		//
-		// Rule 144:  relational_expression_inTemplate ::= relational_expression_inTemplate <= shift_expression
-		//
-		case 144: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual);
-			break;
-		}
-
-		//
-		// Rule 145:  relational_expression_inTemplate ::= relational_expression_inTemplate >= shift_expression
-		//
-		case 145: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual);
-			break;
-		}
-
-		//
-		// Rule 147:  equality_expression_inTemplate ::= equality_expression_inTemplate == relational_expression_inTemplate
-		//
-		case 147: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals);
-			break;
-		}
-
-		//
-		// Rule 148:  equality_expression_inTemplate ::= equality_expression_inTemplate != relational_expression_inTemplate
-		//
-		case 148: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals);
-			break;
-		}
-
-		//
-		// Rule 150:  and_expression_inTemplate ::= and_expression_inTemplate & equality_expression_inTemplate
-		//
-		case 150: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd);
-			break;
-		}
-
-		//
-		// Rule 152:  exclusive_or_expression_inTemplate ::= exclusive_or_expression_inTemplate ^ and_expression_inTemplate
-		//
-		case 152: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor);
-			break;
-		}
-
-		//
-		// Rule 154:  inclusive_or_expression_inTemplate ::= inclusive_or_expression_inTemplate | exclusive_or_expression_inTemplate
-		//
-		case 154: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr);
-			break;
-		}
-
-		//
-		// Rule 156:  logical_and_expression_inTemplate ::= logical_and_expression_inTemplate && inclusive_or_expression_inTemplate
-		//
-		case 156: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd);
-			break;
-		}
-
-		//
-		// Rule 158:  logical_or_expression_inTemplate ::= logical_or_expression_inTemplate || logical_and_expression_inTemplate
-		//
-		case 158: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr);
-			break;
-		}
-
-		//
-		// Rule 160:  conditional_expression_inTemplate ::= logical_or_expression_inTemplate ? expression : assignment_expression_inTemplate
-		//
-		case 160: {
-			action.consumeExpressionConditional();
-			break;
-		}
-
-		//
-		// Rule 163:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate = assignment_expression_inTemplate
-		//
-		case 163: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign);
-			break;
-		}
-
-		//
-		// Rule 164:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate *= assignment_expression_inTemplate
-		//
-		case 164: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign);
-			break;
-		}
-
-		//
-		// Rule 165:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate /= assignment_expression_inTemplate
-		//
-		case 165: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign);
-			break;
-		}
-
-		//
-		// Rule 166:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate %= assignment_expression_inTemplate
-		//
-		case 166: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign);
-			break;
-		}
-
-		//
-		// Rule 167:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate += assignment_expression_inTemplate
-		//
-		case 167: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign);
-			break;
-		}
-
-		//
-		// Rule 168:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate -= assignment_expression_inTemplate
-		//
-		case 168: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign);
-			break;
-		}
-
-		//
-		// Rule 169:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate >>= assignment_expression_inTemplate
-		//
-		case 169: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign);
-			break;
-		}
-
-		//
-		// Rule 170:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate <<= assignment_expression_inTemplate
-		//
-		case 170: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign);
-			break;
-		}
-
-		//
-		// Rule 171:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate &= assignment_expression_inTemplate
-		//
-		case 171: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign);
-			break;
-		}
-
-		//
-		// Rule 172:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate ^= assignment_expression_inTemplate
-		//
-		case 172: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign);
-			break;
-		}
-
-		//
-		// Rule 173:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate |= assignment_expression_inTemplate
-		//
-		case 173: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign);
-			break;
-		}
-
-		//
-		// Rule 174:  throw_expression ::= throw
-		//
-		case 174: {
-			action.consumeExpressionThrow(false);
-			break;
-		}
-
-		//
-		// Rule 175:  throw_expression ::= throw assignment_expression
-		//
-		case 175: {
-			action.consumeExpressionThrow(true);
-			break;
-		}
-
-		//
-		// Rule 178:  assignment_expression ::= logical_or_expression = assignment_expression
-		//
-		case 178: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign);
-			break;
-		}
-
-		//
-		// Rule 179:  assignment_expression ::= logical_or_expression *= assignment_expression
-		//
-		case 179: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign);
-			break;
-		}
-
-		//
-		// Rule 180:  assignment_expression ::= logical_or_expression /= assignment_expression
-		//
-		case 180: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign);
-			break;
-		}
-
-		//
-		// Rule 181:  assignment_expression ::= logical_or_expression %= assignment_expression
-		//
-		case 181: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign);
-			break;
-		}
-
-		//
-		// Rule 182:  assignment_expression ::= logical_or_expression += assignment_expression
-		//
-		case 182: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign);
-			break;
-		}
-
-		//
-		// Rule 183:  assignment_expression ::= logical_or_expression -= assignment_expression
-		//
-		case 183: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign);
-			break;
-		}
-
-		//
-		// Rule 184:  assignment_expression ::= logical_or_expression >>= assignment_expression
-		//
-		case 184: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign);
-			break;
-		}
-
-		//
-		// Rule 185:  assignment_expression ::= logical_or_expression <<= assignment_expression
-		//
-		case 185: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign);
-			break;
-		}
-
-		//
-		// Rule 186:  assignment_expression ::= logical_or_expression &= assignment_expression
-		//
-		case 186: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign);
-			break;
-		}
-
-		//
-		// Rule 187:  assignment_expression ::= logical_or_expression ^= assignment_expression
-		//
-		case 187: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign);
-			break;
-		}
-
-		//
-		// Rule 188:  assignment_expression ::= logical_or_expression |= assignment_expression
-		//
-		case 188: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign);
-			break;
-		}
-
-		//
-		// Rule 190:  expression_list ::= <openscope-ast> expression_list_actual
-		//
-		case 190: {
-			action.consumeExpressionList();
-			break;
-		}
-
-		//
-		// Rule 194:  expression_list_opt ::= $Empty
-		//
-		case 194: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 196:  expression_opt ::= $Empty
-		//
-		case 196: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 199:  constant_expression_opt ::= $Empty
-		//
-		case 199: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 208:  statement ::= ERROR_TOKEN
-		//
-		case 208: {
-			action.consumeStatementProblem();
-			break;
-		}
-
-		//
-		// Rule 209:  labeled_statement ::= identifier : statement
-		//
-		case 209: {
-			action.consumeStatementLabeled();
-			break;
-		}
-
-		//
-		// Rule 210:  labeled_statement ::= case constant_expression : statement
-		//
-		case 210: {
-			action.consumeStatementCase();
-			break;
-		}
-
-		//
-		// Rule 211:  labeled_statement ::= default : statement
-		//
-		case 211: {
-			action.consumeStatementDefault();
-			break;
-		}
-
-		//
-		// Rule 212:  expression_statement ::= expression ;
-		//
-		case 212: {
-			action.consumeStatementExpression();
-			break;
-		}
-
-		//
-		// Rule 213:  expression_statement ::= ;
-		//
-		case 213: {
-			action.consumeStatementNull();
-			break;
-		}
-
-		//
-		// Rule 214:  compound_statement ::= { <openscope-ast> statement_seq }
-		//
-		case 214: {
-			action.consumeStatementCompoundStatement(true);
-			break;
-		}
-
-		//
-		// Rule 215:  compound_statement ::= { }
-		//
-		case 215: {
-			action.consumeStatementCompoundStatement(false);
-			break;
-		}
-
-		//
-		// Rule 218:  selection_statement ::= if ( condition ) statement
-		//
-		case 218: {
-			action.consumeStatementIf(false);
-			break;
-		}
-
-		//
-		// Rule 219:  selection_statement ::= if ( condition ) statement else statement
-		//
-		case 219: {
-			action.consumeStatementIf(true);
-			break;
-		}
-
-		//
-		// Rule 220:  selection_statement ::= switch ( condition ) statement
-		//
-		case 220: {
-			action.consumeStatementSwitch();
-			break;
-		}
-
-		//
-		// Rule 222:  condition ::= type_specifier_seq declarator = assignment_expression
-		//
-		case 222: {
-			action.consumeConditionDeclaration();
-			break;
-		}
-
-		//
-		// Rule 224:  condition_opt ::= $Empty
-		//
-		case 224: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 225:  iteration_statement ::= while ( condition ) statement
-		//
-		case 225: {
-			action.consumeStatementWhileLoop();
-			break;
-		}
-
-		//
-		// Rule 226:  iteration_statement ::= do statement while ( expression ) ;
-		//
-		case 226: {
-			action.consumeStatementDoLoop(true);
-			break;
-		}
-
-		//
-		// Rule 227:  iteration_statement ::= do statement
-		//
-		case 227: {
-			action.consumeStatementDoLoop(false);
-			break;
-		}
-
-		//
-		// Rule 228:  iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement
-		//
-		case 228: {
-			action.consumeStatementForLoop();
-			break;
-		}
-
-		//
-		// Rule 230:  for_init_statement ::= simple_declaration_with_declspec
-		//
-		case 230: {
-			action.consumeStatementDeclaration();
-			break;
-		}
-
-		//
-		// Rule 231:  jump_statement ::= break ;
-		//
-		case 231: {
-			action.consumeStatementBreak();
-			break;
-		}
-
-		//
-		// Rule 232:  jump_statement ::= continue ;
-		//
-		case 232: {
-			action.consumeStatementContinue();
-			break;
-		}
-
-		//
-		// Rule 233:  jump_statement ::= return expression ;
-		//
-		case 233: {
-			action.consumeStatementReturn(true);
-			break;
-		}
-
-		//
-		// Rule 234:  jump_statement ::= return ;
-		//
-		case 234: {
-			action.consumeStatementReturn(false);
-			break;
-		}
-
-		//
-		// Rule 235:  jump_statement ::= goto identifier_token ;
-		//
-		case 235: {
-			action.consumeStatementGoto();
-			break;
-		}
-
-		//
-		// Rule 236:  declaration_statement ::= block_declaration
-		//
-		case 236: {
-			action.consumeStatementDeclarationWithDisambiguation();
-			break;
-		}
-
-		//
-		// Rule 237:  declaration_statement ::= function_definition
-		//
-		case 237: {
-			action.consumeStatementDeclaration();
-			break;
-		}
-
-		//
-		// Rule 245:  declaration ::= ERROR_TOKEN
-		//
-		case 245: {
-			action.consumeDeclarationProblem();
-			break;
-		}
-
-		//
-		// Rule 255:  simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ;
-		//
-		case 255: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 256:  simple_declaration_with_declspec ::= declaration_specifiers <openscope-ast> init_declarator_list_opt ;
-		//
-		case 256: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 257:  declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
-		//
-		case 257: {
-			action.consumeDeclarationSpecifiersSimple();
-			break;
-		}
-
-		//
-		// Rule 258:  declaration_specifiers ::= <openscope-ast> class_declaration_specifiers
-		//
-		case 258: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 259:  declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
-		//
-		case 259: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 260:  declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
-		//
-		case 260: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 261:  declaration_specifiers ::= <openscope-ast> type_name_declaration_specifiers
-		//
-		case 261: {
-			action.consumeDeclarationSpecifiersTypeName();
-			break;
-		}
-
-		//
-		// Rule 263:  declaration_specifiers_opt ::= $Empty
-		//
-		case 263: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 267:  no_type_declaration_specifier ::= friend
-		//
-		case 267: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 268:  no_type_declaration_specifier ::= typedef
-		//
-		case 268: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 288:  storage_class_specifier ::= auto
-		//
-		case 288: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 289:  storage_class_specifier ::= register
-		//
-		case 289: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 290:  storage_class_specifier ::= static
-		//
-		case 290: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 291:  storage_class_specifier ::= extern
-		//
-		case 291: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 292:  storage_class_specifier ::= mutable
-		//
-		case 292: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 293:  function_specifier ::= inline
-		//
-		case 293: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 294:  function_specifier ::= virtual
-		//
-		case 294: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 295:  function_specifier ::= explicit
-		//
-		case 295: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 296:  simple_type_specifier ::= simple_type_specifier_token
-		//
-		case 296: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 310:  type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name
-		//
-		case 310: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 311:  type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name
-		//
-		case 311: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 312:  type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name
-		//
-		case 312: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 313:  type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name
-		//
-		case 313: {
-			action.consumeQualifiedId(true);
-			break;
-		}
-
-		//
-		// Rule 315:  elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name
-		//
-		case 315: {
-			action.consumeTypeSpecifierElaborated(false);
-			break;
-		}
-
-		//
-		// Rule 316:  elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt template_opt template_id_name
-		//
-		case 316: {
-			action.consumeTypeSpecifierElaborated(true);
-			break;
-		}
-
-		//
-		// Rule 317:  elaborated_type_specifier ::= enum elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name
-		//
-		case 317: {
-			action.consumeTypeSpecifierElaborated(false);
-			break;
-		}
-
-		//
-		// Rule 321:  enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
-		//
-		case 321: {
-			action.consumeTypeSpecifierEnumeration(false);
-			break;
-		}
-
-		//
-		// Rule 322:  enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
-		//
-		case 322: {
-			action.consumeTypeSpecifierEnumeration(true);
-			break;
-		}
-
-		//
-		// Rule 328:  enumerator_definition ::= identifier_token
-		//
-		case 328: {
-			action.consumeEnumerator(false);
-			break;
-		}
-
-		//
-		// Rule 329:  enumerator_definition ::= identifier_token = constant_expression
-		//
-		case 329: {
-			action.consumeEnumerator(true);
-			break;
-		}
-
-		//
-		// Rule 331:  namespace_definition ::= namespace namespace_name namespace_definition_hook { <openscope-ast> declaration_seq_opt }
-		//
-		case 331: {
-			action.consumeNamespaceDefinition(true);
-			break;
-		}
-
-		//
-		// Rule 332:  namespace_definition ::= namespace namespace_definition_hook { <openscope-ast> declaration_seq_opt }
-		//
-		case 332: {
-			action.consumeNamespaceDefinition(false);
-			break;
-		}
-
-		//
-		// Rule 334:  namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ;
-		//
-		case 334: {
-			action.consumeNamespaceAliasDefinition();
-			break;
-		}
-
-		//
-		// Rule 335:  using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ;
-		//
-		case 335: {
-			action.consumeUsingDeclaration();
-			break;
-		}
-
-		//
-		// Rule 336:  typename_opt ::= typename
-		//
-		case 336: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 337:  typename_opt ::= $Empty
-		//
-		case 337: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 338:  using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ;
-		//
-		case 338: {
-			action.consumeUsingDirective();
-			break;
-		}
-
-		//
-		// Rule 339:  linkage_specification ::= extern stringlit { <openscope-ast> declaration_seq_opt }
-		//
-		case 339: {
-			action.consumeLinkageSpecification();
-			break;
-		}
-
-		//
-		// Rule 340:  linkage_specification ::= extern stringlit <openscope-ast> declaration
-		//
-		case 340: {
-			action.consumeLinkageSpecification();
-			break;
-		}
-
-		//
-		// Rule 345:  init_declarator_complete ::= init_declarator
-		//
-		case 345: {
-			action.consumeInitDeclaratorComplete();
-			break;
-		}
-
-		//
-		// Rule 347:  init_declarator ::= complete_declarator initializer
-		//
-		case 347: {
-			action.consumeDeclaratorWithInitializer(true);
-			break;
-		}
-
-		//
-		// Rule 350:  declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
-		//
-		case 350: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 352:  function_declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
-		//
-		case 352: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 356:  basic_direct_declarator ::= declarator_id_name
-		//
-		case 356: {
-			action.consumeDirectDeclaratorIdentifier();
-			break;
-		}
-
-		//
-		// Rule 357:  basic_direct_declarator ::= ( declarator )
-		//
-		case 357: {
-			action.consumeDirectDeclaratorBracketed();
-			break;
-		}
-
-		//
-		// Rule 358:  function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
-		//
-		case 358: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 359:  array_direct_declarator ::= array_direct_declarator array_modifier
-		//
-		case 359: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 360:  array_direct_declarator ::= basic_direct_declarator array_modifier
-		//
-		case 360: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 361:  array_modifier ::= [ constant_expression ]
-		//
-		case 361: {
-			action.consumeDirectDeclaratorArrayModifier(true);
-			break;
-		}
-
-		//
-		// Rule 362:  array_modifier ::= [ ]
-		//
-		case 362: {
-			action.consumeDirectDeclaratorArrayModifier(false);
-			break;
-		}
-
-		//
-		// Rule 363:  ptr_operator ::= pointer_hook * pointer_hook <openscope-ast> cv_qualifier_seq_opt
-		//
-		case 363: {
-			action.consumePointer();
-			break;
-		}
-
-		//
-		// Rule 364:  ptr_operator ::= pointer_hook & pointer_hook
-		//
-		case 364: {
-			action.consumeReferenceOperator();
-			break;
-		}
-
-		//
-		// Rule 365:  ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * pointer_hook <openscope-ast> cv_qualifier_seq_opt
-		//
-		case 365: {
-			action.consumePointerToMember();
-			break;
-		}
-
-		//
-		// Rule 372:  cv_qualifier ::= const
-		//
-		case 372: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 373:  cv_qualifier ::= volatile
-		//
-		case 373: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 375:  declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name
-		//
-		case 375: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 376:  type_id ::= type_specifier_seq
-		//
-		case 376: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 377:  type_id ::= type_specifier_seq abstract_declarator
-		//
-		case 377: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 380:  abstract_declarator ::= <openscope-ast> ptr_operator_seq
-		//
-		case 380: {
-			action.consumeDeclaratorWithPointer(false);
-			break;
-		}
-
-		//
-		// Rule 381:  abstract_declarator ::= <openscope-ast> ptr_operator_seq direct_abstract_declarator
-		//
-		case 381: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 385:  basic_direct_abstract_declarator ::= ( abstract_declarator )
-		//
-		case 385: {
-			action.consumeDirectDeclaratorBracketed();
-			break;
-		}
-
-		//
-		// Rule 386:  basic_direct_abstract_declarator ::= ( )
-		//
-		case 386: {
-			action.consumeAbstractDeclaratorEmpty();
-			break;
-		}
-
-		//
-		// Rule 387:  array_direct_abstract_declarator ::= array_modifier
-		//
-		case 387: {
-			action.consumeDirectDeclaratorArrayDeclarator(false);
-			break;
-		}
-
-		//
-		// Rule 388:  array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
-		//
-		case 388: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 389:  array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
-		//
-		case 389: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 390:  function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
-		//
-		case 390: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 391:  function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
-		//
-		case 391: {
-			action.consumeDirectDeclaratorFunctionDeclarator(false);
-			break;
-		}
-
-		//
-		// Rule 392:  parameter_declaration_clause ::= parameter_declaration_list_opt ...
-		//
-		case 392: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 393:  parameter_declaration_clause ::= parameter_declaration_list_opt
-		//
-		case 393: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 394:  parameter_declaration_clause ::= parameter_declaration_list , ...
-		//
-		case 394: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 400:  abstract_declarator_opt ::= $Empty
-		//
-		case 400: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 401:  parameter_declaration ::= declaration_specifiers parameter_init_declarator
-		//
-		case 401: {
-			action.consumeParameterDeclaration();
-			break;
-		}
-
-		//
-		// Rule 402:  parameter_declaration ::= declaration_specifiers
-		//
-		case 402: {
-			action.consumeParameterDeclarationWithoutDeclarator();
-			break;
-		}
-
-		//
-		// Rule 404:  parameter_init_declarator ::= declarator = parameter_initializer
-		//
-		case 404: {
-			action.consumeDeclaratorWithInitializer(true);
-			break;
-		}
-
-		//
-		// Rule 406:  parameter_init_declarator ::= abstract_declarator = parameter_initializer
-		//
-		case 406: {
-			action.consumeDeclaratorWithInitializer(true);
-			break;
-		}
-
-		//
-		// Rule 407:  parameter_init_declarator ::= = parameter_initializer
-		//
-		case 407: {
-			action.consumeDeclaratorWithInitializer(false);
-			break;
-		}
-
-		//
-		// Rule 408:  parameter_initializer ::= assignment_expression
-		//
-		case 408: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 409:  function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body
-		//
-		case 409: {
-			action.consumeFunctionDefinition(false);
-			break;
-		}
-
-		//
-		// Rule 410:  function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq
-		//
-		case 410: {
-			action.consumeFunctionDefinition(true);
-			break;
-		}
-
-		//
-		// Rule 413:  initializer ::= ( expression_list )
-		//
-		case 413: {
-			action.consumeInitializerConstructor();
-			break;
-		}
-
-		//
-		// Rule 414:  initializer_clause ::= assignment_expression
-		//
-		case 414: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 415:  initializer_clause ::= initializer_list
-		//
-		case 415: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 416:  initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq , } end_initializer_list
-		//
-		case 416: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 417:  initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq } end_initializer_list
-		//
-		case 417: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 418:  initializer_list ::= { <openscope-ast> }
-		//
-		case 418: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 419:  start_initializer_list ::= $Empty
-		//
-		case 419: {
-			action.initializerListStart();
-			break;
-		}
-
-		//
-		// Rule 420:  end_initializer_list ::= $Empty
-		//
-		case 420: {
-			action.initializerListEnd();
-			break;
-		}
-
-		//
-		// Rule 425:  class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt }
-		//
-		case 425: {
-			action.consumeClassSpecifier();
-			break;
-		}
-
-		//
-		// Rule 426:  class_head ::= class_keyword composite_specifier_hook identifier_name_opt class_name_suffix_hook <openscope-ast> base_clause_opt
-		//
-		case 426: {
-			action.consumeClassHead(false);
-			break;
-		}
-
-		//
-		// Rule 427:  class_head ::= class_keyword composite_specifier_hook template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt
-		//
-		case 427: {
-			action.consumeClassHead(false);
-			break;
-		}
-
-		//
-		// Rule 428:  class_head ::= class_keyword composite_specifier_hook nested_name_specifier identifier_name class_name_suffix_hook <openscope-ast> base_clause_opt
-		//
-		case 428: {
-			action.consumeClassHead(true);
-			break;
-		}
-
-		//
-		// Rule 429:  class_head ::= class_keyword composite_specifier_hook nested_name_specifier template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt
-		//
-		case 429: {
-			action.consumeClassHead(true);
-			break;
-		}
-
-		//
-		// Rule 433:  identifier_name_opt ::= $Empty
-		//
-		case 433: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 437:  visibility_label ::= access_specifier_keyword :
-		//
-		case 437: {
-			action.consumeVisibilityLabel();
-			break;
-		}
-
-		//
-		// Rule 438:  member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
-		//
-		case 438: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 439:  member_declaration ::= declaration_specifiers_opt ;
-		//
-		case 439: {
-			action.consumeDeclarationSimple(false);
-			break;
-		}
-
-		//
-		// Rule 442:  member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ;
-		//
-		case 442: {
-			action.consumeMemberDeclarationQualifiedId();
-			break;
-		}
-
-		//
-		// Rule 448:  member_declaration ::= ERROR_TOKEN
-		//
-		case 448: {
-			action.consumeDeclarationProblem();
-			break;
-		}
-
-		//
-		// Rule 457:  member_declarator ::= declarator constant_initializer
-		//
-		case 457: {
-			action.consumeMemberDeclaratorWithInitializer();
-			break;
-		}
-
-		//
-		// Rule 458:  member_declarator ::= bit_field_declarator : constant_expression
-		//
-		case 458: {
-			action.consumeBitField(true);
-			break;
-		}
-
-		//
-		// Rule 459:  member_declarator ::= : constant_expression
-		//
-		case 459: {
-			action.consumeBitField(false);
-			break;
-		}
-
-		//
-		// Rule 460:  bit_field_declarator ::= identifier_name
-		//
-		case 460: {
-			action.consumeDirectDeclaratorIdentifier();
-			break;
-		}
-
-		//
-		// Rule 461:  constant_initializer ::= = constant_expression
-		//
-		case 461: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 467:  base_specifier ::= dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 467: {
-			action.consumeBaseSpecifier(false, false);
-			break;
-		}
-
-		//
-		// Rule 468:  base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 468: {
-			action.consumeBaseSpecifier(true, true);
-			break;
-		}
-
-		//
-		// Rule 469:  base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 469: {
-			action.consumeBaseSpecifier(true, true);
-			break;
-		}
-
-		//
-		// Rule 470:  base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 470: {
-			action.consumeBaseSpecifier(true, false);
-			break;
-		}
-
-		//
-		// Rule 471:  access_specifier_keyword ::= private
-		//
-		case 471: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 472:  access_specifier_keyword ::= protected
-		//
-		case 472: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 473:  access_specifier_keyword ::= public
-		//
-		case 473: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 475:  access_specifier_keyword_opt ::= $Empty
-		//
-		case 475: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 477:  conversion_function_id_name ::= conversion_function_id < <openscope-ast> template_argument_list_opt >
-		//
-		case 477: {
-			action.consumeTemplateId();
-			break;
-		}
-
-		//
-		// Rule 478:  conversion_function_id ::= operator conversion_type_id
-		//
-		case 478: {
-			action.consumeConversionName();
-			break;
-		}
-
-		//
-		// Rule 479:  conversion_type_id ::= type_specifier_seq conversion_declarator
-		//
-		case 479: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 480:  conversion_type_id ::= type_specifier_seq
-		//
-		case 480: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 481:  conversion_declarator ::= <openscope-ast> ptr_operator_seq
-		//
-		case 481: {
-			action.consumeDeclaratorWithPointer(false);
-			break;
-		}
-
-		//
-		// Rule 487:  mem_initializer ::= mem_initializer_name ( expression_list_opt )
-		//
-		case 487: {
-			action.consumeConstructorChainInitializer();
-			break;
-		}
-
-		//
-		// Rule 488:  mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 488: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 491:  operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt >
-		//
-		case 491: {
-			action.consumeTemplateId();
-			break;
-		}
-
-		//
-		// Rule 492:  operator_id_name ::= operator overloadable_operator
-		//
-		case 492: {
-			action.consumeOperatorName();
-			break;
-		}
-
-		//
-		// Rule 535:  template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration
-		//
-		case 535: {
-			action.consumeTemplateDeclaration();
-			break;
-		}
-
-		//
-		// Rule 536:  export_opt ::= export
-		//
-		case 536: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 537:  export_opt ::= $Empty
-		//
-		case 537: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 541:  template_parameter ::= parameter_declaration
-		//
-		case 541: {
-			action.consumeTemplateParamterDeclaration();
-			break;
-		}
-
-		//
-		// Rule 542:  type_parameter ::= class identifier_name_opt
-		//
-		case 542: {
-			action.consumeSimpleTypeTemplateParameter(false);
-			break;
-		}
-
-		//
-		// Rule 543:  type_parameter ::= class identifier_name_opt = type_id
-		//
-		case 543: {
-			action.consumeSimpleTypeTemplateParameter(true);
-			break;
-		}
-
-		//
-		// Rule 544:  type_parameter ::= typename identifier_name_opt
-		//
-		case 544: {
-			action.consumeSimpleTypeTemplateParameter(false);
-			break;
-		}
-
-		//
-		// Rule 545:  type_parameter ::= typename identifier_name_opt = type_id
-		//
-		case 545: {
-			action.consumeSimpleTypeTemplateParameter(true);
-			break;
-		}
-
-		//
-		// Rule 546:  type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt
-		//
-		case 546: {
-			action.consumeTemplatedTypeTemplateParameter(false);
-			break;
-		}
-
-		//
-		// Rule 547:  type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression
-		//
-		case 547: {
-			action.consumeTemplatedTypeTemplateParameter(true);
-			break;
-		}
-
-		//
-		// Rule 548:  template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt >
-		//
-		case 548: {
-			action.consumeTemplateId();
-			break;
-		}
-
-		//
-		// Rule 555:  nested_name_specifier_inTemplate ::= class_or_namespace_name_inTemplate :: nested_name_specifier_with_template_inTemplate
-		//
-		case 555: {
-			action.consumeNestedNameSpecifier(true);
-			break;
-		}
-
-		//
-		// Rule 556:  nested_name_specifier_inTemplate ::= class_or_namespace_name_inTemplate ::
-		//
-		case 556: {
-			action.consumeNestedNameSpecifier(false);
-			break;
-		}
-
-		//
-		// Rule 557:  nested_name_specifier_with_template_inTemplate ::= class_or_namespace_name_with_template_inTemplate :: nested_name_specifier_with_template_inTemplate
-		//
-		case 557: {
-			action.consumeNestedNameSpecifier(true);
-			break;
-		}
-
-		//
-		// Rule 558:  nested_name_specifier_with_template_inTemplate ::= class_or_namespace_name_with_template_inTemplate ::
-		//
-		case 558: {
-			action.consumeNestedNameSpecifier(false);
-			break;
-		}
-
-		//
-		// Rule 559:  class_or_namespace_name_with_template_inTemplate ::= template_opt class_or_namespace_name_inTemplate
-		//
-		case 559: {
-			action.consumeNameWithTemplateKeyword();
-			break;
-		}
-
-		//
-		// Rule 561:  nested_name_specifier_opt_inTemplate ::= $Empty
-		//
-		case 561: {
-			action.consumeNestedNameSpecifierEmpty();
-			break;
-		}
-
-		//
-		// Rule 564:  type_name_specifier_inTemplate ::= typename dcolon_opt nested_name_specifier identifier_name
-		//
-		case 564: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 565:  type_name_specifier_inTemplate ::= typename dcolon_opt nested_name_specifier template_opt template_id_name
-		//
-		case 565: {
-			action.consumeQualifiedId(true);
-			break;
-		}
-
-		//
-		// Rule 570:  declaration_specifiers_inTemplate ::= <openscope-ast> simple_declaration_specifiers
-		//
-		case 570: {
-			action.consumeDeclarationSpecifiersSimple();
-			break;
-		}
-
-		//
-		// Rule 571:  declaration_specifiers_inTemplate ::= <openscope-ast> class_declaration_specifiers
-		//
-		case 571: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 572:  declaration_specifiers_inTemplate ::= <openscope-ast> elaborated_declaration_specifiers
-		//
-		case 572: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 573:  declaration_specifiers_inTemplate ::= <openscope-ast> enum_declaration_specifiers
-		//
-		case 573: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 574:  declaration_specifiers_inTemplate ::= <openscope-ast> type_name_declaration_specifiers_inTemplate
-		//
-		case 574: {
-			action.consumeDeclarationSpecifiersTypeName();
-			break;
-		}
-
-		//
-		// Rule 576:  type_id_inTemplate ::= type_specifier_seq_inTemplate
-		//
-		case 576: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 577:  type_id_inTemplate ::= type_specifier_seq_inTemplate abstract_declarator
-		//
-		case 577: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 578:  template_argument ::= assignment_expression_inTemplate
-		//
-		case 578: {
-			action.consumeTemplateArgumentExpression();
-			break;
-		}
-
-		//
-		// Rule 579:  template_argument ::= type_id_inTemplate
-		//
-		case 579: {
-			action.consumeTemplateArgumentTypeId();
-			break;
-		}
-
-		//
-		// Rule 580:  explicit_instantiation ::= template declaration
-		//
-		case 580: {
-			action.consumeTemplateExplicitInstantiation();
-			break;
-		}
-
-		//
-		// Rule 581:  explicit_specialization ::= template < > declaration
-		//
-		case 581: {
-			action.consumeTemplateExplicitSpecialization();
-			break;
-		}
-
-		//
-		// Rule 582:  try_block ::= try compound_statement <openscope-ast> handler_seq
-		//
-		case 582: {
-			action.consumeStatementTryBlock(true);
-			break;
-		}
-
-		//
-		// Rule 583:  try_block ::= try compound_statement
-		//
-		case 583: {
-			action.consumeStatementTryBlock(false);
-			break;
-		}
-
-		//
-		// Rule 586:  handler ::= catch ( exception_declaration ) compound_statement
-		//
-		case 586: {
-			action.consumeStatementCatchHandler(false);
-			break;
-		}
-
-		//
-		// Rule 587:  handler ::= catch ( ... ) compound_statement
-		//
-		case 587: {
-			action.consumeStatementCatchHandler(true);
-			break;
-		}
-
-		//
-		// Rule 588:  exception_declaration ::= type_specifier_seq <openscope-ast> declarator
-		//
-		case 588: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 589:  exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
-		//
-		case 589: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 590:  exception_declaration ::= type_specifier_seq
-		//
-		case 590: {
-			action.consumeDeclarationSimple(false);
-			break;
-		}
-
-		//
-		// Rule 592:  exception_specification ::= throw ( )
-		//
-		case 592: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 613:  attribute_parameter ::= assignment_expression
-		//
-		case 613: {
-			action.consumeIgnore();
-			break;
-		}
-
-		//
-		// Rule 624:  extended_asm_declaration ::= asm volatile_opt ( extended_asm_param_seq ) ;
-		//
-		case 624: {
-			gnuAction.consumeDeclarationASM();
-			break;
-		}
-
-		//
-		// Rule 635:  unary_expression ::= __alignof__ unary_expression
-		//
-		case 635: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_alignOf);
-			break;
-		}
-
-		//
-		// Rule 636:  unary_expression ::= __alignof__ ( type_id )
-		//
-		case 636: {
-			action.consumeExpressionTypeId(IASTTypeIdExpression.op_alignof);
-			break;
-		}
-
-		//
-		// Rule 637:  unary_expression ::= typeof unary_expression
-		//
-		case 637: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof);
-			break;
-		}
-
-		//
-		// Rule 638:  unary_expression ::= typeof ( type_id )
-		//
-		case 638: {
-			action.consumeExpressionTypeId(IASTTypeIdExpression.op_typeof);
-			break;
-		}
-
-		//
-		// Rule 639:  relational_expression ::= relational_expression >? shift_expression
-		//
-		case 639: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_max);
-			break;
-		}
-
-		//
-		// Rule 640:  relational_expression ::= relational_expression <? shift_expression
-		//
-		case 640: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_min);
-			break;
-		}
-
-		//
-		// Rule 641:  conditional_expression ::= logical_or_expression ? <empty> : assignment_expression
-		//
-		case 641: {
-			action.consumeExpressionConditional();
-			break;
-		}
-
-		//
-		// Rule 642:  primary_expression ::= ( compound_statement )
-		//
-		case 642: {
-			gnuAction.consumeCompoundStatementExpression();
-			break;
-		}
-
-		//
-		// Rule 643:  labeled_statement ::= case case_range_expression : statement
-		//
-		case 643: {
-			action.consumeStatementCase();
-			break;
-		}
-
-		//
-		// Rule 644:  case_range_expression ::= constant_expression ... constant_expression
-		//
-		case 644: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign);
-			break;
-		}
-
-		//
-		// Rule 648:  typeof_type_specifier ::= typeof unary_expression
-		//
-		case 648: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof);
-			break;
-		}
-
-		//
-		// Rule 649:  typeof_type_specifier ::= typeof ( type_id )
-		//
-		case 649: {
-			action.consumeExpressionTypeId(IASTTypeIdExpression.op_typeof);
-			break;
-		}
-
-		//
-		// Rule 650:  declaration_specifiers ::= <openscope-ast> typeof_declaration_specifiers
-		//
-		case 650: {
-			action.consumeDeclarationSpecifiersTypeof();
-			break;
-		}
-
-		//
-		// Rule 663:  declarator ::= <openscope-ast> ptr_operator_seq attribute_or_decl_specifier_seq direct_declarator
-		//
-		case 663: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 666:  simple_type_specifier ::= _Complex
-		//
-		case 666: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 667:  simple_type_specifier ::= _Imaginary
-		//
-		case 667: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 668:  cv_qualifier ::= restrict
-		//
-		case 668: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 669:  explicit_instantiation ::= extern template declaration
-		//
-		case 669: {
-			action.consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_extern);
-			break;
-		}
-
-		//
-		// Rule 670:  explicit_instantiation ::= static template declaration
-		//
-		case 670: {
-			action.consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_static);
-			break;
-		}
-
-		//
-		// Rule 671:  explicit_instantiation ::= inline template declaration
-		//
-		case 671: {
-			action.consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_inline);
-			break;
-		}
-
-		//
-		// Rule 672:  postfix_expression ::= ( type_id ) initializer_list
-		//
-		case 672: {
-			action.consumeExpressionTypeIdInitializer();
-			break;
-		}
-
-		default:
-			break;
-		}
-		return;
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParserprs.java
deleted file mode 100644
index db9f663..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParserprs.java
+++ /dev/null
@@ -1,1889 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2015 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.lrparser.gpp;
-
-public class GPPParserprs implements lpg.lpgjavaruntime.ParseTable, GPPParsersym {
-
-	public interface IsKeyword {
-		public final static byte isKeyword[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0 };
-	}
-
-	public final static byte isKeyword[] = IsKeyword.isKeyword;
-
-	public final boolean isKeyword(int index) {
-		return isKeyword[index] != 0;
-	}
-
-	public interface BaseCheck {
-		public final static short baseCheck[] = { 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 0, 1, 0, 4, 2, 3, 2, 3, 2, 2, 1, 0, 1, 1, 4, 4, 4, 8, 8, 3, 3,
-				4, 4, 3, 3, 2, 2, 7, 7, 7, 7, 4, 4, 5, 6, 3, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 7, 9, 3, 0, 1,
-				2, 2, 1, 2, 3, 4, 1, 0, 3, 1, 0, 3, 5, 1, 4, 1, 3, 3, 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 3, 3, 3, 3, 1, 3,
-				3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 1, 3, 5, 3, 3, 1, 3, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 1, 1,
-				3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 2, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 2, 1, 3, 1, 0, 1, 0, 1,
-				1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 4, 3, 2, 1, 4, 2, 1, 2, 5, 7, 5, 1, 4, 1, 0, 5, 7, 2, 8, 1, 1, 2, 2,
-				3, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 0, 4, 4, 2, 2, 2, 2, 2, 1, 0, 1, 1, 1, 1,
-				1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 3, 4, 4, 5, 2, 5, 6, 5, 0, 1, 0, 7, 8, 0, 1, 3, 1, 0, 1, 3, 1, 7, 6, 0, 7, 6, 1, 0,
-				6, 6, 4, 1, 3, 1, 0, 1, 1, 2, 1, 1, 3, 1, 3, 1, 1, 1, 1, 3, 9, 2, 2, 3, 2, 5, 3, 7, 0, 1, 2, 2, 1, 0, 1,
-				1, 1, 3, 1, 2, 1, 1, 2, 3, 1, 1, 1, 3, 2, 1, 2, 2, 9, 8, 2, 1, 3, 1, 3, 1, 0, 1, 0, 2, 1, 1, 3, 1, 3, 2,
-				1, 5, 8, 1, 2, 3, 1, 1, 7, 6, 3, 0, 0, 1, 3, 1, 1, 5, 6, 6, 7, 7, 0, 0, 1, 0, 1, 1, 1, 2, 4, 2, 2, 1, 5,
-				1, 1, 1, 1, 1, 1, 1, 2, 1, 0, 1, 3, 1, 1, 2, 3, 2, 1, 2, 2, 1, 0, 1, 3, 3, 5, 5, 4, 1, 1, 1, 1, 0, 1, 5,
-				2, 2, 1, 2, 2, 1, 0, 1, 3, 4, 3, 1, 1, 5, 2, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 7, 1, 0, 1, 3, 1, 1, 2, 4, 2, 4, 7, 9,
-				5, 1, 3, 1, 0, 1, 1, 3, 2, 3, 2, 2, 1, 0, 1, 1, 4, 5, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 4, 4,
-				2, 1, 2, 5, 5, 3, 3, 1, 4, 3, 1, 0, 1, 3, 1, 1, 1, 1, 2, 6, 3, 1, 3, 1, 4, 0, 1, 1, 1, 3, 1, 0, 4, 3, 1,
-				2, 1, 3, 4, 4, 4, 6, 1, 0, 1, 3, 1, 3, 0, 1, 4, 5, 2, 4, 2, 4, 3, 3, 5, 3, 4, 3, 1, 2, 2, 2, 4, 2, 1, 1,
-				2, 2, 3, 2, 2, 3, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 3, 3, 3, 4, -162, 0, 0, 0, 0, -22, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -195, -2, -34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -7, 0, -686, 0, 0, 0, 0, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -210, -6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -9, -69, 0, 0, 0, -376, 0, 0, 0, 0, -11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -227, 0, 0, 0, 0, 0, 0, 0, -101, -322, 0, -70, 0, 0, 0, -65, 0, 0, 0, 0, 0, 0, -29, 0, 0,
-				-4, 0, 0, 0, -16, 0, 0, 0, 0, 0, 0, 0, 0, -41, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, -216, 0, 0, 0, 0, -137, 0,
-				0, 0, -58, 0, -18, 0, -145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -146, 0, 0,
-				-147, 0, 0, 0, 0, 0, 0, -245, 0, 0, 0, 0, 0, 0, -19, -133, 0, 0, 0, 0, -189, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -20, -357, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -28, -54, -110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -508, 0, 0, -444,
-				0, 0, 0, 0, 0, 0, -57, 0, -51, 0, 0, 0, 0, 0, 0, 0, 0, -190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -285, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -107, -111, -224, 0,
-				0, -282, 0, 0, 0, 0, -273, 0, 0, 0, 0, -14, -541, 0, 0, 0, -38, -118, 0, 0, -127, 0, 0, 0, 0, 0, 0, -39,
-				0, 0, 0, 0, 0, -377, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -155,
-				0, -347, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -42, 0, -40, 0,
-				0, 0, 0, 0, 0, 0, -44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -45, 0, -404, -48, 0, -555, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-316, -61, 0, 0, 0, 0, 0, 0, -117, 0, 0, 0, 0, 0, 0, 0, 0, -176, 0, 0, 0, 0, -648, 0, 0, 0, 0, -98, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -462, 0, -319, 0, 0, 0, -68, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -99, 0, -450, 0, 0, 0, -324, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -646, -333, 0, 0, 0, 0, 0, 0, -53, 0, 0, 0, 0, -455, 0, 0, 0, 0, 0, 0, 0,
-				0, -192, 0, 0, 0, -183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-60, 0, 0, -577, 0, 0, -628, 0, 0, 0, 0, -15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -284, 0, 0, 0, 0,
-				-71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -59, 0, 0, 0, -314, 0, 0, 0, 0, -94,
-				0, -63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -96, 0, 0, 0, 0, -457, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -482, -315, 0, 0, 0, -66, -182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -399, 0, -72, 0, -287, 0, 0, 0, 0, -255, 0, 0, 0, 0, 0, 0, 0, 0, -559, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -253, 0, 0, -160, 0, 0, 0, 0, 0, 0, -91, 0, 0,
-				0, 0, 0, 0, 0, 0, -86, 0, -443, 0, 0, 0, 0, -560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -542, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -132, 0, -566, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -344, 0, 0, 0, 0, -486, 0, 0,
-				0, 0, 0, -557, 0, 0, -193, -252, 0, 0, 0, 0, 0, 0, -178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -551, 0, 0, 0, 0, -403, 0, -154, 0, -108, 0, -558, 0, 0, 0, -331, 0, 0, 0,
-				0, -289, -626, 0, 0, 0, 0, -112, -242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -164, -584, 0, -327, 0, 0, -148, 0, 0, 0, 0, -378, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-364, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -37, 0, 0, 0,
-				-335, 0, 0, 0, 0, 0, 0, -622, 0, 0, 0, 0, 0, 0, 0, 0, -87, -170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -365, 0, 0, 0, 0, -332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -95, -174, -348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -552, 0, 0, 0, -603, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -129, 0, 0, 0, 0,
-				-366, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -88, -349, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -89, 0, -580, 0, 0, 0, 0, -649, -203,
-				0, 0, 0, -627, 0, 0, 0, 0, 0, 0, -476, -135, 0, 0, 0, 0, -367, 0, 0, 0, 0, -90, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -92, -350, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -676, -386, -109, -93, 0, 0, 0, 0, 0, 0, 0, -119, -684, -120, 0, 0, 0, -611,
-				0, 0, 0, 0, 0, -368, 0, 0, 0, 0, -614, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-379, -157, -351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -123, -654, 0,
-				-124, -143, 0, 0, 0, 0, 0, 0, 0, 0, 0, -199, 0, -221, 0, 0, 0, -102, 0, 0, 0, 0, 0, -369, 0, 0, 0, 0,
-				-106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -380, 0, -76, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -206, -223, 0, 0, -113, 0, 0, 0, 0, 0, 0, -225,
-				0, -299, 0, 0, 0, 0, 0, 0, 0, 0, 0, -370, 0, 0, 0, 0, -114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -381, 0, -77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-304, 0, -329, -436, -447, 0, -115, 0, -259, 0, 0, 0, 0, -330, -385, 0, 0, 0, 0, 0, -116, 0, 0, 0, 0,
-				-371, 0, 0, 0, 0, -480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -604, -158, -78,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -408, 0, -448, -130, -131, 0, 0,
-				0, 0, 0, 0, 0, -134, 0, 0, -576, 0, 0, -140, 0, -159, 0, 0, 0, 0, -372, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -156, -79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -624, 0, -453, -456, 0, 0, -201, 0, 0, 0, 0, 0, -205, -465, -523, -556, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -373, 0, 0, 0, 0, -481, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -125, 0, -80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -207, -583, -208, 0,
-				-483, -553, 0, -670, 0, 0, -260, 0, 0, 0, -213, -595, -598, -599, 0, 0, 0, -617, 0, 0, 0, 0, 0, -374, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -202, -215, -81, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -640, -294, -625, 0, -317, 0, 0, 0, -204, -228,
-				-231, 0, 0, 0, -651, 0, 0, 0, 0, 0, -232, -233, 0, 0, 0, 0, 0, -390, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -452, 0, 0, 0, 0, 0, -212, -631, 0, 0, 0, -678, 0, 0, 0, -142,
-				0, 0, 0, 0, -409, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -468,
-				0, 0, 0, 0, 0, 0, 0, -392, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -671, 0, 0, 0, -422, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -618, 0, 0, -235, -236, 0, -401, 0, 0, 0, 0,
-				0, 0, 0, -300, -175, 0, 0, 0, 0, -209, 0, -423, 0, 0, 0, 0, -237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -402, -469, 0, 0, -473, 0, -484, 0, 0, -290, -50, 0, 0, 0, 0, 0,
-				0, 0, -424, 0, 0, 0, 0, -238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-520, -521, 0, 0, 0, 0, 0, -567, 0, 0, -639, -647, 0, 0, 0, 0, 0, 0, -425, 0, 0, 0, 0, -239, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -579, -616, 0, 0, -635, -645, -641, 0, 0, 0, 0, 0, 0,
-				0, 0, -662, 0, 0, 0, 0, 0, 0, -426, 0, 0, 0, 0, -240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -656, -666, 0, 0, -677, -241, 0, 0, 0, 0, 0, -243, 0, 0, -667, -244, 0, 0, 0, 0, -248, 0,
-				-427, 0, 0, 0, 0, -246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -261, -262, 0, 0,
-				0, 0, -660, 0, 0, 0, 0, -675, 0, 0, -263, -264, 0, 0, 0, 0, -249, 0, -428, 0, 0, 0, 0, -265, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -266, -267, 0, 0, 0, 0, 0, 0, 0, 0, 0, -268, 0, 0,
-				-269, -270, 0, 0, 0, 0, -250, 0, -429, 0, 0, 0, 0, -271, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -272, -278, -279, 0, -280, -281, -291, 0, 0, -293, 0, -295, 0, 0, -303, -305, 0, 0, 0, 0,
-				-251, 0, -430, 0, 0, 0, 0, -306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -449, 0,
-				0, 0, 0, 0, -309, 0, 0, -311, 0, -312, 0, 0, -313, -320, 0, 0, 0, 0, -276, 0, -431, 0, 0, 0, 0, -336, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -337, -352, -389, 0, -391, -393, -394, 0, 0,
-				-395, 0, -396, 0, 0, -398, -437, 0, 0, 0, 0, -277, 0, -432, 0, 0, 0, 0, -439, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -440, -441, -442, 0, -458, -459, -466, 0, 0, -467, 0, -475, 0, 0,
-				-477, -488, 0, 0, 0, 0, -489, 0, -582, 0, 0, 0, 0, -490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -283, -288, -82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -298,
-				-491, -663, 0, -492, -494, -495, 0, 0, -496, -497, -498, 0, 0, -672, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-601, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -499, -500, 0, -501,
-				-502, -503, -504, 0, 0, -505, 0, 0, 0, 0, -506, -510, 0, 0, 0, 0, -308, 0, -602, 0, 0, 0, 0, -512, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -513, -518, -522, 0, -526, -527, -528, 0, 0,
-				-529, 0, -530, 0, 0, 0, 0, 0, 0, 0, 0, -321, 0, -657, 0, 0, 0, 0, -531, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -532, -533, -534, 0, -535, -536, -537, 0, 0, -538, 0, -539, 0, 0, -679,
-				-540, 0, 0, 0, 0, -323, 0, -234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -548, 0, -254, 0, 0, -549, 0, 0, -550, 0, -128, 0, 0, 0, 0, -574, 0, 0, 0, 0, 0, 0, -575, -585,
-				-596, -612, -613, 0, 0, 0, -194, 0, 0, 0, -615, 0, 0, 0, 0, 0, 0, -325, -474, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -619, -633, -642, -650, 0, -658, -668, -669, 0, -682,
-				0, 0, 0, 0, 0, -326, 0, 0, 0, 0, -485, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -387, -406, -470, -471,
-				-507, -569, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -524, 0, 0, 0, 0, -570, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -543, -554,
-				-581, -591, -593, -589, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -597, 0, 0, 0, 0, -630, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -636, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -24, 0, 0, 0, 0, 0, 0, 0, -226, 0, 0, 0, 0, -258, 0, 0, 0, 0, 0, -600, 0, 0, 0, 0, -605,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -12, 0, 0, 0, 0, -64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -434, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -606, -5, 0, 0, 0, 0, -52, 0, 0, -607, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -608, -643, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -214, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -644, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -655, -661, 0, 0, 0, 0, 0, 0, 0, -165, -472, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -67, 0, 0, 0, 0, 0, 0, 0, 0, 0, -664, -138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -665, 0, 0, 0, 0, 0, 0, -84, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -363, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -169, 0, -674, -685, 0,
-				0, -421, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -418, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -353, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -446, 0, 0, 0, 0, 0, 0, 0, 0, 0, -420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -562, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -358, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-172, -177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-83, 0, 0, 0, 0, -26, 0, 0, 0, -184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -229, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -171, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -338, 0, 0, 0, 0, 0, 0, 0, 0, 0, -166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-334, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -359, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -479, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -62, 0, 0, 0, 0, -100, 0, 0, 0, 0, -568, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -573, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -23, 0, 0, 0, 0, -185, 0, 0, 0, 0,
-				-25, 0, 0, 0, 0, 0, 0, 0, 0, -187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -451, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -354, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -180, 0, 0,
-				-33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -230, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-355, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -388, -167, 0, 0, 0,
-				0, 0, 0, 0, 0, -186, 0, 0, 0, 0, -103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -410, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -411, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -412, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -413, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -414, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -415, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -168, 0, 0, 0, -173, -30, 0, 0, 0, 0, -493, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -382, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -397, -43, 0, 0, 0, 0, 0, 0,
-				-153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -85, 0, 0, -384, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -511, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -594, -659, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -514, -163, -433, 0,
-				0, 0, 0, 0, 0, 0, -296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -375, -588, -544,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -545, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -196, 0, 0, 0, 0, 0, 0, 0, 0, -27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -590,
-				-564, 0, 0, 0, 0, 0, 0, 0, 0, -302, 0, 0, 0, 0, 0, -509, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-632, -546, 0, 0, 0, 0, 0, 0, 0, 0, -571, 0, 0, 0, 0, 0, -587, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -339, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -634, -547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -638, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -307, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -673, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -515, -151, 0, 0, -565, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -683, 0, 0, 0, 0, 0, 0, 0, 0, -687, 0, -516, -152, -637, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -609, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -32, 0, 0, 0, 0, -340, 0, -55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -519, 0, 0, 0, 0, 0, 0, 0, -179, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -301, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -478, 0, 0, 0, -191, -1, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -345, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -346, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -383, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -74,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -342, 0, 0, 0, -75, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -610, 0, -257, 0,
-				-198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -343, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -275, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -10, -525, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -629, 0, 0, 0, 0, 0, 0, 0, -13, 0, 0, 0, -563,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -517, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -46, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -211, 0, 0, 0, 0, 0, 0, 0, 0, 0, -49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -435, 0, 0, 0, 0, 0, 0, 0, 0, 0, -122, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -464, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -572, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -592, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -217, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -407, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -218, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -561, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -141, 0, 0, 0, 0, 0, 0, -405, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -461, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -438, 0, 0, 0, 0, 0, 0, 0, 0, -144, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -274, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -286, 0, 0, 0, -292, 0, 0, 0, 0, 0, 0, 0, -578,
-				0, 0, 0, 0, 0, 0, -623, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -652, 0, 0, 0, -653, 0, 0, 0, 0, -219, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -297,
-				0, 0, 0, -454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -445, 0, 0, 0, 0, 0, 0, -620, 0, 0, 0, 0, 0, 0,
-				0, 0, -681, 0, 0, 0, 0, 0, 0, 0, 0, 0, -487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static short baseCheck[] = BaseCheck.baseCheck;
-
-	@Override
-	public final int baseCheck(int index) {
-		return baseCheck[index];
-	}
-
-	public final static short rhs[] = baseCheck;
-
-	@Override
-	public final int rhs(int index) {
-		return rhs[index];
-	}
-
-	public interface BaseAction0 {
-		public final static char baseAction0[] = { 205, 5, 143, 103, 103, 32, 32, 102, 102, 47, 47, 36, 36, 205, 1, 1,
-				16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 15, 11, 11, 6, 6, 6, 6, 6, 6, 2, 89, 89, 4, 4, 12, 12, 53, 53,
-				166, 166, 167, 82, 82, 52, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
-				18, 168, 168, 168, 144, 144, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 206, 206, 207,
-				207, 208, 171, 171, 172, 172, 169, 169, 173, 170, 170, 21, 21, 22, 22, 23, 23, 23, 24, 24, 24, 24, 25,
-				25, 25, 26, 26, 26, 35, 35, 35, 35, 35, 37, 37, 37, 39, 39, 40, 40, 43, 43, 44, 44, 45, 45, 46, 46, 55,
-				55, 55, 55, 55, 64, 64, 64, 65, 65, 70, 70, 71, 71, 75, 75, 76, 76, 77, 77, 78, 78, 78, 78, 78, 78, 78,
-				78, 78, 78, 78, 78, 78, 34, 34, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 41, 33, 174, 174,
-				113, 113, 209, 209, 106, 238, 238, 91, 91, 91, 91, 91, 91, 91, 91, 91, 92, 92, 92, 90, 90, 56, 56, 210,
-				210, 93, 93, 93, 125, 125, 211, 211, 94, 94, 94, 94, 212, 212, 95, 95, 95, 95, 95, 96, 96, 98, 98, 98,
-				98, 98, 98, 98, 98, 57, 57, 57, 57, 57, 126, 126, 124, 124, 58, 213, 31, 31, 31, 31, 31, 51, 51, 79, 79,
-				79, 79, 79, 149, 149, 145, 145, 145, 145, 145, 146, 146, 146, 147, 147, 147, 148, 148, 148, 176, 176,
-				176, 80, 80, 80, 80, 80, 81, 81, 81, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 114, 150, 150, 150,
-				150, 150, 150, 119, 119, 119, 177, 178, 178, 120, 120, 214, 180, 180, 179, 179, 151, 151, 127, 87, 87,
-				152, 60, 50, 181, 181, 61, 100, 100, 182, 182, 175, 175, 153, 154, 154, 155, 84, 84, 183, 183, 72, 72,
-				72, 67, 67, 66, 73, 73, 101, 101, 83, 83, 83, 69, 107, 107, 116, 115, 115, 63, 63, 68, 68, 74, 74, 54,
-				117, 117, 117, 108, 108, 108, 109, 109, 110, 110, 110, 111, 111, 128, 128, 128, 130, 130, 129, 129, 239,
-				239, 112, 112, 216, 216, 216, 216, 216, 157, 49, 49, 185, 215, 215, 158, 158, 104, 104, 104, 105, 187,
-				217, 217, 42, 42, 118, 122, 122, 122, 122, 219, 132, 131, 131, 121, 121, 121, 188, 189, 189, 189, 189,
-				189, 189, 189, 189, 189, 189, 189, 221, 221, 218, 218, 220, 220, 134, 135, 135, 135, 135, 136, 222, 137,
-				133, 133, 223, 223, 190, 190, 190, 190, 123, 123, 123, 224, 224, 8, 8, 9, 225, 225, 226, 191, 184, 184,
-				192, 192, 193, 194, 194, 7, 7, 10, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
-				227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
-				227, 227, 227, 227, 227, 227, 227, 85, 88, 88, 195, 195, 160, 160, 161, 161, 161, 161, 161, 161, 3, 162,
-				162, 159, 159, 196, 240, 241, 241, 242, 242, 243, 244, 244, 197, 198, 198, 198, 198, 228, 228, 228, 139,
-				139, 139, 139, 139, 140, 141, 141, 138, 138, 99, 86, 97, 97, 186, 186, 142, 142, 229, 229, 229, 163,
-				163, 156, 156, 230, 230, 27, 27, 27, 38, 38, 28, 28, 231, 231, 199, 199, 199, 200, 200, 232, 232, 201,
-				201, 29, 29, 233, 233, 202, 202, 202, 202, 30, 62, 234, 234, 235, 235, 203, 203, 203, 164, 164, 164, 19,
-				19, 19, 19, 35, 35, 46, 17, 92, 236, 204, 204, 204, 165, 165, 31, 59, 79, 155, 155, 155, 134, 134, 134,
-				214, 219, 132, 69, 84, 177, 152, 13, 13, 63, 99, 99, 99, 18, 1603, 35, 3125, 3103, 7526, 1969, 27, 30,
-				31, 1092, 1081, 26, 28, 3091, 296, 25, 23, 50, 2080, 106, 76, 77, 108, 2636, 2647, 2646, 3041, 652, 597,
-				598, 599, 2884, 1374, 468, 177, 3028, 4028, 3054, 1890, 3042, 3077, 1224, 308, 3076, 3087, 3090, 176,
-				1315, 191, 3298, 35, 1154, 32, 7645, 1492, 27, 30, 31, 1092, 1081, 26, 28, 5164, 266, 547, 3051, 1534,
-				35, 1154, 32, 5704, 3898, 27, 30, 31, 1092, 1081, 374, 28, 269, 264, 265, 1497, 170, 35, 985, 424, 4580,
-				35, 1154, 32, 4746, 1386, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108,
-				2636, 2647, 2646, 2785, 309, 170, 35, 317, 276, 279, 282, 3924, 678, 647, 2101, 49, 170, 35, 985, 424,
-				1987, 2695, 351, 1164, 356, 1509, 906, 1761, 35, 314, 1439, 756, 2784, 395, 562, 3866, 4887, 5065, 5075,
-				6377, 285, 2858, 2808, 170, 2332, 2318, 34, 2956, 2907, 3420, 3180, 3183, 3414, 2262, 1223, 645, 2157,
-				425, 308, 170, 35, 7612, 7590, 3688, 3027, 842, 5956, 3086, 35, 1154, 32, 4746, 4773, 27, 30, 31, 1092,
-				1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108, 2636, 2647, 2646, 2785, 6023, 603, 4394,
-				35, 1154, 32, 4746, 162, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108,
-				2636, 2647, 3356, 2784, 2113, 35, 312, 170, 35, 2318, 311, 310, 2858, 2808, 170, 35, 2318, 313, 2956,
-				2907, 706, 935, 2702, 2983, 2989, 161, 578, 3086, 35, 1154, 32, 4746, 4773, 27, 30, 31, 1092, 1081, 26,
-				28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108, 2636, 2647, 2646, 2785, 615, 945, 4394, 35, 1154, 32,
-				4746, 162, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108, 2636, 2647,
-				3357, 2784, 85, 1979, 1845, 549, 575, 5266, 579, 6524, 2858, 2808, 916, 605, 2549, 3389, 2956, 2907,
-				170, 35, 3552, 2983, 2989, 161, 578, 1330, 2635, 1969, 347, 2993, 601, 597, 598, 599, 1390, 1390, 3086,
-				35, 1154, 32, 4746, 4773, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108,
-				2636, 2647, 2646, 2785, 2156, 817, 3266, 35, 1154, 32, 7645, 162, 27, 30, 31, 1092, 1081, 59, 28, 3914,
-				1545, 2113, 35, 315, 2729, 549, 575, 5266, 579, 1761, 35, 314, 2784, 7184, 67, 3606, 35, 312, 6384, 277,
-				1669, 2858, 2808, 170, 35, 330, 3140, 2956, 2907, 2993, 469, 357, 2983, 2989, 161, 578, 3541, 35, 1154,
-				32, 4746, 4773, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108, 2636,
-				2647, 2646, 2785, 1970, 618, 4394, 35, 1154, 32, 4746, 162, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296,
-				25, 23, 50, 2080, 106, 76, 77, 108, 2636, 3287, 1327, 2784, 949, 1574, 4669, 549, 575, 5266, 579, 4028,
-				2858, 2808, 1034, 534, 1923, 1759, 2956, 2907, 3570, 3577, 2395, 2983, 2989, 161, 578, 2053, 3152, 1969,
-				1332, 2993, 3620, 35, 1154, 32, 4746, 378, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080,
-				106, 76, 77, 108, 2636, 2647, 2646, 3041, 1001, 987, 627, 2476, 479, 3577, 1556, 177, 3028, 2248, 3054,
-				1001, 3042, 3077, 3051, 55, 3076, 3087, 3090, 176, 7173, 414, 170, 35, 985, 424, 2484, 550, 575, 5266,
-				579, 1761, 35, 489, 1937, 7554, 3236, 35, 1154, 32, 4746, 1137, 27, 30, 31, 1092, 1081, 26, 28, 2049,
-				296, 25, 23, 50, 2080, 106, 76, 77, 108, 2636, 2647, 2646, 3041, 3113, 308, 170, 35, 330, 4028, 55, 177,
-				3028, 2248, 3054, 850, 3042, 3077, 415, 2795, 3076, 3087, 3090, 176, 561, 414, 170, 35, 985, 424, 3462,
-				35, 1154, 32, 4746, 5164, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108,
-				2636, 2647, 2646, 3041, 339, 3761, 170, 35, 2318, 316, 4028, 177, 3028, 167, 3054, 488, 3042, 3077,
-				2429, 421, 3076, 3087, 3090, 176, 375, 613, 2992, 1545, 415, 2795, 359, 3310, 35, 1154, 32, 4746, 378,
-				27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108, 2636, 2647, 2646, 3041,
-				2125, 2979, 478, 1797, 492, 396, 3690, 177, 3028, 2248, 3054, 67, 3042, 3077, 360, 6774, 3076, 3087,
-				3090, 176, 2930, 414, 2836, 1666, 422, 3886, 35, 1154, 32, 4746, 1515, 27, 30, 31, 1092, 1081, 26, 28,
-				2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108, 2636, 2647, 2646, 3041, 2702, 482, 3131, 3134, 554, 35,
-				432, 177, 3028, 55, 3054, 67, 3042, 3077, 1891, 7416, 3076, 3087, 3090, 176, 496, 191, 2957, 363, 370,
-				415, 2795, 3886, 35, 1154, 32, 4746, 616, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080,
-				106, 76, 77, 108, 2636, 2647, 2646, 3041, 2243, 554, 35, 432, 7562, 67, 55, 177, 3028, 7493, 3054, 1404,
-				3042, 3077, 611, 255, 3076, 3087, 3090, 176, 474, 408, 170, 2884, 173, 412, 3266, 35, 1154, 32, 7645,
-				3818, 27, 30, 31, 1092, 1081, 58, 28, 3346, 3886, 35, 1154, 32, 4746, 3688, 27, 30, 31, 1092, 1081, 26,
-				28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108, 2636, 2647, 2646, 3041, 2248, 2246, 2154, 4229, 1843,
-				3570, 4028, 177, 3028, 5101, 3054, 67, 3042, 3077, 3278, 5585, 3076, 3087, 3090, 176, 1041, 408, 170,
-				35, 2318, 3547, 3027, 3886, 35, 1154, 32, 4746, 378, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23,
-				50, 2080, 106, 76, 77, 108, 2636, 2647, 2646, 3041, 2628, 2078, 2406, 1226, 35, 2318, 311, 177, 3028,
-				407, 3054, 3281, 3042, 3077, 672, 2795, 3076, 3087, 3090, 176, 2101, 408, 3462, 35, 1154, 32, 4746, 617,
-				27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108, 2636, 2647, 2646, 3041,
-				1761, 35, 566, 215, 7671, 170, 3201, 177, 3028, 924, 3054, 2429, 3042, 3077, 1545, 1545, 3076, 3087,
-				3090, 176, 465, 613, 3693, 35, 1154, 32, 4746, 406, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23,
-				50, 2080, 106, 76, 77, 108, 2636, 2647, 2646, 3041, 170, 3572, 2318, 74, 3569, 170, 3451, 2241, 3028,
-				55, 3054, 2520, 3042, 3077, 929, 475, 3076, 3087, 3136, 197, 1545, 170, 35, 985, 424, 1666, 3914, 3383,
-				35, 1154, 32, 4746, 404, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108,
-				2636, 2647, 2646, 3041, 55, 3982, 2326, 1970, 533, 4028, 2638, 177, 3028, 467, 3054, 3000, 3042, 3077,
-				495, 6675, 3076, 3087, 3090, 176, 1666, 175, 362, 369, 370, 2627, 3951, 35, 1154, 32, 4746, 378, 27, 30,
-				31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108, 2636, 2647, 2646, 2785, 325,
-				3989, 1408, 35, 1154, 32, 2795, 162, 41, 30, 31, 1092, 1081, 2243, 604, 2549, 51, 7562, 612, 2781, 370,
-				3126, 2255, 3524, 35, 1154, 32, 7550, 2784, 27, 30, 31, 1092, 1081, 57, 28, 67, 2858, 2808, 4161, 7507,
-				426, 4444, 2956, 2907, 463, 2547, 4444, 2983, 2989, 161, 173, 3951, 35, 1154, 32, 4746, 475, 27, 30, 31,
-				1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108, 2636, 2647, 2646, 2785, 187, 187,
-				4394, 35, 1154, 32, 4746, 162, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77,
-				108, 2636, 3292, 1553, 2784, 1226, 35, 2318, 3573, 170, 35, 2318, 3618, 2858, 2808, 88, 42, 3005, 102,
-				2956, 2907, 44, 3005, 2354, 2983, 2989, 161, 172, 3951, 35, 1154, 32, 4746, 2406, 27, 30, 31, 1092,
-				1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108, 2636, 2647, 2646, 2785, 2634, 2436, 4394,
-				35, 1154, 32, 4746, 162, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108,
-				3299, 2841, 3235, 2784, 3731, 35, 564, 427, 61, 571, 1330, 463, 2858, 2808, 170, 35, 2318, 565, 2956,
-				2907, 466, 3092, 3914, 2983, 2989, 161, 171, 3951, 35, 1154, 32, 4746, 3529, 27, 30, 31, 1092, 1081, 26,
-				28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108, 2636, 2647, 2646, 2785, 623, 1127, 4394, 35, 1154,
-				32, 4746, 162, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108, 3347,
-				2796, 2844, 2784, 571, 2322, 55, 5298, 483, 483, 5987, 1019, 2858, 2808, 2008, 55, 571, 55, 2956, 2907,
-				704, 3055, 5947, 2983, 2989, 161, 170, 3951, 35, 1154, 32, 4746, 3374, 27, 30, 31, 1092, 1081, 26, 28,
-				2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108, 2636, 2647, 2646, 2785, 3979, 3914, 4394, 35, 1154, 32,
-				4746, 162, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108, 3350, 55,
-				4174, 2784, 55, 55, 6747, 358, 1516, 6763, 3932, 2248, 2858, 2808, 593, 55, 2395, 55, 2956, 2907, 6864,
-				2185, 1719, 2983, 2989, 161, 169, 3951, 35, 1154, 32, 4746, 1736, 27, 30, 31, 1092, 1081, 26, 28, 2049,
-				296, 25, 23, 50, 2080, 106, 76, 77, 108, 2636, 2647, 2646, 2785, 3986, 628, 4394, 35, 1154, 32, 4746,
-				162, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 85, 672, 2795, 391, 2784,
-				2145, 55, 457, 70, 1233, 593, 1868, 2248, 2858, 2808, 390, 55, 585, 55, 2956, 2907, 4842, 593, 2680,
-				2983, 2989, 161, 168, 3951, 35, 1154, 32, 4746, 1853, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23,
-				50, 2080, 106, 76, 77, 108, 2636, 2647, 2646, 2785, 4044, 93, 4394, 35, 1154, 32, 4746, 162, 27, 30, 31,
-				1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 83, 672, 2795, 55, 2784, 55, 3603, 2116,
-				1339, 3581, 2342, 2099, 2248, 2858, 2808, 89, 55, 55, 102, 2956, 2907, 2500, 998, 1345, 2983, 2989, 161,
-				167, 3951, 35, 1154, 32, 4746, 475, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106,
-				76, 77, 108, 2636, 2647, 2646, 2785, 5040, 3914, 4394, 35, 1154, 32, 4746, 162, 27, 30, 31, 1092, 1081,
-				26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 82, 672, 2795, 55, 2784, 55, 1731, 2458, 6936, 642,
-				2552, 630, 2248, 2858, 2808, 1874, 3577, 3577, 1859, 2956, 2907, 2345, 7569, 3914, 2983, 2989, 161, 166,
-				3951, 35, 1154, 32, 4746, 388, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77,
-				108, 2636, 2647, 2646, 2785, 24, 1474, 4394, 35, 1154, 32, 4746, 162, 27, 30, 31, 1092, 1081, 26, 28,
-				2049, 296, 25, 23, 50, 2080, 106, 76, 77, 81, 672, 2795, 67, 2784, 55, 55, 7581, 429, 2957, 1182, 1715,
-				463, 2858, 2808, 657, 55, 1430, 55, 2956, 2907, 6960, 2563, 2568, 2983, 2989, 161, 165, 3951, 35, 1154,
-				32, 4746, 475, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108, 2636,
-				2647, 2646, 2785, 1969, 338, 4394, 35, 1154, 32, 4746, 162, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296,
-				25, 23, 50, 2080, 106, 76, 77, 80, 2975, 55, 2245, 2784, 2795, 1872, 1385, 554, 35, 432, 753, 2167,
-				2858, 2808, 379, 55, 1872, 55, 2956, 2907, 3911, 2429, 2626, 2983, 2989, 161, 164, 3951, 35, 1154, 32,
-				4746, 3518, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108, 2636, 2647,
-				2646, 2785, 2957, 3850, 4394, 35, 1154, 32, 4746, 162, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25,
-				23, 50, 2080, 106, 76, 77, 79, 2520, 1545, 67, 2784, 3051, 1666, 7585, 428, 2957, 1539, 754, 463, 2858,
-				2808, 170, 35, 985, 424, 2956, 2907, 2013, 74, 335, 2983, 2989, 161, 163, 4394, 35, 1154, 32, 4746, 389,
-				27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108, 2636, 2647, 2646, 3041,
-				3051, 624, 470, 365, 370, 3625, 3304, 1545, 3028, 1666, 3054, 1969, 3042, 3077, 584, 1969, 3076, 3087,
-				3136, 197, 3886, 35, 1154, 32, 4746, 584, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080,
-				106, 76, 77, 108, 2636, 2647, 2646, 3041, 1556, 3051, 2929, 361, 2246, 332, 440, 177, 3028, 2957, 3054,
-				2105, 3042, 3077, 2944, 370, 3076, 3087, 3090, 176, 587, 192, 2894, 170, 35, 985, 424, 3886, 35, 1154,
-				32, 4746, 3449, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108, 2636,
-				2647, 2646, 3041, 55, 418, 212, 1403, 1322, 2003, 2957, 177, 3028, 97, 3054, 469, 3042, 3077, 1969,
-				1969, 3076, 3087, 3090, 176, 3536, 188, 3886, 35, 1154, 32, 4746, 439, 27, 30, 31, 1092, 1081, 26, 28,
-				2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108, 2636, 2647, 2646, 3041, 331, 2472, 1556, 620, 232, 2957,
-				2957, 177, 3028, 3364, 3054, 3051, 3042, 3077, 1969, 3160, 3076, 3087, 3090, 176, 7194, 187, 411, 3886,
-				35, 1154, 32, 4746, 743, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108,
-				2636, 2647, 2646, 3041, 1556, 2153, 231, 334, 2957, 2957, 438, 177, 3028, 3427, 3054, 2957, 3042, 3077,
-				3552, 163, 3076, 3087, 3090, 176, 411, 186, 3886, 35, 1154, 32, 4746, 557, 27, 30, 31, 1092, 1081, 26,
-				28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108, 2636, 2647, 2646, 3041, 3051, 3851, 235, 233, 2957,
-				3055, 55, 177, 3028, 442, 3054, 3348, 3042, 3077, 321, 55, 3076, 3087, 3090, 176, 2077, 185, 3886, 35,
-				1154, 32, 4746, 661, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108,
-				2636, 2647, 2646, 3041, 1545, 4108, 5783, 409, 55, 1036, 4114, 177, 3028, 2089, 3054, 1413, 3042, 3077,
-				163, 2522, 3076, 3087, 3090, 176, 3914, 184, 3886, 35, 1154, 32, 4746, 1329, 27, 30, 31, 1092, 1081, 26,
-				28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108, 2636, 2647, 2646, 3041, 2536, 5036, 2393, 2127, 322,
-				2895, 2957, 177, 3028, 585, 3054, 2957, 3042, 3077, 1339, 919, 3076, 3087, 3090, 176, 3914, 183, 3886,
-				35, 1154, 32, 4746, 749, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108,
-				2636, 2647, 2646, 3041, 852, 1742, 71, 2206, 256, 98, 417, 177, 3028, 226, 3054, 2537, 3042, 3077, 2880,
-				2596, 3076, 3087, 3090, 176, 3914, 182, 3886, 35, 1154, 32, 4746, 5088, 27, 30, 31, 1092, 1081, 26, 28,
-				2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108, 2636, 2647, 2646, 3041, 4992, 2700, 2791, 2285, 2899,
-				2977, 2613, 177, 3028, 2605, 3054, 2168, 3042, 3077, 81, 3234, 3076, 3087, 3090, 176, 3914, 181, 3886,
-				35, 1154, 32, 4746, 3394, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108,
-				2636, 2647, 2646, 3041, 1887, 35, 489, 5680, 7554, 416, 2521, 177, 3028, 2704, 3054, 2612, 3042, 3077,
-				3853, 2051, 3076, 3087, 3090, 176, 3914, 180, 3886, 35, 1154, 32, 4746, 1414, 27, 30, 31, 1092, 1081,
-				26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108, 2636, 2647, 2646, 3041, 3264, 2346, 1782, 69,
-				3193, 97, 2696, 177, 3028, 2878, 3054, 2882, 3042, 3077, 2973, 5136, 3076, 3087, 3090, 176, 3914, 179,
-				3886, 35, 1154, 32, 4746, 3656, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76,
-				77, 108, 2636, 2647, 2646, 3041, 3686, 3720, 3855, 68, 1649, 1657, 2152, 177, 3028, 3005, 3054, 3576,
-				3042, 3077, 2437, 266, 3076, 3087, 3090, 176, 359, 178, 4016, 35, 1154, 32, 4746, 946, 27, 30, 31, 1092,
-				1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108, 2636, 2647, 2646, 2785, 3914, 3914, 4394,
-				35, 1154, 32, 4746, 162, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 78,
-				3914, 1042, 2520, 2784, 1138, 2339, 2607, 53, 52, 2626, 2778, 2869, 2858, 2808, 170, 35, 985, 424, 2956,
-				2907, 486, 3131, 3134, 2983, 2989, 161, 160, 3886, 35, 1154, 32, 4746, 413, 27, 30, 31, 1092, 1081, 26,
-				28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108, 2636, 2647, 2646, 3041, 839, 3587, 468, 3795, 3388,
-				3219, 2701, 177, 3028, 3801, 3054, 1666, 3042, 3077, 2969, 193, 3076, 3087, 3090, 176, 3914, 641, 3886,
-				35, 1154, 32, 4746, 3821, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108,
-				2636, 2647, 2646, 3041, 1035, 273, 3568, 2473, 2698, 2717, 2808, 177, 3028, 2983, 3054, 3834, 3042,
-				3077, 2982, 370, 3076, 3087, 3090, 176, 3914, 140, 4081, 35, 1154, 32, 4746, 4152, 27, 30, 31, 1092,
-				1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108, 2636, 2647, 2646, 3041, 1031, 5084, 5244,
-				633, 3819, 3950, 3273, 177, 3028, 4051, 3054, 4116, 3042, 3077, 1969, 3809, 3076, 3087, 3090, 176, 3914,
-				222, 3165, 35, 1154, 32, 4746, 673, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106,
-				76, 77, 108, 2636, 2647, 2646, 2785, 3920, 1556, 55, 602, 378, 3981, 189, 1404, 1717, 1556, 1860, 35,
-				1154, 32, 2411, 2153, 2601, 30, 31, 1092, 1081, 586, 3356, 3612, 4047, 3860, 2427, 3989, 3224, 2365,
-				1860, 35, 1154, 32, 4112, 3685, 40, 30, 31, 1092, 1081, 3914, 4394, 35, 1154, 32, 4746, 3145, 27, 30,
-				31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108, 2636, 2647, 2646, 3041, 2886,
-				3869, 4118, 2364, 622, 3700, 4173, 4176, 3028, 4135, 3054, 8899, 3042, 3077, 8899, 3914, 3076, 3087,
-				3136, 197, 4394, 35, 1154, 32, 4746, 8899, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080,
-				106, 76, 77, 108, 2636, 2647, 2646, 3041, 621, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 3028, 8899,
-				3054, 8899, 3042, 3077, 8899, 8899, 3076, 3087, 3136, 197, 8899, 8899, 3914, 3914, 3914, 3457, 3914,
-				4394, 35, 1154, 32, 4746, 459, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77,
-				108, 2636, 2647, 2646, 3041, 90, 385, 634, 607, 2548, 8899, 8899, 8899, 3028, 8899, 3054, 8899, 3042,
-				3077, 8899, 3914, 3076, 3087, 3136, 197, 4394, 35, 1154, 32, 4746, 329, 27, 30, 31, 1092, 1081, 26, 28,
-				2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108, 2636, 2647, 2646, 3041, 2564, 8899, 8899, 8899, 8899,
-				8899, 8899, 8899, 3028, 8899, 3054, 8899, 3042, 3077, 8899, 8899, 3076, 3087, 3136, 197, 8899, 8899,
-				3914, 3914, 2527, 3914, 3914, 4394, 35, 1154, 32, 4746, 458, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296,
-				25, 23, 50, 2080, 106, 76, 77, 108, 2636, 2647, 2646, 3041, 2364, 487, 143, 6038, 6105, 8899, 8899,
-				8899, 3028, 8899, 3054, 8899, 3042, 3077, 8899, 3914, 3076, 3087, 3136, 197, 4642, 35, 1154, 32, 4746,
-				461, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108, 2636, 2647, 2646,
-				3041, 6172, 1753, 8899, 8899, 8899, 8899, 8899, 8899, 3028, 8899, 3054, 8899, 3042, 3077, 273, 296,
-				3076, 3087, 3136, 197, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 652, 597, 598, 599, 644, 5274,
-				35, 1154, 32, 6875, 5000, 27, 30, 31, 1092, 1081, 374, 28, 5328, 35, 1154, 32, 5704, 5000, 27, 30, 31,
-				1092, 1081, 374, 28, 2539, 600, 597, 598, 599, 266, 8899, 8899, 746, 3201, 8899, 8899, 6473, 3159, 600,
-				597, 598, 599, 7342, 3914, 2978, 274, 264, 265, 3914, 6505, 8899, 600, 597, 598, 599, 8899, 8899, 8899,
-				1749, 1334, 330, 8899, 3963, 3413, 354, 1292, 356, 2184, 8899, 386, 349, 1250, 8899, 8899, 8899, 2935,
-				8899, 354, 1292, 356, 67, 367, 4667, 349, 1250, 600, 597, 598, 599, 3655, 601, 597, 598, 599, 6761,
-				4667, 986, 8899, 8899, 8899, 4394, 35, 1154, 32, 4746, 5318, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296,
-				25, 23, 50, 2080, 106, 76, 77, 108, 2636, 2647, 2646, 3041, 3914, 4792, 35, 985, 424, 5590, 1875, 8899,
-				3028, 3914, 3054, 387, 3042, 3077, 271, 296, 3076, 3513, 379, 2557, 2320, 384, 3914, 3914, 341, 345,
-				796, 3686, 652, 597, 598, 599, 66, 600, 597, 598, 599, 341, 345, 796, 8899, 65, 8899, 308, 986, 8899,
-				1453, 8899, 1749, 35, 330, 8899, 8899, 2173, 64, 55, 324, 8899, 4033, 3033, 8899, 8899, 8899, 387, 266,
-				8899, 2173, 8899, 3914, 8899, 379, 2557, 2320, 384, 1442, 600, 597, 598, 599, 377, 269, 264, 265, 1010,
-				1817, 3223, 986, 3056, 35, 1154, 32, 5704, 7436, 27, 30, 31, 1092, 1081, 374, 28, 54, 1358, 35, 3286,
-				32, 6875, 5000, 27, 30, 31, 1092, 1081, 374, 28, 8899, 309, 4995, 8899, 8899, 276, 279, 282, 3924, 678,
-				3914, 3914, 8899, 8899, 600, 597, 598, 599, 8899, 55, 1860, 35, 1154, 32, 4028, 4952, 2891, 30, 31,
-				1092, 1081, 8899, 3866, 4887, 5065, 5075, 6377, 285, 2413, 354, 1292, 356, 101, 3038, 2522, 349, 1250,
-				8899, 3914, 2230, 378, 8899, 645, 354, 1292, 356, 2184, 588, 8899, 349, 1250, 4033, 8899, 5956, 8899,
-				601, 597, 598, 599, 8899, 367, 2015, 8899, 3989, 387, 8899, 600, 597, 598, 599, 2691, 379, 2557, 2320,
-				384, 8899, 1010, 5751, 3914, 8899, 589, 6023, 8899, 3127, 5318, 4394, 2332, 1154, 2444, 4746, 8899, 27,
-				30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 84, 8899, 8899, 3512, 6520, 455,
-				3283, 4518, 35, 1154, 32, 4746, 8899, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106,
-				76, 77, 108, 2636, 2647, 2646, 2785, 4394, 35, 1154, 32, 4746, 8899, 27, 30, 31, 1092, 1081, 26, 28,
-				2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108, 2636, 2647, 2646, 3041, 8899, 2784, 8899, 2169, 8899,
-				8899, 8899, 8899, 3499, 8899, 2858, 2808, 8899, 8899, 8899, 8899, 2956, 3406, 3978, 8899, 3914, 3783,
-				8899, 1404, 4394, 35, 1154, 32, 4746, 2839, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080,
-				106, 76, 77, 108, 2636, 2647, 2646, 3041, 193, 6306, 591, 8899, 8899, 8899, 8899, 8899, 3028, 8899,
-				3054, 8899, 3042, 3077, 8899, 8899, 3504, 4518, 35, 1154, 32, 4746, 8899, 27, 30, 31, 1092, 1081, 26,
-				28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108, 2636, 2647, 2646, 2785, 4394, 35, 1154, 32, 4746,
-				8899, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108, 2636, 2647, 2646,
-				3041, 8899, 2784, 8899, 170, 35, 985, 424, 8899, 3500, 3321, 2858, 2808, 8899, 8899, 8899, 8899, 3404,
-				4394, 35, 1154, 32, 4746, 8899, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76,
-				77, 108, 2636, 2647, 2646, 3041, 8899, 49, 8899, 8899, 8899, 8899, 8899, 8899, 3028, 8899, 3054, 46,
-				3042, 3502, 4518, 35, 1154, 32, 4746, 8899, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080,
-				106, 76, 77, 108, 2636, 2647, 2646, 2785, 4394, 35, 1154, 32, 4746, 8899, 27, 30, 31, 1092, 1081, 26,
-				28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108, 2636, 2647, 2646, 3351, 8899, 2784, 362, 35, 985,
-				424, 8899, 8899, 8899, 8899, 2858, 3405, 4394, 35, 1154, 32, 4746, 8899, 27, 30, 31, 1092, 1081, 26, 28,
-				2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108, 2636, 2647, 2646, 3041, 8899, 8899, 8899, 8899, 8899,
-				308, 8899, 8899, 3028, 8899, 3054, 8899, 3503, 4719, 35, 1154, 32, 6875, 8899, 27, 30, 31, 1092, 1081,
-				374, 28, 8899, 2003, 35, 1154, 32, 5704, 5000, 27, 30, 31, 1092, 1081, 374, 28, 600, 597, 598, 599,
-				8899, 8899, 4518, 35, 1154, 32, 4746, 5847, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080,
-				106, 76, 77, 108, 2636, 2647, 2646, 2785, 8899, 8899, 2014, 8899, 3555, 8899, 354, 1292, 356, 2184,
-				8899, 8899, 350, 1250, 3978, 2448, 8899, 8899, 8899, 1404, 354, 1292, 356, 368, 8899, 8899, 349, 1250,
-				2784, 600, 597, 598, 599, 8899, 72, 8899, 8899, 3400, 1061, 8899, 4680, 387, 601, 597, 598, 599, 8899,
-				193, 381, 2557, 2320, 384, 4394, 35, 1154, 32, 4746, 8899, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296,
-				25, 23, 50, 2080, 106, 76, 77, 108, 2636, 2647, 2646, 3041, 8899, 8899, 1596, 35, 985, 424, 8899, 1431,
-				3028, 8899, 3498, 3148, 35, 1154, 32, 5704, 5000, 27, 30, 31, 1092, 1081, 374, 28, 8899, 8899, 8899,
-				8899, 8899, 4898, 35, 553, 8899, 8899, 600, 597, 598, 599, 600, 597, 598, 599, 271, 296, 49, 4179, 8899,
-				3489, 3322, 6505, 8899, 8899, 1404, 8899, 1509, 1125, 652, 597, 598, 599, 3571, 35, 1154, 32, 7550,
-				8899, 27, 30, 31, 1092, 1081, 56, 28, 8899, 8899, 8899, 1879, 354, 1292, 356, 189, 8899, 8899, 349,
-				1250, 8899, 55, 8899, 2885, 273, 296, 4028, 266, 8899, 234, 4667, 8899, 8899, 746, 3201, 8899, 8899,
-				8899, 652, 597, 598, 599, 8899, 269, 264, 265, 8899, 4518, 35, 1154, 32, 4746, 378, 27, 30, 31, 1092,
-				1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108, 2636, 2647, 2646, 2785, 266, 3989, 8899,
-				8899, 1995, 8899, 8899, 8899, 276, 279, 282, 3924, 678, 8899, 8899, 8899, 274, 264, 265, 8899, 8899,
-				3129, 8899, 8899, 8899, 342, 345, 796, 3401, 8899, 8899, 652, 597, 598, 599, 4820, 6090, 6382, 6536,
-				6853, 4518, 35, 1154, 32, 4746, 1490, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106,
-				76, 77, 108, 2636, 2647, 2646, 2785, 266, 8899, 1392, 35, 3286, 32, 5704, 5000, 27, 30, 31, 1092, 1081,
-				374, 28, 803, 278, 264, 265, 562, 563, 567, 60, 8899, 8899, 8899, 8899, 8899, 3403, 3562, 597, 598, 599,
-				8899, 8899, 8899, 8899, 8899, 8899, 8899, 5052, 8899, 8899, 324, 8899, 554, 35, 2409, 6121, 8899, 2440,
-				6721, 8899, 8899, 6567, 3116, 35, 3286, 32, 5704, 5000, 27, 30, 31, 1092, 1081, 374, 28, 354, 1292, 356,
-				2551, 3223, 8899, 349, 1250, 8899, 600, 597, 598, 599, 8899, 600, 597, 598, 599, 2015, 49, 5240, 8899,
-				8899, 8899, 8899, 5052, 8899, 8899, 8899, 1509, 842, 8899, 8899, 8899, 3195, 35, 3286, 32, 5704, 5000,
-				27, 30, 31, 1092, 1081, 374, 28, 2010, 8899, 8899, 8899, 2184, 2787, 354, 1292, 356, 8899, 2103, 8899,
-				349, 1250, 3562, 597, 598, 599, 367, 2867, 8899, 7257, 455, 3283, 2015, 5052, 8899, 652, 597, 598, 599,
-				8899, 600, 597, 598, 599, 289, 652, 597, 598, 599, 673, 6421, 5981, 8899, 8899, 600, 597, 598, 599,
-				8899, 3978, 8899, 354, 1292, 356, 1404, 5240, 8899, 349, 1250, 4190, 8899, 266, 8899, 8899, 8899, 262,
-				8899, 189, 8899, 2015, 1556, 266, 7652, 455, 3283, 2736, 8899, 281, 264, 265, 8899, 213, 193, 237, 249,
-				739, 364, 284, 264, 265, 202, 236, 246, 247, 248, 250, 651, 5247, 35, 1154, 32, 5704, 7436, 27, 30, 31,
-				1092, 1081, 374, 28, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 7257, 455, 3283, 8899, 8899,
-				201, 216, 200, 203, 204, 205, 206, 207, 4394, 35, 1154, 32, 4746, 8899, 27, 30, 31, 1092, 1081, 26, 28,
-				2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108, 2636, 2647, 2646, 3352, 8899, 8899, 8899, 3787, 354,
-				1292, 356, 8899, 8899, 8899, 349, 1250, 8899, 8899, 2512, 8899, 8899, 4146, 35, 1154, 32, 4746, 3277,
-				27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 648, 76, 77, 387, 3651, 601, 597, 598, 599,
-				6761, 379, 2557, 2320, 384, 4394, 35, 1154, 32, 4746, 3276, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296,
-				25, 23, 50, 2080, 106, 76, 77, 108, 2636, 2647, 2646, 3355, 1, 55, 8899, 8899, 8899, 673, 4028, 8899,
-				5303, 8899, 3492, 8899, 8899, 8899, 8899, 1559, 35, 1154, 32, 6875, 8899, 27, 30, 31, 1092, 1081, 374,
-				28, 8899, 8899, 8899, 262, 378, 189, 8899, 8899, 1556, 600, 597, 598, 599, 2736, 600, 597, 598, 599,
-				8899, 213, 5240, 237, 249, 739, 8899, 5240, 8899, 3989, 202, 236, 246, 247, 248, 250, 651, 8899, 387,
-				8899, 8899, 8899, 8899, 8899, 8899, 379, 2557, 2320, 384, 3130, 8899, 401, 8899, 3139, 577, 354, 1292,
-				356, 2184, 8899, 8899, 352, 1250, 8899, 201, 217, 200, 203, 204, 205, 206, 207, 368, 3577, 8899, 8899,
-				214, 4394, 35, 1154, 32, 4746, 8899, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106,
-				76, 77, 108, 2636, 2647, 2646, 3453, 4394, 35, 1154, 32, 4746, 8899, 27, 30, 31, 1092, 1081, 26, 28,
-				2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108, 2636, 2647, 2646, 3454, 4394, 35, 1154, 32, 4746, 8899,
-				27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108, 2636, 2647, 2646, 3455,
-				4394, 35, 1154, 32, 4746, 8899, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76,
-				77, 108, 2636, 2647, 2646, 3458, 4394, 35, 1154, 32, 4746, 8899, 27, 30, 31, 1092, 1081, 26, 28, 2049,
-				296, 25, 23, 50, 2080, 106, 76, 77, 108, 2636, 2647, 2646, 3460, 4394, 35, 1154, 32, 4746, 8899, 27, 30,
-				31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 108, 2636, 2647, 2646, 3476, 1724, 35,
-				1154, 32, 5704, 7374, 27, 30, 31, 1092, 1081, 374, 28, 8899, 8899, 8899, 8899, 170, 35, 985, 424, 55,
-				75, 35, 985, 424, 1404, 4394, 35, 1154, 32, 4746, 386, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25,
-				23, 50, 2080, 106, 76, 77, 108, 2636, 2647, 2646, 3788, 189, 8899, 8899, 8899, 8899, 49, 8899, 8899,
-				1724, 8899, 49, 8899, 354, 1292, 356, 1509, 1066, 8899, 349, 1250, 1509, 1409, 8899, 8899, 8899, 4208,
-				35, 1154, 32, 4746, 1061, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 637, 76, 77, 387,
-				8899, 8899, 799, 8899, 8899, 8899, 379, 2557, 2320, 384, 3755, 35, 1154, 32, 4746, 3686, 27, 30, 31,
-				1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106, 76, 77, 107, 385, 75, 35, 985, 424, 673, 8899,
-				8899, 3823, 35, 1154, 32, 4746, 2248, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 106,
-				76, 77, 104, 262, 3305, 189, 8899, 55, 1556, 673, 8899, 8899, 4028, 2736, 8899, 49, 8899, 8899, 8899,
-				213, 3074, 237, 249, 739, 8899, 1509, 1082, 8899, 202, 236, 246, 247, 248, 250, 651, 378, 8899, 189,
-				378, 481, 1556, 8899, 8899, 8899, 673, 2411, 8899, 601, 597, 598, 599, 3817, 4043, 672, 2795, 1231, 673,
-				1404, 3989, 8899, 2365, 3989, 201, 3450, 200, 203, 204, 205, 206, 207, 262, 8899, 189, 8899, 8899, 1556,
-				8899, 8899, 2128, 8899, 2736, 3689, 378, 8899, 189, 189, 213, 8899, 237, 249, 739, 8899, 221, 195, 8899,
-				202, 236, 246, 247, 248, 250, 651, 8899, 8899, 8899, 7316, 577, 55, 3574, 8899, 8899, 673, 673, 1404,
-				8899, 8899, 3340, 35, 1154, 32, 5704, 8899, 27, 30, 31, 1092, 1081, 374, 28, 201, 211, 200, 203, 204,
-				205, 206, 207, 262, 378, 189, 189, 189, 1556, 601, 597, 598, 599, 2736, 3243, 3509, 8899, 8899, 8899,
-				213, 3305, 237, 249, 739, 8899, 673, 8899, 3989, 202, 236, 246, 247, 248, 250, 651, 8899, 8899, 8899,
-				55, 673, 55, 8899, 223, 1404, 673, 1404, 8899, 3194, 354, 1292, 356, 378, 55, 189, 663, 1250, 1556,
-				1404, 8899, 8899, 8899, 2411, 201, 209, 200, 203, 204, 205, 206, 207, 262, 189, 189, 189, 3989, 1556,
-				2365, 8899, 8899, 3409, 2736, 3948, 3228, 8899, 8899, 189, 213, 4028, 237, 249, 739, 2144, 8899, 4027,
-				2998, 202, 236, 246, 247, 248, 250, 651, 8899, 8899, 8899, 8899, 769, 55, 8899, 8899, 8899, 673, 4028,
-				5164, 8899, 8899, 3373, 3507, 652, 597, 598, 599, 2440, 8899, 8899, 8899, 6567, 4339, 2933, 201, 643,
-				200, 203, 204, 205, 206, 207, 262, 378, 189, 8899, 8899, 1556, 601, 597, 598, 599, 2736, 8899, 600, 597,
-				598, 599, 213, 266, 237, 249, 739, 2233, 8899, 5240, 3989, 202, 236, 246, 247, 248, 250, 651, 8899, 287,
-				264, 265, 865, 55, 8899, 8899, 8899, 673, 1404, 8899, 545, 8899, 3609, 8899, 652, 597, 598, 599, 2504,
-				8899, 2184, 8899, 6567, 541, 8899, 201, 210, 200, 203, 204, 205, 206, 207, 262, 6054, 189, 189, 8899,
-				1556, 601, 597, 598, 599, 2736, 4036, 600, 597, 598, 599, 213, 266, 237, 249, 739, 2597, 8899, 5240,
-				8899, 202, 236, 246, 247, 248, 250, 651, 8899, 647, 264, 265, 961, 55, 538, 540, 8899, 673, 1404, 8899,
-				8899, 8899, 8899, 8899, 652, 597, 598, 599, 2331, 8899, 2184, 8899, 8899, 8899, 8899, 201, 220, 200,
-				203, 204, 205, 206, 207, 262, 6054, 189, 189, 55, 1556, 3185, 8899, 8899, 1404, 2736, 4049, 600, 597,
-				598, 599, 213, 266, 237, 249, 739, 2100, 94, 5751, 8899, 202, 236, 246, 247, 248, 250, 651, 8899, 278,
-				264, 265, 1057, 189, 8899, 8899, 8899, 673, 8899, 8899, 8899, 2687, 8899, 8899, 601, 597, 598, 599,
-				1971, 8899, 8899, 8899, 6567, 8899, 8899, 201, 3621, 200, 203, 204, 205, 206, 207, 262, 3305, 189, 8899,
-				8899, 1556, 673, 8899, 8899, 8899, 2736, 8899, 600, 597, 598, 599, 213, 8899, 237, 249, 739, 8899, 96,
-				5240, 8899, 202, 236, 246, 247, 248, 250, 651, 378, 8899, 189, 8899, 1153, 1556, 8899, 8899, 8899, 673,
-				2411, 8899, 8899, 8899, 8899, 55, 3305, 8899, 2236, 55, 673, 673, 2184, 3989, 4028, 2365, 8899, 201,
-				225, 200, 203, 204, 205, 206, 207, 262, 368, 189, 8899, 8899, 1556, 8899, 8899, 3047, 8899, 2736, 378,
-				378, 189, 189, 378, 213, 1556, 237, 249, 739, 221, 2411, 8899, 8899, 202, 236, 246, 247, 248, 250, 651,
-				8899, 8899, 7316, 3989, 1249, 2365, 3989, 8899, 8899, 673, 8899, 8899, 8899, 55, 8899, 55, 3305, 55,
-				4028, 8899, 673, 673, 1404, 3096, 8899, 8899, 543, 201, 219, 200, 203, 204, 205, 206, 207, 262, 8899,
-				189, 3978, 8899, 1556, 8899, 8899, 1404, 378, 2736, 378, 378, 189, 189, 189, 213, 1556, 237, 249, 739,
-				221, 2411, 4152, 8899, 202, 236, 246, 247, 248, 250, 651, 3989, 8899, 7316, 3989, 193, 2365, 3789, 8899,
-				4845, 35, 985, 424, 5590, 2688, 8899, 267, 35, 985, 424, 8899, 596, 272, 296, 3145, 8899, 8899, 8899,
-				201, 228, 200, 203, 204, 205, 206, 207, 652, 597, 598, 599, 8899, 652, 597, 598, 599, 55, 8899, 8899,
-				8899, 8899, 673, 308, 8899, 1559, 35, 1154, 32, 6875, 49, 27, 30, 31, 1092, 1081, 374, 28, 8899, 8899,
-				1509, 47, 8899, 8899, 266, 8899, 3790, 8899, 378, 266, 189, 8899, 600, 597, 598, 599, 8899, 4050, 221,
-				8899, 270, 264, 265, 5847, 8899, 281, 264, 265, 8899, 8899, 1085, 7316, 8899, 8899, 8899, 8899, 8899,
-				5287, 35, 1154, 32, 5704, 5000, 27, 30, 31, 1092, 1081, 374, 28, 8899, 354, 1292, 356, 2184, 309, 8899,
-				350, 1250, 277, 280, 283, 3924, 678, 601, 597, 598, 599, 368, 3148, 35, 1154, 32, 5704, 5000, 27, 30,
-				31, 1092, 1081, 374, 28, 8899, 8899, 3416, 8899, 8899, 8899, 2440, 2058, 8899, 286, 6567, 8899, 4028,
-				8899, 601, 597, 598, 599, 2779, 8899, 3833, 354, 1292, 356, 646, 8899, 8899, 349, 1250, 600, 597, 598,
-				599, 600, 597, 598, 599, 8899, 262, 5070, 6048, 8899, 8899, 8899, 5240, 652, 597, 598, 599, 170, 35,
-				985, 424, 354, 1292, 356, 239, 249, 739, 349, 1250, 8899, 8899, 8899, 238, 246, 247, 248, 250, 651,
-				8899, 5070, 8899, 8899, 8899, 2184, 8899, 8899, 8899, 8899, 8899, 266, 8899, 8899, 8899, 8899, 8899,
-				8899, 8899, 367, 8899, 49, 240, 242, 244, 720, 8899, 284, 264, 265, 8899, 1509, 7626, 8899, 8899, 251,
-				241, 243, 4394, 35, 1154, 32, 4746, 6188, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080,
-				106, 76, 77, 110, 13, 8899, 6956, 4394, 35, 1154, 32, 4746, 8899, 27, 30, 31, 1092, 1081, 26, 28, 2049,
-				296, 25, 23, 50, 2080, 106, 76, 77, 109, 4394, 35, 1154, 32, 4746, 8899, 27, 30, 31, 1092, 1081, 26, 28,
-				2049, 296, 25, 23, 50, 2080, 106, 76, 77, 105, 4270, 35, 1154, 32, 4746, 8899, 27, 30, 31, 1092, 1081,
-				26, 28, 2049, 296, 25, 23, 50, 2080, 635, 76, 77, 8899, 2870, 8899, 8899, 8899, 4332, 35, 1154, 32,
-				4746, 705, 27, 30, 31, 1092, 1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 86, 76, 77, 2279, 652, 597, 598,
-				599, 4028, 8899, 8899, 8899, 8899, 8899, 8899, 3978, 8899, 2440, 8899, 2370, 1404, 6567, 8899, 8899,
-				4028, 8899, 8899, 8899, 8899, 8899, 458, 35, 985, 424, 262, 8899, 8899, 8899, 8899, 8899, 266, 8899,
-				8899, 8899, 600, 597, 598, 599, 193, 8899, 262, 8899, 239, 249, 739, 5240, 569, 264, 265, 8899, 238,
-				246, 247, 248, 250, 651, 8899, 8899, 239, 249, 739, 8899, 49, 8899, 8899, 8899, 238, 246, 247, 248, 250,
-				651, 1509, 47, 8899, 8899, 2184, 8899, 240, 242, 244, 720, 8899, 8899, 8899, 8899, 8899, 8899, 8899,
-				8899, 367, 251, 241, 243, 240, 242, 244, 720, 8899, 4951, 35, 553, 3557, 8899, 8899, 8899, 8899, 251,
-				241, 243, 2461, 8899, 272, 296, 7423, 4028, 8899, 1223, 4095, 6956, 8899, 75, 35, 985, 424, 8899, 652,
-				597, 598, 599, 8899, 8899, 8899, 2630, 8899, 6956, 4456, 35, 1154, 32, 4746, 262, 27, 30, 31, 1092,
-				1081, 26, 28, 2049, 296, 25, 23, 50, 2080, 3238, 76, 77, 8899, 239, 249, 739, 266, 49, 8899, 8899, 8899,
-				238, 246, 247, 248, 250, 651, 1509, 5313, 8899, 8899, 8899, 270, 264, 265, 2188, 2884, 8899, 8899, 8899,
-				4028, 4028, 8899, 8899, 8899, 8899, 8899, 8899, 3978, 240, 242, 244, 720, 1404, 8899, 8899, 1928, 1231,
-				8899, 8899, 3685, 4028, 251, 241, 243, 4028, 262, 5164, 8899, 8899, 8899, 277, 280, 283, 3924, 678,
-				8899, 8899, 3228, 8899, 8899, 193, 8899, 4028, 239, 249, 739, 262, 2728, 8899, 6956, 5164, 238, 246,
-				247, 248, 250, 651, 8899, 3489, 8899, 8899, 8899, 8899, 673, 239, 249, 739, 8899, 5164, 8899, 8899,
-				8899, 238, 246, 247, 248, 250, 651, 8899, 240, 242, 244, 720, 8899, 8899, 2552, 8899, 8899, 8899, 2562,
-				4028, 189, 580, 241, 243, 8899, 8899, 8899, 8899, 2736, 240, 242, 244, 720, 8899, 213, 2643, 395, 562,
-				563, 568, 4028, 8899, 252, 241, 243, 262, 8899, 8899, 8899, 4151, 8899, 8899, 3943, 3180, 3183, 8899,
-				8899, 8899, 8899, 8899, 541, 8899, 8899, 239, 249, 739, 262, 8899, 8899, 8899, 8899, 238, 246, 247, 248,
-				250, 651, 229, 541, 8899, 8899, 8899, 8899, 8899, 239, 249, 739, 8899, 170, 35, 985, 424, 238, 246, 247,
-				248, 250, 651, 2734, 240, 242, 244, 720, 4028, 8899, 8899, 8899, 8899, 538, 540, 8899, 8899, 671, 241,
-				243, 8899, 8899, 8899, 8899, 2825, 240, 242, 244, 720, 4028, 8899, 539, 540, 8899, 262, 49, 8899, 8899,
-				670, 241, 243, 8899, 8899, 8899, 8899, 1509, 1761, 8899, 3616, 8899, 8899, 8899, 239, 249, 739, 262,
-				8899, 8899, 8899, 8899, 238, 246, 247, 248, 250, 651, 1676, 8899, 8899, 8899, 7100, 4028, 8899, 239,
-				249, 739, 8899, 170, 35, 985, 424, 238, 246, 247, 248, 250, 651, 2916, 240, 242, 244, 720, 4028, 8899,
-				8899, 8899, 8899, 262, 8899, 8899, 8899, 669, 241, 243, 5782, 230, 8899, 8899, 3007, 240, 242, 244, 720,
-				4028, 8899, 2686, 443, 7329, 262, 49, 8899, 8899, 581, 241, 243, 8899, 8899, 8899, 8899, 1509, 1077,
-				8899, 8899, 2867, 8899, 8899, 239, 249, 739, 262, 8899, 8899, 8899, 8899, 238, 246, 247, 248, 250, 651,
-				3782, 444, 445, 446, 720, 8899, 8899, 239, 249, 739, 600, 597, 598, 599, 8899, 238, 246, 247, 248, 250,
-				651, 5240, 240, 242, 244, 720, 8899, 600, 597, 598, 599, 8899, 8899, 8899, 8899, 340, 241, 243, 6157,
-				2561, 8899, 8899, 8899, 240, 242, 244, 720, 8899, 8899, 8899, 8899, 8899, 2312, 8899, 8899, 8899, 535,
-				241, 243, 2963, 35, 1154, 32, 5704, 5000, 27, 30, 31, 1092, 1081, 374, 28, 1487, 35, 1154, 32, 5704,
-				4128, 27, 30, 31, 1092, 1081, 374, 28, 2351, 8899, 8899, 8899, 6567, 4028, 8899, 8899, 8899, 8899, 8899,
-				8899, 8899, 8899, 8899, 8899, 8899, 1802, 8899, 447, 449, 7100, 4028, 8899, 8899, 8899, 8899, 600, 597,
-				598, 599, 5164, 2351, 8899, 439, 8899, 6567, 4028, 5240, 8899, 354, 1292, 356, 8899, 8899, 8899, 349,
-				1250, 262, 738, 8899, 8899, 7359, 351, 1164, 356, 8899, 8899, 3617, 600, 597, 598, 599, 5164, 8899,
-				8899, 2686, 443, 7329, 2184, 5240, 8899, 8899, 8899, 458, 35, 985, 424, 8899, 8899, 8899, 3446, 8899,
-				367, 8899, 6567, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 2440, 8899, 8899, 8899, 6567, 8899,
-				8899, 2184, 444, 445, 446, 720, 8899, 7423, 600, 597, 598, 599, 395, 8899, 8899, 367, 49, 8899, 8899,
-				5240, 8899, 600, 597, 598, 599, 8899, 1509, 47, 3732, 3180, 3183, 8899, 5240, 8899, 8899, 8899, 8899,
-				8899, 8899, 4605, 2561, 8899, 3305, 8899, 395, 8899, 8899, 673, 8899, 8899, 2184, 75, 35, 985, 424,
-				8899, 1063, 8899, 8899, 8899, 3732, 3180, 3183, 2184, 368, 651, 35, 985, 424, 8899, 706, 8899, 8899,
-				378, 8899, 189, 8899, 367, 1556, 8899, 8899, 8899, 387, 2411, 1718, 35, 985, 424, 8899, 381, 2557, 2320,
-				384, 49, 8899, 8899, 3989, 8899, 2365, 8899, 8899, 4605, 8899, 1509, 47, 447, 450, 49, 458, 35, 985,
-				424, 75, 35, 985, 424, 3786, 1509, 47, 8899, 75, 35, 985, 424, 8899, 8899, 49, 75, 35, 985, 424, 8899,
-				8899, 788, 8899, 8899, 1509, 2315, 8899, 75, 35, 985, 424, 75, 35, 985, 424, 1274, 2230, 8899, 49, 8899,
-				8899, 8899, 49, 8899, 8899, 8899, 8899, 8899, 1509, 2316, 49, 8899, 1509, 47, 799, 8899, 8899, 49, 2528,
-				8899, 1509, 47, 8899, 600, 597, 598, 599, 1509, 47, 49, 8899, 8899, 3077, 49, 5751, 8899, 2867, 8899,
-				4555, 1509, 47, 8899, 1294, 1509, 47, 600, 597, 598, 599, 8899, 1725, 170, 35, 985, 424, 8899, 5751,
-				2640, 3786, 600, 597, 598, 599, 600, 597, 598, 599, 4109, 8899, 2750, 5240, 8899, 4028, 3360, 5240,
-				8899, 8899, 170, 35, 985, 424, 8899, 8899, 8899, 8899, 600, 597, 598, 599, 8899, 8899, 8899, 8899, 49,
-				8899, 8899, 6048, 8899, 378, 592, 8899, 3139, 8899, 1509, 1125, 2485, 8899, 8899, 8899, 8899, 8899,
-				8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 49, 8899, 3989, 8899, 8899, 8899, 8899, 8899, 8899,
-				2314, 1509, 1998, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 595, 8899, 8899, 8899,
-				8899, 8899, 8899, 8899, 8899, 2325, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899,
-				8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899,
-				8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899,
-				8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899,
-				8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899,
-				8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899,
-				8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899,
-				8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899,
-				8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 4340,
-				8899, 0, 1, 263, 813, 0, 537, 6935, 0, 1, 263, 0, 39, 8914, 0, 39, 8913, 0, 1, 4619, 0, 1813, 1, 0, 39,
-				1, 8914, 0, 39, 1, 8913, 0, 1, 1156, 0, 1, 826, 0, 263, 253, 0, 9167, 257, 0, 9166, 257, 0, 848, 257, 0,
-				923, 257, 0, 957, 257, 0, 9567, 257, 0, 9272, 257, 0, 9271, 257, 0, 9194, 257, 0, 9193, 257, 0, 9192,
-				257, 0, 9191, 257, 0, 9190, 257, 0, 9189, 257, 0, 9188, 257, 0, 9187, 257, 0, 9167, 258, 0, 9166, 258,
-				0, 848, 258, 0, 923, 258, 0, 957, 258, 0, 9567, 258, 0, 9272, 258, 0, 9271, 258, 0, 9194, 258, 0, 9193,
-				258, 0, 9192, 258, 0, 9191, 258, 0, 9190, 258, 0, 9189, 258, 0, 9188, 258, 0, 9187, 258, 0, 9167, 259,
-				0, 9166, 259, 0, 848, 259, 0, 923, 259, 0, 957, 259, 0, 9567, 259, 0, 9272, 259, 0, 9271, 259, 0, 9194,
-				259, 0, 9193, 259, 0, 9192, 259, 0, 9191, 259, 0, 9190, 259, 0, 9189, 259, 0, 9188, 259, 0, 9187, 259,
-				0, 957, 430, 0, 923, 430, 0, 848, 430, 0, 318, 430, 0, 9167, 260, 0, 9166, 260, 0, 848, 260, 0, 923,
-				260, 0, 957, 260, 0, 9567, 260, 0, 9272, 260, 0, 9271, 260, 0, 9194, 260, 0, 9193, 260, 0, 9192, 260, 0,
-				9191, 260, 0, 9190, 260, 0, 9189, 260, 0, 9188, 260, 0, 9187, 260, 0, 318, 323, 0, 9167, 261, 0, 9166,
-				261, 0, 848, 261, 0, 923, 261, 0, 957, 261, 0, 9567, 261, 0, 9272, 261, 0, 9271, 261, 0, 9194, 261, 0,
-				9193, 261, 0, 9192, 261, 0, 9191, 261, 0, 9190, 261, 0, 9189, 261, 0, 9188, 261, 0, 9187, 261, 0, 1278,
-				423, 0, 8914 };
-	}
-
-	public interface BaseAction1 {
-		public final static char baseAction1[] = { 48, 0, 8913, 48, 0, 9167, 650, 0, 9166, 650, 0, 848, 650, 0, 923,
-				650, 0, 957, 650, 0, 9567, 650, 0, 9272, 650, 0, 9271, 650, 0, 9194, 650, 0, 9193, 650, 0, 9192, 650, 0,
-				9191, 650, 0, 9190, 650, 0, 9189, 650, 0, 9188, 650, 0, 9187, 650, 0, 9167, 275, 0, 9166, 275, 0, 848,
-				275, 0, 923, 275, 0, 957, 275, 0, 9567, 275, 0, 9272, 275, 0, 9271, 275, 0, 9194, 275, 0, 9193, 275, 0,
-				9192, 275, 0, 9191, 275, 0, 9190, 275, 0, 9189, 275, 0, 9188, 275, 0, 9187, 275, 0, 9206, 275, 0, 9205,
-				275, 0, 9204, 275, 0, 9203, 275, 0, 9202, 275, 0, 9201, 275, 0, 9200, 275, 0, 9199, 275, 0, 9198, 275,
-				0, 9197, 275, 0, 9196, 275, 0, 9566, 275, 0, 9565, 275, 0, 39, 275, 8914, 0, 39, 275, 8913, 0, 8937,
-				275, 0, 1, 957, 0, 1, 923, 0, 1, 848, 0, 1, 366, 0, 38, 826, 0, 38, 8914, 0, 38, 8913, 0, 490, 1713, 0,
-				476, 2079, 0, 1278, 29, 0, 8911, 1, 0, 957, 660, 0, 923, 660, 0, 848, 660, 0, 664, 660, 0, 664, 659, 0,
-				8962, 75, 0, 8961, 75, 0, 1834, 75, 0, 4804, 75, 0, 4679, 75, 0, 5589, 75, 0, 2088, 353, 0, 1, 662, 0,
-				1, 480, 0, 494, 1348, 0, 493, 1669, 0, 35, 33, 0, 47, 37, 0, 537, 2602, 0, 8937, 1, 263, 0, 39, 1, 263,
-				0, 263, 452, 0, 1, 1563, 0, 1, 9206, 0, 1, 9205, 0, 1, 9204, 0, 1, 9203, 0, 1, 9202, 0, 1, 9201, 0, 1,
-				9200, 0, 1, 9199, 0, 1, 9198, 0, 1, 9197, 0, 1, 9196, 0, 1, 9566, 0, 1, 9565, 0, 8914, 37, 0, 8913, 37,
-				0, 43, 8935, 0, 43, 37, 0, 3549, 91, 0, 32, 34, 0, 8907, 1, 0, 39, 826, 0, 957, 662, 0, 923, 662, 0,
-				848, 662, 0, 8911, 419, 0, 8910, 419, 0, 957, 366, 0, 923, 366, 0, 848, 366, 0, 1, 1435, 0, 1, 1486, 0,
-				263, 254, 0, 8909, 441, 0, 8908, 441, 0, 263, 451, 0, 1, 5647, 0, 1, 6698, 0, 1, 6725, 0, 1, 2208, 0, 1,
-				2287, 0, 1, 2366, 0, 1, 2445, 0, 1, 2524, 0, 1, 2603, 0, 1, 3323, 0, 1, 4236, 0, 1, 8921, 0, 1, 8920, 0,
-				1, 8919, 0, 1, 8918, 0, 1, 8917, 0, 1, 8916, 0, 1, 8915, 0, 1, 1572, 0, 1, 1833, 0, 1, 1970, 0, 1, 1996,
-				0, 1, 2026, 0, 1, 3520, 0, 39, 1, 0, 8911, 649, 419, 0, 8910, 649, 419, 0, 1, 263, 3227, 0, 8908, 263,
-				0, 3228, 263, 0, 8905, 1, 0, 8904, 1, 0, 5514, 126, 0, 271, 4337, 0, 424, 32, 0, 423, 29, 0, 957, 481,
-				0, 923, 481, 0, 848, 481, 0, 8937, 481, 0, 366, 481, 0, 39, 481, 0, 848, 570, 0, 923, 570, 0, 957, 570,
-				0, 848, 571, 0, 923, 571, 0, 957, 571, 0, 848, 572, 0, 923, 572, 0, 957, 572, 0, 848, 573, 0, 923, 573,
-				0, 957, 573, 0, 848, 574, 0, 923, 574, 0, 957, 574, 0, 275, 8914, 0, 275, 8913, 0, 8935, 45, 0, 37, 45,
-				0, 8911, 638, 419, 0, 8910, 638, 419, 0, 8911, 636, 419, 0, 8910, 636, 419, 0, 8911, 87, 419, 0, 8910,
-				87, 419, 0, 1, 92, 0, 3415, 263, 0, 10, 12, 0, 8937, 1, 0, 648, 637, 0, 9567, 371, 0, 9272, 371, 0,
-				9271, 371, 0, 6140, 100, 0, 8, 10, 12, 0, 3571, 227, 0, 5514, 128, 0, 5514, 127, 0, 8914, 2, 37, 0,
-				8913, 2, 37, 0, 8914, 36, 0, 8913, 36, 0, 957, 657, 0, 923, 657, 0, 848, 657, 0, 957, 656, 0, 923, 656,
-				0, 848, 656, 0, 600, 601, 0, 6948, 103, 0, 3838, 99, 0, 957, 95, 0, 923, 95, 0, 848, 95, 0, 8937, 95, 0,
-				366, 95, 0, 39, 95, 0, 8911, 649, 638, 419, 0, 649, 638, 0, 35, 73, 0, 957, 657, 658, 0, 923, 657, 658,
-				0, 848, 657, 658, 0, 657, 658, 0, 313, 6340, 0, 3622, 419, 0, 218, 6239, 0, 8, 12, 0 };
-	}
-
-	public final static char baseAction[] = new char[BaseAction0.baseAction0.length + BaseAction1.baseAction1.length];
-	{
-		int index = 0;
-		System.arraycopy(BaseAction0.baseAction0, 0, baseAction, index, BaseAction0.baseAction0.length);
-		index += BaseAction0.baseAction0.length;
-		System.arraycopy(BaseAction1.baseAction1, 0, baseAction, index, BaseAction1.baseAction1.length);
-	}
-
-	@Override
-	public final int baseAction(int index) {
-		return baseAction[index];
-	}
-
-	public final static char lhs[] = baseAction;
-
-	@Override
-	public final int lhs(int index) {
-		return lhs[index];
-	}
-
-	public interface TermCheck {
-		public final static char termCheck[] = { 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
-				19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
-				45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 0, 67, 68, 69, 4, 71,
-				72, 0, 0, 1, 2, 77, 78, 79, 0, 81, 82, 10, 0, 85, 86, 87, 88, 89, 10, 91, 92, 93, 94, 95, 0, 1, 2, 3, 4,
-				5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
-				32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 55, 56, 57,
-				58, 59, 60, 61, 62, 63, 64, 65, 0, 67, 68, 69, 0, 71, 72, 0, 1, 2, 0, 77, 78, 79, 4, 81, 82, 106, 107,
-				85, 86, 87, 88, 89, 0, 91, 92, 93, 94, 95, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
-				18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
-				44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 80, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 0, 67, 68, 69,
-				76, 71, 72, 0, 0, 1, 2, 77, 78, 79, 0, 81, 82, 10, 0, 85, 86, 87, 88, 89, 0, 91, 92, 93, 94, 95, 0, 1,
-				2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
-				30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 55,
-				56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 82, 67, 68, 69, 0, 71, 72, 0, 1, 2, 0, 77, 78, 79, 10, 8, 82,
-				106, 107, 85, 86, 87, 88, 89, 0, 91, 92, 93, 94, 95, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
-				15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
-				41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 12,
-				67, 68, 69, 76, 71, 72, 0, 1, 2, 0, 77, 78, 79, 106, 107, 82, 0, 0, 85, 86, 87, 88, 89, 0, 91, 92, 93,
-				94, 95, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
-				26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
-				52, 53, 66, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 79, 67, 68, 69, 76, 71, 72, 0, 1, 2, 0, 77, 78,
-				79, 0, 0, 82, 3, 3, 85, 86, 87, 88, 89, 0, 91, 92, 93, 94, 95, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
-				13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
-				39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 70, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
-				65, 72, 67, 68, 69, 0, 71, 72, 3, 0, 1, 2, 77, 78, 79, 0, 1, 82, 103, 0, 85, 86, 87, 88, 89, 10, 91, 92,
-				93, 94, 95, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
-				25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
-				51, 52, 53, 80, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 0, 67, 68, 69, 0, 71, 72, 0, 1, 2, 0, 77,
-				78, 79, 0, 0, 82, 3, 0, 85, 86, 87, 88, 89, 102, 91, 92, 93, 94, 95, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
-				11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
-				37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 70, 55, 56, 57, 58, 59, 60, 61, 62,
-				63, 64, 65, 0, 67, 68, 69, 0, 71, 72, 0, 100, 101, 3, 77, 78, 79, 100, 101, 82, 0, 99, 85, 86, 87, 88,
-				89, 105, 91, 92, 93, 94, 95, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
-				21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
-				47, 48, 49, 50, 51, 52, 53, 0, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 12, 67, 68, 69, 0, 71, 72, 3,
-				100, 101, 0, 77, 78, 79, 0, 0, 82, 3, 0, 85, 86, 87, 88, 89, 103, 91, 92, 93, 94, 95, 0, 1, 2, 3, 4, 5,
-				6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
-				33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 55, 56, 57, 58,
-				59, 60, 61, 62, 63, 64, 65, 0, 67, 68, 69, 0, 71, 72, 0, 0, 0, 3, 77, 78, 79, 0, 0, 82, 3, 99, 85, 86,
-				87, 88, 89, 105, 91, 92, 93, 94, 95, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
-				19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
-				45, 46, 47, 48, 49, 50, 51, 52, 53, 76, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 0, 67, 68, 69, 0,
-				71, 72, 3, 100, 101, 98, 77, 78, 79, 0, 0, 82, 104, 99, 85, 86, 87, 88, 89, 105, 91, 92, 93, 94, 95, 0,
-				1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
-				29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 70,
-				55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 0, 67, 68, 69, 0, 71, 72, 0, 1, 2, 0, 77, 78, 79, 0, 0, 82,
-				13, 99, 85, 86, 87, 88, 89, 105, 91, 92, 93, 94, 95, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
-				15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
-				41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 70, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 0,
-				67, 68, 69, 0, 71, 72, 0, 0, 1, 2, 77, 78, 79, 0, 0, 82, 0, 4, 85, 86, 87, 88, 89, 0, 91, 92, 93, 94,
-				95, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 54, 12, 41, 27, 28, 0,
-				30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, 42, 43, 44, 45, 46, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0,
-				12, 83, 84, 75, 0, 1, 2, 66, 67, 0, 0, 70, 8, 9, 73, 74, 75, 76, 83, 84, 79, 80, 81, 41, 83, 84, 0, 0,
-				1, 2, 76, 4, 5, 6, 7, 0, 54, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
-				112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 28, 76, 66, 0, 126, 127, 128, 0, 1, 2, 3, 4, 5, 6, 7,
-				8, 9, 10, 11, 12, 0, 1, 2, 3, 4, 0, 80, 80, 8, 9, 0, 11, 96, 97, 27, 28, 129, 30, 31, 32, 33, 34, 35,
-				36, 37, 38, 39, 40, 0, 42, 43, 44, 45, 46, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
-				46, 0, 1, 2, 3, 4, 0, 66, 67, 8, 9, 70, 0, 54, 73, 74, 75, 76, 54, 122, 79, 80, 81, 11, 83, 84, 0, 1, 2,
-				3, 4, 5, 6, 7, 8, 9, 54, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
-				112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 0, 1, 2, 0, 126, 127, 128, 0, 1, 2, 3, 4, 5, 6, 7, 8,
-				9, 10, 75, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
-				35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 0, 47, 48, 49, 50, 51, 52, 53, 0, 55, 56, 57, 58, 59, 60,
-				61, 62, 63, 64, 65, 0, 1, 2, 127, 77, 78, 72, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
-				17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, 0, 1,
-				2, 4, 46, 54, 0, 1, 2, 3, 4, 80, 54, 0, 8, 9, 3, 11, 0, 80, 62, 63, 64, 65, 0, 0, 68, 69, 10, 71, 12, 0,
-				1, 2, 76, 0, 5, 6, 7, 81, 5, 6, 7, 0, 1, 2, 0, 4, 90, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
-				26, 27, 28, 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 70, 77, 78, 0, 74, 123, 124, 125, 0, 1, 2, 3,
-				4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
-				31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, 102, 0, 1, 2, 46, 4, 5, 6, 7, 0, 11, 10, 54, 12, 76, 0, 0, 1,
-				2, 4, 62, 63, 64, 65, 8, 9, 68, 69, 0, 71, 0, 0, 0, 3, 76, 0, 5, 6, 7, 81, 5, 6, 7, 0, 1, 2, 31, 4, 90,
-				14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
-				40, 123, 124, 125, 70, 81, 123, 124, 125, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
-				18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, 0, 0, 1,
-				2, 46, 4, 5, 6, 7, 0, 11, 10, 54, 12, 5, 6, 7, 0, 1, 2, 62, 63, 64, 65, 122, 0, 68, 69, 11, 71, 5, 6, 7,
-				0, 1, 2, 3, 4, 0, 81, 0, 8, 9, 0, 0, 5, 6, 7, 90, 5, 6, 7, 27, 28, 54, 30, 31, 32, 33, 34, 35, 36, 37,
-				38, 39, 40, 67, 27, 28, 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, 1, 0, 67, 42, 43, 129, 0, 1,
-				2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
-				30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, 0, 0, 1, 0, 46, 5, 6, 7, 5, 6, 7, 11, 54, 0, 1, 2, 0, 1,
-				2, 66, 62, 63, 64, 65, 8, 0, 68, 69, 27, 71, 27, 28, 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
-				0, 46, 0, 90, 5, 6, 7, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, 12, 41, 54, 0, 70, 54, 27, 28, 73, 30,
-				31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, 41, 129, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
-				15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
-				76, 0, 0, 80, 0, 46, 5, 6, 7, 5, 6, 7, 0, 54, 0, 3, 0, 0, 4, 3, 3, 62, 63, 64, 65, 66, 0, 68, 69, 73,
-				71, 27, 28, 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 31, 13, 108, 109, 90, 0, 1, 2, 3, 4, 5, 6, 7,
-				8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
-				34, 35, 36, 37, 38, 39, 40, 0, 66, 0, 1, 2, 46, 4, 5, 6, 7, 68, 0, 10, 54, 12, 4, 5, 6, 7, 0, 0, 62, 63,
-				64, 65, 0, 0, 68, 69, 4, 71, 0, 1, 2, 0, 4, 5, 6, 7, 0, 81, 10, 11, 12, 0, 11, 123, 124, 125, 90, 0, 1,
-				2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
-				30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 66, 66, 0, 1, 2, 46, 4, 5, 6, 7, 75, 83, 84, 54, 74, 62, 0,
-				74, 0, 76, 4, 62, 63, 64, 65, 0, 0, 68, 69, 0, 71, 96, 97, 4, 5, 6, 7, 0, 98, 10, 81, 12, 5, 6, 7, 27,
-				28, 0, 30, 90, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
-				25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 66, 66, 0, 1, 2, 46, 4, 5, 6, 7, 0, 76,
-				10, 54, 12, 5, 6, 7, 0, 0, 0, 62, 63, 64, 65, 0, 0, 68, 69, 73, 71, 5, 6, 7, 0, 0, 11, 0, 1, 2, 81, 4,
-				5, 6, 7, 27, 28, 0, 30, 90, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
-				21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 54, 66, 73, 0, 0, 46, 3,
-				0, 74, 5, 6, 7, 0, 54, 0, 3, 73, 83, 84, 0, 0, 62, 63, 64, 65, 0, 98, 68, 69, 4, 71, 27, 28, 0, 30, 31,
-				32, 33, 34, 35, 36, 37, 38, 39, 40, 0, 1, 2, 104, 90, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
-				15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
-				66, 73, 73, 75, 0, 46, 83, 84, 54, 5, 6, 7, 0, 54, 0, 3, 0, 0, 0, 1, 0, 62, 63, 64, 65, 83, 84, 68, 69,
-				11, 71, 27, 28, 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, 1, 2, 0, 90, 0, 1, 2, 3, 4, 5, 6, 7,
-				8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
-				34, 35, 36, 37, 38, 39, 40, 75, 74, 73, 0, 0, 46, 83, 84, 54, 5, 6, 7, 0, 54, 0, 0, 0, 5, 6, 7, 0, 62,
-				63, 64, 65, 83, 84, 68, 69, 103, 71, 27, 28, 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 0,
-				0, 90, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
-				27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 75, 0, 73, 0, 0, 46, 5, 6, 7, 5, 6, 7, 0, 54, 0,
-				3, 0, 0, 0, 3, 0, 62, 63, 64, 65, 83, 84, 68, 69, 11, 71, 27, 28, 0, 30, 31, 32, 33, 34, 35, 36, 37, 38,
-				39, 40, 42, 43, 0, 0, 90, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
-				22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, 74, 73, 80, 75, 46, 0, 1,
-				2, 3, 4, 11, 0, 54, 8, 9, 0, 75, 0, 3, 0, 62, 63, 64, 65, 98, 0, 68, 69, 11, 71, 108, 109, 110, 111,
-				112, 113, 114, 115, 116, 117, 118, 119, 0, 1, 2, 46, 0, 0, 90, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
-				13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
-				39, 40, 73, 74, 0, 0, 75, 46, 54, 0, 0, 1, 2, 3, 4, 54, 11, 8, 8, 9, 83, 84, 0, 62, 63, 64, 65, 104, 0,
-				68, 69, 0, 71, 5, 6, 7, 5, 6, 7, 80, 0, 1, 2, 3, 4, 0, 0, 0, 8, 9, 10, 90, 12, 13, 14, 15, 16, 17, 18,
-				19, 20, 21, 22, 23, 24, 25, 26, 0, 0, 29, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 70, 41, 42, 43, 44, 45, 81, 47,
-				48, 49, 50, 51, 52, 53, 0, 55, 56, 57, 58, 59, 60, 61, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 72, 0, 0, 75, 3,
-				77, 78, 0, 1, 2, 3, 4, 11, 11, 80, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
-				26, 76, 0, 29, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 41, 42, 43, 44, 45, 98, 47, 48, 49, 50, 51, 52, 53, 0,
-				55, 56, 57, 58, 59, 60, 61, 67, 0, 70, 0, 12, 67, 74, 0, 0, 0, 1, 2, 3, 4, 13, 77, 78, 8, 9, 10, 11, 12,
-				13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 0, 29, 0, 1, 2, 76, 4, 76, 0, 0, 8, 9, 4, 41,
-				42, 43, 44, 45, 54, 47, 48, 49, 50, 51, 52, 53, 62, 55, 56, 57, 58, 59, 60, 61, 0, 1, 2, 66, 4, 67, 0,
-				0, 8, 9, 72, 75, 0, 1, 2, 3, 4, 11, 11, 81, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
-				23, 24, 25, 26, 73, 66, 29, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 46, 41, 42, 43, 44, 45, 0, 47, 48, 49, 50, 51,
-				52, 53, 0, 55, 56, 57, 58, 59, 60, 61, 67, 0, 0, 11, 103, 67, 5, 6, 7, 0, 72, 0, 1, 2, 3, 4, 0, 0, 0, 8,
-				9, 10, 0, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 46, 0, 29, 0, 1, 2, 0, 4, 5, 6, 7,
-				5, 6, 7, 41, 42, 43, 44, 45, 73, 47, 48, 49, 50, 51, 52, 53, 73, 55, 56, 57, 58, 59, 60, 61, 0, 0, 1, 2,
-				3, 4, 5, 6, 7, 0, 72, 10, 0, 12, 70, 77, 78, 0, 1, 2, 3, 4, 54, 11, 75, 8, 9, 10, 0, 12, 13, 14, 15, 16,
-				17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 102, 29, 0, 1, 2, 41, 122, 5, 6, 7, 11, 0, 10, 41, 42, 43,
-				44, 45, 54, 47, 48, 49, 50, 51, 52, 53, 70, 55, 56, 57, 58, 59, 60, 61, 0, 1, 2, 54, 4, 0, 73, 74, 8, 9,
-				72, 46, 0, 1, 0, 77, 78, 0, 1, 2, 3, 4, 54, 11, 0, 8, 9, 10, 0, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
-				22, 23, 24, 25, 26, 0, 0, 29, 0, 1, 2, 0, 4, 0, 41, 54, 8, 9, 0, 41, 42, 43, 44, 45, 0, 47, 48, 49, 50,
-				51, 52, 53, 66, 55, 56, 57, 58, 59, 60, 61, 0, 1, 2, 0, 1, 2, 0, 74, 0, 0, 72, 5, 6, 7, 0, 77, 78, 0, 1,
-				2, 3, 4, 54, 0, 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 66, 80, 29,
-				76, 0, 76, 66, 3, 0, 0, 54, 3, 3, 54, 41, 42, 43, 44, 45, 11, 47, 48, 49, 50, 51, 52, 53, 122, 55, 56,
-				57, 58, 59, 60, 61, 70, 96, 97, 0, 0, 67, 0, 3, 0, 3, 72, 0, 1, 2, 3, 4, 13, 11, 0, 8, 9, 10, 11, 12,
-				13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 70, 29, 3, 73, 70, 75, 0, 73, 74, 75, 0, 1,
-				2, 41, 42, 43, 44, 45, 54, 47, 48, 49, 50, 51, 52, 53, 62, 55, 56, 57, 58, 59, 60, 61, 0, 1, 2, 3, 4,
-				70, 0, 74, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 0, 29, 54, 0, 5,
-				6, 7, 0, 5, 6, 7, 11, 0, 41, 42, 43, 44, 45, 0, 47, 48, 49, 50, 51, 52, 53, 0, 55, 56, 57, 58, 59, 60,
-				61, 0, 0, 0, 127, 0, 67, 0, 1, 2, 3, 4, 11, 11, 130, 8, 9, 10, 0, 12, 13, 14, 15, 16, 17, 18, 19, 20,
-				21, 22, 23, 24, 25, 26, 0, 0, 29, 0, 0, 0, 73, 74, 3, 98, 0, 66, 11, 46, 41, 42, 43, 44, 45, 0, 47, 48,
-				49, 50, 51, 52, 53, 76, 55, 56, 57, 58, 59, 60, 61, 67, 0, 1, 2, 3, 4, 96, 97, 70, 8, 9, 10, 76, 12, 13,
-				14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 104, 0, 29, 66, 83, 84, 66, 0, 102, 0, 3, 73, 11,
-				66, 41, 42, 43, 44, 45, 81, 47, 48, 49, 50, 51, 52, 53, 0, 55, 56, 57, 58, 59, 60, 61, 0, 80, 0, 0, 1,
-				2, 3, 4, 0, 0, 72, 8, 9, 10, 12, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 0, 29,
-				0, 0, 0, 3, 3, 0, 0, 74, 11, 11, 0, 41, 42, 43, 44, 45, 11, 47, 48, 49, 50, 51, 52, 53, 0, 55, 56, 57,
-				58, 59, 60, 61, 0, 66, 0, 0, 1, 2, 3, 4, 0, 0, 72, 8, 9, 10, 0, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
-				22, 23, 24, 25, 26, 0, 0, 29, 67, 0, 0, 0, 3, 0, 74, 67, 11, 11, 0, 41, 42, 43, 44, 45, 0, 47, 48, 49,
-				50, 51, 52, 53, 0, 55, 56, 57, 58, 59, 60, 61, 0, 0, 0, 0, 1, 2, 3, 4, 0, 0, 72, 8, 9, 10, 0, 12, 13,
-				14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 0, 29, 67, 0, 0, 0, 3, 0, 74, 0, 11, 11, 3, 41,
-				42, 43, 44, 45, 76, 47, 48, 49, 50, 51, 52, 53, 0, 55, 56, 57, 58, 59, 60, 61, 0, 0, 0, 0, 1, 2, 3, 4,
-				0, 0, 72, 8, 9, 10, 0, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 0, 29, 0, 3, 0, 3,
-				0, 0, 74, 74, 11, 0, 0, 41, 42, 43, 44, 45, 76, 47, 48, 49, 50, 51, 52, 53, 0, 55, 56, 57, 58, 59, 60,
-				61, 0, 1, 2, 3, 4, 0, 0, 80, 8, 9, 10, 0, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
-				83, 84, 29, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 42, 43, 44, 45, 81, 47, 48, 49, 50, 51, 52, 53, 0, 55,
-				56, 57, 58, 59, 60, 61, 0, 1, 2, 3, 4, 0, 0, 0, 8, 9, 10, 0, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
-				23, 24, 25, 26, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 42, 43, 44, 45, 0, 47, 48, 49, 50, 51,
-				52, 53, 0, 55, 56, 57, 58, 59, 60, 61, 0, 1, 2, 3, 4, 0, 0, 0, 8, 9, 10, 0, 12, 13, 14, 15, 16, 17, 18,
-				19, 20, 21, 22, 23, 24, 25, 26, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 42, 43, 44, 45, 0, 47,
-				48, 49, 50, 51, 52, 53, 0, 55, 56, 57, 58, 59, 60, 61, 0, 1, 2, 3, 4, 0, 0, 0, 8, 9, 10, 0, 12, 13, 14,
-				15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 42, 43,
-				44, 45, 0, 47, 48, 49, 50, 51, 52, 53, 0, 55, 56, 57, 58, 59, 60, 61, 0, 1, 2, 3, 4, 0, 0, 0, 8, 9, 10,
-				0, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 41, 42, 43, 44, 45, 0, 47, 48, 49, 50, 51, 52, 53, 0, 55, 56, 57, 58, 59, 60, 61, 0, 1, 2, 3, 4, 0,
-				0, 0, 8, 9, 10, 0, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 0, 29, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 41, 42, 43, 44, 45, 0, 47, 48, 49, 50, 51, 52, 53, 0, 55, 56, 57, 58, 59, 60, 61, 0,
-				1, 2, 3, 4, 0, 0, 0, 8, 9, 10, 0, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 0, 29,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 42, 43, 44, 45, 0, 47, 48, 49, 50, 51, 52, 53, 0, 55, 56, 57, 58,
-				59, 60, 61, 0, 1, 2, 3, 4, 0, 0, 0, 8, 9, 10, 0, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
-				26, 0, 0, 29, 3, 0, 0, 0, 0, 8, 0, 10, 0, 12, 0, 41, 42, 43, 44, 45, 0, 47, 48, 49, 50, 51, 52, 53, 0,
-				55, 56, 57, 58, 59, 60, 61, 0, 0, 0, 0, 0, 0, 0, 42, 43, 44, 45, 0, 47, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8,
-				9, 10, 0, 12, 0, 0, 0, 66, 0, 0, 0, 70, 0, 0, 73, 0, 75, 0, 77, 78, 0, 80, 0, 0, 83, 84, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 96, 97, 0, 99, 100, 101, 102, 103, 104, 0, 106, 107, 108, 0, 110, 111, 112, 113, 114,
-				115, 116, 117, 118, 119, 70, 0, 0, 0, 1, 2, 126, 4, 5, 6, 7, 0, 0, 0, 0, 0, 13, 14, 15, 16, 17, 18, 19,
-				20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 1, 2, 0, 4, 5, 6, 7, 0, 62, 63, 64, 65, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
-				24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 1, 2, 0, 0, 5, 6, 7, 0, 62, 63, 64, 65, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
-				28, 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 5,
-				6, 7, 0, 62, 63, 64, 65, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 0, 30, 31, 32,
-				33, 34, 35, 36, 37, 38, 39, 40, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, 0, 62,
-				63, 64, 65, 0, 0, 27, 28, 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, 0, 0, 0, 0, 46, 0, 0, 1, 2,
-				3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 0, 66, 0, 0, 0, 70, 0, 0, 0, 74, 27, 28, 0, 30, 31, 32, 33,
-				34, 35, 36, 37, 38, 39, 40, 0, 0, 0, 0, 0, 46, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 66, 0, 0,
-				0, 0, 67, 0, 0, 70, 75, 0, 0, 74, 27, 28, 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, 0, 0, 96,
-				97, 46, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 66, 0, 0, 0, 0, 0, 120, 121, 70, 75, 0, 0, 74,
-				27, 28, 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, 0, 0, 96, 97, 46, 0, 0, 1, 2, 3, 4, 5, 6, 7,
-				0, 0, 10, 0, 12, 0, 0, 0, 0, 0, 0, 0, 120, 121, 70, 0, 0, 0, 74, 27, 28, 0, 30, 31, 32, 33, 34, 35, 36,
-				37, 38, 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 0, 0, 10, 0, 12, 0, 0, 1, 2, 3, 4, 0, 0,
-				70, 8, 9, 73, 11, 75, 27, 28, 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, 1, 2, 3, 4, 5, 6, 7, 8,
-				9, 10, 0, 12, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, 12, 0, 3, 0, 70, 0, 0, 73, 0, 75, 0, 66, 0, 0, 0, 0,
-				0, 0, 70, 0, 75, 73, 74, 75, 0, 0, 0, 0, 80, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 11, 96, 97, 44, 45, 0, 98,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 120, 121, 0, 0, 70, 0, 0, 0, 0, 0, 46, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static char termCheck[] = TermCheck.termCheck;
-
-	@Override
-	public final int termCheck(int index) {
-		return termCheck[index];
-	}
-
-	public interface TermAction {
-		public final static char termAction[] = { 0, 8899, 8635, 7901, 7901, 7901, 7894, 7901, 7901, 7901, 7901, 7901,
-				8765, 7901, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 8639, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 39, 8910, 1709, 836, 8937, 9107, 1,
-				115, 8899, 8194, 8191, 1, 1, 1179, 8899, 8906, 3237, 2129, 423, 2835, 2653, 2787, 3225, 5703, 7630,
-				3234, 1507, 3232, 4791, 3229, 10, 8768, 8768, 8768, 8768, 8768, 8768, 8768, 8768, 8768, 8768, 8768,
-				8768, 8768, 8768, 8768, 8768, 8768, 8768, 8768, 8768, 8768, 8768, 8768, 8768, 8768, 8768, 8768, 8768,
-				8768, 8768, 8768, 8768, 8768, 8768, 8768, 8768, 8768, 8768, 8768, 8768, 8768, 8768, 8768, 8768, 8768,
-				8768, 8768, 8768, 8768, 8768, 8768, 8768, 8768, 8188, 8768, 8768, 8768, 8768, 8768, 8768, 8768, 8768,
-				8768, 8768, 8768, 420, 8768, 8768, 8768, 35, 8768, 8768, 8899, 8913, 8914, 8899, 8768, 8768, 8768, 1764,
-				8768, 8768, 2050, 1971, 8768, 8768, 8768, 8768, 8768, 484, 8768, 8768, 8768, 8768, 8768, 8, 8789, 8789,
-				8789, 8789, 8789, 8789, 8789, 8789, 8789, 8789, 8789, 8789, 8789, 8789, 8789, 8789, 8789, 8789, 8789,
-				8789, 8789, 8789, 8789, 8789, 8789, 8789, 8789, 8789, 8789, 8789, 8789, 8789, 8789, 8789, 8789, 8789,
-				8789, 8789, 8789, 8789, 8789, 8789, 8789, 8789, 8789, 8789, 8789, 8789, 8789, 8789, 8789, 8789, 8789,
-				1847, 8789, 8789, 8789, 8789, 8789, 8789, 8789, 8789, 8789, 8789, 8789, 8899, 8789, 8789, 8789, 1240,
-				8789, 8789, 117, 8899, 12843, 12189, 8789, 8789, 8789, 227, 8789, 8789, 2129, 490, 8789, 8789, 8789,
-				8789, 8789, 8899, 8789, 8789, 8789, 8789, 8789, 8899, 8635, 7901, 7901, 7901, 7894, 7901, 7901, 7901,
-				7901, 7901, 8642, 7901, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 8639, 1, 1, 1, 1, 1, 1, 1, 8364, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 8793, 8910, 1709,
-				836, 116, 9107, 1, 8899, 8913, 8914, 8899, 1, 1, 1179, 2129, 1704, 3237, 2050, 1971, 2835, 2653, 2787,
-				3225, 5703, 8899, 3234, 1507, 3232, 4791, 3229, 8899, 8635, 7901, 7901, 7901, 7894, 7901, 7901, 7901,
-				7901, 7901, 8642, 7901, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 8639, 1, 1, 1, 1, 1, 1, 1, 151, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4638, 8910, 1709,
-				836, 9336, 9107, 1, 48, 8194, 8191, 8899, 1, 1, 1179, 2050, 1971, 3237, 1, 476, 2835, 2653, 2787, 3225,
-				5703, 464, 3234, 1507, 3232, 4791, 3229, 8899, 8635, 7901, 7901, 7901, 7894, 7901, 7901, 7901, 7901,
-				7901, 8642, 7901, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 8639, 1, 1, 1, 1, 1, 1, 1, 8367, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1440, 8910, 1709, 836,
-				1485, 9107, 1, 433, 8913, 8914, 155, 1, 1, 1179, 353, 8899, 3237, 8409, 1008, 2835, 2653, 2787, 3225,
-				5703, 594, 3234, 1507, 3232, 4791, 3229, 8899, 8635, 7901, 7901, 7901, 7894, 7901, 7901, 7901, 7901,
-				7901, 8642, 7901, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 8639, 1, 1, 1, 1, 1, 1, 1, 1677, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3623, 8910, 1709, 836,
-				346, 9107, 1, 1491, 8899, 12843, 12189, 1, 1, 1179, 8899, 3469, 3237, 4387, 153, 2835, 2653, 2787, 3225,
-				5703, 3189, 3234, 1507, 3232, 4791, 3229, 8899, 8635, 7901, 7901, 7901, 7894, 7901, 7901, 7901, 7901,
-				7901, 8642, 7901, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 8639, 1, 1, 1, 1, 1, 1, 1, 1352, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 8899, 8910, 1709, 836,
-				149, 9107, 1, 327, 8913, 8914, 129, 1, 1, 1179, 382, 111, 3237, 2391, 8899, 2835, 2653, 2787, 3225,
-				5703, 4499, 3234, 1507, 3232, 4791, 3229, 8899, 8635, 7901, 7901, 7901, 7894, 7901, 7901, 7901, 7901,
-				7901, 8642, 7901, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 8639, 1, 1, 1, 1, 1, 1, 1, 1677, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 8899, 8910, 1709, 836,
-				150, 9107, 1, 8899, 4923, 4856, 846, 1, 1, 1179, 4414, 4292, 3237, 135, 6626, 2835, 2653, 2787, 3225,
-				5703, 6652, 3234, 1507, 3232, 4791, 3229, 8899, 8635, 7901, 7901, 7901, 7894, 7901, 7901, 7901, 7901,
-				7901, 8642, 7901, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 8639, 1, 1, 1, 1, 1, 1, 1, 131, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4717, 8910, 1709, 836,
-				8899, 9107, 1, 1431, 4923, 4856, 8899, 1, 1, 1179, 8899, 114, 3237, 1379, 29, 2835, 2653, 2787, 3225,
-				5703, 4458, 3234, 1507, 3232, 4791, 3229, 8899, 8635, 7901, 7901, 7901, 7894, 7901, 7901, 7901, 7901,
-				7901, 8642, 7901, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 8639, 1, 1, 1, 1, 1, 1, 1, 8370, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 8899, 8910, 1709, 836,
-				130, 9107, 1, 8899, 8899, 157, 2088, 1, 1, 1179, 8899, 113, 3237, 5838, 6626, 2835, 2653, 2787, 3225,
-				5703, 6652, 3234, 1507, 3232, 4791, 3229, 8899, 8635, 7901, 7901, 7901, 7894, 7901, 7901, 7901, 7901,
-				7901, 8642, 7901, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 8639, 1, 1, 1, 1, 1, 1, 1, 5971, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 8899, 8910, 1709, 836,
-				8899, 9107, 1, 4337, 4414, 4292, 3791, 1, 1, 1179, 355, 112, 3237, 4265, 6626, 2835, 2653, 2787, 3225,
-				5703, 6652, 3234, 1507, 3232, 4791, 3229, 8899, 8635, 7901, 7901, 7901, 7894, 7901, 7901, 7901, 7901,
-				7901, 8642, 7901, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 8639, 1, 1, 1, 1, 1, 1, 1, 1677, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 8899, 8910, 1709, 836,
-				337, 9107, 1, 36, 8813, 8810, 8899, 1, 1, 1179, 494, 8899, 3237, 9235, 6626, 2835, 2653, 2787, 3225,
-				5703, 6652, 3234, 1507, 3232, 4791, 3229, 8899, 8635, 7901, 7901, 7901, 7894, 7901, 7901, 7901, 7901,
-				7901, 8642, 7901, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 8639, 1, 1, 1, 1, 1, 1, 1, 8418, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 8899, 8910, 1709, 836,
-				8899, 9107, 1, 141, 326, 1660, 1660, 1, 1, 1179, 8899, 631, 3237, 8899, 1769, 2835, 2653, 2787, 3225,
-				5703, 121, 3234, 1507, 3232, 4791, 3229, 8899, 8424, 8424, 8424, 8424, 8424, 8424, 8424, 8424, 8424,
-				8424, 8424, 8424, 8899, 7920, 7916, 4619, 7913, 8343, 8349, 8346, 826, 1156, 8352, 1177, 8352, 2394,
-				8424, 8424, 8899, 8424, 8424, 8424, 8424, 8424, 8424, 8424, 8424, 8424, 8424, 8424, 8899, 8424, 8424,
-				8424, 8424, 8424, 8899, 7920, 7916, 4619, 7913, 8343, 8349, 8346, 826, 1156, 8412, 146, 8412, 879, 958,
-				7131, 38, 8361, 8358, 8424, 8424, 159, 328, 8424, 8355, 1156, 8424, 8424, 8424, 8424, 879, 958, 8424,
-				8424, 8424, 2845, 8424, 8424, 583, 323, 8137, 8137, 3589, 318, 957, 848, 923, 626, 7110, 8424, 8424,
-				8424, 8424, 8424, 8424, 8424, 8424, 8424, 8424, 8424, 8424, 8424, 8424, 8424, 8424, 8424, 8424, 8424,
-				8424, 8424, 8424, 8424, 8424, 8424, 8424, 9524, 3589, 5276, 8899, 8424, 8424, 8424, 8899, 8501, 8501,
-				8501, 8501, 8501, 8501, 8501, 8501, 8501, 8501, 8501, 8501, 1, 7920, 7916, 7910, 7913, 8899, 2574, 3636,
-				7927, 7924, 8899, 8909, 5199, 4526, 8501, 8501, 7893, 8501, 8501, 8501, 8501, 8501, 8501, 8501, 8501,
-				8501, 8501, 8501, 47, 8501, 8501, 8501, 8501, 8501, 760, 5903, 2495, 2416, 2337, 2258, 2179, 2100, 2021,
-				1942, 1863, 1784, 8908, 1, 7920, 7916, 7910, 7913, 8899, 8501, 8501, 7927, 7924, 8501, 8899, 7026, 8501,
-				8501, 8501, 8501, 7047, 1, 8501, 8501, 8501, 8903, 8501, 8501, 366, 7907, 7904, 4619, 1813, 957, 848,
-				923, 826, 1156, 909, 8501, 8501, 8501, 8501, 8501, 8501, 8501, 8501, 8501, 8501, 8501, 8501, 8501, 8501,
-				8501, 8501, 8501, 8501, 8501, 8501, 8501, 8501, 8501, 8501, 8501, 8501, 8899, 8913, 8914, 8899, 8501,
-				8501, 8501, 39, 7907, 7904, 6318, 1813, 957, 848, 923, 4236, 1156, 2445, 9447, 2524, 1071, 9565, 9566,
-				9198, 9196, 9205, 9204, 9200, 9201, 9199, 9202, 9203, 9206, 9197, 9271, 9272, 6890, 9567, 9193, 9187,
-				9194, 9190, 9166, 9192, 9191, 9188, 9189, 9167, 8918, 2366, 2287, 3323, 2603, 405, 2208, 1833, 2026,
-				8920, 1970, 6725, 1996, 403, 8921, 8919, 1572, 8915, 8916, 8917, 6698, 9333, 4751, 9334, 9335, 37, 8427,
-				8427, 8902, 5711, 1711, 1731, 8899, 8437, 8437, 263, 8433, 7901, 7901, 7901, 263, 263, 263, 8441, 263,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 8899, 8899, 8194,
-				8191, 2094, 263, 8935, 1, 7920, 7916, 5568, 7913, 1525, 8430, 632, 826, 1156, 2482, 8645, 8899, 1579, 1,
-				1, 1, 1, 133, 8899, 4075, 837, 7240, 9347, 5084, 333, 8913, 8914, 263, 257, 957, 848, 923, 452, 7945,
-				7939, 7942, 8899, 7907, 7904, 8899, 8937, 9435, 9565, 9566, 9198, 9196, 9205, 9204, 9200, 9201, 9199,
-				9202, 9203, 9206, 9197, 7954, 7951, 8899, 7948, 7960, 7978, 7957, 7969, 7936, 7963, 7966, 7975, 7972,
-				7933, 1677, 5711, 1711, 475, 8648, 9370, 9371, 9372, 8899, 8437, 8437, 263, 8433, 7901, 7901, 7901, 263,
-				263, 263, 8549, 263, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 4565, 480, 8415, 8415, 263, 8415, 8415, 8415, 8415, 493, 8504, 8415, 8430, 8415, 5770, 39, 8899,
-				8913, 8914, 8937, 1, 1, 1, 1, 826, 1156, 4075, 837, 8899, 9347, 619, 333, 8899, 2801, 263, 570, 957,
-				848, 923, 451, 8687, 8681, 8684, 8899, 7907, 7904, 2470, 8937, 9435, 9565, 9566, 9198, 9196, 9205, 9204,
-				9200, 9201, 9199, 9202, 9203, 9206, 9197, 9271, 9272, 8899, 9567, 9193, 9187, 9194, 9190, 9166, 9192,
-				9191, 9188, 9189, 9167, 9370, 9371, 9372, 8421, 8906, 9370, 9371, 9372, 8899, 7901, 7901, 263, 7901,
-				7894, 7901, 7901, 263, 263, 263, 7930, 263, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 13025, 1, 13044, 1, 1, 13756, 1, 8899, 37, 481, 8678, 8678, 263, 8672, 8663, 8669, 8666, 665, 8911,
-				8675, 7898, 8675, 957, 848, 923, 8899, 8913, 8914, 1, 1, 1, 1, 3581, 258, 3958, 836, 8911, 9144, 7993,
-				7987, 7990, 1, 7920, 7916, 4619, 7913, 8899, 253, 259, 826, 1156, 118, 348, 8041, 8035, 8038, 9435, 957,
-				848, 923, 8002, 7999, 8935, 7996, 8008, 8026, 8005, 8017, 7984, 8011, 8014, 8023, 8020, 7981, 8910,
-				8050, 8047, 8899, 8044, 8056, 8074, 8053, 8065, 8032, 8059, 8062, 8071, 8068, 8029, 8899, 3687, 8899,
-				8910, 1892, 1127, 253, 8899, 7901, 7901, 263, 7901, 7894, 7901, 7901, 263, 263, 263, 263, 263, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 13025, 1, 13044, 1, 1, 13756, 1, 383, 8899, 608,
-				9508, 260, 263, 8872, 8880, 8876, 8101, 8095, 8098, 8884, 7898, 8899, 8489, 8486, 37, 8427, 8427, 2090,
-				1, 1, 1, 1, 8427, 8899, 3958, 836, 9509, 9144, 8110, 8107, 8899, 8104, 8116, 8134, 8113, 8125, 8092,
-				8119, 8122, 8131, 8128, 8089, 261, 8899, 8884, 8899, 9435, 8152, 8146, 8149, 544, 8899, 8834, 8834,
-				8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8899, 8834, 2016, 8935, 139, 1677, 1919, 8161, 8158,
-				8884, 8155, 8167, 8185, 8164, 8176, 8143, 8170, 8173, 8182, 8179, 8140, 343, 2394, 254, 8899, 7901,
-				7901, 263, 7901, 7894, 7901, 7901, 263, 263, 263, 263, 263, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 13025, 1, 13044, 1, 1, 13756, 1, 8834, 431, 8899, 5972, 650, 263, 957, 848, 923, 8209,
-				8203, 8206, 91, 7898, 39, 8498, 606, 1, 8937, 1298, 5738, 1, 1, 1, 1, 1180, 8899, 3958, 836, 4755, 9144,
-				8218, 8215, 337, 8212, 8224, 8242, 8221, 8233, 8200, 8227, 8230, 8239, 8236, 8197, 1382, 9235, 4000,
-				5839, 9435, 8899, 7901, 7901, 263, 7901, 7894, 7901, 7901, 263, 263, 263, 8540, 263, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 13025, 1, 13044, 1, 1, 13756, 1, 8899, 1758, 92, 8762,
-				8762, 263, 8762, 8762, 8762, 8762, 1076, 431, 8762, 7898, 8762, 424, 957, 848, 923, 145, 8899, 1, 1, 1,
-				1, 432, 8899, 3958, 836, 423, 9144, 1, 8624, 8624, 8899, 8771, 8343, 8349, 8346, 8899, 254, 366, 398,
-				366, 8899, 8905, 9370, 9371, 9372, 9435, 8899, 7901, 7901, 263, 7901, 7894, 7901, 7901, 263, 263, 263,
-				8540, 263, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 13025, 1, 13044, 1, 1, 13756,
-				1, 1278, 5276, 659, 8388, 8388, 263, 664, 957, 848, 923, 5595, 879, 958, 7898, 398, 2554, 8899, 8904,
-				371, 2004, 2934, 1, 1, 1, 1, 8899, 29, 3958, 836, 39, 9144, 5199, 4526, 8937, 957, 848, 923, 654, 398,
-				366, 254, 366, 957, 848, 923, 8783, 8780, 629, 8777, 9435, 8899, 7901, 7901, 263, 7901, 7894, 7901,
-				7901, 263, 263, 263, 8540, 263, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 13025, 1,
-				13044, 1, 1, 13756, 1, 4160, 1278, 95, 8858, 8858, 263, 8852, 8843, 8849, 8846, 662, 460, 8855, 7898,
-				8855, 8510, 8516, 8513, 371, 393, 551, 1, 1, 1, 1, 8899, 431, 3958, 836, 2235, 9144, 957, 848, 923, 190,
-				137, 8905, 430, 8086, 8086, 254, 318, 8077, 8083, 8080, 9271, 9272, 8899, 9567, 9435, 8899, 7901, 7901,
-				263, 7901, 7894, 7901, 7901, 263, 263, 263, 263, 263, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 13025, 1, 13044, 1, 1, 13756, 1, 318, 1278, 1098, 271, 571, 263, 8654, 8899, 8904, 8696,
-				8690, 8693, 8899, 7898, 144, 5116, 2700, 879, 958, 8899, 485, 1, 1, 1, 1, 48, 9291, 3958, 836, 8914,
-				9144, 9271, 9272, 142, 9567, 9193, 9187, 9194, 9190, 9166, 9192, 9191, 9188, 9189, 9167, 43, 8495, 8495,
-				4343, 9435, 8899, 7901, 7901, 263, 7901, 7894, 7901, 7901, 263, 263, 263, 263, 263, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 13025, 1, 13044, 1, 1, 13756, 1, 8914, 6978, 3174, 7215, 572,
-				263, 879, 958, 8492, 8705, 8699, 8702, 8899, 7898, 640, 6250, 8899, 156, 8899, 2403, 397, 1, 1, 1, 1,
-				879, 958, 3958, 836, 8905, 9144, 9271, 9272, 639, 9567, 9193, 9187, 9194, 9190, 9166, 9192, 9191, 9188,
-				9189, 9167, 8899, 13519, 13519, 8899, 9435, 8899, 7901, 7901, 263, 7901, 7894, 7901, 7901, 263, 263,
-				263, 263, 263, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 13025, 1, 13044, 1, 1,
-				13756, 1, 3250, 8904, 1272, 120, 573, 263, 879, 958, 8935, 8714, 8708, 8711, 653, 7898, 8899, 8899,
-				8899, 957, 848, 923, 320, 1, 1, 1, 1, 879, 958, 3958, 836, 4387, 9144, 9271, 9272, 125, 9567, 9193,
-				9187, 9194, 9190, 9166, 9192, 9191, 9188, 9189, 9167, 1892, 1127, 8899, 8899, 9435, 8899, 7901, 7901,
-				263, 7901, 7894, 7901, 7901, 263, 263, 263, 263, 263, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 13025, 1, 13044, 1, 1, 13756, 1, 3272, 366, 9218, 119, 574, 263, 8525, 8531, 8528, 8723,
-				8717, 8720, 8899, 7898, 139, 6317, 8899, 8899, 1, 6999, 8899, 1, 1, 1, 1, 879, 958, 3958, 836, 398,
-				9144, 9271, 9272, 8899, 9567, 9193, 9187, 9194, 9190, 9166, 9192, 9191, 9188, 9189, 9167, 1892, 1127,
-				8899, 8899, 9435, 8899, 7901, 7901, 263, 7901, 7894, 7901, 7901, 263, 263, 263, 263, 263, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 13025, 1, 13044, 1, 1, 13756, 1, 8899, 398, 6978, 3245,
-				3619, 263, 1, 7920, 7916, 4619, 7913, 8909, 158, 7898, 826, 1156, 8899, 3273, 8899, 6413, 8899, 1, 1, 1,
-				1, 398, 124, 3958, 836, 8905, 9144, 4000, 5839, 3196, 3147, 3098, 3049, 3000, 2951, 2902, 2853, 2803,
-				2754, 45, 8735, 8735, 8908, 8899, 542, 9435, 8899, 7901, 7901, 263, 7901, 7894, 7901, 7901, 263, 263,
-				263, 263, 263, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 13025, 1, 13044, 1, 1,
-				13756, 1, 797, 8904, 8899, 8899, 3274, 263, 8732, 8899, 1, 7920, 7916, 5568, 7913, 7898, 8907, 1704,
-				826, 1156, 879, 958, 8899, 1, 1, 1, 1, 4265, 661, 3958, 836, 366, 9144, 957, 848, 923, 957, 848, 923,
-				6254, 1, 7920, 7916, 3520, 1813, 8899, 456, 8899, 4236, 1156, 2445, 9435, 2524, 8444, 8483, 8480, 8471,
-				8477, 8450, 8453, 8465, 8462, 8468, 8459, 8456, 8447, 8474, 1, 8899, 5647, 1, 7920, 7916, 4619, 7913,
-				8343, 8349, 8346, 826, 1156, 1677, 8918, 2366, 2287, 3323, 2603, 8906, 2208, 1833, 2026, 8920, 1970,
-				6725, 1996, 8899, 8921, 8919, 1572, 8915, 8916, 8917, 6698, 1, 7920, 7916, 4619, 7913, 8343, 8349, 8346,
-				826, 1156, 1731, 1, 1, 552, 3937, 39, 39, 1, 7920, 7916, 8621, 7913, 8645, 8373, 3737, 8582, 7924, 8570,
-				8911, 8573, 8444, 8483, 8480, 8471, 8477, 8450, 8453, 8465, 8462, 8468, 8459, 8456, 8447, 8474, 3589,
-				8899, 8552, 1, 7920, 7916, 4619, 7913, 8343, 8349, 8346, 826, 1156, 8899, 8594, 8567, 8564, 8579, 8576,
-				9293, 8561, 8609, 8618, 8588, 8612, 8558, 8615, 152, 8585, 8591, 8606, 8603, 8600, 8597, 8555, 8910, 1,
-				1677, 8899, 4638, 8910, 8648, 8899, 8899, 39, 7907, 7904, 6318, 1813, 8534, 8624, 8624, 4236, 1156,
-				2445, 8890, 2524, 1563, 9565, 9566, 9198, 9196, 9205, 9204, 9200, 9201, 9199, 9202, 9203, 9206, 9197,
-				8899, 326, 5647, 8899, 7907, 7904, 5837, 1813, 3589, 48, 136, 826, 1156, 8913, 8918, 2366, 2287, 3323,
-				2603, 3188, 2208, 1833, 2026, 8920, 1970, 6725, 1996, 8537, 8921, 8919, 1572, 8915, 8916, 8917, 6698,
-				8899, 7907, 7904, 4830, 1813, 8522, 441, 1, 826, 1156, 1731, 9390, 39, 7907, 7904, 6318, 1813, 8543,
-				8911, 8906, 4236, 1156, 2445, 8519, 2524, 1563, 9565, 9566, 9198, 9196, 9205, 9204, 9200, 9201, 9199,
-				9202, 9203, 9206, 9197, 10894, 8913, 5647, 662, 7907, 7904, 4619, 1813, 957, 848, 923, 826, 1156, 8546,
-				8918, 2366, 2287, 3323, 2603, 462, 2208, 1833, 2026, 8920, 1970, 6725, 1996, 8899, 8921, 8919, 1572,
-				8915, 8916, 8917, 6698, 8910, 655, 410, 8909, 4458, 8522, 957, 848, 923, 8899, 1731, 174, 7907, 7904,
-				6318, 1813, 154, 100, 8899, 4236, 1156, 2445, 8899, 2524, 1563, 9565, 9566, 9198, 9196, 9205, 9204,
-				9200, 9201, 9199, 9202, 9203, 9206, 9197, 8908, 8899, 5647, 660, 8385, 8385, 453, 664, 8376, 8382, 8379,
-				957, 848, 923, 8918, 2366, 2287, 3323, 2603, 1824, 2208, 1833, 2026, 8920, 1970, 6725, 1996, 5005, 8921,
-				8919, 1572, 8915, 8916, 8917, 6698, 8899, 380, 39, 39, 3937, 8937, 957, 848, 923, 1, 1731, 366, 8899,
-				366, 8786, 39, 39, 614, 7907, 7904, 6318, 1813, 664, 8905, 9376, 4236, 1156, 2445, 1, 2524, 1563, 9565,
-				9566, 9198, 9196, 9205, 9204, 9200, 9201, 9199, 9202, 9203, 9206, 9197, 1, 4499, 5647, 37, 8427, 8427,
-				765, 3581, 957, 848, 923, 8909, 8899, 366, 8918, 2366, 2287, 3323, 2603, 765, 2208, 1833, 2026, 8920,
-				1970, 6725, 1996, 1677, 8921, 8919, 1572, 8915, 8916, 8917, 6698, 8899, 7907, 7904, 727, 1813, 8899,
-				1628, 8904, 8507, 1156, 1731, 8908, 8899, 3631, 8899, 39, 39, 1, 7920, 7916, 3520, 1813, 8935, 8905,
-				8899, 4236, 1156, 2445, 582, 2524, 8444, 8483, 8480, 8471, 8477, 8450, 8453, 8465, 8462, 8468, 8459,
-				8456, 8447, 8474, 8899, 8899, 5647, 8899, 7907, 7904, 1, 1813, 8899, 3588, 1048, 8507, 1156, 8899, 8918,
-				2366, 2287, 3323, 2603, 148, 2208, 1833, 2026, 8920, 1970, 6725, 1996, 5304, 8921, 8919, 1572, 8915,
-				8916, 8917, 6698, 37, 8427, 8427, 8899, 8806, 8802, 657, 8904, 8899, 99, 1731, 8816, 8822, 8819, 8899,
-				39, 39, 39, 7907, 7904, 6318, 1813, 1511, 8899, 8899, 4236, 1156, 2445, 8519, 2524, 1563, 9565, 9566,
-				9198, 9196, 9205, 9204, 9200, 9201, 9199, 9202, 9203, 9206, 9197, 1278, 1847, 5647, 2, 1, 3690, 5276,
-				3937, 1, 8899, 1609, 3937, 5905, 8935, 8918, 2366, 2287, 3323, 2603, 376, 2208, 1833, 2026, 8920, 1970,
-				6725, 1996, 3581, 8921, 8919, 1572, 8915, 8916, 8917, 6698, 8840, 5199, 4526, 1, 8899, 8522, 8899, 5917,
-				100, 1626, 1731, 39, 7907, 7904, 6318, 1813, 8534, 8905, 218, 4236, 1156, 2445, 8903, 2524, 1563, 9565,
-				9566, 9198, 9196, 9205, 9204, 9200, 9201, 9199, 9202, 9203, 9206, 9197, 8899, 1677, 5647, 6039, 576,
-				1677, 576, 8899, 376, 376, 376, 8899, 14804, 14755, 8918, 2366, 2287, 3323, 2603, 3188, 2208, 1833,
-				2026, 8920, 1970, 6725, 1996, 8537, 8921, 8919, 1572, 8915, 8916, 8917, 6698, 39, 7907, 7904, 6318,
-				1813, 8786, 1, 8904, 4236, 1156, 2445, 8519, 2524, 1563, 9565, 9566, 9198, 9196, 9205, 9204, 9200, 9201,
-				9199, 9202, 9203, 9206, 9197, 656, 8899, 5647, 8935, 454, 8825, 8831, 8828, 8899, 957, 848, 923, 8905,
-				147, 8918, 2366, 2287, 3323, 2603, 8899, 2208, 1833, 2026, 8920, 1970, 6725, 1996, 138, 8921, 8919,
-				1572, 8915, 8916, 8917, 6698, 1, 649, 134, 8902, 8899, 8522, 39, 7907, 7904, 6318, 1813, 224, 8627,
-				8893, 4236, 1156, 2445, 123, 2524, 1563, 9565, 9566, 9198, 9196, 9205, 9204, 9200, 9201, 9199, 9202,
-				9203, 9206, 9197, 8899, 8899, 5647, 8899, 8899, 8899, 6315, 8904, 6106, 4189, 73, 5276, 8907, 224, 8918,
-				2366, 2287, 3323, 2603, 8899, 2208, 1833, 2026, 8920, 1970, 6725, 1996, 3294, 8921, 8919, 1572, 8915,
-				8916, 8917, 6698, 8631, 39, 7907, 7904, 6318, 1813, 5199, 4526, 1670, 4236, 1156, 2445, 5904, 2524,
-				1563, 9565, 9566, 9198, 9196, 9205, 9204, 9200, 9201, 9199, 9202, 9203, 9206, 9197, 4343, 8899, 5647,
-				1180, 879, 958, 2483, 8899, 4565, 8899, 6340, 1245, 8905, 8869, 8918, 2366, 2287, 3323, 2603, 8906,
-				2208, 1833, 2026, 8920, 1970, 6725, 1996, 8899, 8921, 8919, 1572, 8915, 8916, 8917, 6698, 2, 3471, 132,
-				39, 7907, 7904, 3520, 1813, 8899, 8899, 1731, 4236, 1156, 2445, 4717, 2524, 1563, 9565, 9566, 9198,
-				9196, 9205, 9204, 9200, 9201, 9199, 9202, 9203, 9206, 9197, 1, 638, 5647, 8899, 103, 8899, 6759, 8837,
-				636, 8899, 8904, 194, 8738, 8899, 8918, 2366, 2287, 3323, 2603, 8746, 2208, 1833, 2026, 8920, 1970,
-				6725, 1996, 8899, 8921, 8919, 1572, 8915, 8916, 8917, 6698, 8899, 37, 8899, 39, 7907, 7904, 3520, 1813,
-				8899, 8899, 1731, 4236, 1156, 2445, 8899, 2524, 1563, 9565, 9566, 9198, 9196, 9205, 9204, 9200, 9201,
-				9199, 9202, 9203, 9206, 9197, 1, 87, 5647, 8742, 8899, 8899, 8899, 6319, 8899, 194, 8750, 196, 8754,
-				8899, 8918, 2366, 2287, 3323, 2603, 8899, 2208, 1833, 2026, 8920, 1970, 6725, 1996, 8899, 8921, 8919,
-				1572, 8915, 8916, 8917, 6698, 8899, 8899, 8899, 39, 7907, 7904, 6318, 1813, 8899, 8899, 1731, 4236,
-				1156, 2445, 8899, 2524, 1563, 9565, 9566, 9198, 9196, 9205, 9204, 9200, 9201, 9199, 9202, 9203, 9206,
-				9197, 1, 1, 5647, 8758, 8899, 8899, 8899, 1326, 8899, 196, 313, 590, 8905, 8887, 8918, 2366, 2287, 3323,
-				2603, 3373, 2208, 1833, 2026, 8920, 1970, 6725, 1996, 546, 8921, 8919, 1572, 8915, 8916, 8917, 6698,
-				8899, 8899, 8899, 39, 7907, 7904, 5735, 1813, 8899, 122, 1731, 4236, 1156, 2445, 8899, 2524, 1563, 9565,
-				9566, 9198, 9196, 9205, 9204, 9200, 9201, 9199, 9202, 9203, 9206, 9197, 8, 103, 5647, 8899, 8837, 8899,
-				7661, 8899, 8899, 590, 8904, 8896, 1, 8899, 8918, 2366, 2287, 3323, 2603, 3422, 2208, 1833, 2026, 8920,
-				1970, 6725, 1996, 8899, 8921, 8919, 1572, 8915, 8916, 8917, 6698, 39, 7907, 7904, 5885, 1813, 8899,
-				8899, 722, 4236, 1156, 2445, 8899, 2524, 1563, 9565, 9566, 9198, 9196, 9205, 9204, 9200, 9201, 9199,
-				9202, 9203, 9206, 9197, 879, 958, 5647, 8899, 755, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899,
-				8918, 2366, 2287, 3323, 2603, 8896, 2208, 1833, 2026, 8920, 1970, 6725, 1996, 8899, 8921, 8919, 1572,
-				8915, 8916, 8917, 6698, 39, 7907, 7904, 6204, 1813, 8899, 8899, 8899, 4236, 1156, 2445, 8899, 2524,
-				1563, 9565, 9566, 9198, 9196, 9205, 9204, 9200, 9201, 9199, 9202, 9203, 9206, 9197, 8899, 8899, 5647,
-				8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8918, 2366, 2287, 3323, 2603, 8899,
-				2208, 1833, 2026, 8920, 1970, 6725, 1996, 8899, 8921, 8919, 1572, 8915, 8916, 8917, 6698, 39, 7907,
-				7904, 6251, 1813, 8899, 8899, 8899, 4236, 1156, 2445, 8899, 2524, 1563, 9565, 9566, 9198, 9196, 9205,
-				9204, 9200, 9201, 9199, 9202, 9203, 9206, 9197, 8899, 8899, 5647, 8899, 8899, 8899, 8899, 8899, 8899,
-				8899, 8899, 8899, 8899, 8899, 8918, 2366, 2287, 3323, 2603, 8899, 2208, 1833, 2026, 8920, 1970, 6725,
-				1996, 8899, 8921, 8919, 1572, 8915, 8916, 8917, 6698, 39, 7907, 7904, 6318, 1813, 8899, 8899, 8899,
-				4236, 1156, 2445, 8899, 2524, 1563, 9565, 9566, 9198, 9196, 9205, 9204, 9200, 9201, 9199, 9202, 9203,
-				9206, 9197, 8899, 8899, 5647, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8918,
-				2366, 2287, 3323, 2603, 8899, 2208, 1833, 2026, 8920, 1970, 6725, 1996, 8899, 8921, 8919, 1572, 8915,
-				8916, 8917, 6698, 39, 7907, 7904, 7484, 1813, 8899, 8899, 8899, 4236, 1156, 2445, 8899, 2524, 1563,
-				9565, 9566, 9198, 9196, 9205, 9204, 9200, 9201, 9199, 9202, 9203, 9206, 9197, 8899, 8899, 5647, 8899,
-				8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8918, 2366, 2287, 3323, 2603, 8899, 2208,
-				1833, 2026, 8920, 1970, 6725, 1996, 8899, 8921, 8919, 1572, 8915, 8916, 8917, 6698, 39, 7907, 7904,
-				3520, 1813, 8899, 8899, 8899, 4236, 1156, 2445, 8899, 2524, 1563, 9565, 9566, 9198, 9196, 9205, 9204,
-				9200, 9201, 9199, 9202, 9203, 9206, 9197, 8899, 8899, 5647, 8899, 8899, 8899, 8899, 8899, 8899, 8899,
-				8899, 8899, 8899, 8899, 8918, 2366, 2287, 3323, 2603, 8899, 2208, 1833, 2026, 8920, 1970, 6725, 1996,
-				8899, 8921, 8919, 1572, 8915, 8916, 8917, 6698, 39, 7907, 7904, 3520, 1813, 8899, 8899, 8899, 4236,
-				1156, 2445, 8899, 2524, 1563, 9565, 9566, 9198, 9196, 9205, 9204, 9200, 9201, 9199, 9202, 9203, 9206,
-				9197, 8899, 8899, 5647, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8918, 2366,
-				2287, 3323, 2603, 8899, 2208, 1833, 2026, 8920, 1970, 6725, 1996, 8899, 8921, 8919, 1572, 8915, 8916,
-				8917, 6698, 39, 7907, 7904, 6318, 1813, 8899, 8899, 8899, 4236, 1156, 2445, 8899, 2524, 1563, 9565,
-				9566, 9198, 9196, 9205, 9204, 9200, 9201, 9199, 9202, 9203, 9206, 9197, 1, 8899, 5647, 1730, 8899, 8899,
-				8899, 8899, 9404, 8899, 9398, 8899, 9402, 8899, 8918, 2366, 2287, 3323, 2603, 8899, 2208, 1833, 2026,
-				8920, 1970, 6725, 1996, 8899, 8921, 8919, 1572, 8915, 8916, 8917, 6698, 8899, 8899, 8899, 8899, 8899,
-				8899, 8899, 9396, 9397, 9427, 9428, 8899, 9405, 8899, 8899, 380, 7907, 7904, 5568, 1813, 957, 848, 923,
-				826, 1156, 366, 8899, 366, 8899, 8899, 8899, 9407, 8899, 8899, 8899, 1062, 8899, 8899, 9429, 8899, 9408,
-				8899, 2239, 2263, 8899, 9406, 8899, 8899, 9418, 9417, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899,
-				8899, 8899, 8899, 9423, 9424, 8899, 9430, 9421, 9422, 9401, 9403, 9425, 8899, 9399, 9400, 9426, 8899,
-				9411, 9412, 9413, 9409, 9410, 9419, 9420, 9415, 9414, 9416, 1677, 8899, 8899, 8899, 7907, 7904, 9431,
-				8937, 957, 848, 923, 8899, 8899, 8899, 8899, 8899, 810, 9565, 9566, 9198, 9196, 9205, 9204, 9200, 9201,
-				9199, 9202, 9203, 9206, 9197, 9271, 9272, 5243, 9567, 9193, 9187, 9194, 9190, 9166, 9192, 9191, 9188,
-				9189, 9167, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 275, 8336, 8332,
-				8899, 8340, 8257, 8251, 8254, 8899, 9333, 4751, 9334, 9335, 810, 8329, 8326, 8317, 8323, 8296, 8299,
-				8311, 8308, 8314, 8305, 8302, 8293, 8320, 8266, 8263, 5243, 8260, 8272, 8290, 8269, 8281, 8248, 8275,
-				8278, 8287, 8284, 8245, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899,
-				8913, 8914, 8899, 8899, 957, 848, 923, 8899, 9333, 4751, 9334, 9335, 1655, 9565, 9566, 9198, 9196, 9205,
-				9204, 9200, 9201, 9199, 9202, 9203, 9206, 9197, 9271, 9272, 8899, 9567, 9193, 9187, 9194, 9190, 9166,
-				9192, 9191, 9188, 9189, 9167, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899,
-				275, 8729, 8726, 8899, 8899, 8257, 8251, 8254, 8899, 9333, 4751, 9334, 9335, 1655, 8329, 8326, 8317,
-				8323, 8296, 8299, 8311, 8308, 8314, 8305, 8302, 8293, 8320, 8266, 8263, 8899, 8260, 8272, 8290, 8269,
-				8281, 8248, 8275, 8278, 8287, 8284, 8245, 29, 423, 423, 8660, 423, 423, 423, 423, 423, 423, 8660, 8660,
-				8660, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 9333, 4751, 9334, 9335, 8899, 8899, 423, 423,
-				8899, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 8899, 8899, 8899, 126, 8899, 8660, 8899,
-				638, 649, 649, 649, 649, 649, 649, 649, 649, 649, 8866, 8861, 8866, 8899, 8899, 8899, 8899, 8899, 8370,
-				8899, 8899, 8899, 8660, 8899, 8899, 8899, 8660, 649, 649, 8899, 649, 649, 649, 649, 649, 649, 649, 649,
-				649, 649, 649, 8899, 8899, 8899, 128, 8899, 8866, 8899, 32, 424, 424, 8657, 424, 424, 424, 424, 424,
-				424, 8657, 8657, 8657, 8899, 5541, 8899, 8899, 8899, 8899, 8522, 8899, 8899, 649, 8651, 8899, 8899,
-				8866, 424, 424, 8899, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 8899, 8899, 8899, 5487,
-				5460, 8657, 8899, 637, 648, 648, 648, 648, 648, 648, 648, 648, 648, 8774, 8774, 8774, 8899, 5541, 8899,
-				8899, 8899, 8899, 8899, 5433, 5406, 8657, 8796, 8899, 8899, 8657, 648, 648, 8899, 648, 648, 648, 648,
-				648, 648, 648, 648, 648, 648, 648, 8899, 8899, 8899, 5487, 5460, 8774, 8899, 37, 8914, 8914, 8914, 8914,
-				8914, 8914, 8914, 8899, 8899, 8914, 8899, 8914, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 5433, 5406,
-				648, 8899, 8899, 8899, 8774, 8914, 8914, 8899, 8914, 8914, 8914, 8914, 8914, 8914, 8914, 8914, 8914,
-				8914, 8914, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 37, 8913, 8913, 8913, 8913, 8913, 8913,
-				8913, 8899, 8899, 8913, 127, 8913, 8899, 1, 7920, 7916, 5568, 7913, 8899, 8899, 8914, 826, 1156, 8914,
-				402, 8914, 8913, 8913, 8899, 8913, 8913, 8913, 8913, 8913, 8913, 8913, 8913, 8913, 8913, 8913, 344,
-				7920, 7916, 4619, 7913, 8343, 8349, 8346, 826, 1156, 8352, 8899, 8352, 8899, 7920, 7916, 4619, 7913,
-				8343, 8349, 8346, 826, 1156, 8412, 75, 8412, 8899, 8403, 8899, 8913, 8899, 8899, 8913, 8899, 8913, 8899,
-				5541, 8899, 8899, 8899, 8899, 8899, 8899, 1677, 8899, 8799, 402, 402, 402, 8899, 8899, 8899, 8899, 1458,
-				1, 7920, 7916, 4619, 7913, 8343, 8349, 8346, 826, 1156, 8899, 344, 5487, 5460, 8394, 8391, 8899, 402,
-				8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899,
-				8899, 5433, 5406, 8899, 8899, 8406, 8899, 8899, 8899, 8899, 8899, 344, 8899, 8899, 8899, 8899, 8899,
-				8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899,
-				8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899,
-				8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8899, 8397, 8899, 8400 };
-	}
-
-	public final static char termAction[] = TermAction.termAction;
-
-	@Override
-	public final int termAction(int index) {
-		return termAction[index];
-	}
-
-	public interface Asb {
-		public final static char asb[] = { 0, 1315, 1, 1306, 11, 287, 1353, 687, 687, 687, 1262, 8, 870, 1314, 94, 853,
-				736, 1177, 736, 736, 736, 1190, 200, 1190, 867, 1190, 878, 1190, 1190, 94, 856, 1190, 1171, 814, 3,
-				1353, 1250, 1109, 1190, 1190, 19, 856, 1190, 856, 736, 750, 103, 103, 424, 103, 637, 200, 872, 326, 872,
-				856, 854, 14, 734, 527, 1046, 98, 869, 533, 867, 198, 94, 878, 259, 856, 856, 685, 96, 814, 814, 814,
-				814, 814, 814, 814, 814, 814, 814, 1111, 814, 1048, 736, 750, 750, 750, 750, 94, 736, 1190, 557, 557,
-				634, 571, 203, 203, 1253, 758, 633, 1250, 1250, 856, 932, 528, 259, 259, 1190, 470, 528, 1190, 1190,
-				750, 1190, 856, 683, 960, 114, 103, 103, 102, 102, 200, 94, 856, 854, 692, 546, 691, 347, 527, 733, 528,
-				98, 856, 554, 1163, 552, 685, 200, 538, 856, 259, 685, 856, 679, 1048, 1048, 1048, 1048, 1002, 286, 683,
-				1190, 528, 528, 528, 774, 939, 793, 793, 287, 287, 287, 287, 856, 483, 531, 531, 483, 813, 557, 200, 94,
-				571, 426, 1250, 1190, 856, 813, 1068, 1250, 571, 679, 1190, 1190, 259, 259, 1253, 470, 470, 854, 960,
-				114, 102, 102, 102, 856, 634, 634, 14, 634, 1364, 1046, 950, 949, 526, 541, 856, 98, 1161, 870, 750,
-				852, 1367, 98, 554, 553, 557, 554, 557, 685, 538, 538, 856, 424, 289, 85, 591, 596, 593, 1048, 401, 399,
-				406, 404, 408, 407, 409, 473, 410, 423, 856, 96, 856, 528, 528, 528, 528, 470, 286, 813, 1190, 775,
-				1253, 956, 211, 210, 689, 600, 598, 607, 605, 609, 608, 610, 611, 696, 1196, 1196, 94, 1111, 814, 528,
-				528, 424, 424, 424, 424, 685, 528, 813, 853, 855, 853, 528, 470, 200, 738, 856, 736, 470, 624, 1250,
-				1257, 528, 541, 200, 1250, 571, 1260, 1190, 424, 424, 1190, 528, 215, 935, 214, 423, 750, 333, 333, 541,
-				541, 102, 856, 857, 528, 347, 528, 482, 528, 528, 683, 1369, 557, 557, 557, 557, 856, 538, 540, 742,
-				540, 59, 72, 72, 72, 72, 54, 94, 814, 814, 814, 814, 814, 814, 814, 747, 814, 814, 814, 814, 814, 814,
-				814, 814, 814, 814, 814, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 814, 793, 679,
-				1190, 1190, 1190, 1069, 814, 287, 1190, 1190, 528, 774, 1161, 814, 1161, 634, 773, 736, 736, 736, 775,
-				736, 856, 887, 634, 634, 856, 200, 939, 528, 958, 960, 813, 814, 814, 814, 814, 814, 814, 814, 814, 814,
-				814, 814, 814, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 1116, 814, 856, 683, 1200, 1048,
-				736, 736, 736, 736, 856, 856, 856, 855, 683, 544, 94, 856, 483, 541, 1068, 1190, 1190, 561, 813, 212,
-				212, 954, 1253, 219, 114, 103, 114, 422, 422, 541, 634, 528, 950, 854, 633, 814, 1161, 572, 752, 630,
-				1369, 557, 557, 339, 540, 541, 814, 856, 856, 593, 593, 591, 591, 591, 814, 399, 399, 399, 596, 596,
-				404, 401, 401, 407, 406, 408, 1161, 409, 528, 1190, 1253, 764, 775, 1161, 859, 775, 793, 793, 791, 773,
-				793, 634, 634, 578, 772, 528, 960, 598, 598, 598, 598, 598, 598, 605, 600, 600, 608, 607, 609, 1161,
-				1161, 610, 685, 854, 528, 813, 813, 813, 813, 736, 736, 96, 856, 854, 544, 528, 1068, 1190, 353, 561,
-				813, 813, 958, 935, 114, 287, 287, 482, 634, 1369, 814, 814, 630, 630, 1369, 1369, 738, 149, 340, 856,
-				541, 685, 862, 813, 1190, 1190, 1190, 813, 1190, 775, 814, 775, 528, 1250, 528, 791, 1353, 736, 528,
-				544, 580, 528, 813, 813, 856, 363, 528, 528, 528, 528, 483, 483, 1312, 1190, 96, 765, 736, 540, 1190,
-				564, 423, 630, 630, 339, 856, 94, 94, 856, 856, 1190, 483, 814, 470, 775, 578, 775, 634, 1353, 813, 775,
-				772, 580, 580, 1233, 528, 528, 1312, 219, 1190, 154, 564, 324, 856, 856, 856, 1190, 528, 470, 813, 773,
-				483, 634, 528, 583, 580, 528, 528, 1247, 1190, 1190, 736, 333, 856, 856, 775, 528, 634, 583, 583, 200,
-				200, 1249, 961, 422, 775, 583, 950, 853, 287 };
-	}
-
-	public final static char asb[] = Asb.asb;
-
-	@Override
-	public final int asb(int index) {
-		return asb[index];
-	}
-
-	public interface Asr {
-		public final static char asr[] = { 0, 129, 0, 11, 76, 67, 79, 0, 41, 54, 0, 3, 28, 0, 11, 76, 74, 41, 0, 29, 78,
-				77, 42, 43, 106, 107, 102, 103, 8, 47, 80, 66, 113, 114, 110, 111, 112, 118, 117, 119, 84, 83, 115, 116,
-				100, 101, 96, 97, 104, 108, 44, 45, 99, 126, 13, 63, 62, 64, 65, 17, 26, 16, 22, 20, 21, 23, 24, 19, 18,
-				25, 14, 15, 32, 38, 39, 34, 37, 36, 31, 33, 27, 28, 30, 35, 40, 75, 73, 5, 12, 10, 6, 7, 3, 70, 1, 2, 4,
-				0, 123, 124, 125, 76, 81, 9, 11, 3, 12, 10, 8, 46, 71, 68, 90, 69, 14, 15, 30, 5, 32, 16, 17, 62, 27,
-				18, 63, 33, 34, 19, 35, 36, 20, 21, 37, 38, 22, 23, 39, 64, 54, 40, 13, 65, 24, 25, 28, 26, 29, 6, 7, 1,
-				2, 4, 31, 0, 77, 78, 72, 44, 45, 12, 10, 42, 43, 8, 47, 52, 61, 29, 3, 4, 9, 58, 59, 60, 41, 56, 50, 55,
-				14, 15, 17, 26, 16, 22, 20, 21, 23, 24, 19, 18, 25, 13, 49, 53, 51, 48, 57, 81, 1, 2, 67, 11, 0, 5, 79,
-				76, 46, 67, 6, 7, 3, 70, 75, 80, 73, 11, 74, 98, 0, 14, 15, 30, 5, 32, 16, 17, 62, 27, 18, 63, 33, 34,
-				19, 35, 36, 20, 21, 37, 38, 22, 23, 39, 64, 40, 13, 65, 24, 31, 25, 28, 26, 1, 2, 4, 29, 6, 7, 98, 0,
-				48, 77, 49, 50, 78, 9, 51, 52, 53, 55, 72, 56, 57, 58, 59, 60, 41, 44, 45, 12, 10, 42, 43, 8, 47, 75,
-				61, 3, 29, 4, 13, 1, 2, 63, 64, 65, 14, 15, 17, 26, 16, 22, 20, 21, 23, 24, 19, 18, 25, 32, 38, 39, 34,
-				37, 36, 31, 33, 27, 28, 30, 5, 7, 6, 35, 40, 62, 0, 5, 11, 67, 6, 7, 80, 0, 75, 80, 73, 1, 2, 0, 31, 1,
-				2, 4, 123, 124, 125, 0, 11, 73, 74, 1, 27, 0, 72, 79, 128, 126, 44, 45, 76, 98, 127, 81, 33, 34, 35, 36,
-				37, 9, 38, 39, 40, 31, 28, 1, 2, 70, 3, 27, 32, 8, 4, 5, 30, 6, 7, 105, 99, 42, 43, 106, 107, 120, 121,
-				10, 74, 46, 67, 11, 84, 83, 66, 96, 97, 100, 101, 12, 102, 103, 104, 108, 109, 110, 111, 112, 113, 114,
-				115, 116, 117, 118, 119, 80, 73, 75, 0, 77, 78, 3, 13, 49, 53, 51, 48, 57, 17, 26, 16, 22, 20, 21, 23,
-				24, 19, 18, 25, 14, 15, 58, 59, 60, 41, 56, 50, 55, 8, 9, 4, 44, 45, 12, 10, 42, 43, 47, 52, 61, 29, 1,
-				2, 127, 11, 0, 5, 75, 76, 98, 127, 81, 46, 6, 7, 73, 14, 15, 16, 17, 48, 77, 18, 49, 50, 19, 20, 21, 78,
-				9, 51, 22, 23, 52, 53, 55, 72, 56, 57, 13, 24, 25, 26, 58, 59, 60, 2, 3, 44, 45, 12, 10, 42, 43, 8, 47,
-				4, 29, 61, 41, 1, 74, 11, 0, 9, 8, 54, 1, 2, 4, 0, 1, 2, 73, 81, 11, 0, 122, 0, 11, 76, 73, 74, 3, 0, 4,
-				66, 6, 7, 5, 11, 76, 67, 0, 30, 27, 28, 72, 79, 75, 76, 98, 74, 67, 3, 5, 11, 73, 46, 6, 7, 80, 0, 30,
-				27, 28, 72, 11, 75, 98, 80, 73, 74, 0, 105, 99, 10, 106, 107, 42, 43, 84, 83, 66, 96, 97, 120, 121, 100,
-				101, 12, 102, 103, 104, 75, 74, 80, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 76, 98, 127, 81,
-				108, 109, 6, 7, 5, 73, 46, 11, 0, 14, 15, 30, 32, 16, 17, 62, 27, 18, 63, 33, 90, 34, 19, 35, 36, 20,
-				21, 37, 68, 38, 22, 23, 39, 64, 40, 13, 65, 24, 69, 31, 25, 28, 26, 3, 12, 4, 46, 29, 71, 67, 11, 5, 10,
-				6, 7, 9, 8, 1, 2, 54, 0, 127, 46, 73, 74, 11, 76, 0, 14, 15, 30, 5, 32, 16, 17, 27, 18, 33, 34, 19, 35,
-				36, 20, 21, 37, 9, 38, 22, 23, 39, 40, 24, 31, 25, 28, 26, 2, 70, 12, 10, 8, 4, 46, 6, 7, 1, 74, 11, 3,
-				0, 11, 67, 73, 0, 11, 73, 81, 80, 0, 75, 96, 97, 66, 0, 76, 5, 70, 6, 7, 66, 11, 73, 46, 80, 3, 0, 74,
-				90, 123, 124, 125, 54, 76, 129, 122, 130, 81, 71, 79, 69, 68, 85, 87, 94, 92, 82, 89, 91, 93, 95, 67,
-				86, 88, 46, 11, 63, 62, 64, 65, 32, 38, 39, 34, 37, 36, 31, 33, 27, 28, 30, 5, 7, 6, 35, 40, 72, 77, 78,
-				49, 53, 51, 48, 57, 3, 17, 26, 16, 22, 20, 21, 23, 24, 19, 18, 25, 14, 15, 58, 59, 60, 41, 56, 50, 55,
-				44, 45, 12, 10, 42, 43, 47, 52, 61, 29, 13, 4, 9, 8, 2, 1, 0, 76, 98, 0, 74, 11, 84, 83, 0, 54, 4, 76,
-				1, 2, 11, 67, 6, 7, 5, 0, 4, 11, 67, 6, 7, 5, 1, 2, 0, 14, 15, 16, 17, 48, 77, 18, 49, 50, 19, 20, 21,
-				78, 9, 51, 22, 23, 52, 53, 55, 72, 56, 57, 13, 24, 25, 26, 58, 59, 60, 41, 1, 2, 3, 44, 45, 42, 43, 8,
-				47, 4, 29, 61, 46, 11, 10, 12, 0, 98, 9, 8, 80, 75, 5, 1, 2, 12, 10, 4, 6, 7, 70, 3, 74, 11, 73, 0, 8,
-				9, 3, 70, 10, 12, 98, 14, 15, 30, 5, 32, 16, 17, 62, 27, 18, 63, 33, 34, 19, 35, 36, 20, 21, 37, 38, 22,
-				23, 39, 64, 40, 13, 65, 24, 31, 25, 28, 26, 1, 2, 4, 29, 6, 7, 74, 11, 0, 77, 78, 44, 45, 12, 10, 42,
-				43, 8, 47, 52, 61, 29, 3, 4, 9, 58, 59, 60, 56, 50, 55, 14, 15, 17, 26, 16, 22, 20, 21, 23, 24, 19, 18,
-				25, 13, 49, 53, 51, 48, 57, 70, 1, 2, 41, 0, 30, 5, 32, 62, 27, 63, 33, 34, 35, 36, 37, 38, 39, 64, 40,
-				65, 31, 28, 6, 7, 72, 44, 45, 12, 10, 42, 43, 47, 52, 61, 29, 3, 4, 58, 59, 60, 41, 56, 50, 55, 14, 15,
-				17, 26, 16, 22, 20, 21, 23, 24, 19, 18, 25, 13, 49, 53, 51, 48, 57, 67, 11, 9, 8, 1, 2, 78, 77, 0, 14,
-				15, 16, 17, 48, 77, 18, 49, 50, 19, 20, 21, 78, 9, 51, 22, 23, 52, 53, 55, 72, 56, 57, 13, 24, 25, 26,
-				58, 59, 60, 41, 1, 2, 3, 44, 45, 12, 10, 42, 43, 8, 47, 4, 29, 61, 76, 0, 4, 11, 76, 67, 6, 7, 5, 0, 29,
-				13, 63, 62, 64, 65, 17, 26, 16, 22, 20, 21, 23, 24, 19, 18, 25, 14, 15, 79, 76, 98, 127, 81, 67, 128,
-				126, 44, 45, 105, 99, 42, 43, 106, 107, 83, 84, 66, 75, 96, 97, 100, 101, 102, 103, 104, 108, 109, 80,
-				110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 73, 120, 121, 30, 32, 27, 33, 34, 35, 36, 37, 38, 39,
-				40, 31, 28, 46, 11, 74, 70, 8, 9, 3, 12, 1, 2, 4, 6, 7, 5, 10, 0, 17, 62, 27, 18, 63, 33, 19, 35, 20,
-				21, 37, 38, 22, 23, 64, 40, 65, 24, 31, 25, 28, 26, 16, 32, 30, 29, 15, 14, 11, 3, 12, 10, 46, 69, 90,
-				34, 39, 36, 71, 66, 6, 7, 5, 54, 9, 1, 2, 4, 13, 68, 8, 0, 81, 14, 15, 30, 32, 16, 17, 62, 27, 18, 63,
-				33, 19, 35, 20, 21, 37, 38, 22, 23, 64, 40, 13, 65, 24, 31, 25, 28, 26, 29, 129, 71, 68, 34, 39, 36, 90,
-				69, 54, 5, 11, 12, 46, 6, 7, 8, 9, 2, 4, 3, 1, 10, 0, 46, 11, 3, 9, 8, 76, 12, 10, 4, 1, 2, 6, 7, 5,
-				0 };
-	}
-
-	public final static char asr[] = Asr.asr;
-
-	@Override
-	public final int asr(int index) {
-		return asr[index];
-	}
-
-	public interface Nasb {
-		public final static char nasb[] = { 0, 288, 13, 21, 19, 5, 319, 13, 13, 13, 301, 13, 170, 301, 238, 238, 13,
-				274, 13, 13, 13, 275, 250, 275, 163, 275, 163, 275, 13, 11, 240, 275, 267, 62, 154, 156, 233, 195, 13,
-				13, 48, 180, 13, 240, 13, 13, 301, 301, 13, 301, 224, 250, 163, 13, 286, 277, 277, 42, 35, 74, 13, 154,
-				210, 238, 286, 16, 238, 286, 154, 240, 12, 13, 13, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 240, 176,
-				150, 13, 13, 13, 13, 13, 238, 13, 13, 154, 120, 208, 163, 68, 68, 328, 14, 13, 191, 280, 240, 13, 35,
-				154, 154, 37, 96, 35, 13, 13, 13, 13, 12, 46, 154, 154, 301, 301, 154, 154, 250, 238, 174, 195, 35, 13,
-				13, 89, 34, 13, 35, 311, 211, 163, 163, 13, 277, 250, 154, 277, 23, 31, 211, 104, 150, 150, 150, 150,
-				62, 98, 46, 13, 35, 35, 35, 86, 166, 1, 152, 339, 339, 339, 339, 240, 183, 114, 114, 183, 153, 120, 140,
-				55, 286, 91, 191, 286, 240, 83, 60, 157, 163, 227, 163, 163, 23, 23, 328, 96, 96, 195, 308, 308, 288,
-				288, 154, 277, 208, 208, 42, 208, 13, 42, 35, 13, 35, 87, 240, 208, 13, 173, 13, 21, 318, 311, 163, 163,
-				154, 286, 154, 31, 154, 181, 12, 13, 199, 166, 13, 13, 13, 145, 13, 13, 13, 13, 13, 13, 13, 62, 13, 13,
-				211, 13, 12, 35, 35, 35, 35, 96, 339, 83, 248, 214, 328, 165, 68, 68, 13, 13, 13, 13, 13, 13, 13, 13,
-				13, 13, 13, 13, 11, 240, 62, 35, 35, 13, 13, 13, 13, 45, 35, 62, 194, 240, 194, 35, 96, 140, 13, 277,
-				13, 96, 13, 281, 163, 35, 154, 250, 280, 286, 13, 154, 13, 13, 334, 35, 13, 231, 13, 13, 13, 77, 77, 87,
-				87, 288, 174, 13, 35, 89, 35, 62, 35, 35, 46, 156, 154, 154, 100, 100, 211, 181, 108, 13, 13, 274, 275,
-				275, 275, 275, 293, 11, 62, 62, 62, 62, 62, 62, 62, 13, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
-				62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 153, 62, 23, 104, 248, 248, 248, 243, 62, 339, 154, 126, 35,
-				220, 13, 133, 13, 208, 13, 13, 13, 13, 221, 13, 181, 206, 208, 208, 181, 52, 332, 35, 326, 154, 62, 62,
-				62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 259, 62, 240,
-				46, 13, 150, 13, 13, 13, 13, 211, 12, 240, 186, 46, 154, 55, 12, 183, 87, 154, 163, 70, 154, 62, 13, 13,
-				230, 328, 308, 308, 301, 154, 13, 13, 87, 208, 35, 35, 195, 208, 62, 13, 124, 13, 163, 280, 100, 100,
-				79, 108, 87, 62, 181, 240, 13, 13, 13, 13, 13, 62, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
-				35, 40, 334, 13, 221, 13, 13, 221, 263, 263, 306, 13, 263, 208, 208, 13, 154, 35, 308, 13, 13, 13, 13,
-				13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 44, 211, 35, 153, 153, 153, 153, 13, 13, 13, 180, 211, 131,
-				35, 60, 154, 70, 70, 62, 62, 326, 189, 308, 339, 339, 62, 208, 157, 62, 62, 286, 163, 280, 13, 13, 238,
-				72, 277, 87, 31, 35, 62, 154, 102, 13, 153, 334, 221, 62, 221, 35, 233, 35, 252, 154, 13, 35, 131, 154,
-				35, 62, 62, 211, 248, 35, 35, 35, 35, 183, 183, 187, 13, 13, 129, 13, 87, 70, 154, 13, 163, 286, 110,
-				277, 238, 238, 12, 211, 40, 183, 62, 96, 221, 13, 221, 208, 157, 153, 221, 129, 70, 154, 13, 35, 35,
-				187, 339, 143, 59, 122, 13, 12, 277, 277, 102, 35, 96, 62, 13, 256, 208, 35, 154, 70, 35, 35, 154, 143,
-				13, 13, 77, 12, 12, 221, 35, 208, 122, 154, 52, 52, 231, 338, 13, 221, 122, 35, 194, 339 };
-	}
-
-	public final static char nasb[] = Nasb.nasb;
-
-	@Override
-	public final int nasb(int index) {
-		return nasb[index];
-	}
-
-	public interface Nasr {
-		public final static char nasr[] = { 0, 3, 13, 10, 9, 149, 204, 148, 121, 147, 146, 4, 2, 0, 215, 0, 36, 1, 0,
-				234, 0, 181, 0, 4, 10, 9, 2, 13, 140, 5, 0, 2, 89, 0, 202, 32, 0, 5, 226, 0, 172, 0, 164, 0, 2, 143, 89,
-				0, 5, 54, 227, 0, 36, 56, 0, 194, 4, 193, 0, 102, 105, 36, 13, 2, 9, 10, 4, 0, 101, 0, 63, 0, 224, 0,
-				233, 32, 0, 131, 0, 4, 123, 223, 0, 5, 33, 0, 5, 102, 0, 200, 0, 13, 2, 9, 10, 4, 103, 0, 206, 0, 133,
-				0, 170, 0, 89, 167, 166, 0, 178, 0, 4, 123, 190, 0, 4, 2, 9, 10, 168, 0, 184, 0, 156, 0, 222, 0, 5, 208,
-				0, 142, 0, 186, 0, 13, 2, 9, 10, 4, 236, 0, 36, 185, 0, 187, 0, 13, 2, 9, 10, 4, 36, 56, 54, 41, 5, 0,
-				107, 5, 4, 10, 9, 2, 73, 38, 0, 32, 109, 110, 5, 0, 38, 1, 0, 38, 127, 0, 4, 10, 9, 13, 3, 1, 0, 5, 113,
-				0, 2, 144, 0, 110, 109, 38, 73, 83, 4, 10, 9, 2, 0, 149, 228, 148, 121, 147, 146, 0, 5, 41, 47, 0, 53,
-				2, 3, 0, 5, 51, 36, 41, 210, 0, 102, 41, 51, 91, 36, 5, 0, 38, 89, 0, 32, 110, 109, 73, 2, 9, 10, 5, 4,
-				0, 2, 53, 0, 4, 10, 9, 2, 13, 105, 104, 36, 0, 54, 5, 211, 0, 5, 209, 0, 5, 41, 143, 0, 5, 54, 125, 0,
-				2, 4, 121, 118, 119, 120, 165, 13, 79, 0, 2, 82, 0, 5, 4, 10, 9, 2, 73, 27, 0, 126, 88, 51, 5, 0, 121,
-				79, 13, 118, 119, 120, 198, 0, 5, 51, 88, 98, 0, 41, 212, 31, 5, 0, 5, 51, 88, 123, 49, 4, 0, 47, 4, 2,
-				9, 10, 5, 183, 0, 31, 5, 4, 38, 107, 0, 110, 109, 38, 4, 83, 0, 32, 5, 54, 0 };
-	}
-
-	public final static char nasr[] = Nasr.nasr;
-
-	@Override
-	public final int nasr(int index) {
-		return nasr[index];
-	}
-
-	public interface TerminalIndex {
-		public final static char terminalIndex[] = { 0, 118, 119, 2, 31, 51, 129, 130, 13, 84, 10, 120, 9, 105, 48, 49,
-				53, 57, 65, 73, 79, 80, 91, 92, 107, 110, 112, 59, 111, 127, 50, 109, 52, 69, 71, 75, 78, 81, 88, 94,
-				103, 117, 11, 12, 7, 8, 125, 14, 60, 66, 72, 89, 93, 95, 98, 99, 102, 104, 114, 115, 116, 128, 58, 68,
-				96, 106, 19, 126, 82, 108, 1, 131, 100, 44, 123, 20, 30, 63, 83, 101, 33, 124, 113, 17, 18, 54, 55, 61,
-				62, 64, 70, 74, 76, 77, 90, 97, 21, 22, 32, 6, 23, 24, 25, 26, 27, 4, 15, 16, 28, 29, 34, 35, 36, 37,
-				38, 39, 40, 41, 42, 43, 45, 46, 56, 85, 86, 87, 5, 122, 3, 132, 67, 121 };
-	}
-
-	public final static char terminalIndex[] = TerminalIndex.terminalIndex;
-
-	@Override
-	public final int terminalIndex(int index) {
-		return terminalIndex[index];
-	}
-
-	public interface NonterminalIndex {
-		public final static char nonterminalIndex[] = { 0, 138, 143, 144, 0, 0, 142, 0, 0, 246, 252, 141, 0, 151, 0,
-				140, 0, 0, 150, 156, 0, 0, 157, 166, 167, 168, 169, 264, 0, 0, 0, 196, 134, 159, 0, 170, 137, 171, 265,
-				172, 173, 139, 149, 174, 175, 176, 0, 136, 177, 193, 0, 0, 146, 145, 160, 178, 188, 0, 0, 0, 0, 0, 0,
-				203, 179, 180, 0, 220, 0, 0, 181, 182, 217, 221, 153, 183, 184, 0, 185, 202, 0, 0, 0, 163, 191, 0, 0, 0,
-				0, 0, 0, 187, 0, 0, 0, 0, 0, 0, 194, 0, 0, 222, 135, 133, 234, 0, 165, 218, 224, 225, 226, 0, 228, 0,
-				154, 0, 0, 223, 205, 206, 207, 209, 236, 237, 0, 190, 195, 212, 0, 0, 227, 0, 0, 0, 241, 0, 243, 0, 257,
-				0, 260, 0, 261, 0, 155, 197, 198, 199, 200, 204, 208, 211, 0, 214, 0, 215, 0, 230, 233, 0, 255, 0, 256,
-				0, 269, 272, 147, 148, 152, 0, 0, 162, 164, 0, 186, 0, 201, 0, 0, 0, 210, 0, 213, 219, 0, 231, 232, 0,
-				0, 238, 245, 0, 249, 250, 251, 254, 0, 0, 258, 0, 266, 0, 268, 0, 271, 0, 0, 158, 161, 0, 189, 0, 192,
-				0, 0, 216, 229, 235, 0, 0, 239, 240, 242, 244, 0, 247, 248, 253, 259, 262, 263, 0, 0, 267, 0, 0, 270, 0,
-				0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
-
-	@Override
-	public final int nonterminalIndex(int index) {
-		return nonterminalIndex[index];
-	}
-
-	public interface ScopePrefix {
-		public final static char scopePrefix[] = { 265, 429, 731, 750, 418, 447, 682, 698, 709, 720, 501, 373, 387, 404,
-				465, 133, 398, 521, 559, 273, 739, 625, 98, 111, 142, 162, 171, 176, 181, 236, 301, 460, 471, 98, 593,
-				71, 250, 379, 393, 653, 118, 250, 511, 98, 758, 118, 323, 354, 7, 39, 39, 63, 67, 79, 90, 105, 152, 167,
-				197, 105, 490, 494, 577, 618, 647, 674, 678, 768, 772, 776, 188, 83, 188, 539, 555, 568, 586, 605, 666,
-				207, 207, 335, 425, 568, 689, 705, 716, 727, 313, 636, 19, 31, 60, 147, 147, 262, 328, 13, 147, 349,
-				370, 13, 13, 147, 498, 615, 622, 262, 147, 791, 1, 13, 54, 201, 476, 543, 583, 1, 598, 147, 216, 410,
-				476, 216, 216, 437, 530, 283, 437, 24, 24, 45, 45, 195, 45, 45, 45, 45, 581, 780, 787, 24, 24, 49, 344,
-				780, 787, 156, 549, 243, 195, 344, 195, 359 };
-	}
-
-	public final static char scopePrefix[] = ScopePrefix.scopePrefix;
-
-	@Override
-	public final int scopePrefix(int index) {
-		return scopePrefix[index];
-	}
-
-	public interface ScopeSuffix {
-		public final static char scopeSuffix[] = { 94, 241, 43, 43, 241, 241, 43, 43, 43, 43, 508, 241, 186, 241, 103,
-				139, 384, 527, 565, 279, 158, 631, 103, 116, 116, 116, 150, 150, 186, 241, 306, 109, 109, 103, 43, 76,
-				255, 384, 192, 658, 129, 258, 516, 745, 763, 123, 317, 317, 11, 43, 43, 43, 43, 43, 94, 109, 43, 150,
-				186, 109, 186, 186, 241, 352, 43, 43, 43, 43, 43, 352, 789, 87, 192, 508, 508, 508, 590, 609, 658, 211,
-				225, 339, 413, 572, 693, 693, 693, 693, 317, 640, 22, 22, 43, 150, 150, 43, 43, 331, 333, 352, 43, 11,
-				11, 333, 186, 43, 352, 43, 651, 43, 4, 16, 57, 204, 479, 546, 57, 612, 601, 670, 211, 413, 661, 219,
-				230, 454, 533, 286, 440, 29, 37, 47, 96, 186, 482, 484, 486, 488, 186, 782, 782, 26, 34, 51, 346, 784,
-				784, 158, 551, 245, 308, 339, 293, 361 };
-	}
-
-	public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
-
-	@Override
-	public final int scopeSuffix(int index) {
-		return scopeSuffix[index];
-	}
-
-	public interface ScopeLhs {
-		public final static char scopeLhs[] = { 49, 120, 18, 18, 87, 120, 18, 18, 18, 18, 94, 100, 50, 87, 119, 85, 60,
-				94, 93, 49, 18, 20, 198, 3, 7, 8, 190, 190, 189, 118, 49, 119, 119, 150, 55, 28, 104, 61, 50, 168, 161,
-				104, 94, 18, 18, 161, 111, 66, 84, 165, 19, 19, 199, 163, 97, 198, 193, 190, 189, 150, 213, 58, 56, 172,
-				19, 18, 18, 18, 18, 18, 12, 142, 189, 94, 93, 93, 77, 46, 168, 122, 122, 83, 87, 93, 18, 18, 18, 18,
-				111, 20, 134, 155, 17, 194, 190, 215, 109, 117, 68, 101, 67, 183, 84, 150, 95, 173, 172, 206, 168, 17,
-				18, 84, 92, 189, 150, 125, 92, 22, 55, 168, 122, 87, 168, 122, 122, 120, 94, 49, 120, 134, 155, 204,
-				228, 189, 176, 148, 147, 146, 90, 166, 53, 134, 155, 236, 83, 166, 53, 193, 125, 118, 49, 83, 49, 66 };
-	}
-
-	public final static char scopeLhs[] = ScopeLhs.scopeLhs;
-
-	@Override
-	public final int scopeLhs(int index) {
-		return scopeLhs[index];
-	}
-
-	public interface ScopeLa {
-		public final static char scopeLa[] = { 122, 81, 74, 74, 81, 81, 74, 74, 74, 74, 74, 81, 46, 81, 1, 75, 1, 74,
-				130, 67, 3, 74, 1, 75, 75, 75, 1, 1, 46, 81, 67, 1, 1, 1, 74, 74, 81, 1, 1, 4, 75, 73, 46, 1, 1, 75, 74,
-				74, 1, 74, 74, 74, 74, 74, 122, 1, 74, 1, 46, 1, 46, 46, 81, 127, 74, 74, 74, 74, 74, 127, 1, 74, 1, 74,
-				74, 74, 76, 76, 4, 1, 1, 10, 67, 74, 75, 75, 75, 75, 74, 3, 6, 6, 74, 1, 1, 74, 74, 3, 1, 127, 74, 1, 1,
-				1, 46, 74, 127, 74, 8, 74, 74, 6, 76, 1, 54, 80, 76, 74, 75, 1, 1, 67, 54, 1, 1, 67, 82, 79, 1, 1, 1,
-				29, 1, 46, 1, 63, 62, 62, 46, 4, 4, 1, 1, 98, 12, 4, 4, 3, 1, 67, 1, 10, 1, 3 };
-	}
-
-	public final static char scopeLa[] = ScopeLa.scopeLa;
-
-	@Override
-	public final int scopeLa(int index) {
-		return scopeLa[index];
-	}
-
-	public interface ScopeStateSet {
-		public final static char scopeStateSet[] = { 441, 367, 266, 266, 468, 367, 266, 266, 266, 266, 121, 455, 441,
-				468, 367, 468, 443, 121, 121, 441, 266, 266, 38, 191, 237, 237, 21, 21, 480, 367, 441, 367, 367, 187,
-				66, 373, 45, 443, 441, 58, 41, 45, 121, 266, 266, 41, 100, 163, 169, 187, 266, 266, 91, 1, 121, 38, 55,
-				21, 480, 187, 36, 443, 109, 18, 266, 266, 266, 266, 266, 266, 241, 8, 480, 121, 121, 121, 74, 332, 58,
-				367, 367, 425, 468, 121, 266, 266, 266, 266, 100, 266, 179, 134, 266, 55, 21, 94, 100, 102, 163, 96,
-				163, 184, 169, 187, 121, 5, 18, 61, 58, 266, 266, 169, 121, 480, 187, 13, 121, 271, 66, 58, 367, 468,
-				58, 367, 367, 367, 121, 441, 367, 179, 134, 370, 39, 480, 370, 369, 369, 369, 24, 63, 138, 179, 134,
-				365, 425, 63, 138, 55, 13, 367, 441, 425, 441, 163 };
-	}
-
-	public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet;
-
-	@Override
-	public final int scopeStateSet(int index) {
-		return scopeStateSet[index];
-	}
-
-	public interface ScopeRhs {
-		public final static char scopeRhs[] = { 0, 205, 3, 0, 134, 234, 0, 169, 238, 136, 0, 217, 0, 238, 136, 0, 265,
-				217, 0, 265, 169, 0, 265, 0, 169, 0, 241, 265, 0, 241, 0, 215, 169, 0, 191, 265, 0, 191, 0, 205, 3, 29,
-				0, 134, 0, 280, 0, 272, 0, 237, 0, 32, 165, 0, 367, 86, 0, 30, 187, 0, 187, 3, 0, 205, 3, 61, 0, 363, 3,
-				331, 0, 362, 3, 3, 6, 0, 134, 134, 0, 361, 3, 72, 0, 360, 3, 122, 0, 134, 188, 0, 136, 187, 79, 0, 232,
-				0, 258, 0, 220, 184, 135, 13, 0, 144, 0, 184, 135, 13, 0, 143, 0, 290, 136, 66, 133, 0, 20, 0, 326, 136,
-				66, 54, 0, 20, 58, 0, 33, 140, 0, 20, 58, 0, 0, 326, 136, 66, 54, 219, 0, 20, 194, 0, 290, 136, 66, 141,
-				0, 213, 135, 0, 149, 0, 244, 3, 325, 0, 325, 0, 2, 0, 134, 0, 290, 136, 66, 140, 0, 213, 135, 254, 0,
-				213, 135, 31, 254, 0, 213, 135, 355, 31, 0, 137, 220, 184, 135, 0, 136, 0, 220, 184, 135, 0, 142, 136,
-				0, 182, 0, 351, 136, 182, 0, 136, 182, 0, 239, 136, 0, 184, 350, 252, 0, 144, 0, 0, 0, 0, 350, 252, 0,
-				145, 144, 0, 0, 0, 0, 143, 0, 0, 0, 0, 145, 143, 0, 0, 0, 0, 349, 136, 167, 253, 0, 135, 0, 253, 0, 137,
-				0, 0, 135, 0, 348, 136, 167, 236, 0, 135, 0, 0, 44, 135, 0, 0, 164, 3, 0, 136, 316, 315, 136, 79, 314,
-				182, 0, 315, 136, 79, 314, 182, 0, 231, 0, 232, 0, 314, 182, 0, 101, 0, 0, 231, 0, 232, 0, 219, 101, 0,
-				0, 231, 0, 232, 0, 315, 136, 314, 182, 0, 231, 0, 219, 0, 0, 231, 0, 259, 136, 3, 0, 134, 0, 0, 0, 0, 0,
-				259, 136, 3, 240, 0, 248, 3, 0, 224, 0, 154, 0, 200, 184, 135, 0, 10, 0, 0, 0, 0, 200, 0, 9, 0, 0, 237,
-				70, 0, 133, 0, 259, 136, 3, 198, 0, 198, 0, 2, 0, 0, 134, 0, 0, 0, 0, 0, 215, 3, 0, 255, 136, 167, 41,
-				34, 0, 213, 135, 68, 69, 0, 212, 136, 0, 137, 213, 135, 312, 69, 0, 213, 135, 312, 69, 0, 213, 135, 80,
-				132, 68, 0, 255, 136, 167, 283, 68, 0, 283, 68, 0, 137, 0, 0, 135, 0, 255, 136, 167, 283, 258, 68, 0,
-				283, 258, 68, 0, 309, 310, 136, 167, 132, 345, 63, 0, 345, 63, 0, 138, 137, 0, 0, 0, 135, 0, 309, 310,
-				136, 167, 345, 63, 0, 137, 0, 0, 0, 135, 0, 213, 135, 308, 63, 0, 220, 213, 135, 308, 252, 0, 213, 135,
-				308, 252, 0, 184, 135, 0, 98, 144, 0, 208, 0, 207, 0, 206, 0, 205, 0, 306, 136, 162, 0, 306, 136, 182,
-				0, 172, 94, 0, 340, 178, 342, 343, 3, 91, 0, 134, 187, 0, 342, 343, 3, 91, 0, 136, 0, 134, 187, 0, 172,
-				3, 82, 222, 89, 0, 134, 136, 0, 222, 89, 0, 113, 2, 139, 134, 136, 0, 256, 3, 82, 0, 215, 185, 0, 33,
-				177, 0, 185, 0, 191, 33, 177, 0, 256, 3, 95, 0, 222, 163, 256, 3, 93, 0, 67, 187, 0, 256, 3, 93, 0, 134,
-				187, 67, 187, 0, 341, 136, 167, 0, 172, 0, 237, 86, 0, 172, 109, 207, 0, 30, 185, 0, 157, 75, 186, 3, 0,
-				186, 3, 0, 20, 169, 134, 0, 172, 109, 176, 0, 30, 177, 0, 134, 157, 0, 244, 3, 0, 237, 70, 303, 0, 172,
-				70, 0, 205, 3, 337, 78, 135, 0, 134, 0, 0, 0, 0, 337, 78, 135, 0, 2, 153, 134, 0, 0, 0, 0, 205, 3, 52,
-				0, 155, 0, 134, 54, 184, 135, 0, 31, 155, 0, 98, 144, 31, 155, 0, 245, 213, 135, 0, 154, 31, 155, 0,
-				205, 3, 57, 0, 172, 3, 57, 0, 172, 3, 75, 205, 66, 48, 0, 205, 66, 48, 0, 20, 2, 139, 134, 0, 172, 3,
-				75, 205, 66, 51, 0, 205, 66, 51, 0, 172, 3, 75, 205, 66, 53, 0, 205, 66, 53, 0, 172, 3, 75, 205, 66, 49,
-				0, 205, 66, 49, 0, 244, 3, 134, 220, 184, 135, 13, 0, 134, 220, 184, 135, 13, 0, 144, 2, 0, 134, 0, 244,
-				3, 133, 274, 184, 135, 13, 0, 274, 184, 135, 13, 0, 143, 2, 0, 134, 0, 244, 3, 144, 0, 244, 3, 149, 0,
-				172, 70, 149, 0, 298, 0, 31, 0, 31, 147, 0, 183, 0, 142, 0, 172, 3, 0 };
-	}
-
-	public final static char scopeRhs[] = ScopeRhs.scopeRhs;
-
-	@Override
-	public final int scopeRhs(int index) {
-		return scopeRhs[index];
-	}
-
-	public interface ScopeState {
-		public final static char scopeState[] = { 0, 2089, 2077, 2003, 0, 2154, 1759, 0, 2894, 2105, 2563, 2552, 0,
-				5782, 6413, 6317, 6250, 0, 1385, 998, 0, 1824, 1485, 0, 6306, 6239, 6172, 6105, 6038, 5971, 5904, 5837,
-				5770, 5703, 5303, 5101, 6999, 0, 6853, 4773, 0, 6960, 6978, 5947, 0, 1245, 2364, 1182, 5680, 2285, 2206,
-				2127, 1516, 1352, 0, 3174, 1240, 0, 4804, 1834, 0, 1711, 0, 1769, 1764, 0, 760, 4265, 4499, 4387, 4923,
-				4856, 4638, 3520, 3294, 1098, 2574, 2495, 2416, 2337, 2258, 2179, 2100, 2021, 1942, 1863, 1784, 1019,
-				929, 850, 0, 797, 1626, 0, 796, 0, 2557, 2320, 1292, 1250, 4605, 7423, 4114, 5568, 5164, 3937, 5266,
-				3989, 0, 3512, 2691, 7484, 1179, 2844, 3520, 2796, 6318, 6251, 6204, 5885, 5735, 6306, 6239, 6172, 6105,
-				6038, 5971, 5904, 5837, 5770, 5703, 5303, 5101, 0, 3911, 4755, 3898, 0, 7585, 7581, 7569, 7562, 7671,
-				7645, 7184, 7554, 7550, 7526, 7100, 7507, 6567, 5585, 7493, 7416, 6875, 4746, 756, 4995, 6774, 6384,
-				5704, 5590, 0, 4605, 5847, 7329, 6421, 5318, 739, 4114, 3911, 7316, 5568, 5164, 6505, 4755, 6473, 4619,
-				3898, 5052, 5005, 4952, 4128, 0, 7329, 739, 0, 673, 6377, 4028, 0, 3360, 2750, 7585, 7581, 2640, 2008,
-				1725, 7569, 1923, 7562, 1919, 1704, 1609, 7671, 1294, 4555, 7645, 1574, 7184, 1327, 7554, 7550, 7526,
-				4444, 916, 7100, 7507, 6567, 5585, 909, 7493, 7416, 842, 1231, 6875, 4746, 799, 756, 4995, 6774, 6384,
-				5704, 826, 6377, 5590, 4028, 4161, 3577, 3557, 1813, 722, 4114, 3911, 7316, 5052, 5005, 4605, 4952,
-				5568, 4128, 5164, 6505, 5847, 1511, 1048, 7329, 4755, 6421, 4804, 1834, 6473, 5318, 4619, 3898, 739,
-				6890, 6725, 6698, 5647, 5243, 3294, 5595, 4000, 4343, 4565, 4458, 4414, 4292, 4717, 5541, 5514, 5487,
-				5460, 5433, 5406, 6675, 5680, 1098, 760, 2574, 2495, 2416, 2337, 2258, 2179, 2100, 2021, 1942, 1863,
-				1784, 4265, 4499, 4387, 4923, 4856, 4638, 958, 879, 5276, 5199, 4526, 2129, 2050, 1971, 1892, 1127,
-				6652, 6626, 3520, 1019, 929, 5711, 850, 4236, 3323, 2603, 2524, 2445, 2366, 2287, 2208, 3471, 1245,
-				3838, 3422, 3373, 3791, 3737, 3690, 1628, 1579, 1525, 1182, 3636, 3589, 1458, 3245, 3196, 3147, 3098,
-				3049, 3000, 2951, 2902, 2853, 2803, 2754, 2700, 1298, 1404, 1731, 1352, 1677, 673, 2653, 0, 6853, 6377,
-				4773, 673, 4028, 0, 3911, 6157, 7652, 5052, 7257, 6048, 5005, 4952, 6520, 7630, 6853, 6721, 6536, 6382,
-				6090, 4820, 5981, 6505, 7626, 5847, 4773, 5751, 7612, 7590, 4075, 7240, 5084, 5313, 5070, 4755, 5240,
-				4680, 673, 6121, 4190, 6473, 4667, 4179, 3963, 986, 4033, 6377, 6023, 5956, 4751, 5075, 3924, 5065,
-				4887, 3866, 3958, 4028, 6054, 4605, 7374, 5987, 7436, 7342, 7423, 4128, 6188, 6761, 6524, 6421, 5318,
-				5000, 3898, 0, 7359, 7173, 6306, 6239, 6172, 6105, 6038, 5971, 5904, 5837, 5770, 5703, 5303, 5101, 7215,
-				6864, 6763, 6747, 7194, 7131, 7110, 7047, 7026, 6956, 6935, 6525, 0, 7215, 6864, 6763, 6747, 7194, 7131,
-				7110, 7047, 7026, 6956, 6935, 6525, 7359, 7173, 0 };
-	}
-
-	public final static char scopeState[] = ScopeState.scopeState;
-
-	@Override
-	public final int scopeState(int index) {
-		return scopeState[index];
-	}
-
-	public interface InSymb {
-		public final static char inSymb[] = { 0, 0, 336, 69, 5, 136, 182, 219, 36, 39, 54, 34, 68, 257, 68, 312, 365,
-				276, 6, 7, 5, 277, 253, 278, 252, 279, 63, 307, 133, 13, 135, 335, 280, 29, 314, 136, 3, 4, 141, 140, 9,
-				8, 133, 135, 198, 54, 54, 54, 66, 54, 41, 283, 258, 132, 169, 135, 135, 3, 3, 3, 3, 167, 350, 308, 169,
-				345, 308, 169, 66, 135, 213, 184, 183, 29, 61, 52, 47, 43, 42, 10, 12, 45, 44, 135, 8, 3, 57, 48, 51,
-				53, 49, 13, 144, 149, 79, 136, 306, 215, 204, 198, 136, 286, 313, 238, 169, 135, 200, 215, 66, 66, 185,
-				70, 3, 77, 78, 133, 132, 213, 184, 3, 66, 75, 136, 167, 167, 283, 80, 213, 213, 366, 41, 295, 3, 364, 1,
-				41, 136, 184, 262, 134, 133, 135, 132, 167, 135, 136, 184, 54, 4, 3, 3, 3, 3, 77, 78, 184, 134, 205,
-				187, 172, 167, 185, 136, 3, 66, 66, 66, 66, 135, 3, 126, 128, 3, 70, 136, 315, 76, 169, 70, 238, 169,
-				135, 3, 80, 73, 215, 184, 12, 10, 136, 136, 136, 70, 70, 220, 136, 136, 136, 136, 167, 135, 258, 137,
-				76, 163, 3, 73, 362, 331, 3, 349, 135, 180, 254, 68, 54, 69, 182, 352, 134, 133, 263, 169, 263, 213,
-				167, 136, 213, 290, 136, 271, 154, 156, 155, 3, 186, 157, 196, 195, 202, 201, 206, 72, 207, 293, 220,
-				298, 220, 205, 205, 205, 205, 70, 337, 3, 163, 136, 136, 3, 241, 240, 305, 166, 157, 170, 168, 174, 171,
-				175, 176, 144, 134, 133, 13, 135, 29, 205, 172, 205, 205, 205, 205, 184, 244, 136, 54, 135, 54, 244,
-				172, 315, 324, 135, 325, 237, 176, 169, 184, 164, 167, 236, 169, 169, 200, 200, 290, 290, 238, 259, 260,
-				162, 261, 326, 54, 13, 62, 255, 255, 136, 213, 10, 1, 73, 163, 3, 41, 1, 184, 136, 263, 263, 136, 136,
-				220, 136, 310, 132, 311, 276, 277, 278, 279, 359, 280, 13, 99, 105, 43, 42, 107, 106, 10, 186, 97, 96,
-				66, 83, 84, 12, 101, 100, 103, 102, 104, 119, 118, 117, 116, 115, 114, 113, 112, 111, 110, 80, 109, 108,
-				73, 4, 163, 163, 163, 163, 234, 3, 338, 185, 164, 341, 88, 86, 1, 172, 11, 95, 93, 91, 89, 82, 92, 94,
-				87, 85, 68, 79, 238, 248, 136, 3, 73, 121, 120, 97, 96, 75, 66, 12, 101, 100, 103, 102, 104, 119, 118,
-				117, 116, 115, 114, 113, 112, 111, 110, 80, 109, 108, 135, 184, 150, 3, 75, 75, 75, 75, 220, 274, 135,
-				213, 184, 316, 73, 213, 3, 136, 167, 10, 136, 163, 80, 248, 215, 3, 136, 73, 73, 75, 66, 262, 262, 255,
-				258, 1, 363, 220, 351, 76, 267, 215, 133, 265, 169, 136, 136, 76, 310, 309, 80, 73, 135, 155, 155, 154,
-				154, 154, 75, 157, 157, 157, 156, 156, 195, 186, 186, 201, 196, 202, 172, 206, 205, 136, 136, 11, 76,
-				367, 237, 76, 3, 3, 3, 222, 3, 132, 172, 132, 187, 259, 136, 157, 157, 157, 157, 157, 157, 168, 166,
-				166, 171, 170, 174, 274, 172, 175, 184, 54, 205, 3, 3, 3, 3, 134, 133, 245, 8, 54, 136, 244, 136, 200,
-				194, 136, 80, 80, 136, 238, 136, 80, 80, 73, 137, 73, 76, 80, 169, 265, 169, 158, 354, 254, 31, 135,
-				309, 184, 157, 76, 163, 300, 303, 70, 214, 76, 98, 76, 256, 185, 256, 343, 162, 82, 256, 136, 163, 259,
-				76, 76, 220, 163, 172, 172, 172, 172, 3, 3, 4, 132, 134, 317, 122, 348, 136, 246, 326, 265, 169, 73,
-				135, 31, 355, 213, 220, 136, 3, 70, 172, 163, 215, 163, 342, 136, 3, 163, 317, 136, 163, 134, 244, 244,
-				4, 3, 233, 73, 136, 75, 213, 135, 135, 300, 244, 237, 80, 222, 178, 306, 172, 246, 136, 98, 360, 185,
-				233, 11, 72, 62, 213, 213, 130, 340, 163, 136, 246, 163, 163, 136, 3, 262, 163, 136, 361, 80, 73 };
-	}
-
-	public final static char inSymb[] = InSymb.inSymb;
-
-	@Override
-	public final int inSymb(int index) {
-		return inSymb[index];
-	}
-
-	public interface Name {
-		public final static String name[] = { "", "[", "(", ".", ".*", "->", "->*", "++", "--", "&", "*", "+", "-", "~",
-				"!", "/", "%", ">>", "<<", "<", ">", "<=", ">=", "==", "!=", "^", "|", "&&", "||", "?", ":", "::",
-				"...", "=", "*=", "/=", "%=", "+=", "-=", ">>=", "<<=", "&=", "^=", "|=", ",", ">?", "<?", "$empty",
-				"_Complex", "_Imaginary", "restrict", "asm", "auto", "bool", "break", "case", "catch", "char", "class",
-				"const", "const_cast", "continue", "default", "delete", "do", "double", "dynamic_cast", "else", "enum",
-				"explicit", "export", "extern", "false", "float", "for", "friend", "goto", "if", "inline", "int",
-				"long", "mutable", "namespace", "new", "operator", "private", "protected", "public", "register",
-				"reinterpret_cast", "return", "short", "signed", "sizeof", "static", "static_cast", "struct", "switch",
-				"template", "this", "throw", "try", "true", "typedef", "typeid", "typename", "union", "unsigned",
-				"using", "virtual", "void", "volatile", "wchar_t", "while", "integer", "floating", "charconst",
-				"stringlit", "identifier", "Completion", "EndOfCompletion", "Invalid", "RightBracket", "RightParen",
-				"RightBrace", "SemiColon", "LeftBrace", "typeof", "__alignof__", "__attribute__", "__declspec",
-				"ERROR_TOKEN", "EOF_TOKEN", "]", ")", "}", ";", "{", "identifier_token", "expression", "id_expression",
-				"qualified_or_unqualified_name", "unqualified_id_name", "identifier_name", "template_id_name",
-				"nested_name_specifier", "class_or_namespace_name", "nested_name_specifier_with_tem" + "plate",
-				"class_or_namespace_name_with_t" + "emplate", "class_name", "postfix_expression",
-				"simple_type_specifier", "pseudo_destructor_name", "type_id", "type_name", "destructor_type_name",
-				"unary_expression", "cast_expression", "new_type_id", "expression_list", "type_specifier_seq",
-				"new_declarator", "new_pointer_operators", "ptr_operator", "new_array_expressions",
-				"constant_expression", "pm_expression", "multiplicative_expression", "additive_expression",
-				"shift_expression", "relational_expression", "equality_expression", "and_expression",
-				"exclusive_or_expression", "inclusive_or_expression", "logical_and_expression", "logical_or_expression",
-				"assignment_expression", "relational_expression_inTempla" + "te", "equality_expression_inTemplate",
-				"and_expression_inTemplate", "exclusive_or_expression_inTemp" + "late",
-				"inclusive_or_expression_inTemp" + "late", "logical_and_expression_inTempl" + "ate",
-				"logical_or_expression_inTempla" + "te", "assignment_expression_inTempla" + "te",
-				"expression_list_actual", "statement", "compound_statement", "statement_seq", "condition", "declarator",
-				"for_init_statement", "function_definition", "declaration", "declaration_seq", "declaration_specifiers",
-				"simple_declaration_specifiers", "class_declaration_specifiers",
-				"elaborated_declaration_specifi" + "ers", "enum_declaration_specifiers",
-				"type_name_declaration_specifie" + "rs", "no_type_declaration_specifier", "cv_qualifier",
-				"no_type_declaration_specifiers", "class_specifier", "elaborated_type_specifier", "enum_specifier",
-				"type_name_specifier", "class_keyword", "enumerator_list", "enumerator_definition", "namespace_name",
-				"init_declarator_list", "init_declarator_complete", "complete_declarator", "initializer",
-				"direct_declarator", "ptr_operator_seq", "function_declarator", "basic_direct_declarator",
-				"array_direct_declarator", "array_modifier", "abstract_declarator", "direct_abstract_declarator",
-				"basic_direct_abstract_declarat" + "or", "array_direct_abstract_declarat" + "or",
-				"parameter_declaration_list", "parameter_declaration", "parameter_init_declarator",
-				"parameter_initializer", "function_body", "handler_seq", "initializer_clause", "initializer_list",
-				"initializer_seq", "class_head", "access_specifier_keyword", "member_declaration",
-				"member_declarator_list", "member_declaration_list", "member_declarator_complete",
-				"constant_initializer", "bit_field_declarator", "base_specifier_list", "base_specifier",
-				"conversion_function_id", "conversion_type_id", "conversion_declarator", "mem_initializer_list",
-				"mem_initializer", "mem_initializer_name", "operator_id_name", "overloadable_operator",
-				"template_parameter_list", "template_parameter", "template_argument_list", "template_argument",
-				"type_name_specifier_inTemplate", "type_name_declaration_specifie" + "rs_inTemplate",
-				"type_specifier_seq_inTemplate", "handler", "exception_declaration", "type_id_list",
-				"attribute_or_decl_specifier", "attribute_or_decl_specifier_se" + "q", "word",
-				"extended_decl_modifier_seq", "extended_decl_modifier", "extended_asm_param", "case_range_expression",
-				"typeof_declaration_specifiers", "typeof_type_specifier" };
-	}
-
-	public final static String name[] = Name.name;
-
-	@Override
-	public final String name(int index) {
-		return name[index];
-	}
-
-	public final static int ERROR_SYMBOL = 71, SCOPE_UBOUND = 153, SCOPE_SIZE = 154, MAX_NAME_LENGTH = 43;
-
-	@Override
-	public final int getErrorSymbol() {
-		return ERROR_SYMBOL;
-	}
-
-	@Override
-	public final int getScopeUbound() {
-		return SCOPE_UBOUND;
-	}
-
-	@Override
-	public final int getScopeSize() {
-		return SCOPE_SIZE;
-	}
-
-	@Override
-	public final int getMaxNameLength() {
-		return MAX_NAME_LENGTH;
-	}
-
-	public final static int NUM_STATES = 687, NT_OFFSET = 131, LA_STATE_OFFSET = 9571, MAX_LA = 2147483647,
-			NUM_RULES = 672, NUM_NONTERMINALS = 244, NUM_SYMBOLS = 375, SEGMENT_SIZE = 8192, START_STATE = 6525,
-			IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 129, EOLT_SYMBOL = 129, ACCEPT_ACTION = 7893, ERROR_ACTION = 8899;
-
-	public final static boolean BACKTRACK = true;
-
-	@Override
-	public final int getNumStates() {
-		return NUM_STATES;
-	}
-
-	@Override
-	public final int getNtOffset() {
-		return NT_OFFSET;
-	}
-
-	@Override
-	public final int getLaStateOffset() {
-		return LA_STATE_OFFSET;
-	}
-
-	@Override
-	public final int getMaxLa() {
-		return MAX_LA;
-	}
-
-	@Override
-	public final int getNumRules() {
-		return NUM_RULES;
-	}
-
-	@Override
-	public final int getNumNonterminals() {
-		return NUM_NONTERMINALS;
-	}
-
-	@Override
-	public final int getNumSymbols() {
-		return NUM_SYMBOLS;
-	}
-
-	@Override
-	public final int getSegmentSize() {
-		return SEGMENT_SIZE;
-	}
-
-	@Override
-	public final int getStartState() {
-		return START_STATE;
-	}
-
-	@Override
-	public final int getStartSymbol() {
-		return lhs[0];
-	}
-
-	public final int getIdentifierSymbol() {
-		return IDENTIFIER_SYMBOL;
-	}
-
-	@Override
-	public final int getEoftSymbol() {
-		return EOFT_SYMBOL;
-	}
-
-	@Override
-	public final int getEoltSymbol() {
-		return EOLT_SYMBOL;
-	}
-
-	@Override
-	public final int getAcceptAction() {
-		return ACCEPT_ACTION;
-	}
-
-	@Override
-	public final int getErrorAction() {
-		return ERROR_ACTION;
-	}
-
-	@Override
-	public final boolean isValidForParser() {
-		return isValidForParser;
-	}
-
-	@Override
-	public final boolean getBacktrack() {
-		return BACKTRACK;
-	}
-
-	@Override
-	public final int originalState(int state) {
-		return -baseCheck[state];
-	}
-
-	@Override
-	public final int asi(int state) {
-		return asb[originalState(state)];
-	}
-
-	@Override
-	public final int nasi(int state) {
-		return nasb[originalState(state)];
-	}
-
-	@Override
-	public final int inSymbol(int state) {
-		return inSymb[originalState(state)];
-	}
-
-	@Override
-	public final int ntAction(int state, int sym) {
-		return baseAction[state + sym];
-	}
-
-	@Override
-	public final int tAction(int state, int sym) {
-		int i = baseAction[state], k = i + sym;
-		return termAction[termCheck[k] == sym ? k : i];
-	}
-
-	@Override
-	public final int lookAhead(int la_state, int sym) {
-		int k = la_state + sym;
-		return termAction[termCheck[k] == sym ? k : la_state];
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParsersym.java
deleted file mode 100644
index 96eca1d..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParsersym.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2010 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.lrparser.gpp;
-
-public interface GPPParsersym {
-	public final static int TK__Complex = 14, TK__Imaginary = 15, TK_restrict = 30, TK_asm = 5, TK_auto = 32,
-			TK_bool = 16, TK_break = 85, TK_case = 86, TK_catch = 122, TK_char = 17, TK_class = 62, TK_const = 27,
-			TK_const_cast = 48, TK_continue = 87, TK_default = 88, TK_delete = 77, TK_do = 89, TK_double = 18,
-			TK_dynamic_cast = 49, TK_else = 130, TK_enum = 63, TK_explicit = 33, TK_export = 90, TK_extern = 34,
-			TK_false = 50, TK_float = 19, TK_for = 91, TK_friend = 35, TK_goto = 92, TK_if = 93, TK_inline = 36,
-			TK_int = 20, TK_long = 21, TK_mutable = 37, TK_namespace = 68, TK_new = 78, TK_operator = 9,
-			TK_private = 123, TK_protected = 124, TK_public = 125, TK_register = 38, TK_reinterpret_cast = 51,
-			TK_return = 94, TK_short = 22, TK_signed = 23, TK_sizeof = 52, TK_static = 39, TK_static_cast = 53,
-			TK_struct = 64, TK_switch = 95, TK_template = 54, TK_this = 55, TK_throw = 72, TK_try = 79, TK_true = 56,
-			TK_typedef = 40, TK_typeid = 57, TK_typename = 13, TK_union = 65, TK_unsigned = 24, TK_using = 69,
-			TK_virtual = 31, TK_void = 25, TK_volatile = 28, TK_wchar_t = 26, TK_while = 82, TK_integer = 58,
-			TK_floating = 59, TK_charconst = 60, TK_stringlit = 41, TK_identifier = 1, TK_Completion = 2,
-			TK_EndOfCompletion = 11, TK_Invalid = 131, TK_LeftBracket = 70, TK_LeftParen = 3, TK_Dot = 128,
-			TK_DotStar = 105, TK_Arrow = 126, TK_ArrowStar = 99, TK_PlusPlus = 44, TK_MinusMinus = 45, TK_And = 12,
-			TK_Star = 10, TK_Plus = 42, TK_Minus = 43, TK_Tilde = 8, TK_Bang = 47, TK_Slash = 106, TK_Percent = 107,
-			TK_RightShift = 83, TK_LeftShift = 84, TK_LT = 66, TK_GT = 75, TK_LE = 96, TK_GE = 97, TK_EQ = 100,
-			TK_NE = 101, TK_Caret = 102, TK_Or = 103, TK_AndAnd = 104, TK_OrOr = 108, TK_Question = 109, TK_Colon = 76,
-			TK_ColonColon = 4, TK_DotDotDot = 98, TK_Assign = 80, TK_StarAssign = 110, TK_SlashAssign = 111,
-			TK_PercentAssign = 112, TK_PlusAssign = 113, TK_MinusAssign = 114, TK_RightShiftAssign = 115,
-			TK_LeftShiftAssign = 116, TK_AndAssign = 117, TK_CaretAssign = 118, TK_OrAssign = 119, TK_Comma = 73,
-			TK_RightBracket = 127, TK_RightParen = 74, TK_RightBrace = 81, TK_SemiColon = 46, TK_LeftBrace = 67,
-			TK_typeof = 29, TK___alignof__ = 61, TK___attribute__ = 6, TK___declspec = 7, TK_MAX = 120, TK_MIN = 121,
-			TK_ERROR_TOKEN = 71, TK_EOF_TOKEN = 129;
-
-	public final static String orderedTerminalSymbols[] = { "", "identifier", "Completion", "LeftParen", "ColonColon",
-			"asm", "__attribute__", "__declspec", "Tilde", "operator", "Star", "EndOfCompletion", "And", "typename",
-			"_Complex", "_Imaginary", "bool", "char", "double", "float", "int", "long", "short", "signed", "unsigned",
-			"void", "wchar_t", "const", "volatile", "typeof", "restrict", "virtual", "auto", "explicit", "extern",
-			"friend", "inline", "mutable", "register", "static", "typedef", "stringlit", "Plus", "Minus", "PlusPlus",
-			"MinusMinus", "SemiColon", "Bang", "const_cast", "dynamic_cast", "false", "reinterpret_cast", "sizeof",
-			"static_cast", "template", "this", "true", "typeid", "integer", "floating", "charconst", "__alignof__",
-			"class", "enum", "struct", "union", "LT", "LeftBrace", "namespace", "using", "LeftBracket", "ERROR_TOKEN",
-			"throw", "Comma", "RightParen", "GT", "Colon", "delete", "new", "try", "Assign", "RightBrace", "while",
-			"RightShift", "LeftShift", "break", "case", "continue", "default", "do", "export", "for", "goto", "if",
-			"return", "switch", "LE", "GE", "DotDotDot", "ArrowStar", "EQ", "NE", "Caret", "Or", "AndAnd", "DotStar",
-			"Slash", "Percent", "OrOr", "Question", "StarAssign", "SlashAssign", "PercentAssign", "PlusAssign",
-			"MinusAssign", "RightShiftAssign", "LeftShiftAssign", "AndAssign", "CaretAssign", "OrAssign", "MAX", "MIN",
-			"catch", "private", "protected", "public", "Arrow", "RightBracket", "Dot", "EOF_TOKEN", "else", "Invalid" };
-
-	public final static boolean isValidForParser = true;
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParser.java
deleted file mode 100644
index 6056695..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParser.java
+++ /dev/null
@@ -1,3019 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2015 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.lrparser.gpp;
-
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.cdt.core.dom.ast.IASTBinaryExpression;
-import org.eclipse.cdt.core.dom.ast.IASTCompletionNode;
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-import org.eclipse.cdt.core.dom.ast.IASTTypeIdExpression;
-import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTBinaryExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCastExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTLiteralExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTUnaryExpression;
-import org.eclipse.cdt.core.dom.ast.gnu.cpp.IGPPASTExplicitTemplateInstantiation;
-import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter;
-import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
-import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
-import org.eclipse.cdt.core.dom.lrparser.ITokenCollector;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
-import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
-import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
-import org.eclipse.cdt.core.dom.lrparser.action.gnu.GNUBuildASTParserAction;
-import org.eclipse.cdt.core.dom.lrparser.action.gnu.GPPBuildASTParserAction;
-import org.eclipse.cdt.core.dom.lrparser.action.gnu.GPPSecondaryParserFactory;
-import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser;
-import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
-import org.eclipse.cdt.core.index.IIndex;
-import org.eclipse.cdt.core.parser.IScanner;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPNodeFactory;
-
-import lpg.lpgjavaruntime.BadParseException;
-import lpg.lpgjavaruntime.BadParseSymFileException;
-import lpg.lpgjavaruntime.DiagnoseParser;
-import lpg.lpgjavaruntime.ErrorToken;
-import lpg.lpgjavaruntime.IToken;
-import lpg.lpgjavaruntime.LexStream;
-import lpg.lpgjavaruntime.Monitor;
-import lpg.lpgjavaruntime.NotBacktrackParseTableException;
-import lpg.lpgjavaruntime.NullExportedSymbolsException;
-import lpg.lpgjavaruntime.NullTerminalSymbolsException;
-import lpg.lpgjavaruntime.ParseErrorCodes;
-import lpg.lpgjavaruntime.ParseTable;
-import lpg.lpgjavaruntime.PrsStream;
-import lpg.lpgjavaruntime.RuleAction;
-import lpg.lpgjavaruntime.Token;
-import lpg.lpgjavaruntime.UndefinedEofSymbolException;
-import lpg.lpgjavaruntime.UnimplementedTerminalsException;
-
-public class GPPSizeofExpressionParser extends PrsStream
-		implements RuleAction, ITokenStream, ITokenCollector, ISecondaryParser<IASTExpression> {
-	private static ParseTable prs = new GPPSizeofExpressionParserprs();
-	private FixedBacktrackingParser btParser;
-
-	public FixedBacktrackingParser getParser() {
-		return btParser;
-	}
-
-	private void setResult(Object object) {
-		btParser.setSym1(object);
-	}
-
-	public Object getRhsSym(int i) {
-		return btParser.getSym(i);
-	}
-
-	public int getRhsTokenIndex(int i) {
-		return btParser.getToken(i);
-	}
-
-	public IToken getRhsIToken(int i) {
-		return super.getIToken(getRhsTokenIndex(i));
-	}
-
-	public int getRhsFirstTokenIndex(int i) {
-		return btParser.getFirstToken(i);
-	}
-
-	public IToken getRhsFirstIToken(int i) {
-		return super.getIToken(getRhsFirstTokenIndex(i));
-	}
-
-	public int getRhsLastTokenIndex(int i) {
-		return btParser.getLastToken(i);
-	}
-
-	public IToken getRhsLastIToken(int i) {
-		return super.getIToken(getRhsLastTokenIndex(i));
-	}
-
-	public int getLeftSpan() {
-		return btParser.getFirstToken();
-	}
-
-	@Override
-	public IToken getLeftIToken() {
-		return super.getIToken(getLeftSpan());
-	}
-
-	public int getRightSpan() {
-		return btParser.getLastToken();
-	}
-
-	@Override
-	public IToken getRightIToken() {
-		return super.getIToken(getRightSpan());
-	}
-
-	public int getRhsErrorTokenIndex(int i) {
-		int index = btParser.getToken(i);
-		IToken err = super.getIToken(index);
-		return (err instanceof ErrorToken ? index : 0);
-	}
-
-	public ErrorToken getRhsErrorIToken(int i) {
-		int index = btParser.getToken(i);
-		IToken err = super.getIToken(index);
-		return (ErrorToken) (err instanceof ErrorToken ? err : null);
-	}
-
-	public GPPSizeofExpressionParser(LexStream lexStream) {
-		super(lexStream);
-
-		try {
-			super.remapTerminalSymbols(orderedTerminalSymbols(), GPPSizeofExpressionParserprs.EOFT_SYMBOL);
-		} catch (NullExportedSymbolsException e) {
-		} catch (NullTerminalSymbolsException e) {
-		} catch (UnimplementedTerminalsException e) {
-			java.util.ArrayList unimplemented_symbols = e.getSymbols();
-			System.out.println("The Lexer will not scan the following token(s):");
-			for (int i = 0; i < unimplemented_symbols.size(); i++) {
-				Integer id = (Integer) unimplemented_symbols.get(i);
-				System.out.println("    " + GPPSizeofExpressionParsersym.orderedTerminalSymbols[id.intValue()]);
-			}
-			System.out.println();
-		} catch (UndefinedEofSymbolException e) {
-			throw new Error(new UndefinedEofSymbolException("The Lexer does not implement the Eof symbol "
-					+ GPPSizeofExpressionParsersym.orderedTerminalSymbols[GPPSizeofExpressionParserprs.EOFT_SYMBOL]));
-		}
-	}
-
-	@Override
-	public String[] orderedTerminalSymbols() {
-		return GPPSizeofExpressionParsersym.orderedTerminalSymbols;
-	}
-
-	public String getTokenKindName(int kind) {
-		return GPPSizeofExpressionParsersym.orderedTerminalSymbols[kind];
-	}
-
-	public int getEOFTokenKind() {
-		return GPPSizeofExpressionParserprs.EOFT_SYMBOL;
-	}
-
-	public PrsStream getParseStream() {
-		return this;
-	}
-
-	//
-	// Report error message for given error_token.
-	//
-	public final void reportErrorTokenMessage(int error_token, String msg) {
-		int firsttok = super.getFirstErrorToken(error_token), lasttok = super.getLastErrorToken(error_token);
-		String location = super.getFileName() + ':'
-				+ (firsttok > lasttok ? (super.getEndLine(lasttok) + ":" + super.getEndColumn(lasttok))
-						: (super.getLine(error_token) + ":" + super.getColumn(error_token) + ":"
-								+ super.getEndLine(error_token) + ":" + super.getEndColumn(error_token)))
-				+ ": ";
-		super.reportError((firsttok > lasttok ? ParseErrorCodes.INSERTION_CODE : ParseErrorCodes.SUBSTITUTION_CODE),
-				location, msg);
-	}
-
-	public void parser() {
-		parser(null, 0);
-	}
-
-	public void parser(Monitor monitor) {
-		parser(monitor, 0);
-	}
-
-	public void parser(int error_repair_count) {
-		parser(null, error_repair_count);
-	}
-
-	public void parser(Monitor monitor, int error_repair_count) {
-		try {
-			btParser = new FixedBacktrackingParser(monitor, this, prs, this);
-		} catch (NotBacktrackParseTableException e) {
-			throw new Error(new NotBacktrackParseTableException(
-					"Regenerate GPPSizeofExpressionParserprs.java with -BACKTRACK option"));
-		} catch (BadParseSymFileException e) {
-			throw new Error(
-					new BadParseSymFileException("Bad Parser Symbol File -- GPPSizeofExpressionParsersym.java"));
-		}
-
-		try {
-			btParser.parse(error_repair_count);
-		} catch (BadParseException e) {
-			reset(e.error_token); // point to error token
-			DiagnoseParser diagnoseParser = new DiagnoseParser(this, prs);
-			diagnoseParser.diagnose(e.error_token);
-		}
-	}
-
-	private GPPBuildASTParserAction action;
-	private IASTCompletionNode compNode;
-
-	public GPPSizeofExpressionParser(IScanner scanner, IDOMTokenMap tokenMap,
-			IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Map<String, String> properties) {
-		initActions(properties);
-		action.initializeTranslationUnit(scanner, builtinBindingsProvider, index);
-		CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap);
-	}
-
-	private void initActions(Map<String, String> properties) {
-		ScopedStack<Object> astStack = new ScopedStack<>();
-
-		action = new GPPBuildASTParserAction(this, astStack, CPPNodeFactory.getDefault(),
-				GPPSecondaryParserFactory.getDefault());
-		action.setParserProperties(properties);
-
-		gnuAction = new GNUBuildASTParserAction(this, astStack, CPPNodeFactory.getDefault());
-		gnuAction.setParserProperties(properties);
-
-	}
-
-	@Override
-	public void addToken(IToken token) {
-		token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called?
-		super.addToken(token);
-	}
-
-	@Override
-	public IASTExpression parse() {
-		// this has to be done, or... kaboom!
-		setStreamLength(getSize());
-
-		final int errorRepairCount = -1; // -1 means full error handling
-		parser(null, errorRepairCount); // do the actual parse
-		super.resetTokenStream(); // allow tokens to be garbage collected
-
-		compNode = action.getASTCompletionNode(); // the completion node may be null
-		return (IASTExpression) action.getParseResult();
-	}
-
-	@Override
-	public IASTCompletionNode getCompletionNode() {
-		return compNode;
-	}
-
-	// uncomment this method to use with backtracking parser
-	@Override
-	public List<IToken> getRuleTokens() {
-		return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
-	}
-
-	@Override
-	public String[] getOrderedTerminalSymbols() {
-		return GPPSizeofExpressionParsersym.orderedTerminalSymbols;
-	}
-
-	@Override
-	@SuppressWarnings("nls")
-	public String getName() {
-		return "GPPSizeofExpressionParser";
-	}
-
-	private ITokenMap tokenMap = null;
-
-	@Override
-	public void setTokens(List<IToken> tokens) {
-		resetTokenStream();
-		addToken(new Token(null, 0, 0, 0)); // dummy token
-		for (IToken token : tokens) {
-			token.setKind(tokenMap.mapKind(token.getKind()));
-			addToken(token);
-		}
-		addToken(new Token(null, 0, 0, GPPSizeofExpressionParsersym.TK_EOF_TOKEN));
-	}
-
-	public GPPSizeofExpressionParser(ITokenStream stream, Map<String, String> properties) { // constructor for creating secondary parser
-		initActions(properties);
-		tokenMap = new TokenMap(GPPSizeofExpressionParsersym.orderedTerminalSymbols,
-				stream.getOrderedTerminalSymbols());
-	}
-
-	public GPPSizeofExpressionParser(ITokenStream stream, IScanner scanner,
-			IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Map<String, String> properties) { // constructor for creating secondary parser
-		initActions(properties);
-		action.initializeTranslationUnit(scanner, builtinBindingsProvider, index);
-		tokenMap = new TokenMap(GPPSizeofExpressionParsersym.orderedTerminalSymbols,
-				stream.getOrderedTerminalSymbols());
-	}
-
-	private GNUBuildASTParserAction gnuAction;
-
-	@Override
-	public void ruleAction(int ruleNumber) {
-		switch (ruleNumber) {
-
-		//
-		// Rule 1:  <openscope-ast> ::= $Empty
-		//
-		case 1: {
-			action.openASTScope();
-			break;
-		}
-
-		//
-		// Rule 2:  <empty> ::= $Empty
-		//
-		case 2: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 13:  translation_unit ::= declaration_seq_opt
-		//
-		case 13: {
-			action.consumeTranslationUnit();
-			break;
-		}
-
-		//
-		// Rule 16:  literal ::= integer
-		//
-		case 16: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant);
-			break;
-		}
-
-		//
-		// Rule 17:  literal ::= floating
-		//
-		case 17: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_float_constant);
-			break;
-		}
-
-		//
-		// Rule 18:  literal ::= charconst
-		//
-		case 18: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant);
-			break;
-		}
-
-		//
-		// Rule 19:  literal ::= stringlit
-		//
-		case 19: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal);
-			break;
-		}
-
-		//
-		// Rule 20:  literal ::= true
-		//
-		case 20: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true);
-			break;
-		}
-
-		//
-		// Rule 21:  literal ::= false
-		//
-		case 21: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false);
-			break;
-		}
-
-		//
-		// Rule 22:  literal ::= this
-		//
-		case 22: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this);
-			break;
-		}
-
-		//
-		// Rule 24:  primary_expression ::= ( expression )
-		//
-		case 24: {
-			action.consumeExpressionBracketed();
-			break;
-		}
-
-		//
-		// Rule 26:  id_expression ::= qualified_or_unqualified_name
-		//
-		case 26: {
-			action.consumeExpressionName();
-			break;
-		}
-
-		//
-		// Rule 33:  unqualified_id_name ::= ~ identifier_token
-		//
-		case 33: {
-			action.consumeDestructorName();
-			break;
-		}
-
-		//
-		// Rule 34:  unqualified_id_name ::= ~ template_id_name
-		//
-		case 34: {
-			action.consumeDestructorNameTemplateId();
-			break;
-		}
-
-		//
-		// Rule 35:  identifier_name ::= identifier_token
-		//
-		case 35: {
-			action.consumeIdentifierName();
-			break;
-		}
-
-		//
-		// Rule 36:  template_opt ::= template
-		//
-		case 36: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 37:  template_opt ::= $Empty
-		//
-		case 37: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 38:  dcolon_opt ::= ::
-		//
-		case 38: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 39:  dcolon_opt ::= $Empty
-		//
-		case 39: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 40:  qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name
-		//
-		case 40: {
-			action.consumeQualifiedId(true);
-			break;
-		}
-
-		//
-		// Rule 41:  qualified_id_name ::= :: unqualified_id_name
-		//
-		case 41: {
-			action.consumeGlobalQualifiedId();
-			break;
-		}
-
-		//
-		// Rule 42:  nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template
-		//
-		case 42: {
-			action.consumeNestedNameSpecifier(true);
-			break;
-		}
-
-		//
-		// Rule 43:  nested_name_specifier ::= class_or_namespace_name ::
-		//
-		case 43: {
-			action.consumeNestedNameSpecifier(false);
-			break;
-		}
-
-		//
-		// Rule 44:  nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template
-		//
-		case 44: {
-			action.consumeNestedNameSpecifier(true);
-			break;
-		}
-
-		//
-		// Rule 45:  nested_name_specifier_with_template ::= class_or_namespace_name_with_template ::
-		//
-		case 45: {
-			action.consumeNestedNameSpecifier(false);
-			break;
-		}
-
-		//
-		// Rule 46:  class_or_namespace_name_with_template ::= template_opt class_or_namespace_name
-		//
-		case 46: {
-			action.consumeNameWithTemplateKeyword();
-			break;
-		}
-
-		//
-		// Rule 48:  nested_name_specifier_opt ::= $Empty
-		//
-		case 48: {
-			action.consumeNestedNameSpecifierEmpty();
-			break;
-		}
-
-		//
-		// Rule 51:  postfix_expression ::= postfix_expression [ expression ]
-		//
-		case 51: {
-			action.consumeExpressionArraySubscript();
-			break;
-		}
-
-		//
-		// Rule 52:  postfix_expression ::= postfix_expression ( expression_list_opt )
-		//
-		case 52: {
-			action.consumeExpressionFunctionCall();
-			break;
-		}
-
-		//
-		// Rule 53:  postfix_expression ::= simple_type_specifier ( expression_list_opt )
-		//
-		case 53: {
-			action.consumeExpressionSimpleTypeConstructor();
-			break;
-		}
-
-		//
-		// Rule 54:  postfix_expression ::= typename dcolon_opt nested_name_specifier <empty> identifier_name ( expression_list_opt )
-		//
-		case 54: {
-			action.consumeExpressionTypeName();
-			break;
-		}
-
-		//
-		// Rule 55:  postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt )
-		//
-		case 55: {
-			action.consumeExpressionTypeName();
-			break;
-		}
-
-		//
-		// Rule 56:  postfix_expression ::= postfix_expression . qualified_or_unqualified_name
-		//
-		case 56: {
-			action.consumeExpressionFieldReference(false, false);
-			break;
-		}
-
-		//
-		// Rule 57:  postfix_expression ::= postfix_expression -> qualified_or_unqualified_name
-		//
-		case 57: {
-			action.consumeExpressionFieldReference(true, false);
-			break;
-		}
-
-		//
-		// Rule 58:  postfix_expression ::= postfix_expression . template qualified_or_unqualified_name
-		//
-		case 58: {
-			action.consumeExpressionFieldReference(false, true);
-			break;
-		}
-
-		//
-		// Rule 59:  postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name
-		//
-		case 59: {
-			action.consumeExpressionFieldReference(true, true);
-			break;
-		}
-
-		//
-		// Rule 60:  postfix_expression ::= postfix_expression . pseudo_destructor_name
-		//
-		case 60: {
-			action.consumeExpressionFieldReference(false, false);
-			break;
-		}
-
-		//
-		// Rule 61:  postfix_expression ::= postfix_expression -> pseudo_destructor_name
-		//
-		case 61: {
-			action.consumeExpressionFieldReference(true, false);
-			break;
-		}
-
-		//
-		// Rule 62:  postfix_expression ::= postfix_expression ++
-		//
-		case 62: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr);
-			break;
-		}
-
-		//
-		// Rule 63:  postfix_expression ::= postfix_expression --
-		//
-		case 63: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr);
-			break;
-		}
-
-		//
-		// Rule 64:  postfix_expression ::= dynamic_cast < type_id > ( expression )
-		//
-		case 64: {
-			action.consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast);
-			break;
-		}
-
-		//
-		// Rule 65:  postfix_expression ::= static_cast < type_id > ( expression )
-		//
-		case 65: {
-			action.consumeExpressionCast(ICPPASTCastExpression.op_static_cast);
-			break;
-		}
-
-		//
-		// Rule 66:  postfix_expression ::= reinterpret_cast < type_id > ( expression )
-		//
-		case 66: {
-			action.consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast);
-			break;
-		}
-
-		//
-		// Rule 67:  postfix_expression ::= const_cast < type_id > ( expression )
-		//
-		case 67: {
-			action.consumeExpressionCast(ICPPASTCastExpression.op_const_cast);
-			break;
-		}
-
-		//
-		// Rule 68:  postfix_expression ::= typeid ( expression )
-		//
-		case 68: {
-			action.consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid);
-			break;
-		}
-
-		//
-		// Rule 69:  pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name
-		//
-		case 69: {
-			action.consumePsudoDestructorName(true);
-			break;
-		}
-
-		//
-		// Rule 70:  pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name
-		//
-		case 70: {
-			action.consumePsudoDestructorName(true);
-			break;
-		}
-
-		//
-		// Rule 71:  pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name
-		//
-		case 71: {
-			action.consumePsudoDestructorName(false);
-			break;
-		}
-
-		//
-		// Rule 72:  destructor_type_name ::= ~ identifier_token
-		//
-		case 72: {
-			action.consumeDestructorName();
-			break;
-		}
-
-		//
-		// Rule 73:  destructor_type_name ::= ~ template_id_name
-		//
-		case 73: {
-			action.consumeDestructorNameTemplateId();
-			break;
-		}
-
-		//
-		// Rule 77:  unary_expression ::= ++ cast_expression
-		//
-		case 77: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr);
-			break;
-		}
-
-		//
-		// Rule 78:  unary_expression ::= -- cast_expression
-		//
-		case 78: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr);
-			break;
-		}
-
-		//
-		// Rule 79:  unary_expression ::= & cast_expression
-		//
-		case 79: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper);
-			break;
-		}
-
-		//
-		// Rule 80:  unary_expression ::= * cast_expression
-		//
-		case 80: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_star);
-			break;
-		}
-
-		//
-		// Rule 81:  unary_expression ::= + cast_expression
-		//
-		case 81: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus);
-			break;
-		}
-
-		//
-		// Rule 82:  unary_expression ::= - cast_expression
-		//
-		case 82: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus);
-			break;
-		}
-
-		//
-		// Rule 83:  unary_expression ::= ~ cast_expression
-		//
-		case 83: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde);
-			break;
-		}
-
-		//
-		// Rule 84:  unary_expression ::= ! cast_expression
-		//
-		case 84: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_not);
-			break;
-		}
-
-		//
-		// Rule 85:  unary_expression ::= sizeof unary_expression
-		//
-		case 85: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof);
-			break;
-		}
-
-		//
-		// Rule 86:  new_expression ::= dcolon_opt new new_placement_opt new_type_id <openscope-ast> new_array_expressions_opt new_initializer_opt
-		//
-		case 86: {
-			action.consumeExpressionNew(true);
-			break;
-		}
-
-		//
-		// Rule 87:  new_expression ::= dcolon_opt new new_placement_opt ( type_id ) <openscope-ast> new_array_expressions_opt new_initializer_opt
-		//
-		case 87: {
-			action.consumeExpressionNew(false);
-			break;
-		}
-
-		//
-		// Rule 89:  new_placement_opt ::= $Empty
-		//
-		case 89: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 90:  new_type_id ::= type_specifier_seq
-		//
-		case 90: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 91:  new_type_id ::= type_specifier_seq new_declarator
-		//
-		case 91: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 92:  new_declarator ::= <openscope-ast> new_pointer_operators
-		//
-		case 92: {
-			action.consumeNewDeclarator();
-			break;
-		}
-
-		//
-		// Rule 99:  new_initializer ::= ( expression_list_opt )
-		//
-		case 99: {
-			action.consumeNewInitializer();
-			break;
-		}
-
-		//
-		// Rule 101:  new_initializer_opt ::= $Empty
-		//
-		case 101: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 102:  delete_expression ::= dcolon_opt delete cast_expression
-		//
-		case 102: {
-			action.consumeExpressionDelete(false);
-			break;
-		}
-
-		//
-		// Rule 103:  delete_expression ::= dcolon_opt delete [ ] cast_expression
-		//
-		case 103: {
-			action.consumeExpressionDelete(true);
-			break;
-		}
-
-		//
-		// Rule 105:  cast_expression ::= ( type_id ) cast_expression
-		//
-		case 105: {
-			action.consumeExpressionCast(ICPPASTCastExpression.op_cast);
-			break;
-		}
-
-		//
-		// Rule 107:  pm_expression ::= pm_expression .* cast_expression
-		//
-		case 107: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot);
-			break;
-		}
-
-		//
-		// Rule 108:  pm_expression ::= pm_expression ->* cast_expression
-		//
-		case 108: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow);
-			break;
-		}
-
-		//
-		// Rule 110:  multiplicative_expression ::= multiplicative_expression * pm_expression
-		//
-		case 110: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply);
-			break;
-		}
-
-		//
-		// Rule 111:  multiplicative_expression ::= multiplicative_expression / pm_expression
-		//
-		case 111: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide);
-			break;
-		}
-
-		//
-		// Rule 112:  multiplicative_expression ::= multiplicative_expression % pm_expression
-		//
-		case 112: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo);
-			break;
-		}
-
-		//
-		// Rule 114:  additive_expression ::= additive_expression + multiplicative_expression
-		//
-		case 114: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus);
-			break;
-		}
-
-		//
-		// Rule 115:  additive_expression ::= additive_expression - multiplicative_expression
-		//
-		case 115: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus);
-			break;
-		}
-
-		//
-		// Rule 117:  shift_expression ::= shift_expression << additive_expression
-		//
-		case 117: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft);
-			break;
-		}
-
-		//
-		// Rule 118:  shift_expression ::= shift_expression >> additive_expression
-		//
-		case 118: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight);
-			break;
-		}
-
-		//
-		// Rule 120:  relational_expression ::= relational_expression < shift_expression
-		//
-		case 120: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan);
-			break;
-		}
-
-		//
-		// Rule 121:  relational_expression ::= relational_expression > shift_expression
-		//
-		case 121: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan);
-			break;
-		}
-
-		//
-		// Rule 122:  relational_expression ::= relational_expression <= shift_expression
-		//
-		case 122: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual);
-			break;
-		}
-
-		//
-		// Rule 123:  relational_expression ::= relational_expression >= shift_expression
-		//
-		case 123: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual);
-			break;
-		}
-
-		//
-		// Rule 125:  equality_expression ::= equality_expression == relational_expression
-		//
-		case 125: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals);
-			break;
-		}
-
-		//
-		// Rule 126:  equality_expression ::= equality_expression != relational_expression
-		//
-		case 126: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals);
-			break;
-		}
-
-		//
-		// Rule 128:  and_expression ::= and_expression & equality_expression
-		//
-		case 128: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd);
-			break;
-		}
-
-		//
-		// Rule 130:  exclusive_or_expression ::= exclusive_or_expression ^ and_expression
-		//
-		case 130: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor);
-			break;
-		}
-
-		//
-		// Rule 132:  inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression
-		//
-		case 132: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr);
-			break;
-		}
-
-		//
-		// Rule 134:  logical_and_expression ::= logical_and_expression && inclusive_or_expression
-		//
-		case 134: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd);
-			break;
-		}
-
-		//
-		// Rule 136:  logical_or_expression ::= logical_or_expression || logical_and_expression
-		//
-		case 136: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr);
-			break;
-		}
-
-		//
-		// Rule 138:  conditional_expression ::= logical_or_expression ? expression : assignment_expression
-		//
-		case 138: {
-			action.consumeExpressionConditional();
-			break;
-		}
-
-		//
-		// Rule 140:  relational_expression_inTemplate ::= relational_expression_inTemplate < shift_expression
-		//
-		case 140: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan);
-			break;
-		}
-
-		//
-		// Rule 141:  relational_expression_inTemplate ::= ( relational_expression_inTemplate > shift_expression )
-		//
-		case 141: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan);
-			break;
-		}
-
-		//
-		// Rule 142:  relational_expression_inTemplate ::= relational_expression_inTemplate <= shift_expression
-		//
-		case 142: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual);
-			break;
-		}
-
-		//
-		// Rule 143:  relational_expression_inTemplate ::= relational_expression_inTemplate >= shift_expression
-		//
-		case 143: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual);
-			break;
-		}
-
-		//
-		// Rule 145:  equality_expression_inTemplate ::= equality_expression_inTemplate == relational_expression_inTemplate
-		//
-		case 145: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals);
-			break;
-		}
-
-		//
-		// Rule 146:  equality_expression_inTemplate ::= equality_expression_inTemplate != relational_expression_inTemplate
-		//
-		case 146: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals);
-			break;
-		}
-
-		//
-		// Rule 148:  and_expression_inTemplate ::= and_expression_inTemplate & equality_expression_inTemplate
-		//
-		case 148: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd);
-			break;
-		}
-
-		//
-		// Rule 150:  exclusive_or_expression_inTemplate ::= exclusive_or_expression_inTemplate ^ and_expression_inTemplate
-		//
-		case 150: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor);
-			break;
-		}
-
-		//
-		// Rule 152:  inclusive_or_expression_inTemplate ::= inclusive_or_expression_inTemplate | exclusive_or_expression_inTemplate
-		//
-		case 152: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr);
-			break;
-		}
-
-		//
-		// Rule 154:  logical_and_expression_inTemplate ::= logical_and_expression_inTemplate && inclusive_or_expression_inTemplate
-		//
-		case 154: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd);
-			break;
-		}
-
-		//
-		// Rule 156:  logical_or_expression_inTemplate ::= logical_or_expression_inTemplate || logical_and_expression_inTemplate
-		//
-		case 156: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr);
-			break;
-		}
-
-		//
-		// Rule 158:  conditional_expression_inTemplate ::= logical_or_expression_inTemplate ? expression : assignment_expression_inTemplate
-		//
-		case 158: {
-			action.consumeExpressionConditional();
-			break;
-		}
-
-		//
-		// Rule 161:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate = assignment_expression_inTemplate
-		//
-		case 161: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign);
-			break;
-		}
-
-		//
-		// Rule 162:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate *= assignment_expression_inTemplate
-		//
-		case 162: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign);
-			break;
-		}
-
-		//
-		// Rule 163:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate /= assignment_expression_inTemplate
-		//
-		case 163: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign);
-			break;
-		}
-
-		//
-		// Rule 164:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate %= assignment_expression_inTemplate
-		//
-		case 164: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign);
-			break;
-		}
-
-		//
-		// Rule 165:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate += assignment_expression_inTemplate
-		//
-		case 165: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign);
-			break;
-		}
-
-		//
-		// Rule 166:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate -= assignment_expression_inTemplate
-		//
-		case 166: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign);
-			break;
-		}
-
-		//
-		// Rule 167:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate >>= assignment_expression_inTemplate
-		//
-		case 167: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign);
-			break;
-		}
-
-		//
-		// Rule 168:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate <<= assignment_expression_inTemplate
-		//
-		case 168: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign);
-			break;
-		}
-
-		//
-		// Rule 169:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate &= assignment_expression_inTemplate
-		//
-		case 169: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign);
-			break;
-		}
-
-		//
-		// Rule 170:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate ^= assignment_expression_inTemplate
-		//
-		case 170: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign);
-			break;
-		}
-
-		//
-		// Rule 171:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate |= assignment_expression_inTemplate
-		//
-		case 171: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign);
-			break;
-		}
-
-		//
-		// Rule 172:  throw_expression ::= throw
-		//
-		case 172: {
-			action.consumeExpressionThrow(false);
-			break;
-		}
-
-		//
-		// Rule 173:  throw_expression ::= throw assignment_expression
-		//
-		case 173: {
-			action.consumeExpressionThrow(true);
-			break;
-		}
-
-		//
-		// Rule 176:  assignment_expression ::= logical_or_expression = assignment_expression
-		//
-		case 176: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign);
-			break;
-		}
-
-		//
-		// Rule 177:  assignment_expression ::= logical_or_expression *= assignment_expression
-		//
-		case 177: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign);
-			break;
-		}
-
-		//
-		// Rule 178:  assignment_expression ::= logical_or_expression /= assignment_expression
-		//
-		case 178: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign);
-			break;
-		}
-
-		//
-		// Rule 179:  assignment_expression ::= logical_or_expression %= assignment_expression
-		//
-		case 179: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign);
-			break;
-		}
-
-		//
-		// Rule 180:  assignment_expression ::= logical_or_expression += assignment_expression
-		//
-		case 180: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign);
-			break;
-		}
-
-		//
-		// Rule 181:  assignment_expression ::= logical_or_expression -= assignment_expression
-		//
-		case 181: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign);
-			break;
-		}
-
-		//
-		// Rule 182:  assignment_expression ::= logical_or_expression >>= assignment_expression
-		//
-		case 182: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign);
-			break;
-		}
-
-		//
-		// Rule 183:  assignment_expression ::= logical_or_expression <<= assignment_expression
-		//
-		case 183: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign);
-			break;
-		}
-
-		//
-		// Rule 184:  assignment_expression ::= logical_or_expression &= assignment_expression
-		//
-		case 184: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign);
-			break;
-		}
-
-		//
-		// Rule 185:  assignment_expression ::= logical_or_expression ^= assignment_expression
-		//
-		case 185: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign);
-			break;
-		}
-
-		//
-		// Rule 186:  assignment_expression ::= logical_or_expression |= assignment_expression
-		//
-		case 186: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign);
-			break;
-		}
-
-		//
-		// Rule 188:  expression_list ::= <openscope-ast> expression_list_actual
-		//
-		case 188: {
-			action.consumeExpressionList();
-			break;
-		}
-
-		//
-		// Rule 192:  expression_list_opt ::= $Empty
-		//
-		case 192: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 194:  expression_opt ::= $Empty
-		//
-		case 194: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 197:  constant_expression_opt ::= $Empty
-		//
-		case 197: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 206:  statement ::= ERROR_TOKEN
-		//
-		case 206: {
-			action.consumeStatementProblem();
-			break;
-		}
-
-		//
-		// Rule 207:  labeled_statement ::= identifier : statement
-		//
-		case 207: {
-			action.consumeStatementLabeled();
-			break;
-		}
-
-		//
-		// Rule 208:  labeled_statement ::= case constant_expression : statement
-		//
-		case 208: {
-			action.consumeStatementCase();
-			break;
-		}
-
-		//
-		// Rule 209:  labeled_statement ::= default : statement
-		//
-		case 209: {
-			action.consumeStatementDefault();
-			break;
-		}
-
-		//
-		// Rule 210:  expression_statement ::= expression ;
-		//
-		case 210: {
-			action.consumeStatementExpression();
-			break;
-		}
-
-		//
-		// Rule 211:  expression_statement ::= ;
-		//
-		case 211: {
-			action.consumeStatementNull();
-			break;
-		}
-
-		//
-		// Rule 212:  compound_statement ::= { <openscope-ast> statement_seq }
-		//
-		case 212: {
-			action.consumeStatementCompoundStatement(true);
-			break;
-		}
-
-		//
-		// Rule 213:  compound_statement ::= { }
-		//
-		case 213: {
-			action.consumeStatementCompoundStatement(false);
-			break;
-		}
-
-		//
-		// Rule 216:  selection_statement ::= if ( condition ) statement
-		//
-		case 216: {
-			action.consumeStatementIf(false);
-			break;
-		}
-
-		//
-		// Rule 217:  selection_statement ::= if ( condition ) statement else statement
-		//
-		case 217: {
-			action.consumeStatementIf(true);
-			break;
-		}
-
-		//
-		// Rule 218:  selection_statement ::= switch ( condition ) statement
-		//
-		case 218: {
-			action.consumeStatementSwitch();
-			break;
-		}
-
-		//
-		// Rule 220:  condition ::= type_specifier_seq declarator = assignment_expression
-		//
-		case 220: {
-			action.consumeConditionDeclaration();
-			break;
-		}
-
-		//
-		// Rule 222:  condition_opt ::= $Empty
-		//
-		case 222: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 223:  iteration_statement ::= while ( condition ) statement
-		//
-		case 223: {
-			action.consumeStatementWhileLoop();
-			break;
-		}
-
-		//
-		// Rule 224:  iteration_statement ::= do statement while ( expression ) ;
-		//
-		case 224: {
-			action.consumeStatementDoLoop(true);
-			break;
-		}
-
-		//
-		// Rule 225:  iteration_statement ::= do statement
-		//
-		case 225: {
-			action.consumeStatementDoLoop(false);
-			break;
-		}
-
-		//
-		// Rule 226:  iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement
-		//
-		case 226: {
-			action.consumeStatementForLoop();
-			break;
-		}
-
-		//
-		// Rule 228:  for_init_statement ::= simple_declaration_with_declspec
-		//
-		case 228: {
-			action.consumeStatementDeclaration();
-			break;
-		}
-
-		//
-		// Rule 229:  jump_statement ::= break ;
-		//
-		case 229: {
-			action.consumeStatementBreak();
-			break;
-		}
-
-		//
-		// Rule 230:  jump_statement ::= continue ;
-		//
-		case 230: {
-			action.consumeStatementContinue();
-			break;
-		}
-
-		//
-		// Rule 231:  jump_statement ::= return expression ;
-		//
-		case 231: {
-			action.consumeStatementReturn(true);
-			break;
-		}
-
-		//
-		// Rule 232:  jump_statement ::= return ;
-		//
-		case 232: {
-			action.consumeStatementReturn(false);
-			break;
-		}
-
-		//
-		// Rule 233:  jump_statement ::= goto identifier_token ;
-		//
-		case 233: {
-			action.consumeStatementGoto();
-			break;
-		}
-
-		//
-		// Rule 234:  declaration_statement ::= block_declaration
-		//
-		case 234: {
-			action.consumeStatementDeclarationWithDisambiguation();
-			break;
-		}
-
-		//
-		// Rule 235:  declaration_statement ::= function_definition
-		//
-		case 235: {
-			action.consumeStatementDeclaration();
-			break;
-		}
-
-		//
-		// Rule 243:  declaration ::= ERROR_TOKEN
-		//
-		case 243: {
-			action.consumeDeclarationProblem();
-			break;
-		}
-
-		//
-		// Rule 253:  simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ;
-		//
-		case 253: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 254:  simple_declaration_with_declspec ::= declaration_specifiers <openscope-ast> init_declarator_list_opt ;
-		//
-		case 254: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 255:  declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
-		//
-		case 255: {
-			action.consumeDeclarationSpecifiersSimple();
-			break;
-		}
-
-		//
-		// Rule 256:  declaration_specifiers ::= <openscope-ast> class_declaration_specifiers
-		//
-		case 256: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 257:  declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
-		//
-		case 257: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 258:  declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
-		//
-		case 258: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 259:  declaration_specifiers ::= <openscope-ast> type_name_declaration_specifiers
-		//
-		case 259: {
-			action.consumeDeclarationSpecifiersTypeName();
-			break;
-		}
-
-		//
-		// Rule 261:  declaration_specifiers_opt ::= $Empty
-		//
-		case 261: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 265:  no_type_declaration_specifier ::= friend
-		//
-		case 265: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 266:  no_type_declaration_specifier ::= typedef
-		//
-		case 266: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 286:  storage_class_specifier ::= auto
-		//
-		case 286: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 287:  storage_class_specifier ::= register
-		//
-		case 287: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 288:  storage_class_specifier ::= static
-		//
-		case 288: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 289:  storage_class_specifier ::= extern
-		//
-		case 289: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 290:  storage_class_specifier ::= mutable
-		//
-		case 290: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 291:  function_specifier ::= inline
-		//
-		case 291: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 292:  function_specifier ::= virtual
-		//
-		case 292: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 293:  function_specifier ::= explicit
-		//
-		case 293: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 294:  simple_type_specifier ::= simple_type_specifier_token
-		//
-		case 294: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 308:  type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name
-		//
-		case 308: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 309:  type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name
-		//
-		case 309: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 310:  type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name
-		//
-		case 310: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 311:  type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name
-		//
-		case 311: {
-			action.consumeQualifiedId(true);
-			break;
-		}
-
-		//
-		// Rule 313:  elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name
-		//
-		case 313: {
-			action.consumeTypeSpecifierElaborated(false);
-			break;
-		}
-
-		//
-		// Rule 314:  elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt template_opt template_id_name
-		//
-		case 314: {
-			action.consumeTypeSpecifierElaborated(true);
-			break;
-		}
-
-		//
-		// Rule 315:  elaborated_type_specifier ::= enum elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name
-		//
-		case 315: {
-			action.consumeTypeSpecifierElaborated(false);
-			break;
-		}
-
-		//
-		// Rule 319:  enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
-		//
-		case 319: {
-			action.consumeTypeSpecifierEnumeration(false);
-			break;
-		}
-
-		//
-		// Rule 320:  enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
-		//
-		case 320: {
-			action.consumeTypeSpecifierEnumeration(true);
-			break;
-		}
-
-		//
-		// Rule 326:  enumerator_definition ::= identifier_token
-		//
-		case 326: {
-			action.consumeEnumerator(false);
-			break;
-		}
-
-		//
-		// Rule 327:  enumerator_definition ::= identifier_token = constant_expression
-		//
-		case 327: {
-			action.consumeEnumerator(true);
-			break;
-		}
-
-		//
-		// Rule 329:  namespace_definition ::= namespace namespace_name namespace_definition_hook { <openscope-ast> declaration_seq_opt }
-		//
-		case 329: {
-			action.consumeNamespaceDefinition(true);
-			break;
-		}
-
-		//
-		// Rule 330:  namespace_definition ::= namespace namespace_definition_hook { <openscope-ast> declaration_seq_opt }
-		//
-		case 330: {
-			action.consumeNamespaceDefinition(false);
-			break;
-		}
-
-		//
-		// Rule 332:  namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ;
-		//
-		case 332: {
-			action.consumeNamespaceAliasDefinition();
-			break;
-		}
-
-		//
-		// Rule 333:  using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ;
-		//
-		case 333: {
-			action.consumeUsingDeclaration();
-			break;
-		}
-
-		//
-		// Rule 334:  typename_opt ::= typename
-		//
-		case 334: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 335:  typename_opt ::= $Empty
-		//
-		case 335: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 336:  using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ;
-		//
-		case 336: {
-			action.consumeUsingDirective();
-			break;
-		}
-
-		//
-		// Rule 337:  linkage_specification ::= extern stringlit { <openscope-ast> declaration_seq_opt }
-		//
-		case 337: {
-			action.consumeLinkageSpecification();
-			break;
-		}
-
-		//
-		// Rule 338:  linkage_specification ::= extern stringlit <openscope-ast> declaration
-		//
-		case 338: {
-			action.consumeLinkageSpecification();
-			break;
-		}
-
-		//
-		// Rule 343:  init_declarator_complete ::= init_declarator
-		//
-		case 343: {
-			action.consumeInitDeclaratorComplete();
-			break;
-		}
-
-		//
-		// Rule 345:  init_declarator ::= complete_declarator initializer
-		//
-		case 345: {
-			action.consumeDeclaratorWithInitializer(true);
-			break;
-		}
-
-		//
-		// Rule 348:  declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
-		//
-		case 348: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 350:  function_declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
-		//
-		case 350: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 354:  basic_direct_declarator ::= declarator_id_name
-		//
-		case 354: {
-			action.consumeDirectDeclaratorIdentifier();
-			break;
-		}
-
-		//
-		// Rule 355:  basic_direct_declarator ::= ( declarator )
-		//
-		case 355: {
-			action.consumeDirectDeclaratorBracketed();
-			break;
-		}
-
-		//
-		// Rule 356:  function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
-		//
-		case 356: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 357:  array_direct_declarator ::= array_direct_declarator array_modifier
-		//
-		case 357: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 358:  array_direct_declarator ::= basic_direct_declarator array_modifier
-		//
-		case 358: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 359:  array_modifier ::= [ constant_expression ]
-		//
-		case 359: {
-			action.consumeDirectDeclaratorArrayModifier(true);
-			break;
-		}
-
-		//
-		// Rule 360:  array_modifier ::= [ ]
-		//
-		case 360: {
-			action.consumeDirectDeclaratorArrayModifier(false);
-			break;
-		}
-
-		//
-		// Rule 361:  ptr_operator ::= pointer_hook * pointer_hook <openscope-ast> cv_qualifier_seq_opt
-		//
-		case 361: {
-			action.consumePointer();
-			break;
-		}
-
-		//
-		// Rule 362:  ptr_operator ::= pointer_hook & pointer_hook
-		//
-		case 362: {
-			action.consumeReferenceOperator();
-			break;
-		}
-
-		//
-		// Rule 363:  ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * pointer_hook <openscope-ast> cv_qualifier_seq_opt
-		//
-		case 363: {
-			action.consumePointerToMember();
-			break;
-		}
-
-		//
-		// Rule 370:  cv_qualifier ::= const
-		//
-		case 370: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 371:  cv_qualifier ::= volatile
-		//
-		case 371: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 373:  declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name
-		//
-		case 373: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 374:  type_id ::= type_specifier_seq
-		//
-		case 374: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 375:  type_id ::= type_specifier_seq abstract_declarator
-		//
-		case 375: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 378:  abstract_declarator ::= <openscope-ast> ptr_operator_seq
-		//
-		case 378: {
-			action.consumeDeclaratorWithPointer(false);
-			break;
-		}
-
-		//
-		// Rule 379:  abstract_declarator ::= <openscope-ast> ptr_operator_seq direct_abstract_declarator
-		//
-		case 379: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 383:  basic_direct_abstract_declarator ::= ( abstract_declarator )
-		//
-		case 383: {
-			action.consumeDirectDeclaratorBracketed();
-			break;
-		}
-
-		//
-		// Rule 384:  basic_direct_abstract_declarator ::= ( )
-		//
-		case 384: {
-			action.consumeAbstractDeclaratorEmpty();
-			break;
-		}
-
-		//
-		// Rule 385:  array_direct_abstract_declarator ::= array_modifier
-		//
-		case 385: {
-			action.consumeDirectDeclaratorArrayDeclarator(false);
-			break;
-		}
-
-		//
-		// Rule 386:  array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
-		//
-		case 386: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 387:  array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
-		//
-		case 387: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 388:  function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
-		//
-		case 388: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 389:  function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
-		//
-		case 389: {
-			action.consumeDirectDeclaratorFunctionDeclarator(false);
-			break;
-		}
-
-		//
-		// Rule 390:  parameter_declaration_clause ::= parameter_declaration_list_opt ...
-		//
-		case 390: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 391:  parameter_declaration_clause ::= parameter_declaration_list_opt
-		//
-		case 391: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 392:  parameter_declaration_clause ::= parameter_declaration_list , ...
-		//
-		case 392: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 398:  abstract_declarator_opt ::= $Empty
-		//
-		case 398: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 399:  parameter_declaration ::= declaration_specifiers parameter_init_declarator
-		//
-		case 399: {
-			action.consumeParameterDeclaration();
-			break;
-		}
-
-		//
-		// Rule 400:  parameter_declaration ::= declaration_specifiers
-		//
-		case 400: {
-			action.consumeParameterDeclarationWithoutDeclarator();
-			break;
-		}
-
-		//
-		// Rule 402:  parameter_init_declarator ::= declarator = parameter_initializer
-		//
-		case 402: {
-			action.consumeDeclaratorWithInitializer(true);
-			break;
-		}
-
-		//
-		// Rule 404:  parameter_init_declarator ::= abstract_declarator = parameter_initializer
-		//
-		case 404: {
-			action.consumeDeclaratorWithInitializer(true);
-			break;
-		}
-
-		//
-		// Rule 405:  parameter_init_declarator ::= = parameter_initializer
-		//
-		case 405: {
-			action.consumeDeclaratorWithInitializer(false);
-			break;
-		}
-
-		//
-		// Rule 406:  parameter_initializer ::= assignment_expression
-		//
-		case 406: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 407:  function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body
-		//
-		case 407: {
-			action.consumeFunctionDefinition(false);
-			break;
-		}
-
-		//
-		// Rule 408:  function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq
-		//
-		case 408: {
-			action.consumeFunctionDefinition(true);
-			break;
-		}
-
-		//
-		// Rule 411:  initializer ::= ( expression_list )
-		//
-		case 411: {
-			action.consumeInitializerConstructor();
-			break;
-		}
-
-		//
-		// Rule 412:  initializer_clause ::= assignment_expression
-		//
-		case 412: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 413:  initializer_clause ::= initializer_list
-		//
-		case 413: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 414:  initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq , } end_initializer_list
-		//
-		case 414: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 415:  initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq } end_initializer_list
-		//
-		case 415: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 416:  initializer_list ::= { <openscope-ast> }
-		//
-		case 416: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 417:  start_initializer_list ::= $Empty
-		//
-		case 417: {
-			action.initializerListStart();
-			break;
-		}
-
-		//
-		// Rule 418:  end_initializer_list ::= $Empty
-		//
-		case 418: {
-			action.initializerListEnd();
-			break;
-		}
-
-		//
-		// Rule 423:  class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt }
-		//
-		case 423: {
-			action.consumeClassSpecifier();
-			break;
-		}
-
-		//
-		// Rule 424:  class_head ::= class_keyword composite_specifier_hook identifier_name_opt class_name_suffix_hook <openscope-ast> base_clause_opt
-		//
-		case 424: {
-			action.consumeClassHead(false);
-			break;
-		}
-
-		//
-		// Rule 425:  class_head ::= class_keyword composite_specifier_hook template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt
-		//
-		case 425: {
-			action.consumeClassHead(false);
-			break;
-		}
-
-		//
-		// Rule 426:  class_head ::= class_keyword composite_specifier_hook nested_name_specifier identifier_name class_name_suffix_hook <openscope-ast> base_clause_opt
-		//
-		case 426: {
-			action.consumeClassHead(true);
-			break;
-		}
-
-		//
-		// Rule 427:  class_head ::= class_keyword composite_specifier_hook nested_name_specifier template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt
-		//
-		case 427: {
-			action.consumeClassHead(true);
-			break;
-		}
-
-		//
-		// Rule 431:  identifier_name_opt ::= $Empty
-		//
-		case 431: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 435:  visibility_label ::= access_specifier_keyword :
-		//
-		case 435: {
-			action.consumeVisibilityLabel();
-			break;
-		}
-
-		//
-		// Rule 436:  member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
-		//
-		case 436: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 437:  member_declaration ::= declaration_specifiers_opt ;
-		//
-		case 437: {
-			action.consumeDeclarationSimple(false);
-			break;
-		}
-
-		//
-		// Rule 440:  member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ;
-		//
-		case 440: {
-			action.consumeMemberDeclarationQualifiedId();
-			break;
-		}
-
-		//
-		// Rule 446:  member_declaration ::= ERROR_TOKEN
-		//
-		case 446: {
-			action.consumeDeclarationProblem();
-			break;
-		}
-
-		//
-		// Rule 455:  member_declarator ::= declarator constant_initializer
-		//
-		case 455: {
-			action.consumeMemberDeclaratorWithInitializer();
-			break;
-		}
-
-		//
-		// Rule 456:  member_declarator ::= bit_field_declarator : constant_expression
-		//
-		case 456: {
-			action.consumeBitField(true);
-			break;
-		}
-
-		//
-		// Rule 457:  member_declarator ::= : constant_expression
-		//
-		case 457: {
-			action.consumeBitField(false);
-			break;
-		}
-
-		//
-		// Rule 458:  bit_field_declarator ::= identifier_name
-		//
-		case 458: {
-			action.consumeDirectDeclaratorIdentifier();
-			break;
-		}
-
-		//
-		// Rule 459:  constant_initializer ::= = constant_expression
-		//
-		case 459: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 465:  base_specifier ::= dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 465: {
-			action.consumeBaseSpecifier(false, false);
-			break;
-		}
-
-		//
-		// Rule 466:  base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 466: {
-			action.consumeBaseSpecifier(true, true);
-			break;
-		}
-
-		//
-		// Rule 467:  base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 467: {
-			action.consumeBaseSpecifier(true, true);
-			break;
-		}
-
-		//
-		// Rule 468:  base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 468: {
-			action.consumeBaseSpecifier(true, false);
-			break;
-		}
-
-		//
-		// Rule 469:  access_specifier_keyword ::= private
-		//
-		case 469: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 470:  access_specifier_keyword ::= protected
-		//
-		case 470: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 471:  access_specifier_keyword ::= public
-		//
-		case 471: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 473:  access_specifier_keyword_opt ::= $Empty
-		//
-		case 473: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 475:  conversion_function_id_name ::= conversion_function_id < <openscope-ast> template_argument_list_opt >
-		//
-		case 475: {
-			action.consumeTemplateId();
-			break;
-		}
-
-		//
-		// Rule 476:  conversion_function_id ::= operator conversion_type_id
-		//
-		case 476: {
-			action.consumeConversionName();
-			break;
-		}
-
-		//
-		// Rule 477:  conversion_type_id ::= type_specifier_seq conversion_declarator
-		//
-		case 477: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 478:  conversion_type_id ::= type_specifier_seq
-		//
-		case 478: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 479:  conversion_declarator ::= <openscope-ast> ptr_operator_seq
-		//
-		case 479: {
-			action.consumeDeclaratorWithPointer(false);
-			break;
-		}
-
-		//
-		// Rule 485:  mem_initializer ::= mem_initializer_name ( expression_list_opt )
-		//
-		case 485: {
-			action.consumeConstructorChainInitializer();
-			break;
-		}
-
-		//
-		// Rule 486:  mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 486: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 489:  operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt >
-		//
-		case 489: {
-			action.consumeTemplateId();
-			break;
-		}
-
-		//
-		// Rule 490:  operator_id_name ::= operator overloadable_operator
-		//
-		case 490: {
-			action.consumeOperatorName();
-			break;
-		}
-
-		//
-		// Rule 533:  template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration
-		//
-		case 533: {
-			action.consumeTemplateDeclaration();
-			break;
-		}
-
-		//
-		// Rule 534:  export_opt ::= export
-		//
-		case 534: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 535:  export_opt ::= $Empty
-		//
-		case 535: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 539:  template_parameter ::= parameter_declaration
-		//
-		case 539: {
-			action.consumeTemplateParamterDeclaration();
-			break;
-		}
-
-		//
-		// Rule 540:  type_parameter ::= class identifier_name_opt
-		//
-		case 540: {
-			action.consumeSimpleTypeTemplateParameter(false);
-			break;
-		}
-
-		//
-		// Rule 541:  type_parameter ::= class identifier_name_opt = type_id
-		//
-		case 541: {
-			action.consumeSimpleTypeTemplateParameter(true);
-			break;
-		}
-
-		//
-		// Rule 542:  type_parameter ::= typename identifier_name_opt
-		//
-		case 542: {
-			action.consumeSimpleTypeTemplateParameter(false);
-			break;
-		}
-
-		//
-		// Rule 543:  type_parameter ::= typename identifier_name_opt = type_id
-		//
-		case 543: {
-			action.consumeSimpleTypeTemplateParameter(true);
-			break;
-		}
-
-		//
-		// Rule 544:  type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt
-		//
-		case 544: {
-			action.consumeTemplatedTypeTemplateParameter(false);
-			break;
-		}
-
-		//
-		// Rule 545:  type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression
-		//
-		case 545: {
-			action.consumeTemplatedTypeTemplateParameter(true);
-			break;
-		}
-
-		//
-		// Rule 546:  template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt >
-		//
-		case 546: {
-			action.consumeTemplateId();
-			break;
-		}
-
-		//
-		// Rule 553:  nested_name_specifier_inTemplate ::= class_or_namespace_name_inTemplate :: nested_name_specifier_with_template_inTemplate
-		//
-		case 553: {
-			action.consumeNestedNameSpecifier(true);
-			break;
-		}
-
-		//
-		// Rule 554:  nested_name_specifier_inTemplate ::= class_or_namespace_name_inTemplate ::
-		//
-		case 554: {
-			action.consumeNestedNameSpecifier(false);
-			break;
-		}
-
-		//
-		// Rule 555:  nested_name_specifier_with_template_inTemplate ::= class_or_namespace_name_with_template_inTemplate :: nested_name_specifier_with_template_inTemplate
-		//
-		case 555: {
-			action.consumeNestedNameSpecifier(true);
-			break;
-		}
-
-		//
-		// Rule 556:  nested_name_specifier_with_template_inTemplate ::= class_or_namespace_name_with_template_inTemplate ::
-		//
-		case 556: {
-			action.consumeNestedNameSpecifier(false);
-			break;
-		}
-
-		//
-		// Rule 557:  class_or_namespace_name_with_template_inTemplate ::= template_opt class_or_namespace_name_inTemplate
-		//
-		case 557: {
-			action.consumeNameWithTemplateKeyword();
-			break;
-		}
-
-		//
-		// Rule 559:  nested_name_specifier_opt_inTemplate ::= $Empty
-		//
-		case 559: {
-			action.consumeNestedNameSpecifierEmpty();
-			break;
-		}
-
-		//
-		// Rule 562:  type_name_specifier_inTemplate ::= typename dcolon_opt nested_name_specifier identifier_name
-		//
-		case 562: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 563:  type_name_specifier_inTemplate ::= typename dcolon_opt nested_name_specifier template_opt template_id_name
-		//
-		case 563: {
-			action.consumeQualifiedId(true);
-			break;
-		}
-
-		//
-		// Rule 568:  declaration_specifiers_inTemplate ::= <openscope-ast> simple_declaration_specifiers
-		//
-		case 568: {
-			action.consumeDeclarationSpecifiersSimple();
-			break;
-		}
-
-		//
-		// Rule 569:  declaration_specifiers_inTemplate ::= <openscope-ast> class_declaration_specifiers
-		//
-		case 569: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 570:  declaration_specifiers_inTemplate ::= <openscope-ast> elaborated_declaration_specifiers
-		//
-		case 570: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 571:  declaration_specifiers_inTemplate ::= <openscope-ast> enum_declaration_specifiers
-		//
-		case 571: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 572:  declaration_specifiers_inTemplate ::= <openscope-ast> type_name_declaration_specifiers_inTemplate
-		//
-		case 572: {
-			action.consumeDeclarationSpecifiersTypeName();
-			break;
-		}
-
-		//
-		// Rule 574:  type_id_inTemplate ::= type_specifier_seq_inTemplate
-		//
-		case 574: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 575:  type_id_inTemplate ::= type_specifier_seq_inTemplate abstract_declarator
-		//
-		case 575: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 576:  template_argument ::= assignment_expression_inTemplate
-		//
-		case 576: {
-			action.consumeTemplateArgumentExpression();
-			break;
-		}
-
-		//
-		// Rule 577:  template_argument ::= type_id_inTemplate
-		//
-		case 577: {
-			action.consumeTemplateArgumentTypeId();
-			break;
-		}
-
-		//
-		// Rule 578:  explicit_instantiation ::= template declaration
-		//
-		case 578: {
-			action.consumeTemplateExplicitInstantiation();
-			break;
-		}
-
-		//
-		// Rule 579:  explicit_specialization ::= template < > declaration
-		//
-		case 579: {
-			action.consumeTemplateExplicitSpecialization();
-			break;
-		}
-
-		//
-		// Rule 580:  try_block ::= try compound_statement <openscope-ast> handler_seq
-		//
-		case 580: {
-			action.consumeStatementTryBlock(true);
-			break;
-		}
-
-		//
-		// Rule 581:  try_block ::= try compound_statement
-		//
-		case 581: {
-			action.consumeStatementTryBlock(false);
-			break;
-		}
-
-		//
-		// Rule 584:  handler ::= catch ( exception_declaration ) compound_statement
-		//
-		case 584: {
-			action.consumeStatementCatchHandler(false);
-			break;
-		}
-
-		//
-		// Rule 585:  handler ::= catch ( ... ) compound_statement
-		//
-		case 585: {
-			action.consumeStatementCatchHandler(true);
-			break;
-		}
-
-		//
-		// Rule 586:  exception_declaration ::= type_specifier_seq <openscope-ast> declarator
-		//
-		case 586: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 587:  exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
-		//
-		case 587: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 588:  exception_declaration ::= type_specifier_seq
-		//
-		case 588: {
-			action.consumeDeclarationSimple(false);
-			break;
-		}
-
-		//
-		// Rule 590:  exception_specification ::= throw ( )
-		//
-		case 590: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 611:  attribute_parameter ::= assignment_expression
-		//
-		case 611: {
-			action.consumeIgnore();
-			break;
-		}
-
-		//
-		// Rule 622:  extended_asm_declaration ::= asm volatile_opt ( extended_asm_param_seq ) ;
-		//
-		case 622: {
-			gnuAction.consumeDeclarationASM();
-			break;
-		}
-
-		//
-		// Rule 633:  unary_expression ::= __alignof__ unary_expression
-		//
-		case 633: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_alignOf);
-			break;
-		}
-
-		//
-		// Rule 634:  unary_expression ::= typeof unary_expression
-		//
-		case 634: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof);
-			break;
-		}
-
-		//
-		// Rule 635:  relational_expression ::= relational_expression >? shift_expression
-		//
-		case 635: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_max);
-			break;
-		}
-
-		//
-		// Rule 636:  relational_expression ::= relational_expression <? shift_expression
-		//
-		case 636: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_min);
-			break;
-		}
-
-		//
-		// Rule 637:  conditional_expression ::= logical_or_expression ? <empty> : assignment_expression
-		//
-		case 637: {
-			action.consumeExpressionConditional();
-			break;
-		}
-
-		//
-		// Rule 638:  primary_expression ::= ( compound_statement )
-		//
-		case 638: {
-			gnuAction.consumeCompoundStatementExpression();
-			break;
-		}
-
-		//
-		// Rule 639:  labeled_statement ::= case case_range_expression : statement
-		//
-		case 639: {
-			action.consumeStatementCase();
-			break;
-		}
-
-		//
-		// Rule 640:  case_range_expression ::= constant_expression ... constant_expression
-		//
-		case 640: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign);
-			break;
-		}
-
-		//
-		// Rule 644:  typeof_type_specifier ::= typeof unary_expression
-		//
-		case 644: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof);
-			break;
-		}
-
-		//
-		// Rule 645:  typeof_type_specifier ::= typeof ( type_id )
-		//
-		case 645: {
-			action.consumeExpressionTypeId(IASTTypeIdExpression.op_typeof);
-			break;
-		}
-
-		//
-		// Rule 646:  declaration_specifiers ::= <openscope-ast> typeof_declaration_specifiers
-		//
-		case 646: {
-			action.consumeDeclarationSpecifiersTypeof();
-			break;
-		}
-
-		//
-		// Rule 659:  declarator ::= <openscope-ast> ptr_operator_seq attribute_or_decl_specifier_seq direct_declarator
-		//
-		case 659: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 662:  simple_type_specifier ::= _Complex
-		//
-		case 662: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 663:  simple_type_specifier ::= _Imaginary
-		//
-		case 663: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 664:  cv_qualifier ::= restrict
-		//
-		case 664: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 665:  explicit_instantiation ::= extern template declaration
-		//
-		case 665: {
-			action.consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_extern);
-			break;
-		}
-
-		//
-		// Rule 666:  explicit_instantiation ::= static template declaration
-		//
-		case 666: {
-			action.consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_static);
-			break;
-		}
-
-		//
-		// Rule 667:  explicit_instantiation ::= inline template declaration
-		//
-		case 667: {
-			action.consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_inline);
-			break;
-		}
-
-		//
-		// Rule 668:  postfix_expression ::= ( type_id ) initializer_list
-		//
-		case 668: {
-			action.consumeExpressionTypeIdInitializer();
-			break;
-		}
-
-		//
-		// Rule 670:  no_sizeof_type_id_start ::= ERROR_TOKEN
-		//
-		case 670: {
-			action.consumeEmpty();
-			break;
-		}
-
-		default:
-			break;
-		}
-		return;
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParserprs.java
deleted file mode 100644
index 1ba43a0..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParserprs.java
+++ /dev/null
@@ -1,1850 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2015 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.lrparser.gpp;
-
-public class GPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, GPPSizeofExpressionParsersym {
-
-	public interface IsKeyword {
-		public final static byte isKeyword[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0 };
-	}
-
-	public final static byte isKeyword[] = IsKeyword.isKeyword;
-
-	public final boolean isKeyword(int index) {
-		return isKeyword[index] != 0;
-	}
-
-	public interface BaseCheck {
-		public final static short baseCheck[] = { 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 0, 1, 0, 4, 2, 3, 2, 3, 2, 2, 1, 0, 1, 1, 4, 4, 4, 8, 8, 3, 3,
-				4, 4, 3, 3, 2, 2, 7, 7, 7, 7, 4, 5, 6, 3, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 7, 9, 3, 0, 1, 2, 2,
-				1, 2, 3, 4, 1, 0, 3, 1, 0, 3, 5, 1, 4, 1, 3, 3, 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, 1,
-				3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 1, 3, 5, 3, 3, 1, 3, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 1, 1, 3, 3,
-				3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 2, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 2, 1, 3, 1, 0, 1, 0, 1, 1, 0,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 4, 3, 2, 1, 4, 2, 1, 2, 5, 7, 5, 1, 4, 1, 0, 5, 7, 2, 8, 1, 1, 2, 2, 3, 2,
-				3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 0, 4, 4, 2, 2, 2, 2, 2, 1, 0, 1, 1, 1, 1, 1, 1,
-				2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 3, 4, 4, 5, 2, 5, 6, 5, 0, 1, 0, 7, 8, 0, 1, 3, 1, 0, 1, 3, 1, 7, 6, 0, 7, 6, 1, 0, 6, 6,
-				4, 1, 3, 1, 0, 1, 1, 2, 1, 1, 3, 1, 3, 1, 1, 1, 1, 3, 9, 2, 2, 3, 2, 5, 3, 7, 0, 1, 2, 2, 1, 0, 1, 1, 1,
-				3, 1, 2, 1, 1, 2, 3, 1, 1, 1, 3, 2, 1, 2, 2, 9, 8, 2, 1, 3, 1, 3, 1, 0, 1, 0, 2, 1, 1, 3, 1, 3, 2, 1, 5,
-				8, 1, 2, 3, 1, 1, 7, 6, 3, 0, 0, 1, 3, 1, 1, 5, 6, 6, 7, 7, 0, 0, 1, 0, 1, 1, 1, 2, 4, 2, 2, 1, 5, 1, 1,
-				1, 1, 1, 1, 1, 2, 1, 0, 1, 3, 1, 1, 2, 3, 2, 1, 2, 2, 1, 0, 1, 3, 3, 5, 5, 4, 1, 1, 1, 1, 0, 1, 5, 2, 2,
-				1, 2, 2, 1, 0, 1, 3, 4, 3, 1, 1, 5, 2, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 7, 1, 0, 1, 3, 1, 1, 2, 4, 2, 4, 7, 9, 5, 1,
-				3, 1, 0, 1, 1, 3, 2, 3, 2, 2, 1, 0, 1, 1, 4, 5, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 4, 4, 2, 1,
-				2, 5, 5, 3, 3, 1, 4, 3, 1, 0, 1, 3, 1, 1, 1, 1, 2, 6, 3, 1, 3, 1, 4, 0, 1, 1, 1, 3, 1, 0, 4, 3, 1, 2, 1,
-				3, 4, 4, 4, 6, 1, 0, 1, 3, 1, 3, 0, 1, 4, 5, 2, 2, 3, 3, 5, 3, 4, 3, 1, 2, 2, 2, 4, 2, 1, 1, 2, 2, 3, 2,
-				2, 3, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 3, 3, 3, 4, 1, 1, -65, 0, 0, 0, 0, -56, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -10, -44, 0, 0,
-				0, 0, 0, -266, -534, -17, -251, -407, 0, 0, 0, 0, -55, -360, 0, -493, 0, 0, 0, 0, -243, 0, 0, 0, 0, 0,
-				0, 0, -69, -66, 0, 0, 0, 0, 0, 0, 0, -255, 0, 0, -457, 0, 0, 0, 0, 0, 0, -218, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -61, -539, 0, 0, 0, 0, 0, 0, 0, -68, 0, 0, 0, -2, 0, 0, 0, 0, 0, -224, 0, 0, 0, -436, 0, 0, 0, 0,
-				-484, 0, 0, 0, 0, 0, 0, 0, 0, 0, -451, -147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4, 0, 0, -5, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -6, -467, 0, 0, 0, -120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -134, 0, 0, 0, 0, 0, 0, -60, 0, 0, 0, 0, 0, 0, -7, 0, 0, 0, 0, -121, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -642, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -8, 0, 0, -160, 0, 0,
-				0, 0, 0, 0, 0, 0, -152, 0, 0, 0, 0, -9, 0, -193, 0, 0, 0, -128, -141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -148, 0,
-				-328, 0, 0, 0, 0, -16, 0, 0, 0, 0, -11, 0, 0, 0, 0, 0, -12, 0, 0, -13, 0, -335, 0, 0, 0, 0, 0, 0, -485,
-				0, 0, 0, 0, -308, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -15,
-				-82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -518, 0, 0, 0, 0, 0, 0,
-				0, 0, -53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -284, 0, 0, 0, 0, -30, 0, -411, 0, 0, 0, 0, -604, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -317, 0, 0, 0, -325, 0, 0, 0, 0, 0, -31, 0,
-				0, -32, 0, 0, 0, 0, 0, 0, -33, 0, -139, -34, 0, 0, 0, 0, -551, 0, 0, 0, 0, -35, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -326, 0, 0, 0, -118, -575, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -36,
-				0, 0, -434, 0, -159, 0, 0, 0, -250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -549, 0, -509, 0, 0, 0, 0, -37, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -408, 0, 0, 0, 0, -599, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -640, 0, 0, 0, 0, 0, 0, 0, -469, 0, 0, 0, 0, -313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -336, 0, 0, 0, -214, 0, -546, 0, 0, 0, 0, 0, 0, 0, 0, 0, -140, 0, 0, 0, -550, 0, -75,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -38, 0, 0, 0, -3, 0, 0, 0, 0, -416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -364, 0, 0, 0, 0, -252, -258, 0, 0, 0, 0, 0, 0, 0, 0, 0, -220, 0, 0, 0, 0,
-				0, -413, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -481, 0, 0,
-				-362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -453, -39, 0, 0, 0, 0, -490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -505, 0, 0, -40, 0, -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -42,
-				0, 0, 0, 0, -365, 0, 0, 0, 0, -76, 0, 0, 0, 0, -57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -491, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -522, -466, 0, -409, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -221, 0, 0, 0, 0, 0, -580, 0, 0, 0, 0, -482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -262, -568, 0, 0, -156, 0, -58, 0, 0, 0, 0, 0, 0, 0, 0, 0, -447, 0, 0, 0, 0, 0,
-				-41, 0, 0, 0, 0, -543, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -422, 0, 0, 0,
-				-166, -231, -489, 0, 0, 0, -670, 0, 0, -526, 0, 0, 0, 0, 0, 0, -70, 0, -544, 0, 0, 0, 0, -43, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -483, 0, 0, 0, 0, -71, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -503, 0, 0, 0, 0, 0, -100, 0, 0, 0, 0, -390, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -527, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -257, 0, 0, -101, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -529, 0, 0, 0, -51, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -73, 0, 0, 0, 0, 0, -102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -554, -74, -114, -115, -52, -253, 0, 0, 0, 0, 0, 0, 0, 0, 0, -237, -116, 0,
-				0, -117, 0, -103, 0, 0, 0, 0, -576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -572,
-				0, 0, 0, 0, -124, -646, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -62, 0, -104, 0, 0, 0, 0, -125, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -579, 0, 0, 0, -59, -647, 0, 0, 0, 0, 0, 0,
-				-126, 0, 0, 0, 0, 0, 0, 0, 0, -105, 0, 0, 0, 0, -63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -644, -356, -142, -347, -348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -269, -113, 0, 0, 0, 0, -106,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -216, -392,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -119, 0, -107, 0, 0, 0, 0, -161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -228, -488, 0, 0, 0, 0, -229, 0, 0, 0, 0, 0, 0, -417, 0, 0, 0, 0, 0, 0,
-				-149, 0, -108, 0, 0, 0, 0, -165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -312,
-				-610, 0, 0, -150, 0, 0, 0, 0, 0, 0, 0, -151, 0, 0, -167, -213, 0, 0, -233, 0, -109, 0, 0, 0, 0, -445, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -235, 0, 0, -435, -261, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -322, -263, 0, 0, -315, 0, -110, 0, 0, 0, 0, -168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -323, 0, 0, -169, -571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -520, -327, 0, 0, -330, 0,
-				-145, 0, 0, 0, 0, -170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -329, -349, 0,
-				-171, -358, 0, 0, 0, 0, 0, 0, 0, -357, 0, 0, -438, 0, 0, 0, -241, 0, 0, 0, 0, -359, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -405, 0, 0, 0, 0, 0, 0, 0, 0, 0, -634, 0, 0, -448, 0,
-				0, 0, 0, -265, 0, 0, 0, -611, 0, 0, 0, 0, 0, -472, -172, -270, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -630, 0, 0, 0, -499, 0, 0, 0, 0, 0, 0, 0, 0, 0, -473, 0, 0, 0,
-				-173, 0, -271, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -386, -462,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -174, 0, 0, -598, -366, 0, 0, 0, 0, -295, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -210, -83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -397, 0, -175, 0, 0, -176, 0, -638, 0, 0, 0, 0, 0, 0, -177,
-				0, 0, 0, 0, 0, -296, 0, 0, 0, 0, -178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-219, -84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -179, 0, 0, 0, 0, 0,
-				-402, -180, -404, 0, -406, 0, 0, 0, -412, 0, -661, 0, 0, 0, -367, 0, 0, 0, 0, -297, 0, 0, 0, 0, -181, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -222, -85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -182, 0, 0, 0, 0, 0, -430, -183, -433, 0, -446, 0, 0, 0, -452, 0,
-				-184, 0, 0, 0, -368, 0, 0, 0, 0, -298, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -403, -22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -185, 0, 0,
-				0, 0, 0, 0, -479, -186, -480, 0, -494, 0, 0, 0, -528, 0, -187, 0, 0, 0, -369, 0, 0, 0, 0, -299, 0, 0, 0,
-				0, -536, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -475, -23, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -188, 0, 0, 0, 0, 0, -532, -189, -535, 0, -552, 0, 0,
-				0, -583, 0, -190, 0, 0, 0, -387, 0, 0, 0, 0, -300, 0, 0, 0, 0, -558, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -506, -24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -191, 0, 0, 0, 0, 0, -605, -192, -609, 0, -613, 0, 0, 0, -619, 0, -195, 0, 0, 0, -389, 0, 0, 0, 0,
-				-301, 0, 0, 0, 0, -569, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -566, -25, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -199, 0, 0, 0, 0, 0, -636, -637, -651,
-				0, 0, 0, 0, 0, -654, -200, -201, 0, 0, 0, -421, 0, 0, 0, 0, -302, 0, 0, 0, 0, -573, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -593, -26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -202, 0, 0, 0, 0, 0, -662, -203, -204, 0, -205, 0, 0, -206, -207, -208, -212, 0, 0,
-				-215, -426, 0, 0, 0, 0, -303, 0, 0, 0, 0, -574, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -633, -27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -225, 0, 0, 0,
-				0, 0, -227, -232, -238, 0, -240, -242, 0, -657, 0, 0, 0, 0, 0, -244, -428, 0, 0, 0, 0, -304, 0, 0, 0, 0,
-				-581, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -28, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -245, 0, -246, -247, -249, -525, -264, -276, -277, 0, -285,
-				-314, 0, -667, 0, 0, 0, 0, 0, -320, -432, 0, 0, 0, 0, -305, 0, 0, 0, 0, -331, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -547, -333, 0, -631, 0, 0, -337, -602, -545, -339, 0, -340, 0, 0, -668, 0, 0, 0, 0, 0, -345,
-				-443, 0, 0, 0, 0, -464, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -420, -353, 0, -354, -578, 0,
-				-64, -355, -363, -374, 0, 0, -601, 0, -375, -626, -533, -376, 0, 0, 0, 0, 0, 0, 0, 0, -555, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -675, 0, 0, 0, 0, 0, 0, 0, -377,
-				0, 0, -410, 0, 0, -378, -460, 0, 0, -461, 0, -198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -380, 0, 0, 0, 0, -463, -381,
-				-162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -620, 0, 0, -164, 0, 0, 0, 0, -608, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-424, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -616, -382,
-				-649, -671, -383, 0, 0, 0, 0, 0, -384, 0, 0, -468, -470, 0, 0, -524, 0, 0, 0, 0, -471, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -385, 0, 0, 0, -388, -393, -395, 0, 0, 0, 0, 0, 0, -396, 0,
-				0, -414, -415, 0, 0, -514, -530, -560, -565, -567, -537, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -431, 0, 0, -439, 0, 0, -454, 0, 0, -577, -607, 0, 0,
-				-548, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -458, 0, 0, -459,
-				-476, -477, -486, -487, 0, 0, -495, 0, 0, -497, 0, 0, -515, -516, 0, 0, -615, -617, -618, -643, -645,
-				-591, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -521,
-				-504, -561, 0, 0, -538, 0, 0, -540, 0, 0, -669, -556, 0, 0, -592, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -562, 0, 0, 0, -564, -570, -584, -585, 0, 0, -586, 0, 0, -596, 0,
-				0, -597, -603, 0, 0, -614, -627, 0, 0, -628, -112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -629, -639, -655, -656, -672, -674, -676, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-307, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -350, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -78, 0, 0, 0, 0, 0, 0, 0, 0, -127,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -54, 0, 0, 0, 0, 0, -1, -217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -123, 0, 0, 0, 0, 0, 0, -444, 0, 0, 0, 0, 0, 0, 0, 0, 0, -14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -440, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -478, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -531, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -79, 0, 0, 0, 0,
-				-474, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -508, 0, 0, 0, 0, 0, -97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -292, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -98, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -500, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -289, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-290, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -309, 0, 0,
-				0, -130, 0, 0, 0, -197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -196, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -291, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -398, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -542, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -589, 0, 0, 0, 0, 0, 0, 0, 0, 0, -50, 0, 0,
-				0, 0, 0, -268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -652,
-				0, 0, 0, 0, 0, 0, -394, 0, 0, 0, 0, 0, -590, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -553, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -129, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -595, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -272, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -89, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -90, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -155, -77, 0, 0, 0, 0, 0, 0, -507, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -511, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -541, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -286, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -287, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -373, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -418, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -278, 0, 0, 0, -131, 0, 0,
-				0, -361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-594, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -92, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -248, -157, 0, 0, 0, 0, 0, 0, -122, -342, 0, 0, 0, 0, 0, 0, -351, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -370, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -338, 0, 0, 0, 0, 0, 0, 0, -144, -557, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -632, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -341, 0, 0, 0, 0, 0, 0, 0, -419, 0, 0, 0, 0, -49, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -423, 0, 0, 0, 0, 0, 0, 0, -437, 0, 0, 0, 0, -211, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -425, 0, 0, 0, 0, 0, 0, 0, -456, 0, 0, 0, 0, -223, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -496, -274, -275, 0, 0, 0, 0, 0, 0, -133, 0, 0, 0, -236, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -498, 0, -306, 0, 0, 0, 0, 0, 0, -136, 0, 0, 0, -267, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -502, -371, 0, 0, 0, 0, 0, 0, -209, -343, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -455, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -606, 0, 0, 0, 0, 0, 0, 0, 0, -279, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -641, 0, 0, 0, 0, 0, -648, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -135, 0, 0, 0, -588, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -512, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -501, -280, 0, 0, 0, 0, 0, -137, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -334, 0, -523, -612, 0, 0, 0, 0, 0, 0,
-				-441, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -559, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -372, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -20, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -154, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -283, 0, 0, -153, 0, 0, 0, -582, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -622, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -310, 0, 0, 0, 0,
-				-663, 0, 0, 0, -346, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -587, 0, 0, 0, 0, 0,
-				-311, 0, 0, 0, 0, 0, -427, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -621, 0, 0, 0, 0, 0, 0, 0, -318, 0,
-				0, 0, 0, 0, 0, 0, -623, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -513, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-624, -429, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -625, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -650, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -653, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -282, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -492, 0, 0, 0, 0, 0, 0, 0, 0, 0, -254, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -230, 0, 0, 0, 0, 0, 0, 0, 0, -163, 0, 0, 0,
-				0, -399, -45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -321, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -324, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -352, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -442, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -449, 0, 0, 0, -660, 0, 0, 0, 0, 0, 0, 0, -450, 0, 0, 0,
-				-664, -517, 0, 0, 0, 0, -563, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -600, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -635, 0, 0, 0, -400, 0, 0, 0, -401, 0, 0, 0, 0, 0, 0, -658, 0, 0, 0, 0, -659, 0, 0, 0, 0, -391, 0,
-				0, 0, -465, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -47, 0, 0, 0, -48, 0, 0, 0, 0, 0, 0, -260, -665, -666, -673, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static short baseCheck[] = BaseCheck.baseCheck;
-
-	@Override
-	public final int baseCheck(int index) {
-		return baseCheck[index];
-	}
-
-	public final static short rhs[] = baseCheck;
-
-	@Override
-	public final int rhs(int index) {
-		return rhs[index];
-	}
-
-	public interface BaseAction0 {
-		public final static char baseAction0[] = { 205, 5, 141, 103, 103, 32, 32, 99, 99, 47, 47, 43, 43, 238, 1, 1, 16,
-				16, 16, 16, 16, 16, 16, 17, 17, 17, 15, 11, 11, 6, 6, 6, 6, 6, 6, 2, 84, 84, 4, 4, 12, 12, 53, 53, 166,
-				166, 167, 81, 81, 49, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 168,
-				168, 168, 143, 143, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 206, 206, 207, 207, 208,
-				171, 171, 172, 172, 169, 169, 173, 170, 170, 21, 21, 22, 22, 23, 23, 23, 24, 24, 24, 24, 25, 25, 25, 26,
-				26, 26, 35, 35, 35, 35, 35, 36, 36, 36, 38, 38, 39, 39, 41, 41, 42, 42, 45, 45, 46, 46, 54, 54, 54, 54,
-				54, 62, 62, 62, 65, 65, 70, 70, 71, 71, 74, 74, 75, 75, 76, 76, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
-				77, 77, 77, 34, 34, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 44, 33, 174, 174, 111, 111, 209,
-				209, 104, 239, 239, 91, 91, 91, 91, 91, 91, 91, 91, 91, 92, 92, 92, 86, 86, 63, 63, 210, 210, 93, 93,
-				93, 124, 124, 211, 211, 94, 94, 94, 94, 212, 212, 95, 95, 95, 95, 95, 96, 96, 100, 100, 100, 100, 100,
-				100, 100, 100, 55, 55, 55, 55, 55, 144, 144, 142, 142, 56, 213, 31, 31, 31, 31, 31, 52, 52, 78, 78, 78,
-				78, 78, 149, 149, 145, 145, 145, 145, 145, 146, 146, 146, 147, 147, 147, 148, 148, 148, 176, 176, 176,
-				79, 79, 79, 79, 79, 80, 80, 80, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 112, 150, 150, 150, 150,
-				150, 150, 119, 119, 119, 177, 178, 178, 120, 120, 214, 180, 180, 179, 179, 151, 151, 125, 89, 89, 152,
-				58, 51, 181, 181, 59, 102, 102, 182, 182, 175, 175, 153, 154, 154, 155, 83, 83, 183, 183, 72, 72, 72,
-				67, 67, 66, 73, 73, 98, 98, 82, 82, 82, 69, 105, 105, 114, 113, 113, 61, 61, 68, 68, 85, 85, 64, 115,
-				115, 115, 106, 106, 106, 107, 107, 108, 108, 108, 109, 109, 126, 126, 126, 128, 128, 127, 127, 240, 240,
-				110, 110, 216, 216, 216, 216, 216, 157, 50, 50, 185, 215, 215, 158, 158, 116, 116, 116, 117, 187, 217,
-				217, 40, 40, 118, 122, 122, 122, 122, 219, 130, 129, 129, 121, 121, 121, 188, 189, 189, 189, 189, 189,
-				189, 189, 189, 189, 189, 189, 221, 221, 218, 218, 220, 220, 132, 133, 133, 133, 133, 134, 222, 135, 131,
-				131, 223, 223, 190, 190, 190, 190, 123, 123, 123, 224, 224, 8, 8, 9, 225, 225, 226, 191, 184, 184, 192,
-				192, 193, 194, 194, 7, 7, 10, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
-				227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
-				227, 227, 227, 227, 227, 227, 87, 90, 90, 195, 195, 160, 160, 161, 161, 161, 161, 161, 161, 3, 162, 162,
-				159, 159, 196, 241, 242, 242, 243, 243, 244, 245, 245, 197, 198, 198, 198, 198, 228, 228, 228, 137, 137,
-				137, 137, 137, 138, 139, 139, 136, 136, 101, 88, 97, 97, 186, 186, 140, 140, 229, 229, 229, 163, 163,
-				156, 156, 230, 230, 27, 27, 27, 37, 37, 28, 28, 231, 231, 199, 199, 199, 200, 200, 232, 232, 201, 201,
-				29, 29, 233, 233, 202, 202, 202, 202, 30, 60, 234, 234, 235, 235, 203, 203, 203, 164, 164, 164, 19, 19,
-				35, 35, 46, 17, 92, 236, 204, 204, 204, 165, 165, 31, 57, 78, 155, 155, 155, 132, 132, 132, 214, 219,
-				130, 69, 83, 177, 152, 13, 13, 61, 101, 101, 101, 18, 205, 205, 1591, 35, 2221, 2213, 6728, 4801, 27,
-				30, 31, 1080, 1122, 26, 28, 2179, 294, 25, 23, 50, 1177, 104, 75, 76, 106, 1216, 1226, 1219, 1239, 648,
-				595, 596, 597, 1701, 35, 3297, 175, 1229, 1305, 531, 1278, 1511, 306, 1414, 1546, 366, 55, 1560, 174,
-				5873, 189, 1418, 4279, 2392, 3356, 3862, 2676, 3778, 4019, 671, 1418, 2150, 3390, 264, 1896, 35, 1077,
-				32, 7411, 3252, 27, 30, 31, 1080, 1122, 372, 28, 2773, 1968, 187, 267, 262, 263, 5261, 260, 376, 3475,
-				187, 187, 1309, 2078, 598, 595, 596, 597, 2159, 366, 747, 2039, 2066, 7335, 4993, 232, 237, 247, 7273,
-				4801, 3216, 236, 244, 245, 246, 248, 647, 307, 842, 210, 775, 3450, 1221, 274, 277, 280, 4683, 1015,
-				1701, 35, 1771, 422, 1212, 352, 2172, 354, 3149, 2676, 3778, 348, 1423, 638, 1983, 238, 240, 242, 3686,
-				2650, 2554, 366, 4043, 4007, 5008, 5581, 6434, 283, 579, 239, 241, 598, 595, 596, 597, 172, 1283, 385,
-				78, 532, 306, 2952, 641, 668, 2165, 379, 1059, 814, 382, 274, 1319, 829, 213, 6070, 3031, 35, 1077, 32,
-				5599, 4778, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106, 1216, 1226,
-				1219, 3070, 6137, 322, 3681, 35, 1077, 32, 5599, 160, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23,
-				50, 1177, 104, 75, 76, 105, 1510, 69, 3055, 3738, 1089, 3779, 308, 267, 35, 312, 3133, 6007, 386, 3071,
-				1701, 1881, 2064, 34, 3141, 3140, 2159, 464, 3143, 3146, 159, 576, 3031, 35, 1077, 32, 5599, 4778, 27,
-				30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106, 1216, 1226, 1219, 3070, 582,
-				322, 4189, 35, 1077, 32, 5599, 160, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104,
-				75, 76, 106, 1216, 2224, 3055, 2650, 1385, 3779, 547, 573, 4687, 577, 3133, 3447, 5727, 3071, 654, 668,
-				2165, 1841, 3141, 3140, 455, 2322, 3143, 3146, 159, 576, 267, 35, 312, 2993, 6074, 749, 3147, 1701, 35,
-				2064, 3296, 3464, 3031, 35, 1077, 32, 5599, 4778, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50,
-				1177, 104, 75, 76, 106, 1216, 1226, 1219, 3070, 603, 3677, 2337, 35, 1077, 32, 6141, 160, 27, 30, 31,
-				1080, 1122, 26, 28, 2115, 364, 545, 2261, 547, 573, 4687, 577, 2347, 35, 1077, 32, 3055, 549, 41, 30,
-				31, 1080, 1122, 844, 3133, 2423, 939, 3071, 3915, 35, 310, 3148, 3141, 3140, 3147, 3444, 3143, 3146,
-				159, 576, 3328, 35, 1077, 32, 5599, 4778, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177,
-				104, 75, 76, 106, 1216, 1226, 1219, 3070, 582, 1034, 4189, 35, 1077, 32, 5599, 160, 27, 30, 31, 1080,
-				1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106, 1216, 2284, 3055, 1701, 35, 328, 547, 573,
-				4687, 577, 3133, 387, 3213, 3071, 416, 42, 3295, 5734, 3141, 3140, 1712, 2681, 3143, 3146, 159, 576,
-				267, 35, 564, 3217, 6580, 5069, 3147, 3397, 35, 1077, 32, 5599, 3814, 27, 30, 31, 1080, 1122, 26, 28,
-				1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106, 1216, 1226, 1219, 1239, 1701, 35, 7515, 7511, 3870, 35,
-				310, 175, 1229, 1305, 264, 1278, 1511, 1739, 1414, 1546, 2159, 702, 1560, 174, 67, 412, 2150, 4798, 548,
-				573, 4687, 577, 3185, 35, 1077, 32, 5599, 2196, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50,
-				1177, 104, 75, 76, 106, 1216, 1226, 1219, 1239, 1701, 35, 2064, 309, 1453, 2746, 3366, 175, 1229, 1305,
-				4019, 1278, 1511, 3085, 1414, 1546, 2159, 644, 1560, 174, 4096, 412, 2436, 35, 1077, 32, 1701, 2065, 40,
-				30, 31, 1080, 1122, 1617, 413, 2165, 376, 1701, 3778, 3539, 35, 1077, 32, 5599, 79, 27, 30, 31, 1080,
-				1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106, 1216, 1226, 1219, 1239, 1701, 35, 315,
-				2991, 494, 1704, 3373, 175, 1229, 1305, 419, 1278, 1511, 389, 1414, 1546, 2159, 3814, 1560, 174, 591,
-				412, 1011, 413, 2165, 3470, 35, 1077, 32, 5599, 3676, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23,
-				50, 1177, 104, 75, 76, 106, 1216, 1226, 1219, 1239, 2642, 35, 2064, 309, 3676, 477, 3444, 175, 1229,
-				1305, 613, 1278, 1511, 420, 1414, 1546, 2150, 2160, 1560, 174, 150, 611, 1344, 35, 1077, 32, 7306, 702,
-				27, 30, 31, 1080, 1122, 57, 28, 454, 614, 413, 2165, 3808, 35, 1077, 32, 5599, 3577, 27, 30, 31, 1080,
-				1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106, 1216, 1226, 1219, 1239, 1701, 3772, 2064,
-				73, 323, 3252, 3464, 175, 1229, 1305, 472, 1278, 1511, 410, 1414, 1546, 3323, 2273, 1560, 174, 3830,
-				189, 3808, 35, 1077, 32, 5599, 481, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104,
-				75, 76, 106, 1216, 1226, 1219, 1239, 747, 3794, 4158, 230, 493, 3977, 388, 175, 1229, 1305, 2307, 1278,
-				1511, 591, 1414, 1546, 3971, 257, 1560, 174, 2360, 406, 3808, 35, 1077, 32, 5599, 357, 27, 30, 31, 1080,
-				1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106, 1216, 1226, 1219, 1239, 267, 35, 487, 72,
-				7445, 1701, 3451, 175, 1229, 1305, 609, 1278, 1511, 3062, 1414, 1546, 616, 2175, 1560, 174, 3456, 406,
-				2642, 35, 2064, 3775, 61, 1474, 35, 1077, 32, 7306, 1406, 27, 30, 31, 1080, 1122, 56, 28, 2423, 3694,
-				615, 415, 3808, 35, 1077, 32, 5599, 829, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177,
-				104, 75, 76, 106, 1216, 1226, 1219, 1239, 3875, 2246, 1357, 1701, 35, 2064, 311, 175, 1229, 1305, 405,
-				1278, 1511, 424, 1414, 1546, 366, 461, 1560, 174, 7369, 406, 3612, 35, 1077, 32, 5599, 4158, 27, 30, 31,
-				1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106, 1216, 1226, 1219, 1239, 3640, 3149,
-				44, 3295, 2150, 5585, 2187, 175, 1229, 1305, 404, 1278, 1511, 1866, 1414, 1546, 3149, 86, 1560, 174,
-				100, 611, 3259, 35, 1077, 32, 5599, 4158, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177,
-				104, 75, 76, 106, 1216, 1226, 1219, 1239, 1701, 35, 2064, 3782, 2150, 2150, 2837, 175, 1229, 1305, 3814,
-				1278, 1511, 1309, 1414, 1546, 361, 368, 1560, 174, 556, 173, 4158, 480, 3871, 3875, 60, 3808, 35, 1077,
-				32, 5599, 402, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106, 1216,
-				1226, 1219, 1239, 1701, 35, 2064, 314, 6594, 1129, 425, 175, 1229, 1305, 461, 1278, 1511, 1866, 1414,
-				1546, 4096, 1941, 1560, 174, 3738, 190, 3808, 35, 1077, 32, 5599, 2261, 27, 30, 31, 1080, 1122, 26, 28,
-				1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106, 1216, 1226, 1219, 1239, 1701, 35, 2064, 563, 51, 359,
-				427, 175, 1229, 1305, 461, 1278, 1511, 3789, 1414, 1546, 2909, 368, 1560, 174, 1413, 186, 610, 3808, 35,
-				1077, 32, 5599, 3789, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106,
-				1216, 1226, 1219, 1239, 426, 2246, 626, 70, 461, 55, 91, 175, 1229, 1305, 848, 1278, 1511, 356, 1414,
-				1546, 1331, 625, 1560, 174, 591, 185, 3808, 35, 1077, 32, 5599, 423, 27, 30, 31, 1080, 1122, 26, 28,
-				1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106, 1216, 1226, 1219, 1239, 3693, 2837, 1461, 940, 1035, 55,
-				3252, 175, 1229, 1305, 926, 1278, 1511, 1866, 1414, 1546, 3017, 1130, 1560, 174, 1973, 184, 3808, 35,
-				1077, 32, 5599, 4224, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106,
-				1216, 1226, 1219, 1239, 1701, 35, 328, 3831, 229, 1222, 3464, 175, 1229, 1305, 481, 1278, 1511, 1866,
-				1414, 1546, 367, 368, 1560, 174, 4801, 183, 3808, 35, 1077, 32, 5599, 1737, 27, 30, 31, 1080, 1122, 26,
-				28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106, 1216, 1226, 1219, 1239, 747, 2246, 1283, 877, 2368,
-				55, 3464, 175, 1229, 1305, 1016, 1278, 1511, 1862, 1414, 1546, 2983, 368, 1560, 174, 585, 182, 3808, 35,
-				1077, 32, 5599, 4801, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106,
-				1216, 1226, 1219, 1239, 747, 2837, 366, 2176, 3252, 3252, 7423, 175, 1229, 1305, 24, 1278, 1511, 1866,
-				1414, 1546, 3171, 4801, 1560, 174, 584, 181, 3808, 35, 1077, 32, 5599, 3629, 27, 30, 31, 1080, 1122, 26,
-				28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106, 1216, 1226, 1219, 1239, 68, 87, 233, 231, 100, 55,
-				4565, 175, 1229, 1305, 7110, 1278, 1511, 1866, 1414, 1546, 363, 368, 1560, 174, 4801, 180, 3808, 35,
-				1077, 32, 5599, 4801, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106,
-				1216, 1226, 1219, 1239, 55, 3451, 1283, 53, 438, 1061, 3464, 175, 1229, 1305, 721, 1278, 1511, 3363,
-				1414, 1546, 3139, 368, 1560, 174, 1863, 179, 3808, 35, 1077, 32, 5599, 4801, 27, 30, 31, 1080, 1122, 26,
-				28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106, 1216, 1226, 1219, 1239, 2356, 1319, 2543, 35, 487,
-				4899, 7445, 175, 1229, 1305, 52, 1278, 1511, 4850, 1414, 1546, 352, 3567, 1560, 174, 4801, 178, 3808,
-				35, 1077, 32, 5599, 4101, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106,
-				1216, 1226, 1219, 1239, 601, 55, 1399, 383, 3252, 55, 6465, 175, 1229, 1305, 731, 1278, 1511, 358, 1414,
-				1546, 3464, 4801, 1560, 174, 4801, 177, 3808, 35, 1077, 32, 5599, 447, 27, 30, 31, 1080, 1122, 26, 28,
-				1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106, 1216, 1226, 1219, 1239, 88, 55, 253, 621, 2353, 3578,
-				725, 175, 1229, 1305, 2675, 1278, 1511, 1283, 1414, 1546, 3912, 4801, 1560, 174, 4801, 176, 3746, 35,
-				1077, 32, 5599, 2828, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106,
-				1216, 1226, 1219, 1239, 3510, 55, 1405, 2679, 2833, 1586, 1179, 1281, 1229, 1305, 813, 1278, 1511, 366,
-				1414, 1546, 462, 7435, 3218, 195, 4189, 35, 1077, 32, 5599, 4801, 27, 30, 31, 1080, 1122, 26, 28, 1071,
-				294, 25, 23, 50, 1177, 104, 75, 76, 106, 1216, 1226, 1219, 1239, 484, 3871, 3875, 4039, 35, 313, 602,
-				3677, 1229, 1305, 2757, 1278, 1511, 3782, 1414, 1546, 366, 7465, 3218, 195, 7440, 1701, 35, 1771, 422,
-				1701, 35, 1771, 422, 360, 1717, 2773, 2556, 3808, 35, 1077, 32, 5599, 2919, 27, 30, 31, 1080, 1122, 26,
-				28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106, 1216, 1226, 1219, 1239, 583, 49, 2067, 35, 430, 486,
-				3252, 175, 1229, 1305, 46, 1278, 1511, 628, 1414, 1546, 3464, 3377, 1560, 174, 2652, 637, 3808, 35,
-				1077, 32, 5599, 1766, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106,
-				1216, 1226, 1219, 1239, 55, 4163, 35, 562, 5802, 1615, 4274, 175, 1229, 1305, 2905, 1278, 1511, 2738,
-				1414, 1546, 3066, 4801, 1560, 174, 7507, 138, 3941, 35, 1077, 32, 5599, 2527, 27, 30, 31, 1080, 1122,
-				26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106, 1216, 1226, 1219, 3070, 67, 642, 4189, 35, 1077,
-				32, 5599, 160, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106, 2310, 345,
-				3055, 599, 595, 596, 597, 262, 3925, 3889, 3133, 1815, 3953, 3071, 1701, 35, 1771, 422, 3141, 3140, 464,
-				4015, 3143, 3146, 159, 171, 3375, 3941, 35, 1077, 32, 5599, 3020, 27, 30, 31, 1080, 1122, 26, 28, 1071,
-				294, 25, 23, 50, 1177, 104, 75, 76, 106, 1216, 1226, 1219, 3070, 465, 2668, 4189, 35, 1077, 32, 5599,
-				160, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106, 2333, 3022, 3055,
-				599, 595, 596, 597, 55, 2060, 55, 3133, 55, 1496, 3071, 1641, 55, 803, 4010, 3141, 3140, 1718, 4801,
-				3143, 3146, 159, 170, 3941, 35, 1077, 32, 5599, 5005, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23,
-				50, 1177, 104, 75, 76, 106, 1216, 1226, 1219, 3070, 66, 1956, 4189, 35, 1077, 32, 5599, 160, 27, 30, 31,
-				1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106, 2359, 5009, 3055, 599, 595, 596, 597,
-				55, 732, 55, 3133, 55, 4544, 3071, 1782, 55, 7064, 1721, 3141, 3140, 1614, 4801, 3143, 3146, 159, 169,
-				3941, 35, 1077, 32, 5599, 2368, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75,
-				76, 106, 1216, 1226, 1219, 3070, 65, 1117, 4189, 35, 1077, 32, 5599, 160, 27, 30, 31, 1080, 1122, 26,
-				28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 84, 929, 583, 3055, 599, 595, 596, 597, 55, 2842, 55,
-				3133, 55, 1690, 3071, 1734, 55, 1915, 2924, 3141, 3140, 2013, 4801, 3143, 3146, 159, 168, 3941, 35,
-				1077, 32, 5599, 4575, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106,
-				1216, 1226, 1219, 3070, 64, 1839, 4189, 1881, 1077, 1916, 5599, 160, 27, 30, 31, 1080, 1122, 26, 28,
-				1071, 294, 25, 23, 50, 1177, 104, 75, 76, 83, 436, 357, 3055, 599, 595, 596, 597, 55, 2354, 55, 3133,
-				55, 6732, 3071, 4903, 55, 1184, 2530, 3141, 3140, 6806, 4585, 3143, 3146, 159, 167, 3941, 35, 1077, 32,
-				5599, 3252, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106, 1216, 1226,
-				1219, 3070, 3642, 1964, 4189, 35, 1077, 32, 5599, 160, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25,
-				23, 50, 1177, 104, 75, 76, 82, 254, 2721, 3055, 599, 595, 596, 597, 55, 2817, 55, 3133, 55, 1344, 3071,
-				981, 5104, 2062, 2961, 3141, 3140, 6335, 3392, 3143, 3146, 159, 166, 3941, 35, 1077, 32, 5599, 3252, 27,
-				30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106, 1216, 1226, 1219, 3070, 618,
-				2443, 4189, 35, 1077, 32, 5599, 160, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104,
-				75, 76, 81, 622, 3505, 3055, 599, 595, 596, 597, 366, 366, 55, 3133, 7522, 7527, 3071, 6878, 55, 4050,
-				3067, 3141, 3140, 7439, 4801, 3143, 3146, 159, 165, 3941, 35, 1077, 32, 5599, 3252, 27, 30, 31, 1080,
-				1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106, 1216, 1226, 1219, 3070, 2831, 2534, 4189,
-				35, 1077, 32, 5599, 160, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 80,
-				336, 2829, 3055, 599, 595, 596, 597, 55, 1024, 739, 3133, 547, 1722, 3071, 2271, 1456, 3114, 74, 3141,
-				3140, 1965, 4801, 3143, 3146, 159, 164, 3941, 35, 1077, 32, 5599, 3252, 27, 30, 31, 1080, 1122, 26, 28,
-				1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106, 1216, 1226, 1219, 3070, 6061, 4574, 4189, 35, 1077, 32,
-				5599, 160, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 79, 333, 3306,
-				3055, 599, 595, 596, 597, 3115, 2918, 4948, 3133, 3085, 3359, 3071, 1701, 35, 1771, 422, 3141, 3140, 96,
-				4801, 3143, 3146, 159, 163, 3941, 35, 1077, 32, 5599, 3252, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294,
-				25, 23, 50, 1177, 104, 75, 76, 106, 1216, 1226, 1219, 3070, 6128, 468, 4189, 35, 1077, 32, 5599, 160,
-				27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 78, 440, 3100, 3055, 3255,
-				3361, 3362, 2150, 2340, 3391, 3459, 3133, 2671, 3573, 3071, 1701, 35, 1771, 422, 3141, 3140, 2186, 4801,
-				3143, 3146, 159, 162, 3941, 35, 1077, 32, 5599, 1638, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23,
-				50, 1177, 104, 75, 76, 106, 1216, 1226, 1219, 3070, 6195, 467, 4189, 35, 1077, 32, 5599, 160, 27, 30,
-				31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 77, 2261, 2995, 3055, 2067, 35, 430,
-				191, 150, 3782, 3508, 3133, 2451, 7465, 3071, 1701, 35, 1771, 422, 3141, 3140, 1290, 4801, 3143, 3146,
-				159, 161, 4003, 35, 1077, 32, 5599, 95, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177,
-				104, 75, 76, 106, 1216, 1226, 1219, 3070, 355, 466, 3877, 35, 1077, 32, 5599, 160, 27, 30, 31, 1080,
-				1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 102, 2434, 3649, 3055, 3776, 2150, 4019, 3025,
-				747, 3568, 4077, 3133, 5801, 2261, 3071, 4112, 4403, 3464, 4139, 3141, 3140, 7154, 319, 3143, 3146, 159,
-				158, 3808, 35, 1077, 32, 5599, 5520, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104,
-				75, 76, 106, 1216, 1226, 1219, 1239, 2527, 3926, 2067, 35, 430, 3063, 2913, 175, 1229, 1305, 3221, 1278,
-				1511, 4341, 1414, 1546, 3509, 4801, 1560, 174, 4801, 220, 3109, 35, 1077, 32, 5599, 671, 27, 30, 31,
-				1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106, 1216, 1226, 1219, 3070, 55, 3678,
-				385, 54, 376, 96, 187, 2159, 394, 320, 377, 1059, 814, 382, 414, 1214, 747, 2039, 463, 375, 3534, 3254,
-				2155, 35, 1077, 32, 6141, 3299, 27, 30, 31, 1080, 1122, 59, 28, 2261, 775, 3450, 2155, 35, 1077, 32,
-				6141, 3252, 27, 30, 31, 1080, 1122, 58, 28, 3887, 141, 4189, 35, 1077, 32, 5599, 1983, 27, 30, 31, 1080,
-				1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106, 1216, 1226, 1219, 1239, 668, 2165, 3929,
-				3252, 1603, 2261, 2261, 3777, 1229, 1305, 224, 1278, 1511, 1972, 1414, 1546, 4801, 4801, 3218, 195,
-				4189, 35, 1077, 32, 5599, 4801, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75,
-				76, 106, 1216, 1226, 1219, 1239, 3222, 600, 620, 332, 3778, 3910, 3182, 330, 1229, 1305, 619, 1278,
-				1511, 3674, 1414, 1546, 1399, 2282, 3218, 195, 4584, 4620, 4801, 4801, 4801, 4189, 35, 1077, 32, 5599,
-				640, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106, 1216, 1226, 1219,
-				1239, 3007, 605, 3589, 411, 2987, 329, 337, 3908, 1229, 1305, 3174, 1278, 1511, 3604, 1414, 1546, 4801,
-				4801, 3218, 195, 4189, 35, 1077, 32, 5599, 3448, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50,
-				1177, 104, 75, 76, 106, 1216, 1226, 1219, 1239, 3593, 99, 6329, 3780, 3666, 3679, 2548, 3535, 1229,
-				1305, 4032, 1278, 1511, 2645, 1414, 1546, 4094, 3712, 3218, 195, 4801, 4801, 4801, 4801, 4801, 4189, 35,
-				1077, 32, 5599, 457, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106,
-				1216, 1226, 1219, 1239, 631, 1969, 2018, 485, 632, 4156, 3464, 3464, 1229, 1305, 4220, 1278, 1511, 559,
-				1414, 1546, 5103, 1355, 3218, 195, 4499, 35, 1077, 32, 5599, 327, 27, 30, 31, 1080, 1122, 26, 28, 1071,
-				294, 25, 23, 50, 1177, 104, 75, 76, 106, 1216, 1226, 1219, 1239, 3970, 589, 747, 747, 4218, 3059, 3793,
-				4226, 1229, 1305, 1502, 1278, 1511, 2983, 1414, 1546, 4287, 2352, 3218, 195, 936, 3735, 409, 409, 3460,
-				4189, 35, 1077, 32, 5599, 456, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76,
-				106, 1216, 1226, 1219, 1239, 3914, 4225, 4201, 4263, 4491, 3295, 4325, 8653, 1229, 1305, 8653, 1278,
-				1511, 8653, 1414, 2899, 8653, 8653, 8653, 8653, 4437, 35, 1077, 32, 5599, 459, 27, 30, 31, 1080, 1122,
-				26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106, 1216, 1226, 1219, 3070, 8653, 8653, 1994, 35,
-				1077, 32, 7411, 5935, 27, 30, 31, 1080, 1122, 372, 28, 8653, 3104, 8653, 8653, 8653, 8653, 6743, 8653,
-				8653, 8653, 8653, 8653, 3055, 55, 598, 595, 596, 597, 1418, 8653, 3133, 8653, 1351, 3071, 6475, 8653,
-				8653, 8653, 3141, 3140, 407, 2985, 3639, 384, 4650, 35, 1771, 422, 6364, 8653, 2955, 2067, 35, 3308,
-				7323, 1418, 187, 269, 294, 648, 595, 596, 597, 352, 2172, 354, 3149, 1716, 1728, 347, 1423, 648, 595,
-				596, 597, 1701, 35, 1771, 422, 365, 798, 271, 294, 187, 306, 4527, 8653, 8653, 8653, 8653, 4019, 49,
-				8653, 264, 669, 648, 595, 596, 597, 8653, 1732, 8653, 4105, 8653, 1206, 264, 8653, 8653, 8653, 385, 276,
-				262, 263, 8653, 8653, 306, 376, 377, 1059, 814, 382, 8653, 267, 262, 263, 8653, 2228, 8653, 8653, 264,
-				1416, 35, 1077, 32, 7411, 8653, 27, 30, 31, 1080, 1122, 372, 28, 8653, 8653, 8653, 272, 262, 263, 1158,
-				339, 343, 2371, 8653, 8653, 8653, 307, 598, 595, 596, 597, 8653, 274, 277, 280, 4683, 1015, 2561, 2436,
-				35, 1077, 32, 2261, 8653, 3163, 30, 31, 1080, 1122, 3735, 7008, 55, 8653, 8653, 8653, 8653, 1418, 373,
-				8653, 4043, 4007, 5008, 5581, 6434, 283, 8653, 352, 2172, 354, 3149, 8653, 8653, 350, 1423, 8653, 8653,
-				8653, 8653, 8653, 641, 8653, 8653, 366, 8653, 2274, 4189, 35, 1077, 32, 5599, 6070, 27, 30, 31, 1080,
-				1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106, 1216, 1226, 1219, 1239, 8653, 8653, 8653,
-				8653, 8653, 8653, 6137, 8653, 1229, 1305, 8653, 1278, 1511, 788, 2820, 4375, 35, 1077, 32, 5599, 8653,
-				27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106, 1216, 1226, 1219, 3070,
-				8653, 8653, 1769, 35, 3837, 32, 7411, 5935, 27, 30, 31, 1080, 1122, 372, 28, 2436, 35, 1077, 32, 8653,
-				8653, 3241, 30, 31, 1080, 1122, 476, 3055, 490, 598, 595, 596, 597, 8653, 8653, 3133, 8653, 8653, 3071,
-				4877, 8653, 8653, 8653, 3141, 3630, 4189, 35, 1077, 32, 5599, 1307, 27, 30, 31, 1080, 1122, 26, 28,
-				1071, 294, 25, 23, 50, 1177, 104, 75, 76, 108, 352, 2172, 354, 3149, 8653, 8653, 347, 1423, 8653, 598,
-				595, 596, 597, 8653, 8653, 8653, 365, 776, 8653, 2874, 8653, 8653, 8653, 8653, 8653, 8653, 8653, 8653,
-				55, 8653, 8653, 8653, 8653, 1418, 4189, 35, 1077, 32, 5599, 4105, 27, 30, 31, 1080, 1122, 26, 28, 1071,
-				294, 25, 23, 50, 1177, 104, 75, 76, 106, 1216, 1226, 1219, 1239, 3696, 8653, 8653, 8653, 8653, 5340,
-				453, 3834, 1229, 1305, 8653, 1278, 2750, 4375, 35, 1077, 32, 5599, 8653, 27, 30, 31, 1080, 1122, 26, 28,
-				1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106, 1216, 1226, 1219, 3070, 4189, 35, 1077, 32, 5599, 8653,
-				27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106, 1216, 1226, 1219, 2434,
-				3055, 8653, 8653, 8653, 8653, 8653, 3460, 8653, 3133, 8653, 8653, 3071, 8653, 8653, 8653, 8653, 3561,
-				8653, 8653, 8653, 8653, 4189, 35, 1077, 32, 5599, 2851, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25,
-				23, 50, 1177, 104, 75, 76, 106, 1216, 1226, 1219, 1239, 8653, 8653, 8653, 8653, 8653, 8653, 8653, 8653,
-				1229, 1305, 8653, 2759, 4375, 35, 1077, 32, 5599, 8653, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25,
-				23, 50, 1177, 104, 75, 76, 106, 1216, 1226, 1219, 3070, 8653, 8653, 3836, 35, 1077, 32, 7380, 5935, 27,
-				30, 31, 1080, 1122, 372, 28, 8653, 8653, 8653, 8653, 8653, 8653, 8653, 8653, 8653, 8653, 8653, 8653,
-				3055, 8653, 598, 595, 596, 597, 8653, 8653, 3133, 8653, 8653, 3567, 6559, 8653, 4189, 35, 1077, 32,
-				5599, 8653, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106, 1216, 1226,
-				1219, 1239, 352, 2172, 354, 8653, 8653, 8653, 347, 1423, 1229, 2672, 8653, 8653, 4375, 35, 1077, 32,
-				5599, 798, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106, 1216, 1226,
-				1219, 3070, 4375, 35, 1077, 32, 5599, 8653, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177,
-				104, 75, 76, 106, 1216, 1226, 1219, 3070, 3055, 8653, 8653, 832, 8653, 8653, 8653, 2572, 3507, 8653,
-				8653, 2195, 8653, 8653, 8653, 8653, 5801, 8653, 8653, 8653, 8653, 339, 343, 2371, 8653, 8653, 8653,
-				3513, 8653, 8653, 598, 595, 596, 597, 598, 595, 596, 597, 8653, 8653, 2561, 8653, 8653, 2929, 2640,
-				4189, 35, 1077, 32, 5599, 3735, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75,
-				76, 106, 1216, 1226, 1219, 1239, 3673, 8653, 8653, 4189, 35, 1077, 32, 5599, 2695, 27, 30, 31, 1080,
-				1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106, 1216, 1226, 1219, 1239, 4756, 35, 551,
-				8653, 8653, 8653, 8653, 385, 2743, 8653, 8653, 8653, 8653, 269, 294, 377, 1059, 814, 382, 8653, 8653,
-				8653, 8653, 8653, 575, 8653, 8653, 648, 595, 596, 597, 4375, 35, 1077, 32, 5599, 8653, 27, 30, 31, 1080,
-				1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106, 1216, 1226, 1219, 3070, 8653, 8653, 8653,
-				264, 8653, 8653, 8653, 2913, 35, 1077, 32, 7380, 4261, 27, 30, 31, 1080, 1122, 372, 28, 267, 262, 263,
-				8653, 765, 8653, 8653, 3547, 1546, 35, 1077, 32, 7380, 5935, 27, 30, 31, 1080, 1122, 372, 28, 2943, 35,
-				3837, 32, 7380, 5935, 27, 30, 31, 1080, 1122, 372, 28, 437, 598, 595, 596, 597, 8653, 274, 277, 280,
-				4683, 1015, 6559, 4026, 3313, 3884, 595, 596, 597, 4019, 349, 3445, 354, 8653, 4583, 5045, 8653, 8653,
-				8653, 1418, 742, 35, 1771, 422, 5577, 6271, 6428, 6983, 6725, 8653, 8653, 352, 2172, 354, 8653, 5520,
-				8653, 347, 1423, 8653, 8653, 8653, 8653, 8653, 352, 2172, 354, 191, 798, 3313, 347, 1423, 8653, 8653,
-				4019, 8653, 2243, 35, 328, 8653, 306, 776, 1983, 35, 3837, 32, 7380, 5935, 27, 30, 31, 1080, 1122, 372,
-				28, 560, 561, 565, 8653, 8653, 5520, 8653, 1224, 598, 595, 596, 597, 1418, 8653, 598, 595, 596, 597,
-				2874, 2367, 35, 1077, 32, 7380, 5045, 27, 30, 31, 1080, 1122, 372, 28, 7208, 8653, 1481, 5616, 453,
-				3834, 8653, 539, 187, 8653, 8653, 340, 343, 2371, 599, 595, 596, 597, 2130, 2837, 2357, 352, 2172, 354,
-				8653, 3452, 8653, 347, 1423, 648, 595, 596, 597, 8653, 8653, 8653, 8653, 8653, 776, 2092, 35, 3837, 32,
-				7380, 5935, 27, 30, 31, 1080, 1122, 372, 28, 539, 352, 2172, 354, 71, 536, 538, 659, 1423, 8653, 8653,
-				264, 8653, 55, 3884, 595, 596, 597, 1418, 8653, 8653, 8653, 4309, 8653, 5045, 8653, 8653, 8653, 279,
-				262, 263, 8653, 8653, 8653, 8653, 5834, 453, 3834, 8653, 8653, 3895, 8653, 8653, 8653, 8653, 8653, 187,
-				8653, 8653, 2478, 537, 538, 8653, 352, 2172, 354, 8653, 2528, 8653, 347, 1423, 8653, 8653, 8653, 2828,
-				4189, 35, 1077, 32, 5599, 776, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76,
-				106, 1216, 1226, 1219, 2482, 4189, 35, 1077, 32, 5599, 8653, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294,
-				25, 23, 50, 1177, 104, 75, 76, 106, 1216, 1226, 1219, 2524, 5616, 453, 3834, 4189, 35, 1077, 32, 5599,
-				8653, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106, 1216, 1226, 1219,
-				2594, 4189, 35, 1077, 32, 5599, 8653, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104,
-				75, 76, 106, 1216, 1226, 1219, 2597, 4189, 35, 1077, 32, 5599, 8653, 27, 30, 31, 1080, 1122, 26, 28,
-				1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106, 1216, 1226, 1219, 2606, 286, 4583, 8653, 8653, 8653, 671,
-				1418, 8653, 1416, 35, 1077, 32, 7411, 8653, 27, 30, 31, 1080, 1122, 372, 28, 55, 8653, 8653, 8653, 8653,
-				1418, 8653, 8653, 8653, 8653, 260, 8653, 187, 191, 598, 595, 596, 597, 8653, 8653, 2059, 8653, 747, 738,
-				4993, 8653, 211, 8653, 8653, 235, 247, 7273, 8653, 187, 234, 244, 245, 246, 248, 647, 8653, 8653, 200,
-				8653, 2685, 8653, 1, 598, 595, 596, 597, 671, 8653, 352, 2172, 354, 3149, 3030, 2172, 348, 1423, 8653,
-				8653, 8653, 8653, 199, 8653, 8653, 8653, 366, 214, 198, 201, 202, 203, 204, 205, 260, 8653, 187, 8653,
-				8653, 8653, 8653, 8653, 598, 595, 596, 597, 747, 738, 2186, 8653, 211, 8653, 3108, 235, 247, 7273, 8653,
-				8653, 234, 244, 245, 246, 248, 647, 8653, 8653, 200, 4065, 35, 1077, 32, 5599, 8653, 27, 30, 31, 1080,
-				1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 634, 75, 76, 199, 8653, 8653, 8653, 8653, 215, 198, 201, 202,
-				203, 204, 205, 8653, 212, 4189, 35, 1077, 32, 5599, 8653, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25,
-				23, 50, 1177, 104, 75, 76, 106, 1216, 1226, 1219, 3453, 8653, 8653, 8653, 8653, 8653, 8653, 8653, 8653,
-				8653, 8653, 8653, 4189, 35, 1077, 32, 5599, 5328, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50,
-				1177, 104, 75, 76, 106, 1216, 1226, 1219, 3458, 4189, 35, 1077, 32, 5599, 8653, 27, 30, 31, 1080, 1122,
-				26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106, 1216, 1226, 1219, 3461, 2180, 35, 1077, 32, 7380,
-				5868, 27, 30, 31, 1080, 1122, 372, 28, 4189, 35, 1077, 32, 5599, 8653, 27, 30, 31, 1080, 1122, 26, 28,
-				1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106, 1216, 1226, 1219, 3566, 8653, 8653, 8653, 8653, 3498, 35,
-				1077, 32, 7380, 7263, 27, 30, 31, 1080, 1122, 372, 28, 1854, 8653, 8653, 8653, 2051, 8653, 8653, 8653,
-				1705, 352, 2172, 354, 5940, 271, 294, 347, 1423, 8653, 8653, 384, 8653, 8653, 1583, 35, 1771, 422, 3690,
-				648, 595, 596, 597, 648, 595, 596, 597, 598, 595, 596, 597, 2630, 8653, 385, 8653, 8653, 8653, 2561,
-				8653, 8653, 8653, 377, 1059, 814, 382, 352, 2172, 354, 8653, 8653, 3689, 347, 1423, 264, 49, 8653, 8653,
-				264, 598, 595, 596, 597, 3387, 1732, 8653, 8653, 8653, 746, 3186, 3149, 272, 262, 263, 8653, 282, 262,
-				263, 385, 8653, 8653, 8653, 8653, 6002, 8653, 8653, 377, 1059, 814, 382, 4189, 35, 1077, 32, 5599, 2228,
-				27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106, 1216, 1226, 2617, 4189,
-				35, 1077, 32, 5599, 8653, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 106,
-				1216, 1226, 2665, 381, 2191, 8653, 8653, 8653, 671, 4019, 8653, 1705, 55, 399, 8653, 5940, 8653, 671,
-				8653, 1522, 35, 1077, 32, 7380, 5935, 27, 30, 31, 1080, 1122, 372, 28, 4583, 92, 260, 376, 187, 1418,
-				598, 595, 596, 597, 8653, 376, 1830, 187, 747, 738, 2561, 8653, 211, 8653, 8653, 235, 247, 7273, 219,
-				8653, 234, 244, 245, 246, 248, 647, 8653, 191, 200, 8653, 1663, 8653, 476, 598, 595, 596, 597, 671,
-				6951, 8653, 1705, 4913, 3149, 2718, 5940, 8653, 1418, 352, 2172, 354, 8653, 199, 8653, 347, 1423, 365,
-				3386, 198, 201, 202, 203, 204, 205, 260, 3387, 187, 8653, 598, 595, 596, 597, 8653, 8653, 2726, 187,
-				747, 738, 2561, 6203, 211, 8653, 8653, 235, 247, 7273, 193, 8653, 234, 244, 245, 246, 248, 647, 8653,
-				8653, 200, 8653, 8653, 3153, 571, 598, 595, 596, 597, 671, 3514, 8653, 1705, 8653, 3149, 3108, 5940,
-				1701, 35, 1771, 422, 8653, 8653, 199, 8653, 8653, 8653, 365, 209, 198, 201, 202, 203, 204, 205, 260,
-				8653, 187, 8653, 598, 595, 596, 597, 8653, 8653, 8653, 8653, 747, 738, 2561, 7297, 211, 8653, 8653, 235,
-				247, 7273, 49, 8653, 234, 244, 245, 246, 248, 647, 8653, 1732, 200, 8653, 8653, 1265, 666, 8653, 8653,
-				8653, 8653, 671, 8653, 2262, 1705, 8653, 3149, 8653, 5940, 1701, 35, 1771, 422, 1630, 8653, 199, 8653,
-				8653, 8653, 365, 207, 198, 201, 202, 203, 204, 205, 260, 8653, 187, 8653, 598, 595, 596, 597, 8653,
-				8653, 8653, 8653, 747, 738, 2561, 733, 211, 8653, 8653, 235, 247, 7273, 49, 1461, 234, 244, 245, 246,
-				248, 647, 8653, 1732, 200, 8653, 8653, 4679, 761, 8653, 8653, 8653, 8653, 671, 8653, 8653, 3709, 8653,
-				3149, 8653, 5940, 1701, 35, 1771, 422, 3742, 8653, 199, 8653, 8653, 8653, 365, 639, 198, 201, 202, 203,
-				204, 205, 260, 8653, 187, 8653, 598, 595, 596, 597, 8653, 8653, 8653, 8653, 747, 738, 2561, 5269, 211,
-				8653, 8653, 235, 247, 7273, 49, 8653, 234, 244, 245, 246, 248, 647, 8653, 1732, 200, 8653, 8653, 1210,
-				856, 55, 55, 8653, 8653, 671, 1418, 1418, 8653, 2435, 3149, 8653, 8653, 1701, 35, 1771, 422, 8653, 8653,
-				199, 8653, 8653, 8653, 6002, 208, 198, 201, 202, 203, 204, 205, 260, 8653, 187, 187, 187, 648, 595, 596,
-				597, 8653, 8653, 8653, 747, 738, 2763, 2841, 211, 8653, 8653, 235, 247, 7273, 49, 8653, 234, 244, 245,
-				246, 248, 647, 8653, 1732, 200, 8653, 8653, 1082, 951, 8653, 55, 264, 8653, 671, 8653, 1418, 8653, 2531,
-				8653, 8653, 8653, 1701, 35, 1771, 422, 8653, 8653, 199, 285, 262, 263, 8653, 218, 198, 201, 202, 203,
-				204, 205, 260, 8653, 187, 8653, 187, 648, 595, 596, 597, 8653, 8653, 8653, 747, 738, 94, 3633, 211,
-				8653, 8653, 235, 247, 7273, 49, 8653, 234, 244, 245, 246, 248, 647, 8653, 1732, 200, 8653, 8653, 746,
-				1046, 4583, 8653, 264, 8653, 671, 1418, 8653, 3425, 55, 8653, 8653, 5940, 8653, 671, 8653, 8653, 8653,
-				8653, 199, 643, 262, 263, 8653, 3841, 198, 201, 202, 203, 204, 205, 260, 8653, 187, 191, 598, 595, 596,
-				597, 8653, 376, 55, 187, 747, 738, 2561, 1418, 211, 8653, 8653, 235, 247, 7273, 219, 8653, 234, 244,
-				245, 246, 248, 647, 8653, 8653, 200, 8653, 8653, 8653, 1141, 8653, 8653, 8653, 8653, 671, 6951, 187,
-				8653, 2627, 3149, 8653, 8653, 8653, 8653, 8653, 8653, 8653, 3294, 199, 8653, 8653, 8653, 366, 223, 198,
-				201, 202, 203, 204, 205, 260, 8653, 187, 8653, 8653, 648, 595, 596, 597, 8653, 8653, 8653, 747, 738,
-				3517, 8653, 211, 8653, 8653, 235, 247, 7273, 8653, 8653, 234, 244, 245, 246, 248, 647, 8653, 8653, 200,
-				8653, 8653, 3231, 1236, 8653, 8653, 264, 8653, 671, 2860, 35, 1077, 32, 7380, 5868, 27, 30, 31, 1080,
-				1122, 372, 28, 199, 276, 262, 263, 8653, 217, 198, 201, 202, 203, 204, 205, 260, 8653, 187, 8653, 1953,
-				35, 1771, 422, 2243, 3892, 328, 8653, 747, 738, 8653, 8653, 211, 8653, 8653, 235, 247, 7273, 2764, 8653,
-				234, 244, 245, 246, 248, 647, 8653, 8653, 200, 8653, 8653, 598, 595, 596, 597, 8653, 8653, 352, 2172,
-				354, 49, 2874, 8653, 347, 1423, 598, 595, 596, 597, 1732, 8653, 199, 8653, 3211, 586, 2561, 226, 198,
-				201, 202, 203, 204, 205, 55, 2723, 8653, 8653, 8653, 1418, 385, 4703, 35, 1771, 422, 6364, 8653, 8653,
-				377, 1059, 814, 382, 794, 8653, 270, 294, 8653, 587, 3673, 8653, 8653, 8653, 648, 595, 596, 597, 8653,
-				187, 648, 595, 596, 597, 4800, 1283, 4583, 4583, 8653, 4019, 3695, 1418, 1418, 306, 3137, 35, 1077, 32,
-				7380, 5935, 27, 30, 31, 1080, 1122, 372, 28, 8653, 264, 8653, 8653, 8653, 4309, 8653, 264, 5520, 8653,
-				8653, 8653, 191, 191, 599, 595, 596, 597, 279, 262, 263, 8653, 8653, 8653, 268, 262, 263, 4189, 35,
-				1077, 32, 5599, 2478, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76, 107,
-				8653, 8653, 8653, 352, 2172, 354, 8653, 8653, 307, 347, 1423, 8653, 8653, 8653, 275, 278, 281, 4683,
-				1015, 8653, 5302, 2476, 35, 1077, 32, 7380, 5935, 27, 30, 31, 1080, 1122, 372, 28, 8653, 8653, 8653,
-				393, 8653, 8653, 3741, 3795, 1701, 35, 1771, 422, 284, 8653, 599, 595, 596, 597, 8653, 3075, 3319, 3367,
-				4189, 35, 1077, 32, 5599, 642, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50, 1177, 104, 75, 76,
-				103, 8653, 8653, 8653, 49, 8653, 8653, 8653, 8653, 352, 2172, 354, 8653, 1732, 8653, 347, 1423, 2512,
-				8653, 8653, 8653, 4065, 35, 1077, 32, 5599, 5302, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23, 50,
-				1177, 633, 75, 76, 4127, 35, 1077, 32, 5599, 8653, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23,
-				50, 1177, 85, 75, 76, 4251, 35, 1077, 32, 5599, 8653, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25, 23,
-				50, 1177, 644, 75, 76, 4313, 35, 1077, 32, 5599, 8653, 27, 30, 31, 1080, 1122, 26, 28, 1071, 294, 25,
-				23, 50, 1177, 3219, 75, 76, 4809, 35, 551, 3176, 35, 1771, 422, 1912, 8653, 8653, 8653, 8653, 4019, 270,
-				294, 8653, 8653, 8653, 5051, 8653, 8653, 8653, 5940, 4019, 8653, 8653, 8653, 648, 595, 596, 597, 8653,
-				8653, 8653, 8653, 8653, 8653, 8653, 260, 3356, 8653, 8653, 8653, 49, 671, 598, 595, 596, 597, 5520,
-				8653, 8653, 1732, 8653, 8653, 2561, 1930, 237, 247, 7273, 8653, 264, 236, 244, 245, 246, 248, 647, 8653,
-				8653, 376, 8653, 187, 8653, 8653, 8653, 8653, 8653, 268, 262, 263, 2200, 747, 2039, 794, 8653, 4019,
-				3149, 8653, 8653, 8653, 8653, 8653, 8653, 238, 240, 242, 3686, 8653, 8653, 365, 8653, 775, 3450, 8653,
-				8653, 8653, 249, 239, 241, 8653, 8653, 260, 8653, 8653, 8653, 8653, 8653, 275, 278, 281, 4683, 1015,
-				7297, 2137, 8653, 8653, 8653, 393, 8653, 3356, 237, 247, 7273, 8653, 671, 236, 244, 245, 246, 248, 647,
-				8653, 8653, 2326, 3319, 3367, 8653, 927, 3581, 8653, 7000, 8653, 2296, 8653, 8653, 8653, 55, 4019, 8653,
-				8653, 376, 671, 187, 8653, 8653, 8653, 8653, 238, 240, 242, 3686, 8653, 747, 2039, 598, 595, 596, 597,
-				8653, 8653, 249, 239, 241, 260, 2561, 8653, 8653, 376, 8653, 187, 8653, 8653, 775, 3450, 8653, 560, 561,
-				566, 8653, 8653, 219, 8653, 237, 247, 7273, 8653, 8653, 236, 244, 245, 246, 248, 647, 2008, 2323, 8653,
-				362, 8653, 4019, 927, 6951, 8653, 3631, 8653, 7000, 2145, 35, 1077, 32, 7380, 5935, 27, 30, 31, 1080,
-				1122, 372, 28, 8653, 238, 240, 242, 3686, 8653, 260, 8653, 598, 595, 596, 597, 8653, 8653, 249, 239,
-				241, 8653, 2561, 2819, 8653, 8653, 8653, 8653, 8653, 237, 247, 7273, 8653, 8653, 236, 244, 245, 246,
-				248, 647, 2104, 8653, 8653, 8653, 8653, 4019, 3309, 8653, 1022, 8653, 648, 595, 596, 597, 2511, 8653,
-				2488, 352, 2172, 354, 3632, 4019, 7000, 347, 1423, 8653, 238, 240, 242, 3686, 8653, 260, 8653, 8653,
-				3785, 598, 595, 596, 597, 578, 239, 241, 8653, 8653, 264, 2796, 8653, 260, 8653, 8653, 237, 247, 7273,
-				8653, 8653, 236, 244, 245, 246, 248, 647, 282, 262, 263, 4800, 8653, 237, 247, 7273, 4019, 8653, 236,
-				244, 245, 246, 248, 647, 2584, 4566, 8653, 8653, 8653, 4019, 671, 8653, 8653, 8653, 238, 240, 242, 3686,
-				8653, 8653, 2680, 8653, 5520, 8653, 8653, 4019, 8653, 250, 239, 241, 238, 240, 242, 3686, 8653, 260,
-				376, 1660, 187, 8653, 8653, 7532, 4019, 667, 239, 241, 8653, 8653, 8653, 219, 8653, 260, 8653, 8653,
-				237, 247, 7273, 8653, 8653, 236, 244, 245, 246, 248, 647, 2671, 8653, 8653, 260, 6951, 237, 247, 7273,
-				8653, 8653, 236, 244, 245, 246, 248, 647, 2776, 8653, 8653, 8653, 8653, 4019, 2116, 441, 4843, 8653,
-				238, 240, 242, 3686, 8653, 8653, 2872, 8653, 8653, 8653, 393, 4019, 8653, 666, 239, 241, 238, 240, 242,
-				3686, 8653, 260, 8653, 8653, 8653, 8653, 3697, 3319, 3367, 665, 239, 241, 8653, 442, 443, 444, 3686,
-				260, 221, 8653, 237, 247, 7273, 8653, 5060, 236, 244, 245, 246, 248, 647, 8653, 8653, 8653, 3862, 8653,
-				237, 247, 7273, 671, 8653, 236, 244, 245, 246, 248, 647, 8653, 8653, 3678, 8653, 648, 595, 596, 597,
-				8653, 8653, 238, 240, 242, 3686, 8653, 8653, 8653, 8653, 2749, 8653, 187, 8653, 8653, 338, 239, 241,
-				238, 240, 242, 3686, 8653, 738, 5051, 8653, 211, 8653, 5940, 4019, 264, 533, 239, 241, 1392, 35, 1077,
-				32, 7380, 3972, 27, 30, 31, 1080, 1122, 372, 28, 567, 262, 263, 2468, 598, 595, 596, 597, 5520, 8653,
-				8653, 3287, 445, 447, 2561, 5940, 8653, 8653, 227, 8653, 2052, 35, 1771, 422, 8653, 1786, 55, 8653,
-				8653, 7532, 4019, 4019, 8653, 8653, 8653, 8653, 8653, 1713, 598, 595, 596, 597, 1793, 8653, 8653, 7311,
-				3149, 8653, 2561, 2052, 35, 1771, 422, 349, 3445, 354, 260, 376, 8653, 365, 49, 8653, 8653, 8653, 598,
-				595, 596, 597, 8653, 1732, 8653, 8653, 8653, 2077, 2796, 2116, 441, 4843, 8653, 8653, 3149, 8653, 733,
-				1953, 35, 1771, 422, 393, 8653, 49, 3450, 8653, 8653, 366, 1953, 35, 1771, 422, 1732, 8653, 8653, 4919,
-				47, 2326, 3319, 3367, 8653, 8653, 8653, 385, 8653, 1917, 442, 443, 444, 3686, 8653, 379, 1059, 814, 382,
-				8653, 8653, 49, 8653, 1953, 35, 1771, 422, 8653, 2405, 8653, 1732, 8653, 49, 8653, 47, 2739, 35, 1771,
-				422, 5107, 8653, 1732, 7078, 228, 4019, 2235, 3678, 2052, 35, 1771, 422, 4563, 2834, 35, 1771, 422,
-				4019, 1953, 35, 1771, 422, 8653, 1327, 49, 8653, 2673, 8653, 8653, 2357, 8653, 376, 590, 1732, 4050,
-				8653, 49, 6382, 1953, 35, 1771, 422, 8653, 5520, 8653, 1732, 8653, 8653, 49, 47, 8653, 8653, 8653, 49,
-				8653, 8653, 8653, 1732, 49, 8653, 8653, 47, 1732, 8653, 3450, 4050, 47, 1732, 8653, 8653, 8653, 47, 445,
-				448, 8653, 8653, 8653, 1149, 49, 8653, 1953, 35, 1771, 422, 1022, 593, 8653, 1732, 2575, 4143, 8653, 47,
-				8653, 8653, 1963, 1953, 35, 1771, 422, 2427, 1953, 35, 1771, 422, 8653, 1701, 35, 1771, 422, 927, 8653,
-				598, 595, 596, 597, 598, 595, 596, 597, 2599, 49, 2796, 539, 8653, 8653, 2796, 55, 8653, 8653, 1732,
-				8653, 4019, 8653, 47, 8653, 49, 598, 595, 596, 597, 49, 8653, 8653, 8653, 1732, 49, 2561, 8653, 47,
-				1732, 8653, 55, 8653, 47, 1732, 55, 4019, 376, 2433, 8653, 4019, 3224, 55, 55, 55, 55, 8653, 4019, 4019,
-				4019, 4019, 8653, 536, 538, 8653, 8653, 3302, 8653, 2835, 8653, 8653, 3380, 376, 8653, 8653, 8653, 376,
-				8653, 8653, 8653, 3450, 8653, 8653, 376, 376, 376, 376, 8653, 8653, 8653, 8653, 8653, 8653, 8653, 8653,
-				8653, 8653, 3927, 8653, 8653, 8653, 1918, 8653, 8653, 2827, 3450, 8653, 8653, 2829, 3450, 8653, 8653,
-				8653, 8653, 8653, 8653, 3450, 3450, 3450, 3450, 3840, 8653, 8653, 8653, 8653, 8653, 1931, 8653, 8653,
-				8653, 1934, 8653, 8653, 8653, 8653, 8653, 8653, 2380, 543, 541, 594, 8653, 0, 39, 8668, 0, 39, 8667, 0,
-				1870, 29, 0, 474, 1919, 0, 488, 2017, 0, 38, 914, 0, 38, 8668, 0, 38, 8667, 0, 8716, 74, 0, 8715, 74, 0,
-				1401, 74, 0, 1570, 74, 0, 5262, 74, 0, 3998, 74, 0, 5207, 124, 0, 1, 478, 0, 492, 1228, 0, 491, 1395, 0,
-				8661, 1, 0, 4156, 89, 0, 1870, 421, 0, 35, 33, 0, 32, 34, 0, 39, 914, 0, 1, 714, 0, 1, 8958, 0, 1, 8957,
-				0, 1, 8956, 0, 1, 8955, 0, 1, 8954, 0, 1, 8953, 0, 1, 8952, 0, 1, 8951, 0, 1, 8950, 0, 1, 8949, 0, 1,
-				8948, 0, 1, 9316, 0, 1, 9315, 0, 39, 1, 8668, 0, 39, 1, 8667, 0, 8919, 255, 0, 8918, 255, 0, 1968, 255,
-				0, 1990, 255, 0, 2025, 255, 0, 9317, 255, 0, 9024, 255, 0, 9023, 255, 0, 8946, 255, 0, 8945, 255, 0,
-				8944, 255, 0, 8943, 255, 0, 8942, 255, 0, 8941, 255, 0, 8940, 255, 0, 8939, 255, 0, 8919, 256, 0, 8918,
-				256, 0, 1968, 256, 0, 1990, 256, 0, 2025, 256, 0, 9317, 256, 0, 9024, 256, 0, 9023, 256, 0, 8946, 256,
-				0, 8945, 256, 0, 8944, 256, 0, 8943, 256, 0, 8942, 256, 0, 8941, 256, 0, 8940, 256, 0, 8939, 256, 0,
-				8919, 257, 0, 8918, 257, 0, 1968, 257, 0, 1990, 257, 0, 2025, 257, 0, 9317, 257, 0, 9024, 257, 0, 9023,
-				257, 0, 8946, 257, 0, 8945, 257, 0, 8944, 257, 0, 8943, 257, 0, 8942, 257, 0, 8941, 257, 0, 8940, 257,
-				0, 8939, 257, 0, 2025, 428, 0, 1990, 428, 0, 1968, 428, 0, 316, 428, 0, 8919, 258, 0, 8918, 258, 0,
-				1968, 258, 0, 1990, 258, 0, 2025, 258, 0, 9317, 258, 0, 9024, 258, 0, 9023, 258, 0, 8946, 258, 0, 8945,
-				258, 0, 8944, 258, 0, 8943, 258, 0, 8942, 258, 0, 8941, 258, 0, 8940, 258, 0, 8939, 258, 0, 316, 321, 0,
-				8919, 259, 0, 8918, 259, 0, 1968, 259, 0, 1990, 259, 0, 2025, 259, 0, 9317, 259, 0, 9024, 259, 0, 9023,
-				259, 0, 8946, 259, 0, 8945, 259, 0, 8944, 259, 0, 8943, 259, 0, 8942, 259, 0, 8941, 259, 0, 8940, 259,
-				0, 8939, 259, 0, 8668, 48, 0, 8667, 48, 0, 8919, 646, 0, 8918, 646, 0, 1968, 646, 0, 1990, 646, 0, 2025,
-				646, 0, 9317, 646, 0, 9024, 646, 0, 9023, 646, 0, 8946, 646, 0, 8945, 646, 0, 8944, 646, 0, 8943, 646,
-				0, 8942, 646, 0, 8941, 646, 0, 8940, 646, 0, 8939, 646, 0, 8919, 273, 0, 8918, 273, 0, 1968, 273, 0,
-				1990, 273, 0, 2025, 273, 0, 9317, 273, 0, 9024, 273, 0, 9023, 273, 0, 8946, 273, 0, 8945, 273, 0, 8944,
-				273, 0, 8943, 273, 0, 8942, 273, 0, 8941, 273, 0, 8940, 273, 0, 8939, 273, 0, 8958, 273, 0, 8957, 273,
-				0, 8956, 273, 0, 8955, 273, 0, 8954, 273, 0, 8953, 273, 0, 8952, 273, 0, 8951, 273, 0, 8950, 273, 0,
-				8949, 273, 0, 8948, 273, 0 };
-	}
-
-	public interface BaseAction1 {
-		public final static char baseAction1[] = { 9316, 273, 0, 9315, 273, 0, 39, 8668, 273, 0, 39, 8667, 273, 0, 8691,
-				273, 0, 8665, 417, 0, 8664, 417, 0, 8659, 1, 0, 8658, 1, 0, 4913, 269, 0, 32, 422, 0, 29, 421, 0, 1,
-				261, 3222, 0, 8662, 261, 0, 3230, 261, 0, 1, 261, 755, 0, 1, 261, 0, 43, 8689, 0, 43, 37, 0, 5207, 126,
-				0, 5207, 125, 0, 1, 5392, 0, 1, 6637, 0, 1, 6659, 0, 1, 2797, 0, 1, 2953, 0, 1, 3031, 0, 1, 3109, 0, 1,
-				3187, 0, 1, 3265, 0, 1, 3343, 0, 1066, 1, 0, 1, 4060, 0, 1, 2875, 0, 1, 8675, 0, 1, 8674, 0, 1, 8673, 0,
-				1, 8672, 0, 1, 8671, 0, 1, 8670, 0, 1, 8669, 0, 1, 832, 0, 1, 843, 0, 1, 921, 0, 1, 992, 0, 1, 1009, 0,
-				1, 3519, 0, 39, 1, 0, 2025, 479, 0, 1990, 479, 0, 1968, 479, 0, 8691, 479, 0, 364, 479, 0, 39, 479, 0,
-				2025, 658, 0, 1990, 658, 0, 1968, 658, 0, 2025, 656, 0, 1990, 656, 0, 1968, 656, 0, 660, 656, 0, 660,
-				655, 0, 1, 2025, 0, 1, 1990, 0, 1, 1968, 0, 8691, 1, 0, 47, 37, 0, 634, 644, 0, 3372, 261, 0, 10, 12, 0,
-				1, 5742, 0, 1, 914, 0, 1, 90, 0, 1968, 568, 0, 1990, 568, 0, 2025, 568, 0, 1968, 569, 0, 1990, 569, 0,
-				2025, 569, 0, 1968, 570, 0, 1990, 570, 0, 2025, 570, 0, 1968, 571, 0, 1990, 571, 0, 2025, 571, 0, 1968,
-				572, 0, 1990, 572, 0, 2025, 572, 0, 8668, 273, 0, 8667, 273, 0, 2025, 364, 0, 1990, 364, 0, 1968, 364,
-				0, 535, 3679, 0, 8691, 1, 261, 0, 39, 1, 261, 0, 261, 450, 0, 8668, 37, 0, 8667, 37, 0, 8668, 2, 37, 0,
-				8667, 2, 37, 0, 8668, 36, 0, 8667, 36, 0, 8, 10, 12, 0, 3732, 225, 0, 1, 364, 0, 6236, 98, 0, 8689, 45,
-				0, 37, 45, 0, 8663, 439, 0, 8662, 439, 0, 261, 449, 0, 8665, 645, 417, 0, 8664, 645, 417, 0, 2753, 351,
-				0, 1, 658, 0, 6467, 101, 0, 3646, 97, 0, 2025, 93, 0, 1990, 93, 0, 1968, 93, 0, 8691, 93, 0, 364, 93, 0,
-				39, 93, 0, 35, 72, 0, 9317, 369, 0, 9024, 369, 0, 9023, 369, 0, 5755, 311, 0, 535, 6939, 0, 3888, 417,
-				0, 216, 6262, 0, 261, 252, 0, 1, 2464, 0, 1, 3369, 0, 2025, 653, 0, 1990, 653, 0, 1968, 653, 0, 2025,
-				652, 0, 1990, 652, 0, 1968, 652, 0, 598, 599, 0, 8, 12, 0, 261, 251, 0, 8665, 1, 0, 2025, 653, 654, 0,
-				1990, 653, 654, 0, 1968, 653, 654, 0, 653, 654, 0 };
-	}
-
-	public final static char baseAction[] = new char[BaseAction0.baseAction0.length + BaseAction1.baseAction1.length];
-	{
-		int index = 0;
-		System.arraycopy(BaseAction0.baseAction0, 0, baseAction, index, BaseAction0.baseAction0.length);
-		index += BaseAction0.baseAction0.length;
-		System.arraycopy(BaseAction1.baseAction1, 0, baseAction, index, BaseAction1.baseAction1.length);
-	}
-
-	@Override
-	public final int baseAction(int index) {
-		return baseAction[index];
-	}
-
-	public final static char lhs[] = baseAction;
-
-	@Override
-	public final int lhs(int index) {
-		return lhs[index];
-	}
-
-	public interface TermCheck {
-		public final static char termCheck[] = { 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
-				19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
-				45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 0, 67, 68, 69, 70, 0,
-				72, 0, 74, 75, 10, 0, 0, 79, 3, 81, 82, 10, 11, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 0, 1, 2, 3, 4,
-				5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
-				32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 0, 55, 56, 57,
-				58, 59, 60, 61, 62, 63, 64, 65, 0, 67, 68, 69, 70, 0, 72, 0, 74, 75, 0, 106, 107, 79, 104, 81, 82, 100,
-				101, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
-				17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
-				43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 73, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 0, 67, 68,
-				69, 70, 0, 72, 0, 74, 75, 0, 1, 2, 79, 4, 81, 82, 0, 13, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 0, 1,
-				2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
-				30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 55,
-				56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 0, 67, 68, 69, 70, 0, 72, 102, 74, 75, 10, 99, 0, 79, 0, 3, 82,
-				105, 4, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
-				16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
-				42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 71, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 0, 67,
-				68, 69, 70, 0, 72, 0, 74, 75, 10, 106, 107, 79, 104, 0, 82, 0, 3, 85, 86, 87, 88, 89, 90, 91, 92, 93,
-				94, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
-				27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
-				53, 66, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 80, 67, 68, 69, 70, 0, 72, 0, 74, 75, 3, 106, 107,
-				79, 0, 103, 82, 0, 4, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
-				13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
-				39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
-				65, 78, 67, 68, 69, 70, 0, 72, 0, 74, 75, 5, 6, 7, 79, 104, 0, 82, 0, 11, 85, 86, 87, 88, 89, 90, 91,
-				92, 93, 94, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
-				25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
-				51, 52, 53, 66, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 0, 67, 68, 69, 70, 0, 72, 0, 74, 75, 0, 1,
-				2, 79, 0, 0, 82, 0, 8, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
-				13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
-				39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
-				65, 80, 67, 68, 69, 70, 0, 72, 102, 74, 75, 5, 6, 7, 79, 102, 0, 82, 0, 3, 85, 86, 87, 88, 89, 90, 91,
-				92, 93, 94, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
-				25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
-				51, 52, 53, 66, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 0, 67, 68, 69, 70, 0, 72, 0, 74, 75, 5, 6,
-				7, 79, 0, 1, 82, 0, 0, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
-				13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
-				39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
-				65, 77, 67, 68, 69, 70, 0, 72, 0, 74, 75, 5, 6, 7, 79, 0, 103, 82, 0, 0, 85, 86, 87, 88, 89, 90, 91, 92,
-				93, 94, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
-				26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
-				52, 53, 66, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 77, 67, 68, 69, 70, 0, 72, 0, 74, 75, 5, 6, 7,
-				79, 0, 103, 82, 0, 0, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
-				13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
-				39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
-				65, 77, 67, 68, 69, 70, 0, 72, 0, 74, 75, 5, 6, 7, 79, 0, 0, 82, 0, 3, 85, 86, 87, 88, 89, 90, 91, 92,
-				93, 94, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
-				26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
-				52, 53, 0, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 78, 67, 68, 69, 70, 0, 72, 0, 74, 75, 5, 6, 7,
-				79, 102, 8, 82, 0, 1, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
-				0, 1, 2, 28, 4, 0, 129, 0, 8, 9, 0, 0, 5, 6, 7, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 82,
-				42, 43, 44, 45, 0, 47, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, 1, 2, 3, 4, 66, 54, 0, 8,
-				9, 71, 72, 73, 0, 0, 76, 77, 78, 79, 80, 81, 0, 83, 84, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13, 96, 97, 98,
-				99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
-				120, 121, 0, 1, 2, 0, 126, 127, 128, 129, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 1, 2, 71, 4, 80,
-				67, 0, 8, 9, 79, 130, 5, 6, 7, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, 42, 43, 44, 45,
-				54, 47, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, 1, 2, 3, 4, 66, 54, 73, 8, 9, 71, 72, 73,
-				0, 0, 76, 77, 78, 79, 80, 81, 41, 83, 84, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 54, 96, 97, 98, 99, 100, 101,
-				102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 0,
-				1, 2, 0, 126, 127, 128, 129, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 0, 13, 14, 15, 16, 17, 18, 19, 20,
-				21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
-				0, 48, 49, 50, 51, 52, 53, 0, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 74, 75, 68, 0, 1, 2, 3, 4, 5,
-				6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
-				33, 34, 35, 36, 37, 38, 39, 40, 0, 1, 2, 0, 0, 103, 47, 122, 4, 5, 6, 7, 0, 54, 10, 11, 4, 5, 6, 7, 0,
-				62, 63, 64, 65, 0, 67, 0, 69, 70, 0, 11, 5, 6, 7, 98, 0, 78, 0, 3, 81, 14, 15, 16, 17, 18, 19, 20, 21,
-				22, 23, 24, 25, 26, 95, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, 1, 2, 3, 4, 5, 6, 7, 8,
-				9, 10, 11, 42, 43, 123, 124, 125, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
-				20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 123, 124, 125, 0, 1,
-				2, 47, 4, 5, 6, 7, 0, 0, 54, 0, 1, 2, 5, 6, 7, 78, 62, 63, 64, 65, 0, 67, 0, 69, 70, 0, 0, 5, 6, 7, 0,
-				0, 78, 3, 3, 81, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 95, 28, 29, 30, 31, 32, 33, 34, 35,
-				36, 37, 38, 39, 40, 54, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 0, 123, 124, 125, 0, 1, 2, 3, 4, 5, 6, 7,
-				8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
-				34, 35, 36, 37, 38, 39, 40, 0, 1, 2, 0, 1, 2, 47, 4, 5, 6, 7, 0, 0, 54, 71, 0, 5, 6, 7, 0, 0, 62, 63,
-				64, 65, 0, 67, 12, 69, 70, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 81, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 41,
-				95, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
-				27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 81, 77, 0, 0, 1, 2, 47, 5, 6, 7, 0, 0, 78, 54,
-				0, 5, 6, 7, 0, 1, 2, 62, 63, 64, 65, 66, 67, 104, 69, 70, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
-				39, 40, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 95, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
-				17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, 1, 2,
-				3, 4, 0, 47, 0, 8, 9, 0, 1, 2, 54, 4, 100, 101, 12, 8, 9, 0, 62, 63, 64, 65, 78, 67, 0, 69, 70, 0, 0, 5,
-				6, 7, 0, 1, 2, 3, 4, 81, 0, 0, 8, 9, 4, 0, 12, 0, 3, 0, 0, 4, 3, 95, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
-				11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
-				37, 38, 39, 40, 0, 66, 0, 1, 2, 0, 47, 5, 6, 7, 71, 66, 73, 54, 80, 76, 77, 71, 66, 80, 0, 62, 63, 64,
-				65, 71, 67, 73, 69, 70, 0, 77, 12, 28, 29, 30, 127, 98, 83, 84, 81, 0, 108, 109, 110, 111, 112, 113,
-				114, 115, 116, 117, 118, 119, 95, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
-				20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, 1, 2, 0, 4, 81,
-				47, 4, 8, 9, 0, 1, 2, 54, 80, 0, 0, 0, 8, 9, 3, 62, 63, 64, 65, 80, 67, 12, 69, 70, 0, 1, 2, 3, 4, 5, 6,
-				7, 8, 9, 81, 0, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 95, 0, 1, 2, 3, 4, 5, 6, 7,
-				8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
-				34, 35, 36, 37, 38, 39, 40, 81, 0, 0, 0, 1, 2, 47, 5, 6, 7, 0, 8, 9, 54, 0, 5, 6, 7, 0, 99, 0, 62, 63,
-				64, 65, 105, 67, 0, 69, 70, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, 1, 2, 3, 4, 5, 6, 7,
-				8, 9, 0, 95, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
-				25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 78, 0, 0, 98, 3, 0, 47, 5, 6, 7, 5, 6,
-				7, 54, 0, 1, 2, 0, 4, 0, 98, 62, 63, 64, 65, 0, 67, 0, 69, 70, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
-				38, 39, 40, 0, 1, 2, 0, 4, 5, 6, 7, 5, 6, 7, 95, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
-				16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 71,
-				54, 0, 80, 0, 0, 47, 5, 6, 7, 5, 6, 7, 54, 83, 84, 66, 0, 1, 2, 0, 62, 63, 64, 65, 0, 67, 0, 69, 70, 28,
-				29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, 1, 2, 0, 4, 5, 6, 7, 0, 1, 2, 95, 0, 1, 2, 3, 4, 5,
-				6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
-				33, 34, 35, 36, 37, 38, 39, 40, 0, 54, 0, 3, 80, 0, 47, 5, 6, 7, 5, 6, 7, 54, 83, 84, 66, 0, 0, 1, 2,
-				62, 63, 64, 65, 0, 67, 77, 69, 70, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, 1, 2, 96, 97,
-				5, 6, 7, 122, 0, 10, 95, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
-				22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, 54, 0, 3, 83, 84, 47, 5,
-				6, 7, 54, 0, 0, 54, 0, 0, 0, 0, 1, 2, 0, 62, 63, 64, 65, 0, 67, 98, 69, 70, 28, 29, 30, 31, 32, 33, 34,
-				35, 36, 37, 38, 39, 40, 0, 1, 2, 3, 4, 28, 29, 30, 8, 9, 0, 95, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
-				12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
-				38, 39, 40, 0, 1, 2, 3, 4, 0, 47, 78, 8, 9, 0, 0, 12, 54, 99, 0, 100, 101, 71, 99, 105, 62, 63, 64, 65,
-				105, 67, 0, 69, 70, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 0, 1, 2, 3, 4, 47, 0, 0, 8, 9, 10, 11, 95, 13,
-				14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 0, 41, 42,
-				43, 44, 45, 46, 78, 48, 49, 50, 51, 52, 53, 0, 55, 56, 57, 58, 59, 60, 61, 0, 1, 2, 0, 78, 0, 68, 69, 0,
-				108, 109, 3, 74, 75, 0, 1, 2, 3, 4, 0, 12, 77, 8, 9, 10, 11, 0, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
-				23, 24, 25, 26, 27, 0, 1, 78, 42, 43, 42, 43, 0, 0, 73, 10, 4, 54, 41, 42, 43, 44, 45, 46, 11, 48, 49,
-				50, 51, 52, 53, 0, 55, 56, 57, 58, 59, 60, 61, 0, 1, 2, 71, 31, 73, 68, 0, 76, 77, 3, 0, 74, 75, 3, 77,
-				0, 1, 2, 3, 4, 0, 0, 12, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
-				0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 0, 41, 42, 43, 44, 45, 46, 0, 48, 49, 50, 51, 52, 53, 78, 55, 56,
-				57, 58, 59, 60, 61, 0, 1, 2, 0, 71, 0, 1, 2, 8, 76, 72, 0, 74, 75, 0, 1, 2, 3, 4, 41, 77, 77, 8, 9, 10,
-				11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 0, 1, 2, 0, 4, 5, 6, 7, 0, 0, 10,
-				11, 54, 41, 42, 43, 44, 45, 46, 10, 48, 49, 50, 51, 52, 53, 0, 55, 56, 57, 58, 59, 60, 61, 73, 66, 0,
-				74, 75, 0, 68, 0, 0, 0, 72, 3, 0, 1, 2, 3, 4, 12, 11, 81, 8, 9, 10, 11, 0, 13, 14, 15, 16, 17, 18, 19,
-				20, 21, 22, 23, 24, 25, 26, 27, 0, 1, 2, 3, 4, 5, 6, 7, 0, 80, 10, 11, 47, 41, 42, 43, 44, 45, 46, 0,
-				48, 49, 50, 51, 52, 53, 0, 55, 56, 57, 58, 59, 60, 61, 100, 101, 0, 1, 2, 13, 68, 0, 1, 2, 3, 4, 74, 75,
-				12, 8, 9, 10, 11, 0, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 0, 62, 71, 0, 54, 0, 0,
-				0, 3, 3, 3, 54, 12, 41, 42, 43, 44, 45, 46, 62, 48, 49, 50, 51, 52, 53, 0, 55, 56, 57, 58, 59, 60, 61,
-				0, 0, 0, 1, 3, 72, 68, 0, 1, 2, 3, 4, 74, 75, 12, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
-				22, 23, 24, 25, 26, 27, 0, 1, 2, 72, 4, 5, 6, 7, 41, 71, 10, 11, 78, 41, 42, 43, 44, 45, 46, 0, 48, 49,
-				50, 51, 52, 53, 0, 55, 56, 57, 58, 59, 60, 61, 0, 0, 71, 3, 12, 0, 68, 0, 0, 76, 72, 0, 1, 2, 3, 4, 0,
-				12, 0, 8, 9, 10, 11, 0, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 0, 1, 2, 3, 4, 0,
-				29, 0, 8, 9, 0, 0, 12, 41, 42, 43, 44, 45, 46, 73, 48, 49, 50, 51, 52, 53, 73, 55, 56, 57, 58, 59, 60,
-				61, 81, 73, 0, 0, 72, 77, 68, 0, 1, 2, 3, 4, 74, 75, 12, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
-				20, 21, 22, 23, 24, 25, 26, 27, 0, 0, 71, 3, 66, 4, 0, 76, 66, 3, 0, 0, 12, 41, 42, 43, 44, 45, 46, 78,
-				48, 49, 50, 51, 52, 53, 0, 55, 56, 57, 58, 59, 60, 61, 96, 97, 0, 0, 96, 97, 68, 73, 0, 76, 72, 0, 1, 2,
-				3, 4, 83, 84, 41, 8, 9, 10, 11, 0, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 0, 1, 2,
-				76, 4, 5, 6, 7, 71, 0, 10, 11, 3, 41, 42, 43, 44, 45, 46, 66, 48, 49, 50, 51, 52, 53, 0, 55, 56, 57, 58,
-				59, 60, 61, 0, 71, 0, 1, 0, 0, 68, 0, 1, 2, 3, 4, 74, 75, 12, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
-				19, 20, 21, 22, 23, 24, 25, 26, 27, 0, 1, 2, 0, 4, 5, 6, 7, 0, 0, 10, 11, 4, 41, 42, 43, 44, 45, 46, 54,
-				48, 49, 50, 51, 52, 53, 0, 55, 56, 57, 58, 59, 60, 61, 77, 66, 66, 0, 1, 2, 3, 4, 0, 76, 72, 8, 9, 10,
-				11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 96, 97, 0, 0, 0, 3, 0, 3, 0, 66, 4,
-				73, 4, 41, 42, 43, 44, 45, 46, 0, 48, 49, 50, 51, 52, 53, 0, 55, 56, 57, 58, 59, 60, 61, 0, 1, 2, 3, 4,
-				31, 0, 80, 8, 9, 10, 11, 0, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 0, 1, 2, 3, 4,
-				5, 6, 7, 8, 9, 0, 54, 12, 41, 42, 43, 44, 45, 46, 78, 48, 49, 50, 51, 52, 53, 0, 55, 56, 57, 58, 59, 60,
-				61, 0, 1, 2, 127, 12, 0, 68, 0, 1, 2, 3, 4, 68, 47, 0, 8, 9, 10, 11, 0, 13, 14, 15, 16, 17, 18, 19, 20,
-				21, 22, 23, 24, 25, 26, 27, 123, 124, 125, 0, 47, 0, 3, 0, 0, 0, 0, 1, 2, 41, 42, 43, 44, 45, 46, 54,
-				48, 49, 50, 51, 52, 53, 0, 55, 56, 57, 58, 59, 60, 61, 0, 0, 0, 1, 2, 3, 4, 71, 0, 71, 8, 9, 10, 11, 0,
-				13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 54, 0, 0, 83, 84, 3, 0, 0, 0, 1, 2, 66, 0,
-				41, 42, 43, 44, 45, 46, 78, 48, 49, 50, 51, 52, 53, 0, 55, 56, 57, 58, 59, 60, 61, 0, 1, 2, 3, 4, 0, 68,
-				0, 8, 9, 10, 11, 0, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 54, 0, 0, 122, 3, 83,
-				84, 0, 0, 1, 2, 66, 73, 41, 42, 43, 44, 45, 46, 0, 48, 49, 50, 51, 52, 53, 0, 55, 56, 57, 58, 59, 60,
-				61, 0, 1, 2, 3, 4, 0, 68, 0, 8, 9, 10, 11, 0, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
-				27, 54, 0, 0, 0, 3, 83, 84, 0, 0, 1, 2, 0, 0, 41, 42, 43, 44, 45, 46, 0, 48, 49, 50, 51, 52, 53, 0, 55,
-				56, 57, 58, 59, 60, 61, 0, 1, 2, 3, 4, 122, 83, 84, 8, 9, 10, 11, 0, 13, 14, 15, 16, 17, 18, 19, 20, 21,
-				22, 23, 24, 25, 26, 27, 54, 0, 0, 0, 3, 83, 84, 0, 0, 1, 2, 0, 0, 41, 42, 43, 44, 45, 46, 78, 48, 49,
-				50, 51, 52, 53, 0, 55, 56, 57, 58, 59, 60, 61, 0, 1, 2, 3, 4, 0, 83, 84, 8, 9, 10, 11, 0, 13, 14, 15,
-				16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 54, 0, 0, 0, 3, 83, 84, 0, 0, 0, 3, 3, 0, 41, 42, 43,
-				44, 45, 46, 78, 48, 49, 50, 51, 52, 53, 0, 55, 56, 57, 58, 59, 60, 61, 0, 1, 2, 3, 4, 0, 0, 0, 8, 9, 10,
-				11, 0, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 0, 54, 80, 0, 54, 0, 0, 0, 0, 0, 0,
-				0, 12, 41, 42, 43, 44, 45, 46, 78, 48, 49, 50, 51, 52, 53, 0, 55, 56, 57, 58, 59, 60, 61, 0, 1, 2, 3, 4,
-				0, 0, 0, 8, 9, 10, 11, 0, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 0, 54, 80, 0, 0,
-				0, 0, 0, 0, 0, 72, 0, 12, 41, 42, 43, 44, 45, 46, 73, 48, 49, 50, 51, 52, 53, 0, 55, 56, 57, 58, 59, 60,
-				61, 0, 1, 2, 3, 4, 0, 0, 0, 8, 9, 10, 11, 0, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
-				0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 72, 0, 12, 41, 42, 43, 44, 45, 46, 0, 48, 49, 50, 51, 52, 53, 0, 55, 56,
-				57, 58, 59, 60, 61, 0, 1, 2, 3, 4, 0, 0, 0, 8, 9, 10, 11, 0, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
-				24, 25, 26, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 41, 42, 43, 44, 45, 46, 0, 48, 49, 50, 51, 52,
-				53, 0, 55, 56, 57, 58, 59, 60, 61, 0, 1, 2, 3, 4, 0, 0, 0, 8, 9, 10, 11, 0, 13, 14, 15, 16, 17, 18, 19,
-				20, 21, 22, 23, 24, 25, 26, 27, 0, 0, 0, 3, 0, 0, 0, 0, 8, 0, 10, 11, 0, 41, 42, 43, 44, 45, 46, 0, 48,
-				49, 50, 51, 52, 53, 0, 55, 56, 57, 58, 59, 60, 61, 0, 0, 0, 73, 0, 0, 0, 77, 42, 43, 44, 45, 46, 0, 0,
-				13, 12, 12, 5, 6, 7, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 66, 0, 12, 12, 12, 71, 0, 73, 74, 75, 41, 77, 0,
-				0, 80, 0, 0, 83, 84, 47, 47, 0, 0, 54, 54, 0, 0, 0, 47, 47, 96, 97, 62, 99, 100, 101, 102, 103, 104, 12,
-				106, 107, 108, 0, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 73, 73, 0, 0, 1, 2, 126, 4, 5, 6, 7,
-				73, 76, 76, 76, 78, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
-				34, 35, 36, 37, 38, 39, 40, 0, 0, 73, 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 4, 5, 6, 7, 0, 62, 63, 64,
-				65, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
-				38, 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 5, 6, 7, 0, 62, 63, 64, 65, 13, 14, 15,
-				16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 12, 12, 5, 6, 7, 0, 62, 63, 64, 65, 13, 14, 15, 16, 17, 18, 19,
-				20, 21, 22, 23, 24, 25, 26, 0, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, 1, 2, 3, 4, 5, 6,
-				7, 8, 9, 10, 11, 12, 0, 66, 0, 0, 0, 0, 0, 0, 62, 63, 64, 65, 77, 76, 76, 28, 29, 30, 31, 32, 33, 34,
-				35, 36, 37, 38, 39, 40, 0, 0, 0, 96, 97, 0, 47, 98, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0,
-				0, 66, 0, 120, 121, 0, 71, 0, 0, 0, 12, 76, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, 0, 0,
-				0, 0, 0, 47, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 0, 0, 0, 0, 76,
-				28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 76, 0, 0, 0, 0, 0, 47, 0, 0, 1, 2, 3, 4, 5, 6, 7, 0,
-				0, 10, 11, 0, 0, 1, 2, 3, 4, 5, 6, 7, 0, 71, 10, 11, 0, 0, 76, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
-				38, 39, 40, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, 1, 2, 0, 4, 5, 6, 7, 0, 0, 10, 11,
-				12, 0, 5, 6, 7, 71, 0, 73, 66, 3, 0, 77, 66, 0, 0, 0, 0, 0, 71, 77, 73, 0, 0, 77, 77, 28, 29, 30, 31,
-				32, 33, 34, 35, 36, 37, 38, 39, 40, 96, 97, 0, 0, 96, 97, 0, 0, 0, 0, 0, 0, 44, 45, 12, 12, 0, 0, 12, 0,
-				0, 0, 0, 0, 120, 121, 76, 0, 120, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 0, 0, 0, 0, 0, 0, 0, 0, 98, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 0, 0, 76, 76, 0, 0, 76, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static char termCheck[] = TermCheck.termCheck;
-
-	@Override
-	public final int termCheck(int index) {
-		return termCheck[index];
-	}
-
-	public interface TermAction {
-		public final static char termAction[] = { 0, 8653, 8230, 8244, 8244, 8244, 8240, 8244, 8244, 8244, 8244, 8244,
-				8244, 8400, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 8234, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 113, 1548, 1, 8859, 1835, 135,
-				8664, 8653, 1, 1, 2719, 8653, 127, 1451, 715, 8660, 3293, 6945, 6873, 1920, 2375, 1450, 3221, 5726,
-				3292, 1287, 3291, 724, 3289, 10, 8403, 8403, 8403, 8403, 8403, 8403, 8403, 8403, 8403, 8403, 8403, 8403,
-				8403, 8403, 8403, 8403, 8403, 8403, 8403, 8403, 8403, 8403, 8403, 8403, 8403, 8403, 8403, 8403, 8403,
-				8403, 8403, 8403, 8403, 8403, 8403, 8403, 8403, 8403, 8403, 8403, 8403, 8403, 8403, 8403, 8403, 8403,
-				8403, 8403, 8403, 8403, 8403, 8403, 8403, 418, 8403, 8403, 8403, 8403, 8403, 8403, 8403, 8403, 8403,
-				8403, 8403, 8653, 8403, 8403, 8403, 8403, 8653, 8403, 8653, 8403, 8403, 188, 2641, 2562, 8403, 4190,
-				8403, 8403, 4751, 4721, 8403, 8403, 8403, 8403, 8403, 8403, 8403, 8403, 8403, 8403, 8, 8509, 8509, 8509,
-				8509, 8509, 8509, 8509, 8509, 8509, 8509, 8509, 8509, 8509, 8509, 8509, 8509, 8509, 8509, 8509, 8509,
-				8509, 8509, 8509, 8509, 8509, 8509, 8509, 8509, 8509, 8509, 8509, 8509, 8509, 8509, 8509, 8509, 8509,
-				8509, 8509, 8509, 8509, 8509, 8509, 8509, 8509, 8509, 8509, 8509, 8509, 8509, 8509, 8509, 8509, 1739,
-				8509, 8509, 8509, 8509, 8509, 8509, 8509, 8509, 8509, 8509, 8509, 131, 8509, 8509, 8509, 8509, 335,
-				8509, 109, 8509, 8509, 8653, 7683, 7680, 8509, 8691, 8509, 8509, 8653, 8987, 8509, 8509, 8509, 8509,
-				8509, 8509, 8509, 8509, 8509, 8509, 8653, 8230, 8244, 8244, 8244, 8240, 8244, 8244, 8244, 8244, 8244,
-				8244, 8237, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 8234, 1, 1, 1, 1, 1, 1, 7312, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 115, 1548, 1, 8859, 1835, 136,
-				8664, 4476, 1, 1, 2719, 4304, 380, 1451, 39, 2258, 3293, 6515, 8691, 1920, 2375, 1450, 3221, 5726, 3292,
-				1287, 3291, 724, 3289, 8653, 8230, 8244, 8244, 8244, 8240, 8244, 8244, 8244, 8244, 8244, 8244, 8237, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 8234,
-				1, 1, 1, 1, 1, 1, 2328, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 114, 1548, 1, 8859, 1835, 8653, 8664, 133, 1,
-				1, 2719, 2641, 2562, 1451, 4190, 344, 3293, 8653, 4355, 1920, 2375, 1450, 3221, 5726, 3292, 1287, 3291,
-				724, 3289, 8653, 8230, 8244, 8244, 8244, 8240, 8244, 8244, 8244, 8244, 8244, 8244, 8237, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 8234, 1, 1, 1, 1,
-				1, 1, 7553, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1300, 1548, 1, 8859, 1835, 155, 8664, 8653, 1, 1, 4913,
-				2641, 2562, 1451, 8653, 4361, 3293, 29, 995, 1920, 2375, 1450, 3221, 5726, 3292, 1287, 3291, 724, 3289,
-				8653, 8230, 8244, 8244, 8244, 8240, 8244, 8244, 8244, 8244, 8244, 8244, 8237, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 8234, 1, 1, 1, 1, 1, 1, 1870,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 458, 1548, 1, 8859, 1835, 658, 8664, 129, 1, 1, 8358, 8364, 8361, 1451,
-				4232, 8653, 3293, 8653, 4583, 1920, 2375, 1450, 3221, 5726, 3292, 1287, 3291, 724, 3289, 8653, 8230,
-				8244, 8244, 8244, 8240, 8244, 8244, 8244, 8244, 8244, 8244, 8237, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 8234, 1, 1, 1, 1, 1, 1, 7578, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 132, 1548, 1, 8859, 1835, 8653, 8664, 151, 1, 1, 8653, 8667, 8668, 1451, 8653,
-				8653, 3293, 8653, 1445, 1920, 2375, 1450, 3221, 5726, 3292, 1287, 3291, 724, 3289, 8653, 8230, 8244,
-				8244, 8244, 8240, 8244, 8244, 8244, 8244, 8244, 8244, 8237, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 8234, 1, 1, 1, 1, 1, 1, 7582, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 2418, 1548, 1, 8859, 1835, 364, 8664, 4476, 1, 1, 2025, 1968, 1990, 1451, 4515, 89, 3293,
-				29, 7737, 1920, 2375, 1450, 3221, 5726, 3292, 1287, 3291, 724, 3289, 8653, 8230, 8244, 8244, 8244, 8240,
-				8244, 8244, 8244, 8244, 8244, 8244, 8237, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 8234, 1, 1, 1, 1, 1, 1, 7686, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				8653, 1548, 1, 8859, 1835, 364, 8664, 134, 1, 1, 8466, 8472, 8469, 1451, 8653, 3796, 3293, 474, 8653,
-				1920, 2375, 1450, 3221, 5726, 3292, 1287, 3291, 724, 3289, 8653, 8230, 8244, 8244, 8244, 8240, 8244,
-				8244, 8244, 8244, 8244, 8244, 8237, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 8234, 1, 1, 1, 1, 1, 1, 7689, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2906,
-				1548, 1, 8859, 1835, 429, 8664, 153, 1, 1, 2025, 1968, 1990, 1451, 8653, 4361, 3293, 488, 8653, 1920,
-				2375, 1450, 3221, 5726, 3292, 1287, 3291, 724, 3289, 8653, 8230, 8244, 8244, 8244, 8240, 8244, 8244,
-				8244, 8244, 8244, 8244, 8237, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 8234, 1, 1, 1, 1, 1, 1, 7692, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2915, 1548, 1,
-				8859, 1835, 657, 8664, 8653, 1, 1, 2025, 1968, 1990, 1451, 8653, 4401, 3293, 421, 8653, 1920, 2375,
-				1450, 3221, 5726, 3292, 1287, 3291, 724, 3289, 8653, 8230, 8244, 8244, 8244, 8240, 8244, 8244, 8244,
-				8244, 8244, 8244, 8237, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 8234, 1, 1, 1, 1, 1, 1, 7740, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2977, 1548, 1, 8859,
-				1835, 346, 8664, 152, 1, 1, 2025, 1968, 1990, 1451, 8653, 8653, 3293, 1, 2225, 1920, 2375, 1450, 3221,
-				5726, 3292, 1287, 3291, 724, 3289, 8653, 8230, 8244, 8244, 8244, 8240, 8244, 8244, 8244, 8244, 8244,
-				8244, 8237, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 8234, 1, 1, 1, 1, 1, 1, 225, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1548, 1, 8859, 1835, 331,
-				8664, 8653, 1, 1, 2025, 1968, 1990, 1451, 4515, 1445, 3293, 606, 9260, 1920, 2375, 1450, 3221, 5726,
-				3292, 1287, 3291, 724, 3289, 8653, 7743, 7743, 7743, 7743, 7743, 7743, 7743, 7743, 7743, 7743, 7743,
-				7743, 8653, 7683, 7680, 9261, 1066, 8653, 7679, 256, 7749, 4060, 8653, 216, 7862, 7856, 7859, 7743,
-				7743, 7743, 7743, 7743, 7743, 7743, 7743, 7743, 7743, 7743, 7743, 7743, 8513, 7743, 7743, 7743, 7743,
-				8653, 7743, 7871, 7868, 7865, 7877, 7895, 7874, 7886, 7853, 7880, 7883, 7892, 7889, 7850, 1, 7798, 7794,
-				8406, 8289, 7743, 3568, 403, 8409, 8292, 7743, 7743, 7743, 1, 492, 7743, 7743, 7743, 7743, 7743, 7743,
-				335, 7743, 7743, 364, 7683, 7680, 5742, 1066, 2025, 1968, 1990, 914, 4060, 8987, 7743, 7743, 7743, 7743,
-				7743, 7743, 7743, 7743, 7743, 7743, 7743, 7743, 7743, 7743, 7743, 7743, 7743, 7743, 7743, 7743, 7743,
-				7743, 7743, 7743, 7743, 7743, 8653, 13299, 13299, 549, 7743, 7743, 7743, 7743, 8653, 7746, 7746, 7746,
-				7746, 7746, 7746, 7746, 7746, 7746, 7746, 7746, 7746, 8653, 7683, 7680, 7728, 1066, 1516, 2063, 257,
-				7749, 4060, 2751, 8596, 7910, 7904, 7907, 7746, 7746, 7746, 7746, 7746, 7746, 7746, 7746, 7746, 7746,
-				7746, 7746, 7746, 8653, 7746, 7746, 7746, 7746, 8689, 7746, 7919, 7916, 7913, 7925, 7943, 7922, 7934,
-				7901, 7928, 7931, 7940, 7937, 7898, 1, 7798, 7794, 5742, 8289, 7746, 3584, 1094, 914, 4060, 7746, 7746,
-				7746, 8653, 8653, 7746, 7746, 7746, 7746, 7746, 7746, 3459, 7746, 7746, 1, 7798, 7794, 5742, 8289, 8382,
-				8388, 8385, 914, 4060, 7093, 7746, 7746, 7746, 7746, 7746, 7746, 7746, 7746, 7746, 7746, 7746, 7746,
-				7746, 7746, 7746, 7746, 7746, 7746, 7746, 7746, 7746, 7746, 7746, 7746, 7746, 7746, 8653, 8667, 8668,
-				581, 7746, 7746, 7746, 7746, 39, 7683, 7680, 723, 1066, 2025, 1968, 1990, 2875, 4060, 3109, 3187, 154,
-				1004, 9315, 9316, 8950, 8948, 8957, 8956, 8952, 8953, 8951, 8954, 8955, 8958, 8949, 6703, 9023, 9024,
-				9317, 8945, 8939, 8946, 8942, 8918, 8944, 8943, 8940, 8941, 8919, 8672, 3031, 2953, 3343, 3265, 2797,
-				391, 843, 1009, 8674, 921, 6659, 992, 8653, 8675, 8673, 832, 8669, 8670, 8671, 6637, 9085, 5767, 9086,
-				9087, 3421, 784, 1685, 8653, 8482, 8482, 261, 8478, 8244, 8244, 8244, 261, 261, 261, 261, 8486, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 8653, 8667, 8668, 473, 39,
-				4401, 261, 1, 8691, 2025, 1968, 1990, 429, 8475, 364, 364, 422, 2025, 1968, 1990, 130, 1, 1, 1, 1, 8653,
-				4955, 255, 9099, 2592, 8653, 4583, 7814, 7808, 7811, 9043, 8653, 261, 116, 1383, 450, 9315, 9316, 8950,
-				8948, 8957, 8956, 8952, 8953, 8951, 8954, 8955, 8958, 8949, 9187, 7823, 7820, 7817, 7829, 7847, 7826,
-				7838, 7805, 7832, 7835, 7844, 7841, 7802, 8653, 7798, 7794, 5742, 8289, 8382, 8388, 8385, 914, 4060,
-				8516, 8516, 1123, 955, 9122, 9123, 9124, 8653, 8482, 8482, 261, 8478, 8244, 8244, 8244, 261, 261, 261,
-				261, 8534, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9122,
-				9123, 9124, 321, 8006, 8006, 261, 316, 2025, 1968, 1990, 8653, 661, 8475, 43, 8250, 8250, 2025, 1968,
-				1990, 3698, 1, 1, 1, 1, 8653, 4955, 568, 9099, 2592, 8653, 8653, 8421, 8415, 8418, 8653, 269, 261, 3152,
-				8221, 449, 9315, 9316, 8950, 8948, 8957, 8956, 8952, 8953, 8951, 8954, 8955, 8958, 8949, 9187, 9023,
-				9024, 9317, 8945, 8939, 8946, 8942, 8918, 8944, 8943, 8940, 8941, 8919, 8247, 378, 7683, 7680, 5564,
-				1066, 2025, 1968, 1990, 914, 4060, 364, 364, 8653, 9122, 9123, 9124, 8653, 8244, 8244, 261, 8244, 8240,
-				8244, 8244, 261, 261, 261, 261, 8599, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				13885, 1, 13552, 1, 1, 13611, 1, 8653, 8060, 8057, 655, 8379, 8379, 261, 660, 2025, 1968, 1990, 650,
-				8653, 8590, 2328, 1, 2025, 1968, 1990, 156, 8653, 1, 1, 1, 1, 8653, 6368, 7734, 8896, 1835, 1, 7798,
-				7794, 5742, 8289, 8382, 8388, 8385, 914, 4060, 252, 342, 7798, 7794, 5742, 8289, 8382, 8388, 8385, 914,
-				4060, 8516, 8516, 2277, 9187, 8653, 8244, 8244, 261, 8244, 8240, 8244, 8244, 261, 261, 261, 261, 261, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 13885, 1, 13552, 1, 1, 13611, 1, 8660, 2984,
-				258, 48, 8060, 8057, 261, 7970, 7964, 7967, 649, 128, 3698, 8590, 8653, 2025, 1968, 1990, 431, 8667,
-				8668, 1, 1, 1, 1, 3776, 6368, 4232, 8896, 1835, 7979, 7976, 7973, 7985, 8003, 7982, 7994, 7961, 7988,
-				7991, 8000, 7997, 7958, 1, 7798, 7794, 5742, 8289, 8382, 8388, 8385, 914, 4060, 8653, 9187, 8653, 8244,
-				8244, 261, 8244, 8240, 8244, 8244, 261, 261, 261, 261, 8632, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 13885, 1, 13552, 1, 1, 13611, 1, 1, 7798, 7794, 5742, 8289, 8653, 261, 8653, 914,
-				4060, 8653, 7683, 7680, 8590, 1066, 4751, 4721, 8657, 914, 4060, 8653, 1, 1, 1, 1, 3698, 6368, 451,
-				8896, 1835, 137, 8653, 2025, 1968, 1990, 1, 7798, 7794, 5564, 8289, 251, 430, 491, 914, 4060, 421, 1,
-				400, 48, 7589, 1, 119, 8668, 3986, 9187, 8653, 8244, 8244, 261, 8244, 8240, 8244, 8244, 261, 261, 261,
-				261, 8599, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 13885, 1, 13552, 1, 1, 13611,
-				1, 8653, 1870, 331, 8667, 8668, 369, 261, 2025, 1968, 1990, 2328, 1870, 400, 8590, 2279, 400, 400, 7731,
-				8668, 1467, 8653, 1, 1, 1, 1, 2328, 6368, 574, 8896, 1835, 157, 574, 8661, 8584, 8581, 8578, 8656, 400,
-				5674, 5700, 252, 401, 3896, 4981, 2230, 2181, 2132, 2083, 2034, 1985, 1936, 1887, 1838, 1788, 9187,
-				8653, 8244, 8244, 261, 8244, 8240, 8244, 8244, 261, 261, 261, 261, 8599, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 13885, 1, 13552, 1, 1, 13611, 1, 8653, 8667, 8668, 8653, 1066, 8660,
-				261, 1499, 914, 4060, 38, 7701, 7698, 8590, 3314, 8, 112, 8653, 7695, 4060, 5071, 1, 1, 1, 1, 1587,
-				6368, 8629, 8896, 1835, 658, 7683, 7680, 5742, 1066, 2025, 1968, 1990, 914, 4060, 252, 8653, 3943, 6130,
-				3236, 3158, 3080, 3002, 2924, 2846, 2768, 2690, 2612, 2533, 9187, 8653, 8244, 8244, 261, 8244, 8240,
-				8244, 8244, 261, 261, 261, 261, 261, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				13885, 1, 13552, 1, 1, 13611, 1, 8629, 1, 259, 8653, 8667, 8668, 261, 8021, 8015, 8018, 651, 914, 4060,
-				8590, 8653, 2025, 1968, 1990, 8653, 4304, 8653, 1, 1, 1, 1, 6515, 6368, 8653, 8896, 1835, 8030, 8027,
-				8024, 8036, 8054, 8033, 8045, 8012, 8039, 8042, 8051, 8048, 8009, 1, 7798, 7794, 5742, 8289, 8382, 8388,
-				8385, 914, 4060, 8653, 9187, 8653, 8244, 8244, 261, 8244, 8240, 8244, 8244, 261, 261, 261, 261, 261, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 13885, 1, 13552, 1, 1, 13611, 1, 5994, 8653,
-				646, 9045, 5282, 653, 261, 8075, 8069, 8072, 8608, 8614, 8611, 8590, 8653, 7683, 7680, 8653, 8691, 326,
-				3599, 1, 1, 1, 1, 381, 6368, 636, 8896, 1835, 8084, 8081, 8078, 8090, 8108, 8087, 8099, 8066, 8093,
-				8096, 8105, 8102, 8063, 428, 7955, 7955, 429, 316, 7946, 7952, 7949, 2025, 1968, 1990, 9187, 8653, 8244,
-				8244, 261, 8244, 8240, 8244, 8244, 261, 261, 261, 261, 261, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 13885, 1, 13552, 1, 1, 13611, 1, 2328, 316, 569, 3745, 8653, 652, 261, 8430, 8424,
-				8427, 8617, 8623, 8620, 8590, 5674, 5700, 1870, 36, 8506, 8503, 8653, 1, 1, 1, 1, 8653, 6368, 635, 8896,
-				1835, 9023, 9024, 9317, 8945, 8939, 8946, 8942, 8918, 8944, 8943, 8940, 8941, 8919, 656, 8376, 8376,
-				8653, 660, 8367, 8373, 8370, 325, 8667, 8668, 9187, 8653, 8244, 8244, 261, 8244, 8240, 8244, 8244, 261,
-				261, 261, 261, 261, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 13885, 1, 13552, 1,
-				1, 13611, 1, 8653, 660, 570, 6062, 3470, 452, 261, 8439, 8433, 8436, 2025, 1968, 1990, 8590, 5674, 5700,
-				5493, 123, 8653, 13040, 11516, 1, 1, 1, 1, 1, 6368, 5533, 8896, 1835, 9023, 9024, 9317, 8945, 8939,
-				8946, 8942, 8918, 8944, 8943, 8940, 8941, 8919, 37, 8394, 8394, 5466, 5428, 2025, 1968, 1990, 3829, 37,
-				364, 9187, 8653, 8244, 8244, 261, 8244, 8240, 8244, 8244, 261, 261, 261, 261, 261, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 13885, 1, 13552, 1, 1, 13611, 1, 8653, 8689, 571, 6063, 5674,
-				5700, 261, 8448, 8442, 8445, 8689, 111, 147, 8590, 8653, 8653, 110, 8653, 13040, 11516, 369, 1, 1, 1, 1,
-				8653, 6368, 3793, 8896, 1835, 9023, 9024, 9317, 8945, 8939, 8946, 8942, 8918, 8944, 8943, 8940, 8941,
-				8919, 1, 7798, 7794, 5564, 8289, 9023, 9024, 9317, 914, 4060, 8653, 9187, 8653, 8244, 8244, 261, 8244,
-				8240, 8244, 8244, 261, 261, 261, 261, 261, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 13885, 1, 13552, 1, 1, 13611, 1, 1, 7798, 7794, 8406, 8289, 137, 261, 2435, 8409, 8292, 8653, 8653,
-				8663, 8590, 4304, 8653, 4809, 4649, 2328, 4304, 6515, 1, 1, 1, 1, 6515, 6368, 8653, 8896, 1835, 8653,
-				7798, 7794, 5742, 8289, 8382, 8388, 8385, 914, 4060, 8548, 8548, 8653, 1, 1, 1, 1, 8662, 8653, 8653, 1,
-				1, 1, 1, 9187, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 8653, 8626, 8626, 8626, 8626, 8626, 8626,
-				8626, 8626, 8626, 8626, 8626, 395, 1, 1, 1, 1, 1, 1, 2484, 1, 1, 1, 1, 1, 1, 8653, 1, 1, 1, 1, 1, 1, 1,
-				37, 8394, 8394, 118, 3698, 117, 1, 9323, 1, 3896, 4981, 3986, 1, 1, 1, 7798, 7794, 3519, 1066, 8653,
-				374, 9199, 2875, 4060, 3109, 3187, 8653, 7752, 7791, 7788, 7779, 7785, 7758, 7761, 7773, 7770, 7776,
-				7767, 7764, 7755, 7782, 5392, 8653, 3792, 8626, 1123, 955, 1123, 955, 39, 149, 3444, 3891, 8691, 1379,
-				8672, 3031, 2953, 3343, 3265, 2797, 4622, 843, 1009, 8674, 921, 6659, 992, 8653, 8675, 8673, 832, 8669,
-				8670, 8671, 6637, 324, 1298, 1298, 2328, 3061, 374, 1685, 8653, 374, 374, 5735, 1, 39, 39, 3986, 550, 1,
-				7798, 7794, 8334, 8289, 8653, 8653, 8215, 8295, 8292, 8277, 8280, 8665, 7752, 7791, 7788, 7779, 7785,
-				7758, 7761, 7773, 7770, 7776, 7767, 7764, 7755, 7782, 8259, 8653, 7798, 7794, 5742, 8289, 8382, 8388,
-				8385, 914, 4060, 8548, 8548, 629, 8307, 8274, 8271, 8286, 8283, 8268, 8653, 8322, 8331, 8301, 8325,
-				8265, 8328, 5793, 8298, 8304, 8319, 8316, 8313, 8310, 8262, 37, 8394, 8394, 341, 2328, 8653, 8060, 8057,
-				8394, 8218, 8664, 8653, 8337, 8337, 39, 7683, 7680, 723, 1066, 3788, 9128, 9142, 2875, 4060, 3109, 3187,
-				8593, 714, 9315, 9316, 8950, 8948, 8957, 8956, 8952, 8953, 8951, 8954, 8955, 8958, 8949, 5392, 478,
-				7725, 7725, 454, 7725, 7725, 7725, 7725, 148, 8653, 7725, 7725, 1565, 8672, 3031, 2953, 3343, 3265,
-				2797, 7536, 843, 1009, 8674, 921, 6659, 992, 8653, 8675, 8673, 832, 8669, 8670, 8671, 6637, 4864, 3776,
-				8653, 3421, 784, 8653, 1685, 150, 8653, 8653, 8212, 6204, 172, 7683, 7680, 723, 1066, 8663, 4622, 8660,
-				2875, 4060, 3109, 3187, 8653, 714, 9315, 9316, 8950, 8948, 8957, 8956, 8952, 8953, 8951, 8954, 8955,
-				8958, 8949, 5392, 378, 39, 39, 3986, 8691, 2025, 1968, 1990, 8653, 3844, 364, 364, 8662, 8672, 3031,
-				2953, 3343, 3265, 2797, 47, 843, 1009, 8674, 921, 6659, 992, 1, 8675, 8673, 832, 8669, 8670, 8671, 6637,
-				4809, 4649, 8653, 8667, 8668, 8602, 1685, 1, 7798, 7794, 3519, 1066, 39, 39, 8665, 2875, 4060, 3109,
-				3187, 8653, 7752, 7791, 7788, 7779, 7785, 7758, 7761, 7773, 7770, 7776, 7767, 7764, 7755, 7782, 5392, 1,
-				3499, 2328, 8653, 1261, 8653, 8653, 351, 7218, 6882, 8545, 3923, 8665, 8672, 3031, 2953, 3343, 3265,
-				2797, 8605, 843, 1009, 8674, 921, 6659, 992, 8653, 8675, 8673, 832, 8669, 8670, 8671, 6637, 98, 8653,
-				8653, 3651, 5755, 8664, 1685, 39, 7683, 7680, 723, 1066, 39, 39, 8659, 2875, 4060, 3109, 3187, 8209,
-				714, 9315, 9316, 8950, 8948, 8957, 8956, 8952, 8953, 8951, 8954, 8955, 8958, 8949, 5392, 479, 8355,
-				8355, 8664, 8349, 8340, 8346, 8343, 3643, 2328, 8352, 8352, 5860, 8672, 3031, 2953, 3343, 3265, 2797,
-				318, 843, 1009, 8674, 921, 6659, 992, 8653, 8675, 8673, 832, 8669, 8670, 8671, 6637, 8653, 8653, 8519,
-				6196, 8661, 8653, 1685, 8653, 8653, 8658, 8212, 612, 7683, 7680, 723, 1066, 624, 8665, 8653, 2875, 4060,
-				3109, 3187, 8653, 714, 9315, 9316, 8950, 8948, 8957, 8956, 8952, 8953, 8951, 8954, 8955, 8958, 8949,
-				5392, 1, 7798, 7794, 5564, 8289, 8653, 9276, 144, 914, 4060, 8653, 146, 8215, 8672, 3031, 2953, 3343,
-				3265, 2797, 8970, 843, 1009, 8674, 921, 6659, 992, 1234, 8675, 8673, 832, 8669, 8670, 8671, 6637, 8660,
-				4948, 8653, 324, 8664, 7170, 1685, 39, 7683, 7680, 723, 1066, 39, 39, 8659, 2875, 4060, 3109, 3187,
-				8209, 714, 9315, 9316, 8950, 8948, 8957, 8956, 8952, 8953, 8951, 8954, 8955, 8958, 8949, 5392, 8653,
-				8653, 2328, 2209, 5493, 758, 617, 8218, 5493, 2997, 353, 8653, 8659, 8672, 3031, 2953, 3343, 3265, 2797,
-				5927, 843, 1009, 8674, 921, 6659, 992, 72, 8675, 8673, 832, 8669, 8670, 8671, 6637, 5466, 5428, 8653,
-				97, 5466, 5428, 1685, 12416, 8653, 8658, 8212, 612, 7683, 7680, 723, 1066, 5674, 5700, 3788, 2875, 4060,
-				3109, 3187, 8653, 714, 9315, 9316, 8950, 8948, 8957, 8956, 8952, 8953, 8951, 8954, 8955, 8958, 8949,
-				5392, 90, 8412, 8412, 8658, 8412, 8412, 8412, 8412, 2328, 8653, 8412, 8412, 2753, 8672, 3031, 2953,
-				3343, 3265, 2797, 8575, 843, 1009, 8674, 921, 6659, 992, 8653, 8675, 8673, 832, 8669, 8670, 8671, 6637,
-				8653, 8554, 8653, 3300, 145, 8653, 1685, 39, 7683, 7680, 723, 1066, 39, 39, 8659, 2875, 4060, 3109,
-				3187, 8209, 714, 9315, 9316, 8950, 8948, 8957, 8956, 8952, 8953, 8951, 8954, 8955, 8958, 8949, 5392, 93,
-				8572, 8572, 627, 8566, 8557, 8563, 8560, 48, 8653, 8569, 8569, 8667, 8672, 3031, 2953, 3343, 3265, 2797,
-				3777, 843, 1009, 8674, 921, 6659, 992, 35, 8675, 8673, 832, 8669, 8670, 8671, 6637, 722, 5493, 2907, 39,
-				7683, 7680, 723, 1066, 8653, 8658, 8212, 2875, 4060, 3109, 3187, 8657, 714, 9315, 9316, 8950, 8948,
-				8957, 8956, 8952, 8953, 8951, 8954, 8955, 8958, 8949, 5392, 5466, 5428, 8653, 8653, 604, 1679, 8653,
-				1352, 39, 8667, 1725, 2311, 8691, 8672, 3031, 2953, 3343, 3265, 2797, 8653, 843, 1009, 8674, 921, 6659,
-				992, 8653, 8675, 8673, 832, 8669, 8670, 8671, 6637, 39, 7683, 7680, 723, 1066, 1332, 592, 2418, 2875,
-				4060, 3109, 3187, 8653, 714, 9315, 9316, 8950, 8948, 8957, 8956, 8952, 8953, 8951, 8954, 8955, 8958,
-				8949, 5392, 1, 7798, 7794, 5742, 8289, 8382, 8388, 8385, 914, 4060, 8653, 7016, 342, 8672, 3031, 2953,
-				3343, 3265, 2797, 3392, 843, 1009, 8674, 921, 6659, 992, 1, 8675, 8673, 832, 8669, 8670, 8671, 6637,
-				8653, 8492, 8489, 8656, 8663, 98, 1685, 39, 7683, 7680, 723, 1066, 3924, 342, 8653, 2875, 4060, 3109,
-				3187, 122, 714, 9315, 9316, 8950, 8948, 8957, 8956, 8952, 8953, 8951, 8954, 8955, 8958, 8949, 5392,
-				9122, 9123, 9124, 8653, 8662, 8653, 6427, 580, 8653, 8653, 8653, 8499, 8495, 8672, 3031, 2953, 3343,
-				3265, 2797, 8689, 843, 1009, 8674, 921, 6659, 992, 8653, 8675, 8673, 832, 8669, 8670, 8671, 6637, 8653,
-				8653, 39, 7683, 7680, 3519, 1066, 8519, 8653, 1667, 2875, 4060, 3109, 3187, 121, 714, 9315, 9316, 8950,
-				8948, 8957, 8956, 8952, 8953, 8951, 8954, 8955, 8958, 8949, 5392, 8689, 483, 101, 5674, 5700, 8551,
-				8653, 2, 45, 8525, 8525, 3069, 8653, 8672, 3031, 2953, 3343, 3265, 2797, 9088, 843, 1009, 8674, 921,
-				6659, 992, 8653, 8675, 8673, 832, 8669, 8670, 8671, 6637, 39, 7683, 7680, 3519, 1066, 8653, 1685, 408,
-				2875, 4060, 3109, 3187, 120, 714, 9315, 9316, 8950, 8948, 8957, 8956, 8952, 8953, 8951, 8954, 8955,
-				8958, 8949, 5392, 8522, 311, 8653, 3829, 8587, 5674, 5700, 8653, 8653, 8492, 8489, 37, 2210, 8672, 3031,
-				2953, 3343, 3265, 2797, 139, 843, 1009, 8674, 921, 6659, 992, 8653, 8675, 8673, 832, 8669, 8670, 8671,
-				6637, 39, 7683, 7680, 6764, 1066, 8653, 1685, 8653, 2875, 4060, 3109, 3187, 143, 714, 9315, 9316, 8950,
-				8948, 8957, 8956, 8952, 8953, 8951, 8954, 8955, 8958, 8949, 5392, 8689, 630, 8653, 482, 3876, 5674,
-				5700, 8653, 37, 8394, 8394, 8653, 8653, 8672, 3031, 2953, 3343, 3265, 2797, 142, 843, 1009, 8674, 921,
-				6659, 992, 8653, 8675, 8673, 832, 8669, 8670, 8671, 6637, 39, 7683, 7680, 6764, 1066, 3829, 5674, 5700,
-				2875, 4060, 3109, 3187, 140, 714, 9315, 9316, 8950, 8948, 8957, 8956, 8952, 8953, 8951, 8954, 8955,
-				8958, 8949, 5392, 8689, 8653, 8653, 462, 1266, 5674, 5700, 8653, 8653, 14333, 14320, 8653, 8653, 8672,
-				3031, 2953, 3343, 3265, 2797, 1543, 843, 1009, 8674, 921, 6659, 992, 8653, 8675, 8673, 832, 8669, 8670,
-				8671, 6637, 39, 7683, 7680, 723, 1066, 8653, 5674, 5700, 2875, 4060, 3109, 3187, 542, 714, 9315, 9316,
-				8950, 8948, 8957, 8956, 8952, 8953, 8951, 8954, 8955, 8958, 8949, 5392, 8689, 8653, 8653, 8653, 6468,
-				5674, 5700, 101, 8653, 8653, 8551, 7427, 1, 8672, 3031, 2953, 3343, 3265, 2797, 3374, 843, 1009, 8674,
-				921, 6659, 992, 8653, 8675, 8673, 832, 8669, 8670, 8671, 6637, 39, 7683, 7680, 6855, 1066, 8653, 8653,
-				8653, 2875, 4060, 3109, 3187, 540, 714, 9315, 9316, 8950, 8948, 8957, 8956, 8952, 8953, 8951, 8954,
-				8955, 8958, 8949, 5392, 8653, 7077, 7590, 8653, 3877, 8653, 8653, 8653, 460, 1, 8653, 8653, 8209, 8672,
-				3031, 2953, 3343, 3265, 2797, 3797, 843, 1009, 8674, 921, 6659, 992, 8653, 8675, 8673, 832, 8669, 8670,
-				8671, 6637, 39, 7683, 7680, 6855, 1066, 8653, 8653, 8653, 2875, 4060, 3109, 3187, 544, 714, 9315, 9316,
-				8950, 8948, 8957, 8956, 8952, 8953, 8951, 8954, 8955, 8958, 8949, 5392, 645, 3878, 7591, 8653, 8653,
-				8653, 8653, 8653, 8653, 8653, 8212, 8653, 8537, 8672, 3031, 2953, 3343, 3265, 2797, 2415, 843, 1009,
-				8674, 921, 6659, 992, 8653, 8675, 8673, 832, 8669, 8670, 8671, 6637, 39, 7683, 7680, 3519, 1066, 8653,
-				8653, 8653, 2875, 4060, 3109, 3187, 8653, 714, 9315, 9316, 8950, 8948, 8957, 8956, 8952, 8953, 8951,
-				8954, 8955, 8958, 8949, 5392, 1, 8653, 1045, 8653, 8653, 8653, 8653, 8653, 8653, 8653, 8541, 8653, 8635,
-				8672, 3031, 2953, 3343, 3265, 2797, 8653, 843, 1009, 8674, 921, 6659, 992, 8653, 8675, 8673, 832, 8669,
-				8670, 8671, 6637, 39, 7683, 7680, 3519, 1066, 8653, 8653, 8653, 2875, 4060, 3109, 3187, 8653, 714, 9315,
-				9316, 8950, 8948, 8957, 8956, 8952, 8953, 8951, 8954, 8955, 8958, 8949, 5392, 8653, 8653, 8653, 8653,
-				8653, 8653, 8653, 8653, 8653, 8653, 8664, 8653, 8653, 8672, 3031, 2953, 3343, 3265, 2797, 8653, 843,
-				1009, 8674, 921, 6659, 992, 8653, 8675, 8673, 832, 8669, 8670, 8671, 6637, 39, 7683, 7680, 723, 1066,
-				8653, 8653, 8653, 2875, 4060, 3109, 3187, 8653, 714, 9315, 9316, 8950, 8948, 8957, 8956, 8952, 8953,
-				8951, 8954, 8955, 8958, 8949, 5392, 1, 8653, 8653, 676, 8653, 8653, 8653, 8653, 9156, 8653, 9150, 9154,
-				8653, 8672, 3031, 2953, 3343, 3265, 2797, 8653, 843, 1009, 8674, 921, 6659, 992, 8653, 8675, 8673, 832,
-				8669, 8670, 8671, 6637, 8653, 1, 1, 4948, 439, 1, 8653, 3928, 9148, 9149, 9179, 9180, 9157, 8653, 8653,
-				8602, 8528, 222, 8638, 8646, 8642, 8653, 1, 8653, 8653, 8650, 8663, 8653, 8653, 8653, 8653, 8653, 9159,
-				8653, 192, 8659, 8659, 730, 8653, 9181, 1575, 1669, 3881, 9160, 8653, 8653, 9158, 8653, 8653, 9170,
-				9169, 8531, 222, 8653, 8653, 3881, 3923, 8653, 8653, 8653, 8650, 8662, 9175, 9176, 8605, 9182, 9173,
-				9174, 9153, 9155, 9177, 8659, 9151, 9152, 9178, 8653, 9163, 9164, 9165, 9161, 9162, 9171, 9172, 9167,
-				9166, 9168, 8650, 4961, 8653, 8653, 7683, 7680, 9183, 8691, 2025, 1968, 1990, 844, 192, 8658, 8658,
-				1664, 907, 9315, 9316, 8950, 8948, 8957, 8956, 8952, 8953, 8951, 8954, 8955, 8958, 8949, 6681, 9023,
-				9024, 9317, 8945, 8939, 8946, 8942, 8918, 8944, 8943, 8940, 8941, 8919, 8653, 8653, 1636, 8653, 8653,
-				8658, 8653, 8653, 8653, 8653, 8653, 8653, 273, 8202, 8198, 8653, 8206, 8123, 8117, 8120, 8653, 9085,
-				5767, 9086, 9087, 907, 8195, 8192, 8183, 8189, 8162, 8165, 8177, 8174, 8180, 8171, 8168, 8159, 8186,
-				6681, 8132, 8129, 8126, 8138, 8156, 8135, 8147, 8114, 8141, 8144, 8153, 8150, 8111, 8653, 8653, 8653,
-				8653, 8653, 8653, 8653, 8653, 8653, 8653, 8653, 8653, 8653, 8667, 8668, 8653, 8653, 2025, 1968, 1990,
-				8653, 9085, 5767, 9086, 9087, 1172, 9315, 9316, 8950, 8948, 8957, 8956, 8952, 8953, 8951, 8954, 8955,
-				8958, 8949, 8653, 9023, 9024, 9317, 8945, 8939, 8946, 8942, 8918, 8944, 8943, 8940, 8941, 8919, 8653,
-				124, 8653, 1, 8653, 8653, 8653, 8653, 8653, 8653, 8653, 8653, 273, 8463, 8460, 396, 8659, 8123, 8117,
-				8120, 8653, 9085, 5767, 9086, 9087, 1172, 8195, 8192, 8183, 8189, 8162, 8165, 8177, 8174, 8180, 8171,
-				8168, 8159, 8186, 8653, 8132, 8129, 8126, 8138, 8156, 8135, 8147, 8114, 8141, 8144, 8153, 8150, 8111,
-				29, 421, 421, 8227, 421, 421, 421, 421, 421, 421, 8227, 8227, 8227, 8653, 5234, 8653, 8653, 8653, 8653,
-				8653, 8653, 9085, 5767, 9086, 9087, 7722, 396, 8658, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421,
-				421, 421, 421, 8653, 8653, 8653, 5180, 5150, 8653, 8227, 396, 32, 422, 422, 8224, 422, 422, 422, 422,
-				422, 422, 8224, 8224, 8224, 8653, 1, 8653, 8653, 7686, 8653, 5123, 4428, 8653, 8227, 8653, 8653, 8653,
-				194, 8227, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 8653, 8653, 8653, 8653,
-				8653, 8653, 8224, 8653, 634, 644, 644, 644, 644, 644, 644, 644, 644, 644, 8397, 8397, 8397, 8653, 8653,
-				8653, 8653, 8653, 8653, 8653, 8653, 8653, 8224, 8653, 8653, 8653, 8653, 8224, 644, 644, 644, 644, 644,
-				644, 644, 644, 644, 644, 644, 644, 644, 194, 8653, 8653, 8653, 8653, 8653, 8397, 8653, 37, 8668, 8668,
-				8668, 8668, 8668, 8668, 8668, 126, 8653, 8668, 8668, 125, 37, 8667, 8667, 8667, 8667, 8667, 8667, 8667,
-				8653, 644, 8667, 8667, 8653, 8653, 8397, 8668, 8668, 8668, 8668, 8668, 8668, 8668, 8668, 8668, 8668,
-				8668, 8668, 8668, 8667, 8667, 8667, 8667, 8667, 8667, 8667, 8667, 8667, 8667, 8667, 8667, 8667, 1, 8337,
-				8337, 8653, 8391, 8382, 8388, 8385, 8653, 572, 364, 364, 396, 8653, 8457, 8451, 8454, 8668, 74, 8668,
-				5234, 7716, 8653, 8668, 5234, 8653, 8653, 8653, 8653, 8653, 8667, 8253, 8667, 8653, 8653, 8256, 8667,
-				9023, 9024, 9317, 8945, 8939, 8946, 8942, 8918, 8944, 8943, 8940, 8941, 8919, 5180, 5150, 8653, 1, 5180,
-				5150, 1, 8653, 8653, 8653, 8653, 8653, 7707, 7704, 8659, 588, 8653, 8653, 8659, 8653, 8653, 8653, 8653,
-				8653, 5123, 4428, 396, 8653, 5123, 4428, 8653, 8653, 8653, 8653, 8653, 8653, 8653, 8653, 8653, 7719,
-				8653, 8653, 8653, 8653, 8653, 8653, 8653, 8653, 396, 8653, 8653, 8653, 8653, 8653, 8653, 8653, 8653,
-				8653, 8653, 8653, 8653, 8653, 8653, 8653, 8653, 8653, 8653, 8653, 8653, 8653, 8653, 8653, 8653, 8653,
-				8653, 7592, 8653, 8653, 8658, 588, 8653, 8653, 8658, 8653, 8653, 8653, 8653, 8653, 8653, 8653, 8653,
-				8653, 8653, 8653, 7710, 8653, 7713 };
-	}
-
-	public final static char termAction[] = TermAction.termAction;
-
-	@Override
-	public final int termAction(int index) {
-		return termAction[index];
-	}
-
-	public interface Asb {
-		public final static char asb[] = { 0, 957, 123, 720, 127, 821, 661, 661, 661, 661, 1079, 821, 1251, 1251, 1004,
-				1251, 62, 1, 64, 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, 1251, 306, 311, 308, 315, 313,
-				322, 320, 324, 323, 325, 212, 326, 720, 720, 381, 381, 381, 381, 763, 223, 353, 353, 1251, 381, 117,
-				268, 1251, 1251, 353, 763, 268, 268, 268, 1160, 700, 681, 777, 380, 1370, 1081, 1251, 1, 1251, 1251,
-				184, 184, 223, 720, 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, 721,
-				721, 721, 721, 721, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 1109, 721, 268, 351, 351,
-				351, 351, 1372, 268, 353, 353, 1315, 1238, 821, 821, 821, 1251, 181, 1251, 1083, 1251, 1223, 1251, 1079,
-				763, 1251, 1232, 721, 117, 117, 353, 661, 22, 1315, 530, 1177, 199, 198, 476, 1258, 1258, 1079, 64, 721,
-				682, 117, 380, 720, 761, 1366, 268, 760, 762, 760, 268, 117, 308, 308, 306, 306, 306, 313, 313, 313,
-				313, 313, 313, 311, 311, 320, 315, 315, 323, 322, 324, 1107, 1107, 325, 821, 821, 821, 821, 763, 763,
-				351, 383, 1070, 1, 620, 618, 625, 623, 627, 626, 628, 337, 350, 351, 1251, 1251, 763, 574, 514, 267,
-				1002, 420, 1085, 186, 1083, 179, 1079, 1223, 763, 763, 1372, 1, 351, 655, 181, 1160, 117, 645, 268,
-				1179, 1181, 763, 1370, 1262, 681, 1107, 721, 1107, 114, 680, 821, 821, 821, 682, 821, 763, 69, 114, 114,
-				901, 120, 763, 271, 181, 721, 381, 1251, 1251, 268, 1081, 763, 181, 763, 762, 1370, 720, 720, 720, 720,
-				720, 720, 821, 821, 1044, 1057, 1057, 1057, 1057, 1039, 1079, 658, 721, 721, 721, 721, 721, 721, 721,
-				721, 721, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 721, 700, 1319, 1251, 1251, 518,
-				267, 513, 268, 420, 763, 665, 1376, 663, 1372, 181, 524, 763, 1372, 763, 268, 655, 21, 268, 203, 1156,
-				202, 1181, 1372, 761, 672, 682, 1107, 774, 682, 700, 700, 698, 680, 700, 114, 114, 577, 901, 1312, 763,
-				821, 821, 643, 1079, 760, 679, 268, 1251, 1315, 1366, 1081, 763, 761, 268, 268, 268, 268, 223, 223, 763,
-				721, 618, 618, 618, 623, 620, 620, 626, 625, 627, 1107, 628, 1322, 1251, 1171, 1170, 266, 655, 763, 420,
-				1107, 1086, 661, 1374, 759, 1094, 420, 665, 664, 668, 665, 668, 1372, 524, 524, 763, 763, 1251, 21, 588,
-				720, 200, 200, 191, 191, 1175, 1315, 823, 268, 763, 682, 721, 682, 268, 1312, 268, 698, 901, 821, 268,
-				668, 668, 114, 609, 1315, 937, 614, 1312, 1312, 763, 268, 763, 1370, 1181, 207, 1079, 763, 761, 125,
-				1251, 1251, 1251, 720, 1251, 1154, 1251, 1081, 268, 268, 1372, 915, 720, 1251, 1251, 518, 268, 222, 268,
-				268, 1370, 181, 1088, 1088, 351, 661, 1096, 668, 668, 668, 668, 763, 524, 654, 920, 654, 654, 588, 720,
-				720, 1179, 1156, 588, 1295, 682, 643, 682, 114, 901, 720, 682, 668, 181, 1079, 609, 1312, 720, 21, 1312,
-				609, 1366, 1181, 131, 925, 130, 763, 763, 761, 679, 821, 1251, 223, 721, 117, 1154, 763, 1251, 279,
-				1171, 761, 424, 181, 425, 436, 614, 721, 1107, 610, 931, 611, 1096, 668, 668, 766, 654, 655, 721, 763,
-				1251, 135, 591, 1312, 588, 720, 680, 223, 114, 1312, 268, 181, 943, 763, 821, 268, 609, 268, 207, 114,
-				912, 1002, 763, 114, 114, 823, 1251, 268, 117, 1251, 222, 114, 424, 424, 1374, 1374, 947, 1324, 1086,
-				436, 1096, 721, 721, 611, 611, 1096, 1096, 943, 471, 767, 763, 655, 1251, 1251, 591, 591, 682, 268, 114,
-				125, 1079, 763, 223, 599, 764, 268, 114, 268, 268, 1309, 655, 424, 424, 425, 425, 425, 863, 950, 350,
-				661, 582, 582, 611, 611, 766, 763, 1079, 1079, 763, 821, 591, 682, 125, 268, 599, 268, 181, 181, 1311,
-				655, 425, 424, 436, 425, 436, 349, 349, 763, 763, 763, 1182, 673, 602, 424, 436, 381, 381, 763, 763,
-				1171, 602, 655, 350, 381, 418, 582, 349, 760 };
-	}
-
-	public final static char asb[] = Asb.asb;
-
-	@Override
-	public final int asb(int index) {
-		return asb[index];
-	}
-
-	public interface Asr {
-		public final static char asr[] = { 0, 30, 5, 32, 62, 28, 63, 33, 34, 35, 36, 37, 38, 39, 64, 40, 65, 31, 29, 6,
-				7, 68, 44, 45, 11, 10, 42, 43, 46, 52, 61, 27, 3, 4, 58, 59, 60, 41, 56, 50, 55, 14, 15, 17, 26, 16, 22,
-				20, 21, 23, 24, 19, 18, 25, 13, 49, 53, 51, 48, 57, 72, 12, 9, 8, 1, 2, 75, 74, 0, 14, 15, 16, 17, 48,
-				74, 18, 49, 50, 19, 20, 21, 75, 9, 51, 22, 23, 52, 53, 55, 68, 56, 57, 13, 24, 25, 26, 58, 59, 60, 41,
-				1, 2, 3, 44, 45, 11, 10, 42, 43, 8, 46, 4, 27, 61, 47, 12, 0, 127, 12, 0, 3, 29, 0, 129, 0, 122, 0, 127,
-				47, 129, 73, 76, 12, 78, 0, 74, 75, 68, 44, 45, 11, 10, 42, 43, 8, 46, 52, 61, 27, 3, 4, 9, 58, 59, 60,
-				41, 56, 50, 55, 14, 15, 17, 26, 16, 22, 20, 21, 23, 24, 19, 18, 25, 13, 49, 53, 51, 48, 57, 81, 1, 2,
-				72, 12, 0, 9, 8, 54, 1, 2, 4, 0, 5, 79, 78, 47, 72, 6, 7, 3, 71, 77, 80, 73, 12, 76, 98, 0, 12, 78, 76,
-				41, 0, 5, 77, 78, 98, 127, 81, 47, 6, 7, 129, 73, 14, 15, 16, 17, 48, 74, 18, 49, 50, 19, 20, 21, 75, 9,
-				51, 22, 23, 52, 53, 55, 68, 56, 57, 13, 24, 25, 26, 58, 59, 60, 2, 3, 44, 45, 11, 10, 42, 43, 8, 46, 4,
-				27, 61, 41, 1, 76, 12, 0, 9, 1, 2, 8, 4, 13, 67, 0, 32, 33, 34, 35, 36, 37, 9, 38, 39, 68, 79, 40, 31,
-				1, 2, 71, 3, 128, 126, 44, 45, 8, 4, 72, 28, 29, 30, 105, 99, 10, 106, 107, 42, 43, 84, 83, 66, 96, 97,
-				120, 121, 100, 101, 11, 102, 103, 104, 5, 12, 78, 98, 127, 76, 81, 47, 6, 7, 129, 108, 109, 110, 111,
-				112, 113, 114, 115, 116, 117, 118, 119, 80, 73, 77, 0, 48, 74, 49, 50, 75, 9, 51, 52, 53, 55, 68, 56,
-				57, 58, 59, 60, 41, 44, 45, 11, 10, 42, 43, 8, 46, 77, 61, 3, 4, 27, 13, 1, 2, 63, 64, 65, 14, 15, 17,
-				26, 16, 22, 20, 21, 23, 24, 19, 18, 25, 32, 38, 39, 34, 37, 36, 31, 33, 28, 29, 30, 5, 7, 6, 35, 40, 62,
-				0, 123, 124, 125, 78, 81, 9, 12, 3, 11, 10, 8, 47, 70, 67, 95, 69, 14, 15, 30, 5, 32, 16, 17, 62, 28,
-				18, 63, 33, 34, 19, 35, 36, 20, 21, 37, 38, 22, 23, 39, 64, 54, 40, 13, 65, 24, 25, 29, 26, 27, 6, 7, 1,
-				2, 4, 31, 0, 14, 15, 30, 5, 32, 16, 17, 28, 18, 33, 34, 19, 35, 36, 20, 21, 37, 9, 38, 22, 23, 39, 40,
-				24, 31, 25, 29, 26, 2, 71, 11, 10, 8, 4, 47, 6, 7, 1, 76, 12, 3, 0, 12, 73, 76, 1, 28, 0, 1, 2, 12, 73,
-				81, 0, 74, 75, 127, 12, 3, 13, 49, 53, 51, 48, 57, 17, 26, 16, 22, 20, 21, 23, 24, 19, 18, 25, 14, 15,
-				58, 59, 60, 41, 56, 50, 55, 8, 9, 4, 44, 45, 42, 43, 46, 52, 61, 27, 1, 2, 10, 11, 0, 12, 78, 72, 79, 0,
-				77, 80, 73, 1, 2, 0, 30, 28, 29, 68, 12, 77, 98, 80, 73, 76, 0, 30, 28, 29, 68, 79, 77, 78, 98, 76, 72,
-				3, 80, 6, 7, 5, 12, 47, 73, 0, 84, 83, 66, 96, 97, 100, 101, 11, 102, 103, 77, 108, 109, 110, 111, 112,
-				113, 114, 115, 116, 117, 118, 119, 73, 104, 80, 0, 5, 78, 98, 127, 47, 6, 7, 108, 109, 73, 12, 81, 0,
-				77, 96, 97, 66, 0, 4, 66, 6, 7, 5, 12, 78, 72, 0, 76, 95, 123, 124, 125, 54, 78, 122, 130, 81, 69, 79,
-				70, 67, 85, 87, 93, 91, 82, 89, 90, 92, 94, 72, 86, 88, 47, 12, 63, 62, 64, 65, 32, 38, 39, 34, 37, 36,
-				31, 33, 28, 29, 30, 5, 7, 6, 35, 40, 68, 74, 75, 49, 53, 51, 48, 57, 3, 17, 26, 16, 22, 20, 21, 23, 24,
-				19, 18, 25, 14, 15, 58, 59, 60, 41, 56, 50, 55, 44, 45, 11, 10, 42, 43, 46, 52, 61, 27, 13, 4, 9, 8, 2,
-				1, 0, 31, 1, 2, 4, 123, 124, 125, 0, 78, 98, 0, 74, 75, 44, 45, 11, 10, 42, 43, 8, 46, 52, 61, 27, 4, 9,
-				58, 59, 60, 41, 56, 50, 55, 14, 15, 17, 26, 16, 22, 20, 21, 23, 24, 19, 18, 25, 13, 49, 53, 51, 48, 57,
-				71, 1, 2, 3, 0, 14, 15, 30, 5, 32, 16, 17, 62, 28, 18, 63, 33, 34, 19, 35, 36, 20, 21, 37, 38, 22, 23,
-				39, 64, 40, 13, 65, 24, 31, 25, 29, 26, 1, 2, 4, 27, 6, 7, 98, 0, 14, 15, 30, 32, 16, 17, 62, 28, 18,
-				63, 33, 95, 34, 19, 35, 36, 20, 21, 37, 67, 38, 22, 23, 39, 64, 54, 40, 13, 65, 24, 70, 31, 25, 29, 26,
-				27, 69, 72, 5, 12, 11, 47, 6, 7, 8, 9, 2, 4, 3, 1, 10, 0, 76, 12, 84, 83, 0, 12, 73, 81, 80, 0, 12, 78,
-				73, 76, 3, 0, 78, 5, 71, 6, 7, 66, 12, 73, 47, 80, 3, 0, 12, 72, 73, 0, 41, 54, 0, 5, 12, 72, 6, 7, 80,
-				0, 14, 15, 16, 17, 48, 74, 18, 49, 50, 19, 20, 21, 75, 9, 51, 22, 23, 52, 53, 55, 68, 56, 57, 13, 24,
-				25, 26, 58, 59, 60, 1, 2, 3, 44, 45, 11, 10, 42, 43, 8, 46, 4, 27, 61, 69, 41, 0, 27, 75, 74, 42, 43,
-				106, 107, 102, 103, 8, 46, 80, 66, 113, 114, 110, 111, 112, 118, 117, 119, 84, 83, 115, 116, 100, 101,
-				96, 97, 104, 108, 44, 45, 99, 126, 13, 63, 62, 64, 65, 17, 26, 16, 22, 20, 21, 23, 24, 19, 18, 25, 14,
-				15, 32, 38, 39, 34, 37, 36, 31, 33, 28, 29, 30, 35, 40, 77, 73, 5, 11, 10, 6, 7, 3, 71, 1, 2, 4, 0, 54,
-				4, 78, 1, 2, 12, 72, 6, 7, 5, 0, 47, 12, 3, 9, 8, 11, 10, 4, 1, 2, 6, 7, 5, 78, 0, 14, 15, 16, 17, 48,
-				74, 18, 49, 50, 19, 20, 21, 75, 9, 51, 22, 23, 52, 53, 55, 68, 56, 57, 13, 24, 25, 26, 58, 59, 60, 41,
-				1, 2, 3, 44, 45, 11, 10, 42, 43, 46, 4, 27, 61, 78, 8, 0, 98, 9, 8, 80, 77, 5, 1, 2, 11, 10, 4, 6, 7,
-				71, 3, 76, 12, 73, 0, 8, 9, 3, 71, 10, 11, 98, 14, 15, 30, 5, 32, 16, 17, 62, 28, 18, 63, 33, 34, 19,
-				35, 36, 20, 21, 37, 38, 22, 23, 39, 64, 40, 13, 65, 24, 31, 25, 29, 26, 1, 2, 4, 27, 6, 7, 76, 12, 0, 4,
-				12, 72, 6, 7, 5, 1, 2, 0, 27, 13, 63, 62, 64, 65, 17, 26, 16, 22, 20, 21, 23, 24, 19, 18, 25, 14, 15,
-				79, 78, 98, 127, 81, 72, 129, 128, 126, 44, 45, 105, 99, 42, 43, 106, 107, 83, 84, 66, 77, 96, 97, 100,
-				101, 102, 103, 104, 108, 109, 80, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 73, 120, 121, 30,
-				32, 28, 33, 34, 35, 36, 37, 38, 39, 40, 31, 29, 47, 12, 76, 71, 8, 9, 3, 11, 1, 2, 4, 6, 7, 5, 10, 0,
-				17, 62, 28, 18, 63, 33, 19, 35, 20, 21, 37, 38, 22, 23, 64, 40, 13, 65, 24, 31, 25, 29, 26, 16, 32, 30,
-				27, 15, 14, 12, 3, 11, 47, 70, 67, 95, 34, 39, 36, 69, 66, 4, 5, 10, 6, 7, 9, 8, 1, 2, 54, 0, 4, 12, 78,
-				72, 6, 7, 5, 0 };
-	}
-
-	public final static char asr[] = Asr.asr;
-
-	@Override
-	public final int asr(int index) {
-		return asr[index];
-	}
-
-	public interface Nasb {
-		public final static char nasb[] = { 0, 198, 13, 83, 13, 13, 13, 13, 13, 13, 87, 13, 13, 13, 205, 13, 31, 175,
-				263, 83, 83, 83, 83, 159, 83, 83, 83, 83, 83, 83, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 83, 13,
-				83, 250, 342, 342, 342, 342, 263, 227, 261, 261, 75, 5, 142, 97, 13, 13, 261, 163, 97, 97, 97, 194, 1,
-				35, 83, 42, 71, 13, 13, 175, 13, 13, 104, 104, 227, 250, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
-				83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 236, 83, 97, 13, 13, 13,
-				13, 89, 97, 48, 48, 312, 286, 13, 13, 13, 287, 179, 287, 191, 287, 191, 287, 11, 263, 287, 279, 83, 142,
-				142, 48, 13, 56, 312, 137, 193, 46, 46, 13, 13, 13, 11, 263, 83, 240, 142, 342, 209, 31, 65, 97, 30,
-				263, 30, 97, 142, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
-				13, 13, 13, 13, 13, 202, 12, 13, 212, 194, 170, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 334, 295, 263,
-				13, 97, 99, 13, 261, 201, 87, 295, 113, 87, 295, 263, 12, 13, 175, 13, 261, 179, 332, 142, 13, 97, 310,
-				261, 263, 71, 13, 246, 13, 146, 13, 21, 13, 13, 13, 13, 247, 13, 164, 19, 21, 21, 220, 38, 164, 131,
-				110, 83, 342, 261, 126, 97, 13, 12, 61, 263, 230, 71, 83, 83, 250, 250, 250, 250, 13, 13, 286, 287, 287,
-				287, 287, 297, 11, 13, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
-				250, 83, 48, 191, 191, 191, 133, 96, 13, 97, 320, 202, 191, 191, 13, 338, 179, 261, 338, 70, 202, 97,
-				36, 261, 97, 13, 254, 13, 329, 69, 202, 13, 247, 13, 13, 247, 266, 266, 327, 13, 266, 21, 21, 261, 184,
-				256, 263, 13, 13, 13, 87, 87, 261, 97, 23, 334, 65, 13, 163, 202, 97, 97, 97, 97, 227, 227, 263, 83, 13,
-				13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 261, 97, 13, 97, 36, 263, 21, 13, 233, 13, 13, 131, 219,
-				320, 191, 191, 261, 295, 261, 70, 261, 164, 12, 202, 61, 81, 261, 83, 13, 13, 46, 46, 253, 312, 329, 97,
-				202, 247, 83, 247, 97, 256, 97, 316, 261, 13, 97, 261, 92, 21, 191, 312, 144, 13, 27, 289, 263, 97, 12,
-				71, 261, 129, 87, 338, 338, 44, 261, 118, 13, 250, 334, 231, 13, 13, 97, 97, 70, 97, 83, 191, 124, 133,
-				97, 83, 97, 97, 71, 179, 191, 295, 13, 13, 184, 261, 261, 116, 116, 202, 164, 73, 13, 13, 36, 124, 83,
-				83, 310, 25, 261, 13, 247, 13, 247, 21, 185, 250, 247, 92, 181, 120, 295, 27, 209, 81, 185, 191, 276,
-				329, 97, 13, 13, 338, 234, 31, 135, 13, 23, 227, 83, 142, 231, 202, 261, 124, 97, 31, 261, 179, 14, 261,
-				21, 83, 13, 40, 13, 191, 289, 116, 116, 166, 73, 36, 83, 164, 102, 80, 261, 290, 124, 83, 13, 270, 21,
-				289, 97, 181, 13, 338, 13, 97, 295, 97, 129, 21, 13, 129, 234, 21, 21, 342, 118, 97, 142, 124, 83, 21,
-				305, 261, 13, 13, 13, 14, 273, 329, 185, 83, 83, 295, 191, 289, 13, 13, 87, 94, 338, 36, 102, 13, 78,
-				261, 247, 97, 21, 261, 120, 12, 227, 261, 13, 97, 21, 97, 97, 261, 36, 14, 305, 14, 14, 14, 178, 13, 13,
-				13, 157, 157, 191, 295, 153, 338, 87, 87, 12, 13, 78, 247, 44, 97, 124, 97, 110, 110, 254, 36, 14, 261,
-				329, 14, 261, 13, 13, 12, 338, 338, 341, 135, 261, 305, 329, 342, 342, 12, 12, 97, 78, 36, 13, 342, 13,
-				157, 13, 30 };
-	}
-
-	public final static char nasb[] = Nasb.nasb;
-
-	@Override
-	public final int nasb(int index) {
-		return nasb[index];
-	}
-
-	public interface Nasr {
-		public final static char nasr[] = { 0, 3, 13, 10, 9, 149, 204, 148, 121, 147, 146, 4, 2, 0, 5, 52, 90, 100, 0,
-				5, 44, 47, 0, 172, 0, 108, 107, 37, 73, 82, 4, 10, 9, 2, 0, 5, 99, 0, 234, 0, 222, 0, 206, 0, 186, 0,
-				98, 0, 4, 10, 9, 2, 13, 138, 5, 0, 4, 10, 9, 2, 13, 117, 43, 116, 0, 84, 167, 166, 0, 141, 2, 84, 0,
-				178, 0, 5, 226, 0, 156, 0, 99, 117, 43, 10, 9, 2, 13, 4, 0, 141, 84, 0, 184, 0, 224, 0, 202, 32, 0, 233,
-				32, 0, 187, 0, 4, 2, 9, 10, 168, 0, 43, 63, 0, 43, 1, 0, 131, 0, 170, 0, 194, 4, 193, 0, 61, 0, 5, 208,
-				0, 164, 0, 181, 0, 200, 0, 140, 0, 13, 2, 9, 10, 4, 103, 0, 215, 0, 13, 2, 9, 10, 4, 236, 0, 4, 123,
-				190, 0, 129, 0, 4, 10, 9, 13, 3, 1, 0, 4, 123, 223, 0, 13, 2, 9, 10, 4, 64, 44, 63, 5, 43, 0, 43, 185,
-				0, 105, 5, 4, 10, 9, 2, 73, 37, 0, 32, 107, 108, 5, 0, 5, 205, 0, 53, 2, 3, 0, 5, 64, 227, 0, 5, 33, 0,
-				149, 228, 148, 121, 147, 146, 0, 47, 4, 2, 9, 10, 5, 183, 0, 5, 111, 0, 2, 143, 0, 37, 125, 0, 5, 44,
-				141, 0, 5, 52, 43, 44, 210, 0, 99, 43, 52, 91, 5, 44, 0, 32, 108, 107, 73, 4, 2, 9, 10, 5, 0, 2, 53, 0,
-				5, 64, 124, 0, 5, 209, 0, 37, 1, 0, 37, 84, 0, 2, 4, 121, 118, 119, 120, 165, 13, 78, 0, 5, 4, 10, 9, 2,
-				73, 27, 0, 121, 78, 13, 118, 119, 120, 198, 0, 144, 5, 52, 90, 0, 31, 5, 4, 37, 105, 0, 64, 5, 211, 0,
-				5, 52, 90, 123, 50, 4, 0, 44, 212, 31, 5, 0, 108, 107, 37, 4, 82, 0, 2, 81, 0, 32, 5, 64, 0 };
-	}
-
-	public final static char nasr[] = Nasr.nasr;
-
-	@Override
-	public final int nasr(int index) {
-		return nasr[index];
-	}
-
-	public interface TerminalIndex {
-		public final static char terminalIndex[] = { 0, 118, 119, 2, 31, 51, 129, 130, 13, 84, 10, 9, 120, 105, 48, 49,
-				53, 57, 65, 73, 79, 80, 91, 92, 107, 110, 112, 127, 59, 111, 50, 109, 52, 69, 71, 75, 78, 81, 88, 94,
-				103, 117, 11, 12, 7, 8, 14, 125, 60, 66, 72, 89, 93, 95, 98, 99, 102, 104, 114, 115, 116, 128, 58, 68,
-				96, 106, 19, 82, 100, 131, 108, 1, 126, 44, 63, 83, 123, 20, 30, 101, 33, 124, 113, 17, 18, 54, 55, 61,
-				62, 64, 74, 76, 77, 90, 97, 70, 21, 22, 32, 6, 23, 24, 25, 26, 27, 4, 15, 16, 28, 29, 34, 35, 36, 37,
-				38, 39, 40, 41, 42, 43, 45, 46, 56, 85, 86, 87, 5, 122, 3, 132, 67, 121 };
-	}
-
-	public final static char terminalIndex[] = TerminalIndex.terminalIndex;
-
-	@Override
-	public final int terminalIndex(int index) {
-		return terminalIndex[index];
-	}
-
-	public interface NonterminalIndex {
-		public final static char nonterminalIndex[] = { 0, 139, 144, 145, 0, 0, 143, 0, 0, 247, 253, 142, 0, 152, 0,
-				141, 0, 0, 151, 157, 0, 0, 158, 167, 168, 169, 170, 265, 0, 0, 0, 197, 135, 160, 0, 171, 172, 266, 173,
-				174, 150, 175, 176, 138, 140, 177, 0, 137, 178, 147, 194, 0, 0, 146, 179, 0, 0, 0, 0, 0, 0, 204, 180,
-				189, 161, 181, 0, 221, 0, 0, 182, 183, 218, 222, 184, 185, 0, 186, 203, 0, 0, 0, 164, 192, 0, 154, 0, 0,
-				0, 0, 0, 188, 0, 0, 0, 0, 0, 0, 223, 136, 195, 0, 0, 134, 166, 219, 225, 226, 227, 0, 229, 0, 155, 0, 0,
-				224, 235, 0, 206, 207, 208, 210, 237, 238, 191, 213, 0, 0, 228, 0, 0, 0, 242, 0, 244, 0, 258, 0, 261, 0,
-				262, 0, 0, 156, 196, 198, 199, 200, 201, 205, 209, 212, 0, 215, 0, 216, 0, 231, 234, 0, 256, 0, 257, 0,
-				270, 273, 148, 149, 153, 0, 0, 163, 165, 0, 187, 0, 202, 0, 0, 0, 211, 0, 214, 220, 0, 232, 233, 0, 0,
-				239, 246, 0, 250, 251, 252, 255, 0, 0, 259, 0, 267, 0, 269, 0, 272, 133, 0, 159, 162, 0, 190, 0, 193, 0,
-				0, 217, 230, 236, 0, 0, 240, 241, 243, 245, 0, 248, 249, 254, 260, 263, 264, 0, 0, 268, 0, 0, 271, 0, 0,
-				0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
-
-	@Override
-	public final int nonterminalIndex(int index) {
-		return nonterminalIndex[index];
-	}
-
-	public interface ScopePrefix {
-		public final static char scopePrefix[] = { 261, 425, 719, 738, 414, 443, 670, 686, 697, 708, 497, 369, 383, 400,
-				461, 129, 394, 517, 555, 269, 727, 621, 94, 107, 138, 158, 167, 172, 177, 232, 297, 456, 467, 94, 589,
-				67, 246, 375, 389, 645, 114, 246, 507, 94, 746, 114, 319, 350, 7, 39, 63, 75, 86, 101, 148, 163, 193,
-				101, 486, 490, 573, 614, 666, 756, 760, 764, 184, 79, 184, 535, 551, 564, 582, 601, 658, 203, 203, 331,
-				421, 564, 677, 693, 704, 715, 309, 632, 19, 31, 60, 143, 143, 258, 324, 13, 143, 345, 366, 13, 13, 143,
-				494, 611, 618, 258, 143, 779, 1, 13, 54, 197, 472, 539, 579, 1, 594, 143, 212, 406, 472, 212, 212, 433,
-				526, 279, 433, 24, 24, 45, 45, 191, 45, 45, 45, 45, 577, 768, 775, 24, 24, 49, 340, 768, 775, 152, 545,
-				239, 191, 340, 191, 355 };
-	}
-
-	public final static char scopePrefix[] = ScopePrefix.scopePrefix;
-
-	@Override
-	public final int scopePrefix(int index) {
-		return scopePrefix[index];
-	}
-
-	public interface ScopeSuffix {
-		public final static char scopeSuffix[] = { 90, 237, 43, 43, 237, 237, 43, 43, 43, 43, 504, 237, 182, 237, 99,
-				135, 380, 523, 561, 275, 154, 627, 99, 112, 112, 112, 146, 146, 182, 237, 302, 105, 105, 99, 43, 72,
-				251, 380, 188, 650, 125, 254, 512, 733, 751, 119, 313, 313, 11, 43, 43, 43, 90, 105, 43, 146, 182, 105,
-				182, 182, 237, 348, 43, 43, 43, 348, 777, 83, 188, 504, 504, 504, 586, 605, 650, 207, 221, 335, 409,
-				568, 681, 681, 681, 681, 313, 636, 22, 22, 43, 146, 146, 43, 43, 327, 329, 348, 43, 11, 11, 329, 182,
-				43, 348, 43, 643, 43, 4, 16, 57, 200, 475, 542, 57, 608, 597, 662, 207, 409, 653, 215, 226, 450, 529,
-				282, 436, 29, 37, 47, 92, 182, 478, 480, 482, 484, 182, 770, 770, 26, 34, 51, 342, 772, 772, 154, 547,
-				241, 304, 335, 289, 357 };
-	}
-
-	public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
-
-	@Override
-	public final int scopeSuffix(int index) {
-		return scopeSuffix[index];
-	}
-
-	public interface ScopeLhs {
-		public final static char scopeLhs[] = { 50, 120, 18, 18, 89, 120, 18, 18, 18, 18, 94, 102, 51, 89, 119, 87, 58,
-				94, 93, 50, 18, 20, 198, 3, 7, 8, 190, 190, 189, 118, 50, 119, 119, 150, 54, 28, 116, 59, 51, 168, 161,
-				116, 94, 18, 18, 161, 109, 66, 83, 165, 199, 163, 97, 198, 193, 190, 189, 150, 213, 56, 63, 172, 18, 18,
-				18, 18, 12, 140, 189, 94, 93, 93, 76, 46, 168, 122, 122, 82, 89, 93, 18, 18, 18, 18, 109, 20, 132, 155,
-				17, 194, 190, 215, 107, 115, 68, 98, 67, 183, 83, 150, 95, 173, 172, 206, 168, 17, 18, 83, 92, 189, 150,
-				124, 92, 22, 54, 168, 122, 89, 168, 122, 122, 120, 94, 50, 120, 132, 155, 204, 228, 189, 176, 148, 147,
-				146, 86, 166, 53, 132, 155, 236, 82, 166, 53, 193, 124, 118, 50, 82, 50, 66 };
-	}
-
-	public final static char scopeLhs[] = ScopeLhs.scopeLhs;
-
-	@Override
-	public final int scopeLhs(int index) {
-		return scopeLhs[index];
-	}
-
-	public interface ScopeLa {
-		public final static char scopeLa[] = { 122, 81, 76, 76, 81, 81, 76, 76, 76, 76, 76, 81, 47, 81, 1, 77, 1, 76,
-				130, 72, 3, 76, 1, 77, 77, 77, 1, 1, 47, 81, 72, 1, 1, 1, 76, 76, 81, 1, 1, 4, 77, 73, 47, 1, 1, 77, 76,
-				76, 1, 76, 76, 76, 122, 1, 76, 1, 47, 1, 47, 47, 81, 127, 76, 76, 76, 127, 1, 76, 1, 76, 76, 76, 78, 78,
-				4, 1, 1, 10, 72, 76, 77, 77, 77, 77, 76, 3, 6, 6, 76, 1, 1, 76, 76, 3, 1, 127, 76, 1, 1, 1, 47, 76, 127,
-				76, 8, 76, 76, 6, 78, 1, 54, 80, 78, 76, 77, 1, 1, 72, 54, 1, 1, 72, 82, 79, 1, 1, 1, 27, 1, 47, 1, 63,
-				62, 62, 47, 4, 4, 1, 1, 98, 11, 4, 4, 3, 1, 72, 1, 10, 1, 3 };
-	}
-
-	public final static char scopeLa[] = ScopeLa.scopeLa;
-
-	@Override
-	public final int scopeLa(int index) {
-		return scopeLa[index];
-	}
-
-	public interface ScopeStateSet {
-		public final static char scopeStateSet[] = { 101, 181, 377, 377, 40, 181, 377, 377, 377, 377, 114, 42, 101, 40,
-				181, 40, 103, 114, 114, 101, 377, 377, 81, 302, 348, 348, 9, 9, 37, 181, 101, 181, 181, 177, 134, 187,
-				127, 103, 101, 159, 5, 127, 114, 377, 377, 5, 168, 57, 63, 177, 54, 1, 114, 81, 12, 9, 37, 177, 99, 103,
-				280, 25, 377, 377, 377, 377, 352, 18, 37, 114, 114, 114, 142, 443, 159, 181, 181, 239, 40, 114, 377,
-				377, 377, 377, 168, 377, 73, 28, 377, 12, 9, 23, 168, 170, 57, 164, 57, 78, 63, 177, 114, 15, 25, 162,
-				159, 377, 377, 63, 114, 37, 177, 32, 114, 382, 134, 159, 181, 40, 159, 181, 181, 181, 114, 101, 181, 73,
-				28, 184, 82, 37, 184, 183, 183, 183, 87, 84, 255, 73, 28, 476, 239, 84, 255, 12, 32, 181, 101, 239, 101,
-				57 };
-	}
-
-	public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet;
-
-	@Override
-	public final int scopeStateSet(int index) {
-		return scopeStateSet[index];
-	}
-
-	public interface ScopeRhs {
-		public final static char scopeRhs[] = { 0, 216, 3, 0, 135, 235, 0, 168, 236, 136, 0, 218, 0, 236, 136, 0, 266,
-				218, 0, 263, 168, 0, 266, 0, 168, 0, 242, 266, 0, 242, 0, 214, 168, 0, 192, 266, 0, 192, 0, 216, 3, 27,
-				0, 135, 0, 280, 0, 273, 0, 235, 0, 32, 166, 0, 367, 86, 0, 30, 188, 0, 194, 3, 0, 363, 3, 331, 0, 362,
-				3, 3, 6, 0, 135, 135, 0, 361, 3, 68, 0, 360, 3, 122, 0, 135, 189, 0, 136, 194, 79, 0, 233, 0, 259, 0,
-				215, 184, 135, 13, 0, 145, 0, 184, 135, 13, 0, 144, 0, 290, 136, 66, 133, 0, 20, 0, 326, 136, 66, 54, 0,
-				20, 58, 0, 33, 141, 0, 20, 58, 0, 0, 326, 136, 66, 54, 221, 0, 20, 195, 0, 290, 136, 66, 141, 0, 212,
-				135, 0, 150, 0, 242, 3, 325, 0, 325, 0, 2, 0, 135, 0, 290, 136, 66, 140, 0, 212, 135, 254, 0, 212, 135,
-				31, 254, 0, 212, 135, 355, 31, 0, 137, 215, 184, 135, 0, 137, 0, 215, 184, 135, 0, 143, 137, 0, 183, 0,
-				351, 136, 183, 0, 136, 183, 0, 240, 137, 0, 184, 350, 252, 0, 145, 0, 0, 0, 0, 350, 252, 0, 146, 145, 0,
-				0, 0, 0, 144, 0, 0, 0, 0, 146, 144, 0, 0, 0, 0, 349, 136, 174, 253, 0, 136, 0, 253, 0, 138, 0, 0, 136,
-				0, 348, 136, 174, 248, 0, 136, 0, 0, 44, 136, 0, 0, 164, 3, 0, 136, 316, 315, 136, 79, 314, 183, 0, 315,
-				136, 79, 314, 183, 0, 232, 0, 233, 0, 314, 183, 0, 101, 0, 0, 232, 0, 233, 0, 220, 101, 0, 0, 232, 0,
-				233, 0, 315, 136, 314, 183, 0, 232, 0, 220, 0, 0, 232, 0, 257, 136, 3, 0, 135, 0, 0, 0, 0, 0, 257, 136,
-				3, 238, 0, 246, 3, 0, 225, 0, 155, 0, 200, 184, 135, 0, 10, 0, 0, 0, 0, 200, 0, 9, 0, 0, 235, 71, 0,
-				134, 0, 257, 136, 3, 198, 0, 198, 0, 2, 0, 0, 135, 0, 0, 0, 0, 0, 214, 3, 0, 273, 136, 174, 41, 34, 0,
-				212, 135, 67, 70, 0, 213, 137, 0, 137, 212, 135, 312, 70, 0, 212, 135, 312, 70, 0, 212, 135, 80, 132,
-				67, 0, 273, 136, 174, 283, 67, 0, 283, 67, 0, 138, 0, 0, 136, 0, 273, 136, 174, 283, 256, 67, 0, 283,
-				256, 67, 0, 309, 310, 136, 174, 132, 345, 63, 0, 345, 63, 0, 139, 138, 0, 0, 0, 136, 0, 309, 310, 136,
-				174, 345, 63, 0, 138, 0, 0, 0, 136, 0, 212, 135, 308, 63, 0, 215, 212, 135, 308, 252, 0, 212, 135, 308,
-				252, 0, 184, 135, 0, 98, 145, 0, 209, 0, 208, 0, 207, 0, 206, 0, 306, 136, 162, 0, 306, 136, 183, 0,
-				175, 93, 0, 340, 178, 342, 343, 3, 90, 0, 135, 188, 0, 342, 343, 3, 90, 0, 137, 0, 135, 188, 0, 175, 3,
-				82, 222, 89, 0, 135, 137, 0, 222, 89, 0, 113, 2, 140, 135, 137, 0, 255, 3, 82, 0, 214, 195, 0, 33, 178,
-				0, 195, 0, 192, 33, 178, 0, 255, 3, 94, 0, 222, 163, 255, 3, 92, 0, 67, 188, 0, 255, 3, 92, 0, 135, 188,
-				67, 188, 0, 341, 136, 174, 0, 175, 0, 235, 86, 0, 175, 109, 206, 0, 30, 186, 0, 157, 77, 185, 3, 0, 185,
-				3, 0, 20, 170, 135, 0, 175, 109, 176, 0, 30, 178, 0, 135, 158, 0, 242, 3, 0, 235, 71, 303, 0, 175, 71,
-				0, 216, 3, 337, 75, 135, 0, 135, 0, 0, 0, 0, 337, 75, 135, 0, 2, 154, 135, 0, 0, 0, 0, 156, 0, 134, 54,
-				184, 135, 0, 31, 156, 0, 98, 145, 31, 156, 0, 243, 212, 135, 0, 155, 31, 156, 0, 175, 3, 57, 0, 175, 3,
-				77, 216, 66, 48, 0, 216, 66, 48, 0, 20, 2, 140, 135, 0, 175, 3, 77, 216, 66, 51, 0, 216, 66, 51, 0, 175,
-				3, 77, 216, 66, 53, 0, 216, 66, 53, 0, 175, 3, 77, 216, 66, 49, 0, 216, 66, 49, 0, 242, 3, 134, 215,
-				184, 135, 13, 0, 134, 215, 184, 135, 13, 0, 145, 2, 0, 135, 0, 242, 3, 133, 272, 184, 135, 13, 0, 272,
-				184, 135, 13, 0, 144, 2, 0, 135, 0, 242, 3, 144, 0, 242, 3, 149, 0, 175, 71, 149, 0, 298, 0, 31, 0, 31,
-				148, 0, 180, 0, 143, 0, 175, 3, 0 };
-	}
-
-	public final static char scopeRhs[] = ScopeRhs.scopeRhs;
-
-	@Override
-	public final int scopeRhs(int index) {
-		return scopeRhs[index];
-	}
-
-	public interface ScopeState {
-		public final static char scopeState[] = { 0, 1722, 1344, 1184, 0, 7439, 4948, 4903, 0, 2415, 3374, 0, 2210,
-				1543, 0, 1941, 1510, 0, 2681, 981, 2322, 813, 0, 2371, 0, 1614, 731, 0, 4864, 4544, 3972, 0, 7078, 6882,
-				6204, 5735, 0, 7311, 7110, 0, 7311, 7110, 6878, 7170, 7154, 7093, 7077, 7016, 6806, 7000, 6939, 6732,
-				722, 0, 844, 2209, 0, 4993, 5269, 733, 4105, 4843, 7273, 6335, 6559, 4864, 4544, 6475, 6951, 5564, 5742,
-				3972, 5520, 5045, 4961, 4877, 4261, 0, 4843, 7273, 0, 6725, 4778, 0, 1499, 995, 0, 6329, 6262, 6195,
-				6128, 6061, 5994, 5927, 5860, 5793, 5726, 5328, 5261, 7218, 0, 7311, 7110, 6878, 7170, 7154, 7093, 7077,
-				7016, 6806, 7000, 6939, 6732, 722, 6329, 6262, 6195, 6128, 6061, 5994, 5927, 5860, 5793, 5726, 5328,
-				5261, 0, 1234, 1300, 1179, 3510, 721, 877, 0, 3943, 4232, 4515, 4401, 4809, 4649, 4622, 3519, 3392,
-				1094, 3314, 3236, 3158, 3080, 3002, 2924, 2846, 2768, 2690, 2612, 2533, 1016, 926, 848, 0, 1570, 1401,
-				0, 784, 0, 2172, 1423, 1059, 814, 733, 7297, 6335, 5564, 5520, 4687, 3986, 3450, 0, 6434, 671, 4019, 0,
-				6725, 6434, 4778, 671, 4019, 0, 3186, 5834, 5045, 5616, 3108, 4961, 6368, 3030, 6559, 4993, 4877, 5340,
-				6382, 5302, 4864, 2952, 4544, 2874, 4309, 7536, 6475, 798, 2796, 7515, 7511, 4955, 7323, 7008, 6945,
-				6873, 4679, 6725, 7208, 6983, 6428, 6271, 5577, 2718, 2640, 2561, 4778, 6434, 6137, 6070, 5767, 5581,
-				4683, 5008, 4007, 4043, 671, 4019, 5269, 733, 7263, 4261, 6002, 4105, 5935, 5868, 5585, 3972, 6743,
-				7297, 6203, 5801, 5734, 0, 7527, 7522, 7507, 7465, 7445, 7440, 7435, 7423, 7411, 7532, 6580, 7380, 7369,
-				7335, 6141, 6074, 6007, 4026, 5940, 7306, 6728, 6364, 5873, 5599, 0, 2018, 1969, 6329, 6262, 3831, 3830,
-				6195, 6128, 6061, 5994, 5927, 5860, 5793, 1451, 5726, 5328, 6855, 3519, 5261, 6764, 723, 0, 3380, 3302,
-				7527, 7522, 3224, 2599, 7507, 2427, 7465, 7445, 1815, 7440, 1766, 7435, 7423, 4050, 7411, 1712, 1617,
-				7532, 6580, 1565, 1445, 7380, 1379, 1261, 7369, 7335, 1206, 4919, 6141, 2423, 6074, 794, 6007, 4026,
-				5940, 1011, 7306, 6728, 6434, 6364, 914, 4019, 5873, 5599, 4274, 4143, 1283, 1066, 1045, 6335, 5045,
-				4961, 6559, 4993, 4877, 4864, 5269, 4544, 733, 4261, 6475, 4105, 6951, 5564, 4843, 5742, 3972, 5520,
-				7273, 3584, 3568, 1570, 1401, 6703, 6681, 6659, 6637, 5392, 3392, 5533, 1094, 3943, 3314, 3236, 3158,
-				3080, 3002, 2924, 2846, 2768, 2690, 2612, 2533, 4232, 4515, 4401, 4809, 4649, 4622, 5493, 5466, 5428,
-				6594, 3519, 877, 1016, 926, 848, 3896, 4190, 4476, 4361, 4751, 4721, 4583, 5700, 5674, 5234, 5207, 5180,
-				5150, 5123, 4428, 2719, 2641, 2562, 1123, 955, 6515, 4304, 3421, 3343, 3265, 3187, 3109, 3031, 2953,
-				2875, 2797, 3844, 3797, 1636, 3470, 1234, 3745, 3698, 3646, 1300, 1587, 1516, 1352, 3599, 1467, 1179,
-				2484, 2435, 2328, 2279, 2230, 2181, 2132, 2083, 2034, 1985, 1936, 1887, 1838, 1788, 671, 1739, 1685,
-				1418, 2375, 0 };
-	}
-
-	public final static char scopeState[] = ScopeState.scopeState;
-
-	@Override
-	public final int scopeState(int index) {
-		return scopeState[index];
-	}
-
-	public interface InSymb {
-		public final static char inSymb[] = { 0, 0, 336, 136, 305, 57, 48, 51, 53, 49, 13, 144, 133, 140, 9, 141, 4, 3,
-				135, 27, 61, 52, 46, 8, 43, 42, 10, 11, 45, 44, 149, 154, 156, 155, 166, 157, 169, 167, 172, 170, 173,
-				68, 176, 73, 3, 66, 66, 66, 66, 135, 3, 66, 66, 195, 136, 71, 3, 74, 75, 66, 8, 194, 216, 175, 195, 136,
-				174, 74, 75, 184, 180, 133, 3, 132, 134, 126, 128, 3, 71, 99, 105, 43, 42, 107, 106, 10, 121, 120, 97,
-				96, 77, 66, 83, 84, 11, 101, 100, 103, 102, 104, 119, 118, 117, 116, 115, 114, 113, 112, 111, 110, 80,
-				109, 108, 175, 216, 216, 216, 216, 184, 242, 136, 136, 136, 276, 6, 7, 5, 277, 253, 278, 252, 279, 63,
-				307, 13, 135, 335, 280, 27, 71, 71, 136, 133, 163, 136, 71, 3, 239, 238, 144, 134, 133, 13, 135, 27,
-				136, 71, 337, 3, 215, 4, 216, 54, 135, 54, 242, 175, 155, 155, 154, 154, 154, 157, 157, 157, 157, 157,
-				157, 156, 156, 167, 166, 166, 170, 169, 172, 272, 175, 173, 77, 77, 77, 77, 215, 272, 290, 136, 269, 3,
-				185, 157, 196, 193, 202, 201, 205, 206, 293, 290, 236, 168, 135, 200, 3, 3, 3, 174, 350, 308, 168, 345,
-				308, 168, 135, 212, 184, 3, 290, 174, 248, 236, 235, 176, 246, 136, 3, 135, 184, 150, 341, 88, 86, 1,
-				175, 12, 94, 92, 90, 89, 82, 91, 93, 87, 85, 183, 5, 67, 70, 79, 234, 3, 338, 195, 164, 298, 215, 163,
-				135, 212, 184, 78, 78, 3, 3, 3, 3, 134, 133, 276, 277, 278, 279, 359, 280, 13, 185, 97, 96, 66, 11, 101,
-				100, 103, 102, 104, 119, 118, 117, 116, 115, 114, 113, 112, 111, 110, 80, 109, 108, 73, 184, 11, 10, 3,
-				364, 1, 41, 136, 184, 260, 134, 133, 135, 132, 174, 135, 184, 54, 216, 136, 174, 257, 258, 162, 259,
-				136, 184, 54, 12, 78, 367, 235, 78, 3, 3, 3, 222, 3, 132, 175, 314, 136, 3, 135, 198, 365, 132, 67, 312,
-				194, 216, 136, 136, 4, 243, 8, 54, 175, 175, 175, 175, 3, 3, 135, 77, 157, 157, 157, 193, 185, 185, 201,
-				196, 202, 175, 205, 200, 200, 362, 331, 3, 349, 135, 181, 254, 67, 54, 221, 70, 183, 352, 134, 133, 261,
-				168, 261, 212, 174, 136, 212, 215, 163, 136, 163, 80, 246, 214, 204, 198, 3, 136, 73, 257, 215, 78, 98,
-				78, 255, 195, 255, 343, 162, 82, 255, 79, 136, 306, 214, 136, 286, 313, 236, 168, 135, 214, 212, 184, 3,
-				3, 80, 135, 135, 136, 163, 300, 303, 71, 213, 4, 132, 134, 242, 242, 184, 157, 78, 10, 136, 73, 163, 3,
-				41, 1, 184, 283, 256, 168, 66, 54, 136, 261, 261, 136, 136, 215, 136, 310, 132, 311, 348, 136, 80, 80,
-				136, 236, 163, 134, 163, 214, 163, 342, 136, 3, 163, 136, 315, 78, 168, 236, 3, 80, 73, 214, 184, 136,
-				366, 41, 295, 135, 212, 212, 317, 122, 136, 3, 71, 175, 4, 215, 200, 192, 363, 215, 174, 283, 77, 66,
-				351, 78, 265, 214, 133, 263, 168, 136, 136, 78, 310, 309, 80, 73, 230, 73, 244, 168, 136, 80, 222, 178,
-				306, 168, 175, 315, 324, 135, 325, 164, 168, 257, 78, 163, 3, 73, 212, 256, 137, 3, 300, 242, 235, 136,
-				73, 137, 136, 174, 36, 39, 34, 54, 67, 136, 73, 78, 80, 168, 263, 168, 158, 354, 254, 31, 135, 309, 230,
-				12, 136, 244, 130, 340, 163, 316, 73, 212, 3, 163, 10, 1, 256, 98, 360, 195, 273, 275, 136, 54, 54, 54,
-				41, 132, 326, 54, 13, 62, 263, 168, 73, 135, 31, 355, 212, 68, 136, 163, 136, 242, 136, 1, 163, 163,
-				136, 273, 136, 174, 73, 77, 66, 260, 260, 212, 135, 135, 3, 317, 244, 136, 136, 80, 80, 212, 212, 361,
-				136, 273, 326, 73, 77, 62, 260, 80 };
-	}
-
-	public final static char inSymb[] = InSymb.inSymb;
-
-	@Override
-	public final int inSymb(int index) {
-		return inSymb[index];
-	}
-
-	public interface Name {
-		public final static String name[] = { "", "[", "(", ".", ".*", "->", "->*", "++", "--", "&", "*", "+", "-", "~",
-				"!", "/", "%", ">>", "<<", "<", ">", "<=", ">=", "==", "!=", "^", "|", "&&", "||", "?", ":", "::",
-				"...", "=", "*=", "/=", "%=", "+=", "-=", ">>=", "<<=", "&=", "^=", "|=", ",", ">?", "<?", "$empty",
-				"_Complex", "_Imaginary", "restrict", "asm", "auto", "bool", "break", "case", "catch", "char", "class",
-				"const", "const_cast", "continue", "default", "delete", "do", "double", "dynamic_cast", "else", "enum",
-				"explicit", "export", "extern", "false", "float", "for", "friend", "goto", "if", "inline", "int",
-				"long", "mutable", "namespace", "new", "operator", "private", "protected", "public", "register",
-				"reinterpret_cast", "return", "short", "signed", "sizeof", "static", "static_cast", "struct", "switch",
-				"template", "this", "throw", "try", "true", "typedef", "typeid", "typename", "union", "unsigned",
-				"using", "virtual", "void", "volatile", "wchar_t", "while", "integer", "floating", "charconst",
-				"stringlit", "identifier", "Completion", "EndOfCompletion", "Invalid", "RightBracket", "RightParen",
-				"RightBrace", "SemiColon", "LeftBrace", "typeof", "__alignof__", "__attribute__", "__declspec",
-				"ERROR_TOKEN", "EOF_TOKEN", "no_sizeof_type_id_start", "]", ")", "}", ";", "{", "identifier_token",
-				"expression", "id_expression", "qualified_or_unqualified_name", "unqualified_id_name",
-				"identifier_name", "template_id_name", "nested_name_specifier", "class_or_namespace_name",
-				"nested_name_specifier_with_tem" + "plate", "class_or_namespace_name_with_t" + "emplate", "class_name",
-				"postfix_expression", "simple_type_specifier", "pseudo_destructor_name", "type_id", "type_name",
-				"destructor_type_name", "unary_expression", "cast_expression", "new_type_id", "expression_list",
-				"type_specifier_seq", "new_declarator", "new_pointer_operators", "ptr_operator",
-				"new_array_expressions", "constant_expression", "pm_expression", "multiplicative_expression",
-				"additive_expression", "shift_expression", "relational_expression", "equality_expression",
-				"and_expression", "exclusive_or_expression", "inclusive_or_expression", "logical_and_expression",
-				"logical_or_expression", "assignment_expression", "relational_expression_inTempla" + "te",
-				"equality_expression_inTemplate", "and_expression_inTemplate",
-				"exclusive_or_expression_inTemp" + "late", "inclusive_or_expression_inTemp" + "late",
-				"logical_and_expression_inTempl" + "ate", "logical_or_expression_inTempla" + "te",
-				"assignment_expression_inTempla" + "te", "expression_list_actual", "statement", "compound_statement",
-				"statement_seq", "condition", "declarator", "for_init_statement", "function_definition", "declaration",
-				"declaration_seq", "declaration_specifiers", "simple_declaration_specifiers",
-				"class_declaration_specifiers", "elaborated_declaration_specifi" + "ers", "enum_declaration_specifiers",
-				"type_name_declaration_specifie" + "rs", "no_type_declaration_specifier", "cv_qualifier",
-				"no_type_declaration_specifiers", "class_specifier", "elaborated_type_specifier", "enum_specifier",
-				"type_name_specifier", "class_keyword", "enumerator_list", "enumerator_definition", "namespace_name",
-				"init_declarator_list", "init_declarator_complete", "complete_declarator", "initializer",
-				"direct_declarator", "ptr_operator_seq", "function_declarator", "basic_direct_declarator",
-				"array_direct_declarator", "array_modifier", "abstract_declarator", "direct_abstract_declarator",
-				"basic_direct_abstract_declarat" + "or", "array_direct_abstract_declarat" + "or",
-				"parameter_declaration_list", "parameter_declaration", "parameter_init_declarator",
-				"parameter_initializer", "function_body", "handler_seq", "initializer_clause", "initializer_list",
-				"initializer_seq", "class_head", "access_specifier_keyword", "member_declaration",
-				"member_declarator_list", "member_declaration_list", "member_declarator_complete",
-				"constant_initializer", "bit_field_declarator", "base_specifier_list", "base_specifier",
-				"conversion_function_id", "conversion_type_id", "conversion_declarator", "mem_initializer_list",
-				"mem_initializer", "mem_initializer_name", "operator_id_name", "overloadable_operator",
-				"template_parameter_list", "template_parameter", "template_argument_list", "template_argument",
-				"type_name_specifier_inTemplate", "type_name_declaration_specifie" + "rs_inTemplate",
-				"type_specifier_seq_inTemplate", "handler", "exception_declaration", "type_id_list",
-				"attribute_or_decl_specifier", "attribute_or_decl_specifier_se" + "q", "word",
-				"extended_decl_modifier_seq", "extended_decl_modifier", "extended_asm_param", "case_range_expression",
-				"typeof_declaration_specifiers", "typeof_type_specifier" };
-	}
-
-	public final static String name[] = Name.name;
-
-	@Override
-	public final String name(int index) {
-		return name[index];
-	}
-
-	public final static int ERROR_SYMBOL = 69, SCOPE_UBOUND = 149, SCOPE_SIZE = 150, MAX_NAME_LENGTH = 43;
-
-	@Override
-	public final int getErrorSymbol() {
-		return ERROR_SYMBOL;
-	}
-
-	@Override
-	public final int getScopeUbound() {
-		return SCOPE_UBOUND;
-	}
-
-	@Override
-	public final int getScopeSize() {
-		return SCOPE_SIZE;
-	}
-
-	@Override
-	public final int getMaxNameLength() {
-		return MAX_NAME_LENGTH;
-	}
-
-	public final static int NUM_STATES = 677, NT_OFFSET = 131, LA_STATE_OFFSET = 9323, MAX_LA = 2147483647,
-			NUM_RULES = 670, NUM_NONTERMINALS = 245, NUM_SYMBOLS = 376, SEGMENT_SIZE = 8192, START_STATE = 4025,
-			IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 129, EOLT_SYMBOL = 129, ACCEPT_ACTION = 7679, ERROR_ACTION = 8653;
-
-	public final static boolean BACKTRACK = true;
-
-	@Override
-	public final int getNumStates() {
-		return NUM_STATES;
-	}
-
-	@Override
-	public final int getNtOffset() {
-		return NT_OFFSET;
-	}
-
-	@Override
-	public final int getLaStateOffset() {
-		return LA_STATE_OFFSET;
-	}
-
-	@Override
-	public final int getMaxLa() {
-		return MAX_LA;
-	}
-
-	@Override
-	public final int getNumRules() {
-		return NUM_RULES;
-	}
-
-	@Override
-	public final int getNumNonterminals() {
-		return NUM_NONTERMINALS;
-	}
-
-	@Override
-	public final int getNumSymbols() {
-		return NUM_SYMBOLS;
-	}
-
-	@Override
-	public final int getSegmentSize() {
-		return SEGMENT_SIZE;
-	}
-
-	@Override
-	public final int getStartState() {
-		return START_STATE;
-	}
-
-	@Override
-	public final int getStartSymbol() {
-		return lhs[0];
-	}
-
-	public final int getIdentifierSymbol() {
-		return IDENTIFIER_SYMBOL;
-	}
-
-	@Override
-	public final int getEoftSymbol() {
-		return EOFT_SYMBOL;
-	}
-
-	@Override
-	public final int getEoltSymbol() {
-		return EOLT_SYMBOL;
-	}
-
-	@Override
-	public final int getAcceptAction() {
-		return ACCEPT_ACTION;
-	}
-
-	@Override
-	public final int getErrorAction() {
-		return ERROR_ACTION;
-	}
-
-	@Override
-	public final boolean isValidForParser() {
-		return isValidForParser;
-	}
-
-	@Override
-	public final boolean getBacktrack() {
-		return BACKTRACK;
-	}
-
-	@Override
-	public final int originalState(int state) {
-		return -baseCheck[state];
-	}
-
-	@Override
-	public final int asi(int state) {
-		return asb[originalState(state)];
-	}
-
-	@Override
-	public final int nasi(int state) {
-		return nasb[originalState(state)];
-	}
-
-	@Override
-	public final int inSymbol(int state) {
-		return inSymb[originalState(state)];
-	}
-
-	@Override
-	public final int ntAction(int state, int sym) {
-		return baseAction[state + sym];
-	}
-
-	@Override
-	public final int tAction(int state, int sym) {
-		int i = baseAction[state], k = i + sym;
-		return termAction[termCheck[k] == sym ? k : i];
-	}
-
-	@Override
-	public final int lookAhead(int la_state, int sym) {
-		int k = la_state + sym;
-		return termAction[termCheck[k] == sym ? k : la_state];
-	}
-}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParsersym.java
deleted file mode 100644
index 4e71c61..0000000
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPSizeofExpressionParsersym.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2010 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.lrparser.gpp;
-
-public interface GPPSizeofExpressionParsersym {
-	public final static int TK__Complex = 14, TK__Imaginary = 15, TK_restrict = 30, TK_asm = 5, TK_auto = 32,
-			TK_bool = 16, TK_break = 85, TK_case = 86, TK_catch = 122, TK_char = 17, TK_class = 62, TK_const = 28,
-			TK_const_cast = 48, TK_continue = 87, TK_default = 88, TK_delete = 74, TK_do = 89, TK_double = 18,
-			TK_dynamic_cast = 49, TK_else = 130, TK_enum = 63, TK_explicit = 33, TK_export = 95, TK_extern = 34,
-			TK_false = 50, TK_float = 19, TK_for = 90, TK_friend = 35, TK_goto = 91, TK_if = 92, TK_inline = 36,
-			TK_int = 20, TK_long = 21, TK_mutable = 37, TK_namespace = 67, TK_new = 75, TK_operator = 9,
-			TK_private = 123, TK_protected = 124, TK_public = 125, TK_register = 38, TK_reinterpret_cast = 51,
-			TK_return = 93, TK_short = 22, TK_signed = 23, TK_sizeof = 52, TK_static = 39, TK_static_cast = 53,
-			TK_struct = 64, TK_switch = 94, TK_template = 54, TK_this = 55, TK_throw = 68, TK_try = 79, TK_true = 56,
-			TK_typedef = 40, TK_typeid = 57, TK_typename = 13, TK_union = 65, TK_unsigned = 24, TK_using = 70,
-			TK_virtual = 31, TK_void = 25, TK_volatile = 29, TK_wchar_t = 26, TK_while = 82, TK_integer = 58,
-			TK_floating = 59, TK_charconst = 60, TK_stringlit = 41, TK_identifier = 1, TK_Completion = 2,
-			TK_EndOfCompletion = 12, TK_Invalid = 131, TK_LeftBracket = 71, TK_LeftParen = 3, TK_Dot = 128,
-			TK_DotStar = 105, TK_Arrow = 126, TK_ArrowStar = 99, TK_PlusPlus = 44, TK_MinusMinus = 45, TK_And = 11,
-			TK_Star = 10, TK_Plus = 42, TK_Minus = 43, TK_Tilde = 8, TK_Bang = 46, TK_Slash = 106, TK_Percent = 107,
-			TK_RightShift = 83, TK_LeftShift = 84, TK_LT = 66, TK_GT = 77, TK_LE = 96, TK_GE = 97, TK_EQ = 100,
-			TK_NE = 101, TK_Caret = 102, TK_Or = 103, TK_AndAnd = 104, TK_OrOr = 108, TK_Question = 109, TK_Colon = 78,
-			TK_ColonColon = 4, TK_DotDotDot = 98, TK_Assign = 80, TK_StarAssign = 110, TK_SlashAssign = 111,
-			TK_PercentAssign = 112, TK_PlusAssign = 113, TK_MinusAssign = 114, TK_RightShiftAssign = 115,
-			TK_LeftShiftAssign = 116, TK_AndAssign = 117, TK_CaretAssign = 118, TK_OrAssign = 119, TK_Comma = 73,
-			TK_RightBracket = 127, TK_RightParen = 76, TK_RightBrace = 81, TK_SemiColon = 47, TK_LeftBrace = 72,
-			TK_typeof = 27, TK___alignof__ = 61, TK___attribute__ = 6, TK___declspec = 7, TK_MAX = 120, TK_MIN = 121,
-			TK_ERROR_TOKEN = 69, TK_EOF_TOKEN = 129;
-
-	public final static String orderedTerminalSymbols[] = { "", "identifier", "Completion", "LeftParen", "ColonColon",
-			"asm", "__attribute__", "__declspec", "Tilde", "operator", "Star", "And", "EndOfCompletion", "typename",
-			"_Complex", "_Imaginary", "bool", "char", "double", "float", "int", "long", "short", "signed", "unsigned",
-			"void", "wchar_t", "typeof", "const", "volatile", "restrict", "virtual", "auto", "explicit", "extern",
-			"friend", "inline", "mutable", "register", "static", "typedef", "stringlit", "Plus", "Minus", "PlusPlus",
-			"MinusMinus", "Bang", "SemiColon", "const_cast", "dynamic_cast", "false", "reinterpret_cast", "sizeof",
-			"static_cast", "template", "this", "true", "typeid", "integer", "floating", "charconst", "__alignof__",
-			"class", "enum", "struct", "union", "LT", "namespace", "throw", "ERROR_TOKEN", "using", "LeftBracket",
-			"LeftBrace", "Comma", "delete", "new", "RightParen", "GT", "Colon", "try", "Assign", "RightBrace", "while",
-			"RightShift", "LeftShift", "break", "case", "continue", "default", "do", "for", "goto", "if", "return",
-			"switch", "export", "LE", "GE", "DotDotDot", "ArrowStar", "EQ", "NE", "Caret", "Or", "AndAnd", "DotStar",
-			"Slash", "Percent", "OrOr", "Question", "StarAssign", "SlashAssign", "PercentAssign", "PlusAssign",
-			"MinusAssign", "RightShiftAssign", "LeftShiftAssign", "AndAssign", "CaretAssign", "OrAssign", "MAX", "MIN",
-			"catch", "private", "protected", "public", "Arrow", "RightBracket", "Dot", "EOF_TOKEN", "else", "Invalid" };
-
-	public final static boolean isValidForParser = true;
-}
diff --git a/lrparser/pom.xml b/lrparser/pom.xml
deleted file mode 100644
index 37de2f5..0000000
--- a/lrparser/pom.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project
-		xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
-		xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-	<modelVersion>4.0.0</modelVersion>
-
-	<parent>
-		<groupId>org.eclipse.cdt</groupId>
-		<artifactId>cdt-parent</artifactId>
-		<version>10.0.0-SNAPSHOT</version>
-	</parent>
-
-	<artifactId>org.eclipse.cdt.lrparser-parent</artifactId>
-	<packaging>pom</packaging>
-</project>
diff --git a/pom.xml b/pom.xml
index 2198a42..bb4732a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -201,11 +201,6 @@
 		<module>llvm/org.eclipse.cdt.llvm.dsf.lldb.ui</module>
 		<module>llvm/org.eclipse.cdt.llvm.dsf.lldb-feature</module>
 
-		<module>lrparser/org.eclipse.cdt.core.lrparser</module>
-		<module>lrparser/org.eclipse.cdt.core.lrparser.feature</module>
-		<module>lrparser/org.eclipse.cdt.core.lrparser.sdk.branding</module>
-		<module>lrparser/org.eclipse.cdt.core.lrparser.sdk.feature</module>
-
 		<module>lsp/org.eclipse.cdt.lsp.core</module>
 		<module>lsp/org.eclipse.cdt.lsp.ui</module>
 		<module>lsp/org.eclipse.cdt.lsp-feature</module>
@@ -233,14 +228,6 @@
 		<module>testsrunner/org.eclipse.cdt.testsrunner.tap</module>
 		<module>testsrunner/org.eclipse.cdt.testsrunner.feature</module>
 
-		<module>upc/org.eclipse.cdt.core.parser.upc</module>
-		<module>upc/org.eclipse.cdt.core.parser.upc.feature</module>
-		<module>upc/org.eclipse.cdt.core.parser.upc.sdk.branding</module>
-		<module>upc/org.eclipse.cdt.core.parser.upc.sdk.feature</module>
-
-		<module>upc/org.eclipse.cdt.managedbuilder.bupc.ui</module>
-		<module>upc/org.eclipse.cdt.bupc-feature</module>
-
 		<module>util/org.eclipse.cdt.util</module>
 
 		<module>visualizer/org.eclipse.cdt.visualizer.core</module>
@@ -252,16 +239,6 @@
 		<module>windows/org.eclipse.cdt.msw.build.tests</module>
 		<module>windows/org.eclipse.cdt.msw-feature</module>
 
-		<module>xlc/org.eclipse.cdt.core.lrparser.xlc</module>
-		<module>xlc/org.eclipse.cdt.errorparsers.xlc</module>
-		<module>xlc/org.eclipse.cdt.make.xlc.core</module>
-		<module>xlc/org.eclipse.cdt.managedbuilder.xlc.core</module>
-		<module>xlc/org.eclipse.cdt.managedbuilder.xlc.ui</module>
-		<module>xlc/org.eclipse.cdt.managedbuilder.xlupc.ui</module>
-		<module>xlc/org.eclipse.cdt.xlc.feature</module>
-		<module>xlc/org.eclipse.cdt.xlc.sdk.branding</module>
-		<module>xlc/org.eclipse.cdt.xlc.sdk-feature</module>
-
 		<module>launchbar/org.eclipse.launchbar</module>
 		<module>launchbar/org.eclipse.launchbar.core</module>
 		<module>launchbar/org.eclipse.launchbar.core.tests</module>
@@ -308,7 +285,6 @@
 		<module>lsp/org.eclipse.cdt.lsp.core.tests</module>
 		<module>qt/org.eclipse.cdt.qt.ui.tests</module>
 		<module>testsrunner/org.eclipse.cdt.testsrunner.tests</module>
-		<module>xlc/org.eclipse.cdt.errorparsers.xlc.tests</module>
 
 		<module>releng/org.eclipse.cdt.testing</module>
 		<module>releng/org.eclipse.cdt.testing-feature</module>
@@ -319,10 +295,7 @@
 		-->
 		
 		<!--
-		<module>lrparser/org.eclipse.cdt.core.lrparser.tests</module>
 		<module>qt/org.eclipse.cdt.qt.core.tests</module>
-		<module>upc/org.eclipse.cdt.core.parser.upc.tests</module>
-		<module>org.eclipse.cdt.core.lrparser.xlc.tests</module>
 		-->
 	</modules>
 
diff --git a/releng/CDT.setup b/releng/CDT.setup
index 4bec584..f77752c 100644
--- a/releng/CDT.setup
+++ b/releng/CDT.setup
@@ -78,12 +78,6 @@
       <requirement
           name="org.eclipse.cdt.build.crossgcc.feature.group"/>
       <requirement
-          name="org.eclipse.cdt.bupc.feature.group"/>
-      <requirement
-          name="org.eclipse.cdt.core.lrparser.sdk.feature.group"/>
-      <requirement
-          name="org.eclipse.cdt.core.parser.upc.sdk.feature.group"/>
-      <requirement
           name="org.eclipse.cdt.debug.gdbjtag.feature.group"/>
       <requirement
           name="org.eclipse.cdt.debug.standalone.feature.group"/>
@@ -110,8 +104,6 @@
       <requirement
           name="org.eclipse.cdt.visualizer.feature.group"/>
       <requirement
-          name="org.eclipse.cdt.xlc.sdk.feature.group"/>
-      <requirement
           name="org.eclipse.launchbar.feature.group"/>
       <requirement
           name="org.eclipse.launchbar.remote.feature.group"/>
diff --git a/releng/org.eclipse.cdt.repo/category.xml b/releng/org.eclipse.cdt.repo/category.xml
index a1e266b..5e066e8 100644
--- a/releng/org.eclipse.cdt.repo/category.xml
+++ b/releng/org.eclipse.cdt.repo/category.xml
@@ -6,45 +6,12 @@
    <feature url="features/org.eclipse.cdt.sdk_0.0.0.qualifier.jar" id="org.eclipse.cdt.sdk" version="0.0.0">
       <category name="main"/>
    </feature>
-   <feature url="features/org.eclipse.cdt.core.lrparser.feature_0.0.0.qualifier.jar" id="org.eclipse.cdt.core.lrparser.feature" version="0.0.0">
-      <category name="extra"/>
-   </feature>
-   <feature url="features/org.eclipse.cdt.core.lrparser.feature.source_0.0.0.qualifier.jar" id="org.eclipse.cdt.core.lrparser.feature.source" version="0.0.0">
-      <category name="extra"/>
-   </feature>
-   <feature url="features/org.eclipse.cdt.core.lrparser.sdk_0.0.0.qualifier.jar" id="org.eclipse.cdt.core.lrparser.sdk" version="0.0.0">
-      <category name="extra"/>
-   </feature>
-   <feature url="features/org.eclipse.cdt.core.parser.upc.feature_0.0.0.qualifier.jar" id="org.eclipse.cdt.core.parser.upc.feature" version="0.0.0">
-      <category name="extra"/>
-   </feature>
-   <feature url="features/org.eclipse.cdt.core.parser.upc.feature.source_0.0.0.qualifier.jar" id="org.eclipse.cdt.core.parser.upc.feature.source" version="0.0.0">
-      <category name="extra"/>
-   </feature>
-   <feature url="features/org.eclipse.cdt.core.parser.upc.sdk_0.0.0.qualifier.jar" id="org.eclipse.cdt.core.parser.upc.sdk" version="0.0.0">
-      <category name="extra"/>
-   </feature>
-   <feature url="features/org.eclipse.cdt.bupc_0.0.0.qualifier.jar" id="org.eclipse.cdt.bupc" version="0.0.0">
-      <category name="extra"/>
-   </feature>
-   <feature url="features/org.eclipse.cdt.bupc.source_0.0.0.qualifier.jar" id="org.eclipse.cdt.bupc.source" version="0.0.0">
-      <category name="extra"/>
-   </feature>
    <feature url="features/org.eclipse.cdt.debug.gdbjtag_0.0.0.qualifier.jar" id="org.eclipse.cdt.debug.gdbjtag" version="0.0.0">
       <category name="extra"/>
    </feature>
    <feature url="features/org.eclipse.cdt.debug.gdbjtag.source_0.0.0.qualifier.jar" id="org.eclipse.cdt.debug.gdbjtag.source" version="0.0.0">
       <category name="extra"/>
    </feature>
-   <feature url="features/org.eclipse.cdt.xlc.feature_0.0.0.qualifier.jar" id="org.eclipse.cdt.xlc.feature" version="0.0.0">
-      <category name="extra"/>
-   </feature>
-   <feature url="features/org.eclipse.cdt.xlc.feature.source_0.0.0.qualifier.jar" id="org.eclipse.cdt.xlc.feature.source" version="0.0.0">
-      <category name="extra"/>
-   </feature>
-   <feature url="features/org.eclipse.cdt.xlc.sdk_0.0.0.qualifier.jar" id="org.eclipse.cdt.xlc.sdk" version="0.0.0">
-      <category name="extra"/>
-   </feature>
    <feature url="features/org.eclipse.cdt.debug.ui.memory_0.0.0.qualifier.jar" id="org.eclipse.cdt.debug.ui.memory" version="0.0.0">
       <category name="extra"/>
    </feature>
diff --git a/releng/org.eclipse.cdt.target/cdt-baseline.target b/releng/org.eclipse.cdt.target/cdt-baseline.target
index a56fa56..20e8fe2 100644
--- a/releng/org.eclipse.cdt.target/cdt-baseline.target
+++ b/releng/org.eclipse.cdt.target/cdt-baseline.target
@@ -30,13 +30,8 @@
 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
 <unit id="org.eclipse.cdt.autotools.feature.group" version="0.0.0"/>
 <unit id="org.eclipse.cdt.build.crossgcc.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.cdt.bupc.feature.group" version="0.0.0"/>
 <unit id="org.eclipse.cdt.cmake.feature.group" version="0.0.0"/>
 <unit id="org.eclipse.cdt.core.autotools.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.cdt.core.lrparser.feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.cdt.core.lrparser.sdk.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.cdt.core.parser.upc.feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.cdt.core.parser.upc.sdk.feature.group" version="0.0.0"/>
 <unit id="org.eclipse.cdt.debug.dap.feature.group" version="0.0.0"/>
 <unit id="org.eclipse.cdt.debug.dap.gdbjtag.feature.group" version="0.0.0"/>
 <unit id="org.eclipse.cdt.debug.gdbjtag.feature.group" version="0.0.0"/>
@@ -62,8 +57,6 @@
 <unit id="org.eclipse.cdt.sdk.feature.group" version="0.0.0"/>
 <unit id="org.eclipse.cdt.testsrunner.feature.feature.group" version="0.0.0"/>
 <unit id="org.eclipse.cdt.visualizer.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.cdt.xlc.sdk.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.cdt.xlc.feature.feature.group" version="0.0.0"/>
 <unit id="org.eclipse.launchbar.feature.group" version="0.0.0"/>
 <unit id="org.eclipse.launchbar.remote.feature.group" version="0.0.0"/>
 <unit id="org.eclipse.tm.terminal.connector.cdtserial.feature.feature.group" version="0.0.0"/>
diff --git a/releng/org.eclipse.cdt.testing/test.xml b/releng/org.eclipse.cdt.testing/test.xml
index 4b157c4..4c10f2a 100644
--- a/releng/org.eclipse.cdt.testing/test.xml
+++ b/releng/org.eclipse.cdt.testing/test.xml
@@ -4,9 +4,6 @@
 	<property name="cdt-ui-loc" value="${eclipse-home}/cdt_ui_folder"/>
 	<property name="cdt-mbs-core-loc" value="${eclipse-home}/cdt_mbs_core_folder"/>
 	<property name="cdt-mbs-ui-loc" value="${eclipse-home}/cdt_mbs_ui_folder"/>
-	<property name="cdt-lr-parser-loc" value="${eclipse-home}/cdt_lr_parser_folder"/>
-	<property name="cdt-upc-parser-loc" value="${eclipse-home}/cdt_upc_parser_folder"/>
-	<property name="cdt-lr-parser-xlc-loc" value="${eclipse-home}/cdt_lr_parser_xlc_folder"/>
 	<property name="cdt-vmargs" value=" -ea -Xms40m -Xmx1024m"/>
 	<property name="cdt-common-vmargs" value="-Dorg.eclipse.swt.browser.XULRunnerPath=/shared/common/mozilla-xulrunner181-1.8.1.4-30.ppc"/>
 	
@@ -63,36 +60,6 @@
 			<property name="extraVMargs" value="${cdt-common-vmargs}"/>
 		</ant>
 	</target>
-	
-	<target name="cdt-lr-parser" depends="init">
-		<ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
-			<property name="data-dir" value="${cdt-lr-parser-loc}"/>
-			<property name="plugin-name" value="org.eclipse.cdt.core.lrparser.tests"/>
-			<property name="classname" value="org.eclipse.cdt.core.lrparser.tests.LRParserTestSuite"/>
-			<property name="vmargs" value="${cdt-vmargs}"/>
-			<property name="extraVMargs" value="${cdt-common-vmargs}"/>
-		</ant>
-	</target>
-	
-	<target name="cdt-upc-parser" depends="init">
-		<ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
-			<property name="data-dir" value="${cdt-upc-parser-loc}"/>
-			<property name="plugin-name" value="org.eclipse.cdt.core.parser.upc.tests"/>
-			<property name="classname" value="org.eclipse.cdt.core.parser.upc.tests.UPCParserTestSuite"/>
-			<property name="vmargs" value="${cdt-vmargs}"/>
-			<property name="extraVMargs" value="${cdt-common-vmargs}"/>
-		</ant>
-	</target>
-	
-	<target name="cdt-lr-parser-xlc" depends="init">
-		<ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
-			<property name="data-dir" value="${cdt-lr-parser-xlc-loc}"/>
-			<property name="plugin-name" value="org.eclipse.cdt.core.lrparser.xlc.tests"/>
-			<property name="classname" value="org.eclipse.cdt.core.parser.xlc.tests.suite.XlcTestSuite"/>
-			<property name="vmargs" value="${cdt-vmargs}"/>
-			<property name="extraVMargs" value="${cdt-common-vmargs}"/>
-		</ant>
-	</target>
 
 	<target name="cdt-codan" depends="init">
 		<ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
@@ -110,9 +77,6 @@
 		<antcall target="cdt-mbs-core"/>
 		<antcall target="cdt-mbs-ui"/>
 		<antcall target="cdt-codan"/>
-		<antcall target="cdt-lr-parser"/>
-		<antcall target="cdt-upc-parser"/>
-		<antcall target="cdt-lr-parser-xlc"/>
 	</target>
 
 </project>
diff --git a/upc/org.eclipse.cdt.bupc-feature/.project b/upc/org.eclipse.cdt.bupc-feature/.project
deleted file mode 100644
index 36362f8..0000000
--- a/upc/org.eclipse.cdt.bupc-feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.cdt.bupc-feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/upc/org.eclipse.cdt.bupc-feature/build.properties b/upc/org.eclipse.cdt.bupc-feature/build.properties
deleted file mode 100644
index d962778..0000000
--- a/upc/org.eclipse.cdt.bupc-feature/build.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Copyright (c) 2010 IBM Corporation and others.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = feature.xml,\
-               feature.properties
diff --git a/upc/org.eclipse.cdt.bupc-feature/feature.properties b/upc/org.eclipse.cdt.bupc-feature/feature.properties
deleted file mode 100644
index becda7d..0000000
--- a/upc/org.eclipse.cdt.bupc-feature/feature.properties
+++ /dev/null
@@ -1,36 +0,0 @@
-###############################################################################
-# Copyright (c) 2010 IBM Corporation and others.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# features.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=C/C++ Berkeley UPC (Unified Parallel C) Toolchain Support
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse CDT
-
-# "description" property - description of the feature
-description=Support for Berkeley Unified Parallel C (UPC) toolchain.
-
-# copyright
-copyright=\
-Copyright (c) 2010, 2011 University of Florida and others.\n\
-This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License 2.0\n\
-which accompanies this distribution, and is available at\n\
-https://www.eclipse.org/legal/epl-2.0/
-
diff --git a/upc/org.eclipse.cdt.bupc-feature/feature.xml b/upc/org.eclipse.cdt.bupc-feature/feature.xml
deleted file mode 100644
index 0986019..0000000
--- a/upc/org.eclipse.cdt.bupc-feature/feature.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.cdt.bupc"
-      label="%featureName"
-      version="10.0.0.qualifier"
-      provider-name="%providerName"
-      plugin="org.eclipse.cdt.managedbuilder.bupc.ui"
-      license-feature="org.eclipse.license"
-      license-feature-version="0.0.0">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="%licenseURL">
-      %license
-   </license>
-
-   <plugin
-         id="org.eclipse.cdt.managedbuilder.bupc.ui"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"/>
-
-</feature>
diff --git a/upc/org.eclipse.cdt.core.parser.upc.feature/.project b/upc/org.eclipse.cdt.core.parser.upc.feature/.project
deleted file mode 100644
index 0884172..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.cdt.core.parser.upc.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/upc/org.eclipse.cdt.core.parser.upc.feature/build.properties b/upc/org.eclipse.cdt.core.parser.upc.feature/build.properties
deleted file mode 100644
index 4229bb6..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.feature/build.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = feature.xml,\
-               feature.properties
diff --git a/upc/org.eclipse.cdt.core.parser.upc.feature/feature.properties b/upc/org.eclipse.cdt.core.parser.upc.feature/feature.properties
deleted file mode 100644
index ce3cde0..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.feature/feature.properties
+++ /dev/null
@@ -1,36 +0,0 @@
-###############################################################################
-#  Copyright (c) 2007, 2010 IBM Corporation and others.
-#
-#  This program and the accompanying materials
-#  are made available under the terms of the Eclipse Public License 2.0
-#  which accompanies this distribution, and is available at
-#  https://www.eclipse.org/legal/epl-2.0/
-#
-#  SPDX-License-Identifier: EPL-2.0
-#
-#  Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=C/C++ UPC (Unified Parallel C) Support
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse CDT
-
-# "description" property - description of the feature
-description=Support for the Unified Parallel C variant of the C programming language.
-
-# copyright
-copyright=\
-Copyright (c) 2007, 2011 IBM Corporation and others.\n\
-This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License 2.0\n\
-which accompanies this distribution, and is available at\n\
-https://www.eclipse.org/legal/epl-2.0/
-
diff --git a/upc/org.eclipse.cdt.core.parser.upc.feature/feature.xml b/upc/org.eclipse.cdt.core.parser.upc.feature/feature.xml
deleted file mode 100644
index 08c38e7..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.feature/feature.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.cdt.core.parser.upc.feature"
-      label="%featureName"
-      version="10.0.0.qualifier"
-      provider-name="%providerName"
-      plugin="org.eclipse.cdt.core.parser.upc"
-      license-feature="org.eclipse.license"
-      license-feature-version="0.0.0">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="%licenseURL">
-      %license
-   </license>
-
-   <includes
-         id="org.eclipse.cdt.core.lrparser.feature"
-         version="0.0.0"/>
-
-   <plugin
-         id="org.eclipse.cdt.core.parser.upc"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/upc/org.eclipse.cdt.core.parser.upc.feature/rootfiles/notice.html b/upc/org.eclipse.cdt.core.parser.upc.feature/rootfiles/notice.html
deleted file mode 100644
index 008b801..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.feature/rootfiles/notice.html
+++ /dev/null
@@ -1,189 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-	<h2>Eclipse Foundation Software User Agreement</h2>
-	<p>November 22, 2017</p>
-
-	<h3>Usage Of Content</h3>
-
-	<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION,
-		INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-		(COLLECTIVELY &quot;CONTENT&quot;). USE OF THE CONTENT IS GOVERNED BY
-		THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-		CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED
-		BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS
-		GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY
-		APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED
-		BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS
-		AGREEMENT AND THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE
-		AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT
-		USE THE CONTENT.</p>
-
-	<h3>Applicable Licenses</h3>
-
-	<p>
-		Unless otherwise indicated, all Content made available by the Eclipse
-		Foundation is provided to you under the terms and conditions of the
-		Eclipse Public License Version 2.0 (&quot;EPL&quot;). A copy of the
-		EPL is provided with this Content and is also available at <a
-			href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>Content includes, but is not limited to, source code, object
-		code, documentation and other files maintained in the Eclipse
-		Foundation source code repository (&quot;Repository&quot;) in software
-		modules (&quot;Modules&quot;) and made available as downloadable
-		archives (&quot;Downloads&quot;).</p>
-
-	<ul>
-		<li>Content may be structured and packaged into modules to
-			facilitate delivering, extending, and upgrading the Content. Typical
-			modules may include plug-ins (&quot;Plug-ins&quot;), plug-in
-			fragments (&quot;Fragments&quot;), and features
-			(&quot;Features&quot;).</li>
-		<li>Each Plug-in or Fragment may be packaged as a sub-directory
-			or JAR (Java&trade; ARchive) in a directory named
-			&quot;plugins&quot;.</li>
-		<li>A Feature is a bundle of one or more Plug-ins and/or
-			Fragments and associated material. Each Feature may be packaged as a
-			sub-directory in a directory named &quot;features&quot;. Within a
-			Feature, files named &quot;feature.xml&quot; may contain a list of
-			the names and version numbers of the Plug-ins and/or Fragments
-			associated with that Feature.</li>
-		<li>Features may also include other Features (&quot;Included
-			Features&quot;). Within a Feature, files named
-			&quot;feature.xml&quot; may contain a list of the names and version
-			numbers of Included Features.</li>
-	</ul>
-
-	<p>The terms and conditions governing Plug-ins and Fragments should
-		be contained in files named &quot;about.html&quot;
-		(&quot;Abouts&quot;). The terms and conditions governing Features and
-		Included Features should be contained in files named
-		&quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and
-		Feature Licenses may be located in any directory of a Download or
-		Module including, but not limited to the following locations:</p>
-
-	<ul>
-		<li>The top-level (root) directory</li>
-		<li>Plug-in and Fragment directories</li>
-		<li>Inside Plug-ins and Fragments packaged as JARs</li>
-		<li>Sub-directories of the directory named &quot;src&quot; of
-			certain Plug-ins</li>
-		<li>Feature directories</li>
-	</ul>
-
-	<p>Note: if a Feature made available by the Eclipse Foundation is
-		installed using the Provisioning Technology (as defined below), you
-		must agree to a license (&quot;Feature Update License&quot;) during
-		the installation process. If the Feature contains Included Features,
-		the Feature Update License should either provide you with the terms
-		and conditions governing the Included Features or inform you where you
-		can locate them. Feature Update Licenses may be found in the
-		&quot;license&quot; property of files named
-		&quot;feature.properties&quot; found within a Feature. Such Abouts,
-		Feature Licenses, and Feature Update Licenses contain the terms and
-		conditions (or references to such terms and conditions) that govern
-		your use of the associated Content in that directory.</p>
-
-	<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY
-		REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND
-		CONDITIONS. SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT
-		ARE NOT LIMITED TO):</p>
-
-	<ul>
-		<li>Eclipse Public License Version 1.0 (available at <a
-			href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>)
-		</li>
-		<li>Eclipse Distribution License Version 1.0 (available at <a
-			href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)
-		</li>
-		<li>Common Public License Version 1.0 (available at <a
-			href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)
-		</li>
-		<li>Apache Software License 1.1 (available at <a
-			href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)
-		</li>
-		<li>Apache Software License 2.0 (available at <a
-			href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)
-		</li>
-		<li>Mozilla Public License Version 1.1 (available at <a
-			href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)
-		</li>
-	</ul>
-
-	<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND
-		CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License,
-		or Feature Update License is provided, please contact the Eclipse
-		Foundation to determine what terms and conditions govern that
-		particular Content.</p>
-
-
-	<h3>Use of Provisioning Technology</h3>
-
-	<p>
-		The Eclipse Foundation makes available provisioning software, examples
-		of which include, but are not limited to, p2 and the Eclipse Update
-		Manager (&quot;Provisioning Technology&quot;) for the purpose of
-		allowing users to install software, documentation, information and/or
-		other materials (collectively &quot;Installable Software&quot;). This
-		capability is provided with the intent of allowing such users to
-		install, extend and update Eclipse-based products. Information about
-		packaging Installable Software is available at <a
-			href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-		(&quot;Specification&quot;).
-	</p>
-
-	<p>You may use Provisioning Technology to allow other parties to
-		install Installable Software. You shall be responsible for enabling
-		the applicable license agreements relating to the Installable Software
-		to be presented to, and accepted by, the users of the Provisioning
-		Technology in accordance with the Specification. By using Provisioning
-		Technology in such a manner and making it available in accordance with
-		the Specification, you further acknowledge your agreement to, and the
-		acquisition of all necessary rights to permit the following:</p>
-
-	<ol>
-		<li>A series of actions may occur (&quot;Provisioning
-			Process&quot;) in which a user may execute the Provisioning
-			Technology on a machine (&quot;Target Machine&quot;) with the intent
-			of installing, extending or updating the functionality of an
-			Eclipse-based product.</li>
-		<li>During the Provisioning Process, the Provisioning Technology
-			may cause third party Installable Software or a portion thereof to be
-			accessed and copied to the Target Machine.</li>
-		<li>Pursuant to the Specification, you will provide to the user
-			the terms and conditions that govern the use of the Installable
-			Software (&quot;Installable Software Agreement&quot;) and such
-			Installable Software Agreement shall be accessed from the Target
-			Machine in accordance with the Specification. Such Installable
-			Software Agreement must inform the user of the terms and conditions
-			that govern the Installable Software and must solicit acceptance by
-			the end user in the manner prescribed in such Installable Software
-			Agreement. Upon such indication of agreement by the user, the
-			provisioning Technology will complete installation of the Installable
-			Software.</li>
-	</ol>
-
-	<h3>Cryptography</h3>
-
-	<p>Content may contain encryption software. The country in which
-		you are currently may have restrictions on the import, possession, and
-		use, and/or re-export to another country, of encryption software.
-		BEFORE using any encryption software, please check the country's laws,
-		regulations and policies concerning the import, possession, or use,
-		and re-export of encryption software, to see if this is permitted.</p>
-
-	<p>
-		<small>Java and all Java-based trademarks are trademarks of
-			Oracle Corporation in the United States, other countries, or both.</small>
-	</p>
-</body>
-</html>
diff --git a/upc/org.eclipse.cdt.core.parser.upc.feature/sourceTemplateFeature/p2.inf b/upc/org.eclipse.cdt.core.parser.upc.feature/sourceTemplateFeature/p2.inf
deleted file mode 100644
index 91b75da..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.feature/sourceTemplateFeature/p2.inf
+++ /dev/null
@@ -1 +0,0 @@
-update.matchExp=providedCapabilities.exists(pc | pc.namespace == 'org.eclipse.equinox.p2.iu' && (pc.name == 'org.eclipse.cdt.core.parser.upc.source.feature.group' || pc.name == 'org.eclipse.cdt.core.parser.upc.feature.source.feature.group'))
diff --git a/upc/org.eclipse.cdt.core.parser.upc.sdk.branding/.project b/upc/org.eclipse.cdt.core.parser.upc.sdk.branding/.project
deleted file mode 100644
index c0581d5..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.sdk.branding/.project
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.cdt.core.parser.upc.sdk.branding</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/upc/org.eclipse.cdt.core.parser.upc.sdk.branding/.settings/org.eclipse.pde.api.tools.prefs b/upc/org.eclipse.cdt.core.parser.upc.sdk.branding/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index ec9fbf3..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.sdk.branding/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,184 +0,0 @@
-ANNOTATION_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITH_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-API_USE_SCAN_FIELD_SEVERITY=Error
-API_USE_SCAN_METHOD_SEVERITY=Error
-API_USE_SCAN_TYPE_SEVERITY=Error
-CLASS_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERCLASS_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_CHANGED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENTS=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETERS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_ANNOTATION=Ignore
-INVALID_JAVADOC_TAG=Error
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Warning
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-MISSING_EE_DESCRIPTIONS=Warning
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-automatically_removed_unused_problem_filters=false
-changed_execution_env=Error
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-incompatible_api_component_version_report_major_without_breaking_change=Warning
-incompatible_api_component_version_report_minor_without_api_change=Warning
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
diff --git a/upc/org.eclipse.cdt.core.parser.upc.sdk.branding/.settings/org.eclipse.pde.prefs b/upc/org.eclipse.cdt.core.parser.upc.sdk.branding/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index d2dc703..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.sdk.branding/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,35 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.build.bin.includes=1
-compilers.p.build.encodings=2
-compilers.p.build.java.compiler=2
-compilers.p.build.java.compliance=1
-compilers.p.build.missing.output=2
-compilers.p.build.output.library=1
-compilers.p.build.source.library=1
-compilers.p.build.src.includes=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=1
-compilers.p.missing-packages=2
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=2
-compilers.p.missing-version-require-bundle=2
-compilers.p.no-required-att=0
-compilers.p.no.automatic.module=1
-compilers.p.not-externalized-att=1
-compilers.p.service.component.without.lazyactivation=1
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/upc/org.eclipse.cdt.core.parser.upc.sdk.branding/META-INF/MANIFEST.MF b/upc/org.eclipse.cdt.core.parser.upc.sdk.branding/META-INF/MANIFEST.MF
deleted file mode 100644
index 384ff0ad..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.sdk.branding/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,7 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.cdt.core.parser.upc.sdk.branding;singleton:=true
-Bundle-Version: 10.0.0.qualifier
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
diff --git a/upc/org.eclipse.cdt.core.parser.upc.sdk.branding/about.html b/upc/org.eclipse.cdt.core.parser.upc.sdk.branding/about.html
deleted file mode 100644
index 164f781..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.sdk.branding/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
-	<h2>About This Content</h2>
-
-	<p>November 30, 2017</p>
-	<h3>License</h3>
-
-	<p>
-		The Eclipse Foundation makes available all content in this plug-in
-		(&quot;Content&quot;). Unless otherwise indicated below, the Content
-		is provided to you under the terms and conditions of the Eclipse
-		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
-		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>
-		If you did not receive this Content directly from the Eclipse
-		Foundation, the Content is being redistributed by another party
-		(&quot;Redistributor&quot;) and different terms and conditions may
-		apply to your use of any object code in the Content. Check the
-		Redistributor's license that was provided with the Content. If no such
-		license exists, contact the Redistributor. Unless otherwise indicated
-		below, the terms and conditions of the EPL still apply to any source
-		code in the Content and such source code may be obtained at <a
-			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
-	</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/upc/org.eclipse.cdt.core.parser.upc.sdk.branding/about.ini b/upc/org.eclipse.cdt.core.parser.upc.sdk.branding/about.ini
deleted file mode 100644
index e07a7bb..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.sdk.branding/about.ini
+++ /dev/null
@@ -1,24 +0,0 @@
-# about.ini
-# contains information about a feature
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in about.properties
-# This file does not need to be translated.
-
-# Property "aboutText" contains blurb for "About" dialog (translated)
-aboutText=%blurb
-
-# Property "windowImage" contains path to window icon (16x16)
-# needed for primary features only
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=cdt_logo_icon32.png
-
-# Property "aboutImage" contains path to product image (500x330 or 115x164)
-# needed for primary features only
-
-# Property "appName" contains name of the application (translated)
-# needed for primary features only
-
-# Property "welcomePerspective" contains the id of the perspective in which the
-# welcome page is to be opened.
-# optional
diff --git a/upc/org.eclipse.cdt.core.parser.upc.sdk.branding/about.mappings b/upc/org.eclipse.cdt.core.parser.upc.sdk.branding/about.mappings
deleted file mode 100644
index 936a803..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.sdk.branding/about.mappings
+++ /dev/null
@@ -1,9 +0,0 @@
-# about.mappings
-# contains fill-ins for about.properties
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file does not need to be translated.
-
-# The following should contain the build version.
-# e.g. "0=20200106-1728"
-# This value will be added automatically via the build scripts
-0=${buildId}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.sdk.branding/about.properties b/upc/org.eclipse.cdt.core.parser.upc.sdk.branding/about.properties
deleted file mode 100644
index b3155b9..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.sdk.branding/about.properties
+++ /dev/null
@@ -1,32 +0,0 @@
-###############################################################################
-# Copyright (c) 2009, 2020 Contributors to the Eclipse Foundation
-#
-# See the NOTICE file(s) distributed with this work for additional
-# information regarding copyright ownership.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-###############################################################################
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-# NOTE TO TRANSLATOR: Please do not translate the featureVersion variable.
-
-
-blurb=C/C++ UPC (Unified Parallel C) Support SDK\n\
-\n\
-Version: {featureVersion}\n\
-Build id: {0}\n\
-\n\
-Copyright (c) 2009, 2020 Contributors to the Eclipse Foundation
-\n\
-See the NOTICE file(s) distributed with this work for additional\n\
-information regarding copyright ownership.\n\
-\n\
-Visit http://www.eclipse.org/cdt
diff --git a/upc/org.eclipse.cdt.core.parser.upc.sdk.branding/build.properties b/upc/org.eclipse.cdt.core.parser.upc.sdk.branding/build.properties
deleted file mode 100644
index f9952c2..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.sdk.branding/build.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-###############################################################################
-#  Copyright (c) 2005, 2009 IBM Corporation and others.
-#
-#  This program and the accompanying materials
-#  are made available under the terms of the Eclipse Public License 2.0
-#  which accompanies this distribution, and is available at
-#  https://www.eclipse.org/legal/epl-2.0/
-#
-#  SPDX-License-Identifier: EPL-2.0
-#
-#  Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = about.html,\
-               about.ini,\
-               about.mappings,\
-               about.properties,\
-               notice.html,\
-               plugin.properties,\
-               epl-v20.html,\
-               META-INF/,\
-               cdt_logo_icon32.png
-src.includes = about.html
diff --git a/upc/org.eclipse.cdt.core.parser.upc.sdk.branding/cdt_logo_icon32.png b/upc/org.eclipse.cdt.core.parser.upc.sdk.branding/cdt_logo_icon32.png
deleted file mode 100644
index 470ca81..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.sdk.branding/cdt_logo_icon32.png
+++ /dev/null
Binary files differ
diff --git a/upc/org.eclipse.cdt.core.parser.upc.sdk.branding/epl-v20.html b/upc/org.eclipse.cdt.core.parser.upc.sdk.branding/epl-v20.html
deleted file mode 100644
index 008b801..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.sdk.branding/epl-v20.html
+++ /dev/null
@@ -1,189 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-	<h2>Eclipse Foundation Software User Agreement</h2>
-	<p>November 22, 2017</p>
-
-	<h3>Usage Of Content</h3>
-
-	<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION,
-		INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-		(COLLECTIVELY &quot;CONTENT&quot;). USE OF THE CONTENT IS GOVERNED BY
-		THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-		CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED
-		BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS
-		GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY
-		APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED
-		BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS
-		AGREEMENT AND THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE
-		AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT
-		USE THE CONTENT.</p>
-
-	<h3>Applicable Licenses</h3>
-
-	<p>
-		Unless otherwise indicated, all Content made available by the Eclipse
-		Foundation is provided to you under the terms and conditions of the
-		Eclipse Public License Version 2.0 (&quot;EPL&quot;). A copy of the
-		EPL is provided with this Content and is also available at <a
-			href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>Content includes, but is not limited to, source code, object
-		code, documentation and other files maintained in the Eclipse
-		Foundation source code repository (&quot;Repository&quot;) in software
-		modules (&quot;Modules&quot;) and made available as downloadable
-		archives (&quot;Downloads&quot;).</p>
-
-	<ul>
-		<li>Content may be structured and packaged into modules to
-			facilitate delivering, extending, and upgrading the Content. Typical
-			modules may include plug-ins (&quot;Plug-ins&quot;), plug-in
-			fragments (&quot;Fragments&quot;), and features
-			(&quot;Features&quot;).</li>
-		<li>Each Plug-in or Fragment may be packaged as a sub-directory
-			or JAR (Java&trade; ARchive) in a directory named
-			&quot;plugins&quot;.</li>
-		<li>A Feature is a bundle of one or more Plug-ins and/or
-			Fragments and associated material. Each Feature may be packaged as a
-			sub-directory in a directory named &quot;features&quot;. Within a
-			Feature, files named &quot;feature.xml&quot; may contain a list of
-			the names and version numbers of the Plug-ins and/or Fragments
-			associated with that Feature.</li>
-		<li>Features may also include other Features (&quot;Included
-			Features&quot;). Within a Feature, files named
-			&quot;feature.xml&quot; may contain a list of the names and version
-			numbers of Included Features.</li>
-	</ul>
-
-	<p>The terms and conditions governing Plug-ins and Fragments should
-		be contained in files named &quot;about.html&quot;
-		(&quot;Abouts&quot;). The terms and conditions governing Features and
-		Included Features should be contained in files named
-		&quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and
-		Feature Licenses may be located in any directory of a Download or
-		Module including, but not limited to the following locations:</p>
-
-	<ul>
-		<li>The top-level (root) directory</li>
-		<li>Plug-in and Fragment directories</li>
-		<li>Inside Plug-ins and Fragments packaged as JARs</li>
-		<li>Sub-directories of the directory named &quot;src&quot; of
-			certain Plug-ins</li>
-		<li>Feature directories</li>
-	</ul>
-
-	<p>Note: if a Feature made available by the Eclipse Foundation is
-		installed using the Provisioning Technology (as defined below), you
-		must agree to a license (&quot;Feature Update License&quot;) during
-		the installation process. If the Feature contains Included Features,
-		the Feature Update License should either provide you with the terms
-		and conditions governing the Included Features or inform you where you
-		can locate them. Feature Update Licenses may be found in the
-		&quot;license&quot; property of files named
-		&quot;feature.properties&quot; found within a Feature. Such Abouts,
-		Feature Licenses, and Feature Update Licenses contain the terms and
-		conditions (or references to such terms and conditions) that govern
-		your use of the associated Content in that directory.</p>
-
-	<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY
-		REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND
-		CONDITIONS. SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT
-		ARE NOT LIMITED TO):</p>
-
-	<ul>
-		<li>Eclipse Public License Version 1.0 (available at <a
-			href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>)
-		</li>
-		<li>Eclipse Distribution License Version 1.0 (available at <a
-			href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)
-		</li>
-		<li>Common Public License Version 1.0 (available at <a
-			href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)
-		</li>
-		<li>Apache Software License 1.1 (available at <a
-			href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)
-		</li>
-		<li>Apache Software License 2.0 (available at <a
-			href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)
-		</li>
-		<li>Mozilla Public License Version 1.1 (available at <a
-			href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)
-		</li>
-	</ul>
-
-	<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND
-		CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License,
-		or Feature Update License is provided, please contact the Eclipse
-		Foundation to determine what terms and conditions govern that
-		particular Content.</p>
-
-
-	<h3>Use of Provisioning Technology</h3>
-
-	<p>
-		The Eclipse Foundation makes available provisioning software, examples
-		of which include, but are not limited to, p2 and the Eclipse Update
-		Manager (&quot;Provisioning Technology&quot;) for the purpose of
-		allowing users to install software, documentation, information and/or
-		other materials (collectively &quot;Installable Software&quot;). This
-		capability is provided with the intent of allowing such users to
-		install, extend and update Eclipse-based products. Information about
-		packaging Installable Software is available at <a
-			href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-		(&quot;Specification&quot;).
-	</p>
-
-	<p>You may use Provisioning Technology to allow other parties to
-		install Installable Software. You shall be responsible for enabling
-		the applicable license agreements relating to the Installable Software
-		to be presented to, and accepted by, the users of the Provisioning
-		Technology in accordance with the Specification. By using Provisioning
-		Technology in such a manner and making it available in accordance with
-		the Specification, you further acknowledge your agreement to, and the
-		acquisition of all necessary rights to permit the following:</p>
-
-	<ol>
-		<li>A series of actions may occur (&quot;Provisioning
-			Process&quot;) in which a user may execute the Provisioning
-			Technology on a machine (&quot;Target Machine&quot;) with the intent
-			of installing, extending or updating the functionality of an
-			Eclipse-based product.</li>
-		<li>During the Provisioning Process, the Provisioning Technology
-			may cause third party Installable Software or a portion thereof to be
-			accessed and copied to the Target Machine.</li>
-		<li>Pursuant to the Specification, you will provide to the user
-			the terms and conditions that govern the use of the Installable
-			Software (&quot;Installable Software Agreement&quot;) and such
-			Installable Software Agreement shall be accessed from the Target
-			Machine in accordance with the Specification. Such Installable
-			Software Agreement must inform the user of the terms and conditions
-			that govern the Installable Software and must solicit acceptance by
-			the end user in the manner prescribed in such Installable Software
-			Agreement. Upon such indication of agreement by the user, the
-			provisioning Technology will complete installation of the Installable
-			Software.</li>
-	</ol>
-
-	<h3>Cryptography</h3>
-
-	<p>Content may contain encryption software. The country in which
-		you are currently may have restrictions on the import, possession, and
-		use, and/or re-export to another country, of encryption software.
-		BEFORE using any encryption software, please check the country's laws,
-		regulations and policies concerning the import, possession, or use,
-		and re-export of encryption software, to see if this is permitted.</p>
-
-	<p>
-		<small>Java and all Java-based trademarks are trademarks of
-			Oracle Corporation in the United States, other countries, or both.</small>
-	</p>
-</body>
-</html>
diff --git a/upc/org.eclipse.cdt.core.parser.upc.sdk.branding/notice.html b/upc/org.eclipse.cdt.core.parser.upc.sdk.branding/notice.html
deleted file mode 100644
index 008b801..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.sdk.branding/notice.html
+++ /dev/null
@@ -1,189 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-	<h2>Eclipse Foundation Software User Agreement</h2>
-	<p>November 22, 2017</p>
-
-	<h3>Usage Of Content</h3>
-
-	<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION,
-		INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-		(COLLECTIVELY &quot;CONTENT&quot;). USE OF THE CONTENT IS GOVERNED BY
-		THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-		CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED
-		BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS
-		GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY
-		APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED
-		BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS
-		AGREEMENT AND THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE
-		AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT
-		USE THE CONTENT.</p>
-
-	<h3>Applicable Licenses</h3>
-
-	<p>
-		Unless otherwise indicated, all Content made available by the Eclipse
-		Foundation is provided to you under the terms and conditions of the
-		Eclipse Public License Version 2.0 (&quot;EPL&quot;). A copy of the
-		EPL is provided with this Content and is also available at <a
-			href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>Content includes, but is not limited to, source code, object
-		code, documentation and other files maintained in the Eclipse
-		Foundation source code repository (&quot;Repository&quot;) in software
-		modules (&quot;Modules&quot;) and made available as downloadable
-		archives (&quot;Downloads&quot;).</p>
-
-	<ul>
-		<li>Content may be structured and packaged into modules to
-			facilitate delivering, extending, and upgrading the Content. Typical
-			modules may include plug-ins (&quot;Plug-ins&quot;), plug-in
-			fragments (&quot;Fragments&quot;), and features
-			(&quot;Features&quot;).</li>
-		<li>Each Plug-in or Fragment may be packaged as a sub-directory
-			or JAR (Java&trade; ARchive) in a directory named
-			&quot;plugins&quot;.</li>
-		<li>A Feature is a bundle of one or more Plug-ins and/or
-			Fragments and associated material. Each Feature may be packaged as a
-			sub-directory in a directory named &quot;features&quot;. Within a
-			Feature, files named &quot;feature.xml&quot; may contain a list of
-			the names and version numbers of the Plug-ins and/or Fragments
-			associated with that Feature.</li>
-		<li>Features may also include other Features (&quot;Included
-			Features&quot;). Within a Feature, files named
-			&quot;feature.xml&quot; may contain a list of the names and version
-			numbers of Included Features.</li>
-	</ul>
-
-	<p>The terms and conditions governing Plug-ins and Fragments should
-		be contained in files named &quot;about.html&quot;
-		(&quot;Abouts&quot;). The terms and conditions governing Features and
-		Included Features should be contained in files named
-		&quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and
-		Feature Licenses may be located in any directory of a Download or
-		Module including, but not limited to the following locations:</p>
-
-	<ul>
-		<li>The top-level (root) directory</li>
-		<li>Plug-in and Fragment directories</li>
-		<li>Inside Plug-ins and Fragments packaged as JARs</li>
-		<li>Sub-directories of the directory named &quot;src&quot; of
-			certain Plug-ins</li>
-		<li>Feature directories</li>
-	</ul>
-
-	<p>Note: if a Feature made available by the Eclipse Foundation is
-		installed using the Provisioning Technology (as defined below), you
-		must agree to a license (&quot;Feature Update License&quot;) during
-		the installation process. If the Feature contains Included Features,
-		the Feature Update License should either provide you with the terms
-		and conditions governing the Included Features or inform you where you
-		can locate them. Feature Update Licenses may be found in the
-		&quot;license&quot; property of files named
-		&quot;feature.properties&quot; found within a Feature. Such Abouts,
-		Feature Licenses, and Feature Update Licenses contain the terms and
-		conditions (or references to such terms and conditions) that govern
-		your use of the associated Content in that directory.</p>
-
-	<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY
-		REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND
-		CONDITIONS. SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT
-		ARE NOT LIMITED TO):</p>
-
-	<ul>
-		<li>Eclipse Public License Version 1.0 (available at <a
-			href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>)
-		</li>
-		<li>Eclipse Distribution License Version 1.0 (available at <a
-			href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)
-		</li>
-		<li>Common Public License Version 1.0 (available at <a
-			href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)
-		</li>
-		<li>Apache Software License 1.1 (available at <a
-			href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)
-		</li>
-		<li>Apache Software License 2.0 (available at <a
-			href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)
-		</li>
-		<li>Mozilla Public License Version 1.1 (available at <a
-			href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)
-		</li>
-	</ul>
-
-	<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND
-		CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License,
-		or Feature Update License is provided, please contact the Eclipse
-		Foundation to determine what terms and conditions govern that
-		particular Content.</p>
-
-
-	<h3>Use of Provisioning Technology</h3>
-
-	<p>
-		The Eclipse Foundation makes available provisioning software, examples
-		of which include, but are not limited to, p2 and the Eclipse Update
-		Manager (&quot;Provisioning Technology&quot;) for the purpose of
-		allowing users to install software, documentation, information and/or
-		other materials (collectively &quot;Installable Software&quot;). This
-		capability is provided with the intent of allowing such users to
-		install, extend and update Eclipse-based products. Information about
-		packaging Installable Software is available at <a
-			href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-		(&quot;Specification&quot;).
-	</p>
-
-	<p>You may use Provisioning Technology to allow other parties to
-		install Installable Software. You shall be responsible for enabling
-		the applicable license agreements relating to the Installable Software
-		to be presented to, and accepted by, the users of the Provisioning
-		Technology in accordance with the Specification. By using Provisioning
-		Technology in such a manner and making it available in accordance with
-		the Specification, you further acknowledge your agreement to, and the
-		acquisition of all necessary rights to permit the following:</p>
-
-	<ol>
-		<li>A series of actions may occur (&quot;Provisioning
-			Process&quot;) in which a user may execute the Provisioning
-			Technology on a machine (&quot;Target Machine&quot;) with the intent
-			of installing, extending or updating the functionality of an
-			Eclipse-based product.</li>
-		<li>During the Provisioning Process, the Provisioning Technology
-			may cause third party Installable Software or a portion thereof to be
-			accessed and copied to the Target Machine.</li>
-		<li>Pursuant to the Specification, you will provide to the user
-			the terms and conditions that govern the use of the Installable
-			Software (&quot;Installable Software Agreement&quot;) and such
-			Installable Software Agreement shall be accessed from the Target
-			Machine in accordance with the Specification. Such Installable
-			Software Agreement must inform the user of the terms and conditions
-			that govern the Installable Software and must solicit acceptance by
-			the end user in the manner prescribed in such Installable Software
-			Agreement. Upon such indication of agreement by the user, the
-			provisioning Technology will complete installation of the Installable
-			Software.</li>
-	</ol>
-
-	<h3>Cryptography</h3>
-
-	<p>Content may contain encryption software. The country in which
-		you are currently may have restrictions on the import, possession, and
-		use, and/or re-export to another country, of encryption software.
-		BEFORE using any encryption software, please check the country's laws,
-		regulations and policies concerning the import, possession, or use,
-		and re-export of encryption software, to see if this is permitted.</p>
-
-	<p>
-		<small>Java and all Java-based trademarks are trademarks of
-			Oracle Corporation in the United States, other countries, or both.</small>
-	</p>
-</body>
-</html>
diff --git a/upc/org.eclipse.cdt.core.parser.upc.sdk.branding/plugin.properties b/upc/org.eclipse.cdt.core.parser.upc.sdk.branding/plugin.properties
deleted file mode 100644
index 1513ffd..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.sdk.branding/plugin.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2009 IBM Corporation and others.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-pluginName=C/C++ UPC (Unified Parallel C) Support SDK
-providerName=Eclipse CDT
\ No newline at end of file
diff --git a/upc/org.eclipse.cdt.core.parser.upc.sdk.feature/.project b/upc/org.eclipse.cdt.core.parser.upc.sdk.feature/.project
deleted file mode 100644
index 446bd43..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.sdk.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.cdt.core.parser.upc.sdk.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/upc/org.eclipse.cdt.core.parser.upc.sdk.feature/build.properties b/upc/org.eclipse.cdt.core.parser.upc.sdk.feature/build.properties
deleted file mode 100644
index e160cdb..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.sdk.feature/build.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 2009 IBM Corporation and others.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = feature.xml,\
-               feature.properties
-generate.feature@org.eclipse.cdt.core.parser.upc.source = org.eclipse.cdt.core.parser.upc.feature
diff --git a/upc/org.eclipse.cdt.core.parser.upc.sdk.feature/feature-no-source.properties b/upc/org.eclipse.cdt.core.parser.upc.sdk.feature/feature-no-source.properties
deleted file mode 100644
index 8c2b2f7..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.sdk.feature/feature-no-source.properties
+++ /dev/null
@@ -1 +0,0 @@
-# This file tells the Maven build to not generate sources for this feature
diff --git a/upc/org.eclipse.cdt.core.parser.upc.sdk.feature/feature.properties b/upc/org.eclipse.cdt.core.parser.upc.sdk.feature/feature.properties
deleted file mode 100644
index a865b3f..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.sdk.feature/feature.properties
+++ /dev/null
@@ -1,36 +0,0 @@
-###############################################################################
-# Copyright (c) 2009, 2010 IBM Corporation and others.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=C/C++ UPC (Unified Parallel C) Support SDK
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse CDT
-
-# "description" property - description of the feature
-description=Support for the Unified Parallel C variant of the C programming language. Software development kit including source code and developer documentation.
-
-# copyright
-copyright=\
-Copyright (c) 2006, 2011 IBM Corporation and others.\n\
-This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License 2.0\n\
-which accompanies this distribution, and is available at\n\
-https://www.eclipse.org/legal/epl-2.0/
-
diff --git a/upc/org.eclipse.cdt.core.parser.upc.sdk.feature/feature.xml b/upc/org.eclipse.cdt.core.parser.upc.sdk.feature/feature.xml
deleted file mode 100644
index b30b77a..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.sdk.feature/feature.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.cdt.core.parser.upc.sdk"
-      label="%featureName"
-      version="10.0.0.qualifier"
-      provider-name="%providerName"
-      plugin="org.eclipse.cdt.core.parser.upc.sdk.branding"
-      license-feature="org.eclipse.license"
-      license-feature-version="0.0.0">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="%licenseURL">
-      %license
-   </license>
-
-   <includes
-         id="org.eclipse.cdt.core.parser.upc.feature.source"
-         version="0.0.0"/>
-
-   <includes
-         id="org.eclipse.cdt.core.parser.upc.feature"
-         version="0.0.0"/>
-
-   <plugin
-         id="org.eclipse.cdt.core.parser.upc.sdk.branding"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/.classpath b/upc/org.eclipse.cdt.core.parser.upc.tests/.classpath
deleted file mode 100644
index eca7bdb..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/.project b/upc/org.eclipse.cdt.core.parser.upc.tests/.project
deleted file mode 100644
index 5ccd5d6..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.cdt.core.parser.upc.tests</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/.settings/org.eclipse.jdt.core.prefs b/upc/org.eclipse.cdt.core.parser.upc.tests/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index ad05599..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,464 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch, *.xtend
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.mainOnlyProjectHasTestOnlyDependency=error
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.APILeak=warning
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=ignore
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
-org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=ignore
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=ignore
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
-org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
-org.eclipse.jdt.core.formatter.align_with_spaces=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
-org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped=true
-org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=true
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
-org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/.settings/org.eclipse.jdt.launching.prefs b/upc/org.eclipse.cdt.core.parser.upc.tests/.settings/org.eclipse.jdt.launching.prefs
deleted file mode 100644
index f8a131b..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/.settings/org.eclipse.jdt.launching.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.launching.PREF_COMPILER_COMPLIANCE_DOES_NOT_MATCH_JRE=warning
-org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=warning
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/.settings/org.eclipse.jdt.ui.prefs b/upc/org.eclipse.cdt.core.parser.upc.tests/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index e445763..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,133 +0,0 @@
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_missing_override_annotations_interface_methods=true
-cleanup.add_serial_version_id=false
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_functional_interfaces=false
-cleanup.convert_to_enhanced_for_loop=false
-cleanup.correct_indentation=false
-cleanup.format_source_code=true
-cleanup.format_source_code_changes_only=false
-cleanup.insert_inferred_type_arguments=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=true
-cleanup.qualify_static_field_accesses_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=false
-cleanup.qualify_static_method_accesses_with_declaring_class=false
-cleanup.remove_private_constructors=true
-cleanup.remove_redundant_modifiers=false
-cleanup.remove_redundant_semicolons=true
-cleanup.remove_redundant_type_arguments=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=false
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_anonymous_class_creation=false
-cleanup.use_blocks=false
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_lambda=true
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup_profile=_CDT
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_CDT
-formatter_settings_version=14
-internal.default.compliance=user
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.ondemandthreshold=1000
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.staticondemandthreshold=1000
-org.eclipse.jdt.ui.text.custom_code_templates=
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_functional_interfaces=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.insert_inferred_type_arguments=false
-sp_cleanup.make_local_variable_final=true
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_redundant_modifiers=false
-sp_cleanup.remove_redundant_semicolons=true
-sp_cleanup.remove_redundant_type_arguments=true
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=true
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_anonymous_class_creation=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_lambda=true
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/.settings/org.eclipse.pde.api.tools.prefs b/upc/org.eclipse.cdt.core.parser.upc.tests/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index ec9fbf3..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,184 +0,0 @@
-ANNOTATION_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITH_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-API_USE_SCAN_FIELD_SEVERITY=Error
-API_USE_SCAN_METHOD_SEVERITY=Error
-API_USE_SCAN_TYPE_SEVERITY=Error
-CLASS_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERCLASS_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_CHANGED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENTS=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETERS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_ANNOTATION=Ignore
-INVALID_JAVADOC_TAG=Error
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Warning
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-MISSING_EE_DESCRIPTIONS=Warning
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-automatically_removed_unused_problem_filters=false
-changed_execution_env=Error
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-incompatible_api_component_version_report_major_without_breaking_change=Warning
-incompatible_api_component_version_report_minor_without_api_change=Warning
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/.settings/org.eclipse.pde.prefs b/upc/org.eclipse.cdt.core.parser.upc.tests/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 51a63ec..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,35 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.build.bin.includes=1
-compilers.p.build.encodings=2
-compilers.p.build.java.compiler=2
-compilers.p.build.java.compliance=1
-compilers.p.build.missing.output=2
-compilers.p.build.output.library=1
-compilers.p.build.source.library=1
-compilers.p.build.src.includes=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=1
-compilers.p.missing-packages=2
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=2
-compilers.p.missing-version-require-bundle=2
-compilers.p.no-required-att=0
-compilers.p.no.automatic.module=1
-compilers.p.not-externalized-att=2
-compilers.p.service.component.without.lazyactivation=1
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/META-INF/MANIFEST.MF b/upc/org.eclipse.cdt.core.parser.upc.tests/META-INF/MANIFEST.MF
deleted file mode 100644
index 8309716..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,18 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Bundle-Name.0
-Bundle-SymbolicName: org.eclipse.cdt.core.parser.upc.tests
-Bundle-Version: 5.1.0.qualifier
-Require-Bundle: org.eclipse.core.runtime,
- org.junit,
- org.eclipse.cdt.core.tests,
- org.eclipse.cdt.core,
- org.eclipse.core.resources,
- org.eclipse.cdt.core.parser.upc,
- org.eclipse.cdt.core.lrparser;bundle-version="4.0.1",
- org.eclipse.cdt.core.lrparser.tests;bundle-version="4.0.0"
-Bundle-Vendor: %Bundle-Vendor.0
-Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Export-Package: org.eclipse.cdt.core.parser.upc.tests
-Automatic-Module-Name: org.eclipse.cdt.core.parser.upc.tests
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/about.html b/upc/org.eclipse.cdt.core.parser.upc.tests/about.html
deleted file mode 100644
index 164f781..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
-	<h2>About This Content</h2>
-
-	<p>November 30, 2017</p>
-	<h3>License</h3>
-
-	<p>
-		The Eclipse Foundation makes available all content in this plug-in
-		(&quot;Content&quot;). Unless otherwise indicated below, the Content
-		is provided to you under the terms and conditions of the Eclipse
-		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
-		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>
-		If you did not receive this Content directly from the Eclipse
-		Foundation, the Content is being redistributed by another party
-		(&quot;Redistributor&quot;) and different terms and conditions may
-		apply to your use of any object code in the Content. Check the
-		Redistributor's license that was provided with the Content. If no such
-		license exists, contact the Redistributor. Unless otherwise indicated
-		below, the terms and conditions of the EPL still apply to any source
-		code in the Content and such source code may be obtained at <a
-			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
-	</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/build.properties b/upc/org.eclipse.cdt.core.parser.upc.tests/build.properties
deleted file mode 100644
index 2efd697..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/build.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-###############################################################################
-#  Copyright (c) 2007, 2009 IBM Corporation and others.
-#
-#  This program and the accompanying materials
-#  are made available under the terms of the Eclipse Public License 2.0
-#  which accompanies this distribution, and is available at
-#  https://www.eclipse.org/legal/epl-2.0/
-#
-#  SPDX-License-Identifier: EPL-2.0
-#
-#  Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               about.html,\
-               plugin.properties
-src.includes = about.html
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/plugin.properties b/upc/org.eclipse.cdt.core.parser.upc.tests/plugin.properties
deleted file mode 100644
index d2af05f..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/plugin.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-#  Copyright (c) 2007, 2009 IBM Corporation and others.
-#
-#  This program and the accompanying materials
-#  are made available under the terms of the Eclipse Public License 2.0
-#  which accompanies this distribution, and is available at
-#  https://www.eclipse.org/legal/epl-2.0/
-#
-#  SPDX-License-Identifier: EPL-2.0
-#
-#  Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# properties file for org.eclipse.cdt.core.parser.c99.tests
-Bundle-Vendor.0 = Eclipse CDT
-Bundle-Name.0 = C99 Parser Tests Plug-in
-
-upcSourceName=UPC Source File
\ No newline at end of file
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/AutomatedIntegrationSuite.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/AutomatedIntegrationSuite.java
deleted file mode 100644
index 242fc53..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/AutomatedIntegrationSuite.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.upc.tests;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class AutomatedIntegrationSuite extends TestSuite {
-
-	public static Test suite() {
-		return new TestSuite() {
-			{
-				addTestSuite(UPCCommentTests.class);
-				addTestSuite(UPCCompletionBasicTest.class);
-				addTestSuite(UPCCompletionParseTest.class);
-				addTestSuite(UPCDOMLocationMacroTests.class);
-				addTestSuite(UPCDOMLocationTests.class);
-				addTestSuite(UPCDOMPreprocessorInformationTest.class);
-				addTestSuite(UPCKnRTests.class);
-				addTestSuite(UPCSelectionParseTest.class);
-				addTestSuite(UPCCSpecTests.class);
-				addTestSuite(UPCTests.class);
-				addTestSuite(UPCLanguageExtensionTests.class);
-				addTestSuite(UPCDigraphTrigraphTests.class);
-				addTestSuite(UPCGCCTests.class);
-				addTestSuite(UPCUtilOldTests.class);
-				addTestSuite(UPCUtilTests.class);
-				addTestSuite(UPCCompleteParser2Tests.class);
-				addTestSuite(UPCTaskParserTest.class);
-			}
-		};
-	}
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCCSpecTests.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCCSpecTests.java
deleted file mode 100644
index ada3384..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCCSpecTests.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.upc.tests;
-
-import org.eclipse.cdt.core.dom.upc.UPCLanguage;
-import org.eclipse.cdt.core.lrparser.tests.LRCSpecTests;
-import org.eclipse.cdt.core.model.ILanguage;
-
-public class UPCCSpecTests extends LRCSpecTests {
-
-	public UPCCSpecTests() {
-	}
-
-	public UPCCSpecTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected ILanguage getCLanguage() {
-		return UPCLanguage.getDefault();
-	}
-
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCCommentTests.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCCommentTests.java
deleted file mode 100644
index db778db..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCCommentTests.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2009 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.upc.tests;
-
-import org.eclipse.cdt.core.dom.upc.UPCLanguage;
-import org.eclipse.cdt.core.lrparser.tests.LRCommentTests;
-import org.eclipse.cdt.core.model.ILanguage;
-
-public class UPCCommentTests extends LRCommentTests {
-
-	@Override
-	protected ILanguage getCLanguage() {
-		return UPCLanguage.getDefault();
-	}
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCCompleteParser2Tests.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCCompleteParser2Tests.java
deleted file mode 100644
index 4654e2f..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCCompleteParser2Tests.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2010 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.upc.tests;
-
-import org.eclipse.cdt.core.dom.upc.UPCLanguage;
-import org.eclipse.cdt.core.lrparser.tests.LRCompleteParser2Tests;
-import org.eclipse.cdt.core.model.ILanguage;
-
-public class UPCCompleteParser2Tests extends LRCompleteParser2Tests {
-
-	@Override
-	public void testGNUASMExtension() throws Exception {
-	}
-
-	@Override
-	public void testBug39551B() throws Exception {
-	}
-
-	@Override
-	public void testBug39676_tough() throws Exception {
-	}
-
-	@Override
-	public void testBug102376() throws Exception {
-	}
-
-	@Override
-	protected ILanguage getCLanguage() {
-		return UPCLanguage.getDefault();
-	}
-
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCCompletionBasicTest.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCCompletionBasicTest.java
deleted file mode 100644
index 01e76a6..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCCompletionBasicTest.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2009 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.upc.tests;
-
-import org.eclipse.cdt.core.dom.lrparser.c99.C99Language;
-import org.eclipse.cdt.core.lrparser.tests.LRCompletionBasicTest;
-import org.eclipse.cdt.core.model.ILanguage;
-
-public class UPCCompletionBasicTest extends LRCompletionBasicTest {
-
-	public UPCCompletionBasicTest() {
-	}
-
-	@Override
-	protected ILanguage getCLanguage() {
-		return C99Language.getDefault();
-	}
-
-}
\ No newline at end of file
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCCompletionParseTest.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCCompletionParseTest.java
deleted file mode 100644
index 043edee..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCCompletionParseTest.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2009 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.upc.tests;
-
-import org.eclipse.cdt.core.dom.upc.UPCLanguage;
-import org.eclipse.cdt.core.lrparser.tests.LRCompletionParseTest;
-import org.eclipse.cdt.core.model.ILanguage;
-
-public class UPCCompletionParseTest extends LRCompletionParseTest {
-
-	public UPCCompletionParseTest() {
-	}
-
-	public UPCCompletionParseTest(String name) {
-		super(name);
-	}
-
-	@Override
-	protected ILanguage getCLanguage() {
-		return UPCLanguage.getDefault();
-	}
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCDOMLocationMacroTests.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCDOMLocationMacroTests.java
deleted file mode 100644
index 0f7ae36..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCDOMLocationMacroTests.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2010 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.upc.tests;
-
-import org.eclipse.cdt.core.dom.upc.UPCLanguage;
-import org.eclipse.cdt.core.lrparser.tests.LRDOMLocationMacroTests;
-import org.eclipse.cdt.core.model.ILanguage;
-import org.eclipse.cdt.internal.core.parser.ParserException;
-
-public class UPCDOMLocationMacroTests extends LRDOMLocationMacroTests {
-
-	public UPCDOMLocationMacroTests() {
-	}
-
-	//TODO ??? overwrite some failed test cases
-	@Override
-	public void testStdioBug() throws ParserException {
-	}
-
-	@Override
-	protected ILanguage getCLanguage() {
-		return UPCLanguage.getDefault();
-	}
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCDOMLocationTests.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCDOMLocationTests.java
deleted file mode 100644
index a1ad7ad..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCDOMLocationTests.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2009 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.upc.tests;
-
-import org.eclipse.cdt.core.dom.upc.UPCLanguage;
-import org.eclipse.cdt.core.lrparser.tests.LRDOMLocationTests;
-import org.eclipse.cdt.core.model.ILanguage;
-
-public class UPCDOMLocationTests extends LRDOMLocationTests {
-
-	public UPCDOMLocationTests() {
-	}
-
-	public UPCDOMLocationTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected ILanguage getCLanguage() {
-		return UPCLanguage.getDefault();
-	}
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCDOMPreprocessorInformationTest.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCDOMPreprocessorInformationTest.java
deleted file mode 100644
index af758db..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCDOMPreprocessorInformationTest.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2009 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.upc.tests;
-
-import org.eclipse.cdt.core.dom.upc.UPCLanguage;
-import org.eclipse.cdt.core.lrparser.tests.LRDOMPreprocessorInformationTest;
-import org.eclipse.cdt.core.model.ILanguage;
-
-public class UPCDOMPreprocessorInformationTest extends LRDOMPreprocessorInformationTest {
-
-	@Override
-	protected ILanguage getCLanguage() {
-		return UPCLanguage.getDefault();
-	}
-
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCDigraphTrigraphTests.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCDigraphTrigraphTests.java
deleted file mode 100644
index febb6c2..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCDigraphTrigraphTests.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.upc.tests;
-
-import org.eclipse.cdt.core.dom.upc.UPCLanguage;
-import org.eclipse.cdt.core.lrparser.tests.LRDigraphTrigraphTests;
-import org.eclipse.cdt.core.model.ILanguage;
-
-public class UPCDigraphTrigraphTests extends LRDigraphTrigraphTests {
-
-	public UPCDigraphTrigraphTests() {
-	}
-
-	public UPCDigraphTrigraphTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected ILanguage getCLanguage() {
-		return UPCLanguage.getDefault();
-	}
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCGCCTests.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCGCCTests.java
deleted file mode 100644
index 0f3b6c3..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCGCCTests.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2009 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.upc.tests;
-
-import org.eclipse.cdt.core.dom.upc.UPCLanguage;
-import org.eclipse.cdt.core.lrparser.tests.LRGCCTests;
-import org.eclipse.cdt.core.model.ILanguage;
-
-public class UPCGCCTests extends LRGCCTests {
-
-	public UPCGCCTests() {
-	}
-
-	public UPCGCCTests(String message) {
-		super(message);
-	}
-
-	@Override
-	protected ILanguage getCLanguage() {
-		return UPCLanguage.getDefault();
-	}
-
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCKnRTests.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCKnRTests.java
deleted file mode 100644
index 702a21d..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCKnRTests.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2009 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.upc.tests;
-
-import org.eclipse.cdt.core.dom.upc.UPCLanguage;
-import org.eclipse.cdt.core.lrparser.tests.LRKnRTests;
-import org.eclipse.cdt.core.model.ILanguage;
-
-public class UPCKnRTests extends LRKnRTests {
-
-	public UPCKnRTests() {
-	}
-
-	@Override
-	protected ILanguage getCLanguage() {
-		return UPCLanguage.getDefault();
-	}
-
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCLanguageExtensionTests.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCLanguageExtensionTests.java
deleted file mode 100644
index 23a8757..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCLanguageExtensionTests.java
+++ /dev/null
@@ -1,506 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2009 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.upc.tests;
-
-import org.eclipse.cdt.core.dom.ast.IASTArrayDeclarator;
-import org.eclipse.cdt.core.dom.ast.IASTArrayModifier;
-import org.eclipse.cdt.core.dom.ast.IASTArraySubscriptExpression;
-import org.eclipse.cdt.core.dom.ast.IASTBinaryExpression;
-import org.eclipse.cdt.core.dom.ast.IASTCompoundStatement;
-import org.eclipse.cdt.core.dom.ast.IASTDeclaration;
-import org.eclipse.cdt.core.dom.ast.IASTDeclarationStatement;
-import org.eclipse.cdt.core.dom.ast.IASTDeclarator;
-import org.eclipse.cdt.core.dom.ast.IASTExpressionStatement;
-import org.eclipse.cdt.core.dom.ast.IASTFunctionDefinition;
-import org.eclipse.cdt.core.dom.ast.IASTIdExpression;
-import org.eclipse.cdt.core.dom.ast.IASTLiteralExpression;
-import org.eclipse.cdt.core.dom.ast.IASTName;
-import org.eclipse.cdt.core.dom.ast.IASTSimpleDeclSpecifier;
-import org.eclipse.cdt.core.dom.ast.IASTSimpleDeclaration;
-import org.eclipse.cdt.core.dom.ast.IASTStatement;
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.ast.IASTTypeIdExpression;
-import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression;
-import org.eclipse.cdt.core.dom.ast.IScope;
-import org.eclipse.cdt.core.dom.ast.IVariable;
-import org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage;
-import org.eclipse.cdt.core.dom.upc.UPCLanguage;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTDeclSpecifier;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTForallStatement;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTKeywordExpression;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSimpleDeclSpecifier;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSynchronizationStatement;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTTypeIdSizeofExpression;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTUnarySizeofExpression;
-import org.eclipse.cdt.core.lrparser.tests.ParseHelper;
-
-import junit.framework.TestCase;
-
-@SuppressWarnings("nls")
-public class UPCLanguageExtensionTests extends TestCase {
-
-	public UPCLanguageExtensionTests() {
-	}
-
-	public UPCLanguageExtensionTests(String name) {
-		super(name);
-	}
-
-	protected BaseExtensibleLanguage getLanguage() {
-		return UPCLanguage.getDefault();
-	}
-
-	// test problem-free parsing of UPC constructs (maily declarations)
-	// test the AST is correct
-	// test that binding resolution works
-
-	private IASTTranslationUnit parseAndCheckBindings(String code) {
-		ParseHelper.Options options = new ParseHelper.Options();
-		options.setCheckSyntaxProblems(true);
-		options.setCheckPreprocessorProblems(true);
-		options.setCheckBindings(true);
-		return ParseHelper.parse(code, getLanguage(), options);
-	}
-
-	private IASTTranslationUnit parse(String code) {
-		ParseHelper.Options options = new ParseHelper.Options();
-		options.setCheckSyntaxProblems(true);
-		options.setCheckPreprocessorProblems(true);
-		options.setCheckBindings(false);
-		return ParseHelper.parse(code, getLanguage(), options);
-	}
-
-	public void testUPCSharedDeclarations1() throws Exception {
-		String code = "shared int a [100+THREADS];\n" + "shared [] int b [THREADS];\n" + "shared [90] int c [10];\n"
-				+ "shared [*] int d [];\n" + "relaxed int x;" + "strict int y;";
-
-		IASTTranslationUnit tu = parseAndCheckBindings(code);
-		IScope globalScope = tu.getScope();
-		assertNotNull(globalScope);
-
-		IASTDeclaration[] declarations = tu.getDeclarations();
-		assertNotNull(declarations);
-		assertEquals(6, declarations.length);
-
-		// shared int a [100+THREADS];
-		IASTSimpleDeclaration decl_a = (IASTSimpleDeclaration) declarations[0];
-		IUPCASTSimpleDeclSpecifier declspec_a = (IUPCASTSimpleDeclSpecifier) decl_a.getDeclSpecifier();
-		assertEquals(IUPCASTDeclSpecifier.rt_unspecified, declspec_a.getReferenceType());
-		assertEquals(IUPCASTDeclSpecifier.sh_shared_default_block_size, declspec_a.getSharedQualifier());
-		assertEquals(IASTSimpleDeclSpecifier.t_int, declspec_a.getType());
-		assertNull(declspec_a.getBlockSizeExpression());
-		IASTDeclarator[] declarators = decl_a.getDeclarators();
-		assertNotNull(declarators);
-		assertEquals(1, declarators.length);
-		IASTArrayDeclarator declarator_a = (IASTArrayDeclarator) declarators[0];
-		IASTName name_a = declarator_a.getName();
-		assertEquals("a", name_a.toString());
-		IASTArrayModifier[] array_modifiers = declarator_a.getArrayModifiers();
-		assertNotNull(array_modifiers);
-		assertEquals(1, array_modifiers.length);
-		IASTBinaryExpression expr = (IASTBinaryExpression) array_modifiers[0].getConstantExpression();
-		IUPCASTKeywordExpression threads = (IUPCASTKeywordExpression) expr.getOperand2();
-		assertEquals(IUPCASTKeywordExpression.kw_threads, threads.getKeywordKind());
-
-		// shared [] int b [THREADS];
-		IASTSimpleDeclaration decl_b = (IASTSimpleDeclaration) declarations[1];
-		IUPCASTSimpleDeclSpecifier declspec_b = (IUPCASTSimpleDeclSpecifier) decl_b.getDeclSpecifier();
-		assertEquals(IUPCASTDeclSpecifier.rt_unspecified, declspec_b.getReferenceType());
-		assertEquals(IUPCASTDeclSpecifier.sh_shared_indefinite_allocation, declspec_b.getSharedQualifier());
-		assertEquals(IASTSimpleDeclSpecifier.t_int, declspec_b.getType());
-		assertNull(declspec_b.getBlockSizeExpression());
-		declarators = decl_b.getDeclarators();
-		assertNotNull(declarators);
-		assertEquals(1, declarators.length);
-		IASTArrayDeclarator declarator_b = (IASTArrayDeclarator) declarators[0];
-		IASTName name_b = declarator_b.getName();
-		assertEquals("b", name_b.toString());
-		array_modifiers = declarator_b.getArrayModifiers();
-		assertNotNull(array_modifiers);
-		assertEquals(1, array_modifiers.length);
-		threads = (IUPCASTKeywordExpression) array_modifiers[0].getConstantExpression();
-		assertEquals(IUPCASTKeywordExpression.kw_threads, threads.getKeywordKind());
-
-		// shared [90] int c [10];
-		IASTSimpleDeclaration decl_c = (IASTSimpleDeclaration) declarations[2];
-		IUPCASTSimpleDeclSpecifier declspec_c = (IUPCASTSimpleDeclSpecifier) decl_c.getDeclSpecifier();
-		assertEquals(IUPCASTDeclSpecifier.rt_unspecified, declspec_c.getReferenceType());
-		assertEquals(IUPCASTDeclSpecifier.sh_shared_constant_expression, declspec_c.getSharedQualifier());
-		assertEquals(IASTSimpleDeclSpecifier.t_int, declspec_c.getType());
-		@SuppressWarnings("unused")
-		IASTLiteralExpression literalExpr = (IASTLiteralExpression) declspec_c.getBlockSizeExpression();
-		declarators = decl_c.getDeclarators();
-		assertNotNull(declarators);
-		assertEquals(1, declarators.length);
-		IASTArrayDeclarator declarator_c = (IASTArrayDeclarator) declarators[0];
-		IASTName name_c = declarator_c.getName();
-		assertEquals("c", name_c.toString());
-		array_modifiers = declarator_c.getArrayModifiers();
-		assertNotNull(array_modifiers);
-		assertEquals(1, array_modifiers.length);
-		assertNotNull(array_modifiers[0].getConstantExpression());
-
-		// shared [*] int d [];
-		IASTSimpleDeclaration decl_d = (IASTSimpleDeclaration) declarations[3];
-		IUPCASTSimpleDeclSpecifier declspec_d = (IUPCASTSimpleDeclSpecifier) decl_d.getDeclSpecifier();
-		assertEquals(IUPCASTDeclSpecifier.rt_unspecified, declspec_d.getReferenceType());
-		assertEquals(IUPCASTDeclSpecifier.sh_shared_pure_allocation, declspec_d.getSharedQualifier());
-		assertEquals(IASTSimpleDeclSpecifier.t_int, declspec_d.getType());
-		assertNull(declspec_d.getBlockSizeExpression());
-		declarators = decl_d.getDeclarators();
-		assertNotNull(declarators);
-		assertEquals(1, declarators.length);
-		IASTArrayDeclarator declarator_d = (IASTArrayDeclarator) declarators[0];
-		IASTName name_d = declarator_d.getName();
-		assertEquals("d", name_d.toString());
-		array_modifiers = declarator_d.getArrayModifiers();
-		assertNotNull(array_modifiers);
-		assertEquals(1, array_modifiers.length);
-		assertNull(array_modifiers[0].getConstantExpression());
-
-		IASTSimpleDeclaration decl_x = (IASTSimpleDeclaration) declarations[4];
-		IUPCASTSimpleDeclSpecifier declspec_x = (IUPCASTSimpleDeclSpecifier) decl_x.getDeclSpecifier();
-		assertEquals(IUPCASTDeclSpecifier.rt_relaxed, declspec_x.getReferenceType());
-
-		IASTSimpleDeclaration decl_y = (IASTSimpleDeclaration) declarations[5];
-		IUPCASTSimpleDeclSpecifier declspec_y = (IUPCASTSimpleDeclSpecifier) decl_y.getDeclSpecifier();
-		assertEquals(IUPCASTDeclSpecifier.rt_strict, declspec_y.getReferenceType());
-
-		IVariable binding_a = (IVariable) name_a.resolveBinding();
-		assertNotNull(binding_a);
-		assertEquals(globalScope, binding_a.getScope());
-
-		IVariable binding_b = (IVariable) name_a.resolveBinding();
-		assertNotNull(binding_b);
-		assertEquals(globalScope, binding_b.getScope());
-
-		IVariable binding_c = (IVariable) name_a.resolveBinding();
-		assertNotNull(binding_c);
-		assertEquals(globalScope, binding_c.getScope());
-
-		IVariable binding_d = (IVariable) name_a.resolveBinding();
-		assertNotNull(binding_d);
-		assertEquals(globalScope, binding_d.getScope());
-
-	}
-
-	public void testUPCSharedDeclarations2() throws Exception {
-		String code = "int x = 10;" + "shared [x] int a [];\n";
-
-		IASTTranslationUnit tu = parseAndCheckBindings(code);
-		IScope globalScope = tu.getScope();
-		assertNotNull(globalScope);
-
-		IASTDeclaration[] declarations = tu.getDeclarations();
-		assertNotNull(declarations);
-		assertEquals(2, declarations.length);
-
-		IASTSimpleDeclaration decl_x = (IASTSimpleDeclaration) declarations[0];
-
-		// shared [x] int a [];
-		IASTSimpleDeclaration decl_a = (IASTSimpleDeclaration) declarations[1];
-		IUPCASTSimpleDeclSpecifier declspec_a = (IUPCASTSimpleDeclSpecifier) decl_a.getDeclSpecifier();
-		assertEquals(IUPCASTDeclSpecifier.rt_unspecified, declspec_a.getReferenceType());
-		assertEquals(IUPCASTDeclSpecifier.sh_shared_constant_expression, declspec_a.getSharedQualifier());
-		assertEquals(IASTSimpleDeclSpecifier.t_int, declspec_a.getType());
-		IASTIdExpression expr_x = (IASTIdExpression) declspec_a.getBlockSizeExpression();
-
-		IASTName name_x = expr_x.getName();
-		IVariable binding_x = (IVariable) name_x.resolveBinding();
-		assertNotNull(binding_x);
-		assertEquals(decl_x.getDeclarators()[0].getName().resolveBinding(), binding_x);
-	}
-
-	public void testUPCForall1() throws Exception {
-		String code = "int main() {\n" + "    int i;\n" + "    shared float *a;\n"
-				+ "    upc_forall(i=0; i<N; i++; &a[i]) { \n" + "        a[i] = 99; \n" + "    } \n" + "}\n";
-
-		IASTTranslationUnit tu = parse(code);
-
-		IScope globalScope = tu.getScope();
-		assertNotNull(globalScope);
-
-		IASTDeclaration[] declarations = tu.getDeclarations();
-		assertNotNull(declarations);
-		assertEquals(1, declarations.length);
-
-		IASTFunctionDefinition main = (IASTFunctionDefinition) declarations[0];
-		IASTStatement[] body = ((IASTCompoundStatement) main.getBody()).getStatements();
-		assertEquals(3, body.length);
-
-		IASTSimpleDeclaration decl_i = (IASTSimpleDeclaration) ((IASTDeclarationStatement) body[0]).getDeclaration();
-		IVariable binding_i = (IVariable) decl_i.getDeclarators()[0].getName().resolveBinding();
-
-		IASTSimpleDeclaration decl_a = (IASTSimpleDeclaration) ((IASTDeclarationStatement) body[1]).getDeclaration();
-		IVariable binding_a = (IVariable) decl_a.getDeclarators()[0].getName().resolveBinding();
-
-		IUPCASTForallStatement forall = (IUPCASTForallStatement) body[2];
-
-		IASTBinaryExpression expr1 = (IASTBinaryExpression) ((IASTExpressionStatement) forall.getInitializerStatement())
-				.getExpression();
-		IASTName name_i_1 = ((IASTIdExpression) expr1.getOperand1()).getName();
-
-		IASTBinaryExpression expr2 = (IASTBinaryExpression) forall.getConditionExpression();
-		IASTName name_i_2 = ((IASTIdExpression) expr2.getOperand1()).getName();
-
-		IASTUnaryExpression expr3 = (IASTUnaryExpression) forall.getIterationExpression();
-		IASTName name_i_3 = ((IASTIdExpression) expr3.getOperand()).getName();
-
-		IASTUnaryExpression expr4 = (IASTUnaryExpression) forall.getAffinityExpresiion();
-		IASTName name_i_4 = ((IASTIdExpression) ((IASTArraySubscriptExpression) expr4.getOperand())
-				.getSubscriptExpression()).getName();
-		IASTName name_a_1 = ((IASTIdExpression) ((IASTArraySubscriptExpression) expr4.getOperand())
-				.getArrayExpression()).getName();
-
-		IASTBinaryExpression expr5 = (IASTBinaryExpression) ((IASTExpressionStatement) ((IASTCompoundStatement) forall
-				.getBody()).getStatements()[0]).getExpression();
-		IASTName name_i_5 = ((IASTIdExpression) ((IASTArraySubscriptExpression) expr5.getOperand1())
-				.getSubscriptExpression()).getName();
-		IASTName name_a_2 = ((IASTIdExpression) ((IASTArraySubscriptExpression) expr5.getOperand1())
-				.getArrayExpression()).getName();
-
-		// test binding resolution
-		IVariable binding_i_1 = (IVariable) name_i_1.resolveBinding();
-		assertNotNull(binding_i_1);
-		assertEquals(binding_i, binding_i_1);
-
-		IVariable binding_i_2 = (IVariable) name_i_2.resolveBinding();
-		assertNotNull(binding_i_2);
-		assertEquals(binding_i, binding_i_2);
-
-		IVariable binding_i_3 = (IVariable) name_i_3.resolveBinding();
-		assertNotNull(binding_i_3);
-		assertEquals(binding_i, binding_i_3);
-
-		IVariable binding_i_4 = (IVariable) name_i_4.resolveBinding();
-		assertNotNull(binding_i_4);
-		assertEquals(binding_i, binding_i_4);
-
-		IVariable binding_i_5 = (IVariable) name_i_5.resolveBinding();
-		assertNotNull(binding_i_5);
-		assertEquals(binding_i, binding_i_5);
-
-		IVariable binding_a_1 = (IVariable) name_a_1.resolveBinding();
-		assertNotNull(binding_a_1);
-		assertEquals(binding_a, binding_a_1);
-
-		IVariable binding_a_2 = (IVariable) name_a_2.resolveBinding();
-		assertNotNull(binding_a_2);
-		assertEquals(binding_a, binding_a_2);
-	}
-
-	/**
-	 * Test a declaration inside a upc_forall definition.
-	 */
-	public void testUPCForall2() throws Exception {
-		String code = "int main() {\n" + "    shared float *a;\n" + "    upc_forall(int i=0; i<N; i++; &a[i]) { \n"
-				+ "        a[i] = 99; \n" + "    } \n" + "}\n";
-
-		IASTTranslationUnit tu = parse(code);
-
-		IScope globalScope = tu.getScope();
-		assertNotNull(globalScope);
-
-		IASTDeclaration[] declarations = tu.getDeclarations();
-		assertNotNull(declarations);
-		assertEquals(1, declarations.length);
-
-		IASTFunctionDefinition main = (IASTFunctionDefinition) declarations[0];
-		IASTStatement[] body = ((IASTCompoundStatement) main.getBody()).getStatements();
-		assertEquals(2, body.length);
-
-		IASTSimpleDeclaration decl_a = (IASTSimpleDeclaration) ((IASTDeclarationStatement) body[0]).getDeclaration();
-		IVariable binding_a = (IVariable) decl_a.getDeclarators()[0].getName().resolveBinding();
-
-		IUPCASTForallStatement forall = (IUPCASTForallStatement) body[1];
-
-		IASTSimpleDeclaration decl_i = (IASTSimpleDeclaration) ((IASTDeclarationStatement) forall
-				.getInitializerStatement()).getDeclaration();
-		IVariable binding_i = (IVariable) decl_i.getDeclarators()[0].getName().resolveBinding();
-
-		IASTBinaryExpression expr2 = (IASTBinaryExpression) forall.getConditionExpression();
-		IASTName name_i_2 = ((IASTIdExpression) expr2.getOperand1()).getName();
-
-		IASTUnaryExpression expr3 = (IASTUnaryExpression) forall.getIterationExpression();
-		IASTName name_i_3 = ((IASTIdExpression) expr3.getOperand()).getName();
-
-		IASTUnaryExpression expr4 = (IASTUnaryExpression) forall.getAffinityExpresiion();
-		IASTName name_i_4 = ((IASTIdExpression) ((IASTArraySubscriptExpression) expr4.getOperand())
-				.getSubscriptExpression()).getName();
-		IASTName name_a_1 = ((IASTIdExpression) ((IASTArraySubscriptExpression) expr4.getOperand())
-				.getArrayExpression()).getName();
-
-		IASTBinaryExpression expr5 = (IASTBinaryExpression) ((IASTExpressionStatement) ((IASTCompoundStatement) forall
-				.getBody()).getStatements()[0]).getExpression();
-		IASTName name_i_5 = ((IASTIdExpression) ((IASTArraySubscriptExpression) expr5.getOperand1())
-				.getSubscriptExpression()).getName();
-		IASTName name_a_2 = ((IASTIdExpression) ((IASTArraySubscriptExpression) expr5.getOperand1())
-				.getArrayExpression()).getName();
-
-		// test binding resolution
-		IVariable binding_i_2 = (IVariable) name_i_2.resolveBinding();
-		assertNotNull(binding_i_2);
-		assertEquals(binding_i, binding_i_2);
-
-		IVariable binding_i_3 = (IVariable) name_i_3.resolveBinding();
-		assertNotNull(binding_i_3);
-		assertEquals(binding_i, binding_i_3);
-
-		IVariable binding_i_4 = (IVariable) name_i_4.resolveBinding();
-		assertNotNull(binding_i_4);
-		assertEquals(binding_i, binding_i_4);
-
-		IVariable binding_i_5 = (IVariable) name_i_5.resolveBinding();
-		assertNotNull(binding_i_5);
-		assertEquals(binding_i, binding_i_5);
-
-		IVariable binding_a_1 = (IVariable) name_a_1.resolveBinding();
-		assertNotNull(binding_a_1);
-		assertEquals(binding_a, binding_a_1);
-
-		IVariable binding_a_2 = (IVariable) name_a_2.resolveBinding();
-		assertNotNull(binding_a_2);
-		assertEquals(binding_a, binding_a_2);
-	}
-
-	/**
-	 * Test 'continue' inside upc_forall
-	 */
-	public void testUPCForall3() throws Exception {
-		String code = "int main() {\n" + "    upc_forall(int i=0; i<N; i++; continue) { \n" + "    } \n" + "}\n";
-
-		IASTTranslationUnit tu = parse(code);
-
-		IASTDeclaration[] declarations = tu.getDeclarations();
-		assertNotNull(declarations);
-		assertEquals(1, declarations.length);
-
-		IASTFunctionDefinition main = (IASTFunctionDefinition) declarations[0];
-		IASTStatement[] body = ((IASTCompoundStatement) main.getBody()).getStatements();
-		assertEquals(1, body.length);
-
-		IUPCASTForallStatement forall = (IUPCASTForallStatement) body[0];
-
-		assertTrue(forall.isAffinityContinue());
-		assertNull(forall.getAffinityExpresiion());
-	}
-
-	public void testUPCSynchronizationStatment() throws Exception {
-		String code = "int main() {\n" + "    upc_notify 1;\n" + "    upc_notify;\n" + "    upc_wait 1;\n"
-				+ "    upc_wait;\n" + "    upc_barrier 1;\n" + "    upc_barrier;\n" + "    upc_fence;\n" + "}\n";
-
-		IASTTranslationUnit tu = parse(code);
-
-		IASTDeclaration[] declarations = tu.getDeclarations();
-		assertNotNull(declarations);
-		assertEquals(1, declarations.length);
-
-		IASTFunctionDefinition main = (IASTFunctionDefinition) declarations[0];
-		IASTStatement[] body = ((IASTCompoundStatement) main.getBody()).getStatements();
-		assertEquals(7, body.length);
-
-		IUPCASTSynchronizationStatement stat;
-
-		stat = (IUPCASTSynchronizationStatement) body[0];
-		assertEquals(stat.getStatementKind(), IUPCASTSynchronizationStatement.st_upc_notify);
-		assertNotNull(stat.getBarrierExpression());
-
-		stat = (IUPCASTSynchronizationStatement) body[1];
-		assertEquals(stat.getStatementKind(), IUPCASTSynchronizationStatement.st_upc_notify);
-		assertNull(stat.getBarrierExpression());
-
-		stat = (IUPCASTSynchronizationStatement) body[2];
-		assertEquals(stat.getStatementKind(), IUPCASTSynchronizationStatement.st_upc_wait);
-		assertNotNull(stat.getBarrierExpression());
-
-		stat = (IUPCASTSynchronizationStatement) body[3];
-		assertEquals(stat.getStatementKind(), IUPCASTSynchronizationStatement.st_upc_wait);
-		assertNull(stat.getBarrierExpression());
-
-		stat = (IUPCASTSynchronizationStatement) body[4];
-		assertEquals(stat.getStatementKind(), IUPCASTSynchronizationStatement.st_upc_barrier);
-		assertNotNull(stat.getBarrierExpression());
-
-		stat = (IUPCASTSynchronizationStatement) body[5];
-		assertEquals(stat.getStatementKind(), IUPCASTSynchronizationStatement.st_upc_barrier);
-		assertNull(stat.getBarrierExpression());
-
-		stat = (IUPCASTSynchronizationStatement) body[6];
-		assertEquals(stat.getStatementKind(), IUPCASTSynchronizationStatement.st_upc_fence);
-		assertNull(stat.getBarrierExpression());
-	}
-
-	public void testUPCSizeofExpressions() throws Exception {
-		String code = "int main() {\n" + "    sizeof(int); \n" + "    sizeof x; \n" + "    upc_localsizeof(int); \n"
-				+ "    upc_localsizeof x; \n" + "    upc_blocksizeof(int); \n" + "    upc_blocksizeof x; \n"
-				+ "    upc_elemsizeof(int); \n" + "    upc_elemsizeof x; \n" + "}\n";
-
-		IASTTranslationUnit tu = parse(code);
-
-		IASTDeclaration[] declarations = tu.getDeclarations();
-		assertNotNull(declarations);
-		assertEquals(1, declarations.length);
-
-		IASTFunctionDefinition main = (IASTFunctionDefinition) declarations[0];
-		IASTStatement[] body = ((IASTCompoundStatement) main.getBody()).getStatements();
-		assertEquals(8, body.length);
-
-		@SuppressWarnings("unused")
-		IASTTypeIdExpression cidexpr = (IASTTypeIdExpression) ((IASTExpressionStatement) body[0]).getExpression();
-
-		IASTUnaryExpression cexpr = (IASTUnaryExpression) ((IASTExpressionStatement) body[1]).getExpression();
-		assertEquals(IASTUnaryExpression.op_sizeof, cexpr.getOperator());
-
-		IUPCASTUnarySizeofExpression expr;
-		IUPCASTTypeIdSizeofExpression idexpr;
-
-		idexpr = (IUPCASTTypeIdSizeofExpression) ((IASTExpressionStatement) body[2]).getExpression();
-		assertEquals(IASTTypeIdExpression.op_sizeof, idexpr.getOperator());
-		assertEquals(IUPCASTTypeIdSizeofExpression.upc_localsizeof, idexpr.getUPCSizeofOperator());
-
-		expr = (IUPCASTUnarySizeofExpression) ((IASTExpressionStatement) body[3]).getExpression();
-		assertEquals(IASTUnaryExpression.op_sizeof, expr.getOperator());
-		assertEquals(IUPCASTUnarySizeofExpression.upc_localsizeof, expr.getUPCSizeofOperator());
-
-		idexpr = (IUPCASTTypeIdSizeofExpression) ((IASTExpressionStatement) body[4]).getExpression();
-		assertEquals(IASTTypeIdExpression.op_sizeof, idexpr.getOperator());
-		assertEquals(IUPCASTTypeIdSizeofExpression.upc_blocksizeof, idexpr.getUPCSizeofOperator());
-
-		expr = (IUPCASTUnarySizeofExpression) ((IASTExpressionStatement) body[5]).getExpression();
-		assertEquals(IASTUnaryExpression.op_sizeof, expr.getOperator());
-		assertEquals(IUPCASTUnarySizeofExpression.upc_blocksizeof, expr.getUPCSizeofOperator());
-
-		idexpr = (IUPCASTTypeIdSizeofExpression) ((IASTExpressionStatement) body[6]).getExpression();
-		assertEquals(IASTTypeIdExpression.op_sizeof, idexpr.getOperator());
-		assertEquals(IUPCASTTypeIdSizeofExpression.upc_elemsizeof, idexpr.getUPCSizeofOperator());
-
-		expr = (IUPCASTUnarySizeofExpression) ((IASTExpressionStatement) body[7]).getExpression();
-		assertEquals(IASTUnaryExpression.op_sizeof, expr.getOperator());
-		assertEquals(IUPCASTUnarySizeofExpression.upc_elemsizeof, expr.getUPCSizeofOperator());
-	}
-
-	public void testUPCSizeofExpressionsDisambiguate() throws Exception {
-		String code = "int foo() {" + "	typedef int t;" + "   int x;" + "   upc_blocksizeof(t);"
-				+ "   upc_blocksizeof(x);" + "}";
-
-		IASTTranslationUnit tu = parse(code);
-
-		IASTDeclaration[] declarations = tu.getDeclarations();
-		IASTFunctionDefinition main = (IASTFunctionDefinition) declarations[0];
-		IASTStatement[] body = ((IASTCompoundStatement) main.getBody()).getStatements();
-
-		assertTrue(((IASTExpressionStatement) body[2]).getExpression() instanceof IUPCASTTypeIdSizeofExpression);
-		assertTrue(((IASTExpressionStatement) body[3]).getExpression() instanceof IUPCASTUnarySizeofExpression);
-	}
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCSelectionParseTest.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCSelectionParseTest.java
deleted file mode 100644
index 401e311..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCSelectionParseTest.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2009 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.upc.tests;
-
-import org.eclipse.cdt.core.dom.upc.UPCLanguage;
-import org.eclipse.cdt.core.lrparser.tests.LRSelectionParseTest;
-import org.eclipse.cdt.core.model.ILanguage;
-
-public class UPCSelectionParseTest extends LRSelectionParseTest {
-
-	public UPCSelectionParseTest() {
-	}
-
-	public UPCSelectionParseTest(String name) {
-		super(name);
-	}
-
-	@Override
-	protected ILanguage getCLanguage() {
-		return UPCLanguage.getDefault();
-	}
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCTaskParserTest.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCTaskParserTest.java
deleted file mode 100644
index 74e3d44..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCTaskParserTest.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2009 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.upc.tests;
-
-import org.eclipse.cdt.core.dom.upc.UPCLanguage;
-import org.eclipse.cdt.core.lrparser.tests.LRTaskParserTest;
-import org.eclipse.cdt.core.model.ILanguage;
-
-public class UPCTaskParserTest extends LRTaskParserTest {
-
-	@Override
-	protected ILanguage getCLanguage() {
-		return UPCLanguage.getDefault();
-	}
-
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCTests.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCTests.java
deleted file mode 100644
index 0921699..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCTests.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2012 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.upc.tests;
-
-import org.eclipse.cdt.core.dom.upc.UPCLanguage;
-import org.eclipse.cdt.core.lrparser.tests.LRTests;
-import org.eclipse.cdt.core.model.ILanguage;
-
-import junit.framework.TestSuite;
-
-/**
- * Run the C99 tests against the UPC parser
- *
- */
-public class UPCTests extends LRTests {
-
-	public static TestSuite suite() {
-		return suite(UPCTests.class);
-	}
-
-	public UPCTests(String name) {
-		super(name);
-	}
-
-	//TODO ??? overwrite some failed test cases
-	//some test cases which are not applicable to UPC are bypassed here.
-	//UPC extends from C99, which doesn't include some GNU extending features such as "typeof".
-	@Override
-	public void testCompositeTypes() throws Exception {
-	}
-
-	@Override
-	public void testBug93980() throws Exception {
-	}
-
-	@Override
-	public void testBug95866() throws Exception {
-	}
-
-	@Override
-	public void testBug191450_attributesInBetweenPointers() throws Exception {
-	}
-
-	@Override
-	public void testOmittedPositiveExpression_212905() throws Exception {
-	}
-
-	@Override
-	public void testRedefinedGCCKeywords_226112() throws Exception {
-	}
-
-	@Override
-	public void testASMLabels_226121() throws Exception {
-	}
-
-	@Override
-	public void testCompoundStatementExpression_226274() throws Exception {
-	}
-
-	@Override
-	public void testTypeofUnaryExpression_226492() throws Exception {
-	}
-
-	@Override
-	public void testTypeofExpression_226492() throws Exception {
-	}
-
-	@Override
-	public void testTypeofExpressionWithAttribute_226492() throws Exception {
-	}
-
-	@Override
-	public void testAttributeInElaboratedTypeSpecifier_227085() throws Exception {
-	}
-
-	@Override
-	public void testRedefinePtrdiff_230895() throws Exception {
-	}
-
-	@Override
-	public void testDeclspecInEnumSpecifier_241203() throws Exception {
-	}
-
-	@Override
-	public void testBuiltinTypesCompatible_241570() throws Exception {
-	}
-
-	@Override
-	public void testThreadLocalVariables_260387() throws Exception {
-	}
-
-	@Override
-	public void testVaArgWithFunctionPtr_311030() throws Exception {
-	}
-
-	@Override
-	public void testRecursiveFunctionType_321856() throws Exception {
-	}
-
-	@Override
-	public void testPtrDiffRecursion_317004() throws Exception {
-	}
-
-	@Override
-	protected ILanguage getCLanguage() {
-		return UPCLanguage.getDefault();
-	}
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCUtilOldTests.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCUtilOldTests.java
deleted file mode 100644
index 6c0fcb9..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCUtilOldTests.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2009 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.upc.tests;
-
-import org.eclipse.cdt.core.dom.upc.UPCLanguage;
-import org.eclipse.cdt.core.lrparser.tests.LRUtilOldTests;
-import org.eclipse.cdt.core.model.ILanguage;
-
-public class UPCUtilOldTests extends LRUtilOldTests {
-
-	@Override
-	protected ILanguage getCLanguage() {
-		return UPCLanguage.getDefault();
-	}
-
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCUtilTests.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCUtilTests.java
deleted file mode 100644
index 3a0f84d..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCUtilTests.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2009 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.upc.tests;
-
-import org.eclipse.cdt.core.dom.upc.UPCLanguage;
-import org.eclipse.cdt.core.lrparser.tests.LRUtilTests;
-import org.eclipse.cdt.core.model.ILanguage;
-
-public class UPCUtilTests extends LRUtilTests {
-
-	@Override
-	protected ILanguage getCLanguage() {
-		return UPCLanguage.getDefault();
-	}
-
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/.classpath b/upc/org.eclipse.cdt.core.parser.upc/.classpath
deleted file mode 100644
index eca7bdb..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/upc/org.eclipse.cdt.core.parser.upc/.project b/upc/org.eclipse.cdt.core.parser.upc/.project
deleted file mode 100644
index 0697e2b..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.cdt.core.parser.upc</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>net.sourceforge.metrics.builder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>net.sourceforge.metrics.nature</nature>
-	</natures>
-</projectDescription>
diff --git a/upc/org.eclipse.cdt.core.parser.upc/.settings/org.eclipse.jdt.core.prefs b/upc/org.eclipse.cdt.core.parser.upc/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 2b6ecff..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,464 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch, *.xtend
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.mainOnlyProjectHasTestOnlyDependency=error
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.APILeak=warning
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
-org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
-org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
-org.eclipse.jdt.core.formatter.align_with_spaces=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
-org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped=true
-org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=true
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
-org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
diff --git a/upc/org.eclipse.cdt.core.parser.upc/.settings/org.eclipse.jdt.launching.prefs b/upc/org.eclipse.cdt.core.parser.upc/.settings/org.eclipse.jdt.launching.prefs
deleted file mode 100644
index f8a131b..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/.settings/org.eclipse.jdt.launching.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.launching.PREF_COMPILER_COMPLIANCE_DOES_NOT_MATCH_JRE=warning
-org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=warning
diff --git a/upc/org.eclipse.cdt.core.parser.upc/.settings/org.eclipse.jdt.ui.prefs b/upc/org.eclipse.cdt.core.parser.upc/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index e445763..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,133 +0,0 @@
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_missing_override_annotations_interface_methods=true
-cleanup.add_serial_version_id=false
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_functional_interfaces=false
-cleanup.convert_to_enhanced_for_loop=false
-cleanup.correct_indentation=false
-cleanup.format_source_code=true
-cleanup.format_source_code_changes_only=false
-cleanup.insert_inferred_type_arguments=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=true
-cleanup.qualify_static_field_accesses_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=false
-cleanup.qualify_static_method_accesses_with_declaring_class=false
-cleanup.remove_private_constructors=true
-cleanup.remove_redundant_modifiers=false
-cleanup.remove_redundant_semicolons=true
-cleanup.remove_redundant_type_arguments=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=false
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_anonymous_class_creation=false
-cleanup.use_blocks=false
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_lambda=true
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup_profile=_CDT
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_CDT
-formatter_settings_version=14
-internal.default.compliance=user
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.ondemandthreshold=1000
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.staticondemandthreshold=1000
-org.eclipse.jdt.ui.text.custom_code_templates=
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_functional_interfaces=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.insert_inferred_type_arguments=false
-sp_cleanup.make_local_variable_final=true
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_redundant_modifiers=false
-sp_cleanup.remove_redundant_semicolons=true
-sp_cleanup.remove_redundant_type_arguments=true
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=true
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_anonymous_class_creation=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_lambda=true
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/upc/org.eclipse.cdt.core.parser.upc/.settings/org.eclipse.pde.api.tools.prefs b/upc/org.eclipse.cdt.core.parser.upc/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index ec9fbf3..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,184 +0,0 @@
-ANNOTATION_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITH_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-API_USE_SCAN_FIELD_SEVERITY=Error
-API_USE_SCAN_METHOD_SEVERITY=Error
-API_USE_SCAN_TYPE_SEVERITY=Error
-CLASS_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERCLASS_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_CHANGED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENTS=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETERS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_ANNOTATION=Ignore
-INVALID_JAVADOC_TAG=Error
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Warning
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-MISSING_EE_DESCRIPTIONS=Warning
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-automatically_removed_unused_problem_filters=false
-changed_execution_env=Error
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-incompatible_api_component_version_report_major_without_breaking_change=Warning
-incompatible_api_component_version_report_minor_without_api_change=Warning
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
diff --git a/upc/org.eclipse.cdt.core.parser.upc/.settings/org.eclipse.pde.prefs b/upc/org.eclipse.cdt.core.parser.upc/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index d2dc703..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,35 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.build.bin.includes=1
-compilers.p.build.encodings=2
-compilers.p.build.java.compiler=2
-compilers.p.build.java.compliance=1
-compilers.p.build.missing.output=2
-compilers.p.build.output.library=1
-compilers.p.build.source.library=1
-compilers.p.build.src.includes=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=1
-compilers.p.missing-packages=2
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=2
-compilers.p.missing-version-require-bundle=2
-compilers.p.no-required-att=0
-compilers.p.no.automatic.module=1
-compilers.p.not-externalized-att=1
-compilers.p.service.component.without.lazyactivation=1
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/upc/org.eclipse.cdt.core.parser.upc/META-INF/MANIFEST.MF b/upc/org.eclipse.cdt.core.parser.upc/META-INF/MANIFEST.MF
deleted file mode 100644
index 8fe6e60..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,18 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Bundle-Name.1
-Bundle-SymbolicName: org.eclipse.cdt.core.parser.upc;singleton:=true
-Bundle-Version: 5.1.300.qualifier
-Bundle-ClassPath: .
-Require-Bundle: org.eclipse.cdt.core,
- net.sourceforge.lpg.lpgjavaruntime;bundle-version="1.1.0";visibility:=reexport,
- org.eclipse.core.runtime,
- org.eclipse.cdt.core.lrparser;bundle-version="5.0.0"
-Export-Package: org.eclipse.cdt.core.dom.upc,
- org.eclipse.cdt.core.dom.upc.ast,
- org.eclipse.cdt.internal.core.dom.parser.upc;x-internal:=true,
- org.eclipse.cdt.internal.core.dom.parser.upc.ast;x-internal:=true
-Bundle-Localization: plugin
-Bundle-Vendor: %Bundle-Vendor.0
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Automatic-Module-Name: org.eclipse.cdt.core.parser.upc
diff --git a/upc/org.eclipse.cdt.core.parser.upc/about.html b/upc/org.eclipse.cdt.core.parser.upc/about.html
deleted file mode 100644
index 164f781..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
-	<h2>About This Content</h2>
-
-	<p>November 30, 2017</p>
-	<h3>License</h3>
-
-	<p>
-		The Eclipse Foundation makes available all content in this plug-in
-		(&quot;Content&quot;). Unless otherwise indicated below, the Content
-		is provided to you under the terms and conditions of the Eclipse
-		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
-		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>
-		If you did not receive this Content directly from the Eclipse
-		Foundation, the Content is being redistributed by another party
-		(&quot;Redistributor&quot;) and different terms and conditions may
-		apply to your use of any object code in the Content. Check the
-		Redistributor's license that was provided with the Content. If no such
-		license exists, contact the Redistributor. Unless otherwise indicated
-		below, the terms and conditions of the EPL still apply to any source
-		code in the Content and such source code may be obtained at <a
-			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
-	</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/upc/org.eclipse.cdt.core.parser.upc/about.ini b/upc/org.eclipse.cdt.core.parser.upc/about.ini
deleted file mode 100644
index e07a7bb..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/about.ini
+++ /dev/null
@@ -1,24 +0,0 @@
-# about.ini
-# contains information about a feature
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in about.properties
-# This file does not need to be translated.
-
-# Property "aboutText" contains blurb for "About" dialog (translated)
-aboutText=%blurb
-
-# Property "windowImage" contains path to window icon (16x16)
-# needed for primary features only
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=cdt_logo_icon32.png
-
-# Property "aboutImage" contains path to product image (500x330 or 115x164)
-# needed for primary features only
-
-# Property "appName" contains name of the application (translated)
-# needed for primary features only
-
-# Property "welcomePerspective" contains the id of the perspective in which the
-# welcome page is to be opened.
-# optional
diff --git a/upc/org.eclipse.cdt.core.parser.upc/about.mappings b/upc/org.eclipse.cdt.core.parser.upc/about.mappings
deleted file mode 100644
index 936a803..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/about.mappings
+++ /dev/null
@@ -1,9 +0,0 @@
-# about.mappings
-# contains fill-ins for about.properties
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file does not need to be translated.
-
-# The following should contain the build version.
-# e.g. "0=20200106-1728"
-# This value will be added automatically via the build scripts
-0=${buildId}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/about.properties b/upc/org.eclipse.cdt.core.parser.upc/about.properties
deleted file mode 100644
index 6ca4627..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/about.properties
+++ /dev/null
@@ -1,32 +0,0 @@
-###############################################################################
-# Copyright (c) 2007, 2020 Contributors to the Eclipse Foundation
-#
-# See the NOTICE file(s) distributed with this work for additional
-# information regarding copyright ownership.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-###############################################################################
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-# NOTE TO TRANSLATOR: Please do not translate the featureVersion variable.
-
-
-blurb=C/C++ UPC (Unified Parallel C) Support\n\
-\n\
-Version: {featureVersion}\n\
-Build id: {0}\n\
-\n\
-Copyright (c) 2007, 2020 Contributors to the Eclipse Foundation
-\n\
-See the NOTICE file(s) distributed with this work for additional\n\
-information regarding copyright ownership.\n\
-\n\
-Visit http://www.eclipse.org/cdt
diff --git a/upc/org.eclipse.cdt.core.parser.upc/build.properties b/upc/org.eclipse.cdt.core.parser.upc/build.properties
deleted file mode 100644
index 25089d6..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/build.properties
+++ /dev/null
@@ -1,26 +0,0 @@
-###############################################################################
-#  Copyright (c) 2007, 2009 IBM Corporation and others.
-#
-#  This program and the accompanying materials
-#  are made available under the terms of the Eclipse Public License 2.0
-#  which accompanies this distribution, and is available at
-#  https://www.eclipse.org/legal/epl-2.0/
-#
-#  SPDX-License-Identifier: EPL-2.0
-#
-#  Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               about.html,\
-               plugin.properties,\
-               plugin.xml,\
-               about.ini,\
-               about.mappings,\
-               about.properties,\
-               templates/,\
-               cdt_logo_icon32.png
-src.includes = about.html
diff --git a/upc/org.eclipse.cdt.core.parser.upc/cdt_logo_icon32.png b/upc/org.eclipse.cdt.core.parser.upc/cdt_logo_icon32.png
deleted file mode 100644
index 470ca81..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/cdt_logo_icon32.png
+++ /dev/null
Binary files differ
diff --git a/upc/org.eclipse.cdt.core.parser.upc/grammar/build.xml b/upc/org.eclipse.cdt.core.parser.upc/grammar/build.xml
deleted file mode 100644
index b97eb6b..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/grammar/build.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-<!--
- Copyright (c) 2006, 2010 IBM Corporation and others.
- This program and the accompanying materials
- are made available under the terms of the Eclipse Public License 2.0
- which accompanies this distribution, and is available at
- https://www.eclipse.org/legal/epl-2.0/
- 
- SPDX-License-Identifier: EPL-2.0
-
- Contributors:
-     IBM Corporation - initial API and implementation
--->
-
-<project name="UPC Parser" default="upc" basedir=".">
-	<description>Generates the UPC parser from LPG grammar files</description>
-
-	<import file="../../org.eclipse.cdt.core.lrparser/grammar/generate.xml" />
-
-	<property name="upc_location" value="../src/org/eclipse/cdt/internal/core/dom/parser/upc" />
-
-	<target name="upc">
-		<description>Generate the UPC parser</description>
-		<!-- Generate main parser -->
-		<antcall target="generate_upc">
-			<param name="grammar_name" value="UPCParser" />
-		</antcall>
-		<!-- Generate parser for disambiguating declarations vs expression statements -->
-		<antcall target="generate_upc">
-			<param name="grammar_name" value="UPCExpressionParser" />
-		</antcall>
-		<!-- Generate parser for disambiguating cast expressions vs binary expressions-->
-		<antcall target="generate_upc">
-			<param name="grammar_name" value="UPCNoCastExpressionParser" />
-		</antcall>
-		<!-- Generate parser for disambiguating sizeof expressions -->
-		<antcall target="generate_upc">
-			<param name="grammar_name" value="UPCSizeofExpressionParser" />
-		</antcall>
-	</target>
-
-
-	<target name="generate_upc">
-		<property name="lpg_include" value="${lpg_include_loc}/c99" />
-		<antcall target="generate">
-			<param name="grammar_dir" value="upc" />
-			<param name="output_dir" value="${upc_location}" />
-			<param name="grammar_name" value="${grammar_name}" />
-		</antcall>
-	</target>
-
-	<target name="clean_l_files">
-		<delete>
-
-			<fileset dir="${upc_location}" includes="**/*.l" />
-
-
-		</delete>
-	</target>
-
-</project>
\ No newline at end of file
diff --git a/upc/org.eclipse.cdt.core.parser.upc/grammar/parserBuild.properties b/upc/org.eclipse.cdt.core.parser.upc/grammar/parserBuild.properties
deleted file mode 100644
index ad47d0c..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/grammar/parserBuild.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2010 IBM Corporation and others.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-
-lpg_exe=D:/lpg/lpgdistribution/lpgexe/lpg.exe
-lpg_template=D:/newWorkspace/cdt_70_ies/org.eclipse.cdt.core.lrparser/grammar/template
-lpg_include_loc=D:/newWorkspace/cdt_70_ies/org.eclipse.cdt.core.lrparser/grammar
diff --git a/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCExpressionParser.g b/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCExpressionParser.g
deleted file mode 100644
index ee708cf..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCExpressionParser.g
+++ /dev/null
@@ -1,25 +0,0 @@
------------------------------------------------------------------------------------
--- Copyright (c) 2006, 2008 IBM Corporation and others.
--- This program and the accompanying materials
--- are made available under the terms of the Eclipse Public License 2.0
--- which accompanies this distribution, and is available at
--- https://www.eclipse.org/legal/epl-2.0/
---
--- SPDX-License-Identifier: EPL-2.0
---
--- Contributors:
---     IBM Corporation - initial API and implementation
------------------------------------------------------------------------------------
-
-%options la=2
-%options package=org.eclipse.cdt.internal.core.dom.parser.upc
-%options template=LRSecondaryParserTemplate.g
-
-
-$Import
-	C99ExpressionParser.g
-$End
-
-$Import
-    UPCGrammarExtensions.g
-$End
diff --git a/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCGrammarExtensions.g b/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCGrammarExtensions.g
deleted file mode 100644
index 0794fb6..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCGrammarExtensions.g
+++ /dev/null
@@ -1,223 +0,0 @@
------------------------------------------------------------------------------------
--- Copyright (c) 2006, 2009 IBM Corporation and others.
--- This program and the accompanying materials
--- are made available under the terms of the Eclipse Public License 2.0
--- which accompanies this distribution, and is available at
--- https://www.eclipse.org/legal/epl-2.0/
---
--- SPDX-License-Identifier: EPL-2.0
---
--- Contributors:
---     IBM Corporation - initial API and implementation
------------------------------------------------------------------------------------
-
-
-$Define
-	$build_action_class /. UPCParserAction ./
-	$node_factory_create_expression /. new UPCASTNodeFactory() ./
-	$parser_factory_create_expression /. UPCSecondaryParserFactory.getDefault() ./
-$End
-
-
-$Globals
-/.
-import org.eclipse.cdt.core.dom.parser.upc.UPCASTNodeFactory;
-import org.eclipse.cdt.core.dom.parser.upc.UPCSecondaryParserFactory;
-import org.eclipse.cdt.core.dom.parser.upc.UPCParserAction;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTKeywordExpression;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSynchronizationStatement;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTUnarySizeofExpression;
-import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser;
-./
-$End
-
-
-$Terminals  -- Additional keywords defined by UPC
-	MYTHREAD
-	THREADS
-	UPC_MAX_BLOCKSIZE
-	relaxed
-	shared
-	strict
-	upc_barrier 
-	upc_localsizeof
-	upc_blocksizeof 
-	upc_elemsizeof 
-	upc_notify
-	upc_fence 
-	upc_wait
-	upc_forall
-$End
-
-
-
-$Rules  -- UPC grammar extensions to C99
-
------------------------------------------------------------------------------------
--- Expressions
------------------------------------------------------------------------------------
-
-
-literal
-    ::= 'MYTHREAD'
-            /. $Build  consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread); $EndBuild ./
-      | 'THREADS'
-            /. $Build  consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads); $EndBuild ./
-      | 'UPC_MAX_BLOCKSIZE'
-            /. $Build  consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size); $EndBuild ./
-            
-
--- causes ambiguities because of no type information, solution is SGLR
-unary_expression
-    ::= 'upc_localsizeof' unary_expression
-          /. $Build  consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_localsizeof); $EndBuild ./
-      | 'upc_localsizeof' '(' type_id ')'
-          /. $Build  consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_localsizeof); $EndBuild ./
-      | 'upc_blocksizeof' unary_expression
-          /. $Build  consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_blocksizeof); $EndBuild ./
-      | 'upc_blocksizeof' '(' type_id ')'
-          /. $Build  consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_blocksizeof); $EndBuild ./
-      | 'upc_elemsizeof'  unary_expression
-          /. $Build  consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_elemsizeof); $EndBuild ./
-      | 'upc_elemsizeof'  '(' type_id ')'
-          /. $Build  consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_elemsizeof); $EndBuild ./
-      
-      
------------------------------------------------------------------------------------
--- Declarations
------------------------------------------------------------------------------------
-
-
-type_qualifier
-    ::= shared_type_qualifier
-      | reference_type_qualifier
-
--- causes ambiguities in parameter declarations, inherant in grammar
--- for example: int foo(int shared []);
--- does the [] bind to shared or is it shared with infinite block size array?
--- TODO: probably just resolved in the same way as dangling else
-
-shared_type_qualifier
-    ::= 'shared' layout_qualifier  -- don't consume anything, the presense of the 
-                                   -- layout_qualifier will determine that 'shared' token was encountered
-      | 'shared'   /. $Build  consumeToken();  $EndBuild ./
-
-reference_type_qualifier
-    ::= 'relaxed'  /. $Build  consumeToken();  $EndBuild ./
-      | 'strict'   /. $Build  consumeToken();  $EndBuild ./
-
-layout_qualifier
-    ::= '[' constant_expression ']'
-         /. $Build  consumeLayoutQualifier(true, false);  $EndBuild ./
-      | '[' '*' ']'
-         /. $Build  consumeLayoutQualifier(false, true);  $EndBuild ./
-      | '[' ']'
-         /. $Build  consumeLayoutQualifier(false, false);  $EndBuild ./
-
-
-
------------------------------------------------------------------------------------
--- Statements
------------------------------------------------------------------------------------
-
-statement
-     ::= synchronization_statement
-
-synchronization_statement
-     ::= 'upc_notify' expression ';'
-           /. $Build  consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true); $EndBuild ./
-       | 'upc_notify' ';'
-           /. $Build  consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false); $EndBuild ./
-       | 'upc_wait' expression ';'
-           /. $Build  consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true); $EndBuild ./
-       | 'upc_wait' ';'
-           /. $Build  consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false); $EndBuild ./
-       | 'upc_barrier' expression ';'
-           /. $Build  consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true); $EndBuild ./
-       | 'upc_barrier' ';'
-           /. $Build  consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false); $EndBuild ./
-       | 'upc_fence' ';'
-           /. $Build  consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false); $EndBuild ./
-       
-       
-iteration_statement
-    ::= 'upc_forall' '(' expression ';' expression ';' expression ';' affinity ')' statement
-            /. $Build  consumeStatementUPCForallLoop(true, true, true, true); $EndBuild ./
-            
-      | 'upc_forall' '(' expression ';' expression ';' expression ';'          ')' statement
-            /. $Build  consumeStatementUPCForallLoop(true, true, true, false); $EndBuild ./
-            
-      | 'upc_forall' '(' expression ';' expression ';'            ';' affinity ')' statement
-            /. $Build  consumeStatementUPCForallLoop(true, true, false, true); $EndBuild ./
-            
-      | 'upc_forall' '(' expression ';' expression ';'            ';'          ')' statement
-            /. $Build  consumeStatementUPCForallLoop(true, true, false, false); $EndBuild ./
-            
-      | 'upc_forall' '(' expression ';'            ';' expression ';' affinity ')' statement
-            /. $Build  consumeStatementUPCForallLoop(true, false, true, true); $EndBuild ./
-            
-      | 'upc_forall' '(' expression ';'            ';' expression ';'          ')' statement
-            /. $Build  consumeStatementUPCForallLoop(true, false, true, false); $EndBuild ./
-            
-      | 'upc_forall' '(' expression ';'            ';'            ';' affinity ')' statement
-            /. $Build  consumeStatementUPCForallLoop(true, false, false, true); $EndBuild ./
-            
-      | 'upc_forall' '(' expression ';'            ';'            ';'          ')' statement
-            /. $Build  consumeStatementUPCForallLoop(true, false, false, false); $EndBuild ./
-            
-      | 'upc_forall' '('            ';' expression ';' expression ';' affinity ')' statement
-            /. $Build  consumeStatementUPCForallLoop(false, true, true, true); $EndBuild ./
-            
-      | 'upc_forall' '('            ';' expression ';' expression ';'          ')' statement
-            /. $Build  consumeStatementUPCForallLoop(false, true, true, false); $EndBuild ./
-            
-      | 'upc_forall' '('            ';' expression ';'            ';' affinity ')' statement
-            /. $Build  consumeStatementUPCForallLoop(false, true, false, true); $EndBuild ./
-            
-      | 'upc_forall' '('            ';' expression ';'            ';'          ')' statement
-            /. $Build  consumeStatementUPCForallLoop(false, true, false, false); $EndBuild ./
-            
-      | 'upc_forall' '('            ';'            ';' expression ';' affinity ')' statement
-            /. $Build  consumeStatementUPCForallLoop(false, false, true, true); $EndBuild ./
-            
-      | 'upc_forall' '('            ';'            ';' expression ';'          ')' statement
-            /. $Build  consumeStatementUPCForallLoop(false, false, true, false); $EndBuild ./
-            
-      | 'upc_forall' '('            ';'            ';'            ';' affinity ')' statement
-            /. $Build  consumeStatementUPCForallLoop(false, false, false, true); $EndBuild ./
-            
-      | 'upc_forall' '('            ';'            ';'            ';'          ')' statement
-            /. $Build  consumeStatementUPCForallLoop(false, false, false, false); $EndBuild ./
-      
-      | 'upc_forall' '(' declaration expression ';' expression ';' affinity ')' statement
-            /. $Build  consumeStatementUPCForallLoop(true, true, true, true); $EndBuild ./
-            
-      | 'upc_forall' '(' declaration expression ';' expression ';'          ')' statement
-            /. $Build  consumeStatementUPCForallLoop(true, true, true, false); $EndBuild ./
-            
-      | 'upc_forall' '(' declaration expression ';'            ';' affinity ')' statement
-            /. $Build  consumeStatementUPCForallLoop(true, true, false, true); $EndBuild ./
-            
-      | 'upc_forall' '(' declaration expression ';'            ';'          ')' statement
-            /. $Build  consumeStatementUPCForallLoop(true, true, false, false); $EndBuild ./
-            
-      | 'upc_forall' '(' declaration            ';' expression ';' affinity ')' statement
-            /. $Build  consumeStatementUPCForallLoop(true, false, true, true); $EndBuild ./
-            
-      | 'upc_forall' '(' declaration            ';' expression ';'          ')' statement
-            /. $Build  consumeStatementUPCForallLoop(true, false, true, false); $EndBuild ./
-            
-      | 'upc_forall' '(' declaration            ';'            ';' affinity ')' statement
-            /. $Build  consumeStatementUPCForallLoop(true, false, false, true); $EndBuild ./
-            
-      | 'upc_forall' '(' declaration            ';'            ';'          ')' statement
-            /. $Build  consumeStatementUPCForallLoop(true, false, false, false); $EndBuild ./
-
-affinity
-    ::= expression
-      | 'continue'
-          /. $Build  consumeToken();  $EndBuild ./
-
-$End
-
-
diff --git a/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCNoCastExpressionParser.g b/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCNoCastExpressionParser.g
deleted file mode 100644
index d8a51bc..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCNoCastExpressionParser.g
+++ /dev/null
@@ -1,25 +0,0 @@
------------------------------------------------------------------------------------
--- Copyright (c) 2006, 2008 IBM Corporation and others.
--- This program and the accompanying materials
--- are made available under the terms of the Eclipse Public License 2.0
--- which accompanies this distribution, and is available at
--- https://www.eclipse.org/legal/epl-2.0/
---
--- SPDX-License-Identifier: EPL-2.0
---
--- Contributors:
---     IBM Corporation - initial API and implementation
------------------------------------------------------------------------------------
-
-%options la=2
-%options package=org.eclipse.cdt.internal.core.dom.parser.upc
-%options template=LRSecondaryParserTemplate.g
-
-
-$Import
-	C99NoCastExpressionParser.g
-$End
-
-$Import
-    UPCGrammarExtensions.g
-$End
\ No newline at end of file
diff --git a/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCParser.g b/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCParser.g
deleted file mode 100644
index 926b6eb..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCParser.g
+++ /dev/null
@@ -1,26 +0,0 @@
------------------------------------------------------------------------------------
--- Copyright (c) 2006, 2008 IBM Corporation and others.
--- This program and the accompanying materials
--- are made available under the terms of the Eclipse Public License 2.0
--- which accompanies this distribution, and is available at
--- https://www.eclipse.org/legal/epl-2.0/
---
--- SPDX-License-Identifier: EPL-2.0
---
--- Contributors:
---     IBM Corporation - initial API and implementation
------------------------------------------------------------------------------------
-
-%options la=2
-%options package=org.eclipse.cdt.internal.core.dom.parser.upc
-%options template=LRParserTemplate.g
-
-
-$Import
-	C99Parser.g
-$End
-
-$Import
-	UPCGrammarExtensions.g
-$End 
-
diff --git a/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCSizeofExpressionParser.g b/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCSizeofExpressionParser.g
deleted file mode 100644
index 20f8aca..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCSizeofExpressionParser.g
+++ /dev/null
@@ -1,32 +0,0 @@
------------------------------------------------------------------------------------
--- Copyright (c) 2006, 2009 IBM Corporation and others.
--- This program and the accompanying materials
--- are made available under the terms of the Eclipse Public License 2.0
--- which accompanies this distribution, and is available at
--- https://www.eclipse.org/legal/epl-2.0/
---
--- SPDX-License-Identifier: EPL-2.0
---
--- Contributors:
---     IBM Corporation - initial API and implementation
------------------------------------------------------------------------------------
-
-%options la=2
-%options package=org.eclipse.cdt.internal.core.dom.parser.upc
-%options template=LRSecondaryParserTemplate.g
-
-
-$Import
-	C99SizeofExpressionParser.g
-$End
-
-$Import
-    UPCGrammarExtensions.g
-$DropRules
-
-unary_expression
-    ::= 'upc_localsizeof' '(' type_id ')'
-      | 'upc_blocksizeof' '(' type_id ')'
-      | 'upc_elemsizeof'  '(' type_id ')'
-          
-$End
\ No newline at end of file
diff --git a/upc/org.eclipse.cdt.core.parser.upc/plugin.properties b/upc/org.eclipse.cdt.core.parser.upc/plugin.properties
deleted file mode 100644
index 245c61d..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/plugin.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-#  Copyright (c) 2007, 2009 IBM Corporation and others.
-#
-#  This program and the accompanying materials
-#  are made available under the terms of the Eclipse Public License 2.0
-#  which accompanies this distribution, and is available at
-#  https://www.eclipse.org/legal/epl-2.0/
-#
-#  SPDX-License-Identifier: EPL-2.0
-#
-#  Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# properties file for org.eclipse.cdt.core.parser.upc
-Bundle-Name.0 = UPC Parser Plug-in
-Bundle-Vendor.0 = Eclipse CDT
-Bundle-Name.1 = UPC Parser Plug-in
-upcSourceName = UPC Source File
\ No newline at end of file
diff --git a/upc/org.eclipse.cdt.core.parser.upc/plugin.xml b/upc/org.eclipse.cdt.core.parser.upc/plugin.xml
deleted file mode 100644
index c1469b3..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/plugin.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
-
-
-   <extension point="org.eclipse.core.runtime.contentTypes">
-	  <content-type id="upcSource" name="%upcSourceName"
-         base-type="org.eclipse.cdt.core.cSource"
-         file-extensions="upc"
-         priority="high"/>
-   </extension>
-
-   <extension point="org.eclipse.cdt.core.language">
-      <language
-            class="org.eclipse.cdt.core.dom.upc.UPCLanguage"
-            id="upc"
-            name="UPC">
-         <contentType id="org.eclipse.cdt.core.parser.upc.upcSource"/>
-      </language>
-   </extension>
-   
-   <extension point="org.eclipse.ui.editors.templates">
-   		<include
-      		file="templates/default-templates.xml"
-      		translations="$nl$/templates/default-templates.properties">
-      	</include>
-   </extension>
-  
-</plugin>
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/DOMToUPCTokenMap.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/DOMToUPCTokenMap.java
deleted file mode 100644
index c84ca24..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/DOMToUPCTokenMap.java
+++ /dev/null
@@ -1,441 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2011 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.parser.upc;
-
-import static org.eclipse.cdt.core.parser.IToken.tAMPER;
-import static org.eclipse.cdt.core.parser.IToken.tAMPERASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tAND;
-import static org.eclipse.cdt.core.parser.IToken.tARROW;
-import static org.eclipse.cdt.core.parser.IToken.tASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tBITCOMPLEMENT;
-import static org.eclipse.cdt.core.parser.IToken.tBITOR;
-import static org.eclipse.cdt.core.parser.IToken.tBITORASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tCHAR;
-import static org.eclipse.cdt.core.parser.IToken.tCOLON;
-import static org.eclipse.cdt.core.parser.IToken.tCOMMA;
-import static org.eclipse.cdt.core.parser.IToken.tCOMPLETION;
-import static org.eclipse.cdt.core.parser.IToken.tDECR;
-import static org.eclipse.cdt.core.parser.IToken.tDIV;
-import static org.eclipse.cdt.core.parser.IToken.tDIVASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tDOT;
-import static org.eclipse.cdt.core.parser.IToken.tELLIPSIS;
-import static org.eclipse.cdt.core.parser.IToken.tEND_OF_INPUT;
-import static org.eclipse.cdt.core.parser.IToken.tEOC;
-import static org.eclipse.cdt.core.parser.IToken.tEQUAL;
-import static org.eclipse.cdt.core.parser.IToken.tFLOATINGPT;
-import static org.eclipse.cdt.core.parser.IToken.tGT;
-import static org.eclipse.cdt.core.parser.IToken.tGTEQUAL;
-import static org.eclipse.cdt.core.parser.IToken.tIDENTIFIER;
-import static org.eclipse.cdt.core.parser.IToken.tINCR;
-import static org.eclipse.cdt.core.parser.IToken.tINTEGER;
-import static org.eclipse.cdt.core.parser.IToken.tLBRACE;
-import static org.eclipse.cdt.core.parser.IToken.tLBRACKET;
-import static org.eclipse.cdt.core.parser.IToken.tLCHAR;
-import static org.eclipse.cdt.core.parser.IToken.tLPAREN;
-import static org.eclipse.cdt.core.parser.IToken.tLSTRING;
-import static org.eclipse.cdt.core.parser.IToken.tLT;
-import static org.eclipse.cdt.core.parser.IToken.tLTEQUAL;
-import static org.eclipse.cdt.core.parser.IToken.tMINUS;
-import static org.eclipse.cdt.core.parser.IToken.tMINUSASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tMOD;
-import static org.eclipse.cdt.core.parser.IToken.tMODASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tNOT;
-import static org.eclipse.cdt.core.parser.IToken.tNOTEQUAL;
-import static org.eclipse.cdt.core.parser.IToken.tOR;
-import static org.eclipse.cdt.core.parser.IToken.tPLUS;
-import static org.eclipse.cdt.core.parser.IToken.tPLUSASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tQUESTION;
-import static org.eclipse.cdt.core.parser.IToken.tRBRACE;
-import static org.eclipse.cdt.core.parser.IToken.tRBRACKET;
-import static org.eclipse.cdt.core.parser.IToken.tRPAREN;
-import static org.eclipse.cdt.core.parser.IToken.tSEMI;
-import static org.eclipse.cdt.core.parser.IToken.tSHIFTL;
-import static org.eclipse.cdt.core.parser.IToken.tSHIFTLASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tSHIFTR;
-import static org.eclipse.cdt.core.parser.IToken.tSHIFTRASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tSTAR;
-import static org.eclipse.cdt.core.parser.IToken.tSTARASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tSTRING;
-import static org.eclipse.cdt.core.parser.IToken.tUNKNOWN_CHAR;
-import static org.eclipse.cdt.core.parser.IToken.tUTF16CHAR;
-import static org.eclipse.cdt.core.parser.IToken.tUTF16STRING;
-import static org.eclipse.cdt.core.parser.IToken.tUTF32CHAR;
-import static org.eclipse.cdt.core.parser.IToken.tUTF32STRING;
-import static org.eclipse.cdt.core.parser.IToken.tXOR;
-import static org.eclipse.cdt.core.parser.IToken.tXORASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.t__Bool;
-import static org.eclipse.cdt.core.parser.IToken.t__Complex;
-import static org.eclipse.cdt.core.parser.IToken.t__Imaginary;
-import static org.eclipse.cdt.core.parser.IToken.t_auto;
-import static org.eclipse.cdt.core.parser.IToken.t_break;
-import static org.eclipse.cdt.core.parser.IToken.t_case;
-import static org.eclipse.cdt.core.parser.IToken.t_char;
-import static org.eclipse.cdt.core.parser.IToken.t_const;
-import static org.eclipse.cdt.core.parser.IToken.t_continue;
-import static org.eclipse.cdt.core.parser.IToken.t_default;
-import static org.eclipse.cdt.core.parser.IToken.t_do;
-import static org.eclipse.cdt.core.parser.IToken.t_double;
-import static org.eclipse.cdt.core.parser.IToken.t_else;
-import static org.eclipse.cdt.core.parser.IToken.t_enum;
-import static org.eclipse.cdt.core.parser.IToken.t_extern;
-import static org.eclipse.cdt.core.parser.IToken.t_float;
-import static org.eclipse.cdt.core.parser.IToken.t_for;
-import static org.eclipse.cdt.core.parser.IToken.t_goto;
-import static org.eclipse.cdt.core.parser.IToken.t_if;
-import static org.eclipse.cdt.core.parser.IToken.t_inline;
-import static org.eclipse.cdt.core.parser.IToken.t_int;
-import static org.eclipse.cdt.core.parser.IToken.t_long;
-import static org.eclipse.cdt.core.parser.IToken.t_register;
-import static org.eclipse.cdt.core.parser.IToken.t_restrict;
-import static org.eclipse.cdt.core.parser.IToken.t_return;
-import static org.eclipse.cdt.core.parser.IToken.t_short;
-import static org.eclipse.cdt.core.parser.IToken.t_signed;
-import static org.eclipse.cdt.core.parser.IToken.t_sizeof;
-import static org.eclipse.cdt.core.parser.IToken.t_static;
-import static org.eclipse.cdt.core.parser.IToken.t_struct;
-import static org.eclipse.cdt.core.parser.IToken.t_switch;
-import static org.eclipse.cdt.core.parser.IToken.t_typedef;
-import static org.eclipse.cdt.core.parser.IToken.t_union;
-import static org.eclipse.cdt.core.parser.IToken.t_unsigned;
-import static org.eclipse.cdt.core.parser.IToken.t_void;
-import static org.eclipse.cdt.core.parser.IToken.t_volatile;
-import static org.eclipse.cdt.core.parser.IToken.t_while;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_And;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_AndAnd;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_AndAssign;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_Arrow;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_Assign;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_Bang;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_Caret;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_CaretAssign;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_Colon;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_Comma;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_Completion;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_Dot;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_DotDotDot;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_EOF_TOKEN;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_EQ;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_EndOfCompletion;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_GE;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_GT;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_Invalid;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_LE;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_LT;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_LeftBrace;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_LeftBracket;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_LeftParen;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_LeftShift;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_LeftShiftAssign;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_Minus;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_MinusAssign;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_MinusMinus;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_NE;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_Or;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_OrAssign;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_OrOr;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_Percent;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_PercentAssign;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_Plus;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_PlusAssign;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_PlusPlus;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_Question;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_RightBrace;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_RightBracket;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_RightParen;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_RightShift;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_RightShiftAssign;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_SemiColon;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_Slash;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_SlashAssign;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_Star;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_StarAssign;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_Tilde;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK__Bool;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK__Complex;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK__Imaginary;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_auto;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_break;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_case;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_char;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_charconst;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_const;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_continue;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_default;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_do;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_double;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_else;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_enum;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_extern;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_float;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_floating;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_for;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_goto;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_identifier;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_if;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_inline;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_int;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_integer;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_long;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_register;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_restrict;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_return;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_short;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_signed;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_sizeof;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_static;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_stringlit;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_struct;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_switch;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_typedef;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_union;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_unsigned;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_void;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_volatile;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_while;
-
-import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
-import org.eclipse.cdt.core.parser.IToken;
-
-/**
- * Maps token kinds from CPreprocessor to the tokens kinds
- * created by LPG.
- *
- * TODO UPC keywords need to be syntax highlighted
- *
- * @author Mike Kucera
- */
-@SuppressWarnings("nls")
-public class DOMToUPCTokenMap implements IDOMTokenMap {
-
-	@Override
-	public int getEOFTokenKind() {
-		return TK_EOF_TOKEN;
-	}
-
-	@Override
-	public int getEOCTokenKind() {
-		return TK_EndOfCompletion;
-	}
-
-	@Override
-	public int mapKind(IToken token) {
-
-		switch (token.getType()) {
-		case tIDENTIFIER:
-			Integer keywordKind = UPCKeyword.getTokenKind(token.getCharImage());
-			return keywordKind == null ? TK_identifier : keywordKind;
-
-		case tINTEGER:
-			return TK_integer;
-		case tCOLON:
-			return TK_Colon;
-		case tSEMI:
-			return TK_SemiColon;
-		case tCOMMA:
-			return TK_Comma;
-		case tQUESTION:
-			return TK_Question;
-		case tLPAREN:
-			return TK_LeftParen;
-		case tRPAREN:
-			return TK_RightParen;
-		case tLBRACKET:
-			return TK_LeftBracket;
-		case tRBRACKET:
-			return TK_RightBracket;
-		case tLBRACE:
-			return TK_LeftBrace;
-		case tRBRACE:
-			return TK_RightBrace;
-		case tPLUSASSIGN:
-			return TK_PlusAssign;
-		case tINCR:
-			return TK_PlusPlus;
-		case tPLUS:
-			return TK_Plus;
-		case tMINUSASSIGN:
-			return TK_MinusAssign;
-		case tDECR:
-			return TK_MinusMinus;
-		case tARROW:
-			return TK_Arrow;
-		case tMINUS:
-			return TK_Minus;
-		case tSTARASSIGN:
-			return TK_StarAssign;
-		case tSTAR:
-			return TK_Star;
-		case tMODASSIGN:
-			return TK_PercentAssign;
-		case tMOD:
-			return TK_Percent;
-		case tXORASSIGN:
-			return TK_CaretAssign;
-		case tXOR:
-			return TK_Caret;
-		case tAMPERASSIGN:
-			return TK_AndAssign;
-		case tAND:
-			return TK_AndAnd;
-		case tAMPER:
-			return TK_And;
-		case tBITORASSIGN:
-			return TK_OrAssign;
-		case tOR:
-			return TK_OrOr;
-		case tBITOR:
-			return TK_Or;
-		case tBITCOMPLEMENT:
-			return TK_Tilde;
-		case tNOTEQUAL:
-			return TK_NE;
-		case tNOT:
-			return TK_Bang;
-		case tEQUAL:
-			return TK_EQ;
-		case tASSIGN:
-			return TK_Assign;
-		case tUNKNOWN_CHAR:
-			return TK_Invalid;
-		case tSHIFTL:
-			return TK_LeftShift;
-		case tLTEQUAL:
-			return TK_LE;
-		case tLT:
-			return TK_LT;
-		case tSHIFTRASSIGN:
-			return TK_RightShiftAssign;
-		case tSHIFTR:
-			return TK_RightShift;
-		case tGTEQUAL:
-			return TK_GE;
-		case tGT:
-			return TK_GT;
-		case tSHIFTLASSIGN:
-			return TK_LeftShiftAssign;
-		case tELLIPSIS:
-			return TK_DotDotDot;
-		case tDOT:
-			return TK_Dot;
-		case tDIVASSIGN:
-			return TK_SlashAssign;
-		case tDIV:
-			return TK_Slash;
-
-		case t_auto:
-			return TK_auto;
-		case t_break:
-			return TK_break;
-		case t_case:
-			return TK_case;
-		case t_char:
-			return TK_char;
-		case t_const:
-			return TK_const;
-		case t_continue:
-			return TK_continue;
-		case t_default:
-			return TK_default;
-		case t_do:
-			return TK_do;
-		case t_double:
-			return TK_double;
-		case t_else:
-			return TK_else;
-		case t_enum:
-			return TK_enum;
-		case t_extern:
-			return TK_extern;
-		case t_float:
-			return TK_float;
-		case t_for:
-			return TK_for;
-		case t_goto:
-			return TK_goto;
-		case t_if:
-			return TK_if;
-		case t_inline:
-			return TK_inline;
-		case t_int:
-			return TK_int;
-		case t_long:
-			return TK_long;
-		case t_register:
-			return TK_register;
-		case t_return:
-			return TK_return;
-		case t_short:
-			return TK_short;
-		case t_sizeof:
-			return TK_sizeof;
-		case t_static:
-			return TK_static;
-		case t_signed:
-			return TK_signed;
-		case t_struct:
-			return TK_struct;
-		case t_switch:
-			return TK_switch;
-		case t_typedef:
-			return TK_typedef;
-		case t_union:
-			return TK_union;
-		case t_unsigned:
-			return TK_unsigned;
-		case t_void:
-			return TK_void;
-		case t_volatile:
-			return TK_volatile;
-		case t_while:
-			return TK_while;
-		case tFLOATINGPT:
-			return TK_floating;
-		case tSTRING:
-			return TK_stringlit;
-		case tLSTRING:
-			return TK_stringlit;
-		case tUTF16STRING:
-			return TK_stringlit;
-		case tUTF32STRING:
-			return TK_stringlit;
-		case tCHAR:
-			return TK_charconst;
-		case tLCHAR:
-			return TK_charconst;
-		case tUTF16CHAR:
-			return TK_charconst;
-		case tUTF32CHAR:
-			return TK_charconst;
-		case t__Bool:
-			return TK__Bool;
-		case t__Complex:
-			return TK__Complex;
-		case t__Imaginary:
-			return TK__Imaginary;
-		case t_restrict:
-			return TK_restrict;
-		case tCOMPLETION:
-			return TK_Completion;
-		case tEOC:
-			return TK_EndOfCompletion;
-		case tEND_OF_INPUT:
-			return TK_EOF_TOKEN;
-
-		default:
-			assert false : "token not recognized by the UPC parser: " + token.getType();
-			return TK_Invalid;
-		}
-	}
-
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/IUPCNodeFactory.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/IUPCNodeFactory.java
deleted file mode 100644
index f96bcff..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/IUPCNodeFactory.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2011 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.parser.upc;
-
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-import org.eclipse.cdt.core.dom.ast.IASTName;
-import org.eclipse.cdt.core.dom.ast.IASTStatement;
-import org.eclipse.cdt.core.dom.ast.c.ICNodeFactory;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTCompositeTypeSpecifier;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTElaboratedTypeSpecifier;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTEnumerationSpecifier;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTForallStatement;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTKeywordExpression;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSimpleDeclSpecifier;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSynchronizationStatement;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTTypedefNameSpecifier;
-
-public interface IUPCNodeFactory extends ICNodeFactory {
-
-	public void setUseUPCSizeofExpressions(int op);
-
-	public void setUseC99SizeofExpressions();
-
-	public IUPCASTKeywordExpression newKeywordExpression(int keywordKind);
-
-	public IUPCASTSynchronizationStatement newSyncronizationStatment(IASTExpression barrierExpression,
-			int statmentKind);
-
-	public IUPCASTForallStatement newForallStatement(IASTStatement init, IASTExpression condition,
-			IASTExpression iterationExpression, IASTStatement body, IASTExpression affinity);
-
-	@Override
-	public IUPCASTSimpleDeclSpecifier newSimpleDeclSpecifier();
-
-	@Override
-	public IUPCASTCompositeTypeSpecifier newCompositeTypeSpecifier(int key, IASTName name);
-
-	@Override
-	public IUPCASTElaboratedTypeSpecifier newElaboratedTypeSpecifier(int kind, IASTName name);
-
-	@Override
-	public IUPCASTEnumerationSpecifier newEnumerationSpecifier(IASTName name);
-
-	@Override
-	public IUPCASTTypedefNameSpecifier newTypedefNameSpecifier(IASTName name);
-
-}
\ No newline at end of file
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCASTNodeFactory.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCASTNodeFactory.java
deleted file mode 100644
index 3484859..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCASTNodeFactory.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2011 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.parser.upc;
-
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-import org.eclipse.cdt.core.dom.ast.IASTName;
-import org.eclipse.cdt.core.dom.ast.IASTStatement;
-import org.eclipse.cdt.core.dom.ast.IASTTypeId;
-import org.eclipse.cdt.core.dom.ast.IASTTypeIdExpression;
-import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTCompositeTypeSpecifier;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTElaboratedTypeSpecifier;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTEnumerationSpecifier;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTForallStatement;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTKeywordExpression;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSimpleDeclSpecifier;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSynchronizationStatement;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTTypedefNameSpecifier;
-import org.eclipse.cdt.internal.core.dom.parser.c.CNodeFactory;
-import org.eclipse.cdt.internal.core.dom.parser.upc.ast.UPCASTCompositeTypeSpecifier;
-import org.eclipse.cdt.internal.core.dom.parser.upc.ast.UPCASTElaboratedTypeSpecifier;
-import org.eclipse.cdt.internal.core.dom.parser.upc.ast.UPCASTEnumerationSpecifier;
-import org.eclipse.cdt.internal.core.dom.parser.upc.ast.UPCASTForallStatement;
-import org.eclipse.cdt.internal.core.dom.parser.upc.ast.UPCASTKeywordExpression;
-import org.eclipse.cdt.internal.core.dom.parser.upc.ast.UPCASTSimpleDeclSpecifier;
-import org.eclipse.cdt.internal.core.dom.parser.upc.ast.UPCASTSynchronizationStatement;
-import org.eclipse.cdt.internal.core.dom.parser.upc.ast.UPCASTTypeIdSizeofExpression;
-import org.eclipse.cdt.internal.core.dom.parser.upc.ast.UPCASTTypedefNameSpecifier;
-import org.eclipse.cdt.internal.core.dom.parser.upc.ast.UPCASTUnarySizeofExpression;
-
-/**
- * Creates AST nodes that are specific to the UPC parser.
- *
- * The methods in ASTNodeFactory that build nodes for declaration
- * specifiers are overridden here to replace those nodes with the UPC nodes for
- * declaration specifiers. These UPC specific nodes add support
- * for 'strict', 'relaxed' and 'shared'.
- */
-@SuppressWarnings("restriction")
-public class UPCASTNodeFactory extends CNodeFactory implements IUPCNodeFactory {
-
-	private boolean useUPCSizeofExpressions = false;
-	private int currentUPCSizofExpressionOperator = 0;
-
-	@Override
-	public void setUseUPCSizeofExpressions(int op) {
-		useUPCSizeofExpressions = true;
-		currentUPCSizofExpressionOperator = op;
-	}
-
-	@Override
-	public void setUseC99SizeofExpressions() {
-		useUPCSizeofExpressions = false;
-	}
-
-	@Override
-	public IASTTypeIdExpression newTypeIdExpression(int operator, IASTTypeId typeId) {
-		if (useUPCSizeofExpressions) {
-			assert operator == IASTTypeIdExpression.op_sizeof;
-			return new UPCASTTypeIdSizeofExpression(currentUPCSizofExpressionOperator, typeId);
-		}
-
-		return super.newTypeIdExpression(operator, typeId);
-	}
-
-	@Override
-	public IASTUnaryExpression newUnaryExpression(int operator, IASTExpression operand) {
-		if (useUPCSizeofExpressions) {
-			assert operator == IASTUnaryExpression.op_sizeof;
-			return new UPCASTUnarySizeofExpression(currentUPCSizofExpressionOperator, operand);
-		}
-
-		return super.newUnaryExpression(operator, operand);
-	}
-
-	@Override
-	public IUPCASTKeywordExpression newKeywordExpression(int keywordKind) {
-		return new UPCASTKeywordExpression(keywordKind);
-	}
-
-	@Override
-	public IUPCASTSynchronizationStatement newSyncronizationStatment(IASTExpression barrierExpression,
-			int statmentKind) {
-		return new UPCASTSynchronizationStatement(barrierExpression, statmentKind);
-	}
-
-	@Override
-	public IUPCASTForallStatement newForallStatement(IASTStatement init, IASTExpression condition,
-			IASTExpression iterationExpression, IASTStatement body, IASTExpression affinity) {
-		return new UPCASTForallStatement(init, condition, iterationExpression, body, affinity);
-	}
-
-	@Override
-	public IUPCASTSimpleDeclSpecifier newSimpleDeclSpecifier() {
-		return new UPCASTSimpleDeclSpecifier();
-	}
-
-	@Override
-	public IUPCASTCompositeTypeSpecifier newCompositeTypeSpecifier(int key, IASTName name) {
-		return new UPCASTCompositeTypeSpecifier(key, name);
-	}
-
-	@Override
-	public IUPCASTElaboratedTypeSpecifier newElaboratedTypeSpecifier(int kind, IASTName name) {
-		return new UPCASTElaboratedTypeSpecifier(kind, name);
-	}
-
-	@Override
-	public IUPCASTEnumerationSpecifier newEnumerationSpecifier(IASTName name) {
-		return new UPCASTEnumerationSpecifier(name);
-	}
-
-	@Override
-	public IUPCASTTypedefNameSpecifier newTypedefNameSpecifier(IASTName name) {
-		return new UPCASTTypedefNameSpecifier(name);
-	}
-
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCKeyword.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCKeyword.java
deleted file mode 100644
index 0b03b24..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCKeyword.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008, 2009 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *      IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.parser.upc;
-
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_MYTHREAD;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_THREADS;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_UPC_MAX_BLOCKSIZE;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_relaxed;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_shared;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_strict;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_upc_barrier;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_upc_blocksizeof;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_upc_elemsizeof;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_upc_fence;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_upc_forall;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_upc_localsizeof;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_upc_notify;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_upc_wait;
-
-import org.eclipse.cdt.core.dom.lrparser.c99.C99Language;
-import org.eclipse.cdt.core.model.ICLanguageKeywords;
-import org.eclipse.cdt.core.parser.util.CharArrayMap;
-
-/**
- * Enumeration of keywords that UPC adds to C99.
- *
- * @author Mike Kucera
- */
-public enum UPCKeyword {
-
-	MYTHREAD(TK_MYTHREAD), THREADS(TK_THREADS), UPC_MAX_BLOCKSIZE(TK_UPC_MAX_BLOCKSIZE), relaxed(TK_relaxed),
-	shared(TK_shared), strict(TK_strict), upc_barrier(TK_upc_barrier), upc_localsizeof(TK_upc_localsizeof),
-	upc_blocksizeof(TK_upc_blocksizeof), upc_elemsizeof(TK_upc_elemsizeof), upc_notify(TK_upc_notify),
-	upc_fence(TK_upc_fence), upc_wait(TK_upc_wait), upc_forall(TK_upc_forall);
-
-	private final int tokenKind;
-
-	private static final CharArrayMap<Integer> tokenMap = new CharArrayMap<>();
-	private static final String[] upcKeywords;
-	private static final String[] allKeywords;
-
-	UPCKeyword(int tokenKind) {
-		this.tokenKind = tokenKind;
-	}
-
-	static {
-		UPCKeyword[] keywords = values();
-		upcKeywords = new String[keywords.length];
-		for (int i = 0; i < keywords.length; i++) {
-			UPCKeyword keyword = keywords[i];
-			String name = keyword.name();
-			upcKeywords[i] = name;
-			tokenMap.put(name.toCharArray(), keyword.tokenKind);
-		}
-
-		// TODO change to GCC language when gcc support is added
-		ICLanguageKeywords c99Keywords = (ICLanguageKeywords) C99Language.getDefault()
-				.getAdapter(ICLanguageKeywords.class);
-		String[] c99ks = c99Keywords.getKeywords();
-		allKeywords = new String[upcKeywords.length + c99ks.length];
-		System.arraycopy(c99ks, 0, allKeywords, 0, c99ks.length);
-		System.arraycopy(upcKeywords, 0, allKeywords, c99ks.length, upcKeywords.length);
-	}
-
-	public int getTokenKind() {
-		return tokenKind;
-	}
-
-	public static String[] getUPCOnlyKeywords() {
-		return upcKeywords;
-	}
-
-	public static String[] getAllKeywords() {
-		return allKeywords;
-	}
-
-	public static Integer getTokenKind(char[] image) {
-		if (image == null)
-			return null;
-		return tokenMap.get(image);
-	}
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCLanguageKeywords.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCLanguageKeywords.java
deleted file mode 100644
index 82ec27a..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCLanguageKeywords.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *      IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.parser.upc;
-
-import org.eclipse.cdt.core.dom.parser.CLanguageKeywords;
-import org.eclipse.cdt.core.dom.parser.IScannerExtensionConfiguration;
-import org.eclipse.cdt.core.parser.ParserLanguage;
-
-public class UPCLanguageKeywords extends CLanguageKeywords {
-
-	public UPCLanguageKeywords(IScannerExtensionConfiguration config) {
-		super(ParserLanguage.C, config);
-	}
-
-	private static String[] upcKeywords = UPCKeyword.getAllKeywords();
-
-	@Override
-	public String[] getKeywords() {
-		return upcKeywords;
-	}
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCParserAction.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCParserAction.java
deleted file mode 100644
index 74b3f8d..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCParserAction.java
+++ /dev/null
@@ -1,216 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.parser.upc;
-
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_Completion;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_relaxed;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_shared;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_strict;
-
-import org.eclipse.cdt.core.dom.ast.IASTDeclaration;
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-import org.eclipse.cdt.core.dom.ast.IASTStatement;
-import org.eclipse.cdt.core.dom.ast.IASTTypeIdExpression;
-import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression;
-import org.eclipse.cdt.core.dom.ast.c.ICASTDeclSpecifier;
-import org.eclipse.cdt.core.dom.lrparser.action.ISecondaryParserFactory;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
-import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
-import org.eclipse.cdt.core.dom.lrparser.action.c99.C99BuildASTParserAction;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTDeclSpecifier;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTForallStatement;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTKeywordExpression;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSynchronizationStatement;
-
-import lpg.lpgjavaruntime.IToken;
-
-/**
- * Extension to the C99ParserAction that adds support fot building
- * an AST with UPC specific nodes.
- */
-public class UPCParserAction extends C99BuildASTParserAction {
-
-	private IUPCNodeFactory nodeFactory;
-
-	/**
-	 * TODO why is the nodeFactory passed as an argument
-	 * @param nodeFactory
-	 * @param parser
-	 * @param tu
-	 */
-	public UPCParserAction(ITokenStream parser, ScopedStack<Object> astStack, IUPCNodeFactory nodeFactory,
-			ISecondaryParserFactory parserFactory) {
-		super(parser, astStack, nodeFactory, parserFactory);
-		this.nodeFactory = nodeFactory;
-		nodeFactory.setUseC99SizeofExpressions();
-	}
-
-	@Override
-	protected boolean isCompletionToken(IToken token) {
-		return token.getKind() == TK_Completion;
-	}
-
-	/**************************************************************************************
-	 * Semantic actions
-	 **************************************************************************************/
-
-	public void consumeExpressionUnarySizeofOperator(int upcOp) {
-		nodeFactory.setUseUPCSizeofExpressions(upcOp);
-		super.consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof);
-		nodeFactory.setUseC99SizeofExpressions();
-	}
-
-	public void consumeExpressionSizeofTypeId(int upcOp) {
-		nodeFactory.setUseUPCSizeofExpressions(upcOp);
-		super.consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof);
-		nodeFactory.setUseC99SizeofExpressions();
-	}
-
-	/**
-	 * constant ::= 'MYTHREAD' | 'THREADS' | 'UPC_MAX_BLOCKSIZE'
-	 */
-	public void consumeKeywordExpression(int keywordKind) {
-		IUPCASTKeywordExpression expr = nodeFactory.newKeywordExpression(keywordKind);
-		setOffsetAndLength(expr);
-		astStack.push(expr);
-	}
-
-	/**
-	 * synchronization_statement ::= 'upc_notify' expression ';'
-	 *                             | 'upc_notify' ';'
-	 *                             | 'upc_wait' expression ';'
-	 *                             | 'upc_wait' ';'
-	 *                             | 'upc_barrier' expression ';'
-	 *                             | 'upc_barrier' ';'
-	 *                             | 'upc_fence' ';'
-	 */
-	public void consumeStatementSynchronizationStatement(int statementKind, boolean hasBarrierExpr) {
-		IASTExpression barrierExpression = hasBarrierExpr ? (IASTExpression) astStack.pop() : null;
-		IUPCASTSynchronizationStatement statement = nodeFactory.newSyncronizationStatment(barrierExpression,
-				statementKind);
-		setOffsetAndLength(statement);
-		astStack.push(statement);
-	}
-
-	/**
-	 * iteration_statement
-	 *     ::= 'upc_forall' '(' expression ';' expression ';' expression ';' affinity ')' statement
-	 *       | 'upc_forall' '(' declaration expression ';' expression ';' affinity ')' statement
-	 */
-	public void consumeStatementUPCForallLoop(boolean hasExpr1, boolean hasExpr2, boolean hasExpr3,
-			boolean hasAffinity) {
-		IASTStatement body = (IASTStatement) astStack.pop();
-
-		boolean affinityContinue = false;
-		IASTExpression affinity = null;
-		if (hasAffinity) {
-			Object o = astStack.pop();
-			if (o instanceof IASTExpression)
-				affinity = (IASTExpression) o;
-			else if (o instanceof IToken)
-				affinityContinue = true;
-		}
-
-		IASTExpression expr3 = hasExpr3 ? (IASTExpression) astStack.pop() : null;
-		IASTExpression expr2 = hasExpr2 ? (IASTExpression) astStack.pop() : null;
-
-		IASTStatement initializer = nodeFactory.newNullStatement();
-		if (hasExpr1) { // may be an expression or a declaration
-			Object node = astStack.pop();
-			if (node instanceof IASTExpression)
-				initializer = nodeFactory.newExpressionStatement((IASTExpression) node);
-			else if (node instanceof IASTDeclaration)
-				initializer = nodeFactory.newDeclarationStatement((IASTDeclaration) node);
-		}
-
-		IUPCASTForallStatement forStat = nodeFactory.newForallStatement(initializer, expr2, expr3, body, affinity);
-		forStat.setAffinityContinue(affinityContinue);
-		setOffsetAndLength(forStat);
-		astStack.push(forStat);
-	}
-
-	/**
-	 * Temporary object used during the parsing of UPC declaration specifiers.
-	 * Stored temporarily on the astStack, but does not become part of the AST.
-	 * Makes parsing of layout qualifiers easier.
-	 *
-	 * @author Mike
-	 */
-	private static class UPCParserActionLayoutQualifier {
-		public boolean hasStar = false;
-		public IASTExpression expression = null;
-	}
-
-	/**
-	 * layout_qualifier ::= '[' constant_expression ']'
-	 *                    | '[' '*' ']'
-	 *                    | '[' ']'
-	 */
-	public void consumeLayoutQualifier(boolean hasExpression, boolean hasStar) {
-		UPCParserActionLayoutQualifier layoutQualifier = new UPCParserActionLayoutQualifier();
-		layoutQualifier.hasStar = hasStar;
-		if (hasExpression) {
-			layoutQualifier.expression = (IASTExpression) astStack.pop();
-		}
-		astStack.push(layoutQualifier);
-	}
-
-	/**
-	 * Overrides setSpecifier to add support for temporary layout qualifier nodes.
-	 */
-	@Override
-	public void setSpecifier(ICASTDeclSpecifier declSpec, Object specifier) {
-		if (specifier instanceof IToken)
-			setTokenSpecifier((IUPCASTDeclSpecifier) declSpec, (IToken) specifier);
-		else
-			setLayoutQualifier((IUPCASTDeclSpecifier) declSpec, (UPCParserActionLayoutQualifier) specifier);
-	}
-
-	/**
-	 * Support for new declaration specifier keywords.
-	 *
-	 * 'shared' without [] is handled here
-	 * 'shared' with [] is handled in setLayoutQualifier().
-	 */
-	protected void setTokenSpecifier(IUPCASTDeclSpecifier node, IToken token) {
-		switch (token.getKind()) {
-		case TK_relaxed:
-			node.setReferenceType(IUPCASTDeclSpecifier.rt_relaxed);
-			break;
-		case TK_strict:
-			node.setReferenceType(IUPCASTDeclSpecifier.rt_strict);
-			break;
-		case TK_shared:
-			node.setSharedQualifier(IUPCASTDeclSpecifier.sh_shared_default_block_size);
-			break;
-		default:
-			super.setSpecifier(node, token);
-		}
-	}
-
-	/**
-	 * Handles layout qualifiers with block size specified.
-	 */
-	protected void setLayoutQualifier(IUPCASTDeclSpecifier node, UPCParserActionLayoutQualifier layoutQualifier) {
-		if (layoutQualifier.hasStar) {
-			node.setSharedQualifier(IUPCASTDeclSpecifier.sh_shared_pure_allocation);
-		} else if (layoutQualifier.expression != null) {
-			node.setSharedQualifier(IUPCASTDeclSpecifier.sh_shared_constant_expression);
-			node.setBlockSizeExpression(layoutQualifier.expression);
-		} else {
-			node.setSharedQualifier(IUPCASTDeclSpecifier.sh_shared_indefinite_allocation);
-		}
-	}
-
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCSecondaryParserFactory.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCSecondaryParserFactory.java
deleted file mode 100644
index a0d722d..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCSecondaryParserFactory.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2011 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.cdt.core.dom.parser.upc;
-
-import java.util.Map;
-
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
-import org.eclipse.cdt.core.dom.lrparser.action.ISecondaryParserFactory;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
-import org.eclipse.cdt.internal.core.dom.parser.upc.UPCExpressionParser;
-import org.eclipse.cdt.internal.core.dom.parser.upc.UPCNoCastExpressionParser;
-import org.eclipse.cdt.internal.core.dom.parser.upc.UPCSizeofExpressionParser;
-
-public class UPCSecondaryParserFactory implements ISecondaryParserFactory {
-
-	private static final UPCSecondaryParserFactory DEFAULT_INSTANCE = new UPCSecondaryParserFactory();
-
-	public static UPCSecondaryParserFactory getDefault() {
-		return DEFAULT_INSTANCE;
-	}
-
-	@Override
-	public ISecondaryParser<IASTExpression> getExpressionParser(ITokenStream stream, Map<String, String> properties) {
-		return new UPCExpressionParser(stream, properties);
-	}
-
-	@Override
-	public ISecondaryParser<IASTExpression> getNoCastExpressionParser(ITokenStream stream,
-			Map<String, String> properties) {
-		return new UPCNoCastExpressionParser(stream, properties);
-	}
-
-	@Override
-	public ISecondaryParser<IASTExpression> getSizeofExpressionParser(ITokenStream stream,
-			Map<String, String> properties) {
-		return new UPCSizeofExpressionParser(stream, properties);
-	}
-
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/UPCLanguage.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/UPCLanguage.java
deleted file mode 100644
index ef608a6..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/UPCLanguage.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2015 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.upc;
-
-import java.util.Map;
-
-import org.eclipse.cdt.core.dom.ILinkage;
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage;
-import org.eclipse.cdt.core.dom.lrparser.IParser;
-import org.eclipse.cdt.core.dom.lrparser.ScannerExtensionConfiguration;
-import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
-import org.eclipse.cdt.core.dom.parser.IScannerExtensionConfiguration;
-import org.eclipse.cdt.core.dom.parser.c.ANSICParserExtensionConfiguration;
-import org.eclipse.cdt.core.dom.parser.upc.DOMToUPCTokenMap;
-import org.eclipse.cdt.core.dom.parser.upc.UPCLanguageKeywords;
-import org.eclipse.cdt.core.index.IIndex;
-import org.eclipse.cdt.core.model.ICLanguageKeywords;
-import org.eclipse.cdt.core.parser.IScanner;
-import org.eclipse.cdt.core.parser.ParserLanguage;
-import org.eclipse.cdt.internal.core.dom.parser.upc.UPCParser;
-
-/**
- * Implementation of the ILanguage extension point, adds UPC as a language to CDT.
- *
- * @author Mike Kucera
- */
-public class UPCLanguage extends BaseExtensibleLanguage {
-
-	public static final String ID = "org.eclipse.cdt.core.parser.upc.upc"; //$NON-NLS-1$
-
-	public static final String UPC_CONTENT_TYPE_ID = "org.eclipse.cdt.core.parser.upc.upcSource"; //$NON-NLS-1$
-
-	private static final UPCLanguage myDefault = new UPCLanguage();
-
-	public static UPCLanguage getDefault() {
-		return myDefault;
-	}
-
-	@Override
-	protected IParser<IASTTranslationUnit> getParser(IScanner scanner, IIndex index, Map<String, String> properties) {
-		return new UPCParser(scanner, new DOMToUPCTokenMap(), getBuiltinBindingsProvider(), index, properties);
-	}
-
-	@Override
-	public String getId() {
-		return ID;
-	}
-
-	@Override
-	public int getLinkageID() {
-		return ILinkage.C_LINKAGE_ID;
-	}
-
-	private static final ICLanguageKeywords upcKeywords = new UPCLanguageKeywords(
-			ScannerExtensionConfiguration.createC());
-
-	@Override
-	public <T> T getAdapter(Class<T> adapter) {
-		if (ICLanguageKeywords.class.equals(adapter))
-			return adapter.cast(upcKeywords);
-
-		return super.getAdapter(adapter);
-	}
-
-	@Override
-	protected ParserLanguage getParserLanguage() {
-		return ParserLanguage.C;
-	}
-
-	@Override
-	protected IScannerExtensionConfiguration getScannerExtensionConfiguration() {
-		return ScannerExtensionConfiguration.createC();
-	}
-
-	protected IBuiltinBindingsProvider getBuiltinBindingsProvider() {
-		return new ANSICParserExtensionConfiguration().getBuiltinBindingsProvider();
-	}
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTCompositeTypeSpecifier.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTCompositeTypeSpecifier.java
deleted file mode 100644
index 0e7bce3..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTCompositeTypeSpecifier.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2011 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.upc.ast;
-
-import org.eclipse.cdt.core.dom.ast.c.ICASTCompositeTypeSpecifier;
-
-public interface IUPCASTCompositeTypeSpecifier extends IUPCASTDeclSpecifier, ICASTCompositeTypeSpecifier {
-
-	@Override
-	public IUPCASTCompositeTypeSpecifier copy();
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTDeclSpecifier.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTDeclSpecifier.java
deleted file mode 100644
index 4a54bc0..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTDeclSpecifier.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2011 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.upc.ast;
-
-import org.eclipse.cdt.core.dom.ast.ASTNodeProperty;
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-import org.eclipse.cdt.core.dom.ast.c.ICASTDeclSpecifier;
-
-public interface IUPCASTDeclSpecifier extends ICASTDeclSpecifier {
-
-	public static final ASTNodeProperty BLOCK_SIZE_EXPRESSION = new ASTNodeProperty(
-			"IUPCASTDeclSpecifier.BLOCK_SIZE_EXPRESSION - IUPCASTDeclSpecifier block size expression"); //$NON-NLS-1$
-
-	public static final int rt_unspecified = 0;
-
-	public static final int rt_strict = 1;
-
-	public static final int rt_relaxed = 2;
-
-	public static final int sh_not_shared = 0;
-
-	public static final int sh_shared_default_block_size = 1;
-
-	public static final int sh_shared_pure_allocation = 2;
-
-	public static final int sh_shared_indefinite_allocation = 3;
-
-	public static final int sh_shared_constant_expression = 4;
-
-	public int getReferenceType();
-
-	public void setReferenceType(int referenceType);
-
-	public int getSharedQualifier();
-
-	public void setSharedQualifier(int shared);
-
-	public IASTExpression getBlockSizeExpression();
-
-	public void setBlockSizeExpression(IASTExpression expr);
-
-	@Override
-	public IUPCASTDeclSpecifier copy();
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTElaboratedTypeSpecifier.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTElaboratedTypeSpecifier.java
deleted file mode 100644
index 3db445c..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTElaboratedTypeSpecifier.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2011 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.upc.ast;
-
-import org.eclipse.cdt.core.dom.ast.c.ICASTElaboratedTypeSpecifier;
-
-public interface IUPCASTElaboratedTypeSpecifier extends IUPCASTDeclSpecifier, ICASTElaboratedTypeSpecifier {
-
-	@Override
-	public IUPCASTElaboratedTypeSpecifier copy();
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTEnumerationSpecifier.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTEnumerationSpecifier.java
deleted file mode 100644
index 7e4c580..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTEnumerationSpecifier.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2011 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.upc.ast;
-
-import org.eclipse.cdt.core.dom.ast.c.ICASTEnumerationSpecifier;
-
-public interface IUPCASTEnumerationSpecifier extends IUPCASTDeclSpecifier, ICASTEnumerationSpecifier {
-
-	@Override
-	public IUPCASTEnumerationSpecifier copy();
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTForallStatement.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTForallStatement.java
deleted file mode 100644
index eb94ba4..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTForallStatement.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2011 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.upc.ast;
-
-import org.eclipse.cdt.core.dom.ast.ASTNodeProperty;
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-import org.eclipse.cdt.core.dom.ast.IASTForStatement;
-import org.eclipse.cdt.core.dom.ast.IASTStatement;
-
-public interface IUPCASTForallStatement extends IASTForStatement {
-
-	public static final ASTNodeProperty AFFINITY = new ASTNodeProperty(
-			"IUPCASTForallStatement.AFFINITY - IASTExpression affinity for IUPCASTForallStatement"); //$NON-NLS-1$
-
-	@Override
-	public IASTStatement getInitializerStatement();
-
-	@Override
-	public void setInitializerStatement(IASTStatement statement);
-
-	@Override
-	public IASTExpression getConditionExpression();
-
-	@Override
-	public void setConditionExpression(IASTExpression condition);
-
-	@Override
-	public IASTExpression getIterationExpression();
-
-	@Override
-	public void setIterationExpression(IASTExpression iterator);
-
-	public IASTExpression getAffinityExpresiion();
-
-	public void setAffinityExpression(IASTExpression affinity);
-
-	public boolean isAffinityContinue();
-
-	public void setAffinityContinue(boolean affinityContinue);
-
-	@Override
-	public IASTStatement getBody();
-
-	@Override
-	public void setBody(IASTStatement statement);
-
-	@Override
-	public IUPCASTForallStatement copy();
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTKeywordExpression.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTKeywordExpression.java
deleted file mode 100644
index 31fe55b..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTKeywordExpression.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2011 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.upc.ast;
-
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-
-public interface IUPCASTKeywordExpression extends IASTExpression {
-
-	public static final int kw_threads = 1;
-
-	public static final int kw_mythread = 2;
-
-	public static final int kw_upc_max_block_size = 3;
-
-	public int getKeywordKind();
-
-	public void setKeywordKind(int kind);
-
-	@Override
-	public IUPCASTKeywordExpression copy();
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTLayoutQualifier.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTLayoutQualifier.java
deleted file mode 100644
index 80d0f12..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTLayoutQualifier.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2008 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.upc.ast;
-
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-
-public interface IUPCASTLayoutQualifier {
-
-	public boolean isIndefiniteBlockAllocation();
-
-	public void setIndefiniteBlockAllocation(boolean allocation);
-
-	public boolean isPureBlockAllocation();
-
-	public void setPureBlockAllocation(boolean allocation);
-
-	public IASTExpression getBlockSizeExpression();
-
-	public void setBlockSizeExpression(IASTExpression expr);
-
-	public IUPCASTLayoutQualifier copy();
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTSimpleDeclSpecifier.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTSimpleDeclSpecifier.java
deleted file mode 100644
index 74c0719..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTSimpleDeclSpecifier.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2011 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.upc.ast;
-
-import org.eclipse.cdt.core.dom.ast.c.ICASTSimpleDeclSpecifier;
-
-public interface IUPCASTSimpleDeclSpecifier extends IUPCASTDeclSpecifier, ICASTSimpleDeclSpecifier {
-
-	@Override
-	public IUPCASTSimpleDeclSpecifier copy();
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTSynchronizationStatement.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTSynchronizationStatement.java
deleted file mode 100644
index 7c49de0..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTSynchronizationStatement.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2011 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.upc.ast;
-
-import org.eclipse.cdt.core.dom.ast.ASTNodeProperty;
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-import org.eclipse.cdt.core.dom.ast.IASTStatement;
-
-public interface IUPCASTSynchronizationStatement extends IASTStatement {
-
-	public static final ASTNodeProperty BARRIER_EXPRESSION = new ASTNodeProperty(
-			"IUPCASTSynchronizationStatement.BARRIER_EXPRESSION - IASTExpression barrier for IUPCASTSynchronizationStatement"); //$NON-NLS-1$
-
-	public final int st_upc_notify = 1;
-
-	public final int st_upc_wait = 2;
-
-	public final int st_upc_barrier = 3;
-
-	public final int st_upc_fence = 4;
-
-	public IASTExpression getBarrierExpression();
-
-	public void setBarrierExpression(IASTExpression expr);
-
-	public int getStatementKind();
-
-	public void setStatementKind(int kind);
-
-	@Override
-	public IUPCASTSynchronizationStatement copy();
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTTypeIdSizeofExpression.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTTypeIdSizeofExpression.java
deleted file mode 100644
index 9453f5c..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTTypeIdSizeofExpression.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2011 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.upc.ast;
-
-import org.eclipse.cdt.core.dom.ast.IASTTypeIdExpression;
-
-public interface IUPCASTTypeIdSizeofExpression extends IASTTypeIdExpression {
-
-	public final int upc_localsizeof = 1;
-
-	public final int upc_blocksizeof = 2;
-
-	public final int upc_elemsizeof = 3;
-
-	public int getUPCSizeofOperator();
-
-	public void setUPCSizeofOperator(int upcSizeofOperator);
-
-	@Override
-	public IUPCASTTypeIdSizeofExpression copy();
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTTypedefNameSpecifier.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTTypedefNameSpecifier.java
deleted file mode 100644
index 4a925d9..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTTypedefNameSpecifier.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2011 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.upc.ast;
-
-import org.eclipse.cdt.core.dom.ast.c.ICASTTypedefNameSpecifier;
-
-public interface IUPCASTTypedefNameSpecifier extends IUPCASTDeclSpecifier, ICASTTypedefNameSpecifier {
-
-	@Override
-	public IUPCASTTypedefNameSpecifier copy();
-
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTUnarySizeofExpression.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTUnarySizeofExpression.java
deleted file mode 100644
index 7046087..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTUnarySizeofExpression.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2011 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.upc.ast;
-
-import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression;
-
-public interface IUPCASTUnarySizeofExpression extends IASTUnaryExpression {
-
-	public final int upc_localsizeof = 1;
-
-	public final int upc_blocksizeof = 2;
-
-	public final int upc_elemsizeof = 3;
-
-	public int getUPCSizeofOperator();
-
-	public void setUPCSizeofOperator(int upcSizeofOperator);
-
-	@Override
-	public IUPCASTUnarySizeofExpression copy();
-}
\ No newline at end of file
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParser.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParser.java
deleted file mode 100644
index e32ac3c..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParser.java
+++ /dev/null
@@ -1,2060 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2011 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.parser.upc;
-
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.cdt.core.dom.ast.IASTBinaryExpression;
-import org.eclipse.cdt.core.dom.ast.IASTCastExpression;
-import org.eclipse.cdt.core.dom.ast.IASTCompletionNode;
-import org.eclipse.cdt.core.dom.ast.IASTCompositeTypeSpecifier;
-import org.eclipse.cdt.core.dom.ast.IASTElaboratedTypeSpecifier;
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-import org.eclipse.cdt.core.dom.ast.IASTLiteralExpression;
-import org.eclipse.cdt.core.dom.ast.IASTTypeIdExpression;
-import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression;
-import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter;
-import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
-import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
-import org.eclipse.cdt.core.dom.lrparser.ITokenCollector;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
-import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
-import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
-import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser;
-import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
-import org.eclipse.cdt.core.dom.parser.upc.UPCASTNodeFactory;
-import org.eclipse.cdt.core.dom.parser.upc.UPCParserAction;
-import org.eclipse.cdt.core.dom.parser.upc.UPCSecondaryParserFactory;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTKeywordExpression;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSynchronizationStatement;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTUnarySizeofExpression;
-import org.eclipse.cdt.core.index.IIndex;
-import org.eclipse.cdt.core.parser.IScanner;
-
-import lpg.lpgjavaruntime.BadParseException;
-import lpg.lpgjavaruntime.BadParseSymFileException;
-import lpg.lpgjavaruntime.DiagnoseParser;
-import lpg.lpgjavaruntime.ErrorToken;
-import lpg.lpgjavaruntime.IToken;
-import lpg.lpgjavaruntime.LexStream;
-import lpg.lpgjavaruntime.Monitor;
-import lpg.lpgjavaruntime.NotBacktrackParseTableException;
-import lpg.lpgjavaruntime.NullExportedSymbolsException;
-import lpg.lpgjavaruntime.NullTerminalSymbolsException;
-import lpg.lpgjavaruntime.ParseErrorCodes;
-import lpg.lpgjavaruntime.ParseTable;
-import lpg.lpgjavaruntime.PrsStream;
-import lpg.lpgjavaruntime.RuleAction;
-import lpg.lpgjavaruntime.Token;
-import lpg.lpgjavaruntime.UndefinedEofSymbolException;
-import lpg.lpgjavaruntime.UnimplementedTerminalsException;
-
-public class UPCExpressionParser extends PrsStream
-		implements RuleAction, ITokenStream, ITokenCollector, ISecondaryParser<IASTExpression> {
-	private static ParseTable prs = new UPCExpressionParserprs();
-	private FixedBacktrackingParser btParser;
-
-	public FixedBacktrackingParser getParser() {
-		return btParser;
-	}
-
-	private void setResult(Object object) {
-		btParser.setSym1(object);
-	}
-
-	public Object getRhsSym(int i) {
-		return btParser.getSym(i);
-	}
-
-	public int getRhsTokenIndex(int i) {
-		return btParser.getToken(i);
-	}
-
-	public IToken getRhsIToken(int i) {
-		return super.getIToken(getRhsTokenIndex(i));
-	}
-
-	public int getRhsFirstTokenIndex(int i) {
-		return btParser.getFirstToken(i);
-	}
-
-	public IToken getRhsFirstIToken(int i) {
-		return super.getIToken(getRhsFirstTokenIndex(i));
-	}
-
-	public int getRhsLastTokenIndex(int i) {
-		return btParser.getLastToken(i);
-	}
-
-	public IToken getRhsLastIToken(int i) {
-		return super.getIToken(getRhsLastTokenIndex(i));
-	}
-
-	public int getLeftSpan() {
-		return btParser.getFirstToken();
-	}
-
-	@Override
-	public IToken getLeftIToken() {
-		return super.getIToken(getLeftSpan());
-	}
-
-	public int getRightSpan() {
-		return btParser.getLastToken();
-	}
-
-	@Override
-	public IToken getRightIToken() {
-		return super.getIToken(getRightSpan());
-	}
-
-	public int getRhsErrorTokenIndex(int i) {
-		int index = btParser.getToken(i);
-		IToken err = super.getIToken(index);
-		return (err instanceof ErrorToken ? index : 0);
-	}
-
-	public ErrorToken getRhsErrorIToken(int i) {
-		int index = btParser.getToken(i);
-		IToken err = super.getIToken(index);
-		return (ErrorToken) (err instanceof ErrorToken ? err : null);
-	}
-
-	public UPCExpressionParser(LexStream lexStream) {
-		super(lexStream);
-
-		try {
-			super.remapTerminalSymbols(orderedTerminalSymbols(), UPCExpressionParserprs.EOFT_SYMBOL);
-		} catch (NullExportedSymbolsException e) {
-		} catch (NullTerminalSymbolsException e) {
-		} catch (UnimplementedTerminalsException e) {
-			java.util.ArrayList unimplemented_symbols = e.getSymbols();
-			System.out.println("The Lexer will not scan the following token(s):");
-			for (int i = 0; i < unimplemented_symbols.size(); i++) {
-				Integer id = (Integer) unimplemented_symbols.get(i);
-				System.out.println("    " + UPCExpressionParsersym.orderedTerminalSymbols[id.intValue()]);
-			}
-			System.out.println();
-		} catch (UndefinedEofSymbolException e) {
-			throw new Error(new UndefinedEofSymbolException("The Lexer does not implement the Eof symbol "
-					+ UPCExpressionParsersym.orderedTerminalSymbols[UPCExpressionParserprs.EOFT_SYMBOL]));
-		}
-	}
-
-	@Override
-	public String[] orderedTerminalSymbols() {
-		return UPCExpressionParsersym.orderedTerminalSymbols;
-	}
-
-	public String getTokenKindName(int kind) {
-		return UPCExpressionParsersym.orderedTerminalSymbols[kind];
-	}
-
-	public int getEOFTokenKind() {
-		return UPCExpressionParserprs.EOFT_SYMBOL;
-	}
-
-	public PrsStream getParseStream() {
-		return this;
-	}
-
-	//
-	// Report error message for given error_token.
-	//
-	public final void reportErrorTokenMessage(int error_token, String msg) {
-		int firsttok = super.getFirstErrorToken(error_token), lasttok = super.getLastErrorToken(error_token);
-		String location = super.getFileName() + ':'
-				+ (firsttok > lasttok ? (super.getEndLine(lasttok) + ":" + super.getEndColumn(lasttok))
-						: (super.getLine(error_token) + ":" + super.getColumn(error_token) + ":"
-								+ super.getEndLine(error_token) + ":" + super.getEndColumn(error_token)))
-				+ ": ";
-		super.reportError((firsttok > lasttok ? ParseErrorCodes.INSERTION_CODE : ParseErrorCodes.SUBSTITUTION_CODE),
-				location, msg);
-	}
-
-	public void parser() {
-		parser(null, 0);
-	}
-
-	public void parser(Monitor monitor) {
-		parser(monitor, 0);
-	}
-
-	public void parser(int error_repair_count) {
-		parser(null, error_repair_count);
-	}
-
-	public void parser(Monitor monitor, int error_repair_count) {
-		try {
-			btParser = new FixedBacktrackingParser(monitor, this, prs, this);
-		} catch (NotBacktrackParseTableException e) {
-			throw new Error(new NotBacktrackParseTableException(
-					"Regenerate UPCExpressionParserprs.java with -BACKTRACK option"));
-		} catch (BadParseSymFileException e) {
-			throw new Error(new BadParseSymFileException("Bad Parser Symbol File -- UPCExpressionParsersym.java"));
-		}
-
-		try {
-			btParser.parse(error_repair_count);
-		} catch (BadParseException e) {
-			reset(e.error_token); // point to error token
-			DiagnoseParser diagnoseParser = new DiagnoseParser(this, prs);
-			diagnoseParser.diagnose(e.error_token);
-		}
-	}
-
-	private UPCParserAction action;
-	private IASTCompletionNode compNode;
-
-	public UPCExpressionParser(IScanner scanner, IDOMTokenMap tokenMap,
-			IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Map<String, String> properties) {
-		initActions(properties);
-		action.initializeTranslationUnit(scanner, builtinBindingsProvider, index);
-		CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap);
-	}
-
-	private void initActions(Map<String, String> properties) {
-		ScopedStack<Object> astStack = new ScopedStack<>();
-
-		action = new UPCParserAction(this, astStack, new UPCASTNodeFactory(), UPCSecondaryParserFactory.getDefault());
-		action.setParserProperties(properties);
-
-	}
-
-	@Override
-	public void addToken(IToken token) {
-		token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called?
-		super.addToken(token);
-	}
-
-	@Override
-	public IASTExpression parse() {
-		// this has to be done, or... kaboom!
-		setStreamLength(getSize());
-
-		final int errorRepairCount = -1; // -1 means full error handling
-		parser(null, errorRepairCount); // do the actual parse
-		super.resetTokenStream(); // allow tokens to be garbage collected
-
-		compNode = action.getASTCompletionNode(); // the completion node may be null
-		return (IASTExpression) action.getParseResult();
-	}
-
-	@Override
-	public IASTCompletionNode getCompletionNode() {
-		return compNode;
-	}
-
-	// uncomment this method to use with backtracking parser
-	@Override
-	public List<IToken> getRuleTokens() {
-		return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
-	}
-
-	@Override
-	public String[] getOrderedTerminalSymbols() {
-		return UPCExpressionParsersym.orderedTerminalSymbols;
-	}
-
-	@Override
-	@SuppressWarnings("nls")
-	public String getName() {
-		return "UPCExpressionParser";
-	}
-
-	private ITokenMap tokenMap = null;
-
-	@Override
-	public void setTokens(List<IToken> tokens) {
-		resetTokenStream();
-		addToken(new Token(null, 0, 0, 0)); // dummy token
-		for (IToken token : tokens) {
-			token.setKind(tokenMap.mapKind(token.getKind()));
-			addToken(token);
-		}
-		addToken(new Token(null, 0, 0, UPCExpressionParsersym.TK_EOF_TOKEN));
-	}
-
-	public UPCExpressionParser(ITokenStream stream, Map<String, String> properties) { // constructor for creating secondary parser
-		initActions(properties);
-		tokenMap = new TokenMap(UPCExpressionParsersym.orderedTerminalSymbols, stream.getOrderedTerminalSymbols());
-	}
-
-	@Override
-	public void ruleAction(int ruleNumber) {
-		switch (ruleNumber) {
-
-		//
-		// Rule 1:  <openscope-ast> ::= $Empty
-		//
-		case 1: {
-			action.openASTScope();
-			break;
-		}
-
-		//
-		// Rule 2:  <empty> ::= $Empty
-		//
-		case 2: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 13:  literal ::= integer
-		//
-		case 13: {
-			action.consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant);
-			break;
-		}
-
-		//
-		// Rule 14:  literal ::= floating
-		//
-		case 14: {
-			action.consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant);
-			break;
-		}
-
-		//
-		// Rule 15:  literal ::= charconst
-		//
-		case 15: {
-			action.consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant);
-			break;
-		}
-
-		//
-		// Rule 16:  literal ::= stringlit
-		//
-		case 16: {
-			action.consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal);
-			break;
-		}
-
-		//
-		// Rule 18:  primary_expression ::= primary_expression_id
-		//
-		case 18: {
-			action.consumeExpressionID();
-			break;
-		}
-
-		//
-		// Rule 19:  primary_expression ::= ( expression )
-		//
-		case 19: {
-			action.consumeExpressionBracketed();
-			break;
-		}
-
-		//
-		// Rule 22:  postfix_expression ::= postfix_expression [ expression ]
-		//
-		case 22: {
-			action.consumeExpressionArraySubscript();
-			break;
-		}
-
-		//
-		// Rule 23:  postfix_expression ::= postfix_expression ( expression_list_opt )
-		//
-		case 23: {
-			action.consumeExpressionFunctionCall();
-			break;
-		}
-
-		//
-		// Rule 24:  postfix_expression ::= postfix_expression . member_name
-		//
-		case 24: {
-			action.consumeExpressionFieldReference(false);
-			break;
-		}
-
-		//
-		// Rule 25:  postfix_expression ::= postfix_expression -> member_name
-		//
-		case 25: {
-			action.consumeExpressionFieldReference(true);
-			break;
-		}
-
-		//
-		// Rule 26:  postfix_expression ::= postfix_expression ++
-		//
-		case 26: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr);
-			break;
-		}
-
-		//
-		// Rule 27:  postfix_expression ::= postfix_expression --
-		//
-		case 27: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr);
-			break;
-		}
-
-		//
-		// Rule 28:  postfix_expression ::= ( type_id ) initializer_list
-		//
-		case 28: {
-			action.consumeExpressionTypeIdInitializer();
-			break;
-		}
-
-		//
-		// Rule 33:  unary_expression ::= ++ unary_expression
-		//
-		case 33: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr);
-			break;
-		}
-
-		//
-		// Rule 34:  unary_expression ::= -- unary_expression
-		//
-		case 34: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr);
-			break;
-		}
-
-		//
-		// Rule 35:  unary_expression ::= & cast_expression
-		//
-		case 35: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper);
-			break;
-		}
-
-		//
-		// Rule 36:  unary_expression ::= * cast_expression
-		//
-		case 36: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_star);
-			break;
-		}
-
-		//
-		// Rule 37:  unary_expression ::= + cast_expression
-		//
-		case 37: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus);
-			break;
-		}
-
-		//
-		// Rule 38:  unary_expression ::= - cast_expression
-		//
-		case 38: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus);
-			break;
-		}
-
-		//
-		// Rule 39:  unary_expression ::= ~ cast_expression
-		//
-		case 39: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde);
-			break;
-		}
-
-		//
-		// Rule 40:  unary_expression ::= ! cast_expression
-		//
-		case 40: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_not);
-			break;
-		}
-
-		//
-		// Rule 41:  unary_expression ::= sizeof unary_expression
-		//
-		case 41: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof);
-			break;
-		}
-
-		//
-		// Rule 42:  unary_expression ::= sizeof ( type_id )
-		//
-		case 42: {
-			action.consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof);
-			break;
-		}
-
-		//
-		// Rule 44:  cast_expression ::= ( type_id ) cast_expression
-		//
-		case 44: {
-			action.consumeExpressionCast(IASTCastExpression.op_cast);
-			break;
-		}
-
-		//
-		// Rule 46:  multiplicative_expression ::= multiplicative_expression * cast_expression
-		//
-		case 46: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply);
-			break;
-		}
-
-		//
-		// Rule 47:  multiplicative_expression ::= multiplicative_expression / cast_expression
-		//
-		case 47: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide);
-			break;
-		}
-
-		//
-		// Rule 48:  multiplicative_expression ::= multiplicative_expression % cast_expression
-		//
-		case 48: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo);
-			break;
-		}
-
-		//
-		// Rule 50:  additive_expression ::= additive_expression + multiplicative_expression
-		//
-		case 50: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus);
-			break;
-		}
-
-		//
-		// Rule 51:  additive_expression ::= additive_expression - multiplicative_expression
-		//
-		case 51: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus);
-			break;
-		}
-
-		//
-		// Rule 53:  shift_expression ::= shift_expression << additive_expression
-		//
-		case 53: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft);
-			break;
-		}
-
-		//
-		// Rule 54:  shift_expression ::= shift_expression >> additive_expression
-		//
-		case 54: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight);
-			break;
-		}
-
-		//
-		// Rule 56:  relational_expression ::= relational_expression < shift_expression
-		//
-		case 56: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan);
-			break;
-		}
-
-		//
-		// Rule 57:  relational_expression ::= relational_expression > shift_expression
-		//
-		case 57: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan);
-			break;
-		}
-
-		//
-		// Rule 58:  relational_expression ::= relational_expression <= shift_expression
-		//
-		case 58: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual);
-			break;
-		}
-
-		//
-		// Rule 59:  relational_expression ::= relational_expression >= shift_expression
-		//
-		case 59: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual);
-			break;
-		}
-
-		//
-		// Rule 61:  equality_expression ::= equality_expression == relational_expression
-		//
-		case 61: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals);
-			break;
-		}
-
-		//
-		// Rule 62:  equality_expression ::= equality_expression != relational_expression
-		//
-		case 62: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals);
-			break;
-		}
-
-		//
-		// Rule 64:  and_expression ::= and_expression & equality_expression
-		//
-		case 64: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd);
-			break;
-		}
-
-		//
-		// Rule 66:  exclusive_or_expression ::= exclusive_or_expression ^ and_expression
-		//
-		case 66: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor);
-			break;
-		}
-
-		//
-		// Rule 68:  inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression
-		//
-		case 68: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr);
-			break;
-		}
-
-		//
-		// Rule 70:  logical_and_expression ::= logical_and_expression && inclusive_or_expression
-		//
-		case 70: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd);
-			break;
-		}
-
-		//
-		// Rule 72:  logical_or_expression ::= logical_or_expression || logical_and_expression
-		//
-		case 72: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr);
-			break;
-		}
-
-		//
-		// Rule 74:  conditional_expression ::= logical_or_expression ? expression : assignment_expression
-		//
-		case 74: {
-			action.consumeExpressionConditional();
-			break;
-		}
-
-		//
-		// Rule 76:  assignment_expression ::= unary_expression = assignment_expression
-		//
-		case 76: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign);
-			break;
-		}
-
-		//
-		// Rule 77:  assignment_expression ::= unary_expression *= assignment_expression
-		//
-		case 77: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign);
-			break;
-		}
-
-		//
-		// Rule 78:  assignment_expression ::= unary_expression /= assignment_expression
-		//
-		case 78: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign);
-			break;
-		}
-
-		//
-		// Rule 79:  assignment_expression ::= unary_expression %= assignment_expression
-		//
-		case 79: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign);
-			break;
-		}
-
-		//
-		// Rule 80:  assignment_expression ::= unary_expression += assignment_expression
-		//
-		case 80: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign);
-			break;
-		}
-
-		//
-		// Rule 81:  assignment_expression ::= unary_expression -= assignment_expression
-		//
-		case 81: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign);
-			break;
-		}
-
-		//
-		// Rule 82:  assignment_expression ::= unary_expression <<= assignment_expression
-		//
-		case 82: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign);
-			break;
-		}
-
-		//
-		// Rule 83:  assignment_expression ::= unary_expression >>= assignment_expression
-		//
-		case 83: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign);
-			break;
-		}
-
-		//
-		// Rule 84:  assignment_expression ::= unary_expression &= assignment_expression
-		//
-		case 84: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign);
-			break;
-		}
-
-		//
-		// Rule 85:  assignment_expression ::= unary_expression ^= assignment_expression
-		//
-		case 85: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign);
-			break;
-		}
-
-		//
-		// Rule 86:  assignment_expression ::= unary_expression |= assignment_expression
-		//
-		case 86: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign);
-			break;
-		}
-
-		//
-		// Rule 89:  expression_list ::= <openscope-ast> expression_list_actual
-		//
-		case 89: {
-			action.consumeExpressionList();
-			break;
-		}
-
-		//
-		// Rule 91:  expression_list_opt ::= $Empty
-		//
-		case 91: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 101:  statement ::= ERROR_TOKEN
-		//
-		case 101: {
-			action.consumeStatementProblem();
-			break;
-		}
-
-		//
-		// Rule 102:  labeled_statement ::= identifier_token : statement
-		//
-		case 102: {
-			action.consumeStatementLabeled();
-			break;
-		}
-
-		//
-		// Rule 103:  labeled_statement ::= case constant_expression : statement
-		//
-		case 103: {
-			action.consumeStatementCase();
-			break;
-		}
-
-		//
-		// Rule 104:  labeled_statement ::= default : statement
-		//
-		case 104: {
-			action.consumeStatementDefault();
-			break;
-		}
-
-		//
-		// Rule 105:  compound_statement ::= { }
-		//
-		case 105: {
-			action.consumeStatementCompoundStatement(false);
-			break;
-		}
-
-		//
-		// Rule 106:  compound_statement ::= { <openscope-ast> block_item_list }
-		//
-		case 106: {
-			action.consumeStatementCompoundStatement(true);
-			break;
-		}
-
-		//
-		// Rule 110:  block_item ::= declaration
-		//
-		case 110: {
-			action.consumeStatementDeclarationWithDisambiguation();
-			break;
-		}
-
-		//
-		// Rule 111:  expression_statement ::= ;
-		//
-		case 111: {
-			action.consumeStatementNull();
-			break;
-		}
-
-		//
-		// Rule 112:  expression_statement ::= expression_in_statement ;
-		//
-		case 112: {
-			action.consumeStatementExpression();
-			break;
-		}
-
-		//
-		// Rule 113:  selection_statement ::= if ( expression ) statement
-		//
-		case 113: {
-			action.consumeStatementIf(false);
-			break;
-		}
-
-		//
-		// Rule 114:  selection_statement ::= if ( expression ) statement else statement
-		//
-		case 114: {
-			action.consumeStatementIf(true);
-			break;
-		}
-
-		//
-		// Rule 115:  selection_statement ::= switch ( expression ) statement
-		//
-		case 115: {
-			action.consumeStatementSwitch();
-			break;
-		}
-
-		//
-		// Rule 117:  expression_opt ::= $Empty
-		//
-		case 117: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 118:  iteration_statement ::= do statement while ( expression ) ;
-		//
-		case 118: {
-			action.consumeStatementDoLoop(true);
-			break;
-		}
-
-		//
-		// Rule 119:  iteration_statement ::= do statement
-		//
-		case 119: {
-			action.consumeStatementDoLoop(false);
-			break;
-		}
-
-		//
-		// Rule 120:  iteration_statement ::= while ( expression ) statement
-		//
-		case 120: {
-			action.consumeStatementWhileLoop();
-			break;
-		}
-
-		//
-		// Rule 121:  iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement
-		//
-		case 121: {
-			action.consumeStatementForLoop();
-			break;
-		}
-
-		//
-		// Rule 122:  iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement
-		//
-		case 122: {
-			action.consumeStatementForLoop();
-			break;
-		}
-
-		//
-		// Rule 123:  jump_statement ::= goto identifier_token ;
-		//
-		case 123: {
-			action.consumeStatementGoto();
-			break;
-		}
-
-		//
-		// Rule 124:  jump_statement ::= continue ;
-		//
-		case 124: {
-			action.consumeStatementContinue();
-			break;
-		}
-
-		//
-		// Rule 125:  jump_statement ::= break ;
-		//
-		case 125: {
-			action.consumeStatementBreak();
-			break;
-		}
-
-		//
-		// Rule 126:  jump_statement ::= return ;
-		//
-		case 126: {
-			action.consumeStatementReturn(false);
-			break;
-		}
-
-		//
-		// Rule 127:  jump_statement ::= return expression ;
-		//
-		case 127: {
-			action.consumeStatementReturn(true);
-			break;
-		}
-
-		//
-		// Rule 128:  declaration ::= declaration_specifiers ;
-		//
-		case 128: {
-			action.consumeDeclarationSimple(false);
-			break;
-		}
-
-		//
-		// Rule 129:  declaration ::= declaration_specifiers <openscope-ast> init_declarator_list ;
-		//
-		case 129: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 130:  declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
-		//
-		case 130: {
-			action.consumeDeclarationSpecifiersSimple();
-			break;
-		}
-
-		//
-		// Rule 131:  declaration_specifiers ::= <openscope-ast> struct_or_union_declaration_specifiers
-		//
-		case 131: {
-			action.consumeDeclarationSpecifiersStructUnionEnum();
-			break;
-		}
-
-		//
-		// Rule 132:  declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
-		//
-		case 132: {
-			action.consumeDeclarationSpecifiersStructUnionEnum();
-			break;
-		}
-
-		//
-		// Rule 133:  declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
-		//
-		case 133: {
-			action.consumeDeclarationSpecifiersStructUnionEnum();
-			break;
-		}
-
-		//
-		// Rule 134:  declaration_specifiers ::= <openscope-ast> typdef_name_declaration_specifiers
-		//
-		case 134: {
-			action.consumeDeclarationSpecifiersTypedefName();
-			break;
-		}
-
-		//
-		// Rule 159:  init_declarator ::= complete_declarator = initializer
-		//
-		case 159: {
-			action.consumeDeclaratorWithInitializer(true);
-			break;
-		}
-
-		//
-		// Rule 161:  storage_class_specifier ::= storage_class_specifier_token
-		//
-		case 161: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 167:  simple_type_specifier ::= simple_type_specifier_token
-		//
-		case 167: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 180:  type_name_specifier ::= identifier_token
-		//
-		case 180: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 181:  struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { <openscope-ast> struct_declaration_list_opt }
-		//
-		case 181: {
-			action.consumeTypeSpecifierComposite(false);
-			break;
-		}
-
-		//
-		// Rule 182:  struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { <openscope-ast> struct_declaration_list_opt }
-		//
-		case 182: {
-			action.consumeTypeSpecifierComposite(true);
-			break;
-		}
-
-		//
-		// Rule 187:  elaborated_specifier ::= struct elaborated_specifier_hook identifier_token
-		//
-		case 187: {
-			action.consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct);
-			break;
-		}
-
-		//
-		// Rule 188:  elaborated_specifier ::= union elaborated_specifier_hook identifier_token
-		//
-		case 188: {
-			action.consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union);
-			break;
-		}
-
-		//
-		// Rule 189:  elaborated_specifier ::= enum elaborated_specifier_hook identifier_token
-		//
-		case 189: {
-			action.consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum);
-			break;
-		}
-
-		//
-		// Rule 195:  struct_declaration ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ;
-		//
-		case 195: {
-			action.consumeStructDeclaration(true);
-			break;
-		}
-
-		//
-		// Rule 196:  struct_declaration ::= specifier_qualifier_list ;
-		//
-		case 196: {
-			action.consumeStructDeclaration(false);
-			break;
-		}
-
-		//
-		// Rule 197:  struct_declaration ::= ERROR_TOKEN
-		//
-		case 197: {
-			action.consumeDeclarationProblem();
-			break;
-		}
-
-		//
-		// Rule 203:  struct_declarator ::= : constant_expression
-		//
-		case 203: {
-			action.consumeBitField(false);
-			break;
-		}
-
-		//
-		// Rule 204:  struct_declarator ::= declarator : constant_expression
-		//
-		case 204: {
-			action.consumeBitField(true);
-			break;
-		}
-
-		//
-		// Rule 205:  enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
-		//
-		case 205: {
-			action.consumeTypeSpecifierEnumeration(false);
-			break;
-		}
-
-		//
-		// Rule 206:  enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
-		//
-		case 206: {
-			action.consumeTypeSpecifierEnumeration(true);
-			break;
-		}
-
-		//
-		// Rule 212:  enumerator ::= identifier_token
-		//
-		case 212: {
-			action.consumeEnumerator(false);
-			break;
-		}
-
-		//
-		// Rule 213:  enumerator ::= identifier_token = constant_expression
-		//
-		case 213: {
-			action.consumeEnumerator(true);
-			break;
-		}
-
-		//
-		// Rule 214:  type_qualifier ::= type_qualifier_token
-		//
-		case 214: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 218:  function_specifier ::= inline
-		//
-		case 218: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 220:  declarator ::= <openscope-ast> pointer_seq direct_declarator
-		//
-		case 220: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 225:  basic_direct_declarator ::= declarator_id_name
-		//
-		case 225: {
-			action.consumeDirectDeclaratorIdentifier();
-			break;
-		}
-
-		//
-		// Rule 226:  basic_direct_declarator ::= ( declarator )
-		//
-		case 226: {
-			action.consumeDirectDeclaratorBracketed();
-			break;
-		}
-
-		//
-		// Rule 227:  declarator_id_name ::= identifier
-		//
-		case 227: {
-			action.consumeIdentifierName();
-			break;
-		}
-
-		//
-		// Rule 228:  array_direct_declarator ::= basic_direct_declarator array_modifier
-		//
-		case 228: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 229:  array_direct_declarator ::= array_direct_declarator array_modifier
-		//
-		case 229: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 231:  function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_type_list )
-		//
-		case 231: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true, true);
-			break;
-		}
-
-		//
-		// Rule 232:  function_direct_declarator ::= basic_direct_declarator ( )
-		//
-		case 232: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true, false);
-			break;
-		}
-
-		//
-		// Rule 234:  function_declarator ::= <openscope-ast> pointer_seq function_direct_declarator
-		//
-		case 234: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 235:  knr_direct_declarator ::= basic_direct_declarator ( <openscope-ast> identifier_list )
-		//
-		case 235: {
-			action.consumeDirectDeclaratorFunctionDeclaratorKnR();
-			break;
-		}
-
-		//
-		// Rule 237:  knr_function_declarator ::= <openscope-ast> pointer_seq knr_direct_declarator
-		//
-		case 237: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 238:  identifier_list ::= identifier
-		//
-		case 238: {
-			action.consumeIdentifierKnR();
-			break;
-		}
-
-		//
-		// Rule 239:  identifier_list ::= identifier_list , identifier
-		//
-		case 239: {
-			action.consumeIdentifierKnR();
-			break;
-		}
-
-		//
-		// Rule 240:  array_modifier ::= [ ]
-		//
-		case 240: {
-			action.consumeDirectDeclaratorArrayModifier(false);
-			break;
-		}
-
-		//
-		// Rule 241:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ]
-		//
-		case 241: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false);
-			break;
-		}
-
-		//
-		// Rule 242:  array_modifier ::= [ assignment_expression ]
-		//
-		case 242: {
-			action.consumeDirectDeclaratorArrayModifier(true);
-			break;
-		}
-
-		//
-		// Rule 243:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
-		//
-		case 243: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 244:  array_modifier ::= [ static assignment_expression ]
-		//
-		case 244: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true);
-			break;
-		}
-
-		//
-		// Rule 245:  array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
-		//
-		case 245: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 246:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ]
-		//
-		case 246: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 247:  array_modifier ::= [ * ]
-		//
-		case 247: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false);
-			break;
-		}
-
-		//
-		// Rule 248:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ]
-		//
-		case 248: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false);
-			break;
-		}
-
-		//
-		// Rule 250:  pointer_seq ::= pointer_hook * pointer_hook
-		//
-		case 250: {
-			action.consumePointer();
-			break;
-		}
-
-		//
-		// Rule 251:  pointer_seq ::= pointer_seq pointer_hook * pointer_hook
-		//
-		case 251: {
-			action.consumePointer();
-			break;
-		}
-
-		//
-		// Rule 252:  pointer_seq ::= pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
-		//
-		case 252: {
-			action.consumePointerTypeQualifierList();
-			break;
-		}
-
-		//
-		// Rule 253:  pointer_seq ::= pointer_seq pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
-		//
-		case 253: {
-			action.consumePointerTypeQualifierList();
-			break;
-		}
-
-		//
-		// Rule 257:  parameter_type_list ::= parameter_list
-		//
-		case 257: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 258:  parameter_type_list ::= parameter_list , ...
-		//
-		case 258: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 259:  parameter_type_list ::= ...
-		//
-		case 259: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 262:  parameter_declaration ::= declaration_specifiers complete_parameter_declarator
-		//
-		case 262: {
-			action.consumeParameterDeclaration();
-			break;
-		}
-
-		//
-		// Rule 263:  parameter_declaration ::= declaration_specifiers
-		//
-		case 263: {
-			action.consumeParameterDeclarationWithoutDeclarator();
-			break;
-		}
-
-		//
-		// Rule 266:  type_id ::= specifier_qualifier_list
-		//
-		case 266: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 267:  type_id ::= specifier_qualifier_list abstract_declarator
-		//
-		case 267: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 269:  abstract_declarator ::= <openscope-ast> pointer_seq
-		//
-		case 269: {
-			action.consumeDeclaratorWithPointer(false);
-			break;
-		}
-
-		//
-		// Rule 270:  abstract_declarator ::= <openscope-ast> pointer_seq direct_abstract_declarator
-		//
-		case 270: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 274:  basic_direct_abstract_declarator ::= ( abstract_declarator )
-		//
-		case 274: {
-			action.consumeDirectDeclaratorBracketed();
-			break;
-		}
-
-		//
-		// Rule 275:  array_direct_abstract_declarator ::= array_modifier
-		//
-		case 275: {
-			action.consumeDirectDeclaratorArrayDeclarator(false);
-			break;
-		}
-
-		//
-		// Rule 276:  array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
-		//
-		case 276: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 277:  array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
-		//
-		case 277: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 278:  function_direct_abstract_declarator ::= ( )
-		//
-		case 278: {
-			action.consumeDirectDeclaratorFunctionDeclarator(false, false);
-			break;
-		}
-
-		//
-		// Rule 279:  function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( )
-		//
-		case 279: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true, false);
-			break;
-		}
-
-		//
-		// Rule 280:  function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list )
-		//
-		case 280: {
-			action.consumeDirectDeclaratorFunctionDeclarator(false, true);
-			break;
-		}
-
-		//
-		// Rule 281:  function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list )
-		//
-		case 281: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true, true);
-			break;
-		}
-
-		//
-		// Rule 282:  initializer ::= assignment_expression
-		//
-		case 282: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 283:  initializer ::= initializer_list
-		//
-		case 283: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 284:  initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq comma_opt } end_initializer_list
-		//
-		case 284: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 285:  initializer_list ::= { <openscope-ast> }
-		//
-		case 285: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 286:  start_initializer_list ::= $Empty
-		//
-		case 286: {
-			action.initializerListStart();
-			break;
-		}
-
-		//
-		// Rule 287:  end_initializer_list ::= $Empty
-		//
-		case 287: {
-			action.initializerListEnd();
-			break;
-		}
-
-		//
-		// Rule 292:  designated_initializer ::= <openscope-ast> designation = initializer
-		//
-		case 292: {
-			action.consumeInitializerDesignated();
-			break;
-		}
-
-		//
-		// Rule 296:  designator_base ::= [ constant_expression ]
-		//
-		case 296: {
-			action.consumeDesignatorArray();
-			break;
-		}
-
-		//
-		// Rule 297:  designator_base ::= . identifier_token
-		//
-		case 297: {
-			action.consumeDesignatorField();
-			break;
-		}
-
-		//
-		// Rule 298:  designator ::= [ constant_expression ]
-		//
-		case 298: {
-			action.consumeDesignatorArray();
-			break;
-		}
-
-		//
-		// Rule 299:  designator ::= . identifier_token
-		//
-		case 299: {
-			action.consumeDesignatorField();
-			break;
-		}
-
-		//
-		// Rule 300:  translation_unit ::= external_declaration_list
-		//
-		case 300: {
-			action.consumeTranslationUnit();
-			break;
-		}
-
-		//
-		// Rule 301:  translation_unit ::= $Empty
-		//
-		case 301: {
-			action.consumeTranslationUnit();
-			break;
-		}
-
-		//
-		// Rule 306:  external_declaration ::= ;
-		//
-		case 306: {
-			action.consumeDeclarationEmpty();
-			break;
-		}
-
-		//
-		// Rule 307:  external_declaration ::= ERROR_TOKEN
-		//
-		case 307: {
-			action.consumeDeclarationProblem();
-			break;
-		}
-
-		//
-		// Rule 311:  function_definition ::= <openscope-ast> function_declarator function_body
-		//
-		case 311: {
-			action.consumeFunctionDefinition(false);
-			break;
-		}
-
-		//
-		// Rule 312:  function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
-		//
-		case 312: {
-			action.consumeFunctionDefinitionKnR();
-			break;
-		}
-
-		//
-		// Rule 313:  normal_function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
-		//
-		case 313: {
-			action.consumeFunctionDefinition(true);
-			break;
-		}
-
-		//
-		// Rule 314:  function_body ::= { }
-		//
-		case 314: {
-			action.consumeStatementCompoundStatement(false);
-			break;
-		}
-
-		//
-		// Rule 315:  function_body ::= { <openscope-ast> block_item_list }
-		//
-		case 315: {
-			action.consumeStatementCompoundStatement(true);
-			break;
-		}
-
-		//
-		// Rule 317:  expression_parser_start ::= ERROR_TOKEN
-		//
-		case 317: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 318:  literal ::= MYTHREAD
-		//
-		case 318: {
-			action.consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread);
-			break;
-		}
-
-		//
-		// Rule 319:  literal ::= THREADS
-		//
-		case 319: {
-			action.consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads);
-			break;
-		}
-
-		//
-		// Rule 320:  literal ::= UPC_MAX_BLOCKSIZE
-		//
-		case 320: {
-			action.consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size);
-			break;
-		}
-
-		//
-		// Rule 321:  unary_expression ::= upc_localsizeof unary_expression
-		//
-		case 321: {
-			action.consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_localsizeof);
-			break;
-		}
-
-		//
-		// Rule 322:  unary_expression ::= upc_localsizeof ( type_id )
-		//
-		case 322: {
-			action.consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_localsizeof);
-			break;
-		}
-
-		//
-		// Rule 323:  unary_expression ::= upc_blocksizeof unary_expression
-		//
-		case 323: {
-			action.consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_blocksizeof);
-			break;
-		}
-
-		//
-		// Rule 324:  unary_expression ::= upc_blocksizeof ( type_id )
-		//
-		case 324: {
-			action.consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_blocksizeof);
-			break;
-		}
-
-		//
-		// Rule 325:  unary_expression ::= upc_elemsizeof unary_expression
-		//
-		case 325: {
-			action.consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_elemsizeof);
-			break;
-		}
-
-		//
-		// Rule 326:  unary_expression ::= upc_elemsizeof ( type_id )
-		//
-		case 326: {
-			action.consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_elemsizeof);
-			break;
-		}
-
-		//
-		// Rule 330:  shared_type_qualifier ::= shared
-		//
-		case 330: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 331:  reference_type_qualifier ::= relaxed
-		//
-		case 331: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 332:  reference_type_qualifier ::= strict
-		//
-		case 332: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 333:  layout_qualifier ::= [ constant_expression ]
-		//
-		case 333: {
-			action.consumeLayoutQualifier(true, false);
-			break;
-		}
-
-		//
-		// Rule 334:  layout_qualifier ::= [ * ]
-		//
-		case 334: {
-			action.consumeLayoutQualifier(false, true);
-			break;
-		}
-
-		//
-		// Rule 335:  layout_qualifier ::= [ ]
-		//
-		case 335: {
-			action.consumeLayoutQualifier(false, false);
-			break;
-		}
-
-		//
-		// Rule 337:  synchronization_statement ::= upc_notify expression ;
-		//
-		case 337: {
-			action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true);
-			break;
-		}
-
-		//
-		// Rule 338:  synchronization_statement ::= upc_notify ;
-		//
-		case 338: {
-			action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false);
-			break;
-		}
-
-		//
-		// Rule 339:  synchronization_statement ::= upc_wait expression ;
-		//
-		case 339: {
-			action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true);
-			break;
-		}
-
-		//
-		// Rule 340:  synchronization_statement ::= upc_wait ;
-		//
-		case 340: {
-			action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false);
-			break;
-		}
-
-		//
-		// Rule 341:  synchronization_statement ::= upc_barrier expression ;
-		//
-		case 341: {
-			action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true);
-			break;
-		}
-
-		//
-		// Rule 342:  synchronization_statement ::= upc_barrier ;
-		//
-		case 342: {
-			action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false);
-			break;
-		}
-
-		//
-		// Rule 343:  synchronization_statement ::= upc_fence ;
-		//
-		case 343: {
-			action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false);
-			break;
-		}
-
-		//
-		// Rule 344:  iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement
-		//
-		case 344: {
-			action.consumeStatementUPCForallLoop(true, true, true, true);
-			break;
-		}
-
-		//
-		// Rule 345:  iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement
-		//
-		case 345: {
-			action.consumeStatementUPCForallLoop(true, true, true, false);
-			break;
-		}
-
-		//
-		// Rule 346:  iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement
-		//
-		case 346: {
-			action.consumeStatementUPCForallLoop(true, true, false, true);
-			break;
-		}
-
-		//
-		// Rule 347:  iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement
-		//
-		case 347: {
-			action.consumeStatementUPCForallLoop(true, true, false, false);
-			break;
-		}
-
-		//
-		// Rule 348:  iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement
-		//
-		case 348: {
-			action.consumeStatementUPCForallLoop(true, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 349:  iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement
-		//
-		case 349: {
-			action.consumeStatementUPCForallLoop(true, false, true, false);
-			break;
-		}
-
-		//
-		// Rule 350:  iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement
-		//
-		case 350: {
-			action.consumeStatementUPCForallLoop(true, false, false, true);
-			break;
-		}
-
-		//
-		// Rule 351:  iteration_statement ::= upc_forall ( expression ; ; ; ) statement
-		//
-		case 351: {
-			action.consumeStatementUPCForallLoop(true, false, false, false);
-			break;
-		}
-
-		//
-		// Rule 352:  iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement
-		//
-		case 352: {
-			action.consumeStatementUPCForallLoop(false, true, true, true);
-			break;
-		}
-
-		//
-		// Rule 353:  iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement
-		//
-		case 353: {
-			action.consumeStatementUPCForallLoop(false, true, true, false);
-			break;
-		}
-
-		//
-		// Rule 354:  iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement
-		//
-		case 354: {
-			action.consumeStatementUPCForallLoop(false, true, false, true);
-			break;
-		}
-
-		//
-		// Rule 355:  iteration_statement ::= upc_forall ( ; expression ; ; ) statement
-		//
-		case 355: {
-			action.consumeStatementUPCForallLoop(false, true, false, false);
-			break;
-		}
-
-		//
-		// Rule 356:  iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement
-		//
-		case 356: {
-			action.consumeStatementUPCForallLoop(false, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 357:  iteration_statement ::= upc_forall ( ; ; expression ; ) statement
-		//
-		case 357: {
-			action.consumeStatementUPCForallLoop(false, false, true, false);
-			break;
-		}
-
-		//
-		// Rule 358:  iteration_statement ::= upc_forall ( ; ; ; affinity ) statement
-		//
-		case 358: {
-			action.consumeStatementUPCForallLoop(false, false, false, true);
-			break;
-		}
-
-		//
-		// Rule 359:  iteration_statement ::= upc_forall ( ; ; ; ) statement
-		//
-		case 359: {
-			action.consumeStatementUPCForallLoop(false, false, false, false);
-			break;
-		}
-
-		//
-		// Rule 360:  iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement
-		//
-		case 360: {
-			action.consumeStatementUPCForallLoop(true, true, true, true);
-			break;
-		}
-
-		//
-		// Rule 361:  iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement
-		//
-		case 361: {
-			action.consumeStatementUPCForallLoop(true, true, true, false);
-			break;
-		}
-
-		//
-		// Rule 362:  iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement
-		//
-		case 362: {
-			action.consumeStatementUPCForallLoop(true, true, false, true);
-			break;
-		}
-
-		//
-		// Rule 363:  iteration_statement ::= upc_forall ( declaration expression ; ; ) statement
-		//
-		case 363: {
-			action.consumeStatementUPCForallLoop(true, true, false, false);
-			break;
-		}
-
-		//
-		// Rule 364:  iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement
-		//
-		case 364: {
-			action.consumeStatementUPCForallLoop(true, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 365:  iteration_statement ::= upc_forall ( declaration ; expression ; ) statement
-		//
-		case 365: {
-			action.consumeStatementUPCForallLoop(true, false, true, false);
-			break;
-		}
-
-		//
-		// Rule 366:  iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement
-		//
-		case 366: {
-			action.consumeStatementUPCForallLoop(true, false, false, true);
-			break;
-		}
-
-		//
-		// Rule 367:  iteration_statement ::= upc_forall ( declaration ; ; ) statement
-		//
-		case 367: {
-			action.consumeStatementUPCForallLoop(true, false, false, false);
-			break;
-		}
-
-		//
-		// Rule 369:  affinity ::= continue
-		//
-		case 369: {
-			action.consumeToken();
-			break;
-		}
-
-		default:
-			break;
-		}
-		return;
-	}
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParserprs.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParserprs.java
deleted file mode 100644
index cf182b9..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParserprs.java
+++ /dev/null
@@ -1,764 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2011 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.parser.upc;
-
-public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UPCExpressionParsersym {
-
-	public interface IsKeyword {
-		public final static byte isKeyword[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static byte isKeyword[] = IsKeyword.isKeyword;
-
-	public final boolean isKeyword(int index) {
-		return isKeyword[index] != 0;
-	}
-
-	public interface BaseCheck {
-		public final static short baseCheck[] = { 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 4,
-				4, 3, 3, 2, 2, 4, 1, 0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 1, 4, 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 3, 3,
-				3, 3, 1, 3, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 2, 1, 0, 1,
-				3, 1, 1, 1, 1, 1, 1, 1, 1, 3, 4, 3, 2, 4, 1, 2, 1, 1, 1, 2, 5, 7, 5, 1, 0, 7, 2, 5, 9, 8, 3, 2, 2, 2, 3,
-				2, 4, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 3, 1, 3, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6, 8, 0, 0, 1, 1, 3, 3, 3, 0, 1, 0, 1, 2, 4, 2, 1,
-				1, 1, 3, 1, 1, 2, 3, 7, 8, 0, 1, 0, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 3, 1, 2, 2, 1, 5, 3,
-				1, 3, 5, 1, 3, 1, 3, 2, 4, 3, 5, 4, 6, 6, 3, 5, 1, 3, 4, 5, 6, 0, 1, 2, 1, 3, 1, 1, 3, 2, 1, 1, 1, 1, 2,
-				1, 2, 3, 1, 1, 1, 3, 1, 2, 2, 2, 3, 4, 5, 1, 1, 7, 3, 0, 0, 1, 1, 3, 3, 4, 1, 1, 2, 3, 2, 3, 2, 1, 0, 1,
-				2, 1, 1, 1, 1, 1, 2, 1, 3, 6, 4, 2, 4, 1, 1, 1, 1, 1, 2, 4, 2, 4, 2, 4, 1, 1, 2, 1, 1, 1, 3, 3, 2, 1, 3,
-				2, 3, 2, 3, 2, 2, 11, 10, 10, 9, 10, 9, 9, 8, 10, 9, 9, 8, 9, 8, 8, 7, 10, 9, 9, 8, 9, 8, 8, 7, 1, 1,
-				-43, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -132, 0, 0, 0, 0, 0, -81, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -62, 0, 0, 0, 0, 0, 0, 0, 0, 0, -40, 0, 0, 0, 0, 0, 0, 0, 0, -175, 0, -153, 0,
-				-120, 0, 0, 0, 0, -88, 0, -90, 0, -4, 0, -17, 0, 0, 0, 0, 0, 0, 0, -157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -224, -44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -207, 0, -19, -193, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -148, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -82,
-				-20, 0, -145, 0, 0, 0, 0, 0, 0, 0, 0, -115, -116, -85, 0, 0, 0, 0, -21, 0, 0, 0, 0, -117, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -22, 0, -141, 0, 0, 0, 0, 0,
-				0, 0, 0, -208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -49, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -80, 0, -45, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -124, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -131, 0, 0, 0, 0, 0, 0, 0, 0, 0, -199, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -133, 0, 0, -9, 0, 0, 0, 0, 0, 0, 0, -23, 0, 0, 0, 0, 0, -125, -144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -30, 0, 0, 0, 0, 0, 0, 0, 0, 0, -41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -63,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -64, 0, 0, 0, 0, 0, 0, 0, 0, 0, -74, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -66, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -68, 0, 0, 0, 0, 0, 0, 0, 0, 0, -76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -69, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -70, 0, 0, 0, 0, 0, 0, 0, 0, 0, -77, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -72, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-137, 0, 0, 0, 0, 0, 0, 0, 0, 0, -79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -161, 0, 0, 0, 0, 0, 0, 0, 0, 0, -24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -196,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -226, 0, 0, 0, 0, 0, 0, 0, 0, 0, -205, 0, 0, 0, 0, 0, 0, 0, 0, 0, -25, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -134, 0, -211, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -217, 0, 0, 0, 0, 0, 0, 0, 0, 0, -26, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-10, 0, 0, 0, 0, 0, 0, 0, 0, -11, 0, 0, 0, 0, 0, 0, 0, -27, -225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -61, 0, 0, 0, 0, 0, 0, 0, 0, 0, -28, 0, 0, 0, 0, 0, 0, 0, -97, 0, -12, 0, 0, 0, 0, 0,
-				0, 0, 0, -50, 0, 0, 0, 0, 0, 0, 0, 0, 0, -95, 0, 0, 0, 0, 0, -174, -118, -86, -147, -29, -36, 0, -98, 0,
-				0, 0, 0, -99, 0, -59, 0, 0, 0, 0, 0, 0, 0, 0, 0, -100, 0, 0, 0, 0, 0, 0, 0, 0, 0, -212, 0, 0, 0, 0, 0,
-				-164, 0, 0, 0, 0, 0, 0, 0, 0, -92, 0, -101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, -119, -135, 0,
-				0, -13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -202, 0, 0, 0, 0, 0, 0, -183, -37, 0, 0, 0, 0,
-				0, 0, -58, 0, 0, 0, 0, 0, 0, 0, 0, 0, -139, 0, 0, 0, 0, 0, 0, -102, -206, 0, 0, 0, 0, -103, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -89, -146, 0, 0, 0, 0, -55, 0, 0, 0, 0, 0, 0, 0, 0, 0, -104, 0, 0, 0,
-				-136, 0, 0, 0, 0, 0, 0, 0, -197, 0, 0, -195, 0, -158, -105, 0, 0, 0, 0, 0, -56, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -51, 0, 0, 0, 0, 0, 0, 0, 0, 0, -87, 0, -52, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -186, 0, -14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -127, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -93, -91, -210, 0, 0, -106, 0, 0, -54, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -219, -130, -169, -182, -154, -84, 0, 0, 0, 0, 0, 0, -94, 0, 0, 0, 0, -189, 0, 0, 0, 0, 0, 0, 0,
-				-107, 0, -7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -96, 0, 0, 0, 0, 0, -143, 0, 0, 0, 0,
-				0, -152, 0, 0, 0, 0, 0, 0, 0, 0, -42, -156, 0, 0, 0, 0, -151, 0, -108, -165, 0, 0, 0, 0, 0, 0, 0, 0,
-				-163, 0, 0, 0, 0, 0, 0, 0, -109, -110, 0, 0, -46, 0, 0, 0, 0, 0, 0, 0, 0, -111, 0, -47, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -48, 0, 0, 0, 0, 0, 0, 0, 0, -129, -168, -187, -159, -162, -39, -138, -181, -173, 0,
-				0, 0, 0, 0, -112, 0, -113, 0, -8, 0, 0, 0, 0, 0, 0, -114, 0, 0, 0, 0, 0, -121, -123, 0, 0, 0, 0, 0, -15,
-				0, 0, 0, 0, 0, 0, -16, 0, 0, 0, 0, 0, 0, 0, -18, 0, 0, 0, -140, 0, -60, 0, 0, 0, 0, -31, 0, -185, 0,
-				-38, 0, -149, -167, 0, -172, 0, -32, -166, -220, 0, 0, 0, 0, -155, 0, 0, 0, 0, 0, -33, -170, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -34, 0, 0, 0, 0, -122, 0, 0, 0, 0, 0, -35, 0, 0, -200, -190, 0, 0, -203, -171, 0, 0, 0,
-				0, 0, -126, 0, 0, 0, 0, -176, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 0, 0, -184, 0, -192, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -178, -201, -179, -150, -216, 0, -188, 0, 0, -204, 0, 0, -180, 0, -213,
-				-177, 0, -191, -215, -221, 0, -209, 0, -214, 0, 0, -198, 0, 0, -194, 0, -222, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -218, 0, 0, 0, -223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static short baseCheck[] = BaseCheck.baseCheck;
-
-	@Override
-	public final int baseCheck(int index) {
-		return baseCheck[index];
-	}
-
-	public final static short rhs[] = baseCheck;
-
-	@Override
-	public final int rhs(int index) {
-		return rhs[index];
-	}
-
-	public interface BaseAction {
-		public final static char baseAction[] = { 89, 10, 105, 22, 22, 21, 21, 46, 46, 72, 72, 1, 1, 2, 2, 2, 2, 3, 3,
-				3, 4, 5, 5, 5, 5, 5, 5, 5, 5, 62, 62, 73, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9,
-				11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 20,
-				20, 20, 20, 20, 20, 20, 20, 20, 20, 106, 31, 28, 90, 90, 74, 74, 48, 107, 107, 107, 107, 107, 107, 107,
-				108, 108, 108, 109, 109, 114, 114, 115, 115, 110, 110, 111, 111, 111, 117, 117, 112, 112, 112, 112, 112,
-				113, 113, 113, 113, 113, 116, 116, 27, 27, 27, 27, 27, 35, 35, 35, 80, 80, 75, 75, 75, 75, 76, 76, 76,
-				77, 77, 77, 78, 78, 78, 79, 79, 79, 118, 118, 119, 119, 120, 36, 38, 38, 38, 38, 38, 56, 57, 57, 57, 57,
-				57, 57, 57, 57, 57, 57, 57, 57, 66, 63, 63, 91, 92, 68, 68, 64, 64, 64, 69, 81, 81, 82, 82, 70, 70, 70,
-				33, 93, 93, 83, 84, 84, 84, 65, 65, 94, 85, 85, 86, 86, 71, 71, 23, 24, 24, 24, 37, 53, 53, 39, 39, 39,
-				39, 42, 42, 44, 40, 40, 41, 45, 45, 121, 121, 43, 122, 122, 95, 95, 29, 29, 29, 29, 29, 29, 29, 29, 29,
-				87, 54, 54, 54, 54, 30, 59, 59, 58, 58, 58, 60, 60, 55, 55, 96, 96, 47, 47, 61, 61, 61, 49, 49, 49, 50,
-				51, 51, 51, 52, 52, 52, 52, 67, 67, 32, 32, 34, 98, 97, 97, 97, 97, 88, 99, 100, 100, 101, 101, 102,
-				102, 123, 123, 124, 124, 125, 125, 125, 125, 127, 127, 126, 126, 126, 128, 129, 129, 89, 89, 2, 2, 2, 6,
-				6, 6, 6, 6, 6, 23, 23, 25, 25, 26, 26, 103, 103, 103, 107, 130, 130, 130, 130, 130, 130, 130, 112, 112,
-				112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
-				112, 131, 131, 1, 1263, 17, 21, 18, 443, 1260, 45, 524, 486, 295, 578, 542, 1064, 730, 1163, 1105, 1221,
-				1190, 75, 92, 76, 430, 136, 214, 327, 328, 525, 20, 17, 21, 18, 443, 43, 44, 138, 135, 137, 161, 618,
-				20, 17, 21, 18, 443, 43, 45, 524, 486, 838, 578, 542, 1064, 730, 1163, 1695, 140, 167, 551, 28, 123,
-				1701, 6, 144, 147, 150, 153, 277, 439, 39, 397, 40, 1676, 65, 441, 1473, 1397, 1524, 1553, 1587, 1229,
-				556, 20, 17, 21, 18, 443, 1260, 45, 524, 486, 428, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 75, 282,
-				232, 618, 20, 17, 21, 18, 443, 43, 45, 1268, 1747, 283, 132, 1701, 66, 347, 20, 17, 21, 18, 443, 1260,
-				45, 524, 486, 428, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 75, 282, 225, 180, 492, 219, 1617, 222,
-				1746, 224, 225, 230, 288, 283, 657, 1701, 1759, 32, 59, 1875, 830, 1862, 1425, 294, 391, 136, 214, 327,
-				328, 133, 768, 151, 88, 289, 329, 316, 64, 138, 135, 137, 161, 799, 1256, 256, 214, 327, 328, 1702, 290,
-				200, 201, 649, 20, 17, 21, 18, 443, 325, 140, 167, 276, 28, 28, 1701, 1701, 144, 147, 150, 153, 291,
-				439, 1774, 142, 28, 32, 1701, 284, 1473, 1397, 1524, 1553, 1587, 1229, 587, 20, 17, 21, 18, 443, 1260,
-				45, 524, 486, 380, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 75, 282, 1673, 618, 20, 17, 21, 18, 443,
-				43, 45, 524, 486, 283, 1307, 1701, 281, 20, 17, 21, 18, 443, 1260, 45, 524, 486, 1794, 578, 542, 1064,
-				730, 1163, 1105, 1221, 1190, 75, 736, 235, 240, 618, 20, 17, 21, 18, 443, 43, 45, 1280, 292, 618, 20,
-				17, 21, 18, 443, 1260, 45, 524, 486, 22, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 75, 92, 804, 20,
-				17, 21, 18, 443, 1260, 45, 524, 486, 1806, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 75, 1593, 461,
-				20, 17, 21, 18, 443, 43, 45, 524, 486, 982, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 94, 243, 188,
-				335, 618, 20, 17, 21, 18, 443, 43, 40, 53, 441, 256, 214, 327, 328, 235, 314, 20, 17, 21, 18, 443, 1260,
-				45, 524, 486, 1614, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 75, 1674, 242, 241, 618, 20, 17, 21,
-				18, 443, 1260, 45, 524, 486, 838, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 75, 93, 618, 20, 17, 21,
-				18, 443, 1260, 45, 524, 486, 19, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 75, 86, 618, 20, 17, 21,
-				18, 443, 1260, 45, 524, 486, 838, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 75, 85, 618, 20, 17, 21,
-				18, 443, 1260, 45, 524, 486, 535, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 75, 84, 618, 20, 17, 21,
-				18, 443, 1260, 45, 524, 486, 838, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 75, 83, 618, 20, 17, 21,
-				18, 443, 1260, 45, 524, 486, 536, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 75, 82, 618, 20, 17, 21,
-				18, 443, 1260, 45, 524, 486, 838, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 75, 81, 618, 20, 17, 21,
-				18, 443, 1260, 45, 524, 486, 547, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 75, 80, 618, 20, 17, 21,
-				18, 443, 1260, 45, 524, 486, 838, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 75, 79, 618, 20, 17, 21,
-				18, 443, 1260, 45, 524, 486, 1257, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 75, 78, 618, 20, 17, 21,
-				18, 443, 1260, 45, 524, 486, 838, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 75, 77, 618, 20, 17, 21,
-				18, 443, 1260, 45, 524, 486, 1322, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 75, 76, 618, 20, 17, 21,
-				18, 443, 1260, 45, 524, 486, 838, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 75, 74, 618, 20, 17, 21,
-				18, 443, 1260, 45, 524, 486, 23, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 75, 1833, 618, 20, 17, 21,
-				18, 443, 1260, 45, 524, 486, 171, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 75, 1835, 618, 20, 17,
-				21, 18, 443, 43, 45, 524, 486, 736, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 94, 618, 20, 17, 21,
-				18, 443, 43, 45, 524, 486, 333, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 94, 1727, 680, 20, 17, 21,
-				18, 443, 323, 1854, 220, 1617, 222, 1746, 224, 225, 230, 243, 187, 618, 20, 17, 21, 18, 443, 43, 45,
-				524, 486, 213, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 94, 618, 20, 17, 21, 18, 443, 43, 45, 524,
-				486, 613, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 94, 618, 20, 17, 21, 18, 443, 43, 39, 1864, 618,
-				20, 17, 21, 18, 443, 43, 38, 176, 618, 20, 17, 21, 18, 443, 43, 45, 524, 486, 203, 578, 542, 1064, 730,
-				1163, 1105, 1221, 1190, 94, 618, 20, 17, 21, 18, 443, 43, 45, 524, 486, 238, 578, 542, 1064, 730, 1163,
-				1105, 1686, 225, 180, 618, 20, 17, 21, 18, 443, 43, 37, 204, 618, 20, 17, 21, 18, 443, 43, 45, 524, 486,
-				380, 1375, 136, 214, 327, 328, 654, 854, 385, 1019, 885, 243, 31, 835, 139, 135, 137, 161, 81, 1741,
-				618, 20, 17, 21, 18, 443, 43, 45, 524, 486, 115, 578, 542, 1064, 1647, 141, 167, 277, 275, 28, 1002,
-				1701, 145, 148, 151, 154, 979, 439, 219, 1617, 222, 1746, 224, 225, 230, 325, 1677, 341, 268, 1258, 537,
-				273, 264, 256, 214, 327, 328, 278, 1814, 1417, 265, 838, 886, 188, 1752, 275, 618, 20, 17, 21, 18, 443,
-				43, 36, 25, 219, 1617, 222, 1746, 224, 225, 230, 274, 232, 1323, 268, 1258, 537, 273, 1845, 1030, 243,
-				31, 1747, 28, 262, 1701, 1321, 618, 20, 17, 21, 18, 443, 43, 45, 524, 486, 6, 578, 542, 1064, 730, 1635,
-				719, 400, 243, 1784, 451, 275, 1727, 480, 219, 1617, 222, 1746, 224, 225, 230, 220, 1617, 222, 1746,
-				224, 225, 230, 1875, 864, 838, 270, 1258, 537, 273, 618, 20, 17, 21, 18, 443, 43, 45, 524, 486, 511,
-				578, 542, 1566, 243, 189, 280, 136, 214, 327, 328, 24, 583, 199, 201, 243, 297, 32, 80, 146, 135, 137,
-				161, 1837, 618, 20, 17, 21, 18, 443, 43, 45, 524, 486, 211, 578, 1616, 618, 20, 17, 21, 18, 443, 43, 45,
-				524, 486, 1799, 578, 1634, 618, 20, 17, 21, 18, 443, 43, 45, 524, 486, 378, 1381, 618, 20, 17, 21, 18,
-				443, 43, 45, 524, 486, 632, 1413, 618, 20, 17, 21, 18, 443, 43, 35, 1343, 136, 214, 327, 328, 430, 20,
-				17, 21, 18, 443, 43, 36, 143, 135, 137, 161, 618, 20, 17, 21, 18, 443, 43, 45, 524, 1431, 247, 358, 881,
-				243, 299, 295, 249, 142, 167, 618, 20, 17, 21, 18, 443, 43, 45, 524, 1528, 674, 883, 838, 883, 6, 848,
-				136, 214, 327, 328, 1747, 1836, 909, 1783, 1788, 1670, 196, 661, 149, 135, 137, 161, 279, 281, 232, 193,
-				278, 711, 20, 17, 21, 18, 443, 321, 275, 136, 214, 327, 328, 219, 1617, 222, 1746, 224, 225, 230, 926,
-				152, 135, 137, 161, 1131, 235, 1845, 268, 1258, 537, 273, 430, 20, 17, 21, 18, 443, 43, 36, 1321, 880,
-				6, 136, 214, 327, 328, 235, 244, 70, 599, 523, 1678, 1842, 334, 155, 135, 137, 161, 430, 20, 17, 21, 18,
-				443, 43, 36, 120, 706, 333, 275, 618, 20, 17, 21, 18, 443, 43, 48, 229, 200, 248, 618, 20, 17, 21, 18,
-				443, 43, 47, 268, 1258, 537, 273, 618, 20, 17, 21, 18, 443, 43, 46, 267, 924, 601, 113, 974, 235, 6,
-				518, 924, 441, 1784, 508, 508, 508, 1848, 20, 657, 487, 508, 742, 20, 17, 21, 18, 443, 41, 550, 243,
-				1259, 1259, 198, 1702, 912, 175, 88, 1259, 1485, 645, 1702, 773, 20, 17, 21, 18, 443, 34, 773, 20, 17,
-				21, 18, 443, 33, 285, 6, 1774, 260, 261, 391, 1398, 6, 1740, 1350, 260, 370, 6, 1398, 518, 1740, 340,
-				657, 486, 32, 194, 6, 370, 6, 386, 32, 657, 210, 198, 88, 930, 1839, 770, 370, 1608, 88, 6, 957, 1684,
-				198, 88, 1558, 1850, 770, 90, 1608, 370, 6, 419, 1702, 198, 88, 925, 228, 770, 1702, 1608, 370, 6, 812,
-				181, 247, 716, 198, 88, 661, 57, 770, 370, 1608, 854, 508, 382, 1350, 198, 88, 508, 978, 770, 1085,
-				1608, 275, 1727, 896, 382, 198, 88, 1859, 1259, 770, 6, 1608, 518, 198, 938, 255, 214, 327, 328, 1485,
-				1834, 270, 1258, 537, 273, 980, 1022, 255, 214, 327, 328, 235, 169, 235, 539, 1006, 260, 441, 1784,
-				1847, 518, 1740, 508, 838, 508, 838, 382, 1852, 723, 518, 518, 526, 235, 245, 192, 246, 193, 382, 484,
-				198, 747, 1259, 235, 526, 226, 1485, 231, 1736, 1672, 255, 214, 327, 328, 449, 296, 235, 1856, 373,
-				1940, 737, 255, 214, 327, 328, 298, 1940, 205, 1940, 1940, 260, 1940, 1033, 1543, 1940, 1740, 182, 206,
-				1940, 1940, 1940, 1940, 1940, 193, 1940, 1940, 709, 1940, 195, 210, 1940, 1940, 1940, 1940, 1851, 1672,
-				1940, 1290, 1940, 1940, 1940, 1940, 1940, 1787, 1850, 1940, 0, 330, 699, 0, 20, 180, 0, 1, 2167, 0, 1,
-				2178, 0 };
-	}
-
-	public final static char baseAction[] = BaseAction.baseAction;
-
-	@Override
-	public final int baseAction(int index) {
-		return baseAction[index];
-	}
-
-	public final static char lhs[] = baseAction;
-
-	@Override
-	public final int lhs(int index) {
-		return lhs[index];
-	}
-
-	public interface TermCheck {
-		public final static byte termCheck[] = { 0, 0, 1, 2, 3, 4, 0, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 0,
-				20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 0, 32, 33, 34, 35, 36, 37, 0, 0, 40, 41, 42, 43, 44, 45, 46,
-				47, 48, 49, 50, 51, 0, 53, 54, 55, 0, 1, 0, 3, 8, 5, 4, 0, 0, 0, 2, 11, 12, 0, 14, 6, 7, 9, 10, 0, 1,
-				38, 3, 0, 0, 25, 26, 27, 4, 6, 7, 68, 32, 33, 34, 35, 36, 37, 19, 31, 40, 41, 42, 43, 44, 45, 46, 47,
-				48, 49, 50, 51, 52, 53, 54, 55, 0, 1, 0, 3, 60, 5, 4, 0, 62, 63, 0, 11, 12, 61, 14, 64, 65, 66, 67, 0,
-				0, 64, 65, 66, 67, 25, 26, 27, 76, 0, 62, 63, 32, 33, 34, 35, 36, 37, 0, 19, 40, 41, 42, 43, 44, 45, 46,
-				47, 48, 49, 50, 51, 52, 53, 54, 55, 0, 1, 0, 3, 60, 5, 0, 0, 62, 63, 4, 11, 12, 31, 14, 64, 65, 66, 67,
-				0, 1, 0, 3, 0, 0, 25, 26, 27, 5, 56, 57, 0, 32, 33, 34, 35, 36, 37, 19, 8, 40, 41, 42, 43, 44, 45, 46,
-				47, 48, 49, 50, 51, 52, 53, 54, 55, 0, 1, 0, 3, 60, 38, 39, 0, 1, 2, 0, 11, 12, 0, 14, 5, 70, 71, 0, 1,
-				0, 3, 0, 1, 0, 25, 26, 27, 77, 78, 6, 7, 32, 33, 34, 35, 36, 37, 70, 71, 40, 41, 42, 43, 44, 45, 46, 47,
-				48, 49, 50, 51, 0, 53, 54, 55, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, 58, 13, 0, 15, 16, 17, 18, 68, 20,
-				21, 22, 23, 24, 59, 0, 31, 28, 29, 30, 74, 32, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, 1, 13, 3, 15, 16,
-				17, 18, 0, 20, 21, 22, 23, 24, 58, 0, 0, 28, 29, 30, 5, 32, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, 1, 13,
-				3, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 58, 0, 1, 28, 29, 30, 0, 39, 0, 1, 0, 3, 89, 0, 0, 2, 2, 11,
-				12, 0, 14, 11, 12, 4, 14, 56, 57, 52, 0, 0, 0, 25, 26, 27, 73, 25, 26, 27, 32, 33, 34, 35, 36, 37, 31,
-				31, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, 1, 13, 3, 15,
-				16, 17, 18, 0, 20, 21, 22, 23, 24, 0, 56, 57, 28, 29, 30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, 1, 13, 3,
-				15, 16, 17, 18, 0, 20, 21, 22, 23, 24, 0, 0, 58, 28, 29, 30, 0, 1, 2, 3, 4, 0, 6, 7, 8, 9, 10, 0, 0, 13,
-				0, 15, 16, 17, 18, 0, 20, 21, 22, 23, 24, 68, 0, 58, 28, 29, 30, 5, 38, 0, 1, 2, 3, 4, 0, 6, 7, 8, 9,
-				10, 56, 57, 13, 0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 60, 28, 29, 30, 0, 1, 2, 3, 4, 74, 6,
-				7, 8, 9, 10, 56, 57, 13, 52, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 31, 0, 28, 29, 30, 0, 1, 2, 3,
-				4, 0, 6, 7, 8, 9, 10, 59, 0, 13, 0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 61, 0, 31, 28, 29, 30, 0, 1,
-				2, 3, 4, 73, 6, 7, 8, 9, 10, 0, 31, 13, 0, 15, 16, 17, 18, 5, 20, 21, 22, 23, 24, 0, 61, 0, 28, 29, 30,
-				0, 1, 2, 3, 4, 0, 6, 7, 8, 9, 10, 59, 0, 13, 0, 15, 16, 17, 18, 0, 20, 21, 22, 23, 24, 0, 1, 2, 28, 29,
-				30, 0, 1, 2, 3, 4, 72, 6, 7, 8, 9, 10, 0, 38, 13, 0, 15, 16, 17, 18, 38, 20, 21, 22, 23, 24, 0, 0, 75,
-				28, 29, 30, 0, 1, 2, 3, 4, 0, 6, 7, 8, 9, 10, 0, 0, 13, 0, 15, 16, 17, 18, 0, 20, 21, 22, 23, 24, 0, 1,
-				2, 28, 29, 30, 0, 1, 2, 3, 4, 0, 6, 7, 8, 9, 10, 0, 0, 13, 0, 15, 16, 17, 18, 38, 20, 21, 22, 23, 24, 0,
-				0, 0, 28, 29, 30, 0, 1, 2, 3, 4, 72, 6, 7, 8, 9, 10, 0, 69, 13, 19, 15, 16, 17, 18, 0, 20, 21, 22, 23,
-				24, 0, 0, 0, 28, 29, 30, 0, 1, 2, 3, 4, 0, 6, 7, 8, 9, 10, 0, 69, 13, 19, 15, 16, 17, 18, 0, 20, 21, 22,
-				23, 24, 0, 0, 0, 28, 29, 30, 0, 0, 2, 0, 4, 5, 11, 12, 5, 14, 0, 11, 12, 0, 14, 2, 0, 0, 5, 0, 25, 26,
-				27, 0, 0, 25, 26, 27, 5, 0, 0, 31, 32, 33, 34, 35, 36, 37, 19, 39, 11, 12, 39, 14, 31, 0, 0, 2, 0, 4, 0,
-				0, 39, 5, 25, 26, 27, 11, 12, 0, 14, 32, 33, 34, 35, 36, 37, 0, 0, 0, 19, 25, 26, 27, 0, 52, 31, 0, 32,
-				33, 34, 35, 36, 37, 0, 11, 12, 39, 14, 0, 0, 0, 2, 4, 4, 0, 19, 0, 0, 25, 26, 27, 11, 12, 0, 14, 32, 33,
-				34, 35, 36, 37, 0, 0, 19, 0, 25, 26, 27, 69, 0, 31, 0, 32, 33, 34, 35, 36, 37, 79, 80, 81, 82, 83, 84,
-				85, 86, 87, 88, 0, 0, 19, 0, 0, 0, 1, 2, 0, 59, 5, 11, 12, 0, 14, 11, 12, 0, 14, 11, 12, 0, 14, 0, 0,
-				25, 26, 27, 0, 25, 26, 27, 0, 25, 26, 27, 31, 5, 0, 11, 12, 0, 14, 19, 39, 0, 1, 2, 0, 4, 0, 0, 0, 25,
-				26, 27, 0, 1, 2, 0, 4, 0, 0, 0, 0, 0, 0, 19, 0, 19, 38, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static byte termCheck[] = TermCheck.termCheck;
-
-	@Override
-	public final int termCheck(int index) {
-		return termCheck[index];
-	}
-
-	public interface TermAction {
-		public final static char termAction[] = { 0, 1940, 1951, 1723, 1952, 1326, 1, 1231, 1182, 1487, 1715, 1708,
-				2155, 2156, 1688, 2157, 1953, 1954, 1955, 1956, 1940, 1173, 722, 2258, 2259, 2260, 2271, 437, 2272,
-				1568, 1116, 557, 254, 2104, 2105, 2103, 2158, 2106, 2102, 183, 89, 2109, 2114, 2113, 2111, 2112, 2110,
-				2115, 2116, 2108, 2117, 2118, 2119, 65, 1250, 1523, 1305, 1940, 1, 49, 1, 1403, 192, 1661, 60, 32, 52,
-				1738, 1, 1, 62, 1, 647, 473, 1966, 1967, 1940, 1951, 760, 1952, 54, 51, 1, 1, 1, 1661, 647, 473, 1012,
-				1, 1, 1, 1, 1, 1, 1545, 1675, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 192, 1, 1, 1, 1940, 1, 50, 1, 2137,
-				191, 1661, 61, 1649, 1638, 184, 1, 1, 1351, 1, 1475, 1463, 1240, 611, 287, 326, 1475, 1463, 1240, 611,
-				1, 1, 1, 1261, 55, 1649, 1638, 1, 1, 1, 1, 1, 1, 272, 3167, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 191, 1,
-				1, 1, 1940, 1, 63, 1, 2137, 192, 1940, 73, 1649, 1638, 580, 1, 1, 624, 1, 1475, 1463, 1240, 611, 1940,
-				1951, 1940, 1952, 1940, 64, 1, 1, 1, 1946, 1512, 1531, 66, 1, 1, 1, 1, 1, 1, 1609, 1403, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 192, 1, 1, 1, 1940, 1951, 1940, 1952, 2137, 1879, 1945, 1, 2167, 1541, 1940, 2155,
-				2156, 71, 2157, 1944, 1450, 1437, 1940, 1951, 1940, 1952, 1, 1937, 53, 2271, 437, 2272, 1211, 1729, 647,
-				473, 2104, 2105, 2103, 2158, 2106, 2102, 1450, 1437, 2109, 2114, 2113, 2111, 2112, 2110, 2115, 2116,
-				2108, 2117, 2118, 2119, 330, 1250, 1523, 1305, 1, 1951, 1723, 1952, 1500, 1944, 1231, 1182, 1487, 1715,
-				1708, 1940, 1943, 1688, 1940, 1953, 1954, 1955, 1956, 1153, 1173, 722, 2258, 2259, 2260, 2199, 1940,
-				1928, 1568, 1116, 557, 409, 678, 1940, 1951, 1723, 1952, 1626, 1944, 1231, 1182, 1487, 1715, 1708, 186,
-				3307, 1688, 3307, 1953, 1954, 1955, 1956, 69, 1173, 722, 2258, 2259, 2260, 1943, 1, 59, 1568, 1116, 557,
-				91, 1054, 1, 1951, 1723, 1952, 1326, 29, 1231, 1182, 1487, 1715, 1708, 185, 3331, 1688, 3331, 1953,
-				1954, 1955, 1956, 3167, 1173, 722, 2258, 2259, 2260, 1943, 1940, 2179, 1568, 1116, 557, 130, 91, 207,
-				3333, 1940, 3333, 1927, 271, 223, 1542, 1544, 2155, 2156, 1940, 2157, 2155, 2156, 1430, 2157, 1512,
-				1531, 29, 58, 1940, 1940, 2271, 437, 2272, 1358, 2271, 437, 2272, 2104, 2105, 2103, 2158, 2106, 2102,
-				624, 624, 2109, 2114, 2113, 2111, 2112, 2110, 2115, 2116, 2108, 2117, 2118, 2119, 1940, 1951, 1723,
-				1952, 1326, 1944, 1231, 1182, 1487, 1715, 1708, 209, 1951, 1688, 1952, 1953, 1954, 1955, 1956, 202,
-				1173, 722, 2258, 2259, 2260, 1940, 1512, 1531, 1568, 1116, 557, 1940, 1951, 1723, 1952, 1599, 1944,
-				1231, 1182, 1487, 1715, 1708, 208, 1376, 1688, 1376, 1953, 1954, 1955, 1956, 57, 1173, 722, 2258, 2259,
-				2260, 257, 72, 1943, 1568, 1116, 557, 1940, 1, 1, 1, 1, 1940, 1, 1, 1, 1, 1, 1940, 1940, 1, 1940, 1, 1,
-				1, 1, 56, 1, 1, 1, 1, 1, 1191, 1940, 1943, 1, 1, 1, 1948, 1671, 1940, 1951, 1723, 1952, 1326, 1940,
-				1231, 1182, 1487, 1715, 1708, 1512, 1531, 1688, 1, 1953, 1954, 1955, 1956, 3167, 1173, 722, 2258, 2259,
-				2260, 70, 1940, 2257, 1568, 1116, 557, 1, 1951, 1723, 1952, 1326, 409, 1231, 1182, 1487, 1715, 1708,
-				1512, 1531, 1688, 1947, 1953, 1954, 1955, 1956, 3167, 1173, 722, 2258, 2259, 2260, 1940, 1075, 293,
-				1568, 1116, 557, 1940, 1951, 1723, 1952, 1326, 1940, 1231, 1182, 1487, 1715, 1708, 2199, 221, 1688, 1,
-				1953, 1954, 1955, 1956, 3167, 1173, 722, 2258, 2259, 2260, 1428, 67, 1133, 1568, 1116, 557, 1940, 1951,
-				1723, 1952, 1326, 1358, 1231, 1182, 1487, 1715, 1708, 1940, 624, 1688, 1, 1953, 1954, 1955, 1956, 1950,
-				1173, 722, 2258, 2259, 2260, 1940, 1525, 1940, 1568, 1116, 557, 1940, 1951, 1734, 1952, 1326, 30, 1231,
-				1182, 1487, 1715, 1708, 2198, 30, 1688, 1940, 1953, 1954, 1955, 1956, 1940, 1173, 722, 2258, 2259, 2260,
-				1, 2167, 1541, 1568, 1116, 557, 1940, 1951, 1745, 1952, 1326, 1270, 1231, 1182, 1487, 1715, 1708, 1940,
-				487, 1688, 1940, 1953, 1954, 1955, 1956, 1969, 1173, 722, 2258, 2259, 2260, 1940, 68, 1949, 1568, 1116,
-				557, 1940, 1951, 1758, 1952, 1326, 212, 1231, 1182, 1487, 1715, 1708, 1940, 208, 1688, 1940, 1953, 1954,
-				1955, 1956, 1940, 1173, 722, 2258, 2259, 2260, 254, 2167, 1541, 1568, 1116, 557, 1940, 1951, 1769, 1952,
-				1326, 1940, 1231, 1182, 1487, 1715, 1708, 1940, 1940, 1688, 1940, 1953, 1954, 1955, 1956, 2781, 1173,
-				722, 2258, 2259, 2260, 1940, 324, 1940, 1568, 1116, 557, 1940, 1951, 1780, 1952, 1326, 1270, 1231, 1182,
-				1487, 1715, 1708, 1940, 1095, 1688, 3167, 1953, 1954, 1955, 1956, 1940, 1173, 722, 2258, 2259, 2260,
-				1940, 322, 1940, 1568, 1116, 557, 1, 1951, 1723, 1952, 1326, 1940, 1231, 1182, 1487, 1715, 1708, 1940,
-				589, 1688, 3167, 1953, 1954, 1955, 1956, 1940, 1173, 722, 2258, 2259, 2260, 1940, 249, 1940, 1568, 1116,
-				557, 20, 1940, 1931, 1940, 1931, 1931, 2155, 2156, 1946, 2157, 1940, 180, 180, 1, 180, 1546, 1940, 1940,
-				1946, 42, 2271, 437, 2272, 286, 1940, 180, 180, 180, 432, 131, 1940, 1931, 180, 180, 180, 180, 180, 180,
-				3167, 1931, 2155, 2156, 1945, 2157, 624, 266, 132, 1546, 1, 1, 43, 1940, 1945, 1946, 2271, 437, 2272,
-				2155, 2156, 1940, 2157, 2104, 2105, 2103, 2158, 2106, 2102, 1940, 1940, 1940, 3167, 2271, 437, 2272,
-				133, 432, 624, 1940, 2104, 2105, 2103, 2158, 2106, 2102, 1940, 2155, 2156, 1945, 2157, 1, 269, 134,
-				1546, 254, 254, 1940, 1368, 1940, 1940, 2271, 437, 2272, 2155, 2156, 1940, 2157, 2104, 2105, 2103, 2158,
-				2106, 2102, 1940, 1940, 1743, 1940, 2271, 437, 2272, 991, 1940, 624, 1940, 2104, 2105, 2103, 2158, 2106,
-				2102, 970, 949, 928, 907, 886, 844, 865, 823, 802, 781, 250, 1940, 1812, 1940, 251, 1, 1934, 1296, 252,
-				2199, 1946, 1, 1, 1940, 1, 1, 1, 1940, 1, 2155, 2156, 1940, 2157, 1940, 190, 1, 1, 1, 253, 1, 1, 1,
-				1940, 2271, 437, 2272, 624, 1950, 1940, 2155, 2156, 1940, 2157, 186, 1945, 263, 2167, 1296, 190, 1, 190,
-				1940, 1940, 2271, 437, 2272, 269, 2167, 1296, 1940, 254, 1940, 1940, 1940, 1940, 1940, 1940, 185, 1940,
-				207, 472, 1940, 1940, 1940, 1940, 1940, 624, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
-				624, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
-				1940, 1940, 1940, 1949 };
-	}
-
-	public final static char termAction[] = TermAction.termAction;
-
-	@Override
-	public final int termAction(int index) {
-		return termAction[index];
-	}
-
-	public interface Asb {
-		public final static char asb[] = { 0, 133, 1, 206, 98, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206,
-				206, 60, 10, 80, 77, 84, 82, 90, 88, 92, 91, 94, 93, 66, 206, 10, 10, 10, 10, 10, 418, 418, 459, 206,
-				304, 304, 339, 10, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206,
-				206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 304, 304, 304, 304, 304, 304, 102, 109,
-				343, 197, 385, 302, 301, 311, 3, 323, 129, 323, 129, 129, 323, 129, 323, 30, 255, 77, 77, 82, 82, 82,
-				82, 80, 80, 88, 84, 84, 91, 90, 490, 93, 92, 157, 157, 157, 157, 131, 382, 131, 339, 343, 200, 102, 53,
-				230, 304, 427, 388, 230, 129, 418, 418, 129, 418, 206, 382, 107, 343, 331, 53, 102, 229, 197, 304, 337,
-				30, 303, 390, 102, 230, 131, 352, 131, 421, 107, 331, 331, 206, 206, 102, 230, 385, 485, 484, 343, 390,
-				304, 131, 352, 421, 421, 423, 308, 331, 53, 102, 102, 304, 427, 388, 337, 352, 382, 345, 352, 421, 423,
-				492, 423, 382, 105, 495, 418, 206, 307, 53, 331, 390, 352, 347, 423, 382, 206, 418, 60, 109, 102, 418,
-				206, 331, 304, 303, 382, 193, 206, 192, 225, 343, 382, 102, 419, 347, 206, 225 };
-	}
-
-	public final static char asb[] = Asb.asb;
-
-	@Override
-	public final int asb(int index) {
-		return asb[index];
-	}
-
-	public interface Asr {
-		public final static byte asr[] = { 0, 89, 0, 5, 68, 38, 58, 39, 75, 31, 13, 15, 16, 17, 18, 2, 9, 10, 8, 4, 6,
-				7, 20, 21, 22, 23, 24, 28, 29, 30, 1, 3, 53, 54, 55, 48, 40, 45, 43, 44, 42, 41, 46, 47, 49, 50, 51, 37,
-				34, 32, 33, 36, 35, 11, 12, 14, 26, 25, 27, 0, 31, 2, 61, 76, 9, 10, 69, 79, 80, 81, 82, 83, 85, 84, 86,
-				87, 88, 4, 62, 63, 6, 7, 57, 56, 64, 65, 66, 67, 70, 71, 8, 72, 73, 74, 52, 75, 77, 78, 68, 39, 89, 38,
-				58, 5, 0, 5, 52, 31, 61, 9, 10, 8, 4, 6, 7, 20, 21, 13, 28, 29, 30, 2, 15, 16, 17, 18, 22, 23, 24, 1, 3,
-				19, 0, 13, 15, 16, 17, 18, 1, 3, 2, 9, 10, 8, 4, 6, 7, 20, 21, 22, 23, 24, 28, 29, 30, 60, 0, 8, 4, 6,
-				7, 62, 63, 56, 57, 64, 65, 66, 67, 70, 71, 72, 73, 74, 77, 78, 69, 79, 80, 81, 82, 83, 84, 85, 86, 87,
-				88, 58, 39, 52, 89, 19, 68, 75, 5, 38, 0, 58, 5, 32, 11, 12, 14, 25, 26, 27, 15, 16, 17, 18, 22, 23, 24,
-				3, 9, 10, 8, 6, 7, 20, 21, 13, 28, 29, 30, 4, 2, 1, 0, 32, 58, 5, 9, 10, 8, 4, 6, 7, 20, 21, 13, 28, 29,
-				30, 2, 1, 3, 15, 16, 17, 18, 22, 23, 24, 0, 12, 32, 37, 14, 36, 35, 34, 11, 33, 25, 26, 27, 61, 76, 9,
-				10, 8, 6, 7, 62, 63, 56, 57, 64, 65, 66, 67, 70, 71, 72, 73, 74, 77, 78, 69, 79, 80, 81, 82, 83, 84, 85,
-				86, 87, 88, 4, 2, 31, 38, 39, 5, 0, 69, 31, 61, 0, 48, 40, 45, 43, 44, 42, 41, 46, 47, 49, 50, 51, 68,
-				75, 37, 34, 32, 33, 36, 35, 11, 12, 14, 25, 26, 27, 38, 1, 5, 39, 2, 31, 4, 0, 75, 5, 4, 1, 2, 68, 0,
-				33, 40, 11, 41, 53, 34, 42, 35, 43, 44, 36, 12, 45, 46, 32, 54, 37, 55, 47, 48, 14, 49, 50, 51, 1, 3,
-				25, 26, 27, 60, 5, 52, 0, 4, 2, 31, 39, 5, 33, 40, 11, 41, 53, 34, 42, 35, 43, 44, 36, 12, 45, 46, 32,
-				54, 37, 55, 47, 48, 14, 49, 50, 51, 25, 26, 27, 59, 3, 1, 0, 1, 3, 5, 52, 38, 0, 4, 33, 40, 11, 41, 53,
-				34, 42, 35, 43, 44, 36, 12, 45, 46, 32, 54, 37, 55, 47, 48, 14, 49, 50, 51, 1, 3, 25, 26, 27, 59, 0, 5,
-				39, 13, 15, 16, 17, 18, 1, 3, 2, 9, 10, 8, 4, 6, 7, 20, 21, 22, 23, 24, 28, 29, 30, 0, 2, 5, 38, 39, 75,
-				31, 68, 0, 5, 38, 52, 69, 0 };
-	}
-
-	public final static byte asr[] = Asr.asr;
-
-	@Override
-	public final int asr(int index) {
-		return asr[index];
-	}
-
-	public interface Nasb {
-		public final static byte nasb[] = { 0, 36, 35, 26, 35, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 35, 105,
-				35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 26, 105, 105, 105, 105, 105, 66, 66, 109, 106, 87, 87, 90,
-				1, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 106, 26, 26, 26, 26, 26, 26, 26, 26,
-				26, 26, 26, 26, 26, 87, 87, 87, 87, 87, 87, 48, 9, 39, 46, 89, 44, 44, 58, 17, 59, 19, 59, 62, 62, 59,
-				61, 59, 53, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 10, 10, 10, 10, 73,
-				35, 112, 35, 50, 48, 124, 47, 87, 94, 86, 47, 7, 7, 7, 7, 7, 26, 103, 73, 35, 79, 124, 48, 47, 42, 87,
-				69, 28, 35, 96, 48, 47, 15, 73, 35, 73, 24, 79, 73, 26, 26, 48, 47, 68, 44, 44, 39, 96, 87, 35, 120, 73,
-				7, 64, 13, 73, 124, 48, 48, 87, 94, 86, 75, 73, 103, 83, 99, 7, 64, 35, 35, 103, 23, 35, 7, 26, 81, 124,
-				42, 116, 120, 71, 64, 103, 26, 7, 21, 25, 48, 7, 26, 42, 87, 87, 103, 84, 26, 35, 71, 39, 103, 48, 35,
-				71, 26, 77 };
-	}
-
-	public final static byte nasb[] = Nasb.nasb;
-
-	@Override
-	public final int nasb(int index) {
-		return nasb[index];
-	}
-
-	public interface Nasr {
-		public final static char nasr[] = { 0, 80, 78, 77, 68, 76, 75, 1, 0, 5, 34, 32, 0, 100, 0, 92, 0, 103, 0, 91, 0,
-				98, 0, 88, 10, 34, 5, 0, 80, 79, 78, 77, 68, 76, 75, 0, 10, 89, 0, 30, 54, 0, 23, 0, 29, 0, 10, 5, 22,
-				0, 5, 10, 0, 68, 63, 64, 65, 66, 56, 35, 0, 94, 69, 0, 62, 0, 73, 0, 21, 51, 50, 42, 40, 10, 0, 51, 50,
-				42, 40, 30, 0, 102, 0, 10, 72, 0, 10, 21, 0, 21, 50, 51, 10, 0, 30, 54, 10, 27, 0, 10, 33, 70, 0, 46, 0,
-				33, 10, 31, 0, 10, 90, 0, 51, 50, 30, 0, 95, 10, 27, 0, 82, 10, 33, 0, 59, 0 };
-	}
-
-	public final static char nasr[] = Nasr.nasr;
-
-	@Override
-	public final int nasr(int index) {
-		return nasr[index];
-	}
-
-	public interface TerminalIndex {
-		public final static char terminalIndex[] = { 0, 85, 2, 86, 9, 87, 10, 11, 8, 6, 7, 48, 64, 68, 76, 81, 82, 83,
-				84, 3, 12, 13, 93, 94, 95, 96, 97, 98, 100, 101, 102, 1, 69, 44, 55, 60, 63, 72, 42, 90, 47, 52, 56, 61,
-				62, 66, 67, 74, 75, 78, 79, 80, 91, 54, 70, 73, 16, 17, 89, 30, 107, 4, 14, 15, 18, 19, 20, 21, 29, 31,
-				22, 23, 24, 25, 26, 92, 5, 27, 28, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 108, 45, 46, 49, 50, 51, 53,
-				57, 58, 59, 65, 71, 77, 88, 99, 103, 104, 105, 106 };
-	}
-
-	public final static char terminalIndex[] = TerminalIndex.terminalIndex;
-
-	@Override
-	public final int terminalIndex(int index) {
-		return terminalIndex[index];
-	}
-
-	public interface NonterminalIndex {
-		public final static char nonterminalIndex[] = { 0, 114, 0, 0, 0, 116, 120, 121, 122, 123, 0, 124, 125, 126, 127,
-				128, 129, 130, 131, 0, 132, 111, 110, 142, 0, 0, 0, 135, 0, 163, 0, 115, 119, 154, 0, 141, 0, 0, 0, 159,
-				161, 0, 162, 0, 0, 0, 112, 118, 134, 172, 173, 174, 0, 150, 160, 169, 144, 0, 164, 167, 168, 171, 0,
-				145, 146, 147, 148, 149, 151, 0, 153, 158, 113, 117, 133, 136, 137, 138, 139, 140, 143, 0, 152, 156, 0,
-				0, 157, 166, 176, 109, 0, 0, 0, 155, 0, 165, 170, 175, 0, 177, 178, 0, 179, 180, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
-
-	@Override
-	public final int nonterminalIndex(int index) {
-		return nonterminalIndex[index];
-	}
-
-	public interface ScopePrefix {
-		public final static char scopePrefix[] = { 120, 151, 130, 59, 69, 159, 26, 186, 35, 87, 105, 75, 6, 12, 16, 40,
-				83, 52, 141, 208, 215, 219, 52, 52, 195, 52, 1, 1, 1, 44, 47, 92, 115, 47, 223, 20, 145, 202, 202, 177,
-				137, 165, 165, 165, 165, 165, 95, 95, 95 };
-	}
-
-	public final static char scopePrefix[] = ScopePrefix.scopePrefix;
-
-	@Override
-	public final int scopePrefix(int index) {
-		return scopePrefix[index];
-	}
-
-	public interface ScopeSuffix {
-		public final static char scopeSuffix[] = { 128, 128, 128, 4, 4, 128, 32, 192, 10, 4, 10, 80, 10, 10, 10, 10, 4,
-				4, 139, 10, 10, 4, 56, 80, 199, 65, 4, 4, 4, 10, 50, 4, 10, 118, 10, 23, 148, 205, 212, 180, 139, 167,
-				169, 171, 173, 175, 102, 97, 110 };
-	}
-
-	public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
-
-	@Override
-	public final int scopeSuffix(int index) {
-		return scopeSuffix[index];
-	}
-
-	public interface ScopeLhs {
-		public final static char scopeLhs[] = { 65, 63, 65, 29, 29, 63, 32, 111, 52, 29, 45, 29, 6, 6, 6, 52, 29, 29,
-				70, 6, 5, 5, 29, 29, 19, 29, 103, 102, 101, 50, 61, 29, 42, 53, 3, 88, 70, 7, 5, 112, 70, 79, 78, 77,
-				76, 75, 45, 43, 45 };
-	}
-
-	public final static char scopeLhs[] = ScopeLhs.scopeLhs;
-
-	@Override
-	public final int scopeLhs(int index) {
-		return scopeLhs[index];
-	}
-
-	public interface ScopeLa {
-		public final static byte scopeLa[] = { 52, 52, 52, 58, 58, 52, 52, 95, 39, 58, 39, 15, 39, 39, 39, 39, 58, 58,
-				75, 39, 39, 58, 4, 15, 68, 32, 58, 58, 58, 39, 2, 58, 39, 1, 39, 69, 1, 39, 39, 101, 75, 1, 53, 54, 54,
-				48, 2, 2, 2 };
-	}
-
-	public final static byte scopeLa[] = ScopeLa.scopeLa;
-
-	@Override
-	public final int scopeLa(int index) {
-		return scopeLa[index];
-	}
-
-	public interface ScopeStateSet {
-		public final static byte scopeStateSet[] = { 29, 29, 29, 33, 33, 29, 19, -1, 37, 33, 9, 33, 44, 44, 44, 37, 33,
-				33, 5, 44, 44, 44, 33, 33, 78, 33, 17, 1, 3, 37, 39, 33, 9, 11, 44, 105, 5, 50, 44, -1, 5, 30, 30, 30,
-				30, 30, 9, 9, 9 };
-	}
-
-	public final static byte scopeStateSet[] = ScopeStateSet.scopeStateSet;
-
-	@Override
-	public final int scopeStateSet(int index) {
-		return scopeStateSet[index];
-	}
-
-	public interface ScopeRhs {
-		public final static char scopeRhs[] = { 0, 155, 31, 0, 110, 0, 154, 2, 30, 0, 111, 0, 154, 2, 29, 0, 154, 2, 28,
-				0, 206, 117, 0, 31, 149, 0, 169, 204, 117, 19, 141, 0, 112, 0, 0, 165, 117, 2, 157, 0, 165, 117, 2, 0,
-				168, 2, 0, 161, 117, 0, 172, 0, 194, 117, 31, 0, 9, 110, 0, 127, 32, 194, 117, 31, 0, 69, 132, 110, 0,
-				127, 194, 117, 32, 31, 0, 194, 117, 32, 31, 0, 132, 110, 0, 127, 32, 31, 0, 127, 194, 117, 31, 0, 127,
-				31, 0, 149, 0, 2, 0, 165, 111, 0, 2, 111, 0, 165, 117, 2, 149, 0, 2, 0, 164, 111, 0, 160, 2, 0, 159, 0,
-				169, 192, 117, 19, 108, 201, 53, 0, 112, 0, 169, 192, 117, 19, 201, 53, 0, 140, 0, 113, 0, 200, 117,
-				140, 0, 117, 140, 0, 155, 113, 0, 188, 117, 19, 199, 108, 198, 175, 0, 188, 117, 19, 198, 175, 0, 187,
-				0, 148, 0, 147, 0, 146, 0, 145, 0, 144, 0, 214, 94, 0, 77, 2, 115, 111, 113, 0, 214, 128, 138, 2, 98, 0,
-				53, 0, 0, 138, 78, 125, 0, 29, 132, 0, 154, 2, 0, 111, 121, 0, 154, 2, 13, 0, 111, 119, 0, 197, 2, 112,
-				0, 138, 31, 112, 0, 138, 2, 0 };
-	}
-
-	public final static char scopeRhs[] = ScopeRhs.scopeRhs;
-
-	@Override
-	public final int scopeRhs(int index) {
-		return scopeRhs[index];
-	}
-
-	public interface ScopeState {
-		public final static char scopeState[] = { 0, 1425, 0, 428, 0, 1834, 1672, 1788, 0, 1085, 1350, 472, 1541, 1343,
-				1296, 1259, 0, 437, 0, 589, 487, 451, 1322, 1257, 547, 536, 535, 397, 0, 1229, 508, 370, 0, 1746, 1617,
-				1258, 537, 1350, 1774, 1296, 1259, 1546, 1608, 0, 1715, 1708, 1688, 1568, 1116, 557, 1626, 1599, 1500,
-				397, 409, 1211, 1270, 1358, 1450, 1437, 1403, 1531, 1512, 1475, 1463, 1240, 611, 1661, 1649, 1638, 647,
-				473, 1487, 1326, 1231, 1182, 1173, 722, 1191, 1153, 1133, 589, 1095, 1075, 1054, 1033, 737, 1012, 699,
-				678, 624, 991, 970, 949, 928, 907, 886, 865, 844, 823, 802, 781, 370, 760, 657, 487, 451, 0 };
-	}
-
-	public final static char scopeState[] = ScopeState.scopeState;
-
-	@Override
-	public final int scopeState(int index) {
-		return scopeState[index];
-	}
-
-	public interface InSymb {
-		public final static char inSymb[] = { 0, 0, 196, 117, 181, 30, 29, 28, 13, 21, 20, 7, 6, 4, 8, 10, 9, 112, 2,
-				116, 115, 119, 118, 121, 120, 123, 122, 125, 124, 113, 38, 2, 2, 2, 2, 2, 76, 61, 2, 31, 154, 138, 140,
-				117, 7, 6, 63, 62, 4, 67, 66, 65, 64, 56, 57, 8, 71, 70, 73, 72, 78, 77, 74, 88, 87, 86, 84, 85, 83, 82,
-				81, 80, 79, 69, 154, 154, 154, 154, 154, 197, 138, 128, 117, 31, 2, 158, 157, 182, 26, 183, 175, 184,
-				55, 54, 185, 53, 186, 187, 108, 115, 115, 118, 118, 118, 118, 116, 116, 120, 119, 119, 122, 121, 138,
-				124, 123, 128, 128, 128, 128, 128, 19, 141, 161, 137, 32, 127, 117, 4, 168, 117, 2, 31, 198, 176, 176,
-				201, 176, 68, 117, 19, 137, 4, 117, 127, 194, 166, 165, 134, 117, 167, 117, 155, 4, 108, 19, 108, 19,
-				117, 4, 137, 194, 32, 127, 4, 2, 147, 149, 117, 38, 165, 199, 117, 19, 117, 204, 117, 137, 117, 127,
-				127, 160, 117, 2, 161, 19, 188, 140, 189, 117, 192, 108, 193, 169, 38, 206, 61, 31, 207, 117, 166, 117,
-				117, 117, 192, 169, 69, 38, 153, 69, 155, 61, 31, 166, 165, 202, 188, 200, 68, 160, 2, 117, 169, 155,
-				38, 38, 68, 161 };
-	}
-
-	public final static char inSymb[] = InSymb.inSymb;
-
-	@Override
-	public final int inSymb(int index) {
-		return inSymb[index];
-	}
-
-	public interface Name {
-		public final static String name[] = { "", "[", "(", "{", ".", "->", "++", "--", "&", "*", "+", "-", "~", "!",
-				"/", "%", ">>", "<<", "<", ">", "<=", ">=", "==", "!=", "^", "|", "&&", "||", "?", ":", "...", "=",
-				"*=", "/=", "%=", "+=", "-=", ">>=", "<<=", "&=", "^=", "|=", ",", "$empty", "auto", "break", "case",
-				"char", "const", "continue", "default", "do", "double", "else", "enum", "extern", "float", "for",
-				"goto", "if", "inline", "int", "long", "register", "restrict", "return", "short", "signed", "sizeof",
-				"static", "struct", "switch", "typedef", "union", "unsigned", "void", "volatile", "while", "_Bool",
-				"_Complex", "_Imaginary", "integer", "floating", "charconst", "stringlit", "identifier", "Completion",
-				"EndOfCompletion", "Invalid", "RightBracket", "RightParen", "RightBrace", "SemiColon", "MYTHREAD",
-				"THREADS", "UPC_MAX_BLOCKSIZE", "relaxed", "shared", "strict", "upc_barrier", "upc_localsizeof",
-				"upc_blocksizeof", "upc_elemsizeof", "upc_notify", "upc_fence", "upc_wait", "upc_forall", "ERROR_TOKEN",
-				"EOF_TOKEN", "expression_parser_start", "]", ")", "}", ";", "identifier_token", "expression",
-				"postfix_expression", "member_name", "type_id", "initializer_list", "unary_expression",
-				"cast_expression", "multiplicative_expression", "additive_expression", "shift_expression",
-				"relational_expression", "equality_expression", "and_expression", "exclusive_or_expression",
-				"inclusive_or_expression", "logical_and_expression", "logical_or_expression", "assignment_expression",
-				"expression_list_actual", "constant_expression", "declaration_specifiers",
-				"simple_declaration_specifiers", "struct_or_union_declaration_sp" + "ecifiers",
-				"elaborated_declaration_specifi" + "ers", "enum_declaration_specifiers",
-				"typdef_name_declaration_specif" + "iers", "no_type_declaration_specifier", "type_qualifier",
-				"no_type_declaration_specifiers", "simple_type_specifier", "struct_or_union_specifier",
-				"elaborated_specifier", "enum_specifier", "type_name_specifier", "initializer", "declarator",
-				"struct_or_union", "struct_declaration_list", "struct_declaration", "specifier_qualifier_list",
-				"struct_declarator_list", "complete_struct_declarator", "enumerator_list", "enumerator",
-				"direct_declarator", "pointer_seq", "array_direct_declarator", "basic_direct_declarator",
-				"array_modifier", "parameter_type_list", "identifier_list", "array_modifier_type_qualifiers",
-				"type_qualifier_list", "parameter_list", "parameter_declaration", "complete_parameter_declarator",
-				"abstract_declarator", "direct_abstract_declarator", "basic_direct_abstract_declarat" + "or",
-				"array_direct_abstract_declarat" + "or", "initializer_seq", "designated_initializer", "designation",
-				"designator_list", "designator", "layout_qualifier" };
-	}
-
-	public final static String name[] = Name.name;
-
-	@Override
-	public final String name(int index) {
-		return name[index];
-	}
-
-	public final static int ERROR_SYMBOL = 60, SCOPE_UBOUND = 48, SCOPE_SIZE = 49, MAX_NAME_LENGTH = 38;
-
-	@Override
-	public final int getErrorSymbol() {
-		return ERROR_SYMBOL;
-	}
-
-	@Override
-	public final int getScopeUbound() {
-		return SCOPE_UBOUND;
-	}
-
-	@Override
-	public final int getScopeSize() {
-		return SCOPE_SIZE;
-	}
-
-	@Override
-	public final int getMaxNameLength() {
-		return MAX_NAME_LENGTH;
-	}
-
-	public final static int NUM_STATES = 226, NT_OFFSET = 107, LA_STATE_OFFSET = 2309, MAX_LA = 2, NUM_RULES = 369,
-			NUM_NONTERMINALS = 131, NUM_SYMBOLS = 238, SEGMENT_SIZE = 8192, START_STATE = 510, IDENTIFIER_SYMBOL = 0,
-			EOFT_SYMBOL = 89, EOLT_SYMBOL = 89, ACCEPT_ACTION = 1927, ERROR_ACTION = 1940;
-
-	public final static boolean BACKTRACK = true;
-
-	@Override
-	public final int getNumStates() {
-		return NUM_STATES;
-	}
-
-	@Override
-	public final int getNtOffset() {
-		return NT_OFFSET;
-	}
-
-	@Override
-	public final int getLaStateOffset() {
-		return LA_STATE_OFFSET;
-	}
-
-	@Override
-	public final int getMaxLa() {
-		return MAX_LA;
-	}
-
-	@Override
-	public final int getNumRules() {
-		return NUM_RULES;
-	}
-
-	@Override
-	public final int getNumNonterminals() {
-		return NUM_NONTERMINALS;
-	}
-
-	@Override
-	public final int getNumSymbols() {
-		return NUM_SYMBOLS;
-	}
-
-	@Override
-	public final int getSegmentSize() {
-		return SEGMENT_SIZE;
-	}
-
-	@Override
-	public final int getStartState() {
-		return START_STATE;
-	}
-
-	@Override
-	public final int getStartSymbol() {
-		return lhs[0];
-	}
-
-	public final int getIdentifierSymbol() {
-		return IDENTIFIER_SYMBOL;
-	}
-
-	@Override
-	public final int getEoftSymbol() {
-		return EOFT_SYMBOL;
-	}
-
-	@Override
-	public final int getEoltSymbol() {
-		return EOLT_SYMBOL;
-	}
-
-	@Override
-	public final int getAcceptAction() {
-		return ACCEPT_ACTION;
-	}
-
-	@Override
-	public final int getErrorAction() {
-		return ERROR_ACTION;
-	}
-
-	@Override
-	public final boolean isValidForParser() {
-		return isValidForParser;
-	}
-
-	@Override
-	public final boolean getBacktrack() {
-		return BACKTRACK;
-	}
-
-	@Override
-	public final int originalState(int state) {
-		return -baseCheck[state];
-	}
-
-	@Override
-	public final int asi(int state) {
-		return asb[originalState(state)];
-	}
-
-	@Override
-	public final int nasi(int state) {
-		return nasb[originalState(state)];
-	}
-
-	@Override
-	public final int inSymbol(int state) {
-		return inSymb[originalState(state)];
-	}
-
-	@Override
-	public final int ntAction(int state, int sym) {
-		return baseAction[state + sym];
-	}
-
-	@Override
-	public final int tAction(int state, int sym) {
-		int i = baseAction[state], k = i + sym;
-		return termAction[termCheck[k] == sym ? k : i];
-	}
-
-	@Override
-	public final int lookAhead(int la_state, int sym) {
-		int k = la_state + sym;
-		return termAction[termCheck[k] == sym ? k : la_state];
-	}
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParsersym.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParsersym.java
deleted file mode 100644
index 0cb5a64..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParsersym.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2010 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.parser.upc;
-
-public interface UPCExpressionParsersym {
-	public final static int TK_auto = 33, TK_break = 90, TK_case = 91, TK_char = 40, TK_const = 11, TK_continue = 92,
-			TK_default = 93, TK_do = 94, TK_double = 41, TK_else = 95, TK_enum = 53, TK_extern = 34, TK_float = 42,
-			TK_for = 96, TK_goto = 97, TK_if = 98, TK_inline = 35, TK_int = 43, TK_long = 44, TK_register = 36,
-			TK_restrict = 12, TK_return = 99, TK_short = 45, TK_signed = 46, TK_sizeof = 13, TK_static = 32,
-			TK_struct = 54, TK_switch = 100, TK_typedef = 37, TK_union = 55, TK_unsigned = 47, TK_void = 48,
-			TK_volatile = 14, TK_while = 101, TK__Bool = 49, TK__Complex = 50, TK__Imaginary = 51, TK_integer = 15,
-			TK_floating = 16, TK_charconst = 17, TK_stringlit = 18, TK_identifier = 1, TK_Completion = 3,
-			TK_EndOfCompletion = 5, TK_Invalid = 102, TK_LeftBracket = 31, TK_LeftParen = 2, TK_LeftBrace = 19,
-			TK_Dot = 61, TK_Arrow = 76, TK_PlusPlus = 9, TK_MinusMinus = 10, TK_And = 8, TK_Star = 4, TK_Plus = 6,
-			TK_Minus = 7, TK_Tilde = 20, TK_Bang = 21, TK_Slash = 62, TK_Percent = 63, TK_RightShift = 56,
-			TK_LeftShift = 57, TK_LT = 64, TK_GT = 65, TK_LE = 66, TK_GE = 67, TK_EQ = 70, TK_NE = 71, TK_Caret = 72,
-			TK_Or = 73, TK_AndAnd = 74, TK_OrOr = 77, TK_Question = 78, TK_Colon = 68, TK_DotDotDot = 59,
-			TK_Assign = 69, TK_StarAssign = 79, TK_SlashAssign = 80, TK_PercentAssign = 81, TK_PlusAssign = 82,
-			TK_MinusAssign = 83, TK_RightShiftAssign = 84, TK_LeftShiftAssign = 85, TK_AndAssign = 86,
-			TK_CaretAssign = 87, TK_OrAssign = 88, TK_Comma = 38, TK_RightBracket = 58, TK_RightParen = 39,
-			TK_RightBrace = 52, TK_SemiColon = 75, TK_MYTHREAD = 22, TK_THREADS = 23, TK_UPC_MAX_BLOCKSIZE = 24,
-			TK_relaxed = 25, TK_shared = 26, TK_strict = 27, TK_upc_barrier = 103, TK_upc_localsizeof = 28,
-			TK_upc_blocksizeof = 29, TK_upc_elemsizeof = 30, TK_upc_notify = 104, TK_upc_fence = 105, TK_upc_wait = 106,
-			TK_upc_forall = 107, TK_ERROR_TOKEN = 60, TK_EOF_TOKEN = 89;
-
-	public final static String orderedTerminalSymbols[] = { "", "identifier", "LeftParen", "Completion", "Star",
-			"EndOfCompletion", "Plus", "Minus", "And", "PlusPlus", "MinusMinus", "const", "restrict", "sizeof",
-			"volatile", "integer", "floating", "charconst", "stringlit", "LeftBrace", "Tilde", "Bang", "MYTHREAD",
-			"THREADS", "UPC_MAX_BLOCKSIZE", "relaxed", "shared", "strict", "upc_localsizeof", "upc_blocksizeof",
-			"upc_elemsizeof", "LeftBracket", "static", "auto", "extern", "inline", "register", "typedef", "Comma",
-			"RightParen", "char", "double", "float", "int", "long", "short", "signed", "unsigned", "void", "_Bool",
-			"_Complex", "_Imaginary", "RightBrace", "enum", "struct", "union", "RightShift", "LeftShift",
-			"RightBracket", "DotDotDot", "ERROR_TOKEN", "Dot", "Slash", "Percent", "LT", "GT", "LE", "GE", "Colon",
-			"Assign", "EQ", "NE", "Caret", "Or", "AndAnd", "SemiColon", "Arrow", "OrOr", "Question", "StarAssign",
-			"SlashAssign", "PercentAssign", "PlusAssign", "MinusAssign", "RightShiftAssign", "LeftShiftAssign",
-			"AndAssign", "CaretAssign", "OrAssign", "EOF_TOKEN", "break", "case", "continue", "default", "do", "else",
-			"for", "goto", "if", "return", "switch", "while", "Invalid", "upc_barrier", "upc_notify", "upc_fence",
-			"upc_wait", "upc_forall" };
-
-	public final static boolean isValidForParser = true;
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParser.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParser.java
deleted file mode 100644
index deadf0d..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParser.java
+++ /dev/null
@@ -1,2053 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2011 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.parser.upc;
-
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.cdt.core.dom.ast.IASTBinaryExpression;
-import org.eclipse.cdt.core.dom.ast.IASTCompletionNode;
-import org.eclipse.cdt.core.dom.ast.IASTCompositeTypeSpecifier;
-import org.eclipse.cdt.core.dom.ast.IASTElaboratedTypeSpecifier;
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-import org.eclipse.cdt.core.dom.ast.IASTLiteralExpression;
-import org.eclipse.cdt.core.dom.ast.IASTTypeIdExpression;
-import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression;
-import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter;
-import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
-import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
-import org.eclipse.cdt.core.dom.lrparser.ITokenCollector;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
-import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
-import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
-import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser;
-import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
-import org.eclipse.cdt.core.dom.parser.upc.UPCASTNodeFactory;
-import org.eclipse.cdt.core.dom.parser.upc.UPCParserAction;
-import org.eclipse.cdt.core.dom.parser.upc.UPCSecondaryParserFactory;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTKeywordExpression;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSynchronizationStatement;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTUnarySizeofExpression;
-import org.eclipse.cdt.core.index.IIndex;
-import org.eclipse.cdt.core.parser.IScanner;
-
-import lpg.lpgjavaruntime.BadParseException;
-import lpg.lpgjavaruntime.BadParseSymFileException;
-import lpg.lpgjavaruntime.DiagnoseParser;
-import lpg.lpgjavaruntime.ErrorToken;
-import lpg.lpgjavaruntime.IToken;
-import lpg.lpgjavaruntime.LexStream;
-import lpg.lpgjavaruntime.Monitor;
-import lpg.lpgjavaruntime.NotBacktrackParseTableException;
-import lpg.lpgjavaruntime.NullExportedSymbolsException;
-import lpg.lpgjavaruntime.NullTerminalSymbolsException;
-import lpg.lpgjavaruntime.ParseErrorCodes;
-import lpg.lpgjavaruntime.ParseTable;
-import lpg.lpgjavaruntime.PrsStream;
-import lpg.lpgjavaruntime.RuleAction;
-import lpg.lpgjavaruntime.Token;
-import lpg.lpgjavaruntime.UndefinedEofSymbolException;
-import lpg.lpgjavaruntime.UnimplementedTerminalsException;
-
-public class UPCNoCastExpressionParser extends PrsStream
-		implements RuleAction, ITokenStream, ITokenCollector, ISecondaryParser<IASTExpression> {
-	private static ParseTable prs = new UPCNoCastExpressionParserprs();
-	private FixedBacktrackingParser btParser;
-
-	public FixedBacktrackingParser getParser() {
-		return btParser;
-	}
-
-	private void setResult(Object object) {
-		btParser.setSym1(object);
-	}
-
-	public Object getRhsSym(int i) {
-		return btParser.getSym(i);
-	}
-
-	public int getRhsTokenIndex(int i) {
-		return btParser.getToken(i);
-	}
-
-	public IToken getRhsIToken(int i) {
-		return super.getIToken(getRhsTokenIndex(i));
-	}
-
-	public int getRhsFirstTokenIndex(int i) {
-		return btParser.getFirstToken(i);
-	}
-
-	public IToken getRhsFirstIToken(int i) {
-		return super.getIToken(getRhsFirstTokenIndex(i));
-	}
-
-	public int getRhsLastTokenIndex(int i) {
-		return btParser.getLastToken(i);
-	}
-
-	public IToken getRhsLastIToken(int i) {
-		return super.getIToken(getRhsLastTokenIndex(i));
-	}
-
-	public int getLeftSpan() {
-		return btParser.getFirstToken();
-	}
-
-	@Override
-	public IToken getLeftIToken() {
-		return super.getIToken(getLeftSpan());
-	}
-
-	public int getRightSpan() {
-		return btParser.getLastToken();
-	}
-
-	@Override
-	public IToken getRightIToken() {
-		return super.getIToken(getRightSpan());
-	}
-
-	public int getRhsErrorTokenIndex(int i) {
-		int index = btParser.getToken(i);
-		IToken err = super.getIToken(index);
-		return (err instanceof ErrorToken ? index : 0);
-	}
-
-	public ErrorToken getRhsErrorIToken(int i) {
-		int index = btParser.getToken(i);
-		IToken err = super.getIToken(index);
-		return (ErrorToken) (err instanceof ErrorToken ? err : null);
-	}
-
-	public UPCNoCastExpressionParser(LexStream lexStream) {
-		super(lexStream);
-
-		try {
-			super.remapTerminalSymbols(orderedTerminalSymbols(), UPCNoCastExpressionParserprs.EOFT_SYMBOL);
-		} catch (NullExportedSymbolsException e) {
-		} catch (NullTerminalSymbolsException e) {
-		} catch (UnimplementedTerminalsException e) {
-			java.util.ArrayList unimplemented_symbols = e.getSymbols();
-			System.out.println("The Lexer will not scan the following token(s):");
-			for (int i = 0; i < unimplemented_symbols.size(); i++) {
-				Integer id = (Integer) unimplemented_symbols.get(i);
-				System.out.println("    " + UPCNoCastExpressionParsersym.orderedTerminalSymbols[id.intValue()]);
-			}
-			System.out.println();
-		} catch (UndefinedEofSymbolException e) {
-			throw new Error(new UndefinedEofSymbolException("The Lexer does not implement the Eof symbol "
-					+ UPCNoCastExpressionParsersym.orderedTerminalSymbols[UPCNoCastExpressionParserprs.EOFT_SYMBOL]));
-		}
-	}
-
-	@Override
-	public String[] orderedTerminalSymbols() {
-		return UPCNoCastExpressionParsersym.orderedTerminalSymbols;
-	}
-
-	public String getTokenKindName(int kind) {
-		return UPCNoCastExpressionParsersym.orderedTerminalSymbols[kind];
-	}
-
-	public int getEOFTokenKind() {
-		return UPCNoCastExpressionParserprs.EOFT_SYMBOL;
-	}
-
-	public PrsStream getParseStream() {
-		return this;
-	}
-
-	//
-	// Report error message for given error_token.
-	//
-	public final void reportErrorTokenMessage(int error_token, String msg) {
-		int firsttok = super.getFirstErrorToken(error_token), lasttok = super.getLastErrorToken(error_token);
-		String location = super.getFileName() + ':'
-				+ (firsttok > lasttok ? (super.getEndLine(lasttok) + ":" + super.getEndColumn(lasttok))
-						: (super.getLine(error_token) + ":" + super.getColumn(error_token) + ":"
-								+ super.getEndLine(error_token) + ":" + super.getEndColumn(error_token)))
-				+ ": ";
-		super.reportError((firsttok > lasttok ? ParseErrorCodes.INSERTION_CODE : ParseErrorCodes.SUBSTITUTION_CODE),
-				location, msg);
-	}
-
-	public void parser() {
-		parser(null, 0);
-	}
-
-	public void parser(Monitor monitor) {
-		parser(monitor, 0);
-	}
-
-	public void parser(int error_repair_count) {
-		parser(null, error_repair_count);
-	}
-
-	public void parser(Monitor monitor, int error_repair_count) {
-		try {
-			btParser = new FixedBacktrackingParser(monitor, this, prs, this);
-		} catch (NotBacktrackParseTableException e) {
-			throw new Error(new NotBacktrackParseTableException(
-					"Regenerate UPCNoCastExpressionParserprs.java with -BACKTRACK option"));
-		} catch (BadParseSymFileException e) {
-			throw new Error(
-					new BadParseSymFileException("Bad Parser Symbol File -- UPCNoCastExpressionParsersym.java"));
-		}
-
-		try {
-			btParser.parse(error_repair_count);
-		} catch (BadParseException e) {
-			reset(e.error_token); // point to error token
-			DiagnoseParser diagnoseParser = new DiagnoseParser(this, prs);
-			diagnoseParser.diagnose(e.error_token);
-		}
-	}
-
-	private UPCParserAction action;
-	private IASTCompletionNode compNode;
-
-	public UPCNoCastExpressionParser(IScanner scanner, IDOMTokenMap tokenMap,
-			IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Map<String, String> properties) {
-		initActions(properties);
-		action.initializeTranslationUnit(scanner, builtinBindingsProvider, index);
-		CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap);
-	}
-
-	private void initActions(Map<String, String> properties) {
-		ScopedStack<Object> astStack = new ScopedStack<>();
-
-		action = new UPCParserAction(this, astStack, new UPCASTNodeFactory(), UPCSecondaryParserFactory.getDefault());
-		action.setParserProperties(properties);
-
-	}
-
-	@Override
-	public void addToken(IToken token) {
-		token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called?
-		super.addToken(token);
-	}
-
-	@Override
-	public IASTExpression parse() {
-		// this has to be done, or... kaboom!
-		setStreamLength(getSize());
-
-		final int errorRepairCount = -1; // -1 means full error handling
-		parser(null, errorRepairCount); // do the actual parse
-		super.resetTokenStream(); // allow tokens to be garbage collected
-
-		compNode = action.getASTCompletionNode(); // the completion node may be null
-		return (IASTExpression) action.getParseResult();
-	}
-
-	@Override
-	public IASTCompletionNode getCompletionNode() {
-		return compNode;
-	}
-
-	// uncomment this method to use with backtracking parser
-	@Override
-	public List<IToken> getRuleTokens() {
-		return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
-	}
-
-	@Override
-	public String[] getOrderedTerminalSymbols() {
-		return UPCNoCastExpressionParsersym.orderedTerminalSymbols;
-	}
-
-	@Override
-	@SuppressWarnings("nls")
-	public String getName() {
-		return "UPCNoCastExpressionParser";
-	}
-
-	private ITokenMap tokenMap = null;
-
-	@Override
-	public void setTokens(List<IToken> tokens) {
-		resetTokenStream();
-		addToken(new Token(null, 0, 0, 0)); // dummy token
-		for (IToken token : tokens) {
-			token.setKind(tokenMap.mapKind(token.getKind()));
-			addToken(token);
-		}
-		addToken(new Token(null, 0, 0, UPCNoCastExpressionParsersym.TK_EOF_TOKEN));
-	}
-
-	public UPCNoCastExpressionParser(ITokenStream stream, Map<String, String> properties) { // constructor for creating secondary parser
-		initActions(properties);
-		tokenMap = new TokenMap(UPCNoCastExpressionParsersym.orderedTerminalSymbols,
-				stream.getOrderedTerminalSymbols());
-	}
-
-	@Override
-	public void ruleAction(int ruleNumber) {
-		switch (ruleNumber) {
-
-		//
-		// Rule 1:  <openscope-ast> ::= $Empty
-		//
-		case 1: {
-			action.openASTScope();
-			break;
-		}
-
-		//
-		// Rule 2:  <empty> ::= $Empty
-		//
-		case 2: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 13:  literal ::= integer
-		//
-		case 13: {
-			action.consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant);
-			break;
-		}
-
-		//
-		// Rule 14:  literal ::= floating
-		//
-		case 14: {
-			action.consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant);
-			break;
-		}
-
-		//
-		// Rule 15:  literal ::= charconst
-		//
-		case 15: {
-			action.consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant);
-			break;
-		}
-
-		//
-		// Rule 16:  literal ::= stringlit
-		//
-		case 16: {
-			action.consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal);
-			break;
-		}
-
-		//
-		// Rule 18:  primary_expression ::= primary_expression_id
-		//
-		case 18: {
-			action.consumeExpressionID();
-			break;
-		}
-
-		//
-		// Rule 19:  primary_expression ::= ( expression )
-		//
-		case 19: {
-			action.consumeExpressionBracketed();
-			break;
-		}
-
-		//
-		// Rule 22:  postfix_expression ::= postfix_expression [ expression ]
-		//
-		case 22: {
-			action.consumeExpressionArraySubscript();
-			break;
-		}
-
-		//
-		// Rule 23:  postfix_expression ::= postfix_expression ( expression_list_opt )
-		//
-		case 23: {
-			action.consumeExpressionFunctionCall();
-			break;
-		}
-
-		//
-		// Rule 24:  postfix_expression ::= postfix_expression . member_name
-		//
-		case 24: {
-			action.consumeExpressionFieldReference(false);
-			break;
-		}
-
-		//
-		// Rule 25:  postfix_expression ::= postfix_expression -> member_name
-		//
-		case 25: {
-			action.consumeExpressionFieldReference(true);
-			break;
-		}
-
-		//
-		// Rule 26:  postfix_expression ::= postfix_expression ++
-		//
-		case 26: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr);
-			break;
-		}
-
-		//
-		// Rule 27:  postfix_expression ::= postfix_expression --
-		//
-		case 27: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr);
-			break;
-		}
-
-		//
-		// Rule 28:  postfix_expression ::= ( type_id ) initializer_list
-		//
-		case 28: {
-			action.consumeExpressionTypeIdInitializer();
-			break;
-		}
-
-		//
-		// Rule 33:  unary_expression ::= ++ unary_expression
-		//
-		case 33: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr);
-			break;
-		}
-
-		//
-		// Rule 34:  unary_expression ::= -- unary_expression
-		//
-		case 34: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr);
-			break;
-		}
-
-		//
-		// Rule 35:  unary_expression ::= & cast_expression
-		//
-		case 35: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper);
-			break;
-		}
-
-		//
-		// Rule 36:  unary_expression ::= * cast_expression
-		//
-		case 36: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_star);
-			break;
-		}
-
-		//
-		// Rule 37:  unary_expression ::= + cast_expression
-		//
-		case 37: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus);
-			break;
-		}
-
-		//
-		// Rule 38:  unary_expression ::= - cast_expression
-		//
-		case 38: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus);
-			break;
-		}
-
-		//
-		// Rule 39:  unary_expression ::= ~ cast_expression
-		//
-		case 39: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde);
-			break;
-		}
-
-		//
-		// Rule 40:  unary_expression ::= ! cast_expression
-		//
-		case 40: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_not);
-			break;
-		}
-
-		//
-		// Rule 41:  unary_expression ::= sizeof unary_expression
-		//
-		case 41: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof);
-			break;
-		}
-
-		//
-		// Rule 42:  unary_expression ::= sizeof ( type_id )
-		//
-		case 42: {
-			action.consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof);
-			break;
-		}
-
-		//
-		// Rule 45:  multiplicative_expression ::= multiplicative_expression * cast_expression
-		//
-		case 45: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply);
-			break;
-		}
-
-		//
-		// Rule 46:  multiplicative_expression ::= multiplicative_expression / cast_expression
-		//
-		case 46: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide);
-			break;
-		}
-
-		//
-		// Rule 47:  multiplicative_expression ::= multiplicative_expression % cast_expression
-		//
-		case 47: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo);
-			break;
-		}
-
-		//
-		// Rule 49:  additive_expression ::= additive_expression + multiplicative_expression
-		//
-		case 49: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus);
-			break;
-		}
-
-		//
-		// Rule 50:  additive_expression ::= additive_expression - multiplicative_expression
-		//
-		case 50: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus);
-			break;
-		}
-
-		//
-		// Rule 52:  shift_expression ::= shift_expression << additive_expression
-		//
-		case 52: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft);
-			break;
-		}
-
-		//
-		// Rule 53:  shift_expression ::= shift_expression >> additive_expression
-		//
-		case 53: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight);
-			break;
-		}
-
-		//
-		// Rule 55:  relational_expression ::= relational_expression < shift_expression
-		//
-		case 55: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan);
-			break;
-		}
-
-		//
-		// Rule 56:  relational_expression ::= relational_expression > shift_expression
-		//
-		case 56: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan);
-			break;
-		}
-
-		//
-		// Rule 57:  relational_expression ::= relational_expression <= shift_expression
-		//
-		case 57: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual);
-			break;
-		}
-
-		//
-		// Rule 58:  relational_expression ::= relational_expression >= shift_expression
-		//
-		case 58: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual);
-			break;
-		}
-
-		//
-		// Rule 60:  equality_expression ::= equality_expression == relational_expression
-		//
-		case 60: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals);
-			break;
-		}
-
-		//
-		// Rule 61:  equality_expression ::= equality_expression != relational_expression
-		//
-		case 61: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals);
-			break;
-		}
-
-		//
-		// Rule 63:  and_expression ::= and_expression & equality_expression
-		//
-		case 63: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd);
-			break;
-		}
-
-		//
-		// Rule 65:  exclusive_or_expression ::= exclusive_or_expression ^ and_expression
-		//
-		case 65: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor);
-			break;
-		}
-
-		//
-		// Rule 67:  inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression
-		//
-		case 67: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr);
-			break;
-		}
-
-		//
-		// Rule 69:  logical_and_expression ::= logical_and_expression && inclusive_or_expression
-		//
-		case 69: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd);
-			break;
-		}
-
-		//
-		// Rule 71:  logical_or_expression ::= logical_or_expression || logical_and_expression
-		//
-		case 71: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr);
-			break;
-		}
-
-		//
-		// Rule 73:  conditional_expression ::= logical_or_expression ? expression : assignment_expression
-		//
-		case 73: {
-			action.consumeExpressionConditional();
-			break;
-		}
-
-		//
-		// Rule 75:  assignment_expression ::= unary_expression = assignment_expression
-		//
-		case 75: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign);
-			break;
-		}
-
-		//
-		// Rule 76:  assignment_expression ::= unary_expression *= assignment_expression
-		//
-		case 76: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign);
-			break;
-		}
-
-		//
-		// Rule 77:  assignment_expression ::= unary_expression /= assignment_expression
-		//
-		case 77: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign);
-			break;
-		}
-
-		//
-		// Rule 78:  assignment_expression ::= unary_expression %= assignment_expression
-		//
-		case 78: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign);
-			break;
-		}
-
-		//
-		// Rule 79:  assignment_expression ::= unary_expression += assignment_expression
-		//
-		case 79: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign);
-			break;
-		}
-
-		//
-		// Rule 80:  assignment_expression ::= unary_expression -= assignment_expression
-		//
-		case 80: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign);
-			break;
-		}
-
-		//
-		// Rule 81:  assignment_expression ::= unary_expression <<= assignment_expression
-		//
-		case 81: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign);
-			break;
-		}
-
-		//
-		// Rule 82:  assignment_expression ::= unary_expression >>= assignment_expression
-		//
-		case 82: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign);
-			break;
-		}
-
-		//
-		// Rule 83:  assignment_expression ::= unary_expression &= assignment_expression
-		//
-		case 83: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign);
-			break;
-		}
-
-		//
-		// Rule 84:  assignment_expression ::= unary_expression ^= assignment_expression
-		//
-		case 84: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign);
-			break;
-		}
-
-		//
-		// Rule 85:  assignment_expression ::= unary_expression |= assignment_expression
-		//
-		case 85: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign);
-			break;
-		}
-
-		//
-		// Rule 88:  expression_list ::= <openscope-ast> expression_list_actual
-		//
-		case 88: {
-			action.consumeExpressionList();
-			break;
-		}
-
-		//
-		// Rule 90:  expression_list_opt ::= $Empty
-		//
-		case 90: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 100:  statement ::= ERROR_TOKEN
-		//
-		case 100: {
-			action.consumeStatementProblem();
-			break;
-		}
-
-		//
-		// Rule 101:  labeled_statement ::= identifier_token : statement
-		//
-		case 101: {
-			action.consumeStatementLabeled();
-			break;
-		}
-
-		//
-		// Rule 102:  labeled_statement ::= case constant_expression : statement
-		//
-		case 102: {
-			action.consumeStatementCase();
-			break;
-		}
-
-		//
-		// Rule 103:  labeled_statement ::= default : statement
-		//
-		case 103: {
-			action.consumeStatementDefault();
-			break;
-		}
-
-		//
-		// Rule 104:  compound_statement ::= { }
-		//
-		case 104: {
-			action.consumeStatementCompoundStatement(false);
-			break;
-		}
-
-		//
-		// Rule 105:  compound_statement ::= { <openscope-ast> block_item_list }
-		//
-		case 105: {
-			action.consumeStatementCompoundStatement(true);
-			break;
-		}
-
-		//
-		// Rule 109:  block_item ::= declaration
-		//
-		case 109: {
-			action.consumeStatementDeclarationWithDisambiguation();
-			break;
-		}
-
-		//
-		// Rule 110:  expression_statement ::= ;
-		//
-		case 110: {
-			action.consumeStatementNull();
-			break;
-		}
-
-		//
-		// Rule 111:  expression_statement ::= expression_in_statement ;
-		//
-		case 111: {
-			action.consumeStatementExpression();
-			break;
-		}
-
-		//
-		// Rule 112:  selection_statement ::= if ( expression ) statement
-		//
-		case 112: {
-			action.consumeStatementIf(false);
-			break;
-		}
-
-		//
-		// Rule 113:  selection_statement ::= if ( expression ) statement else statement
-		//
-		case 113: {
-			action.consumeStatementIf(true);
-			break;
-		}
-
-		//
-		// Rule 114:  selection_statement ::= switch ( expression ) statement
-		//
-		case 114: {
-			action.consumeStatementSwitch();
-			break;
-		}
-
-		//
-		// Rule 116:  expression_opt ::= $Empty
-		//
-		case 116: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 117:  iteration_statement ::= do statement while ( expression ) ;
-		//
-		case 117: {
-			action.consumeStatementDoLoop(true);
-			break;
-		}
-
-		//
-		// Rule 118:  iteration_statement ::= do statement
-		//
-		case 118: {
-			action.consumeStatementDoLoop(false);
-			break;
-		}
-
-		//
-		// Rule 119:  iteration_statement ::= while ( expression ) statement
-		//
-		case 119: {
-			action.consumeStatementWhileLoop();
-			break;
-		}
-
-		//
-		// Rule 120:  iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement
-		//
-		case 120: {
-			action.consumeStatementForLoop();
-			break;
-		}
-
-		//
-		// Rule 121:  iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement
-		//
-		case 121: {
-			action.consumeStatementForLoop();
-			break;
-		}
-
-		//
-		// Rule 122:  jump_statement ::= goto identifier_token ;
-		//
-		case 122: {
-			action.consumeStatementGoto();
-			break;
-		}
-
-		//
-		// Rule 123:  jump_statement ::= continue ;
-		//
-		case 123: {
-			action.consumeStatementContinue();
-			break;
-		}
-
-		//
-		// Rule 124:  jump_statement ::= break ;
-		//
-		case 124: {
-			action.consumeStatementBreak();
-			break;
-		}
-
-		//
-		// Rule 125:  jump_statement ::= return ;
-		//
-		case 125: {
-			action.consumeStatementReturn(false);
-			break;
-		}
-
-		//
-		// Rule 126:  jump_statement ::= return expression ;
-		//
-		case 126: {
-			action.consumeStatementReturn(true);
-			break;
-		}
-
-		//
-		// Rule 127:  declaration ::= declaration_specifiers ;
-		//
-		case 127: {
-			action.consumeDeclarationSimple(false);
-			break;
-		}
-
-		//
-		// Rule 128:  declaration ::= declaration_specifiers <openscope-ast> init_declarator_list ;
-		//
-		case 128: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 129:  declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
-		//
-		case 129: {
-			action.consumeDeclarationSpecifiersSimple();
-			break;
-		}
-
-		//
-		// Rule 130:  declaration_specifiers ::= <openscope-ast> struct_or_union_declaration_specifiers
-		//
-		case 130: {
-			action.consumeDeclarationSpecifiersStructUnionEnum();
-			break;
-		}
-
-		//
-		// Rule 131:  declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
-		//
-		case 131: {
-			action.consumeDeclarationSpecifiersStructUnionEnum();
-			break;
-		}
-
-		//
-		// Rule 132:  declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
-		//
-		case 132: {
-			action.consumeDeclarationSpecifiersStructUnionEnum();
-			break;
-		}
-
-		//
-		// Rule 133:  declaration_specifiers ::= <openscope-ast> typdef_name_declaration_specifiers
-		//
-		case 133: {
-			action.consumeDeclarationSpecifiersTypedefName();
-			break;
-		}
-
-		//
-		// Rule 158:  init_declarator ::= complete_declarator = initializer
-		//
-		case 158: {
-			action.consumeDeclaratorWithInitializer(true);
-			break;
-		}
-
-		//
-		// Rule 160:  storage_class_specifier ::= storage_class_specifier_token
-		//
-		case 160: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 166:  simple_type_specifier ::= simple_type_specifier_token
-		//
-		case 166: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 179:  type_name_specifier ::= identifier_token
-		//
-		case 179: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 180:  struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { <openscope-ast> struct_declaration_list_opt }
-		//
-		case 180: {
-			action.consumeTypeSpecifierComposite(false);
-			break;
-		}
-
-		//
-		// Rule 181:  struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { <openscope-ast> struct_declaration_list_opt }
-		//
-		case 181: {
-			action.consumeTypeSpecifierComposite(true);
-			break;
-		}
-
-		//
-		// Rule 186:  elaborated_specifier ::= struct elaborated_specifier_hook identifier_token
-		//
-		case 186: {
-			action.consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct);
-			break;
-		}
-
-		//
-		// Rule 187:  elaborated_specifier ::= union elaborated_specifier_hook identifier_token
-		//
-		case 187: {
-			action.consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union);
-			break;
-		}
-
-		//
-		// Rule 188:  elaborated_specifier ::= enum elaborated_specifier_hook identifier_token
-		//
-		case 188: {
-			action.consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum);
-			break;
-		}
-
-		//
-		// Rule 194:  struct_declaration ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ;
-		//
-		case 194: {
-			action.consumeStructDeclaration(true);
-			break;
-		}
-
-		//
-		// Rule 195:  struct_declaration ::= specifier_qualifier_list ;
-		//
-		case 195: {
-			action.consumeStructDeclaration(false);
-			break;
-		}
-
-		//
-		// Rule 196:  struct_declaration ::= ERROR_TOKEN
-		//
-		case 196: {
-			action.consumeDeclarationProblem();
-			break;
-		}
-
-		//
-		// Rule 202:  struct_declarator ::= : constant_expression
-		//
-		case 202: {
-			action.consumeBitField(false);
-			break;
-		}
-
-		//
-		// Rule 203:  struct_declarator ::= declarator : constant_expression
-		//
-		case 203: {
-			action.consumeBitField(true);
-			break;
-		}
-
-		//
-		// Rule 204:  enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
-		//
-		case 204: {
-			action.consumeTypeSpecifierEnumeration(false);
-			break;
-		}
-
-		//
-		// Rule 205:  enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
-		//
-		case 205: {
-			action.consumeTypeSpecifierEnumeration(true);
-			break;
-		}
-
-		//
-		// Rule 211:  enumerator ::= identifier_token
-		//
-		case 211: {
-			action.consumeEnumerator(false);
-			break;
-		}
-
-		//
-		// Rule 212:  enumerator ::= identifier_token = constant_expression
-		//
-		case 212: {
-			action.consumeEnumerator(true);
-			break;
-		}
-
-		//
-		// Rule 213:  type_qualifier ::= type_qualifier_token
-		//
-		case 213: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 217:  function_specifier ::= inline
-		//
-		case 217: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 219:  declarator ::= <openscope-ast> pointer_seq direct_declarator
-		//
-		case 219: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 224:  basic_direct_declarator ::= declarator_id_name
-		//
-		case 224: {
-			action.consumeDirectDeclaratorIdentifier();
-			break;
-		}
-
-		//
-		// Rule 225:  basic_direct_declarator ::= ( declarator )
-		//
-		case 225: {
-			action.consumeDirectDeclaratorBracketed();
-			break;
-		}
-
-		//
-		// Rule 226:  declarator_id_name ::= identifier
-		//
-		case 226: {
-			action.consumeIdentifierName();
-			break;
-		}
-
-		//
-		// Rule 227:  array_direct_declarator ::= basic_direct_declarator array_modifier
-		//
-		case 227: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 228:  array_direct_declarator ::= array_direct_declarator array_modifier
-		//
-		case 228: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 230:  function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_type_list )
-		//
-		case 230: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true, true);
-			break;
-		}
-
-		//
-		// Rule 231:  function_direct_declarator ::= basic_direct_declarator ( )
-		//
-		case 231: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true, false);
-			break;
-		}
-
-		//
-		// Rule 233:  function_declarator ::= <openscope-ast> pointer_seq function_direct_declarator
-		//
-		case 233: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 234:  knr_direct_declarator ::= basic_direct_declarator ( <openscope-ast> identifier_list )
-		//
-		case 234: {
-			action.consumeDirectDeclaratorFunctionDeclaratorKnR();
-			break;
-		}
-
-		//
-		// Rule 236:  knr_function_declarator ::= <openscope-ast> pointer_seq knr_direct_declarator
-		//
-		case 236: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 237:  identifier_list ::= identifier
-		//
-		case 237: {
-			action.consumeIdentifierKnR();
-			break;
-		}
-
-		//
-		// Rule 238:  identifier_list ::= identifier_list , identifier
-		//
-		case 238: {
-			action.consumeIdentifierKnR();
-			break;
-		}
-
-		//
-		// Rule 239:  array_modifier ::= [ ]
-		//
-		case 239: {
-			action.consumeDirectDeclaratorArrayModifier(false);
-			break;
-		}
-
-		//
-		// Rule 240:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ]
-		//
-		case 240: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false);
-			break;
-		}
-
-		//
-		// Rule 241:  array_modifier ::= [ assignment_expression ]
-		//
-		case 241: {
-			action.consumeDirectDeclaratorArrayModifier(true);
-			break;
-		}
-
-		//
-		// Rule 242:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
-		//
-		case 242: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 243:  array_modifier ::= [ static assignment_expression ]
-		//
-		case 243: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true);
-			break;
-		}
-
-		//
-		// Rule 244:  array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
-		//
-		case 244: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 245:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ]
-		//
-		case 245: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 246:  array_modifier ::= [ * ]
-		//
-		case 246: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false);
-			break;
-		}
-
-		//
-		// Rule 247:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ]
-		//
-		case 247: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false);
-			break;
-		}
-
-		//
-		// Rule 249:  pointer_seq ::= pointer_hook * pointer_hook
-		//
-		case 249: {
-			action.consumePointer();
-			break;
-		}
-
-		//
-		// Rule 250:  pointer_seq ::= pointer_seq pointer_hook * pointer_hook
-		//
-		case 250: {
-			action.consumePointer();
-			break;
-		}
-
-		//
-		// Rule 251:  pointer_seq ::= pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
-		//
-		case 251: {
-			action.consumePointerTypeQualifierList();
-			break;
-		}
-
-		//
-		// Rule 252:  pointer_seq ::= pointer_seq pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
-		//
-		case 252: {
-			action.consumePointerTypeQualifierList();
-			break;
-		}
-
-		//
-		// Rule 256:  parameter_type_list ::= parameter_list
-		//
-		case 256: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 257:  parameter_type_list ::= parameter_list , ...
-		//
-		case 257: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 258:  parameter_type_list ::= ...
-		//
-		case 258: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 261:  parameter_declaration ::= declaration_specifiers complete_parameter_declarator
-		//
-		case 261: {
-			action.consumeParameterDeclaration();
-			break;
-		}
-
-		//
-		// Rule 262:  parameter_declaration ::= declaration_specifiers
-		//
-		case 262: {
-			action.consumeParameterDeclarationWithoutDeclarator();
-			break;
-		}
-
-		//
-		// Rule 265:  type_id ::= specifier_qualifier_list
-		//
-		case 265: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 266:  type_id ::= specifier_qualifier_list abstract_declarator
-		//
-		case 266: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 268:  abstract_declarator ::= <openscope-ast> pointer_seq
-		//
-		case 268: {
-			action.consumeDeclaratorWithPointer(false);
-			break;
-		}
-
-		//
-		// Rule 269:  abstract_declarator ::= <openscope-ast> pointer_seq direct_abstract_declarator
-		//
-		case 269: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 273:  basic_direct_abstract_declarator ::= ( abstract_declarator )
-		//
-		case 273: {
-			action.consumeDirectDeclaratorBracketed();
-			break;
-		}
-
-		//
-		// Rule 274:  array_direct_abstract_declarator ::= array_modifier
-		//
-		case 274: {
-			action.consumeDirectDeclaratorArrayDeclarator(false);
-			break;
-		}
-
-		//
-		// Rule 275:  array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
-		//
-		case 275: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 276:  array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
-		//
-		case 276: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 277:  function_direct_abstract_declarator ::= ( )
-		//
-		case 277: {
-			action.consumeDirectDeclaratorFunctionDeclarator(false, false);
-			break;
-		}
-
-		//
-		// Rule 278:  function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( )
-		//
-		case 278: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true, false);
-			break;
-		}
-
-		//
-		// Rule 279:  function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list )
-		//
-		case 279: {
-			action.consumeDirectDeclaratorFunctionDeclarator(false, true);
-			break;
-		}
-
-		//
-		// Rule 280:  function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list )
-		//
-		case 280: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true, true);
-			break;
-		}
-
-		//
-		// Rule 281:  initializer ::= assignment_expression
-		//
-		case 281: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 282:  initializer ::= initializer_list
-		//
-		case 282: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 283:  initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq comma_opt } end_initializer_list
-		//
-		case 283: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 284:  initializer_list ::= { <openscope-ast> }
-		//
-		case 284: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 285:  start_initializer_list ::= $Empty
-		//
-		case 285: {
-			action.initializerListStart();
-			break;
-		}
-
-		//
-		// Rule 286:  end_initializer_list ::= $Empty
-		//
-		case 286: {
-			action.initializerListEnd();
-			break;
-		}
-
-		//
-		// Rule 291:  designated_initializer ::= <openscope-ast> designation = initializer
-		//
-		case 291: {
-			action.consumeInitializerDesignated();
-			break;
-		}
-
-		//
-		// Rule 295:  designator_base ::= [ constant_expression ]
-		//
-		case 295: {
-			action.consumeDesignatorArray();
-			break;
-		}
-
-		//
-		// Rule 296:  designator_base ::= . identifier_token
-		//
-		case 296: {
-			action.consumeDesignatorField();
-			break;
-		}
-
-		//
-		// Rule 297:  designator ::= [ constant_expression ]
-		//
-		case 297: {
-			action.consumeDesignatorArray();
-			break;
-		}
-
-		//
-		// Rule 298:  designator ::= . identifier_token
-		//
-		case 298: {
-			action.consumeDesignatorField();
-			break;
-		}
-
-		//
-		// Rule 299:  translation_unit ::= external_declaration_list
-		//
-		case 299: {
-			action.consumeTranslationUnit();
-			break;
-		}
-
-		//
-		// Rule 300:  translation_unit ::= $Empty
-		//
-		case 300: {
-			action.consumeTranslationUnit();
-			break;
-		}
-
-		//
-		// Rule 305:  external_declaration ::= ;
-		//
-		case 305: {
-			action.consumeDeclarationEmpty();
-			break;
-		}
-
-		//
-		// Rule 306:  external_declaration ::= ERROR_TOKEN
-		//
-		case 306: {
-			action.consumeDeclarationProblem();
-			break;
-		}
-
-		//
-		// Rule 310:  function_definition ::= <openscope-ast> function_declarator function_body
-		//
-		case 310: {
-			action.consumeFunctionDefinition(false);
-			break;
-		}
-
-		//
-		// Rule 311:  function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
-		//
-		case 311: {
-			action.consumeFunctionDefinitionKnR();
-			break;
-		}
-
-		//
-		// Rule 312:  normal_function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
-		//
-		case 312: {
-			action.consumeFunctionDefinition(true);
-			break;
-		}
-
-		//
-		// Rule 313:  function_body ::= { }
-		//
-		case 313: {
-			action.consumeStatementCompoundStatement(false);
-			break;
-		}
-
-		//
-		// Rule 314:  function_body ::= { <openscope-ast> block_item_list }
-		//
-		case 314: {
-			action.consumeStatementCompoundStatement(true);
-			break;
-		}
-
-		//
-		// Rule 316:  no_cast_start ::= ERROR_TOKEN
-		//
-		case 316: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 317:  literal ::= MYTHREAD
-		//
-		case 317: {
-			action.consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread);
-			break;
-		}
-
-		//
-		// Rule 318:  literal ::= THREADS
-		//
-		case 318: {
-			action.consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads);
-			break;
-		}
-
-		//
-		// Rule 319:  literal ::= UPC_MAX_BLOCKSIZE
-		//
-		case 319: {
-			action.consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size);
-			break;
-		}
-
-		//
-		// Rule 320:  unary_expression ::= upc_localsizeof unary_expression
-		//
-		case 320: {
-			action.consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_localsizeof);
-			break;
-		}
-
-		//
-		// Rule 321:  unary_expression ::= upc_localsizeof ( type_id )
-		//
-		case 321: {
-			action.consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_localsizeof);
-			break;
-		}
-
-		//
-		// Rule 322:  unary_expression ::= upc_blocksizeof unary_expression
-		//
-		case 322: {
-			action.consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_blocksizeof);
-			break;
-		}
-
-		//
-		// Rule 323:  unary_expression ::= upc_blocksizeof ( type_id )
-		//
-		case 323: {
-			action.consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_blocksizeof);
-			break;
-		}
-
-		//
-		// Rule 324:  unary_expression ::= upc_elemsizeof unary_expression
-		//
-		case 324: {
-			action.consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_elemsizeof);
-			break;
-		}
-
-		//
-		// Rule 325:  unary_expression ::= upc_elemsizeof ( type_id )
-		//
-		case 325: {
-			action.consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_elemsizeof);
-			break;
-		}
-
-		//
-		// Rule 329:  shared_type_qualifier ::= shared
-		//
-		case 329: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 330:  reference_type_qualifier ::= relaxed
-		//
-		case 330: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 331:  reference_type_qualifier ::= strict
-		//
-		case 331: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 332:  layout_qualifier ::= [ constant_expression ]
-		//
-		case 332: {
-			action.consumeLayoutQualifier(true, false);
-			break;
-		}
-
-		//
-		// Rule 333:  layout_qualifier ::= [ * ]
-		//
-		case 333: {
-			action.consumeLayoutQualifier(false, true);
-			break;
-		}
-
-		//
-		// Rule 334:  layout_qualifier ::= [ ]
-		//
-		case 334: {
-			action.consumeLayoutQualifier(false, false);
-			break;
-		}
-
-		//
-		// Rule 336:  synchronization_statement ::= upc_notify expression ;
-		//
-		case 336: {
-			action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true);
-			break;
-		}
-
-		//
-		// Rule 337:  synchronization_statement ::= upc_notify ;
-		//
-		case 337: {
-			action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false);
-			break;
-		}
-
-		//
-		// Rule 338:  synchronization_statement ::= upc_wait expression ;
-		//
-		case 338: {
-			action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true);
-			break;
-		}
-
-		//
-		// Rule 339:  synchronization_statement ::= upc_wait ;
-		//
-		case 339: {
-			action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false);
-			break;
-		}
-
-		//
-		// Rule 340:  synchronization_statement ::= upc_barrier expression ;
-		//
-		case 340: {
-			action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true);
-			break;
-		}
-
-		//
-		// Rule 341:  synchronization_statement ::= upc_barrier ;
-		//
-		case 341: {
-			action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false);
-			break;
-		}
-
-		//
-		// Rule 342:  synchronization_statement ::= upc_fence ;
-		//
-		case 342: {
-			action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false);
-			break;
-		}
-
-		//
-		// Rule 343:  iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement
-		//
-		case 343: {
-			action.consumeStatementUPCForallLoop(true, true, true, true);
-			break;
-		}
-
-		//
-		// Rule 344:  iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement
-		//
-		case 344: {
-			action.consumeStatementUPCForallLoop(true, true, true, false);
-			break;
-		}
-
-		//
-		// Rule 345:  iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement
-		//
-		case 345: {
-			action.consumeStatementUPCForallLoop(true, true, false, true);
-			break;
-		}
-
-		//
-		// Rule 346:  iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement
-		//
-		case 346: {
-			action.consumeStatementUPCForallLoop(true, true, false, false);
-			break;
-		}
-
-		//
-		// Rule 347:  iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement
-		//
-		case 347: {
-			action.consumeStatementUPCForallLoop(true, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 348:  iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement
-		//
-		case 348: {
-			action.consumeStatementUPCForallLoop(true, false, true, false);
-			break;
-		}
-
-		//
-		// Rule 349:  iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement
-		//
-		case 349: {
-			action.consumeStatementUPCForallLoop(true, false, false, true);
-			break;
-		}
-
-		//
-		// Rule 350:  iteration_statement ::= upc_forall ( expression ; ; ; ) statement
-		//
-		case 350: {
-			action.consumeStatementUPCForallLoop(true, false, false, false);
-			break;
-		}
-
-		//
-		// Rule 351:  iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement
-		//
-		case 351: {
-			action.consumeStatementUPCForallLoop(false, true, true, true);
-			break;
-		}
-
-		//
-		// Rule 352:  iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement
-		//
-		case 352: {
-			action.consumeStatementUPCForallLoop(false, true, true, false);
-			break;
-		}
-
-		//
-		// Rule 353:  iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement
-		//
-		case 353: {
-			action.consumeStatementUPCForallLoop(false, true, false, true);
-			break;
-		}
-
-		//
-		// Rule 354:  iteration_statement ::= upc_forall ( ; expression ; ; ) statement
-		//
-		case 354: {
-			action.consumeStatementUPCForallLoop(false, true, false, false);
-			break;
-		}
-
-		//
-		// Rule 355:  iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement
-		//
-		case 355: {
-			action.consumeStatementUPCForallLoop(false, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 356:  iteration_statement ::= upc_forall ( ; ; expression ; ) statement
-		//
-		case 356: {
-			action.consumeStatementUPCForallLoop(false, false, true, false);
-			break;
-		}
-
-		//
-		// Rule 357:  iteration_statement ::= upc_forall ( ; ; ; affinity ) statement
-		//
-		case 357: {
-			action.consumeStatementUPCForallLoop(false, false, false, true);
-			break;
-		}
-
-		//
-		// Rule 358:  iteration_statement ::= upc_forall ( ; ; ; ) statement
-		//
-		case 358: {
-			action.consumeStatementUPCForallLoop(false, false, false, false);
-			break;
-		}
-
-		//
-		// Rule 359:  iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement
-		//
-		case 359: {
-			action.consumeStatementUPCForallLoop(true, true, true, true);
-			break;
-		}
-
-		//
-		// Rule 360:  iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement
-		//
-		case 360: {
-			action.consumeStatementUPCForallLoop(true, true, true, false);
-			break;
-		}
-
-		//
-		// Rule 361:  iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement
-		//
-		case 361: {
-			action.consumeStatementUPCForallLoop(true, true, false, true);
-			break;
-		}
-
-		//
-		// Rule 362:  iteration_statement ::= upc_forall ( declaration expression ; ; ) statement
-		//
-		case 362: {
-			action.consumeStatementUPCForallLoop(true, true, false, false);
-			break;
-		}
-
-		//
-		// Rule 363:  iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement
-		//
-		case 363: {
-			action.consumeStatementUPCForallLoop(true, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 364:  iteration_statement ::= upc_forall ( declaration ; expression ; ) statement
-		//
-		case 364: {
-			action.consumeStatementUPCForallLoop(true, false, true, false);
-			break;
-		}
-
-		//
-		// Rule 365:  iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement
-		//
-		case 365: {
-			action.consumeStatementUPCForallLoop(true, false, false, true);
-			break;
-		}
-
-		//
-		// Rule 366:  iteration_statement ::= upc_forall ( declaration ; ; ) statement
-		//
-		case 366: {
-			action.consumeStatementUPCForallLoop(true, false, false, false);
-			break;
-		}
-
-		//
-		// Rule 368:  affinity ::= continue
-		//
-		case 368: {
-			action.consumeToken();
-			break;
-		}
-
-		default:
-			break;
-		}
-		return;
-	}
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParserprs.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParserprs.java
deleted file mode 100644
index 0f4d098..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParserprs.java
+++ /dev/null
@@ -1,752 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2011 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.parser.upc;
-
-public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UPCNoCastExpressionParsersym {
-
-	public interface IsKeyword {
-		public final static byte isKeyword[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static byte isKeyword[] = IsKeyword.isKeyword;
-
-	public final boolean isKeyword(int index) {
-		return isKeyword[index] != 0;
-	}
-
-	public interface BaseCheck {
-		public final static short baseCheck[] = { 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 4,
-				4, 3, 3, 2, 2, 4, 1, 0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 1, 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 3, 3, 3,
-				3, 1, 3, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 2, 1, 0, 1, 3,
-				1, 1, 1, 1, 1, 1, 1, 1, 3, 4, 3, 2, 4, 1, 2, 1, 1, 1, 2, 5, 7, 5, 1, 0, 7, 2, 5, 9, 8, 3, 2, 2, 2, 3, 2,
-				4, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 3, 1, 3, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6, 8, 0, 0, 1, 1, 3, 3, 3, 0, 1, 0, 1, 2, 4, 2, 1, 1,
-				1, 3, 1, 1, 2, 3, 7, 8, 0, 1, 0, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 3, 1, 2, 2, 1, 5, 3, 1,
-				3, 5, 1, 3, 1, 3, 2, 4, 3, 5, 4, 6, 6, 3, 5, 1, 3, 4, 5, 6, 0, 1, 2, 1, 3, 1, 1, 3, 2, 1, 1, 1, 1, 2, 1,
-				2, 3, 1, 1, 1, 3, 1, 2, 2, 2, 3, 4, 5, 1, 1, 7, 3, 0, 0, 1, 1, 3, 3, 4, 1, 1, 2, 3, 2, 3, 2, 1, 0, 1, 2,
-				1, 1, 1, 1, 1, 2, 1, 3, 6, 4, 2, 4, 1, 1, 1, 1, 1, 2, 4, 2, 4, 2, 4, 1, 1, 2, 1, 1, 1, 3, 3, 2, 1, 3, 2,
-				3, 2, 3, 2, 2, 11, 10, 10, 9, 10, 9, 9, 8, 10, 9, 9, 8, 9, 8, 8, 7, 10, 9, 9, 8, 9, 8, 8, 7, 1, 1, -38,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -127, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, -129, 0, -77, -81,
-				-138, 0, 0, 0, 0, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -179, 0, 0, 0, 0, 0, 0, -172, 0, 0, 0, 0, 0, 0,
-				-86, 0, 0, 0, 0, 0, 0, 0, -39, 0, -40, 0, 0, 0, 0, 0, 0, 0, 0, -154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -190, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -145, 0, 0, -4, 0, -88, -142, 0, -18, -117, -180, 0, 0, 0, 0,
-				0, -135, 0, -196, -35, 0, -203, 0, 0, 0, 0, 0, -36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-194, 0, -209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -213, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -57, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -82, 0, -79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-89, -19, -84, 0, 0, 0, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -20, 0, 0, 0, 0, 0, 0, 0, 0, 0, -121, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -96, 0, 0, 0, 0,
-				0, 0, 0, 0, -21, 0, 0, -43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -130, 0, -141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -73, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -74,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -65, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -75, 0, 0, 0, 0, 0, 0, 0, 0, 0, -66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -76, 0, 0, 0, 0, 0, 0, 0, 0, 0, -68, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -95, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -71, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -125, 0, 0, 0, 0, 0, 0, 0, 0, 0, -72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -143, 0, 0, 0, 0, 0, 0, 0, 0, 0, -157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -166, 0, 0, 0, 0, 0, 0, 0, 0, 0, -193,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -22, 0, 0,
-				0, 0, 0, 0, 0, 0, -5, 0, 0, 0, 0, 0, 0, 0, -9, 0, 0, 0, 0, 0, 0, 0, -208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -23, 0, 0, 0, 0, 0, 0, 0, 0, -6, 0, 0, 0,
-				0, 0, 0, 0, -131, 0, -132, 0, -78, -93, 0, -24, -222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -165, 0, -150, -144, -133, 0, 0, 0, 0, 0, -122, 0, -25, -184, 0, -10, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -26, 0, 0, -177, 0, 0, 0, 0, -113, -83, -27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -161, -85, -155, 0, 0, -28, 0, 0, 0, 0, 0, 0, -44, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -29, 0, 0, 0, 0, 0, 0, 0, 0, -94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -192, 0, 0, 0, 0, 0, -210,
-				0, -7, 0, 0, 0, 0, 0, 0, 0, -58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -54, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -199, 0, 0, -11, 0, 0, 0, 0, 0, 0, 0, 0, -55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -91, 0, -56, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -221, 0, -136, 0, 0, 0, 0, 0, 0, 0, -97, 0, -98, 0, -114, -207, 0, 0, -48, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -99, -100, -101, 0,
-				0, -162, -102, 0, 0, -49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -223, 0, 0,
-				0, 0, -51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -53, 0, 0, 0, 0, 0, 0, 0, 0, 0, -216, -80, -87, 0, -8, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -103, -151, 0, -153, -104, 0, 0, 0, 0, 0, -182, -90, 0, -163, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -92, -156, -126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -105, 0, 0, -183, 0, 0,
-				0, 0, -171, 0, 0, 0, 0, -106, 0, 0, 0, 0, -140, 0, 0, 0, 0, -124, 0, 0, 0, 0, 0, 0, 0, -149, 0, 0, 0, 0,
-				0, 0, 0, -169, 0, -1, 0, 0, -107, 0, 0, -108, 0, -109, 0, -148, 0, 0, -160, 0, 0, 0, 0, 0, 0, 0, -12, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -110, 0, 0, -13, 0, 0, 0, 0, 0, 0, 0, -14, 0, 0, 0, 0, 0, 0, 0, -37, -45,
-				0, 0, 0, 0, 0, 0, 0, -186, -164, 0, -46, 0, 0, 0, 0, 0, 0, 0, -47, 0, 0, 0, 0, 0, 0, 0, 0, -178, -15, 0,
-				0, 0, 0, 0, 0, 0, -159, 0, 0, -16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -174, -111, -173, -17, 0, -112, 0,
-				-181, 0, 0, -118, -31, 0, 0, 0, -189, -32, -200, 0, 0, -120, -137, 0, 0, 0, 0, 0, 0, -170, 0, 0, 0, 0,
-				0, 0, 0, -119, 0, 0, -33, 0, 0, 0, 0, -146, -152, 0, 0, 0, -123, 0, -34, -204, 0, -167, 0, -168, -185,
-				0, 0, -201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -139, 0, 0, 0, 0, 0, -187, 0, 0, -115, 0, 0, 0, 0, 0, 0, 0, 0,
-				-197, -198, 0, -188, 0, 0, 0, 0, 0, -195, 0, 0, 0, -116, 0, -147, -212, 0, -175, 0, -41, -176, -206, 0,
-				0, 0, 0, 0, 0, 0, -217, 0, 0, 0, 0, 0, -191, 0, 0, 0, 0, 0, 0, 0, 0, 0, -42, 0, 0, 0, 0, 0, -218, 0, 0,
-				0, -59, 0, 0, 0, 0, 0, 0, -215, -211, -220, -219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static short baseCheck[] = BaseCheck.baseCheck;
-
-	@Override
-	public final int baseCheck(int index) {
-		return baseCheck[index];
-	}
-
-	public final static short rhs[] = baseCheck;
-
-	@Override
-	public final int rhs(int index) {
-		return rhs[index];
-	}
-
-	public interface BaseAction {
-		public final static char baseAction[] = { 89, 11, 105, 22, 22, 21, 21, 46, 46, 72, 72, 1, 1, 2, 2, 2, 2, 3, 3,
-				3, 4, 5, 5, 5, 5, 5, 5, 5, 5, 62, 62, 73, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 8, 8, 8, 8, 9, 9, 9, 10,
-				10, 10, 12, 12, 12, 12, 12, 13, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 20, 20,
-				20, 20, 20, 20, 20, 20, 20, 20, 106, 31, 30, 90, 90, 74, 74, 47, 107, 107, 107, 107, 107, 107, 107, 108,
-				108, 108, 109, 109, 114, 114, 115, 115, 110, 110, 111, 111, 111, 117, 117, 112, 112, 112, 112, 112, 113,
-				113, 113, 113, 113, 116, 116, 27, 27, 27, 27, 27, 33, 33, 33, 80, 80, 75, 75, 75, 75, 76, 76, 76, 77,
-				77, 77, 78, 78, 78, 79, 79, 79, 118, 118, 119, 119, 120, 34, 36, 36, 36, 36, 36, 56, 57, 57, 57, 57, 57,
-				57, 57, 57, 57, 57, 57, 57, 66, 63, 63, 91, 92, 68, 68, 64, 64, 64, 69, 81, 81, 82, 82, 70, 70, 70, 37,
-				93, 93, 83, 84, 84, 84, 65, 65, 94, 85, 85, 86, 86, 71, 71, 23, 24, 24, 24, 35, 53, 53, 39, 39, 39, 39,
-				42, 42, 44, 40, 40, 41, 45, 45, 121, 121, 43, 122, 122, 95, 95, 28, 28, 28, 28, 28, 28, 28, 28, 28, 87,
-				54, 54, 54, 54, 29, 59, 59, 58, 58, 58, 60, 60, 55, 55, 96, 96, 52, 52, 61, 61, 61, 48, 48, 48, 49, 50,
-				50, 50, 51, 51, 51, 51, 67, 67, 32, 32, 38, 98, 97, 97, 97, 97, 88, 99, 100, 100, 101, 101, 102, 102,
-				123, 123, 124, 124, 125, 125, 125, 125, 127, 127, 126, 126, 126, 128, 129, 129, 89, 89, 2, 2, 2, 6, 6,
-				6, 6, 6, 6, 23, 23, 25, 25, 26, 26, 103, 103, 103, 107, 130, 130, 130, 130, 130, 130, 130, 112, 112,
-				112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
-				112, 131, 131, 1, 1304, 17, 21, 18, 518, 1295, 44, 670, 654, 1106, 675, 721, 1186, 1162, 1236, 1223,
-				1277, 1246, 74, 91, 450, 1811, 135, 213, 326, 327, 80, 1213, 582, 588, 88, 278, 137, 134, 136, 160, 606,
-				20, 17, 21, 18, 518, 43, 44, 670, 654, 1106, 675, 721, 1186, 1162, 1236, 1223, 1708, 175, 139, 166, 275,
-				1796, 1549, 28, 119, 143, 146, 149, 152, 1717, 431, 231, 191, 31, 191, 31, 513, 1245, 1273, 1504, 1533,
-				1548, 1184, 542, 20, 17, 21, 18, 518, 1295, 44, 670, 654, 1106, 424, 721, 1186, 1162, 1236, 1223, 1277,
-				1246, 74, 281, 606, 20, 17, 21, 18, 518, 43, 44, 670, 654, 1106, 282, 721, 1186, 1162, 1236, 1712, 1717,
-				351, 20, 17, 21, 18, 518, 1295, 44, 670, 654, 1106, 424, 721, 1186, 1162, 1236, 1223, 1277, 1246, 74,
-				281, 225, 179, 25, 277, 24, 583, 176, 287, 59, 53, 815, 282, 396, 1832, 555, 293, 63, 1717, 915, 443,
-				526, 191, 1784, 135, 213, 326, 327, 443, 288, 255, 213, 326, 327, 137, 134, 136, 160, 1570, 274, 1728,
-				398, 255, 213, 326, 327, 914, 289, 926, 19, 219, 1450, 221, 1535, 223, 224, 229, 139, 166, 269, 628,
-				399, 272, 284, 143, 146, 149, 152, 290, 431, 326, 255, 213, 326, 327, 735, 1245, 1273, 1504, 1533, 1548,
-				1184, 574, 20, 17, 21, 18, 518, 1295, 44, 670, 654, 1106, 210, 721, 1186, 1162, 1236, 1223, 1277, 1246,
-				74, 281, 606, 20, 17, 21, 18, 518, 43, 44, 670, 654, 1106, 282, 721, 1186, 1162, 1609, 776, 1717, 281,
-				20, 17, 21, 18, 518, 1295, 44, 670, 654, 1106, 1756, 721, 1186, 1162, 1236, 1223, 1277, 1246, 74, 1221,
-				194, 239, 615, 78, 661, 276, 294, 291, 606, 20, 17, 21, 18, 518, 1295, 44, 670, 654, 1106, 193, 721,
-				1186, 1162, 1236, 1223, 1277, 1246, 74, 91, 766, 20, 17, 21, 18, 518, 1295, 44, 670, 654, 1106, 1778,
-				721, 1186, 1162, 1236, 1223, 1277, 1246, 74, 1580, 470, 20, 17, 21, 18, 518, 43, 44, 670, 654, 1106,
-				743, 721, 1186, 1162, 1236, 1223, 1277, 1246, 93, 64, 1179, 334, 606, 20, 17, 21, 18, 518, 43, 44, 1406,
-				513, 22, 191, 187, 316, 20, 17, 21, 18, 518, 1295, 44, 670, 654, 1106, 1613, 721, 1186, 1162, 1236,
-				1223, 1277, 1246, 74, 1693, 328, 240, 606, 20, 17, 21, 18, 518, 1295, 44, 670, 654, 1106, 443, 721,
-				1186, 1162, 1236, 1223, 1277, 1246, 74, 92, 606, 20, 17, 21, 18, 518, 1295, 44, 670, 654, 1106, 1244,
-				721, 1186, 1162, 1236, 1223, 1277, 1246, 74, 85, 606, 20, 17, 21, 18, 518, 1295, 44, 670, 654, 1106,
-				443, 721, 1186, 1162, 1236, 1223, 1277, 1246, 74, 84, 606, 20, 17, 21, 18, 518, 1295, 44, 670, 654,
-				1106, 1410, 721, 1186, 1162, 1236, 1223, 1277, 1246, 74, 83, 606, 20, 17, 21, 18, 518, 1295, 44, 670,
-				654, 1106, 443, 721, 1186, 1162, 1236, 1223, 1277, 1246, 74, 82, 606, 20, 17, 21, 18, 518, 1295, 44,
-				670, 654, 1106, 1787, 721, 1186, 1162, 1236, 1223, 1277, 1246, 74, 81, 606, 20, 17, 21, 18, 518, 1295,
-				44, 670, 654, 1106, 443, 721, 1186, 1162, 1236, 1223, 1277, 1246, 74, 80, 606, 20, 17, 21, 18, 518,
-				1295, 44, 670, 654, 1106, 1809, 721, 1186, 1162, 1236, 1223, 1277, 1246, 74, 79, 606, 20, 17, 21, 18,
-				518, 1295, 44, 670, 654, 1106, 443, 721, 1186, 1162, 1236, 1223, 1277, 1246, 74, 78, 606, 20, 17, 21,
-				18, 518, 1295, 44, 670, 654, 1106, 23, 721, 1186, 1162, 1236, 1223, 1277, 1246, 74, 77, 606, 20, 17, 21,
-				18, 518, 1295, 44, 670, 654, 1106, 443, 721, 1186, 1162, 1236, 1223, 1277, 1246, 74, 76, 606, 20, 17,
-				21, 18, 518, 1295, 44, 670, 654, 1106, 273, 721, 1186, 1162, 1236, 1223, 1277, 1246, 74, 75, 606, 20,
-				17, 21, 18, 518, 1295, 44, 670, 654, 1106, 443, 721, 1186, 1162, 1236, 1223, 1277, 1246, 74, 73, 606,
-				20, 17, 21, 18, 518, 1295, 44, 670, 654, 1106, 279, 721, 1186, 1162, 1236, 1223, 1277, 1246, 74, 1814,
-				606, 20, 17, 21, 18, 518, 1295, 44, 670, 654, 1106, 443, 721, 1186, 1162, 1236, 1223, 1277, 1246, 74,
-				1817, 606, 20, 17, 21, 18, 518, 43, 44, 670, 654, 1106, 280, 721, 1186, 1162, 1236, 1223, 1277, 1246,
-				93, 606, 20, 17, 21, 18, 518, 43, 44, 670, 654, 1106, 139, 721, 1186, 1162, 1236, 1223, 1277, 1246, 93,
-				638, 20, 17, 21, 18, 518, 324, 1818, 606, 20, 17, 21, 18, 518, 43, 40, 606, 20, 17, 21, 18, 518, 43, 44,
-				670, 654, 1106, 212, 721, 1186, 1162, 1236, 1223, 1277, 1246, 93, 606, 20, 17, 21, 18, 518, 43, 44, 670,
-				654, 1106, 349, 721, 1186, 1162, 1236, 1223, 1277, 1246, 93, 670, 20, 17, 21, 18, 518, 322, 1862, 191,
-				186, 537, 1752, 88, 225, 179, 16, 606, 20, 17, 21, 18, 518, 43, 44, 670, 654, 1106, 202, 721, 1186,
-				1162, 1236, 1223, 1277, 1246, 93, 135, 213, 326, 327, 712, 1727, 152, 398, 191, 188, 138, 134, 136, 160,
-				743, 510, 6, 113, 1665, 606, 20, 17, 21, 18, 518, 43, 39, 203, 510, 24, 1743, 1214, 443, 140, 166, 274,
-				241, 678, 383, 171, 144, 147, 150, 153, 197, 431, 218, 1450, 221, 1535, 223, 224, 229, 225, 1565, 267,
-				628, 399, 272, 260, 263, 135, 213, 326, 327, 941, 814, 88, 264, 28, 230, 142, 134, 136, 160, 1717, 1684,
-				606, 20, 17, 21, 18, 518, 43, 44, 1408, 277, 193, 325, 135, 213, 326, 327, 274, 141, 166, 1709, 798,
-				1761, 145, 134, 136, 160, 261, 218, 1450, 221, 1535, 223, 224, 229, 191, 296, 267, 628, 399, 272, 443,
-				1239, 702, 20, 17, 21, 18, 518, 320, 981, 606, 20, 17, 21, 18, 518, 43, 44, 670, 654, 1106, 230, 721,
-				1186, 1611, 606, 20, 17, 21, 18, 518, 43, 44, 670, 654, 1106, 72, 721, 1562, 606, 20, 17, 21, 18, 518,
-				43, 38, 1826, 606, 20, 17, 21, 18, 518, 43, 44, 670, 654, 1106, 647, 1575, 606, 20, 17, 21, 18, 518, 43,
-				44, 670, 654, 1106, 72, 1606, 53, 218, 1450, 221, 1535, 223, 224, 229, 227, 1826, 324, 450, 742, 191,
-				298, 1859, 606, 20, 17, 21, 18, 518, 43, 44, 670, 654, 1445, 606, 20, 17, 21, 18, 518, 43, 44, 670,
-				1522, 218, 1450, 221, 1535, 223, 224, 229, 28, 198, 200, 151, 458, 804, 1717, 1859, 813, 818, 1215, 579,
-				606, 20, 17, 21, 18, 518, 43, 44, 670, 654, 1446, 606, 20, 17, 21, 18, 518, 43, 44, 670, 654, 1447, 554,
-				1181, 228, 199, 200, 606, 20, 17, 21, 18, 518, 43, 44, 670, 654, 1451, 606, 20, 17, 21, 18, 518, 43, 44,
-				670, 1526, 502, 291, 844, 1728, 734, 20, 17, 21, 18, 518, 41, 1826, 1550, 219, 1450, 221, 1535, 223,
-				224, 229, 614, 53, 277, 53, 646, 135, 213, 326, 327, 274, 63, 855, 1763, 839, 1735, 148, 134, 136, 160,
-				218, 1450, 221, 1535, 223, 224, 229, 885, 232, 385, 267, 628, 399, 272, 1239, 135, 213, 326, 327, 1707,
-				510, 710, 227, 981, 902, 151, 134, 136, 160, 679, 135, 213, 326, 327, 77, 1360, 1214, 180, 1727, 743,
-				154, 134, 136, 160, 435, 20, 17, 21, 18, 518, 43, 36, 435, 20, 17, 21, 18, 518, 43, 36, 53, 243, 505,
-				1743, 259, 187, 246, 1023, 350, 1751, 467, 1764, 743, 659, 333, 435, 20, 17, 21, 18, 518, 43, 36, 606,
-				20, 17, 21, 18, 518, 43, 37, 1722, 87, 315, 332, 483, 195, 247, 606, 20, 17, 21, 18, 518, 43, 36, 606,
-				20, 17, 21, 18, 518, 43, 35, 361, 606, 20, 17, 21, 18, 518, 43, 47, 805, 88, 1183, 606, 20, 17, 21, 18,
-				518, 43, 46, 606, 20, 17, 21, 18, 518, 43, 45, 274, 385, 606, 20, 17, 21, 18, 518, 34, 390, 743, 1727,
-				510, 606, 20, 17, 21, 18, 518, 33, 267, 628, 399, 272, 124, 513, 896, 53, 1214, 809, 1727, 53, 242, 266,
-				930, 53, 520, 1805, 369, 63, 53, 805, 1797, 1767, 243, 707, 369, 254, 213, 326, 327, 369, 682, 1784,
-				197, 520, 259, 87, 537, 1023, 445, 1751, 197, 53, 1655, 87, 537, 197, 541, 932, 87, 537, 1655, 124, 369,
-				53, 180, 1655, 933, 529, 57, 682, 1784, 528, 63, 1759, 369, 771, 274, 1728, 197, 510, 813, 87, 537, 124,
-				254, 213, 326, 327, 1655, 550, 197, 1848, 871, 87, 537, 197, 269, 628, 399, 272, 1655, 715, 169, 855,
-				845, 1565, 254, 213, 326, 327, 124, 209, 510, 510, 901, 897, 329, 63, 204, 743, 516, 480, 743, 743, 28,
-				1664, 1799, 510, 1214, 197, 1717, 88, 659, 254, 213, 326, 327, 842, 192, 1565, 209, 244, 516, 1214, 245,
-				295, 28, 53, 737, 1532, 1224, 89, 1717, 63, 1724, 1799, 259, 53, 659, 1324, 1727, 1751, 283, 181, 884,
-				479, 39, 743, 659, 557, 1033, 259, 192, 1921, 1065, 1921, 1751, 87, 712, 1921, 1921, 1921, 1921, 1812,
-				1224, 1476, 234, 87, 1636, 297, 1921, 1921, 1921, 1921, 1921, 1921, 1860, 1921, 1921, 205, 1921, 1921,
-				1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 939, 1921, 0, 329, 701, 0, 20, 179, 0, 1, 2147, 0,
-				1, 2158, 0 };
-	}
-
-	public final static char baseAction[] = BaseAction.baseAction;
-
-	@Override
-	public final int baseAction(int index) {
-		return baseAction[index];
-	}
-
-	public final static char lhs[] = baseAction;
-
-	@Override
-	public final int lhs(int index) {
-		return lhs[index];
-	}
-
-	public interface TermCheck {
-		public final static byte termCheck[] = { 0, 0, 1, 2, 3, 4, 0, 6, 7, 8, 9, 10, 11, 12, 13, 14, 0, 16, 17, 18, 19,
-				20, 21, 22, 0, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 0, 1, 40, 41, 42, 43, 44, 45, 46,
-				47, 48, 49, 50, 51, 0, 53, 54, 55, 0, 1, 0, 3, 2, 5, 0, 0, 8, 9, 10, 5, 12, 13, 14, 0, 1, 2, 16, 17, 0,
-				0, 73, 0, 1, 23, 3, 6, 7, 70, 71, 0, 32, 33, 34, 35, 36, 37, 15, 72, 40, 41, 42, 43, 44, 45, 46, 47, 48,
-				49, 50, 51, 52, 53, 54, 55, 0, 1, 52, 3, 60, 5, 0, 61, 8, 9, 10, 0, 12, 13, 14, 64, 65, 66, 67, 8, 9,
-				10, 76, 12, 13, 14, 0, 68, 64, 65, 66, 67, 32, 33, 34, 35, 36, 37, 0, 0, 40, 41, 42, 43, 44, 45, 46, 47,
-				48, 49, 50, 51, 52, 53, 54, 55, 0, 1, 0, 3, 60, 5, 0, 0, 8, 9, 10, 0, 12, 13, 14, 8, 9, 10, 0, 12, 13,
-				14, 0, 1, 0, 3, 56, 57, 4, 23, 0, 0, 32, 33, 34, 35, 36, 37, 56, 57, 40, 41, 42, 43, 44, 45, 46, 47, 48,
-				49, 50, 51, 52, 53, 54, 55, 0, 1, 0, 3, 60, 0, 4, 0, 8, 9, 10, 61, 12, 13, 14, 8, 9, 10, 0, 12, 13, 14,
-				4, 77, 78, 0, 64, 65, 66, 67, 62, 63, 32, 33, 34, 35, 36, 37, 0, 0, 40, 41, 42, 43, 44, 45, 46, 47, 48,
-				49, 50, 51, 0, 53, 54, 55, 0, 1, 2, 3, 4, 5, 6, 7, 62, 63, 0, 11, 2, 0, 0, 5, 16, 17, 18, 19, 20, 21,
-				22, 74, 24, 25, 26, 27, 28, 29, 30, 31, 32, 23, 38, 0, 1, 2, 3, 4, 5, 6, 7, 0, 0, 0, 11, 4, 0, 39, 5,
-				16, 17, 18, 19, 20, 21, 22, 58, 24, 25, 26, 27, 28, 29, 30, 31, 32, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 0, 11,
-				0, 11, 2, 38, 4, 15, 16, 17, 18, 19, 20, 21, 22, 58, 24, 25, 26, 27, 28, 29, 30, 31, 0, 23, 0, 62, 63,
-				59, 4, 0, 8, 9, 10, 69, 12, 13, 14, 0, 1, 2, 75, 4, 52, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 0, 32,
-				33, 34, 35, 36, 37, 23, 72, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 0, 1, 2, 3, 4, 5, 6, 7, 0,
-				59, 0, 11, 2, 5, 4, 0, 16, 17, 18, 19, 20, 21, 22, 0, 24, 25, 26, 27, 28, 29, 30, 31, 0, 23, 0, 0, 1, 2,
-				3, 4, 5, 6, 7, 11, 0, 0, 11, 39, 0, 5, 5, 16, 17, 18, 19, 20, 21, 22, 58, 24, 25, 26, 27, 28, 29, 30,
-				31, 0, 1, 2, 0, 1, 2, 3, 4, 0, 6, 7, 0, 56, 57, 11, 38, 39, 39, 0, 16, 17, 18, 19, 20, 21, 22, 58, 24,
-				25, 26, 27, 28, 29, 30, 31, 0, 1, 89, 3, 0, 0, 1, 2, 3, 4, 0, 6, 7, 0, 68, 15, 11, 0, 1, 2, 15, 16, 17,
-				18, 19, 20, 21, 22, 60, 24, 25, 26, 27, 28, 29, 30, 31, 0, 1, 2, 3, 4, 38, 6, 7, 0, 0, 1, 11, 3, 74, 0,
-				15, 16, 17, 18, 19, 20, 21, 22, 15, 24, 25, 26, 27, 28, 29, 30, 31, 0, 1, 2, 3, 4, 23, 6, 7, 0, 0, 1,
-				11, 3, 69, 6, 7, 16, 17, 18, 19, 20, 21, 22, 0, 24, 25, 26, 27, 28, 29, 30, 31, 0, 1, 2, 3, 4, 0, 6, 7,
-				0, 0, 1, 11, 3, 0, 6, 7, 16, 17, 18, 19, 20, 21, 22, 0, 24, 25, 26, 27, 28, 29, 30, 31, 0, 1, 2, 3, 4,
-				0, 6, 7, 0, 0, 5, 11, 0, 1, 23, 3, 16, 17, 18, 19, 20, 21, 22, 15, 24, 25, 26, 27, 28, 29, 30, 31, 0, 1,
-				2, 3, 4, 0, 6, 7, 0, 4, 0, 11, 39, 0, 1, 38, 16, 17, 18, 19, 20, 21, 22, 0, 24, 25, 26, 27, 28, 29, 30,
-				31, 0, 1, 2, 3, 4, 0, 6, 7, 0, 0, 0, 11, 0, 1, 5, 3, 16, 17, 18, 19, 20, 21, 22, 15, 24, 25, 26, 27, 28,
-				29, 30, 31, 0, 1, 2, 3, 4, 59, 6, 7, 59, 0, 0, 11, 2, 0, 70, 71, 16, 17, 18, 19, 20, 21, 22, 0, 24, 25,
-				26, 27, 28, 29, 30, 31, 0, 23, 2, 58, 4, 5, 0, 0, 8, 9, 10, 0, 12, 13, 14, 0, 0, 0, 1, 2, 0, 4, 0, 23,
-				8, 9, 10, 5, 12, 13, 14, 0, 32, 33, 34, 35, 36, 37, 23, 39, 23, 0, 0, 2, 0, 38, 0, 0, 32, 33, 34, 35,
-				36, 37, 8, 9, 10, 0, 12, 13, 14, 0, 56, 57, 23, 8, 9, 10, 0, 12, 13, 14, 0, 0, 52, 0, 56, 57, 32, 33,
-				34, 35, 36, 37, 73, 38, 0, 0, 15, 32, 33, 34, 35, 36, 37, 8, 9, 10, 0, 12, 13, 14, 0, 0, 0, 0, 8, 9, 10,
-				5, 12, 13, 14, 69, 0, 0, 0, 0, 15, 32, 33, 34, 35, 36, 37, 8, 9, 10, 0, 12, 13, 14, 0, 0, 0, 0, 8, 9,
-				10, 23, 12, 13, 14, 0, 1, 2, 0, 15, 5, 15, 15, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 23, 15,
-				15, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 75, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static byte termCheck[] = TermCheck.termCheck;
-
-	@Override
-	public final int termCheck(int index) {
-		return termCheck[index];
-	}
-
-	public interface TermAction {
-		public final static char termAction[] = { 0, 1921, 1932, 1710, 1933, 1639, 68, 1624, 1363, 2135, 2136, 2137,
-				1647, 2251, 655, 2252, 62, 1696, 1685, 1506, 1934, 1935, 1936, 1937, 66, 1226, 1123, 2238, 2239, 2240,
-				1326, 1171, 1115, 2084, 2085, 2083, 2138, 2086, 2082, 1921, 2159, 2089, 2094, 2093, 2091, 2092, 2090,
-				2095, 2096, 2088, 2097, 2098, 2099, 1, 1383, 653, 515, 1921, 1, 32, 1, 1816, 191, 1921, 59, 1, 1, 1,
-				1929, 1, 1, 1, 1, 2147, 1502, 1947, 1948, 61, 51, 612, 1921, 1932, 1842, 1933, 1284, 724, 1385, 1372,
-				253, 1, 1, 1, 1, 1, 1, 1523, 1334, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 191, 1, 1, 1, 1921, 1, 1928, 1,
-				2117, 190, 182, 441, 1, 1, 1, 1921, 1, 1, 1, 1481, 1465, 1454, 1414, 2135, 2136, 2137, 439, 2251, 655,
-				2252, 54, 1151, 1481, 1465, 1454, 1414, 1, 1, 1, 1, 1, 1, 58, 183, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				190, 1, 1, 1, 1921, 1, 72, 1, 2117, 191, 1921, 248, 1, 1, 1, 286, 1, 1, 1, 2135, 2136, 2137, 60, 2251,
-				655, 2252, 1921, 1932, 48, 1933, 1425, 1492, 1675, 1075, 1921, 1921, 1, 1, 1, 1, 1, 1, 1425, 1492, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 191, 1, 1, 1, 1921, 1932, 50, 1933, 2117, 70, 1675, 249, 2135, 2136, 2137,
-				1318, 2251, 655, 2252, 1, 1, 1, 1921, 1, 1, 1, 400, 406, 1852, 1921, 1481, 1465, 1454, 1414, 1667, 1656,
-				2084, 2085, 2083, 2138, 2086, 2082, 1921, 1921, 2089, 2094, 2093, 2091, 2092, 2090, 2095, 2096, 2088,
-				2097, 2098, 2099, 88, 1383, 653, 515, 1, 1932, 1710, 1933, 1585, 1925, 1624, 1363, 1667, 1656, 1, 1647,
-				1503, 1921, 1921, 1927, 1696, 1685, 1506, 1934, 1935, 1936, 1937, 471, 1226, 1123, 2238, 2239, 2240,
-				1326, 1171, 1115, 680, 630, 760, 1921, 1932, 1710, 1933, 1616, 1925, 1624, 1363, 49, 43, 1921, 1647,
-				1675, 1, 1926, 1931, 1696, 1685, 1506, 1934, 1935, 1936, 1937, 1924, 1226, 1123, 2238, 2239, 2240, 1326,
-				1171, 1115, 1054, 64, 67, 1, 1932, 1710, 1933, 1639, 29, 1624, 1363, 1921, 1349, 265, 1647, 1503, 1396,
-				1, 3109, 1696, 1685, 1506, 1934, 1935, 1936, 1937, 1924, 1226, 1123, 2238, 2239, 2240, 1326, 1171, 1115,
-				129, 630, 1, 1667, 1656, 2179, 253, 1921, 2135, 2136, 2137, 991, 2251, 655, 2252, 262, 2147, 1272, 1930,
-				1, 29, 970, 949, 928, 907, 886, 844, 865, 823, 802, 781, 1921, 2084, 2085, 2083, 2138, 2086, 2082, 630,
-				1334, 2089, 2094, 2093, 2091, 2092, 2090, 2095, 2096, 2088, 2097, 2098, 2099, 1921, 1932, 1710, 1933,
-				1639, 1925, 1624, 1363, 1921, 2179, 268, 1647, 1503, 1927, 253, 1921, 1696, 1685, 1506, 1934, 1935,
-				1936, 1937, 57, 1226, 1123, 2238, 2239, 2240, 1326, 1171, 1115, 65, 630, 1921, 1921, 1932, 1710, 1933,
-				1593, 1925, 1624, 1363, 1349, 1921, 1, 1647, 1926, 1921, 1927, 90, 1696, 1685, 1506, 1934, 1935, 1936,
-				1937, 1924, 1226, 1123, 2238, 2239, 2240, 1326, 1171, 1115, 1, 2147, 1502, 1921, 1, 1, 1, 1, 1921, 1, 1,
-				71, 1425, 1492, 1, 1861, 1926, 90, 1921, 1, 1, 1, 1, 1, 1, 1, 1924, 1, 1, 1, 1, 1, 1, 1, 1, 1921, 1932,
-				1908, 1933, 256, 1, 1932, 1710, 1933, 1639, 1921, 1624, 1363, 211, 1012, 1525, 1647, 253, 2147, 1502,
-				3109, 1696, 1685, 1506, 1934, 1935, 1936, 1937, 2237, 1226, 1123, 2238, 2239, 2240, 1326, 1171, 1115,
-				1921, 1932, 1710, 1933, 1639, 1211, 1624, 1363, 1921, 185, 3233, 1647, 3233, 471, 271, 3109, 1696, 1685,
-				1506, 1934, 1935, 1936, 1937, 3109, 1226, 1123, 2238, 2239, 2240, 1326, 1171, 1115, 1921, 1932, 1710,
-				1933, 1639, 630, 1624, 1363, 53, 184, 3239, 1647, 3239, 1095, 1284, 724, 1696, 1685, 1506, 1934, 1935,
-				1936, 1937, 1921, 1226, 1123, 2238, 2239, 2240, 1326, 1171, 1115, 1921, 1932, 1718, 1933, 1639, 1921,
-				1624, 1363, 52, 206, 3240, 1647, 3240, 1921, 1284, 724, 1696, 1685, 1506, 1934, 1935, 1936, 1937, 329,
-				1226, 1123, 2238, 2239, 2240, 1326, 1171, 1115, 1921, 1932, 1723, 1933, 1639, 1, 1624, 1363, 325, 30,
-				1927, 1647, 208, 1932, 1909, 1933, 1696, 1685, 1506, 1934, 1935, 1936, 1937, 3109, 1226, 1123, 2238,
-				2239, 2240, 1326, 1171, 1115, 1921, 1932, 1746, 1933, 1639, 1921, 1624, 1363, 63, 1274, 1, 1647, 1926,
-				1, 1918, 489, 1696, 1685, 1506, 1934, 1935, 1936, 1937, 1921, 1226, 1123, 2238, 2239, 2240, 1326, 1171,
-				1115, 1921, 1932, 1758, 1933, 1639, 1921, 1624, 1363, 323, 1921, 1921, 1647, 207, 531, 1925, 531, 1696,
-				1685, 1506, 1934, 1935, 1936, 1937, 3109, 1226, 1123, 2238, 2239, 2240, 1326, 1171, 1115, 1, 1932, 1710,
-				1933, 1639, 2178, 1624, 1363, 2179, 1921, 270, 1647, 380, 1921, 1385, 1372, 1696, 1685, 1506, 1934,
-				1935, 1936, 1937, 1921, 1226, 1123, 2238, 2239, 2240, 1326, 1171, 1115, 20, 630, 1912, 1924, 1912, 1912,
-				56, 30, 179, 179, 179, 69, 179, 179, 179, 220, 130, 268, 2147, 1272, 55, 253, 285, 1912, 2135, 2136,
-				2137, 519, 2251, 655, 2252, 1921, 179, 179, 179, 179, 179, 179, 630, 1912, 630, 222, 1921, 417, 1921,
-				1950, 131, 207, 2084, 2085, 2083, 2138, 2086, 2082, 2135, 2136, 2137, 132, 2251, 655, 2252, 1921, 1425,
-				1492, 630, 2135, 2136, 2137, 1921, 2251, 655, 2252, 1921, 321, 519, 1921, 1425, 1492, 2084, 2085, 2083,
-				2138, 2086, 2082, 612, 3035, 201, 133, 3109, 2084, 2085, 2083, 2138, 2086, 2082, 2135, 2136, 2137, 250,
-				2251, 655, 2252, 1921, 42, 1, 1921, 1, 1, 1, 1931, 1, 1, 1, 591, 1921, 1921, 292, 251, 3109, 2084, 2085,
-				2083, 2138, 2086, 2082, 2135, 2136, 2137, 252, 2251, 655, 2252, 1921, 1921, 1921, 1921, 2135, 2136,
-				2137, 1131, 2251, 655, 2252, 1, 1915, 1272, 189, 1398, 1927, 1601, 1714, 1921, 189, 189, 1187, 1921,
-				1921, 1921, 1921, 1921, 1921, 185, 1921, 1921, 1921, 1921, 630, 184, 206, 1921, 1921, 1921, 1921, 1921,
-				1921, 1921, 1921, 1411, 1921, 1930, 1921, 1921, 1926 };
-	}
-
-	public final static char termAction[] = TermAction.termAction;
-
-	@Override
-	public final int termAction(int index) {
-		return termAction[index];
-	}
-
-	public interface Asb {
-		public final static char asb[] = { 0, 443, 1, 89, 69, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 119, 31,
-				51, 48, 55, 53, 61, 59, 63, 62, 65, 64, 37, 89, 119, 119, 119, 119, 318, 318, 263, 119, 354, 354, 472,
-				89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
-				89, 89, 89, 89, 89, 318, 318, 318, 318, 29, 267, 80, 321, 316, 315, 235, 112, 247, 27, 247, 27, 27, 247,
-				27, 247, 139, 269, 318, 73, 48, 48, 53, 53, 53, 53, 51, 51, 59, 55, 55, 62, 61, 402, 64, 63, 195, 195,
-				195, 195, 387, 29, 263, 267, 83, 73, 162, 170, 318, 404, 324, 170, 27, 354, 354, 27, 354, 89, 387, 5,
-				267, 255, 162, 73, 169, 80, 318, 261, 139, 317, 326, 73, 170, 29, 357, 29, 390, 5, 255, 255, 89, 89, 73,
-				170, 321, 397, 396, 267, 326, 318, 29, 357, 390, 390, 392, 77, 255, 162, 73, 73, 318, 404, 324, 261,
-				357, 387, 436, 357, 390, 392, 467, 392, 387, 3, 470, 354, 89, 76, 162, 255, 326, 357, 438, 392, 387, 89,
-				354, 31, 7, 73, 354, 89, 255, 318, 317, 387, 231, 89, 230, 108, 267, 387, 73, 355, 438, 89, 108 };
-	}
-
-	public final static char asb[] = Asb.asb;
-
-	@Override
-	public final int asb(int index) {
-		return asb[index];
-	}
-
-	public interface Asr {
-		public final static byte asr[] = { 0, 89, 0, 5, 52, 23, 61, 16, 17, 11, 4, 6, 7, 24, 25, 18, 29, 30, 31, 2, 19,
-				20, 21, 22, 26, 27, 28, 1, 3, 15, 0, 23, 2, 61, 76, 16, 17, 69, 79, 80, 81, 82, 83, 85, 84, 86, 87, 88,
-				4, 62, 63, 6, 7, 57, 56, 64, 65, 66, 67, 70, 71, 11, 72, 73, 74, 52, 75, 77, 78, 68, 39, 89, 38, 58, 5,
-				0, 69, 23, 61, 0, 58, 5, 32, 8, 9, 10, 12, 13, 14, 19, 20, 21, 22, 26, 27, 28, 3, 16, 17, 11, 6, 7, 24,
-				25, 18, 29, 30, 31, 4, 2, 1, 0, 5, 68, 38, 58, 39, 75, 23, 18, 19, 20, 21, 22, 2, 16, 17, 11, 4, 6, 7,
-				24, 25, 26, 27, 28, 29, 30, 31, 1, 3, 53, 54, 55, 48, 40, 45, 43, 44, 42, 41, 46, 47, 49, 50, 51, 37,
-				34, 32, 33, 36, 35, 8, 9, 10, 13, 12, 14, 0, 32, 58, 5, 16, 17, 11, 4, 6, 7, 24, 25, 18, 29, 30, 31, 2,
-				1, 3, 19, 20, 21, 22, 26, 27, 28, 0, 11, 4, 6, 7, 62, 63, 56, 57, 64, 65, 66, 67, 70, 71, 72, 73, 74,
-				77, 78, 69, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 58, 39, 52, 89, 15, 68, 75, 5, 38, 0, 48, 40, 45,
-				43, 44, 42, 41, 46, 47, 49, 50, 51, 68, 75, 37, 34, 32, 33, 36, 35, 8, 9, 10, 12, 13, 14, 38, 1, 5, 39,
-				2, 23, 4, 0, 9, 32, 37, 10, 36, 35, 34, 8, 33, 12, 13, 14, 61, 76, 16, 17, 11, 6, 7, 62, 63, 56, 57, 64,
-				65, 66, 67, 70, 71, 72, 73, 74, 77, 78, 69, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 4, 2, 23, 38, 39, 5,
-				0, 4, 2, 23, 39, 5, 33, 40, 8, 41, 53, 34, 42, 35, 43, 44, 36, 9, 45, 46, 32, 54, 37, 55, 47, 48, 10,
-				49, 50, 51, 12, 13, 14, 59, 3, 1, 0, 33, 40, 8, 41, 53, 34, 42, 35, 43, 44, 36, 9, 45, 46, 32, 54, 37,
-				55, 47, 48, 10, 49, 50, 51, 1, 3, 12, 13, 14, 60, 5, 52, 0, 1, 3, 5, 52, 38, 0, 2, 5, 38, 39, 75, 23,
-				68, 0, 4, 33, 40, 8, 41, 53, 34, 42, 35, 43, 44, 36, 9, 45, 46, 32, 54, 37, 55, 47, 48, 10, 49, 50, 51,
-				1, 3, 12, 13, 14, 59, 0, 75, 5, 4, 1, 2, 68, 0, 18, 19, 20, 21, 22, 1, 3, 2, 16, 17, 11, 4, 6, 7, 24,
-				25, 26, 27, 28, 29, 30, 31, 60, 0, 5, 38, 52, 69, 0, 5, 39, 18, 19, 20, 21, 22, 1, 3, 2, 16, 17, 11, 4,
-				6, 7, 24, 25, 26, 27, 28, 29, 30, 31, 0 };
-	}
-
-	public final static byte asr[] = Asr.asr;
-
-	@Override
-	public final int asr(int index) {
-		return asr[index];
-	}
-
-	public interface Nasb {
-		public final static byte nasb[] = { 0, 99, 35, 26, 35, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 102, 35,
-				35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 26, 102, 102, 102, 102, 10, 10, 85, 1, 21, 21, 122, 103, 26,
-				26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 103, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
-				26, 26, 26, 10, 10, 10, 10, 12, 57, 48, 84, 15, 15, 65, 52, 66, 19, 66, 82, 82, 66, 81, 66, 60, 35, 10,
-				50, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 12, 12, 12, 12, 79, 35, 106, 35, 54,
-				50, 110, 49, 10, 89, 9, 49, 7, 7, 7, 7, 7, 26, 44, 79, 35, 42, 110, 50, 49, 36, 10, 75, 28, 35, 91, 50,
-				49, 68, 79, 35, 79, 24, 42, 79, 26, 26, 50, 49, 74, 15, 15, 57, 91, 10, 35, 114, 79, 7, 97, 17, 79, 110,
-				50, 50, 10, 89, 9, 38, 79, 44, 94, 70, 7, 97, 35, 35, 44, 23, 35, 7, 26, 46, 110, 36, 118, 114, 77, 97,
-				44, 26, 7, 112, 25, 50, 7, 26, 36, 10, 10, 44, 95, 26, 35, 77, 57, 44, 50, 35, 77, 26, 40 };
-	}
-
-	public final static byte nasb[] = Nasb.nasb;
-
-	@Override
-	public final int nasb(int index) {
-		return nasb[index];
-	}
-
-	public interface Nasr {
-		public final static char nasr[] = { 0, 80, 78, 77, 68, 76, 75, 1, 0, 11, 21, 0, 38, 32, 0, 28, 0, 100, 0, 91, 0,
-				73, 0, 88, 11, 38, 5, 0, 80, 79, 78, 77, 68, 76, 75, 0, 23, 0, 50, 49, 42, 40, 29, 0, 46, 0, 102, 0, 11,
-				5, 22, 0, 103, 0, 5, 11, 0, 29, 54, 0, 68, 63, 64, 65, 66, 56, 33, 0, 92, 0, 11, 37, 70, 0, 21, 50, 49,
-				42, 40, 11, 0, 94, 69, 0, 21, 49, 50, 11, 0, 29, 54, 11, 27, 0, 11, 72, 0, 62, 0, 11, 89, 0, 37, 11, 31,
-				0, 50, 49, 29, 0, 59, 0, 98, 0, 82, 11, 37, 0, 95, 11, 27, 0, 11, 90, 0 };
-	}
-
-	public final static char nasr[] = Nasr.nasr;
-
-	@Override
-	public final int nasr(int index) {
-		return nasr[index];
-	}
-
-	public interface TerminalIndex {
-		public final static char terminalIndex[] = { 0, 85, 2, 86, 9, 87, 10, 11, 48, 64, 76, 8, 96, 97, 98, 3, 6, 7,
-				68, 81, 82, 83, 84, 1, 12, 13, 93, 94, 95, 100, 101, 102, 69, 44, 55, 60, 63, 72, 42, 90, 47, 52, 56,
-				61, 62, 66, 67, 74, 75, 78, 79, 80, 91, 54, 70, 73, 16, 17, 89, 30, 107, 4, 14, 15, 18, 19, 20, 21, 29,
-				31, 22, 23, 24, 25, 26, 92, 5, 27, 28, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 108, 45, 46, 49, 50, 51,
-				53, 57, 58, 59, 65, 71, 77, 88, 99, 103, 104, 105, 106 };
-	}
-
-	public final static char terminalIndex[] = TerminalIndex.terminalIndex;
-
-	@Override
-	public final int terminalIndex(int index) {
-		return terminalIndex[index];
-	}
-
-	public interface NonterminalIndex {
-		public final static char nonterminalIndex[] = { 0, 114, 0, 0, 0, 116, 120, 121, 122, 123, 124, 0, 125, 126, 127,
-				128, 129, 130, 131, 0, 132, 111, 110, 142, 0, 0, 0, 135, 163, 0, 0, 115, 119, 141, 0, 0, 0, 154, 0, 159,
-				161, 0, 162, 0, 0, 0, 112, 134, 172, 173, 174, 0, 118, 150, 160, 169, 144, 0, 164, 167, 168, 171, 0,
-				145, 146, 147, 148, 149, 151, 0, 153, 158, 113, 117, 133, 136, 137, 138, 139, 140, 143, 0, 152, 156, 0,
-				0, 157, 166, 176, 109, 0, 0, 0, 155, 0, 165, 170, 175, 0, 177, 178, 0, 179, 180, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
-
-	@Override
-	public final int nonterminalIndex(int index) {
-		return nonterminalIndex[index];
-	}
-
-	public interface ScopePrefix {
-		public final static char scopePrefix[] = { 120, 151, 130, 59, 69, 159, 26, 186, 35, 87, 105, 75, 6, 12, 16, 40,
-				83, 52, 141, 202, 212, 216, 52, 52, 195, 52, 1, 1, 1, 44, 47, 92, 115, 47, 220, 20, 145, 206, 177, 137,
-				165, 165, 165, 165, 165, 95, 95, 95 };
-	}
-
-	public final static char scopePrefix[] = ScopePrefix.scopePrefix;
-
-	@Override
-	public final int scopePrefix(int index) {
-		return scopePrefix[index];
-	}
-
-	public interface ScopeSuffix {
-		public final static char scopeSuffix[] = { 128, 128, 128, 4, 4, 128, 32, 192, 10, 4, 10, 80, 10, 10, 10, 10, 4,
-				4, 139, 10, 10, 4, 56, 80, 199, 65, 4, 4, 4, 10, 50, 4, 10, 118, 10, 23, 148, 209, 180, 139, 167, 169,
-				171, 173, 175, 102, 97, 110 };
-	}
-
-	public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
-
-	@Override
-	public final int scopeSuffix(int index) {
-		return scopeSuffix[index];
-	}
-
-	public interface ScopeLhs {
-		public final static char scopeLhs[] = { 65, 63, 65, 28, 28, 63, 32, 111, 51, 28, 45, 28, 6, 6, 6, 51, 28, 28,
-				70, 6, 5, 5, 28, 28, 19, 28, 103, 102, 101, 49, 61, 28, 42, 53, 3, 88, 70, 5, 112, 70, 79, 78, 77, 76,
-				75, 45, 43, 45 };
-	}
-
-	public final static char scopeLhs[] = ScopeLhs.scopeLhs;
-
-	@Override
-	public final int scopeLhs(int index) {
-		return scopeLhs[index];
-	}
-
-	public interface ScopeLa {
-		public final static byte scopeLa[] = { 52, 52, 52, 58, 58, 52, 52, 95, 39, 58, 39, 19, 39, 39, 39, 39, 58, 58,
-				75, 39, 39, 58, 4, 19, 68, 32, 58, 58, 58, 39, 2, 58, 39, 1, 39, 69, 1, 39, 101, 75, 1, 53, 54, 54, 48,
-				2, 2, 2 };
-	}
-
-	public final static byte scopeLa[] = ScopeLa.scopeLa;
-
-	@Override
-	public final int scopeLa(int index) {
-		return scopeLa[index];
-	}
-
-	public interface ScopeStateSet {
-		public final static byte scopeStateSet[] = { 28, 28, 28, 32, 32, 28, 19, -1, 36, 32, 9, 32, 43, 43, 43, 36, 32,
-				32, 5, 43, 43, 43, 32, 32, 76, 32, 17, 1, 3, 36, 38, 32, 9, 11, 43, 103, 5, 43, -1, 5, 29, 29, 29, 29,
-				29, 9, 9, 9 };
-	}
-
-	public final static byte scopeStateSet[] = ScopeStateSet.scopeStateSet;
-
-	@Override
-	public final int scopeStateSet(int index) {
-		return scopeStateSet[index];
-	}
-
-	public interface ScopeRhs {
-		public final static char scopeRhs[] = { 0, 154, 23, 0, 110, 0, 159, 2, 31, 0, 111, 0, 159, 2, 30, 0, 159, 2, 29,
-				0, 206, 118, 0, 31, 149, 0, 169, 204, 118, 15, 145, 0, 112, 0, 0, 165, 118, 2, 156, 0, 165, 118, 2, 0,
-				168, 2, 0, 161, 118, 0, 172, 0, 194, 118, 23, 0, 9, 110, 0, 127, 32, 194, 118, 23, 0, 69, 132, 110, 0,
-				127, 194, 118, 32, 23, 0, 194, 118, 32, 23, 0, 132, 110, 0, 127, 32, 23, 0, 127, 194, 118, 23, 0, 127,
-				23, 0, 149, 0, 2, 0, 165, 111, 0, 2, 111, 0, 165, 118, 2, 149, 0, 2, 0, 164, 111, 0, 160, 2, 0, 159, 0,
-				169, 192, 118, 15, 108, 201, 53, 0, 112, 0, 169, 192, 118, 15, 201, 53, 0, 144, 0, 113, 0, 200, 118,
-				144, 0, 118, 144, 0, 155, 113, 0, 188, 118, 15, 199, 108, 198, 175, 0, 188, 118, 15, 198, 175, 0, 187,
-				0, 148, 0, 147, 0, 146, 0, 145, 0, 144, 0, 214, 94, 0, 77, 2, 115, 111, 113, 0, 214, 128, 138, 2, 98, 0,
-				53, 0, 0, 138, 78, 125, 0, 29, 132, 0, 159, 2, 18, 0, 159, 2, 0, 111, 119, 0, 197, 2, 112, 0, 138, 23,
-				112, 0, 138, 2, 0 };
-	}
-
-	public final static char scopeRhs[] = ScopeRhs.scopeRhs;
-
-	@Override
-	public final int scopeRhs(int index) {
-		return scopeRhs[index];
-	}
-
-	public interface ScopeState {
-		public final static char scopeState[] = { 0, 555, 0, 424, 0, 1797, 1224, 1763, 0, 1476, 520, 1396, 1502, 1360,
-				1272, 1214, 0, 655, 0, 591, 489, 450, 1809, 1787, 1410, 1244, 398, 0, 1184, 510, 369, 0, 1535, 1450,
-				628, 399, 520, 1743, 1272, 1214, 1503, 1655, 0, 1616, 1593, 1585, 471, 406, 1334, 612, 1385, 1372, 1349,
-				1492, 1425, 1481, 1465, 1454, 1414, 1675, 1667, 1656, 1284, 724, 1696, 1685, 1647, 1639, 1624, 1363,
-				1226, 1123, 1506, 1326, 1171, 1115, 1187, 1151, 1131, 591, 1095, 1075, 1054, 1033, 737, 1012, 701, 680,
-				630, 991, 970, 949, 928, 907, 886, 865, 844, 823, 802, 781, 369, 760, 659, 489, 450, 0 };
-	}
-
-	public final static char scopeState[] = ScopeState.scopeState;
-
-	@Override
-	public final int scopeState(int index) {
-		return scopeState[index];
-	}
-
-	public interface InSymb {
-		public final static char inSymb[] = { 0, 0, 196, 118, 181, 31, 30, 29, 18, 25, 24, 7, 6, 4, 11, 17, 16, 2, 112,
-				116, 115, 119, 117, 121, 120, 123, 122, 125, 124, 113, 38, 2, 2, 2, 2, 159, 138, 144, 118, 76, 61, 2,
-				23, 7, 6, 63, 62, 4, 67, 66, 65, 64, 56, 57, 11, 71, 70, 73, 72, 78, 77, 74, 88, 87, 86, 84, 85, 83, 82,
-				81, 80, 79, 69, 159, 159, 159, 159, 128, 118, 23, 2, 157, 156, 182, 13, 183, 175, 184, 55, 54, 185, 53,
-				186, 187, 108, 197, 138, 115, 115, 117, 117, 117, 117, 116, 116, 120, 119, 119, 122, 121, 138, 124, 123,
-				128, 128, 128, 128, 15, 145, 161, 136, 32, 127, 118, 4, 168, 118, 2, 23, 198, 176, 176, 201, 176, 68,
-				118, 15, 136, 4, 118, 127, 194, 166, 165, 134, 118, 167, 118, 154, 4, 108, 15, 108, 15, 118, 4, 136,
-				194, 32, 127, 4, 2, 147, 149, 118, 38, 165, 199, 118, 15, 118, 204, 118, 136, 118, 127, 127, 160, 118,
-				2, 161, 15, 188, 144, 189, 118, 192, 108, 193, 169, 38, 206, 61, 23, 207, 118, 166, 118, 118, 118, 192,
-				169, 69, 38, 153, 69, 154, 61, 23, 166, 165, 202, 188, 200, 68, 160, 2, 118, 169, 154, 38, 38, 68,
-				161 };
-	}
-
-	public final static char inSymb[] = InSymb.inSymb;
-
-	@Override
-	public final int inSymb(int index) {
-		return inSymb[index];
-	}
-
-	public interface Name {
-		public final static String name[] = { "", "[", "(", "{", ".", "->", "++", "--", "&", "*", "+", "-", "~", "!",
-				"/", "%", ">>", "<<", "<", ">", "<=", ">=", "==", "!=", "^", "|", "&&", "||", "?", ":", "...", "=",
-				"*=", "/=", "%=", "+=", "-=", ">>=", "<<=", "&=", "^=", "|=", ",", "$empty", "auto", "break", "case",
-				"char", "const", "continue", "default", "do", "double", "else", "enum", "extern", "float", "for",
-				"goto", "if", "inline", "int", "long", "register", "restrict", "return", "short", "signed", "sizeof",
-				"static", "struct", "switch", "typedef", "union", "unsigned", "void", "volatile", "while", "_Bool",
-				"_Complex", "_Imaginary", "integer", "floating", "charconst", "stringlit", "identifier", "Completion",
-				"EndOfCompletion", "Invalid", "RightBracket", "RightParen", "RightBrace", "SemiColon", "MYTHREAD",
-				"THREADS", "UPC_MAX_BLOCKSIZE", "relaxed", "shared", "strict", "upc_barrier", "upc_localsizeof",
-				"upc_blocksizeof", "upc_elemsizeof", "upc_notify", "upc_fence", "upc_wait", "upc_forall", "ERROR_TOKEN",
-				"EOF_TOKEN", "no_cast_start", "]", ")", "}", ";", "identifier_token", "expression",
-				"postfix_expression", "member_name", "type_id", "initializer_list", "unary_expression",
-				"cast_expression", "multiplicative_expression", "additive_expression", "shift_expression",
-				"relational_expression", "equality_expression", "and_expression", "exclusive_or_expression",
-				"inclusive_or_expression", "logical_and_expression", "logical_or_expression", "assignment_expression",
-				"expression_list_actual", "constant_expression", "declaration_specifiers",
-				"simple_declaration_specifiers", "struct_or_union_declaration_sp" + "ecifiers",
-				"elaborated_declaration_specifi" + "ers", "enum_declaration_specifiers",
-				"typdef_name_declaration_specif" + "iers", "no_type_declaration_specifier", "type_qualifier",
-				"no_type_declaration_specifiers", "simple_type_specifier", "struct_or_union_specifier",
-				"elaborated_specifier", "enum_specifier", "type_name_specifier", "initializer", "declarator",
-				"struct_or_union", "struct_declaration_list", "struct_declaration", "specifier_qualifier_list",
-				"struct_declarator_list", "complete_struct_declarator", "enumerator_list", "enumerator",
-				"direct_declarator", "pointer_seq", "array_direct_declarator", "basic_direct_declarator",
-				"array_modifier", "parameter_type_list", "identifier_list", "array_modifier_type_qualifiers",
-				"type_qualifier_list", "parameter_list", "parameter_declaration", "complete_parameter_declarator",
-				"abstract_declarator", "direct_abstract_declarator", "basic_direct_abstract_declarat" + "or",
-				"array_direct_abstract_declarat" + "or", "initializer_seq", "designated_initializer", "designation",
-				"designator_list", "designator", "layout_qualifier" };
-	}
-
-	public final static String name[] = Name.name;
-
-	@Override
-	public final String name(int index) {
-		return name[index];
-	}
-
-	public final static int ERROR_SYMBOL = 60, SCOPE_UBOUND = 47, SCOPE_SIZE = 48, MAX_NAME_LENGTH = 38;
-
-	@Override
-	public final int getErrorSymbol() {
-		return ERROR_SYMBOL;
-	}
-
-	@Override
-	public final int getScopeUbound() {
-		return SCOPE_UBOUND;
-	}
-
-	@Override
-	public final int getScopeSize() {
-		return SCOPE_SIZE;
-	}
-
-	@Override
-	public final int getMaxNameLength() {
-		return MAX_NAME_LENGTH;
-	}
-
-	public final static int NUM_STATES = 223, NT_OFFSET = 107, LA_STATE_OFFSET = 2289, MAX_LA = 2, NUM_RULES = 368,
-			NUM_NONTERMINALS = 131, NUM_SYMBOLS = 238, SEGMENT_SIZE = 8192, START_STATE = 1603, IDENTIFIER_SYMBOL = 0,
-			EOFT_SYMBOL = 89, EOLT_SYMBOL = 89, ACCEPT_ACTION = 1908, ERROR_ACTION = 1921;
-
-	public final static boolean BACKTRACK = true;
-
-	@Override
-	public final int getNumStates() {
-		return NUM_STATES;
-	}
-
-	@Override
-	public final int getNtOffset() {
-		return NT_OFFSET;
-	}
-
-	@Override
-	public final int getLaStateOffset() {
-		return LA_STATE_OFFSET;
-	}
-
-	@Override
-	public final int getMaxLa() {
-		return MAX_LA;
-	}
-
-	@Override
-	public final int getNumRules() {
-		return NUM_RULES;
-	}
-
-	@Override
-	public final int getNumNonterminals() {
-		return NUM_NONTERMINALS;
-	}
-
-	@Override
-	public final int getNumSymbols() {
-		return NUM_SYMBOLS;
-	}
-
-	@Override
-	public final int getSegmentSize() {
-		return SEGMENT_SIZE;
-	}
-
-	@Override
-	public final int getStartState() {
-		return START_STATE;
-	}
-
-	@Override
-	public final int getStartSymbol() {
-		return lhs[0];
-	}
-
-	public final int getIdentifierSymbol() {
-		return IDENTIFIER_SYMBOL;
-	}
-
-	@Override
-	public final int getEoftSymbol() {
-		return EOFT_SYMBOL;
-	}
-
-	@Override
-	public final int getEoltSymbol() {
-		return EOLT_SYMBOL;
-	}
-
-	@Override
-	public final int getAcceptAction() {
-		return ACCEPT_ACTION;
-	}
-
-	@Override
-	public final int getErrorAction() {
-		return ERROR_ACTION;
-	}
-
-	@Override
-	public final boolean isValidForParser() {
-		return isValidForParser;
-	}
-
-	@Override
-	public final boolean getBacktrack() {
-		return BACKTRACK;
-	}
-
-	@Override
-	public final int originalState(int state) {
-		return -baseCheck[state];
-	}
-
-	@Override
-	public final int asi(int state) {
-		return asb[originalState(state)];
-	}
-
-	@Override
-	public final int nasi(int state) {
-		return nasb[originalState(state)];
-	}
-
-	@Override
-	public final int inSymbol(int state) {
-		return inSymb[originalState(state)];
-	}
-
-	@Override
-	public final int ntAction(int state, int sym) {
-		return baseAction[state + sym];
-	}
-
-	@Override
-	public final int tAction(int state, int sym) {
-		int i = baseAction[state], k = i + sym;
-		return termAction[termCheck[k] == sym ? k : i];
-	}
-
-	@Override
-	public final int lookAhead(int la_state, int sym) {
-		int k = la_state + sym;
-		return termAction[termCheck[k] == sym ? k : la_state];
-	}
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParsersym.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParsersym.java
deleted file mode 100644
index 716b8fa..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParsersym.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2010 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.parser.upc;
-
-public interface UPCNoCastExpressionParsersym {
-	public final static int TK_auto = 33, TK_break = 90, TK_case = 91, TK_char = 40, TK_const = 8, TK_continue = 92,
-			TK_default = 93, TK_do = 94, TK_double = 41, TK_else = 95, TK_enum = 53, TK_extern = 34, TK_float = 42,
-			TK_for = 96, TK_goto = 97, TK_if = 98, TK_inline = 35, TK_int = 43, TK_long = 44, TK_register = 36,
-			TK_restrict = 9, TK_return = 99, TK_short = 45, TK_signed = 46, TK_sizeof = 18, TK_static = 32,
-			TK_struct = 54, TK_switch = 100, TK_typedef = 37, TK_union = 55, TK_unsigned = 47, TK_void = 48,
-			TK_volatile = 10, TK_while = 101, TK__Bool = 49, TK__Complex = 50, TK__Imaginary = 51, TK_integer = 19,
-			TK_floating = 20, TK_charconst = 21, TK_stringlit = 22, TK_identifier = 1, TK_Completion = 3,
-			TK_EndOfCompletion = 5, TK_Invalid = 102, TK_LeftBracket = 23, TK_LeftParen = 2, TK_LeftBrace = 15,
-			TK_Dot = 61, TK_Arrow = 76, TK_PlusPlus = 16, TK_MinusMinus = 17, TK_And = 11, TK_Star = 4, TK_Plus = 6,
-			TK_Minus = 7, TK_Tilde = 24, TK_Bang = 25, TK_Slash = 62, TK_Percent = 63, TK_RightShift = 56,
-			TK_LeftShift = 57, TK_LT = 64, TK_GT = 65, TK_LE = 66, TK_GE = 67, TK_EQ = 70, TK_NE = 71, TK_Caret = 72,
-			TK_Or = 73, TK_AndAnd = 74, TK_OrOr = 77, TK_Question = 78, TK_Colon = 68, TK_DotDotDot = 59,
-			TK_Assign = 69, TK_StarAssign = 79, TK_SlashAssign = 80, TK_PercentAssign = 81, TK_PlusAssign = 82,
-			TK_MinusAssign = 83, TK_RightShiftAssign = 84, TK_LeftShiftAssign = 85, TK_AndAssign = 86,
-			TK_CaretAssign = 87, TK_OrAssign = 88, TK_Comma = 38, TK_RightBracket = 58, TK_RightParen = 39,
-			TK_RightBrace = 52, TK_SemiColon = 75, TK_MYTHREAD = 26, TK_THREADS = 27, TK_UPC_MAX_BLOCKSIZE = 28,
-			TK_relaxed = 12, TK_shared = 13, TK_strict = 14, TK_upc_barrier = 103, TK_upc_localsizeof = 29,
-			TK_upc_blocksizeof = 30, TK_upc_elemsizeof = 31, TK_upc_notify = 104, TK_upc_fence = 105, TK_upc_wait = 106,
-			TK_upc_forall = 107, TK_ERROR_TOKEN = 60, TK_EOF_TOKEN = 89;
-
-	public final static String orderedTerminalSymbols[] = { "", "identifier", "LeftParen", "Completion", "Star",
-			"EndOfCompletion", "Plus", "Minus", "const", "restrict", "volatile", "And", "relaxed", "shared", "strict",
-			"LeftBrace", "PlusPlus", "MinusMinus", "sizeof", "integer", "floating", "charconst", "stringlit",
-			"LeftBracket", "Tilde", "Bang", "MYTHREAD", "THREADS", "UPC_MAX_BLOCKSIZE", "upc_localsizeof",
-			"upc_blocksizeof", "upc_elemsizeof", "static", "auto", "extern", "inline", "register", "typedef", "Comma",
-			"RightParen", "char", "double", "float", "int", "long", "short", "signed", "unsigned", "void", "_Bool",
-			"_Complex", "_Imaginary", "RightBrace", "enum", "struct", "union", "RightShift", "LeftShift",
-			"RightBracket", "DotDotDot", "ERROR_TOKEN", "Dot", "Slash", "Percent", "LT", "GT", "LE", "GE", "Colon",
-			"Assign", "EQ", "NE", "Caret", "Or", "AndAnd", "SemiColon", "Arrow", "OrOr", "Question", "StarAssign",
-			"SlashAssign", "PercentAssign", "PlusAssign", "MinusAssign", "RightShiftAssign", "LeftShiftAssign",
-			"AndAssign", "CaretAssign", "OrAssign", "EOF_TOKEN", "break", "case", "continue", "default", "do", "else",
-			"for", "goto", "if", "return", "switch", "while", "Invalid", "upc_barrier", "upc_notify", "upc_fence",
-			"upc_wait", "upc_forall" };
-
-	public final static boolean isValidForParser = true;
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParser.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParser.java
deleted file mode 100644
index f180117..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParser.java
+++ /dev/null
@@ -1,2032 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2011 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.parser.upc;
-
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.cdt.core.dom.ast.IASTBinaryExpression;
-import org.eclipse.cdt.core.dom.ast.IASTCastExpression;
-import org.eclipse.cdt.core.dom.ast.IASTCompletionNode;
-import org.eclipse.cdt.core.dom.ast.IASTCompositeTypeSpecifier;
-import org.eclipse.cdt.core.dom.ast.IASTElaboratedTypeSpecifier;
-import org.eclipse.cdt.core.dom.ast.IASTLiteralExpression;
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.ast.IASTTypeIdExpression;
-import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression;
-import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter;
-import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
-import org.eclipse.cdt.core.dom.lrparser.IParser;
-import org.eclipse.cdt.core.dom.lrparser.ITokenCollector;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
-import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
-import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser;
-import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
-import org.eclipse.cdt.core.dom.parser.upc.UPCASTNodeFactory;
-import org.eclipse.cdt.core.dom.parser.upc.UPCParserAction;
-import org.eclipse.cdt.core.dom.parser.upc.UPCSecondaryParserFactory;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTKeywordExpression;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSynchronizationStatement;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTUnarySizeofExpression;
-import org.eclipse.cdt.core.index.IIndex;
-import org.eclipse.cdt.core.parser.IScanner;
-
-import lpg.lpgjavaruntime.BadParseException;
-import lpg.lpgjavaruntime.BadParseSymFileException;
-import lpg.lpgjavaruntime.DiagnoseParser;
-import lpg.lpgjavaruntime.ErrorToken;
-import lpg.lpgjavaruntime.IToken;
-import lpg.lpgjavaruntime.LexStream;
-import lpg.lpgjavaruntime.Monitor;
-import lpg.lpgjavaruntime.NotBacktrackParseTableException;
-import lpg.lpgjavaruntime.NullExportedSymbolsException;
-import lpg.lpgjavaruntime.NullTerminalSymbolsException;
-import lpg.lpgjavaruntime.ParseErrorCodes;
-import lpg.lpgjavaruntime.ParseTable;
-import lpg.lpgjavaruntime.PrsStream;
-import lpg.lpgjavaruntime.RuleAction;
-import lpg.lpgjavaruntime.UndefinedEofSymbolException;
-import lpg.lpgjavaruntime.UnimplementedTerminalsException;
-
-public class UPCParser extends PrsStream
-		implements RuleAction, ITokenStream, ITokenCollector, IParser<IASTTranslationUnit>
-
-{
-	private static ParseTable prs = new UPCParserprs();
-	private FixedBacktrackingParser btParser;
-
-	public FixedBacktrackingParser getParser() {
-		return btParser;
-	}
-
-	private void setResult(Object object) {
-		btParser.setSym1(object);
-	}
-
-	public Object getRhsSym(int i) {
-		return btParser.getSym(i);
-	}
-
-	public int getRhsTokenIndex(int i) {
-		return btParser.getToken(i);
-	}
-
-	public IToken getRhsIToken(int i) {
-		return super.getIToken(getRhsTokenIndex(i));
-	}
-
-	public int getRhsFirstTokenIndex(int i) {
-		return btParser.getFirstToken(i);
-	}
-
-	public IToken getRhsFirstIToken(int i) {
-		return super.getIToken(getRhsFirstTokenIndex(i));
-	}
-
-	public int getRhsLastTokenIndex(int i) {
-		return btParser.getLastToken(i);
-	}
-
-	public IToken getRhsLastIToken(int i) {
-		return super.getIToken(getRhsLastTokenIndex(i));
-	}
-
-	public int getLeftSpan() {
-		return btParser.getFirstToken();
-	}
-
-	@Override
-	public IToken getLeftIToken() {
-		return super.getIToken(getLeftSpan());
-	}
-
-	public int getRightSpan() {
-		return btParser.getLastToken();
-	}
-
-	@Override
-	public IToken getRightIToken() {
-		return super.getIToken(getRightSpan());
-	}
-
-	public int getRhsErrorTokenIndex(int i) {
-		int index = btParser.getToken(i);
-		IToken err = super.getIToken(index);
-		return (err instanceof ErrorToken ? index : 0);
-	}
-
-	public ErrorToken getRhsErrorIToken(int i) {
-		int index = btParser.getToken(i);
-		IToken err = super.getIToken(index);
-		return (ErrorToken) (err instanceof ErrorToken ? err : null);
-	}
-
-	public UPCParser(LexStream lexStream) {
-		super(lexStream);
-
-		try {
-			super.remapTerminalSymbols(orderedTerminalSymbols(), UPCParserprs.EOFT_SYMBOL);
-		} catch (NullExportedSymbolsException e) {
-		} catch (NullTerminalSymbolsException e) {
-		} catch (UnimplementedTerminalsException e) {
-			java.util.ArrayList unimplemented_symbols = e.getSymbols();
-			System.out.println("The Lexer will not scan the following token(s):");
-			for (int i = 0; i < unimplemented_symbols.size(); i++) {
-				Integer id = (Integer) unimplemented_symbols.get(i);
-				System.out.println("    " + UPCParsersym.orderedTerminalSymbols[id.intValue()]);
-			}
-			System.out.println();
-		} catch (UndefinedEofSymbolException e) {
-			throw new Error(new UndefinedEofSymbolException("The Lexer does not implement the Eof symbol "
-					+ UPCParsersym.orderedTerminalSymbols[UPCParserprs.EOFT_SYMBOL]));
-		}
-	}
-
-	@Override
-	public String[] orderedTerminalSymbols() {
-		return UPCParsersym.orderedTerminalSymbols;
-	}
-
-	public String getTokenKindName(int kind) {
-		return UPCParsersym.orderedTerminalSymbols[kind];
-	}
-
-	public int getEOFTokenKind() {
-		return UPCParserprs.EOFT_SYMBOL;
-	}
-
-	public PrsStream getParseStream() {
-		return this;
-	}
-
-	//
-	// Report error message for given error_token.
-	//
-	public final void reportErrorTokenMessage(int error_token, String msg) {
-		int firsttok = super.getFirstErrorToken(error_token), lasttok = super.getLastErrorToken(error_token);
-		String location = super.getFileName() + ':'
-				+ (firsttok > lasttok ? (super.getEndLine(lasttok) + ":" + super.getEndColumn(lasttok))
-						: (super.getLine(error_token) + ":" + super.getColumn(error_token) + ":"
-								+ super.getEndLine(error_token) + ":" + super.getEndColumn(error_token)))
-				+ ": ";
-		super.reportError((firsttok > lasttok ? ParseErrorCodes.INSERTION_CODE : ParseErrorCodes.SUBSTITUTION_CODE),
-				location, msg);
-	}
-
-	public void parser() {
-		parser(null, 0);
-	}
-
-	public void parser(Monitor monitor) {
-		parser(monitor, 0);
-	}
-
-	public void parser(int error_repair_count) {
-		parser(null, error_repair_count);
-	}
-
-	public void parser(Monitor monitor, int error_repair_count) {
-		try {
-			btParser = new FixedBacktrackingParser(monitor, this, prs, this);
-		} catch (NotBacktrackParseTableException e) {
-			throw new Error(new NotBacktrackParseTableException("Regenerate UPCParserprs.java with -BACKTRACK option"));
-		} catch (BadParseSymFileException e) {
-			throw new Error(new BadParseSymFileException("Bad Parser Symbol File -- UPCParsersym.java"));
-		}
-
-		try {
-			btParser.parse(error_repair_count);
-		} catch (BadParseException e) {
-			reset(e.error_token); // point to error token
-			DiagnoseParser diagnoseParser = new DiagnoseParser(this, prs);
-			diagnoseParser.diagnose(e.error_token);
-		}
-	}
-
-	private UPCParserAction action;
-	private IASTCompletionNode compNode;
-
-	public UPCParser(IScanner scanner, IDOMTokenMap tokenMap, IBuiltinBindingsProvider builtinBindingsProvider,
-			IIndex index, Map<String, String> properties) {
-		initActions(properties);
-		action.initializeTranslationUnit(scanner, builtinBindingsProvider, index);
-		CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap);
-	}
-
-	private void initActions(Map<String, String> properties) {
-		ScopedStack<Object> astStack = new ScopedStack<>();
-
-		action = new UPCParserAction(this, astStack, new UPCASTNodeFactory(), UPCSecondaryParserFactory.getDefault());
-		action.setParserProperties(properties);
-
-	}
-
-	@Override
-	public void addToken(IToken token) {
-		token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called?
-		super.addToken(token);
-	}
-
-	@Override
-	public IASTTranslationUnit parse() {
-		// this has to be done, or... kaboom!
-		setStreamLength(getSize());
-
-		final int errorRepairCount = -1; // -1 means full error handling
-		parser(null, errorRepairCount); // do the actual parse
-		super.resetTokenStream(); // allow tokens to be garbage collected
-
-		compNode = action.getASTCompletionNode(); // the completion node may be null
-		return (IASTTranslationUnit) action.getParseResult();
-	}
-
-	@Override
-	public IASTCompletionNode getCompletionNode() {
-		return compNode;
-	}
-
-	// uncomment this method to use with backtracking parser
-	@Override
-	public List<IToken> getRuleTokens() {
-		return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
-	}
-
-	@Override
-	public String[] getOrderedTerminalSymbols() {
-		return UPCParsersym.orderedTerminalSymbols;
-	}
-
-	@Override
-	@SuppressWarnings("nls")
-	public String getName() {
-		return "UPCParser";
-	}
-
-	@Override
-	public void ruleAction(int ruleNumber) {
-		switch (ruleNumber) {
-
-		//
-		// Rule 1:  <openscope-ast> ::= $Empty
-		//
-		case 1: {
-			action.openASTScope();
-			break;
-		}
-
-		//
-		// Rule 2:  <empty> ::= $Empty
-		//
-		case 2: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 13:  literal ::= integer
-		//
-		case 13: {
-			action.consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant);
-			break;
-		}
-
-		//
-		// Rule 14:  literal ::= floating
-		//
-		case 14: {
-			action.consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant);
-			break;
-		}
-
-		//
-		// Rule 15:  literal ::= charconst
-		//
-		case 15: {
-			action.consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant);
-			break;
-		}
-
-		//
-		// Rule 16:  literal ::= stringlit
-		//
-		case 16: {
-			action.consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal);
-			break;
-		}
-
-		//
-		// Rule 18:  primary_expression ::= primary_expression_id
-		//
-		case 18: {
-			action.consumeExpressionID();
-			break;
-		}
-
-		//
-		// Rule 19:  primary_expression ::= ( expression )
-		//
-		case 19: {
-			action.consumeExpressionBracketed();
-			break;
-		}
-
-		//
-		// Rule 22:  postfix_expression ::= postfix_expression [ expression ]
-		//
-		case 22: {
-			action.consumeExpressionArraySubscript();
-			break;
-		}
-
-		//
-		// Rule 23:  postfix_expression ::= postfix_expression ( expression_list_opt )
-		//
-		case 23: {
-			action.consumeExpressionFunctionCall();
-			break;
-		}
-
-		//
-		// Rule 24:  postfix_expression ::= postfix_expression . member_name
-		//
-		case 24: {
-			action.consumeExpressionFieldReference(false);
-			break;
-		}
-
-		//
-		// Rule 25:  postfix_expression ::= postfix_expression -> member_name
-		//
-		case 25: {
-			action.consumeExpressionFieldReference(true);
-			break;
-		}
-
-		//
-		// Rule 26:  postfix_expression ::= postfix_expression ++
-		//
-		case 26: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr);
-			break;
-		}
-
-		//
-		// Rule 27:  postfix_expression ::= postfix_expression --
-		//
-		case 27: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr);
-			break;
-		}
-
-		//
-		// Rule 28:  postfix_expression ::= ( type_id ) initializer_list
-		//
-		case 28: {
-			action.consumeExpressionTypeIdInitializer();
-			break;
-		}
-
-		//
-		// Rule 33:  unary_expression ::= ++ unary_expression
-		//
-		case 33: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr);
-			break;
-		}
-
-		//
-		// Rule 34:  unary_expression ::= -- unary_expression
-		//
-		case 34: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr);
-			break;
-		}
-
-		//
-		// Rule 35:  unary_expression ::= & cast_expression
-		//
-		case 35: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper);
-			break;
-		}
-
-		//
-		// Rule 36:  unary_expression ::= * cast_expression
-		//
-		case 36: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_star);
-			break;
-		}
-
-		//
-		// Rule 37:  unary_expression ::= + cast_expression
-		//
-		case 37: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus);
-			break;
-		}
-
-		//
-		// Rule 38:  unary_expression ::= - cast_expression
-		//
-		case 38: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus);
-			break;
-		}
-
-		//
-		// Rule 39:  unary_expression ::= ~ cast_expression
-		//
-		case 39: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde);
-			break;
-		}
-
-		//
-		// Rule 40:  unary_expression ::= ! cast_expression
-		//
-		case 40: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_not);
-			break;
-		}
-
-		//
-		// Rule 41:  unary_expression ::= sizeof unary_expression
-		//
-		case 41: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof);
-			break;
-		}
-
-		//
-		// Rule 42:  unary_expression ::= sizeof ( type_id )
-		//
-		case 42: {
-			action.consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof);
-			break;
-		}
-
-		//
-		// Rule 44:  cast_expression ::= ( type_id ) cast_expression
-		//
-		case 44: {
-			action.consumeExpressionCast(IASTCastExpression.op_cast);
-			break;
-		}
-
-		//
-		// Rule 46:  multiplicative_expression ::= multiplicative_expression * cast_expression
-		//
-		case 46: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply);
-			break;
-		}
-
-		//
-		// Rule 47:  multiplicative_expression ::= multiplicative_expression / cast_expression
-		//
-		case 47: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide);
-			break;
-		}
-
-		//
-		// Rule 48:  multiplicative_expression ::= multiplicative_expression % cast_expression
-		//
-		case 48: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo);
-			break;
-		}
-
-		//
-		// Rule 50:  additive_expression ::= additive_expression + multiplicative_expression
-		//
-		case 50: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus);
-			break;
-		}
-
-		//
-		// Rule 51:  additive_expression ::= additive_expression - multiplicative_expression
-		//
-		case 51: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus);
-			break;
-		}
-
-		//
-		// Rule 53:  shift_expression ::= shift_expression << additive_expression
-		//
-		case 53: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft);
-			break;
-		}
-
-		//
-		// Rule 54:  shift_expression ::= shift_expression >> additive_expression
-		//
-		case 54: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight);
-			break;
-		}
-
-		//
-		// Rule 56:  relational_expression ::= relational_expression < shift_expression
-		//
-		case 56: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan);
-			break;
-		}
-
-		//
-		// Rule 57:  relational_expression ::= relational_expression > shift_expression
-		//
-		case 57: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan);
-			break;
-		}
-
-		//
-		// Rule 58:  relational_expression ::= relational_expression <= shift_expression
-		//
-		case 58: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual);
-			break;
-		}
-
-		//
-		// Rule 59:  relational_expression ::= relational_expression >= shift_expression
-		//
-		case 59: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual);
-			break;
-		}
-
-		//
-		// Rule 61:  equality_expression ::= equality_expression == relational_expression
-		//
-		case 61: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals);
-			break;
-		}
-
-		//
-		// Rule 62:  equality_expression ::= equality_expression != relational_expression
-		//
-		case 62: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals);
-			break;
-		}
-
-		//
-		// Rule 64:  and_expression ::= and_expression & equality_expression
-		//
-		case 64: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd);
-			break;
-		}
-
-		//
-		// Rule 66:  exclusive_or_expression ::= exclusive_or_expression ^ and_expression
-		//
-		case 66: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor);
-			break;
-		}
-
-		//
-		// Rule 68:  inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression
-		//
-		case 68: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr);
-			break;
-		}
-
-		//
-		// Rule 70:  logical_and_expression ::= logical_and_expression && inclusive_or_expression
-		//
-		case 70: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd);
-			break;
-		}
-
-		//
-		// Rule 72:  logical_or_expression ::= logical_or_expression || logical_and_expression
-		//
-		case 72: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr);
-			break;
-		}
-
-		//
-		// Rule 74:  conditional_expression ::= logical_or_expression ? expression : assignment_expression
-		//
-		case 74: {
-			action.consumeExpressionConditional();
-			break;
-		}
-
-		//
-		// Rule 76:  assignment_expression ::= unary_expression = assignment_expression
-		//
-		case 76: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign);
-			break;
-		}
-
-		//
-		// Rule 77:  assignment_expression ::= unary_expression *= assignment_expression
-		//
-		case 77: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign);
-			break;
-		}
-
-		//
-		// Rule 78:  assignment_expression ::= unary_expression /= assignment_expression
-		//
-		case 78: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign);
-			break;
-		}
-
-		//
-		// Rule 79:  assignment_expression ::= unary_expression %= assignment_expression
-		//
-		case 79: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign);
-			break;
-		}
-
-		//
-		// Rule 80:  assignment_expression ::= unary_expression += assignment_expression
-		//
-		case 80: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign);
-			break;
-		}
-
-		//
-		// Rule 81:  assignment_expression ::= unary_expression -= assignment_expression
-		//
-		case 81: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign);
-			break;
-		}
-
-		//
-		// Rule 82:  assignment_expression ::= unary_expression <<= assignment_expression
-		//
-		case 82: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign);
-			break;
-		}
-
-		//
-		// Rule 83:  assignment_expression ::= unary_expression >>= assignment_expression
-		//
-		case 83: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign);
-			break;
-		}
-
-		//
-		// Rule 84:  assignment_expression ::= unary_expression &= assignment_expression
-		//
-		case 84: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign);
-			break;
-		}
-
-		//
-		// Rule 85:  assignment_expression ::= unary_expression ^= assignment_expression
-		//
-		case 85: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign);
-			break;
-		}
-
-		//
-		// Rule 86:  assignment_expression ::= unary_expression |= assignment_expression
-		//
-		case 86: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign);
-			break;
-		}
-
-		//
-		// Rule 89:  expression_list ::= <openscope-ast> expression_list_actual
-		//
-		case 89: {
-			action.consumeExpressionList();
-			break;
-		}
-
-		//
-		// Rule 91:  expression_list_opt ::= $Empty
-		//
-		case 91: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 101:  statement ::= ERROR_TOKEN
-		//
-		case 101: {
-			action.consumeStatementProblem();
-			break;
-		}
-
-		//
-		// Rule 102:  labeled_statement ::= identifier_token : statement
-		//
-		case 102: {
-			action.consumeStatementLabeled();
-			break;
-		}
-
-		//
-		// Rule 103:  labeled_statement ::= case constant_expression : statement
-		//
-		case 103: {
-			action.consumeStatementCase();
-			break;
-		}
-
-		//
-		// Rule 104:  labeled_statement ::= default : statement
-		//
-		case 104: {
-			action.consumeStatementDefault();
-			break;
-		}
-
-		//
-		// Rule 105:  compound_statement ::= { }
-		//
-		case 105: {
-			action.consumeStatementCompoundStatement(false);
-			break;
-		}
-
-		//
-		// Rule 106:  compound_statement ::= { <openscope-ast> block_item_list }
-		//
-		case 106: {
-			action.consumeStatementCompoundStatement(true);
-			break;
-		}
-
-		//
-		// Rule 110:  block_item ::= declaration
-		//
-		case 110: {
-			action.consumeStatementDeclarationWithDisambiguation();
-			break;
-		}
-
-		//
-		// Rule 111:  expression_statement ::= ;
-		//
-		case 111: {
-			action.consumeStatementNull();
-			break;
-		}
-
-		//
-		// Rule 112:  expression_statement ::= expression_in_statement ;
-		//
-		case 112: {
-			action.consumeStatementExpression();
-			break;
-		}
-
-		//
-		// Rule 113:  selection_statement ::= if ( expression ) statement
-		//
-		case 113: {
-			action.consumeStatementIf(false);
-			break;
-		}
-
-		//
-		// Rule 114:  selection_statement ::= if ( expression ) statement else statement
-		//
-		case 114: {
-			action.consumeStatementIf(true);
-			break;
-		}
-
-		//
-		// Rule 115:  selection_statement ::= switch ( expression ) statement
-		//
-		case 115: {
-			action.consumeStatementSwitch();
-			break;
-		}
-
-		//
-		// Rule 117:  expression_opt ::= $Empty
-		//
-		case 117: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 118:  iteration_statement ::= do statement while ( expression ) ;
-		//
-		case 118: {
-			action.consumeStatementDoLoop(true);
-			break;
-		}
-
-		//
-		// Rule 119:  iteration_statement ::= do statement
-		//
-		case 119: {
-			action.consumeStatementDoLoop(false);
-			break;
-		}
-
-		//
-		// Rule 120:  iteration_statement ::= while ( expression ) statement
-		//
-		case 120: {
-			action.consumeStatementWhileLoop();
-			break;
-		}
-
-		//
-		// Rule 121:  iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement
-		//
-		case 121: {
-			action.consumeStatementForLoop();
-			break;
-		}
-
-		//
-		// Rule 122:  iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement
-		//
-		case 122: {
-			action.consumeStatementForLoop();
-			break;
-		}
-
-		//
-		// Rule 123:  jump_statement ::= goto identifier_token ;
-		//
-		case 123: {
-			action.consumeStatementGoto();
-			break;
-		}
-
-		//
-		// Rule 124:  jump_statement ::= continue ;
-		//
-		case 124: {
-			action.consumeStatementContinue();
-			break;
-		}
-
-		//
-		// Rule 125:  jump_statement ::= break ;
-		//
-		case 125: {
-			action.consumeStatementBreak();
-			break;
-		}
-
-		//
-		// Rule 126:  jump_statement ::= return ;
-		//
-		case 126: {
-			action.consumeStatementReturn(false);
-			break;
-		}
-
-		//
-		// Rule 127:  jump_statement ::= return expression ;
-		//
-		case 127: {
-			action.consumeStatementReturn(true);
-			break;
-		}
-
-		//
-		// Rule 128:  declaration ::= declaration_specifiers ;
-		//
-		case 128: {
-			action.consumeDeclarationSimple(false);
-			break;
-		}
-
-		//
-		// Rule 129:  declaration ::= declaration_specifiers <openscope-ast> init_declarator_list ;
-		//
-		case 129: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 130:  declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
-		//
-		case 130: {
-			action.consumeDeclarationSpecifiersSimple();
-			break;
-		}
-
-		//
-		// Rule 131:  declaration_specifiers ::= <openscope-ast> struct_or_union_declaration_specifiers
-		//
-		case 131: {
-			action.consumeDeclarationSpecifiersStructUnionEnum();
-			break;
-		}
-
-		//
-		// Rule 132:  declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
-		//
-		case 132: {
-			action.consumeDeclarationSpecifiersStructUnionEnum();
-			break;
-		}
-
-		//
-		// Rule 133:  declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
-		//
-		case 133: {
-			action.consumeDeclarationSpecifiersStructUnionEnum();
-			break;
-		}
-
-		//
-		// Rule 134:  declaration_specifiers ::= <openscope-ast> typdef_name_declaration_specifiers
-		//
-		case 134: {
-			action.consumeDeclarationSpecifiersTypedefName();
-			break;
-		}
-
-		//
-		// Rule 159:  init_declarator ::= complete_declarator = initializer
-		//
-		case 159: {
-			action.consumeDeclaratorWithInitializer(true);
-			break;
-		}
-
-		//
-		// Rule 161:  storage_class_specifier ::= storage_class_specifier_token
-		//
-		case 161: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 167:  simple_type_specifier ::= simple_type_specifier_token
-		//
-		case 167: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 180:  type_name_specifier ::= identifier_token
-		//
-		case 180: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 181:  struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { <openscope-ast> struct_declaration_list_opt }
-		//
-		case 181: {
-			action.consumeTypeSpecifierComposite(false);
-			break;
-		}
-
-		//
-		// Rule 182:  struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { <openscope-ast> struct_declaration_list_opt }
-		//
-		case 182: {
-			action.consumeTypeSpecifierComposite(true);
-			break;
-		}
-
-		//
-		// Rule 187:  elaborated_specifier ::= struct elaborated_specifier_hook identifier_token
-		//
-		case 187: {
-			action.consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct);
-			break;
-		}
-
-		//
-		// Rule 188:  elaborated_specifier ::= union elaborated_specifier_hook identifier_token
-		//
-		case 188: {
-			action.consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union);
-			break;
-		}
-
-		//
-		// Rule 189:  elaborated_specifier ::= enum elaborated_specifier_hook identifier_token
-		//
-		case 189: {
-			action.consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum);
-			break;
-		}
-
-		//
-		// Rule 195:  struct_declaration ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ;
-		//
-		case 195: {
-			action.consumeStructDeclaration(true);
-			break;
-		}
-
-		//
-		// Rule 196:  struct_declaration ::= specifier_qualifier_list ;
-		//
-		case 196: {
-			action.consumeStructDeclaration(false);
-			break;
-		}
-
-		//
-		// Rule 197:  struct_declaration ::= ERROR_TOKEN
-		//
-		case 197: {
-			action.consumeDeclarationProblem();
-			break;
-		}
-
-		//
-		// Rule 203:  struct_declarator ::= : constant_expression
-		//
-		case 203: {
-			action.consumeBitField(false);
-			break;
-		}
-
-		//
-		// Rule 204:  struct_declarator ::= declarator : constant_expression
-		//
-		case 204: {
-			action.consumeBitField(true);
-			break;
-		}
-
-		//
-		// Rule 205:  enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
-		//
-		case 205: {
-			action.consumeTypeSpecifierEnumeration(false);
-			break;
-		}
-
-		//
-		// Rule 206:  enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
-		//
-		case 206: {
-			action.consumeTypeSpecifierEnumeration(true);
-			break;
-		}
-
-		//
-		// Rule 212:  enumerator ::= identifier_token
-		//
-		case 212: {
-			action.consumeEnumerator(false);
-			break;
-		}
-
-		//
-		// Rule 213:  enumerator ::= identifier_token = constant_expression
-		//
-		case 213: {
-			action.consumeEnumerator(true);
-			break;
-		}
-
-		//
-		// Rule 214:  type_qualifier ::= type_qualifier_token
-		//
-		case 214: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 218:  function_specifier ::= inline
-		//
-		case 218: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 220:  declarator ::= <openscope-ast> pointer_seq direct_declarator
-		//
-		case 220: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 225:  basic_direct_declarator ::= declarator_id_name
-		//
-		case 225: {
-			action.consumeDirectDeclaratorIdentifier();
-			break;
-		}
-
-		//
-		// Rule 226:  basic_direct_declarator ::= ( declarator )
-		//
-		case 226: {
-			action.consumeDirectDeclaratorBracketed();
-			break;
-		}
-
-		//
-		// Rule 227:  declarator_id_name ::= identifier
-		//
-		case 227: {
-			action.consumeIdentifierName();
-			break;
-		}
-
-		//
-		// Rule 228:  array_direct_declarator ::= basic_direct_declarator array_modifier
-		//
-		case 228: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 229:  array_direct_declarator ::= array_direct_declarator array_modifier
-		//
-		case 229: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 231:  function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_type_list )
-		//
-		case 231: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true, true);
-			break;
-		}
-
-		//
-		// Rule 232:  function_direct_declarator ::= basic_direct_declarator ( )
-		//
-		case 232: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true, false);
-			break;
-		}
-
-		//
-		// Rule 234:  function_declarator ::= <openscope-ast> pointer_seq function_direct_declarator
-		//
-		case 234: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 235:  knr_direct_declarator ::= basic_direct_declarator ( <openscope-ast> identifier_list )
-		//
-		case 235: {
-			action.consumeDirectDeclaratorFunctionDeclaratorKnR();
-			break;
-		}
-
-		//
-		// Rule 237:  knr_function_declarator ::= <openscope-ast> pointer_seq knr_direct_declarator
-		//
-		case 237: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 238:  identifier_list ::= identifier
-		//
-		case 238: {
-			action.consumeIdentifierKnR();
-			break;
-		}
-
-		//
-		// Rule 239:  identifier_list ::= identifier_list , identifier
-		//
-		case 239: {
-			action.consumeIdentifierKnR();
-			break;
-		}
-
-		//
-		// Rule 240:  array_modifier ::= [ ]
-		//
-		case 240: {
-			action.consumeDirectDeclaratorArrayModifier(false);
-			break;
-		}
-
-		//
-		// Rule 241:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ]
-		//
-		case 241: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false);
-			break;
-		}
-
-		//
-		// Rule 242:  array_modifier ::= [ assignment_expression ]
-		//
-		case 242: {
-			action.consumeDirectDeclaratorArrayModifier(true);
-			break;
-		}
-
-		//
-		// Rule 243:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
-		//
-		case 243: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 244:  array_modifier ::= [ static assignment_expression ]
-		//
-		case 244: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true);
-			break;
-		}
-
-		//
-		// Rule 245:  array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
-		//
-		case 245: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 246:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ]
-		//
-		case 246: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 247:  array_modifier ::= [ * ]
-		//
-		case 247: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false);
-			break;
-		}
-
-		//
-		// Rule 248:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ]
-		//
-		case 248: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false);
-			break;
-		}
-
-		//
-		// Rule 250:  pointer_seq ::= pointer_hook * pointer_hook
-		//
-		case 250: {
-			action.consumePointer();
-			break;
-		}
-
-		//
-		// Rule 251:  pointer_seq ::= pointer_seq pointer_hook * pointer_hook
-		//
-		case 251: {
-			action.consumePointer();
-			break;
-		}
-
-		//
-		// Rule 252:  pointer_seq ::= pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
-		//
-		case 252: {
-			action.consumePointerTypeQualifierList();
-			break;
-		}
-
-		//
-		// Rule 253:  pointer_seq ::= pointer_seq pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
-		//
-		case 253: {
-			action.consumePointerTypeQualifierList();
-			break;
-		}
-
-		//
-		// Rule 257:  parameter_type_list ::= parameter_list
-		//
-		case 257: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 258:  parameter_type_list ::= parameter_list , ...
-		//
-		case 258: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 259:  parameter_type_list ::= ...
-		//
-		case 259: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 262:  parameter_declaration ::= declaration_specifiers complete_parameter_declarator
-		//
-		case 262: {
-			action.consumeParameterDeclaration();
-			break;
-		}
-
-		//
-		// Rule 263:  parameter_declaration ::= declaration_specifiers
-		//
-		case 263: {
-			action.consumeParameterDeclarationWithoutDeclarator();
-			break;
-		}
-
-		//
-		// Rule 266:  type_id ::= specifier_qualifier_list
-		//
-		case 266: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 267:  type_id ::= specifier_qualifier_list abstract_declarator
-		//
-		case 267: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 269:  abstract_declarator ::= <openscope-ast> pointer_seq
-		//
-		case 269: {
-			action.consumeDeclaratorWithPointer(false);
-			break;
-		}
-
-		//
-		// Rule 270:  abstract_declarator ::= <openscope-ast> pointer_seq direct_abstract_declarator
-		//
-		case 270: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 274:  basic_direct_abstract_declarator ::= ( abstract_declarator )
-		//
-		case 274: {
-			action.consumeDirectDeclaratorBracketed();
-			break;
-		}
-
-		//
-		// Rule 275:  array_direct_abstract_declarator ::= array_modifier
-		//
-		case 275: {
-			action.consumeDirectDeclaratorArrayDeclarator(false);
-			break;
-		}
-
-		//
-		// Rule 276:  array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
-		//
-		case 276: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 277:  array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
-		//
-		case 277: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 278:  function_direct_abstract_declarator ::= ( )
-		//
-		case 278: {
-			action.consumeDirectDeclaratorFunctionDeclarator(false, false);
-			break;
-		}
-
-		//
-		// Rule 279:  function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( )
-		//
-		case 279: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true, false);
-			break;
-		}
-
-		//
-		// Rule 280:  function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list )
-		//
-		case 280: {
-			action.consumeDirectDeclaratorFunctionDeclarator(false, true);
-			break;
-		}
-
-		//
-		// Rule 281:  function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list )
-		//
-		case 281: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true, true);
-			break;
-		}
-
-		//
-		// Rule 282:  initializer ::= assignment_expression
-		//
-		case 282: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 283:  initializer ::= initializer_list
-		//
-		case 283: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 284:  initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq comma_opt } end_initializer_list
-		//
-		case 284: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 285:  initializer_list ::= { <openscope-ast> }
-		//
-		case 285: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 286:  start_initializer_list ::= $Empty
-		//
-		case 286: {
-			action.initializerListStart();
-			break;
-		}
-
-		//
-		// Rule 287:  end_initializer_list ::= $Empty
-		//
-		case 287: {
-			action.initializerListEnd();
-			break;
-		}
-
-		//
-		// Rule 292:  designated_initializer ::= <openscope-ast> designation = initializer
-		//
-		case 292: {
-			action.consumeInitializerDesignated();
-			break;
-		}
-
-		//
-		// Rule 296:  designator_base ::= [ constant_expression ]
-		//
-		case 296: {
-			action.consumeDesignatorArray();
-			break;
-		}
-
-		//
-		// Rule 297:  designator_base ::= . identifier_token
-		//
-		case 297: {
-			action.consumeDesignatorField();
-			break;
-		}
-
-		//
-		// Rule 298:  designator ::= [ constant_expression ]
-		//
-		case 298: {
-			action.consumeDesignatorArray();
-			break;
-		}
-
-		//
-		// Rule 299:  designator ::= . identifier_token
-		//
-		case 299: {
-			action.consumeDesignatorField();
-			break;
-		}
-
-		//
-		// Rule 300:  translation_unit ::= external_declaration_list
-		//
-		case 300: {
-			action.consumeTranslationUnit();
-			break;
-		}
-
-		//
-		// Rule 301:  translation_unit ::= $Empty
-		//
-		case 301: {
-			action.consumeTranslationUnit();
-			break;
-		}
-
-		//
-		// Rule 306:  external_declaration ::= ;
-		//
-		case 306: {
-			action.consumeDeclarationEmpty();
-			break;
-		}
-
-		//
-		// Rule 307:  external_declaration ::= ERROR_TOKEN
-		//
-		case 307: {
-			action.consumeDeclarationProblem();
-			break;
-		}
-
-		//
-		// Rule 311:  function_definition ::= <openscope-ast> function_declarator function_body
-		//
-		case 311: {
-			action.consumeFunctionDefinition(false);
-			break;
-		}
-
-		//
-		// Rule 312:  function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
-		//
-		case 312: {
-			action.consumeFunctionDefinitionKnR();
-			break;
-		}
-
-		//
-		// Rule 313:  normal_function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
-		//
-		case 313: {
-			action.consumeFunctionDefinition(true);
-			break;
-		}
-
-		//
-		// Rule 314:  function_body ::= { }
-		//
-		case 314: {
-			action.consumeStatementCompoundStatement(false);
-			break;
-		}
-
-		//
-		// Rule 315:  function_body ::= { <openscope-ast> block_item_list }
-		//
-		case 315: {
-			action.consumeStatementCompoundStatement(true);
-			break;
-		}
-
-		//
-		// Rule 316:  literal ::= MYTHREAD
-		//
-		case 316: {
-			action.consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread);
-			break;
-		}
-
-		//
-		// Rule 317:  literal ::= THREADS
-		//
-		case 317: {
-			action.consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads);
-			break;
-		}
-
-		//
-		// Rule 318:  literal ::= UPC_MAX_BLOCKSIZE
-		//
-		case 318: {
-			action.consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size);
-			break;
-		}
-
-		//
-		// Rule 319:  unary_expression ::= upc_localsizeof unary_expression
-		//
-		case 319: {
-			action.consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_localsizeof);
-			break;
-		}
-
-		//
-		// Rule 320:  unary_expression ::= upc_localsizeof ( type_id )
-		//
-		case 320: {
-			action.consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_localsizeof);
-			break;
-		}
-
-		//
-		// Rule 321:  unary_expression ::= upc_blocksizeof unary_expression
-		//
-		case 321: {
-			action.consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_blocksizeof);
-			break;
-		}
-
-		//
-		// Rule 322:  unary_expression ::= upc_blocksizeof ( type_id )
-		//
-		case 322: {
-			action.consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_blocksizeof);
-			break;
-		}
-
-		//
-		// Rule 323:  unary_expression ::= upc_elemsizeof unary_expression
-		//
-		case 323: {
-			action.consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_elemsizeof);
-			break;
-		}
-
-		//
-		// Rule 324:  unary_expression ::= upc_elemsizeof ( type_id )
-		//
-		case 324: {
-			action.consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_elemsizeof);
-			break;
-		}
-
-		//
-		// Rule 328:  shared_type_qualifier ::= shared
-		//
-		case 328: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 329:  reference_type_qualifier ::= relaxed
-		//
-		case 329: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 330:  reference_type_qualifier ::= strict
-		//
-		case 330: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 331:  layout_qualifier ::= [ constant_expression ]
-		//
-		case 331: {
-			action.consumeLayoutQualifier(true, false);
-			break;
-		}
-
-		//
-		// Rule 332:  layout_qualifier ::= [ * ]
-		//
-		case 332: {
-			action.consumeLayoutQualifier(false, true);
-			break;
-		}
-
-		//
-		// Rule 333:  layout_qualifier ::= [ ]
-		//
-		case 333: {
-			action.consumeLayoutQualifier(false, false);
-			break;
-		}
-
-		//
-		// Rule 335:  synchronization_statement ::= upc_notify expression ;
-		//
-		case 335: {
-			action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true);
-			break;
-		}
-
-		//
-		// Rule 336:  synchronization_statement ::= upc_notify ;
-		//
-		case 336: {
-			action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false);
-			break;
-		}
-
-		//
-		// Rule 337:  synchronization_statement ::= upc_wait expression ;
-		//
-		case 337: {
-			action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true);
-			break;
-		}
-
-		//
-		// Rule 338:  synchronization_statement ::= upc_wait ;
-		//
-		case 338: {
-			action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false);
-			break;
-		}
-
-		//
-		// Rule 339:  synchronization_statement ::= upc_barrier expression ;
-		//
-		case 339: {
-			action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true);
-			break;
-		}
-
-		//
-		// Rule 340:  synchronization_statement ::= upc_barrier ;
-		//
-		case 340: {
-			action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false);
-			break;
-		}
-
-		//
-		// Rule 341:  synchronization_statement ::= upc_fence ;
-		//
-		case 341: {
-			action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false);
-			break;
-		}
-
-		//
-		// Rule 342:  iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement
-		//
-		case 342: {
-			action.consumeStatementUPCForallLoop(true, true, true, true);
-			break;
-		}
-
-		//
-		// Rule 343:  iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement
-		//
-		case 343: {
-			action.consumeStatementUPCForallLoop(true, true, true, false);
-			break;
-		}
-
-		//
-		// Rule 344:  iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement
-		//
-		case 344: {
-			action.consumeStatementUPCForallLoop(true, true, false, true);
-			break;
-		}
-
-		//
-		// Rule 345:  iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement
-		//
-		case 345: {
-			action.consumeStatementUPCForallLoop(true, true, false, false);
-			break;
-		}
-
-		//
-		// Rule 346:  iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement
-		//
-		case 346: {
-			action.consumeStatementUPCForallLoop(true, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 347:  iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement
-		//
-		case 347: {
-			action.consumeStatementUPCForallLoop(true, false, true, false);
-			break;
-		}
-
-		//
-		// Rule 348:  iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement
-		//
-		case 348: {
-			action.consumeStatementUPCForallLoop(true, false, false, true);
-			break;
-		}
-
-		//
-		// Rule 349:  iteration_statement ::= upc_forall ( expression ; ; ; ) statement
-		//
-		case 349: {
-			action.consumeStatementUPCForallLoop(true, false, false, false);
-			break;
-		}
-
-		//
-		// Rule 350:  iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement
-		//
-		case 350: {
-			action.consumeStatementUPCForallLoop(false, true, true, true);
-			break;
-		}
-
-		//
-		// Rule 351:  iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement
-		//
-		case 351: {
-			action.consumeStatementUPCForallLoop(false, true, true, false);
-			break;
-		}
-
-		//
-		// Rule 352:  iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement
-		//
-		case 352: {
-			action.consumeStatementUPCForallLoop(false, true, false, true);
-			break;
-		}
-
-		//
-		// Rule 353:  iteration_statement ::= upc_forall ( ; expression ; ; ) statement
-		//
-		case 353: {
-			action.consumeStatementUPCForallLoop(false, true, false, false);
-			break;
-		}
-
-		//
-		// Rule 354:  iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement
-		//
-		case 354: {
-			action.consumeStatementUPCForallLoop(false, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 355:  iteration_statement ::= upc_forall ( ; ; expression ; ) statement
-		//
-		case 355: {
-			action.consumeStatementUPCForallLoop(false, false, true, false);
-			break;
-		}
-
-		//
-		// Rule 356:  iteration_statement ::= upc_forall ( ; ; ; affinity ) statement
-		//
-		case 356: {
-			action.consumeStatementUPCForallLoop(false, false, false, true);
-			break;
-		}
-
-		//
-		// Rule 357:  iteration_statement ::= upc_forall ( ; ; ; ) statement
-		//
-		case 357: {
-			action.consumeStatementUPCForallLoop(false, false, false, false);
-			break;
-		}
-
-		//
-		// Rule 358:  iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement
-		//
-		case 358: {
-			action.consumeStatementUPCForallLoop(true, true, true, true);
-			break;
-		}
-
-		//
-		// Rule 359:  iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement
-		//
-		case 359: {
-			action.consumeStatementUPCForallLoop(true, true, true, false);
-			break;
-		}
-
-		//
-		// Rule 360:  iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement
-		//
-		case 360: {
-			action.consumeStatementUPCForallLoop(true, true, false, true);
-			break;
-		}
-
-		//
-		// Rule 361:  iteration_statement ::= upc_forall ( declaration expression ; ; ) statement
-		//
-		case 361: {
-			action.consumeStatementUPCForallLoop(true, true, false, false);
-			break;
-		}
-
-		//
-		// Rule 362:  iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement
-		//
-		case 362: {
-			action.consumeStatementUPCForallLoop(true, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 363:  iteration_statement ::= upc_forall ( declaration ; expression ; ) statement
-		//
-		case 363: {
-			action.consumeStatementUPCForallLoop(true, false, true, false);
-			break;
-		}
-
-		//
-		// Rule 364:  iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement
-		//
-		case 364: {
-			action.consumeStatementUPCForallLoop(true, false, false, true);
-			break;
-		}
-
-		//
-		// Rule 365:  iteration_statement ::= upc_forall ( declaration ; ; ) statement
-		//
-		case 365: {
-			action.consumeStatementUPCForallLoop(true, false, false, false);
-			break;
-		}
-
-		//
-		// Rule 367:  affinity ::= continue
-		//
-		case 367: {
-			action.consumeToken();
-			break;
-		}
-
-		default:
-			break;
-		}
-		return;
-	}
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParserprs.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParserprs.java
deleted file mode 100644
index 9338471..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParserprs.java
+++ /dev/null
@@ -1,1064 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2011 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.parser.upc;
-
-public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym {
-
-	public interface IsKeyword {
-		public final static byte isKeyword[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static byte isKeyword[] = IsKeyword.isKeyword;
-
-	public final boolean isKeyword(int index) {
-		return isKeyword[index] != 0;
-	}
-
-	public interface BaseCheck {
-		public final static short baseCheck[] = { 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 4,
-				4, 3, 3, 2, 2, 4, 1, 0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 1, 4, 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 3, 3,
-				3, 3, 1, 3, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 2, 1, 0, 1,
-				3, 1, 1, 1, 1, 1, 1, 1, 1, 3, 4, 3, 2, 4, 1, 2, 1, 1, 1, 2, 5, 7, 5, 1, 0, 7, 2, 5, 9, 8, 3, 2, 2, 2, 3,
-				2, 4, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 3, 1, 3, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6, 8, 0, 0, 1, 1, 3, 3, 3, 0, 1, 0, 1, 2, 4, 2, 1,
-				1, 1, 3, 1, 1, 2, 3, 7, 8, 0, 1, 0, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 3, 1, 2, 2, 1, 5, 3,
-				1, 3, 5, 1, 3, 1, 3, 2, 4, 3, 5, 4, 6, 6, 3, 5, 1, 3, 4, 5, 6, 0, 1, 2, 1, 3, 1, 1, 3, 2, 1, 1, 1, 1, 2,
-				1, 2, 3, 1, 1, 1, 3, 1, 2, 2, 2, 3, 4, 5, 1, 1, 7, 3, 0, 0, 1, 1, 3, 3, 4, 1, 1, 2, 3, 2, 3, 2, 1, 0, 1,
-				2, 1, 1, 1, 1, 1, 2, 1, 3, 6, 4, 2, 4, 1, 1, 1, 2, 4, 2, 4, 2, 4, 1, 1, 2, 1, 1, 1, 3, 3, 2, 1, 3, 2, 3,
-				2, 3, 2, 2, 11, 10, 10, 9, 10, 9, 9, 8, 10, 9, 9, 8, 9, 8, 8, 7, 10, 9, 9, 8, 9, 8, 8, 7, 1, 1, -118,
-				-275, 0, -16, -304, 0, 0, 0, 0, 0, 0, -19, 0, 0, -57, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, -21, 0, 0, 0, 0, 0,
-				0, 0, -7, 0, 0, 0, 0, 0, -43, 0, 0, 0, 0, 0, -23, 0, 0, 0, 0, 0, 0, -22, 0, 0, 0, 0, 0, -11, -13, -81,
-				-4, 0, 0, -279, 0, 0, 0, 0, 0, 0, -34, 0, 0, 0, 0, 0, 0, -28, 0, -45, 0, -9, 0, 0, 0, 0, 0, 0, -110, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -30, 0, 0, 0, 0, -29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -31, 0, 0, 0,
-				-26, 0, 0, 0, 0, 0, 0, 0, -39, -24, 0, 0, 0, 0, 0, 0, 0, 0, -40, 0, 0, 0, 0, 0, 0, 0, 0, -243, 0, 0,
-				-65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -27, 0, 0,
-				0, 0, -51, -300, 0, 0, -32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -53, 0, 0, -67, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -25, 0, -134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-68, 0, 0, -61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -69, 0, 0, 0, 0, -129, 0, 0, -48, 0, 0, -47, 0, 0, 0, 0,
-				0, 0, 0, -70, 0, 0, 0, 0, -35, 0, 0, -85, 0, 0, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -36, 0, 0, -259, 0,
-				-20, 0, -71, -14, -192, 0, 0, 0, 0, 0, -86, 0, 0, 0, -320, 0, 0, 0, 0, 0, 0, -41, 0, 0, 0, 0, 0, 0, 0,
-				0, -185, 0, 0, 0, 0, 0, 0, 0, 0, -72, 0, 0, 0, 0, 0, 0, 0, 0, 0, -99, 0, 0, 0, -237, 0, 0, 0, 0, 0, 0,
-				0, -77, 0, 0, 0, 0, 0, 0, 0, 0, -321, 0, 0, -79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -119, 0, 0, 0, -42, -98,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -88, 0, 0, -161, 0, 0, 0, 0, 0, 0, 0, 0, -37, 0, 0, -227, 0, 0,
-				0, 0, 0, -46, 0, 0, -73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -100, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -33, -74, 0, 0, 0, 0, 0, 0, 0, 0, 0, -75, 0, 0, -91, 0, 0, 0, -78, 0, 0, 0, 0, 0, 0,
-				-76, 0, 0, 0, 0, 0, 0, 0, -114, 0, -87, 0, 0, -80, 0, 0, 0, 0, 0, 0, 0, -90, 0, 0, -241, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -162, 0, 0, -93, 0, 0, 0, 0, 0, 0, 0, -198, 0, 0, 0, 0, -54, 0,
-				0, -154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -94, 0, -180, -271, 0, 0, 0, 0, 0, 0, 0, 0, 0, -104, 0,
-				0, 0, 0, 0, 0, -5, 0, -127, 0, 0, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, -116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-96, 0, 0, -58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -176, 0, 0, 0, 0, 0, 0, 0, -97, -130, 0, 0, -164, 0, 0,
-				-84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -38, 0, 0, 0, -105, 0, -106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -113, 0, -302, 0, 0, 0, 0, 0, 0, -120, 0, 0, 0, 0, 0,
-				0, 0, -166, 0, 0, 0, -107, 0, 0, 0, 0, 0, 0, -108, 0, 0, -59, 0, 0, 0, -109, 0, 0, 0, 0, 0, 0, -200, 0,
-				0, 0, 0, 0, 0, 0, -167, 0, 0, -152, 0, 0, 0, 0, 0, 0, 0, -111, 0, 0, -60, 0, 0, 0, -201, 0, 0, 0, 0, 0,
-				0, -112, 0, 0, 0, 0, 0, 0, 0, -168, 0, 0, -155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -62, 0, 0, 0, -115, 0, 0,
-				0, 0, 0, 0, -156, 0, 0, 0, 0, 0, 0, 0, -169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -117, 0, 0, -95, 0, 0, 0,
-				-150, 0, 0, 0, 0, 0, 0, -175, 0, 0, 0, 0, 0, 0, 0, -170, 0, 0, 0, -158, 0, 0, 0, 0, 0, 0, -178, 0, 0,
-				-131, 0, 0, 0, -188, 0, 0, 0, 0, 0, 0, -193, 0, 0, 0, 0, 0, 0, 0, -171, 0, 0, -177, 0, 0, 0, 0, 0, 0, 0,
-				-195, 0, 0, -132, 0, 0, 0, -196, 0, 0, 0, 0, 0, 0, -202, 0, 0, 0, 0, 0, 0, 0, -172, 0, 0, 0, -209, 0, 0,
-				0, 0, 0, 0, -210, 0, 0, -133, 0, 0, 0, -208, 0, 0, 0, 0, 0, 0, -203, 0, 0, 0, 0, 0, 0, 0, -173, 0, 0, 0,
-				-211, 0, 0, 0, 0, 0, 0, -212, 0, 0, -55, 0, 0, 0, -240, 0, 0, 0, 0, 0, 0, -204, 0, 0, 0, 0, 0, 0, 0,
-				-174, 0, 0, 0, -213, 0, 0, 0, 0, 0, 0, -214, 0, 0, -56, 0, 0, 0, -276, 0, 0, 0, 0, 0, 0, -205, 0, 0, 0,
-				0, 0, 0, 0, -238, 0, 0, 0, -215, 0, 0, 0, 0, 0, 0, -216, 0, 0, -63, 0, 0, 0, -277, 0, 0, 0, 0, 0, 0,
-				-206, 0, 0, 0, 0, 0, 0, 0, -239, 0, 0, 0, -217, 0, 0, 0, 0, 0, 0, -218, 0, 0, -64, 0, 0, 0, -163, 0, 0,
-				0, 0, 0, 0, -207, 0, 0, 0, 0, 0, 0, 0, -255, 0, 0, 0, -219, 0, 0, 0, 0, 0, 0, -179, 0, 0, 0, 0, -220, 0,
-				-230, -89, 0, 0, 0, 0, -225, 0, 0, 0, 0, 0, 0, 0, 0, -265, 0, 0, -221, -226, 0, 0, 0, 0, 0, 0, -181, 0,
-				0, 0, 0, -323, 0, 0, -260, -273, 0, 0, 0, 0, -222, 0, 0, 0, 0, 0, 0, 0, -270, 0, 0, -261, -262, 0, 0, 0,
-				0, 0, 0, -182, 0, 0, 0, 0, -322, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -295, 0, 0,
-				-263, 0, 0, 0, 0, 0, 0, 0, -183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -268, 0, 0, 0, 0, 0, 0, 0, 0, -184,
-				0, -303, 0, 0, -233, 0, 0, 0, 0, 0, 0, 0, -246, 0, 0, 0, 0, -223, 0, 0, -101, 0, 0, 0, 0, -224, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -153, -319, 0, 0, -231, -232, 0, 0, 0, 0, 0, 0, -248, 0, 0, 0, 0, -278, 0, -121, 0, 0,
-				0, 0, -249, 0, 0, 0, 0, 0, 0, 0, 0, 0, -242, 0, -324, 0, 0, -251, 0, 0, 0, 0, 0, 0, 0, -250, 0, 0, 0, 0,
-				-269, 0, -50, 0, 0, 0, 0, -296, -301, 0, 0, 0, 0, 0, 0, 0, 0, -316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -10,
-				0, 0, 0, 0, 0, 0, 0, -191, 0, 0, 0, 0, 0, -281, -283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -293, 0, 0, 0, 0, -44, 0, 0, -253, 0, 0, 0, 0, 0, 0, 0, -229, -18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -49, 0, 0, -252, 0, -194, 0, 0, 0, 0, 0, 0, 0, -236, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -157, 0, 0, 0, 0, 0,
-				0, -149, 0, 0, -342, 0, 0, 0, 0, 0, 0, 0, -234, 0, 0, 0, 0, 0, 0, -148, 0, -235, 0, 0, 0, 0, -264, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -258, 0, 0, 0, 0, 0, 0, -102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -257, 0, -160, 0, 0, 0, -291, 0, 0, -6, 0, 0, 0, 0, 0, 0, 0, 0, -297,
-				-146, 0, 0, 0, -298, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -315, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -285, -299, -144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -294, 0, 0, 0, 0, 0, 0,
-				0, -103, 0, -306, 0, 0, 0, -309, 0, 0, 0, -312, 0, 0, 0, 0, 0, 0, -254, 0, 0, 0, 0, -314, 0, 0, 0, 0, 0,
-				-329, 0, 0, 0, -317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -287, 0, 0, 0, 0, -334, -326, -272, 0, 0, -289,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -290, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -325, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -330, 0, 0, 0, 0,
-				-336, -331, 0, 0, 0, -341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-343, 0, 0, 0, 0, -340, -338, 0, 0, 0, -344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -346, 0, 0, 0, 0, -359, -345, 0, 0, 0, -349, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -350, 0, 0, 0, 0, 0, -347, 0, 0, 0, -352, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -355, 0, 0, 0, 0, 0, -351, 0, 0, 0, -360, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -362, 0, 0, 0, 0, 0, -353, 0, 0, 0, -363, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -364, 0, 0, 0, 0, 0, -356, 0, 0, 0,
-				-366, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -367, 0, 0, 0, 0, 0,
-				-361, 0, 0, 0, -368, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -370, 0,
-				0, 0, 0, 0, -365, 0, 0, 0, -371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -373, 0, 0, 0, 0, 0, -369, 0, 0, 0, -376, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -377, 0, 0, 0, 0, 0, -372, 0, 0, 0, -378, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -379, 0, 0, 0, 0, 0, -374, 0, 0, 0, -380, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -381, 0, 0, 0, 0, 0, -382, 0, 0, 0, -383, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -145, 0, 0, -159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -267, 0, 0, 0, -138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -247, 0, -318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -8, 0, 0, -139, -12, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-143, 0, 0, 0, -15, 0, 0, 0, 0, 0, 0, -17, 0, 0, -135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -197, -82,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -136, 0, 0, -274, 0, 0, 0, 0, 0, 0, 0, -137, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -92, 0, -52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-122, 0, 0, 0, 0, -123, 0, -124, 0, 0, 0, 0, -151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -125, 0, 0, 0, 0, -126,
-				0, 0, -256, 0, 0, 0, -266, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -83, 0, -292, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -186, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -305, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -308, 0, -228, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -327, 0, 0, 0, 0, 0, 0, 0, -328, 0, 0, 0, 0, 0, 0, 0, -332, 0, 0, 0, 0, 0, 0,
-				0, 0, -333, 0, 0, 0, 0, 0, -335, 0, 0, 0, 0, 0, -348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -354,
-				0, 0, 0, 0, 0, 0, 0, 0, -357, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -358, 0, 0, 0, 0, 0, -375, 0,
-				0, 0, 0, 0, -244, 0, 0, 0, 0, 0, 0, 0, 0, -245, 0, 0, 0, 0, 0, 0, 0, -280, 0, 0, 0, 0, 0, 0, 0, -282, 0,
-				0, 0, 0, 0, 0, 0, -284, 0, 0, 0, 0, 0, 0, -286, 0, -307, 0, 0, 0, 0, 0, -310, 0, 0, 0, 0, 0, 0, 0, 0,
-				-311, 0, 0, 0, 0, 0, -313, 0, -337, 0, 0, 0, 0, 0, 0, -339, 0, -187, 0, 0, 0, 0, 0, -189, 0, 0, 0, 0, 0,
-				0, 0, 0, -190, 0, -288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static short baseCheck[] = BaseCheck.baseCheck;
-
-	@Override
-	public final int baseCheck(int index) {
-		return baseCheck[index];
-	}
-
-	public final static short rhs[] = baseCheck;
-
-	@Override
-	public final int rhs(int index) {
-		return rhs[index];
-	}
-
-	public interface BaseAction {
-		public final static char baseAction[] = { 111, 1, 130, 39, 39, 11, 11, 49, 49, 3, 3, 2, 2, 5, 5, 5, 5, 6, 6, 6,
-				7, 8, 8, 8, 8, 8, 8, 8, 8, 82, 82, 94, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 12, 12, 12, 12, 13, 13,
-				13, 15, 15, 15, 17, 17, 17, 17, 17, 26, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, 34, 34,
-				34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 18, 14, 4, 112, 112, 95, 95, 60, 19, 19, 19, 19, 19, 19, 19, 20,
-				20, 20, 16, 16, 96, 96, 73, 73, 21, 21, 22, 22, 22, 68, 68, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 51,
-				51, 33, 33, 33, 33, 33, 54, 54, 54, 88, 88, 83, 83, 83, 83, 84, 84, 84, 85, 85, 85, 86, 86, 86, 87, 87,
-				87, 97, 97, 89, 89, 90, 55, 57, 57, 57, 57, 57, 69, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 77,
-				74, 74, 113, 114, 79, 79, 75, 75, 75, 91, 98, 98, 99, 99, 92, 92, 92, 58, 115, 115, 100, 101, 101, 101,
-				76, 76, 116, 102, 102, 103, 103, 93, 93, 35, 36, 36, 36, 56, 59, 59, 45, 45, 45, 45, 41, 41, 42, 46, 46,
-				47, 43, 43, 104, 104, 48, 118, 118, 117, 117, 52, 52, 52, 52, 52, 52, 52, 52, 52, 105, 61, 61, 61, 61,
-				40, 80, 80, 71, 71, 71, 72, 72, 63, 63, 119, 119, 62, 62, 81, 81, 81, 64, 64, 64, 65, 66, 66, 66, 67,
-				67, 67, 67, 78, 78, 50, 50, 53, 121, 120, 120, 120, 120, 106, 122, 123, 123, 124, 124, 125, 125, 111,
-				111, 126, 126, 107, 107, 107, 107, 127, 127, 108, 108, 108, 109, 110, 110, 5, 5, 5, 9, 9, 9, 9, 9, 9,
-				35, 35, 37, 37, 38, 38, 128, 128, 128, 19, 25, 25, 25, 25, 25, 25, 25, 23, 23, 23, 23, 23, 23, 23, 23,
-				23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 44, 44, 362, 2858, 1259, 2059, 2895, 17,
-				21, 18, 522, 883, 45, 72, 535, 618, 2751, 577, 20, 651, 2078, 17, 21, 18, 522, 43, 40, 2045, 632, 717,
-				680, 838, 805, 848, 75, 1922, 92, 136, 214, 325, 326, 2558, 2916, 875, 552, 225, 230, 1922, 220, 492,
-				222, 224, 232, 510, 2077, 275, 138, 135, 137, 161, 56, 2043, 72, 2213, 379, 180, 2883, 270, 1127, 1101,
-				273, 140, 167, 1901, 500, 862, 144, 147, 150, 153, 2137, 426, 401, 766, 2151, 2627, 1689, 2631, 2742,
-				2749, 1740, 433, 940, 1186, 111, 87, 1024, 1252, 136, 214, 325, 326, 1145, 72, 420, 225, 233, 96, 1910,
-				1059, 1226, 95, 97, 98, 99, 100, 334, 138, 135, 137, 161, 793, 2055, 552, 225, 230, 2509, 219, 492, 222,
-				224, 295, 140, 167, 1912, 129, 1728, 144, 147, 150, 153, 160, 426, 510, 2181, 311, 2627, 1689, 2631,
-				2742, 2749, 1740, 656, 2601, 432, 20, 2832, 313, 17, 21, 18, 522, 883, 45, 1760, 535, 618, 401, 577,
-				2108, 651, 157, 446, 439, 875, 420, 225, 234, 229, 632, 717, 680, 838, 805, 848, 75, 2150, 282, 1669,
-				372, 294, 2317, 2412, 432, 20, 2318, 1663, 17, 21, 18, 522, 883, 45, 283, 535, 618, 938, 577, 2651, 651,
-				20, 1903, 327, 17, 21, 18, 522, 323, 632, 717, 680, 838, 805, 848, 75, 2861, 282, 2751, 129, 20, 331,
-				288, 17, 21, 18, 522, 43, 45, 228, 535, 1278, 2751, 283, 20, 314, 938, 17, 21, 18, 522, 43, 45, 2466,
-				535, 618, 2503, 577, 20, 651, 289, 17, 21, 18, 522, 43, 36, 2135, 632, 717, 1497, 290, 2850, 940, 1626,
-				2528, 90, 20, 2558, 2850, 17, 21, 18, 522, 883, 45, 2048, 535, 618, 232, 577, 2217, 651, 188, 2284, 332,
-				180, 2839, 1898, 291, 128, 632, 717, 680, 838, 805, 848, 75, 2217, 282, 187, 2558, 2918, 401, 766, 2268,
-				2049, 476, 940, 1186, 111, 87, 279, 2839, 2560, 283, 128, 202, 938, 136, 214, 325, 326, 96, 2320, 1059,
-				104, 95, 97, 98, 99, 100, 334, 2839, 368, 226, 3101, 88, 138, 135, 137, 161, 2210, 159, 552, 225, 230,
-				1586, 219, 492, 222, 224, 2917, 140, 167, 341, 2918, 659, 144, 147, 150, 153, 699, 426, 129, 2879, 688,
-				2627, 1689, 2631, 2742, 2749, 1740, 2626, 1431, 20, 129, 1609, 17, 21, 18, 522, 883, 45, 3092, 535, 618,
-				2320, 577, 1811, 651, 72, 1, 368, 1186, 111, 87, 673, 2766, 632, 717, 680, 838, 805, 848, 75, 2317, 282,
-				96, 2317, 1059, 109, 95, 97, 98, 99, 100, 334, 1905, 261, 855, 2839, 2575, 283, 196, 688, 938, 2290,
-				1458, 20, 275, 510, 17, 21, 18, 522, 883, 45, 284, 535, 618, 315, 577, 110, 651, 242, 2839, 940, 244,
-				340, 88, 292, 2767, 632, 717, 680, 838, 805, 848, 75, 1450, 781, 2478, 2117, 20, 108, 240, 17, 21, 18,
-				522, 43, 45, 2296, 535, 618, 2503, 577, 20, 651, 2562, 17, 21, 18, 522, 43, 36, 145, 632, 717, 680, 838,
-				805, 848, 94, 2318, 1697, 2801, 1891, 20, 2221, 333, 17, 21, 18, 522, 883, 45, 2041, 535, 618, 2503,
-				577, 20, 651, 247, 17, 21, 18, 522, 43, 36, 557, 632, 717, 680, 838, 805, 848, 75, 2362, 784, 20, 129,
-				998, 17, 21, 18, 522, 883, 45, 72, 535, 618, 105, 577, 2676, 651, 20, 72, 248, 17, 21, 18, 522, 321,
-				632, 717, 680, 838, 805, 848, 75, 2569, 1325, 2751, 2217, 20, 1613, 241, 17, 21, 18, 522, 883, 45, 2917,
-				535, 618, 125, 577, 510, 651, 1966, 429, 2217, 306, 31, 2217, 1578, 31, 632, 717, 680, 838, 805, 848,
-				75, 2751, 92, 20, 1193, 2898, 17, 21, 18, 522, 43, 45, 1983, 535, 618, 2751, 577, 20, 651, 662, 17, 21,
-				18, 522, 43, 39, 2924, 632, 717, 680, 838, 805, 848, 94, 2829, 129, 940, 305, 2751, 88, 20, 2567, 659,
-				17, 21, 18, 522, 883, 45, 1292, 535, 618, 2217, 577, 189, 651, 2917, 312, 2217, 124, 1573, 1233, 211,
-				1252, 632, 717, 680, 838, 805, 848, 75, 2751, 86, 20, 688, 285, 17, 21, 18, 522, 883, 45, 25, 535, 618,
-				24, 577, 2917, 651, 2217, 112, 297, 309, 303, 304, 310, 2320, 632, 717, 680, 838, 805, 848, 75, 2751,
-				85, 20, 19, 2324, 17, 21, 18, 522, 883, 45, 2407, 535, 618, 2751, 577, 20, 651, 2570, 17, 21, 18, 522,
-				43, 38, 2897, 632, 717, 680, 838, 805, 848, 75, 2751, 84, 20, 129, 1739, 17, 21, 18, 522, 883, 45, 2836,
-				535, 618, 2751, 577, 20, 651, 2882, 17, 21, 18, 522, 43, 37, 2847, 632, 717, 680, 838, 805, 848, 75,
-				2751, 83, 20, 2148, 1829, 17, 21, 18, 522, 883, 45, 276, 535, 618, 2751, 577, 20, 651, 2657, 17, 21, 18,
-				522, 43, 35, 2320, 632, 717, 680, 838, 805, 848, 75, 2751, 82, 20, 231, 277, 17, 21, 18, 522, 883, 45,
-				2682, 535, 618, 2751, 577, 20, 651, 2840, 17, 21, 18, 522, 43, 36, 2316, 632, 717, 680, 838, 805, 848,
-				75, 2751, 81, 20, 235, 2782, 17, 21, 18, 522, 883, 45, 74, 535, 618, 2751, 577, 20, 651, 2837, 17, 21,
-				18, 522, 43, 48, 2707, 632, 717, 680, 838, 805, 848, 75, 2751, 80, 20, 129, 519, 17, 21, 18, 522, 883,
-				45, 2885, 535, 618, 2751, 577, 20, 651, 2826, 17, 21, 18, 522, 43, 47, 2320, 632, 717, 680, 838, 805,
-				848, 75, 2751, 79, 20, 1491, 2468, 17, 21, 18, 522, 883, 45, 2553, 535, 618, 2751, 577, 20, 651, 2317,
-				17, 21, 18, 522, 43, 46, 2320, 632, 717, 680, 838, 805, 848, 75, 2751, 78, 20, 1508, 2207, 17, 21, 18,
-				522, 883, 45, 2315, 535, 618, 2701, 577, 20, 651, 2317, 17, 21, 18, 522, 319, 22, 2320, 632, 717, 680,
-				838, 805, 848, 75, 2751, 77, 20, 1509, 2114, 17, 21, 18, 522, 883, 45, 2118, 535, 618, 2726, 577, 20,
-				651, 2317, 17, 21, 18, 522, 41, 243, 2320, 632, 717, 680, 838, 805, 848, 75, 2751, 76, 20, 1543, 1930,
-				17, 21, 18, 522, 883, 45, 2394, 535, 618, 2776, 577, 20, 651, 2317, 17, 21, 18, 522, 34, 245, 2320, 632,
-				717, 680, 838, 805, 848, 75, 2751, 1358, 20, 1843, 2854, 17, 21, 18, 522, 883, 45, 2868, 535, 618, 2776,
-				577, 20, 651, 2356, 17, 21, 18, 522, 33, 246, 2320, 632, 717, 680, 838, 805, 848, 75, 2751, 1391, 20,
-				23, 2925, 17, 21, 18, 522, 883, 45, 2917, 535, 618, 339, 577, 2477, 651, 2935, 1929, 256, 214, 325, 326,
-				129, 2902, 632, 717, 680, 838, 805, 848, 75, 2751, 93, 20, 2856, 2924, 17, 21, 18, 522, 883, 45, 2917,
-				535, 618, 337, 577, 2217, 651, 299, 2951, 2857, 255, 214, 325, 326, 2469, 632, 717, 680, 838, 805, 848,
-				75, 2751, 74, 20, 2954, 2955, 17, 21, 18, 522, 43, 45, 2917, 535, 618, 335, 577, 2317, 651, 1895, 429,
-				181, 306, 256, 214, 325, 326, 632, 717, 680, 838, 805, 848, 94, 1424, 1661, 2751, 28, 20, 2958, 938, 17,
-				21, 18, 522, 43, 45, 2917, 535, 618, 127, 577, 662, 651, 28, 28, 296, 938, 938, 905, 2935, 213, 632,
-				717, 680, 838, 805, 848, 94, 2917, 305, 2751, 123, 20, 2845, 2024, 17, 21, 18, 522, 43, 45, 2917, 535,
-				618, 3125, 577, 2732, 651, 28, 2839, 940, 938, 338, 88, 2867, 203, 632, 717, 680, 838, 805, 848, 94,
-				1483, 2405, 2751, 1613, 20, 2606, 2936, 17, 21, 18, 522, 43, 45, 2917, 535, 618, 3132, 577, 2941, 651,
-				2355, 916, 302, 304, 310, 2320, 386, 1521, 632, 717, 680, 838, 805, 848, 94, 387, 2017, 2751, 1907, 20,
-				2320, 958, 17, 21, 18, 522, 43, 45, 2946, 535, 618, 2027, 577, 2924, 651, 220, 368, 1186, 111, 87, 2953,
-				2965, 204, 632, 717, 680, 838, 805, 848, 94, 2056, 96, 275, 1059, 109, 95, 97, 98, 99, 100, 334, 346,
-				3262, 3262, 268, 1127, 1101, 273, 688, 291, 368, 1186, 111, 87, 210, 2917, 2917, 1821, 3134, 3140, 1952,
-				267, 205, 1457, 1614, 96, 110, 1059, 109, 95, 97, 98, 99, 100, 334, 2924, 136, 214, 325, 326, 129, 659,
-				688, 147, 368, 1186, 111, 87, 107, 3262, 3262, 2405, 2284, 1613, 180, 146, 135, 137, 161, 96, 110, 1059,
-				109, 95, 97, 98, 99, 100, 334, 3262, 3262, 767, 1912, 688, 3262, 2320, 688, 519, 940, 1186, 111, 87,
-				107, 3262, 182, 72, 2053, 136, 214, 325, 326, 308, 106, 96, 110, 1059, 102, 95, 97, 98, 99, 100, 334,
-				3262, 3262, 1731, 139, 135, 137, 161, 3262, 3262, 875, 552, 225, 1006, 108, 220, 492, 222, 984, 141,
-				167, 1923, 1773, 510, 145, 148, 151, 154, 2751, 426, 20, 2317, 3262, 17, 21, 18, 522, 43, 45, 1929, 535,
-				618, 210, 577, 369, 651, 129, 940, 1932, 2821, 88, 1564, 1614, 2962, 632, 717, 680, 838, 1599, 278,
-				1591, 3262, 552, 225, 230, 1013, 219, 492, 222, 224, 298, 2848, 659, 275, 255, 214, 325, 326, 2839, 940,
-				264, 336, 88, 3262, 3262, 268, 1127, 1101, 273, 552, 225, 230, 1516, 219, 492, 222, 224, 3262, 3262,
-				2320, 275, 1929, 265, 28, 1811, 2320, 938, 699, 401, 469, 274, 510, 268, 1127, 1101, 273, 280, 2924,
-				2751, 1492, 20, 3262, 2863, 17, 21, 18, 522, 43, 45, 1889, 535, 618, 2898, 577, 260, 651, 255, 214, 325,
-				326, 262, 2320, 1895, 1212, 632, 717, 680, 1475, 3262, 552, 225, 488, 2130, 219, 492, 222, 474, 256,
-				214, 325, 326, 2917, 2924, 2751, 3155, 20, 206, 160, 17, 21, 18, 522, 43, 45, 2915, 535, 618, 195, 577,
-				3262, 651, 1424, 2839, 940, 2917, 126, 88, 3002, 2917, 632, 1443, 3018, 2917, 3262, 3262, 3157, 1551,
-				156, 446, 562, 940, 1186, 111, 87, 2917, 591, 1373, 3164, 3262, 3262, 2917, 692, 413, 3039, 2320, 96,
-				3262, 1059, 103, 95, 97, 98, 99, 100, 334, 281, 501, 605, 940, 1186, 111, 87, 2917, 2320, 1929, 3055,
-				3262, 648, 940, 1186, 111, 87, 3262, 96, 2125, 1059, 120, 95, 97, 98, 99, 100, 334, 96, 3262, 1059, 115,
-				95, 97, 98, 99, 100, 334, 691, 940, 1186, 111, 87, 3262, 255, 214, 325, 326, 734, 940, 1186, 111, 87,
-				3262, 96, 3262, 1059, 1678, 95, 97, 98, 99, 100, 334, 96, 3262, 1059, 365, 95, 97, 98, 99, 100, 334,
-				777, 940, 1186, 111, 87, 2917, 2320, 3262, 3064, 3262, 820, 940, 1186, 111, 87, 1912, 96, 2171, 1059,
-				357, 95, 97, 98, 99, 100, 334, 96, 3262, 1059, 114, 95, 97, 98, 99, 100, 334, 863, 940, 1186, 111, 87,
-				2917, 2320, 3262, 118, 3262, 906, 940, 1186, 111, 87, 3262, 96, 2243, 1059, 364, 95, 97, 98, 99, 100,
-				334, 96, 3262, 1059, 363, 95, 97, 98, 99, 100, 334, 949, 940, 1186, 111, 87, 2917, 2320, 3262, 3086,
-				3262, 992, 940, 1186, 111, 87, 3262, 96, 2269, 1059, 361, 95, 97, 98, 99, 100, 334, 96, 3262, 1059, 356,
-				95, 97, 98, 99, 100, 334, 1035, 940, 1186, 111, 87, 3262, 2320, 3262, 3262, 3262, 1078, 940, 1186, 111,
-				87, 3262, 96, 2279, 1059, 355, 95, 97, 98, 99, 100, 334, 96, 3262, 1059, 353, 95, 97, 98, 99, 100, 334,
-				1121, 940, 1186, 111, 87, 3262, 2320, 3262, 3262, 3262, 1164, 940, 1186, 111, 87, 3262, 96, 2315, 1059,
-				349, 95, 97, 98, 99, 100, 334, 96, 3262, 1059, 122, 95, 97, 98, 99, 100, 334, 1207, 940, 1186, 111, 87,
-				3262, 2320, 3262, 3262, 3262, 1250, 940, 1186, 111, 87, 3262, 96, 2341, 1059, 362, 95, 97, 98, 99, 100,
-				334, 96, 3262, 1059, 360, 95, 97, 98, 99, 100, 334, 1293, 940, 1186, 111, 87, 3262, 2320, 3262, 3262,
-				3262, 1336, 940, 1186, 111, 87, 3262, 96, 2377, 1059, 359, 95, 97, 98, 99, 100, 334, 96, 3262, 1059,
-				354, 95, 97, 98, 99, 100, 334, 1379, 940, 1186, 111, 87, 3262, 2320, 3262, 3262, 3262, 1422, 940, 1186,
-				111, 87, 3262, 96, 2423, 1059, 352, 95, 97, 98, 99, 100, 334, 96, 3262, 1059, 351, 95, 97, 98, 99, 100,
-				334, 1465, 940, 1186, 111, 87, 3262, 2320, 3262, 3262, 3262, 1508, 940, 1186, 111, 87, 3262, 96, 2449,
-				1059, 348, 95, 97, 98, 99, 100, 334, 96, 3262, 1059, 347, 95, 97, 98, 99, 100, 334, 1551, 940, 1186,
-				111, 87, 3262, 2320, 3262, 3262, 3262, 1594, 940, 1186, 111, 87, 3262, 96, 2459, 1059, 345, 95, 97, 98,
-				99, 100, 334, 96, 3262, 1059, 121, 95, 97, 98, 99, 100, 334, 1637, 940, 1186, 111, 87, 3262, 2320, 3262,
-				3262, 3262, 1680, 940, 1186, 111, 87, 3262, 96, 2485, 1059, 358, 95, 97, 98, 99, 100, 334, 96, 3262,
-				1059, 350, 95, 97, 98, 99, 100, 334, 1723, 940, 1186, 111, 87, 3262, 2320, 3262, 3262, 3262, 1766, 940,
-				1186, 111, 87, 3262, 96, 2495, 1059, 346, 95, 97, 98, 99, 100, 334, 96, 3262, 1059, 344, 95, 97, 98, 99,
-				100, 334, 1809, 940, 1186, 111, 87, 3262, 2320, 3262, 3262, 3262, 1852, 940, 1186, 111, 87, 3262, 96,
-				2531, 1059, 343, 95, 97, 98, 99, 100, 334, 96, 3262, 1059, 342, 95, 97, 98, 99, 100, 334, 2751, 3262,
-				20, 401, 766, 17, 21, 18, 522, 43, 45, 3262, 535, 618, 3262, 577, 3262, 651, 1916, 766, 3262, 3262,
-				2751, 3262, 20, 3262, 1455, 17, 21, 18, 522, 43, 45, 3262, 535, 618, 3262, 577, 3262, 1344, 3262, 3262,
-				3262, 3262, 552, 225, 230, 3262, 219, 492, 222, 224, 3262, 3262, 2914, 940, 1916, 766, 88, 552, 225,
-				230, 160, 219, 492, 222, 224, 3262, 116, 3262, 2398, 3262, 3262, 2751, 1950, 20, 3262, 1668, 17, 21, 18,
-				522, 43, 45, 3262, 535, 618, 3262, 577, 3262, 1351, 3262, 156, 446, 3262, 3262, 3262, 552, 225, 230,
-				591, 219, 492, 222, 224, 136, 214, 325, 326, 136, 214, 325, 326, 3262, 3262, 1668, 3262, 3262, 199, 201,
-				3262, 3262, 1951, 3262, 143, 135, 137, 161, 149, 135, 137, 161, 3262, 1964, 3262, 3262, 2751, 3262, 20,
-				142, 167, 17, 21, 18, 522, 43, 45, 3262, 535, 618, 3262, 1377, 3262, 2751, 3262, 20, 200, 201, 17, 21,
-				18, 522, 43, 45, 3262, 535, 618, 2751, 1384, 20, 3262, 3262, 17, 21, 18, 522, 43, 45, 3262, 535, 618,
-				2751, 1410, 20, 3262, 2021, 17, 21, 18, 522, 43, 45, 2076, 535, 618, 2751, 1417, 20, 3262, 3262, 17, 21,
-				18, 522, 43, 45, 3262, 535, 1285, 2576, 1912, 20, 3262, 3262, 17, 21, 18, 522, 43, 44, 136, 214, 325,
-				326, 1984, 1861, 3262, 136, 214, 325, 326, 3262, 3262, 3262, 3262, 278, 3262, 3262, 3262, 152, 135, 137,
-				161, 3262, 3262, 3262, 155, 135, 137, 161, 875, 552, 225, 230, 3262, 220, 492, 222, 224, 28, 3262, 2751,
-				938, 20, 2848, 659, 17, 21, 18, 522, 43, 45, 2751, 1311, 20, 3262, 275, 17, 21, 18, 522, 43, 45, 3262,
-				1318, 3262, 3262, 3262, 268, 1127, 1101, 273, 3262, 2360, 659, 129, 368, 1811, 3262, 88, 3262, 3262,
-				3262, 3262, 510, 1889, 3262, 3262, 3262, 1068, 129, 368, 3262, 3262, 88, 129, 368, 129, 368, 88, 3262,
-				88, 2037, 659, 1068, 369, 1811, 260, 198, 1068, 3262, 1068, 3262, 129, 368, 1895, 1212, 88, 129, 368,
-				3262, 2894, 88, 198, 3262, 2183, 659, 1068, 198, 3262, 198, 3262, 1068, 1628, 3262, 198, 260, 762, 3262,
-				2388, 659, 2388, 659, 3262, 1167, 1212, 198, 3262, 1628, 3262, 3262, 198, 1266, 1628, 3262, 1628, 3262,
-				1299, 198, 1332, 796, 875, 3262, 2914, 368, 3262, 3262, 88, 3262, 3262, 3262, 1628, 1811, 275, 1811,
-				1365, 1628, 116, 2916, 940, 1398, 3262, 88, 796, 3262, 270, 1127, 1101, 273, 2063, 1200, 3262, 366,
-				3262, 193, 3262, 688, 3262, 3262, 3262, 1476, 2984, 260, 3262, 260, 2916, 940, 2110, 659, 88, 1167,
-				1212, 2004, 1212, 2611, 3262, 2089, 193, 3262, 366, 3262, 3262, 2023, 1723, 2984, 2916, 940, 3262, 3262,
-				88, 3262, 1621, 3262, 2916, 940, 3262, 2135, 88, 3262, 366, 198, 2916, 940, 3262, 2161, 88, 3262, 366,
-				3262, 2095, 2916, 940, 2197, 3262, 88, 366, 2916, 940, 3262, 3262, 88, 2207, 2916, 940, 366, 796, 88,
-				2233, 3262, 2167, 366, 3262, 3262, 2305, 3262, 3262, 366, 2203, 2916, 940, 3262, 3262, 88, 3262, 3262,
-				2239, 3262, 2916, 940, 2351, 3262, 88, 366, 3262, 2275, 3262, 3262, 3262, 2387, 194, 2311, 366, 3262,
-				2916, 940, 3262, 2383, 88, 3262, 2916, 940, 3262, 3262, 88, 2413, 2839, 940, 366, 3109, 88, 2521, 3262,
-				2419, 366, 2839, 940, 3262, 3117, 88, 1703, 3262, 2455, 2839, 940, 3262, 2955, 88, 3262, 1704, 3262,
-				2839, 940, 3262, 2982, 88, 3262, 1974, 2491, 2839, 940, 3262, 3149, 88, 2527, 1978, 2914, 940, 2839,
-				940, 88, 3010, 88, 1982, 2839, 940, 3262, 3027, 88, 3262, 116, 3262, 2000, 2839, 940, 3262, 3033, 88,
-				2022, 2914, 940, 2839, 940, 88, 3080, 88, 3262, 2094, 2914, 940, 129, 940, 88, 116, 88, 2166, 129, 940,
-				3262, 3262, 88, 3262, 116, 3262, 1633, 129, 940, 129, 940, 88, 1648, 88, 3262, 3262, 3262, 3262, 3262,
-				3262, 3262, 1763, 3262, 1931, 3262, 3262, 1994, 3262, 3262, 3262, 3262, 3262, 3262, 3262, 3262, 3262,
-				3262, 3262, 3262, 3262, 3262, 3262, 3262, 3262, 3262, 3262, 3262, 3262, 3262, 2131, 3262, 3262, 3262,
-				3262, 3262, 3262, 3262, 3262, 2347, 3262, 0, 328, 837, 0, 11, 227, 0, 3270, 1, 0, 1, 3500, 0, 8, 10, 0,
-				1656, 119, 0, 180, 20, 0, 1, 3489, 0, 113, 2099, 0 };
-	}
-
-	public final static char baseAction[] = BaseAction.baseAction;
-
-	@Override
-	public final int baseAction(int index) {
-		return baseAction[index];
-	}
-
-	public final static char lhs[] = baseAction;
-
-	@Override
-	public final int lhs(int index) {
-		return lhs[index];
-	}
-
-	public interface TermCheck {
-		public final static byte termCheck[] = { 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
-				19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
-				45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 0, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
-				0, 72, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
-				27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
-				53, 54, 0, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 0, 72, 0, 1, 2, 3, 4, 5, 6, 7, 8,
-				9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
-				35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 0, 56, 57, 58, 59, 60,
-				61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 0, 72, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
-				17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
-				43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 0, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
-				69, 70, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
-				26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
-				52, 53, 54, 0, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 0, 1, 2, 3, 4, 92, 0, 7, 8,
-				9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 1, 43, 44, 45, 46, 47, 48, 49, 50, 51,
-				52, 53, 54, 0, 1, 2, 0, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 0, 56, 57, 58, 59, 60, 61, 62,
-				63, 64, 65, 66, 67, 68, 69, 70, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
-				20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 0, 1, 2, 3,
-				4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
-				31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
-				16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
-				42, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
-				27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
-				12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
-				38, 39, 40, 41, 42, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
-				23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 0, 1, 2, 3, 4, 5, 6, 7,
-				8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
-				34, 35, 36, 37, 38, 39, 40, 41, 42, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
-				19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 0, 1, 2,
-				3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
-				31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
-				16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
-				42, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
-				27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
-				12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
-				38, 39, 40, 41, 42, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
-				23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 0, 1, 2, 3, 4, 5, 6, 7,
-				8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
-				34, 35, 36, 37, 38, 39, 40, 41, 42, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
-				19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 0, 1, 2,
-				3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
-				31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
-				16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
-				42, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
-				27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
-				12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
-				38, 39, 40, 41, 42, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
-				23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 0, 1, 2, 3, 4, 5, 6, 7,
-				8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
-				34, 35, 36, 37, 38, 39, 40, 41, 42, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
-				19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 0, 1, 2,
-				3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
-				31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
-				16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
-				42, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
-				27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
-				12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
-				38, 39, 40, 41, 42, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
-				23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 0, 1, 2, 3, 4, 5, 6, 7,
-				8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
-				34, 35, 36, 37, 38, 39, 40, 41, 42, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
-				19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 0, 1, 2,
-				3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
-				31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
-				16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
-				42, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
-				27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
-				12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
-				38, 39, 40, 41, 42, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
-				23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 0, 1, 2, 3, 4, 5, 0, 1,
-				0, 3, 0, 1, 6, 3, 0, 0, 6, 0, 1, 2, 5, 0, 1, 2, 0, 25, 26, 0, 0, 1, 2, 0, 4, 6, 0, 0, 0, 0, 1, 2, 25, 0,
-				5, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 0, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
-				68, 69, 70, 0, 1, 2, 3, 4, 5, 43, 44, 45, 46, 47, 48, 55, 76, 77, 71, 87, 0, 0, 75, 2, 55, 5, 5, 74, 25,
-				26, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 73, 76, 77, 25, 43, 44, 45, 46, 47, 48, 49, 50, 51,
-				52, 53, 54, 0, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 0, 1, 55, 3, 0, 5, 0, 1, 0,
-				3, 2, 0, 0, 1, 0, 3, 87, 71, 0, 0, 73, 75, 0, 1, 6, 3, 26, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
-				54, 0, 0, 0, 2, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 0, 56, 57, 58, 59, 60, 61, 62, 63, 64,
-				65, 66, 67, 68, 69, 70, 0, 72, 0, 1, 4, 3, 0, 5, 75, 0, 0, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
-				54, 83, 84, 85, 86, 0, 26, 0, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 0, 93, 0, 0, 2, 43, 44, 45,
-				46, 47, 48, 49, 50, 51, 52, 53, 54, 87, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 0,
-				72, 0, 1, 4, 3, 0, 5, 81, 82, 43, 44, 45, 46, 47, 48, 83, 84, 85, 86, 83, 84, 85, 86, 55, 55, 0, 91, 26,
-				0, 4, 75, 0, 1, 2, 3, 0, 1, 9, 3, 0, 0, 88, 89, 4, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 0,
-				56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 0, 72, 43, 44, 45, 46, 47, 48, 49, 50, 51,
-				52, 53, 54, 0, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 0, 1, 0, 3, 81, 82, 0, 1, 2,
-				3, 4, 5, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 4, 0, 5, 5,
-				5, 0, 5, 2, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 49, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
-				66, 67, 68, 69, 70, 0, 0, 2, 90, 4, 0, 1, 0, 1, 2, 3, 4, 5, 78, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
-				18, 19, 20, 21, 22, 23, 24, 71, 0, 73, 72, 95, 96, 73, 0, 78, 81, 82, 0, 43, 44, 45, 46, 47, 48, 0, 1,
-				0, 3, 2, 55, 49, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
-				24, 0, 0, 79, 78, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 0, 56, 57, 58, 59, 60, 61, 62, 63, 64,
-				65, 66, 67, 0, 79, 0, 0, 76, 77, 0, 7, 8, 7, 8, 0, 0, 1, 2, 3, 4, 5, 72, 7, 8, 9, 10, 11, 12, 13, 14,
-				15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 1, 2, 3, 4, 5, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
-				18, 19, 20, 21, 22, 23, 24, 0, 1, 2, 3, 4, 0, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
-				21, 22, 23, 24, 0, 0, 1, 78, 3, 0, 90, 7, 8, 0, 5, 55, 88, 89, 0, 6, 0, 0, 0, 2, 6, 0, 6, 0, 1, 2, 3, 4,
-				78, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 1, 2, 3, 4, 0, 6, 7, 8,
-				9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 1, 2, 3, 4, 73, 6, 7, 8, 9, 10, 11,
-				12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 1, 2, 3, 4, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14,
-				15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 1, 2, 3, 4, 75, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
-				18, 19, 20, 21, 22, 23, 24, 0, 1, 2, 3, 4, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
-				21, 22, 23, 24, 0, 1, 2, 3, 4, 74, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
-				24, 0, 1, 2, 3, 4, 74, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 1, 2,
-				3, 4, 74, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 1, 2, 3, 4, 74, 0,
-				7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 1, 2, 0, 4, 5, 0, 0, 2, 6, 0, 0,
-				2, 0, 0, 0, 10, 11, 5, 0, 6, 0, 0, 2, 0, 25, 4, 71, 0, 5, 0, 0, 0, 1, 2, 0, 4, 0, 25, 28, 5, 0, 0, 43,
-				44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 0, 0, 2, 0, 25, 55, 43, 44, 45, 46, 47, 48, 0, 0, 2, 0,
-				4, 73, 43, 44, 45, 46, 47, 48, 43, 44, 45, 46, 47, 48, 80, 55, 0, 0, 0, 0, 0, 5, 5, 5, 5, 73, 0, 0, 94,
-				79, 0, 5, 76, 77, 71, 5, 9, 0, 0, 55, 55, 25, 25, 0, 25, 27, 76, 77, 0, 91, 2, 55, 55, 0, 55, 0, 0, 0,
-				71, 6, 0, 92, 6, 6, 0, 80, 6, 0, 0, 0, 6, 0, 0, 0, 6, 6, 0, 80, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 73, 0,
-				73, 0, 0, 0, 0, 0, 0, 72, 79, 0, 0, 72, 0, 0, 0, 0, 0, 71, 71, 0, 0, 0, 0, 71, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 74, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static byte termCheck[] = TermCheck.termCheck;
-
-	@Override
-	public final int termCheck(int index) {
-		return termCheck[index];
-	}
-
-	public interface TermAction {
-		public final static char termAction[] = { 0, 3262, 6600, 1, 6598, 1, 1219, 870, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 3271, 3363, 1028, 1094, 951, 973, 1160, 457, 1087, 1030, 1134, 1972, 1120, 821,
-				1868, 727, 1594, 1080, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 183, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 254, 3269, 8, 3247, 3247, 3247, 3247, 3247, 3247, 3247, 3247, 3247, 3247, 3247, 3247, 3247, 3247,
-				3247, 3247, 3247, 3247, 3247, 3247, 3247, 3247, 3247, 3247, 3247, 3247, 3247, 3247, 3247, 3247, 3247,
-				3247, 3247, 3247, 3247, 3247, 3247, 3247, 3247, 3247, 3247, 3247, 3247, 3247, 3247, 3247, 3247, 3247,
-				3247, 3247, 3247, 3247, 3247, 3247, 1, 3247, 3247, 3247, 3247, 3247, 3247, 3247, 3247, 3247, 3247, 3247,
-				3247, 3247, 3247, 3247, 184, 3247, 3262, 6600, 1, 6598, 1, 1219, 870, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 3271, 3363, 1028, 1094, 951, 973, 1160, 457, 1087, 1030, 1134, 1972, 1120, 821,
-				1868, 727, 1594, 1080, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 287, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 3262, 3269, 3262, 6600, 1, 6598, 1, 3272, 870, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 3271, 3363, 1028, 1094, 951, 973, 1160, 457, 1087, 1030, 1134, 1972, 1120, 821, 1868, 727, 1594,
-				1080, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 71, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3262, 6600,
-				1, 6598, 1, 3272, 870, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3271, 3363, 1028, 1094,
-				951, 973, 1160, 457, 1087, 1030, 1134, 1972, 1120, 821, 1868, 727, 1594, 1080, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 131, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3262, 3273, 2852, 3274, 1189, 1908, 3262,
-				1123, 1090, 1156, 1420, 1387, 1354, 3275, 3276, 3277, 3278, 987, 382, 3578, 3579, 3580, 1321, 921, 574,
-				3262, 3501, 3477, 3478, 3479, 3591, 450, 3592, 3426, 3427, 3425, 3480, 3428, 3424, 1, 3489, 678, 3262,
-				3477, 3478, 3479, 3591, 450, 3592, 3426, 3427, 3425, 3480, 3428, 3424, 3262, 3431, 3436, 3435, 3433,
-				3434, 3432, 3437, 3438, 3430, 3439, 3440, 3441, 371, 681, 427, 3262, 6600, 1, 6598, 1, 3272, 870, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3271, 3363, 1028, 1094, 951, 973, 1160, 457, 1087, 1030,
-				1134, 1972, 1120, 821, 1868, 727, 1594, 1080, 3262, 6600, 1, 6598, 1, 3272, 870, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3271, 3363, 1028, 1094, 951, 973, 1160, 457, 1087, 1030, 1134, 1972, 1120,
-				821, 1868, 727, 1594, 1080, 3262, 6600, 1, 6598, 1, 3272, 870, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 3271, 3363, 1028, 1094, 951, 973, 1160, 457, 1087, 1030, 1134, 1972, 1120, 821, 1868, 727,
-				1594, 1080, 3262, 6600, 1, 6598, 1, 3272, 870, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				3271, 3363, 1028, 1094, 951, 973, 1160, 457, 1087, 1030, 1134, 1972, 1120, 821, 1868, 727, 1594, 1080,
-				3262, 6600, 1, 6598, 1, 3272, 870, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3271, 3363,
-				1028, 1094, 951, 973, 1160, 457, 1087, 1030, 1134, 1972, 1120, 821, 1868, 727, 1594, 1080, 3262, 6600,
-				1, 6598, 1, 3272, 870, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3271, 3363, 1028, 1094,
-				951, 973, 1160, 457, 1087, 1030, 1134, 1972, 1120, 821, 1868, 727, 1594, 1080, 3262, 6600, 1, 6598, 1,
-				3272, 870, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3271, 3363, 1028, 1094, 951, 973, 1160,
-				457, 1087, 1030, 1134, 1972, 1120, 821, 1868, 727, 1594, 1080, 3262, 6600, 1, 6598, 1, 3272, 870, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3271, 3363, 1028, 1094, 951, 973, 1160, 457, 1087, 1030,
-				1134, 1972, 1120, 821, 1868, 727, 1594, 1080, 3262, 6600, 1, 6598, 1, 3272, 870, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3271, 3363, 1028, 1094, 951, 973, 1160, 457, 1087, 1030, 1134, 1972, 1120,
-				821, 1868, 727, 1594, 1080, 3262, 6600, 1, 6598, 1, 3272, 870, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 3271, 3363, 1028, 1094, 951, 973, 1160, 457, 1087, 1030, 1134, 1972, 1120, 821, 1868, 727,
-				1594, 1080, 3262, 6600, 1, 6598, 1, 3272, 870, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				3271, 3363, 1028, 1094, 951, 973, 1160, 457, 1087, 1030, 1134, 1972, 1120, 821, 1868, 727, 1594, 1080,
-				3262, 6600, 1, 6598, 1, 3272, 870, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3271, 3363,
-				1028, 1094, 951, 973, 1160, 457, 1087, 1030, 1134, 1972, 1120, 821, 1868, 727, 1594, 1080, 3262, 6600,
-				1, 6598, 1, 3272, 870, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3271, 3363, 1028, 1094,
-				951, 973, 1160, 457, 1087, 1030, 1134, 1972, 1120, 821, 1868, 727, 1594, 1080, 3262, 6600, 1, 6598, 1,
-				3272, 870, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3271, 3363, 1028, 1094, 951, 973, 1160,
-				457, 1087, 1030, 1134, 1972, 1120, 821, 1868, 727, 1594, 1080, 3262, 6600, 1, 6598, 1, 3272, 870, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3271, 3363, 1028, 1094, 951, 973, 1160, 457, 1087, 1030,
-				1134, 1972, 1120, 821, 1868, 727, 1594, 1080, 3262, 6600, 1, 6598, 1, 3272, 870, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3271, 3363, 1028, 1094, 951, 973, 1160, 457, 1087, 1030, 1134, 1972, 1120,
-				821, 1868, 727, 1594, 1080, 3262, 6600, 1, 6598, 1, 3272, 870, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 3271, 3363, 1028, 1094, 951, 973, 1160, 457, 1087, 1030, 1134, 1972, 1120, 821, 1868, 727,
-				1594, 1080, 3262, 6600, 1, 6598, 1, 3272, 870, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				3271, 3363, 1028, 1094, 951, 973, 1160, 457, 1087, 1030, 1134, 1972, 1120, 821, 1868, 727, 1594, 1080,
-				3262, 6600, 1, 6598, 1, 3272, 870, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3271, 3363,
-				1028, 1094, 951, 973, 1160, 457, 1087, 1030, 1134, 1972, 1120, 821, 1868, 727, 1594, 1080, 3262, 6600,
-				1, 6598, 1, 3272, 870, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3271, 3363, 1028, 1094,
-				951, 973, 1160, 457, 1087, 1030, 1134, 1972, 1120, 821, 1868, 727, 1594, 1080, 3262, 6600, 1, 6598, 1,
-				3272, 870, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3271, 3363, 1028, 1094, 951, 973, 1160,
-				457, 1087, 1030, 1134, 1972, 1120, 821, 1868, 727, 1594, 1080, 3262, 6600, 1, 6598, 1, 3272, 870, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3271, 3363, 1028, 1094, 951, 973, 1160, 457, 1087, 1030,
-				1134, 1972, 1120, 821, 1868, 727, 1594, 1080, 3262, 6600, 1, 6598, 1, 3272, 870, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3271, 3363, 1028, 1094, 951, 973, 1160, 457, 1087, 1030, 1134, 1972, 1120,
-				821, 1868, 727, 1594, 1080, 3262, 6600, 1, 6598, 1, 3272, 870, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 3271, 3363, 1028, 1094, 951, 973, 1160, 457, 1087, 1030, 1134, 1972, 1120, 821, 1868, 727,
-				1594, 1080, 3262, 6600, 1, 6598, 1, 3272, 870, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				3271, 3363, 1028, 1094, 951, 973, 1160, 457, 1087, 1030, 1134, 1972, 1120, 821, 1868, 727, 1594, 1080,
-				3262, 6600, 1, 6598, 1, 3272, 870, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3271, 3363,
-				1028, 1094, 951, 973, 1160, 457, 1087, 1030, 1134, 1972, 1120, 821, 1868, 727, 1594, 1080, 3262, 6600,
-				1, 6598, 1, 3272, 870, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3271, 3363, 1028, 1094,
-				951, 973, 1160, 457, 1087, 1030, 1134, 1972, 1120, 821, 1868, 727, 1594, 1080, 3262, 6600, 1, 6598, 1,
-				3272, 870, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3271, 3363, 1028, 1094, 951, 973, 1160,
-				457, 1087, 1030, 1134, 1972, 1120, 821, 1868, 727, 1594, 1080, 3262, 6600, 1, 6598, 1, 3272, 870, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3271, 3363, 1028, 1094, 951, 973, 1160, 457, 1087, 1030,
-				1134, 1972, 1120, 821, 1868, 727, 1594, 1080, 3262, 6600, 1, 6598, 1, 3272, 870, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3271, 3363, 1028, 1094, 951, 973, 1160, 457, 1087, 1030, 1134, 1972, 1120,
-				821, 1868, 727, 1594, 1080, 3262, 6600, 1, 6598, 1, 3272, 870, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 3271, 3363, 1028, 1094, 951, 973, 1160, 457, 1087, 1030, 1134, 1972, 1120, 821, 1868, 727,
-				1594, 1080, 3262, 6600, 1, 6598, 1, 3272, 870, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				3271, 3363, 1028, 1094, 951, 973, 1160, 457, 1087, 1030, 1134, 1972, 1120, 821, 1868, 727, 1594, 1080,
-				3262, 6600, 1, 6598, 1, 3272, 870, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3271, 3363,
-				1028, 1094, 951, 973, 1160, 457, 1087, 1030, 1134, 1972, 1120, 821, 1868, 727, 1594, 1080, 3262, 6600,
-				1, 6598, 1, 3272, 870, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3271, 3363, 1028, 1094,
-				951, 973, 1160, 457, 1087, 1030, 1134, 1972, 1120, 821, 1868, 727, 1594, 1080, 3262, 1, 1, 1, 1, 3272,
-				3262, 3273, 55, 3274, 3262, 3273, 739, 3274, 3262, 236, 751, 254, 3489, 678, 224, 1, 3489, 678, 3262,
-				3271, 3569, 3262, 263, 3489, 1838, 3262, 1, 561, 3262, 59, 3262, 1, 3256, 1838, 224, 3262, 3268, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 132, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3262, 1, 1, 1, 1, 3272,
-				3477, 3478, 3479, 3591, 450, 3592, 802, 593, 2752, 224, 301, 237, 1, 224, 2781, 802, 224, 3268, 1540,
-				3271, 3569, 3477, 3478, 3479, 3591, 450, 3592, 3426, 3427, 3425, 3480, 3428, 3424, 3267, 593, 2752, 224,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 133, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3262, 1, 802, 1,
-				43, 192, 186, 6595, 11, 6595, 3238, 60, 185, 6596, 3262, 6596, 300, 224, 230, 113, 3267, 224, 207, 6599,
-				233, 6599, 3459, 3477, 3478, 3479, 3591, 450, 3592, 3426, 3427, 3425, 3480, 3428, 3424, 134, 3262, 3262,
-				407, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3262, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 49, 192,
-				3262, 1, 1288, 1, 62, 191, 1340, 69, 61, 3477, 3478, 3479, 3591, 450, 3592, 3426, 3427, 3425, 3480,
-				3428, 3424, 2738, 2724, 2710, 2693, 63, 3459, 158, 1307, 1274, 1241, 1208, 1175, 1109, 1142, 1076, 1043,
-				1010, 250, 3259, 223, 328, 643, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3234, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 3262, 191, 3262, 1, 428, 1, 3262, 192, 1255, 1222, 1, 1, 1, 1, 1, 1, 2738, 2724, 2710,
-				2693, 2738, 2724, 2710, 2693, 802, 3235, 51, 607, 3459, 65, 1288, 640, 1, 393, 678, 3274, 3262, 3273,
-				2557, 3274, 3262, 3262, 2630, 2579, 924, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3262, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 3262, 192, 3477, 3478, 3479, 3591, 450, 3592, 3426, 3427, 3425, 3480, 3428,
-				3424, 67, 3431, 3436, 3435, 3433, 3434, 3432, 3437, 3438, 3430, 3439, 3440, 3441, 371, 681, 427, 3262,
-				3273, 3262, 3274, 1255, 1222, 1, 3273, 2852, 3274, 851, 3266, 73, 1123, 1090, 1156, 1420, 1387, 1354,
-				3275, 3276, 3277, 3278, 987, 382, 3578, 3579, 3580, 1321, 921, 574, 50, 3262, 3262, 1, 1288, 3262, 3268,
-				3266, 3241, 3262, 3268, 708, 3477, 3478, 3479, 3591, 450, 3592, 3426, 3427, 3425, 3480, 3428, 3424, 872,
-				3431, 3436, 3435, 3433, 3434, 3432, 3437, 3438, 3430, 3439, 3440, 3441, 371, 681, 427, 266, 249, 2781,
-				1953, 1, 1, 3244, 3262, 3273, 2852, 3274, 886, 3266, 3265, 1123, 1090, 1156, 1420, 1387, 1354, 3275,
-				3276, 3277, 3278, 987, 382, 3578, 3579, 3580, 1321, 921, 574, 1643, 1, 3267, 3269, 1818, 1836, 3267, 58,
-				3265, 1255, 1222, 130, 3477, 3478, 3479, 3591, 450, 3592, 209, 3273, 3262, 3274, 2940, 802, 1406, 1,
-				3273, 2852, 3274, 1189, 29, 6557, 1123, 1090, 1156, 1420, 1387, 1354, 3275, 3276, 3277, 3278, 987, 382,
-				3578, 3579, 3580, 1321, 921, 574, 3262, 3262, 3521, 3265, 3477, 3478, 3479, 3591, 450, 3592, 3426, 3427,
-				3425, 3480, 3428, 3424, 3262, 3431, 3436, 3435, 3433, 3434, 3432, 3437, 3438, 3430, 3439, 3440, 3441,
-				52, 3521, 54, 68, 593, 2752, 3262, 2829, 2818, 2829, 2818, 64, 3262, 3273, 2852, 3274, 621, 3266, 29,
-				1123, 1090, 1156, 1420, 1387, 1354, 3275, 3276, 3277, 3278, 987, 382, 3578, 3579, 3580, 1321, 921, 574,
-				3262, 3273, 2852, 3274, 1189, 3266, 221, 1123, 1090, 1156, 1420, 1387, 1354, 3275, 3276, 3277, 3278,
-				987, 382, 3578, 3579, 3580, 1321, 921, 574, 3262, 3273, 2852, 3274, 1189, 3262, 6557, 1123, 1090, 1156,
-				1420, 1387, 1354, 3275, 3276, 3277, 3278, 987, 382, 3578, 3579, 3580, 1321, 921, 574, 53, 208, 941,
-				3265, 941, 1, 1953, 2829, 2818, 3262, 3268, 802, 2630, 2579, 1, 1112, 3262, 3262, 3262, 3166, 870, 3262,
-				1244, 3262, 3273, 2852, 3274, 1189, 3265, 6557, 1123, 1090, 1156, 1420, 1387, 1354, 3275, 3276, 3277,
-				3278, 987, 382, 3578, 3579, 3580, 1321, 921, 574, 1, 3273, 2852, 3274, 1189, 212, 6557, 1123, 1090,
-				1156, 1420, 1387, 1354, 3275, 3276, 3277, 3278, 987, 382, 3578, 3579, 3580, 1321, 921, 574, 3262, 3273,
-				2852, 3274, 1189, 3267, 6557, 1123, 1090, 1156, 1420, 1387, 1354, 3275, 3276, 3277, 3278, 987, 382,
-				3578, 3579, 3580, 1321, 921, 574, 3262, 3273, 2867, 3274, 1189, 3262, 3262, 1123, 1090, 1156, 1420,
-				1387, 1354, 3275, 3276, 3277, 3278, 987, 382, 3578, 3579, 3580, 1321, 921, 574, 3262, 3273, 2872, 3274,
-				1189, 1505, 3262, 1123, 1090, 1156, 1420, 1387, 1354, 3275, 3276, 3277, 3278, 987, 382, 3578, 3579,
-				3580, 1321, 921, 574, 3262, 3273, 2874, 3274, 1189, 3262, 3262, 1123, 1090, 1156, 1420, 1387, 1354,
-				3275, 3276, 3277, 3278, 987, 382, 3578, 3579, 3580, 1321, 921, 574, 3262, 3273, 2890, 3274, 1189, 682,
-				3262, 1123, 1090, 1156, 1420, 1387, 1354, 3275, 3276, 3277, 3278, 987, 382, 3578, 3579, 3580, 1321, 921,
-				574, 3262, 3273, 2852, 3274, 1189, 1765, 3262, 1123, 1090, 1156, 1420, 1387, 1354, 3275, 3276, 3277,
-				3278, 987, 382, 3578, 3579, 3580, 1321, 921, 574, 3262, 3273, 2895, 3274, 1189, 1989, 257, 1123, 1090,
-				1156, 1420, 1387, 1354, 3275, 3276, 3277, 3278, 987, 382, 3578, 3579, 3580, 1321, 921, 574, 1, 3273,
-				2852, 3274, 1189, 1472, 3262, 1123, 1090, 1156, 1420, 1387, 1354, 3275, 3276, 3277, 3278, 987, 382,
-				3578, 3579, 3580, 1321, 921, 574, 20, 180, 3253, 230, 3253, 3253, 32, 3262, 637, 234, 3262, 119, 3172,
-				1, 3262, 3262, 3288, 3289, 3272, 251, 1463, 3262, 1, 3181, 1, 3253, 254, 731, 57, 91, 70, 252, 269,
-				3489, 1838, 3262, 254, 253, 3271, 3250, 3272, 72, 56, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180,
-				180, 180, 3253, 271, 3262, 676, 89, 3271, 1007, 1, 1, 1, 1, 1, 1, 269, 293, 2781, 272, 254, 3253, 3477,
-				3478, 3479, 3591, 450, 3592, 3477, 3478, 3479, 3591, 450, 3592, 963, 802, 1, 3262, 1, 3262, 1, 117,
-				3272, 3268, 3272, 91, 3262, 66, 960, 3521, 286, 3270, 593, 2752, 448, 908, 2557, 30, 208, 802, 1575,
-				117, 3271, 30, 3271, 3629, 593, 2752, 3262, 607, 3183, 802, 1645, 324, 802, 202, 322, 320, 1439, 6557,
-				42, 1908, 6557, 6557, 3262, 1061, 6557, 3262, 190, 190, 6557, 1, 190, 1, 186, 185, 3262, 1488, 207,
-				3262, 3262, 3262, 3262, 3262, 3262, 3262, 3262, 3262, 2613, 117, 3262, 3267, 3262, 3262, 3262, 3262,
-				3262, 3262, 3269, 3520, 3262, 3262, 908, 3262, 3262, 3262, 3262, 3262, 3291, 6183, 3262, 3262, 3262,
-				3262, 558, 3262, 3262, 3262, 3262, 3262, 3262, 3262, 3262, 3262, 3262, 3262, 3262, 3262, 3262, 1610,
-				3262, 3262, 3262, 3262, 3262, 3262, 3262, 3262, 3262, 3262, 3262, 3262, 748, 3262, 3262, 3274, 3262,
-				3273 };
-	}
-
-	public final static char termAction[] = TermAction.termAction;
-
-	@Override
-	public final int termAction(int index) {
-		return termAction[index];
-	}
-
-	public interface Asb {
-		public final static char asb[] = { 0, 523, 5, 58, 398, 523, 60, 355, 30, 7, 42, 353, 42, 353, 353, 42, 353, 42,
-				400, 600, 60, 46, 557, 355, 400, 181, 186, 185, 518, 107, 600, 517, 359, 301, 353, 104, 104, 353, 104,
-				60, 600, 481, 600, 605, 400, 60, 268, 605, 198, 60, 360, 323, 380, 84, 84, 84, 84, 84, 84, 84, 84, 301,
-				84, 84, 84, 141, 158, 163, 161, 169, 165, 172, 171, 174, 173, 175, 355, 222, 355, 255, 600, 470, 60,
-				607, 326, 400, 58, 271, 323, 423, 147, 301, 607, 252, 355, 84, 107, 517, 359, 182, 82, 82, 82, 82, 182,
-				182, 104, 557, 557, 557, 64, 557, 557, 182, 359, 192, 84, 192, 380, 481, 481, 564, 380, 380, 380, 380,
-				380, 104, 104, 639, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 355,
-				222, 255, 255, 470, 470, 481, 476, 480, 60, 423, 323, 300, 268, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
-				84, 480, 252, 196, 357, 182, 84, 182, 182, 182, 182, 378, 378, 84, 358, 84, 84, 360, 64, 192, 64, 178,
-				430, 198, 600, 602, 479, 478, 481, 481, 481, 481, 481, 481, 323, 161, 161, 158, 158, 165, 165, 163, 163,
-				163, 163, 171, 169, 173, 172, 192, 174, 222, 252, 261, 222, 255, 257, 559, 257, 470, 423, 602, 600, 607,
-				84, 84, 323, 301, 62, 196, 82, 82, 182, 82, 182, 481, 557, 481, 481, 359, 64, 84, 564, 481, 570, 605,
-				484, 484, 484, 484, 355, 84, 222, 263, 257, 252, 84, 104, 423, 470, 570, 476, 323, 323, 257, 2, 82, 182,
-				82, 182, 82, 182, 82, 64, 84, 64, 64, 481, 607, 252, 181, 84, 180, 252, 470, 252, 194, 521, 104, 84, 1,
-				638, 182, 82, 638, 182, 82, 82, 182, 639, 182, 481, 358, 481, 263, 84, 141, 198, 323, 104, 84, 64, 481,
-				638, 638, 182, 64, 481, 638, 638, 182, 638, 182, 82, 481, 639, 182, 64, 323, 64, 64, 481, 64, 481, 638,
-				64, 64, 481, 64, 481, 638, 64, 481, 638, 638, 182, 64, 481, 64, 64, 64, 481, 64, 64, 64, 481, 64, 64,
-				481, 64, 481, 638, 64, 64, 64, 64, 64, 64, 481, 64 };
-	}
-
-	public final static char asb[] = Asb.asb;
-
-	@Override
-	public final int asb(int index) {
-		return asb[index];
-	}
-
-	public interface Asr {
-		public final static byte asr[] = { 0, 75, 55, 80, 0, 87, 0, 68, 12, 69, 70, 13, 14, 15, 16, 3, 10, 11, 9, 7, 8,
-				17, 18, 78, 19, 20, 21, 22, 23, 24, 64, 56, 61, 59, 60, 58, 57, 62, 63, 65, 66, 67, 55, 74, 71, 73, 50,
-				43, 51, 52, 53, 44, 49, 54, 45, 46, 47, 48, 25, 5, 4, 2, 1, 0, 30, 31, 6, 35, 37, 32, 28, 33, 42, 34,
-				27, 29, 36, 39, 41, 38, 40, 26, 25, 5, 2, 13, 14, 15, 16, 19, 20, 21, 10, 11, 9, 4, 7, 8, 17, 18, 12,
-				22, 23, 24, 1, 3, 0, 50, 56, 43, 57, 68, 51, 58, 52, 59, 60, 53, 44, 61, 62, 49, 69, 54, 70, 63, 64, 45,
-				65, 66, 67, 1, 3, 46, 47, 48, 5, 75, 71, 25, 0, 55, 2, 80, 94, 10, 11, 75, 97, 98, 99, 100, 101, 103,
-				102, 104, 105, 106, 4, 81, 82, 7, 8, 77, 76, 83, 84, 85, 86, 88, 89, 9, 90, 91, 92, 72, 95, 96, 78, 73,
-				74, 71, 25, 5, 0, 2, 5, 75, 71, 73, 25, 55, 74, 0, 5, 72, 55, 80, 2, 13, 14, 15, 16, 19, 20, 21, 1, 3,
-				10, 11, 9, 4, 7, 8, 17, 18, 12, 22, 23, 24, 6, 0, 50, 56, 43, 57, 68, 51, 58, 52, 59, 60, 53, 44, 61,
-				62, 49, 69, 54, 70, 63, 64, 45, 65, 66, 67, 1, 3, 46, 47, 48, 26, 5, 72, 0, 1, 3, 5, 72, 71, 0, 25, 5,
-				4, 1, 2, 74, 0, 78, 5, 49, 43, 44, 45, 46, 47, 48, 10, 11, 9, 4, 7, 8, 17, 18, 12, 22, 23, 24, 2, 1, 3,
-				13, 14, 15, 16, 19, 20, 21, 0, 49, 10, 11, 9, 4, 7, 8, 17, 18, 12, 22, 23, 24, 2, 1, 3, 13, 14, 15, 16,
-				19, 20, 21, 78, 5, 0, 50, 56, 43, 57, 68, 51, 58, 52, 59, 60, 53, 44, 61, 62, 49, 69, 54, 70, 63, 64,
-				45, 65, 66, 67, 46, 47, 48, 1, 3, 6, 0, 87, 93, 72, 30, 31, 6, 35, 37, 32, 28, 33, 42, 34, 27, 29, 36,
-				39, 41, 38, 40, 26, 25, 5, 12, 13, 14, 15, 16, 10, 11, 9, 7, 8, 17, 18, 19, 20, 21, 22, 23, 24, 4, 2, 1,
-				3, 68, 69, 70, 64, 56, 61, 59, 60, 58, 57, 62, 63, 65, 66, 67, 54, 51, 49, 50, 53, 52, 43, 44, 45, 47,
-				46, 48, 0, 49, 54, 53, 52, 51, 50, 80, 94, 10, 11, 9, 7, 8, 81, 82, 76, 77, 83, 84, 85, 86, 88, 89, 90,
-				91, 92, 95, 96, 75, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 25, 43, 44, 45, 46, 47, 48, 4, 1, 2,
-				55, 71, 73, 5, 0, 9, 4, 7, 8, 81, 82, 76, 77, 83, 84, 85, 86, 88, 89, 90, 91, 92, 95, 96, 74, 97, 98,
-				99, 100, 101, 102, 103, 104, 105, 106, 78, 73, 72, 6, 5, 71, 25, 75, 0, 87, 50, 56, 43, 57, 68, 51, 58,
-				52, 59, 60, 53, 44, 61, 62, 49, 69, 54, 70, 63, 64, 45, 65, 66, 67, 1, 3, 4, 46, 47, 48, 25, 5, 26, 2,
-				0, 5, 71, 72, 75, 0, 5, 73, 4, 2, 55, 0, 50, 56, 43, 57, 68, 51, 58, 52, 59, 60, 53, 44, 61, 62, 49, 69,
-				54, 70, 63, 64, 45, 65, 66, 67, 1, 3, 46, 47, 48, 79, 4, 0, 4, 2, 55, 73, 5, 50, 56, 43, 57, 68, 51, 58,
-				52, 59, 60, 53, 44, 61, 62, 49, 69, 54, 70, 63, 64, 45, 65, 66, 67, 1, 3, 46, 47, 48, 79, 0, 27, 5, 73,
-				12, 13, 14, 15, 16, 1, 3, 2, 10, 11, 9, 4, 7, 8, 17, 18, 19, 20, 21, 22, 23, 24, 0 };
-	}
-
-	public final static byte asr[] = Asr.asr;
-
-	@Override
-	public final int asr(int index) {
-		return asr[index];
-	}
-
-	public interface Nasb {
-		public final static char nasb[] = { 0, 105, 34, 64, 24, 88, 145, 20, 124, 37, 125, 22, 125, 16, 16, 125, 15,
-				125, 119, 142, 147, 34, 34, 20, 138, 65, 44, 44, 34, 34, 142, 34, 55, 83, 7, 7, 7, 7, 7, 46, 34, 158,
-				142, 157, 115, 147, 82, 157, 61, 127, 109, 84, 164, 53, 53, 53, 53, 53, 53, 53, 53, 83, 53, 53, 53, 34,
-				34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 86, 138, 34, 138, 34, 13, 129, 79, 94, 27, 64, 52, 84, 103, 34,
-				83, 160, 138, 34, 53, 34, 34, 75, 65, 71, 71, 71, 71, 65, 65, 7, 34, 34, 34, 39, 34, 34, 65, 55, 34, 53,
-				34, 1, 158, 158, 136, 164, 164, 164, 164, 164, 92, 92, 58, 72, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
-				53, 53, 53, 53, 53, 53, 53, 72, 53, 34, 168, 138, 7, 13, 138, 158, 134, 34, 147, 103, 84, 83, 99, 53,
-				53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 158, 56, 138, 34, 65, 53, 65, 65, 65, 65, 69, 172, 72, 34, 72,
-				72, 109, 39, 34, 39, 34, 34, 151, 142, 155, 44, 44, 158, 158, 158, 158, 158, 158, 84, 34, 34, 34, 34,
-				34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 138, 56, 64, 181, 7, 101, 34, 34, 138, 103, 133, 142,
-				79, 53, 53, 84, 83, 34, 51, 71, 71, 65, 174, 65, 158, 34, 158, 158, 75, 39, 53, 11, 158, 140, 157, 152,
-				152, 152, 152, 152, 53, 168, 147, 101, 56, 53, 7, 103, 99, 140, 9, 84, 84, 101, 35, 71, 65, 71, 65, 71,
-				65, 174, 39, 72, 39, 39, 158, 79, 56, 65, 53, 34, 56, 99, 56, 50, 34, 7, 53, 18, 177, 65, 71, 177, 65,
-				71, 71, 65, 174, 65, 158, 34, 158, 147, 53, 67, 61, 84, 7, 53, 39, 158, 177, 177, 65, 39, 158, 177, 177,
-				65, 177, 65, 71, 158, 174, 65, 39, 84, 39, 39, 158, 39, 158, 177, 39, 39, 158, 39, 158, 177, 39, 158,
-				177, 177, 65, 39, 158, 39, 39, 39, 158, 39, 39, 39, 158, 39, 39, 158, 39, 158, 177, 39, 39, 39, 39, 39,
-				39, 158, 39 };
-	}
-
-	public final static char nasb[] = Nasb.nasb;
-
-	@Override
-	public final int nasb(int index) {
-		return nasb[index];
-	}
-
-	public interface Nasr {
-		public final static char nasr[] = { 0, 88, 86, 85, 79, 84, 83, 2, 0, 41, 46, 66, 65, 40, 0, 116, 91, 0, 125, 0,
-				110, 0, 113, 0, 41, 1, 104, 88, 87, 86, 85, 79, 84, 83, 0, 123, 0, 128, 0, 2, 18, 1, 19, 0, 52, 0, 41,
-				43, 40, 0, 106, 53, 1, 8, 0, 1, 49, 0, 1, 112, 0, 8, 53, 0, 1, 3, 0, 121, 0, 33, 51, 3, 1, 14, 0, 18, 2,
-				73, 49, 1, 33, 0, 1, 8, 39, 0, 114, 0, 1, 33, 107, 0, 94, 0, 1, 33, 51, 16, 0, 35, 0, 82, 0, 80, 0, 126,
-				1, 33, 0, 1, 33, 2, 18, 96, 0, 33, 1, 127, 0, 79, 74, 75, 76, 77, 69, 54, 0, 43, 48, 41, 46, 40, 0, 11,
-				41, 46, 65, 66, 1, 0, 1, 33, 40, 61, 0, 43, 48, 46, 41, 1, 0, 8, 53, 50, 0, 65, 66, 1, 11, 0, 117, 1,
-				33, 0, 1, 58, 14, 0, 99, 1, 58, 0, 33, 51, 1, 68, 0, 1, 44, 11, 0, 1, 58, 92, 0 };
-	}
-
-	public final static char nasr[] = Nasr.nasr;
-
-	@Override
-	public final int nasr(int index) {
-		return nasr[index];
-	}
-
-	public interface TerminalIndex {
-		public final static char terminalIndex[] = { 0, 85, 2, 86, 9, 87, 3, 10, 11, 8, 6, 7, 68, 81, 82, 83, 84, 12,
-				13, 93, 94, 95, 100, 101, 102, 92, 107, 49, 77, 45, 46, 50, 51, 57, 58, 59, 65, 71, 99, 103, 104, 105,
-				106, 48, 64, 76, 96, 97, 98, 69, 44, 55, 60, 63, 72, 1, 47, 52, 56, 61, 62, 66, 67, 74, 75, 78, 79, 80,
-				54, 70, 73, 42, 91, 90, 29, 31, 16, 17, 89, 30, 4, 14, 15, 18, 19, 20, 21, 108, 22, 23, 24, 25, 26, 53,
-				5, 27, 28, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 88 };
-	}
-
-	public final static char terminalIndex[] = TerminalIndex.terminalIndex;
-
-	@Override
-	public final int terminalIndex(int index) {
-		return terminalIndex[index];
-	}
-
-	public interface NonterminalIndex {
-		public final static char nonterminalIndex[] = { 0, 0, 113, 112, 0, 0, 0, 0, 115, 119, 120, 110, 121, 122, 114,
-				123, 136, 124, 132, 135, 0, 0, 0, 0, 0, 0, 125, 126, 127, 128, 129, 130, 0, 140, 131, 148, 0, 0, 0, 109,
-				0, 170, 0, 173, 197, 167, 169, 0, 171, 111, 118, 139, 172, 0, 147, 0, 0, 0, 162, 158, 134, 168, 117,
-				181, 184, 185, 186, 0, 0, 150, 0, 174, 180, 138, 151, 152, 153, 154, 157, 159, 179, 183, 0, 142, 143,
-				144, 145, 146, 149, 155, 156, 0, 161, 166, 116, 133, 137, 141, 0, 160, 164, 0, 0, 165, 175, 178, 188,
-				193, 0, 0, 195, 0, 0, 0, 0, 163, 0, 176, 177, 182, 187, 0, 189, 190, 0, 191, 192, 194, 196, 0, 0 };
-	}
-
-	public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
-
-	@Override
-	public final int nonterminalIndex(int index) {
-		return nonterminalIndex[index];
-	}
-
-	public interface ScopePrefix {
-		public final static char scopePrefix[] = { 120, 151, 130, 59, 69, 159, 26, 186, 35, 87, 105, 75, 6, 12, 16, 40,
-				83, 52, 141, 195, 212, 219, 223, 52, 52, 199, 52, 1, 1, 1, 44, 47, 92, 115, 47, 227, 20, 145, 206, 206,
-				177, 137, 165, 165, 165, 165, 165, 95, 95, 95 };
-	}
-
-	public final static char scopePrefix[] = ScopePrefix.scopePrefix;
-
-	@Override
-	public final int scopePrefix(int index) {
-		return scopePrefix[index];
-	}
-
-	public interface ScopeSuffix {
-		public final static char scopeSuffix[] = { 128, 128, 128, 4, 4, 128, 32, 192, 10, 4, 10, 80, 10, 10, 10, 10, 4,
-				4, 139, 128, 10, 10, 4, 56, 80, 203, 65, 4, 4, 4, 10, 50, 4, 10, 118, 10, 23, 148, 209, 216, 180, 139,
-				167, 169, 171, 173, 175, 102, 97, 110 };
-	}
-
-	public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
-
-	@Override
-	public final int scopeSuffix(int index) {
-		return scopeSuffix[index];
-	}
-
-	public interface ScopeLhs {
-		public final static char scopeLhs[] = { 76, 74, 76, 52, 52, 74, 50, 22, 67, 52, 43, 52, 9, 9, 9, 67, 52, 52, 92,
-				16, 9, 8, 8, 52, 52, 32, 52, 128, 125, 124, 65, 81, 52, 41, 59, 6, 106, 92, 10, 8, 23, 92, 87, 86, 85,
-				84, 83, 43, 48, 43 };
-	}
-
-	public final static char scopeLhs[] = ScopeLhs.scopeLhs;
-
-	@Override
-	public final int scopeLhs(int index) {
-		return scopeLhs[index];
-	}
-
-	public interface ScopeLa {
-		public final static byte scopeLa[] = { 72, 72, 72, 78, 78, 72, 72, 93, 73, 78, 73, 13, 73, 73, 73, 73, 78, 78,
-				25, 72, 73, 73, 78, 4, 13, 74, 49, 78, 78, 78, 73, 2, 78, 73, 1, 73, 75, 1, 73, 73, 28, 25, 1, 68, 69,
-				69, 64, 2, 2, 2 };
-	}
-
-	public final static byte scopeLa[] = ScopeLa.scopeLa;
-
-	@Override
-	public final int scopeLa(int index) {
-		return scopeLa[index];
-	}
-
-	public interface ScopeStateSet {
-		public final static char scopeStateSet[] = { 153, 153, 153, 126, 126, 153, 49, 10, 130, 126, 139, 126, 60, 60,
-				60, 130, 126, 126, 5, 9, 60, 60, 60, 126, 126, 94, 126, 137, 1, 3, 130, 132, 126, 139, 144, 60, 123, 5,
-				66, 60, 10, 5, 154, 154, 154, 154, 154, 139, 141, 139 };
-	}
-
-	public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet;
-
-	@Override
-	public final int scopeStateSet(int index) {
-		return scopeStateSet[index];
-	}
-
-	public interface ScopeRhs {
-		public final static char scopeRhs[] = { 0, 167, 55, 0, 109, 0, 169, 2, 24, 0, 110, 0, 169, 2, 23, 0, 169, 2, 22,
-				0, 229, 108, 0, 31, 157, 0, 189, 227, 108, 6, 160, 0, 111, 0, 0, 178, 108, 2, 172, 0, 178, 108, 2, 0,
-				188, 2, 0, 168, 108, 0, 184, 0, 212, 108, 55, 0, 9, 109, 0, 141, 49, 212, 108, 55, 0, 69, 131, 109, 0,
-				141, 212, 108, 49, 55, 0, 212, 108, 49, 55, 0, 131, 109, 0, 141, 49, 55, 0, 141, 212, 108, 55, 0, 141,
-				55, 0, 148, 0, 2, 0, 176, 110, 0, 2, 110, 0, 178, 108, 2, 148, 0, 2, 0, 174, 110, 0, 166, 2, 0, 167, 0,
-				189, 209, 108, 6, 109, 223, 68, 0, 111, 0, 189, 209, 108, 6, 223, 68, 0, 165, 0, 112, 0, 222, 108, 165,
-				0, 108, 165, 0, 163, 112, 0, 205, 108, 6, 221, 109, 220, 186, 0, 205, 108, 6, 220, 186, 0, 195, 0, 154,
-				0, 153, 0, 152, 0, 151, 0, 150, 0, 126, 32, 0, 77, 2, 114, 110, 112, 0, 126, 118, 121, 2, 35, 0, 53,
-				135, 0, 203, 108, 6, 0, 121, 96, 138, 0, 29, 131, 0, 169, 2, 0, 110, 120, 0, 169, 2, 12, 0, 110, 118, 0,
-				219, 2, 115, 0, 121, 55, 115, 0, 121, 2, 0 };
-	}
-
-	public final static char scopeRhs[] = ScopeRhs.scopeRhs;
-
-	@Override
-	public final int scopeRhs(int index) {
-		return scopeRhs[index];
-	}
-
-	public interface ScopeState {
-		public final static char scopeState[] = { 0, 372, 0, 432, 0, 2902, 2984, 2879, 0, 1013, 2531, 2521, 2495, 2485,
-				2459, 2449, 2423, 2413, 2387, 2377, 2351, 2341, 2315, 2305, 2279, 2269, 2243, 2233, 2207, 2197, 2171,
-				2161, 2135, 2125, 2099, 2089, 2063, 2053, 2027, 2017, 1989, 1731, 1765, 682, 1697, 457, 767, 1663, 0,
-				748, 558, 1843, 1543, 1509, 1508, 1491, 519, 2766, 640, 0, 1420, 1387, 1354, 1321, 921, 574, 886, 2766,
-				1818, 607, 1908, 2557, 1953, 2738, 2724, 2710, 2693, 2630, 2579, 2829, 2818, 2752, 593, 1288, 1255,
-				1222, 1189, 851, 1156, 621, 1123, 1090, 987, 382, 1645, 748, 1610, 1575, 1540, 1505, 1472, 1439, 1406,
-				1373, 940, 1340, 1307, 1274, 1241, 1208, 1175, 1142, 1109, 1076, 1043, 1010, 905, 368, 973, 872, 640,
-				802, 837, 558, 519, 0, 1127, 1101, 552, 492, 369, 2898, 1838, 2781, 1811, 1628, 0, 450, 0, 500, 429,
-				369, 2767, 1760, 2613, 2575, 1838, 2560, 1811, 448, 678, 1898, 0, 1740, 368, 659, 429, 0 };
-	}
-
-	public final static char scopeState[] = ScopeState.scopeState;
-
-	@Override
-	public final int scopeState(int index) {
-		return scopeState[index];
-	}
-
-	public interface InSymb {
-		public final static char inSymb[] = { 0, 0, 218, 140, 108, 233, 108, 211, 190, 47, 191, 186, 192, 70, 69, 193,
-				68, 194, 195, 108, 2, 1, 148, 211, 225, 204, 153, 148, 197, 155, 108, 150, 6, 55, 220, 198, 198, 223,
-				198, 168, 147, 166, 108, 2, 108, 71, 55, 2, 75, 168, 108, 167, 2, 24, 23, 22, 12, 18, 17, 8, 7, 4, 9,
-				11, 10, 115, 119, 122, 120, 133, 124, 135, 134, 137, 136, 138, 109, 6, 109, 6, 147, 4, 168, 108, 234,
-				108, 140, 49, 141, 108, 116, 4, 108, 6, 160, 4, 155, 150, 203, 40, 38, 41, 39, 36, 29, 27, 34, 42, 33,
-				28, 32, 37, 35, 125, 6, 31, 30, 109, 108, 169, 121, 165, 2, 2, 2, 2, 2, 94, 80, 2, 55, 82, 81, 4, 76,
-				77, 8, 7, 89, 88, 86, 85, 84, 83, 90, 9, 92, 91, 96, 95, 221, 108, 6, 108, 4, 147, 178, 140, 179, 108,
-				108, 141, 212, 187, 106, 105, 104, 102, 103, 101, 100, 99, 98, 97, 75, 224, 108, 6, 5, 121, 108, 121,
-				121, 121, 109, 2, 2, 2, 126, 2, 2, 108, 74, 167, 74, 202, 109, 118, 108, 2, 173, 172, 169, 169, 169,
-				169, 169, 219, 121, 120, 120, 119, 119, 124, 124, 122, 122, 122, 122, 134, 133, 136, 135, 121, 137, 6,
-				205, 165, 206, 108, 209, 109, 210, 147, 108, 2, 108, 71, 212, 49, 141, 4, 71, 108, 158, 110, 121, 158,
-				175, 121, 28, 121, 121, 203, 74, 71, 168, 188, 108, 2, 118, 118, 118, 118, 118, 74, 108, 108, 209, 189,
-				75, 71, 108, 187, 108, 168, 141, 141, 227, 108, 110, 121, 110, 121, 110, 175, 110, 118, 2, 118, 118,
-				178, 108, 205, 222, 74, 166, 189, 187, 189, 71, 229, 80, 55, 230, 110, 121, 110, 110, 121, 110, 110,
-				121, 110, 175, 121, 126, 178, 71, 74, 156, 75, 167, 80, 55, 118, 151, 110, 110, 121, 118, 151, 110, 110,
-				121, 110, 121, 110, 175, 110, 118, 93, 167, 118, 118, 151, 118, 151, 110, 118, 118, 151, 118, 151, 110,
-				118, 151, 110, 110, 121, 118, 175, 118, 118, 118, 151, 118, 118, 118, 151, 118, 118, 151, 118, 151, 110,
-				118, 118, 118, 118, 118, 118, 151, 118 };
-	}
-
-	public final static char inSymb[] = InSymb.inSymb;
-
-	@Override
-	public final int inSymb(int index) {
-		return inSymb[index];
-	}
-
-	public interface Name {
-		public final static String name[] = { "", "[", "(", "{", ".", "->", "++", "--", "&", "*", "+", "-", "~", "!",
-				"/", "%", ">>", "<<", "<", ">", "<=", ">=", "==", "!=", "^", "|", "&&", "||", "?", ":", "...", "=",
-				"*=", "/=", "%=", "+=", "-=", ">>=", "<<=", "&=", "^=", "|=", ",", "$empty", "auto", "break", "case",
-				"char", "const", "continue", "default", "do", "double", "else", "enum", "extern", "float", "for",
-				"goto", "if", "inline", "int", "long", "register", "restrict", "return", "short", "signed", "sizeof",
-				"static", "struct", "switch", "typedef", "union", "unsigned", "void", "volatile", "while", "_Bool",
-				"_Complex", "_Imaginary", "integer", "floating", "charconst", "stringlit", "identifier", "Completion",
-				"EndOfCompletion", "Invalid", "RightBracket", "RightParen", "RightBrace", "SemiColon", "MYTHREAD",
-				"THREADS", "UPC_MAX_BLOCKSIZE", "relaxed", "shared", "strict", "upc_barrier", "upc_localsizeof",
-				"upc_blocksizeof", "upc_elemsizeof", "upc_notify", "upc_fence", "upc_wait", "upc_forall", "ERROR_TOKEN",
-				"EOF_TOKEN", "]", ")", "}", ";", "identifier_token", "expression", "postfix_expression", "member_name",
-				"type_id", "initializer_list", "unary_expression", "cast_expression", "multiplicative_expression",
-				"additive_expression", "shift_expression", "relational_expression", "equality_expression",
-				"and_expression", "exclusive_or_expression", "inclusive_or_expression", "logical_and_expression",
-				"logical_or_expression", "assignment_expression", "expression_in_statement", "expression_list_actual",
-				"constant_expression", "statement", "compound_statement", "block_item_list", "block_item",
-				"declaration", "declaration_specifiers", "init_declarator_list", "simple_declaration_specifiers",
-				"struct_or_union_declaration_sp" + "ecifiers", "elaborated_declaration_specifi" + "ers",
-				"enum_declaration_specifiers", "typdef_name_declaration_specif" + "iers",
-				"no_type_declaration_specifier", "type_qualifier", "no_type_declaration_specifiers",
-				"simple_type_specifier", "struct_or_union_specifier", "elaborated_specifier", "enum_specifier",
-				"type_name_specifier", "init_declarator", "complete_declarator", "initializer", "declarator",
-				"struct_or_union", "struct_declaration_list", "struct_declaration", "specifier_qualifier_list",
-				"struct_declarator_list", "complete_struct_declarator", "enumerator_list", "enumerator",
-				"direct_declarator", "pointer_seq", "array_direct_declarator", "basic_direct_declarator",
-				"knr_direct_declarator", "array_modifier", "function_direct_declarator", "parameter_type_list",
-				"function_declarator", "identifier_list", "knr_function_declarator", "array_modifier_type_qualifiers",
-				"type_qualifier_list", "parameter_list", "parameter_declaration", "complete_parameter_declarator",
-				"abstract_declarator", "direct_abstract_declarator", "basic_direct_abstract_declarat" + "or",
-				"array_direct_abstract_declarat" + "or", "initializer_seq", "designated_initializer", "designation",
-				"designator_list", "designator", "external_declaration_list", "external_declaration",
-				"declaration_list", "function_body", "layout_qualifier", "affinity" };
-	}
-
-	public final static String name[] = Name.name;
-
-	@Override
-	public final String name(int index) {
-		return name[index];
-	}
-
-	public final static int ERROR_SYMBOL = 26, SCOPE_UBOUND = 49, SCOPE_SIZE = 50, MAX_NAME_LENGTH = 38;
-
-	@Override
-	public final int getErrorSymbol() {
-		return ERROR_SYMBOL;
-	}
-
-	@Override
-	public final int getScopeUbound() {
-		return SCOPE_UBOUND;
-	}
-
-	@Override
-	public final int getScopeSize() {
-		return SCOPE_SIZE;
-	}
-
-	@Override
-	public final int getMaxNameLength() {
-		return MAX_NAME_LENGTH;
-	}
-
-	public final static int NUM_STATES = 383, NT_OFFSET = 107, LA_STATE_OFFSET = 3629, MAX_LA = 2147483647,
-			NUM_RULES = 367, NUM_NONTERMINALS = 130, NUM_SYMBOLS = 237, SEGMENT_SIZE = 8192, START_STATE = 1523,
-			IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 87, EOLT_SYMBOL = 87, ACCEPT_ACTION = 3234, ERROR_ACTION = 3262;
-
-	public final static boolean BACKTRACK = true;
-
-	@Override
-	public final int getNumStates() {
-		return NUM_STATES;
-	}
-
-	@Override
-	public final int getNtOffset() {
-		return NT_OFFSET;
-	}
-
-	@Override
-	public final int getLaStateOffset() {
-		return LA_STATE_OFFSET;
-	}
-
-	@Override
-	public final int getMaxLa() {
-		return MAX_LA;
-	}
-
-	@Override
-	public final int getNumRules() {
-		return NUM_RULES;
-	}
-
-	@Override
-	public final int getNumNonterminals() {
-		return NUM_NONTERMINALS;
-	}
-
-	@Override
-	public final int getNumSymbols() {
-		return NUM_SYMBOLS;
-	}
-
-	@Override
-	public final int getSegmentSize() {
-		return SEGMENT_SIZE;
-	}
-
-	@Override
-	public final int getStartState() {
-		return START_STATE;
-	}
-
-	@Override
-	public final int getStartSymbol() {
-		return lhs[0];
-	}
-
-	public final int getIdentifierSymbol() {
-		return IDENTIFIER_SYMBOL;
-	}
-
-	@Override
-	public final int getEoftSymbol() {
-		return EOFT_SYMBOL;
-	}
-
-	@Override
-	public final int getEoltSymbol() {
-		return EOLT_SYMBOL;
-	}
-
-	@Override
-	public final int getAcceptAction() {
-		return ACCEPT_ACTION;
-	}
-
-	@Override
-	public final int getErrorAction() {
-		return ERROR_ACTION;
-	}
-
-	@Override
-	public final boolean isValidForParser() {
-		return isValidForParser;
-	}
-
-	@Override
-	public final boolean getBacktrack() {
-		return BACKTRACK;
-	}
-
-	@Override
-	public final int originalState(int state) {
-		return -baseCheck[state];
-	}
-
-	@Override
-	public final int asi(int state) {
-		return asb[originalState(state)];
-	}
-
-	@Override
-	public final int nasi(int state) {
-		return nasb[originalState(state)];
-	}
-
-	@Override
-	public final int inSymbol(int state) {
-		return inSymb[originalState(state)];
-	}
-
-	@Override
-	public final int ntAction(int state, int sym) {
-		return baseAction[state + sym];
-	}
-
-	@Override
-	public final int tAction(int state, int sym) {
-		int i = baseAction[state], k = i + sym;
-		return termAction[termCheck[k] == sym ? k : i];
-	}
-
-	@Override
-	public final int lookAhead(int la_state, int sym) {
-		int k = la_state + sym;
-		return termAction[termCheck[k] == sym ? k : la_state];
-	}
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParsersym.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParsersym.java
deleted file mode 100644
index d63ed9d..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParsersym.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2010 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.parser.upc;
-
-public interface UPCParsersym {
-	public final static int TK_auto = 50, TK_break = 29, TK_case = 30, TK_char = 56, TK_const = 43, TK_continue = 27,
-			TK_default = 31, TK_do = 32, TK_double = 57, TK_else = 93, TK_enum = 68, TK_extern = 51, TK_float = 58,
-			TK_for = 33, TK_goto = 34, TK_if = 35, TK_inline = 52, TK_int = 59, TK_long = 60, TK_register = 53,
-			TK_restrict = 44, TK_return = 36, TK_short = 61, TK_signed = 62, TK_sizeof = 12, TK_static = 49,
-			TK_struct = 69, TK_switch = 37, TK_typedef = 54, TK_union = 70, TK_unsigned = 63, TK_void = 64,
-			TK_volatile = 45, TK_while = 28, TK__Bool = 65, TK__Complex = 66, TK__Imaginary = 67, TK_integer = 13,
-			TK_floating = 14, TK_charconst = 15, TK_stringlit = 16, TK_identifier = 1, TK_Completion = 3,
-			TK_EndOfCompletion = 5, TK_Invalid = 107, TK_LeftBracket = 55, TK_LeftParen = 2, TK_LeftBrace = 6,
-			TK_Dot = 80, TK_Arrow = 94, TK_PlusPlus = 10, TK_MinusMinus = 11, TK_And = 9, TK_Star = 4, TK_Plus = 7,
-			TK_Minus = 8, TK_Tilde = 17, TK_Bang = 18, TK_Slash = 81, TK_Percent = 82, TK_RightShift = 76,
-			TK_LeftShift = 77, TK_LT = 83, TK_GT = 84, TK_LE = 85, TK_GE = 86, TK_EQ = 88, TK_NE = 89, TK_Caret = 90,
-			TK_Or = 91, TK_AndAnd = 92, TK_OrOr = 95, TK_Question = 96, TK_Colon = 74, TK_DotDotDot = 79,
-			TK_Assign = 75, TK_StarAssign = 97, TK_SlashAssign = 98, TK_PercentAssign = 99, TK_PlusAssign = 100,
-			TK_MinusAssign = 101, TK_RightShiftAssign = 102, TK_LeftShiftAssign = 103, TK_AndAssign = 104,
-			TK_CaretAssign = 105, TK_OrAssign = 106, TK_Comma = 71, TK_RightBracket = 78, TK_RightParen = 73,
-			TK_RightBrace = 72, TK_SemiColon = 25, TK_MYTHREAD = 19, TK_THREADS = 20, TK_UPC_MAX_BLOCKSIZE = 21,
-			TK_relaxed = 46, TK_shared = 47, TK_strict = 48, TK_upc_barrier = 38, TK_upc_localsizeof = 22,
-			TK_upc_blocksizeof = 23, TK_upc_elemsizeof = 24, TK_upc_notify = 39, TK_upc_fence = 40, TK_upc_wait = 41,
-			TK_upc_forall = 42, TK_ERROR_TOKEN = 26, TK_EOF_TOKEN = 87;
-
-	public final static String orderedTerminalSymbols[] = { "", "identifier", "LeftParen", "Completion", "Star",
-			"EndOfCompletion", "LeftBrace", "Plus", "Minus", "And", "PlusPlus", "MinusMinus", "sizeof", "integer",
-			"floating", "charconst", "stringlit", "Tilde", "Bang", "MYTHREAD", "THREADS", "UPC_MAX_BLOCKSIZE",
-			"upc_localsizeof", "upc_blocksizeof", "upc_elemsizeof", "SemiColon", "ERROR_TOKEN", "continue", "while",
-			"break", "case", "default", "do", "for", "goto", "if", "return", "switch", "upc_barrier", "upc_notify",
-			"upc_fence", "upc_wait", "upc_forall", "const", "restrict", "volatile", "relaxed", "shared", "strict",
-			"static", "auto", "extern", "inline", "register", "typedef", "LeftBracket", "char", "double", "float",
-			"int", "long", "short", "signed", "unsigned", "void", "_Bool", "_Complex", "_Imaginary", "enum", "struct",
-			"union", "Comma", "RightBrace", "RightParen", "Colon", "Assign", "RightShift", "LeftShift", "RightBracket",
-			"DotDotDot", "Dot", "Slash", "Percent", "LT", "GT", "LE", "GE", "EOF_TOKEN", "EQ", "NE", "Caret", "Or",
-			"AndAnd", "else", "Arrow", "OrOr", "Question", "StarAssign", "SlashAssign", "PercentAssign", "PlusAssign",
-			"MinusAssign", "RightShiftAssign", "LeftShiftAssign", "AndAssign", "CaretAssign", "OrAssign", "Invalid" };
-
-	public final static boolean isValidForParser = true;
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParser.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParser.java
deleted file mode 100644
index 4a33ca6..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParser.java
+++ /dev/null
@@ -1,2029 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2011 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.parser.upc;
-
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.cdt.core.dom.ast.IASTBinaryExpression;
-import org.eclipse.cdt.core.dom.ast.IASTCastExpression;
-import org.eclipse.cdt.core.dom.ast.IASTCompletionNode;
-import org.eclipse.cdt.core.dom.ast.IASTCompositeTypeSpecifier;
-import org.eclipse.cdt.core.dom.ast.IASTElaboratedTypeSpecifier;
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-import org.eclipse.cdt.core.dom.ast.IASTLiteralExpression;
-import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression;
-import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter;
-import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
-import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
-import org.eclipse.cdt.core.dom.lrparser.ITokenCollector;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
-import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
-import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
-import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser;
-import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
-import org.eclipse.cdt.core.dom.parser.upc.UPCASTNodeFactory;
-import org.eclipse.cdt.core.dom.parser.upc.UPCParserAction;
-import org.eclipse.cdt.core.dom.parser.upc.UPCSecondaryParserFactory;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTKeywordExpression;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSynchronizationStatement;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTUnarySizeofExpression;
-import org.eclipse.cdt.core.index.IIndex;
-import org.eclipse.cdt.core.parser.IScanner;
-
-import lpg.lpgjavaruntime.BadParseException;
-import lpg.lpgjavaruntime.BadParseSymFileException;
-import lpg.lpgjavaruntime.DiagnoseParser;
-import lpg.lpgjavaruntime.ErrorToken;
-import lpg.lpgjavaruntime.IToken;
-import lpg.lpgjavaruntime.LexStream;
-import lpg.lpgjavaruntime.Monitor;
-import lpg.lpgjavaruntime.NotBacktrackParseTableException;
-import lpg.lpgjavaruntime.NullExportedSymbolsException;
-import lpg.lpgjavaruntime.NullTerminalSymbolsException;
-import lpg.lpgjavaruntime.ParseErrorCodes;
-import lpg.lpgjavaruntime.ParseTable;
-import lpg.lpgjavaruntime.PrsStream;
-import lpg.lpgjavaruntime.RuleAction;
-import lpg.lpgjavaruntime.Token;
-import lpg.lpgjavaruntime.UndefinedEofSymbolException;
-import lpg.lpgjavaruntime.UnimplementedTerminalsException;
-
-public class UPCSizeofExpressionParser extends PrsStream
-		implements RuleAction, ITokenStream, ITokenCollector, ISecondaryParser<IASTExpression> {
-	private static ParseTable prs = new UPCSizeofExpressionParserprs();
-	private FixedBacktrackingParser btParser;
-
-	public FixedBacktrackingParser getParser() {
-		return btParser;
-	}
-
-	private void setResult(Object object) {
-		btParser.setSym1(object);
-	}
-
-	public Object getRhsSym(int i) {
-		return btParser.getSym(i);
-	}
-
-	public int getRhsTokenIndex(int i) {
-		return btParser.getToken(i);
-	}
-
-	public IToken getRhsIToken(int i) {
-		return super.getIToken(getRhsTokenIndex(i));
-	}
-
-	public int getRhsFirstTokenIndex(int i) {
-		return btParser.getFirstToken(i);
-	}
-
-	public IToken getRhsFirstIToken(int i) {
-		return super.getIToken(getRhsFirstTokenIndex(i));
-	}
-
-	public int getRhsLastTokenIndex(int i) {
-		return btParser.getLastToken(i);
-	}
-
-	public IToken getRhsLastIToken(int i) {
-		return super.getIToken(getRhsLastTokenIndex(i));
-	}
-
-	public int getLeftSpan() {
-		return btParser.getFirstToken();
-	}
-
-	@Override
-	public IToken getLeftIToken() {
-		return super.getIToken(getLeftSpan());
-	}
-
-	public int getRightSpan() {
-		return btParser.getLastToken();
-	}
-
-	@Override
-	public IToken getRightIToken() {
-		return super.getIToken(getRightSpan());
-	}
-
-	public int getRhsErrorTokenIndex(int i) {
-		int index = btParser.getToken(i);
-		IToken err = super.getIToken(index);
-		return (err instanceof ErrorToken ? index : 0);
-	}
-
-	public ErrorToken getRhsErrorIToken(int i) {
-		int index = btParser.getToken(i);
-		IToken err = super.getIToken(index);
-		return (ErrorToken) (err instanceof ErrorToken ? err : null);
-	}
-
-	public UPCSizeofExpressionParser(LexStream lexStream) {
-		super(lexStream);
-
-		try {
-			super.remapTerminalSymbols(orderedTerminalSymbols(), UPCSizeofExpressionParserprs.EOFT_SYMBOL);
-		} catch (NullExportedSymbolsException e) {
-		} catch (NullTerminalSymbolsException e) {
-		} catch (UnimplementedTerminalsException e) {
-			java.util.ArrayList unimplemented_symbols = e.getSymbols();
-			System.out.println("The Lexer will not scan the following token(s):");
-			for (int i = 0; i < unimplemented_symbols.size(); i++) {
-				Integer id = (Integer) unimplemented_symbols.get(i);
-				System.out.println("    " + UPCSizeofExpressionParsersym.orderedTerminalSymbols[id.intValue()]);
-			}
-			System.out.println();
-		} catch (UndefinedEofSymbolException e) {
-			throw new Error(new UndefinedEofSymbolException("The Lexer does not implement the Eof symbol "
-					+ UPCSizeofExpressionParsersym.orderedTerminalSymbols[UPCSizeofExpressionParserprs.EOFT_SYMBOL]));
-		}
-	}
-
-	@Override
-	public String[] orderedTerminalSymbols() {
-		return UPCSizeofExpressionParsersym.orderedTerminalSymbols;
-	}
-
-	public String getTokenKindName(int kind) {
-		return UPCSizeofExpressionParsersym.orderedTerminalSymbols[kind];
-	}
-
-	public int getEOFTokenKind() {
-		return UPCSizeofExpressionParserprs.EOFT_SYMBOL;
-	}
-
-	public PrsStream getParseStream() {
-		return this;
-	}
-
-	//
-	// Report error message for given error_token.
-	//
-	public final void reportErrorTokenMessage(int error_token, String msg) {
-		int firsttok = super.getFirstErrorToken(error_token), lasttok = super.getLastErrorToken(error_token);
-		String location = super.getFileName() + ':'
-				+ (firsttok > lasttok ? (super.getEndLine(lasttok) + ":" + super.getEndColumn(lasttok))
-						: (super.getLine(error_token) + ":" + super.getColumn(error_token) + ":"
-								+ super.getEndLine(error_token) + ":" + super.getEndColumn(error_token)))
-				+ ": ";
-		super.reportError((firsttok > lasttok ? ParseErrorCodes.INSERTION_CODE : ParseErrorCodes.SUBSTITUTION_CODE),
-				location, msg);
-	}
-
-	public void parser() {
-		parser(null, 0);
-	}
-
-	public void parser(Monitor monitor) {
-		parser(monitor, 0);
-	}
-
-	public void parser(int error_repair_count) {
-		parser(null, error_repair_count);
-	}
-
-	public void parser(Monitor monitor, int error_repair_count) {
-		try {
-			btParser = new FixedBacktrackingParser(monitor, this, prs, this);
-		} catch (NotBacktrackParseTableException e) {
-			throw new Error(new NotBacktrackParseTableException(
-					"Regenerate UPCSizeofExpressionParserprs.java with -BACKTRACK option"));
-		} catch (BadParseSymFileException e) {
-			throw new Error(
-					new BadParseSymFileException("Bad Parser Symbol File -- UPCSizeofExpressionParsersym.java"));
-		}
-
-		try {
-			btParser.parse(error_repair_count);
-		} catch (BadParseException e) {
-			reset(e.error_token); // point to error token
-			DiagnoseParser diagnoseParser = new DiagnoseParser(this, prs);
-			diagnoseParser.diagnose(e.error_token);
-		}
-	}
-
-	private UPCParserAction action;
-	private IASTCompletionNode compNode;
-
-	public UPCSizeofExpressionParser(IScanner scanner, IDOMTokenMap tokenMap,
-			IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Map<String, String> properties) {
-		initActions(properties);
-		action.initializeTranslationUnit(scanner, builtinBindingsProvider, index);
-		CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap);
-	}
-
-	private void initActions(Map<String, String> properties) {
-		ScopedStack<Object> astStack = new ScopedStack<>();
-
-		action = new UPCParserAction(this, astStack, new UPCASTNodeFactory(), UPCSecondaryParserFactory.getDefault());
-		action.setParserProperties(properties);
-
-	}
-
-	@Override
-	public void addToken(IToken token) {
-		token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called?
-		super.addToken(token);
-	}
-
-	@Override
-	public IASTExpression parse() {
-		// this has to be done, or... kaboom!
-		setStreamLength(getSize());
-
-		final int errorRepairCount = -1; // -1 means full error handling
-		parser(null, errorRepairCount); // do the actual parse
-		super.resetTokenStream(); // allow tokens to be garbage collected
-
-		compNode = action.getASTCompletionNode(); // the completion node may be null
-		return (IASTExpression) action.getParseResult();
-	}
-
-	@Override
-	public IASTCompletionNode getCompletionNode() {
-		return compNode;
-	}
-
-	// uncomment this method to use with backtracking parser
-	@Override
-	public List<IToken> getRuleTokens() {
-		return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
-	}
-
-	@Override
-	public String[] getOrderedTerminalSymbols() {
-		return UPCSizeofExpressionParsersym.orderedTerminalSymbols;
-	}
-
-	@Override
-	@SuppressWarnings("nls")
-	public String getName() {
-		return "UPCSizeofExpressionParser";
-	}
-
-	private ITokenMap tokenMap = null;
-
-	@Override
-	public void setTokens(List<IToken> tokens) {
-		resetTokenStream();
-		addToken(new Token(null, 0, 0, 0)); // dummy token
-		for (IToken token : tokens) {
-			token.setKind(tokenMap.mapKind(token.getKind()));
-			addToken(token);
-		}
-		addToken(new Token(null, 0, 0, UPCSizeofExpressionParsersym.TK_EOF_TOKEN));
-	}
-
-	public UPCSizeofExpressionParser(ITokenStream stream, Map<String, String> properties) { // constructor for creating secondary parser
-		initActions(properties);
-		tokenMap = new TokenMap(UPCSizeofExpressionParsersym.orderedTerminalSymbols,
-				stream.getOrderedTerminalSymbols());
-	}
-
-	@Override
-	public void ruleAction(int ruleNumber) {
-		switch (ruleNumber) {
-
-		//
-		// Rule 1:  <openscope-ast> ::= $Empty
-		//
-		case 1: {
-			action.openASTScope();
-			break;
-		}
-
-		//
-		// Rule 2:  <empty> ::= $Empty
-		//
-		case 2: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 13:  literal ::= integer
-		//
-		case 13: {
-			action.consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant);
-			break;
-		}
-
-		//
-		// Rule 14:  literal ::= floating
-		//
-		case 14: {
-			action.consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant);
-			break;
-		}
-
-		//
-		// Rule 15:  literal ::= charconst
-		//
-		case 15: {
-			action.consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant);
-			break;
-		}
-
-		//
-		// Rule 16:  literal ::= stringlit
-		//
-		case 16: {
-			action.consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal);
-			break;
-		}
-
-		//
-		// Rule 18:  primary_expression ::= primary_expression_id
-		//
-		case 18: {
-			action.consumeExpressionID();
-			break;
-		}
-
-		//
-		// Rule 19:  primary_expression ::= ( expression )
-		//
-		case 19: {
-			action.consumeExpressionBracketed();
-			break;
-		}
-
-		//
-		// Rule 22:  postfix_expression ::= postfix_expression [ expression ]
-		//
-		case 22: {
-			action.consumeExpressionArraySubscript();
-			break;
-		}
-
-		//
-		// Rule 23:  postfix_expression ::= postfix_expression ( expression_list_opt )
-		//
-		case 23: {
-			action.consumeExpressionFunctionCall();
-			break;
-		}
-
-		//
-		// Rule 24:  postfix_expression ::= postfix_expression . member_name
-		//
-		case 24: {
-			action.consumeExpressionFieldReference(false);
-			break;
-		}
-
-		//
-		// Rule 25:  postfix_expression ::= postfix_expression -> member_name
-		//
-		case 25: {
-			action.consumeExpressionFieldReference(true);
-			break;
-		}
-
-		//
-		// Rule 26:  postfix_expression ::= postfix_expression ++
-		//
-		case 26: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr);
-			break;
-		}
-
-		//
-		// Rule 27:  postfix_expression ::= postfix_expression --
-		//
-		case 27: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr);
-			break;
-		}
-
-		//
-		// Rule 28:  postfix_expression ::= ( type_id ) initializer_list
-		//
-		case 28: {
-			action.consumeExpressionTypeIdInitializer();
-			break;
-		}
-
-		//
-		// Rule 33:  unary_expression ::= ++ unary_expression
-		//
-		case 33: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr);
-			break;
-		}
-
-		//
-		// Rule 34:  unary_expression ::= -- unary_expression
-		//
-		case 34: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr);
-			break;
-		}
-
-		//
-		// Rule 35:  unary_expression ::= & cast_expression
-		//
-		case 35: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper);
-			break;
-		}
-
-		//
-		// Rule 36:  unary_expression ::= * cast_expression
-		//
-		case 36: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_star);
-			break;
-		}
-
-		//
-		// Rule 37:  unary_expression ::= + cast_expression
-		//
-		case 37: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus);
-			break;
-		}
-
-		//
-		// Rule 38:  unary_expression ::= - cast_expression
-		//
-		case 38: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus);
-			break;
-		}
-
-		//
-		// Rule 39:  unary_expression ::= ~ cast_expression
-		//
-		case 39: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde);
-			break;
-		}
-
-		//
-		// Rule 40:  unary_expression ::= ! cast_expression
-		//
-		case 40: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_not);
-			break;
-		}
-
-		//
-		// Rule 41:  unary_expression ::= sizeof unary_expression
-		//
-		case 41: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof);
-			break;
-		}
-
-		//
-		// Rule 43:  cast_expression ::= ( type_id ) cast_expression
-		//
-		case 43: {
-			action.consumeExpressionCast(IASTCastExpression.op_cast);
-			break;
-		}
-
-		//
-		// Rule 45:  multiplicative_expression ::= multiplicative_expression * cast_expression
-		//
-		case 45: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply);
-			break;
-		}
-
-		//
-		// Rule 46:  multiplicative_expression ::= multiplicative_expression / cast_expression
-		//
-		case 46: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide);
-			break;
-		}
-
-		//
-		// Rule 47:  multiplicative_expression ::= multiplicative_expression % cast_expression
-		//
-		case 47: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo);
-			break;
-		}
-
-		//
-		// Rule 49:  additive_expression ::= additive_expression + multiplicative_expression
-		//
-		case 49: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus);
-			break;
-		}
-
-		//
-		// Rule 50:  additive_expression ::= additive_expression - multiplicative_expression
-		//
-		case 50: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus);
-			break;
-		}
-
-		//
-		// Rule 52:  shift_expression ::= shift_expression << additive_expression
-		//
-		case 52: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft);
-			break;
-		}
-
-		//
-		// Rule 53:  shift_expression ::= shift_expression >> additive_expression
-		//
-		case 53: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight);
-			break;
-		}
-
-		//
-		// Rule 55:  relational_expression ::= relational_expression < shift_expression
-		//
-		case 55: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan);
-			break;
-		}
-
-		//
-		// Rule 56:  relational_expression ::= relational_expression > shift_expression
-		//
-		case 56: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan);
-			break;
-		}
-
-		//
-		// Rule 57:  relational_expression ::= relational_expression <= shift_expression
-		//
-		case 57: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual);
-			break;
-		}
-
-		//
-		// Rule 58:  relational_expression ::= relational_expression >= shift_expression
-		//
-		case 58: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual);
-			break;
-		}
-
-		//
-		// Rule 60:  equality_expression ::= equality_expression == relational_expression
-		//
-		case 60: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals);
-			break;
-		}
-
-		//
-		// Rule 61:  equality_expression ::= equality_expression != relational_expression
-		//
-		case 61: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals);
-			break;
-		}
-
-		//
-		// Rule 63:  and_expression ::= and_expression & equality_expression
-		//
-		case 63: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd);
-			break;
-		}
-
-		//
-		// Rule 65:  exclusive_or_expression ::= exclusive_or_expression ^ and_expression
-		//
-		case 65: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor);
-			break;
-		}
-
-		//
-		// Rule 67:  inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression
-		//
-		case 67: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr);
-			break;
-		}
-
-		//
-		// Rule 69:  logical_and_expression ::= logical_and_expression && inclusive_or_expression
-		//
-		case 69: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd);
-			break;
-		}
-
-		//
-		// Rule 71:  logical_or_expression ::= logical_or_expression || logical_and_expression
-		//
-		case 71: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr);
-			break;
-		}
-
-		//
-		// Rule 73:  conditional_expression ::= logical_or_expression ? expression : assignment_expression
-		//
-		case 73: {
-			action.consumeExpressionConditional();
-			break;
-		}
-
-		//
-		// Rule 75:  assignment_expression ::= unary_expression = assignment_expression
-		//
-		case 75: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign);
-			break;
-		}
-
-		//
-		// Rule 76:  assignment_expression ::= unary_expression *= assignment_expression
-		//
-		case 76: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign);
-			break;
-		}
-
-		//
-		// Rule 77:  assignment_expression ::= unary_expression /= assignment_expression
-		//
-		case 77: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign);
-			break;
-		}
-
-		//
-		// Rule 78:  assignment_expression ::= unary_expression %= assignment_expression
-		//
-		case 78: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign);
-			break;
-		}
-
-		//
-		// Rule 79:  assignment_expression ::= unary_expression += assignment_expression
-		//
-		case 79: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign);
-			break;
-		}
-
-		//
-		// Rule 80:  assignment_expression ::= unary_expression -= assignment_expression
-		//
-		case 80: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign);
-			break;
-		}
-
-		//
-		// Rule 81:  assignment_expression ::= unary_expression <<= assignment_expression
-		//
-		case 81: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign);
-			break;
-		}
-
-		//
-		// Rule 82:  assignment_expression ::= unary_expression >>= assignment_expression
-		//
-		case 82: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign);
-			break;
-		}
-
-		//
-		// Rule 83:  assignment_expression ::= unary_expression &= assignment_expression
-		//
-		case 83: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign);
-			break;
-		}
-
-		//
-		// Rule 84:  assignment_expression ::= unary_expression ^= assignment_expression
-		//
-		case 84: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign);
-			break;
-		}
-
-		//
-		// Rule 85:  assignment_expression ::= unary_expression |= assignment_expression
-		//
-		case 85: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign);
-			break;
-		}
-
-		//
-		// Rule 88:  expression_list ::= <openscope-ast> expression_list_actual
-		//
-		case 88: {
-			action.consumeExpressionList();
-			break;
-		}
-
-		//
-		// Rule 90:  expression_list_opt ::= $Empty
-		//
-		case 90: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 100:  statement ::= ERROR_TOKEN
-		//
-		case 100: {
-			action.consumeStatementProblem();
-			break;
-		}
-
-		//
-		// Rule 101:  labeled_statement ::= identifier_token : statement
-		//
-		case 101: {
-			action.consumeStatementLabeled();
-			break;
-		}
-
-		//
-		// Rule 102:  labeled_statement ::= case constant_expression : statement
-		//
-		case 102: {
-			action.consumeStatementCase();
-			break;
-		}
-
-		//
-		// Rule 103:  labeled_statement ::= default : statement
-		//
-		case 103: {
-			action.consumeStatementDefault();
-			break;
-		}
-
-		//
-		// Rule 104:  compound_statement ::= { }
-		//
-		case 104: {
-			action.consumeStatementCompoundStatement(false);
-			break;
-		}
-
-		//
-		// Rule 105:  compound_statement ::= { <openscope-ast> block_item_list }
-		//
-		case 105: {
-			action.consumeStatementCompoundStatement(true);
-			break;
-		}
-
-		//
-		// Rule 109:  block_item ::= declaration
-		//
-		case 109: {
-			action.consumeStatementDeclarationWithDisambiguation();
-			break;
-		}
-
-		//
-		// Rule 110:  expression_statement ::= ;
-		//
-		case 110: {
-			action.consumeStatementNull();
-			break;
-		}
-
-		//
-		// Rule 111:  expression_statement ::= expression_in_statement ;
-		//
-		case 111: {
-			action.consumeStatementExpression();
-			break;
-		}
-
-		//
-		// Rule 112:  selection_statement ::= if ( expression ) statement
-		//
-		case 112: {
-			action.consumeStatementIf(false);
-			break;
-		}
-
-		//
-		// Rule 113:  selection_statement ::= if ( expression ) statement else statement
-		//
-		case 113: {
-			action.consumeStatementIf(true);
-			break;
-		}
-
-		//
-		// Rule 114:  selection_statement ::= switch ( expression ) statement
-		//
-		case 114: {
-			action.consumeStatementSwitch();
-			break;
-		}
-
-		//
-		// Rule 116:  expression_opt ::= $Empty
-		//
-		case 116: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 117:  iteration_statement ::= do statement while ( expression ) ;
-		//
-		case 117: {
-			action.consumeStatementDoLoop(true);
-			break;
-		}
-
-		//
-		// Rule 118:  iteration_statement ::= do statement
-		//
-		case 118: {
-			action.consumeStatementDoLoop(false);
-			break;
-		}
-
-		//
-		// Rule 119:  iteration_statement ::= while ( expression ) statement
-		//
-		case 119: {
-			action.consumeStatementWhileLoop();
-			break;
-		}
-
-		//
-		// Rule 120:  iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement
-		//
-		case 120: {
-			action.consumeStatementForLoop();
-			break;
-		}
-
-		//
-		// Rule 121:  iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement
-		//
-		case 121: {
-			action.consumeStatementForLoop();
-			break;
-		}
-
-		//
-		// Rule 122:  jump_statement ::= goto identifier_token ;
-		//
-		case 122: {
-			action.consumeStatementGoto();
-			break;
-		}
-
-		//
-		// Rule 123:  jump_statement ::= continue ;
-		//
-		case 123: {
-			action.consumeStatementContinue();
-			break;
-		}
-
-		//
-		// Rule 124:  jump_statement ::= break ;
-		//
-		case 124: {
-			action.consumeStatementBreak();
-			break;
-		}
-
-		//
-		// Rule 125:  jump_statement ::= return ;
-		//
-		case 125: {
-			action.consumeStatementReturn(false);
-			break;
-		}
-
-		//
-		// Rule 126:  jump_statement ::= return expression ;
-		//
-		case 126: {
-			action.consumeStatementReturn(true);
-			break;
-		}
-
-		//
-		// Rule 127:  declaration ::= declaration_specifiers ;
-		//
-		case 127: {
-			action.consumeDeclarationSimple(false);
-			break;
-		}
-
-		//
-		// Rule 128:  declaration ::= declaration_specifiers <openscope-ast> init_declarator_list ;
-		//
-		case 128: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 129:  declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
-		//
-		case 129: {
-			action.consumeDeclarationSpecifiersSimple();
-			break;
-		}
-
-		//
-		// Rule 130:  declaration_specifiers ::= <openscope-ast> struct_or_union_declaration_specifiers
-		//
-		case 130: {
-			action.consumeDeclarationSpecifiersStructUnionEnum();
-			break;
-		}
-
-		//
-		// Rule 131:  declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
-		//
-		case 131: {
-			action.consumeDeclarationSpecifiersStructUnionEnum();
-			break;
-		}
-
-		//
-		// Rule 132:  declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
-		//
-		case 132: {
-			action.consumeDeclarationSpecifiersStructUnionEnum();
-			break;
-		}
-
-		//
-		// Rule 133:  declaration_specifiers ::= <openscope-ast> typdef_name_declaration_specifiers
-		//
-		case 133: {
-			action.consumeDeclarationSpecifiersTypedefName();
-			break;
-		}
-
-		//
-		// Rule 158:  init_declarator ::= complete_declarator = initializer
-		//
-		case 158: {
-			action.consumeDeclaratorWithInitializer(true);
-			break;
-		}
-
-		//
-		// Rule 160:  storage_class_specifier ::= storage_class_specifier_token
-		//
-		case 160: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 166:  simple_type_specifier ::= simple_type_specifier_token
-		//
-		case 166: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 179:  type_name_specifier ::= identifier_token
-		//
-		case 179: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 180:  struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { <openscope-ast> struct_declaration_list_opt }
-		//
-		case 180: {
-			action.consumeTypeSpecifierComposite(false);
-			break;
-		}
-
-		//
-		// Rule 181:  struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { <openscope-ast> struct_declaration_list_opt }
-		//
-		case 181: {
-			action.consumeTypeSpecifierComposite(true);
-			break;
-		}
-
-		//
-		// Rule 186:  elaborated_specifier ::= struct elaborated_specifier_hook identifier_token
-		//
-		case 186: {
-			action.consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct);
-			break;
-		}
-
-		//
-		// Rule 187:  elaborated_specifier ::= union elaborated_specifier_hook identifier_token
-		//
-		case 187: {
-			action.consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union);
-			break;
-		}
-
-		//
-		// Rule 188:  elaborated_specifier ::= enum elaborated_specifier_hook identifier_token
-		//
-		case 188: {
-			action.consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum);
-			break;
-		}
-
-		//
-		// Rule 194:  struct_declaration ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ;
-		//
-		case 194: {
-			action.consumeStructDeclaration(true);
-			break;
-		}
-
-		//
-		// Rule 195:  struct_declaration ::= specifier_qualifier_list ;
-		//
-		case 195: {
-			action.consumeStructDeclaration(false);
-			break;
-		}
-
-		//
-		// Rule 196:  struct_declaration ::= ERROR_TOKEN
-		//
-		case 196: {
-			action.consumeDeclarationProblem();
-			break;
-		}
-
-		//
-		// Rule 202:  struct_declarator ::= : constant_expression
-		//
-		case 202: {
-			action.consumeBitField(false);
-			break;
-		}
-
-		//
-		// Rule 203:  struct_declarator ::= declarator : constant_expression
-		//
-		case 203: {
-			action.consumeBitField(true);
-			break;
-		}
-
-		//
-		// Rule 204:  enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
-		//
-		case 204: {
-			action.consumeTypeSpecifierEnumeration(false);
-			break;
-		}
-
-		//
-		// Rule 205:  enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
-		//
-		case 205: {
-			action.consumeTypeSpecifierEnumeration(true);
-			break;
-		}
-
-		//
-		// Rule 211:  enumerator ::= identifier_token
-		//
-		case 211: {
-			action.consumeEnumerator(false);
-			break;
-		}
-
-		//
-		// Rule 212:  enumerator ::= identifier_token = constant_expression
-		//
-		case 212: {
-			action.consumeEnumerator(true);
-			break;
-		}
-
-		//
-		// Rule 213:  type_qualifier ::= type_qualifier_token
-		//
-		case 213: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 217:  function_specifier ::= inline
-		//
-		case 217: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 219:  declarator ::= <openscope-ast> pointer_seq direct_declarator
-		//
-		case 219: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 224:  basic_direct_declarator ::= declarator_id_name
-		//
-		case 224: {
-			action.consumeDirectDeclaratorIdentifier();
-			break;
-		}
-
-		//
-		// Rule 225:  basic_direct_declarator ::= ( declarator )
-		//
-		case 225: {
-			action.consumeDirectDeclaratorBracketed();
-			break;
-		}
-
-		//
-		// Rule 226:  declarator_id_name ::= identifier
-		//
-		case 226: {
-			action.consumeIdentifierName();
-			break;
-		}
-
-		//
-		// Rule 227:  array_direct_declarator ::= basic_direct_declarator array_modifier
-		//
-		case 227: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 228:  array_direct_declarator ::= array_direct_declarator array_modifier
-		//
-		case 228: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 230:  function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_type_list )
-		//
-		case 230: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true, true);
-			break;
-		}
-
-		//
-		// Rule 231:  function_direct_declarator ::= basic_direct_declarator ( )
-		//
-		case 231: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true, false);
-			break;
-		}
-
-		//
-		// Rule 233:  function_declarator ::= <openscope-ast> pointer_seq function_direct_declarator
-		//
-		case 233: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 234:  knr_direct_declarator ::= basic_direct_declarator ( <openscope-ast> identifier_list )
-		//
-		case 234: {
-			action.consumeDirectDeclaratorFunctionDeclaratorKnR();
-			break;
-		}
-
-		//
-		// Rule 236:  knr_function_declarator ::= <openscope-ast> pointer_seq knr_direct_declarator
-		//
-		case 236: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 237:  identifier_list ::= identifier
-		//
-		case 237: {
-			action.consumeIdentifierKnR();
-			break;
-		}
-
-		//
-		// Rule 238:  identifier_list ::= identifier_list , identifier
-		//
-		case 238: {
-			action.consumeIdentifierKnR();
-			break;
-		}
-
-		//
-		// Rule 239:  array_modifier ::= [ ]
-		//
-		case 239: {
-			action.consumeDirectDeclaratorArrayModifier(false);
-			break;
-		}
-
-		//
-		// Rule 240:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ]
-		//
-		case 240: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false);
-			break;
-		}
-
-		//
-		// Rule 241:  array_modifier ::= [ assignment_expression ]
-		//
-		case 241: {
-			action.consumeDirectDeclaratorArrayModifier(true);
-			break;
-		}
-
-		//
-		// Rule 242:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
-		//
-		case 242: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 243:  array_modifier ::= [ static assignment_expression ]
-		//
-		case 243: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true);
-			break;
-		}
-
-		//
-		// Rule 244:  array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
-		//
-		case 244: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 245:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ]
-		//
-		case 245: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 246:  array_modifier ::= [ * ]
-		//
-		case 246: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false);
-			break;
-		}
-
-		//
-		// Rule 247:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ]
-		//
-		case 247: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false);
-			break;
-		}
-
-		//
-		// Rule 249:  pointer_seq ::= pointer_hook * pointer_hook
-		//
-		case 249: {
-			action.consumePointer();
-			break;
-		}
-
-		//
-		// Rule 250:  pointer_seq ::= pointer_seq pointer_hook * pointer_hook
-		//
-		case 250: {
-			action.consumePointer();
-			break;
-		}
-
-		//
-		// Rule 251:  pointer_seq ::= pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
-		//
-		case 251: {
-			action.consumePointerTypeQualifierList();
-			break;
-		}
-
-		//
-		// Rule 252:  pointer_seq ::= pointer_seq pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
-		//
-		case 252: {
-			action.consumePointerTypeQualifierList();
-			break;
-		}
-
-		//
-		// Rule 256:  parameter_type_list ::= parameter_list
-		//
-		case 256: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 257:  parameter_type_list ::= parameter_list , ...
-		//
-		case 257: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 258:  parameter_type_list ::= ...
-		//
-		case 258: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 261:  parameter_declaration ::= declaration_specifiers complete_parameter_declarator
-		//
-		case 261: {
-			action.consumeParameterDeclaration();
-			break;
-		}
-
-		//
-		// Rule 262:  parameter_declaration ::= declaration_specifiers
-		//
-		case 262: {
-			action.consumeParameterDeclarationWithoutDeclarator();
-			break;
-		}
-
-		//
-		// Rule 265:  type_id ::= specifier_qualifier_list
-		//
-		case 265: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 266:  type_id ::= specifier_qualifier_list abstract_declarator
-		//
-		case 266: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 268:  abstract_declarator ::= <openscope-ast> pointer_seq
-		//
-		case 268: {
-			action.consumeDeclaratorWithPointer(false);
-			break;
-		}
-
-		//
-		// Rule 269:  abstract_declarator ::= <openscope-ast> pointer_seq direct_abstract_declarator
-		//
-		case 269: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 273:  basic_direct_abstract_declarator ::= ( abstract_declarator )
-		//
-		case 273: {
-			action.consumeDirectDeclaratorBracketed();
-			break;
-		}
-
-		//
-		// Rule 274:  array_direct_abstract_declarator ::= array_modifier
-		//
-		case 274: {
-			action.consumeDirectDeclaratorArrayDeclarator(false);
-			break;
-		}
-
-		//
-		// Rule 275:  array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
-		//
-		case 275: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 276:  array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
-		//
-		case 276: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 277:  function_direct_abstract_declarator ::= ( )
-		//
-		case 277: {
-			action.consumeDirectDeclaratorFunctionDeclarator(false, false);
-			break;
-		}
-
-		//
-		// Rule 278:  function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( )
-		//
-		case 278: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true, false);
-			break;
-		}
-
-		//
-		// Rule 279:  function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list )
-		//
-		case 279: {
-			action.consumeDirectDeclaratorFunctionDeclarator(false, true);
-			break;
-		}
-
-		//
-		// Rule 280:  function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list )
-		//
-		case 280: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true, true);
-			break;
-		}
-
-		//
-		// Rule 281:  initializer ::= assignment_expression
-		//
-		case 281: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 282:  initializer ::= initializer_list
-		//
-		case 282: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 283:  initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq comma_opt } end_initializer_list
-		//
-		case 283: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 284:  initializer_list ::= { <openscope-ast> }
-		//
-		case 284: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 285:  start_initializer_list ::= $Empty
-		//
-		case 285: {
-			action.initializerListStart();
-			break;
-		}
-
-		//
-		// Rule 286:  end_initializer_list ::= $Empty
-		//
-		case 286: {
-			action.initializerListEnd();
-			break;
-		}
-
-		//
-		// Rule 291:  designated_initializer ::= <openscope-ast> designation = initializer
-		//
-		case 291: {
-			action.consumeInitializerDesignated();
-			break;
-		}
-
-		//
-		// Rule 295:  designator_base ::= [ constant_expression ]
-		//
-		case 295: {
-			action.consumeDesignatorArray();
-			break;
-		}
-
-		//
-		// Rule 296:  designator_base ::= . identifier_token
-		//
-		case 296: {
-			action.consumeDesignatorField();
-			break;
-		}
-
-		//
-		// Rule 297:  designator ::= [ constant_expression ]
-		//
-		case 297: {
-			action.consumeDesignatorArray();
-			break;
-		}
-
-		//
-		// Rule 298:  designator ::= . identifier_token
-		//
-		case 298: {
-			action.consumeDesignatorField();
-			break;
-		}
-
-		//
-		// Rule 299:  translation_unit ::= external_declaration_list
-		//
-		case 299: {
-			action.consumeTranslationUnit();
-			break;
-		}
-
-		//
-		// Rule 300:  translation_unit ::= $Empty
-		//
-		case 300: {
-			action.consumeTranslationUnit();
-			break;
-		}
-
-		//
-		// Rule 305:  external_declaration ::= ;
-		//
-		case 305: {
-			action.consumeDeclarationEmpty();
-			break;
-		}
-
-		//
-		// Rule 306:  external_declaration ::= ERROR_TOKEN
-		//
-		case 306: {
-			action.consumeDeclarationProblem();
-			break;
-		}
-
-		//
-		// Rule 310:  function_definition ::= <openscope-ast> function_declarator function_body
-		//
-		case 310: {
-			action.consumeFunctionDefinition(false);
-			break;
-		}
-
-		//
-		// Rule 311:  function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
-		//
-		case 311: {
-			action.consumeFunctionDefinitionKnR();
-			break;
-		}
-
-		//
-		// Rule 312:  normal_function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
-		//
-		case 312: {
-			action.consumeFunctionDefinition(true);
-			break;
-		}
-
-		//
-		// Rule 313:  function_body ::= { }
-		//
-		case 313: {
-			action.consumeStatementCompoundStatement(false);
-			break;
-		}
-
-		//
-		// Rule 314:  function_body ::= { <openscope-ast> block_item_list }
-		//
-		case 314: {
-			action.consumeStatementCompoundStatement(true);
-			break;
-		}
-
-		//
-		// Rule 316:  no_sizeof_type_id_start ::= ERROR_TOKEN
-		//
-		case 316: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 317:  literal ::= MYTHREAD
-		//
-		case 317: {
-			action.consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread);
-			break;
-		}
-
-		//
-		// Rule 318:  literal ::= THREADS
-		//
-		case 318: {
-			action.consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads);
-			break;
-		}
-
-		//
-		// Rule 319:  literal ::= UPC_MAX_BLOCKSIZE
-		//
-		case 319: {
-			action.consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size);
-			break;
-		}
-
-		//
-		// Rule 320:  unary_expression ::= upc_localsizeof unary_expression
-		//
-		case 320: {
-			action.consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_localsizeof);
-			break;
-		}
-
-		//
-		// Rule 321:  unary_expression ::= upc_blocksizeof unary_expression
-		//
-		case 321: {
-			action.consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_blocksizeof);
-			break;
-		}
-
-		//
-		// Rule 322:  unary_expression ::= upc_elemsizeof unary_expression
-		//
-		case 322: {
-			action.consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_elemsizeof);
-			break;
-		}
-
-		//
-		// Rule 326:  shared_type_qualifier ::= shared
-		//
-		case 326: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 327:  reference_type_qualifier ::= relaxed
-		//
-		case 327: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 328:  reference_type_qualifier ::= strict
-		//
-		case 328: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 329:  layout_qualifier ::= [ constant_expression ]
-		//
-		case 329: {
-			action.consumeLayoutQualifier(true, false);
-			break;
-		}
-
-		//
-		// Rule 330:  layout_qualifier ::= [ * ]
-		//
-		case 330: {
-			action.consumeLayoutQualifier(false, true);
-			break;
-		}
-
-		//
-		// Rule 331:  layout_qualifier ::= [ ]
-		//
-		case 331: {
-			action.consumeLayoutQualifier(false, false);
-			break;
-		}
-
-		//
-		// Rule 333:  synchronization_statement ::= upc_notify expression ;
-		//
-		case 333: {
-			action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true);
-			break;
-		}
-
-		//
-		// Rule 334:  synchronization_statement ::= upc_notify ;
-		//
-		case 334: {
-			action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false);
-			break;
-		}
-
-		//
-		// Rule 335:  synchronization_statement ::= upc_wait expression ;
-		//
-		case 335: {
-			action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true);
-			break;
-		}
-
-		//
-		// Rule 336:  synchronization_statement ::= upc_wait ;
-		//
-		case 336: {
-			action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false);
-			break;
-		}
-
-		//
-		// Rule 337:  synchronization_statement ::= upc_barrier expression ;
-		//
-		case 337: {
-			action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true);
-			break;
-		}
-
-		//
-		// Rule 338:  synchronization_statement ::= upc_barrier ;
-		//
-		case 338: {
-			action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false);
-			break;
-		}
-
-		//
-		// Rule 339:  synchronization_statement ::= upc_fence ;
-		//
-		case 339: {
-			action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false);
-			break;
-		}
-
-		//
-		// Rule 340:  iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement
-		//
-		case 340: {
-			action.consumeStatementUPCForallLoop(true, true, true, true);
-			break;
-		}
-
-		//
-		// Rule 341:  iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement
-		//
-		case 341: {
-			action.consumeStatementUPCForallLoop(true, true, true, false);
-			break;
-		}
-
-		//
-		// Rule 342:  iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement
-		//
-		case 342: {
-			action.consumeStatementUPCForallLoop(true, true, false, true);
-			break;
-		}
-
-		//
-		// Rule 343:  iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement
-		//
-		case 343: {
-			action.consumeStatementUPCForallLoop(true, true, false, false);
-			break;
-		}
-
-		//
-		// Rule 344:  iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement
-		//
-		case 344: {
-			action.consumeStatementUPCForallLoop(true, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 345:  iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement
-		//
-		case 345: {
-			action.consumeStatementUPCForallLoop(true, false, true, false);
-			break;
-		}
-
-		//
-		// Rule 346:  iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement
-		//
-		case 346: {
-			action.consumeStatementUPCForallLoop(true, false, false, true);
-			break;
-		}
-
-		//
-		// Rule 347:  iteration_statement ::= upc_forall ( expression ; ; ; ) statement
-		//
-		case 347: {
-			action.consumeStatementUPCForallLoop(true, false, false, false);
-			break;
-		}
-
-		//
-		// Rule 348:  iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement
-		//
-		case 348: {
-			action.consumeStatementUPCForallLoop(false, true, true, true);
-			break;
-		}
-
-		//
-		// Rule 349:  iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement
-		//
-		case 349: {
-			action.consumeStatementUPCForallLoop(false, true, true, false);
-			break;
-		}
-
-		//
-		// Rule 350:  iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement
-		//
-		case 350: {
-			action.consumeStatementUPCForallLoop(false, true, false, true);
-			break;
-		}
-
-		//
-		// Rule 351:  iteration_statement ::= upc_forall ( ; expression ; ; ) statement
-		//
-		case 351: {
-			action.consumeStatementUPCForallLoop(false, true, false, false);
-			break;
-		}
-
-		//
-		// Rule 352:  iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement
-		//
-		case 352: {
-			action.consumeStatementUPCForallLoop(false, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 353:  iteration_statement ::= upc_forall ( ; ; expression ; ) statement
-		//
-		case 353: {
-			action.consumeStatementUPCForallLoop(false, false, true, false);
-			break;
-		}
-
-		//
-		// Rule 354:  iteration_statement ::= upc_forall ( ; ; ; affinity ) statement
-		//
-		case 354: {
-			action.consumeStatementUPCForallLoop(false, false, false, true);
-			break;
-		}
-
-		//
-		// Rule 355:  iteration_statement ::= upc_forall ( ; ; ; ) statement
-		//
-		case 355: {
-			action.consumeStatementUPCForallLoop(false, false, false, false);
-			break;
-		}
-
-		//
-		// Rule 356:  iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement
-		//
-		case 356: {
-			action.consumeStatementUPCForallLoop(true, true, true, true);
-			break;
-		}
-
-		//
-		// Rule 357:  iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement
-		//
-		case 357: {
-			action.consumeStatementUPCForallLoop(true, true, true, false);
-			break;
-		}
-
-		//
-		// Rule 358:  iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement
-		//
-		case 358: {
-			action.consumeStatementUPCForallLoop(true, true, false, true);
-			break;
-		}
-
-		//
-		// Rule 359:  iteration_statement ::= upc_forall ( declaration expression ; ; ) statement
-		//
-		case 359: {
-			action.consumeStatementUPCForallLoop(true, true, false, false);
-			break;
-		}
-
-		//
-		// Rule 360:  iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement
-		//
-		case 360: {
-			action.consumeStatementUPCForallLoop(true, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 361:  iteration_statement ::= upc_forall ( declaration ; expression ; ) statement
-		//
-		case 361: {
-			action.consumeStatementUPCForallLoop(true, false, true, false);
-			break;
-		}
-
-		//
-		// Rule 362:  iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement
-		//
-		case 362: {
-			action.consumeStatementUPCForallLoop(true, false, false, true);
-			break;
-		}
-
-		//
-		// Rule 363:  iteration_statement ::= upc_forall ( declaration ; ; ) statement
-		//
-		case 363: {
-			action.consumeStatementUPCForallLoop(true, false, false, false);
-			break;
-		}
-
-		//
-		// Rule 365:  affinity ::= continue
-		//
-		case 365: {
-			action.consumeToken();
-			break;
-		}
-
-		default:
-			break;
-		}
-		return;
-	}
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParserprs.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParserprs.java
deleted file mode 100644
index f1183fc..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParserprs.java
+++ /dev/null
@@ -1,741 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2011 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.parser.upc;
-
-public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UPCSizeofExpressionParsersym {
-
-	public interface IsKeyword {
-		public final static byte isKeyword[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static byte isKeyword[] = IsKeyword.isKeyword;
-
-	public final boolean isKeyword(int index) {
-		return isKeyword[index] != 0;
-	}
-
-	public interface BaseCheck {
-		public final static short baseCheck[] = { 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 4,
-				4, 3, 3, 2, 2, 4, 1, 0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 4, 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 3, 3, 3,
-				3, 1, 3, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 2, 1, 0, 1, 3,
-				1, 1, 1, 1, 1, 1, 1, 1, 3, 4, 3, 2, 4, 1, 2, 1, 1, 1, 2, 5, 7, 5, 1, 0, 7, 2, 5, 9, 8, 3, 2, 2, 2, 3, 2,
-				4, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 3, 1, 3, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6, 8, 0, 0, 1, 1, 3, 3, 3, 0, 1, 0, 1, 2, 4, 2, 1, 1,
-				1, 3, 1, 1, 2, 3, 7, 8, 0, 1, 0, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 3, 1, 2, 2, 1, 5, 3, 1,
-				3, 5, 1, 3, 1, 3, 2, 4, 3, 5, 4, 6, 6, 3, 5, 1, 3, 4, 5, 6, 0, 1, 2, 1, 3, 1, 1, 3, 2, 1, 1, 1, 1, 2, 1,
-				2, 3, 1, 1, 1, 3, 1, 2, 2, 2, 3, 4, 5, 1, 1, 7, 3, 0, 0, 1, 1, 3, 3, 4, 1, 1, 2, 3, 2, 3, 2, 1, 0, 1, 2,
-				1, 1, 1, 1, 1, 2, 1, 3, 6, 4, 2, 4, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 1, 3, 3, 2, 1, 3, 2, 3, 2, 3,
-				2, 2, 11, 10, 10, 9, 10, 9, 9, 8, 10, 9, 9, 8, 9, 8, 8, 7, 10, 9, 9, 8, 9, 8, 8, 7, 1, 1, -39, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, -80, 0, 0, 0, 0, -163, -120, 0, -74, 0, 0, 0, 0,
-				-145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -174, 0, -108, -36, -37, 0, 0,
-				0, 0, -82, 0, 0, -4, 0, -32, 0, -17, 0, 0, 0, 0, 0, 0, 0, 0, -126, 0, -33, 0, 0, 0, 0, -45, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -136, 0, 0, -57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -72, 0,
-				0, 0, 0, -141, -70, -121, 0, 0, -54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -194, 0, -19, 0,
-				0, 0, 0, 0, 0, -71, 0, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -122, 0, 0,
-				0, -123, 0, 0, -124, 0, -183, 0, 0, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-20, 0, 0, 0, 0, 0, 0, 0, 0, -21, 0, -49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -50, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -30, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -113, 0, 0, 0, 0, 0, 0, 0, 0, 0, -59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -131, 0, 0, 0, 0, 0, 0, 0, 0, 0, -61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -139, 0, 0, 0, 0, 0, 0, 0, 0, 0, -63,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -150, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -66, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -166, 0, 0, 0, 0, 0, 0, 0, 0, 0, -67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -167, 0, 0, 0, 0, 0, 0, 0, 0, 0, -69, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -197, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -149, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -23, 0, 0, 0, 0, 0, 0, 0, 0, 0, -184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -129, 0, 0, 0, 0, 0, 0, 0, 0,
-				-193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -84, 0, 0, 0, 0, 0, 0, 0, 0, 0, -198, 0, 0, -73, 0, 0, 0, 0, 0, 0,
-				0, -199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-127, 0, 0, 0, 0, 0, 0, 0, 0, -107, 0, 0, 0, -173, -180, 0, 0, -77, -78, -89, 0, -213, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -81, -85, 0, 0, 0, 0, -24, 0, 0, -142, -135, 0,
-				-25, -155, -146, -144, 0, 0, -161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-152, -35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -147, 0, 0, 0, 0, 0, -26, 0, -160, -27, -28, 0, 0, 0, -87,
-				0, 0, 0, -164, 0, -153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -40, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -29, 0, 0, -90, 0, -58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -171, 0, 0, 0, 0, 0, -55, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -6, 0, 0, 0, 0, 0, 0, 0, 0, -190, -172, -91, -116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -92, -93, 0, 0, 0, 0, 0, 0, 0, -41, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -134, 0, -53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -212, 0,
-				-94, -154, -118, -185, -157, -95, 0, 0, -96, 0, -97, 0, -98, 0, -176, 0, 0, -46, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -162, 0, 0, 0, 0, 0, 0, 0, -9, 0, 0, 0, 0, 0, 0, 0, -99, 0, -47, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -79, -207, -10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -177, -100,
-				-76, -168, -101, -102, -110, 0, 0, 0, 0, 0, -191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-192, -56, -83, 0, 0, -103, 0, -203, -204, -104, 0, 0, 0, -195, -86, 0, 0, 0, 0, 0, 0, 0, 0, -105, 0, 0,
-				0, 0, -88, -156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -106, -201, 0,
-				-210, 0, 0, 0, 0, -115, 0, 0, 0, 0, 0, 0, 0, -140, 0, 0, 0, 0, 0, 0, 0, 0, 0, -214, 0, 0, 0, -7, 0, 0,
-				0, 0, 0, 0, 0, -151, 0, 0, 0, 0, 0, 0, 0, -11, 0, 0, 0, 0, 0, 0, 0, -109, 0, -111, 0, -128, 0, 0, 0, 0,
-				0, 0, 0, 0, -12, 0, 0, 0, 0, 0, 0, 0, -13, 0, 0, 0, 0, 0, 0, 0, -14, 0, 0, 0, 0, 0, 0, 0, -38, -42, 0,
-				0, 0, 0, 0, 0, 0, -137, -143, 0, -43, 0, 0, 0, 0, 0, 0, 0, -44, 0, 0, 0, 0, 0, 0, 0, 0, -117, -1, -170,
-				-169, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -15, 0, 0, 0, 0, 0, 0, -158, 0, 0, 0, 0, 0, 0, -16,
-				0, 0, 0, 0, 0, 0, -18, -114, -209, 0, -178, -179, -130, -31, -182, 0, -159, 0, 0, 0, -202, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -206, -189, 0, -175, -211, 0, 0, 0, 0, -188, 0, 0, 0, -34, 0,
-				-165, 0, 0, 0, 0, 0, -133, -138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -186, 0, 0, 0, -187, 0, 0, 0, -200, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static short baseCheck[] = BaseCheck.baseCheck;
-
-	@Override
-	public final int baseCheck(int index) {
-		return baseCheck[index];
-	}
-
-	public final static short rhs[] = baseCheck;
-
-	@Override
-	public final int rhs(int index) {
-		return rhs[index];
-	}
-
-	public interface BaseAction {
-		public final static char baseAction[] = { 89, 11, 105, 21, 21, 26, 26, 41, 41, 71, 71, 1, 1, 2, 2, 2, 2, 3, 3,
-				3, 4, 5, 5, 5, 5, 5, 5, 5, 5, 61, 61, 72, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 10,
-				10, 10, 12, 12, 12, 12, 12, 13, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 20, 20,
-				20, 20, 20, 20, 20, 20, 20, 20, 106, 48, 42, 90, 90, 74, 74, 43, 107, 107, 107, 107, 107, 107, 107, 108,
-				108, 108, 109, 109, 114, 114, 115, 115, 110, 110, 111, 111, 111, 117, 117, 112, 112, 112, 112, 112, 113,
-				113, 113, 113, 113, 116, 116, 27, 27, 27, 27, 27, 30, 30, 30, 80, 80, 75, 75, 75, 75, 76, 76, 76, 77,
-				77, 77, 78, 78, 78, 79, 79, 79, 118, 118, 119, 119, 120, 31, 33, 33, 33, 33, 33, 55, 56, 56, 56, 56, 56,
-				56, 56, 56, 56, 56, 56, 56, 65, 62, 62, 91, 92, 67, 67, 63, 63, 63, 68, 81, 81, 82, 82, 69, 69, 69, 51,
-				93, 93, 83, 84, 84, 84, 64, 64, 94, 85, 85, 86, 86, 70, 70, 22, 23, 23, 23, 32, 50, 50, 34, 34, 34, 34,
-				37, 37, 39, 35, 35, 36, 40, 40, 121, 121, 38, 122, 122, 95, 95, 28, 28, 28, 28, 28, 28, 28, 28, 28, 87,
-				52, 52, 52, 52, 29, 58, 58, 57, 57, 57, 59, 59, 53, 53, 96, 96, 73, 73, 60, 60, 60, 44, 44, 44, 45, 46,
-				46, 46, 47, 47, 47, 47, 66, 66, 49, 49, 54, 98, 97, 97, 97, 97, 88, 99, 100, 100, 101, 101, 102, 102,
-				123, 123, 124, 124, 125, 125, 125, 125, 127, 127, 126, 126, 126, 128, 129, 129, 89, 89, 2, 2, 2, 6, 6,
-				6, 22, 22, 24, 24, 25, 25, 103, 103, 103, 107, 130, 130, 130, 130, 130, 130, 130, 112, 112, 112, 112,
-				112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 131,
-				131, 1, 1289, 17, 21, 18, 439, 1286, 44, 684, 554, 728, 760, 693, 1190, 1044, 1243, 1196, 1247, 1246,
-				74, 91, 866, 135, 213, 323, 324, 227, 184, 529, 25, 137, 134, 136, 160, 582, 20, 17, 21, 18, 439, 1286,
-				44, 684, 554, 728, 392, 693, 1190, 1044, 1243, 1196, 1247, 1246, 74, 281, 139, 166, 690, 1635, 6, 324,
-				324, 143, 146, 149, 152, 53, 432, 1332, 40, 448, 125, 31, 69, 435, 1480, 1184, 1527, 1539, 1553, 1156,
-				1500, 541, 282, 125, 31, 1098, 19, 1633, 648, 20, 17, 21, 18, 439, 42, 44, 684, 554, 1365, 287, 354, 20,
-				17, 21, 18, 439, 1286, 44, 684, 554, 728, 392, 693, 1190, 1044, 1243, 1196, 1247, 1246, 74, 281, 288,
-				284, 325, 1747, 1412, 293, 195, 225, 179, 1440, 648, 20, 17, 21, 18, 439, 42, 44, 684, 554, 728, 25,
-				693, 1190, 1044, 1243, 1196, 1548, 282, 135, 213, 323, 324, 1633, 24, 393, 237, 137, 134, 136, 160, 59,
-				324, 125, 187, 289, 648, 20, 17, 21, 18, 439, 42, 44, 684, 554, 728, 22, 693, 1190, 1044, 1499, 139,
-				166, 125, 1743, 392, 290, 1146, 143, 146, 149, 152, 324, 432, 681, 20, 17, 21, 18, 439, 322, 1480, 1184,
-				1527, 1539, 1553, 1156, 615, 20, 17, 21, 18, 439, 1286, 44, 684, 554, 728, 23, 693, 1190, 1044, 1243,
-				1196, 1247, 1246, 74, 281, 281, 20, 17, 21, 18, 439, 1286, 44, 684, 554, 728, 1740, 693, 1190, 1044,
-				1243, 1196, 1247, 1246, 74, 750, 239, 125, 186, 1725, 210, 769, 1680, 282, 125, 188, 125, 296, 1633,
-				648, 20, 17, 21, 18, 439, 1286, 44, 684, 554, 728, 291, 693, 1190, 1044, 1243, 1196, 1247, 1246, 74, 91,
-				714, 20, 17, 21, 18, 439, 1286, 44, 684, 554, 728, 1745, 693, 1190, 1044, 1243, 1196, 1247, 1246, 74,
-				792, 474, 20, 17, 21, 18, 439, 42, 44, 684, 554, 728, 364, 693, 1190, 1044, 1243, 1196, 1247, 1246, 93,
-				15, 331, 648, 20, 17, 21, 18, 439, 42, 44, 684, 1419, 435, 648, 20, 17, 21, 18, 439, 42, 44, 684, 1421,
-				834, 315, 20, 17, 21, 18, 439, 1286, 44, 684, 554, 728, 39, 693, 1190, 1044, 1243, 1196, 1247, 1246, 74,
-				876, 240, 648, 20, 17, 21, 18, 439, 1286, 44, 684, 554, 728, 237, 693, 1190, 1044, 1243, 1196, 1247,
-				1246, 74, 92, 648, 20, 17, 21, 18, 439, 1286, 44, 684, 554, 728, 241, 693, 1190, 1044, 1243, 1196, 1247,
-				1246, 74, 85, 648, 20, 17, 21, 18, 439, 1286, 44, 684, 554, 728, 237, 693, 1190, 1044, 1243, 1196, 1247,
-				1246, 74, 84, 648, 20, 17, 21, 18, 439, 1286, 44, 684, 554, 728, 243, 693, 1190, 1044, 1243, 1196, 1247,
-				1246, 74, 83, 648, 20, 17, 21, 18, 439, 1286, 44, 684, 554, 728, 237, 693, 1190, 1044, 1243, 1196, 1247,
-				1246, 74, 82, 648, 20, 17, 21, 18, 439, 1286, 44, 684, 554, 728, 329, 693, 1190, 1044, 1243, 1196, 1247,
-				1246, 74, 81, 648, 20, 17, 21, 18, 439, 1286, 44, 684, 554, 728, 237, 693, 1190, 1044, 1243, 1196, 1247,
-				1246, 74, 80, 648, 20, 17, 21, 18, 439, 1286, 44, 684, 554, 728, 242, 693, 1190, 1044, 1243, 1196, 1247,
-				1246, 74, 79, 648, 20, 17, 21, 18, 439, 1286, 44, 684, 554, 728, 237, 693, 1190, 1044, 1243, 1196, 1247,
-				1246, 74, 78, 648, 20, 17, 21, 18, 439, 1286, 44, 684, 554, 728, 244, 693, 1190, 1044, 1243, 1196, 1247,
-				1246, 74, 77, 648, 20, 17, 21, 18, 439, 1286, 44, 684, 554, 728, 237, 693, 1190, 1044, 1243, 1196, 1247,
-				1246, 74, 76, 648, 20, 17, 21, 18, 439, 1286, 44, 684, 554, 728, 245, 693, 1190, 1044, 1243, 1196, 1247,
-				1246, 74, 75, 648, 20, 17, 21, 18, 439, 1286, 44, 684, 554, 728, 237, 693, 1190, 1044, 1243, 1196, 1247,
-				1246, 74, 73, 648, 20, 17, 21, 18, 439, 1286, 44, 684, 554, 728, 295, 693, 1190, 1044, 1243, 1196, 1247,
-				1246, 74, 918, 648, 20, 17, 21, 18, 439, 1286, 44, 684, 554, 728, 401, 693, 1190, 1044, 1243, 1196,
-				1247, 1246, 74, 960, 648, 20, 17, 21, 18, 439, 42, 44, 684, 554, 728, 25, 693, 1190, 1044, 1243, 1196,
-				1247, 1246, 93, 648, 20, 17, 21, 18, 439, 42, 44, 684, 554, 728, 322, 693, 1190, 1044, 1243, 1196, 1247,
-				1246, 93, 1237, 125, 298, 1002, 549, 20, 17, 21, 18, 439, 42, 43, 648, 20, 17, 21, 18, 439, 42, 44, 684,
-				554, 728, 212, 693, 1190, 1044, 1243, 1196, 1247, 1246, 93, 648, 20, 17, 21, 18, 439, 42, 44, 684, 554,
-				728, 6, 693, 1190, 1044, 1243, 1196, 1247, 1246, 93, 767, 28, 400, 1582, 541, 541, 1633, 531, 792, 686,
-				225, 179, 648, 20, 17, 21, 18, 439, 42, 44, 684, 554, 728, 202, 693, 1190, 1044, 1243, 1196, 1247, 1246,
-				93, 135, 213, 323, 324, 275, 276, 768, 414, 138, 134, 136, 160, 73, 180, 1538, 6, 389, 28, 400, 25, 25,
-				6, 1633, 203, 482, 1743, 1749, 1197, 135, 213, 323, 324, 1202, 140, 166, 25, 145, 134, 136, 160, 144,
-				147, 150, 153, 274, 432, 348, 6, 1635, 1255, 218, 1257, 221, 1410, 223, 224, 229, 1702, 631, 239, 267,
-				1155, 1154, 272, 1635, 450, 263, 6, 186, 77, 1786, 1302, 277, 446, 274, 619, 264, 402, 1423, 871, 218,
-				1257, 221, 1410, 223, 224, 229, 1605, 1834, 87, 267, 1155, 1154, 272, 209, 524, 1497, 648, 20, 17, 21,
-				18, 439, 42, 44, 1334, 1335, 228, 771, 1494, 1744, 747, 261, 648, 20, 17, 21, 18, 439, 42, 44, 684, 554,
-				728, 587, 693, 1190, 1044, 1243, 1579, 648, 20, 17, 21, 18, 439, 42, 44, 684, 554, 728, 626, 693, 1190,
-				1530, 681, 20, 17, 21, 18, 439, 321, 274, 1637, 253, 6, 480, 324, 219, 1257, 221, 1410, 223, 224, 229,
-				1213, 1772, 623, 269, 1155, 1154, 272, 648, 20, 17, 21, 18, 439, 42, 44, 684, 554, 728, 273, 693, 1456,
-				592, 488, 218, 1257, 221, 1410, 223, 224, 229, 648, 20, 17, 21, 18, 439, 42, 44, 1364, 1771, 648, 20,
-				17, 21, 18, 439, 42, 44, 684, 554, 728, 324, 1495, 648, 20, 17, 21, 18, 439, 42, 44, 684, 554, 728, 253,
-				1498, 667, 846, 454, 291, 324, 733, 198, 200, 773, 1213, 750, 279, 800, 1793, 482, 1743, 1533, 648, 20,
-				17, 21, 18, 439, 42, 44, 684, 554, 1409, 278, 227, 280, 874, 218, 1257, 221, 1410, 223, 224, 229, 648,
-				20, 17, 21, 18, 439, 42, 40, 129, 1771, 648, 20, 17, 21, 18, 439, 42, 44, 684, 554, 1414, 648, 20, 17,
-				21, 18, 439, 42, 44, 684, 554, 1417, 388, 87, 648, 20, 17, 21, 18, 439, 42, 39, 199, 200, 1213, 209,
-				875, 75, 238, 324, 131, 590, 620, 1151, 135, 213, 323, 324, 875, 1699, 1506, 1744, 142, 134, 136, 160,
-				294, 218, 1257, 221, 1410, 223, 224, 229, 277, 225, 274, 541, 6, 788, 274, 1637, 672, 1497, 541, 653,
-				351, 141, 166, 631, 61, 808, 267, 1155, 1154, 272, 269, 1155, 1154, 272, 547, 135, 213, 323, 324, 828,
-				689, 1525, 1335, 148, 134, 136, 160, 135, 213, 323, 324, 495, 204, 1741, 87, 151, 134, 136, 160, 181,
-				1534, 135, 213, 323, 324, 820, 324, 1194, 237, 154, 134, 136, 160, 440, 20, 17, 21, 18, 439, 42, 36,
-				440, 20, 17, 21, 18, 439, 42, 36, 297, 194, 719, 230, 260, 246, 681, 20, 17, 21, 18, 439, 320, 330, 440,
-				20, 17, 21, 18, 439, 42, 36, 648, 20, 17, 21, 18, 439, 42, 38, 867, 1637, 625, 283, 869, 247, 219, 1257,
-				221, 1410, 223, 224, 229, 648, 20, 17, 21, 18, 439, 42, 37, 648, 20, 17, 21, 18, 439, 42, 36, 648, 20,
-				17, 21, 18, 439, 42, 35, 70, 648, 20, 17, 21, 18, 439, 42, 47, 481, 870, 395, 648, 20, 17, 21, 18, 439,
-				42, 46, 648, 20, 17, 21, 18, 439, 42, 45, 274, 361, 508, 454, 361, 681, 20, 17, 21, 18, 439, 41, 495,
-				631, 1780, 495, 267, 1155, 1154, 272, 681, 20, 17, 21, 18, 439, 34, 872, 1194, 231, 1635, 1194, 266,
-				1635, 681, 20, 17, 21, 18, 439, 33, 6, 127, 541, 87, 623, 876, 127, 6, 826, 315, 57, 366, 1500, 259,
-				251, 1302, 259, 1394, 366, 1679, 1394, 495, 1679, 254, 213, 323, 324, 197, 254, 213, 323, 324, 831, 169,
-				197, 113, 181, 197, 1907, 1907, 234, 809, 87, 205, 495, 287, 495, 127, 427, 87, 377, 1670, 495, 183,
-				171, 427, 631, 1907, 1670, 1792, 197, 423, 197, 1907, 1792, 495, 1907, 1907, 1194, 254, 213, 323, 324,
-				426, 1907, 255, 213, 323, 324, 192, 530, 1194, 1907, 1907, 423, 1907, 423, 89, 717, 1907, 1907, 1150,
-				1774, 1012, 259, 127, 1907, 1907, 1580, 507, 1679, 1907, 192, 548, 193, 1838, 1907, 259, 1907, 1907,
-				1907, 1413, 1907, 1679, 1532, 1774, 1907, 254, 213, 323, 324, 255, 213, 323, 324, 255, 213, 323, 324,
-				1907, 1907, 1907, 1907, 1907, 1907, 561, 1753, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907,
-				1907, 1907, 1907, 1907, 1907, 1907, 1907, 1842, 1907, 0, 326, 673, 0, 20, 179, 0, 1, 2133, 0, 1, 2144,
-				0 };
-	}
-
-	public final static char baseAction[] = BaseAction.baseAction;
-
-	@Override
-	public final int baseAction(int index) {
-		return baseAction[index];
-	}
-
-	public final static char lhs[] = baseAction;
-
-	@Override
-	public final int lhs(int index) {
-		return lhs[index];
-	}
-
-	public interface TermCheck {
-		public final static byte termCheck[] = { 0, 0, 1, 2, 3, 4, 0, 6, 7, 8, 9, 10, 11, 12, 13, 0, 15, 16, 17, 18, 19,
-				20, 21, 22, 23, 0, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 0, 0, 40, 41, 42, 43, 44, 45, 46,
-				47, 48, 49, 50, 51, 0, 53, 54, 55, 0, 1, 0, 3, 0, 5, 6, 7, 8, 9, 10, 11, 0, 0, 2, 2, 0, 4, 0, 19, 0, 38,
-				64, 65, 66, 67, 14, 14, 16, 17, 0, 1, 2, 33, 34, 35, 36, 37, 56, 57, 40, 41, 42, 43, 44, 45, 46, 47, 48,
-				49, 50, 51, 52, 53, 54, 55, 0, 1, 0, 3, 60, 5, 6, 7, 8, 9, 10, 11, 0, 1, 0, 3, 0, 61, 0, 19, 6, 7, 8, 9,
-				10, 11, 64, 65, 66, 67, 70, 71, 76, 33, 34, 35, 36, 37, 74, 0, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
-				50, 51, 52, 53, 54, 55, 0, 1, 0, 3, 60, 5, 6, 7, 8, 9, 10, 11, 0, 1, 0, 0, 1, 0, 3, 19, 6, 7, 8, 9, 10,
-				11, 64, 65, 66, 67, 70, 71, 0, 33, 34, 35, 36, 37, 0, 24, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
-				51, 52, 53, 54, 55, 0, 1, 0, 3, 60, 59, 6, 7, 8, 9, 10, 11, 0, 0, 0, 2, 14, 5, 5, 19, 6, 7, 8, 9, 10,
-				11, 0, 14, 0, 1, 2, 5, 0, 33, 34, 35, 36, 37, 77, 78, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
-				39, 53, 54, 55, 0, 1, 2, 3, 4, 5, 0, 61, 38, 39, 0, 5, 12, 13, 58, 15, 16, 17, 18, 19, 20, 21, 22, 23,
-				14, 25, 26, 27, 28, 29, 30, 31, 32, 0, 0, 1, 2, 3, 4, 5, 68, 0, 1, 0, 3, 39, 12, 13, 5, 15, 16, 17, 18,
-				19, 20, 21, 22, 23, 58, 25, 26, 27, 28, 29, 30, 31, 32, 0, 1, 2, 0, 61, 5, 0, 1, 2, 3, 4, 5, 0, 0, 14,
-				39, 0, 4, 12, 13, 4, 15, 16, 17, 18, 58, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 39, 0, 0,
-				1, 2, 0, 4, 6, 7, 8, 9, 10, 11, 0, 0, 0, 14, 12, 13, 52, 19, 6, 7, 8, 9, 10, 11, 0, 1, 15, 3, 0, 68, 59,
-				33, 34, 35, 36, 37, 62, 63, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 0, 1, 2, 3, 4, 5, 0, 1, 0,
-				3, 0, 0, 12, 13, 0, 15, 16, 17, 18, 5, 20, 21, 22, 23, 0, 25, 26, 27, 28, 29, 30, 31, 32, 73, 0, 1, 2,
-				3, 4, 5, 0, 0, 0, 1, 4, 3, 12, 13, 0, 15, 16, 17, 18, 39, 20, 21, 22, 23, 58, 25, 26, 27, 28, 29, 30,
-				31, 32, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 38, 12, 13, 72, 15, 16, 17, 18, 0, 20, 21, 22, 23, 58, 25,
-				26, 27, 28, 29, 30, 31, 32, 0, 62, 63, 56, 57, 5, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 0, 12, 13, 0,
-				15, 16, 17, 18, 60, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 0, 1, 2, 3, 4, 0, 1, 2, 0, 4, 0,
-				52, 12, 13, 4, 15, 16, 17, 18, 14, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 0, 1, 2, 3, 4, 0,
-				74, 2, 0, 4, 0, 0, 12, 13, 4, 15, 16, 17, 18, 14, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 0,
-				1, 2, 3, 4, 0, 62, 63, 0, 1, 5, 3, 12, 13, 72, 15, 16, 17, 18, 0, 20, 21, 22, 23, 0, 25, 26, 27, 28, 29,
-				30, 31, 32, 0, 1, 2, 3, 4, 0, 15, 2, 0, 0, 38, 69, 12, 13, 5, 15, 16, 17, 18, 14, 20, 21, 22, 23, 0, 25,
-				26, 27, 28, 29, 30, 31, 32, 0, 1, 2, 3, 4, 0, 1, 2, 0, 56, 57, 0, 12, 13, 75, 15, 16, 17, 18, 0, 20, 21,
-				22, 23, 0, 25, 26, 27, 28, 29, 30, 31, 32, 0, 59, 2, 0, 4, 5, 6, 7, 8, 9, 10, 11, 0, 0, 14, 12, 13, 5,
-				75, 19, 0, 0, 0, 1, 0, 3, 0, 6, 7, 8, 9, 10, 11, 33, 34, 35, 36, 37, 0, 39, 19, 0, 56, 57, 24, 0, 24, 6,
-				7, 8, 9, 10, 11, 0, 33, 34, 35, 36, 37, 14, 19, 0, 0, 1, 52, 12, 13, 6, 7, 8, 9, 10, 11, 0, 33, 34, 35,
-				36, 37, 0, 19, 0, 56, 57, 0, 0, 0, 6, 7, 8, 9, 10, 11, 69, 33, 34, 35, 36, 37, 0, 19, 2, 89, 79, 80, 81,
-				82, 83, 84, 85, 86, 87, 88, 14, 33, 34, 35, 36, 37, 0, 0, 59, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 14, 0, 0,
-				0, 0, 14, 0, 0, 0, 0, 0, 24, 0, 73, 24, 69, 24, 0, 0, 68, 0, 24, 24, 24, 0, 0, 0, 0, 0, 0, 0, 0, 38, 38,
-				38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0 };
-	}
-
-	public final static byte termCheck[] = TermCheck.termCheck;
-
-	@Override
-	public final int termCheck(int index) {
-		return termCheck[index];
-	}
-
-	public interface TermAction {
-		public final static char termAction[] = { 0, 1907, 1918, 1739, 1919, 1654, 1, 2121, 2122, 2123, 2234, 387, 2235,
-				1646, 1625, 59, 1662, 1732, 1718, 1703, 2070, 1920, 1921, 1922, 1923, 253, 1482, 1448, 2224, 2225, 2226,
-				1609, 1323, 563, 2071, 2069, 2124, 2072, 2068, 54, 88, 2075, 2080, 2079, 2077, 2078, 2076, 2081, 2082,
-				2074, 2083, 2084, 2085, 182, 1251, 1185, 1085, 1907, 1, 183, 1, 286, 191, 1, 1, 1, 1, 1, 1, 32, 265,
-				1784, 1496, 62, 1, 61, 1, 70, 739, 1469, 1458, 1426, 455, 1225, 597, 1933, 1934, 1, 2133, 1481, 1, 1, 1,
-				1, 1, 695, 706, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 191, 1, 1, 1, 1907, 1, 1907, 1, 2103, 190, 1, 1, 1,
-				1, 1, 1, 1907, 1918, 1907, 1919, 63, 450, 60, 1, 2121, 2122, 2123, 2234, 387, 2235, 1469, 1458, 1426,
-				455, 1396, 1383, 437, 1, 1, 1, 1, 1, 1291, 1907, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 190, 1, 1, 1, 1907,
-				1, 1, 1, 2103, 191, 1, 1, 1, 1, 1, 1, 1907, 2145, 248, 1907, 1918, 72, 1919, 1, 2121, 2122, 2123, 2234,
-				387, 2235, 1469, 1458, 1426, 455, 1396, 1383, 1907, 1, 1, 1, 1, 1, 1907, 1193, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 191, 1, 1, 1, 1907, 1918, 1907, 1919, 2103, 2165, 2121, 2122, 2123, 2234, 387, 2235, 1907,
-				1, 249, 1496, 1054, 1911, 1913, 2070, 1, 1, 1, 1, 1, 1, 1907, 597, 1, 2133, 1481, 1913, 1907, 2071,
-				2069, 2124, 2072, 2068, 498, 1526, 2075, 2080, 2079, 2077, 2078, 2076, 2081, 2082, 2074, 2083, 2084,
-				2085, 1912, 1251, 1185, 1085, 1, 1918, 1739, 1919, 1587, 1911, 1, 628, 1775, 1912, 292, 90, 1646, 1625,
-				1910, 1662, 1732, 1718, 1703, 652, 1920, 1921, 1922, 1923, 1106, 1482, 1448, 2224, 2225, 2226, 1609,
-				1323, 563, 1907, 1907, 1918, 1739, 1919, 1617, 1911, 1126, 185, 3149, 1907, 3149, 90, 1646, 1625, 1913,
-				1662, 1732, 1718, 1703, 1033, 1920, 1921, 1922, 1923, 1910, 1482, 1448, 2224, 2225, 2226, 1609, 1323,
-				563, 1, 1901, 1224, 1907, 1095, 1913, 1, 1918, 1739, 1919, 1654, 29, 1907, 1, 597, 1912, 48, 253, 1646,
-				1625, 1690, 1662, 1732, 1718, 1703, 1910, 1920, 1921, 1922, 1923, 3031, 1482, 1448, 2224, 2225, 2226,
-				1609, 1323, 563, 1912, 129, 262, 2133, 1224, 51, 1, 2121, 2122, 2123, 2234, 387, 2235, 68, 64, 250, 597,
-				1373, 1275, 29, 2070, 1, 1, 1, 1, 1, 1, 184, 3150, 1350, 3150, 1907, 991, 2165, 2071, 2069, 2124, 2072,
-				2068, 1682, 1671, 2075, 2080, 2079, 2077, 2078, 2076, 2081, 2082, 2074, 2083, 2084, 2085, 1907, 1918,
-				1739, 1919, 1654, 1911, 206, 3151, 1907, 3151, 66, 1907, 1646, 1625, 1, 1662, 1732, 1718, 1703, 1913,
-				1920, 1921, 1922, 1923, 1907, 1482, 1448, 2224, 2225, 2226, 1609, 1323, 563, 534, 1907, 1918, 1739,
-				1919, 1595, 1911, 50, 256, 208, 1918, 1690, 1919, 1646, 1625, 58, 1662, 1732, 1718, 1703, 1912, 1920,
-				1921, 1922, 1923, 1910, 1482, 1448, 2224, 2225, 2226, 1609, 1323, 563, 251, 1907, 1, 1, 1, 1, 2121,
-				2122, 2123, 2234, 387, 2235, 1554, 1, 1, 1308, 1, 1, 1, 1, 1907, 1, 1, 1, 1, 1910, 1, 1, 1, 1, 1, 1, 1,
-				1, 1907, 1682, 1671, 695, 706, 1915, 71, 252, 1907, 1918, 1739, 1919, 1654, 2121, 2122, 2123, 2234, 387,
-				2235, 1907, 1646, 1625, 1907, 1662, 1732, 1718, 1703, 2223, 1920, 1921, 1922, 1923, 3031, 1482, 1448,
-				2224, 2225, 2226, 1609, 1323, 563, 1, 1918, 1739, 1919, 1654, 268, 2133, 1224, 67, 253, 49, 1914, 1646,
-				1625, 1690, 1662, 1732, 1718, 1703, 597, 1920, 1921, 1922, 1923, 3031, 1482, 1448, 2224, 2225, 2226,
-				1609, 1323, 563, 1907, 1918, 1739, 1919, 1654, 268, 1291, 1496, 211, 253, 1907, 1907, 1646, 1625, 1065,
-				1662, 1732, 1718, 1703, 597, 1920, 1921, 1922, 1923, 3031, 1482, 1448, 2224, 2225, 2226, 1609, 1323,
-				563, 1907, 1918, 1739, 1919, 1654, 1907, 1682, 1671, 207, 552, 1917, 552, 1646, 1625, 1308, 1662, 1732,
-				1718, 1703, 57, 1920, 1921, 1922, 1923, 65, 1482, 1448, 2224, 2225, 2226, 1609, 1323, 563, 1907, 1918,
-				1746, 1919, 1654, 270, 1350, 1411, 1, 1, 1407, 1074, 1646, 1625, 1917, 1662, 1732, 1718, 1703, 597,
-				1920, 1921, 1922, 1923, 1907, 1482, 1448, 2224, 2225, 2226, 1609, 1323, 563, 1, 1918, 1739, 1919, 1654,
-				253, 2133, 1481, 1907, 695, 706, 1907, 1646, 1625, 1916, 1662, 1732, 1718, 1703, 56, 1920, 1921, 1922,
-				1923, 1907, 1482, 1448, 2224, 2225, 2226, 1609, 1323, 563, 20, 2164, 1898, 53, 1898, 1898, 179, 179,
-				179, 179, 179, 179, 285, 1907, 1898, 1373, 1275, 425, 1916, 179, 1907, 130, 1907, 1918, 42, 1919, 55,
-				2121, 2122, 2123, 2234, 387, 2235, 179, 179, 179, 179, 179, 1907, 1898, 2070, 131, 695, 706, 3031, 271,
-				1199, 2121, 2122, 2123, 2234, 387, 2235, 52, 2071, 2069, 2124, 2072, 2068, 597, 2070, 132, 1, 1904, 425,
-				1373, 1275, 2121, 2122, 2123, 2234, 387, 2235, 69, 2071, 2069, 2124, 2072, 2068, 1907, 2070, 133, 695,
-				706, 201, 1907, 1907, 2121, 2122, 2123, 2234, 387, 2235, 970, 2071, 2069, 2124, 2072, 2068, 222, 2070,
-				1701, 1894, 949, 928, 907, 886, 865, 823, 844, 802, 781, 760, 597, 2071, 2069, 2124, 2072, 2068, 326,
-				1907, 2165, 1907, 1907, 220, 1907, 1198, 30, 30, 207, 189, 189, 189, 1895, 1907, 1907, 1907, 1907, 597,
-				1907, 1907, 1907, 1907, 1907, 1137, 1907, 534, 1245, 576, 1333, 1907, 1907, 1158, 1907, 185, 184, 206,
-				1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 467, 1936, 2928 };
-	}
-
-	public final static char termAction[] = TermAction.termAction;
-
-	@Override
-	public final int termAction(int index) {
-		return termAction[index];
-	}
-
-	public interface Asb {
-		public final static char asb[] = { 0, 403, 1, 149, 105, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
-				149, 67, 10, 87, 84, 91, 89, 97, 95, 99, 98, 101, 100, 73, 149, 10, 368, 368, 432, 149, 286, 286, 329,
-				10, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
-				149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 286, 286, 109, 116, 333, 140, 335, 284, 283, 301, 3,
-				313, 136, 313, 136, 136, 313, 136, 313, 30, 237, 84, 84, 89, 89, 89, 89, 87, 87, 95, 91, 91, 98, 97, 65,
-				100, 99, 138, 228, 138, 329, 333, 143, 109, 53, 173, 286, 371, 338, 173, 136, 368, 368, 136, 368, 149,
-				228, 114, 333, 321, 53, 109, 172, 140, 286, 327, 30, 285, 340, 109, 173, 138, 198, 138, 231, 114, 321,
-				321, 149, 149, 109, 173, 335, 290, 289, 333, 340, 286, 138, 198, 231, 231, 233, 298, 321, 53, 109, 109,
-				286, 371, 338, 327, 198, 228, 60, 198, 231, 233, 427, 233, 228, 112, 430, 368, 149, 297, 53, 321, 340,
-				198, 62, 233, 228, 149, 368, 67, 116, 109, 368, 149, 321, 286, 285, 228, 293, 149, 292, 168, 333, 228,
-				109, 369, 62, 149, 168 };
-	}
-
-	public final static char asb[] = Asb.asb;
-
-	@Override
-	public final int asb(int index) {
-		return asb[index];
-	}
-
-	public interface Asr {
-		public final static byte asr[] = { 0, 89, 0, 5, 68, 38, 58, 39, 75, 14, 18, 20, 21, 22, 23, 2, 16, 17, 15, 4,
-				12, 13, 25, 26, 27, 28, 29, 30, 31, 32, 1, 3, 53, 54, 55, 48, 40, 45, 43, 44, 42, 41, 46, 47, 49, 50,
-				51, 37, 34, 19, 33, 36, 35, 6, 7, 8, 10, 9, 11, 0, 75, 5, 4, 1, 2, 68, 0, 14, 2, 61, 76, 16, 17, 69, 79,
-				80, 81, 82, 83, 85, 84, 86, 87, 88, 4, 62, 63, 12, 13, 57, 56, 64, 65, 66, 67, 70, 71, 15, 72, 73, 74,
-				52, 75, 77, 78, 68, 39, 89, 38, 58, 5, 0, 5, 52, 14, 61, 16, 17, 15, 4, 12, 13, 25, 26, 18, 30, 31, 32,
-				2, 20, 21, 22, 23, 27, 28, 29, 1, 3, 24, 0, 58, 5, 19, 6, 7, 8, 9, 10, 11, 20, 21, 22, 23, 27, 28, 29,
-				3, 16, 17, 15, 12, 13, 25, 26, 18, 30, 31, 32, 4, 2, 1, 0, 19, 58, 5, 16, 17, 15, 4, 12, 13, 25, 26, 18,
-				30, 31, 32, 2, 1, 3, 20, 21, 22, 23, 27, 28, 29, 0, 33, 40, 6, 41, 53, 34, 42, 35, 43, 44, 36, 7, 45,
-				46, 19, 54, 37, 55, 47, 48, 8, 49, 50, 51, 1, 3, 9, 10, 11, 60, 5, 52, 0, 1, 3, 5, 52, 38, 0, 7, 19, 37,
-				8, 36, 35, 34, 6, 33, 9, 10, 11, 61, 76, 16, 17, 15, 12, 13, 62, 63, 56, 57, 64, 65, 66, 67, 70, 71, 72,
-				73, 74, 77, 78, 69, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 4, 2, 14, 38, 39, 5, 0, 2, 39, 14, 68, 75,
-				5, 38, 0, 69, 14, 61, 0, 48, 40, 45, 43, 44, 42, 41, 46, 47, 49, 50, 51, 68, 75, 37, 34, 19, 33, 36, 35,
-				6, 7, 8, 9, 10, 11, 38, 1, 5, 39, 2, 14, 4, 0, 4, 2, 14, 39, 5, 33, 40, 6, 41, 53, 34, 42, 35, 43, 44,
-				36, 7, 45, 46, 19, 54, 37, 55, 47, 48, 8, 49, 50, 51, 9, 10, 11, 59, 3, 1, 0, 4, 33, 40, 6, 41, 53, 34,
-				42, 35, 43, 44, 36, 7, 45, 46, 19, 54, 37, 55, 47, 48, 8, 49, 50, 51, 1, 3, 9, 10, 11, 59, 0, 18, 20,
-				21, 22, 23, 1, 3, 2, 16, 17, 15, 4, 12, 13, 25, 26, 27, 28, 29, 30, 31, 32, 60, 0, 5, 38, 52, 69, 0, 5,
-				39, 18, 20, 21, 22, 23, 1, 3, 2, 16, 17, 15, 4, 12, 13, 25, 26, 27, 28, 29, 30, 31, 32, 0 };
-	}
-
-	public final static byte asr[] = Asr.asr;
-
-	@Override
-	public final int asr(int index) {
-		return asr[index];
-	}
-
-	public interface Nasb {
-		public final static byte nasb[] = { 0, 100, 37, 28, 37, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 37, 103,
-				37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 28, 103, 21, 21, 121, 104, 78, 78, 85, 1, 28, 28, 28, 28,
-				28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 104, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
-				78, 78, 42, 47, 13, 40, 84, 51, 51, 58, 9, 59, 19, 59, 69, 69, 59, 68, 59, 53, 37, 37, 37, 37, 37, 37,
-				37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 48, 66, 37, 89, 37, 44, 42, 107, 41, 78, 95, 77, 41, 7, 7,
-				7, 7, 7, 28, 23, 66, 37, 75, 107, 42, 41, 124, 78, 62, 30, 37, 97, 42, 41, 38, 66, 37, 66, 26, 75, 66,
-				28, 28, 42, 41, 61, 51, 51, 13, 97, 78, 37, 109, 66, 7, 82, 11, 66, 107, 42, 42, 78, 95, 77, 71, 66, 23,
-				16, 113, 7, 82, 37, 37, 23, 25, 37, 7, 28, 80, 107, 124, 117, 109, 64, 82, 23, 28, 7, 93, 27, 42, 7, 28,
-				124, 78, 78, 23, 17, 28, 37, 64, 13, 23, 42, 37, 64, 28, 73 };
-	}
-
-	public final static byte nasb[] = Nasb.nasb;
-
-	@Override
-	public final int nasb(int index) {
-		return nasb[index];
-	}
-
-	public interface Nasr {
-		public final static char nasr[] = { 0, 80, 78, 77, 67, 76, 75, 1, 0, 103, 0, 100, 0, 29, 52, 0, 11, 71, 0, 91,
-				0, 72, 0, 41, 0, 88, 11, 54, 5, 0, 80, 79, 78, 77, 67, 76, 75, 0, 92, 0, 11, 5, 21, 0, 5, 11, 0, 5, 54,
-				49, 0, 28, 0, 67, 62, 63, 64, 65, 55, 30, 0, 26, 46, 45, 37, 35, 11, 0, 94, 68, 0, 46, 45, 37, 35, 29,
-				0, 11, 26, 0, 102, 0, 61, 0, 26, 45, 46, 11, 0, 46, 45, 29, 0, 98, 0, 29, 52, 11, 27, 0, 11, 89, 0, 51,
-				11, 48, 0, 58, 0, 82, 11, 51, 0, 11, 51, 69, 0, 95, 11, 27, 0, 11, 90, 0, 22, 0 };
-	}
-
-	public final static char nasr[] = Nasr.nasr;
-
-	@Override
-	public final int nasr(int index) {
-		return nasr[index];
-	}
-
-	public interface TerminalIndex {
-		public final static char terminalIndex[] = { 0, 85, 2, 86, 9, 87, 48, 64, 76, 96, 97, 98, 10, 11, 1, 8, 6, 7,
-				68, 69, 81, 82, 83, 84, 3, 12, 13, 93, 94, 95, 100, 101, 102, 44, 55, 60, 63, 72, 42, 90, 47, 52, 56,
-				61, 62, 66, 67, 74, 75, 78, 79, 80, 91, 54, 70, 73, 16, 17, 89, 30, 107, 4, 14, 15, 18, 19, 20, 21, 29,
-				31, 22, 23, 24, 25, 26, 92, 5, 27, 28, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 108, 45, 46, 49, 50, 51,
-				53, 57, 58, 59, 65, 71, 77, 88, 99, 103, 104, 105, 106 };
-	}
-
-	public final static char terminalIndex[] = TerminalIndex.terminalIndex;
-
-	@Override
-	public final int terminalIndex(int index) {
-		return terminalIndex[index];
-	}
-
-	public interface NonterminalIndex {
-		public final static char nonterminalIndex[] = { 0, 114, 0, 0, 0, 116, 120, 121, 122, 123, 124, 0, 125, 126, 127,
-				128, 129, 130, 131, 0, 132, 110, 142, 0, 0, 0, 111, 135, 163, 0, 141, 0, 0, 0, 159, 161, 0, 162, 0, 0,
-				0, 112, 0, 134, 172, 173, 174, 0, 115, 119, 150, 154, 160, 169, 0, 144, 0, 164, 167, 168, 171, 0, 145,
-				146, 147, 148, 149, 151, 0, 153, 158, 113, 117, 118, 133, 136, 137, 138, 139, 140, 143, 0, 152, 156, 0,
-				0, 157, 166, 176, 109, 0, 0, 0, 155, 0, 165, 170, 175, 0, 177, 178, 0, 179, 180, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
-
-	@Override
-	public final int nonterminalIndex(int index) {
-		return nonterminalIndex[index];
-	}
-
-	public interface ScopePrefix {
-		public final static char scopePrefix[] = { 108, 139, 118, 47, 57, 147, 12, 174, 21, 75, 93, 63, 28, 71, 40, 129,
-				199, 203, 40, 40, 183, 40, 1, 1, 1, 32, 35, 80, 103, 35, 207, 6, 133, 190, 190, 165, 125, 153, 153, 153,
-				153, 153, 83, 83, 83 };
-	}
-
-	public final static char scopePrefix[] = ScopePrefix.scopePrefix;
-
-	@Override
-	public final int scopePrefix(int index) {
-		return scopePrefix[index];
-	}
-
-	public interface ScopeSuffix {
-		public final static char scopeSuffix[] = { 116, 116, 116, 4, 4, 116, 18, 180, 26, 4, 26, 68, 26, 4, 4, 127, 26,
-				4, 44, 68, 187, 53, 4, 4, 4, 26, 38, 4, 26, 106, 26, 9, 136, 193, 196, 168, 127, 155, 157, 159, 161,
-				163, 90, 85, 98 };
-	}
-
-	public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
-
-	@Override
-	public final int scopeSuffix(int index) {
-		return scopeSuffix[index];
-	}
-
-	public interface ScopeLhs {
-		public final static char scopeLhs[] = { 64, 62, 64, 28, 28, 62, 49, 111, 47, 28, 40, 28, 47, 28, 28, 69, 5, 5,
-				28, 28, 19, 28, 103, 102, 101, 45, 60, 28, 37, 50, 3, 88, 69, 7, 5, 112, 69, 79, 78, 77, 76, 75, 40, 38,
-				40 };
-	}
-
-	public final static char scopeLhs[] = ScopeLhs.scopeLhs;
-
-	@Override
-	public final int scopeLhs(int index) {
-		return scopeLhs[index];
-	}
-
-	public interface ScopeLa {
-		public final static byte scopeLa[] = { 52, 52, 52, 58, 58, 52, 52, 95, 39, 58, 39, 20, 39, 58, 58, 75, 39, 58,
-				4, 20, 68, 19, 58, 58, 58, 39, 2, 58, 39, 1, 39, 69, 1, 39, 39, 101, 75, 1, 53, 54, 54, 48, 2, 2, 2 };
-	}
-
-	public final static byte scopeLa[] = ScopeLa.scopeLa;
-
-	@Override
-	public final int scopeLa(int index) {
-		return scopeLa[index];
-	}
-
-	public interface ScopeStateSet {
-		public final static byte scopeStateSet[] = { 25, 25, 25, 29, 29, 25, 19, -1, 33, 29, 9, 29, 33, 29, 29, 5, 40,
-				40, 29, 29, 74, 29, 17, 1, 3, 33, 35, 29, 9, 11, 40, 101, 5, 46, 40, -1, 5, 26, 26, 26, 26, 26, 9, 9,
-				9 };
-	}
-
-	public final static byte scopeStateSet[] = ScopeStateSet.scopeStateSet;
-
-	@Override
-	public final int scopeStateSet(int index) {
-		return scopeStateSet[index];
-	}
-
-	public interface ScopeRhs {
-		public final static char scopeRhs[] = { 0, 150, 14, 0, 110, 0, 206, 118, 0, 31, 149, 0, 168, 204, 118, 24, 161,
-				0, 112, 0, 0, 164, 118, 2, 152, 0, 111, 0, 164, 118, 2, 0, 167, 2, 0, 159, 118, 0, 172, 0, 194, 118, 14,
-				0, 9, 110, 0, 127, 19, 194, 118, 14, 0, 69, 132, 110, 0, 127, 194, 118, 19, 14, 0, 194, 118, 19, 14, 0,
-				132, 110, 0, 127, 19, 14, 0, 127, 194, 118, 14, 0, 127, 14, 0, 144, 0, 2, 0, 165, 111, 0, 2, 111, 0,
-				164, 118, 2, 144, 0, 2, 0, 164, 111, 0, 157, 2, 0, 159, 0, 168, 192, 118, 24, 108, 201, 53, 0, 112, 0,
-				168, 192, 118, 24, 201, 53, 0, 158, 0, 113, 0, 200, 118, 158, 0, 118, 158, 0, 155, 113, 0, 188, 118, 24,
-				199, 108, 198, 174, 0, 188, 118, 24, 198, 174, 0, 187, 0, 148, 0, 147, 0, 146, 0, 145, 0, 144, 0, 214,
-				94, 0, 77, 2, 115, 111, 113, 0, 214, 133, 155, 2, 98, 0, 53, 0, 0, 155, 78, 125, 0, 29, 132, 0, 180, 2,
-				0, 111, 121, 0, 111, 119, 0, 197, 2, 112, 0, 155, 14, 112, 0, 155, 2, 0 };
-	}
-
-	public final static char scopeRhs[] = ScopeRhs.scopeRhs;
-
-	@Override
-	public final int scopeRhs(int index) {
-		return scopeRhs[index];
-	}
-
-	public interface ScopeState {
-		public final static char scopeState[] = { 0, 1412, 0, 392, 0, 1772, 1774, 1749, 0, 1605, 1302, 1407, 1481, 1332,
-				1224, 1194, 0, 387, 0, 576, 467, 400, 1146, 1098, 0, 1156, 495, 366, 0, 1410, 1257, 1155, 1154, 1302,
-				1500, 1224, 1194, 1496, 1670, 0, 1732, 1718, 1703, 1609, 1323, 563, 1617, 1595, 1587, 1098, 1291, 498,
-				1308, 534, 1396, 1383, 1350, 706, 695, 1469, 1458, 1426, 455, 1690, 1682, 1671, 1373, 1275, 1662, 1654,
-				1646, 1625, 1482, 1448, 1158, 1126, 1106, 576, 1074, 1054, 1033, 1012, 717, 991, 673, 652, 597, 970,
-				949, 928, 907, 886, 865, 844, 823, 802, 781, 760, 366, 739, 631, 467, 400, 0 };
-	}
-
-	public final static char scopeState[] = ScopeState.scopeState;
-
-	@Override
-	public final int scopeState(int index) {
-		return scopeState[index];
-	}
-
-	public interface InSymb {
-		public final static char inSymb[] = { 0, 0, 196, 118, 181, 32, 31, 30, 18, 26, 25, 13, 12, 4, 15, 17, 16, 112,
-				2, 116, 115, 119, 117, 121, 120, 123, 122, 125, 124, 113, 38, 2, 76, 61, 2, 14, 180, 155, 158, 118, 13,
-				12, 63, 62, 4, 67, 66, 65, 64, 56, 57, 15, 71, 70, 73, 72, 78, 77, 74, 88, 87, 86, 84, 85, 83, 82, 81,
-				80, 79, 69, 180, 197, 155, 133, 118, 14, 2, 153, 152, 182, 10, 183, 174, 184, 55, 54, 185, 53, 186, 187,
-				108, 115, 115, 117, 117, 117, 117, 116, 116, 120, 119, 119, 122, 121, 155, 124, 123, 133, 24, 161, 159,
-				136, 19, 127, 118, 4, 167, 118, 2, 14, 198, 175, 175, 201, 175, 68, 118, 24, 136, 4, 118, 127, 194, 165,
-				164, 134, 118, 166, 118, 150, 4, 108, 24, 108, 24, 118, 4, 136, 194, 19, 127, 4, 2, 142, 144, 118, 38,
-				164, 199, 118, 24, 118, 204, 118, 136, 118, 127, 127, 157, 118, 2, 159, 24, 188, 158, 189, 118, 192,
-				108, 193, 168, 38, 206, 61, 14, 207, 118, 165, 118, 118, 118, 192, 168, 69, 38, 148, 69, 150, 61, 14,
-				165, 164, 202, 188, 200, 68, 157, 2, 118, 168, 150, 38, 38, 68, 159 };
-	}
-
-	public final static char inSymb[] = InSymb.inSymb;
-
-	@Override
-	public final int inSymb(int index) {
-		return inSymb[index];
-	}
-
-	public interface Name {
-		public final static String name[] = { "", "[", "(", "{", ".", "->", "++", "--", "&", "*", "+", "-", "~", "!",
-				"/", "%", ">>", "<<", "<", ">", "<=", ">=", "==", "!=", "^", "|", "&&", "||", "?", ":", "...", "=",
-				"*=", "/=", "%=", "+=", "-=", ">>=", "<<=", "&=", "^=", "|=", ",", "$empty", "auto", "break", "case",
-				"char", "const", "continue", "default", "do", "double", "else", "enum", "extern", "float", "for",
-				"goto", "if", "inline", "int", "long", "register", "restrict", "return", "short", "signed", "sizeof",
-				"static", "struct", "switch", "typedef", "union", "unsigned", "void", "volatile", "while", "_Bool",
-				"_Complex", "_Imaginary", "integer", "floating", "charconst", "stringlit", "identifier", "Completion",
-				"EndOfCompletion", "Invalid", "RightBracket", "RightParen", "RightBrace", "SemiColon", "MYTHREAD",
-				"THREADS", "UPC_MAX_BLOCKSIZE", "relaxed", "shared", "strict", "upc_barrier", "upc_localsizeof",
-				"upc_blocksizeof", "upc_elemsizeof", "upc_notify", "upc_fence", "upc_wait", "upc_forall", "ERROR_TOKEN",
-				"EOF_TOKEN", "no_sizeof_type_id_start", "]", ")", "}", ";", "identifier_token", "expression",
-				"postfix_expression", "member_name", "type_id", "initializer_list", "unary_expression",
-				"cast_expression", "multiplicative_expression", "additive_expression", "shift_expression",
-				"relational_expression", "equality_expression", "and_expression", "exclusive_or_expression",
-				"inclusive_or_expression", "logical_and_expression", "logical_or_expression", "assignment_expression",
-				"expression_list_actual", "constant_expression", "declaration_specifiers",
-				"simple_declaration_specifiers", "struct_or_union_declaration_sp" + "ecifiers",
-				"elaborated_declaration_specifi" + "ers", "enum_declaration_specifiers",
-				"typdef_name_declaration_specif" + "iers", "no_type_declaration_specifier", "type_qualifier",
-				"no_type_declaration_specifiers", "simple_type_specifier", "struct_or_union_specifier",
-				"elaborated_specifier", "enum_specifier", "type_name_specifier", "initializer", "declarator",
-				"struct_or_union", "struct_declaration_list", "struct_declaration", "specifier_qualifier_list",
-				"struct_declarator_list", "complete_struct_declarator", "enumerator_list", "enumerator",
-				"direct_declarator", "pointer_seq", "array_direct_declarator", "basic_direct_declarator",
-				"array_modifier", "parameter_type_list", "identifier_list", "array_modifier_type_qualifiers",
-				"type_qualifier_list", "parameter_list", "parameter_declaration", "complete_parameter_declarator",
-				"abstract_declarator", "direct_abstract_declarator", "basic_direct_abstract_declarat" + "or",
-				"array_direct_abstract_declarat" + "or", "initializer_seq", "designated_initializer", "designation",
-				"designator_list", "designator", "layout_qualifier" };
-	}
-
-	public final static String name[] = Name.name;
-
-	@Override
-	public final String name(int index) {
-		return name[index];
-	}
-
-	public final static int ERROR_SYMBOL = 60, SCOPE_UBOUND = 44, SCOPE_SIZE = 45, MAX_NAME_LENGTH = 38;
-
-	@Override
-	public final int getErrorSymbol() {
-		return ERROR_SYMBOL;
-	}
-
-	@Override
-	public final int getScopeUbound() {
-		return SCOPE_UBOUND;
-	}
-
-	@Override
-	public final int getScopeSize() {
-		return SCOPE_SIZE;
-	}
-
-	@Override
-	public final int getMaxNameLength() {
-		return MAX_NAME_LENGTH;
-	}
-
-	public final static int NUM_STATES = 214, NT_OFFSET = 107, LA_STATE_OFFSET = 2272, MAX_LA = 2, NUM_RULES = 365,
-			NUM_NONTERMINALS = 131, NUM_SYMBOLS = 238, SEGMENT_SIZE = 8192, START_STATE = 1700, IDENTIFIER_SYMBOL = 0,
-			EOFT_SYMBOL = 89, EOLT_SYMBOL = 89, ACCEPT_ACTION = 1894, ERROR_ACTION = 1907;
-
-	public final static boolean BACKTRACK = true;
-
-	@Override
-	public final int getNumStates() {
-		return NUM_STATES;
-	}
-
-	@Override
-	public final int getNtOffset() {
-		return NT_OFFSET;
-	}
-
-	@Override
-	public final int getLaStateOffset() {
-		return LA_STATE_OFFSET;
-	}
-
-	@Override
-	public final int getMaxLa() {
-		return MAX_LA;
-	}
-
-	@Override
-	public final int getNumRules() {
-		return NUM_RULES;
-	}
-
-	@Override
-	public final int getNumNonterminals() {
-		return NUM_NONTERMINALS;
-	}
-
-	@Override
-	public final int getNumSymbols() {
-		return NUM_SYMBOLS;
-	}
-
-	@Override
-	public final int getSegmentSize() {
-		return SEGMENT_SIZE;
-	}
-
-	@Override
-	public final int getStartState() {
-		return START_STATE;
-	}
-
-	@Override
-	public final int getStartSymbol() {
-		return lhs[0];
-	}
-
-	public final int getIdentifierSymbol() {
-		return IDENTIFIER_SYMBOL;
-	}
-
-	@Override
-	public final int getEoftSymbol() {
-		return EOFT_SYMBOL;
-	}
-
-	@Override
-	public final int getEoltSymbol() {
-		return EOLT_SYMBOL;
-	}
-
-	@Override
-	public final int getAcceptAction() {
-		return ACCEPT_ACTION;
-	}
-
-	@Override
-	public final int getErrorAction() {
-		return ERROR_ACTION;
-	}
-
-	@Override
-	public final boolean isValidForParser() {
-		return isValidForParser;
-	}
-
-	@Override
-	public final boolean getBacktrack() {
-		return BACKTRACK;
-	}
-
-	@Override
-	public final int originalState(int state) {
-		return -baseCheck[state];
-	}
-
-	@Override
-	public final int asi(int state) {
-		return asb[originalState(state)];
-	}
-
-	@Override
-	public final int nasi(int state) {
-		return nasb[originalState(state)];
-	}
-
-	@Override
-	public final int inSymbol(int state) {
-		return inSymb[originalState(state)];
-	}
-
-	@Override
-	public final int ntAction(int state, int sym) {
-		return baseAction[state + sym];
-	}
-
-	@Override
-	public final int tAction(int state, int sym) {
-		int i = baseAction[state], k = i + sym;
-		return termAction[termCheck[k] == sym ? k : i];
-	}
-
-	@Override
-	public final int lookAhead(int la_state, int sym) {
-		int k = la_state + sym;
-		return termAction[termCheck[k] == sym ? k : la_state];
-	}
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParsersym.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParsersym.java
deleted file mode 100644
index 49e0551..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParsersym.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2010 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.parser.upc;
-
-public interface UPCSizeofExpressionParsersym {
-	public final static int TK_auto = 33, TK_break = 90, TK_case = 91, TK_char = 40, TK_const = 6, TK_continue = 92,
-			TK_default = 93, TK_do = 94, TK_double = 41, TK_else = 95, TK_enum = 53, TK_extern = 34, TK_float = 42,
-			TK_for = 96, TK_goto = 97, TK_if = 98, TK_inline = 35, TK_int = 43, TK_long = 44, TK_register = 36,
-			TK_restrict = 7, TK_return = 99, TK_short = 45, TK_signed = 46, TK_sizeof = 18, TK_static = 19,
-			TK_struct = 54, TK_switch = 100, TK_typedef = 37, TK_union = 55, TK_unsigned = 47, TK_void = 48,
-			TK_volatile = 8, TK_while = 101, TK__Bool = 49, TK__Complex = 50, TK__Imaginary = 51, TK_integer = 20,
-			TK_floating = 21, TK_charconst = 22, TK_stringlit = 23, TK_identifier = 1, TK_Completion = 3,
-			TK_EndOfCompletion = 5, TK_Invalid = 102, TK_LeftBracket = 14, TK_LeftParen = 2, TK_LeftBrace = 24,
-			TK_Dot = 61, TK_Arrow = 76, TK_PlusPlus = 16, TK_MinusMinus = 17, TK_And = 15, TK_Star = 4, TK_Plus = 12,
-			TK_Minus = 13, TK_Tilde = 25, TK_Bang = 26, TK_Slash = 62, TK_Percent = 63, TK_RightShift = 56,
-			TK_LeftShift = 57, TK_LT = 64, TK_GT = 65, TK_LE = 66, TK_GE = 67, TK_EQ = 70, TK_NE = 71, TK_Caret = 72,
-			TK_Or = 73, TK_AndAnd = 74, TK_OrOr = 77, TK_Question = 78, TK_Colon = 68, TK_DotDotDot = 59,
-			TK_Assign = 69, TK_StarAssign = 79, TK_SlashAssign = 80, TK_PercentAssign = 81, TK_PlusAssign = 82,
-			TK_MinusAssign = 83, TK_RightShiftAssign = 84, TK_LeftShiftAssign = 85, TK_AndAssign = 86,
-			TK_CaretAssign = 87, TK_OrAssign = 88, TK_Comma = 38, TK_RightBracket = 58, TK_RightParen = 39,
-			TK_RightBrace = 52, TK_SemiColon = 75, TK_MYTHREAD = 27, TK_THREADS = 28, TK_UPC_MAX_BLOCKSIZE = 29,
-			TK_relaxed = 9, TK_shared = 10, TK_strict = 11, TK_upc_barrier = 103, TK_upc_localsizeof = 30,
-			TK_upc_blocksizeof = 31, TK_upc_elemsizeof = 32, TK_upc_notify = 104, TK_upc_fence = 105, TK_upc_wait = 106,
-			TK_upc_forall = 107, TK_ERROR_TOKEN = 60, TK_EOF_TOKEN = 89;
-
-	public final static String orderedTerminalSymbols[] = { "", "identifier", "LeftParen", "Completion", "Star",
-			"EndOfCompletion", "const", "restrict", "volatile", "relaxed", "shared", "strict", "Plus", "Minus",
-			"LeftBracket", "And", "PlusPlus", "MinusMinus", "sizeof", "static", "integer", "floating", "charconst",
-			"stringlit", "LeftBrace", "Tilde", "Bang", "MYTHREAD", "THREADS", "UPC_MAX_BLOCKSIZE", "upc_localsizeof",
-			"upc_blocksizeof", "upc_elemsizeof", "auto", "extern", "inline", "register", "typedef", "Comma",
-			"RightParen", "char", "double", "float", "int", "long", "short", "signed", "unsigned", "void", "_Bool",
-			"_Complex", "_Imaginary", "RightBrace", "enum", "struct", "union", "RightShift", "LeftShift",
-			"RightBracket", "DotDotDot", "ERROR_TOKEN", "Dot", "Slash", "Percent", "LT", "GT", "LE", "GE", "Colon",
-			"Assign", "EQ", "NE", "Caret", "Or", "AndAnd", "SemiColon", "Arrow", "OrOr", "Question", "StarAssign",
-			"SlashAssign", "PercentAssign", "PlusAssign", "MinusAssign", "RightShiftAssign", "LeftShiftAssign",
-			"AndAssign", "CaretAssign", "OrAssign", "EOF_TOKEN", "break", "case", "continue", "default", "do", "else",
-			"for", "goto", "if", "return", "switch", "while", "Invalid", "upc_barrier", "upc_notify", "upc_fence",
-			"upc_wait", "upc_forall" };
-
-	public final static boolean isValidForParser = true;
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTCompositeTypeSpecifier.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTCompositeTypeSpecifier.java
deleted file mode 100644
index 354feaa..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTCompositeTypeSpecifier.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2013 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.parser.upc.ast;
-
-import org.eclipse.cdt.core.dom.ast.ASTVisitor;
-import org.eclipse.cdt.core.dom.ast.IASTDeclaration;
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-import org.eclipse.cdt.core.dom.ast.IASTName;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTCompositeTypeSpecifier;
-import org.eclipse.cdt.internal.core.dom.parser.c.CASTCompositeTypeSpecifier;
-
-@SuppressWarnings("restriction")
-public class UPCASTCompositeTypeSpecifier extends CASTCompositeTypeSpecifier implements IUPCASTCompositeTypeSpecifier {
-
-	private int referenceType;
-	private int sharedQualifier;
-	private IASTExpression blockSizeExpression;
-
-	public UPCASTCompositeTypeSpecifier() {
-	}
-
-	public UPCASTCompositeTypeSpecifier(int key, IASTName name) {
-		super(key, name);
-	}
-
-	public UPCASTCompositeTypeSpecifier(int key, IASTName name, IASTExpression blockSizeExpression) {
-		super(key, name);
-		setBlockSizeExpression(blockSizeExpression);
-	}
-
-	@Override
-	public UPCASTCompositeTypeSpecifier copy() {
-		return copy(CopyStyle.withoutLocations);
-	}
-
-	@Override
-	public UPCASTCompositeTypeSpecifier copy(CopyStyle style) {
-		UPCASTCompositeTypeSpecifier copy = new UPCASTCompositeTypeSpecifier();
-		copy.referenceType = referenceType;
-		copy.sharedQualifier = sharedQualifier;
-		copy.setBlockSizeExpression(blockSizeExpression == null ? null : blockSizeExpression.copy(style));
-		return copy(copy, style);
-	}
-
-	@Override
-	public IASTExpression getBlockSizeExpression() {
-		return blockSizeExpression;
-	}
-
-	@Override
-	public int getReferenceType() {
-		return referenceType;
-	}
-
-	@Override
-	public int getSharedQualifier() {
-		return sharedQualifier;
-	}
-
-	@Override
-	public void setBlockSizeExpression(IASTExpression expr) {
-		this.blockSizeExpression = expr;
-		if (expr != null) {
-			expr.setParent(this);
-			expr.setPropertyInParent(BLOCK_SIZE_EXPRESSION);
-		}
-
-	}
-
-	@Override
-	public void setReferenceType(int referenceType) {
-		this.referenceType = referenceType;
-	}
-
-	@Override
-	public void setSharedQualifier(int shared) {
-		this.sharedQualifier = shared;
-	}
-
-	@Override
-	public boolean accept(ASTVisitor action) {
-		if (action.shouldVisitDeclSpecifiers) {
-			switch (action.visit(this)) {
-			case ASTVisitor.PROCESS_ABORT:
-				return false;
-			case ASTVisitor.PROCESS_SKIP:
-				return true;
-			default:
-				break;
-			}
-		}
-		if (getName() != null)
-			if (!getName().accept(action))
-				return false;
-		if (blockSizeExpression != null)
-			if (!blockSizeExpression.accept(action))
-				return false;
-
-		IASTDeclaration[] decls = getMembers();
-		for (int i = 0; i < decls.length; i++)
-			if (!decls[i].accept(action))
-				return false;
-
-		if (action.shouldVisitDeclSpecifiers) {
-			switch (action.leave(this)) {
-			case ASTVisitor.PROCESS_ABORT:
-				return false;
-			case ASTVisitor.PROCESS_SKIP:
-				return true;
-			default:
-				break;
-			}
-		}
-		return true;
-	}
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTElaboratedTypeSpecifier.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTElaboratedTypeSpecifier.java
deleted file mode 100644
index 73fba20..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTElaboratedTypeSpecifier.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2013 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.parser.upc.ast;
-
-import org.eclipse.cdt.core.dom.ast.ASTVisitor;
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-import org.eclipse.cdt.core.dom.ast.IASTName;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTElaboratedTypeSpecifier;
-import org.eclipse.cdt.internal.core.dom.parser.c.CASTElaboratedTypeSpecifier;
-
-@SuppressWarnings("restriction")
-public class UPCASTElaboratedTypeSpecifier extends CASTElaboratedTypeSpecifier
-		implements IUPCASTElaboratedTypeSpecifier {
-
-	private int referenceType;
-	private int sharedQualifier;
-	private IASTExpression blockSizeExpression;
-
-	public UPCASTElaboratedTypeSpecifier() {
-	}
-
-	public UPCASTElaboratedTypeSpecifier(int kind, IASTName name) {
-		super(kind, name);
-	}
-
-	public UPCASTElaboratedTypeSpecifier(int kind, IASTName name, IASTExpression blockSizeExpression) {
-		super(kind, name);
-		setBlockSizeExpression(blockSizeExpression);
-	}
-
-	@Override
-	public UPCASTElaboratedTypeSpecifier copy() {
-		return copy(CopyStyle.withoutLocations);
-	}
-
-	@Override
-	public UPCASTElaboratedTypeSpecifier copy(CopyStyle style) {
-		IASTName name = getName();
-		UPCASTElaboratedTypeSpecifier copy = new UPCASTElaboratedTypeSpecifier(getKind(),
-				name == null ? null : name.copy(style));
-		copy.referenceType = referenceType;
-		copy.sharedQualifier = sharedQualifier;
-		copy.setBlockSizeExpression(blockSizeExpression == null ? null : blockSizeExpression.copy(style));
-		return copy(copy, style);
-	}
-
-	@Override
-	public IASTExpression getBlockSizeExpression() {
-		return blockSizeExpression;
-	}
-
-	@Override
-	public int getReferenceType() {
-		return referenceType;
-	}
-
-	@Override
-	public int getSharedQualifier() {
-		return sharedQualifier;
-	}
-
-	@Override
-	public void setBlockSizeExpression(IASTExpression expr) {
-		this.blockSizeExpression = expr;
-		if (expr != null) {
-			expr.setParent(this);
-			expr.setPropertyInParent(BLOCK_SIZE_EXPRESSION);
-		}
-	}
-
-	@Override
-	public void setReferenceType(int referenceType) {
-		this.referenceType = referenceType;
-	}
-
-	@Override
-	public void setSharedQualifier(int shared) {
-		this.sharedQualifier = shared;
-	}
-
-	@Override
-	public boolean accept(ASTVisitor action) {
-		if (action.shouldVisitDeclSpecifiers) {
-			switch (action.visit(this)) {
-			case ASTVisitor.PROCESS_ABORT:
-				return false;
-			case ASTVisitor.PROCESS_SKIP:
-				return true;
-			default:
-				break;
-			}
-		}
-		if (getName() != null)
-			if (!getName().accept(action))
-				return false;
-		if (blockSizeExpression != null)
-			if (!blockSizeExpression.accept(action))
-				return false;
-
-		if (action.shouldVisitDeclSpecifiers) {
-			switch (action.leave(this)) {
-			case ASTVisitor.PROCESS_ABORT:
-				return false;
-			case ASTVisitor.PROCESS_SKIP:
-				return true;
-			default:
-				break;
-			}
-		}
-		return true;
-	}
-
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTEnumerationSpecifier.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTEnumerationSpecifier.java
deleted file mode 100644
index 6a29d09..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTEnumerationSpecifier.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2013 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.parser.upc.ast;
-
-import org.eclipse.cdt.core.dom.ast.ASTVisitor;
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-import org.eclipse.cdt.core.dom.ast.IASTName;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTEnumerationSpecifier;
-import org.eclipse.cdt.internal.core.dom.parser.c.CASTEnumerationSpecifier;
-
-@SuppressWarnings("restriction")
-public class UPCASTEnumerationSpecifier extends CASTEnumerationSpecifier implements IUPCASTEnumerationSpecifier {
-
-	private int referenceType;
-	private int sharedQualifier;
-	private IASTExpression blockSizeExpression;
-
-	public UPCASTEnumerationSpecifier() {
-	}
-
-	public UPCASTEnumerationSpecifier(IASTName name) {
-		super(name);
-	}
-
-	public UPCASTEnumerationSpecifier(IASTName name, IASTExpression blockSizeExpression) {
-		super(name);
-		setBlockSizeExpression(blockSizeExpression);
-	}
-
-	@Override
-	public UPCASTEnumerationSpecifier copy() {
-		return copy(CopyStyle.withoutLocations);
-	}
-
-	@Override
-	public UPCASTEnumerationSpecifier copy(CopyStyle style) {
-		UPCASTEnumerationSpecifier copy = new UPCASTEnumerationSpecifier();
-		copy.referenceType = referenceType;
-		copy.sharedQualifier = sharedQualifier;
-		copy.setBlockSizeExpression(blockSizeExpression == null ? null : blockSizeExpression.copy(style));
-		return copy(copy, style);
-	}
-
-	@Override
-	public IASTExpression getBlockSizeExpression() {
-		return blockSizeExpression;
-	}
-
-	@Override
-	public int getReferenceType() {
-		return referenceType;
-	}
-
-	@Override
-	public int getSharedQualifier() {
-		return sharedQualifier;
-	}
-
-	@Override
-	public void setBlockSizeExpression(IASTExpression expr) {
-		this.blockSizeExpression = expr;
-		if (expr != null) {
-			expr.setParent(this);
-			expr.setPropertyInParent(BLOCK_SIZE_EXPRESSION);
-		}
-	}
-
-	@Override
-	public void setReferenceType(int referenceType) {
-		this.referenceType = referenceType;
-	}
-
-	@Override
-	public void setSharedQualifier(int shared) {
-		this.sharedQualifier = shared;
-	}
-
-	@Override
-	public boolean accept(ASTVisitor action) {
-		if (action.shouldVisitDeclSpecifiers) {
-			switch (action.visit(this)) {
-			case ASTVisitor.PROCESS_ABORT:
-				return false;
-			case ASTVisitor.PROCESS_SKIP:
-				return true;
-			default:
-				break;
-			}
-		}
-		if (getName() != null)
-			if (!getName().accept(action))
-				return false;
-		if (blockSizeExpression != null)
-			if (!blockSizeExpression.accept(action))
-				return false;
-
-		IASTEnumerator[] etors = getEnumerators();
-		for (int i = 0; i < etors.length; i++) {
-			if (!etors[i].accept(action))
-				return false;
-		}
-		if (action.shouldVisitDeclSpecifiers) {
-			switch (action.leave(this)) {
-			case ASTVisitor.PROCESS_ABORT:
-				return false;
-			case ASTVisitor.PROCESS_SKIP:
-				return true;
-			default:
-				break;
-			}
-		}
-		return true;
-	}
-
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTForallStatement.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTForallStatement.java
deleted file mode 100644
index 6471b7e..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTForallStatement.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2014 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *      IBM Corporation - initial API and implementation
- *      Sergey Prigogin (Google)
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.parser.upc.ast;
-
-import org.eclipse.cdt.core.dom.ast.ASTVisitor;
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-import org.eclipse.cdt.core.dom.ast.IASTStatement;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTForallStatement;
-import org.eclipse.cdt.internal.core.dom.parser.c.CASTForStatement;
-
-@SuppressWarnings("restriction")
-public class UPCASTForallStatement extends CASTForStatement implements IUPCASTForallStatement {
-	private IASTExpression affinity;
-	private boolean affinityContinue;
-
-	public UPCASTForallStatement() {
-	}
-
-	public UPCASTForallStatement(IASTStatement init, IASTExpression condition, IASTExpression iterationExpression,
-			IASTStatement body, IASTExpression affinity) {
-		super(init, condition, iterationExpression, body);
-		setAffinityExpression(affinity);
-	}
-
-	@Override
-	public UPCASTForallStatement copy() {
-		return copy(CopyStyle.withoutLocations);
-	}
-
-	@Override
-	public UPCASTForallStatement copy(CopyStyle style) {
-		UPCASTForallStatement copy = new UPCASTForallStatement();
-		copy.setAffinityExpression(affinity == null ? null : affinity.copy(style));
-		return copy(copy, style);
-	}
-
-	@Override
-	public boolean isAffinityContinue() {
-		return affinityContinue;
-	}
-
-	@Override
-	public IASTExpression getAffinityExpresiion() {
-		return affinity;
-	}
-
-	@Override
-	public void setAffinityExpression(IASTExpression affinity) {
-		if (affinity != null)
-			this.affinityContinue = false;
-		this.affinity = affinity;
-		if (affinity != null) {
-			affinity.setParent(this);
-			affinity.setPropertyInParent(AFFINITY);
-		}
-	}
-
-	@Override
-	public void setAffinityContinue(boolean affinityContinue) {
-		if (affinityContinue)
-			this.affinity = null;
-		this.affinityContinue = affinityContinue;
-	}
-
-	@Override
-	public boolean accept(ASTVisitor visitor) {
-		if (visitor.shouldVisitStatements) {
-			switch (visitor.visit(this)) {
-			case ASTVisitor.PROCESS_ABORT:
-				return false;
-			case ASTVisitor.PROCESS_SKIP:
-				return true;
-			}
-		}
-
-		if (!acceptByAttributeSpecifiers(visitor))
-			return false;
-
-		IASTStatement initializer = super.getInitializerStatement();
-		if (initializer != null && !initializer.accept(visitor))
-			return false;
-
-		IASTExpression condition = super.getConditionExpression();
-		if (condition != null && !condition.accept(visitor))
-			return false;
-
-		IASTExpression iteration = super.getIterationExpression();
-		if (iteration != null && !iteration.accept(visitor))
-			return false;
-
-		if (affinity != null && !affinity.accept(visitor))
-			return false;
-
-		IASTStatement body = super.getBody();
-		if (body != null && !body.accept(visitor))
-			return false;
-
-		if (visitor.shouldVisitStatements) {
-			switch (visitor.leave(this)) {
-			case ASTVisitor.PROCESS_ABORT:
-				return false;
-			case ASTVisitor.PROCESS_SKIP:
-				return true;
-			}
-		}
-		return true;
-	}
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTKeywordExpression.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTKeywordExpression.java
deleted file mode 100644
index fe0d676..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTKeywordExpression.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2013 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.parser.upc.ast;
-
-import org.eclipse.cdt.core.dom.ast.ASTVisitor;
-import org.eclipse.cdt.core.dom.ast.IBasicType.Kind;
-import org.eclipse.cdt.core.dom.ast.IType;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTKeywordExpression;
-import org.eclipse.cdt.internal.core.dom.parser.ASTNode;
-import org.eclipse.cdt.internal.core.dom.parser.c.CBasicType;
-
-@SuppressWarnings("restriction")
-public class UPCASTKeywordExpression extends ASTNode implements IUPCASTKeywordExpression {
-
-	private int keywordKind;
-
-	public UPCASTKeywordExpression() {
-	}
-
-	public UPCASTKeywordExpression(int keywordKind) {
-		this.keywordKind = keywordKind;
-	}
-
-	@Override
-	public UPCASTKeywordExpression copy() {
-		return copy(CopyStyle.withoutLocations);
-	}
-
-	@Override
-	public UPCASTKeywordExpression copy(CopyStyle style) {
-		UPCASTKeywordExpression copy = new UPCASTKeywordExpression(keywordKind);
-		return copy(copy, style);
-	}
-
-	@Override
-	public int getKeywordKind() {
-		return keywordKind;
-	}
-
-	@Override
-	public void setKeywordKind(int kind) {
-		this.keywordKind = kind;
-
-	}
-
-	@Override
-	public IType getExpressionType() {
-		return new CBasicType(Kind.eInt, 0, this);
-	}
-
-	@Override
-	public boolean isLValue() {
-		return false;
-	}
-
-	@Override
-	public ValueCategory getValueCategory() {
-		return ValueCategory.PRVALUE;
-	}
-
-	@Override
-	public boolean accept(ASTVisitor visitor) {
-		if (visitor.shouldVisitExpressions) {
-			switch (visitor.visit(this)) {
-			case ASTVisitor.PROCESS_ABORT:
-				return false;
-			case ASTVisitor.PROCESS_SKIP:
-				return true;
-			}
-		}
-		if (visitor.shouldVisitExpressions) {
-			switch (visitor.leave(this)) {
-			case ASTVisitor.PROCESS_ABORT:
-				return false;
-			case ASTVisitor.PROCESS_SKIP:
-				return true;
-			}
-		}
-		return true;
-	}
-
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTLayoutQualifier.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTLayoutQualifier.java
deleted file mode 100644
index 78c1968..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTLayoutQualifier.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2013 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.parser.upc.ast;
-
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTLayoutQualifier;
-import org.eclipse.cdt.internal.core.dom.parser.ASTNode;
-
-@SuppressWarnings("restriction")
-public class UPCASTLayoutQualifier extends ASTNode implements IUPCASTLayoutQualifier {
-
-	private boolean isPure;
-	private boolean isIndefinite;
-	private IASTExpression blockSizeExpression;
-
-	@Override
-	public UPCASTLayoutQualifier copy() {
-		return copy(CopyStyle.withoutLocations);
-	}
-
-	@Override
-	public UPCASTLayoutQualifier copy(CopyStyle style) {
-		UPCASTLayoutQualifier copy = new UPCASTLayoutQualifier();
-		copy.isPure = isPure;
-		copy.isIndefinite = isIndefinite;
-		copy.setBlockSizeExpression(blockSizeExpression == null ? null : blockSizeExpression.copy(style));
-		return copy(copy, style);
-	}
-
-	@Override
-	public IASTExpression getBlockSizeExpression() {
-		return blockSizeExpression;
-	}
-
-	@Override
-	public boolean isIndefiniteBlockAllocation() {
-		return isIndefinite;
-	}
-
-	@Override
-	public boolean isPureBlockAllocation() {
-		return isPure;
-	}
-
-	@Override
-	public void setBlockSizeExpression(IASTExpression expr) {
-		this.blockSizeExpression = expr;
-	}
-
-	@Override
-	public void setIndefiniteBlockAllocation(boolean allocation) {
-		this.isIndefinite = allocation;
-	}
-
-	@Override
-	public void setPureBlockAllocation(boolean allocation) {
-		this.isPure = allocation;
-	}
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTSimpleDeclSpecifier.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTSimpleDeclSpecifier.java
deleted file mode 100644
index 90c934a..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTSimpleDeclSpecifier.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2013 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.parser.upc.ast;
-
-import org.eclipse.cdt.core.dom.ast.ASTVisitor;
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSimpleDeclSpecifier;
-import org.eclipse.cdt.internal.core.dom.parser.c.CASTSimpleDeclSpecifier;
-
-@SuppressWarnings("restriction")
-public class UPCASTSimpleDeclSpecifier extends CASTSimpleDeclSpecifier implements IUPCASTSimpleDeclSpecifier {
-
-	private int referenceType;
-	private int sharedQualifier;
-	private IASTExpression blockSizeExpression;
-
-	public UPCASTSimpleDeclSpecifier() {
-	}
-
-	public UPCASTSimpleDeclSpecifier(IASTExpression blockSizeExpression) {
-		setBlockSizeExpression(blockSizeExpression);
-	}
-
-	@Override
-	public UPCASTSimpleDeclSpecifier copy() {
-		return copy(CopyStyle.withoutLocations);
-	}
-
-	@Override
-	public UPCASTSimpleDeclSpecifier copy(CopyStyle style) {
-		UPCASTSimpleDeclSpecifier copy = new UPCASTSimpleDeclSpecifier();
-		copy.referenceType = referenceType;
-		copy.sharedQualifier = sharedQualifier;
-		copy.setBlockSizeExpression(blockSizeExpression == null ? null : blockSizeExpression.copy(style));
-		return copy(copy, style);
-	}
-
-	@Override
-	public IASTExpression getBlockSizeExpression() {
-		return blockSizeExpression;
-	}
-
-	@Override
-	public int getReferenceType() {
-		return referenceType;
-	}
-
-	@Override
-	public int getSharedQualifier() {
-		return sharedQualifier;
-	}
-
-	@Override
-	public void setBlockSizeExpression(IASTExpression expr) {
-		this.blockSizeExpression = expr;
-		if (expr != null) {
-			expr.setParent(this);
-			expr.setPropertyInParent(BLOCK_SIZE_EXPRESSION);
-		}
-	}
-
-	@Override
-	public void setReferenceType(int referenceType) {
-		this.referenceType = referenceType;
-	}
-
-	@Override
-	public void setSharedQualifier(int shared) {
-		this.sharedQualifier = shared;
-	}
-
-	@Override
-	public boolean accept(ASTVisitor action) {
-		if (action.shouldVisitDeclSpecifiers) {
-			switch (action.visit(this)) {
-			case ASTVisitor.PROCESS_ABORT:
-				return false;
-			case ASTVisitor.PROCESS_SKIP:
-				return true;
-			default:
-				break;
-			}
-		}
-		if (blockSizeExpression != null)
-			if (!blockSizeExpression.accept(action))
-				return false;
-
-		if (action.shouldVisitDeclSpecifiers) {
-			switch (action.leave(this)) {
-			case ASTVisitor.PROCESS_ABORT:
-				return false;
-			case ASTVisitor.PROCESS_SKIP:
-				return true;
-			default:
-				break;
-			}
-		}
-		return true;
-	}
-
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTSynchronizationStatement.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTSynchronizationStatement.java
deleted file mode 100644
index b97fc33..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTSynchronizationStatement.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2014 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Sergey Prigogin (Google)
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.parser.upc.ast;
-
-import org.eclipse.cdt.core.dom.ast.ASTVisitor;
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSynchronizationStatement;
-import org.eclipse.cdt.internal.core.dom.parser.ASTAttributeOwner;
-
-@SuppressWarnings("restriction")
-public class UPCASTSynchronizationStatement extends ASTAttributeOwner implements IUPCASTSynchronizationStatement {
-	private int statmentKind;
-	private IASTExpression barrierExpression;
-
-	public UPCASTSynchronizationStatement() {
-	}
-
-	public UPCASTSynchronizationStatement(IASTExpression barrierExpression, int statmentKind) {
-		setBarrierExpression(barrierExpression);
-		this.statmentKind = statmentKind;
-	}
-
-	@Override
-	public UPCASTSynchronizationStatement copy() {
-		return copy(CopyStyle.withoutLocations);
-	}
-
-	@Override
-	public UPCASTSynchronizationStatement copy(CopyStyle style) {
-		UPCASTSynchronizationStatement copy = new UPCASTSynchronizationStatement();
-		copy.statmentKind = statmentKind;
-		copy.setBarrierExpression(barrierExpression == null ? null : barrierExpression.copy(style));
-		return copy(copy, style);
-	}
-
-	@Override
-	public IASTExpression getBarrierExpression() {
-		return barrierExpression;
-	}
-
-	@Override
-	public int getStatementKind() {
-		return statmentKind;
-	}
-
-	@Override
-	public void setBarrierExpression(IASTExpression expr) {
-		this.barrierExpression = expr;
-		if (expr != null) {
-			expr.setParent(this);
-			expr.setPropertyInParent(BARRIER_EXPRESSION);
-		}
-	}
-
-	@Override
-	public void setStatementKind(int kind) {
-		this.statmentKind = kind;
-	}
-
-	@Override
-	public boolean accept(ASTVisitor visitor) {
-		if (visitor.shouldVisitStatements) {
-			switch (visitor.visit(this)) {
-			case ASTVisitor.PROCESS_ABORT:
-				return false;
-			case ASTVisitor.PROCESS_SKIP:
-				return true;
-			}
-		}
-
-		if (!acceptByAttributeSpecifiers(visitor))
-			return false;
-		if (barrierExpression != null && !barrierExpression.accept(visitor))
-			return false;
-
-		if (visitor.shouldVisitStatements) {
-			switch (visitor.leave(this)) {
-			case ASTVisitor.PROCESS_ABORT:
-				return false;
-			case ASTVisitor.PROCESS_SKIP:
-				return true;
-			}
-		}
-		return true;
-	}
-}
\ No newline at end of file
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTTypeIdSizeofExpression.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTTypeIdSizeofExpression.java
deleted file mode 100644
index 70f523b..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTTypeIdSizeofExpression.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2013 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.parser.upc.ast;
-
-import org.eclipse.cdt.core.dom.ast.IASTTypeId;
-import org.eclipse.cdt.core.dom.ast.IASTTypeIdExpression;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTTypeIdSizeofExpression;
-import org.eclipse.cdt.internal.core.dom.parser.c.CASTTypeIdExpression;
-
-@SuppressWarnings("restriction")
-public class UPCASTTypeIdSizeofExpression extends CASTTypeIdExpression implements IUPCASTTypeIdSizeofExpression {
-	private int upcSizeofOperator;
-
-	public UPCASTTypeIdSizeofExpression() {
-		this(null);
-	}
-
-	public UPCASTTypeIdSizeofExpression(IASTTypeId typeId) {
-		super(IASTTypeIdExpression.op_sizeof, typeId);
-	}
-
-	public UPCASTTypeIdSizeofExpression(int upcSizeofOperator, IASTTypeId typeId) {
-		super(IASTTypeIdExpression.op_sizeof, typeId);
-		this.upcSizeofOperator = upcSizeofOperator;
-	}
-
-	@Override
-	public UPCASTTypeIdSizeofExpression copy() {
-		return copy(CopyStyle.withoutLocations);
-	}
-
-	@Override
-	public UPCASTTypeIdSizeofExpression copy(CopyStyle style) {
-		UPCASTTypeIdSizeofExpression copy = new UPCASTTypeIdSizeofExpression();
-		copy.setUPCSizeofOperator(upcSizeofOperator);
-		IASTTypeId typeId = getTypeId();
-		copy.setTypeId(typeId == null ? null : typeId.copy(style));
-		return copy(copy, style);
-	}
-
-	@Override
-	public int getUPCSizeofOperator() {
-		return upcSizeofOperator;
-	}
-
-	@Override
-	public void setUPCSizeofOperator(int upcSizeofOperator) {
-		this.upcSizeofOperator = upcSizeofOperator;
-	}
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTTypedefNameSpecifier.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTTypedefNameSpecifier.java
deleted file mode 100644
index 00063b0..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTTypedefNameSpecifier.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2013 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.parser.upc.ast;
-
-import org.eclipse.cdt.core.dom.ast.ASTVisitor;
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-import org.eclipse.cdt.core.dom.ast.IASTName;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTTypedefNameSpecifier;
-import org.eclipse.cdt.internal.core.dom.parser.c.CASTTypedefNameSpecifier;
-
-@SuppressWarnings("restriction")
-public class UPCASTTypedefNameSpecifier extends CASTTypedefNameSpecifier implements IUPCASTTypedefNameSpecifier {
-
-	private int referenceType;
-	private int sharedQualifier;
-	private IASTExpression blockSizeExpression;
-
-	public UPCASTTypedefNameSpecifier() {
-	}
-
-	public UPCASTTypedefNameSpecifier(IASTName name) {
-		super(name);
-	}
-
-	public UPCASTTypedefNameSpecifier(IASTName name, IASTExpression blockSizeExpression) {
-		super(name);
-		setBlockSizeExpression(blockSizeExpression);
-	}
-
-	@Override
-	public UPCASTTypedefNameSpecifier copy() {
-		return copy(CopyStyle.withoutLocations);
-	}
-
-	@Override
-	public UPCASTTypedefNameSpecifier copy(CopyStyle style) {
-		IASTName name = getName();
-		UPCASTTypedefNameSpecifier copy = new UPCASTTypedefNameSpecifier(name == null ? null : name.copy(style));
-		copy.referenceType = referenceType;
-		copy.sharedQualifier = sharedQualifier;
-		copy.setBlockSizeExpression(blockSizeExpression == null ? null : blockSizeExpression.copy(style));
-		return copy(copy, style);
-	}
-
-	@Override
-	public IASTExpression getBlockSizeExpression() {
-		return blockSizeExpression;
-	}
-
-	@Override
-	public int getReferenceType() {
-		return referenceType;
-	}
-
-	@Override
-	public int getSharedQualifier() {
-		return sharedQualifier;
-	}
-
-	@Override
-	public void setBlockSizeExpression(IASTExpression expr) {
-		this.blockSizeExpression = expr;
-		if (expr != null) {
-			expr.setParent(this);
-			expr.setPropertyInParent(BLOCK_SIZE_EXPRESSION);
-		}
-	}
-
-	@Override
-	public void setReferenceType(int referenceType) {
-		this.referenceType = referenceType;
-	}
-
-	@Override
-	public void setSharedQualifier(int shared) {
-		this.sharedQualifier = shared;
-	}
-
-	@Override
-	public boolean accept(ASTVisitor action) {
-		if (action.shouldVisitDeclSpecifiers) {
-			switch (action.visit(this)) {
-			case ASTVisitor.PROCESS_ABORT:
-				return false;
-			case ASTVisitor.PROCESS_SKIP:
-				return true;
-			default:
-				break;
-			}
-		}
-		if (getName() != null)
-			if (!getName().accept(action))
-				return false;
-		if (blockSizeExpression != null)
-			if (!blockSizeExpression.accept(action))
-				return false;
-
-		if (action.shouldVisitDeclSpecifiers) {
-			switch (action.leave(this)) {
-			case ASTVisitor.PROCESS_ABORT:
-				return false;
-			case ASTVisitor.PROCESS_SKIP:
-				return true;
-			default:
-				break;
-			}
-		}
-		return true;
-	}
-
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTUnarySizeofExpression.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTUnarySizeofExpression.java
deleted file mode 100644
index 6d84b97..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTUnarySizeofExpression.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2013 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.parser.upc.ast;
-
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTUnarySizeofExpression;
-import org.eclipse.cdt.internal.core.dom.parser.c.CASTUnaryExpression;
-
-@SuppressWarnings("restriction")
-public class UPCASTUnarySizeofExpression extends CASTUnaryExpression implements IUPCASTUnarySizeofExpression {
-
-	private int upcSizeofOperator;
-
-	public UPCASTUnarySizeofExpression() {
-		this(null);
-	}
-
-	public UPCASTUnarySizeofExpression(IASTExpression operand) {
-		super(IASTUnaryExpression.op_sizeof, operand);
-	}
-
-	public UPCASTUnarySizeofExpression(int upcSizeofOperator, IASTExpression operand) {
-		super(IASTUnaryExpression.op_sizeof, operand);
-		this.upcSizeofOperator = upcSizeofOperator;
-	}
-
-	@Override
-	public UPCASTUnarySizeofExpression copy() {
-		return copy(CopyStyle.withoutLocations);
-	}
-
-	@Override
-	public UPCASTUnarySizeofExpression copy(CopyStyle style) {
-		UPCASTUnarySizeofExpression copy = new UPCASTUnarySizeofExpression();
-		copy.setUPCSizeofOperator(upcSizeofOperator);
-		IASTExpression operand = getOperand();
-		copy.setOperand(operand == null ? null : operand.copy(style));
-		return copy(copy, style);
-	}
-
-	@Override
-	public int getUPCSizeofOperator() {
-		return upcSizeofOperator;
-	}
-
-	@Override
-	public void setUPCSizeofOperator(int upcSizeofOperator) {
-		this.upcSizeofOperator = upcSizeofOperator;
-	}
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/templates/default-templates.properties b/upc/org.eclipse.cdt.core.parser.upc/templates/default-templates.properties
deleted file mode 100644
index c82ff2b..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/templates/default-templates.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-
-forallLoop = upc_forall loop
-upcMaxBlocksize = UPC_MAX_BLOCKSIZE keyword
diff --git a/upc/org.eclipse.cdt.core.parser.upc/templates/default-templates.xml b/upc/org.eclipse.cdt.core.parser.upc/templates/default-templates.xml
deleted file mode 100644
index 3fae38d..0000000
--- a/upc/org.eclipse.cdt.core.parser.upc/templates/default-templates.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
--->
-
-<!-- NOTE TO TRANSLATOR:
-* This file should remain English as it produces compilable code. 
--->
-
-<templates>
-
-<template 
-	name="upc_forall" 
-	description="%forallLoop" 
-	context="org.eclipse.cdt.ui.text.templates.c" 
-	id="org.eclipse.cdt.ui.text.templates.c.upc_forall" 
-	enabled="true">upc_forall (${var} = 0; ${var} &lt; THREADS; ${var}++; ${var}) {
-	${line_selection}${cursor}
-}</template>
-
-<template
-	name="upc_max_blocksize"
-	description="%upcMaxBlocksize"
-	context="org.eclipse.cdt.ui.text.templates.c" 
-	id="org.eclipse.cdt.ui.text.templates.c.upc_max_blocksize" 
-	enabled="true">UPC_MAX_BLOCKSIZE</template>
-
-</templates>
-
-	
\ No newline at end of file
diff --git a/upc/org.eclipse.cdt.managedbuilder.bupc.ui/.classpath b/upc/org.eclipse.cdt.managedbuilder.bupc.ui/.classpath
deleted file mode 100644
index c4a519d..0000000
--- a/upc/org.eclipse.cdt.managedbuilder.bupc.ui/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry exported="true" kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/upc/org.eclipse.cdt.managedbuilder.bupc.ui/.project b/upc/org.eclipse.cdt.managedbuilder.bupc.ui/.project
deleted file mode 100644
index f2fdffd..0000000
--- a/upc/org.eclipse.cdt.managedbuilder.bupc.ui/.project
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.cdt.managedbuilder.bupc.ui</name>
-	<comment></comment>
-	<projects>
-		<project>org.eclipse.ptp.pldt.upc_mine</project>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/upc/org.eclipse.cdt.managedbuilder.bupc.ui/.settings/org.eclipse.jdt.core.prefs b/upc/org.eclipse.cdt.managedbuilder.bupc.ui/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 2b6ecff..0000000
--- a/upc/org.eclipse.cdt.managedbuilder.bupc.ui/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,464 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch, *.xtend
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.mainOnlyProjectHasTestOnlyDependency=error
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.APILeak=warning
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
-org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
-org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
-org.eclipse.jdt.core.formatter.align_with_spaces=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
-org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped=true
-org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=true
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
-org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
diff --git a/upc/org.eclipse.cdt.managedbuilder.bupc.ui/.settings/org.eclipse.jdt.launching.prefs b/upc/org.eclipse.cdt.managedbuilder.bupc.ui/.settings/org.eclipse.jdt.launching.prefs
deleted file mode 100644
index f8a131b..0000000
--- a/upc/org.eclipse.cdt.managedbuilder.bupc.ui/.settings/org.eclipse.jdt.launching.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.launching.PREF_COMPILER_COMPLIANCE_DOES_NOT_MATCH_JRE=warning
-org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=warning
diff --git a/upc/org.eclipse.cdt.managedbuilder.bupc.ui/.settings/org.eclipse.jdt.ui.prefs b/upc/org.eclipse.cdt.managedbuilder.bupc.ui/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index e445763..0000000
--- a/upc/org.eclipse.cdt.managedbuilder.bupc.ui/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,133 +0,0 @@
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_missing_override_annotations_interface_methods=true
-cleanup.add_serial_version_id=false
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_functional_interfaces=false
-cleanup.convert_to_enhanced_for_loop=false
-cleanup.correct_indentation=false
-cleanup.format_source_code=true
-cleanup.format_source_code_changes_only=false
-cleanup.insert_inferred_type_arguments=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=true
-cleanup.qualify_static_field_accesses_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=false
-cleanup.qualify_static_method_accesses_with_declaring_class=false
-cleanup.remove_private_constructors=true
-cleanup.remove_redundant_modifiers=false
-cleanup.remove_redundant_semicolons=true
-cleanup.remove_redundant_type_arguments=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=false
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_anonymous_class_creation=false
-cleanup.use_blocks=false
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_lambda=true
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup_profile=_CDT
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_CDT
-formatter_settings_version=14
-internal.default.compliance=user
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.ondemandthreshold=1000
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.staticondemandthreshold=1000
-org.eclipse.jdt.ui.text.custom_code_templates=
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_functional_interfaces=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.insert_inferred_type_arguments=false
-sp_cleanup.make_local_variable_final=true
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_redundant_modifiers=false
-sp_cleanup.remove_redundant_semicolons=true
-sp_cleanup.remove_redundant_type_arguments=true
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=true
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_anonymous_class_creation=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_lambda=true
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/upc/org.eclipse.cdt.managedbuilder.bupc.ui/.settings/org.eclipse.ltk.core.refactoring.prefs b/upc/org.eclipse.cdt.managedbuilder.bupc.ui/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100644
index 4594a54..0000000
--- a/upc/org.eclipse.cdt.managedbuilder.bupc.ui/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Tue May 26 16:43:18 EDT 2009
-eclipse.preferences.version=1
-org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
diff --git a/upc/org.eclipse.cdt.managedbuilder.bupc.ui/.settings/org.eclipse.pde.api.tools.prefs b/upc/org.eclipse.cdt.managedbuilder.bupc.ui/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index ec9fbf3..0000000
--- a/upc/org.eclipse.cdt.managedbuilder.bupc.ui/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,184 +0,0 @@
-ANNOTATION_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITH_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-API_USE_SCAN_FIELD_SEVERITY=Error
-API_USE_SCAN_METHOD_SEVERITY=Error
-API_USE_SCAN_TYPE_SEVERITY=Error
-CLASS_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERCLASS_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_CHANGED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENTS=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETERS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_ANNOTATION=Ignore
-INVALID_JAVADOC_TAG=Error
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Warning
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-MISSING_EE_DESCRIPTIONS=Warning
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-automatically_removed_unused_problem_filters=false
-changed_execution_env=Error
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-incompatible_api_component_version_report_major_without_breaking_change=Warning
-incompatible_api_component_version_report_minor_without_api_change=Warning
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
diff --git a/upc/org.eclipse.cdt.managedbuilder.bupc.ui/.settings/org.eclipse.pde.prefs b/upc/org.eclipse.cdt.managedbuilder.bupc.ui/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index d2dc703..0000000
--- a/upc/org.eclipse.cdt.managedbuilder.bupc.ui/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,35 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.build.bin.includes=1
-compilers.p.build.encodings=2
-compilers.p.build.java.compiler=2
-compilers.p.build.java.compliance=1
-compilers.p.build.missing.output=2
-compilers.p.build.output.library=1
-compilers.p.build.source.library=1
-compilers.p.build.src.includes=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=1
-compilers.p.missing-packages=2
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=2
-compilers.p.missing-version-require-bundle=2
-compilers.p.no-required-att=0
-compilers.p.no.automatic.module=1
-compilers.p.not-externalized-att=1
-compilers.p.service.component.without.lazyactivation=1
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/upc/org.eclipse.cdt.managedbuilder.bupc.ui/META-INF/MANIFEST.MF b/upc/org.eclipse.cdt.managedbuilder.bupc.ui/META-INF/MANIFEST.MF
deleted file mode 100644
index 5f2521a..0000000
--- a/upc/org.eclipse.cdt.managedbuilder.bupc.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,22 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Bundle-Name
-Bundle-SymbolicName: org.eclipse.cdt.managedbuilder.bupc.ui;singleton:=true
-Bundle-Version: 1.0.200.qualifier
-Bundle-ClassPath: org.eclipse.cdt.managedbuilder.bupc.ui
-Bundle-Activator: org.eclipse.cdt.managedbuilder.bupc.ui.UPCWizardsPlugin
-Require-Bundle: org.eclipse.cdt.ui,
- org.eclipse.cdt.core,
- org.eclipse.cdt.managedbuilder.core,
- org.eclipse.cdt.core.parser.upc,
- org.eclipse.ui,
- org.eclipse.core.runtime,
- org.eclipse.ui.editors,
- org.eclipse.core.resources
-Import-Package: org.eclipse.cdt.ui.wizards,
- org.eclipse.ui.wizards.newresource
-Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-Vendor: %Bundle-Vendor
-Bundle-Localization: plugin
-Automatic-Module-Name: org.eclipse.cdt.managedbuilder.bupc.ui
diff --git a/upc/org.eclipse.cdt.managedbuilder.bupc.ui/about.html b/upc/org.eclipse.cdt.managedbuilder.bupc.ui/about.html
deleted file mode 100644
index 164f781..0000000
--- a/upc/org.eclipse.cdt.managedbuilder.bupc.ui/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
-	<h2>About This Content</h2>
-
-	<p>November 30, 2017</p>
-	<h3>License</h3>
-
-	<p>
-		The Eclipse Foundation makes available all content in this plug-in
-		(&quot;Content&quot;). Unless otherwise indicated below, the Content
-		is provided to you under the terms and conditions of the Eclipse
-		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
-		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>
-		If you did not receive this Content directly from the Eclipse
-		Foundation, the Content is being redistributed by another party
-		(&quot;Redistributor&quot;) and different terms and conditions may
-		apply to your use of any object code in the Content. Check the
-		Redistributor's license that was provided with the Content. If no such
-		license exists, contact the Redistributor. Unless otherwise indicated
-		below, the terms and conditions of the EPL still apply to any source
-		code in the Content and such source code may be obtained at <a
-			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
-	</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/upc/org.eclipse.cdt.managedbuilder.bupc.ui/about.ini b/upc/org.eclipse.cdt.managedbuilder.bupc.ui/about.ini
deleted file mode 100644
index e07a7bb..0000000
--- a/upc/org.eclipse.cdt.managedbuilder.bupc.ui/about.ini
+++ /dev/null
@@ -1,24 +0,0 @@
-# about.ini
-# contains information about a feature
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in about.properties
-# This file does not need to be translated.
-
-# Property "aboutText" contains blurb for "About" dialog (translated)
-aboutText=%blurb
-
-# Property "windowImage" contains path to window icon (16x16)
-# needed for primary features only
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=cdt_logo_icon32.png
-
-# Property "aboutImage" contains path to product image (500x330 or 115x164)
-# needed for primary features only
-
-# Property "appName" contains name of the application (translated)
-# needed for primary features only
-
-# Property "welcomePerspective" contains the id of the perspective in which the
-# welcome page is to be opened.
-# optional
diff --git a/upc/org.eclipse.cdt.managedbuilder.bupc.ui/about.mappings b/upc/org.eclipse.cdt.managedbuilder.bupc.ui/about.mappings
deleted file mode 100644
index 936a803..0000000
--- a/upc/org.eclipse.cdt.managedbuilder.bupc.ui/about.mappings
+++ /dev/null
@@ -1,9 +0,0 @@
-# about.mappings
-# contains fill-ins for about.properties
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file does not need to be translated.
-
-# The following should contain the build version.
-# e.g. "0=20200106-1728"
-# This value will be added automatically via the build scripts
-0=${buildId}
diff --git a/upc/org.eclipse.cdt.managedbuilder.bupc.ui/about.properties b/upc/org.eclipse.cdt.managedbuilder.bupc.ui/about.properties
deleted file mode 100644
index b6925fa..0000000
--- a/upc/org.eclipse.cdt.managedbuilder.bupc.ui/about.properties
+++ /dev/null
@@ -1,32 +0,0 @@
-###############################################################################
-# Copyright (c) 2010, 2020 Contributors to the Eclipse Foundation
-#
-# See the NOTICE file(s) distributed with this work for additional
-# information regarding copyright ownership.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-###############################################################################
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-# NOTE TO TRANSLATOR: Please do not translate the featureVersion variable.
-
-
-blurb=C/C++ Berkeley UPC (Unified Parallel C) Toolchain Support\n\
-\n\
-Version: {featureVersion}\n\
-Build id: {0}\n\
-\n\
-Copyright (c) 2010, 2020 Contributors to the Eclipse Foundation
-\n\
-See the NOTICE file(s) distributed with this work for additional\n\
-information regarding copyright ownership.\n\
-\n\
-Visit http://www.eclipse.org/cdt
diff --git a/upc/org.eclipse.cdt.managedbuilder.bupc.ui/build.properties b/upc/org.eclipse.cdt.managedbuilder.bupc.ui/build.properties
deleted file mode 100644
index 386b370..0000000
--- a/upc/org.eclipse.cdt.managedbuilder.bupc.ui/build.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.xml,\
-               templates/,\
-               build.properties,\
-               about.html,\
-               plugin.properties,\
-               cdt_logo_icon32.png,\
-               about.ini,\
-               about.mappings,\
-               about.properties
-src.includes = about.html
diff --git a/upc/org.eclipse.cdt.managedbuilder.bupc.ui/cdt_logo_icon32.png b/upc/org.eclipse.cdt.managedbuilder.bupc.ui/cdt_logo_icon32.png
deleted file mode 100644
index 470ca81..0000000
--- a/upc/org.eclipse.cdt.managedbuilder.bupc.ui/cdt_logo_icon32.png
+++ /dev/null
Binary files differ
diff --git a/upc/org.eclipse.cdt.managedbuilder.bupc.ui/plugin.properties b/upc/org.eclipse.cdt.managedbuilder.bupc.ui/plugin.properties
deleted file mode 100644
index 451b1fd..0000000
--- a/upc/org.eclipse.cdt.managedbuilder.bupc.ui/plugin.properties
+++ /dev/null
@@ -1,79 +0,0 @@
-#Properties file for org.eclipse.cdt.managedbuilder.bupc.ui
-extension.name = UPC toolchain
-tool.compiler = Berkeley UPC Compiler
-
-optionCategory.compiler.general = General
-
-option.compiler.preprocess = Preprocess only (-E)
-option.compiler.debug = Debug
-option.compiler.opt = Generate optimized objects
-option.compiler.opt.exp = Enable experimental UPC translator optimizations
-
-optionCategory.compiler.upc = UPC options
-option.compiler.network = Network API
-enumeratedOptionValue.default = Default
-enumeratedOptionValue.mpi = MPI
-enumeratedOptionValue.udp = UDP
-enumeratedOptionValue.elan = ELAN
-enumeratedOptionValue.lapi = IBM LAPI
-enumeratedOptionValue.gm = Myrinet GM
-enumeratedOptionValue.smp = SMP
-enumeratedOptionValue.vapi = VAPI
-enumeratedOptionValue.ibv = OpenIB
-enumeratedOptionValue.sci = Dolphin SCI
-enumeratedOptionValue.shmem = SHMEM
-enumeratedOptionValue.portals = Cray XT Portals
-enumeratedOptionValue.dcmf = BlueGene/P DCMF
-option.compiler.sharedheap = -shared-heap=
-option.compiler.fixedthreads = -T=
-
-optionCategory.compiler.symbols = Symbols
-option.compiler.defsymbols = Defined symbols (-D)
-option.compiler.undefsymbols = Undefined symbols (-U)
-
-optionCategory.compiler.dirs = Directories
-option.compiler.incpath = Include paths (-I)
-
-optionCategory.compiler.advanced = Advanced options
-option.compiler.pthreads = -pthreads=
-
-optionCategory.compiler.misc = Miscellaneous
-option.compiler.other = Other options
-option.compiler.verbose = Verbose (-v)
-option.compiler.extraverbose = Extra verbose (-vv)
-
-inputType.upc = UPC sources
-outputType.obj = Object Files
-
-tool.linker = Berkeley UPC Linker
-
-optionCategory.linker.general = General
-option.linker.debug = Debug
-option.linker.strip = Strip the symbolic information from the final executable
-
-optionCategory.linker.upc = UPC options
-option.linker.network = Network API
-
-option.linker.sharedheap = -shared-heap=
-option.linker.fixedthreads = -T=
-
-optionCategory.linker.libs = Libraries
-option.linker.libs = Libraries (-l)
-option.linker.libpaths = Library search path (-L)
-
-optionCategory.linker.advanced = Advanced options
-option.linker.pthreads = -pthreads=
-option.linker.other = Other options
-
-outputType.exe = Executables
-toolChain.linux.name = Linux Berkeley UPC
-toolChain.macosx.name = MacOSX Berkeley UPC
-targetPlatform.name = Debug Platform
-
-configuration.debug.desc = Debug configuration
-configuration.debug.name = Debug
-configuration.release.desc = Release configuration
-configuration.release.name = Release
-
-Bundle-Vendor = Eclipse CDT
-Bundle-Name = Berkeley UPC Tool Chain
\ No newline at end of file
diff --git a/upc/org.eclipse.cdt.managedbuilder.bupc.ui/plugin.xml b/upc/org.eclipse.cdt.managedbuilder.bupc.ui/plugin.xml
deleted file mode 100644
index 0c2510e..0000000
--- a/upc/org.eclipse.cdt.managedbuilder.bupc.ui/plugin.xml
+++ /dev/null
@@ -1,742 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-<extension point="org.eclipse.cdt.core.templates">
-<template filterPattern=".*"
-	id="org.eclipse.cdt.core.templates.HelloWorldUPCProject"
-    location="templates/template.xml"
-    projectType="org.eclipse.cdt.build.core.buildArtefactType.exe">
-    </template>      
-</extension>
-
-<extension
-      id="org.eclipse.cdt.managedbuilder.bupc.ui.upcBuildDefinitions"
-      name="%extension.name"
-      point="org.eclipse.cdt.managedbuilder.core.buildDefinitions">
-      
-  <tool
-	command="upcc"
-	id = "org.eclipse.cdt.managedbuild.tool.bupc.compiler"
-	isAbstract="false"
-	name = "%tool.compiler"
-	natureFilter = "both"
-	outputFlag = "-o">
-	<supportedProperties>
-            <property id="org.eclipse.cdt.build.core.buildType">
-	            <value id="org.eclipse.cdt.build.core.buildType.debug"/>
-    	        <value id="org.eclipse.cdt.build.core.buildType.release"/>
-            </property>
-    </supportedProperties>
-	<optionCategory
-		owner="org.eclipse.cdt.managedbuild.tool.bupc.compiler"
-		id = "bupc.ui.optionCategory.compiler.gen"
-		name = "%optionCategory.compiler.general"/>
-   <option
-   		category="bupc.ui.optionCategory.compiler.gen"
-   		command="-E"
-   		id="bupc.ui.compiler.general.preprocess"
-   		isAbstract="false"
-   		name = "%option.compiler.preprocess"
-   		resourceFilter="project"
-   		valueType="boolean"
-   		defaultValue="false"/>
-   <option
-   		category="bupc.ui.optionCategory.compiler.gen"
-   		command="-g"
-   		id="bupc.ui.compiler.general.debug"
-   		isAbstract="false"
-   		name = "%option.compiler.debug"
-   		resourceFilter="project"
-   		valueType="boolean"
-   		defaultValue="false">
-   		<enablement 
-            type="CONTAINER_ATTRIBUTE" 
-            attribute="defaultValue" 
-            value="true"
-            extensionAdjustment="false">
-			<checkBuildProperty 
-				property="org.eclipse.cdt.build.core.buildType"
-				value="org.eclipse.cdt.build.core.buildType.debug"/>
-		</enablement>
-   	</option>
-	<option
-   		category="bupc.ui.optionCategory.compiler.gen"
-   		command="-O"
-   		id="bupc.ui.compiler.general.opt"
-   		isAbstract="false"
-   		name = "%option.compiler.opt"
-   		resourceFilter="project"
-   		valueType="boolean"
-   		defaultValue="false"/>
-   	<option
-   		category="bupc.ui.optionCategory.compiler.gen"
-   		command="-opt"
-   		id="bupc.ui.compiler.general.opt.exp"
-   		isAbstract="false"
-   		name = "%option.compiler.opt.exp"
-   		resourceFilter="project"
-   		valueType="boolean"
-   		defaultValue="false"/>
-   		
-   	<optionCategory
-		owner="org.eclipse.cdt.managedbuild.tool.bupc.compiler"
-		name="%optionCategory.compiler.upc"
-		id="bupc.ui.optionCategory.compiler.upc">
-	</optionCategory>
-	
-    <option
-	  	name="%option.compiler.network"
-	  	category="bupc.ui.optionCategory.compiler.upc"
-	  	id="bupc.ui.compiler.network"
-	  	valueType="enumerated">
-
-		  <enumeratedOptionValue
-		  		  name="%enumeratedOptionValue.default"
-				  isDefault="true"
-				  command=""
-				  id="bupc.ui.compiler.network.default">
-		  </enumeratedOptionValue>  	
-		  <enumeratedOptionValue
-		  		  name="%enumeratedOptionValue.mpi"
-				  isDefault="false"
-				  command="-network=mpi"
-				  id="bupc.ui.compiler.network.mpi">
-		  </enumeratedOptionValue>
-		  <enumeratedOptionValue
-				  name="%enumeratedOptionValue.udp"
-				  command="-network=udp"
-				  id="bupc.ui.compiler.network.udp">
-		  </enumeratedOptionValue>
-		  <enumeratedOptionValue
-				  name="%enumeratedOptionValue.elan"
-				  command="-network=elan"
-				  id="bupc.ui.compiler.network.elan">
-		  </enumeratedOptionValue>
-		  <enumeratedOptionValue
-				  name="%enumeratedOptionValue.lapi"
-				  command="-network=lapi"
-				  id="bupc.ui.compiler.network.lapi">
-		  </enumeratedOptionValue>
-		  <enumeratedOptionValue
-				  name="%enumeratedOptionValue.gm"
-				  command="-network=gm"
-				  id="bupc.ui.compiler.network.gm">
-		  </enumeratedOptionValue>
-		  <enumeratedOptionValue
-				  name="%enumeratedOptionValue.smp"
-				  command="-network=smp"
-				  id="bupc.ui.compiler.network.smp">
-		  </enumeratedOptionValue>
-		  <enumeratedOptionValue
-				  name="%enumeratedOptionValue.vapi"
-				  command="-network=vapi"
-				  id="bupc.ui.compiler.network.vapi">
-		  </enumeratedOptionValue>
-		  <enumeratedOptionValue
-				  name="%enumeratedOptionValue.ibv"
-				  command="-network=ibv"
-				  id="bupc.ui.compiler.network.ibv">
-		  </enumeratedOptionValue>
-		  <enumeratedOptionValue
-				  name="%enumeratedOptionValue.sci"
-				  command="-network=sci"
-				  id="bupc.ui.compiler.network.sci">
-		  </enumeratedOptionValue>
-		  <enumeratedOptionValue
-				  name="%enumeratedOptionValue.shmem"
-				  command="-network=shmem"
-				  id="bupc.ui.compiler.network.shmem">
-		  </enumeratedOptionValue>
-		  <enumeratedOptionValue
-				  name="%enumeratedOptionValue.portals"
-				  command="-network=portals"
-				  id="bupc.ui.compiler.network.portals">
-		  </enumeratedOptionValue>
-		  <enumeratedOptionValue
-				  name="%enumeratedOptionValue.dcmf"
-				  command="-network=dcmf"
-				  id="bupc.ui.compiler.network.dcmf">
-		  </enumeratedOptionValue>
-	</option>
-   	<option
-		category="bupc.ui.optionCategory.compiler.upc"
-		command="-shared-heap="
-		id="bupc.ui.compiler.upc.sharedheap"
-		isAbstract="false"
-		name="%option.compiler.sharedheap"
-		resourceFilter="project"
-		valueType="string"/>
-   	<option
-		category="bupc.ui.optionCategory.compiler.upc"
-		command="-T="
-		id="bupc.ui.compiler.upc.fixedthreads"
-		isAbstract="false"
-		name="%option.compiler.fixedthreads"
-		resourceFilter="project"
-		valueType="string"/>
-
-	<optionCategory
-		owner="org.eclipse.cdt.managedbuild.tool.bupc.compiler"
-		name="%optionCategory.compiler.symbols"
-		id="bupc.ui.optionCategory.compiler.symbols">
-	</optionCategory>
-   		<option
-			  name="%option.compiler.defsymbols"
-			  category="bupc.ui.optionCategory.compiler.symbols"
-			  command="-D"
-			  id="bupc.ui.compiler.def.symbol"
-			  valueType="definedSymbols">
-		  </option>
-		  <option
-			  name="%option.compiler.undefsymbols"
-			  category="bupc.ui.optionCategory.compiler.symbols"
-			  command="-U"
-			  id="bupc.ui.compiler.undef.symbol"
-			  valueType="undefDefinedSymbols">
-		  </option>
-	<optionCategory
-		owner="org.eclipse.cdt.managedbuild.tool.bupc.compiler"
-		name="%optionCategory.compiler.dirs"
-		id="bupc.ui.optionCategory.compiler.dirs">
-	</optionCategory>
-		  <option
-			  name="%option.compiler.incpath"
-			  category="bupc.ui.optionCategory.compiler.dirs"
-			  command="-I"
-			  id="bupc.ui.compiler.general.incpath"
-			  valueType="includePath"
-			  browseType="directory">
-		  </option>		
-	<optionCategory
-		owner="org.eclipse.cdt.managedbuild.tool.bupc.compiler"
-		id = "bupc.ui.optionCategory.compiler.advOptions"
-		name = "%optionCategory.compiler.advanced"/>
-			<option
-				category="bupc.ui.optionCategory.compiler.advOptions"
-				command="-pthreads="
-				id="bupc.ui.compiler.advOptions.pthread"
-				isAbstract="false"
-				name="%option.compiler.pthreads"
-				resourceFilter="project"
-				valueType="string"/>
-	<optionCategory
-		owner="org.eclipse.cdt.managedbuild.tool.bupc.compiler"
-		id = "bupc.ui.optionCategory.compiler.miscOptions"
-		name = "%optionCategory.compiler.misc"/>
-	<option
-	    defaultValue="-c"
-		category="bupc.ui.optionCategory.compiler.miscOptions"
-		command=""
-		id="bupc.ui.compiler.miscOptions.other"
-		isAbstract="false"
-		name="%option.compiler.other"
-		resourceFilter="project"
-		valueType="string"/>
-	<option
-		defaultValue="false"
-		name="%option.compiler.verbose"
-		category="bupc.ui.optionCategory.compiler.miscOptions"
-		command="-v"
-		id="bupc.ui.compiler.miscOptions.verbose"
-		valueType="boolean"/>
-	<option
-		defaultValue="false"
-		name="%option.compiler.extraverbose"
-		category="bupc.ui.optionCategory.compiler.miscOptions"
-		command="-vv"
-		id="bupc.ui.compiler.miscOptions.extraVerbose"
-		valueType="boolean"/>
-	<inputType
-		id="cdt.managedbuild.tool.bupc.compiler.input"						      					
-		multipleOfType ="false"
-	    dependencyContentType="org.eclipse.cdt.core.cHeader"
-		dependencyExtensions="h"      					
-		name = "%inputType.upc"
-		primaryInput = "true"
-		languageId="org.eclipse.cdt.core.parser.upc.upc"      					
-		superClass="org.eclipse.cdt.build.core.settings.holder.inType"						
-		sources = "upc,c">
-	</inputType>
-	<outputType
-       id="cdt.managedbuild.tool.bupc.compiler.output"
-       name="%outputType.obj"
-       outputs="o"
-       buildVariable="OBJS"
-       primaryInputType="cdt.managedbuild.tool.bupc.compiler.input"
-       primaryOutput="true"/>
-								
-  </tool>
-  
-    <tool
-	command="upcc"
-	id = "org.eclipse.cdt.managedbuild.tool.bupc.linker"
-	isAbstract="false"
-	name = "%tool.linker"
-	natureFilter = "both"
-	outputFlag = "-o">
-	<supportedProperties>
-            <property id="org.eclipse.cdt.build.core.buildType">
-	            <value id="org.eclipse.cdt.build.core.buildType.debug"/>
-    	        <value id="org.eclipse.cdt.build.core.buildType.release"/>
-            </property>
-    </supportedProperties>
-	<optionCategory
-		id = "bupc.ui.optionCategory.linker.gen"
-		name = "%optionCategory.linker.general"/>
-	<option
-   		category="bupc.ui.optionCategory.linker.gen"
-   		command="-g"
-   		id="bupc.ui.linker.general.debug"
-   		isAbstract="false"
-   		name = "%option.linker.debug"
-   		resourceFilter="project"
-   		valueType="boolean"
-   		defaultValue="false">
-   		<enablement 
-            type="CONTAINER_ATTRIBUTE" 
-            attribute="defaultValue" 
-            value="true"
-            extensionAdjustment="false">
-			<checkBuildProperty 
-				property="org.eclipse.cdt.build.core.buildType"
-				value="org.eclipse.cdt.build.core.buildType.debug"/>
-		</enablement>
-   	</option>
-	<option 
-		category = "bupc.ui.optionCategory.linker.gen"
-		id = "bupc.ui.linker.general.strip"
-		command = "-s"
-		isAbstract = "false"
-		name = "%option.linker.strip"
-		resourceFilter = "project"
-		valueType = "boolean" 
-		defaultValue="false"/>
-
-   	<optionCategory
-		owner="org.eclipse.cdt.managedbuild.tool.bupc.linker"
-		name="%optionCategory.linker.upc"
-		id="bupc.ui.optionCategory.linker.upc">
-	</optionCategory>
-	
-    <option
-	  	name="%option.linker.network"
-	  	category="bupc.ui.optionCategory.linker.upc"
-	  	id="bupc.ui.linker.upc.network"
-	  	valueType="enumerated">
-
-		  <enumeratedOptionValue
-		  		  name="%enumeratedOptionValue.default"
-				  isDefault="true"
-				  command=""
-				  id="bupc.ui.linker.upc.network.default">
-		  </enumeratedOptionValue>  	
-		  <enumeratedOptionValue
-		  		  name="%enumeratedOptionValue.mpi"
-				  isDefault="false"
-				  command="-network=mpi"
-				  id="bupc.ui.linker.upc.network.mpi">
-		  </enumeratedOptionValue>
-		  <enumeratedOptionValue
-				  name="%enumeratedOptionValue.udp"
-				  command="-network=udp"
-				  id="bupc.ui.linker.upc.network.udp">
-		  </enumeratedOptionValue>
-		  <enumeratedOptionValue
-				  name="%enumeratedOptionValue.elan"
-				  command="-network=elan"
-				  id="bupc.ui.linker.upc.network.elan">
-		  </enumeratedOptionValue>
-		  <enumeratedOptionValue
-				  name="%enumeratedOptionValue.lapi"
-				  command="-network=lapi"
-				  id="bupc.ui.linker.upc.network.lapi">
-		  </enumeratedOptionValue>
-		  <enumeratedOptionValue
-				  name="%enumeratedOptionValue.gm"
-				  command="-network=gm"
-				  id="bupc.ui.linker.upc.network.gm">
-		  </enumeratedOptionValue>
-		  <enumeratedOptionValue
-				  name="%enumeratedOptionValue.smp"
-				  command="-network=smp"
-				  id="bupc.ui.linker.upc.network.smp">
-		  </enumeratedOptionValue>
-		  <enumeratedOptionValue
-				  name="%enumeratedOptionValue.vapi"
-				  command="-network=vapi"
-				  id="bupc.ui.linker.upc.network.vapi">
-		  </enumeratedOptionValue>
-		  <enumeratedOptionValue
-				  name="%enumeratedOptionValue.ibv"
-				  command="-network=ibv"
-				  id="bupc.ui.linker.upc.network.ibv">
-		  </enumeratedOptionValue>
-		  <enumeratedOptionValue
-				  name="%enumeratedOptionValue.sci"
-				  command="-network=sci"
-				  id="bupc.ui.linker.upc.network.sci">
-		  </enumeratedOptionValue>
-		  <enumeratedOptionValue
-				  name="%enumeratedOptionValue.shmem"
-				  command="-network=shmem"
-				  id="bupc.ui.linker.upc.network.shmem">
-		  </enumeratedOptionValue>
-		  <enumeratedOptionValue
-				  name="%enumeratedOptionValue.portals"
-				  command="-network=portals"
-				  id="bupc.ui.linker.upc.network.portals">
-		  </enumeratedOptionValue>
-		  <enumeratedOptionValue
-				  name="%enumeratedOptionValue.dcmf"
-				  command="-network=dcmf"
-				  id="bupc.ui.linker.upc.network.dcmf">
-		  </enumeratedOptionValue>
-	</option>
-   	<option
-		category="bupc.ui.optionCategory.linker.upc"
-		command="-shared-heap="
-		id="bupc.ui.linker.upc.sharedheap"
-		isAbstract="false"
-		name="%option.linker.sharedheap"
-		resourceFilter="project"
-		valueType="string"/>
-   	<option
-		category="bupc.ui.optionCategory.linker.upc"
-		command="-T="
-		id="bupc.ui.linker.upc.fixedthreads"
-		isAbstract="false"
-		name="%option.linker.fixedthreads"
-		resourceFilter="project"
-		valueType="string"/>
-
-    <optionCategory
-               owner="org.eclipse.cdt.managedbuild.tool.bupc.linker"
-               name="%optionCategory.linker.libs"
-               id="bupc.ui.optionCategory.linker.libs">
-    </optionCategory>
-     <option
-           name="%option.linker.libs"
-           category="bupc.ui.optionCategory.linker.libs"
-           command="-l"
-           id="bupc.ui.linker.libs"
-           browseType="none"
-           valueType="libs">
-     </option>
-     <option
-           name="%option.linker.libpaths"
-           category="bupc.ui.optionCategory.linker.libs"
-           command="-L"
-           id="bupc.ui.linker.paths"
-           browseType="directory"
-           valueType="libPaths">
-     </option>
-   		    					
-	<optionCategory
-		id = "bupc.ui.optionCategory.linker.advOptions"
-		name = "%optionCategory.linker.advanced"/>
-	<option
-		category="bupc.ui.optionCategory.linker.advOptions"
-		command="-pthreads="
-		id="bupc.ui.linker.advOptions.pthread"
-		isAbstract="false"
-		name="%option.linker.pthreads"
-		resourceFilter="project"
-		valueType="string"/>
-	<option
-		category="bupc.ui.optionCategory.linker.advOptions"
-		command=""
-		id="bupc.ui.linker.advOptions.other"
-		isAbstract="false"
-		name="%option.linker.other"
-		resourceFilter="project"
-		valueType="string"/>
-				
-	<inputType
-		id="cdt.managedbuild.tool.bupc.linker.input"						      					
-		multipleOfType ="true"
-		dependencyCalculator="org.eclipse.cdt.managedbuilder.makegen.internal.DefaultNoDependencyCalculator"    					
-		primaryInput = "true"
-		languageId="org.eclipse.cdt.core.parser.upc.upc"	
-		sourceContentType="org.eclipse.cdt.managedbuilder.core.compiledObjectFile"				
-		sources = "o"
-        buildVariable="OBJS">
-		
-	</inputType>
-	
-	<outputType
-       id="cdt.managedbuild.tool.bupc.linker.output"
-       name="%outputType.exe"
-       outputs=""
-       buildVariable="EXECUTABLES"
-       primaryInputType="cdt.managedbuild.tool.bupc.linker.input"
-       primaryOutput="true"/>
-								
-  </tool>
-      
-  <toolChain
-          archList="all"
-          osList="linux,hpux,aix,qnx,solaris"
-          name="%toolChain.linux.name"
-          targetTool="org.eclipse.cdt.managedbuild.tool.bupc.linker"
-          id="cdt.managedbuild.toolchain.bupc.exe.base">
-		          <targetPlatform
-		              id="cdt.managedbuild.target.bupc.platform.base"
-		              name="%targetPlatform.name"
-		              binaryParser="org.eclipse.cdt.core.ELF"
-		              osList="linux,hpux,aix,qnx,solaris"
-		              archList="all">
-	              </targetPlatform>
-		     	  
-		     	  <builder
-					id="org.eclipse.cdt.managedbuilder.bupc.builder.base"
-					isAbstract="false"
-					isVariableCaseSensitive="false"
-					superClass="org.eclipse.cdt.build.core.internal.builder">
-				</builder>
-		     	    
-                  <tool
-                      id="org.eclipse.cdt.managedbuild.tool.bupc.compiler.base"
-                      superClass="org.eclipse.cdt.managedbuild.tool.bupc.compiler"/>
-                  <tool
-                      id="org.eclipse.cdt.managedbuild.tool.bupc.linker.base"
-                      superClass="org.eclipse.cdt.managedbuild.tool.bupc.linker"/>
-	</toolChain>
-      
-    <toolChain
-          archList="all"
-          osList="macosx"
-          name="%toolChain.macosx.name"
-          targetTool="org.eclipse.cdt.managedbuild.tool.bupc.linker"
-          id="cdt.managedbuild.toolchain.bupc.macosx.exe.base">
-		          <targetPlatform
-		              id="cdt.managedbuild.target.bupc.platform.macosx.base"
-		              name="%targetPlatform.name"
-		              osList="macosx"
-		              archList="all"
-		              binaryParser="org.eclipse.cdt.core.MachO64">
-	              </targetPlatform>
-		     	  
-		     	  <builder
-					id="org.eclipse.cdt.managedbuilder.bupc.builder.macosx.base"
-					isAbstract="false"
-					isVariableCaseSensitive="false"
-					superClass="org.eclipse.cdt.build.core.internal.builder">
-				</builder>
-		     	    
-                  <tool
-                      id="org.eclipse.cdt.managedbuild.tool.bupc.compiler.macosx.base"
-                      superClass="org.eclipse.cdt.managedbuild.tool.bupc.compiler"/>
-                  <tool
-                      id="org.eclipse.cdt.managedbuild.tool.bupc.linker.macosx.base"
-                      superClass="org.eclipse.cdt.managedbuild.tool.bupc.linker"/>
-	</toolChain>
-	
-      <projectType
-      	id = "cdt.managedbuild.target.bupc.exe"
-      	buildArtefactType = "org.eclipse.cdt.build.core.buildArtefactType.exe"
-      	isAbstract="false"
-      	isTest="false">
-      	<configuration
-      		cleanCommand = "rm -rf"
-      		description = "%configuration.debug.desc"
-      		id = "cdt.managedbuild.config.bupc.exe.debug"
-      		buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug"
-      		name = "%configuration.debug.name">
-      		<toolChain
-      			superClass="cdt.managedbuild.toolchain.bupc.exe.base"
-      			id = "cdt.managedbuild.toolchain.bupc.exe.debug">	
-      			<targetPlatform
-      				superClass="cdt.managedbuild.target.bupc.platform.base"
-		        	id="cdt.managedbuild.target.bupc.platform.exe.debug">
-		        </targetPlatform>
-      			<builder
-					superClass="org.eclipse.cdt.managedbuilder.bupc.builder.base"
-					id="org.eclipse.cdt.managedbuilder.bupc.builder.exe.debug">
-				</builder>
-				<tool
-                	id="org.eclipse.cdt.managedbuild.tool.bupc.compiler.exe.debug"
-                    superClass="org.eclipse.cdt.managedbuild.tool.bupc.compiler.base">
-                    
-                    <!--                      
-                    <option
-				    	id="gnu.cpp.compiler.exe.debug.option.optimization.level"
-                        superClass="gnu.cpp.compiler.option.optimization.level">
-                    </option>
-                    -->  
-                    <option
-						id="bupc.ui.compiler.exe.debug.option.debug"
-                        superClass="bupc.ui.compiler.general.debug">
-                    </option>
-                </tool>
-	              <tool
-	                  id="org.eclipse.cdt.managedbuild.tool.bupc.linker.exe.debug"
-	                  superClass="org.eclipse.cdt.managedbuild.tool.bupc.linker.base">
-	                  <!--                     
-			  	      <option
-					      id="gnu.c.compiler.exe.debug.option.optimization.level"
-						  superClass="gnu.c.compiler.option.optimization.level">
-					  </option>
-					  -->
-					  <option   
-					      id="bupc.ui.linker.exe.debug.option.debug"					     
-					      superClass="bupc.ui.linker.general.debug">
-					  </option>
-				  </tool>
-      	</toolChain>
-      </configuration>
-      <configuration
-      		cleanCommand = "rm -rf"
-      		description = "%configuration.release.desc"
-      		id = "cdt.managedbuild.config.bupc.exe.release"
-      		buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release"
-      		name = "%configuration.release.name">
-      		<toolChain
-      			superClass="cdt.managedbuild.toolchain.bupc.exe.base"
-      			id = "cdt.managedbuild.toolchain.bupc.exe.release">	
-      			<targetPlatform
-      				superClass="cdt.managedbuild.target.bupc.platform.base"
-		        	id="cdt.managedbuild.target.bupc.platform.exe.release">
-		        </targetPlatform>
-      			<builder
-					superClass="org.eclipse.cdt.managedbuilder.bupc.builder.base"
-					id="org.eclipse.cdt.managedbuilder.bupc.builder.exe.release">
-				</builder>
-				<tool
-                	id="org.eclipse.cdt.managedbuild.tool.bupc.compiler.exe.release"
-                    superClass="org.eclipse.cdt.managedbuild.tool.bupc.compiler.base">
-                    
-                    <!--                      
-                    <option
-				    	id="gnu.cpp.compiler.exe.debug.option.optimization.level"
-                        superClass="gnu.cpp.compiler.option.optimization.level">
-                    </option>
-                    -->  
-                    <option
-						id="bupc.ui.compiler.exe.release.option.debug"
-                        superClass="bupc.ui.compiler.general.debug">
-                    </option>
-                </tool>
-	              <tool
-	                  id="org.eclipse.cdt.managedbuild.tool.bupc.linker.exe.release"
-	                  superClass="org.eclipse.cdt.managedbuild.tool.bupc.linker.base">
-	                  <!--                     
-			  	      <option
-					      id="gnu.c.compiler.exe.debug.option.optimization.level"
-						  superClass="gnu.c.compiler.option.optimization.level">
-					  </option>
-					  -->
-					  <option   
-					      id="bupc.ui.linker.exe.release.option.debug"					     
-					      superClass="bupc.ui.linker.general.debug">
-					  </option>
-				  </tool>
-      	</toolChain>
-      </configuration>
-     </projectType>
-     
-     <!-- =================== -->
- 
-     <projectType
-      	id = "cdt.managedbuild.target.bupc.macosx.exe"
-      	buildArtefactType = "org.eclipse.cdt.build.core.buildArtefactType.exe"
-      	isAbstract="false"
-      	isTest="false">
-      	<configuration
-      		cleanCommand = "rm -rf"
-      		description = "%configuration.debug.desc"
-      		id = "cdt.managedbuild.config.bupc.exe.macosx.debug"
-      		buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug"
-      		name = "%configuration.debug.name">
-      		<toolChain
-      			superClass="cdt.managedbuild.toolchain.bupc.macosx.exe.base"
-      			id = "cdt.managedbuild.toolchain.bupc.exe.macosx.debug">	
-      			<targetPlatform
-      				superClass="cdt.managedbuild.target.bupc.platform.macosx.base"
-		        	id="cdt.managedbuild.target.bupc.platform.exe.macosx.debug">
-		        </targetPlatform>
-      			<builder
-					superClass="org.eclipse.cdt.managedbuilder.bupc.builder.macosx.base"
-					id="org.eclipse.cdt.managedbuilder.bupc.builder.exe.macosx.debug">
-				</builder>
-				<tool
-                	id="org.eclipse.cdt.managedbuild.tool.bupc.compiler.exe.macosx.debug"
-                    superClass="org.eclipse.cdt.managedbuild.tool.bupc.compiler.macosx.base">
-                    <!--                      
-                    <option
-				    	id="gnu.cpp.compiler.exe.debug.option.optimization.level"
-                        superClass="gnu.cpp.compiler.option.optimization.level">
-                    </option>
-                    -->  
-                    <option
-						id="bupc.ui.compiler.exe.macosx.debug.option.debug"
-                        superClass="bupc.ui.compiler.general.debug">
-                    </option>
-                </tool>
-	              <tool
-	                  id="org.eclipse.cdt.managedbuild.tool.bupc.linker.exe.macosx.debug"
-	                  superClass="org.eclipse.cdt.managedbuild.tool.bupc.linker.macosx.base">
-	                  <!--                     
-			  	      <option
-					      id="gnu.c.compiler.exe.debug.option.optimization.level"
-						  superClass="gnu.c.compiler.option.optimization.level">
-					  </option>
-					  -->
-					  <option   
-					      id="bupc.ui.linker.exe.macosx.debug.option.debug"					     
-					      superClass="bupc.ui.linker.general.debug">
-					  </option>
-				  </tool>
-      	</toolChain>
-      </configuration>
-      <configuration
-      		cleanCommand = "rm -rf"
-      		description = "%configuration.release.desc"
-      		id = "cdt.managedbuild.config.bupc.exe.macosx.release"
-      		buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release"
-      		name = "%configuration.release.name">
-      		<toolChain
-      			superClass="cdt.managedbuild.toolchain.bupc.macosx.exe.base"
-      			id = "cdt.managedbuild.toolchain.bupc.exe.macosx.release">	
-      			<targetPlatform
-      				superClass="cdt.managedbuild.target.bupc.platform.macosx.base"
-		        	id="cdt.managedbuild.target.bupc.platform.exe.macosx.release">
-		        </targetPlatform>
-      			<builder
-					superClass="org.eclipse.cdt.managedbuilder.bupc.builder.base"
-					id="org.eclipse.cdt.managedbuilder.bupc.builder.exe.macosx.release">
-				</builder>
-				<tool
-                	id="org.eclipse.cdt.managedbuild.tool.bupc.compiler.exe.macosx.release"
-                    superClass="org.eclipse.cdt.managedbuild.tool.bupc.compiler.macosx.base">
-                    
-                    <!--                      
-                    <option
-				    	id="gnu.cpp.compiler.exe.debug.option.optimization.level"
-                        superClass="gnu.cpp.compiler.option.optimization.level">
-                    </option>
-                    -->  
-                    <option
-						id="bupc.ui.compiler.exe.macosx.release.option.debug"
-                        superClass="bupc.ui.compiler.general.debug">
-                    </option>
-                </tool>
-	              <tool
-	                  id="org.eclipse.cdt.managedbuild.tool.bupc.linker.exe.macosx.release"
-	                  superClass="org.eclipse.cdt.managedbuild.tool.bupc.linker.macosx.base">
-	                  <!--                     
-			  	      <option
-					      id="gnu.c.compiler.exe.debug.option.optimization.level"
-						  superClass="gnu.c.compiler.option.optimization.level">
-					  </option>
-					  -->
-					  <option   
-					      id="bupc.ui.linker.exe.macosx.release.option.debug"	     
-					      superClass="bupc.ui.linker.general.debug">
-					  </option>
-				  </tool>
-      	</toolChain>
-      </configuration>
-     </projectType>
-     
-</extension>
-</plugin>
diff --git a/upc/org.eclipse.cdt.managedbuilder.bupc.ui/src/org/eclipse/cdt/managedbuilder/bupc/ui/UPCWizardsPlugin.java b/upc/org.eclipse.cdt.managedbuilder.bupc.ui/src/org/eclipse/cdt/managedbuilder/bupc/ui/UPCWizardsPlugin.java
deleted file mode 100644
index 4b658de..0000000
--- a/upc/org.eclipse.cdt.managedbuilder.bupc.ui/src/org/eclipse/cdt/managedbuilder/bupc/ui/UPCWizardsPlugin.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2010, University of Florida and others.
- *
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Max Billingsley III - initial API and implementation
- ****************************************************************************/
-package org.eclipse.cdt.managedbuilder.bupc.ui;
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * Based on plugin class for PLDT Wizards (MPI & OpenMP)
- */
-public class UPCWizardsPlugin extends AbstractUIPlugin {
-	//The shared instance.
-	private static UPCWizardsPlugin plugin;
-	//Resource bundle.
-	private ResourceBundle resourceBundle;
-
-	/**
-	 * The constructor.
-	 */
-	public UPCWizardsPlugin() {
-		super();
-		plugin = this;
-	}
-
-	/**
-	 * This method is called upon plug-in activation
-	 */
-	@Override
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-	}
-
-	/**
-	 * This method is called when the plug-in is stopped
-	 */
-	@Override
-	public void stop(BundleContext context) throws Exception {
-		super.stop(context);
-		plugin = null;
-		resourceBundle = null;
-	}
-
-	/**
-	 * Returns the shared instance.
-	 */
-	public static UPCWizardsPlugin getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * Returns the string from the plugin's resource bundle,
-	 * or 'key' if not found.
-	 */
-	public static String getResourceString(String key) {
-		ResourceBundle bundle = UPCWizardsPlugin.getDefault().getResourceBundle();
-		try {
-			return (bundle != null) ? bundle.getString(key) : key;
-		} catch (MissingResourceException e) {
-			return key;
-		}
-	}
-
-	/**
-	 * Returns the plugin's resource bundle,
-	 */
-	public ResourceBundle getResourceBundle() {
-		try {
-			if (resourceBundle == null)
-				resourceBundle = ResourceBundle
-						.getBundle("org.eclipse.cdt.managedbuilder.ui.tests.TestsPluginResources"); //$NON-NLS-1$
-		} catch (MissingResourceException x) {
-			resourceBundle = null;
-		}
-		return resourceBundle;
-	}
-
-	/**
-	 * Returns an image descriptor for the image file at the given
-	 * plug-in relative path.
-	 *
-	 * @param path the path
-	 * @return the image descriptor
-	 */
-	public static ImageDescriptor getImageDescriptor(String path) {
-		return AbstractUIPlugin.imageDescriptorFromPlugin("org.eclipse.cdt.managedbuilder.ui.tests", path); //$NON-NLS-1$
-	}
-
-	public static String getPluginId() {
-		return "org.eclipse.ptp.pldt.upc.wizard"; //$NON-NLS-1$
-	}
-}
diff --git a/upc/org.eclipse.cdt.managedbuilder.bupc.ui/templates/src/Basename.upc b/upc/org.eclipse.cdt.managedbuilder.bupc.ui/templates/src/Basename.upc
deleted file mode 100644
index e60a304..0000000
--- a/upc/org.eclipse.cdt.managedbuilder.bupc.ui/templates/src/Basename.upc
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
- ============================================================================
- Name        : $(baseName).upc
- Author      : $(author)
- Version     :
- Copyright   : $(copyright)
- Description : UPC Hello world program
- ============================================================================
-*/
-#include <upc.h>
-
-int main(int argc, char *argv[]) {
-	printf("Hello, I am %d of %d.\n", MYTHREAD, THREADS);
-	return 0;
-}
diff --git a/upc/org.eclipse.cdt.managedbuilder.bupc.ui/templates/template.properties b/upc/org.eclipse.cdt.managedbuilder.bupc.ui/templates/template.properties
deleted file mode 100644
index 772f31f..0000000
--- a/upc/org.eclipse.cdt.managedbuilder.bupc.ui/templates/template.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-HelloWorld.upcAnsitemplate.label=Hello World UPC Project
-HelloWorld.CAnsitemplate.description=A skeletal Managed C Hello World project. Creates a folder for sources and another for include.
-HelloWorld.basics.label=Basic Settings
-HelloWorld.basics.description=Basic properties of a project
-HelloWorld.author.label=Author
-HelloWorld.author.description=Name of the author
-HelloWorld.copyright.label=Copyright notice
-HelloWorld.copyright.description=Your copyright notice
-HelloWorld.copyright.default=Your copyright notice
-HelloWorld.message.default=Hello UPC World
-HelloWorld.message.description=Your hello world greeting message
-HelloWorld.message.label=Hello world greeting
-HelloWorld.sourceDir.label=Source
-HelloWorld.sourceDir.description=Directory for hello world project source files
-HelloWorld.sourceDir.default=src
diff --git a/upc/org.eclipse.cdt.managedbuilder.bupc.ui/templates/template.xml b/upc/org.eclipse.cdt.managedbuilder.bupc.ui/templates/template.xml
deleted file mode 100644
index ed7f5cc..0000000
--- a/upc/org.eclipse.cdt.managedbuilder.bupc.ui/templates/template.xml
+++ /dev/null
@@ -1,65 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<template type="ProjTempl" version="1.0" supplier="ppw@hcs.ufl.edu"
-		revision="1.0" author="PPW group, HCS lab, University of Florida"
-		copyright="Copyright (c) 2010, University of Florida"
-		id="HelloWorldUPCProject" label="%HelloWorld.upcAnsitemplate.label"
-		description="%HelloWorld.CAnsitemplate.description"
-		help="help.html">
-
-	<property-group id="basics" label="%HelloWorld.basics.label"
-	 description="%HelloWorld.basics.description"
-	 type="PAGES-ONLY" help="help.html">
-		<property id="author"
-			label="%HelloWorld.author.label"
-			description="%HelloWorld.author.description"
-			type="input"
-			pattern=".*"
-			default=""
-			hidden="false"
-			persist="true"/>
-		<property id="copyright"
-			label="%HelloWorld.copyright.label"
-			description="%HelloWorld.copyright.description"
-			type="input"
-			pattern=".*"
-			default="%HelloWorld.copyright.default"
-			hidden="false"
-			persist="true"/>
-		<property id="message"
-			label="%HelloWorld.message.label"
-			description="%HelloWorld.message.description"
-			type="input"
-			pattern=".*"
-			default="%HelloWorld.message.default"
-			hidden="false"
-			persist="true"/>
-		<property id="sourceDir"
-				label="%HelloWorld.sourceDir.label"
-				description="%HelloWorld.sourceDir.description"
-				type="input"
-				default="%HelloWorld.sourceDir.default"
-				pattern="[a-zA-Z0-9]+"
-				mandatory="false"
-				persist="true"/>
-	</property-group>
-
-	<process type="org.eclipse.cdt.managedbuilder.core.NewManagedProject">
-		<simple name="name" value="$(projectName)" /> 
-		<simple name="artifactExtension" value="exe" /> 
-		<simple name="isCProject" value="true" /> 
-	</process>
-
-	<process type="org.eclipse.cdt.core.CreateSourceFolder">
-		<simple name="projectName" value="$(projectName)"/>
-		<simple name="path" value="$(sourceDir)"/>
-	</process>
-	
-	<process type = "org.eclipse.cdt.core.AddFile">
-		<simple name = "projectName" value="$(projectName)"/>
-		<complex name="file">			
-				<simple name="source" value="src/Basename.upc"/>
-				<simple name ="target" value ="$(sourceDir)/$(projectName).upc"/>
-				<simple name ="replaceable" value="true"/>
-		</complex>
-	</process>
-</template>
\ No newline at end of file
diff --git a/upc/pom.xml b/upc/pom.xml
deleted file mode 100644
index 71ccb4e..0000000
--- a/upc/pom.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project
-		xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
-		xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-	<modelVersion>4.0.0</modelVersion>
-
-	<parent>
-		<groupId>org.eclipse.cdt</groupId>
-		<artifactId>cdt-parent</artifactId>
-		<version>10.0.0-SNAPSHOT</version>
-	</parent>
-
-	<artifactId>org.eclipse.cdt.upc-parent</artifactId>
-	<packaging>pom</packaging>
-</project>
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/.classpath b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/.classpath
deleted file mode 100644
index eca7bdb..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/.project b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/.project
deleted file mode 100644
index 78df197..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.cdt.core.lrparser.xlc.tests</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/.settings/org.eclipse.jdt.core.prefs b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index ad05599..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,464 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch, *.xtend
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.mainOnlyProjectHasTestOnlyDependency=error
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.APILeak=warning
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=ignore
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
-org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=ignore
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=ignore
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
-org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
-org.eclipse.jdt.core.formatter.align_with_spaces=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
-org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped=true
-org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=true
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
-org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/.settings/org.eclipse.jdt.launching.prefs b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/.settings/org.eclipse.jdt.launching.prefs
deleted file mode 100644
index f8a131b..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/.settings/org.eclipse.jdt.launching.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.launching.PREF_COMPILER_COMPLIANCE_DOES_NOT_MATCH_JRE=warning
-org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=warning
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/.settings/org.eclipse.jdt.ui.prefs b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index e445763..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,133 +0,0 @@
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_missing_override_annotations_interface_methods=true
-cleanup.add_serial_version_id=false
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_functional_interfaces=false
-cleanup.convert_to_enhanced_for_loop=false
-cleanup.correct_indentation=false
-cleanup.format_source_code=true
-cleanup.format_source_code_changes_only=false
-cleanup.insert_inferred_type_arguments=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=true
-cleanup.qualify_static_field_accesses_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=false
-cleanup.qualify_static_method_accesses_with_declaring_class=false
-cleanup.remove_private_constructors=true
-cleanup.remove_redundant_modifiers=false
-cleanup.remove_redundant_semicolons=true
-cleanup.remove_redundant_type_arguments=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=false
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_anonymous_class_creation=false
-cleanup.use_blocks=false
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_lambda=true
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup_profile=_CDT
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_CDT
-formatter_settings_version=14
-internal.default.compliance=user
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.ondemandthreshold=1000
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.staticondemandthreshold=1000
-org.eclipse.jdt.ui.text.custom_code_templates=
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_functional_interfaces=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.insert_inferred_type_arguments=false
-sp_cleanup.make_local_variable_final=true
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_redundant_modifiers=false
-sp_cleanup.remove_redundant_semicolons=true
-sp_cleanup.remove_redundant_type_arguments=true
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=true
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_anonymous_class_creation=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_lambda=true
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/.settings/org.eclipse.pde.api.tools.prefs b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index ec9fbf3..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,184 +0,0 @@
-ANNOTATION_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITH_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-API_USE_SCAN_FIELD_SEVERITY=Error
-API_USE_SCAN_METHOD_SEVERITY=Error
-API_USE_SCAN_TYPE_SEVERITY=Error
-CLASS_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERCLASS_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_CHANGED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENTS=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETERS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_ANNOTATION=Ignore
-INVALID_JAVADOC_TAG=Error
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Warning
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-MISSING_EE_DESCRIPTIONS=Warning
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-automatically_removed_unused_problem_filters=false
-changed_execution_env=Error
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-incompatible_api_component_version_report_major_without_breaking_change=Warning
-incompatible_api_component_version_report_minor_without_api_change=Warning
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/.settings/org.eclipse.pde.prefs b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 51a63ec..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,35 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.build.bin.includes=1
-compilers.p.build.encodings=2
-compilers.p.build.java.compiler=2
-compilers.p.build.java.compliance=1
-compilers.p.build.missing.output=2
-compilers.p.build.output.library=1
-compilers.p.build.source.library=1
-compilers.p.build.src.includes=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=1
-compilers.p.missing-packages=2
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=2
-compilers.p.missing-version-require-bundle=2
-compilers.p.no-required-att=0
-compilers.p.no.automatic.module=1
-compilers.p.not-externalized-att=2
-compilers.p.service.component.without.lazyactivation=1
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/META-INF/MANIFEST.MF b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/META-INF/MANIFEST.MF
deleted file mode 100644
index fb5b405..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,19 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Tests
-Bundle-SymbolicName: org.eclipse.cdt.core.lrparser.xlc.tests
-Bundle-Vendor: Eclipse CDT
-Bundle-Version: 1.0.0.qualifier
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Require-Bundle: org.junit,
- org.eclipse.cdt.core.lrparser;bundle-version="5.1.0",
- org.eclipse.cdt.core.lrparser.xlc;bundle-version="1.0.0",
- org.eclipse.cdt.core.tests;bundle-version="5.1.0",
- org.eclipse.cdt.core;bundle-version="5.1.0",
- org.eclipse.cdt.core.lrparser.tests;bundle-version="5.1.0",
- org.eclipse.core.runtime;bundle-version="3.5.0",
- org.eclipse.core.resources;bundle-version="3.5.0"
-Export-Package: org.eclipse.cdt.core.parser.xlc.tests,
- org.eclipse.cdt.core.parser.xlc.tests.base,
- org.eclipse.cdt.core.parser.xlc.tests.suite
-Automatic-Module-Name: org.eclipse.cdt.core.lrparser.xlc.tests
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/about.html b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/about.html
deleted file mode 100644
index 164f781..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
-	<h2>About This Content</h2>
-
-	<p>November 30, 2017</p>
-	<h3>License</h3>
-
-	<p>
-		The Eclipse Foundation makes available all content in this plug-in
-		(&quot;Content&quot;). Unless otherwise indicated below, the Content
-		is provided to you under the terms and conditions of the Eclipse
-		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
-		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>
-		If you did not receive this Content directly from the Eclipse
-		Foundation, the Content is being redistributed by another party
-		(&quot;Redistributor&quot;) and different terms and conditions may
-		apply to your use of any object code in the Content. Check the
-		Redistributor's license that was provided with the Content. If no such
-		license exists, contact the Redistributor. Unless otherwise indicated
-		below, the terms and conditions of the EPL still apply to any source
-		code in the Content and such source code may be obtained at <a
-			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
-	</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/build.properties b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/build.properties
deleted file mode 100644
index 765c0a2..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/build.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-###############################################################################
-# Copyright (c) 2009 IBM Corporation and others.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               about.html
-src.includes = about.html
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/VectorExtensionsTest.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/VectorExtensionsTest.java
deleted file mode 100644
index 63d91e0..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/VectorExtensionsTest.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.xlc.tests;
-
-import org.eclipse.cdt.core.dom.ast.IASTCompoundStatement;
-import org.eclipse.cdt.core.dom.ast.IASTDeclaration;
-import org.eclipse.cdt.core.dom.ast.IASTExpressionStatement;
-import org.eclipse.cdt.core.dom.ast.IASTFunctionCallExpression;
-import org.eclipse.cdt.core.dom.ast.IASTFunctionDefinition;
-import org.eclipse.cdt.core.dom.ast.IASTIdExpression;
-import org.eclipse.cdt.core.dom.ast.IASTName;
-import org.eclipse.cdt.core.dom.ast.IASTSimpleDeclaration;
-import org.eclipse.cdt.core.dom.ast.IASTStatement;
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-
-public class VectorExtensionsTest extends XlcTestBase {
-
-	public VectorExtensionsTest() {
-	}
-
-	public VectorExtensionsTest(String name) {
-		super(name);
-	}
-
-	public void testVector1() {
-		String code = "int test() {  \n" + "   vector unsigned int a = {1,2,3,4};  \n"
-				+ "   vector unsigned int b = {2,4,6,8};  \n" + "   vector unsigned int c = a + b;      \n"
-				+ "   int e = b > a;                      \n" + "   int f = a[2];                       \n"
-				+ "   vector unsigned int d = ++a;        \n" + "}\n";
-
-		parse(code, getCLanguage(), true);
-		parse(code, getCPPLanguage(), true);
-	}
-
-	public void testVectorDeclarations() {
-		String code = "vector unsigned char a;	  \n" + "vector signed char b;  \n" + "vector bool char c;	  \n"
-				+ "vector unsigned short d; 	  \n" + "vector unsigned short int e;  \n"
-				+ "vector signed short f;  \n" + "vector signed short int g;  \n" + "vector bool short h;	  \n"
-				+ "vector bool short int i;  \n" + "vector unsigned int j;  \n" + "vector unsigned long k;  \n"
-				+ "vector unsigned long int l;  \n" + "vector signed int m;  \n" + "vector signed long n;  \n"
-				+ "vector signed long int o;  \n" + "vector bool int p;  \n" + "vector bool long q;  \n"
-				+ "vector bool long int r;  \n" + "vector float s;  \n" + "vector pixel t;  \n"
-				+ "__vector __pixel u;  \n";
-
-		parse(code, getCLanguage(), true);
-		parse(code, getCPPLanguage(), true);
-	}
-
-	// these are only treated as keywords inside a vector declaration
-	public void testReservedWords() {
-		String code = "int pixel; " + "int bool;  ";
-
-		parse(code, getCLanguage(), true);
-		parse(code, getCPPLanguage(), true);
-	}
-
-	public void testVectorLiterals() {
-		String code = "int test() {" + "    (vector unsigned int)(10); "
-				+ "    (vector unsigned int)(14, 82, 73, 700); " + "    (vector pixel)(14, 82, 73, 700); "
-				+ "    (vector bool int)(10); " + "}";
-
-		parse(code, getCLanguage(), true);
-		parse(code, getCPPLanguage(), true);
-	}
-
-	public void testVectorInitializers() {
-		String code = "int test() {" + "    vector unsigned int v3 = {1,2,3,4}; " + "}";
-
-		parse(code, getCLanguage(), true);
-		parse(code, getCPPLanguage(), true);
-	}
-
-	public void testVectorTypedefs() {
-		String code = "int test() {" + "     typedef vector pixel vint16; " + "     vint16 v1;" + "}";
-
-		parse(code, getCLanguage(), true);
-		parse(code, getCPPLanguage(), true);
-	}
-
-	public void testVectorCompoundLiterals() {
-		String code = "int test() {" + "    (vector unsigned int){10}; "
-				+ "    (vector unsigned int){14, 82, 73, 700}; " + "    (vector pixel){14, 82, 73, 700}; "
-				+ "    (vector bool int){10}; " + "}";
-
-		parse(code, getCLanguage(), true);
-		parse(code, getCPPLanguage(), true);
-	}
-
-	public void testVectorAlignof() {
-		String code = "int test() {" + "   vector unsigned int v1 = (vector unsigned int)(10);  \n"
-				+ "   vector unsigned int *pv1 = &v1;  \n" + "   __alignof__(v1); \n" + "   __alignof__(&v1);  \n"
-				+ "   __alignof__(*pv1);  \n" + "   __alignof__(pv1);  \n" + "   __alignof__(vector signed char);  \n"
-				+ "}";
-
-		parse(code, getCLanguage(), true);
-		parse(code, getCPPLanguage(), true);
-	}
-
-	public void testVectorTypeof() {
-		String code = "int test() {" + "   vector unsigned int v1 = (vector unsigned int)(10);  \n"
-				+ "   vector unsigned int *pv1 = &v1;  \n" + "   __typeof__(v1); \n" + "   __typeof__(&v1);  \n"
-				+ "   __typeof__(*pv1);  \n" + "   __typeof__(pv1);  \n" + "   __typeof__(vector signed char);  \n"
-				+ "}";
-
-		parse(code, getCLanguage(), true);
-		parse(code, getCPPLanguage(), true);
-	}
-
-	public void _testOverloads() {
-		String code = "void foo(int); \n" + "void foo(vector unsigned int); \n" + "void foo(vector pixel) \n"
-				+ "int test() { \n" + "    int x; \n" + "    vector unsigned int y; \n" + "    vector pixel z; \n"
-				+ "    foo(x); \n" + "    foo(y); \n" + "    foo(z); \n" + "} \n";
-
-		IASTTranslationUnit tu = parse(code, getCPPLanguage(), true);
-
-		IASTDeclaration[] decls = tu.getDeclarations();
-		IASTName foo1 = ((IASTSimpleDeclaration) decls[0]).getDeclarators()[0].getName();
-		IASTName foo2 = ((IASTSimpleDeclaration) decls[1]).getDeclarators()[0].getName();
-		IASTName foo3 = ((IASTSimpleDeclaration) decls[2]).getDeclarators()[0].getName();
-
-		IASTFunctionDefinition func = (IASTFunctionDefinition) decls[4];
-		IASTStatement[] stats = ((IASTCompoundStatement) func.getBody()).getStatements();
-
-		IASTName fooCall1 = ((IASTIdExpression) ((IASTFunctionCallExpression) ((IASTExpressionStatement) stats[3])
-				.getExpression()).getFunctionNameExpression()).getName();
-		IASTName fooCall2 = ((IASTIdExpression) ((IASTFunctionCallExpression) ((IASTExpressionStatement) stats[4])
-				.getExpression()).getFunctionNameExpression()).getName();
-		IASTName fooCall3 = ((IASTIdExpression) ((IASTFunctionCallExpression) ((IASTExpressionStatement) stats[5])
-				.getExpression()).getFunctionNameExpression()).getName();
-
-		assertSame(foo1.resolveBinding(), fooCall1.resolveBinding());
-		assertSame(foo2.resolveBinding(), fooCall2.resolveBinding());
-		assertSame(foo3.resolveBinding(), fooCall3.resolveBinding());
-	}
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/XlcExtensionsTest.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/XlcExtensionsTest.java
deleted file mode 100644
index 59e08e4..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/XlcExtensionsTest.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.xlc.tests;
-
-import org.eclipse.cdt.core.lrparser.xlc.preferences.XlcLanguagePreferences;
-import org.eclipse.cdt.core.lrparser.xlc.preferences.XlcPref;
-
-public class XlcExtensionsTest extends XlcTestBase {
-
-	public XlcExtensionsTest() {
-	}
-
-	public XlcExtensionsTest(String name) {
-		super(name);
-	}
-
-	public void testHexadecimalFloatingPointLiterals() throws Exception {
-		String code = "int test() {        \n" + "	 0x0A2B.0FDp+2f; \n" + "	 0X12D.p-44F;    \n"
-				+ "	 0xBACP+2L;      \n" + "}\n";
-
-		parse(code, getCLanguage(), true);
-		parse(code, getCPPLanguage(), true);
-	}
-
-	public void testFuncPredefinedIdentifier() {
-		String code = "void test() {       \n" + "     __func__;      \n" + " }  \n";
-
-		parse(code, getCLanguage(), true);
-		parse(code, getCPPLanguage(), true);
-	}
-
-	public void testStringConcatenation() {
-		String code = "void test() {       \n" + "     \"hello \" \"there\";   \n" + "     \"hello \" L\"there\";  \n"
-				+ " }  \n";
-
-		parse(code, getCLanguage(), true);
-		parse(code, getCPPLanguage(), true);
-	}
-
-	public void testLongLong() {
-		String code = "void test() {       \n" + "     long long x;   \n" + " }  \n";
-
-		parse(code, getCLanguage(), true);
-		parse(code, getCPPLanguage(), true);
-	}
-
-	public void testComplex() {
-		String code = "void test() {       \n" + "     float _Complex x;   \n" + "     double _Complex y;   \n"
-				+ "     long double _Complex z;   \n" + " }  \n";
-
-		parse(code, getCLanguage(), true);
-		parse(code, getCPPLanguage(), true);
-	}
-
-	public void testBool() {
-		String code = "_Bool f(int a, int b) { \n" + "    return a==b; \n" + " }  \n";
-
-		parse(code, getCLanguage(), true);
-	}
-
-	public void testTrailingCommaInEnum() {
-		String code = "void test() {       \n" + "     enum grain { oats, wheat, barley, corn, rice, };   \n"
-				+ " }  \n";
-
-		parse(code, getCLanguage(), true);
-		parse(code, getCPPLanguage(), true);
-	}
-
-	public void testNonLValueArraySubscript() {
-		String code = "struct trio{int a[3];};  \n" + "struct trio f();         \n" + "foo (int index)          \n"
-				+ "{                        \n" + "   return f().a[index];  \n" + "}  \n";
-
-		parse(code, getCLanguage(), true);
-	}
-
-	public void testStaticArrayIndices() {
-		String code = "void test() {       \n" + "     void foo1(int arr [static 10]);       \n"
-				+ "     int i = 10;                           \n" + "     void foo2(int arr [static const i]);  \n"
-				+ " }  \n";
-
-		parse(code, getCLanguage(), true);
-	}
-
-	public void testFunctionLikeMacrosVariableArguments() {
-		String code = "#define debug(...)   fprintf(stderr, __VA_ARGS__) \n" + "int test() { \n"
-				+ "    debug(\"flag\");  \n" + " } \n";
-
-		parse(code, getCLanguage(), false);
-	}
-
-	public void testFunctionLikeMacrosEmptyArgument() {
-		String code = "#define SUM(a,b,c) a + b + c \n" + "int test() { \n" + "   SUM(1,,3);  \n" + " } \n";
-
-		parse(code, getCLanguage(), true);
-	}
-
-	public void testPredefinedMacroNamesC() {
-		String code = "void test() {         \n" + "    __DATE__;         \n" + "    __FILE__;         \n"
-				+ "    __LINE__;         \n" + "    __STDC_HOSTED__;  \n" + "    __STDC_VERSION__; \n"
-				+ "    __TIME__;         \n" + "}  \n";
-
-		parse(code, getCLanguage(), true);
-	}
-
-	public void testPredefinedMacroNamesCpp() {
-		String code = "void test() {      \n" + "    __DATE__;      \n" + "    __FILE__;      \n"
-				+ "    __LINE__;      \n" + "    __TIME__;      \n" +
-				//  "    __cplusplus;   \n" +
-				"}  \n";
-
-		parse(code, getCPPLanguage(), true);
-	}
-
-	public void testCompoundLiterals() {
-		String code = "void test() {       \n" + "     drawline((struct point){6,7});   \n" + " }  \n";
-
-		parse(code, getCLanguage(), false);
-	}
-
-	public void testPragma() {
-		String code = "void test() {       \n" + "    _Pragma ( \"pack(full)\" )   \n" + " }  \n";
-
-		parse(code, getCLanguage(), true);
-	}
-
-	public void testStandardPragmas() {
-		String code = "#pragma STDC FP_CONTRACT ON           \n" + "#pragma STDC FENV_ACCESS OFF          \n"
-				+ "#pragma STDC CX_LIMITED_RANGE DEFAULT \n";
-
-		parse(code, getCLanguage(), true);
-	}
-
-	public void testLineDirective() {
-		String code = "#define LINE200 200 \n" + "#line 100           \n" + "#line LINE200       \n";
-
-		parse(code, getCLanguage(), true);
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=228826
-	 * http://publib.boulder.ibm.com/infocenter/comphelp/v101v121/index.jsp?topic=/com.ibm.xlcpp101.aix.doc/language_ref/restrict_type_qualifier.html
-	 *
-	 * TODO Need a properties page so that things like this can be configured by the user.
-	 */
-	public void testRestrictC() {
-		String code = "void foo(int n, int * restrict  a, int * __restrict b, int * __restrict__  c) {} ";
-
-		parse(code, getCLanguage(), true);
-	}
-
-	public void testRestrictCPPOn() {
-		String code = "void foo(int n, int * restrict  a, int * __restrict b, int * __restrict__  c) {} ";
-
-		parse(code, getCPPLanguage(), true);
-	}
-
-	public void testRestrictCPPOff() {
-		XlcLanguagePreferences.setWorkspacePreference(XlcPref.SUPPORT_RESTRICT_IN_CPP, String.valueOf(false));
-		String code = "void restrict(); \n " + "void foo(int n, int * __restrict b, int * __restrict__  c) {} ";
-
-		parse(code, getCPPLanguage(), true);
-	}
-
-	public void testUTFLiterals() {
-		String code = "void test() { \n " + "  u\"ucs characters \\u1234 and \\u8180 \"; \n "
-				+ "  U\"ucs characters \\u1234 and \\u8180 \"; \n "
-				+ "  U\"concatenation \\u1234 \"  u\"is allowed \\u8180 \"; \n " + "  u'\\u1234'; \n "
-				+ "  U'\\u1234'; \n " + "}";
-
-		parse(code, getCLanguage(), true);
-		parse(code, getCPPLanguage(), true);
-	}
-
-	public void testFloatingPointTypes() {
-		String code = "  _Decimal32 x = 22.2df; \n " + "  _Decimal64 y = 33.3dd; \n " + "  _Decimal128 z = 33.3dl; \n ";
-
-		parse(code, getCLanguage(), true);
-		parse(code, getCPPLanguage(), true);
-	}
-
-	public void testVariableLengthArrays() {
-		String code = "double maximum1(int n, int m, double a[n][m]);\n"
-				+ "double maximum2(int n, int m, double a[*][*]);\n"
-				+ "double maximum3(int n, int m, double a[ ][*]);\n"
-				+ "double maximum4(int n, int m, double a[ ][m]);\n";
-
-		parse(code, getCLanguage(), true);
-		parse(code, getCPPLanguage(), true); // xlc supports this in C++
-	}
-
-	public void testV11Attributes() {
-		String code = "#define __inline__ __inline__ __attribute__((gnu_inline)) \n" +
-
-				"static int w() __attribute__ ((weakref (\"y\")));\n" +
-				/* is equivalent to... */
-				"static int x() __attribute__ ((weak, weakref, alias (\"y\")));\n" +
-				/* and to... */
-				"static int y() __attribute__ ((weakref));\n" + "static int z() __attribute__ ((alias (\"y\"))); \n" +
-
-				"int foo() __attribute__((gnu_inline)); \n"
-				+ "static inline __attribute__((gnu_inline)) int ins (int *a){ \n" + "   (*a)++; \n" + "} \n"
-				+ "inline __attribute__((gnu_inline)) int inc (int *a){ \n" + "   (*a)++; \n" + "} ";
-
-		parse(code, getCLanguage(), true);
-		parse(code, getCPPLanguage(), true);
-	}
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/XlcExtensionsTestSuite.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/XlcExtensionsTestSuite.java
deleted file mode 100644
index 42a42ae..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/XlcExtensionsTestSuite.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.xlc.tests;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class XlcExtensionsTestSuite extends TestSuite {
-
-	public static Test suite() {
-		return new TestSuite() {
-			{
-				addTestSuite(VectorExtensionsTest.class);
-				addTestSuite(XlcExtensionsTest.class);
-			}
-		};
-	}
-}
\ No newline at end of file
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/XlcTestBase.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/XlcTestBase.java
deleted file mode 100644
index 64a4fca..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/XlcTestBase.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.xlc.tests;
-
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.lrparser.tests.ParseHelper;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCLanguage;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-
-import junit.framework.TestCase;
-
-public class XlcTestBase extends TestCase {
-
-	public XlcTestBase() {
-	}
-
-	public XlcTestBase(String name) {
-		super(name);
-	}
-
-	protected IASTTranslationUnit parse(String code, ILanguage language, boolean checkBindings) {
-		ParseHelper.Options options = new ParseHelper.Options();
-		options.setCheckSyntaxProblems(true);
-		options.setCheckPreprocessorProblems(true);
-		options.setCheckBindings(checkBindings);
-		return ParseHelper.parse(code, language, options);
-	}
-
-	protected XlcCLanguage getCLanguage() {
-		return XlcCLanguage.getDefault();
-	}
-
-	protected XlcCPPLanguage getCPPLanguage() {
-		return XlcCPPLanguage.getDefault();
-	}
-
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcCompletionHangingTest.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcCompletionHangingTest.java
deleted file mode 100644
index b6bdfef..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcCompletionHangingTest.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2010 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.xlc.tests.base;
-
-import org.eclipse.cdt.core.lrparser.tests.LRCompletionHangingTest;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCLanguage;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCPPLanguage;
-
-import junit.framework.TestSuite;
-
-public class XlcCompletionHangingTest extends LRCompletionHangingTest {
-
-	public static TestSuite suite() {
-		return new TestSuite(XlcCompletionHangingTest.class);
-	}
-
-	//TODO ??? overwrite some failed test cases
-	@Override
-	public void testCompletionTemplateClassForCPP() throws Exception {
-	}
-
-	@Override
-	public void testCompletionGnuCPP() throws Exception {
-	}
-
-	@Override
-	protected XlcCLanguage getCLanguage() {
-		return XlcCLanguage.getDefault();
-	}
-
-	@Override
-	protected XlcCPPLanguage getCPPLanguage() {
-		return XlcCPPLanguage.getDefault();
-	}
-
-	public void testCompletionXlc() throws Exception {
-
-		String code = " __static_assert" + CONTENT_ASIST_CURSOR + "(a>" + CONTENT_ASIST_CURSOR
-				+ "b, \"no 64-bit support\"); \n" + "   vector " + CONTENT_ASIST_CURSOR + "unsigned "
-				+ CONTENT_ASIST_CURSOR + "int d = ++a;        \n";
-		runTestCase(code, getCPPLanguage());
-	}
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRCPPImplicitNameTests.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRCPPImplicitNameTests.java
deleted file mode 100644
index 47f0aa2..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRCPPImplicitNameTests.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.xlc.tests.base;
-
-import org.eclipse.cdt.core.lrparser.tests.LRCPPImplicitNameTests;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCLanguage;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-
-import junit.framework.TestSuite;
-
-public class XlcLRCPPImplicitNameTests extends LRCPPImplicitNameTests {
-	public static TestSuite suite() {
-		return suite(XlcLRCPPImplicitNameTests.class);
-	}
-
-	@Override
-	protected ILanguage getCLanguage() {
-		return XlcCLanguage.getDefault();
-	}
-
-	@Override
-	protected ILanguage getCPPLanguage() {
-		return XlcCPPLanguage.getDefault();
-	}
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRCPPSpecTest.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRCPPSpecTest.java
deleted file mode 100644
index 9936cdf..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRCPPSpecTest.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.xlc.tests.base;
-
-import org.eclipse.cdt.core.lrparser.tests.LRCPPSpecTest;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCLanguage;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-
-import junit.framework.TestSuite;
-
-public class XlcLRCPPSpecTest extends LRCPPSpecTest {
-	public static TestSuite suite() {
-		return suite(XlcLRCPPSpecTest.class);
-	}
-
-	@Override
-	protected ILanguage getCLanguage() {
-		return XlcCLanguage.getDefault();
-	}
-
-	@Override
-	protected ILanguage getCPPLanguage() {
-		return XlcCPPLanguage.getDefault();
-	}
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRCPPTests.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRCPPTests.java
deleted file mode 100644
index b9d4cbb..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRCPPTests.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.xlc.tests.base;
-
-import org.eclipse.cdt.core.lrparser.tests.LRCPPTests;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCLanguage;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-import org.eclipse.cdt.core.parser.ParserLanguage;
-
-import junit.framework.TestSuite;
-
-public class XlcLRCPPTests extends LRCPPTests {
-	public static TestSuite suite() {
-		return suite(XlcLRCPPTests.class);
-	}
-
-	//CDT_70_FIX_FROM_50-#9
-	@Override
-	public void testStaticAssertions_294730() throws Exception {
-		String code = getAboveComment();
-		code = code.replaceAll("static_assert", "__static_assert");
-		parseAndCheckBindings(code, ParserLanguage.CPP);
-	}
-
-	@Override
-	protected ILanguage getCLanguage() {
-		return XlcCLanguage.getDefault();
-	}
-
-	@Override
-	protected ILanguage getCPPLanguage() {
-		return XlcCPPLanguage.getDefault();
-	}
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRCSpecTests.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRCSpecTests.java
deleted file mode 100644
index d6498da..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRCSpecTests.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.xlc.tests.base;
-
-import org.eclipse.cdt.core.lrparser.tests.LRCSpecTests;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCLanguage;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-
-import junit.framework.TestSuite;
-
-public class XlcLRCSpecTests extends LRCSpecTests {
-	public static TestSuite suite() {
-		return suite(XlcLRCSpecTests.class);
-	}
-
-	@Override
-	protected ILanguage getCLanguage() {
-		return XlcCLanguage.getDefault();
-	}
-
-	@Override
-	protected ILanguage getCPPLanguage() {
-		return XlcCPPLanguage.getDefault();
-	}
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRCommentTests.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRCommentTests.java
deleted file mode 100644
index 6e0a818..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRCommentTests.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.xlc.tests.base;
-
-import org.eclipse.cdt.core.lrparser.tests.LRCommentTests;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCLanguage;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-
-import junit.framework.TestSuite;
-
-public class XlcLRCommentTests extends LRCommentTests {
-
-	public static TestSuite suite() {
-		return suite(XlcLRCommentTests.class);
-	}
-
-	@Override
-	protected ILanguage getCLanguage() {
-		return XlcCLanguage.getDefault();
-	}
-
-	@Override
-	protected ILanguage getCPPLanguage() {
-		return XlcCPPLanguage.getDefault();
-	}
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRCompleteParser2Tests.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRCompleteParser2Tests.java
deleted file mode 100644
index 9606a17..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRCompleteParser2Tests.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.xlc.tests.base;
-
-import org.eclipse.cdt.core.lrparser.tests.LRCompleteParser2Tests;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCLanguage;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-
-import junit.framework.TestSuite;
-
-public class XlcLRCompleteParser2Tests extends LRCompleteParser2Tests {
-
-	public static TestSuite suite() {
-		return suite(XlcLRCompleteParser2Tests.class);
-	}
-
-	@Override
-	protected ILanguage getCLanguage() {
-		return XlcCLanguage.getDefault();
-	}
-
-	@Override
-	protected ILanguage getCPPLanguage() {
-		return XlcCPPLanguage.getDefault();
-	}
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRCompletionBasicTest.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRCompletionBasicTest.java
deleted file mode 100644
index 0a53f88..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRCompletionBasicTest.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.xlc.tests.base;
-
-import org.eclipse.cdt.core.lrparser.tests.LRCompletionBasicTest;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCLanguage;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-
-import junit.framework.TestSuite;
-
-public class XlcLRCompletionBasicTest extends LRCompletionBasicTest {
-	public static TestSuite suite() {
-		return suite(XlcLRCompletionBasicTest.class);
-	}
-
-	@Override
-	protected ILanguage getCLanguage() {
-		return XlcCLanguage.getDefault();
-	}
-
-	@Override
-	protected ILanguage getCPPLanguage() {
-		return XlcCPPLanguage.getDefault();
-	}
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRCompletionParseTest.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRCompletionParseTest.java
deleted file mode 100644
index a943b30..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRCompletionParseTest.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.xlc.tests.base;
-
-import org.eclipse.cdt.core.lrparser.tests.LRCompletionParseTest;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCLanguage;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-
-import junit.framework.TestSuite;
-
-public class XlcLRCompletionParseTest extends LRCompletionParseTest {
-	public static TestSuite suite() {
-		return new TestSuite(XlcLRCompletionParseTest.class);
-	}
-
-	@Override
-	protected ILanguage getCLanguage() {
-		return XlcCLanguage.getDefault();
-	}
-
-	protected ILanguage getCPPLanguage() {
-		return XlcCPPLanguage.getDefault();
-	}
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRDOMLocationMacroTests.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRDOMLocationMacroTests.java
deleted file mode 100644
index 2be4bce..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRDOMLocationMacroTests.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.xlc.tests.base;
-
-import org.eclipse.cdt.core.lrparser.tests.LRDOMLocationMacroTests;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCLanguage;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-
-import junit.framework.TestSuite;
-
-public class XlcLRDOMLocationMacroTests extends LRDOMLocationMacroTests {
-	public static TestSuite suite() {
-		return suite(XlcLRDOMLocationMacroTests.class);
-	}
-
-	@Override
-	protected ILanguage getCLanguage() {
-		return XlcCLanguage.getDefault();
-	}
-
-	@Override
-	protected ILanguage getCPPLanguage() {
-		return XlcCPPLanguage.getDefault();
-	}
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRDOMLocationTests.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRDOMLocationTests.java
deleted file mode 100644
index 9920a91..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRDOMLocationTests.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.xlc.tests.base;
-
-import org.eclipse.cdt.core.lrparser.tests.LRDOMLocationTests;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCLanguage;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-
-import junit.framework.TestSuite;
-
-public class XlcLRDOMLocationTests extends LRDOMLocationTests {
-	public static TestSuite suite() {
-		return suite(XlcLRDOMLocationTests.class);
-	}
-
-	@Override
-	protected ILanguage getCLanguage() {
-		return XlcCLanguage.getDefault();
-	}
-
-	@Override
-	protected ILanguage getCPPLanguage() {
-		return XlcCPPLanguage.getDefault();
-	}
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRDOMPreprocessorInformationTest.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRDOMPreprocessorInformationTest.java
deleted file mode 100644
index 0ea3ab3..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRDOMPreprocessorInformationTest.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.xlc.tests.base;
-
-import org.eclipse.cdt.core.lrparser.tests.LRDOMPreprocessorInformationTest;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCLanguage;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-
-import junit.framework.TestSuite;
-
-public class XlcLRDOMPreprocessorInformationTest extends LRDOMPreprocessorInformationTest {
-	public static TestSuite suite() {
-		return suite(XlcLRDOMPreprocessorInformationTest.class);
-	}
-
-	@Override
-	protected ILanguage getCLanguage() {
-		return XlcCLanguage.getDefault();
-	}
-
-	@Override
-	protected ILanguage getCPPLanguage() {
-		return XlcCPPLanguage.getDefault();
-	}
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRDigraphTrigraphTests.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRDigraphTrigraphTests.java
deleted file mode 100644
index bfb7b30..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRDigraphTrigraphTests.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.xlc.tests.base;
-
-import org.eclipse.cdt.core.lrparser.tests.LRDigraphTrigraphTests;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCLanguage;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-
-import junit.framework.TestSuite;
-
-public class XlcLRDigraphTrigraphTests extends LRDigraphTrigraphTests {
-
-	public static TestSuite suite() {
-		return new TestSuite(XlcLRDigraphTrigraphTests.class);
-	}
-
-	@Override
-	protected ILanguage getCLanguage() {
-		return XlcCLanguage.getDefault();
-	}
-
-	protected ILanguage getCPPLanguage() {
-		return XlcCPPLanguage.getDefault();
-	}
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRGCCCompleteParseExtensionsTest.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRGCCCompleteParseExtensionsTest.java
deleted file mode 100644
index 593c137..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRGCCCompleteParseExtensionsTest.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.xlc.tests.base;
-
-import org.eclipse.cdt.core.lrparser.tests.LRGCCCompleteParseExtensionsTest;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCLanguage;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-
-import junit.framework.TestSuite;
-
-public class XlcLRGCCCompleteParseExtensionsTest extends LRGCCCompleteParseExtensionsTest {
-	public static TestSuite suite() {
-		return suite(XlcLRGCCCompleteParseExtensionsTest.class);
-	}
-
-	@Override
-	protected ILanguage getCLanguage() {
-		return XlcCLanguage.getDefault();
-	}
-
-	@Override
-	protected ILanguage getCPPLanguage() {
-		return XlcCPPLanguage.getDefault();
-	}
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRGCCTests.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRGCCTests.java
deleted file mode 100644
index f21a19a..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRGCCTests.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.xlc.tests.base;
-
-import org.eclipse.cdt.core.lrparser.tests.LRGCCTests;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCLanguage;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-
-import junit.framework.TestSuite;
-
-public class XlcLRGCCTests extends LRGCCTests {
-	public static TestSuite suite() {
-		return suite(XlcLRGCCTests.class);
-	}
-
-	@Override
-	protected ILanguage getCLanguage() {
-		return XlcCLanguage.getDefault();
-	}
-
-	@Override
-	protected ILanguage getCPPLanguage() {
-		return XlcCPPLanguage.getDefault();
-	}
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRImageLocationTests.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRImageLocationTests.java
deleted file mode 100644
index f77ab28..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRImageLocationTests.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.xlc.tests.base;
-
-import org.eclipse.cdt.core.lrparser.tests.LRImageLocationTests;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCLanguage;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-
-import junit.framework.TestSuite;
-
-public class XlcLRImageLocationTests extends LRImageLocationTests {
-	public static TestSuite suite() {
-		return suite(XlcLRImageLocationTests.class);
-	}
-
-	@Override
-	protected ILanguage getCLanguage() {
-		return XlcCLanguage.getDefault();
-	}
-
-	@Override
-	protected ILanguage getCPPLanguage() {
-		return XlcCPPLanguage.getDefault();
-	}
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRInactiveCodeTests.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRInactiveCodeTests.java
deleted file mode 100644
index 4c39e6a..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRInactiveCodeTests.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.xlc.tests.base;
-
-import org.eclipse.cdt.core.lrparser.tests.LRInactiveCodeTests;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCLanguage;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-
-import junit.framework.TestSuite;
-
-public class XlcLRInactiveCodeTests extends LRInactiveCodeTests {
-	public static TestSuite suite() {
-		return suite(XlcLRInactiveCodeTests.class);
-	}
-
-	@Override
-	protected ILanguage getCLanguage() {
-		return XlcCLanguage.getDefault();
-	}
-
-	@Override
-	protected ILanguage getCPPLanguage() {
-		return XlcCPPLanguage.getDefault();
-	}
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRKnRTests.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRKnRTests.java
deleted file mode 100644
index 9e1f5d2..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRKnRTests.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.xlc.tests.base;
-
-import org.eclipse.cdt.core.lrparser.tests.LRKnRTests;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCLanguage;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-
-import junit.framework.TestSuite;
-
-public class XlcLRKnRTests extends LRKnRTests {
-	public static TestSuite suite() {
-		return suite(XlcLRKnRTests.class);
-	}
-
-	@Override
-	protected ILanguage getCLanguage() {
-		return XlcCLanguage.getDefault();
-	}
-
-	@Override
-	protected ILanguage getCPPLanguage() {
-		return XlcCPPLanguage.getDefault();
-	}
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRNodeSelectorTest.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRNodeSelectorTest.java
deleted file mode 100644
index 6d394b7..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRNodeSelectorTest.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.xlc.tests.base;
-
-import org.eclipse.cdt.core.lrparser.tests.LRNodeSelectorTest;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCLanguage;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-
-import junit.framework.TestSuite;
-
-public class XlcLRNodeSelectorTest extends LRNodeSelectorTest {
-	public static TestSuite suite() {
-		return suite(XlcLRNodeSelectorTest.class);
-	}
-
-	@Override
-	protected ILanguage getCLanguage() {
-		return XlcCLanguage.getDefault();
-	}
-
-	@Override
-	protected ILanguage getCPPLanguage() {
-		return XlcCPPLanguage.getDefault();
-	}
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRParserTestSuite.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRParserTestSuite.java
deleted file mode 100644
index 4db01c5..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRParserTestSuite.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.xlc.tests.base;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class XlcLRParserTestSuite extends TestSuite {
-
-	// TODO: the following test are not being reused
-	//
-	// DOMGCCSelectionParseExtensionsTest
-	// DOMSelectionParseTest
-	// GCCCompleteParseExtensionsTest
-	// QuickParser2Tests
-	//
-	// and perhaps others
-
-	public static Test suite() {
-		return new TestSuite() {
-			{
-
-				addTest(XlcLRCommentTests.suite());
-				addTest(XlcLRCompleteParser2Tests.suite());
-				addTest(XlcLRCompletionBasicTest.suite());
-				addTest(XlcLRCompletionParseTest.suite());
-				addTest(XlcLRCPPSpecTest.suite());
-				addTest(XlcLRCPPTests.suite());
-				addTest(XlcLRCSpecTests.suite()); // a couple of failures
-				addTest(XlcLRDigraphTrigraphTests.suite());
-				addTest(XlcLRDOMLocationMacroTests.suite());
-				addTest(XlcLRDOMLocationTests.suite());
-				addTest(XlcLRDOMPreprocessorInformationTest.suite());
-				addTest(XlcLRGCCTests.suite());
-				addTest(XlcLRGCCCompleteParseExtensionsTest.suite());
-				addTest(XlcLRImageLocationTests.suite());
-				addTest(XlcLRKnRTests.suite()); // mostly fail due to ambiguities
-				addTest(XlcLRNodeSelectorTest.suite());
-				addTest(XlcLRQuickParser2Tests.suite());
-				addTest(XlcLRSelectionParseTest.suite()); // this one still has a lot of failing tests though
-				addTest(XlcLRSemanticsTests.suite());
-				addTest(XlcLRTaskParserTest.suite());
-				addTest(XlcLRTemplateTests.suite());
-				addTest(XlcLRTests.suite()); // has some tests that do fail
-				addTest(XlcLRUtilOldTests.suite());
-				addTest(XlcLRUtilTests.suite());
-				addTest(XlcCompletionHangingTest.suite());
-				addTest(XlcLRCPPImplicitNameTests.suite());
-				//addTest(LRInactiveCodeTests.suite());
-
-			}
-		};
-	}
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRQuickParser2Tests.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRQuickParser2Tests.java
deleted file mode 100644
index 76538c7..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRQuickParser2Tests.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.xlc.tests.base;
-
-import org.eclipse.cdt.core.lrparser.tests.LRQuickParser2Tests;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCLanguage;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-
-import junit.framework.TestSuite;
-
-public class XlcLRQuickParser2Tests extends LRQuickParser2Tests {
-	public static TestSuite suite() {
-		return new TestSuite(XlcLRQuickParser2Tests.class);
-	}
-
-	@Override
-	protected ILanguage getCLanguage() {
-		return XlcCLanguage.getDefault();
-	}
-
-	@Override
-	protected ILanguage getCPPLanguage() {
-		return XlcCPPLanguage.getDefault();
-	}
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRSelectionParseTest.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRSelectionParseTest.java
deleted file mode 100644
index 0ac2dc4..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRSelectionParseTest.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.xlc.tests.base;
-
-import org.eclipse.cdt.core.lrparser.tests.LRSelectionParseTest;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCLanguage;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-
-import junit.framework.TestSuite;
-
-public class XlcLRSelectionParseTest extends LRSelectionParseTest {
-
-	public XlcLRSelectionParseTest() {
-	}
-
-	public XlcLRSelectionParseTest(String name) {
-		super(name);
-	}
-
-	public static TestSuite suite() {
-		return new TestSuite(XlcLRSelectionParseTest.class);
-	}
-
-	@Override
-	protected ILanguage getCLanguage() {
-		return XlcCLanguage.getDefault();
-	}
-
-	@Override
-	protected ILanguage getCPPLanguage() {
-		return XlcCPPLanguage.getDefault();
-	}
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRSemanticsTests.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRSemanticsTests.java
deleted file mode 100644
index 051df1b..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRSemanticsTests.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.xlc.tests.base;
-
-import org.eclipse.cdt.core.lrparser.tests.LRSemanticsTests;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCLanguage;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-
-import junit.framework.TestSuite;
-
-public class XlcLRSemanticsTests extends LRSemanticsTests {
-	public static TestSuite suite() {
-		return suite(XlcLRSemanticsTests.class);
-	}
-
-	@Override
-	protected ILanguage getCLanguage() {
-		return XlcCLanguage.getDefault();
-	}
-
-	@Override
-	protected ILanguage getCPPLanguage() {
-		return XlcCPPLanguage.getDefault();
-	}
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRTaskParserTest.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRTaskParserTest.java
deleted file mode 100644
index b2998bd..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRTaskParserTest.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.xlc.tests.base;
-
-import org.eclipse.cdt.core.lrparser.tests.LRTaskParserTest;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCLanguage;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-
-import junit.framework.TestSuite;
-
-public class XlcLRTaskParserTest extends LRTaskParserTest {
-	public static TestSuite suite() {
-		return suite(XlcLRTaskParserTest.class);
-	}
-
-	@Override
-	protected ILanguage getCLanguage() {
-		return XlcCLanguage.getDefault();
-	}
-
-	@Override
-	protected ILanguage getCPPLanguage() {
-		return XlcCPPLanguage.getDefault();
-	}
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRTemplateTests.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRTemplateTests.java
deleted file mode 100644
index d6f5e0f..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRTemplateTests.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.xlc.tests.base;
-
-import org.eclipse.cdt.core.lrparser.tests.LRTemplateTests;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCLanguage;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-
-import junit.framework.TestSuite;
-
-public class XlcLRTemplateTests extends LRTemplateTests {
-	public static TestSuite suite() {
-		return suite(XlcLRTemplateTests.class);
-	}
-
-	@Override
-	protected ILanguage getCLanguage() {
-		return XlcCLanguage.getDefault();
-	}
-
-	@Override
-	protected ILanguage getCPPLanguage() {
-		return XlcCPPLanguage.getDefault();
-	}
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRTests.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRTests.java
deleted file mode 100644
index c8a2d96..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRTests.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.xlc.tests.base;
-
-import org.eclipse.cdt.core.lrparser.tests.LRTests;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCLanguage;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-
-import junit.framework.TestSuite;
-
-public class XlcLRTests extends LRTests {
-
-	public XlcLRTests(String name) {
-		super(name);
-		// TODO Auto-generated constructor stub
-	}
-
-	public static TestSuite suite() {
-		return suite(XlcLRTests.class);
-	}
-
-	@Override
-	protected ILanguage getCLanguage() {
-		return XlcCLanguage.getDefault();
-	}
-
-	@Override
-	protected ILanguage getCPPLanguage() {
-		return XlcCPPLanguage.getDefault();
-	}
-
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRUtilOldTests.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRUtilOldTests.java
deleted file mode 100644
index 65d1362..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRUtilOldTests.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.xlc.tests.base;
-
-import org.eclipse.cdt.core.lrparser.tests.LRUtilOldTests;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCLanguage;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-
-import junit.framework.TestSuite;
-
-public class XlcLRUtilOldTests extends LRUtilOldTests {
-	public static TestSuite suite() {
-		return suite(XlcLRUtilOldTests.class);
-	}
-
-	@Override
-	protected ILanguage getCLanguage() {
-		return XlcCLanguage.getDefault();
-	}
-
-	@Override
-	protected ILanguage getCPPLanguage() {
-		return XlcCPPLanguage.getDefault();
-	}
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRUtilTests.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRUtilTests.java
deleted file mode 100644
index c6076bd..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRUtilTests.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.xlc.tests.base;
-
-import org.eclipse.cdt.core.lrparser.tests.LRUtilTests;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCLanguage;
-import org.eclipse.cdt.core.lrparser.xlc.XlcCPPLanguage;
-import org.eclipse.cdt.core.model.ILanguage;
-
-import junit.framework.TestSuite;
-
-public class XlcLRUtilTests extends LRUtilTests {
-	public static TestSuite suite() {
-		return suite(XlcLRUtilTests.class);
-	}
-
-	@Override
-	protected ILanguage getCLanguage() {
-		return XlcCLanguage.getDefault();
-	}
-
-	@Override
-	protected ILanguage getCPPLanguage() {
-		return XlcCPPLanguage.getDefault();
-	}
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/suite/AutomatedIntegrationSuite.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/suite/AutomatedIntegrationSuite.java
deleted file mode 100644
index 9e612d9..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/suite/AutomatedIntegrationSuite.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.parser.xlc.tests.suite;
-
-import org.eclipse.cdt.core.parser.xlc.tests.XlcExtensionsTestSuite;
-import org.eclipse.cdt.core.parser.xlc.tests.base.XlcLRParserTestSuite;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class AutomatedIntegrationSuite extends TestSuite {
-
-	public static Test suite() {
-		return new TestSuite() {
-			{
-				addTest(XlcExtensionsTestSuite.suite());
-				addTest(XlcLRParserTestSuite.suite());
-			}
-		};
-	}
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/.classpath b/xlc/org.eclipse.cdt.core.lrparser.xlc/.classpath
deleted file mode 100644
index a7e2cc5..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/.classpath
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="parser"/>
-	<classpathentry kind="src" path="ui"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/.project b/xlc/org.eclipse.cdt.core.lrparser.xlc/.project
deleted file mode 100644
index 3bfc968..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.cdt.core.lrparser.xlc</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/.settings/org.eclipse.jdt.core.prefs b/xlc/org.eclipse.cdt.core.lrparser.xlc/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 2b6ecff..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,464 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch, *.xtend
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.mainOnlyProjectHasTestOnlyDependency=error
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.APILeak=warning
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
-org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
-org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
-org.eclipse.jdt.core.formatter.align_with_spaces=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
-org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped=true
-org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=true
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
-org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/.settings/org.eclipse.jdt.launching.prefs b/xlc/org.eclipse.cdt.core.lrparser.xlc/.settings/org.eclipse.jdt.launching.prefs
deleted file mode 100644
index f8a131b..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/.settings/org.eclipse.jdt.launching.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.launching.PREF_COMPILER_COMPLIANCE_DOES_NOT_MATCH_JRE=warning
-org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=warning
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/.settings/org.eclipse.jdt.ui.prefs b/xlc/org.eclipse.cdt.core.lrparser.xlc/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index e445763..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,133 +0,0 @@
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_missing_override_annotations_interface_methods=true
-cleanup.add_serial_version_id=false
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_functional_interfaces=false
-cleanup.convert_to_enhanced_for_loop=false
-cleanup.correct_indentation=false
-cleanup.format_source_code=true
-cleanup.format_source_code_changes_only=false
-cleanup.insert_inferred_type_arguments=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=true
-cleanup.qualify_static_field_accesses_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=false
-cleanup.qualify_static_method_accesses_with_declaring_class=false
-cleanup.remove_private_constructors=true
-cleanup.remove_redundant_modifiers=false
-cleanup.remove_redundant_semicolons=true
-cleanup.remove_redundant_type_arguments=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=false
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_anonymous_class_creation=false
-cleanup.use_blocks=false
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_lambda=true
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup_profile=_CDT
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_CDT
-formatter_settings_version=14
-internal.default.compliance=user
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.ondemandthreshold=1000
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.staticondemandthreshold=1000
-org.eclipse.jdt.ui.text.custom_code_templates=
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_functional_interfaces=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.insert_inferred_type_arguments=false
-sp_cleanup.make_local_variable_final=true
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_redundant_modifiers=false
-sp_cleanup.remove_redundant_semicolons=true
-sp_cleanup.remove_redundant_type_arguments=true
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=true
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_anonymous_class_creation=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_lambda=true
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/.settings/org.eclipse.pde.api.tools.prefs b/xlc/org.eclipse.cdt.core.lrparser.xlc/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index ec9fbf3..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,184 +0,0 @@
-ANNOTATION_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITH_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-API_USE_SCAN_FIELD_SEVERITY=Error
-API_USE_SCAN_METHOD_SEVERITY=Error
-API_USE_SCAN_TYPE_SEVERITY=Error
-CLASS_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERCLASS_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_CHANGED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENTS=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETERS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_ANNOTATION=Ignore
-INVALID_JAVADOC_TAG=Error
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Warning
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-MISSING_EE_DESCRIPTIONS=Warning
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-automatically_removed_unused_problem_filters=false
-changed_execution_env=Error
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-incompatible_api_component_version_report_major_without_breaking_change=Warning
-incompatible_api_component_version_report_minor_without_api_change=Warning
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/.settings/org.eclipse.pde.prefs b/xlc/org.eclipse.cdt.core.lrparser.xlc/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index d2dc703..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,35 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.build.bin.includes=1
-compilers.p.build.encodings=2
-compilers.p.build.java.compiler=2
-compilers.p.build.java.compliance=1
-compilers.p.build.missing.output=2
-compilers.p.build.output.library=1
-compilers.p.build.source.library=1
-compilers.p.build.src.includes=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=1
-compilers.p.missing-packages=2
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=2
-compilers.p.missing-version-require-bundle=2
-compilers.p.no-required-att=0
-compilers.p.no.automatic.module=1
-compilers.p.not-externalized-att=1
-compilers.p.service.component.without.lazyactivation=1
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/META-INF/MANIFEST.MF b/xlc/org.eclipse.cdt.core.lrparser.xlc/META-INF/MANIFEST.MF
deleted file mode 100644
index db79790..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,26 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Bundle-Name.1
-Bundle-SymbolicName: org.eclipse.cdt.core.lrparser.xlc;singleton:=true
-Bundle-Version: 5.1.100.qualifier
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.cdt.core;bundle-version="5.1.0",
- org.eclipse.cdt.core.lrparser;bundle-version="5.1.0",
- org.eclipse.core.runtime;bundle-version="3.5.0",
- org.eclipse.core.resources;bundle-version="3.5.0",
- org.eclipse.cdt.ui;bundle-version="5.1.0",
- org.eclipse.ui;bundle-version="3.5.0"
-Export-Package: org.eclipse.cdt.core.lrparser.xlc,
- org.eclipse.cdt.core.lrparser.xlc.action,
- org.eclipse.cdt.core.lrparser.xlc.activator,
- org.eclipse.cdt.core.lrparser.xlc.ast,
- org.eclipse.cdt.core.lrparser.xlc.preferences,
- org.eclipse.cdt.internal.core.lrparser.xlc.ast,
- org.eclipse.cdt.internal.core.lrparser.xlc.c,
- org.eclipse.cdt.internal.core.lrparser.xlc.cpp,
- org.eclipse.cdt.internal.core.lrparser.xlc.ui.preferences
-Bundle-ActivationPolicy: lazy
-Bundle-Activator: org.eclipse.cdt.core.lrparser.xlc.activator.XlcParserPlugin
-Bundle-Vendor: %Bundle-Vendor.0
-Automatic-Module-Name: org.eclipse.cdt.core.lrparser.xlc
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/about.html b/xlc/org.eclipse.cdt.core.lrparser.xlc/about.html
deleted file mode 100644
index 164f781..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
-	<h2>About This Content</h2>
-
-	<p>November 30, 2017</p>
-	<h3>License</h3>
-
-	<p>
-		The Eclipse Foundation makes available all content in this plug-in
-		(&quot;Content&quot;). Unless otherwise indicated below, the Content
-		is provided to you under the terms and conditions of the Eclipse
-		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
-		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>
-		If you did not receive this Content directly from the Eclipse
-		Foundation, the Content is being redistributed by another party
-		(&quot;Redistributor&quot;) and different terms and conditions may
-		apply to your use of any object code in the Content. Check the
-		Redistributor's license that was provided with the Content. If no such
-		license exists, contact the Redistributor. Unless otherwise indicated
-		below, the terms and conditions of the EPL still apply to any source
-		code in the Content and such source code may be obtained at <a
-			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
-	</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/build.properties b/xlc/org.eclipse.cdt.core.lrparser.xlc/build.properties
deleted file mode 100644
index e27218e..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/build.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-###############################################################################
-# Copyright (c) 2009 IBM Corporation and others.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-source.. = parser/,\
-		   ui/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.xml,\
-               plugin.properties,\
-               about.html
-src.includes = about.html
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/grammar/build.xml b/xlc/org.eclipse.cdt.core.lrparser.xlc/grammar/build.xml
deleted file mode 100644
index 8b6cc55..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/grammar/build.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-<!--
- Copyright (c) 2009, 2010 IBM Corporation and others.
- This program and the accompanying materials
- are made available under the terms of the Eclipse Public License 2.0
- which accompanies this distribution, and is available at
- https://www.eclipse.org/legal/epl-2.0/
- 
- SPDX-License-Identifier: EPL-2.0
-
- Contributors:
-     IBM Corporation - initial API and implementation
--->
-
-<project name="XLC Parsers" default="c" basedir=".">
-
-	<import file="../../org.eclipse.cdt.core.lrparser/grammar/generate.xml" />
-
-	<property name="c_location" value="../parser/org/eclipse/cdt/internal/core/lrparser/xlc/c" />
-	<property name="cpp_location" value="../parser/org/eclipse/cdt/internal/core/lrparser/xlc/cpp" />
-
-
-	<target name="c">
-		<antcall target="generate_c">
-			<param name="grammar_name" value="XlcCParser" />
-		</antcall>
-	</target>
-
-	<target name="cpp">
-		<antcall target="generate_cpp">
-			<param name="grammar_name" value="XlcCPPParser" />
-		</antcall>
-	</target>
-
-
-	<target name="generate_c">
-		<property name="lpg_include" value="${lpg_include_loc}/gcc" />
-		<antcall target="generate">
-			<param name="grammar_dir" value="xlc" />
-			<param name="output_dir" value="${c_location}" />
-			<param name="grammar_name" value="${grammar_name}" />
-		</antcall>
-	</target>
-
-	<target name="generate_cpp">
-		<property name="lpg_include" value="${lpg_include_loc}/gpp" />
-		<antcall target="generate">
-			<param name="grammar_dir" value="xlc" />
-			<param name="output_dir" value="${cpp_location}" />
-			<param name="grammar_name" value="${grammar_name}" />
-		</antcall>
-	</target>
-
-	<target name="clean_l_files">
-		<delete>
-
-			<fileset dir="${c_location}" includes="**/*.l" />
-			<fileset dir="${cpp_location}" includes="**/*.l" />
-
-		</delete>
-	</target>
-
-</project>
\ No newline at end of file
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/grammar/parserBuild.properties b/xlc/org.eclipse.cdt.core.lrparser.xlc/grammar/parserBuild.properties
deleted file mode 100644
index 819371e..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/grammar/parserBuild.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2010 IBM Corporation and others.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-lpg_exe=D:/lpg/lpgdistribution/lpgexe/lpg.exe
-lpg_template=D:/newWorkspace/rdp80_dev/org.eclipse.cdt.core.lrparser/grammar/template
-lpg_include_loc=D:/newWorkspace/rdp80_dev/org.eclipse.cdt.core.lrparser/grammar
\ No newline at end of file
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/grammar/xlc/XlcCPPParser.g b/xlc/org.eclipse.cdt.core.lrparser.xlc/grammar/xlc/XlcCPPParser.g
deleted file mode 100644
index 17216a7..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/grammar/xlc/XlcCPPParser.g
+++ /dev/null
@@ -1,110 +0,0 @@
------------------------------------------------------------------------------------
--- Copyright (c) 2009, 2010 IBM Corporation and others.
--- This program and the accompanying materials
--- are made available under the terms of the Eclipse Public License 2.0
--- which accompanies this distribution, and is available at
--- https://www.eclipse.org/legal/epl-2.0/
---
--- SPDX-License-Identifier: EPL-2.0
---
--- Contributors:
---     IBM Corporation - initial API and implementation
------------------------------------------------------------------------------------
-
-%options la=2
-%options package=org.eclipse.cdt.internal.core.lrparser.xlc.cpp
-%options template=LRParserTemplate.g
-
-
-$Import
-	GPPGrammar.g
-$End
-
-$Import
-	XlcGrammarExtensions.g
-$End 
-
-$Globals
-/.
-	import org.eclipse.cdt.core.lrparser.xlc.action.XlcCPPBuildASTParserAction;
-	import org.eclipse.cdt.core.dom.lrparser.action.gnu.GPPSecondaryParserFactory;
-	import org.eclipse.cdt.internal.core.lrparser.xlc.ast.XlcCPPNodeFactory;
-./
-$End
-
-$Define
-
-	$build_action_class /. XlcCPPBuildASTParserAction ./
-	$parser_factory_create_expression /. GPPSecondaryParserFactory.getDefault() ./
-	$node_factory_create_expression /. XlcCPPNodeFactory.getDefault() ./
-	
-$End
-
-
-
-$Terminals
-
-	restrict
-	
-$End
-
-
-$Start
-    translation_unit
-$End
-
-
-$Rules 
-
-	
-cv_qualifier
-    ::= 'restrict'
-
-block_declaration
-    ::= vector_declaration
-      | static_assert_declaration
-    
-
-identifier_token
-    ::= 'vector' 
-      | 'pixel'
-    
-    
-specifier_qualifier
-    ::= 'typedef'
-          /. $Build  consumeToken(); $EndBuild ./
-          
-          
-array_modifier 
-    ::= '[' <openscope-ast> array_modifier_type_qualifiers ']'
-          /. $Build  consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false);  $EndBuild ./
-      | '[' <openscope-ast> array_modifier_type_qualifiers assignment_expression ']'
-          /. $Build  consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true);  $EndBuild ./
-      | '[' 'static' assignment_expression ']'
-          /. $Build  consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true);  $EndBuild ./
-      | '[' 'static' <openscope-ast> array_modifier_type_qualifiers assignment_expression ']'
-          /. $Build  consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true);  $EndBuild ./
-      | '[' <openscope-ast> array_modifier_type_qualifiers 'static' assignment_expression ']'
-          /. $Build  consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true);  $EndBuild ./
-      | '[' '*' ']'
-          /. $Build  consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false);  $EndBuild ./
-      | '[' <openscope-ast> array_modifier_type_qualifiers '*' ']'
-          /. $Build  consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false);  $EndBuild ./
-          
-          
-array_modifier_type_qualifiers
-    ::= type_qualifier_list 
-    
-type_qualifier_list
-    ::= cv_qualifier         
-      | type_qualifier_list cv_qualifier
-
-member_declaration
-    ::= static_assert_declaration
-    
-static_assert_declaration 
-    ::= '__static_assert'  '(' expression ',' literal ')' ';'
-        /. $Build  consumeCPPASTStaticAssertDeclaration();  $EndBuild ./
-
-          
-$End
\ No newline at end of file
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/grammar/xlc/XlcCParser.g b/xlc/org.eclipse.cdt.core.lrparser.xlc/grammar/xlc/XlcCParser.g
deleted file mode 100644
index 3f62538..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/grammar/xlc/XlcCParser.g
+++ /dev/null
@@ -1,69 +0,0 @@
------------------------------------------------------------------------------------
--- Copyright (c) 2009 IBM Corporation and others.
--- This program and the accompanying materials
--- are made available under the terms of the Eclipse Public License 2.0
--- which accompanies this distribution, and is available at
--- https://www.eclipse.org/legal/epl-2.0/
---
--- SPDX-License-Identifier: EPL-2.0
---
--- Contributors:
---     IBM Corporation - initial API and implementation
------------------------------------------------------------------------------------
-
-%options la=2
-%options package=org.eclipse.cdt.internal.core.lrparser.xlc.c
-%options template=LRParserTemplate.g
-
-
-$Import
-	GCCGrammar.g
-$End
-
-$Import
-	XlcGrammarExtensions.g
-$End
-
-
-$Globals
-/.
-	import org.eclipse.cdt.core.lrparser.xlc.action.XlcCBuildASTParserAction;
-	import org.eclipse.cdt.core.dom.lrparser.action.gnu.GCCSecondaryParserFactory;
-	import org.eclipse.cdt.internal.core.lrparser.xlc.ast.XlcCNodeFactory;
-./
-$End
-
-
-$Define
-
-	$build_action_class /. XlcCBuildASTParserAction ./
-	$parser_factory_create_expression /. GCCSecondaryParserFactory.getDefault() ./
-	$node_factory_create_expression /. XlcCNodeFactory.getDefault() ./
-	
-$End
-
-
-$Start
-    translation_unit
-$End
-
-
-$Rules 
-
-declaration
-    ::= vector_declaration
-    
-identifier_token
-    ::= 'pixel'
-      | 'vector'
-      | 'bool'
-      
-declarator_id_name
-    ::= 'pixel'
-           /. $Build  consumeIdentifierName();  $EndBuild ./
-      | 'vector'
-           /. $Build  consumeIdentifierName();  $EndBuild ./
-      | 'bool'
-           /. $Build  consumeIdentifierName();  $EndBuild ./
-    
-$End
\ No newline at end of file
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/grammar/xlc/XlcGrammarExtensions.g b/xlc/org.eclipse.cdt.core.lrparser.xlc/grammar/xlc/XlcGrammarExtensions.g
deleted file mode 100644
index 96508f1..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/grammar/xlc/XlcGrammarExtensions.g
+++ /dev/null
@@ -1,97 +0,0 @@
------------------------------------------------------------------------------------
--- Copyright (c) 2009, 2010 IBM Corporation and others.
--- This program and the accompanying materials
--- are made available under the terms of the Eclipse Public License 2.0
--- which accompanies this distribution, and is available at
--- https://www.eclipse.org/legal/epl-2.0/
---
--- SPDX-License-Identifier: EPL-2.0
---
--- Contributors:
---     IBM Corporation - initial API and implementation
------------------------------------------------------------------------------------
-
-
---  These are additional rules that allow for parsing of GNU extensions.
---  This file is intended to be mixed-in with C99Parser.g or GPPParser.g
-
-
-$Terminals
-
-	vector
-	pixel
-	bool
-	
-	_Decimal32
-	_Decimal64
-	_Decimal128
-	__static_assert
-	
-$End
-
-
-
-
-
-$Rules
-
-
-
-simple_type_specifier_token
-    ::= '_Decimal32'
-      | '_Decimal64'
-      | '_Decimal128'
-
-
-type_id
-    ::= vector_type
-          /. $Build  consumeTypeId(false);  $EndBuild ./
-      | vector_type abstract_declarator
-          /. $Build  consumeTypeId(true);  $EndBuild ./
-
-vector_declaration
-    ::= vector_type <openscope-ast> init_declarator_list ';'
-	      /. $Build  consumeDeclarationSimple(true);  $EndBuild ./
-	      
-	      
-vector_type
-    ::= <openscope-ast> no_type_declaration_specifiers_opt 'vector' vector_type_specifier all_specifier_qualifier_list_opt
-          /. $Build  consumeVectorTypeSpecifier();  $EndBuild ./
-      
-      
-vector_type_specifier
-    ::= vector_type_specifier_token
-          /. $Build  consumeToken();  $EndBuild ./
-      
-vector_type_specifier_token
-    ::= 'pixel'
-      | 'float'
-      | 'bool'
-      | 'signed'
-      | 'unsigned'
-      | 'char'
-      | 'short'
-      | 'int'
-      | 'long'
-
-
-
-all_specifier_qualifiers
-    ::= vector_type_specifier
-      | no_type_declaration_specifiers
-      
-all_specifier_qualifier_list
-    ::= all_specifier_qualifiers
-      | all_specifier_qualifier_list all_specifier_qualifiers
-      
-all_specifier_qualifier_list_opt
-    ::= all_specifier_qualifier_list
-      | $empty
-
-no_type_declaration_specifiers_opt
-    ::= no_type_declaration_specifiers
-      | $empty
-
-
-$End
-
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/XlcCLanguage.java b/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/XlcCLanguage.java
deleted file mode 100644
index 43e10c2..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/XlcCLanguage.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2015 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.xlc;
-
-import static org.eclipse.cdt.core.lrparser.xlc.XlcCPPLanguage.getPref;
-import static org.eclipse.cdt.core.lrparser.xlc.XlcCPPLanguage.getProject;
-
-import java.util.Map;
-
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.lrparser.IParser;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GCCLanguage;
-import org.eclipse.cdt.core.dom.parser.IScannerExtensionConfiguration;
-import org.eclipse.cdt.core.index.IIndex;
-import org.eclipse.cdt.core.lrparser.xlc.preferences.XlcPref;
-import org.eclipse.cdt.core.model.ICLanguageKeywords;
-import org.eclipse.cdt.core.parser.IScanner;
-import org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParser;
-import org.eclipse.core.resources.IProject;
-
-/**
- *
- * @author Mike Kucera
- */
-public class XlcCLanguage extends GCCLanguage {
-
-	public static final String ID = "org.eclipse.cdt.core.lrparser.xlc.c"; //$NON-NLS-1$
-
-	private static XlcCLanguage DEFAULT = new XlcCLanguage();
-
-	public static XlcCLanguage getDefault() {
-		return DEFAULT;
-	}
-
-	@Override
-	protected IParser<IASTTranslationUnit> getParser(IScanner scanner, IIndex index, Map<String, String> properties) {
-		IProject project = getProject(properties);
-		boolean supportVectors = getPref(XlcPref.SUPPORT_VECTOR_TYPES, project);
-		boolean supportDecimals = getPref(XlcPref.SUPPORT_DECIMAL_FLOATING_POINT_TYPES, project);
-
-		return new XlcCParser(scanner, new XlcCTokenMap(supportVectors, supportDecimals), getBuiltinBindingsProvider(),
-				index, properties);
-	}
-
-	@Override
-	public String getId() {
-		return ID;
-	}
-
-	@Override
-	protected IScannerExtensionConfiguration getScannerExtensionConfiguration() {
-		return XlcCScannerExtensionConfiguration.getInstance();
-	}
-
-	@Override
-	public <T> T getAdapter(Class<T> adapter) {
-		if (ICLanguageKeywords.class.equals(adapter))
-			return adapter.cast(XlcKeywords.ALL_C_KEYWORDS);
-
-		return super.getAdapter(adapter);
-	}
-
-}
\ No newline at end of file
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/XlcCPPLanguage.java b/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/XlcCPPLanguage.java
deleted file mode 100644
index 1c627f6..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/XlcCPPLanguage.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2015 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.xlc;
-
-import java.util.Map;
-
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
-import org.eclipse.cdt.core.dom.lrparser.IParser;
-import org.eclipse.cdt.core.dom.lrparser.LRParserProperties;
-import org.eclipse.cdt.core.dom.lrparser.gnu.GPPLanguage;
-import org.eclipse.cdt.core.dom.parser.IScannerExtensionConfiguration;
-import org.eclipse.cdt.core.index.IIndex;
-import org.eclipse.cdt.core.lrparser.xlc.preferences.XlcLanguagePreferences;
-import org.eclipse.cdt.core.lrparser.xlc.preferences.XlcPref;
-import org.eclipse.cdt.core.model.ICLanguageKeywords;
-import org.eclipse.cdt.core.parser.IScanner;
-import org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParser;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.Path;
-
-/**
- *
- * @author Mike Kucera
- */
-public class XlcCPPLanguage extends GPPLanguage {
-
-	public static final String ID = "org.eclipse.cdt.core.lrparser.xlc.cpp"; //$NON-NLS-1$
-
-	private static XlcCPPLanguage DEFAULT = new XlcCPPLanguage();
-
-	public static XlcCPPLanguage getDefault() {
-		return DEFAULT;
-	}
-
-	static IProject getProject(Map<String, String> properties) {
-		String path = properties.get(LRParserProperties.TRANSLATION_UNIT_PATH);
-		IFile[] file = ResourcesPlugin.getWorkspace().getRoot().findFilesForLocation(new Path(path));
-
-		IProject project = null;
-		if (file != null && file.length > 0) {
-			project = file[0].getProject();
-		}
-
-		return project;
-	}
-
-	static boolean getPref(XlcPref key, IProject project) {
-		return Boolean.valueOf(XlcLanguagePreferences.get(key, project));
-	}
-
-	@Override
-	protected IParser<IASTTranslationUnit> getParser(IScanner scanner, IIndex index, Map<String, String> properties) {
-		IProject project = getProject(properties);
-		boolean supportVectors = getPref(XlcPref.SUPPORT_VECTOR_TYPES, project);
-		boolean supportDecimals = getPref(XlcPref.SUPPORT_DECIMAL_FLOATING_POINT_TYPES, project);
-		boolean supportComplex = getPref(XlcPref.SUPPORT_COMPLEX_IN_CPP, project);
-		boolean supportRestrict = getPref(XlcPref.SUPPORT_RESTRICT_IN_CPP, project);
-		boolean supportStaticAssert = getPref(XlcPref.SUPPORT_STATIC_ASSERT, project);
-		IDOMTokenMap tokenMap = new XlcCPPTokenMap(supportVectors, supportDecimals, supportComplex, supportRestrict,
-				supportStaticAssert);
-
-		XlcCPPParser parser = new XlcCPPParser(scanner, tokenMap, getBuiltinBindingsProvider(), index, properties);
-		return parser;
-	}
-
-	@Override
-	public String getId() {
-		return ID;
-	}
-
-	@Override
-	protected IScannerExtensionConfiguration getScannerExtensionConfiguration() {
-		return XlcCPPScannerExtensionConfiguration.getInstance();
-	}
-
-	@Override
-	public <T> T getAdapter(Class<T> adapter) {
-		if (ICLanguageKeywords.class.equals(adapter))
-			return adapter.cast(XlcKeywords.ALL_CPP_KEYWORDS);
-
-		return super.getAdapter(adapter);
-	}
-
-}
\ No newline at end of file
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/XlcCPPScannerExtensionConfiguration.java b/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/XlcCPPScannerExtensionConfiguration.java
deleted file mode 100644
index 632f5f4..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/XlcCPPScannerExtensionConfiguration.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.xlc;
-
-import org.eclipse.cdt.core.dom.parser.cpp.GPPScannerExtensionConfiguration;
-
-public class XlcCPPScannerExtensionConfiguration extends GPPScannerExtensionConfiguration {
-
-	private static XlcCPPScannerExtensionConfiguration instance;
-
-	private XlcCPPScannerExtensionConfiguration() {
-	}
-
-	public static synchronized XlcCPPScannerExtensionConfiguration getInstance() {
-		if (instance == null)
-			instance = new XlcCPPScannerExtensionConfiguration();
-		return instance;
-	}
-
-	@Override
-	public boolean supportUTFLiterals() {
-		return true;
-	}
-
-	@Override
-	public char[] supportAdditionalNumericLiteralSuffixes() {
-		return "dflij".toCharArray(); //$NON-NLS-1$
-	}
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/XlcCPPTokenMap.java b/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/XlcCPPTokenMap.java
deleted file mode 100644
index 6e8a449..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/XlcCPPTokenMap.java
+++ /dev/null
@@ -1,599 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2011 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.xlc;
-
-import static org.eclipse.cdt.core.parser.IToken.tAMPER;
-import static org.eclipse.cdt.core.parser.IToken.tAMPERASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tAND;
-import static org.eclipse.cdt.core.parser.IToken.tARROW;
-import static org.eclipse.cdt.core.parser.IToken.tARROWSTAR;
-import static org.eclipse.cdt.core.parser.IToken.tASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tBITCOMPLEMENT;
-import static org.eclipse.cdt.core.parser.IToken.tBITOR;
-import static org.eclipse.cdt.core.parser.IToken.tBITORASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tCHAR;
-import static org.eclipse.cdt.core.parser.IToken.tCOLON;
-import static org.eclipse.cdt.core.parser.IToken.tCOLONCOLON;
-import static org.eclipse.cdt.core.parser.IToken.tCOMMA;
-import static org.eclipse.cdt.core.parser.IToken.tCOMPLETION;
-import static org.eclipse.cdt.core.parser.IToken.tDECR;
-import static org.eclipse.cdt.core.parser.IToken.tDIV;
-import static org.eclipse.cdt.core.parser.IToken.tDIVASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tDOT;
-import static org.eclipse.cdt.core.parser.IToken.tDOTSTAR;
-import static org.eclipse.cdt.core.parser.IToken.tELLIPSIS;
-import static org.eclipse.cdt.core.parser.IToken.tEND_OF_INPUT;
-import static org.eclipse.cdt.core.parser.IToken.tEOC;
-import static org.eclipse.cdt.core.parser.IToken.tEQUAL;
-import static org.eclipse.cdt.core.parser.IToken.tFLOATINGPT;
-import static org.eclipse.cdt.core.parser.IToken.tGT;
-import static org.eclipse.cdt.core.parser.IToken.tGTEQUAL;
-import static org.eclipse.cdt.core.parser.IToken.tIDENTIFIER;
-import static org.eclipse.cdt.core.parser.IToken.tINCR;
-import static org.eclipse.cdt.core.parser.IToken.tINTEGER;
-import static org.eclipse.cdt.core.parser.IToken.tLBRACE;
-import static org.eclipse.cdt.core.parser.IToken.tLBRACKET;
-import static org.eclipse.cdt.core.parser.IToken.tLCHAR;
-import static org.eclipse.cdt.core.parser.IToken.tLPAREN;
-import static org.eclipse.cdt.core.parser.IToken.tLSTRING;
-import static org.eclipse.cdt.core.parser.IToken.tLT;
-import static org.eclipse.cdt.core.parser.IToken.tLTEQUAL;
-import static org.eclipse.cdt.core.parser.IToken.tMINUS;
-import static org.eclipse.cdt.core.parser.IToken.tMINUSASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tMOD;
-import static org.eclipse.cdt.core.parser.IToken.tMODASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tNOT;
-import static org.eclipse.cdt.core.parser.IToken.tNOTEQUAL;
-import static org.eclipse.cdt.core.parser.IToken.tOR;
-import static org.eclipse.cdt.core.parser.IToken.tPLUS;
-import static org.eclipse.cdt.core.parser.IToken.tPLUSASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tPOUND;
-import static org.eclipse.cdt.core.parser.IToken.tQUESTION;
-import static org.eclipse.cdt.core.parser.IToken.tRBRACE;
-import static org.eclipse.cdt.core.parser.IToken.tRBRACKET;
-import static org.eclipse.cdt.core.parser.IToken.tRPAREN;
-import static org.eclipse.cdt.core.parser.IToken.tSEMI;
-import static org.eclipse.cdt.core.parser.IToken.tSHIFTL;
-import static org.eclipse.cdt.core.parser.IToken.tSHIFTLASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tSHIFTR;
-import static org.eclipse.cdt.core.parser.IToken.tSHIFTRASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tSTAR;
-import static org.eclipse.cdt.core.parser.IToken.tSTARASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tSTRING;
-import static org.eclipse.cdt.core.parser.IToken.tUNKNOWN_CHAR;
-import static org.eclipse.cdt.core.parser.IToken.tUTF16CHAR;
-import static org.eclipse.cdt.core.parser.IToken.tUTF16STRING;
-import static org.eclipse.cdt.core.parser.IToken.tUTF32CHAR;
-import static org.eclipse.cdt.core.parser.IToken.tUTF32STRING;
-import static org.eclipse.cdt.core.parser.IToken.tXOR;
-import static org.eclipse.cdt.core.parser.IToken.tXORASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.t__Complex;
-import static org.eclipse.cdt.core.parser.IToken.t__Imaginary;
-import static org.eclipse.cdt.core.parser.IToken.t_asm;
-import static org.eclipse.cdt.core.parser.IToken.t_auto;
-import static org.eclipse.cdt.core.parser.IToken.t_bool;
-import static org.eclipse.cdt.core.parser.IToken.t_break;
-import static org.eclipse.cdt.core.parser.IToken.t_case;
-import static org.eclipse.cdt.core.parser.IToken.t_catch;
-import static org.eclipse.cdt.core.parser.IToken.t_char;
-import static org.eclipse.cdt.core.parser.IToken.t_class;
-import static org.eclipse.cdt.core.parser.IToken.t_const;
-import static org.eclipse.cdt.core.parser.IToken.t_const_cast;
-import static org.eclipse.cdt.core.parser.IToken.t_continue;
-import static org.eclipse.cdt.core.parser.IToken.t_default;
-import static org.eclipse.cdt.core.parser.IToken.t_delete;
-import static org.eclipse.cdt.core.parser.IToken.t_do;
-import static org.eclipse.cdt.core.parser.IToken.t_double;
-import static org.eclipse.cdt.core.parser.IToken.t_dynamic_cast;
-import static org.eclipse.cdt.core.parser.IToken.t_else;
-import static org.eclipse.cdt.core.parser.IToken.t_enum;
-import static org.eclipse.cdt.core.parser.IToken.t_explicit;
-import static org.eclipse.cdt.core.parser.IToken.t_export;
-import static org.eclipse.cdt.core.parser.IToken.t_extern;
-import static org.eclipse.cdt.core.parser.IToken.t_false;
-import static org.eclipse.cdt.core.parser.IToken.t_float;
-import static org.eclipse.cdt.core.parser.IToken.t_for;
-import static org.eclipse.cdt.core.parser.IToken.t_friend;
-import static org.eclipse.cdt.core.parser.IToken.t_goto;
-import static org.eclipse.cdt.core.parser.IToken.t_if;
-import static org.eclipse.cdt.core.parser.IToken.t_inline;
-import static org.eclipse.cdt.core.parser.IToken.t_int;
-import static org.eclipse.cdt.core.parser.IToken.t_long;
-import static org.eclipse.cdt.core.parser.IToken.t_mutable;
-import static org.eclipse.cdt.core.parser.IToken.t_namespace;
-import static org.eclipse.cdt.core.parser.IToken.t_new;
-import static org.eclipse.cdt.core.parser.IToken.t_operator;
-import static org.eclipse.cdt.core.parser.IToken.t_private;
-import static org.eclipse.cdt.core.parser.IToken.t_protected;
-import static org.eclipse.cdt.core.parser.IToken.t_public;
-import static org.eclipse.cdt.core.parser.IToken.t_register;
-import static org.eclipse.cdt.core.parser.IToken.t_reinterpret_cast;
-import static org.eclipse.cdt.core.parser.IToken.t_restrict;
-import static org.eclipse.cdt.core.parser.IToken.t_return;
-import static org.eclipse.cdt.core.parser.IToken.t_short;
-import static org.eclipse.cdt.core.parser.IToken.t_signed;
-import static org.eclipse.cdt.core.parser.IToken.t_sizeof;
-import static org.eclipse.cdt.core.parser.IToken.t_static;
-import static org.eclipse.cdt.core.parser.IToken.t_static_cast;
-import static org.eclipse.cdt.core.parser.IToken.t_struct;
-import static org.eclipse.cdt.core.parser.IToken.t_switch;
-import static org.eclipse.cdt.core.parser.IToken.t_template;
-import static org.eclipse.cdt.core.parser.IToken.t_this;
-import static org.eclipse.cdt.core.parser.IToken.t_throw;
-import static org.eclipse.cdt.core.parser.IToken.t_true;
-import static org.eclipse.cdt.core.parser.IToken.t_try;
-import static org.eclipse.cdt.core.parser.IToken.t_typedef;
-import static org.eclipse.cdt.core.parser.IToken.t_typeid;
-import static org.eclipse.cdt.core.parser.IToken.t_typename;
-import static org.eclipse.cdt.core.parser.IToken.t_union;
-import static org.eclipse.cdt.core.parser.IToken.t_unsigned;
-import static org.eclipse.cdt.core.parser.IToken.t_using;
-import static org.eclipse.cdt.core.parser.IToken.t_virtual;
-import static org.eclipse.cdt.core.parser.IToken.t_void;
-import static org.eclipse.cdt.core.parser.IToken.t_volatile;
-import static org.eclipse.cdt.core.parser.IToken.t_wchar_t;
-import static org.eclipse.cdt.core.parser.IToken.t_while;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_And;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_AndAnd;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_AndAssign;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_Arrow;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_ArrowStar;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_Assign;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_Bang;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_Caret;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_CaretAssign;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_Colon;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_ColonColon;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_Comma;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_Completion;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_Dot;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_DotDotDot;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_DotStar;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_EOF_TOKEN;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_EQ;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_EndOfCompletion;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_GE;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_GT;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_Invalid;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_LE;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_LT;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_LeftBrace;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_LeftBracket;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_LeftParen;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_LeftShift;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_LeftShiftAssign;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_MAX;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_MIN;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_Minus;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_MinusAssign;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_MinusMinus;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_NE;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_Or;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_OrAssign;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_OrOr;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_Percent;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_PercentAssign;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_Plus;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_PlusAssign;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_PlusPlus;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_Question;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_RightBrace;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_RightBracket;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_RightParen;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_RightShift;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_RightShiftAssign;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_SemiColon;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_Slash;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_SlashAssign;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_Star;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_StarAssign;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_Tilde;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK__Imaginary;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK___alignof__;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK___attribute__;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK___declspec;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_asm;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_auto;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_bool;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_break;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_case;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_catch;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_char;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_charconst;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_class;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_const;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_const_cast;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_continue;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_default;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_delete;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_do;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_double;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_dynamic_cast;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_else;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_enum;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_explicit;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_export;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_extern;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_false;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_float;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_floating;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_for;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_friend;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_goto;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_identifier;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_if;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_inline;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_int;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_integer;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_long;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_mutable;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_namespace;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_new;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_operator;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_private;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_protected;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_public;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_register;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_reinterpret_cast;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_restrict;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_return;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_short;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_signed;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_sizeof;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_static;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_static_cast;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_stringlit;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_struct;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_switch;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_template;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_this;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_throw;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_true;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_try;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_typedef;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_typeid;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_typename;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_typeof;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_union;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_unsigned;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_using;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_virtual;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_void;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_volatile;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_wchar_t;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym.TK_while;
-
-import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
-import org.eclipse.cdt.core.parser.IGCCToken;
-import org.eclipse.cdt.core.parser.IToken;
-
-/**
- * Maps tokens types returned by CPreprocessor to token types
- * expected by the C++ parser.
- *
- * @author Mike Kucera
- */
-public class XlcCPPTokenMap implements IDOMTokenMap {
-
-	private final XlcKeywords keywordMap;
-
-	public XlcCPPTokenMap(boolean supportVectors, boolean supportDecimalFloatingPoint, boolean supportComplex,
-			boolean supportRestrict, boolean supportStaticAssert) {
-		keywordMap = XlcKeywords.createCPP(supportVectors, supportDecimalFloatingPoint, supportComplex, supportRestrict,
-				supportStaticAssert);
-	}
-
-	@Override
-	public int getEOFTokenKind() {
-		return TK_EOF_TOKEN;
-	}
-
-	@Override
-	public int getEOCTokenKind() {
-		return TK_EndOfCompletion;
-	}
-
-	@Override
-	public int mapKind(IToken token) {
-
-		switch (token.getType()) {
-		case t__Complex:
-		case tIDENTIFIER:
-			Integer keywordKind = keywordMap.getTokenKind(token.getCharImage());
-			return keywordKind == null ? TK_identifier : keywordKind;
-
-		case tINTEGER:
-			return TK_integer;
-		case tCOLONCOLON:
-			return TK_ColonColon;
-		case tCOLON:
-			return TK_Colon;
-		case tSEMI:
-			return TK_SemiColon;
-		case tCOMMA:
-			return TK_Comma;
-		case tQUESTION:
-			return TK_Question;
-		case tLPAREN:
-			return TK_LeftParen;
-		case tRPAREN:
-			return TK_RightParen;
-		case tLBRACKET:
-			return TK_LeftBracket;
-		case tRBRACKET:
-			return TK_RightBracket;
-		case tLBRACE:
-			return TK_LeftBrace;
-		case tRBRACE:
-			return TK_RightBrace;
-		case tPLUSASSIGN:
-			return TK_PlusAssign;
-		case tINCR:
-			return TK_PlusPlus;
-		case tPLUS:
-			return TK_Plus;
-		case tMINUSASSIGN:
-			return TK_MinusAssign;
-		case tDECR:
-			return TK_MinusMinus;
-		case tARROWSTAR:
-			return TK_ArrowStar;
-		case tARROW:
-			return TK_Arrow;
-		case tMINUS:
-			return TK_Minus;
-		case tSTARASSIGN:
-			return TK_StarAssign;
-		case tSTAR:
-			return TK_Star;
-		case tMODASSIGN:
-			return TK_PercentAssign;
-		case tMOD:
-			return TK_Percent;
-		case tXORASSIGN:
-			return TK_CaretAssign;
-		case tXOR:
-			return TK_Caret;
-		case tAMPERASSIGN:
-			return TK_AndAssign;
-		case tAND:
-			return TK_AndAnd;
-		case tAMPER:
-			return TK_And;
-		case tBITORASSIGN:
-			return TK_OrAssign;
-		case tOR:
-			return TK_OrOr;
-		case tBITOR:
-			return TK_Or;
-		case tBITCOMPLEMENT:
-			return TK_Tilde;
-		case tNOTEQUAL:
-			return TK_NE;
-		case tNOT:
-			return TK_Bang;
-		case tEQUAL:
-			return TK_EQ;
-		case tASSIGN:
-			return TK_Assign;
-		case tUNKNOWN_CHAR:
-			return TK_Invalid;
-		case tSHIFTL:
-			return TK_LeftShift;
-		case tLTEQUAL:
-			return TK_LE;
-		case tLT:
-			return TK_LT;
-		case tSHIFTRASSIGN:
-			return TK_RightShiftAssign;
-		case tSHIFTR:
-			return TK_RightShift;
-		case tGTEQUAL:
-			return TK_GE;
-		case tGT:
-			return TK_GT;
-		case tSHIFTLASSIGN:
-			return TK_LeftShiftAssign;
-		case tELLIPSIS:
-			return TK_DotDotDot;
-		case tDOTSTAR:
-			return TK_DotStar;
-		case tDOT:
-			return TK_Dot;
-		case tDIVASSIGN:
-			return TK_SlashAssign;
-		case tDIV:
-			return TK_Slash;
-
-		case t_asm:
-			return TK_asm;
-		case t_auto:
-			return TK_auto;
-		case t_bool:
-			return TK_bool;
-		case t_break:
-			return TK_break;
-		case t_case:
-			return TK_case;
-		case t_catch:
-			return TK_catch;
-		case t_char:
-			return TK_char;
-		case t_class:
-			return TK_class;
-		case t_const:
-			return TK_const;
-		case t_const_cast:
-			return TK_const_cast;
-		case t_continue:
-			return TK_continue;
-		case t_default:
-			return TK_default;
-		case t_delete:
-			return TK_delete;
-		case t_do:
-			return TK_do;
-		case t_double:
-			return TK_double;
-		case t_dynamic_cast:
-			return TK_dynamic_cast;
-		case t_else:
-			return TK_else;
-		case t_enum:
-			return TK_enum;
-		case t_explicit:
-			return TK_explicit;
-		case t_export:
-			return TK_export;
-		case t_extern:
-			return TK_extern;
-		case t_false:
-			return TK_false;
-		case t_float:
-			return TK_float;
-		case t_for:
-			return TK_for;
-		case t_friend:
-			return TK_friend;
-		case t_goto:
-			return TK_goto;
-		case t_if:
-			return TK_if;
-		case t_inline:
-			return TK_inline;
-		case t_int:
-			return TK_int;
-		case t_long:
-			return TK_long;
-		case t_mutable:
-			return TK_mutable;
-		case t_namespace:
-			return TK_namespace;
-		case t_new:
-			return TK_new;
-		case t_operator:
-			return TK_operator;
-		case t_private:
-			return TK_private;
-		case t_protected:
-			return TK_protected;
-		case t_public:
-			return TK_public;
-		case t_register:
-			return TK_register;
-		case t_reinterpret_cast:
-			return TK_reinterpret_cast;
-		case t_return:
-			return TK_return;
-		case t_short:
-			return TK_short;
-		case t_sizeof:
-			return TK_sizeof;
-		case t_static:
-			return TK_static;
-		case t_static_cast:
-			return TK_static_cast;
-		case t_signed:
-			return TK_signed;
-		case t_struct:
-			return TK_struct;
-		case t_switch:
-			return TK_switch;
-		case t_template:
-			return TK_template;
-		case t_this:
-			return TK_this;
-		case t_throw:
-			return TK_throw;
-		case t_true:
-			return TK_true;
-		case t_try:
-			return TK_try;
-		case t_typedef:
-			return TK_typedef;
-		case t_typeid:
-			return TK_typeid;
-		case t_typename:
-			return TK_typename;
-		case t_union:
-			return TK_union;
-		case t_unsigned:
-			return TK_unsigned;
-		case t_using:
-			return TK_using;
-		case t_virtual:
-			return TK_virtual;
-		case t_void:
-			return TK_void;
-		case t_volatile:
-			return TK_volatile;
-		case t_wchar_t:
-			return TK_wchar_t;
-		case t_while:
-			return TK_while;
-
-		case tFLOATINGPT:
-			return TK_floating;
-		case tSTRING:
-			return TK_stringlit;
-		case tLSTRING:
-			return TK_stringlit;
-		case tUTF16STRING:
-			return TK_stringlit;
-		case tUTF32STRING:
-			return TK_stringlit;
-		case tUTF16CHAR:
-			return TK_charconst;
-		case tUTF32CHAR:
-			return TK_charconst;
-		case tCHAR:
-			return TK_charconst;
-		case tLCHAR:
-			return TK_charconst;
-		case tCOMPLETION:
-			return TK_Completion;
-		case tEOC:
-			return TK_EndOfCompletion;
-		case tEND_OF_INPUT:
-			return TK_EOF_TOKEN;
-
-		case IGCCToken.t_typeof:
-			return TK_typeof;
-		case IGCCToken.t___alignof__:
-			return TK___alignof__;
-		case IGCCToken.tMAX:
-			return TK_MAX;
-		case IGCCToken.tMIN:
-			return TK_MIN;
-		case IGCCToken.t__attribute__:
-			return TK___attribute__;
-		case IGCCToken.t__declspec:
-			return TK___declspec;
-
-		// GNU supports these but they are not in the C++ spec
-
-		case t__Imaginary:
-			return TK__Imaginary;
-		case t_restrict:
-			return TK_restrict;
-		case tPOUND:
-			return TK_Invalid;
-
-		default:
-			assert false : "token not recognized: " + token.getType(); //$NON-NLS-1$
-			return TK_Invalid;
-		}
-	}
-
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/XlcCScannerExtensionConfiguration.java b/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/XlcCScannerExtensionConfiguration.java
deleted file mode 100644
index 64e6d99..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/XlcCScannerExtensionConfiguration.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.xlc;
-
-import org.eclipse.cdt.core.dom.parser.c.GCCScannerExtensionConfiguration;
-
-public class XlcCScannerExtensionConfiguration extends GCCScannerExtensionConfiguration {
-
-	private static XlcCScannerExtensionConfiguration instance;
-
-	private XlcCScannerExtensionConfiguration() {
-	}
-
-	public static synchronized XlcCScannerExtensionConfiguration getInstance() {
-		if (instance == null)
-			instance = new XlcCScannerExtensionConfiguration();
-		return instance;
-	}
-
-	@Override
-	public boolean supportUTFLiterals() {
-		return true;
-	}
-
-	@Override
-	public char[] supportAdditionalNumericLiteralSuffixes() {
-		return "dflij".toCharArray(); //$NON-NLS-1$
-	}
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/XlcCTokenMap.java b/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/XlcCTokenMap.java
deleted file mode 100644
index 0234fc7..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/XlcCTokenMap.java
+++ /dev/null
@@ -1,468 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.xlc;
-
-import static org.eclipse.cdt.core.parser.IToken.tAMPER;
-import static org.eclipse.cdt.core.parser.IToken.tAMPERASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tAND;
-import static org.eclipse.cdt.core.parser.IToken.tARROW;
-import static org.eclipse.cdt.core.parser.IToken.tASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tBITCOMPLEMENT;
-import static org.eclipse.cdt.core.parser.IToken.tBITOR;
-import static org.eclipse.cdt.core.parser.IToken.tBITORASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tCHAR;
-import static org.eclipse.cdt.core.parser.IToken.tCOLON;
-import static org.eclipse.cdt.core.parser.IToken.tCOMMA;
-import static org.eclipse.cdt.core.parser.IToken.tCOMPLETION;
-import static org.eclipse.cdt.core.parser.IToken.tDECR;
-import static org.eclipse.cdt.core.parser.IToken.tDIV;
-import static org.eclipse.cdt.core.parser.IToken.tDIVASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tDOT;
-import static org.eclipse.cdt.core.parser.IToken.tELLIPSIS;
-import static org.eclipse.cdt.core.parser.IToken.tEND_OF_INPUT;
-import static org.eclipse.cdt.core.parser.IToken.tEOC;
-import static org.eclipse.cdt.core.parser.IToken.tEQUAL;
-import static org.eclipse.cdt.core.parser.IToken.tFLOATINGPT;
-import static org.eclipse.cdt.core.parser.IToken.tGT;
-import static org.eclipse.cdt.core.parser.IToken.tGTEQUAL;
-import static org.eclipse.cdt.core.parser.IToken.tIDENTIFIER;
-import static org.eclipse.cdt.core.parser.IToken.tINCR;
-import static org.eclipse.cdt.core.parser.IToken.tINTEGER;
-import static org.eclipse.cdt.core.parser.IToken.tLBRACE;
-import static org.eclipse.cdt.core.parser.IToken.tLBRACKET;
-import static org.eclipse.cdt.core.parser.IToken.tLCHAR;
-import static org.eclipse.cdt.core.parser.IToken.tLPAREN;
-import static org.eclipse.cdt.core.parser.IToken.tLSTRING;
-import static org.eclipse.cdt.core.parser.IToken.tLT;
-import static org.eclipse.cdt.core.parser.IToken.tLTEQUAL;
-import static org.eclipse.cdt.core.parser.IToken.tMINUS;
-import static org.eclipse.cdt.core.parser.IToken.tMINUSASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tMOD;
-import static org.eclipse.cdt.core.parser.IToken.tMODASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tNOT;
-import static org.eclipse.cdt.core.parser.IToken.tNOTEQUAL;
-import static org.eclipse.cdt.core.parser.IToken.tOR;
-import static org.eclipse.cdt.core.parser.IToken.tPLUS;
-import static org.eclipse.cdt.core.parser.IToken.tPLUSASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tQUESTION;
-import static org.eclipse.cdt.core.parser.IToken.tRBRACE;
-import static org.eclipse.cdt.core.parser.IToken.tRBRACKET;
-import static org.eclipse.cdt.core.parser.IToken.tRPAREN;
-import static org.eclipse.cdt.core.parser.IToken.tSEMI;
-import static org.eclipse.cdt.core.parser.IToken.tSHIFTL;
-import static org.eclipse.cdt.core.parser.IToken.tSHIFTLASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tSHIFTR;
-import static org.eclipse.cdt.core.parser.IToken.tSHIFTRASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tSTAR;
-import static org.eclipse.cdt.core.parser.IToken.tSTARASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.tSTRING;
-import static org.eclipse.cdt.core.parser.IToken.tUNKNOWN_CHAR;
-import static org.eclipse.cdt.core.parser.IToken.tUTF16CHAR;
-import static org.eclipse.cdt.core.parser.IToken.tUTF16STRING;
-import static org.eclipse.cdt.core.parser.IToken.tUTF32CHAR;
-import static org.eclipse.cdt.core.parser.IToken.tUTF32STRING;
-import static org.eclipse.cdt.core.parser.IToken.tXOR;
-import static org.eclipse.cdt.core.parser.IToken.tXORASSIGN;
-import static org.eclipse.cdt.core.parser.IToken.t__Bool;
-import static org.eclipse.cdt.core.parser.IToken.t__Complex;
-import static org.eclipse.cdt.core.parser.IToken.t__Imaginary;
-import static org.eclipse.cdt.core.parser.IToken.t_asm;
-import static org.eclipse.cdt.core.parser.IToken.t_auto;
-import static org.eclipse.cdt.core.parser.IToken.t_break;
-import static org.eclipse.cdt.core.parser.IToken.t_case;
-import static org.eclipse.cdt.core.parser.IToken.t_char;
-import static org.eclipse.cdt.core.parser.IToken.t_const;
-import static org.eclipse.cdt.core.parser.IToken.t_continue;
-import static org.eclipse.cdt.core.parser.IToken.t_default;
-import static org.eclipse.cdt.core.parser.IToken.t_do;
-import static org.eclipse.cdt.core.parser.IToken.t_double;
-import static org.eclipse.cdt.core.parser.IToken.t_else;
-import static org.eclipse.cdt.core.parser.IToken.t_enum;
-import static org.eclipse.cdt.core.parser.IToken.t_extern;
-import static org.eclipse.cdt.core.parser.IToken.t_float;
-import static org.eclipse.cdt.core.parser.IToken.t_for;
-import static org.eclipse.cdt.core.parser.IToken.t_goto;
-import static org.eclipse.cdt.core.parser.IToken.t_if;
-import static org.eclipse.cdt.core.parser.IToken.t_inline;
-import static org.eclipse.cdt.core.parser.IToken.t_int;
-import static org.eclipse.cdt.core.parser.IToken.t_long;
-import static org.eclipse.cdt.core.parser.IToken.t_register;
-import static org.eclipse.cdt.core.parser.IToken.t_restrict;
-import static org.eclipse.cdt.core.parser.IToken.t_return;
-import static org.eclipse.cdt.core.parser.IToken.t_short;
-import static org.eclipse.cdt.core.parser.IToken.t_signed;
-import static org.eclipse.cdt.core.parser.IToken.t_sizeof;
-import static org.eclipse.cdt.core.parser.IToken.t_static;
-import static org.eclipse.cdt.core.parser.IToken.t_struct;
-import static org.eclipse.cdt.core.parser.IToken.t_switch;
-import static org.eclipse.cdt.core.parser.IToken.t_typedef;
-import static org.eclipse.cdt.core.parser.IToken.t_union;
-import static org.eclipse.cdt.core.parser.IToken.t_unsigned;
-import static org.eclipse.cdt.core.parser.IToken.t_void;
-import static org.eclipse.cdt.core.parser.IToken.t_volatile;
-import static org.eclipse.cdt.core.parser.IToken.t_while;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_And;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_AndAnd;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_AndAssign;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_Arrow;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_Assign;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_Bang;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_Caret;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_CaretAssign;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_Colon;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_Comma;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_Completion;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_Dot;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_DotDotDot;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_EOF_TOKEN;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_EQ;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_EndOfCompletion;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_GE;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_GT;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_Invalid;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_LE;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_LT;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_LeftBrace;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_LeftBracket;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_LeftParen;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_LeftShift;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_LeftShiftAssign;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_MAX;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_MIN;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_Minus;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_MinusAssign;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_MinusMinus;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_NE;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_Or;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_OrAssign;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_OrOr;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_Percent;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_PercentAssign;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_Plus;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_PlusAssign;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_PlusPlus;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_Question;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_RightBrace;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_RightBracket;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_RightParen;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_RightShift;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_RightShiftAssign;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_SemiColon;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_Slash;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_SlashAssign;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_Star;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_StarAssign;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_Tilde;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK__Bool;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK__Complex;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK__Imaginary;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK___alignof__;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK___attribute__;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK___declspec;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_asm;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_auto;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_break;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_case;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_char;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_charconst;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_const;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_continue;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_default;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_do;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_double;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_else;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_enum;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_extern;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_float;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_floating;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_for;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_goto;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_identifier;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_if;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_inline;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_int;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_integer;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_long;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_register;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_restrict;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_return;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_short;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_signed;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_sizeof;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_static;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_stringlit;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_struct;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_switch;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_typedef;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_typeof;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_union;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_unsigned;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_void;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_volatile;
-import static org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym.TK_while;
-
-import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
-import org.eclipse.cdt.core.parser.IGCCToken;
-import org.eclipse.cdt.core.parser.IToken;
-
-/**
- * Maps tokens types returned by CPreprocessor to token types
- * expected by the C99 parser.
- *
- * @author Mike Kucera
- */
-public final class XlcCTokenMap implements IDOMTokenMap {
-
-	private final XlcKeywords keywordMap;
-
-	public XlcCTokenMap(boolean supportVectors, boolean supportDecimalFloatingPoint) {
-		keywordMap = XlcKeywords.createC(supportVectors, supportDecimalFloatingPoint);
-	}
-
-	@Override
-	public int getEOFTokenKind() {
-		return TK_EOF_TOKEN;
-	}
-
-	@Override
-	public int getEOCTokenKind() {
-		return TK_EndOfCompletion;
-	}
-
-	@Override
-	public int mapKind(IToken token) {
-
-		switch (token.getType()) {
-		case tIDENTIFIER:
-			Integer keywordKind = keywordMap.getTokenKind(token.getCharImage());
-			return keywordKind == null ? TK_identifier : keywordKind;
-
-		case tINTEGER:
-			return TK_integer;
-		case tCOLON:
-			return TK_Colon;
-		case tSEMI:
-			return TK_SemiColon;
-		case tCOMMA:
-			return TK_Comma;
-		case tQUESTION:
-			return TK_Question;
-		case tLPAREN:
-			return TK_LeftParen;
-		case tRPAREN:
-			return TK_RightParen;
-		case tLBRACKET:
-			return TK_LeftBracket;
-		case tRBRACKET:
-			return TK_RightBracket;
-		case tLBRACE:
-			return TK_LeftBrace;
-		case tRBRACE:
-			return TK_RightBrace;
-		case tPLUSASSIGN:
-			return TK_PlusAssign;
-		case tINCR:
-			return TK_PlusPlus;
-		case tPLUS:
-			return TK_Plus;
-		case tMINUSASSIGN:
-			return TK_MinusAssign;
-		case tDECR:
-			return TK_MinusMinus;
-		case tARROW:
-			return TK_Arrow;
-		case tMINUS:
-			return TK_Minus;
-		case tSTARASSIGN:
-			return TK_StarAssign;
-		case tSTAR:
-			return TK_Star;
-		case tMODASSIGN:
-			return TK_PercentAssign;
-		case tMOD:
-			return TK_Percent;
-		case tXORASSIGN:
-			return TK_CaretAssign;
-		case tXOR:
-			return TK_Caret;
-		case tAMPERASSIGN:
-			return TK_AndAssign;
-		case tAND:
-			return TK_AndAnd;
-		case tAMPER:
-			return TK_And;
-		case tBITORASSIGN:
-			return TK_OrAssign;
-		case tOR:
-			return TK_OrOr;
-		case tBITOR:
-			return TK_Or;
-		case tBITCOMPLEMENT:
-			return TK_Tilde;
-		case tNOTEQUAL:
-			return TK_NE;
-		case tNOT:
-			return TK_Bang;
-		case tEQUAL:
-			return TK_EQ;
-		case tASSIGN:
-			return TK_Assign;
-		case tUNKNOWN_CHAR:
-			return TK_Invalid;
-		case tSHIFTL:
-			return TK_LeftShift;
-		case tLTEQUAL:
-			return TK_LE;
-		case tLT:
-			return TK_LT;
-		case tSHIFTRASSIGN:
-			return TK_RightShiftAssign;
-		case tSHIFTR:
-			return TK_RightShift;
-		case tGTEQUAL:
-			return TK_GE;
-		case tGT:
-			return TK_GT;
-		case tSHIFTLASSIGN:
-			return TK_LeftShiftAssign;
-		case tELLIPSIS:
-			return TK_DotDotDot;
-		case tDOT:
-			return TK_Dot;
-		case tDIVASSIGN:
-			return TK_SlashAssign;
-		case tDIV:
-			return TK_Slash;
-
-		case t_auto:
-			return TK_auto;
-		case t_break:
-			return TK_break;
-		case t_case:
-			return TK_case;
-		case t_char:
-			return TK_char;
-		case t_const:
-			return TK_const;
-		case t_continue:
-			return TK_continue;
-		case t_default:
-			return TK_default;
-		case t_do:
-			return TK_do;
-		case t_double:
-			return TK_double;
-		case t_else:
-			return TK_else;
-		case t_enum:
-			return TK_enum;
-		case t_extern:
-			return TK_extern;
-		case t_float:
-			return TK_float;
-		case t_for:
-			return TK_for;
-		case t_goto:
-			return TK_goto;
-		case t_if:
-			return TK_if;
-		case t_inline:
-			return TK_inline;
-		case t_int:
-			return TK_int;
-		case t_long:
-			return TK_long;
-		case t_register:
-			return TK_register;
-		case t_return:
-			return TK_return;
-		case t_short:
-			return TK_short;
-		case t_sizeof:
-			return TK_sizeof;
-		case t_static:
-			return TK_static;
-		case t_signed:
-			return TK_signed;
-		case t_struct:
-			return TK_struct;
-		case t_switch:
-			return TK_switch;
-		case t_typedef:
-			return TK_typedef;
-		case t_union:
-			return TK_union;
-		case t_unsigned:
-			return TK_unsigned;
-		case t_void:
-			return TK_void;
-		case t_volatile:
-			return TK_volatile;
-		case t_while:
-			return TK_while;
-		case tFLOATINGPT:
-			return TK_floating;
-		case tSTRING:
-			return TK_stringlit;
-		case tLSTRING:
-			return TK_stringlit;
-		case tUTF16STRING:
-			return TK_stringlit;
-		case tUTF32STRING:
-			return TK_stringlit;
-		case tCHAR:
-			return TK_charconst;
-		case tLCHAR:
-			return TK_charconst;
-		case tUTF16CHAR:
-			return TK_charconst;
-		case tUTF32CHAR:
-			return TK_charconst;
-		case t__Bool:
-			return TK__Bool;
-		case t__Complex:
-			return TK__Complex;
-		case t__Imaginary:
-			return TK__Imaginary;
-		case t_restrict:
-			return TK_restrict;
-		case tCOMPLETION:
-			return TK_Completion;
-		case tEOC:
-			return TK_EndOfCompletion;
-		case tEND_OF_INPUT:
-			return TK_EOF_TOKEN;
-
-		case IGCCToken.t_typeof:
-			return TK_typeof;
-		case IGCCToken.t___alignof__:
-			return TK___alignof__;
-		case IGCCToken.tMAX:
-			return TK_MAX;
-		case IGCCToken.tMIN:
-			return TK_MIN;
-		case IGCCToken.t__attribute__:
-			return TK___attribute__;
-		case IGCCToken.t__declspec:
-			return TK___declspec;
-
-		case t_asm:
-			return TK_asm;
-
-		default:
-			assert false : "token not recognized by the XLC parser: " + token.getType(); //$NON-NLS-1$
-			return TK_Invalid;
-		}
-	}
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/XlcKeywords.java b/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/XlcKeywords.java
deleted file mode 100644
index d898487..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/XlcKeywords.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.xlc;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.cdt.core.dom.parser.CLanguageKeywords;
-import org.eclipse.cdt.core.dom.parser.IScannerExtensionConfiguration;
-import org.eclipse.cdt.core.model.ICLanguageKeywords;
-import org.eclipse.cdt.core.parser.ParserLanguage;
-import org.eclipse.cdt.core.parser.util.CharArrayMap;
-import org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym;
-import org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym;
-
-public class XlcKeywords extends CLanguageKeywords {
-
-	public static final XlcKeywords ALL_C_KEYWORDS = createC(true, true);
-	public static final XlcKeywords ALL_CPP_KEYWORDS = createCPP(true, true, true, true, true);
-
-	private final CharArrayMap<Integer> map = new CharArrayMap<>();
-	private final ParserLanguage language;
-	private String[] allKeywords = null;
-
-	public static XlcKeywords createC(boolean supportVectors, boolean supportDecimalFloatingPoint) {
-		XlcKeywords keywords = new XlcKeywords(ParserLanguage.C);
-		CharArrayMap<Integer> map = keywords.map;
-		if (supportVectors) {
-			map.put("vector".toCharArray(), XlcCParsersym.TK_vector);
-			map.put("__vector".toCharArray(), XlcCParsersym.TK_vector);
-			map.put("pixel".toCharArray(), XlcCParsersym.TK_pixel);
-			map.put("__pixel".toCharArray(), XlcCParsersym.TK_pixel);
-			map.put("bool".toCharArray(), XlcCParsersym.TK_bool);
-		}
-		if (supportDecimalFloatingPoint) {
-			map.put("_Decimal32".toCharArray(), XlcCParsersym.TK__Decimal32);
-			map.put("_Decimal64".toCharArray(), XlcCParsersym.TK__Decimal64);
-			map.put("_Decimal128".toCharArray(), XlcCParsersym.TK__Decimal128);
-		}
-		return keywords;
-	}
-
-	public static XlcKeywords createCPP(boolean supportVectors, boolean supportDecimalFloatingPoint,
-			boolean supportComplex, boolean supportRestrict, boolean supportStaticAssert) {
-		XlcKeywords keywords = new XlcKeywords(ParserLanguage.CPP);
-		CharArrayMap<Integer> map = keywords.map;
-		if (supportVectors) {
-			map.put("vector".toCharArray(), XlcCPPParsersym.TK_vector);
-			map.put("__vector".toCharArray(), XlcCPPParsersym.TK_vector);
-			map.put("pixel".toCharArray(), XlcCPPParsersym.TK_pixel);
-			map.put("__pixel".toCharArray(), XlcCPPParsersym.TK_pixel);
-		}
-		if (supportDecimalFloatingPoint) {
-			map.put("_Decimal32".toCharArray(), XlcCPPParsersym.TK__Decimal32);
-			map.put("_Decimal64".toCharArray(), XlcCPPParsersym.TK__Decimal64);
-			map.put("_Decimal128".toCharArray(), XlcCPPParsersym.TK__Decimal128);
-		}
-		if (supportComplex) {
-			map.put("_Complex".toCharArray(), XlcCPPParsersym.TK__Complex);
-		}
-		if (supportRestrict) {
-			map.put("restrict".toCharArray(), XlcCPPParsersym.TK_restrict);
-			map.put("__restrict".toCharArray(), XlcCPPParsersym.TK_restrict);
-			map.put("__restrict__".toCharArray(), XlcCPPParsersym.TK_restrict);
-		}
-
-		if (supportStaticAssert) {
-			map.put("__static_assert".toCharArray(), XlcCPPParsersym.TK___static_assert);
-		}
-
-		return keywords;
-	}
-
-	private XlcKeywords(ParserLanguage language) {
-		super(language, getConfig(language));
-		this.language = language;
-	}
-
-	private static IScannerExtensionConfiguration getConfig(ParserLanguage lang) {
-		return lang.isCPP() ? XlcCPPScannerExtensionConfiguration.getInstance()
-				: XlcCScannerExtensionConfiguration.getInstance();
-	}
-
-	/**
-	 * Returns the LPG token kind for additional keywords defined by
-	 * the XLC extensions, null otherwise.
-	 */
-	public Integer getTokenKind(char[] keyword) {
-		return map.get(keyword);
-	}
-
-	@Override
-	public synchronized String[] getKeywords() {
-		if (allKeywords == null) {
-			ICLanguageKeywords base = new CLanguageKeywords(language, getConfig(language));
-			String[] baseKeywords = base.getKeywords();
-
-			List<String> keywords = new ArrayList<>();
-			keywords.addAll(Arrays.asList(baseKeywords));
-
-			for (char[] keyword : map.keys()) {
-				keywords.add(String.valueOf(keyword));
-			}
-
-			allKeywords = keywords.toArray(new String[keywords.size()]);
-		}
-
-		return allKeywords;
-	}
-
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/action/XlcCBuildASTParserAction.java b/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/action/XlcCBuildASTParserAction.java
deleted file mode 100644
index f04c9f7..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/action/XlcCBuildASTParserAction.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.xlc.action;
-
-import org.eclipse.cdt.core.dom.lrparser.action.ISecondaryParserFactory;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
-import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
-import org.eclipse.cdt.core.dom.lrparser.action.gnu.GCCBuildASTParserAction;
-import org.eclipse.cdt.core.lrparser.xlc.ast.IXlcCASTVectorTypeSpecifier;
-import org.eclipse.cdt.core.lrparser.xlc.ast.IXlcCNodeFactory;
-import org.eclipse.cdt.internal.core.lrparser.xlc.c.XlcCParsersym;
-
-import lpg.lpgjavaruntime.IToken;
-
-public class XlcCBuildASTParserAction extends GCCBuildASTParserAction {
-
-	private IXlcCNodeFactory nodeFactory;
-
-	public XlcCBuildASTParserAction(ITokenStream parser, ScopedStack<Object> astStack, IXlcCNodeFactory nodeFactory,
-			ISecondaryParserFactory parserFactory) {
-		super(parser, astStack, nodeFactory, parserFactory);
-		this.nodeFactory = nodeFactory;
-	}
-
-	/*
-	 * vector_type
-	 *     ::= <openscope-ast> sqlist_op 'vector' vector_type_specifier all_specifier_qualifier_list
-	 */
-	public void consumeVectorTypeSpecifier() {
-		IXlcCASTVectorTypeSpecifier declSpec = nodeFactory.newVectorTypeSpecifier();
-
-		for (Object specifier : astStack.closeScope()) {
-			if (specifier instanceof IToken) {
-				switch (((IToken) specifier).getKind()) {
-				case XlcCParsersym.TK_pixel:
-					declSpec.setPixel(true);
-					continue;
-				case XlcCParsersym.TK_bool:
-					declSpec.setBool(true);
-					continue;
-				case XlcCParsersym.TK_vector:
-					continue;
-				}
-			}
-
-			setSpecifier(declSpec, specifier);
-		}
-
-		setOffsetAndLength(declSpec);
-		astStack.push(declSpec);
-	}
-
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/action/XlcCPPBuildASTParserAction.java b/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/action/XlcCPPBuildASTParserAction.java
deleted file mode 100644
index 936ad10..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/action/XlcCPPBuildASTParserAction.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.xlc.action;
-
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTLiteralExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTStaticAssertDeclaration;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
-import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
-import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
-import org.eclipse.cdt.core.dom.lrparser.action.cpp.ICPPSecondaryParserFactory;
-import org.eclipse.cdt.core.dom.lrparser.action.gnu.GPPBuildASTParserAction;
-import org.eclipse.cdt.core.lrparser.xlc.ast.IXlcCPPASTModifiedArrayModifier;
-import org.eclipse.cdt.core.lrparser.xlc.ast.IXlcCPPASTVectorTypeSpecifier;
-import org.eclipse.cdt.core.lrparser.xlc.ast.IXlcCPPNodeFactory;
-import org.eclipse.cdt.internal.core.lrparser.xlc.cpp.XlcCPPParsersym;
-
-import lpg.lpgjavaruntime.IToken;
-
-public class XlcCPPBuildASTParserAction extends GPPBuildASTParserAction {
-
-	private IXlcCPPNodeFactory nodeFactory;
-	private final ITokenMap tokenMap;
-
-	public XlcCPPBuildASTParserAction(ITokenStream parser, ScopedStack<Object> astStack, IXlcCPPNodeFactory nodeFactory,
-			ICPPSecondaryParserFactory parserFactory) {
-		super(parser, astStack, nodeFactory, parserFactory);
-		this.nodeFactory = nodeFactory;
-		this.tokenMap = new TokenMap(XlcCPPParsersym.orderedTerminalSymbols, parser.getOrderedTerminalSymbols());
-	}
-
-	/*
-	 * vector_type
-	 *     ::= <openscope-ast> sqlist_op 'vector' vector_type_specifier all_specifier_qualifier_list
-	 */
-	public void consumeVectorTypeSpecifier() {
-		IXlcCPPASTVectorTypeSpecifier declSpec = nodeFactory.newVectorTypeSpecifier();
-
-		for (Object specifier : astStack.closeScope()) {
-			if (specifier instanceof IToken) {
-				switch (tokenMap.mapKind(((IToken) specifier).getKind())) {
-				case XlcCPPParsersym.TK_pixel:
-					declSpec.setPixel(true);
-					continue;
-				case XlcCPPParsersym.TK_vector:
-					continue;
-				}
-			}
-
-			setSpecifier(declSpec, specifier);
-		}
-
-		setOffsetAndLength(declSpec);
-		astStack.push(declSpec);
-	}
-
-	public void consumeDirectDeclaratorModifiedArrayModifier(boolean isStatic, boolean isVarSized,
-			boolean hasTypeQualifierList, boolean hasAssignmentExpr) {
-		assert isStatic || isVarSized || hasTypeQualifierList;
-
-		IXlcCPPASTModifiedArrayModifier arrayModifier = nodeFactory.newModifiedArrayModifier(null);
-
-		// consume all the stuff between the square brackets into an array modifier
-		arrayModifier.setStatic(isStatic);
-		arrayModifier.setVariableSized(isVarSized);
-
-		if (hasAssignmentExpr)
-			arrayModifier.setConstantExpression((IASTExpression) astStack.pop());
-
-		if (hasTypeQualifierList)
-			collectArrayModifierTypeQualifiers(arrayModifier);
-
-		setOffsetAndLength(arrayModifier);
-		astStack.push(arrayModifier);
-	}
-
-	private void collectArrayModifierTypeQualifiers(IXlcCPPASTModifiedArrayModifier arrayModifier) {
-		for (Object o : astStack.closeScope()) {
-			switch (tokenMap.mapKind(((IToken) o).getKind())) {
-			case XlcCPPParsersym.TK_const:
-				arrayModifier.setConst(true);
-				break;
-			case XlcCPPParsersym.TK_restrict:
-				arrayModifier.setRestrict(true);
-				break;
-			case XlcCPPParsersym.TK_volatile:
-				arrayModifier.setVolatile(true);
-				break;
-			}
-		}
-	}
-
-	/**
-	 * staticAssertDeclaration ::= '__static_assert'  '(' expression ',' literal ')' ';'
-	 */
-	public void consumeCPPASTStaticAssertDeclaration() {
-		ICPPASTLiteralExpression message = (ICPPASTLiteralExpression) astStack.pop();
-		IASTExpression condition = (IASTExpression) astStack.pop();
-
-		ICPPASTStaticAssertDeclaration assertDeclaration = nodeFactory.newStaticAssertion(condition, message);
-		setOffsetAndLength(assertDeclaration);
-		astStack.push(assertDeclaration);
-	}
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/activator/XlcParserPlugin.java b/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/activator/XlcParserPlugin.java
deleted file mode 100644
index 171ba54..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/activator/XlcParserPlugin.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.xlc.activator;
-
-import org.eclipse.core.runtime.Plugin;
-
-public class XlcParserPlugin extends Plugin {
-
-	public static final String PLUGIN_ID = "org.eclipse.cdt.core.lrparser.xlc";
-
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/ast/IXlcCASTVectorTypeSpecifier.java b/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/ast/IXlcCASTVectorTypeSpecifier.java
deleted file mode 100644
index 68a9636..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/ast/IXlcCASTVectorTypeSpecifier.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.xlc.ast;
-
-import org.eclipse.cdt.core.dom.ast.c.ICASTDeclSpecifier;
-
-public interface IXlcCASTVectorTypeSpecifier extends ICASTDeclSpecifier {
-
-	public boolean isPixel();
-
-	public void setPixel(boolean isPixel);
-
-	public boolean isBool();
-
-	public void setBool(boolean isBool);
-
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/ast/IXlcCNodeFactory.java b/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/ast/IXlcCNodeFactory.java
deleted file mode 100644
index f073516..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/ast/IXlcCNodeFactory.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.xlc.ast;
-
-import org.eclipse.cdt.core.dom.ast.c.ICNodeFactory;
-
-public interface IXlcCNodeFactory extends ICNodeFactory {
-
-	public IXlcCASTVectorTypeSpecifier newVectorTypeSpecifier();
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/ast/IXlcCPPASTModifiedArrayModifier.java b/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/ast/IXlcCPPASTModifiedArrayModifier.java
deleted file mode 100644
index d5aacc9..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/ast/IXlcCPPASTModifiedArrayModifier.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.xlc.ast;
-
-import org.eclipse.cdt.core.dom.ast.IASTArrayModifier;
-
-/**
- * Allow C99 style variable length arrays in XL C++.
- *
- */
-public interface IXlcCPPASTModifiedArrayModifier extends IASTArrayModifier {
-
-	/**
-	 * Is the const modifier used?
-	 *
-	 * @return boolean
-	 */
-	public boolean isConst();
-
-	/**
-	 * Is the static modifier used?
-	 *
-	 * @return boolean
-	 */
-	public boolean isStatic();
-
-	/**
-	 * Is the restrict modifier used?
-	 *
-	 * @return boolean
-	 */
-	public boolean isRestrict();
-
-	/**
-	 * Is the volatile modifier used?
-	 *
-	 * @return boolean
-	 */
-	public boolean isVolatile();
-
-	/**
-	 * Set true/false that the const modifier is used.
-	 *
-	 * @param value
-	 *            boolean
-	 */
-	public void setConst(boolean value);
-
-	/**
-	 * Set true/false that the volatile modifier is used.
-	 *
-	 * @param value
-	 *            boolean
-	 */
-	public void setVolatile(boolean value);
-
-	/**
-	 * Set true/false that the restrict modifier is used.
-	 *
-	 * @param value
-	 *            boolean
-	 */
-	public void setRestrict(boolean value);
-
-	/**
-	 * Set true/false that the static modifier is used.
-	 *
-	 * @param value
-	 *            boolean
-	 */
-	public void setStatic(boolean value);
-
-	/**
-	 * Is the array variable sized? ( used ... )
-	 *
-	 * @return boolean
-	 */
-	public boolean isVariableSized();
-
-	/**
-	 * Set the array to be variable sized dependent upon value.
-	 *
-	 * @param value
-	 *            boolean
-	 */
-	public void setVariableSized(boolean value);
-
-	/**
-	 */
-	@Override
-	public IXlcCPPASTModifiedArrayModifier copy();
-
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/ast/IXlcCPPASTVectorTypeSpecifier.java b/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/ast/IXlcCPPASTVectorTypeSpecifier.java
deleted file mode 100644
index 50cd9be..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/ast/IXlcCPPASTVectorTypeSpecifier.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *      IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.xlc.ast;
-
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTDeclSpecifier;
-
-public interface IXlcCPPASTVectorTypeSpecifier extends ICPPASTDeclSpecifier {
-
-	public boolean isPixel();
-
-	public void setPixel(boolean isPixel);
-
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/ast/IXlcCPPNodeFactory.java b/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/ast/IXlcCPPNodeFactory.java
deleted file mode 100644
index 538fbbb..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/ast/IXlcCPPNodeFactory.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *      IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.xlc.ast;
-
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPNodeFactory;
-
-public interface IXlcCPPNodeFactory extends ICPPNodeFactory {
-
-	public IXlcCPPASTVectorTypeSpecifier newVectorTypeSpecifier();
-
-	public IXlcCPPASTModifiedArrayModifier newModifiedArrayModifier(IASTExpression expr);
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/preferences/PreferenceInitializer.java b/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/preferences/PreferenceInitializer.java
deleted file mode 100644
index b3a8997..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/preferences/PreferenceInitializer.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.xlc.preferences;
-
-import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
-
-public class PreferenceInitializer extends AbstractPreferenceInitializer {
-
-	@Override
-	public void initializeDefaultPreferences() {
-		XlcLanguagePreferences.initializeDefaultPreferences();
-	}
-
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/preferences/XlcLanguagePreferences.java b/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/preferences/XlcLanguagePreferences.java
deleted file mode 100644
index 6e7c610..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/preferences/XlcLanguagePreferences.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2015 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.xlc.preferences;
-
-import org.eclipse.cdt.core.lrparser.xlc.activator.XlcParserPlugin;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ProjectScope;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.preferences.DefaultScope;
-import org.eclipse.core.runtime.preferences.IScopeContext;
-import org.eclipse.core.runtime.preferences.InstanceScope;
-import org.osgi.service.prefs.Preferences;
-
-/**
- * TODO trigger the indexer?
- *
- * @author Mike Kucera
- */
-public class XlcLanguagePreferences {
-
-	private static final String QUALIFIER = XlcParserPlugin.PLUGIN_ID;
-	private static final String XLC_PREFERENCES_NODE = "xlc.preferences";
-
-	static void initializeDefaultPreferences() {
-		Preferences defaultNode = getDefaultPreferences();
-
-		for (XlcPref p : XlcPref.values()) {
-			defaultNode.put(p.toString(), p.getDefaultValue());
-		}
-	}
-
-	public static void setProjectPreference(XlcPref key, String value, IProject project) {
-		getProjectPreferences(project).put(key.toString(), value);
-	}
-
-	public static void setWorkspacePreference(XlcPref key, String value) {
-		getWorkspacePreferences().put(key.toString(), value);
-	}
-
-	public static String getProjectPreference(XlcPref key, IProject project) {
-		return getProjectPreferences(project).get(key.toString(), null);
-	}
-
-	public static String getWorkspacePreference(XlcPref key) {
-		return getWorkspacePreferences().get(key.toString(), null);
-	}
-
-	public static String getDefaultPreference(XlcPref key) {
-		return getDefaultPreferences().get(key.toString(), null);
-	}
-
-	/**
-	 * Returns the preference for the given key.
-	 *
-	 * @param project If null then just the workspace and default preferences will be checked.
-	 */
-	public static String get(XlcPref key, IProject project) {
-		return Platform.getPreferencesService().get(key.toString(), null, getPreferences(project));
-	}
-
-	private static Preferences[] getPreferences(IProject project) {
-		if (project == null) {
-			return new Preferences[] { getWorkspacePreferences(), getDefaultPreferences() };
-		} else {
-			return new Preferences[] { getProjectPreferences(project), getWorkspacePreferences(),
-					getDefaultPreferences() };
-		}
-	}
-
-	private static Preferences getDefaultPreferences() {
-		return getPreferences(DefaultScope.INSTANCE);
-	}
-
-	private static Preferences getWorkspacePreferences() {
-		return getPreferences(InstanceScope.INSTANCE);
-	}
-
-	private static Preferences getProjectPreferences(IProject project) {
-		return getPreferences(new ProjectScope(project));
-	}
-
-	private static Preferences getPreferences(IScopeContext scope) {
-		return scope.getNode(QUALIFIER).node(XLC_PREFERENCES_NODE);
-	}
-
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/preferences/XlcPref.java b/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/preferences/XlcPref.java
deleted file mode 100644
index 194532c..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/preferences/XlcPref.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.core.lrparser.xlc.preferences;
-
-public enum XlcPref {
-
-	SUPPORT_VECTOR_TYPES("true"), SUPPORT_DECIMAL_FLOATING_POINT_TYPES("true"), SUPPORT_COMPLEX_IN_CPP("true"),
-	SUPPORT_RESTRICT_IN_CPP("true"), SUPPORT_STATIC_ASSERT("true");
-
-	private final String defaultVal;
-
-	private XlcPref(String defaultVal) {
-		this.defaultVal = defaultVal;
-	}
-
-	public String getDefaultValue() {
-		return defaultVal;
-	}
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/ast/XlcCASTVectorTypeSpecifier.java b/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/ast/XlcCASTVectorTypeSpecifier.java
deleted file mode 100644
index daafff4..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/ast/XlcCASTVectorTypeSpecifier.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2013 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.lrparser.xlc.ast;
-
-import org.eclipse.cdt.core.lrparser.xlc.ast.IXlcCASTVectorTypeSpecifier;
-import org.eclipse.cdt.internal.core.dom.parser.c.CASTSimpleDeclSpecifier;
-
-@SuppressWarnings("restriction")
-public class XlcCASTVectorTypeSpecifier extends CASTSimpleDeclSpecifier implements IXlcCASTVectorTypeSpecifier {
-	private boolean isPixel;
-	private boolean isBool;
-
-	public XlcCASTVectorTypeSpecifier() {
-		super();
-	}
-
-	@Override
-	public XlcCASTVectorTypeSpecifier copy() {
-		return copy(CopyStyle.withoutLocations);
-	}
-
-	@Override
-	public XlcCASTVectorTypeSpecifier copy(CopyStyle style) {
-		XlcCASTVectorTypeSpecifier copy = new XlcCASTVectorTypeSpecifier();
-		copy.isPixel = isPixel;
-		copy.isBool = isBool;
-		return copy(copy, style);
-	}
-
-	@Override
-	public boolean isPixel() {
-		return isPixel;
-	}
-
-	@Override
-	public void setPixel(boolean isPixel) {
-		this.isPixel = isPixel;
-	}
-
-	@Override
-	public boolean isBool() {
-		return isBool;
-	}
-
-	@Override
-	public void setBool(boolean isBool) {
-		this.isBool = isBool;
-	}
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/ast/XlcCNodeFactory.java b/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/ast/XlcCNodeFactory.java
deleted file mode 100644
index 694cdcc..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/ast/XlcCNodeFactory.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.lrparser.xlc.ast;
-
-import org.eclipse.cdt.core.lrparser.xlc.ast.IXlcCASTVectorTypeSpecifier;
-import org.eclipse.cdt.core.lrparser.xlc.ast.IXlcCNodeFactory;
-import org.eclipse.cdt.internal.core.dom.parser.c.CNodeFactory;
-
-@SuppressWarnings("restriction")
-public class XlcCNodeFactory extends CNodeFactory implements IXlcCNodeFactory {
-
-	private static final XlcCNodeFactory DEFAULT_INSTANCE = new XlcCNodeFactory();
-
-	public static XlcCNodeFactory getDefault() {
-		return DEFAULT_INSTANCE;
-	}
-
-	@Override
-	public IXlcCASTVectorTypeSpecifier newVectorTypeSpecifier() {
-		return new XlcCASTVectorTypeSpecifier();
-	}
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/ast/XlcCPPASTModifiedArrayModifier.java b/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/ast/XlcCPPASTModifiedArrayModifier.java
deleted file mode 100644
index 3d311bf..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/ast/XlcCPPASTModifiedArrayModifier.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2013 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.lrparser.xlc.ast;
-
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-import org.eclipse.cdt.core.lrparser.xlc.ast.IXlcCPPASTModifiedArrayModifier;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTArrayModifier;
-
-@SuppressWarnings("restriction")
-public class XlcCPPASTModifiedArrayModifier extends CPPASTArrayModifier implements IXlcCPPASTModifiedArrayModifier {
-
-	private boolean isVolatile;
-	private boolean isRestrict;
-	private boolean isStatic;
-	private boolean isConst;
-	private boolean varSized;
-
-	public XlcCPPASTModifiedArrayModifier() {
-	}
-
-	public XlcCPPASTModifiedArrayModifier(IASTExpression exp) {
-		super(exp);
-	}
-
-	@Override
-	public XlcCPPASTModifiedArrayModifier copy() {
-		return copy(CopyStyle.withoutLocations);
-	}
-
-	@Override
-	public XlcCPPASTModifiedArrayModifier copy(CopyStyle style) {
-		IASTExpression exp = getConstantExpression();
-		XlcCPPASTModifiedArrayModifier copy = new XlcCPPASTModifiedArrayModifier(exp == null ? null : exp.copy());
-		copy.isVolatile = isVolatile;
-		copy.isRestrict = isRestrict;
-		copy.isStatic = isStatic;
-		copy.isConst = isConst;
-		copy.varSized = varSized;
-		return copy(copy, style);
-	}
-
-	@Override
-	public boolean isConst() {
-		return isConst;
-	}
-
-	@Override
-	public boolean isStatic() {
-		return isStatic;
-	}
-
-	@Override
-	public boolean isRestrict() {
-		return isRestrict;
-	}
-
-	@Override
-	public boolean isVolatile() {
-		return isVolatile;
-	}
-
-	@Override
-	public void setConst(boolean value) {
-		assertNotFrozen();
-		this.isConst = value;
-	}
-
-	@Override
-	public void setVolatile(boolean value) {
-		assertNotFrozen();
-		this.isVolatile = value;
-	}
-
-	@Override
-	public void setRestrict(boolean value) {
-		assertNotFrozen();
-		this.isRestrict = value;
-	}
-
-	@Override
-	public void setStatic(boolean value) {
-		assertNotFrozen();
-		this.isStatic = value;
-	}
-
-	@Override
-	public boolean isVariableSized() {
-		return varSized;
-	}
-
-	@Override
-	public void setVariableSized(boolean value) {
-		assertNotFrozen();
-		varSized = value;
-	}
-
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/ast/XlcCPPASTVectorTypeSpecifier.java b/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/ast/XlcCPPASTVectorTypeSpecifier.java
deleted file mode 100644
index d1681f8..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/ast/XlcCPPASTVectorTypeSpecifier.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2012 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.lrparser.xlc.ast;
-
-import org.eclipse.cdt.core.lrparser.xlc.ast.IXlcCPPASTVectorTypeSpecifier;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTSimpleDeclSpecifier;
-
-@SuppressWarnings("restriction")
-public class XlcCPPASTVectorTypeSpecifier extends CPPASTSimpleDeclSpecifier implements IXlcCPPASTVectorTypeSpecifier {
-
-	private boolean isPixel;
-
-	public XlcCPPASTVectorTypeSpecifier() {
-		super();
-	}
-
-	@Override
-	public XlcCPPASTVectorTypeSpecifier copy() {
-		return copy(CopyStyle.withoutLocations);
-	}
-
-	@Override
-	public XlcCPPASTVectorTypeSpecifier copy(CopyStyle style) {
-		XlcCPPASTVectorTypeSpecifier copy = new XlcCPPASTVectorTypeSpecifier();
-		copy.isPixel = isPixel;
-		return copy(copy, style);
-	}
-
-	@Override
-	public boolean isPixel() {
-		return isPixel;
-	}
-
-	@Override
-	public void setPixel(boolean isPixel) {
-		this.isPixel = isPixel;
-	}
-
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/ast/XlcCPPNodeFactory.java b/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/ast/XlcCPPNodeFactory.java
deleted file mode 100644
index 720d710..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/ast/XlcCPPNodeFactory.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.lrparser.xlc.ast;
-
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-import org.eclipse.cdt.core.lrparser.xlc.ast.IXlcCPPASTModifiedArrayModifier;
-import org.eclipse.cdt.core.lrparser.xlc.ast.IXlcCPPASTVectorTypeSpecifier;
-import org.eclipse.cdt.core.lrparser.xlc.ast.IXlcCPPNodeFactory;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPNodeFactory;
-
-@SuppressWarnings("restriction")
-public class XlcCPPNodeFactory extends CPPNodeFactory implements IXlcCPPNodeFactory {
-
-	private static final XlcCPPNodeFactory DEFAULT_INSTANCE = new XlcCPPNodeFactory();
-
-	public static XlcCPPNodeFactory getDefault() {
-		return DEFAULT_INSTANCE;
-	}
-
-	@Override
-	public IXlcCPPASTVectorTypeSpecifier newVectorTypeSpecifier() {
-		return new XlcCPPASTVectorTypeSpecifier();
-	}
-
-	@Override
-	public IXlcCPPASTModifiedArrayModifier newModifiedArrayModifier(IASTExpression expr) {
-		return new XlcCPPASTModifiedArrayModifier(expr);
-	}
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/c/XlcCParser.java b/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/c/XlcCParser.java
deleted file mode 100644
index 19e0999..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/c/XlcCParser.java
+++ /dev/null
@@ -1,1878 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2010 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.lrparser.xlc.c;
-
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.cdt.core.dom.ast.IASTBinaryExpression;
-import org.eclipse.cdt.core.dom.ast.IASTCastExpression;
-import org.eclipse.cdt.core.dom.ast.IASTCompletionNode;
-import org.eclipse.cdt.core.dom.ast.IASTCompositeTypeSpecifier;
-import org.eclipse.cdt.core.dom.ast.IASTElaboratedTypeSpecifier;
-import org.eclipse.cdt.core.dom.ast.IASTLiteralExpression;
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.ast.IASTTypeIdExpression;
-import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression;
-import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter;
-import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
-import org.eclipse.cdt.core.dom.lrparser.IParser;
-import org.eclipse.cdt.core.dom.lrparser.ITokenCollector;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
-import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
-import org.eclipse.cdt.core.dom.lrparser.action.gnu.GCCSecondaryParserFactory;
-import org.eclipse.cdt.core.dom.lrparser.action.gnu.GNUBuildASTParserAction;
-import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser;
-import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
-import org.eclipse.cdt.core.index.IIndex;
-import org.eclipse.cdt.core.lrparser.xlc.action.XlcCBuildASTParserAction;
-import org.eclipse.cdt.core.parser.IScanner;
-import org.eclipse.cdt.internal.core.lrparser.xlc.ast.XlcCNodeFactory;
-
-import lpg.lpgjavaruntime.BadParseException;
-import lpg.lpgjavaruntime.BadParseSymFileException;
-import lpg.lpgjavaruntime.DiagnoseParser;
-import lpg.lpgjavaruntime.ErrorToken;
-import lpg.lpgjavaruntime.IToken;
-import lpg.lpgjavaruntime.LexStream;
-import lpg.lpgjavaruntime.Monitor;
-import lpg.lpgjavaruntime.NotBacktrackParseTableException;
-import lpg.lpgjavaruntime.NullExportedSymbolsException;
-import lpg.lpgjavaruntime.NullTerminalSymbolsException;
-import lpg.lpgjavaruntime.ParseErrorCodes;
-import lpg.lpgjavaruntime.ParseTable;
-import lpg.lpgjavaruntime.PrsStream;
-import lpg.lpgjavaruntime.RuleAction;
-import lpg.lpgjavaruntime.TokenStream;
-import lpg.lpgjavaruntime.UndefinedEofSymbolException;
-import lpg.lpgjavaruntime.UnimplementedTerminalsException;
-
-public class XlcCParser extends PrsStream
-		implements RuleAction, ITokenStream, ITokenCollector, IParser<IASTTranslationUnit>
-
-{
-	private static ParseTable prs = new XlcCParserprs();
-	private FixedBacktrackingParser btParser;
-
-	public FixedBacktrackingParser getParser() {
-		return btParser;
-	}
-
-	private void setResult(Object object) {
-		btParser.setSym1(object);
-	}
-
-	public Object getRhsSym(int i) {
-		return btParser.getSym(i);
-	}
-
-	public int getRhsTokenIndex(int i) {
-		return btParser.getToken(i);
-	}
-
-	public IToken getRhsIToken(int i) {
-		return super.getIToken(getRhsTokenIndex(i));
-	}
-
-	public int getRhsFirstTokenIndex(int i) {
-		return btParser.getFirstToken(i);
-	}
-
-	public IToken getRhsFirstIToken(int i) {
-		return super.getIToken(getRhsFirstTokenIndex(i));
-	}
-
-	public int getRhsLastTokenIndex(int i) {
-		return btParser.getLastToken(i);
-	}
-
-	public IToken getRhsLastIToken(int i) {
-		return super.getIToken(getRhsLastTokenIndex(i));
-	}
-
-	public int getLeftSpan() {
-		return btParser.getFirstToken();
-	}
-
-	@Override
-	public IToken getLeftIToken() {
-		return super.getIToken(getLeftSpan());
-	}
-
-	public int getRightSpan() {
-		return btParser.getLastToken();
-	}
-
-	@Override
-	public IToken getRightIToken() {
-		return super.getIToken(getRightSpan());
-	}
-
-	public int getRhsErrorTokenIndex(int i) {
-		int index = btParser.getToken(i);
-		IToken err = super.getIToken(index);
-		return (err instanceof ErrorToken ? index : 0);
-	}
-
-	public ErrorToken getRhsErrorIToken(int i) {
-		int index = btParser.getToken(i);
-		IToken err = super.getIToken(index);
-		return (ErrorToken) (err instanceof ErrorToken ? err : null);
-	}
-
-	public XlcCParser(LexStream lexStream) {
-		super(lexStream);
-
-		try {
-			super.remapTerminalSymbols(orderedTerminalSymbols(), XlcCParserprs.EOFT_SYMBOL);
-		} catch (NullExportedSymbolsException e) {
-		} catch (NullTerminalSymbolsException e) {
-		} catch (UnimplementedTerminalsException e) {
-			java.util.ArrayList unimplemented_symbols = e.getSymbols();
-			System.out.println("The Lexer will not scan the following token(s):");
-			for (int i = 0; i < unimplemented_symbols.size(); i++) {
-				Integer id = (Integer) unimplemented_symbols.get(i);
-				System.out.println("    " + XlcCParsersym.orderedTerminalSymbols[id.intValue()]);
-			}
-			System.out.println();
-		} catch (UndefinedEofSymbolException e) {
-			throw new Error(new UndefinedEofSymbolException("The Lexer does not implement the Eof symbol "
-					+ XlcCParsersym.orderedTerminalSymbols[XlcCParserprs.EOFT_SYMBOL]));
-		}
-	}
-
-	@Override
-	public String[] orderedTerminalSymbols() {
-		return XlcCParsersym.orderedTerminalSymbols;
-	}
-
-	public String getTokenKindName(int kind) {
-		return XlcCParsersym.orderedTerminalSymbols[kind];
-	}
-
-	public int getEOFTokenKind() {
-		return XlcCParserprs.EOFT_SYMBOL;
-	}
-
-	public PrsStream getParseStream() {
-		return this;
-	}
-
-	//
-	// Report error message for given error_token.
-	//
-	public final void reportErrorTokenMessage(int error_token, String msg) {
-		int firsttok = super.getFirstErrorToken(error_token), lasttok = super.getLastErrorToken(error_token);
-		String location = super.getFileName() + ':'
-				+ (firsttok > lasttok ? (super.getEndLine(lasttok) + ":" + super.getEndColumn(lasttok))
-						: (super.getLine(error_token) + ":" + super.getColumn(error_token) + ":"
-								+ super.getEndLine(error_token) + ":" + super.getEndColumn(error_token)))
-				+ ": ";
-		super.reportError((firsttok > lasttok ? ParseErrorCodes.INSERTION_CODE : ParseErrorCodes.SUBSTITUTION_CODE),
-				location, msg);
-	}
-
-	public void parser() {
-		parser(null, 0);
-	}
-
-	public void parser(Monitor monitor) {
-		parser(monitor, 0);
-	}
-
-	public void parser(int error_repair_count) {
-		parser(null, error_repair_count);
-	}
-
-	public void parser(Monitor monitor, int error_repair_count) {
-		try {
-			btParser = new FixedBacktrackingParser(monitor, this, prs, this);
-		} catch (NotBacktrackParseTableException e) {
-			throw new Error(
-					new NotBacktrackParseTableException("Regenerate XlcCParserprs.java with -BACKTRACK option"));
-		} catch (BadParseSymFileException e) {
-			throw new Error(new BadParseSymFileException("Bad Parser Symbol File -- XlcCParsersym.java"));
-		}
-
-		try {
-			btParser.parse(error_repair_count);
-		} catch (BadParseException e) {
-			reset(e.error_token); // point to error token
-			DiagnoseParser diagnoseParser = new DiagnoseParser(this, prs);
-			diagnoseParser.diagnose(e.error_token);
-		}
-	}
-
-	private XlcCBuildASTParserAction action;
-	private IASTCompletionNode compNode;
-
-	public XlcCParser(IScanner scanner, IDOMTokenMap tokenMap, IBuiltinBindingsProvider builtinBindingsProvider,
-			IIndex index, Map<String, String> properties) {
-		initActions(properties);
-		action.initializeTranslationUnit(scanner, builtinBindingsProvider, index);
-		CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap);
-	}
-
-	private void initActions(Map<String, String> properties) {
-		ScopedStack<Object> astStack = new ScopedStack<>();
-
-		action = new XlcCBuildASTParserAction(this, astStack, XlcCNodeFactory.getDefault(),
-				GCCSecondaryParserFactory.getDefault());
-		action.setParserProperties(properties);
-
-		gnuAction = new GNUBuildASTParserAction(this, astStack, XlcCNodeFactory.getDefault());
-		gnuAction.setParserProperties(properties);
-
-	}
-
-	@Override
-	public void addToken(IToken token) {
-		token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called?
-		super.addToken(token);
-	}
-
-	@Override
-	public IASTTranslationUnit parse() {
-		// this has to be done, or... kaboom!
-		setStreamLength(getSize());
-
-		final int errorRepairCount = -1; // -1 means full error handling
-		parser(null, errorRepairCount); // do the actual parse
-		super.resetTokenStream(); // allow tokens to be garbage collected
-
-		compNode = action.getASTCompletionNode(); // the completion node may be null
-		return (IASTTranslationUnit) action.getParseResult();
-	}
-
-	@Override
-	public IASTCompletionNode getCompletionNode() {
-		return compNode;
-	}
-
-	// uncomment this method to use with backtracking parser
-	@Override
-	public List<IToken> getRuleTokens() {
-		return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
-	}
-
-	@Override
-	public String[] getOrderedTerminalSymbols() {
-		return XlcCParsersym.orderedTerminalSymbols;
-	}
-
-	@Override
-	@SuppressWarnings("nls")
-	public String getName() {
-		return "XlcCParser";
-	}
-
-	private GNUBuildASTParserAction gnuAction;
-
-	@Override
-	public void ruleAction(int ruleNumber) {
-		switch (ruleNumber) {
-
-		//
-		// Rule 1:  <openscope-ast> ::= $Empty
-		//
-		case 1: {
-			action.openASTScope();
-			break;
-		}
-
-		//
-		// Rule 2:  <empty> ::= $Empty
-		//
-		case 2: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 13:  literal ::= integer
-		//
-		case 13: {
-			action.consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant);
-			break;
-		}
-
-		//
-		// Rule 14:  literal ::= floating
-		//
-		case 14: {
-			action.consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant);
-			break;
-		}
-
-		//
-		// Rule 15:  literal ::= charconst
-		//
-		case 15: {
-			action.consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant);
-			break;
-		}
-
-		//
-		// Rule 16:  literal ::= stringlit
-		//
-		case 16: {
-			action.consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal);
-			break;
-		}
-
-		//
-		// Rule 18:  primary_expression ::= primary_expression_id
-		//
-		case 18: {
-			action.consumeExpressionID();
-			break;
-		}
-
-		//
-		// Rule 19:  primary_expression ::= ( expression )
-		//
-		case 19: {
-			action.consumeExpressionBracketed();
-			break;
-		}
-
-		//
-		// Rule 22:  postfix_expression ::= postfix_expression [ expression ]
-		//
-		case 22: {
-			action.consumeExpressionArraySubscript();
-			break;
-		}
-
-		//
-		// Rule 23:  postfix_expression ::= postfix_expression ( expression_list_opt )
-		//
-		case 23: {
-			action.consumeExpressionFunctionCall();
-			break;
-		}
-
-		//
-		// Rule 24:  postfix_expression ::= postfix_expression . member_name
-		//
-		case 24: {
-			action.consumeExpressionFieldReference(false);
-			break;
-		}
-
-		//
-		// Rule 25:  postfix_expression ::= postfix_expression -> member_name
-		//
-		case 25: {
-			action.consumeExpressionFieldReference(true);
-			break;
-		}
-
-		//
-		// Rule 26:  postfix_expression ::= postfix_expression ++
-		//
-		case 26: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr);
-			break;
-		}
-
-		//
-		// Rule 27:  postfix_expression ::= postfix_expression --
-		//
-		case 27: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr);
-			break;
-		}
-
-		//
-		// Rule 28:  postfix_expression ::= ( type_id ) initializer_list
-		//
-		case 28: {
-			action.consumeExpressionTypeIdInitializer();
-			break;
-		}
-
-		//
-		// Rule 33:  unary_expression ::= ++ unary_expression
-		//
-		case 33: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr);
-			break;
-		}
-
-		//
-		// Rule 34:  unary_expression ::= -- unary_expression
-		//
-		case 34: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr);
-			break;
-		}
-
-		//
-		// Rule 35:  unary_expression ::= & cast_expression
-		//
-		case 35: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper);
-			break;
-		}
-
-		//
-		// Rule 36:  unary_expression ::= * cast_expression
-		//
-		case 36: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_star);
-			break;
-		}
-
-		//
-		// Rule 37:  unary_expression ::= + cast_expression
-		//
-		case 37: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus);
-			break;
-		}
-
-		//
-		// Rule 38:  unary_expression ::= - cast_expression
-		//
-		case 38: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus);
-			break;
-		}
-
-		//
-		// Rule 39:  unary_expression ::= ~ cast_expression
-		//
-		case 39: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde);
-			break;
-		}
-
-		//
-		// Rule 40:  unary_expression ::= ! cast_expression
-		//
-		case 40: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_not);
-			break;
-		}
-
-		//
-		// Rule 41:  unary_expression ::= sizeof unary_expression
-		//
-		case 41: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof);
-			break;
-		}
-
-		//
-		// Rule 42:  unary_expression ::= sizeof ( type_id )
-		//
-		case 42: {
-			action.consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof);
-			break;
-		}
-
-		//
-		// Rule 44:  cast_expression ::= ( type_id ) cast_expression
-		//
-		case 44: {
-			action.consumeExpressionCast(IASTCastExpression.op_cast);
-			break;
-		}
-
-		//
-		// Rule 46:  multiplicative_expression ::= multiplicative_expression * cast_expression
-		//
-		case 46: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply);
-			break;
-		}
-
-		//
-		// Rule 47:  multiplicative_expression ::= multiplicative_expression / cast_expression
-		//
-		case 47: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide);
-			break;
-		}
-
-		//
-		// Rule 48:  multiplicative_expression ::= multiplicative_expression % cast_expression
-		//
-		case 48: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo);
-			break;
-		}
-
-		//
-		// Rule 50:  additive_expression ::= additive_expression + multiplicative_expression
-		//
-		case 50: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus);
-			break;
-		}
-
-		//
-		// Rule 51:  additive_expression ::= additive_expression - multiplicative_expression
-		//
-		case 51: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus);
-			break;
-		}
-
-		//
-		// Rule 53:  shift_expression ::= shift_expression << additive_expression
-		//
-		case 53: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft);
-			break;
-		}
-
-		//
-		// Rule 54:  shift_expression ::= shift_expression >> additive_expression
-		//
-		case 54: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight);
-			break;
-		}
-
-		//
-		// Rule 56:  relational_expression ::= relational_expression < shift_expression
-		//
-		case 56: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan);
-			break;
-		}
-
-		//
-		// Rule 57:  relational_expression ::= relational_expression > shift_expression
-		//
-		case 57: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan);
-			break;
-		}
-
-		//
-		// Rule 58:  relational_expression ::= relational_expression <= shift_expression
-		//
-		case 58: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual);
-			break;
-		}
-
-		//
-		// Rule 59:  relational_expression ::= relational_expression >= shift_expression
-		//
-		case 59: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual);
-			break;
-		}
-
-		//
-		// Rule 61:  equality_expression ::= equality_expression == relational_expression
-		//
-		case 61: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals);
-			break;
-		}
-
-		//
-		// Rule 62:  equality_expression ::= equality_expression != relational_expression
-		//
-		case 62: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals);
-			break;
-		}
-
-		//
-		// Rule 64:  and_expression ::= and_expression & equality_expression
-		//
-		case 64: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd);
-			break;
-		}
-
-		//
-		// Rule 66:  exclusive_or_expression ::= exclusive_or_expression ^ and_expression
-		//
-		case 66: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor);
-			break;
-		}
-
-		//
-		// Rule 68:  inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression
-		//
-		case 68: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr);
-			break;
-		}
-
-		//
-		// Rule 70:  logical_and_expression ::= logical_and_expression && inclusive_or_expression
-		//
-		case 70: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd);
-			break;
-		}
-
-		//
-		// Rule 72:  logical_or_expression ::= logical_or_expression || logical_and_expression
-		//
-		case 72: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr);
-			break;
-		}
-
-		//
-		// Rule 74:  conditional_expression ::= logical_or_expression ? expression : assignment_expression
-		//
-		case 74: {
-			action.consumeExpressionConditional();
-			break;
-		}
-
-		//
-		// Rule 76:  assignment_expression ::= unary_expression = assignment_expression
-		//
-		case 76: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign);
-			break;
-		}
-
-		//
-		// Rule 77:  assignment_expression ::= unary_expression *= assignment_expression
-		//
-		case 77: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign);
-			break;
-		}
-
-		//
-		// Rule 78:  assignment_expression ::= unary_expression /= assignment_expression
-		//
-		case 78: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign);
-			break;
-		}
-
-		//
-		// Rule 79:  assignment_expression ::= unary_expression %= assignment_expression
-		//
-		case 79: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign);
-			break;
-		}
-
-		//
-		// Rule 80:  assignment_expression ::= unary_expression += assignment_expression
-		//
-		case 80: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign);
-			break;
-		}
-
-		//
-		// Rule 81:  assignment_expression ::= unary_expression -= assignment_expression
-		//
-		case 81: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign);
-			break;
-		}
-
-		//
-		// Rule 82:  assignment_expression ::= unary_expression <<= assignment_expression
-		//
-		case 82: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign);
-			break;
-		}
-
-		//
-		// Rule 83:  assignment_expression ::= unary_expression >>= assignment_expression
-		//
-		case 83: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign);
-			break;
-		}
-
-		//
-		// Rule 84:  assignment_expression ::= unary_expression &= assignment_expression
-		//
-		case 84: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign);
-			break;
-		}
-
-		//
-		// Rule 85:  assignment_expression ::= unary_expression ^= assignment_expression
-		//
-		case 85: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign);
-			break;
-		}
-
-		//
-		// Rule 86:  assignment_expression ::= unary_expression |= assignment_expression
-		//
-		case 86: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign);
-			break;
-		}
-
-		//
-		// Rule 89:  expression_list ::= <openscope-ast> expression_list_actual
-		//
-		case 89: {
-			action.consumeExpressionList();
-			break;
-		}
-
-		//
-		// Rule 91:  expression_list_opt ::= $Empty
-		//
-		case 91: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 101:  statement ::= ERROR_TOKEN
-		//
-		case 101: {
-			action.consumeStatementProblem();
-			break;
-		}
-
-		//
-		// Rule 102:  labeled_statement ::= identifier_token : statement
-		//
-		case 102: {
-			action.consumeStatementLabeled();
-			break;
-		}
-
-		//
-		// Rule 103:  labeled_statement ::= case constant_expression : statement
-		//
-		case 103: {
-			action.consumeStatementCase();
-			break;
-		}
-
-		//
-		// Rule 104:  labeled_statement ::= default : statement
-		//
-		case 104: {
-			action.consumeStatementDefault();
-			break;
-		}
-
-		//
-		// Rule 105:  compound_statement ::= { }
-		//
-		case 105: {
-			action.consumeStatementCompoundStatement(false);
-			break;
-		}
-
-		//
-		// Rule 106:  compound_statement ::= { <openscope-ast> block_item_list }
-		//
-		case 106: {
-			action.consumeStatementCompoundStatement(true);
-			break;
-		}
-
-		//
-		// Rule 110:  block_item ::= declaration
-		//
-		case 110: {
-			action.consumeStatementDeclarationWithDisambiguation();
-			break;
-		}
-
-		//
-		// Rule 111:  expression_statement ::= ;
-		//
-		case 111: {
-			action.consumeStatementNull();
-			break;
-		}
-
-		//
-		// Rule 112:  expression_statement ::= expression_in_statement ;
-		//
-		case 112: {
-			action.consumeStatementExpression();
-			break;
-		}
-
-		//
-		// Rule 113:  selection_statement ::= if ( expression ) statement
-		//
-		case 113: {
-			action.consumeStatementIf(false);
-			break;
-		}
-
-		//
-		// Rule 114:  selection_statement ::= if ( expression ) statement else statement
-		//
-		case 114: {
-			action.consumeStatementIf(true);
-			break;
-		}
-
-		//
-		// Rule 115:  selection_statement ::= switch ( expression ) statement
-		//
-		case 115: {
-			action.consumeStatementSwitch();
-			break;
-		}
-
-		//
-		// Rule 117:  expression_opt ::= $Empty
-		//
-		case 117: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 118:  iteration_statement ::= do statement while ( expression ) ;
-		//
-		case 118: {
-			action.consumeStatementDoLoop(true);
-			break;
-		}
-
-		//
-		// Rule 119:  iteration_statement ::= do statement
-		//
-		case 119: {
-			action.consumeStatementDoLoop(false);
-			break;
-		}
-
-		//
-		// Rule 120:  iteration_statement ::= while ( expression ) statement
-		//
-		case 120: {
-			action.consumeStatementWhileLoop();
-			break;
-		}
-
-		//
-		// Rule 121:  iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement
-		//
-		case 121: {
-			action.consumeStatementForLoop();
-			break;
-		}
-
-		//
-		// Rule 122:  iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement
-		//
-		case 122: {
-			action.consumeStatementForLoop();
-			break;
-		}
-
-		//
-		// Rule 123:  jump_statement ::= goto identifier_token ;
-		//
-		case 123: {
-			action.consumeStatementGoto();
-			break;
-		}
-
-		//
-		// Rule 124:  jump_statement ::= continue ;
-		//
-		case 124: {
-			action.consumeStatementContinue();
-			break;
-		}
-
-		//
-		// Rule 125:  jump_statement ::= break ;
-		//
-		case 125: {
-			action.consumeStatementBreak();
-			break;
-		}
-
-		//
-		// Rule 126:  jump_statement ::= return ;
-		//
-		case 126: {
-			action.consumeStatementReturn(false);
-			break;
-		}
-
-		//
-		// Rule 127:  jump_statement ::= return expression ;
-		//
-		case 127: {
-			action.consumeStatementReturn(true);
-			break;
-		}
-
-		//
-		// Rule 128:  declaration ::= declaration_specifiers ;
-		//
-		case 128: {
-			action.consumeDeclarationSimple(false);
-			break;
-		}
-
-		//
-		// Rule 129:  declaration ::= declaration_specifiers <openscope-ast> init_declarator_list ;
-		//
-		case 129: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 130:  declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
-		//
-		case 130: {
-			action.consumeDeclarationSpecifiersSimple();
-			break;
-		}
-
-		//
-		// Rule 131:  declaration_specifiers ::= <openscope-ast> struct_or_union_declaration_specifiers
-		//
-		case 131: {
-			action.consumeDeclarationSpecifiersStructUnionEnum();
-			break;
-		}
-
-		//
-		// Rule 132:  declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
-		//
-		case 132: {
-			action.consumeDeclarationSpecifiersStructUnionEnum();
-			break;
-		}
-
-		//
-		// Rule 133:  declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
-		//
-		case 133: {
-			action.consumeDeclarationSpecifiersStructUnionEnum();
-			break;
-		}
-
-		//
-		// Rule 134:  declaration_specifiers ::= <openscope-ast> typdef_name_declaration_specifiers
-		//
-		case 134: {
-			action.consumeDeclarationSpecifiersTypedefName();
-			break;
-		}
-
-		//
-		// Rule 159:  init_declarator ::= complete_declarator = initializer
-		//
-		case 159: {
-			action.consumeDeclaratorWithInitializer(true);
-			break;
-		}
-
-		//
-		// Rule 161:  storage_class_specifier ::= storage_class_specifier_token
-		//
-		case 161: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 167:  simple_type_specifier ::= simple_type_specifier_token
-		//
-		case 167: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 180:  type_name_specifier ::= identifier_token
-		//
-		case 180: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 181:  struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { <openscope-ast> struct_declaration_list_opt }
-		//
-		case 181: {
-			action.consumeTypeSpecifierComposite(false);
-			break;
-		}
-
-		//
-		// Rule 182:  struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { <openscope-ast> struct_declaration_list_opt }
-		//
-		case 182: {
-			action.consumeTypeSpecifierComposite(true);
-			break;
-		}
-
-		//
-		// Rule 187:  elaborated_specifier ::= struct elaborated_specifier_hook identifier_token
-		//
-		case 187: {
-			action.consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct);
-			break;
-		}
-
-		//
-		// Rule 188:  elaborated_specifier ::= union elaborated_specifier_hook identifier_token
-		//
-		case 188: {
-			action.consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union);
-			break;
-		}
-
-		//
-		// Rule 189:  elaborated_specifier ::= enum elaborated_specifier_hook identifier_token
-		//
-		case 189: {
-			action.consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum);
-			break;
-		}
-
-		//
-		// Rule 195:  struct_declaration ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ;
-		//
-		case 195: {
-			action.consumeStructDeclaration(true);
-			break;
-		}
-
-		//
-		// Rule 196:  struct_declaration ::= specifier_qualifier_list ;
-		//
-		case 196: {
-			action.consumeStructDeclaration(false);
-			break;
-		}
-
-		//
-		// Rule 197:  struct_declaration ::= ERROR_TOKEN
-		//
-		case 197: {
-			action.consumeDeclarationProblem();
-			break;
-		}
-
-		//
-		// Rule 203:  struct_declarator ::= : constant_expression
-		//
-		case 203: {
-			action.consumeBitField(false);
-			break;
-		}
-
-		//
-		// Rule 204:  struct_declarator ::= declarator : constant_expression
-		//
-		case 204: {
-			action.consumeBitField(true);
-			break;
-		}
-
-		//
-		// Rule 205:  enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
-		//
-		case 205: {
-			action.consumeTypeSpecifierEnumeration(false);
-			break;
-		}
-
-		//
-		// Rule 206:  enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
-		//
-		case 206: {
-			action.consumeTypeSpecifierEnumeration(true);
-			break;
-		}
-
-		//
-		// Rule 212:  enumerator ::= identifier_token
-		//
-		case 212: {
-			action.consumeEnumerator(false);
-			break;
-		}
-
-		//
-		// Rule 213:  enumerator ::= identifier_token = constant_expression
-		//
-		case 213: {
-			action.consumeEnumerator(true);
-			break;
-		}
-
-		//
-		// Rule 214:  type_qualifier ::= type_qualifier_token
-		//
-		case 214: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 218:  function_specifier ::= inline
-		//
-		case 218: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 220:  declarator ::= <openscope-ast> pointer_seq direct_declarator
-		//
-		case 220: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 225:  basic_direct_declarator ::= declarator_id_name
-		//
-		case 225: {
-			action.consumeDirectDeclaratorIdentifier();
-			break;
-		}
-
-		//
-		// Rule 226:  basic_direct_declarator ::= ( declarator )
-		//
-		case 226: {
-			action.consumeDirectDeclaratorBracketed();
-			break;
-		}
-
-		//
-		// Rule 227:  declarator_id_name ::= identifier
-		//
-		case 227: {
-			action.consumeIdentifierName();
-			break;
-		}
-
-		//
-		// Rule 228:  array_direct_declarator ::= basic_direct_declarator array_modifier
-		//
-		case 228: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 229:  array_direct_declarator ::= array_direct_declarator array_modifier
-		//
-		case 229: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 231:  function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_type_list )
-		//
-		case 231: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true, true);
-			break;
-		}
-
-		//
-		// Rule 232:  function_direct_declarator ::= basic_direct_declarator ( )
-		//
-		case 232: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true, false);
-			break;
-		}
-
-		//
-		// Rule 234:  function_declarator ::= <openscope-ast> pointer_seq function_direct_declarator
-		//
-		case 234: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 235:  knr_direct_declarator ::= basic_direct_declarator ( <openscope-ast> identifier_list )
-		//
-		case 235: {
-			action.consumeDirectDeclaratorFunctionDeclaratorKnR();
-			break;
-		}
-
-		//
-		// Rule 237:  knr_function_declarator ::= <openscope-ast> pointer_seq knr_direct_declarator
-		//
-		case 237: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 238:  identifier_list ::= identifier
-		//
-		case 238: {
-			action.consumeIdentifierKnR();
-			break;
-		}
-
-		//
-		// Rule 239:  identifier_list ::= identifier_list , identifier
-		//
-		case 239: {
-			action.consumeIdentifierKnR();
-			break;
-		}
-
-		//
-		// Rule 240:  array_modifier ::= [ ]
-		//
-		case 240: {
-			action.consumeDirectDeclaratorArrayModifier(false);
-			break;
-		}
-
-		//
-		// Rule 241:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ]
-		//
-		case 241: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false);
-			break;
-		}
-
-		//
-		// Rule 242:  array_modifier ::= [ assignment_expression ]
-		//
-		case 242: {
-			action.consumeDirectDeclaratorArrayModifier(true);
-			break;
-		}
-
-		//
-		// Rule 243:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
-		//
-		case 243: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 244:  array_modifier ::= [ static assignment_expression ]
-		//
-		case 244: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true);
-			break;
-		}
-
-		//
-		// Rule 245:  array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
-		//
-		case 245: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 246:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ]
-		//
-		case 246: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 247:  array_modifier ::= [ * ]
-		//
-		case 247: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false);
-			break;
-		}
-
-		//
-		// Rule 248:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ]
-		//
-		case 248: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false);
-			break;
-		}
-
-		//
-		// Rule 250:  pointer_seq ::= pointer_hook * pointer_hook
-		//
-		case 250: {
-			action.consumePointer();
-			break;
-		}
-
-		//
-		// Rule 251:  pointer_seq ::= pointer_seq pointer_hook * pointer_hook
-		//
-		case 251: {
-			action.consumePointer();
-			break;
-		}
-
-		//
-		// Rule 252:  pointer_seq ::= pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
-		//
-		case 252: {
-			action.consumePointerTypeQualifierList();
-			break;
-		}
-
-		//
-		// Rule 253:  pointer_seq ::= pointer_seq pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
-		//
-		case 253: {
-			action.consumePointerTypeQualifierList();
-			break;
-		}
-
-		//
-		// Rule 257:  parameter_type_list ::= parameter_list
-		//
-		case 257: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 258:  parameter_type_list ::= parameter_list , ...
-		//
-		case 258: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 259:  parameter_type_list ::= ...
-		//
-		case 259: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 262:  parameter_declaration ::= declaration_specifiers complete_parameter_declarator
-		//
-		case 262: {
-			action.consumeParameterDeclaration();
-			break;
-		}
-
-		//
-		// Rule 263:  parameter_declaration ::= declaration_specifiers
-		//
-		case 263: {
-			action.consumeParameterDeclarationWithoutDeclarator();
-			break;
-		}
-
-		//
-		// Rule 266:  type_id ::= specifier_qualifier_list
-		//
-		case 266: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 267:  type_id ::= specifier_qualifier_list abstract_declarator
-		//
-		case 267: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 269:  abstract_declarator ::= <openscope-ast> pointer_seq
-		//
-		case 269: {
-			action.consumeDeclaratorWithPointer(false);
-			break;
-		}
-
-		//
-		// Rule 270:  abstract_declarator ::= <openscope-ast> pointer_seq direct_abstract_declarator
-		//
-		case 270: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 274:  basic_direct_abstract_declarator ::= ( abstract_declarator )
-		//
-		case 274: {
-			action.consumeDirectDeclaratorBracketed();
-			break;
-		}
-
-		//
-		// Rule 275:  array_direct_abstract_declarator ::= array_modifier
-		//
-		case 275: {
-			action.consumeDirectDeclaratorArrayDeclarator(false);
-			break;
-		}
-
-		//
-		// Rule 276:  array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
-		//
-		case 276: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 277:  array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
-		//
-		case 277: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 278:  function_direct_abstract_declarator ::= ( )
-		//
-		case 278: {
-			action.consumeDirectDeclaratorFunctionDeclarator(false, false);
-			break;
-		}
-
-		//
-		// Rule 279:  function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( )
-		//
-		case 279: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true, false);
-			break;
-		}
-
-		//
-		// Rule 280:  function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list )
-		//
-		case 280: {
-			action.consumeDirectDeclaratorFunctionDeclarator(false, true);
-			break;
-		}
-
-		//
-		// Rule 281:  function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list )
-		//
-		case 281: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true, true);
-			break;
-		}
-
-		//
-		// Rule 282:  initializer ::= assignment_expression
-		//
-		case 282: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 283:  initializer ::= initializer_list
-		//
-		case 283: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 284:  initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq comma_opt } end_initializer_list
-		//
-		case 284: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 285:  initializer_list ::= { <openscope-ast> }
-		//
-		case 285: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 286:  start_initializer_list ::= $Empty
-		//
-		case 286: {
-			action.initializerListStart();
-			break;
-		}
-
-		//
-		// Rule 287:  end_initializer_list ::= $Empty
-		//
-		case 287: {
-			action.initializerListEnd();
-			break;
-		}
-
-		//
-		// Rule 292:  designated_initializer ::= <openscope-ast> designation = initializer
-		//
-		case 292: {
-			action.consumeInitializerDesignated();
-			break;
-		}
-
-		//
-		// Rule 296:  designator_base ::= [ constant_expression ]
-		//
-		case 296: {
-			action.consumeDesignatorArray();
-			break;
-		}
-
-		//
-		// Rule 297:  designator_base ::= . identifier_token
-		//
-		case 297: {
-			action.consumeDesignatorField();
-			break;
-		}
-
-		//
-		// Rule 298:  designator ::= [ constant_expression ]
-		//
-		case 298: {
-			action.consumeDesignatorArray();
-			break;
-		}
-
-		//
-		// Rule 299:  designator ::= . identifier_token
-		//
-		case 299: {
-			action.consumeDesignatorField();
-			break;
-		}
-
-		//
-		// Rule 300:  translation_unit ::= external_declaration_list
-		//
-		case 300: {
-			action.consumeTranslationUnit();
-			break;
-		}
-
-		//
-		// Rule 301:  translation_unit ::= $Empty
-		//
-		case 301: {
-			action.consumeTranslationUnit();
-			break;
-		}
-
-		//
-		// Rule 306:  external_declaration ::= ;
-		//
-		case 306: {
-			action.consumeDeclarationEmpty();
-			break;
-		}
-
-		//
-		// Rule 307:  external_declaration ::= ERROR_TOKEN
-		//
-		case 307: {
-			action.consumeDeclarationProblem();
-			break;
-		}
-
-		//
-		// Rule 311:  function_definition ::= <openscope-ast> function_declarator function_body
-		//
-		case 311: {
-			action.consumeFunctionDefinition(false);
-			break;
-		}
-
-		//
-		// Rule 312:  function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
-		//
-		case 312: {
-			action.consumeFunctionDefinitionKnR();
-			break;
-		}
-
-		//
-		// Rule 313:  normal_function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
-		//
-		case 313: {
-			action.consumeFunctionDefinition(true);
-			break;
-		}
-
-		//
-		// Rule 314:  function_body ::= { }
-		//
-		case 314: {
-			action.consumeStatementCompoundStatement(false);
-			break;
-		}
-
-		//
-		// Rule 315:  function_body ::= { <openscope-ast> block_item_list }
-		//
-		case 315: {
-			action.consumeStatementCompoundStatement(true);
-			break;
-		}
-
-		//
-		// Rule 332:  attribute_parameter ::= assignment_expression
-		//
-		case 332: {
-			action.consumeIgnore();
-			break;
-		}
-
-		//
-		// Rule 343:  extended_asm_declaration ::= asm volatile_opt ( extended_asm_param_seq ) ;
-		//
-		case 343: {
-			gnuAction.consumeDeclarationASM();
-			break;
-		}
-
-		//
-		// Rule 354:  unary_expression ::= __alignof__ unary_expression
-		//
-		case 354: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_alignOf);
-			break;
-		}
-
-		//
-		// Rule 355:  unary_expression ::= __alignof__ ( type_id )
-		//
-		case 355: {
-			action.consumeExpressionTypeId(IASTTypeIdExpression.op_alignof);
-			break;
-		}
-
-		//
-		// Rule 356:  unary_expression ::= typeof unary_expression
-		//
-		case 356: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof);
-			break;
-		}
-
-		//
-		// Rule 357:  unary_expression ::= typeof ( type_id )
-		//
-		case 357: {
-			action.consumeExpressionTypeId(IASTTypeIdExpression.op_typeof);
-			break;
-		}
-
-		//
-		// Rule 358:  relational_expression ::= relational_expression >? shift_expression
-		//
-		case 358: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_max);
-			break;
-		}
-
-		//
-		// Rule 359:  relational_expression ::= relational_expression <? shift_expression
-		//
-		case 359: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_min);
-			break;
-		}
-
-		//
-		// Rule 360:  conditional_expression ::= logical_or_expression ? <empty> : assignment_expression
-		//
-		case 360: {
-			action.consumeExpressionConditional();
-			break;
-		}
-
-		//
-		// Rule 361:  primary_expression ::= ( compound_statement )
-		//
-		case 361: {
-			gnuAction.consumeCompoundStatementExpression();
-			break;
-		}
-
-		//
-		// Rule 362:  labeled_statement ::= case case_range_expression : statement
-		//
-		case 362: {
-			action.consumeStatementCase();
-			break;
-		}
-
-		//
-		// Rule 363:  case_range_expression ::= constant_expression ... constant_expression
-		//
-		case 363: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign);
-			break;
-		}
-
-		//
-		// Rule 367:  typeof_type_specifier ::= typeof unary_expression
-		//
-		case 367: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof);
-			break;
-		}
-
-		//
-		// Rule 368:  typeof_type_specifier ::= typeof ( type_id )
-		//
-		case 368: {
-			action.consumeExpressionTypeId(IASTTypeIdExpression.op_typeof);
-			break;
-		}
-
-		//
-		// Rule 369:  declaration_specifiers ::= <openscope-ast> typeof_declaration_specifiers
-		//
-		case 369: {
-			action.consumeDeclarationSpecifiersTypeof();
-			break;
-		}
-
-		//
-		// Rule 385:  field_name_designator ::= identifier_token :
-		//
-		case 385: {
-			action.consumeDesignatorFieldGCC();
-			break;
-		}
-
-		//
-		// Rule 386:  array_range_designator ::= [ constant_expression ... constant_expression ]
-		//
-		case 386: {
-			action.consumeDesignatorArrayRange();
-			break;
-		}
-
-		//
-		// Rule 387:  designated_initializer ::= <openscope-ast> field_name_designator initializer
-		//
-		case 387: {
-			action.consumeInitializerDesignated();
-			break;
-		}
-
-		//
-		// Rule 388:  block_item ::= normal_function_definition
-		//
-		case 388: {
-			action.consumeStatementDeclaration();
-			break;
-		}
-
-		//
-		// Rule 392:  type_id ::= vector_type
-		//
-		case 392: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 393:  type_id ::= vector_type abstract_declarator
-		//
-		case 393: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 394:  vector_declaration ::= vector_type <openscope-ast> init_declarator_list ;
-		//
-		case 394: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 395:  vector_type ::= <openscope-ast> no_type_declaration_specifiers_opt vector vector_type_specifier all_specifier_qualifier_list_opt
-		//
-		case 395: {
-			action.consumeVectorTypeSpecifier();
-			break;
-		}
-
-		//
-		// Rule 396:  vector_type_specifier ::= vector_type_specifier_token
-		//
-		case 396: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 418:  declarator_id_name ::= pixel
-		//
-		case 418: {
-			action.consumeIdentifierName();
-			break;
-		}
-
-		//
-		// Rule 419:  declarator_id_name ::= vector
-		//
-		case 419: {
-			action.consumeIdentifierName();
-			break;
-		}
-
-		//
-		// Rule 420:  declarator_id_name ::= bool
-		//
-		case 420: {
-			action.consumeIdentifierName();
-			break;
-		}
-
-		default:
-			break;
-		}
-		return;
-	}
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/c/XlcCParserprs.java b/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/c/XlcCParserprs.java
deleted file mode 100644
index 9b788d3..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/c/XlcCParserprs.java
+++ /dev/null
@@ -1,1146 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2010 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.lrparser.xlc.c;
-
-public class XlcCParserprs implements lpg.lpgjavaruntime.ParseTable, XlcCParsersym {
-
-	public interface IsKeyword {
-		public final static byte isKeyword[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static byte isKeyword[] = IsKeyword.isKeyword;
-
-	public final boolean isKeyword(int index) {
-		return isKeyword[index] != 0;
-	}
-
-	public interface BaseCheck {
-		public final static short baseCheck[] = { 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 4,
-				4, 3, 3, 2, 2, 4, 1, 0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 1, 4, 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 3, 3,
-				3, 3, 1, 3, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 2, 1, 0, 1,
-				3, 1, 1, 1, 1, 1, 1, 1, 1, 3, 4, 3, 2, 4, 1, 2, 1, 1, 1, 2, 5, 7, 5, 1, 0, 7, 2, 5, 9, 8, 3, 2, 2, 2, 3,
-				2, 4, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 3, 1, 3, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6, 8, 0, 0, 1, 1, 3, 3, 3, 0, 1, 0, 1, 2, 4, 2, 1,
-				1, 1, 3, 1, 1, 2, 3, 7, 8, 0, 1, 0, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 3, 1, 2, 2, 1, 5, 3,
-				1, 3, 5, 1, 3, 1, 3, 2, 4, 3, 5, 4, 6, 6, 3, 5, 1, 3, 4, 5, 6, 0, 1, 2, 1, 3, 1, 1, 3, 2, 1, 1, 1, 1, 2,
-				1, 2, 3, 1, 1, 1, 3, 1, 2, 2, 2, 3, 4, 5, 1, 1, 7, 3, 0, 0, 1, 1, 3, 3, 4, 1, 1, 2, 3, 2, 3, 2, 1, 0, 1,
-				2, 1, 1, 1, 1, 1, 2, 1, 3, 6, 4, 2, 4, 1, 1, 1, 1, 2, 6, 3, 1, 3, 1, 4, 0, 1, 1, 1, 3, 1, 0, 4, 3, 1, 2,
-				1, 3, 4, 4, 4, 6, 1, 0, 1, 3, 1, 3, 0, 1, 4, 5, 2, 4, 2, 4, 3, 3, 5, 3, 4, 3, 1, 2, 2, 2, 4, 2, 1, 1, 2,
-				2, 3, 2, 2, 3, 1, 1, 1, 1, 1, 1, 1, 2, 5, 3, 1, 1, 1, 1, 1, 2, 4, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 2, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, -115, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -8, 0,
-				0, 0, 0, 0, 0, -66, -94, 0, 0, -54, 0, 0, 0, -33, 0, -252, 0, 0, 0, 0, 0, -89, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -35, 0, 0, 0, 0, 0, 0, -49, 0, 0, 0, -87, -12, 0, 0, 0, 0, 0, 0, 0, -70, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -128, -11, 0, 0, 0, 0, 0, 0, 0, 0, -14, -43, -6, 0, 0, -52, 0, -352, -266, 0, 0,
-				0, 0, 0, 0, -15, 0, 0, 0, 0, -3, 0, 0, 0, -16, -67, 0, 0, 0, 0, 0, 0, 0, 0, 0, -365, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -145, 0, 0, 0, 0, 0, -55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -236, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -27, 0, 0, -56, 0, -158, 0, 0, 0, 0, 0, 0, 0, 0, -51, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -50, -4, 0, 0, 0, 0, 0, 0, 0, 0, -233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -185, 0, -117, 0, -28, -232, 0, -29, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -309, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -39, 0, 0,
-				0, 0, 0, 0, -40, 0, 0, 0, 0, -30, 0, 0, 0, 0, 0, 0, 0, -71, 0, 0, 0, 0, 0, 0, 0, 0, -258, -173, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -359, 0, 0, 0, 0, 0, 0, 0, 0, -31, 0, -95, -121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -126, 0, 0, 0, 0, 0, 0, 0, 0, -5, -270, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-262, 0, 0, 0, -279, -116, 0, 0, 0, -118, 0, -361, 0, 0, 0, 0, 0, 0, 0, 0, -339, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -234, 0, 0, 0, 0, 0, 0, 0, 0, -36, -42, 0, 0, 0, 0, 0, 0, 0, -45, 0, 0, 0, 0, 0,
-				0, -122, 0, 0, -260, 0, 0, 0, -375, 0, 0, 0, 0, 0, 0, 0, 0, -327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -46, 0, 0, 0, -86, 0, 0, 0, 0, 0, 0, 0, 0, -48, 0, 0, -324, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -254, 0, -53, 0, 0, 0, 0, 0, 0, -93, 0, 0, -65, 0, 0, 0, 0, 0, -80, 0, 0, 0, 0, 0, 0, 0, 0,
-				-44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -58, 0, 0, 0, 0, -177, 0, 0, -151, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -130, 0, -124, 0, 0, 0, 0, 0, 0, -59, 0, 0, 0, 0, 0, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -261, 0,
-				-97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -127, -119, 0, 0, 0, -155, 0, 0, 0, -63, 0, 0, 0, -79, 0, 0, 0, 0, 0,
-				-271, 0, -18, -81, -99, 0, 0, -101, 0, 0, 0, 0, 0, 0, 0, 0, -82, -163, 0, 0, 0, 0, 0, 0, 0, 0, -96,
-				-323, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -193, 0, 0, -231, 0, 0, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -100, 0, 0, 0, -68, 0, -188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -196, -195, 0, -102, 0, 0, 0, 0, 0, 0, -189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -110,
-				-153, -272, 0, 0, -69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -201, 0, 0, 0, 0, 0, 0, 0, 0, -152, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -273, 0, -38, 0, 0, -283, 0, 0, 0, 0, 0, 0, 0, 0, 0, -123, 0, 0, 0, -217,
-				0, -200, 0, 0, 0, 0, 0, 0, -129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -144, -131, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -348, 0, 0, -132, -23, -275, -357, -146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -347, 0,
-				-133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -10, -202, 0, 0, 0, 0, 0, -134,
-				-111, 0, 0, 0, 0, -57, 0, 0, 0, 0, 0, -34, 0, -328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -218, 0, -135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -165, 0, 0, -229, 0, -112, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -287, 0, 0, -199, 0, 0, 0, -154, 0, 0, -334, -172, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-355, 0, -203, 0, 0, 0, 0, 0, 0, 0, 0, 0, -374, 0, 0, 0, 0, 0, 0, 0, -136, 0, 0, 0, 0, 0, 0, -259, -137,
-				0, 0, 0, 0, 0, -204, 0, 0, 0, 0, 0, 0, 0, 0, 0, -161, -326, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -138,
-				-205, 0, 0, 0, 0, 0, 0, 0, 0, 0, -175, -240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -139, -206, 0, 0, 0,
-				0, 0, 0, 0, 0, -237, 0, 0, 0, 0, 0, 0, 0, 0, -166, 0, 0, 0, 0, 0, 0, -140, -207, 0, 0, 0, 0, 0, 0, 0, 0,
-				-257, 0, 0, -241, 0, 0, 0, 0, 0, -168, 0, 0, 0, 0, 0, 0, -143, -208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -176, 0, 0, 0, 0, 0, 0, -147, -209, 0, 0, 0, 0, 0, 0, 0, 0, -265, 0, 0, -311, 0, 0, 0, 0,
-				0, -180, 0, 0, 0, 0, 0, 0, -148, -210, 0, 0, 0, 0, 0, 0, 0, 0, -335, 0, 0, -338, 0, 0, 0, 0, 0, -181, 0,
-				0, 0, 0, 0, 0, -156, -211, 0, 0, 0, 0, 0, 0, 0, 0, -157, 0, -362, 0, 0, 0, 0, 0, 0, -182, 0, 0, 0, 0, 0,
-				0, -159, -212, 0, 0, 0, 0, 0, 0, 0, 0, -354, 0, 0, -340, 0, 0, 0, 0, 0, -183, 0, 0, 0, 0, 0, 0, -160,
-				-213, 0, 0, 0, 0, 0, 0, 0, 0, -184, 0, 0, -194, 0, 0, 0, 0, 0, -349, 0, 0, 0, 0, 0, 0, -269, 0, 0, 0,
-				-61, 0, -358, 0, -162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -164, -280, 0, -167, 0, 0, 0, 0, 0, 0, -198, -367,
-				0, 0, 0, 0, 0, 0, 0, -169, 0, 0, 0, 0, 0, 0, -377, 0, 0, 0, -179, 0, 0, 0, 0, -190, 0, -230, 0, -191, 0,
-				0, 0, 0, 0, 0, 0, -381, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -285, 0, 0, 0, 0, 0, 0, 0, 0, -376, -197,
-				-239, 0, 0, 0, 0, 0, 0, -235, 0, 0, 0, 0, 0, 0, -244, -286, 0, 0, 0, 0, 0, 0, 0, 0, -385, 0, -248, -249,
-				0, 0, 0, 0, 0, -263, 0, 0, 0, 0, 0, 0, -264, -317, 0, 0, 0, 0, 0, 0, 0, 0, -253, -120, 0, 0, 0, 0, 0, 0,
-				0, -281, 0, 0, 0, 0, 0, 0, -325, 0, 0, 0, 0, 0, 0, 0, 0, -289, -290, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -291, -292, -336, 0, -293, 0, 0, 0, 0, 0, 0, -388, -294, -295, 0, 0, 0, 0, 0, 0, -255, 0, 0, 0, 0,
-				0, 0, -296, -337, 0, 0, 0, 0, 0, 0, 0, 0, -297, 0, 0, -298, 0, 0, 0, 0, 0, -299, 0, 0, 0, 0, 0, 0, -300,
-				-350, 0, 0, 0, 0, 0, 0, 0, 0, -256, -243, 0, 0, 0, 0, 0, 0, 0, -301, 0, 0, 0, 0, 0, 0, -363, 0, 0, 0, 0,
-				0, 0, 0, 0, -302, -303, 0, -304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -305, -306, -371, 0, -307, 0, 0, 0,
-				0, 0, 0, -277, -308, -313, 0, 0, 0, 0, 0, 0, -284, 0, 0, 0, 0, 0, 0, -378, 0, 0, 0, 0, 0, 0, 0, 0, -351,
-				-360, 0, 0, 0, 0, 0, 0, 0, -312, 0, 0, 0, 0, 0, 0, -364, -369, -384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -251, 0, 0, 0, 0, 0, 0, 0, -314, 0, 0, 0, 0,
-				-92, -76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -78, -315, 0, -320, 0, 0, 0, 0, 0, 0, 0, 0, 0, -330,
-				-331, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -98, 0, 0, 0, 0, -245, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -333, 0, 0, 0, -9, 0, 0, -356, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -238, 0, 0,
-				0, 0, 0, 0, 0, -368, 0, 0, 0, 0, -13, -379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -387, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -322, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-83, 0, 0, 0, -187, 0, 0, 0, 0, 0, 0, 0, 0, 0, -370, 0, 0, -7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -267, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -310, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -150, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -84, 0, 0, 0, -346, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -250, 0, 0, 0, -288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -278, 0,
-				0, 0, 0, 0, -343, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -62, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -104, 0, 0, 0, 0, -316, 0, 0, -171, 0, 0, 0, 0, 0, 0, -318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -342, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -329, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -344, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -345, 0, 0, 0, 0, 0, 0, 0, -382, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -386, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -25, 0, 0, 0, -389, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -220, 0, 0, 0, 0, 0, 0, 0, 0, 0, -113, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -222, 0, 0, 0, 0, 0, 0, 0, 0,
-				-276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -19, 0, 0, 0, -332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -22, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -149, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -224, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -226, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -227, 0, 0, 0, 0, 0, 0, 0, 0, -26, 0, 0, 0, 0, 0, 0, -228, 0, 0,
-				0, 0, 0, 0, 0, 0, -242, 0, 0, -20, 0, 0, 0, 0, -105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -282, 0, 0, 0, 0, 0, -125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -41, 0, 0, 0, -47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -114, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -74, 0, 0, 0, 0, 0, 0, 0, 0, -75, 0, 0, 0, 0, 0, 0,
-				0, 0, -90, -170, 0, 0, 0, 0, -186, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -215, 0, 0, 0, 0, 0, 0, 0, 0, 0, -268, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -216, 0, 0, 0, 0, 0, 0, 0, 0, -319, -321, 0, 0, 0, -21, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -77, 0, 0, 0, 0, 0, 0, 0, 0, -174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -192, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -37, 0, 0, 0, 0, -85, 0, 0, 0, 0, 0, 0, 0, -353, 0, 0, 0,
-				0, 0, -372, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -341, -366, 0, 0, 0, 0, 0, 0, 0, 0, -373, 0, -380, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -383, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static short baseCheck[] = BaseCheck.baseCheck;
-
-	@Override
-	public final int baseCheck(int index) {
-		return baseCheck[index];
-	}
-
-	public final static short rhs[] = baseCheck;
-
-	@Override
-	public final int rhs(int index) {
-		return rhs[index];
-	}
-
-	public interface BaseAction {
-		public final static char baseAction[] = { 127, 2, 128, 54, 54, 18, 18, 59, 59, 25, 25, 1, 1, 3, 3, 3, 3, 4, 4,
-				4, 5, 6, 6, 6, 6, 6, 6, 6, 6, 98, 98, 108, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 13, 13, 13, 13, 14,
-				14, 14, 15, 15, 15, 16, 16, 16, 16, 16, 17, 17, 17, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 28,
-				28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 43, 33, 26, 129, 129, 109, 109, 64, 44, 44, 44, 44, 44, 44,
-				44, 45, 45, 45, 30, 30, 110, 110, 89, 89, 46, 46, 47, 47, 47, 82, 82, 48, 48, 48, 48, 48, 49, 49, 49,
-				49, 49, 61, 61, 29, 29, 29, 29, 29, 50, 50, 50, 73, 73, 91, 91, 91, 91, 92, 92, 92, 93, 93, 93, 94, 94,
-				94, 95, 95, 95, 90, 90, 83, 83, 84, 51, 53, 53, 53, 53, 53, 67, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
-				68, 68, 77, 74, 74, 130, 131, 78, 78, 75, 75, 75, 99, 111, 111, 112, 112, 100, 100, 100, 60, 132, 132,
-				113, 101, 101, 101, 76, 76, 133, 114, 114, 115, 115, 102, 102, 31, 32, 32, 32, 52, 56, 56, 37, 37, 37,
-				37, 34, 34, 35, 38, 38, 39, 36, 36, 103, 103, 40, 135, 135, 134, 134, 58, 58, 58, 58, 58, 58, 58, 58,
-				58, 116, 65, 65, 65, 65, 41, 96, 96, 86, 86, 86, 87, 87, 79, 79, 136, 136, 66, 66, 88, 88, 88, 69, 69,
-				69, 70, 71, 71, 71, 72, 72, 72, 72, 85, 85, 55, 55, 57, 138, 137, 137, 137, 137, 117, 139, 140, 140,
-				141, 141, 142, 142, 127, 127, 143, 143, 118, 118, 118, 118, 144, 144, 119, 119, 119, 80, 120, 120, 9, 9,
-				9, 27, 27, 10, 10, 145, 145, 121, 121, 121, 122, 122, 146, 146, 123, 123, 11, 11, 147, 147, 124, 124,
-				124, 124, 12, 62, 148, 148, 149, 149, 125, 125, 125, 104, 104, 104, 7, 7, 7, 7, 16, 16, 24, 4, 45, 150,
-				97, 97, 97, 81, 81, 29, 61, 50, 84, 84, 84, 113, 113, 113, 133, 130, 131, 41, 99, 141, 141, 151, 152,
-				117, 89, 68, 68, 68, 66, 66, 63, 42, 106, 107, 107, 107, 107, 107, 107, 107, 107, 107, 126, 126, 154,
-				154, 153, 153, 105, 105, 61, 1, 1, 1, 35, 35, 35, 359, 1770, 452, 17, 21, 18, 1054, 1247, 45, 371, 316,
-				317, 318, 1264, 1297, 1278, 1363, 1327, 334, 1447, 1439, 1504, 1478, 1530, 75, 1506, 790, 2619, 92,
-				1323, 2144, 136, 214, 2517, 20, 790, 17, 21, 18, 1054, 367, 2306, 20, 232, 17, 21, 18, 1054, 1247, 45,
-				138, 135, 137, 161, 1264, 1297, 1278, 1363, 1327, 668, 1447, 1439, 1504, 1478, 1530, 75, 483, 140, 167,
-				282, 1506, 626, 2661, 1339, 144, 147, 150, 153, 1062, 2625, 20, 364, 17, 21, 18, 1054, 43, 40, 232, 503,
-				689, 2231, 2470, 2889, 2904, 2918, 283, 2951, 1556, 396, 626, 1310, 180, 2796, 1696, 511, 846, 503,
-				3207, 1766, 371, 316, 317, 318, 610, 320, 316, 317, 318, 337, 255, 214, 335, 685, 2544, 20, 159, 17, 21,
-				18, 1054, 356, 136, 214, 750, 767, 225, 233, 255, 214, 725, 225, 230, 219, 718, 222, 224, 323, 1734,
-				1452, 180, 138, 135, 137, 161, 1560, 324, 1734, 371, 316, 317, 318, 2033, 1076, 320, 316, 317, 318, 140,
-				167, 1364, 1523, 2095, 396, 1339, 144, 147, 150, 153, 1062, 136, 214, 364, 828, 346, 1321, 816, 188,
-				1523, 1731, 1153, 311, 2231, 2470, 2889, 2904, 2918, 1636, 2951, 138, 135, 137, 161, 1341, 492, 1194,
-				511, 3427, 960, 1182, 38, 951, 2177, 111, 87, 322, 140, 167, 96, 1697, 313, 1153, 1339, 144, 147, 150,
-				153, 1062, 336, 285, 364, 1463, 1816, 95, 97, 98, 99, 100, 1584, 180, 2231, 2470, 2889, 2904, 2918, 88,
-				2951, 371, 316, 317, 318, 769, 1998, 1936, 511, 816, 31, 957, 2625, 20, 999, 17, 21, 18, 1054, 43, 45,
-				439, 314, 136, 214, 1264, 1297, 1278, 1363, 1327, 295, 1447, 1984, 2436, 20, 834, 17, 21, 18, 1054,
-				1247, 45, 138, 135, 137, 161, 1264, 1297, 1278, 1363, 1327, 521, 1447, 1439, 1504, 1478, 1530, 75, 406,
-				140, 167, 282, 28, 1002, 1556, 1712, 144, 147, 150, 153, 1062, 2625, 20, 364, 17, 21, 18, 1054, 43, 39,
-				1364, 1356, 1835, 2231, 2470, 2889, 2904, 2918, 283, 2951, 1556, 927, 20, 834, 17, 21, 18, 1054, 1247,
-				45, 1017, 1997, 1696, 668, 1264, 1297, 1278, 1363, 1327, 229, 1447, 1439, 1504, 1478, 1530, 75, 228, 25,
-				288, 282, 334, 2725, 20, 1401, 17, 21, 18, 1054, 1247, 45, 893, 1019, 1320, 659, 1264, 1297, 1278, 1363,
-				1327, 181, 1447, 1439, 1504, 1478, 1530, 75, 283, 1704, 1556, 1240, 289, 1506, 1182, 2893, 1102, 128,
-				816, 31, 2463, 20, 987, 17, 21, 18, 1054, 1247, 45, 1181, 2049, 279, 1621, 1264, 1297, 1278, 1363, 1327,
-				290, 1447, 1439, 1504, 1478, 1530, 75, 210, 2625, 20, 282, 17, 21, 18, 1054, 43, 45, 684, 48, 814, 1842,
-				1264, 1297, 1278, 1363, 1327, 684, 1447, 1439, 1504, 2001, 1076, 291, 1191, 261, 105, 1166, 283, 659,
-				1556, 2490, 20, 394, 17, 21, 18, 1054, 1247, 45, 503, 337, 129, 347, 1264, 1297, 1278, 1363, 1327, 343,
-				1447, 1439, 1504, 1478, 1530, 75, 198, 1217, 387, 282, 925, 617, 20, 510, 17, 21, 18, 1054, 1247, 45,
-				771, 255, 214, 1364, 1264, 1297, 1278, 1363, 1327, 24, 1447, 1439, 1504, 1478, 1530, 75, 283, 1446,
-				1556, 1041, 2825, 20, 1039, 17, 21, 18, 1054, 1247, 45, 217, 1731, 421, 1269, 1264, 1297, 1278, 1363,
-				1327, 1483, 1447, 1439, 1504, 1478, 1530, 75, 240, 292, 38, 332, 3268, 226, 2034, 555, 294, 111, 87,
-				876, 194, 1377, 96, 816, 187, 205, 825, 384, 702, 1419, 3323, 1, 1731, 421, 631, 1463, 109, 95, 97, 98,
-				99, 100, 1010, 20, 1131, 17, 21, 18, 1054, 43, 36, 1394, 1129, 110, 370, 414, 111, 87, 816, 189, 1377,
-				96, 725, 225, 230, 219, 718, 222, 224, 1356, 1835, 1269, 388, 631, 1463, 109, 95, 97, 98, 99, 100, 107,
-				788, 1615, 264, 1153, 275, 816, 1543, 342, 315, 182, 110, 370, 414, 919, 247, 268, 1162, 1135, 273,
-				1969, 990, 590, 1060, 38, 330, 2627, 38, 90, 748, 388, 319, 316, 317, 318, 265, 1095, 2625, 20, 108, 17,
-				21, 18, 1054, 43, 45, 1119, 1704, 2113, 576, 1264, 1297, 1278, 1363, 1327, 242, 1447, 1439, 1504, 1478,
-				1530, 94, 288, 1731, 421, 2625, 20, 349, 17, 21, 18, 1054, 43, 45, 38, 28, 591, 1556, 1264, 1297, 1278,
-				1363, 1327, 262, 1447, 1439, 1982, 111, 87, 1348, 210, 1377, 96, 2571, 20, 1080, 17, 21, 18, 1054, 354,
-				1829, 1087, 1842, 631, 1463, 109, 95, 97, 98, 99, 100, 788, 2625, 20, 912, 17, 21, 18, 1054, 1247, 45,
-				587, 110, 370, 414, 1264, 1297, 1278, 1363, 1327, 1699, 1447, 1439, 1504, 1478, 1530, 75, 1269, 1191,
-				1988, 92, 388, 2598, 20, 1670, 17, 21, 18, 1054, 41, 107, 450, 276, 721, 20, 361, 17, 21, 18, 1054,
-				1247, 45, 893, 125, 1153, 22, 1264, 1297, 1278, 1363, 1327, 1224, 1447, 1439, 1504, 1478, 1530, 75,
-				1989, 277, 446, 1398, 3207, 145, 1731, 421, 1828, 126, 88, 320, 316, 317, 318, 691, 28, 1490, 1556,
-				2625, 20, 788, 17, 21, 18, 1054, 43, 45, 507, 241, 111, 87, 1264, 1877, 1377, 96, 725, 225, 230, 219,
-				718, 222, 224, 1766, 1400, 1684, 570, 631, 1463, 109, 95, 97, 98, 99, 100, 28, 1364, 1556, 3413, 47,
-				1048, 1997, 805, 893, 106, 2218, 110, 370, 414, 319, 316, 317, 318, 1282, 312, 244, 2825, 20, 635, 17,
-				21, 18, 1054, 1247, 45, 388, 631, 1716, 128, 1264, 1297, 1278, 1363, 1327, 108, 1447, 1439, 1504, 1478,
-				1530, 75, 446, 586, 3211, 332, 309, 370, 414, 405, 1269, 319, 316, 317, 318, 1594, 182, 28, 28, 1556,
-				1556, 1381, 180, 1187, 320, 316, 317, 318, 674, 1221, 371, 316, 317, 318, 256, 214, 725, 225, 922, 219,
-				718, 222, 909, 2625, 20, 1387, 17, 21, 18, 1054, 43, 45, 136, 214, 256, 214, 1264, 1878, 3408, 893,
-				1017, 2082, 2625, 20, 1269, 17, 21, 18, 1054, 43, 45, 139, 135, 137, 161, 1264, 1297, 1278, 1363, 1327,
-				788, 1965, 19, 503, 128, 156, 861, 1191, 141, 167, 788, 38, 869, 1028, 1010, 145, 148, 151, 154, 1062,
-				331, 1257, 365, 2625, 20, 521, 17, 21, 18, 1054, 1247, 45, 124, 50, 255, 214, 1264, 1297, 1278, 1363,
-				1327, 830, 1447, 1439, 1504, 1478, 1530, 75, 893, 1239, 2276, 86, 256, 214, 243, 2625, 20, 969, 17, 21,
-				18, 1054, 1247, 45, 245, 1191, 816, 1835, 1264, 1297, 1278, 1363, 1327, 196, 1447, 1439, 1504, 1478,
-				1530, 75, 1176, 2625, 20, 85, 17, 21, 18, 1054, 1247, 45, 112, 555, 1191, 528, 1264, 1297, 1278, 1363,
-				1327, 1321, 1447, 1439, 1504, 1478, 1530, 75, 419, 2625, 20, 84, 17, 21, 18, 1054, 1247, 45, 38, 127,
-				700, 1791, 1264, 1297, 1278, 1363, 1327, 797, 1447, 1439, 1504, 1478, 1530, 75, 554, 2625, 20, 83, 17,
-				21, 18, 1054, 1247, 45, 38, 1852, 3347, 1191, 1264, 1297, 1278, 1363, 1327, 482, 1447, 1439, 1504, 1478,
-				1530, 75, 1745, 2625, 20, 82, 17, 21, 18, 1054, 1247, 45, 211, 339, 123, 284, 1264, 1297, 1278, 1363,
-				1327, 1269, 1447, 1439, 1504, 1478, 1530, 75, 1289, 2625, 20, 81, 17, 21, 18, 1054, 1247, 45, 1125, 231,
-				892, 1191, 1264, 1297, 1278, 1363, 1327, 1269, 1447, 1439, 1504, 1478, 1530, 75, 1927, 2625, 20, 80, 17,
-				21, 18, 1054, 1247, 45, 788, 1060, 3441, 1786, 1264, 1297, 1278, 1363, 1327, 1269, 1447, 1439, 1504,
-				1478, 1530, 75, 1219, 2625, 20, 79, 17, 21, 18, 1054, 1247, 45, 1403, 1180, 816, 297, 1264, 1297, 1278,
-				1363, 1327, 1269, 1447, 1439, 1504, 1478, 1530, 75, 1598, 2625, 20, 78, 17, 21, 18, 1054, 1247, 45,
-				1364, 1219, 246, 1191, 1264, 1297, 1278, 1363, 1327, 1269, 1447, 1439, 1504, 1478, 1530, 75, 1663, 2625,
-				20, 77, 17, 21, 18, 1054, 1247, 45, 1269, 2265, 3442, 1269, 1264, 1297, 1278, 1363, 1327, 2685, 1447,
-				1439, 1504, 1478, 1530, 75, 1584, 180, 1280, 76, 1107, 23, 1364, 1718, 1357, 371, 316, 317, 318, 320,
-				316, 317, 318, 206, 195, 1453, 2625, 20, 1687, 17, 21, 18, 1054, 1247, 45, 1269, 1191, 136, 214, 1264,
-				1297, 1278, 1363, 1327, 1928, 1447, 1439, 1504, 1478, 1530, 75, 816, 299, 352, 93, 1391, 139, 135, 137,
-				161, 1505, 3453, 2625, 20, 2333, 17, 21, 18, 1054, 43, 45, 1431, 1191, 141, 167, 1264, 1297, 1278, 1363,
-				1981, 145, 148, 151, 154, 1062, 2625, 20, 365, 17, 21, 18, 1054, 1247, 45, 1330, 1290, 73, 118, 1264,
-				1297, 1278, 1363, 1327, 1759, 1447, 1439, 1504, 1478, 1530, 75, 1710, 2625, 20, 1408, 17, 21, 18, 1054,
-				1247, 45, 788, 235, 1819, 456, 1264, 1297, 1278, 1363, 1327, 752, 1447, 1439, 1504, 1478, 1530, 75,
-				1725, 2625, 20, 1618, 17, 21, 18, 1054, 43, 45, 1269, 38, 296, 1153, 1264, 1297, 1278, 1363, 1327, 2398,
-				1447, 1439, 1504, 1478, 1530, 94, 2625, 20, 321, 17, 21, 18, 1054, 43, 45, 1458, 1490, 88, 298, 1264,
-				1297, 1278, 1363, 1327, 1152, 1447, 1439, 1504, 1478, 1530, 94, 1807, 1865, 2625, 20, 1395, 17, 21, 18,
-				1054, 1247, 45, 788, 1552, 191, 363, 1264, 1297, 1278, 1363, 1327, 1269, 1447, 1439, 1504, 1478, 1530,
-				75, 845, 2625, 20, 360, 17, 21, 18, 1054, 1247, 45, 923, 341, 213, 1140, 1264, 1297, 1278, 1363, 1327,
-				1329, 1447, 1439, 1504, 1478, 1530, 75, 1368, 2625, 20, 74, 17, 21, 18, 1054, 43, 45, 1269, 38, 386,
-				1153, 1264, 1297, 1278, 1363, 1327, 1347, 1447, 1439, 1504, 1478, 1530, 94, 2625, 20, 340, 17, 21, 18,
-				1054, 43, 45, 1556, 1498, 88, 1104, 1264, 1297, 1278, 1363, 1327, 2042, 1447, 1439, 1504, 1478, 1530,
-				94, 1943, 1944, 2625, 20, 1294, 17, 21, 18, 1054, 43, 45, 1269, 1570, 1723, 203, 1264, 1297, 1278, 1363,
-				1327, 1269, 1447, 1439, 1504, 1478, 1530, 94, 2625, 20, 274, 17, 21, 18, 1054, 43, 45, 1999, 1874, 353,
-				1800, 1264, 1297, 1278, 1363, 1327, 1269, 1447, 1439, 1504, 1478, 1530, 94, 2000, 1824, 2625, 20, 3781,
-				17, 21, 18, 1054, 43, 45, 2674, 3781, 3781, 204, 1264, 1297, 1278, 1363, 1327, 1597, 1447, 1439, 1504,
-				1478, 1530, 94, 3781, 3781, 320, 316, 317, 318, 446, 3781, 3346, 3781, 3781, 3781, 1826, 3781, 1269,
-				319, 316, 317, 318, 2679, 2652, 20, 3781, 17, 21, 18, 1054, 34, 371, 316, 317, 318, 2707, 1221, 874,
-				1269, 421, 1820, 3781, 1904, 725, 225, 922, 219, 718, 222, 224, 408, 1269, 3781, 136, 214, 3781, 2734,
-				3781, 326, 319, 316, 317, 318, 88, 3781, 3408, 198, 1178, 3781, 280, 1382, 1692, 138, 135, 137, 161, 38,
-				2069, 1153, 2838, 319, 316, 317, 318, 725, 225, 230, 220, 718, 222, 224, 1155, 156, 861, 3781, 2964,
-				3781, 3224, 3269, 869, 1269, 3781, 88, 1328, 446, 3781, 3207, 1269, 275, 2090, 3781, 3781, 521, 319,
-				316, 317, 318, 3781, 1281, 270, 1162, 1135, 273, 1744, 3781, 281, 3781, 3781, 406, 396, 3781, 1221, 319,
-				316, 317, 318, 3781, 3781, 725, 225, 230, 219, 718, 222, 224, 446, 3781, 3207, 408, 3781, 2069, 3781,
-				3781, 1269, 319, 316, 317, 318, 2238, 1269, 3408, 3781, 3781, 3781, 1489, 3781, 3781, 371, 316, 317,
-				318, 1778, 1221, 1269, 3781, 395, 2410, 2773, 3781, 725, 225, 230, 219, 718, 222, 224, 3781, 156, 861,
-				136, 214, 2800, 2371, 20, 860, 17, 21, 18, 1054, 43, 44, 3408, 1750, 846, 3781, 3207, 3781, 3781, 143,
-				135, 137, 161, 319, 316, 317, 318, 2625, 20, 3781, 17, 21, 18, 1054, 43, 38, 142, 167, 3781, 156, 861,
-				527, 38, 3781, 1153, 3781, 869, 3781, 725, 225, 230, 219, 718, 222, 224, 446, 3781, 3207, 28, 2867,
-				1556, 2579, 3781, 3781, 319, 316, 317, 318, 88, 906, 2033, 3207, 508, 3781, 522, 2111, 3781, 278, 319,
-				316, 317, 318, 1221, 3781, 1142, 3781, 2684, 3781, 3781, 725, 225, 230, 219, 718, 222, 224, 527, 306,
-				3781, 3781, 3781, 797, 278, 725, 225, 230, 219, 718, 222, 224, 2244, 3408, 1153, 3781, 631, 3421, 3781,
-				275, 725, 225, 230, 219, 718, 222, 224, 2033, 3781, 199, 268, 1162, 1135, 273, 3781, 305, 370, 414, 88,
-				3781, 157, 861, 954, 3781, 275, 116, 3781, 3781, 1705, 2008, 2752, 3781, 3781, 3781, 310, 268, 1162,
-				1135, 273, 371, 316, 317, 318, 2625, 20, 3781, 17, 21, 18, 1054, 43, 45, 3421, 3781, 2008, 3781, 1893,
-				709, 3781, 3781, 3781, 136, 214, 3781, 200, 3781, 319, 316, 317, 318, 3781, 3781, 303, 304, 1673, 3781,
-				3781, 709, 3781, 3781, 138, 135, 137, 161, 2069, 3781, 319, 316, 317, 318, 2852, 725, 225, 230, 220,
-				718, 222, 224, 1155, 371, 316, 317, 318, 2964, 2069, 3781, 3781, 3781, 3781, 3781, 3781, 725, 225, 1608,
-				220, 718, 222, 1582, 1155, 1600, 3781, 136, 214, 709, 430, 3781, 522, 3781, 320, 316, 317, 318, 319,
-				316, 317, 318, 406, 396, 3781, 3781, 146, 135, 137, 161, 3781, 1655, 1731, 1153, 3781, 306, 2069, 3781,
-				3781, 797, 3781, 3781, 409, 725, 225, 1608, 220, 718, 222, 224, 1155, 3781, 631, 3781, 3781, 3781, 111,
-				87, 1716, 1731, 1153, 96, 1010, 20, 3781, 17, 21, 18, 1054, 43, 36, 305, 370, 414, 1463, 104, 95, 97,
-				98, 99, 100, 3781, 3781, 111, 87, 1501, 3781, 659, 96, 3781, 310, 38, 3781, 1153, 319, 316, 317, 318,
-				3781, 3781, 3781, 1463, 102, 95, 97, 98, 99, 100, 3781, 3781, 3781, 709, 2069, 3781, 987, 3781, 248, 88,
-				3781, 3781, 319, 316, 317, 318, 2226, 444, 1050, 659, 302, 304, 1777, 1731, 1153, 1094, 3781, 659, 3781,
-				423, 2069, 3781, 1838, 1731, 1153, 3781, 3781, 767, 225, 234, 3781, 3781, 2876, 3781, 1155, 2334, 987,
-				111, 87, 3781, 3781, 3781, 96, 3781, 198, 3781, 260, 111, 87, 502, 3781, 659, 96, 2124, 1761, 1463, 362,
-				95, 97, 98, 99, 100, 1899, 1731, 1153, 1463, 103, 95, 97, 98, 99, 100, 1555, 3781, 659, 1446, 3781,
-				3781, 987, 3781, 3781, 319, 316, 317, 318, 3781, 260, 111, 87, 3781, 3781, 3781, 96, 1575, 1761, 1960,
-				1731, 1153, 3781, 2069, 3781, 987, 3781, 3781, 3781, 1463, 120, 95, 97, 98, 99, 100, 3781, 1050, 3781,
-				193, 3781, 3781, 3781, 3781, 111, 87, 2021, 1731, 1153, 96, 747, 879, 260, 3781, 2082, 1731, 1153, 3781,
-				3781, 1575, 1761, 2123, 1463, 115, 95, 97, 98, 99, 100, 3781, 3781, 111, 87, 3781, 3781, 260, 96, 3781,
-				3781, 111, 87, 3781, 2124, 1761, 96, 2143, 1731, 1153, 3781, 1463, 2050, 95, 97, 98, 99, 100, 3781,
-				1463, 114, 95, 97, 98, 99, 100, 3781, 3781, 3781, 1809, 1324, 3781, 111, 87, 2204, 1731, 1153, 96, 3781,
-				319, 316, 317, 318, 3781, 3781, 3781, 3781, 3781, 3781, 3781, 1463, 122, 95, 97, 98, 99, 100, 2069,
-				3781, 111, 87, 3781, 2625, 20, 96, 17, 21, 18, 1054, 43, 45, 1050, 2696, 3781, 3274, 1894, 3781, 1463,
-				121, 95, 97, 98, 99, 100, 2625, 20, 3781, 17, 21, 18, 1054, 43, 45, 3781, 3781, 2605, 3781, 1264, 1297,
-				1278, 1897, 2625, 20, 3781, 17, 21, 18, 1054, 43, 45, 1251, 3781, 3781, 3781, 1264, 1297, 1278, 1905,
-				3781, 319, 316, 317, 318, 2862, 3781, 3781, 3781, 444, 3781, 659, 275, 3781, 371, 316, 317, 318, 3781,
-				2069, 2893, 3781, 3781, 268, 1162, 1135, 273, 3781, 3781, 371, 316, 317, 318, 1155, 2903, 3781, 136,
-				214, 987, 3781, 3781, 3781, 393, 371, 316, 317, 318, 3781, 3781, 3781, 275, 136, 214, 3781, 3781, 149,
-				135, 137, 161, 3781, 3781, 270, 1162, 1135, 273, 136, 214, 2934, 3781, 3781, 152, 135, 137, 161, 3781,
-				3781, 371, 316, 317, 318, 2944, 3781, 3781, 3781, 155, 135, 137, 161, 260, 371, 316, 317, 318, 3781,
-				3781, 2180, 1761, 3781, 136, 214, 2625, 20, 3781, 17, 21, 18, 1054, 43, 45, 3781, 3781, 136, 214, 1264,
-				1297, 1906, 3781, 366, 135, 137, 161, 2625, 20, 3781, 17, 21, 18, 1054, 43, 45, 139, 135, 137, 161,
-				1264, 1297, 1920, 2625, 20, 3781, 17, 21, 18, 1054, 43, 45, 3781, 3781, 3781, 3781, 1264, 1297, 1930,
-				2625, 20, 3781, 17, 21, 18, 1054, 43, 45, 3781, 3781, 3781, 3781, 1264, 1297, 1933, 2625, 20, 3781, 17,
-				21, 18, 1054, 43, 45, 476, 3781, 3207, 3781, 1264, 1297, 1939, 2625, 20, 3781, 17, 21, 18, 1054, 43, 45,
-				890, 3781, 421, 557, 1264, 1297, 1946, 3781, 874, 3781, 421, 3781, 319, 316, 317, 318, 3781, 3781, 725,
-				225, 230, 219, 718, 222, 224, 874, 88, 421, 3781, 1282, 1333, 3781, 3781, 116, 88, 3781, 3781, 198,
-				1178, 3781, 954, 1382, 631, 3781, 3781, 3781, 874, 3781, 421, 3781, 2838, 88, 3781, 3781, 198, 1178,
-				3781, 874, 1382, 421, 3781, 2372, 370, 414, 3781, 3781, 3781, 2838, 3224, 3781, 3781, 874, 88, 421,
-				1601, 198, 1178, 3781, 3781, 1382, 3781, 3781, 1595, 88, 3781, 3224, 198, 1178, 2838, 3781, 1382, 1627,
-				874, 3781, 421, 3781, 3781, 88, 1748, 2838, 198, 1178, 607, 3781, 1382, 3781, 3224, 320, 316, 317, 318,
-				3781, 1653, 2838, 3781, 3781, 3781, 3224, 88, 3781, 3781, 198, 1178, 1679, 3781, 1382, 3781, 3781, 3781,
-				1324, 3781, 3224, 3781, 1324, 2838, 3781, 3781, 1696, 319, 316, 317, 318, 319, 316, 317, 318, 2769,
-				3781, 3274, 3781, 3781, 3781, 3224, 3781, 3781, 3781, 2069, 3781, 2173, 3781, 2069, 2625, 20, 3781, 17,
-				21, 18, 1054, 43, 37, 1050, 3781, 2625, 20, 1050, 17, 21, 18, 1054, 43, 36, 2625, 20, 3781, 17, 21, 18,
-				1054, 43, 35, 1255, 1804, 570, 3781, 2437, 3781, 1324, 3781, 2457, 3781, 320, 316, 317, 318, 275, 319,
-				316, 317, 318, 3781, 3781, 3781, 3781, 3781, 3781, 268, 1162, 1135, 273, 1282, 3781, 2625, 20, 2069, 17,
-				21, 18, 1054, 43, 48, 3781, 3781, 631, 3781, 267, 2625, 20, 1050, 17, 21, 18, 1054, 43, 47, 3781, 1324,
-				3781, 3781, 3781, 3781, 3781, 308, 370, 414, 319, 316, 317, 318, 3781, 2625, 20, 2876, 17, 21, 18, 1054,
-				43, 46, 1324, 1238, 3781, 659, 2069, 1038, 3781, 3781, 3781, 319, 316, 317, 318, 3781, 319, 316, 317,
-				318, 1050, 2652, 20, 3781, 17, 21, 18, 1054, 33, 2069, 1744, 3781, 198, 3781, 1333, 3781, 3781, 3781,
-				3781, 319, 316, 317, 318, 1050, 2123, 2798, 20, 3781, 17, 21, 18, 1054, 1861, 3781, 3781, 3781, 3781,
-				2069, 3781, 3781, 3781, 3781, 3781, 1446, 1550, 3781, 3781, 2503, 1263, 1682, 3781, 1592, 3781, 319,
-				316, 317, 318, 1814, 319, 316, 317, 318, 3781, 1870, 3781, 3781, 319, 316, 317, 318, 3781, 2499, 319,
-				316, 317, 318, 3176, 2244, 2244, 1153, 1153, 3781, 3781, 193, 3451, 3781, 982, 1873, 3781, 2244, 3471,
-				1153, 3781, 3781, 1275, 879, 320, 316, 317, 318, 3781, 3781, 3781, 88, 88, 3781, 3781, 1926, 3781, 3781,
-				116, 116, 3781, 3781, 3781, 88, 320, 316, 317, 318, 3781, 3781, 116, 3781, 3781, 3781, 3781, 3781, 3781,
-				3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781,
-				3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781, 1742, 2232, 3781, 3781,
-				3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781, 2246, 3781, 0, 1, 540, 0, 1, 520, 0, 1, 535, 0, 1, 544,
-				0, 678, 413, 0, 520, 130, 0, 535, 130, 0, 544, 130, 0, 520, 131, 0, 535, 131, 0, 544, 131, 0, 520, 132,
-				0, 535, 132, 0, 544, 132, 0, 544, 186, 0, 535, 186, 0, 520, 186, 0, 186, 190, 0, 544, 185, 0, 535, 185,
-				0, 520, 185, 0, 185, 190, 0, 520, 133, 0, 535, 133, 0, 544, 133, 0, 520, 134, 0, 535, 134, 0, 544, 134,
-				0, 417, 420, 0, 416, 419, 0, 415, 418, 0, 11, 227, 0, 520, 369, 0, 535, 369, 0, 544, 369, 0, 4197, 412,
-				0, 224, 236, 0, 3789, 1, 0, 544, 381, 0, 535, 381, 0, 520, 381, 0, 1042, 32, 0, 1853, 32, 0, 520, 411,
-				0, 535, 411, 0, 544, 411, 0, 4180, 411, 0, 4178, 411, 0, 544, 254, 0, 535, 254, 0, 520, 254, 0, 4197,
-				413, 0, 1, 4019, 0, 224, 237, 0, 520, 407, 0, 535, 407, 0, 544, 407, 0, 3999, 407, 0, 3998, 407, 0,
-				3997, 407, 0, 3996, 407, 0, 3947, 407, 0, 3946, 407, 0, 3945, 407, 0, 3944, 407, 0, 3943, 407, 0, 520,
-				410, 0, 535, 410, 0, 544, 410, 0, 4180, 410, 0, 4178, 410, 0, 180, 20, 0, 8, 10, 0, 2010, 119, 0, 1,
-				4201, 0, 1, 4200, 0, 1, 4199, 0, 1, 4008, 0, 367, 356, 0, 368, 357, 0, 113, 2742, 0 };
-	}
-
-	public final static char baseAction[] = BaseAction.baseAction;
-
-	@Override
-	public final int baseAction(int index) {
-		return baseAction[index];
-	}
-
-	public final static char lhs[] = baseAction;
-
-	@Override
-	public final int lhs(int index) {
-		return lhs[index];
-	}
-
-	public interface TermCheck {
-		public final static byte termCheck[] = { 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
-				19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 38, 39, 40, 41, 42, 43, 44,
-				45, 0, 0, 48, 0, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
-				0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
-				28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 38, 39, 40, 41, 42, 43, 44, 45, 72, 73, 48, 74, 50, 51, 52, 53,
-				54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
-				10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
-				36, 0, 38, 39, 40, 41, 42, 43, 44, 45, 0, 10, 48, 0, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
-				63, 64, 65, 66, 67, 68, 69, 70, 71, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
-				19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 38, 39, 40, 41, 42, 43, 44,
-				45, 72, 73, 48, 0, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
-				0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
-				28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 38, 39, 40, 41, 42, 43, 44, 45, 0, 1, 48, 0, 50, 51, 52, 53, 54,
-				55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 0, 1, 2, 3, 4, 5, 28, 7, 8, 9, 10, 11,
-				12, 13, 14, 15, 16, 17, 0, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 0, 32, 33, 34, 35, 36, 0, 1,
-				39, 40, 41, 42, 43, 44, 45, 0, 0, 1, 0, 1, 2, 3, 4, 5, 55, 7, 8, 9, 10, 0, 61, 62, 63, 64, 65, 66, 67,
-				68, 69, 70, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 37, 0, 37, 0, 1, 2, 3, 4, 5, 0, 7, 8, 9, 0, 27,
-				28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 38, 39, 40, 41, 42, 43, 44, 45, 0, 1, 2, 3, 4, 5, 0, 0, 2, 55, 3,
-				4, 6, 84, 85, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 19, 0, 0, 2, 49, 87, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8,
-				9, 10, 11, 12, 0, 39, 40, 41, 42, 43, 44, 45, 47, 27, 28, 29, 89, 104, 27, 28, 29, 30, 31, 32, 33, 34,
-				35, 36, 89, 38, 39, 40, 41, 42, 43, 44, 45, 0, 0, 104, 0, 37, 2, 3, 4, 5, 55, 7, 8, 9, 0, 11, 61, 62,
-				63, 64, 65, 66, 67, 68, 69, 70, 0, 1, 74, 27, 28, 29, 6, 0, 0, 1, 10, 0, 89, 13, 14, 15, 16, 17, 7, 8,
-				9, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 0, 1, 104, 27, 28, 29, 37, 0, 1, 2, 3, 4, 5, 6, 37, 46, 0,
-				10, 11, 12, 13, 14, 15, 16, 17, 0, 19, 20, 21, 22, 23, 24, 25, 26, 18, 91, 92, 30, 13, 14, 71, 72, 73,
-				74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 0, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
-				100, 101, 102, 0, 1, 0, 0, 1, 19, 6, 0, 6, 0, 10, 2, 5, 13, 14, 15, 16, 17, 0, 10, 0, 1, 2, 3, 4, 5, 6,
-				0, 1, 2, 3, 4, 5, 31, 7, 8, 9, 37, 103, 0, 1, 2, 3, 4, 5, 6, 46, 0, 46, 10, 11, 12, 13, 14, 15, 16, 17,
-				37, 19, 20, 21, 22, 23, 24, 25, 26, 46, 47, 0, 30, 0, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
-				83, 84, 85, 86, 87, 88, 0, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 0, 1, 37, 0, 18, 0, 6,
-				2, 0, 6, 10, 0, 0, 13, 14, 15, 16, 17, 6, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, 27, 2, 3, 4, 5, 37,
-				18, 103, 75, 74, 11, 0, 1, 0, 46, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 46, 47, 0, 0, 1, 2, 3, 4,
-				5, 47, 7, 8, 9, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 0, 90, 91, 92,
-				93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 0, 1, 0, 103, 18, 0, 6, 49, 6, 7, 10, 6, 0, 13, 14, 15, 16,
-				17, 0, 1, 2, 3, 4, 5, 0, 7, 8, 9, 86, 72, 73, 0, 1, 31, 10, 0, 31, 37, 0, 0, 1, 2, 3, 4, 5, 6, 46, 16,
-				17, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 49, 37, 0, 1, 71, 72, 73, 74,
-				75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 0, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
-				101, 102, 0, 1, 0, 75, 72, 73, 6, 71, 0, 1, 10, 0, 1, 13, 14, 15, 16, 17, 90, 0, 1, 2, 3, 4, 5, 6, 0, 1,
-				0, 10, 11, 12, 13, 14, 15, 16, 17, 37, 19, 20, 21, 22, 23, 24, 25, 26, 46, 0, 0, 2, 3, 4, 5, 0, 7, 8, 9,
-				0, 11, 2, 3, 4, 5, 0, 7, 8, 9, 19, 11, 0, 1, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
-				86, 87, 88, 0, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 0, 0, 2, 3, 4, 5, 6, 7, 8, 9, 0,
-				11, 12, 0, 89, 2, 3, 4, 5, 103, 7, 8, 9, 37, 11, 0, 1, 27, 28, 29, 30, 0, 32, 33, 34, 35, 36, 0, 38, 39,
-				40, 41, 42, 43, 44, 45, 0, 46, 0, 1, 2, 3, 4, 5, 6, 55, 19, 0, 27, 28, 29, 61, 62, 63, 64, 65, 66, 67,
-				68, 69, 70, 71, 0, 0, 2, 3, 4, 5, 6, 7, 8, 9, 0, 11, 12, 37, 0, 0, 0, 2, 3, 4, 5, 0, 6, 47, 86, 0, 11,
-				27, 28, 29, 30, 6, 32, 33, 34, 35, 36, 0, 38, 39, 40, 41, 42, 43, 44, 45, 72, 73, 27, 28, 29, 0, 37, 0,
-				1, 55, 31, 6, 7, 8, 9, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 0, 0, 2, 3, 4, 5, 6, 7, 8, 9, 31, 11,
-				12, 0, 1, 71, 15, 0, 75, 0, 7, 8, 9, 10, 7, 46, 88, 27, 28, 29, 30, 0, 32, 33, 34, 35, 36, 6, 38, 39,
-				40, 41, 42, 43, 44, 45, 27, 28, 29, 0, 37, 0, 0, 74, 2, 55, 0, 6, 7, 8, 9, 61, 62, 63, 64, 65, 66, 67,
-				68, 69, 70, 71, 0, 1, 2, 3, 4, 5, 47, 7, 8, 9, 31, 11, 12, 0, 0, 2, 3, 4, 5, 0, 0, 7, 8, 9, 11, 46, 6,
-				27, 28, 29, 30, 18, 32, 33, 34, 35, 36, 0, 0, 39, 40, 41, 42, 43, 44, 45, 0, 0, 2, 3, 4, 5, 15, 74, 0,
-				55, 18, 11, 0, 0, 6, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 0, 88, 2, 3, 4, 5, 0, 7, 8, 9, 0, 11, 12,
-				0, 0, 2, 3, 4, 5, 0, 72, 73, 0, 1, 11, 49, 7, 27, 28, 29, 30, 18, 32, 33, 34, 35, 36, 18, 89, 39, 40,
-				41, 42, 43, 44, 45, 0, 0, 2, 3, 4, 5, 103, 6, 71, 55, 46, 11, 0, 72, 73, 61, 62, 63, 64, 65, 66, 67, 68,
-				69, 70, 0, 0, 2, 3, 4, 5, 0, 7, 8, 9, 0, 11, 12, 78, 79, 80, 81, 82, 83, 13, 14, 78, 79, 80, 81, 82, 83,
-				27, 28, 29, 30, 0, 32, 33, 34, 35, 36, 6, 0, 39, 40, 41, 42, 43, 44, 45, 0, 71, 0, 0, 49, 13, 14, 0, 0,
-				55, 7, 8, 9, 10, 6, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 0, 1, 2, 3, 4, 5, 6, 47, 0, 49, 10, 11, 12,
-				13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 46, 0, 47, 31, 0, 0, 7, 8, 9, 0, 38, 7, 8, 9,
-				10, 0, 7, 8, 9, 0, 48, 2, 50, 51, 52, 53, 54, 0, 56, 57, 58, 59, 60, 0, 87, 2, 3, 4, 5, 89, 7, 8, 9, 0,
-				11, 12, 0, 0, 1, 0, 7, 8, 9, 7, 8, 9, 7, 8, 9, 0, 27, 28, 29, 30, 0, 32, 33, 34, 35, 36, 6, 0, 39, 40,
-				41, 42, 43, 44, 45, 78, 79, 80, 81, 82, 83, 0, 1, 0, 55, 84, 85, 6, 0, 89, 61, 62, 63, 64, 65, 66, 67,
-				68, 69, 70, 0, 1, 2, 3, 4, 5, 6, 47, 0, 1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
-				25, 26, 0, 47, 0, 0, 31, 0, 1, 7, 8, 9, 0, 38, 10, 0, 0, 0, 2, 7, 8, 9, 6, 48, 0, 50, 51, 52, 53, 54, 0,
-				56, 57, 58, 59, 60, 0, 1, 2, 3, 4, 5, 6, 0, 1, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
-				23, 24, 25, 26, 47, 0, 0, 49, 31, 0, 0, 46, 7, 8, 9, 38, 7, 8, 9, 48, 0, 76, 77, 0, 18, 48, 6, 50, 51,
-				52, 53, 54, 46, 56, 57, 58, 59, 60, 0, 1, 2, 3, 4, 5, 6, 0, 0, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18,
-				19, 20, 21, 22, 23, 24, 25, 26, 0, 46, 47, 0, 31, 0, 0, 7, 8, 9, 0, 38, 0, 10, 0, 0, 0, 7, 8, 9, 0, 48,
-				6, 50, 51, 52, 53, 54, 46, 56, 57, 58, 59, 60, 0, 1, 2, 3, 4, 5, 6, 0, 0, 0, 10, 11, 12, 13, 14, 15, 16,
-				17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 46, 47, 49, 31, 0, 0, 0, 0, 0, 10, 38, 7, 8, 9, 7, 8, 9, 76,
-				77, 0, 48, 0, 50, 51, 52, 53, 54, 0, 56, 57, 58, 59, 60, 0, 1, 2, 3, 4, 5, 6, 0, 0, 0, 10, 11, 12, 13,
-				14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 0, 0, 105, 31, 0, 0, 7, 8, 9, 0, 38, 0, 0, 0, 76,
-				77, 0, 0, 18, 18, 48, 74, 50, 51, 52, 53, 54, 18, 56, 57, 58, 59, 60, 0, 1, 2, 3, 4, 5, 6, 0, 0, 0, 10,
-				11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 18, 0, 0, 0, 31, 49, 49, 0, 0, 0, 0, 38,
-				0, 0, 0, 0, 0, 0, 0, 18, 18, 48, 0, 50, 51, 52, 53, 54, 18, 56, 57, 58, 59, 60, 0, 1, 2, 3, 4, 5, 6, 0,
-				0, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 49, 49, 0, 49, 31, 49, 49, 0,
-				0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 18, 48, 0, 50, 51, 52, 53, 54, 18, 56, 57, 58, 59, 60, 0, 1, 2, 3,
-				4, 5, 6, 0, 0, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 49, 49, 0, 0, 31,
-				0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 50, 51, 52, 53, 54, 0, 56, 57, 58, 59, 60, 0, 1,
-				2, 3, 4, 5, 6, 0, 0, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 0, 0, 0,
-				31, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 50, 51, 52, 53, 54, 0, 56, 57, 58, 59, 60,
-				0, 1, 2, 3, 4, 5, 6, 0, 0, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 0,
-				0, 0, 31, 0, 0, 0, 0, 0, 0, 38, 0, 0, 7, 8, 9, 0, 0, 6, 0, 48, 0, 50, 51, 52, 53, 54, 0, 56, 57, 58, 59,
-				60, 27, 28, 29, 30, 0, 32, 33, 34, 35, 36, 31, 0, 39, 40, 41, 42, 43, 44, 45, 0, 0, 0, 0, 0, 0, 0, 47,
-				0, 55, 0, 0, 0, 0, 0, 61, 62, 63, 64, 65, 66, 67, 0, 1, 2, 3, 4, 5, 0, 0, 0, 0, 10, 11, 12, 13, 14, 15,
-				16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 0, 1, 2, 3, 4, 5, 0, 0, 0, 47, 10, 11,
-				12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 0, 1, 2, 3, 4, 5, 0,
-				0, 0, 47, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 1, 2, 3, 4, 5, 0, 0, 0,
-				0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 1, 2, 3, 4, 5, 0, 0, 0, 0, 10,
-				11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 1, 2, 3, 4, 5, 0, 0, 0, 0, 10, 11,
-				12, 13, 14, 15, 16, 17, 0, 19, 20, 21, 22, 23, 24, 25, 26, 0, 1, 2, 3, 4, 5, 0, 0, 0, 0, 10, 11, 12, 13,
-				14, 15, 16, 17, 0, 19, 20, 21, 22, 23, 24, 25, 26, 0, 1, 2, 3, 4, 5, 0, 0, 0, 0, 10, 11, 12, 13, 14, 15,
-				16, 17, 0, 19, 20, 21, 22, 23, 24, 25, 26, 0, 1, 2, 3, 4, 5, 0, 0, 0, 0, 10, 11, 12, 13, 14, 15, 16, 17,
-				0, 19, 20, 21, 22, 23, 24, 25, 26, 0, 1, 2, 3, 4, 5, 0, 0, 0, 0, 10, 11, 12, 13, 14, 15, 16, 17, 0, 19,
-				20, 21, 22, 23, 24, 25, 26, 0, 1, 2, 3, 4, 5, 0, 0, 0, 0, 10, 11, 12, 13, 14, 15, 16, 17, 0, 19, 20, 21,
-				22, 23, 24, 25, 26, 0, 0, 0, 3, 4, 0, 0, 7, 8, 9, 0, 0, 6, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 0, 0, 27,
-				28, 29, 30, 0, 32, 33, 34, 35, 36, 31, 0, 39, 40, 41, 42, 43, 44, 45, 0, 1, 2, 3, 4, 5, 46, 0, 37, 0,
-				10, 11, 12, 13, 14, 15, 16, 17, 47, 19, 20, 21, 22, 23, 24, 25, 26, 0, 0, 0, 3, 4, 0, 0, 7, 8, 9, 0, 0,
-				0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 0, 0, 27, 28, 29, 30, 0, 32, 33, 34, 35, 36, 0, 0, 39, 40, 41,
-				42, 43, 44, 45, 0, 1, 2, 3, 4, 5, 0, 0, 37, 0, 10, 11, 12, 13, 14, 15, 16, 17, 47, 19, 20, 21, 22, 23,
-				24, 25, 26, 0, 1, 2, 3, 4, 5, 0, 0, 0, 0, 10, 11, 12, 13, 14, 15, 16, 17, 0, 19, 20, 21, 22, 23, 24, 25,
-				26, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 0, 0, 0, 0, 0, 0, 1, 7, 8, 9, 0, 6, 0, 0, 0, 0, 0, 27, 28, 29, 30, 0,
-				32, 33, 34, 35, 36, 27, 28, 29, 30, 0, 32, 33, 34, 35, 36, 0, 7, 8, 9, 0, 37, 0, 0, 0, 0, 0, 7, 8, 9, 0,
-				47, 0, 0, 0, 0, 0, 27, 28, 29, 30, 0, 32, 33, 34, 35, 36, 27, 28, 29, 30, 0, 32, 33, 34, 35, 36, 0, 7,
-				8, 9, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 27, 28, 29, 30, 0, 32, 33, 34, 35, 36, 27, 28,
-				29, 30, 0, 32, 33, 34, 35, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static byte termCheck[] = TermCheck.termCheck;
-
-	@Override
-	public final int termCheck(int index) {
-		return termCheck[index];
-	}
-
-	public interface TermAction {
-		public final static char termAction[] = { 0, 3781, 1, 6262, 6206, 6203, 6205, 1802, 3538, 1, 1, 1, 6261, 1, 1,
-				1, 1, 1, 1, 819, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3790, 1, 1, 1, 1, 1, 1, 3882, 1, 1, 1, 1, 1, 1, 1,
-				55, 158, 1644, 287, 1179, 1077, 1405, 1720, 609, 1, 1634, 1046, 1686, 1203, 1660, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 3788, 8, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754,
-				3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754,
-				3754, 3754, 3754, 3754, 3754, 3781, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 1238, 1361, 3754,
-				462, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754,
-				3754, 3754, 3754, 3754, 3754, 3754, 3781, 1, 6262, 6206, 6203, 6205, 1802, 3538, 1, 1, 1, 6261, 1, 1, 1,
-				1, 1, 1, 819, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3790, 1, 1, 1, 1, 1, 3781, 3882, 1, 1, 1, 1, 1, 1, 1,
-				359, 2196, 1644, 3781, 1179, 1077, 1405, 1720, 609, 1, 1634, 1046, 1686, 1203, 1660, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 3788, 3781, 1, 6262, 6206, 6203, 6205, 3791, 3538, 1, 1, 1, 6261, 1, 1, 1, 1, 1, 1, 819, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3790, 1, 1, 1, 1, 1, 3781, 3882, 1, 1, 1, 1, 1, 1, 1, 1238, 1361, 1644,
-				3781, 1179, 1077, 1405, 1720, 609, 1, 1634, 1046, 1686, 1203, 1660, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3781,
-				1, 6262, 6206, 6203, 6205, 3791, 3538, 1, 1, 1, 6261, 1, 1, 1, 1, 1, 1, 819, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 3790, 1, 1, 1, 1, 1, 3781, 3882, 1, 1, 1, 1, 1, 1, 1, 3781, 480, 1644, 345, 1179, 1077, 1405,
-				1720, 609, 1, 1634, 1046, 1686, 1203, 1660, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3781, 3135, 3792, 4196, 4198,
-				3691, 4125, 544, 520, 535, 3250, 3793, 3389, 3239, 2289, 3259, 3365, 2096, 3781, 3797, 1183, 3794, 3795,
-				3796, 738, 500, 1133, 3996, 3998, 3997, 3945, 3781, 3946, 3944, 3999, 3947, 3943, 3781, 618, 3950, 3954,
-				3952, 3953, 3951, 3956, 3957, 63, 223, 491, 269, 2346, 4008, 4199, 4201, 4200, 3955, 544, 520, 535, 254,
-				69, 3949, 3958, 3959, 3960, 4170, 4171, 4172, 1279, 3351, 3081, 3781, 1, 1, 1, 1, 1, 3791, 3538, 1, 1,
-				1, 1, 1, 913, 1, 913, 1, 3062, 4008, 4199, 4201, 4200, 3781, 3547, 3541, 3544, 3781, 1, 1, 1, 1, 3790,
-				1, 1, 1, 1, 1, 3781, 4088, 1, 1, 1, 1, 1, 1, 1, 1, 3062, 4008, 4199, 4201, 4200, 3781, 3781, 1956, 1,
-				4178, 4180, 3787, 2867, 2850, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1913, 1, 3781, 3694, 2634, 679, 43, 3781, 1,
-				1, 1, 1, 1, 3791, 3538, 1, 1, 1, 1, 1, 221, 4183, 4179, 4185, 4186, 4184, 4181, 4182, 3786, 3996, 3998,
-				3997, 4040, 301, 1, 1, 1, 1, 3790, 1, 1, 1, 1, 1, 1843, 4088, 1, 1, 1, 1, 1, 1, 1, 73, 250, 3537, 186,
-				913, 3589, 3589, 3589, 3589, 1, 3580, 3586, 3583, 3781, 3589, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4198,
-				1687, 1, 1, 1, 4198, 249, 271, 818, 4198, 183, 4040, 4198, 4198, 4198, 4198, 4198, 544, 520, 535, 1661,
-				1635, 1609, 1583, 1557, 1505, 1531, 1479, 1453, 1421, 3781, 525, 300, 3996, 3998, 3997, 4198, 1, 3135,
-				3792, 4196, 4198, 4197, 3785, 913, 4198, 3781, 1001, 3793, 545, 3239, 2289, 3259, 3365, 2096, 52, 3797,
-				1183, 3794, 3795, 3796, 738, 500, 1133, 630, 851, 640, 788, 2828, 2423, 4198, 4198, 4198, 4198, 4198,
-				4198, 4198, 4198, 4198, 4198, 4198, 4198, 4198, 4198, 4198, 4198, 4198, 4198, 350, 4198, 4198, 4198,
-				4198, 4198, 4198, 4198, 4198, 4198, 4198, 4198, 4198, 4198, 1, 4197, 3781, 3781, 944, 1063, 4197, 3781,
-				3791, 3781, 4197, 1741, 487, 4197, 4197, 4197, 4197, 4197, 3781, 1801, 1, 2346, 4008, 4199, 4201, 4200,
-				263, 254, 3062, 4008, 4199, 4201, 4200, 3790, 544, 520, 535, 4197, 3784, 3781, 3135, 3792, 4196, 4198,
-				4197, 3785, 4197, 3781, 2317, 2556, 3793, 545, 3239, 2289, 3259, 3365, 2096, 913, 3797, 1183, 3794,
-				3795, 3796, 738, 500, 1133, 263, 263, 293, 1817, 212, 4197, 4197, 4197, 4197, 4197, 4197, 4197, 4197,
-				4197, 4197, 4197, 4197, 4197, 4197, 4197, 4197, 4197, 4197, 230, 4197, 4197, 4197, 4197, 4197, 4197,
-				4197, 4197, 4197, 4197, 4197, 4197, 4197, 1, 4196, 2024, 3781, 233, 327, 4196, 4109, 3781, 3785, 4196,
-				3781, 3781, 4196, 4196, 4196, 4196, 4196, 3787, 3781, 357, 368, 368, 368, 368, 368, 3775, 368, 368, 368,
-				3775, 3781, 4110, 3792, 4196, 4198, 4197, 4196, 5629, 3784, 1757, 1868, 3793, 417, 3622, 67, 4196, 368,
-				368, 368, 368, 3775, 368, 368, 368, 368, 368, 368, 456, 3786, 358, 1, 3062, 4008, 4199, 4201, 4200,
-				3775, 3547, 3541, 3544, 4196, 4196, 4196, 4196, 4196, 4196, 4196, 4196, 4196, 4196, 4196, 4196, 4196,
-				4196, 4196, 4196, 4196, 4196, 1, 4196, 4196, 4196, 4196, 4196, 4196, 4196, 4196, 4196, 4196, 4196, 4196,
-				4196, 1, 3793, 1, 3784, 819, 1, 3793, 1947, 117, 3538, 3793, 3791, 3781, 3793, 3793, 3793, 3793, 3793,
-				1, 3062, 4008, 4199, 4201, 4200, 3781, 3547, 3541, 3544, 1380, 1238, 1361, 32, 3661, 117, 3374, 59,
-				3790, 3793, 3781, 1, 3135, 5192, 4986, 4780, 4883, 29, 3793, 3807, 3808, 3250, 5089, 545, 3239, 2289,
-				3259, 3365, 2096, 5629, 3797, 1183, 3794, 3795, 3796, 738, 500, 1133, 3781, 1947, 3664, 416, 3625, 3793,
-				3793, 3793, 3793, 3793, 3793, 3793, 3793, 3793, 3793, 3793, 3793, 3793, 3793, 3793, 3793, 3793, 3793,
-				3781, 3793, 3793, 3793, 3793, 3793, 3793, 3793, 3793, 3793, 3793, 3793, 3793, 3793, 1, 3792, 3781, 823,
-				1238, 1361, 3792, 29, 415, 3628, 3792, 11, 3631, 3792, 3792, 3792, 3792, 3792, 676, 3781, 3135, 3792,
-				4196, 4198, 4197, 3785, 3781, 446, 1, 3250, 3793, 545, 3239, 2289, 3259, 3365, 2096, 3792, 3797, 1183,
-				3794, 3795, 3796, 738, 500, 1133, 3792, 185, 3781, 3601, 3601, 3601, 3601, 3781, 3592, 3598, 3595, 207,
-				3601, 6251, 6251, 6251, 6251, 3781, 544, 520, 535, 1030, 6251, 351, 1234, 3792, 3792, 3792, 3792, 3792,
-				3792, 3792, 3792, 3792, 3792, 3792, 3792, 3792, 3792, 3792, 3792, 3792, 3792, 272, 3792, 3792, 3792,
-				3792, 3792, 3792, 3792, 3792, 3792, 3792, 3792, 3792, 3792, 3781, 348, 1, 1, 1, 1, 192, 1, 1, 1, 68, 1,
-				1, 378, 4039, 6259, 6259, 6259, 6259, 3784, 544, 520, 535, 913, 6259, 338, 1549, 1, 1, 1, 1, 251, 1, 1,
-				1, 1, 1, 3781, 3978, 1, 1, 1, 1, 1, 1, 1, 58, 1003, 1, 2346, 3769, 3766, 3760, 3763, 3787, 1, 1063,
-				3781, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 192, 3781, 3781, 1, 1, 1, 1, 191, 1, 1, 1, 71, 1, 1, 913,
-				3781, 3781, 1, 3792, 4196, 4198, 4197, 252, 3649, 3786, 1380, 3781, 3793, 1, 1, 1, 1, 3791, 1, 1, 1, 1,
-				1, 3781, 3978, 1, 1, 1, 1, 1, 1, 1, 1238, 1361, 3996, 3998, 3997, 236, 1972, 3781, 3078, 1, 3790, 224,
-				3646, 3646, 3646, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 191, 3781, 65, 1, 1, 1, 1, 192, 1, 1, 1, 224, 1, 1, 269,
-				2321, 3788, 1768, 1, 1646, 253, 544, 520, 535, 254, 3538, 224, 1105, 1, 1, 1, 1, 3781, 1, 1, 1, 1, 1,
-				3787, 3978, 1, 1, 1, 1, 1, 1, 1, 3996, 3998, 3997, 3781, 913, 237, 3781, 224, 2017, 1, 72, 224, 3697,
-				3697, 3697, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 192, 1, 3062, 730, 681, 604, 3550, 3786, 3547, 3541, 3544,
-				224, 3793, 454, 3781, 254, 3792, 4196, 4198, 4197, 57, 3781, 544, 520, 535, 3793, 224, 3785, 3996, 3998,
-				3997, 3945, 1064, 3946, 3944, 3999, 3947, 3943, 66, 3781, 3950, 3954, 3952, 3953, 3951, 3956, 3957, 209,
-				3781, 3792, 4196, 4198, 4197, 1768, 224, 3781, 3955, 1409, 3793, 56, 3781, 3789, 3949, 3958, 3959, 3960,
-				4170, 4171, 4172, 1279, 3351, 3081, 3781, 1105, 3792, 4196, 4198, 3643, 60, 544, 520, 535, 257, 3793,
-				454, 3781, 62, 3792, 4196, 4198, 4197, 1, 1238, 1361, 3781, 1957, 3793, 2525, 3538, 3996, 3998, 3997,
-				3945, 1067, 3946, 3944, 3999, 3947, 3943, 819, 2051, 3950, 3954, 3952, 3953, 3951, 3956, 3957, 208, 286,
-				1464, 1464, 1464, 1464, 3784, 1114, 3788, 3955, 798, 1464, 3781, 1238, 1361, 3949, 3958, 3959, 3960,
-				4170, 4171, 4172, 1279, 3351, 3081, 3781, 3781, 3792, 4196, 4198, 3691, 54, 544, 520, 535, 3781, 3793,
-				454, 3069, 3053, 3037, 3021, 3005, 2984, 2828, 2423, 3069, 3053, 3037, 3021, 3005, 2984, 3996, 3998,
-				3997, 3945, 3781, 3946, 3944, 3999, 3947, 3943, 3787, 53, 3950, 3954, 3952, 3953, 3951, 3956, 3957, 70,
-				1114, 3781, 1, 2552, 2828, 2423, 89, 1, 3955, 3547, 3541, 3544, 254, 3787, 3949, 3958, 3959, 3960, 4170,
-				4171, 4172, 1279, 3351, 3081, 3781, 1, 6262, 6206, 6203, 6205, 3791, 3786, 3781, 770, 1, 6261, 1, 1, 1,
-				1, 1, 1, 819, 1, 1, 1, 1, 1, 1, 1, 1, 160, 1732, 61, 3786, 3790, 1, 64, 544, 520, 535, 379, 3882, 3547,
-				3541, 3544, 254, 3781, 544, 520, 535, 3781, 1644, 4020, 1179, 1077, 1405, 1720, 609, 3781, 1634, 1046,
-				1686, 1203, 1660, 3781, 679, 3792, 4196, 4198, 4197, 4040, 544, 520, 535, 382, 3793, 454, 381, 3781,
-				2149, 373, 544, 520, 535, 3652, 3658, 3655, 544, 520, 535, 3781, 3996, 3998, 3997, 3945, 1, 3946, 3944,
-				3999, 3947, 3943, 91, 3781, 3950, 3954, 3952, 3953, 3951, 3956, 3957, 3069, 3053, 3037, 3021, 3005,
-				2984, 3781, 447, 3781, 3955, 2867, 2850, 3787, 3781, 4040, 3949, 3958, 3959, 3960, 4170, 4171, 4172,
-				1279, 3351, 3081, 3781, 1, 6262, 6206, 6203, 6205, 3791, 91, 3781, 2304, 1, 6261, 1, 1, 1, 1, 1, 1, 819,
-				1, 1, 1, 1, 1, 1, 1, 1, 372, 3786, 49, 3781, 3790, 325, 942, 544, 520, 535, 184, 3882, 3337, 3781, 3781,
-				1, 1086, 544, 520, 535, 3787, 1644, 30, 1179, 1077, 1405, 1720, 609, 119, 1634, 1046, 1686, 1203, 1660,
-				3781, 1, 6262, 6206, 6203, 6205, 3791, 3781, 2585, 208, 1, 6261, 1, 1, 1, 1, 1, 1, 819, 1, 1, 1, 1, 1,
-				1, 1, 1, 3786, 254, 3781, 2, 3790, 374, 3781, 3810, 3682, 3688, 3685, 3882, 544, 520, 535, 3757, 3781,
-				3313, 3299, 3781, 1514, 1644, 3787, 1179, 1077, 1405, 1720, 609, 5628, 1634, 1046, 1686, 1203, 1660,
-				3781, 1, 6262, 6206, 6203, 6205, 3791, 3781, 3781, 30, 1, 6261, 1, 1, 1, 1, 1, 1, 819, 1, 1, 1, 1, 1, 1,
-				1, 1, 380, 2009, 3786, 51, 3790, 3781, 3781, 544, 520, 535, 201, 3882, 3781, 3337, 3781, 3781, 3781,
-				544, 520, 535, 113, 1644, 3787, 1179, 1077, 1405, 1720, 609, 758, 1634, 1046, 1686, 1203, 1660, 3781, 1,
-				6262, 6206, 6203, 6205, 3791, 3781, 3781, 3781, 1, 6261, 1, 1, 1, 1, 1, 1, 819, 1, 1, 1, 1, 1, 1, 1, 1,
-				50, 1295, 3786, 2624, 3790, 375, 3781, 3781, 376, 3781, 3337, 3882, 544, 520, 535, 544, 520, 535, 3313,
-				3299, 3781, 1644, 3781, 1179, 1077, 1405, 1720, 609, 3781, 1634, 1046, 1686, 1203, 1660, 3781, 1, 6262,
-				6206, 6203, 6205, 3791, 3781, 3781, 3781, 1, 6261, 1, 1, 1, 1, 1, 1, 819, 1, 1, 1, 1, 1, 1, 1, 1, 377,
-				230, 3781, 3778, 3790, 3781, 3781, 544, 520, 535, 368, 3882, 3781, 3781, 3781, 3313, 3299, 3781, 3781,
-				234, 1540, 1644, 883, 1179, 1077, 1405, 1720, 609, 5629, 1634, 1046, 1686, 1203, 1660, 3781, 1, 6262,
-				6206, 6203, 6205, 3791, 3781, 3781, 357, 1, 6261, 1, 1, 1, 1, 1, 1, 819, 1, 1, 1, 1, 1, 1, 1, 1, 5629,
-				355, 42, 3781, 3790, 1895, 1921, 3781, 3781, 3781, 3781, 3882, 202, 3781, 3781, 1, 3781, 1, 1, 5629,
-				5629, 1644, 3781, 1179, 1077, 1405, 1720, 609, 5629, 1634, 1046, 1686, 1203, 1660, 3781, 1, 6262, 6206,
-				6203, 6205, 3791, 3781, 3781, 3781, 1, 6261, 1, 1, 1, 1, 1, 1, 819, 1, 1, 1, 1, 1, 1, 1, 1, 1999, 4166,
-				190, 4198, 3790, 4197, 4196, 3781, 3781, 3781, 382, 3882, 1, 1, 3781, 3781, 3781, 3781, 3781, 3781, 207,
-				1644, 3781, 1179, 1077, 1405, 1720, 609, 378, 1634, 1046, 1686, 1203, 1660, 3781, 1, 6262, 6206, 6203,
-				6205, 3791, 3781, 3781, 3781, 1, 6261, 1, 1, 1, 1, 1, 1, 819, 1, 1, 1, 1, 1, 1, 1, 1, 3793, 3792, 3781,
-				3781, 3790, 3781, 3781, 3781, 3781, 3781, 3781, 3882, 3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781,
-				3781, 1644, 3781, 1179, 1077, 1405, 1720, 609, 3781, 1634, 1046, 1686, 1203, 1660, 3781, 1, 6262, 6206,
-				6203, 6205, 3791, 3781, 3781, 3781, 1, 6261, 1, 1, 1, 1, 1, 1, 819, 1, 1, 1, 1, 1, 1, 1, 1, 3781, 3781,
-				3781, 3781, 3790, 3781, 3781, 3781, 3781, 3781, 3781, 3882, 3781, 3781, 3781, 3781, 3781, 3781, 3781,
-				3781, 3781, 1644, 3781, 1179, 1077, 1405, 1720, 609, 3781, 1634, 1046, 1686, 1203, 1660, 3781, 1, 6262,
-				6206, 6203, 6205, 3791, 3781, 3781, 3781, 1, 6261, 1, 1, 1, 1, 1, 1, 819, 1, 1, 1, 1, 1, 1, 1, 1, 3781,
-				3781, 3781, 3781, 3790, 3781, 3781, 130, 3781, 3781, 3781, 3882, 3781, 1, 3559, 3553, 3556, 3781, 3781,
-				117, 3781, 1644, 3781, 1179, 1077, 1405, 1720, 609, 3781, 1634, 1046, 1686, 1203, 1660, 3996, 3998,
-				3997, 3945, 3781, 3946, 3944, 3999, 3947, 3943, 117, 3781, 3950, 3954, 3952, 3953, 3951, 3956, 3957,
-				3781, 3781, 3781, 3781, 3781, 3781, 3781, 117, 3781, 3955, 3781, 3781, 3781, 3781, 3781, 3949, 3958,
-				3959, 3960, 4170, 4171, 4172, 3781, 3135, 3792, 4196, 4198, 4197, 3781, 3781, 3781, 3781, 3250, 3793,
-				545, 3239, 2289, 3259, 3365, 2096, 5629, 3797, 1183, 3794, 3795, 3796, 738, 500, 1133, 20, 3751, 180,
-				180, 180, 180, 3751, 180, 180, 180, 3751, 3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781,
-				3781, 3781, 3781, 3781, 3781, 3781, 180, 180, 180, 180, 3751, 180, 180, 180, 180, 180, 3751, 3781, 3135,
-				3792, 4196, 4198, 4197, 3781, 3781, 3781, 3751, 3250, 3793, 545, 3239, 2289, 3259, 3365, 2096, 5629,
-				3797, 1183, 3794, 3795, 3796, 738, 500, 1133, 356, 367, 367, 367, 367, 367, 3772, 367, 367, 367, 3772,
-				3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781, 367,
-				367, 367, 367, 3772, 367, 367, 367, 367, 367, 367, 1, 3135, 5192, 4986, 4780, 4883, 3781, 3781, 3781,
-				3772, 3250, 5089, 545, 3239, 2289, 3259, 3365, 2096, 5629, 3797, 1183, 3794, 3795, 3796, 738, 500, 1133,
-				383, 3135, 3792, 4196, 4198, 4197, 3781, 3781, 3781, 3781, 3250, 3793, 545, 3239, 2289, 3259, 3365,
-				2096, 5629, 3797, 1183, 3794, 3795, 3796, 738, 500, 1133, 3781, 3135, 3792, 4196, 4198, 4197, 3781,
-				3781, 3781, 3781, 3250, 3793, 545, 3239, 2289, 3259, 3365, 2096, 5629, 3797, 1183, 3794, 3795, 3796,
-				738, 500, 1133, 3781, 2110, 3792, 4196, 4198, 4197, 3781, 3781, 3781, 3781, 3250, 3793, 545, 3239, 2289,
-				3259, 3365, 2096, 3781, 3797, 1183, 3794, 3795, 3796, 738, 500, 1133, 3781, 3086, 3792, 4196, 4198,
-				4197, 3781, 3781, 3781, 3781, 3250, 3793, 545, 3239, 2289, 3259, 3365, 2096, 3781, 3797, 1183, 3794,
-				3795, 3796, 738, 500, 1133, 3781, 3103, 3792, 4196, 4198, 4197, 3781, 3781, 3781, 3781, 3250, 3793, 545,
-				3239, 2289, 3259, 3365, 2096, 3781, 3797, 1183, 3794, 3795, 3796, 738, 500, 1133, 3781, 3124, 3792,
-				4196, 4198, 4197, 3781, 3781, 3781, 3781, 3250, 3793, 545, 3239, 2289, 3259, 3365, 2096, 3781, 3797,
-				1183, 3794, 3795, 3796, 738, 500, 1133, 3781, 3135, 3792, 4196, 4198, 4197, 3781, 3781, 3781, 3781,
-				3250, 3793, 545, 3239, 2289, 3259, 3365, 2096, 3781, 3797, 1183, 3794, 3795, 3796, 738, 500, 1133, 3781,
-				3149, 3792, 4196, 4198, 4197, 3781, 3781, 3781, 3781, 3250, 3793, 545, 3239, 2289, 3259, 3365, 2096,
-				3781, 3797, 1183, 3794, 3795, 3796, 738, 500, 1133, 411, 3781, 3781, 3679, 3676, 3781, 3781, 3673, 3667,
-				3670, 3781, 3781, 3791, 3781, 3781, 3781, 3781, 1, 2321, 3781, 3781, 3781, 3781, 392, 3781, 3781, 3781,
-				3996, 3998, 3997, 3945, 3781, 3946, 3944, 3999, 3947, 3943, 3790, 3781, 4183, 4179, 4185, 4186, 4184,
-				4181, 4182, 1, 3135, 3792, 4196, 4198, 4197, 2331, 3781, 913, 3781, 3250, 3793, 545, 3239, 2289, 3259,
-				3365, 2096, 392, 3797, 1183, 3794, 3795, 3796, 738, 500, 1133, 410, 3781, 3781, 3748, 3745, 3781, 3781,
-				3742, 3736, 3739, 3781, 3781, 3781, 3781, 3781, 3781, 3781, 1, 2321, 3781, 3781, 3781, 3781, 266, 3781,
-				3781, 3781, 3996, 3998, 3997, 3945, 3781, 3946, 3944, 3999, 3947, 3943, 3781, 3781, 4183, 4179, 4185,
-				4186, 4184, 4181, 4182, 3781, 3170, 3792, 4196, 4198, 4197, 3781, 3781, 913, 3781, 3250, 3793, 545,
-				3239, 2289, 3259, 3365, 2096, 266, 3797, 1183, 3794, 3795, 3796, 738, 500, 1133, 333, 3135, 3792, 4196,
-				4198, 4197, 3781, 3781, 3781, 3781, 3250, 3793, 545, 3239, 2289, 3259, 3365, 2096, 3781, 3797, 1183,
-				3794, 3795, 3796, 738, 500, 1133, 131, 3781, 3781, 3781, 3781, 3781, 3781, 3568, 3562, 3565, 132, 3781,
-				3781, 3781, 3781, 1, 2321, 3577, 3571, 3574, 3781, 3787, 3781, 3781, 3781, 3781, 3781, 3996, 3998, 3997,
-				3945, 3781, 3946, 3944, 3999, 3947, 3943, 3996, 3998, 3997, 3945, 133, 3946, 3944, 3999, 3947, 3943,
-				3781, 3610, 3604, 3607, 134, 913, 3781, 3781, 3781, 3781, 3781, 3619, 3613, 3616, 3781, 3786, 3781,
-				3781, 3781, 3781, 3781, 3996, 3998, 3997, 3945, 3781, 3946, 3944, 3999, 3947, 3943, 3996, 3998, 3997,
-				3945, 369, 3946, 3944, 3999, 3947, 3943, 3781, 3640, 3634, 3637, 407, 3781, 3781, 3781, 3781, 3781,
-				3781, 3706, 3700, 3703, 3781, 3781, 3781, 3781, 3781, 3781, 3781, 3996, 3998, 3997, 3945, 3781, 3946,
-				3944, 3999, 3947, 3943, 3718, 3712, 3715, 3727, 3781, 3724, 3730, 3709, 3721, 3733 };
-	}
-
-	public final static char termAction[] = TermAction.termAction;
-
-	@Override
-	public final int termAction(int index) {
-		return termAction[index];
-	}
-
-	public interface Asb {
-		public final static char asb[] = { 0, 751, 1, 165, 350, 348, 568, 751, 166, 350, 350, 831, 141, 668, 166, 166,
-				166, 79, 658, 79, 658, 658, 79, 658, 79, 355, 350, 339, 339, 339, 339, 166, 79, 33, 570, 9, 521, 227,
-				350, 105, 104, 355, 230, 141, 570, 521, 194, 355, 263, 597, 539, 416, 704, 53, 136, 658, 662, 659, 662,
-				136, 662, 658, 350, 358, 403, 417, 711, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 615, 297, 528, 420,
-				527, 350, 227, 227, 235, 711, 350, 120, 570, 350, 679, 540, 3, 704, 703, 417, 267, 426, 141, 466, 358,
-				403, 713, 615, 615, 615, 615, 615, 417, 417, 417, 411, 411, 555, 539, 662, 662, 273, 33, 9, 522, 791,
-				53, 227, 143, 260, 747, 481, 239, 492, 497, 495, 505, 499, 508, 507, 510, 509, 511, 713, 463, 141, 630,
-				570, 348, 194, 263, 679, 679, 539, 31, 522, 522, 662, 166, 166, 18, 166, 166, 522, 102, 33, 102, 348,
-				112, 476, 292, 141, 267, 426, 466, 466, 403, 403, 417, 406, 570, 112, 417, 417, 417, 417, 417, 78, 355,
-				708, 111, 475, 525, 301, 33, 540, 417, 33, 260, 666, 417, 747, 260, 238, 235, 33, 33, 33, 33, 33, 33,
-				33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 55, 33,
-				112, 463, 118, 350, 536, 522, 522, 553, 33, 538, 33, 33, 18, 102, 607, 18, 350, 3, 417, 272, 417, 417,
-				426, 463, 91, 426, 466, 471, 610, 471, 403, 747, 708, 355, 570, 713, 360, 360, 360, 120, 141, 411, 417,
-				794, 711, 33, 305, 615, 539, 417, 33, 33, 260, 239, 495, 495, 492, 492, 499, 499, 497, 497, 497, 497,
-				497, 497, 507, 505, 509, 508, 102, 102, 510, 666, 118, 31, 522, 417, 166, 417, 417, 18, 33, 18, 355,
-				112, 426, 93, 471, 463, 33, 662, 747, 403, 794, 406, 417, 713, 417, 260, 260, 33, 33, 471, 186, 522, 31,
-				18, 33, 18, 18, 350, 272, 463, 521, 33, 517, 93, 518, 463, 403, 417, 364, 463, 116, 233, 168, 662, 33,
-				102, 14, 273, 522, 417, 538, 93, 33, 518, 518, 297, 120, 532, 662, 33, 417, 273, 522, 18, 518, 33, 260,
-				18, 417, 260, 18 };
-	}
-
-	public final static char asb[] = Asb.asb;
-
-	@Override
-	public final int asb(int index) {
-		return asb[index];
-	}
-
-	public interface Asr {
-		public final static byte asr[] = { 0, 104, 0, 6, 46, 47, 2, 27, 0, 6, 49, 47, 19, 0, 74, 37, 75, 0, 51, 53, 18,
-				58, 60, 54, 48, 56, 57, 52, 50, 59, 38, 31, 6, 1, 21, 22, 23, 2, 11, 3, 5, 4, 16, 17, 15, 10, 13, 14,
-				24, 25, 20, 26, 12, 19, 0, 20, 21, 22, 23, 19, 2, 11, 1, 16, 17, 15, 10, 13, 14, 24, 25, 12, 26, 5, 3,
-				4, 49, 0, 18, 37, 46, 47, 36, 33, 30, 32, 35, 27, 29, 28, 34, 31, 6, 10, 2, 3, 5, 4, 1, 7, 9, 8, 49, 0,
-				1, 49, 74, 31, 8, 9, 7, 37, 47, 6, 46, 0, 6, 71, 37, 75, 1, 21, 22, 23, 19, 16, 17, 15, 10, 13, 14, 24,
-				25, 20, 26, 12, 2, 11, 3, 5, 4, 18, 0, 27, 29, 16, 17, 15, 10, 13, 14, 24, 25, 20, 26, 12, 2, 11, 3, 5,
-				4, 21, 22, 23, 19, 28, 1, 0, 74, 1, 21, 22, 23, 19, 16, 17, 15, 10, 13, 14, 24, 25, 20, 26, 12, 18, 2,
-				11, 3, 5, 4, 37, 75, 0, 55, 68, 33, 40, 34, 41, 42, 35, 29, 43, 44, 30, 69, 36, 70, 45, 61, 28, 62, 63,
-				64, 2, 11, 12, 27, 39, 32, 5, 3, 4, 65, 66, 67, 8, 9, 7, 6, 46, 31, 74, 0, 27, 29, 28, 30, 16, 17, 15,
-				10, 13, 14, 24, 25, 20, 26, 12, 1, 2, 11, 3, 5, 4, 21, 22, 23, 19, 103, 6, 0, 6, 74, 46, 31, 18, 8, 9,
-				7, 0, 46, 20, 21, 22, 23, 11, 1, 16, 17, 15, 10, 13, 14, 24, 25, 12, 26, 5, 3, 4, 47, 6, 2, 19, 0, 49,
-				89, 103, 71, 75, 90, 16, 17, 37, 15, 13, 14, 76, 77, 72, 73, 78, 79, 80, 81, 84, 85, 86, 87, 88, 91, 92,
-				74, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 46, 82, 83, 47, 32, 27, 33, 34, 35, 29, 30, 36, 28, 31,
-				6, 2, 1, 5, 3, 4, 8, 9, 7, 10, 0, 49, 89, 103, 71, 35, 30, 36, 34, 33, 32, 15, 13, 14, 76, 77, 72, 73,
-				78, 79, 80, 81, 84, 85, 86, 87, 88, 91, 92, 74, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 82, 83, 18,
-				31, 27, 29, 28, 46, 2, 3, 5, 4, 10, 8, 9, 7, 37, 1, 47, 6, 0, 6, 49, 46, 47, 1, 0, 32, 39, 27, 55, 68,
-				33, 40, 34, 41, 42, 35, 29, 43, 44, 30, 69, 36, 70, 45, 61, 28, 62, 63, 64, 2, 11, 12, 8, 9, 7, 5, 3, 4,
-				65, 66, 67, 38, 6, 71, 0, 2, 11, 5, 3, 4, 6, 71, 46, 0, 37, 6, 46, 47, 1, 0, 74, 93, 94, 95, 96, 97, 99,
-				98, 100, 101, 102, 10, 76, 77, 13, 14, 73, 72, 78, 79, 80, 81, 82, 83, 84, 85, 15, 86, 87, 88, 89, 103,
-				47, 71, 91, 92, 49, 8, 9, 7, 46, 31, 6, 0, 103, 31, 46, 47, 6, 49, 0, 103, 6, 89, 0, 47, 104, 105, 71,
-				51, 53, 18, 58, 60, 54, 48, 56, 57, 52, 50, 59, 38, 6, 31, 21, 22, 23, 19, 16, 17, 15, 13, 14, 24, 25,
-				20, 26, 10, 1, 12, 2, 11, 68, 69, 70, 61, 55, 62, 63, 64, 65, 66, 67, 36, 33, 30, 32, 35, 27, 29, 28,
-				34, 7, 9, 8, 5, 3, 40, 4, 44, 45, 39, 43, 41, 42, 0, 49, 89, 0, 6, 46, 71, 74, 0, 20, 21, 22, 23, 19, 1,
-				16, 17, 15, 10, 13, 14, 24, 25, 26, 32, 39, 27, 55, 68, 33, 40, 34, 41, 42, 35, 29, 43, 44, 30, 69, 36,
-				70, 45, 61, 28, 62, 63, 64, 12, 65, 66, 67, 18, 8, 9, 7, 11, 3, 5, 4, 2, 0, 49, 46, 31, 61, 55, 62, 63,
-				64, 65, 66, 67, 37, 10, 5, 40, 44, 45, 39, 43, 41, 42, 36, 33, 30, 32, 35, 27, 29, 28, 34, 3, 4, 7, 9,
-				8, 1, 47, 6, 2, 0, 10, 1, 37, 47, 6, 32, 39, 55, 68, 33, 40, 34, 41, 42, 35, 43, 44, 30, 69, 36, 70, 45,
-				61, 62, 63, 64, 2, 11, 12, 8, 9, 7, 5, 3, 4, 65, 66, 67, 89, 27, 29, 28, 0, 104, 32, 39, 27, 55, 68, 33,
-				40, 34, 41, 42, 35, 29, 43, 44, 30, 69, 36, 70, 45, 61, 28, 62, 63, 64, 11, 1, 12, 8, 9, 5, 3, 4, 65,
-				66, 67, 31, 6, 38, 7, 2, 10, 0, 10, 32, 39, 27, 55, 68, 33, 40, 34, 41, 42, 35, 29, 43, 44, 30, 69, 36,
-				70, 45, 61, 28, 62, 63, 64, 2, 11, 12, 3, 4, 65, 66, 67, 89, 7, 9, 8, 5, 0 };
-	}
-
-	public final static byte asr[] = Asr.asr;
-
-	@Override
-	public final int asr(int index) {
-		return asr[index];
-	}
-
-	public interface Nasb {
-		public final static char nasb[] = { 0, 181, 34, 38, 94, 103, 23, 163, 34, 149, 117, 34, 19, 132, 34, 34, 34,
-				133, 122, 133, 122, 122, 133, 122, 133, 188, 107, 34, 34, 34, 34, 34, 133, 63, 126, 15, 104, 122, 106,
-				58, 58, 188, 34, 19, 94, 104, 34, 188, 34, 17, 49, 161, 35, 34, 8, 42, 8, 42, 8, 8, 8, 42, 177, 34, 42,
-				161, 160, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 137, 34, 161, 34, 34, 149, 42, 122, 77, 160, 120,
-				12, 205, 175, 33, 81, 10, 65, 34, 161, 122, 94, 34, 94, 34, 122, 93, 137, 137, 137, 137, 137, 161, 161,
-				161, 171, 171, 1, 49, 56, 56, 96, 140, 15, 104, 34, 15, 42, 62, 79, 21, 34, 78, 34, 34, 34, 34, 34, 34,
-				34, 34, 34, 34, 195, 94, 34, 111, 26, 103, 34, 34, 133, 33, 88, 102, 104, 104, 8, 34, 34, 44, 34, 34,
-				104, 34, 99, 34, 103, 161, 34, 161, 34, 42, 191, 94, 8, 122, 94, 161, 169, 26, 34, 161, 161, 161, 161,
-				161, 155, 188, 158, 58, 58, 34, 34, 63, 81, 161, 63, 79, 34, 161, 21, 79, 78, 124, 63, 63, 63, 63, 63,
-				63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 52,
-				63, 161, 50, 94, 149, 34, 104, 104, 199, 140, 34, 140, 140, 44, 34, 34, 44, 118, 10, 161, 63, 161, 161,
-				94, 50, 103, 73, 8, 68, 34, 34, 94, 21, 168, 188, 126, 93, 155, 155, 155, 154, 155, 145, 161, 186, 160,
-				63, 34, 137, 88, 161, 63, 63, 79, 78, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
-				34, 34, 34, 34, 61, 202, 104, 161, 34, 161, 161, 44, 63, 44, 188, 161, 191, 149, 68, 50, 63, 8, 21, 124,
-				186, 143, 161, 93, 161, 79, 79, 63, 63, 68, 70, 104, 202, 44, 140, 44, 44, 119, 63, 50, 104, 63, 34,
-				106, 122, 50, 124, 161, 155, 50, 60, 34, 12, 8, 63, 34, 40, 202, 104, 161, 34, 149, 63, 122, 42, 135,
-				12, 79, 8, 63, 161, 202, 104, 44, 42, 63, 79, 44, 161, 79, 44 };
-	}
-
-	public final static char nasb[] = Nasb.nasb;
-
-	@Override
-	public final int nasb(int index) {
-		return nasb[index];
-	}
-
-	public interface Nasr {
-		public final static char nasr[] = { 0, 73, 97, 94, 93, 78, 92, 91, 1, 0, 122, 0, 6, 57, 0, 104, 0, 106, 0, 120,
-				0, 96, 0, 34, 2, 103, 97, 95, 94, 93, 78, 92, 91, 73, 0, 147, 18, 0, 148, 0, 142, 0, 9, 0, 1, 43, 2, 44,
-				0, 2, 59, 0, 2, 33, 128, 0, 108, 0, 58, 0, 117, 57, 2, 6, 0, 18, 124, 0, 98, 0, 1, 151, 0, 2, 60, 100,
-				0, 2, 6, 54, 0, 29, 2, 42, 1, 43, 110, 0, 43, 1, 42, 89, 59, 29, 2, 0, 2, 129, 0, 6, 150, 0, 33, 2, 25,
-				0, 9, 38, 34, 2, 0, 2, 42, 29, 61, 30, 0, 40, 2, 36, 34, 38, 27, 0, 31, 0, 78, 74, 75, 76, 77, 81, 67,
-				50, 0, 138, 0, 60, 42, 30, 2, 33, 0, 34, 38, 71, 70, 27, 0, 2, 34, 38, 27, 0, 6, 57, 55, 0, 70, 71, 2,
-				18, 0, 2, 29, 42, 118, 0, 18, 34, 38, 70, 71, 2, 0, 38, 40, 27, 34, 36, 0, 143, 2, 29, 42, 0, 2, 29, 27,
-				65, 0, 112, 2, 60, 0, 134, 2, 29, 0, 42, 29, 61, 2, 82, 0, 29, 2, 42, 144, 0 };
-	}
-
-	public final static char nasr[] = Nasr.nasr;
-
-	@Override
-	public final int nasr(int index) {
-		return nasr[index];
-	}
-
-	public interface TerminalIndex {
-		public final static char terminalIndex[] = { 0, 2, 87, 101, 102, 100, 89, 99, 97, 98, 9, 88, 95, 10, 11, 8, 6,
-				7, 3, 86, 70, 83, 84, 85, 12, 13, 96, 50, 78, 66, 71, 94, 46, 57, 62, 65, 74, 1, 107, 49, 58, 63, 64,
-				68, 69, 76, 42, 92, 79, 29, 47, 48, 51, 52, 53, 54, 59, 60, 61, 67, 73, 77, 80, 81, 82, 103, 104, 105,
-				56, 72, 75, 93, 16, 17, 31, 4, 14, 15, 18, 19, 20, 21, 43, 44, 22, 23, 24, 25, 26, 30, 5, 27, 28, 32,
-				33, 34, 35, 36, 37, 38, 39, 40, 41, 91, 108, 55, 90, 106 };
-	}
-
-	public final static char terminalIndex[] = TerminalIndex.terminalIndex;
-
-	@Override
-	public final int terminalIndex(int index) {
-		return terminalIndex[index];
-	}
-
-	public interface NonterminalIndex {
-		public final static char nonterminalIndex[] = { 0, 113, 0, 0, 0, 0, 115, 119, 120, 197, 0, 0, 0, 121, 122, 123,
-				124, 125, 110, 126, 127, 128, 129, 130, 0, 112, 0, 198, 131, 140, 136, 148, 0, 114, 171, 0, 174, 168,
-				170, 0, 172, 0, 207, 132, 135, 0, 0, 0, 0, 0, 147, 0, 0, 0, 109, 118, 158, 0, 173, 111, 162, 139, 0, 0,
-				134, 169, 117, 150, 0, 185, 186, 187, 0, 149, 151, 152, 153, 154, 159, 182, 0, 205, 0, 155, 156, 157,
-				175, 181, 184, 138, 141, 142, 143, 144, 145, 146, 180, 204, 0, 0, 161, 165, 167, 176, 202, 0, 208, 0,
-				116, 133, 137, 0, 160, 164, 0, 166, 179, 189, 194, 0, 196, 0, 199, 0, 201, 0, 209, 0, 0, 0, 0, 0, 163,
-				0, 177, 178, 183, 188, 0, 190, 191, 0, 192, 193, 195, 0, 0, 200, 0, 0, 203, 206, 0, 0, 210, 0 };
-	}
-
-	public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
-
-	@Override
-	public final int nonterminalIndex(int index) {
-		return nonterminalIndex[index];
-	}
-
-	public interface ScopePrefix {
-		public final static char scopePrefix[] = { 221, 275, 348, 239, 328, 144, 170, 176, 303, 118, 377, 399, 356, 20,
-				127, 160, 186, 206, 86, 283, 338, 8, 54, 54, 78, 82, 94, 100, 132, 182, 254, 319, 94, 435, 442, 446,
-				373, 395, 408, 422, 408, 362, 34, 46, 75, 27, 27, 136, 139, 191, 139, 216, 139, 264, 269, 272, 325, 450,
-				14, 69, 106, 112, 152, 258, 106, 419, 429, 429, 1, 27, 152, 293, 229, 386, 229, 293, 39, 39, 60, 252,
-				60, 60, 60, 60, 60, 323, 417, 39, 39, 64, 165, 194, 165, 194, 194 };
-	}
-
-	public final static char scopePrefix[] = ScopePrefix.scopePrefix;
-
-	@Override
-	public final int scopePrefix(int index) {
-		return scopePrefix[index];
-	}
-
-	public interface ScopeSuffix {
-		public final static char scopeSuffix[] = { 98, 98, 335, 98, 335, 150, 25, 25, 98, 124, 383, 405, 343, 25, 58,
-				150, 25, 58, 91, 288, 343, 12, 58, 58, 58, 58, 98, 104, 58, 25, 12, 12, 98, 58, 58, 25, 335, 335, 335,
-				426, 412, 366, 37, 37, 58, 25, 25, 58, 142, 25, 201, 58, 219, 267, 267, 267, 12, 58, 17, 72, 109, 115,
-				167, 261, 17, 72, 432, 439, 4, 30, 155, 288, 246, 389, 232, 296, 44, 52, 62, 12, 309, 311, 313, 315,
-				317, 12, 12, 41, 49, 66, 167, 203, 155, 196, 211 };
-	}
-
-	public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
-
-	@Override
-	public final int scopeSuffix(int index) {
-		return scopeSuffix[index];
-	}
-
-	public interface ScopeLhs {
-		public final static char scopeLhs[] = { 76, 74, 48, 76, 48, 65, 58, 58, 74, 55, 48, 47, 48, 152, 72, 65, 58, 36,
-				10, 74, 48, 63, 81, 7, 7, 121, 120, 80, 72, 58, 100, 61, 30, 7, 6, 6, 48, 47, 47, 24, 47, 48, 113, 84,
-				4, 142, 141, 70, 88, 58, 103, 34, 56, 75, 75, 75, 49, 4, 63, 45, 80, 117, 65, 100, 61, 45, 8, 6, 42,
-				152, 65, 74, 76, 48, 76, 74, 113, 84, 97, 100, 95, 94, 93, 92, 91, 61, 46, 113, 84, 150, 65, 36, 65, 40,
-				36 };
-	}
-
-	public final static char scopeLhs[] = ScopeLhs.scopeLhs;
-
-	@Override
-	public final int scopeLhs(int index) {
-		return scopeLhs[index];
-	}
-
-	public interface ScopeLa {
-		public final static byte scopeLa[] = { 71, 71, 47, 71, 47, 27, 103, 103, 71, 71, 47, 105, 31, 103, 47, 27, 103,
-				47, 47, 18, 31, 31, 47, 47, 47, 47, 71, 18, 47, 103, 31, 31, 71, 47, 47, 103, 47, 47, 47, 49, 47, 31, 8,
-				8, 47, 103, 103, 47, 1, 103, 2, 47, 2, 2, 2, 2, 31, 47, 2, 49, 2, 74, 10, 2, 2, 49, 47, 47, 5, 89, 10,
-				18, 18, 48, 2, 2, 2, 2, 12, 31, 2, 68, 69, 69, 61, 31, 31, 2, 2, 89, 10, 1, 10, 1, 1 };
-	}
-
-	public final static byte scopeLa[] = ScopeLa.scopeLa;
-
-	@Override
-	public final int scopeLa(int index) {
-		return scopeLa[index];
-	}
-
-	public interface ScopeStateSet {
-		public final static char scopeStateSet[] = { 142, 142, 38, 142, 38, 218, 54, 54, 142, 17, 38, 38, 38, 3, 58,
-				218, 54, 149, 168, 142, 38, 238, 142, 66, 66, 14, 139, 241, 58, 54, 8, 238, 30, 66, 66, 66, 38, 38, 38,
-				102, 38, 38, 5, 162, 66, 1, 3, 58, 60, 54, 227, 149, 155, 142, 142, 142, 38, 66, 238, 38, 241, 136, 218,
-				8, 238, 38, 73, 66, 231, 3, 218, 142, 142, 38, 142, 142, 5, 162, 144, 8, 144, 144, 144, 144, 144, 238,
-				38, 5, 162, 12, 218, 149, 218, 151, 149 };
-	}
-
-	public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet;
-
-	@Override
-	public final int scopeStateSet(int index) {
-		return scopeStateSet[index];
-	}
-
-	public interface ScopeRhs {
-		public final static char scopeRhs[] = { 0, 212, 109, 0, 100, 208, 0, 0, 197, 109, 149, 0, 112, 0, 109, 149, 0,
-				141, 112, 0, 171, 89, 171, 37, 0, 109, 0, 171, 37, 0, 30, 134, 109, 0, 208, 134, 0, 198, 0, 134, 0, 165,
-				198, 0, 165, 0, 163, 134, 0, 158, 198, 0, 158, 0, 173, 1, 12, 0, 110, 0, 180, 0, 205, 0, 171, 0, 30,
-				134, 0, 257, 51, 0, 29, 135, 0, 137, 1, 0, 173, 1, 26, 0, 253, 1, 229, 0, 252, 1, 1, 8, 0, 110, 110, 0,
-				217, 109, 18, 0, 111, 0, 210, 109, 136, 0, 196, 0, 109, 136, 0, 176, 196, 0, 246, 109, 0, 31, 157, 0,
-				205, 244, 109, 18, 164, 0, 111, 0, 0, 193, 109, 1, 177, 0, 193, 109, 1, 0, 195, 1, 0, 172, 109, 0, 185,
-				0, 109, 148, 10, 148, 172, 0, 180, 0, 148, 172, 0, 9, 0, 0, 180, 0, 109, 148, 10, 148, 0, 148, 0, 9, 0,
-				0, 135, 30, 223, 109, 37, 0, 135, 223, 109, 30, 37, 0, 135, 30, 37, 0, 135, 223, 109, 37, 0, 135, 37, 0,
-				141, 0, 2, 0, 177, 110, 0, 174, 0, 2, 110, 0, 193, 109, 1, 141, 0, 2, 0, 175, 110, 0, 163, 1, 0, 168, 0,
-				205, 221, 109, 18, 108, 240, 68, 0, 240, 68, 0, 113, 3, 0, 0, 0, 111, 0, 205, 221, 109, 18, 240, 68, 0,
-				3, 0, 0, 0, 111, 0, 167, 0, 239, 109, 167, 0, 109, 167, 0, 163, 112, 0, 206, 68, 0, 113, 0, 206, 70, 0,
-				206, 69, 0, 218, 109, 18, 238, 108, 237, 185, 0, 238, 108, 237, 185, 0, 3, 0, 0, 111, 0, 237, 185, 0,
-				113, 0, 3, 0, 0, 111, 0, 218, 109, 18, 237, 185, 0, 154, 0, 153, 0, 152, 0, 151, 0, 150, 0, 197, 109,
-				136, 0, 136, 0, 140, 59, 0, 189, 132, 189, 168, 1, 56, 0, 110, 135, 0, 189, 168, 1, 56, 0, 112, 0, 110,
-				135, 0, 189, 132, 189, 132, 189, 1, 56, 0, 189, 132, 189, 1, 56, 0, 189, 1, 56, 0, 112, 0, 112, 0, 110,
-				135, 0, 140, 1, 48, 0, 140, 1, 48, 151, 54, 0, 110, 112, 0, 151, 54, 0, 79, 2, 114, 110, 112, 0, 140, 1,
-				60, 0, 151, 125, 140, 1, 58, 0, 55, 135, 0, 140, 1, 58, 0, 110, 135, 55, 135, 0, 150, 0, 171, 51, 0,
-				140, 92, 130, 0, 29, 131, 0, 173, 1, 0, 110, 120, 0, 173, 1, 20, 0, 110, 118, 0, 236, 1, 113, 0, 140,
-				37, 113, 0, 140, 1, 0 };
-	}
-
-	public final static char scopeRhs[] = ScopeRhs.scopeRhs;
-
-	@Override
-	public final int scopeRhs(int index) {
-		return scopeRhs[index];
-	}
-
-	public interface ScopeState {
-		public final static char scopeState[] = { 0, 555, 0, 834, 0, 2331, 2276, 0, 3347, 879, 2627, 0, 1077, 0, 456,
-				447, 0, 883, 825, 758, 1281, 700, 1280, 2265, 1219, 1180, 1060, 674, 462, 0, 3170, 1263, 3149, 3135,
-				3124, 3103, 3086, 2110, 2800, 2773, 2742, 2734, 2707, 2674, 2634, 2624, 1224, 2552, 2525, 1102, 609,
-				990, 951, 0, 1162, 1135, 725, 718, 2123, 2876, 2346, 2321, 987, 3224, 2838, 0, 3389, 3365, 2096, 1183,
-				1133, 545, 454, 2556, 2265, 851, 679, 1105, 1768, 1380, 3069, 3053, 3037, 3021, 3005, 2984, 2867, 2850,
-				2828, 2423, 1361, 1238, 3337, 3313, 3299, 1001, 3259, 3250, 3239, 2289, 738, 500, 2051, 2024, 883, 1999,
-				1972, 825, 1947, 1295, 1921, 1895, 1868, 1843, 1817, 1791, 1732, 942, 1687, 1661, 1635, 1609, 1583,
-				1557, 1531, 1505, 1479, 1453, 1421, 1194, 1153, 1077, 788, 421, 462, 913, 758, 700, 0, 521, 492, 0,
-				1712, 1339, 659, 570, 421, 522, 0, 2605, 522, 2503, 2123, 2457, 2437, 2331, 527, 2276, 2346, 987, 1221,
-				3062, 2082, 2218, 2317, 1320, 2177, 0, 3471, 3451, 3427, 2331, 3421, 527, 2503, 2123, 2276, 2876, 1712,
-				2082, 2218, 659, 3374, 3269, 2410, 2964, 570, 3176, 421, 2196, 2144, 2095, 2457, 2437, 3413, 2499, 2317,
-				2069, 2605, 1716, 1333, 576, 1221, 3408, 1339, 2951, 2918, 1279, 2904, 3351, 3081, 2889, 1062, 2470,
-				2231, 1320, 2177, 522, 2684, 3346, 2579, 3323, 3274, 3211, 3207, 2796, 0, 2082, 1320, 522, 0, 3170,
-				3149, 3135, 3124, 3103, 3086, 2110, 3078, 1263, 3268, 1224, 1102, 990, 951, 2334, 2504, 0 };
-	}
-
-	public final static char scopeState[] = ScopeState.scopeState;
-
-	@Override
-	public final int scopeState(int index) {
-		return scopeState[index];
-	}
-
-	public interface InSymb {
-		public final static char inSymb[] = { 0, 0, 234, 7, 149, 136, 109, 250, 255, 109, 109, 212, 210, 198, 8, 9, 7,
-				199, 185, 200, 70, 69, 201, 68, 202, 109, 1, 4, 5, 3, 2, 141, 204, 12, 180, 1, 197, 163, 134, 145, 141,
-				109, 191, 210, 242, 197, 147, 109, 143, 5, 18, 1, 1, 1, 237, 134, 206, 134, 206, 240, 206, 134, 172,
-				148, 134, 163, 1, 12, 26, 20, 25, 24, 14, 13, 10, 15, 17, 16, 1, 113, 256, 19, 211, 46, 134, 163, 37, 1,
-				172, 74, 109, 172, 213, 109, 1, 254, 2, 19, 108, 18, 108, 18, 148, 10, 109, 1, 1, 1, 1, 1, 137, 173,
-				140, 149, 167, 109, 18, 90, 75, 1, 37, 49, 125, 1, 46, 134, 30, 135, 109, 114, 10, 120, 122, 121, 124,
-				123, 127, 126, 129, 128, 130, 109, 18, 164, 251, 109, 136, 147, 143, 180, 261, 217, 59, 50, 52, 57, 56,
-				48, 54, 60, 58, 150, 53, 51, 108, 136, 252, 229, 1, 238, 134, 109, 18, 109, 10, 148, 193, 136, 109, 194,
-				173, 173, 173, 173, 173, 125, 109, 1, 178, 177, 216, 108, 12, 109, 236, 109, 140, 10, 2, 109, 135, 223,
-				203, 102, 101, 100, 98, 99, 97, 96, 95, 94, 93, 74, 77, 76, 10, 72, 73, 14, 13, 85, 84, 83, 82, 81, 80,
-				79, 78, 86, 15, 88, 87, 92, 91, 241, 109, 18, 109, 6, 140, 108, 1, 1, 151, 1, 1, 49, 257, 171, 49, 109,
-				46, 125, 1, 19, 2, 18, 218, 167, 219, 109, 221, 108, 222, 148, 109, 1, 109, 180, 46, 125, 125, 125, 125,
-				125, 172, 195, 109, 1, 46, 114, 1, 217, 2, 223, 30, 135, 10, 121, 121, 120, 120, 123, 123, 122, 122,
-				122, 122, 122, 122, 126, 124, 128, 127, 235, 140, 129, 46, 109, 168, 189, 140, 48, 140, 140, 49, 89, 49,
-				109, 253, 109, 109, 221, 205, 74, 46, 109, 203, 109, 172, 193, 109, 173, 135, 135, 49, 49, 244, 109,
-				189, 132, 125, 1, 125, 125, 172, 46, 218, 239, 49, 163, 134, 208, 205, 203, 193, 125, 205, 46, 246, 258,
-				75, 37, 108, 247, 132, 189, 140, 151, 46, 49, 208, 134, 166, 74, 171, 75, 37, 189, 132, 125, 105, 134,
-				89, 171, 125, 189, 171, 125 };
-	}
-
-	public final static char inSymb[] = InSymb.inSymb;
-
-	@Override
-	public final int inSymb(int index) {
-		return inSymb[index];
-	}
-
-	public interface Name {
-		public final static String name[] = { "", "[", "(", "{", ".", "->", "++", "--", "&", "*", "+", "-", "~", "!",
-				"/", "%", ">>", "<<", "<", ">", "<=", ">=", "==", "!=", "^", "|", "&&", "||", "?", ":", "...", "=",
-				"*=", "/=", "%=", "+=", "-=", ">>=", "<<=", "&=", "^=", "|=", ",", ">?", "<?", "$empty", "auto",
-				"break", "case", "char", "const", "continue", "default", "do", "double", "else", "enum", "extern",
-				"float", "for", "goto", "if", "inline", "int", "long", "register", "restrict", "return", "short",
-				"signed", "sizeof", "static", "struct", "switch", "typedef", "union", "unsigned", "void", "volatile",
-				"while", "_Bool", "_Complex", "_Imaginary", "integer", "floating", "charconst", "stringlit",
-				"identifier", "Completion", "EndOfCompletion", "Invalid", "RightBracket", "RightParen", "RightBrace",
-				"SemiColon", "typeof", "__alignof__", "__attribute__", "__declspec", "asm", "vector", "pixel", "bool",
-				"_Decimal32", "_Decimal64", "_Decimal128", "__static_assert", "ERROR_TOKEN", "EOF_TOKEN", "]", ")", "}",
-				";", "identifier_token", "expression", "postfix_expression", "member_name", "type_id",
-				"initializer_list", "unary_expression", "cast_expression", "multiplicative_expression",
-				"additive_expression", "shift_expression", "relational_expression", "equality_expression",
-				"and_expression", "exclusive_or_expression", "inclusive_or_expression", "logical_and_expression",
-				"logical_or_expression", "assignment_expression", "expression_in_statement", "expression_list_actual",
-				"constant_expression", "statement", "compound_statement", "block_item_list", "block_item",
-				"declaration", "declaration_specifiers", "init_declarator_list", "simple_declaration_specifiers",
-				"struct_or_union_declaration_sp" + "ecifiers", "elaborated_declaration_specifi" + "ers",
-				"enum_declaration_specifiers", "typdef_name_declaration_specif" + "iers",
-				"no_type_declaration_specifier", "type_qualifier", "no_type_declaration_specifiers",
-				"simple_type_specifier", "struct_or_union_specifier", "elaborated_specifier", "enum_specifier",
-				"type_name_specifier", "init_declarator", "complete_declarator", "initializer", "declarator",
-				"struct_or_union", "struct_declaration_list", "struct_declaration", "specifier_qualifier_list",
-				"struct_declarator_list", "complete_struct_declarator", "struct_declarator", "enumerator_list",
-				"enumerator", "direct_declarator", "pointer_seq", "array_direct_declarator", "basic_direct_declarator",
-				"knr_direct_declarator", "array_modifier", "function_direct_declarator", "parameter_type_list",
-				"function_declarator", "identifier_list", "knr_function_declarator", "array_modifier_type_qualifiers",
-				"type_qualifier_list", "parameter_list", "parameter_declaration", "complete_parameter_declarator",
-				"abstract_declarator", "direct_abstract_declarator", "basic_direct_abstract_declarat" + "or",
-				"array_direct_abstract_declarat" + "or", "initializer_seq", "designated_initializer", "designation",
-				"designator_list", "designator", "external_declaration_list", "external_declaration",
-				"declaration_list", "function_body", "attribute_or_decl_specifier",
-				"attribute_or_decl_specifier_se" + "q", "word", "extended_decl_modifier_seq", "extended_decl_modifier",
-				"extended_asm_param", "case_range_expression", "typeof_declaration_specifiers", "typeof_type_specifier",
-				"field_name_designator", "vector_type", "vector_type_specifier", "all_specifier_qualifiers",
-				"all_specifier_qualifier_list" };
-	}
-
-	public final static String name[] = Name.name;
-
-	@Override
-	public final String name(int index) {
-		return name[index];
-	}
-
-	public final static int ERROR_SYMBOL = 38, SCOPE_UBOUND = 94, SCOPE_SIZE = 95, MAX_NAME_LENGTH = 38;
-
-	@Override
-	public final int getErrorSymbol() {
-		return ERROR_SYMBOL;
-	}
-
-	@Override
-	public final int getScopeUbound() {
-		return SCOPE_UBOUND;
-	}
-
-	@Override
-	public final int getScopeSize() {
-		return SCOPE_SIZE;
-	}
-
-	@Override
-	public final int getMaxNameLength() {
-		return MAX_NAME_LENGTH;
-	}
-
-	public final static int NUM_STATES = 389, NT_OFFSET = 107, LA_STATE_OFFSET = 4201, MAX_LA = 2147483647,
-			NUM_RULES = 420, NUM_NONTERMINALS = 155, NUM_SYMBOLS = 262, SEGMENT_SIZE = 8192, START_STATE = 2504,
-			IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 104, EOLT_SYMBOL = 104, ACCEPT_ACTION = 3537, ERROR_ACTION = 3781;
-
-	public final static boolean BACKTRACK = true;
-
-	@Override
-	public final int getNumStates() {
-		return NUM_STATES;
-	}
-
-	@Override
-	public final int getNtOffset() {
-		return NT_OFFSET;
-	}
-
-	@Override
-	public final int getLaStateOffset() {
-		return LA_STATE_OFFSET;
-	}
-
-	@Override
-	public final int getMaxLa() {
-		return MAX_LA;
-	}
-
-	@Override
-	public final int getNumRules() {
-		return NUM_RULES;
-	}
-
-	@Override
-	public final int getNumNonterminals() {
-		return NUM_NONTERMINALS;
-	}
-
-	@Override
-	public final int getNumSymbols() {
-		return NUM_SYMBOLS;
-	}
-
-	@Override
-	public final int getSegmentSize() {
-		return SEGMENT_SIZE;
-	}
-
-	@Override
-	public final int getStartState() {
-		return START_STATE;
-	}
-
-	@Override
-	public final int getStartSymbol() {
-		return lhs[0];
-	}
-
-	public final int getIdentifierSymbol() {
-		return IDENTIFIER_SYMBOL;
-	}
-
-	@Override
-	public final int getEoftSymbol() {
-		return EOFT_SYMBOL;
-	}
-
-	@Override
-	public final int getEoltSymbol() {
-		return EOLT_SYMBOL;
-	}
-
-	@Override
-	public final int getAcceptAction() {
-		return ACCEPT_ACTION;
-	}
-
-	@Override
-	public final int getErrorAction() {
-		return ERROR_ACTION;
-	}
-
-	@Override
-	public final boolean isValidForParser() {
-		return isValidForParser;
-	}
-
-	@Override
-	public final boolean getBacktrack() {
-		return BACKTRACK;
-	}
-
-	@Override
-	public final int originalState(int state) {
-		return -baseCheck[state];
-	}
-
-	@Override
-	public final int asi(int state) {
-		return asb[originalState(state)];
-	}
-
-	@Override
-	public final int nasi(int state) {
-		return nasb[originalState(state)];
-	}
-
-	@Override
-	public final int inSymbol(int state) {
-		return inSymb[originalState(state)];
-	}
-
-	@Override
-	public final int ntAction(int state, int sym) {
-		return baseAction[state + sym];
-	}
-
-	@Override
-	public final int tAction(int state, int sym) {
-		int i = baseAction[state], k = i + sym;
-		return termAction[termCheck[k] == sym ? k : i];
-	}
-
-	@Override
-	public final int lookAhead(int la_state, int sym) {
-		int k = la_state + sym;
-		return termAction[termCheck[k] == sym ? k : la_state];
-	}
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/c/XlcCParsersym.java b/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/c/XlcCParsersym.java
deleted file mode 100644
index 9b4cb97..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/c/XlcCParsersym.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2010 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.lrparser.xlc.c;
-
-public interface XlcCParsersym {
-	public final static int TK_auto = 32, TK_break = 50, TK_case = 51, TK_char = 39, TK_const = 27, TK_continue = 52,
-			TK_default = 53, TK_do = 54, TK_double = 55, TK_else = 105, TK_enum = 68, TK_extern = 33, TK_float = 40,
-			TK_for = 56, TK_goto = 57, TK_if = 58, TK_inline = 34, TK_int = 41, TK_long = 42, TK_register = 35,
-			TK_restrict = 29, TK_return = 59, TK_short = 43, TK_signed = 44, TK_sizeof = 20, TK_static = 30,
-			TK_struct = 69, TK_switch = 60, TK_typedef = 36, TK_union = 70, TK_unsigned = 45, TK_void = 61,
-			TK_volatile = 28, TK_while = 48, TK__Bool = 62, TK__Complex = 63, TK__Imaginary = 64, TK_integer = 21,
-			TK_floating = 22, TK_charconst = 23, TK_stringlit = 19, TK_identifier = 2, TK_Completion = 11,
-			TK_EndOfCompletion = 6, TK_Invalid = 106, TK_LeftBracket = 37, TK_LeftParen = 1, TK_LeftBrace = 18,
-			TK_Dot = 75, TK_Arrow = 90, TK_PlusPlus = 16, TK_MinusMinus = 17, TK_And = 15, TK_Star = 10, TK_Plus = 13,
-			TK_Minus = 14, TK_Tilde = 24, TK_Bang = 25, TK_Slash = 76, TK_Percent = 77, TK_RightShift = 72,
-			TK_LeftShift = 73, TK_LT = 78, TK_GT = 79, TK_LE = 80, TK_GE = 81, TK_EQ = 84, TK_NE = 85, TK_Caret = 86,
-			TK_Or = 87, TK_AndAnd = 88, TK_OrOr = 91, TK_Question = 92, TK_Colon = 49, TK_DotDotDot = 89,
-			TK_Assign = 74, TK_StarAssign = 93, TK_SlashAssign = 94, TK_PercentAssign = 95, TK_PlusAssign = 96,
-			TK_MinusAssign = 97, TK_RightShiftAssign = 98, TK_LeftShiftAssign = 99, TK_AndAssign = 100,
-			TK_CaretAssign = 101, TK_OrAssign = 102, TK_Comma = 46, TK_RightBracket = 103, TK_RightParen = 47,
-			TK_RightBrace = 71, TK_SemiColon = 31, TK_typeof = 12, TK___alignof__ = 26, TK___attribute__ = 8,
-			TK___declspec = 9, TK_MAX = 82, TK_MIN = 83, TK_asm = 7, TK_vector = 5, TK_pixel = 3, TK_bool = 4,
-			TK__Decimal32 = 65, TK__Decimal64 = 66, TK__Decimal128 = 67, TK___static_assert = 107, TK_ERROR_TOKEN = 38,
-			TK_EOF_TOKEN = 104;
-
-	public final static String orderedTerminalSymbols[] = { "", "LeftParen", "identifier", "pixel", "bool", "vector",
-			"EndOfCompletion", "asm", "__attribute__", "__declspec", "Star", "Completion", "typeof", "Plus", "Minus",
-			"And", "PlusPlus", "MinusMinus", "LeftBrace", "stringlit", "sizeof", "integer", "floating", "charconst",
-			"Tilde", "Bang", "__alignof__", "const", "volatile", "restrict", "static", "SemiColon", "auto", "extern",
-			"inline", "register", "typedef", "LeftBracket", "ERROR_TOKEN", "char", "float", "int", "long", "short",
-			"signed", "unsigned", "Comma", "RightParen", "while", "Colon", "break", "case", "continue", "default", "do",
-			"double", "for", "goto", "if", "return", "switch", "void", "_Bool", "_Complex", "_Imaginary", "_Decimal32",
-			"_Decimal64", "_Decimal128", "enum", "struct", "union", "RightBrace", "RightShift", "LeftShift", "Assign",
-			"Dot", "Slash", "Percent", "LT", "GT", "LE", "GE", "MAX", "MIN", "EQ", "NE", "Caret", "Or", "AndAnd",
-			"DotDotDot", "Arrow", "OrOr", "Question", "StarAssign", "SlashAssign", "PercentAssign", "PlusAssign",
-			"MinusAssign", "RightShiftAssign", "LeftShiftAssign", "AndAssign", "CaretAssign", "OrAssign",
-			"RightBracket", "EOF_TOKEN", "else", "Invalid", "__static_assert" };
-
-	public final static boolean isValidForParser = true;
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/cpp/XlcCPPParser.java b/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/cpp/XlcCPPParser.java
deleted file mode 100644
index 89e38f2..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/cpp/XlcCPPParser.java
+++ /dev/null
@@ -1,3128 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2010 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.lrparser.xlc.cpp;
-
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.cdt.core.dom.ast.IASTBinaryExpression;
-import org.eclipse.cdt.core.dom.ast.IASTCompletionNode;
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.ast.IASTTypeIdExpression;
-import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTBinaryExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCastExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTLiteralExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTypeIdExpression;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTUnaryExpression;
-import org.eclipse.cdt.core.dom.ast.gnu.cpp.IGPPASTExplicitTemplateInstantiation;
-import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter;
-import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
-import org.eclipse.cdt.core.dom.lrparser.IParser;
-import org.eclipse.cdt.core.dom.lrparser.ITokenCollector;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
-import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
-import org.eclipse.cdt.core.dom.lrparser.action.gnu.GNUBuildASTParserAction;
-import org.eclipse.cdt.core.dom.lrparser.action.gnu.GPPSecondaryParserFactory;
-import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser;
-import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
-import org.eclipse.cdt.core.index.IIndex;
-import org.eclipse.cdt.core.lrparser.xlc.action.XlcCPPBuildASTParserAction;
-import org.eclipse.cdt.core.parser.IScanner;
-import org.eclipse.cdt.internal.core.lrparser.xlc.ast.XlcCPPNodeFactory;
-
-import lpg.lpgjavaruntime.BadParseException;
-import lpg.lpgjavaruntime.BadParseSymFileException;
-import lpg.lpgjavaruntime.DiagnoseParser;
-import lpg.lpgjavaruntime.ErrorToken;
-import lpg.lpgjavaruntime.IToken;
-import lpg.lpgjavaruntime.LexStream;
-import lpg.lpgjavaruntime.Monitor;
-import lpg.lpgjavaruntime.NotBacktrackParseTableException;
-import lpg.lpgjavaruntime.NullExportedSymbolsException;
-import lpg.lpgjavaruntime.NullTerminalSymbolsException;
-import lpg.lpgjavaruntime.ParseErrorCodes;
-import lpg.lpgjavaruntime.ParseTable;
-import lpg.lpgjavaruntime.PrsStream;
-import lpg.lpgjavaruntime.RuleAction;
-import lpg.lpgjavaruntime.TokenStream;
-import lpg.lpgjavaruntime.UndefinedEofSymbolException;
-import lpg.lpgjavaruntime.UnimplementedTerminalsException;
-
-public class XlcCPPParser extends PrsStream
-		implements RuleAction, ITokenStream, ITokenCollector, IParser<IASTTranslationUnit>
-
-{
-	private static ParseTable prs = new XlcCPPParserprs();
-	private FixedBacktrackingParser btParser;
-
-	public FixedBacktrackingParser getParser() {
-		return btParser;
-	}
-
-	private void setResult(Object object) {
-		btParser.setSym1(object);
-	}
-
-	public Object getRhsSym(int i) {
-		return btParser.getSym(i);
-	}
-
-	public int getRhsTokenIndex(int i) {
-		return btParser.getToken(i);
-	}
-
-	public IToken getRhsIToken(int i) {
-		return super.getIToken(getRhsTokenIndex(i));
-	}
-
-	public int getRhsFirstTokenIndex(int i) {
-		return btParser.getFirstToken(i);
-	}
-
-	public IToken getRhsFirstIToken(int i) {
-		return super.getIToken(getRhsFirstTokenIndex(i));
-	}
-
-	public int getRhsLastTokenIndex(int i) {
-		return btParser.getLastToken(i);
-	}
-
-	public IToken getRhsLastIToken(int i) {
-		return super.getIToken(getRhsLastTokenIndex(i));
-	}
-
-	public int getLeftSpan() {
-		return btParser.getFirstToken();
-	}
-
-	@Override
-	public IToken getLeftIToken() {
-		return super.getIToken(getLeftSpan());
-	}
-
-	public int getRightSpan() {
-		return btParser.getLastToken();
-	}
-
-	@Override
-	public IToken getRightIToken() {
-		return super.getIToken(getRightSpan());
-	}
-
-	public int getRhsErrorTokenIndex(int i) {
-		int index = btParser.getToken(i);
-		IToken err = super.getIToken(index);
-		return (err instanceof ErrorToken ? index : 0);
-	}
-
-	public ErrorToken getRhsErrorIToken(int i) {
-		int index = btParser.getToken(i);
-		IToken err = super.getIToken(index);
-		return (ErrorToken) (err instanceof ErrorToken ? err : null);
-	}
-
-	public XlcCPPParser(LexStream lexStream) {
-		super(lexStream);
-
-		try {
-			super.remapTerminalSymbols(orderedTerminalSymbols(), XlcCPPParserprs.EOFT_SYMBOL);
-		} catch (NullExportedSymbolsException e) {
-		} catch (NullTerminalSymbolsException e) {
-		} catch (UnimplementedTerminalsException e) {
-			java.util.ArrayList unimplemented_symbols = e.getSymbols();
-			System.out.println("The Lexer will not scan the following token(s):");
-			for (int i = 0; i < unimplemented_symbols.size(); i++) {
-				Integer id = (Integer) unimplemented_symbols.get(i);
-				System.out.println("    " + XlcCPPParsersym.orderedTerminalSymbols[id.intValue()]);
-			}
-			System.out.println();
-		} catch (UndefinedEofSymbolException e) {
-			throw new Error(new UndefinedEofSymbolException("The Lexer does not implement the Eof symbol "
-					+ XlcCPPParsersym.orderedTerminalSymbols[XlcCPPParserprs.EOFT_SYMBOL]));
-		}
-	}
-
-	@Override
-	public String[] orderedTerminalSymbols() {
-		return XlcCPPParsersym.orderedTerminalSymbols;
-	}
-
-	public String getTokenKindName(int kind) {
-		return XlcCPPParsersym.orderedTerminalSymbols[kind];
-	}
-
-	public int getEOFTokenKind() {
-		return XlcCPPParserprs.EOFT_SYMBOL;
-	}
-
-	public PrsStream getParseStream() {
-		return this;
-	}
-
-	//
-	// Report error message for given error_token.
-	//
-	public final void reportErrorTokenMessage(int error_token, String msg) {
-		int firsttok = super.getFirstErrorToken(error_token), lasttok = super.getLastErrorToken(error_token);
-		String location = super.getFileName() + ':'
-				+ (firsttok > lasttok ? (super.getEndLine(lasttok) + ":" + super.getEndColumn(lasttok))
-						: (super.getLine(error_token) + ":" + super.getColumn(error_token) + ":"
-								+ super.getEndLine(error_token) + ":" + super.getEndColumn(error_token)))
-				+ ": ";
-		super.reportError((firsttok > lasttok ? ParseErrorCodes.INSERTION_CODE : ParseErrorCodes.SUBSTITUTION_CODE),
-				location, msg);
-	}
-
-	public void parser() {
-		parser(null, 0);
-	}
-
-	public void parser(Monitor monitor) {
-		parser(monitor, 0);
-	}
-
-	public void parser(int error_repair_count) {
-		parser(null, error_repair_count);
-	}
-
-	public void parser(Monitor monitor, int error_repair_count) {
-		try {
-			btParser = new FixedBacktrackingParser(monitor, this, prs, this);
-		} catch (NotBacktrackParseTableException e) {
-			throw new Error(
-					new NotBacktrackParseTableException("Regenerate XlcCPPParserprs.java with -BACKTRACK option"));
-		} catch (BadParseSymFileException e) {
-			throw new Error(new BadParseSymFileException("Bad Parser Symbol File -- XlcCPPParsersym.java"));
-		}
-
-		try {
-			btParser.parse(error_repair_count);
-		} catch (BadParseException e) {
-			reset(e.error_token); // point to error token
-			DiagnoseParser diagnoseParser = new DiagnoseParser(this, prs);
-			diagnoseParser.diagnose(e.error_token);
-		}
-	}
-
-	private XlcCPPBuildASTParserAction action;
-	private IASTCompletionNode compNode;
-
-	public XlcCPPParser(IScanner scanner, IDOMTokenMap tokenMap, IBuiltinBindingsProvider builtinBindingsProvider,
-			IIndex index, Map<String, String> properties) {
-		initActions(properties);
-		action.initializeTranslationUnit(scanner, builtinBindingsProvider, index);
-		CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap);
-	}
-
-	private void initActions(Map<String, String> properties) {
-		ScopedStack<Object> astStack = new ScopedStack<>();
-
-		action = new XlcCPPBuildASTParserAction(this, astStack, XlcCPPNodeFactory.getDefault(),
-				GPPSecondaryParserFactory.getDefault());
-		action.setParserProperties(properties);
-
-		gnuAction = new GNUBuildASTParserAction(this, astStack, XlcCPPNodeFactory.getDefault());
-		gnuAction.setParserProperties(properties);
-
-	}
-
-	@Override
-	public void addToken(IToken token) {
-		token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called?
-		super.addToken(token);
-	}
-
-	@Override
-	public IASTTranslationUnit parse() {
-		// this has to be done, or... kaboom!
-		setStreamLength(getSize());
-
-		final int errorRepairCount = -1; // -1 means full error handling
-		parser(null, errorRepairCount); // do the actual parse
-		super.resetTokenStream(); // allow tokens to be garbage collected
-
-		compNode = action.getASTCompletionNode(); // the completion node may be null
-		return (IASTTranslationUnit) action.getParseResult();
-	}
-
-	@Override
-	public IASTCompletionNode getCompletionNode() {
-		return compNode;
-	}
-
-	// uncomment this method to use with backtracking parser
-	@Override
-	public List<IToken> getRuleTokens() {
-		return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
-	}
-
-	@Override
-	public String[] getOrderedTerminalSymbols() {
-		return XlcCPPParsersym.orderedTerminalSymbols;
-	}
-
-	@Override
-	@SuppressWarnings("nls")
-	public String getName() {
-		return "XlcCPPParser";
-	}
-
-	private GNUBuildASTParserAction gnuAction;
-
-	@Override
-	public void ruleAction(int ruleNumber) {
-		switch (ruleNumber) {
-
-		//
-		// Rule 1:  <openscope-ast> ::= $Empty
-		//
-		case 1: {
-			action.openASTScope();
-			break;
-		}
-
-		//
-		// Rule 2:  <empty> ::= $Empty
-		//
-		case 2: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 13:  translation_unit ::= declaration_seq_opt
-		//
-		case 13: {
-			action.consumeTranslationUnit();
-			break;
-		}
-
-		//
-		// Rule 16:  literal ::= integer
-		//
-		case 16: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant);
-			break;
-		}
-
-		//
-		// Rule 17:  literal ::= floating
-		//
-		case 17: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_float_constant);
-			break;
-		}
-
-		//
-		// Rule 18:  literal ::= charconst
-		//
-		case 18: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant);
-			break;
-		}
-
-		//
-		// Rule 19:  literal ::= stringlit
-		//
-		case 19: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal);
-			break;
-		}
-
-		//
-		// Rule 20:  literal ::= true
-		//
-		case 20: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true);
-			break;
-		}
-
-		//
-		// Rule 21:  literal ::= false
-		//
-		case 21: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false);
-			break;
-		}
-
-		//
-		// Rule 22:  literal ::= this
-		//
-		case 22: {
-			action.consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this);
-			break;
-		}
-
-		//
-		// Rule 24:  primary_expression ::= ( expression )
-		//
-		case 24: {
-			action.consumeExpressionBracketed();
-			break;
-		}
-
-		//
-		// Rule 26:  id_expression ::= qualified_or_unqualified_name
-		//
-		case 26: {
-			action.consumeExpressionName();
-			break;
-		}
-
-		//
-		// Rule 33:  unqualified_id_name ::= ~ identifier_token
-		//
-		case 33: {
-			action.consumeDestructorName();
-			break;
-		}
-
-		//
-		// Rule 34:  unqualified_id_name ::= ~ template_id_name
-		//
-		case 34: {
-			action.consumeDestructorNameTemplateId();
-			break;
-		}
-
-		//
-		// Rule 35:  identifier_name ::= identifier_token
-		//
-		case 35: {
-			action.consumeIdentifierName();
-			break;
-		}
-
-		//
-		// Rule 36:  template_opt ::= template
-		//
-		case 36: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 37:  template_opt ::= $Empty
-		//
-		case 37: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 38:  dcolon_opt ::= ::
-		//
-		case 38: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 39:  dcolon_opt ::= $Empty
-		//
-		case 39: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 40:  qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name
-		//
-		case 40: {
-			action.consumeQualifiedId(true);
-			break;
-		}
-
-		//
-		// Rule 41:  qualified_id_name ::= :: unqualified_id_name
-		//
-		case 41: {
-			action.consumeGlobalQualifiedId();
-			break;
-		}
-
-		//
-		// Rule 42:  nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template
-		//
-		case 42: {
-			action.consumeNestedNameSpecifier(true);
-			break;
-		}
-
-		//
-		// Rule 43:  nested_name_specifier ::= class_or_namespace_name ::
-		//
-		case 43: {
-			action.consumeNestedNameSpecifier(false);
-			break;
-		}
-
-		//
-		// Rule 44:  nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template
-		//
-		case 44: {
-			action.consumeNestedNameSpecifier(true);
-			break;
-		}
-
-		//
-		// Rule 45:  nested_name_specifier_with_template ::= class_or_namespace_name_with_template ::
-		//
-		case 45: {
-			action.consumeNestedNameSpecifier(false);
-			break;
-		}
-
-		//
-		// Rule 46:  class_or_namespace_name_with_template ::= template_opt class_or_namespace_name
-		//
-		case 46: {
-			action.consumeNameWithTemplateKeyword();
-			break;
-		}
-
-		//
-		// Rule 48:  nested_name_specifier_opt ::= $Empty
-		//
-		case 48: {
-			action.consumeNestedNameSpecifierEmpty();
-			break;
-		}
-
-		//
-		// Rule 51:  postfix_expression ::= postfix_expression [ expression ]
-		//
-		case 51: {
-			action.consumeExpressionArraySubscript();
-			break;
-		}
-
-		//
-		// Rule 52:  postfix_expression ::= postfix_expression ( expression_list_opt )
-		//
-		case 52: {
-			action.consumeExpressionFunctionCall();
-			break;
-		}
-
-		//
-		// Rule 53:  postfix_expression ::= simple_type_specifier ( expression_list_opt )
-		//
-		case 53: {
-			action.consumeExpressionSimpleTypeConstructor();
-			break;
-		}
-
-		//
-		// Rule 54:  postfix_expression ::= typename dcolon_opt nested_name_specifier <empty> identifier_name ( expression_list_opt )
-		//
-		case 54: {
-			action.consumeExpressionTypeName();
-			break;
-		}
-
-		//
-		// Rule 55:  postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt )
-		//
-		case 55: {
-			action.consumeExpressionTypeName();
-			break;
-		}
-
-		//
-		// Rule 56:  postfix_expression ::= postfix_expression . qualified_or_unqualified_name
-		//
-		case 56: {
-			action.consumeExpressionFieldReference(false, false);
-			break;
-		}
-
-		//
-		// Rule 57:  postfix_expression ::= postfix_expression -> qualified_or_unqualified_name
-		//
-		case 57: {
-			action.consumeExpressionFieldReference(true, false);
-			break;
-		}
-
-		//
-		// Rule 58:  postfix_expression ::= postfix_expression . template qualified_or_unqualified_name
-		//
-		case 58: {
-			action.consumeExpressionFieldReference(false, true);
-			break;
-		}
-
-		//
-		// Rule 59:  postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name
-		//
-		case 59: {
-			action.consumeExpressionFieldReference(true, true);
-			break;
-		}
-
-		//
-		// Rule 60:  postfix_expression ::= postfix_expression . pseudo_destructor_name
-		//
-		case 60: {
-			action.consumeExpressionFieldReference(false, false);
-			break;
-		}
-
-		//
-		// Rule 61:  postfix_expression ::= postfix_expression -> pseudo_destructor_name
-		//
-		case 61: {
-			action.consumeExpressionFieldReference(true, false);
-			break;
-		}
-
-		//
-		// Rule 62:  postfix_expression ::= postfix_expression ++
-		//
-		case 62: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr);
-			break;
-		}
-
-		//
-		// Rule 63:  postfix_expression ::= postfix_expression --
-		//
-		case 63: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr);
-			break;
-		}
-
-		//
-		// Rule 64:  postfix_expression ::= dynamic_cast < type_id > ( expression )
-		//
-		case 64: {
-			action.consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast);
-			break;
-		}
-
-		//
-		// Rule 65:  postfix_expression ::= static_cast < type_id > ( expression )
-		//
-		case 65: {
-			action.consumeExpressionCast(ICPPASTCastExpression.op_static_cast);
-			break;
-		}
-
-		//
-		// Rule 66:  postfix_expression ::= reinterpret_cast < type_id > ( expression )
-		//
-		case 66: {
-			action.consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast);
-			break;
-		}
-
-		//
-		// Rule 67:  postfix_expression ::= const_cast < type_id > ( expression )
-		//
-		case 67: {
-			action.consumeExpressionCast(ICPPASTCastExpression.op_const_cast);
-			break;
-		}
-
-		//
-		// Rule 68:  postfix_expression ::= typeid ( expression )
-		//
-		case 68: {
-			action.consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid);
-			break;
-		}
-
-		//
-		// Rule 69:  postfix_expression ::= typeid ( type_id )
-		//
-		case 69: {
-			action.consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid);
-			break;
-		}
-
-		//
-		// Rule 70:  pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name
-		//
-		case 70: {
-			action.consumePsudoDestructorName(true);
-			break;
-		}
-
-		//
-		// Rule 71:  pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name
-		//
-		case 71: {
-			action.consumePsudoDestructorName(true);
-			break;
-		}
-
-		//
-		// Rule 72:  pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name
-		//
-		case 72: {
-			action.consumePsudoDestructorName(false);
-			break;
-		}
-
-		//
-		// Rule 73:  destructor_type_name ::= ~ identifier_token
-		//
-		case 73: {
-			action.consumeDestructorName();
-			break;
-		}
-
-		//
-		// Rule 74:  destructor_type_name ::= ~ template_id_name
-		//
-		case 74: {
-			action.consumeDestructorNameTemplateId();
-			break;
-		}
-
-		//
-		// Rule 78:  unary_expression ::= ++ cast_expression
-		//
-		case 78: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr);
-			break;
-		}
-
-		//
-		// Rule 79:  unary_expression ::= -- cast_expression
-		//
-		case 79: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr);
-			break;
-		}
-
-		//
-		// Rule 80:  unary_expression ::= & cast_expression
-		//
-		case 80: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper);
-			break;
-		}
-
-		//
-		// Rule 81:  unary_expression ::= * cast_expression
-		//
-		case 81: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_star);
-			break;
-		}
-
-		//
-		// Rule 82:  unary_expression ::= + cast_expression
-		//
-		case 82: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus);
-			break;
-		}
-
-		//
-		// Rule 83:  unary_expression ::= - cast_expression
-		//
-		case 83: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus);
-			break;
-		}
-
-		//
-		// Rule 84:  unary_expression ::= ~ cast_expression
-		//
-		case 84: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde);
-			break;
-		}
-
-		//
-		// Rule 85:  unary_expression ::= ! cast_expression
-		//
-		case 85: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_not);
-			break;
-		}
-
-		//
-		// Rule 86:  unary_expression ::= sizeof unary_expression
-		//
-		case 86: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof);
-			break;
-		}
-
-		//
-		// Rule 87:  unary_expression ::= sizeof ( type_id )
-		//
-		case 87: {
-			action.consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof);
-			break;
-		}
-
-		//
-		// Rule 88:  new_expression ::= dcolon_opt new new_placement_opt new_type_id <openscope-ast> new_array_expressions_opt new_initializer_opt
-		//
-		case 88: {
-			action.consumeExpressionNew(true);
-			break;
-		}
-
-		//
-		// Rule 89:  new_expression ::= dcolon_opt new new_placement_opt ( type_id ) <openscope-ast> new_array_expressions_opt new_initializer_opt
-		//
-		case 89: {
-			action.consumeExpressionNew(false);
-			break;
-		}
-
-		//
-		// Rule 91:  new_placement_opt ::= $Empty
-		//
-		case 91: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 92:  new_type_id ::= type_specifier_seq
-		//
-		case 92: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 93:  new_type_id ::= type_specifier_seq new_declarator
-		//
-		case 93: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 94:  new_declarator ::= <openscope-ast> new_pointer_operators
-		//
-		case 94: {
-			action.consumeNewDeclarator();
-			break;
-		}
-
-		//
-		// Rule 101:  new_initializer ::= ( expression_list_opt )
-		//
-		case 101: {
-			action.consumeNewInitializer();
-			break;
-		}
-
-		//
-		// Rule 103:  new_initializer_opt ::= $Empty
-		//
-		case 103: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 104:  delete_expression ::= dcolon_opt delete cast_expression
-		//
-		case 104: {
-			action.consumeExpressionDelete(false);
-			break;
-		}
-
-		//
-		// Rule 105:  delete_expression ::= dcolon_opt delete [ ] cast_expression
-		//
-		case 105: {
-			action.consumeExpressionDelete(true);
-			break;
-		}
-
-		//
-		// Rule 107:  cast_expression ::= ( type_id ) cast_expression
-		//
-		case 107: {
-			action.consumeExpressionCast(ICPPASTCastExpression.op_cast);
-			break;
-		}
-
-		//
-		// Rule 109:  pm_expression ::= pm_expression .* cast_expression
-		//
-		case 109: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot);
-			break;
-		}
-
-		//
-		// Rule 110:  pm_expression ::= pm_expression ->* cast_expression
-		//
-		case 110: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow);
-			break;
-		}
-
-		//
-		// Rule 112:  multiplicative_expression ::= multiplicative_expression * pm_expression
-		//
-		case 112: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply);
-			break;
-		}
-
-		//
-		// Rule 113:  multiplicative_expression ::= multiplicative_expression / pm_expression
-		//
-		case 113: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide);
-			break;
-		}
-
-		//
-		// Rule 114:  multiplicative_expression ::= multiplicative_expression % pm_expression
-		//
-		case 114: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo);
-			break;
-		}
-
-		//
-		// Rule 116:  additive_expression ::= additive_expression + multiplicative_expression
-		//
-		case 116: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus);
-			break;
-		}
-
-		//
-		// Rule 117:  additive_expression ::= additive_expression - multiplicative_expression
-		//
-		case 117: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus);
-			break;
-		}
-
-		//
-		// Rule 119:  shift_expression ::= shift_expression << additive_expression
-		//
-		case 119: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft);
-			break;
-		}
-
-		//
-		// Rule 120:  shift_expression ::= shift_expression >> additive_expression
-		//
-		case 120: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight);
-			break;
-		}
-
-		//
-		// Rule 122:  relational_expression ::= relational_expression < shift_expression
-		//
-		case 122: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan);
-			break;
-		}
-
-		//
-		// Rule 123:  relational_expression ::= relational_expression > shift_expression
-		//
-		case 123: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan);
-			break;
-		}
-
-		//
-		// Rule 124:  relational_expression ::= relational_expression <= shift_expression
-		//
-		case 124: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual);
-			break;
-		}
-
-		//
-		// Rule 125:  relational_expression ::= relational_expression >= shift_expression
-		//
-		case 125: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual);
-			break;
-		}
-
-		//
-		// Rule 127:  equality_expression ::= equality_expression == relational_expression
-		//
-		case 127: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals);
-			break;
-		}
-
-		//
-		// Rule 128:  equality_expression ::= equality_expression != relational_expression
-		//
-		case 128: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals);
-			break;
-		}
-
-		//
-		// Rule 130:  and_expression ::= and_expression & equality_expression
-		//
-		case 130: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd);
-			break;
-		}
-
-		//
-		// Rule 132:  exclusive_or_expression ::= exclusive_or_expression ^ and_expression
-		//
-		case 132: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor);
-			break;
-		}
-
-		//
-		// Rule 134:  inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression
-		//
-		case 134: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr);
-			break;
-		}
-
-		//
-		// Rule 136:  logical_and_expression ::= logical_and_expression && inclusive_or_expression
-		//
-		case 136: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd);
-			break;
-		}
-
-		//
-		// Rule 138:  logical_or_expression ::= logical_or_expression || logical_and_expression
-		//
-		case 138: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr);
-			break;
-		}
-
-		//
-		// Rule 140:  conditional_expression ::= logical_or_expression ? expression : assignment_expression
-		//
-		case 140: {
-			action.consumeExpressionConditional();
-			break;
-		}
-
-		//
-		// Rule 142:  relational_expression_inTemplate ::= relational_expression_inTemplate < shift_expression
-		//
-		case 142: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan);
-			break;
-		}
-
-		//
-		// Rule 143:  relational_expression_inTemplate ::= ( relational_expression_inTemplate > shift_expression )
-		//
-		case 143: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan);
-			break;
-		}
-
-		//
-		// Rule 144:  relational_expression_inTemplate ::= relational_expression_inTemplate <= shift_expression
-		//
-		case 144: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual);
-			break;
-		}
-
-		//
-		// Rule 145:  relational_expression_inTemplate ::= relational_expression_inTemplate >= shift_expression
-		//
-		case 145: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual);
-			break;
-		}
-
-		//
-		// Rule 147:  equality_expression_inTemplate ::= equality_expression_inTemplate == relational_expression_inTemplate
-		//
-		case 147: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals);
-			break;
-		}
-
-		//
-		// Rule 148:  equality_expression_inTemplate ::= equality_expression_inTemplate != relational_expression_inTemplate
-		//
-		case 148: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals);
-			break;
-		}
-
-		//
-		// Rule 150:  and_expression_inTemplate ::= and_expression_inTemplate & equality_expression_inTemplate
-		//
-		case 150: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd);
-			break;
-		}
-
-		//
-		// Rule 152:  exclusive_or_expression_inTemplate ::= exclusive_or_expression_inTemplate ^ and_expression_inTemplate
-		//
-		case 152: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor);
-			break;
-		}
-
-		//
-		// Rule 154:  inclusive_or_expression_inTemplate ::= inclusive_or_expression_inTemplate | exclusive_or_expression_inTemplate
-		//
-		case 154: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr);
-			break;
-		}
-
-		//
-		// Rule 156:  logical_and_expression_inTemplate ::= logical_and_expression_inTemplate && inclusive_or_expression_inTemplate
-		//
-		case 156: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd);
-			break;
-		}
-
-		//
-		// Rule 158:  logical_or_expression_inTemplate ::= logical_or_expression_inTemplate || logical_and_expression_inTemplate
-		//
-		case 158: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr);
-			break;
-		}
-
-		//
-		// Rule 160:  conditional_expression_inTemplate ::= logical_or_expression_inTemplate ? expression : assignment_expression_inTemplate
-		//
-		case 160: {
-			action.consumeExpressionConditional();
-			break;
-		}
-
-		//
-		// Rule 163:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate = assignment_expression_inTemplate
-		//
-		case 163: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign);
-			break;
-		}
-
-		//
-		// Rule 164:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate *= assignment_expression_inTemplate
-		//
-		case 164: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign);
-			break;
-		}
-
-		//
-		// Rule 165:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate /= assignment_expression_inTemplate
-		//
-		case 165: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign);
-			break;
-		}
-
-		//
-		// Rule 166:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate %= assignment_expression_inTemplate
-		//
-		case 166: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign);
-			break;
-		}
-
-		//
-		// Rule 167:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate += assignment_expression_inTemplate
-		//
-		case 167: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign);
-			break;
-		}
-
-		//
-		// Rule 168:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate -= assignment_expression_inTemplate
-		//
-		case 168: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign);
-			break;
-		}
-
-		//
-		// Rule 169:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate >>= assignment_expression_inTemplate
-		//
-		case 169: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign);
-			break;
-		}
-
-		//
-		// Rule 170:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate <<= assignment_expression_inTemplate
-		//
-		case 170: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign);
-			break;
-		}
-
-		//
-		// Rule 171:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate &= assignment_expression_inTemplate
-		//
-		case 171: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign);
-			break;
-		}
-
-		//
-		// Rule 172:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate ^= assignment_expression_inTemplate
-		//
-		case 172: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign);
-			break;
-		}
-
-		//
-		// Rule 173:  assignment_expression_inTemplate ::= logical_or_expression_inTemplate |= assignment_expression_inTemplate
-		//
-		case 173: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign);
-			break;
-		}
-
-		//
-		// Rule 174:  throw_expression ::= throw
-		//
-		case 174: {
-			action.consumeExpressionThrow(false);
-			break;
-		}
-
-		//
-		// Rule 175:  throw_expression ::= throw assignment_expression
-		//
-		case 175: {
-			action.consumeExpressionThrow(true);
-			break;
-		}
-
-		//
-		// Rule 178:  assignment_expression ::= logical_or_expression = assignment_expression
-		//
-		case 178: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign);
-			break;
-		}
-
-		//
-		// Rule 179:  assignment_expression ::= logical_or_expression *= assignment_expression
-		//
-		case 179: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign);
-			break;
-		}
-
-		//
-		// Rule 180:  assignment_expression ::= logical_or_expression /= assignment_expression
-		//
-		case 180: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign);
-			break;
-		}
-
-		//
-		// Rule 181:  assignment_expression ::= logical_or_expression %= assignment_expression
-		//
-		case 181: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign);
-			break;
-		}
-
-		//
-		// Rule 182:  assignment_expression ::= logical_or_expression += assignment_expression
-		//
-		case 182: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign);
-			break;
-		}
-
-		//
-		// Rule 183:  assignment_expression ::= logical_or_expression -= assignment_expression
-		//
-		case 183: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign);
-			break;
-		}
-
-		//
-		// Rule 184:  assignment_expression ::= logical_or_expression >>= assignment_expression
-		//
-		case 184: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign);
-			break;
-		}
-
-		//
-		// Rule 185:  assignment_expression ::= logical_or_expression <<= assignment_expression
-		//
-		case 185: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign);
-			break;
-		}
-
-		//
-		// Rule 186:  assignment_expression ::= logical_or_expression &= assignment_expression
-		//
-		case 186: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign);
-			break;
-		}
-
-		//
-		// Rule 187:  assignment_expression ::= logical_or_expression ^= assignment_expression
-		//
-		case 187: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign);
-			break;
-		}
-
-		//
-		// Rule 188:  assignment_expression ::= logical_or_expression |= assignment_expression
-		//
-		case 188: {
-			action.consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign);
-			break;
-		}
-
-		//
-		// Rule 190:  expression_list ::= <openscope-ast> expression_list_actual
-		//
-		case 190: {
-			action.consumeExpressionList();
-			break;
-		}
-
-		//
-		// Rule 194:  expression_list_opt ::= $Empty
-		//
-		case 194: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 196:  expression_opt ::= $Empty
-		//
-		case 196: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 199:  constant_expression_opt ::= $Empty
-		//
-		case 199: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 208:  statement ::= ERROR_TOKEN
-		//
-		case 208: {
-			action.consumeStatementProblem();
-			break;
-		}
-
-		//
-		// Rule 209:  labeled_statement ::= identifier : statement
-		//
-		case 209: {
-			action.consumeStatementLabeled();
-			break;
-		}
-
-		//
-		// Rule 210:  labeled_statement ::= case constant_expression : statement
-		//
-		case 210: {
-			action.consumeStatementCase();
-			break;
-		}
-
-		//
-		// Rule 211:  labeled_statement ::= default : statement
-		//
-		case 211: {
-			action.consumeStatementDefault();
-			break;
-		}
-
-		//
-		// Rule 212:  expression_statement ::= expression ;
-		//
-		case 212: {
-			action.consumeStatementExpression();
-			break;
-		}
-
-		//
-		// Rule 213:  expression_statement ::= ;
-		//
-		case 213: {
-			action.consumeStatementNull();
-			break;
-		}
-
-		//
-		// Rule 214:  compound_statement ::= { <openscope-ast> statement_seq }
-		//
-		case 214: {
-			action.consumeStatementCompoundStatement(true);
-			break;
-		}
-
-		//
-		// Rule 215:  compound_statement ::= { }
-		//
-		case 215: {
-			action.consumeStatementCompoundStatement(false);
-			break;
-		}
-
-		//
-		// Rule 218:  selection_statement ::= if ( condition ) statement
-		//
-		case 218: {
-			action.consumeStatementIf(false);
-			break;
-		}
-
-		//
-		// Rule 219:  selection_statement ::= if ( condition ) statement else statement
-		//
-		case 219: {
-			action.consumeStatementIf(true);
-			break;
-		}
-
-		//
-		// Rule 220:  selection_statement ::= switch ( condition ) statement
-		//
-		case 220: {
-			action.consumeStatementSwitch();
-			break;
-		}
-
-		//
-		// Rule 222:  condition ::= type_specifier_seq declarator = assignment_expression
-		//
-		case 222: {
-			action.consumeConditionDeclaration();
-			break;
-		}
-
-		//
-		// Rule 224:  condition_opt ::= $Empty
-		//
-		case 224: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 225:  iteration_statement ::= while ( condition ) statement
-		//
-		case 225: {
-			action.consumeStatementWhileLoop();
-			break;
-		}
-
-		//
-		// Rule 226:  iteration_statement ::= do statement while ( expression ) ;
-		//
-		case 226: {
-			action.consumeStatementDoLoop(true);
-			break;
-		}
-
-		//
-		// Rule 227:  iteration_statement ::= do statement
-		//
-		case 227: {
-			action.consumeStatementDoLoop(false);
-			break;
-		}
-
-		//
-		// Rule 228:  iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement
-		//
-		case 228: {
-			action.consumeStatementForLoop();
-			break;
-		}
-
-		//
-		// Rule 230:  for_init_statement ::= simple_declaration_with_declspec
-		//
-		case 230: {
-			action.consumeStatementDeclaration();
-			break;
-		}
-
-		//
-		// Rule 231:  jump_statement ::= break ;
-		//
-		case 231: {
-			action.consumeStatementBreak();
-			break;
-		}
-
-		//
-		// Rule 232:  jump_statement ::= continue ;
-		//
-		case 232: {
-			action.consumeStatementContinue();
-			break;
-		}
-
-		//
-		// Rule 233:  jump_statement ::= return expression ;
-		//
-		case 233: {
-			action.consumeStatementReturn(true);
-			break;
-		}
-
-		//
-		// Rule 234:  jump_statement ::= return ;
-		//
-		case 234: {
-			action.consumeStatementReturn(false);
-			break;
-		}
-
-		//
-		// Rule 235:  jump_statement ::= goto identifier_token ;
-		//
-		case 235: {
-			action.consumeStatementGoto();
-			break;
-		}
-
-		//
-		// Rule 236:  declaration_statement ::= block_declaration
-		//
-		case 236: {
-			action.consumeStatementDeclarationWithDisambiguation();
-			break;
-		}
-
-		//
-		// Rule 237:  declaration_statement ::= function_definition
-		//
-		case 237: {
-			action.consumeStatementDeclaration();
-			break;
-		}
-
-		//
-		// Rule 245:  declaration ::= ERROR_TOKEN
-		//
-		case 245: {
-			action.consumeDeclarationProblem();
-			break;
-		}
-
-		//
-		// Rule 255:  simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ;
-		//
-		case 255: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 256:  simple_declaration_with_declspec ::= declaration_specifiers <openscope-ast> init_declarator_list_opt ;
-		//
-		case 256: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 257:  declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
-		//
-		case 257: {
-			action.consumeDeclarationSpecifiersSimple();
-			break;
-		}
-
-		//
-		// Rule 258:  declaration_specifiers ::= <openscope-ast> class_declaration_specifiers
-		//
-		case 258: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 259:  declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
-		//
-		case 259: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 260:  declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
-		//
-		case 260: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 261:  declaration_specifiers ::= <openscope-ast> type_name_declaration_specifiers
-		//
-		case 261: {
-			action.consumeDeclarationSpecifiersTypeName();
-			break;
-		}
-
-		//
-		// Rule 263:  declaration_specifiers_opt ::= $Empty
-		//
-		case 263: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 267:  no_type_declaration_specifier ::= friend
-		//
-		case 267: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 268:  no_type_declaration_specifier ::= typedef
-		//
-		case 268: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 288:  storage_class_specifier ::= auto
-		//
-		case 288: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 289:  storage_class_specifier ::= register
-		//
-		case 289: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 290:  storage_class_specifier ::= static
-		//
-		case 290: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 291:  storage_class_specifier ::= extern
-		//
-		case 291: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 292:  storage_class_specifier ::= mutable
-		//
-		case 292: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 293:  function_specifier ::= inline
-		//
-		case 293: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 294:  function_specifier ::= virtual
-		//
-		case 294: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 295:  function_specifier ::= explicit
-		//
-		case 295: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 296:  simple_type_specifier ::= simple_type_specifier_token
-		//
-		case 296: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 310:  type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name
-		//
-		case 310: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 311:  type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name
-		//
-		case 311: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 312:  type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name
-		//
-		case 312: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 313:  type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name
-		//
-		case 313: {
-			action.consumeQualifiedId(true);
-			break;
-		}
-
-		//
-		// Rule 315:  elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name
-		//
-		case 315: {
-			action.consumeTypeSpecifierElaborated(false);
-			break;
-		}
-
-		//
-		// Rule 316:  elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt template_opt template_id_name
-		//
-		case 316: {
-			action.consumeTypeSpecifierElaborated(true);
-			break;
-		}
-
-		//
-		// Rule 317:  elaborated_type_specifier ::= enum elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name
-		//
-		case 317: {
-			action.consumeTypeSpecifierElaborated(false);
-			break;
-		}
-
-		//
-		// Rule 321:  enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
-		//
-		case 321: {
-			action.consumeTypeSpecifierEnumeration(false);
-			break;
-		}
-
-		//
-		// Rule 322:  enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
-		//
-		case 322: {
-			action.consumeTypeSpecifierEnumeration(true);
-			break;
-		}
-
-		//
-		// Rule 328:  enumerator_definition ::= identifier_token
-		//
-		case 328: {
-			action.consumeEnumerator(false);
-			break;
-		}
-
-		//
-		// Rule 329:  enumerator_definition ::= identifier_token = constant_expression
-		//
-		case 329: {
-			action.consumeEnumerator(true);
-			break;
-		}
-
-		//
-		// Rule 331:  namespace_definition ::= namespace namespace_name namespace_definition_hook { <openscope-ast> declaration_seq_opt }
-		//
-		case 331: {
-			action.consumeNamespaceDefinition(true);
-			break;
-		}
-
-		//
-		// Rule 332:  namespace_definition ::= namespace namespace_definition_hook { <openscope-ast> declaration_seq_opt }
-		//
-		case 332: {
-			action.consumeNamespaceDefinition(false);
-			break;
-		}
-
-		//
-		// Rule 334:  namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ;
-		//
-		case 334: {
-			action.consumeNamespaceAliasDefinition();
-			break;
-		}
-
-		//
-		// Rule 335:  using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ;
-		//
-		case 335: {
-			action.consumeUsingDeclaration();
-			break;
-		}
-
-		//
-		// Rule 336:  typename_opt ::= typename
-		//
-		case 336: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 337:  typename_opt ::= $Empty
-		//
-		case 337: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 338:  using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ;
-		//
-		case 338: {
-			action.consumeUsingDirective();
-			break;
-		}
-
-		//
-		// Rule 339:  linkage_specification ::= extern stringlit { <openscope-ast> declaration_seq_opt }
-		//
-		case 339: {
-			action.consumeLinkageSpecification();
-			break;
-		}
-
-		//
-		// Rule 340:  linkage_specification ::= extern stringlit <openscope-ast> declaration
-		//
-		case 340: {
-			action.consumeLinkageSpecification();
-			break;
-		}
-
-		//
-		// Rule 345:  init_declarator_complete ::= init_declarator
-		//
-		case 345: {
-			action.consumeInitDeclaratorComplete();
-			break;
-		}
-
-		//
-		// Rule 347:  init_declarator ::= complete_declarator initializer
-		//
-		case 347: {
-			action.consumeDeclaratorWithInitializer(true);
-			break;
-		}
-
-		//
-		// Rule 350:  declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
-		//
-		case 350: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 352:  function_declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
-		//
-		case 352: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 356:  basic_direct_declarator ::= declarator_id_name
-		//
-		case 356: {
-			action.consumeDirectDeclaratorIdentifier();
-			break;
-		}
-
-		//
-		// Rule 357:  basic_direct_declarator ::= ( declarator )
-		//
-		case 357: {
-			action.consumeDirectDeclaratorBracketed();
-			break;
-		}
-
-		//
-		// Rule 358:  function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
-		//
-		case 358: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 359:  array_direct_declarator ::= array_direct_declarator array_modifier
-		//
-		case 359: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 360:  array_direct_declarator ::= basic_direct_declarator array_modifier
-		//
-		case 360: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 361:  array_modifier ::= [ constant_expression ]
-		//
-		case 361: {
-			action.consumeDirectDeclaratorArrayModifier(true);
-			break;
-		}
-
-		//
-		// Rule 362:  array_modifier ::= [ ]
-		//
-		case 362: {
-			action.consumeDirectDeclaratorArrayModifier(false);
-			break;
-		}
-
-		//
-		// Rule 363:  ptr_operator ::= pointer_hook * pointer_hook <openscope-ast> cv_qualifier_seq_opt
-		//
-		case 363: {
-			action.consumePointer();
-			break;
-		}
-
-		//
-		// Rule 364:  ptr_operator ::= pointer_hook & pointer_hook
-		//
-		case 364: {
-			action.consumeReferenceOperator();
-			break;
-		}
-
-		//
-		// Rule 365:  ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * pointer_hook <openscope-ast> cv_qualifier_seq_opt
-		//
-		case 365: {
-			action.consumePointerToMember();
-			break;
-		}
-
-		//
-		// Rule 372:  cv_qualifier ::= const
-		//
-		case 372: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 373:  cv_qualifier ::= volatile
-		//
-		case 373: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 375:  declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name
-		//
-		case 375: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 376:  type_id ::= type_specifier_seq
-		//
-		case 376: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 377:  type_id ::= type_specifier_seq abstract_declarator
-		//
-		case 377: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 380:  abstract_declarator ::= <openscope-ast> ptr_operator_seq
-		//
-		case 380: {
-			action.consumeDeclaratorWithPointer(false);
-			break;
-		}
-
-		//
-		// Rule 381:  abstract_declarator ::= <openscope-ast> ptr_operator_seq direct_abstract_declarator
-		//
-		case 381: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 385:  basic_direct_abstract_declarator ::= ( abstract_declarator )
-		//
-		case 385: {
-			action.consumeDirectDeclaratorBracketed();
-			break;
-		}
-
-		//
-		// Rule 386:  basic_direct_abstract_declarator ::= ( )
-		//
-		case 386: {
-			action.consumeAbstractDeclaratorEmpty();
-			break;
-		}
-
-		//
-		// Rule 387:  array_direct_abstract_declarator ::= array_modifier
-		//
-		case 387: {
-			action.consumeDirectDeclaratorArrayDeclarator(false);
-			break;
-		}
-
-		//
-		// Rule 388:  array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
-		//
-		case 388: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 389:  array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
-		//
-		case 389: {
-			action.consumeDirectDeclaratorArrayDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 390:  function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
-		//
-		case 390: {
-			action.consumeDirectDeclaratorFunctionDeclarator(true);
-			break;
-		}
-
-		//
-		// Rule 391:  function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
-		//
-		case 391: {
-			action.consumeDirectDeclaratorFunctionDeclarator(false);
-			break;
-		}
-
-		//
-		// Rule 392:  parameter_declaration_clause ::= parameter_declaration_list_opt ...
-		//
-		case 392: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 393:  parameter_declaration_clause ::= parameter_declaration_list_opt
-		//
-		case 393: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 394:  parameter_declaration_clause ::= parameter_declaration_list , ...
-		//
-		case 394: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 400:  abstract_declarator_opt ::= $Empty
-		//
-		case 400: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 401:  parameter_declaration ::= declaration_specifiers parameter_init_declarator
-		//
-		case 401: {
-			action.consumeParameterDeclaration();
-			break;
-		}
-
-		//
-		// Rule 402:  parameter_declaration ::= declaration_specifiers
-		//
-		case 402: {
-			action.consumeParameterDeclarationWithoutDeclarator();
-			break;
-		}
-
-		//
-		// Rule 404:  parameter_init_declarator ::= declarator = parameter_initializer
-		//
-		case 404: {
-			action.consumeDeclaratorWithInitializer(true);
-			break;
-		}
-
-		//
-		// Rule 406:  parameter_init_declarator ::= abstract_declarator = parameter_initializer
-		//
-		case 406: {
-			action.consumeDeclaratorWithInitializer(true);
-			break;
-		}
-
-		//
-		// Rule 407:  parameter_init_declarator ::= = parameter_initializer
-		//
-		case 407: {
-			action.consumeDeclaratorWithInitializer(false);
-			break;
-		}
-
-		//
-		// Rule 408:  parameter_initializer ::= assignment_expression
-		//
-		case 408: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 409:  function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body
-		//
-		case 409: {
-			action.consumeFunctionDefinition(false);
-			break;
-		}
-
-		//
-		// Rule 410:  function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq
-		//
-		case 410: {
-			action.consumeFunctionDefinition(true);
-			break;
-		}
-
-		//
-		// Rule 413:  initializer ::= ( expression_list )
-		//
-		case 413: {
-			action.consumeInitializerConstructor();
-			break;
-		}
-
-		//
-		// Rule 414:  initializer_clause ::= assignment_expression
-		//
-		case 414: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 415:  initializer_clause ::= initializer_list
-		//
-		case 415: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 416:  initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq , } end_initializer_list
-		//
-		case 416: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 417:  initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq } end_initializer_list
-		//
-		case 417: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 418:  initializer_list ::= { <openscope-ast> }
-		//
-		case 418: {
-			action.consumeInitializerList();
-			break;
-		}
-
-		//
-		// Rule 419:  start_initializer_list ::= $Empty
-		//
-		case 419: {
-			action.initializerListStart();
-			break;
-		}
-
-		//
-		// Rule 420:  end_initializer_list ::= $Empty
-		//
-		case 420: {
-			action.initializerListEnd();
-			break;
-		}
-
-		//
-		// Rule 425:  class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt }
-		//
-		case 425: {
-			action.consumeClassSpecifier();
-			break;
-		}
-
-		//
-		// Rule 426:  class_head ::= class_keyword composite_specifier_hook identifier_name_opt class_name_suffix_hook <openscope-ast> base_clause_opt
-		//
-		case 426: {
-			action.consumeClassHead(false);
-			break;
-		}
-
-		//
-		// Rule 427:  class_head ::= class_keyword composite_specifier_hook template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt
-		//
-		case 427: {
-			action.consumeClassHead(false);
-			break;
-		}
-
-		//
-		// Rule 428:  class_head ::= class_keyword composite_specifier_hook nested_name_specifier identifier_name class_name_suffix_hook <openscope-ast> base_clause_opt
-		//
-		case 428: {
-			action.consumeClassHead(true);
-			break;
-		}
-
-		//
-		// Rule 429:  class_head ::= class_keyword composite_specifier_hook nested_name_specifier template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt
-		//
-		case 429: {
-			action.consumeClassHead(true);
-			break;
-		}
-
-		//
-		// Rule 433:  identifier_name_opt ::= $Empty
-		//
-		case 433: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 437:  visibility_label ::= access_specifier_keyword :
-		//
-		case 437: {
-			action.consumeVisibilityLabel();
-			break;
-		}
-
-		//
-		// Rule 438:  member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
-		//
-		case 438: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 439:  member_declaration ::= declaration_specifiers_opt ;
-		//
-		case 439: {
-			action.consumeDeclarationSimple(false);
-			break;
-		}
-
-		//
-		// Rule 442:  member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ;
-		//
-		case 442: {
-			action.consumeMemberDeclarationQualifiedId();
-			break;
-		}
-
-		//
-		// Rule 448:  member_declaration ::= ERROR_TOKEN
-		//
-		case 448: {
-			action.consumeDeclarationProblem();
-			break;
-		}
-
-		//
-		// Rule 457:  member_declarator ::= declarator constant_initializer
-		//
-		case 457: {
-			action.consumeMemberDeclaratorWithInitializer();
-			break;
-		}
-
-		//
-		// Rule 458:  member_declarator ::= bit_field_declarator : constant_expression
-		//
-		case 458: {
-			action.consumeBitField(true);
-			break;
-		}
-
-		//
-		// Rule 459:  member_declarator ::= : constant_expression
-		//
-		case 459: {
-			action.consumeBitField(false);
-			break;
-		}
-
-		//
-		// Rule 460:  bit_field_declarator ::= identifier_name
-		//
-		case 460: {
-			action.consumeDirectDeclaratorIdentifier();
-			break;
-		}
-
-		//
-		// Rule 461:  constant_initializer ::= = constant_expression
-		//
-		case 461: {
-			action.consumeInitializer();
-			break;
-		}
-
-		//
-		// Rule 467:  base_specifier ::= dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 467: {
-			action.consumeBaseSpecifier(false, false);
-			break;
-		}
-
-		//
-		// Rule 468:  base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 468: {
-			action.consumeBaseSpecifier(true, true);
-			break;
-		}
-
-		//
-		// Rule 469:  base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 469: {
-			action.consumeBaseSpecifier(true, true);
-			break;
-		}
-
-		//
-		// Rule 470:  base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 470: {
-			action.consumeBaseSpecifier(true, false);
-			break;
-		}
-
-		//
-		// Rule 471:  access_specifier_keyword ::= private
-		//
-		case 471: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 472:  access_specifier_keyword ::= protected
-		//
-		case 472: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 473:  access_specifier_keyword ::= public
-		//
-		case 473: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 475:  access_specifier_keyword_opt ::= $Empty
-		//
-		case 475: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 477:  conversion_function_id_name ::= conversion_function_id < <openscope-ast> template_argument_list_opt >
-		//
-		case 477: {
-			action.consumeTemplateId();
-			break;
-		}
-
-		//
-		// Rule 478:  conversion_function_id ::= operator conversion_type_id
-		//
-		case 478: {
-			action.consumeConversionName();
-			break;
-		}
-
-		//
-		// Rule 479:  conversion_type_id ::= type_specifier_seq conversion_declarator
-		//
-		case 479: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 480:  conversion_type_id ::= type_specifier_seq
-		//
-		case 480: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 481:  conversion_declarator ::= <openscope-ast> ptr_operator_seq
-		//
-		case 481: {
-			action.consumeDeclaratorWithPointer(false);
-			break;
-		}
-
-		//
-		// Rule 487:  mem_initializer ::= mem_initializer_name ( expression_list_opt )
-		//
-		case 487: {
-			action.consumeConstructorChainInitializer();
-			break;
-		}
-
-		//
-		// Rule 488:  mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name
-		//
-		case 488: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 491:  operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt >
-		//
-		case 491: {
-			action.consumeTemplateId();
-			break;
-		}
-
-		//
-		// Rule 492:  operator_id_name ::= operator overloadable_operator
-		//
-		case 492: {
-			action.consumeOperatorName();
-			break;
-		}
-
-		//
-		// Rule 535:  template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration
-		//
-		case 535: {
-			action.consumeTemplateDeclaration();
-			break;
-		}
-
-		//
-		// Rule 536:  export_opt ::= export
-		//
-		case 536: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 537:  export_opt ::= $Empty
-		//
-		case 537: {
-			action.consumeEmpty();
-			break;
-		}
-
-		//
-		// Rule 541:  template_parameter ::= parameter_declaration
-		//
-		case 541: {
-			action.consumeTemplateParamterDeclaration();
-			break;
-		}
-
-		//
-		// Rule 542:  type_parameter ::= class identifier_name_opt
-		//
-		case 542: {
-			action.consumeSimpleTypeTemplateParameter(false);
-			break;
-		}
-
-		//
-		// Rule 543:  type_parameter ::= class identifier_name_opt = type_id
-		//
-		case 543: {
-			action.consumeSimpleTypeTemplateParameter(true);
-			break;
-		}
-
-		//
-		// Rule 544:  type_parameter ::= typename identifier_name_opt
-		//
-		case 544: {
-			action.consumeSimpleTypeTemplateParameter(false);
-			break;
-		}
-
-		//
-		// Rule 545:  type_parameter ::= typename identifier_name_opt = type_id
-		//
-		case 545: {
-			action.consumeSimpleTypeTemplateParameter(true);
-			break;
-		}
-
-		//
-		// Rule 546:  type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt
-		//
-		case 546: {
-			action.consumeTemplatedTypeTemplateParameter(false);
-			break;
-		}
-
-		//
-		// Rule 547:  type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression
-		//
-		case 547: {
-			action.consumeTemplatedTypeTemplateParameter(true);
-			break;
-		}
-
-		//
-		// Rule 548:  template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt >
-		//
-		case 548: {
-			action.consumeTemplateId();
-			break;
-		}
-
-		//
-		// Rule 555:  nested_name_specifier_inTemplate ::= class_or_namespace_name_inTemplate :: nested_name_specifier_with_template_inTemplate
-		//
-		case 555: {
-			action.consumeNestedNameSpecifier(true);
-			break;
-		}
-
-		//
-		// Rule 556:  nested_name_specifier_inTemplate ::= class_or_namespace_name_inTemplate ::
-		//
-		case 556: {
-			action.consumeNestedNameSpecifier(false);
-			break;
-		}
-
-		//
-		// Rule 557:  nested_name_specifier_with_template_inTemplate ::= class_or_namespace_name_with_template_inTemplate :: nested_name_specifier_with_template_inTemplate
-		//
-		case 557: {
-			action.consumeNestedNameSpecifier(true);
-			break;
-		}
-
-		//
-		// Rule 558:  nested_name_specifier_with_template_inTemplate ::= class_or_namespace_name_with_template_inTemplate ::
-		//
-		case 558: {
-			action.consumeNestedNameSpecifier(false);
-			break;
-		}
-
-		//
-		// Rule 559:  class_or_namespace_name_with_template_inTemplate ::= template_opt class_or_namespace_name_inTemplate
-		//
-		case 559: {
-			action.consumeNameWithTemplateKeyword();
-			break;
-		}
-
-		//
-		// Rule 561:  nested_name_specifier_opt_inTemplate ::= $Empty
-		//
-		case 561: {
-			action.consumeNestedNameSpecifierEmpty();
-			break;
-		}
-
-		//
-		// Rule 564:  type_name_specifier_inTemplate ::= typename dcolon_opt nested_name_specifier identifier_name
-		//
-		case 564: {
-			action.consumeQualifiedId(false);
-			break;
-		}
-
-		//
-		// Rule 565:  type_name_specifier_inTemplate ::= typename dcolon_opt nested_name_specifier template_opt template_id_name
-		//
-		case 565: {
-			action.consumeQualifiedId(true);
-			break;
-		}
-
-		//
-		// Rule 570:  declaration_specifiers_inTemplate ::= <openscope-ast> simple_declaration_specifiers
-		//
-		case 570: {
-			action.consumeDeclarationSpecifiersSimple();
-			break;
-		}
-
-		//
-		// Rule 571:  declaration_specifiers_inTemplate ::= <openscope-ast> class_declaration_specifiers
-		//
-		case 571: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 572:  declaration_specifiers_inTemplate ::= <openscope-ast> elaborated_declaration_specifiers
-		//
-		case 572: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 573:  declaration_specifiers_inTemplate ::= <openscope-ast> enum_declaration_specifiers
-		//
-		case 573: {
-			action.consumeDeclarationSpecifiersComposite();
-			break;
-		}
-
-		//
-		// Rule 574:  declaration_specifiers_inTemplate ::= <openscope-ast> type_name_declaration_specifiers_inTemplate
-		//
-		case 574: {
-			action.consumeDeclarationSpecifiersTypeName();
-			break;
-		}
-
-		//
-		// Rule 576:  type_id_inTemplate ::= type_specifier_seq_inTemplate
-		//
-		case 576: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 577:  type_id_inTemplate ::= type_specifier_seq_inTemplate abstract_declarator
-		//
-		case 577: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 578:  template_argument ::= assignment_expression_inTemplate
-		//
-		case 578: {
-			action.consumeTemplateArgumentExpression();
-			break;
-		}
-
-		//
-		// Rule 579:  template_argument ::= type_id_inTemplate
-		//
-		case 579: {
-			action.consumeTemplateArgumentTypeId();
-			break;
-		}
-
-		//
-		// Rule 580:  explicit_instantiation ::= template declaration
-		//
-		case 580: {
-			action.consumeTemplateExplicitInstantiation();
-			break;
-		}
-
-		//
-		// Rule 581:  explicit_specialization ::= template < > declaration
-		//
-		case 581: {
-			action.consumeTemplateExplicitSpecialization();
-			break;
-		}
-
-		//
-		// Rule 582:  try_block ::= try compound_statement <openscope-ast> handler_seq
-		//
-		case 582: {
-			action.consumeStatementTryBlock(true);
-			break;
-		}
-
-		//
-		// Rule 583:  try_block ::= try compound_statement
-		//
-		case 583: {
-			action.consumeStatementTryBlock(false);
-			break;
-		}
-
-		//
-		// Rule 586:  handler ::= catch ( exception_declaration ) compound_statement
-		//
-		case 586: {
-			action.consumeStatementCatchHandler(false);
-			break;
-		}
-
-		//
-		// Rule 587:  handler ::= catch ( ... ) compound_statement
-		//
-		case 587: {
-			action.consumeStatementCatchHandler(true);
-			break;
-		}
-
-		//
-		// Rule 588:  exception_declaration ::= type_specifier_seq <openscope-ast> declarator
-		//
-		case 588: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 589:  exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
-		//
-		case 589: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 590:  exception_declaration ::= type_specifier_seq
-		//
-		case 590: {
-			action.consumeDeclarationSimple(false);
-			break;
-		}
-
-		//
-		// Rule 592:  exception_specification ::= throw ( )
-		//
-		case 592: {
-			action.consumePlaceHolder();
-			break;
-		}
-
-		//
-		// Rule 613:  attribute_parameter ::= assignment_expression
-		//
-		case 613: {
-			action.consumeIgnore();
-			break;
-		}
-
-		//
-		// Rule 624:  extended_asm_declaration ::= asm volatile_opt ( extended_asm_param_seq ) ;
-		//
-		case 624: {
-			gnuAction.consumeDeclarationASM();
-			break;
-		}
-
-		//
-		// Rule 635:  unary_expression ::= __alignof__ unary_expression
-		//
-		case 635: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_alignOf);
-			break;
-		}
-
-		//
-		// Rule 636:  unary_expression ::= __alignof__ ( type_id )
-		//
-		case 636: {
-			action.consumeExpressionTypeId(IASTTypeIdExpression.op_alignof);
-			break;
-		}
-
-		//
-		// Rule 637:  unary_expression ::= typeof unary_expression
-		//
-		case 637: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof);
-			break;
-		}
-
-		//
-		// Rule 638:  unary_expression ::= typeof ( type_id )
-		//
-		case 638: {
-			action.consumeExpressionTypeId(IASTTypeIdExpression.op_typeof);
-			break;
-		}
-
-		//
-		// Rule 639:  relational_expression ::= relational_expression >? shift_expression
-		//
-		case 639: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_max);
-			break;
-		}
-
-		//
-		// Rule 640:  relational_expression ::= relational_expression <? shift_expression
-		//
-		case 640: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_min);
-			break;
-		}
-
-		//
-		// Rule 641:  conditional_expression ::= logical_or_expression ? <empty> : assignment_expression
-		//
-		case 641: {
-			action.consumeExpressionConditional();
-			break;
-		}
-
-		//
-		// Rule 642:  primary_expression ::= ( compound_statement )
-		//
-		case 642: {
-			gnuAction.consumeCompoundStatementExpression();
-			break;
-		}
-
-		//
-		// Rule 643:  labeled_statement ::= case case_range_expression : statement
-		//
-		case 643: {
-			action.consumeStatementCase();
-			break;
-		}
-
-		//
-		// Rule 644:  case_range_expression ::= constant_expression ... constant_expression
-		//
-		case 644: {
-			action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign);
-			break;
-		}
-
-		//
-		// Rule 648:  typeof_type_specifier ::= typeof unary_expression
-		//
-		case 648: {
-			action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof);
-			break;
-		}
-
-		//
-		// Rule 649:  typeof_type_specifier ::= typeof ( type_id )
-		//
-		case 649: {
-			action.consumeExpressionTypeId(IASTTypeIdExpression.op_typeof);
-			break;
-		}
-
-		//
-		// Rule 650:  declaration_specifiers ::= <openscope-ast> typeof_declaration_specifiers
-		//
-		case 650: {
-			action.consumeDeclarationSpecifiersTypeof();
-			break;
-		}
-
-		//
-		// Rule 663:  declarator ::= <openscope-ast> ptr_operator_seq attribute_or_decl_specifier_seq direct_declarator
-		//
-		case 663: {
-			action.consumeDeclaratorWithPointer(true);
-			break;
-		}
-
-		//
-		// Rule 666:  simple_type_specifier ::= _Complex
-		//
-		case 666: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 667:  simple_type_specifier ::= _Imaginary
-		//
-		case 667: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 668:  cv_qualifier ::= restrict
-		//
-		case 668: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 669:  explicit_instantiation ::= extern template declaration
-		//
-		case 669: {
-			action.consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_extern);
-			break;
-		}
-
-		//
-		// Rule 670:  explicit_instantiation ::= static template declaration
-		//
-		case 670: {
-			action.consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_static);
-			break;
-		}
-
-		//
-		// Rule 671:  explicit_instantiation ::= inline template declaration
-		//
-		case 671: {
-			action.consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_inline);
-			break;
-		}
-
-		//
-		// Rule 672:  postfix_expression ::= ( type_id ) initializer_list
-		//
-		case 672: {
-			action.consumeExpressionTypeIdInitializer();
-			break;
-		}
-
-		//
-		// Rule 676:  type_id ::= vector_type
-		//
-		case 676: {
-			action.consumeTypeId(false);
-			break;
-		}
-
-		//
-		// Rule 677:  type_id ::= vector_type abstract_declarator
-		//
-		case 677: {
-			action.consumeTypeId(true);
-			break;
-		}
-
-		//
-		// Rule 678:  vector_declaration ::= vector_type <openscope-ast> init_declarator_list ;
-		//
-		case 678: {
-			action.consumeDeclarationSimple(true);
-			break;
-		}
-
-		//
-		// Rule 679:  vector_type ::= <openscope-ast> no_type_declaration_specifiers_opt vector vector_type_specifier all_specifier_qualifier_list_opt
-		//
-		case 679: {
-			action.consumeVectorTypeSpecifier();
-			break;
-		}
-
-		//
-		// Rule 680:  vector_type_specifier ::= vector_type_specifier_token
-		//
-		case 680: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 703:  specifier_qualifier ::= typedef
-		//
-		case 703: {
-			action.consumeToken();
-			break;
-		}
-
-		//
-		// Rule 704:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ]
-		//
-		case 704: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false);
-			break;
-		}
-
-		//
-		// Rule 705:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
-		//
-		case 705: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 706:  array_modifier ::= [ static assignment_expression ]
-		//
-		case 706: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true);
-			break;
-		}
-
-		//
-		// Rule 707:  array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
-		//
-		case 707: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 708:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ]
-		//
-		case 708: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true);
-			break;
-		}
-
-		//
-		// Rule 709:  array_modifier ::= [ * ]
-		//
-		case 709: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false);
-			break;
-		}
-
-		//
-		// Rule 710:  array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ]
-		//
-		case 710: {
-			action.consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false);
-			break;
-		}
-
-		//
-		// Rule 715:  static_assert_declaration ::= __static_assert ( expression , literal ) ;
-		//
-		case 715: {
-			action.consumeCPPASTStaticAssertDeclaration();
-			break;
-		}
-
-		default:
-			break;
-		}
-		return;
-	}
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/cpp/XlcCPPParserprs.java b/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/cpp/XlcCPPParserprs.java
deleted file mode 100644
index 7ad453a..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/cpp/XlcCPPParserprs.java
+++ /dev/null
@@ -1,2110 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2010 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.lrparser.xlc.cpp;
-
-public class XlcCPPParserprs implements lpg.lpgjavaruntime.ParseTable, XlcCPPParsersym {
-
-	public interface IsKeyword {
-		public final static byte isKeyword[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static byte isKeyword[] = IsKeyword.isKeyword;
-
-	public final boolean isKeyword(int index) {
-		return isKeyword[index] != 0;
-	}
-
-	public interface BaseCheck0 {
-		public final static short baseCheck0[] = { 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 0, 1, 0, 4, 2, 3, 2, 3, 2, 2, 1, 0, 1, 1, 4, 4, 4, 8, 8, 3, 3,
-				4, 4, 3, 3, 2, 2, 7, 7, 7, 7, 4, 4, 5, 6, 3, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 7, 9, 3, 0, 1,
-				2, 2, 1, 2, 3, 4, 1, 0, 3, 1, 0, 3, 5, 1, 4, 1, 3, 3, 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 3, 3, 3, 3, 1, 3,
-				3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 1, 3, 5, 3, 3, 1, 3, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 1, 1,
-				3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 2, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 2, 1, 3, 1, 0, 1, 0, 1,
-				1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 4, 3, 2, 1, 4, 2, 1, 2, 5, 7, 5, 1, 4, 1, 0, 5, 7, 2, 8, 1, 1, 2, 2,
-				3, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 0, 4, 4, 2, 2, 2, 2, 2, 1, 0, 1, 1, 1, 1,
-				1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 3, 4, 4, 5, 2, 5, 6, 5, 0, 1, 0, 7, 8, 0, 1, 3, 1, 0, 1, 3, 1, 7, 6, 0, 7, 6, 1, 0,
-				6, 6, 4, 1, 3, 1, 0, 1, 1, 2, 1, 1, 3, 1, 3, 1, 1, 1, 1, 3, 9, 2, 2, 3, 2, 5, 3, 7, 0, 1, 2, 2, 1, 0, 1,
-				1, 1, 3, 1, 2, 1, 1, 2, 3, 1, 1, 1, 3, 2, 1, 2, 2, 9, 8, 2, 1, 3, 1, 3, 1, 0, 1, 0, 2, 1, 1, 3, 1, 3, 2,
-				1, 5, 8, 1, 2, 3, 1, 1, 7, 6, 3, 0, 0, 1, 3, 1, 1, 5, 6, 6, 7, 7, 0, 0, 1, 0, 1, 1, 1, 2, 4, 2, 2, 1, 5,
-				1, 1, 1, 1, 1, 1, 1, 2, 1, 0, 1, 3, 1, 1, 2, 3, 2, 1, 2, 2, 1, 0, 1, 3, 3, 5, 5, 4, 1, 1, 1, 1, 0, 1, 5,
-				2, 2, 1, 2, 2, 1, 0, 1, 3, 4, 3, 1, 1, 5, 2, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 7, 1, 0, 1, 3, 1, 1, 2, 4, 2, 4, 7, 9,
-				5, 1, 3, 1, 0, 1, 1, 3, 2, 3, 2, 2, 1, 0, 1, 1, 4, 5, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 4, 4,
-				2, 1, 2, 5, 5, 3, 3, 1, 4, 3, 1, 0, 1, 3, 1, 1, 1, 1, 2, 6, 3, 1, 3, 1, 4, 0, 1, 1, 1, 3, 1, 0, 4, 3, 1,
-				2, 1, 3, 4, 4, 4, 6, 1, 0, 1, 3, 1, 3, 0, 1, 4, 5, 2, 4, 2, 4, 3, 3, 5, 3, 4, 3, 1, 2, 2, 2, 4, 2, 1, 1,
-				2, 2, 3, 2, 2, 3, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 3, 3, 3, 4, 1, 1, 1, 1, 2, 4, 5, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 2, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 4, 5, 4, 6, 6, 3, 5, 1, 1, 2, 1, 7, -199, 0, 0, 0, 0,
-				-5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6, -139, 0, 0, -2, 0, 0,
-				0, 0, -73, -3, 0, -4, 0, 0, 0, 0, 0, 0, 0, -207, 0, 0, 0, 0, -420, 0, 0, 0, 0, 0, 0, 0, -64, -265, -16,
-				0, 0, 0, 0, 0, -266, 0, 0, 0, 0, -123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-9, 0, 0, -47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -10, -18, 0, 0, -111, 0, 0, -81, 0, 0, 0,
-				0, 0, 0, -43, 0, 0, 0, 0, -416, 0, 0, 0, 0, 0, -42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -11, 0, 0,
-				-13, -627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-329, 0, 0, -58, 0, 0, 0, 0, -170, -20, 0, -190, 0, 0, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, -306, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -221, 0, 0, 0, 0, 0, 0, 0, 0, -182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -499, 0, 0, 0, 0, 0, -28, 0, 0, 0, 0, -69, -19, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -174, 0, 0, 0, -217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -435, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -35,
-				0, 0, 0, 0, -474, 0, 0, 0, 0, 0, -183, 0, 0, -21, 0, -79, -185, -66, 0, 0, 0, 0, 0, 0, 0, 0, -155, 0, 0,
-				0, 0, 0, 0, -169, -218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-436, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -338, 0, 0, 0, 0,
-				-23, -67, 0, 0, 0, 0, -573, 0, 0, 0, 0, -369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -206, 0, 0, 0, 0, 0, -130,
-				-24, -453, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -240, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -493, 0, 0, 0, -163, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -429, 0, 0, 0, 0, 0, 0, -222, 0, 0, 0, -618, 0, 0, 0, -519, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -40, 0, 0, 0, -407, 0, 0, 0, -191, 0, 0, 0, 0, 0,
-				0, 0, -82, -25, 0, 0, 0, 0, 0, -208, 0, 0, 0, 0, -652, 0, 0, 0, 0, 0, 0, 0, 0, -540, 0, 0, 0, 0, 0,
-				-223, 0, 0, 0, 0, -681, 0, 0, 0, 0, 0, -653, 0, 0, 0, 0, -412, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -303, 0, 0, 0, 0, 0, 0, 0, -77, 0, 0, 0, 0, 0, 0, 0, -693, -26, 0, 0, 0, 0, 0,
-				-156, 0, 0, 0, 0, -585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -274, 0, -184, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -273, 0, 0, 0, 0, 0, 0, -84, -526, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -34, -409, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -680, 0, 0,
-				0, 0, 0, 0, 0, -63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -62, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -44, -536, -537, 0, 0, 0, 0, 0, -196, 0, 0, 0, 0, 0,
-				-283, 0, 0, -57, 0, 0, -611, 0, 0, -160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -305, 0, 0, -660, 0, 0, 0, 0, 0, 0, 0, 0, 0, -107, -45, 0, 0, 0, 0, 0, -272, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -614, 0, 0, -80, -137, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -48, 0, 0, 0, -209, -688, 0, -50, -326, 0, -320, 0, 0, 0, 0, 0, 0, 0, 0, -280, 0, 0,
-				-51, -417, 0, -718, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -74, 0, 0, 0, -633, -403, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -54,
-				0, 0, -475, -404, 0, 0, 0, 0, 0, -504, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -401, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -210, 0, 0, 0, 0, 0, 0, -590, 0, 0, 0, 0,
-				-59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -121, 0, -61, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -610, 0, 0, 0, 0, 0, 0, -591, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -118, -83, -418, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -112, 0, 0, -76, -534, 0, 0, -289,
-				-212, 0, -179, -86, 0, 0, 0, 0, 0, 0, 0, 0, -600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -110, 0, 0, -535, 0, 0, 0, 0, 0, 0, 0, 0, 0, -658, -371, 0, -451, 0, 0, 0, 0, 0,
-				0, -152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -87, 0, -88,
-				-119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -269, 0, 0, -102, 0, 0, -103, 0, 0, -231, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -492, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -647, -354,
-				0, -576, -104, 0, 0, 0, 0, 0, -254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -105, 0, -56, -485, 0, 0, -353, 0, 0, 0, -124,
-				-255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -574, 0, 0, 0, 0, 0,
-				0, 0, -131, 0, 0, 0, 0, 0, -372, 0, -577, -295, 0, 0, -106, 0, 0, -256, 0, 0, 0, 0, -454, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -108, 0,
-				-578, 0, 0, 0, -165, 0, 0, -257, 0, 0, 0, 0, -109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -461, 0, 0, 0, -113, 0, 0, 0, -399, 0, 0, 0, 0, 0, -117, 0, -278, -125, 0, 0, 0, 0, 0, -258, 0,
-				0, 0, 0, -502, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -584, 0, 0, 0, -126, -333,
-				0, 0, -132, 0, 0, 0, 0, 0, 0, 0, -579, -127, 0, 0, -172, 0, 0, -259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -708, 0, 0, 0, 0, 0, 0, 0, -644, 0, 0, 0, 0, 0, 0, 0, -620,
-				-128, 0, 0, -193, 0, 0, -260, 0, 0, 0, 0, -588, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -515, 0, -279, -656, 0, 0, -347, 0, 0, -261, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -636, 0, 0, 0, -478, 0, 0, 0, -679,
-				0, 0, 0, 0, -211, 0, 0, -136, 0, 0, 0, -140, 0, 0, -262, 0, 0, 0, 0, -142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -661, 0, 0, 0, 0, 0, 0, 0, -143, 0, 0, 0, 0, 0, 0, 0, -281, 0, 0, 0, 0,
-				0, 0, -263, 0, 0, 0, 0, -144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -370, 0,
-				0, -145, -146, 0, 0, -180, 0, 0, 0, 0, 0, 0, 0, -328, -530, 0, 0, -147, 0, 0, -264, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -228, 0, -716, -419, 0, 0, 0, 0, -148, 0, 0, 0,
-				0, 0, -291, 0, -268, 0, 0, 0, -479, 0, 0, -310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -702, 0, 0, 0, 0, -374, 0, 0, 0, -334, 0, 0, 0, 0, 0, -349, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -149, 0, 0, 0, 0, -351, 0, 0, 0, 0, -538, 0, 0, 0, 0, 0, 0, 0, 0, -683, -440, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -194, -441, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -150, 0, -151, 0, 0, -175, 0, -129, 0, 0, 0, 0, -300, 0,
-				-195, 0, -375, 0, -230, 0, 0, 0, -302, -232, 0, -153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -166, -197, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -167, 0, 0, 0, 0, 0, -442, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -267, -443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -171, -304, 0, 0, -589, 0, 0, -286, -322, 0, 0, 0, -288, -323, 0, -177, -359,
-				-324, 0, 0, 0, 0, 0, 0, -192, 0, -400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -659, -198, 0, -276, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -555, 0, 0, 0, 0, 0, 0, 0, -444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -325, -445, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -341, -282, -467, 0, 0, -710, 0, -685, 0, 0, 0, -703, 0, 0, 0, 0, -287, 0, 0, 0, 0, 0, -414, -496, 0,
-				-292, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -415, -476, -309, -460, -294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-307, 0, 0, 0, 0, 0, -446, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -447, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -342, 0, 0, 0, 0,
-				-711, 0, -704, 0, 0, 0, -483, -176, -348, -311, 0, 0, -497, -352, 0, 0, 0, 0, -312, 0, -313, 0, -314, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -315, -316, 0, 0, 0, 0, 0, -317, 0, 0, 0, 0, 0, 0, 0, 0, -597, 0, 0, 0, 0, 0,
-				-448, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -363, -449, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -318, -649, -319, 0, 0, -30, 0,
-				-662, -613, -321, -335, -336, -14, 0, 0, 0, -477, -503, -406, 0, -512, 0, 0, -337, 0, 0, 0, -343, 0, 0,
-				0, 0, 0, 0, 0, 0, -402, -522, -516, 0, 0, 0, 0, 0, 0, 0, -344, 0, 0, 0, 0, 0, 0, -345, 0, 0, 0, 0, 0,
-				-450, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -253, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -570, -346, 0, 0, 0, 0, 0, -355, 0,
-				0, 0, 0, 0, 0, 0, -357, -587, -617, 0, -358, 0, 0, 0, 0, -455, 0, -408, 0, 0, 0, -465, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -360, 0, 0, -495, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -361, 0, 0, 0, 0, 0, -517, 0, 0, 0, 0, -364, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -158, -410, -366, -367, -368, 0, 0, -598, 0, 0, 0, 0, -377, 0, 0, -527, -567, 0, 0, -378, -379,
-				0, -78, 0, 0, 0, -568, 0, 0, 0, 0, 0, 0, 0, -518, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -380, 0, 0, 0, -381, 0, 0, 0, -382, 0, 0, 0, 0, 0, -383, 0, 0, 0, 0, 0, -411,
-				-384, 0, -520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -630, -385,
-				0, 0, -386, 0, 0, 0, -634, 0, 0, 0, 0, 0, -387, 0, -388, -601, 0, 0, -462, -481, 0, -524, -521, 0, 0, 0,
-				0, -389, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -390, 0, 0, -391, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -599, 0, 0, -650, -392, 0, 0, -393, 0, 0, -616, 0, 0, 0, 0, -394, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -525, -251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -395, -500, -396, 0, 0, -673, 0, 0, -675, 0, 0, 0, -669, 0, -694, 0, -397, 0, -696,
-				0, -700, 0, -398, 0, 0, 0, 0, -554, 0, 0, 0, -691, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -405, 0, 0, -709, 0, -707, 0, 0, 0, 0, 0, 0, 0, -421, -422, 0, -671, -456, 0, 0,
-				-571, 0, 0, -528, 0, 0, 0, 0, -665, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -430,
-				0, 0, 0, -464, -466, -468, 0, 0, 0, 0, 0, 0, 0, -469, 0, -575, 0, 0, 0, -539, 0, 0, 0, 0, -470, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -162, 0, -471, -510, -473, -486, 0, 0, 0, 0, 0, 0,
-				0, 0, -488, 0, -674, -489, 0, 0, -490, -457, -491, -36, 0, 0, 0, 0, 0, 0, 0, -586, 0, 0, 0, -603, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -505, -506, 0, 0, -513, 0,
-				-514, 0, 0, 0, 0, -529, -531, 0, 0, 0, 0, 0, -604, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -277, -543, -544, -545, -546, -547, 0, -548, 0, 0, 0, 0, -549, 0, 0, -550,
-				-551, 0, 0, -85, 0, 0, 0, 0, 0, -552, -553, 0, 0, 0, 0, -557, 0, 0, -623, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -559, -690, -560, -565, 0, -569, 0, 0, 0, 0, 0,
-				0, 0, -580, -581, 0, 0, -664, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -7, 0, 0, 0, 0, -301, -615, 0, -582, 0, 0, 0, 0, 0, 0, 0, -608, -609, 0, 0, -619, -213, 0, 0, -631,
-				0, -645, 0, 0, 0, 0, -646, 0, 0, 0, 0, -648, -651, 0, 0, 0, -625, -667, -628, 0, -38, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -498, 0, 0, 0, 0, 0, -676, -682, -684, -692, -701,
-				-214, -235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -637,
-				-714, 0, 0, 0, 0, 0, 0, 0, 0, 0, -632, 0, 0, -635, -638, 0, 0, 0, 0, 0, -293, 0, 0, 0, 0, -72, -639,
-				-41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-640, 0, -75, 0, -641, -241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -677, 0, 0, -678, -452, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -605, 0, 0, 0, 0, -689, -122, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -642, 0, 0, 0, 0, 0, 0, 0, 0, -695, -698, 0, 0, 0, 0, 0, -655, 0, 0, 0, 0, 0, 0, 0, 0,
-				-27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -699, -706, -717, 0, -697, 0, 0, 0,
-				0, -556, 0, 0, 0, 0, -413, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -509, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -439, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -437, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -65, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -298, -330, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -643, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -438, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -463, 0, 0,
-				0, 0, 0, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -327, 0, 0, 0, 0, 0, 0, 0, 0, -219, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -225, 0, 0, 0, 0, 0, -29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -593, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -224, 0, 0, 0, 0, 0, 0, -99, 0, 0, 0, 0, 0, 0, 0, 0, -670,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -297, 0,
-				0, 0, 0, 0, -215, -594, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -216, 0, 0, 0, 0, 0, 0, -17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -663, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -434, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -472, -159, 0, 0, 0, 0, -237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, -558, -205, 0, 0, 0, 0, 0, 0, 0, -270, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -271, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -561, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -622, -49, 0, 0, 0, 0, 0, -626, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -624, -70, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -71, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -666, -116, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -629, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -178,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-668, -181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -672, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -705, -339, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -350, 0, 0, 0, 0, 0, 0, 0, 0, 0, -501, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -715, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -22, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -154, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -242, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -308, 0, 0,
-				0, 0, 0, 0, 0, 0, -290, 0, 0, 0, 0, 0, 0, -101, 0, 0, 0, 0, 0, -484, 0, 0, 0, 0, 0, 0, 0, 0, -533, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -572, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -602, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-607, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -423, 0, 0, 0, 0, 0, 0, 0,
-				-31, 0, 0, 0, 0, 0, 0, -494, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-365, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -532, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -431, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -433, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -507, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -356, 0, 0, 0, 0, 0, 0, -612, 0, 0, 0, 0, 0, 0, -542, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -299, 0, 0, 0, -541, 0, 0, 0, 0, 0, 0, -1, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -89, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -247, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -376, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -712, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -39, 0, 0, 0, 0, 0,
-				-202, 0, 0, 0, 0, 0, -621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -33, 0, 0, 0, 0, 0, 0, -141, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -606, 0, 0, 0, 0, 0, 0, 0, 0, -114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, -657, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -157, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -220, 0, 0, 0, 0, 0, 0, -186, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -428, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -227, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -654, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -115, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -373, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -713, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -90, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -238, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -239, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -275, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -523, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -12, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, -686, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -285, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, -687, 0, 0, 0, -37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -203, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -53, 0, -204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -284, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				-94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -95, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, -97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -98, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, -133, 0, 0, 0, 0, 0, -424, 0, 0, 0, 0, 0, 0, 0, 0, -459, 0, -134, 0, -595, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -189, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, -234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -458, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -511, 0, 0, 0, 0, 0, -340, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public interface BaseCheck1 {
-		public final static short baseCheck1[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, -296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -482, 0, 0, 0, 0, 0, -592, 0, -596, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -168, 0, 0, 0, 0, 0, 0, 0, -425, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -719, 0, 0, 0, 0, 0, -331, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -562, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, -508, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -427, 0, 0, 0, 0, 0, 0, -564, 0, -563, 0, 0, 0, 0,
-				0, 0, -566, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static short baseCheck[] = new short[BaseCheck0.baseCheck0.length + BaseCheck1.baseCheck1.length];
-	{
-		int index = 0;
-		System.arraycopy(BaseCheck0.baseCheck0, 0, baseCheck, index, BaseCheck0.baseCheck0.length);
-		index += BaseCheck0.baseCheck0.length;
-		System.arraycopy(BaseCheck1.baseCheck1, 0, baseCheck, index, BaseCheck1.baseCheck1.length);
-	}
-
-	@Override
-	public final int baseCheck(int index) {
-		return baseCheck[index];
-	}
-
-	public final static short rhs[] = baseCheck;
-
-	@Override
-	public final int rhs(int index) {
-		return rhs[index];
-	}
-
-	public interface BaseAction0 {
-		public final static char baseAction0[] = { 214, 5, 158, 82, 82, 32, 32, 106, 106, 48, 48, 41, 41, 214, 1, 1, 15,
-				15, 15, 15, 15, 15, 15, 17, 17, 17, 16, 11, 11, 6, 6, 6, 6, 6, 6, 2, 93, 93, 4, 4, 12, 12, 56, 56, 175,
-				175, 176, 86, 86, 55, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
-				177, 177, 177, 159, 159, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 215, 215, 216, 216,
-				217, 180, 180, 181, 181, 178, 178, 182, 179, 179, 21, 21, 22, 22, 23, 23, 23, 24, 24, 24, 24, 25, 25,
-				25, 26, 26, 26, 34, 34, 34, 34, 34, 36, 36, 36, 37, 37, 38, 38, 39, 39, 42, 42, 45, 45, 46, 46, 58, 58,
-				58, 58, 58, 70, 70, 70, 74, 74, 76, 76, 79, 79, 81, 81, 83, 83, 84, 84, 85, 85, 85, 85, 85, 85, 85, 85,
-				85, 85, 85, 85, 85, 33, 33, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 47, 35, 160, 160, 124,
-				124, 218, 218, 114, 249, 249, 96, 96, 96, 96, 96, 96, 96, 96, 96, 97, 97, 97, 94, 94, 59, 59, 219, 219,
-				98, 98, 98, 135, 135, 220, 220, 99, 99, 99, 99, 221, 221, 100, 100, 100, 100, 100, 101, 101, 103, 103,
-				103, 103, 103, 103, 103, 103, 60, 60, 60, 60, 60, 136, 136, 134, 134, 61, 222, 31, 31, 31, 31, 31, 53,
-				53, 67, 67, 67, 67, 67, 122, 122, 129, 129, 129, 129, 129, 130, 130, 130, 131, 131, 131, 132, 132, 132,
-				137, 137, 137, 68, 68, 68, 68, 68, 69, 69, 69, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 107, 125,
-				125, 125, 125, 125, 125, 116, 116, 116, 184, 185, 185, 117, 117, 223, 187, 187, 186, 186, 161, 161, 138,
-				91, 91, 162, 63, 52, 188, 188, 64, 105, 105, 163, 163, 183, 183, 139, 140, 140, 141, 88, 88, 189, 189,
-				77, 77, 77, 72, 72, 71, 78, 78, 95, 95, 87, 87, 87, 75, 119, 119, 127, 126, 126, 50, 50, 73, 73, 80, 80,
-				57, 123, 123, 123, 108, 108, 108, 109, 109, 110, 110, 110, 111, 111, 142, 142, 142, 144, 144, 143, 143,
-				250, 250, 120, 120, 225, 225, 225, 225, 225, 165, 51, 51, 191, 224, 224, 166, 166, 112, 112, 112, 113,
-				193, 226, 226, 44, 44, 115, 121, 121, 121, 121, 228, 146, 145, 145, 118, 118, 118, 194, 195, 195, 195,
-				195, 195, 195, 195, 195, 195, 195, 195, 230, 230, 227, 227, 229, 229, 148, 149, 149, 149, 149, 150, 231,
-				151, 147, 147, 232, 232, 196, 196, 196, 196, 133, 133, 133, 233, 233, 8, 8, 9, 234, 234, 235, 197, 190,
-				190, 198, 198, 199, 200, 200, 7, 7, 10, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236,
-				236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236,
-				236, 236, 236, 236, 236, 236, 236, 236, 89, 92, 92, 201, 201, 168, 168, 169, 169, 169, 169, 169, 169, 3,
-				170, 170, 167, 167, 202, 251, 252, 252, 253, 253, 254, 255, 255, 203, 204, 204, 204, 204, 237, 237, 237,
-				153, 153, 153, 153, 153, 154, 155, 155, 152, 152, 104, 90, 102, 102, 192, 192, 156, 156, 238, 238, 238,
-				171, 171, 164, 164, 239, 239, 27, 27, 27, 43, 43, 28, 28, 240, 240, 205, 205, 205, 206, 206, 241, 241,
-				207, 207, 29, 29, 242, 242, 208, 208, 208, 208, 30, 65, 243, 243, 244, 244, 209, 209, 209, 172, 172,
-				172, 19, 19, 19, 19, 34, 34, 46, 17, 97, 245, 157, 157, 157, 128, 128, 31, 62, 67, 141, 141, 141, 148,
-				148, 148, 223, 228, 146, 75, 88, 184, 162, 13, 13, 50, 104, 104, 104, 18, 14, 14, 14, 80, 80, 66, 40,
-				173, 174, 174, 174, 174, 174, 174, 174, 174, 174, 211, 211, 247, 247, 246, 246, 210, 210, 50, 60, 60, 1,
-				1, 256, 95, 95, 95, 95, 95, 95, 95, 212, 213, 213, 195, 54, 1834, 35, 3267, 3255, 5724, 2223, 27, 30,
-				31, 1654, 1590, 26, 28, 3254, 296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563, 2543, 2590, 652, 597,
-				598, 599, 2070, 1533, 177, 2589, 1620, 2643, 2605, 2788, 2713, 6304, 419, 2790, 77, 308, 2813, 176,
-				2806, 4961, 191, 266, 2505, 35, 1703, 32, 5759, 4085, 27, 30, 31, 1654, 1590, 57, 28, 1976, 1143, 77,
-				269, 264, 265, 1563, 1563, 5086, 35, 1703, 32, 4863, 2584, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296,
-				23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563, 2543, 2590, 1907, 189, 189, 2055, 2402, 2352, 34, 2589,
-				309, 2643, 2605, 2788, 2713, 3720, 1878, 3726, 276, 279, 282, 3249, 2298, 520, 992, 6745, 939, 5436,
-				285, 5627, 1946, 645, 5837, 4375, 4784, 6180, 1630, 35, 1703, 32, 6769, 3083, 41, 30, 31, 1654, 1590,
-				3859, 35, 1703, 32, 5364, 4563, 27, 30, 31, 1654, 1590, 374, 28, 7538, 2437, 534, 2505, 4859, 1909, 35,
-				3267, 3255, 5724, 2593, 27, 30, 31, 1654, 1590, 26, 28, 3254, 296, 23, 25, 50, 2263, 106, 76, 77, 108,
-				2513, 2563, 2543, 2590, 652, 597, 598, 599, 998, 5741, 177, 2589, 521, 2643, 2605, 2788, 2713, 5738,
-				617, 2790, 1240, 308, 2813, 176, 623, 1117, 191, 266, 8297, 680, 354, 1199, 356, 2055, 35, 317, 349,
-				1121, 3706, 600, 597, 598, 599, 61, 269, 264, 265, 1923, 2584, 615, 2651, 601, 597, 598, 599, 925, 2723,
-				3559, 35, 1703, 32, 4863, 6013, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76,
-				77, 108, 2513, 2563, 2543, 3153, 309, 2055, 35, 1509, 424, 919, 162, 1535, 276, 279, 282, 3249, 725,
-				520, 992, 6964, 426, 5471, 285, 347, 463, 645, 5837, 4375, 4784, 6180, 1719, 35, 1703, 32, 6769, 3144,
-				2451, 30, 31, 1654, 1590, 672, 2047, 600, 597, 598, 599, 3157, 1944, 488, 496, 3155, 1430, 3168, 7538,
-				483, 3167, 2505, 3174, 3859, 3244, 161, 578, 2055, 35, 6535, 4635, 3559, 35, 1703, 32, 4863, 6013, 27,
-				30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563, 2543, 3153, 1692,
-				5216, 35, 1703, 32, 4863, 162, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77,
-				108, 2513, 2563, 2543, 3153, 3765, 35, 314, 3144, 3988, 2055, 3480, 549, 575, 3055, 579, 3525, 35, 312,
-				78, 3157, 520, 4344, 1776, 3155, 5543, 3168, 3069, 618, 3167, 3246, 3174, 77, 3244, 161, 578, 3974,
-				1563, 4758, 2959, 3559, 35, 1703, 32, 4863, 6013, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50,
-				2263, 106, 76, 77, 108, 2513, 2563, 2543, 3153, 2874, 5216, 35, 1703, 32, 4863, 162, 27, 30, 31, 1654,
-				1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563, 2543, 3153, 3765, 35, 314,
-				3144, 6035, 628, 1529, 549, 575, 3055, 579, 4672, 35, 312, 1713, 3157, 2323, 35, 432, 3155, 2911, 3168,
-				3416, 359, 3167, 3246, 3174, 5934, 3244, 161, 578, 3976, 1563, 2518, 719, 4162, 35, 1703, 32, 4863,
-				6013, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563, 2543,
-				3153, 193, 5086, 35, 1703, 32, 4863, 162, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263,
-				106, 76, 77, 108, 2513, 2563, 2543, 3533, 2055, 35, 4047, 3144, 2055, 35, 330, 549, 575, 3055, 579, 360,
-				42, 3253, 2485, 3157, 3765, 35, 566, 3155, 6539, 3168, 3430, 2584, 3167, 3246, 3174, 4337, 3244, 161,
-				578, 4237, 35, 1703, 32, 4863, 1384, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106,
-				76, 77, 108, 2513, 2563, 2543, 2590, 224, 604, 3032, 3143, 2959, 839, 177, 2589, 3735, 2643, 2605, 2788,
-				2713, 3927, 2651, 2790, 520, 730, 2813, 176, 5580, 1283, 414, 4533, 35, 1703, 32, 5759, 214, 27, 30, 31,
-				1654, 1590, 56, 28, 2910, 2055, 3775, 550, 575, 3055, 579, 1719, 35, 1703, 32, 495, 4500, 40, 30, 31,
-				1654, 1590, 3793, 35, 1703, 32, 4863, 3735, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263,
-				106, 76, 77, 108, 2513, 2563, 2543, 2590, 3525, 35, 315, 2301, 415, 2047, 177, 2589, 77, 2643, 2605,
-				2788, 2713, 8229, 2651, 2790, 5943, 1, 2813, 176, 1384, 1563, 414, 3946, 35, 1703, 32, 4863, 3631, 27,
-				30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563, 2543, 2590, 2584,
-				189, 2055, 35, 2352, 311, 177, 2589, 421, 2643, 2605, 2788, 2713, 195, 2651, 2790, 1548, 88, 2813, 176,
-				102, 1496, 414, 77, 1719, 35, 1703, 32, 958, 2732, 3592, 30, 31, 1654, 1590, 415, 2047, 2502, 4087, 35,
-				1703, 32, 4863, 1925, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108,
-				2513, 2563, 2543, 2590, 3159, 712, 325, 3183, 60, 4340, 177, 2589, 5683, 2643, 2605, 2788, 2713, 605,
-				3032, 2790, 358, 361, 2813, 176, 415, 2047, 613, 593, 422, 417, 4501, 35, 1703, 32, 4863, 378, 27, 30,
-				31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563, 2543, 2590, 2596,
-				4864, 4085, 678, 3724, 6501, 177, 2589, 2973, 2643, 2605, 2788, 2713, 4636, 2466, 2790, 584, 1535, 2813,
-				176, 4096, 412, 191, 3484, 35, 1703, 32, 4863, 1488, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25,
-				50, 2263, 106, 76, 77, 108, 2513, 2563, 2543, 2590, 2459, 3775, 2096, 2055, 35, 1509, 424, 2589, 2501,
-				2643, 2605, 2788, 2713, 520, 2984, 2790, 4398, 5220, 2943, 197, 4012, 35, 1703, 32, 4863, 1825, 27, 30,
-				31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563, 2543, 2590, 467,
-				4734, 35, 564, 4401, 1535, 177, 2589, 362, 2643, 2605, 2788, 2713, 1746, 1790, 2790, 3178, 215, 2813,
-				176, 5934, 4929, 3280, 821, 2584, 1563, 2055, 35, 2352, 313, 611, 601, 597, 598, 599, 2067, 2505, 1889,
-				3181, 3083, 1472, 4194, 35, 1703, 32, 6187, 2635, 27, 30, 31, 1654, 1590, 26, 28, 3179, 193, 474, 547,
-				3631, 3727, 35, 1703, 32, 4863, 3676, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106,
-				76, 77, 108, 2513, 2563, 2543, 2590, 603, 520, 4397, 630, 3252, 5687, 177, 2589, 2535, 2643, 2605, 2788,
-				2713, 946, 465, 2790, 5928, 2467, 2813, 176, 8126, 1563, 3281, 4501, 35, 1703, 32, 4863, 324, 27, 30,
-				31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563, 2543, 2590, 4094,
-				189, 1548, 772, 3776, 704, 177, 2589, 3148, 2643, 2605, 2788, 2713, 3490, 234, 2790, 77, 713, 2813, 176,
-				2940, 1563, 408, 4501, 35, 1703, 32, 4863, 225, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50,
-				2263, 106, 76, 77, 108, 2513, 2563, 2543, 2590, 427, 189, 712, 3675, 463, 134, 177, 2589, 4767, 2643,
-				2605, 2788, 2713, 2153, 89, 2790, 4704, 102, 2813, 176, 6888, 2841, 408, 4501, 35, 1703, 32, 4863, 584,
-				27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563, 2543, 2590,
-				5818, 3825, 2055, 35, 2352, 316, 177, 2589, 628, 2643, 2605, 2788, 2713, 68, 3709, 2790, 2201, 3083,
-				2813, 176, 3070, 1535, 408, 1535, 2055, 35, 1509, 424, 601, 597, 598, 599, 357, 4087, 35, 1703, 32,
-				4863, 407, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563,
-				2543, 2590, 77, 255, 1598, 3083, 2904, 2498, 177, 2589, 308, 2643, 2605, 2788, 2713, 520, 3070, 2790,
-				77, 7465, 2813, 176, 411, 1563, 613, 3871, 35, 1703, 32, 4863, 406, 27, 30, 31, 1654, 1590, 26, 28,
-				2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563, 2543, 2590, 3573, 189, 928, 77, 3548, 1790,
-				177, 2589, 1048, 2643, 2605, 2788, 2713, 3994, 1535, 2790, 425, 832, 2813, 176, 3185, 310, 175, 4501,
-				35, 1703, 32, 4863, 404, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108,
-				2513, 2563, 2543, 2590, 2055, 35, 2352, 4046, 429, 2929, 177, 2589, 463, 2643, 2605, 2788, 2713, 4101,
-				1535, 2790, 77, 3290, 2813, 176, 339, 1563, 192, 4501, 35, 1703, 32, 4863, 479, 27, 30, 31, 1654, 1590,
-				26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563, 2543, 2590, 428, 189, 409, 77, 463,
-				1598, 177, 2589, 1138, 2643, 2605, 2788, 2713, 4204, 3568, 2790, 3638, 4663, 2813, 176, 2584, 7951, 188,
-				411, 5818, 4501, 35, 1703, 32, 4863, 612, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263,
-				106, 76, 77, 108, 2513, 2563, 2543, 2590, 2681, 35, 2352, 311, 533, 2438, 177, 2589, 77, 2643, 2605,
-				2788, 2713, 4856, 3070, 2790, 77, 1331, 2813, 176, 3651, 1563, 187, 4501, 35, 1703, 32, 4863, 4604, 27,
-				30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563, 2543, 2590, 51,
-				189, 2055, 4103, 2352, 74, 177, 2589, 1384, 2643, 2605, 2788, 2713, 4216, 1025, 2790, 77, 585, 2813,
-				176, 3364, 1563, 186, 4501, 35, 1703, 32, 4863, 6290, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25,
-				50, 2263, 106, 76, 77, 108, 2513, 2563, 2543, 2590, 3903, 189, 2551, 3147, 742, 4406, 177, 2589, 3070,
-				2643, 2605, 2788, 2713, 4250, 2366, 2790, 68, 2364, 2813, 176, 332, 2911, 185, 4501, 35, 1703, 32, 4863,
-				3447, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563, 2543,
-				2590, 2681, 35, 2352, 4108, 2692, 3080, 177, 2589, 77, 2643, 2605, 2788, 2713, 4778, 338, 2790, 77,
-				3955, 2813, 176, 5818, 1563, 184, 4501, 35, 1703, 32, 4863, 2413, 27, 30, 31, 1654, 1590, 26, 28, 2249,
-				296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563, 2543, 2590, 4500, 189, 623, 44, 3253, 998, 177,
-				2589, 3257, 2643, 2605, 2788, 2713, 4254, 418, 2790, 77, 1564, 2813, 176, 5818, 1563, 183, 4501, 35,
-				1703, 32, 4863, 3447, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108,
-				2513, 2563, 2543, 2590, 388, 189, 910, 77, 363, 370, 177, 2589, 7004, 2643, 2605, 2788, 2713, 3790,
-				3070, 2790, 68, 4864, 2813, 176, 4473, 6501, 182, 4501, 35, 1703, 32, 4863, 2413, 27, 30, 31, 1654,
-				1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563, 2543, 2590, 2055, 35, 2352,
-				4153, 2055, 4038, 177, 2589, 3257, 2643, 2605, 2788, 2713, 939, 335, 2790, 77, 93, 2813, 176, 1048,
-				7083, 181, 4501, 35, 1703, 32, 4863, 222, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263,
-				106, 76, 77, 108, 2513, 2563, 2543, 2590, 2055, 35, 2352, 565, 369, 370, 177, 2589, 1546, 2643, 2605,
-				2788, 2713, 2083, 391, 2790, 68, 70, 2813, 176, 331, 593, 180, 4501, 35, 1703, 32, 4863, 203, 27, 30,
-				31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563, 2543, 2590, 1889,
-				2323, 35, 432, 6277, 324, 177, 2589, 77, 2643, 2605, 2788, 2713, 1640, 624, 2790, 77, 5230, 2813, 176,
-				1125, 1563, 179, 4501, 35, 1703, 32, 4863, 1283, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50,
-				2263, 106, 76, 77, 108, 2513, 2563, 2543, 2590, 77, 3595, 4500, 2459, 3775, 7215, 177, 2589, 322, 2643,
-				2605, 2788, 2713, 466, 3455, 2790, 77, 71, 2813, 176, 1535, 2293, 178, 3643, 35, 1703, 32, 4863, 716,
-				27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563, 2543, 3153,
-				2323, 35, 432, 2097, 378, 2055, 35, 330, 189, 2792, 483, 1598, 440, 2827, 1598, 4119, 35, 1703, 32,
-				6187, 2802, 27, 30, 31, 1654, 1590, 59, 28, 531, 3359, 2941, 3812, 2760, 4119, 35, 1703, 32, 6187, 3070,
-				27, 30, 31, 1654, 1590, 58, 28, 3929, 214, 4631, 35, 1703, 32, 4863, 2811, 27, 30, 31, 1654, 1590, 26,
-				28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563, 2543, 3153, 5818, 4631, 35, 1703, 32,
-				4863, 162, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563,
-				2543, 3153, 1019, 389, 326, 3144, 642, 1133, 162, 2055, 35, 1509, 424, 324, 77, 390, 5818, 3157, 68,
-				854, 5818, 3155, 593, 3168, 77, 5818, 3167, 5681, 3174, 1726, 3244, 161, 173, 3144, 600, 597, 598, 599,
-				1592, 3776, 1036, 2597, 3282, 321, 4190, 3157, 8402, 457, 24, 3155, 4082, 3168, 2804, 308, 3167, 1150,
-				3174, 6709, 3244, 161, 172, 4631, 35, 1703, 32, 4863, 715, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296,
-				23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563, 2543, 3153, 5818, 4631, 35, 1703, 32, 4863, 162, 27, 30,
-				31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563, 2543, 3153, 375,
-				1229, 77, 3144, 413, 4050, 162, 2638, 5672, 2055, 35, 1509, 424, 3445, 5818, 3157, 4509, 77, 5818, 3155,
-				387, 3168, 2313, 416, 3167, 1699, 3174, 77, 3244, 161, 171, 3144, 1314, 379, 2694, 2340, 384, 2800, 520,
-				2985, 3385, 2674, 7534, 3157, 8402, 620, 3383, 3155, 677, 3168, 3779, 4131, 3167, 49, 3174, 2413, 3244,
-				161, 170, 4631, 35, 1703, 32, 4863, 46, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263,
-				106, 76, 77, 108, 2513, 2563, 2543, 3153, 5818, 4631, 35, 1703, 32, 4863, 162, 27, 30, 31, 1654, 1590,
-				26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563, 2543, 3153, 5818, 208, 68, 3144,
-				3880, 1535, 162, 2055, 35, 1509, 424, 2055, 35, 1509, 424, 3157, 1325, 3642, 370, 3155, 387, 3168, 77,
-				1765, 3167, 1252, 3174, 1940, 3244, 161, 169, 3144, 69, 379, 2694, 2340, 384, 77, 68, 2694, 77, 4056,
-				1986, 3157, 8402, 2953, 1598, 3155, 377, 3168, 212, 470, 3167, 2599, 3174, 469, 3244, 161, 168, 4631,
-				35, 1703, 32, 4863, 587, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108,
-				2513, 2563, 2543, 3153, 232, 4631, 35, 1703, 32, 4863, 162, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296,
-				23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563, 2543, 3153, 5818, 1310, 1384, 3144, 4097, 1535, 162,
-				2055, 35, 1509, 424, 77, 1638, 5818, 4731, 3157, 6062, 77, 5818, 3155, 387, 3168, 1450, 426, 3167, 1329,
-				3174, 509, 3244, 161, 167, 3144, 68, 379, 2694, 2340, 384, 1347, 1432, 600, 597, 598, 599, 3157, 1431,
-				53, 1598, 3155, 577, 3168, 52, 468, 3167, 5740, 3174, 4082, 3244, 161, 166, 4631, 35, 1703, 32, 4863,
-				586, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563, 2543,
-				3153, 5818, 4631, 35, 1703, 32, 4863, 162, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263,
-				106, 76, 77, 108, 2513, 2563, 2543, 3153, 6131, 3447, 2514, 3144, 3261, 4269, 162, 4341, 3070, 1126,
-				1444, 5867, 4044, 1851, 330, 3157, 68, 77, 5818, 3155, 77, 3168, 2907, 2302, 3167, 4911, 3174, 2696,
-				3244, 161, 165, 3144, 600, 597, 598, 599, 2584, 2584, 68, 600, 597, 598, 599, 3157, 2810, 1369, 2886,
-				3155, 1691, 3168, 633, 2413, 3167, 3685, 3174, 925, 3244, 161, 164, 4631, 35, 1703, 32, 4863, 231, 27,
-				30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563, 2543, 3153, 334,
-				5086, 35, 1703, 32, 4863, 162, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77,
-				108, 2513, 2563, 2543, 2590, 322, 3594, 3759, 3144, 706, 705, 1745, 2589, 2793, 2643, 2605, 2788, 3704,
-				365, 370, 3157, 1901, 77, 77, 3155, 1724, 3168, 3245, 3251, 3167, 5766, 3174, 5818, 3244, 161, 163,
-				5086, 35, 1703, 32, 4863, 913, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77,
-				108, 2513, 2563, 2543, 2590, 3800, 602, 1607, 2576, 35, 1509, 424, 2589, 2651, 2643, 2605, 2788, 2713,
-				1708, 3941, 2790, 4097, 1119, 2943, 197, 4501, 35, 1703, 32, 4863, 2196, 27, 30, 31, 1654, 1590, 26, 28,
-				2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563, 2543, 2590, 308, 827, 5818, 3719, 232, 4057,
-				177, 2589, 2584, 2643, 2605, 2788, 2713, 1716, 3486, 2790, 6128, 68, 2813, 176, 3168, 2588, 641, 2323,
-				35, 2918, 3142, 68, 601, 597, 598, 599, 672, 2047, 622, 4501, 35, 1703, 32, 4863, 4035, 27, 30, 31,
-				1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563, 2543, 2590, 2863, 4085,
-				438, 235, 2976, 49, 177, 2589, 2983, 2643, 2605, 2788, 2713, 233, 3162, 2790, 2035, 1044, 2813, 176,
-				5818, 3166, 140, 4501, 35, 1703, 32, 4863, 707, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50,
-				2263, 106, 76, 77, 108, 2513, 2563, 2543, 2590, 77, 3177, 621, 72, 3274, 4872, 177, 2589, 77, 2643,
-				2605, 2788, 2713, 3875, 3372, 2790, 3554, 68, 2813, 176, 5818, 5818, 3471, 5818, 4501, 35, 1703, 32,
-				4863, 3866, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563,
-				2543, 2590, 611, 90, 385, 6279, 634, 2793, 177, 2589, 4033, 2643, 2605, 2788, 2713, 2584, 442, 2790, 77,
-				6285, 2813, 176, 2089, 1389, 3639, 4696, 35, 1703, 32, 4863, 3056, 27, 30, 31, 1654, 1590, 26, 28, 2249,
-				296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563, 2543, 3153, 6291, 5086, 35, 1703, 32, 4863, 162,
-				27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563, 2543, 2590,
-				2672, 5934, 1695, 3144, 607, 4378, 1563, 2589, 77, 2643, 2605, 3646, 68, 4401, 68, 3157, 2888, 708, 77,
-				3155, 5959, 3168, 2963, 2385, 3167, 6732, 3174, 5818, 3244, 161, 160, 4761, 35, 1703, 32, 4863, 193, 27,
-				30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563, 2543, 2590, 131,
-				3376, 1438, 77, 256, 68, 177, 2589, 2637, 2643, 2605, 2788, 2713, 1745, 4206, 2790, 77, 6346, 2813, 176,
-				5818, 1563, 222, 5086, 35, 1703, 32, 4863, 2584, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50,
-				2263, 106, 76, 77, 108, 2513, 2563, 2543, 2590, 2791, 189, 3583, 226, 3276, 3686, 238, 2589, 2651, 2643,
-				2605, 2788, 2713, 4359, 2570, 2790, 5818, 3890, 2943, 197, 5086, 35, 1703, 32, 4863, 2668, 27, 30, 31,
-				1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563, 2543, 2590, 1031, 4189,
-				2765, 3988, 3153, 5882, 585, 2589, 4340, 2643, 2605, 2788, 2713, 97, 3155, 2790, 4050, 3259, 2943, 197,
-				3374, 6354, 3470, 2044, 35, 1509, 424, 601, 597, 598, 599, 5818, 672, 2047, 6282, 5086, 35, 1703, 32,
-				4863, 459, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563,
-				2543, 2590, 2651, 487, 3772, 4282, 2413, 49, 5035, 2589, 5100, 2643, 2605, 2788, 2713, 5165, 2890, 2790,
-				2035, 2033, 2943, 197, 5086, 35, 1703, 32, 4863, 329, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25,
-				50, 2263, 106, 76, 77, 108, 2513, 2563, 2543, 2590, 1947, 1439, 4510, 4640, 4965, 713, 4796, 2589, 4861,
-				2643, 2605, 2788, 2713, 3062, 541, 2790, 4233, 3373, 2943, 197, 2055, 35, 1509, 424, 672, 2047, 5295,
-				3483, 601, 597, 598, 599, 340, 3722, 370, 5086, 35, 1703, 32, 4863, 458, 27, 30, 31, 1654, 1590, 26, 28,
-				2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563, 2543, 2590, 539, 540, 49, 5380, 2584, 5849,
-				1982, 2589, 5386, 2643, 2605, 2788, 2713, 2035, 1114, 2790, 3471, 4202, 2943, 197, 5346, 35, 1703, 32,
-				4863, 461, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563,
-				2543, 2590, 5411, 35, 1509, 424, 3882, 1773, 2782, 2589, 1899, 2643, 2605, 2788, 2713, 271, 296, 2790,
-				2350, 4339, 2943, 197, 4230, 3765, 35, 489, 4338, 6494, 4470, 652, 597, 598, 599, 3879, 601, 597, 598,
-				599, 4799, 844, 143, 98, 644, 5818, 5728, 5818, 308, 4826, 35, 1703, 32, 4863, 266, 27, 30, 31, 1654,
-				1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 648, 76, 77, 269, 264, 265, 3936, 35, 489, 5507, 6494, 5579,
-				4925, 4310, 3636, 1558, 4989, 2368, 5086, 35, 1703, 32, 4863, 4034, 27, 30, 31, 1654, 1590, 26, 28,
-				2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513, 3476, 309, 600, 597, 598, 599, 2438, 5743, 9900,
-				276, 279, 282, 3249, 9900, 9900, 992, 6745, 5818, 3464, 285, 5818, 5818, 645, 5837, 4375, 4784, 6180,
-				4044, 35, 330, 9900, 6769, 2067, 5818, 2485, 35, 1703, 32, 5508, 4563, 27, 30, 31, 1654, 1590, 374, 28,
-				2651, 9900, 5651, 3378, 7538, 3712, 67, 600, 597, 598, 599, 9900, 9900, 9900, 600, 597, 598, 599, 66,
-				9900, 5818, 1384, 5738, 925, 5818, 5086, 35, 1703, 32, 4863, 7150, 27, 30, 31, 1654, 1590, 26, 28, 2249,
-				296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563, 2543, 3539, 65, 9900, 616, 9900, 64, 1117, 354,
-				1199, 356, 9900, 2299, 9900, 349, 1121, 482, 3366, 3374, 9900, 9900, 672, 2047, 5818, 367, 997, 5818,
-				5281, 35, 1703, 32, 4863, 9900, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76,
-				77, 108, 2513, 2563, 2543, 3153, 2203, 55, 6874, 9900, 54, 5818, 5523, 35, 1509, 424, 3882, 486, 3366,
-				3374, 913, 9900, 5934, 9900, 9900, 271, 296, 1563, 341, 345, 780, 5818, 5818, 601, 597, 598, 599, 3144,
-				6344, 652, 597, 598, 599, 101, 1607, 9900, 9900, 1583, 9900, 3157, 9900, 9900, 2289, 3155, 9900, 3168,
-				308, 193, 3167, 2841, 3995, 9900, 266, 3767, 3021, 601, 597, 598, 599, 5818, 5818, 6347, 1936, 4050,
-				652, 597, 598, 599, 3591, 269, 264, 265, 5148, 2030, 35, 3935, 32, 5508, 4563, 27, 30, 31, 1654, 1590,
-				374, 28, 627, 266, 9900, 9900, 9900, 3135, 5795, 591, 9900, 600, 597, 598, 599, 9900, 600, 597, 598,
-				599, 278, 264, 265, 3065, 9900, 309, 9900, 3464, 4340, 2413, 9900, 9900, 6044, 276, 279, 282, 3249,
-				2255, 617, 992, 6964, 9900, 9900, 285, 9900, 9900, 645, 5837, 4375, 4784, 6180, 3082, 4303, 9900, 6282,
-				6769, 8265, 9900, 9900, 2299, 354, 1199, 356, 9900, 2299, 9900, 349, 1121, 9900, 9900, 9900, 6757, 918,
-				9900, 9900, 7538, 367, 2602, 5216, 35, 1703, 32, 4863, 386, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296,
-				23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563, 2543, 3153, 3765, 370, 9900, 6874, 5216, 35, 1703, 32,
-				4863, 9900, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563,
-				2543, 3153, 3144, 6356, 455, 3934, 9900, 3591, 9900, 396, 9900, 5148, 387, 9900, 3157, 9900, 9900, 9900,
-				3155, 9900, 3168, 9900, 9900, 3985, 9900, 379, 2694, 2340, 384, 9900, 94, 9900, 9900, 3144, 600, 597,
-				598, 599, 9900, 9900, 3596, 9900, 9900, 9900, 9900, 3157, 9900, 9900, 9900, 3155, 3464, 3981, 5086, 35,
-				1703, 32, 4863, 9900, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108,
-				2513, 2563, 2543, 2590, 1133, 442, 9900, 2299, 9900, 3479, 716, 2589, 9900, 2643, 3654, 9900, 9900,
-				9900, 9900, 367, 5934, 9900, 9900, 9900, 9900, 1563, 9900, 9900, 9900, 9900, 9900, 600, 597, 598, 599,
-				9900, 262, 9900, 9900, 9900, 189, 9900, 9900, 9900, 9900, 759, 1598, 4082, 9900, 9900, 9900, 6912, 3018,
-				213, 9900, 193, 237, 249, 4745, 700, 9900, 9900, 9900, 9900, 202, 236, 246, 247, 248, 250, 651, 699,
-				5216, 35, 1703, 32, 4863, 9900, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76,
-				77, 108, 2513, 2563, 2543, 3153, 201, 9900, 216, 200, 203, 204, 205, 206, 207, 136, 9900, 9900, 9900,
-				9900, 716, 3624, 35, 1703, 32, 5364, 4217, 27, 30, 31, 1654, 1590, 374, 28, 1433, 9900, 9900, 3144,
-				9900, 4340, 9900, 9900, 9900, 3591, 9900, 9900, 262, 5148, 9900, 3157, 189, 4306, 9900, 3984, 3988, 759,
-				1598, 3038, 9900, 4340, 1718, 9900, 3018, 213, 9900, 378, 237, 249, 4745, 700, 600, 597, 598, 599, 202,
-				236, 246, 247, 248, 250, 651, 699, 9900, 9900, 9900, 6282, 3464, 652, 597, 598, 599, 2285, 351, 1710,
-				356, 3382, 35, 1703, 32, 5508, 9900, 27, 30, 31, 1654, 1590, 374, 28, 9900, 201, 266, 217, 200, 203,
-				204, 205, 206, 207, 2299, 9900, 9900, 214, 600, 597, 598, 599, 9900, 281, 264, 265, 367, 4739, 5834,
-				9900, 9900, 9900, 9900, 4340, 5228, 4077, 35, 1509, 424, 9900, 9900, 9900, 9900, 9900, 5768, 35, 1703,
-				32, 5364, 4563, 27, 30, 31, 1654, 1590, 374, 28, 9900, 6136, 6282, 9900, 9900, 354, 1199, 356, 3549,
-				2299, 9900, 350, 1121, 541, 600, 597, 598, 599, 9900, 2118, 9900, 368, 49, 6022, 4340, 1235, 5355, 9900,
-				9900, 387, 5016, 4340, 9900, 2035, 1349, 600, 597, 598, 599, 9900, 9900, 9900, 381, 2694, 2340, 384,
-				9900, 9900, 9900, 1341, 262, 1924, 600, 597, 598, 599, 9900, 6282, 354, 1199, 356, 538, 540, 9900, 349,
-				1121, 9900, 9900, 3464, 1235, 2649, 443, 8216, 714, 9900, 997, 91, 35, 1703, 32, 5364, 4563, 27, 30, 31,
-				1654, 1590, 374, 28, 3056, 9900, 395, 9900, 9900, 3467, 9900, 600, 597, 598, 599, 364, 9900, 9900, 600,
-				597, 598, 599, 9900, 444, 445, 446, 815, 3464, 3216, 3441, 3466, 9900, 9900, 9900, 5016, 9900, 9900,
-				9900, 9900, 9900, 9900, 341, 345, 780, 9900, 9900, 91, 35, 1703, 32, 5364, 4563, 27, 30, 31, 1654, 1590,
-				374, 28, 2919, 9900, 541, 354, 1199, 356, 2289, 9900, 3041, 349, 1121, 9900, 9900, 9900, 601, 597, 598,
-				599, 9900, 9900, 997, 5086, 35, 1703, 32, 4863, 3718, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25,
-				50, 2263, 106, 76, 77, 108, 2513, 2563, 2543, 2590, 1357, 5934, 538, 540, 9900, 9900, 1563, 2589, 9900,
-				3626, 354, 1199, 356, 9900, 9900, 9900, 349, 1121, 9900, 9900, 9900, 447, 450, 341, 345, 780, 9900,
-				6084, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 4114, 193, 9900, 9900, 842, 9900, 9900, 5216, 35, 1703,
-				32, 4863, 1545, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513,
-				2563, 2543, 3153, 9900, 544, 2055, 35, 1509, 424, 716, 5086, 35, 1703, 32, 4863, 9900, 27, 30, 31, 1654,
-				1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108, 3484, 3144, 262, 9900, 9900, 9900, 189,
-				9900, 9900, 9900, 9900, 759, 1598, 3973, 9900, 9900, 49, 9900, 3018, 213, 9900, 9900, 237, 249, 4745,
-				700, 4339, 2035, 5265, 9900, 202, 236, 246, 247, 248, 250, 651, 699, 9900, 9900, 9900, 9900, 9900, 646,
-				2055, 35, 1509, 424, 716, 9900, 9900, 9900, 1789, 35, 1703, 32, 5364, 9900, 27, 30, 31, 1654, 1590, 374,
-				28, 201, 9900, 4036, 200, 203, 204, 205, 206, 207, 262, 9900, 9900, 9900, 189, 601, 597, 598, 599, 759,
-				1598, 9900, 9900, 9900, 49, 1337, 3018, 213, 9900, 9900, 237, 249, 4745, 700, 9900, 2035, 2455, 9900,
-				202, 236, 246, 247, 248, 250, 651, 699, 9900, 9900, 9900, 9900, 9900, 748, 600, 597, 598, 599, 716,
-				9900, 9900, 354, 1199, 356, 9900, 9900, 9900, 663, 1121, 9900, 3464, 9900, 9900, 9900, 9900, 201, 9900,
-				211, 200, 203, 204, 205, 206, 207, 262, 9900, 9900, 9900, 189, 9900, 9900, 77, 9900, 759, 1598, 9900,
-				4077, 9900, 9900, 9900, 3018, 213, 3378, 9900, 237, 249, 4745, 700, 9900, 9900, 9900, 9900, 202, 236,
-				246, 247, 248, 250, 651, 699, 9900, 9900, 378, 9900, 9900, 850, 2044, 35, 1509, 424, 716, 2827, 6041,
-				35, 1703, 32, 5364, 4563, 27, 30, 31, 1654, 1590, 374, 28, 9900, 9900, 201, 2941, 209, 200, 203, 204,
-				205, 206, 207, 262, 9900, 9900, 9900, 189, 9900, 9900, 9900, 9900, 759, 1598, 9900, 9900, 9900, 49,
-				3271, 3018, 213, 9900, 9900, 237, 249, 4745, 700, 9900, 2035, 1226, 9900, 202, 236, 246, 247, 248, 250,
-				651, 699, 9900, 9900, 9900, 9900, 9900, 952, 2178, 35, 1509, 424, 716, 354, 1199, 356, 9900, 9900, 9900,
-				349, 1121, 9900, 2795, 9900, 9900, 9900, 9900, 9900, 9900, 201, 4119, 643, 200, 203, 204, 205, 206, 207,
-				262, 9900, 9900, 9900, 189, 2189, 35, 1509, 424, 759, 1598, 9900, 9900, 9900, 49, 9900, 3018, 213, 9900,
-				9900, 237, 249, 4745, 700, 9900, 2035, 47, 9900, 202, 236, 246, 247, 248, 250, 651, 699, 9900, 9900,
-				9900, 9900, 9900, 1054, 2044, 35, 1509, 424, 716, 9900, 9900, 49, 9900, 9900, 5958, 9900, 9900, 9900,
-				1287, 878, 9900, 9900, 2035, 47, 9900, 201, 9900, 210, 200, 203, 204, 205, 206, 207, 262, 9900, 9900,
-				9900, 189, 2189, 35, 1509, 424, 759, 1598, 378, 9900, 9900, 49, 189, 3018, 213, 9900, 1011, 237, 249,
-				4745, 700, 9900, 2035, 4158, 221, 202, 236, 246, 247, 248, 250, 651, 699, 9900, 5370, 9900, 9900, 9900,
-				1156, 2044, 35, 1509, 424, 716, 9900, 9900, 49, 9900, 9900, 9900, 9900, 9900, 9900, 2795, 9900, 9900,
-				5737, 2035, 47, 9900, 201, 4340, 220, 200, 203, 204, 205, 206, 207, 262, 9900, 9900, 9900, 189, 9900,
-				9900, 77, 9900, 759, 1598, 9900, 716, 9900, 49, 9900, 3018, 213, 378, 1422, 237, 249, 4745, 700, 9900,
-				2035, 47, 9900, 202, 236, 246, 247, 248, 250, 651, 699, 9900, 9900, 378, 9900, 9900, 1258, 189, 223,
-				1876, 9900, 716, 2827, 9900, 9900, 9900, 9900, 9900, 9900, 3130, 9900, 934, 9900, 9900, 9900, 9900,
-				9900, 9900, 201, 2941, 4156, 200, 203, 204, 205, 206, 207, 262, 9900, 9900, 9900, 189, 2382, 35, 1509,
-				424, 759, 1598, 9900, 9900, 9900, 9900, 3016, 3018, 213, 9900, 9900, 237, 249, 4745, 700, 9900, 9900,
-				9900, 9900, 202, 236, 246, 247, 248, 250, 651, 699, 9900, 9900, 9900, 9900, 9900, 1360, 4152, 35, 1509,
-				424, 716, 9900, 9900, 49, 9900, 9900, 9900, 9900, 9900, 9900, 3716, 9900, 9900, 9900, 2035, 47, 9900,
-				201, 9900, 225, 200, 203, 204, 205, 206, 207, 262, 9900, 9900, 9900, 189, 2189, 35, 1509, 424, 759,
-				1598, 9900, 9900, 9900, 49, 1235, 3018, 213, 9900, 2690, 237, 249, 4745, 700, 9900, 2035, 2150, 9900,
-				202, 236, 246, 247, 248, 250, 651, 699, 9900, 9900, 9900, 9900, 9900, 1462, 600, 597, 598, 599, 716,
-				9900, 9900, 49, 9900, 9900, 9900, 9900, 9900, 9900, 1947, 9900, 3464, 9900, 2035, 3039, 9900, 201, 9900,
-				219, 200, 203, 204, 205, 206, 207, 262, 9900, 9900, 9900, 189, 478, 9900, 492, 9900, 759, 1598, 2066,
-				9900, 9900, 9900, 9900, 3018, 213, 3375, 3419, 237, 249, 4745, 700, 273, 296, 9900, 9900, 202, 236, 246,
-				247, 248, 250, 651, 699, 9900, 9900, 652, 597, 598, 599, 9900, 9900, 9900, 91, 35, 1703, 32, 5364, 4563,
-				27, 30, 31, 1654, 1590, 374, 28, 9900, 9900, 9900, 266, 9900, 201, 9900, 228, 200, 203, 204, 205, 206,
-				207, 600, 597, 598, 599, 9900, 9900, 274, 264, 265, 9900, 9900, 5086, 35, 1703, 32, 4863, 5016, 27, 30,
-				31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563, 2543, 3546, 9900,
-				9900, 9900, 9900, 9900, 9900, 354, 1199, 356, 9900, 9900, 9900, 349, 1121, 9900, 9900, 9900, 9900, 5086,
-				35, 1703, 32, 4863, 997, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108,
-				2513, 2563, 2543, 2590, 9900, 9900, 5086, 35, 1703, 32, 4863, 3629, 27, 30, 31, 1654, 1590, 26, 28,
-				2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563, 2543, 2590, 342, 345, 780, 5635, 35, 553,
-				9900, 3643, 9900, 9900, 9900, 9900, 2055, 35, 1509, 424, 271, 296, 9900, 4157, 9900, 9900, 9900, 9900,
-				716, 2055, 35, 1509, 424, 9900, 652, 597, 598, 599, 2164, 35, 3935, 32, 5364, 4563, 27, 30, 31, 1654,
-				1590, 374, 28, 9900, 9900, 9900, 378, 9900, 5834, 266, 189, 9900, 49, 4340, 9900, 2827, 1598, 4093, 597,
-				598, 599, 9900, 2802, 2035, 1400, 49, 269, 264, 265, 9900, 929, 9900, 2941, 6148, 2760, 9900, 2035,
-				1204, 9900, 6282, 9900, 9900, 6225, 35, 3935, 32, 5364, 4563, 27, 30, 31, 1654, 1590, 374, 28, 2405,
-				9900, 600, 597, 598, 599, 354, 1199, 356, 9900, 9900, 9900, 349, 1121, 600, 597, 598, 599, 3969, 276,
-				279, 282, 3249, 2602, 9900, 992, 7048, 3708, 9900, 9900, 6148, 5148, 9900, 6172, 7940, 8305, 8466, 9900,
-				9900, 6258, 35, 3935, 32, 5364, 4563, 27, 30, 31, 1654, 1590, 374, 28, 9900, 9900, 600, 597, 598, 599,
-				354, 1199, 356, 9900, 9900, 2200, 349, 1121, 4093, 597, 598, 599, 3464, 2574, 9900, 395, 9900, 2602,
-				273, 296, 2055, 35, 1509, 424, 6148, 6865, 455, 3934, 9900, 9900, 9900, 9900, 652, 597, 598, 599, 9900,
-				4203, 3441, 3466, 652, 597, 598, 599, 2299, 9900, 9900, 9900, 562, 563, 567, 9900, 354, 1199, 356, 266,
-				368, 9900, 349, 1121, 9900, 9900, 9900, 266, 49, 9900, 9900, 9900, 9900, 2602, 9900, 9900, 274, 264,
-				265, 2035, 1349, 7099, 455, 3934, 284, 264, 265, 8498, 5086, 35, 1703, 32, 4863, 9900, 27, 30, 31, 1654,
-				1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563, 2543, 3576, 9900, 9900, 9900,
-				9900, 6210, 35, 1703, 32, 5364, 8454, 27, 30, 31, 1654, 1590, 374, 28, 9900, 6865, 455, 3934, 5086, 35,
-				1703, 32, 4863, 9900, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108,
-				2513, 2563, 2543, 3579, 5086, 35, 1703, 32, 4863, 9900, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23,
-				25, 50, 2263, 106, 76, 77, 108, 2513, 2563, 2543, 3589, 354, 1199, 356, 2069, 9900, 9900, 349, 1121,
-				9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 3924, 9900, 9900, 9900, 9900, 9900, 9900, 387,
-				9900, 9900, 9900, 9900, 9900, 600, 597, 598, 599, 9900, 9900, 9900, 379, 2694, 2340, 384, 9900, 9900,
-				9900, 9900, 9900, 4334, 5086, 35, 1703, 32, 4863, 3923, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23,
-				25, 50, 2263, 106, 76, 77, 108, 2513, 2563, 2543, 3970, 5086, 35, 1703, 32, 4863, 9900, 27, 30, 31,
-				1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563, 2543, 3971, 5086, 35,
-				1703, 32, 4863, 9900, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108,
-				2513, 2563, 2543, 3972, 6297, 35, 1703, 32, 5364, 8271, 27, 30, 31, 1654, 1590, 374, 28, 2044, 35, 1509,
-				424, 9900, 9900, 9900, 2044, 35, 1509, 424, 9900, 9900, 401, 5086, 35, 1703, 32, 4863, 386, 27, 30, 31,
-				1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563, 2543, 4083, 4471, 9900,
-				9900, 49, 2055, 35, 1509, 424, 9900, 9900, 49, 2388, 9900, 9900, 2035, 47, 4077, 354, 1199, 356, 9900,
-				2035, 47, 349, 1121, 9900, 9900, 600, 597, 598, 599, 9900, 9900, 9900, 1923, 9900, 9900, 9900, 9900,
-				9900, 9900, 387, 262, 4082, 9900, 986, 9900, 9900, 49, 9900, 9900, 759, 1643, 9900, 379, 2694, 2340,
-				384, 9900, 2035, 1688, 9900, 239, 249, 4745, 700, 9900, 9900, 9900, 3596, 9900, 238, 246, 247, 248, 250,
-				651, 699, 4891, 35, 1703, 32, 4863, 9900, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263,
-				637, 76, 77, 240, 242, 244, 815, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 251, 241,
-				243, 5086, 35, 1703, 32, 4863, 9900, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106,
-				76, 77, 108, 2513, 2563, 3591, 9900, 9900, 13, 3053, 7439, 5086, 35, 1703, 32, 4863, 9900, 27, 30, 31,
-				1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513, 2563, 3604, 4369, 35, 1703, 32,
-				4863, 9900, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 107, 6327, 35,
-				1703, 32, 5364, 8454, 27, 30, 31, 1654, 1590, 374, 28, 5467, 35, 1509, 424, 3882, 2651, 77, 9900, 9900,
-				9900, 9900, 4077, 3978, 272, 296, 751, 5148, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 2671, 9900, 9900,
-				652, 597, 598, 599, 4157, 9900, 9900, 9900, 9900, 716, 378, 9900, 600, 597, 598, 599, 9900, 308, 9900,
-				2827, 9900, 9900, 9900, 266, 652, 597, 598, 599, 3464, 9900, 9900, 354, 1199, 356, 9900, 378, 2941, 349,
-				1121, 189, 270, 264, 265, 9900, 2827, 1598, 9900, 266, 588, 672, 2047, 2802, 9900, 9900, 9900, 387,
-				9900, 9900, 9900, 3290, 2299, 2941, 9900, 2760, 287, 264, 265, 9900, 379, 2694, 2340, 384, 6757, 9900,
-				9900, 9900, 9900, 9900, 9900, 9900, 309, 9900, 9900, 589, 2811, 9900, 9900, 9900, 277, 280, 283, 3249,
-				9900, 2771, 992, 9900, 9900, 9900, 286, 9900, 9900, 646, 1654, 35, 1703, 32, 5508, 9900, 27, 30, 31,
-				1654, 1590, 374, 28, 9900, 2044, 35, 1509, 424, 600, 597, 598, 599, 9900, 9900, 9900, 9900, 9900, 600,
-				597, 598, 599, 9900, 9900, 9900, 4366, 9900, 9900, 9900, 1654, 35, 1703, 32, 5508, 3464, 27, 30, 31,
-				1654, 1590, 374, 28, 9900, 9900, 9900, 9900, 9900, 3444, 9900, 49, 9900, 5148, 9900, 9900, 96, 9900,
-				600, 597, 598, 599, 2035, 47, 354, 1199, 356, 9900, 2299, 9900, 352, 1121, 9900, 9900, 5228, 9900, 600,
-				597, 598, 599, 368, 9900, 9900, 5579, 35, 1509, 424, 3882, 9900, 9900, 4157, 9900, 3464, 3023, 9900,
-				716, 272, 296, 9900, 9900, 9900, 9900, 354, 1199, 356, 9900, 2299, 9900, 350, 1121, 652, 597, 598, 599,
-				9900, 9900, 9900, 9900, 368, 9900, 9900, 378, 9900, 2621, 2299, 189, 9900, 308, 4077, 9900, 2827, 1598,
-				9900, 266, 9900, 9900, 368, 2802, 9900, 9900, 9900, 9900, 9900, 9900, 387, 9900, 9900, 2941, 9900, 2760,
-				270, 264, 265, 9900, 262, 9900, 9900, 381, 2694, 2340, 384, 9900, 9900, 759, 9900, 9900, 9900, 5691, 35,
-				553, 2916, 9900, 9900, 9900, 239, 249, 4745, 700, 9900, 9900, 272, 296, 9900, 238, 246, 247, 248, 250,
-				651, 699, 309, 9900, 9900, 9900, 652, 597, 598, 599, 277, 280, 283, 3249, 2718, 9900, 992, 9900, 9900,
-				4077, 286, 9900, 9900, 646, 240, 242, 244, 815, 9900, 266, 2958, 9900, 9900, 9900, 9900, 9900, 9900,
-				9900, 251, 241, 243, 9900, 9900, 9900, 9900, 262, 270, 264, 265, 9900, 9900, 9900, 9900, 9900, 759,
-				9900, 9900, 600, 597, 598, 599, 9900, 9900, 9900, 9900, 239, 249, 4745, 700, 1997, 9900, 7439, 9900,
-				4334, 238, 246, 247, 248, 250, 651, 699, 3346, 35, 1703, 32, 5364, 4563, 27, 30, 31, 1654, 1590, 374,
-				28, 277, 280, 283, 3249, 9900, 9900, 992, 9900, 9900, 240, 242, 244, 815, 9900, 601, 597, 598, 599,
-				9900, 9900, 9900, 9900, 9900, 251, 241, 243, 5086, 35, 1703, 32, 4863, 9900, 27, 30, 31, 1654, 1590, 26,
-				28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108, 2513, 3483, 9900, 2815, 9900, 2199, 9900, 7439, 4077,
-				354, 1199, 356, 9900, 9900, 9900, 349, 1121, 9900, 6108, 9900, 9900, 9900, 9900, 4077, 9900, 9900, 6084,
-				9900, 9900, 9900, 9900, 9900, 9900, 9900, 262, 9900, 9900, 9900, 562, 563, 568, 9900, 9900, 759, 9900,
-				9900, 9900, 9900, 9900, 378, 592, 9900, 9900, 9900, 239, 249, 4745, 700, 2827, 9900, 9900, 9900, 9900,
-				238, 246, 247, 248, 250, 651, 699, 4956, 35, 1703, 32, 4863, 2941, 27, 30, 31, 1654, 1590, 26, 28, 2249,
-				296, 23, 25, 50, 2263, 635, 76, 77, 240, 242, 244, 815, 9900, 9900, 595, 9900, 9900, 9900, 9900, 9900,
-				9900, 9900, 251, 241, 243, 5086, 35, 1703, 32, 4863, 9900, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296,
-				23, 25, 50, 2263, 106, 76, 77, 108, 3525, 9900, 9900, 9900, 9900, 2449, 9900, 7439, 5086, 35, 1703, 32,
-				4863, 9900, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 108, 3529, 4303,
-				35, 1703, 32, 4863, 9900, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 81,
-				4435, 35, 1703, 32, 4863, 9900, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76,
-				77, 81, 2524, 9900, 9900, 9900, 9900, 4077, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900,
-				9900, 2252, 9900, 9900, 9900, 9900, 4077, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 262, 9900,
-				9900, 9900, 9900, 709, 9900, 9900, 9900, 759, 9900, 9900, 2044, 35, 1509, 424, 4399, 262, 9900, 9900,
-				239, 249, 4745, 700, 9900, 9900, 759, 9900, 710, 238, 246, 247, 248, 250, 651, 699, 6164, 239, 249,
-				4745, 700, 9900, 9900, 9900, 9900, 9900, 238, 246, 247, 248, 250, 651, 699, 9900, 9900, 9900, 49, 2912,
-				240, 242, 244, 815, 4077, 652, 597, 598, 599, 2035, 47, 9900, 9900, 9900, 580, 241, 243, 240, 242, 244,
-				815, 9900, 9900, 2044, 35, 1509, 424, 2768, 266, 9900, 262, 252, 241, 243, 9900, 9900, 9900, 9900, 9900,
-				759, 3027, 9900, 9900, 9900, 77, 269, 264, 265, 9900, 4077, 239, 249, 4745, 700, 652, 597, 598, 599,
-				9900, 238, 246, 247, 248, 250, 651, 699, 3009, 49, 77, 9900, 9900, 4077, 9900, 4077, 9900, 378, 9900,
-				266, 2035, 47, 9900, 9900, 9900, 9900, 2827, 9900, 9900, 9900, 240, 242, 244, 815, 9900, 9900, 647, 264,
-				265, 262, 9900, 378, 7623, 2941, 671, 241, 243, 9900, 759, 9900, 2827, 3137, 9900, 9900, 2865, 9900,
-				9900, 9900, 9900, 239, 249, 4745, 700, 9900, 9900, 9900, 3297, 2941, 238, 246, 247, 248, 250, 651, 699,
-				3106, 9900, 9900, 9900, 9900, 4077, 652, 597, 598, 599, 9900, 9900, 9900, 9900, 9900, 3360, 9900, 9900,
-				690, 680, 9900, 9900, 240, 242, 244, 815, 9900, 9900, 9900, 266, 9900, 262, 9900, 9900, 9900, 9900, 670,
-				241, 243, 9900, 759, 9900, 9900, 9900, 9900, 9900, 270, 264, 265, 9900, 9900, 239, 249, 4745, 700, 9900,
-				693, 9900, 9900, 9900, 238, 246, 247, 248, 250, 651, 699, 5021, 35, 1703, 32, 4863, 9900, 27, 30, 31,
-				1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 86, 76, 77, 240, 242, 244, 815, 9900, 9900, 9900, 9900,
-				9900, 9900, 9900, 9900, 9900, 9900, 669, 241, 243, 5086, 35, 1703, 32, 4863, 9900, 27, 30, 31, 1654,
-				1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 85, 5086, 35, 1703, 32, 4863, 9900, 27, 30, 31,
-				1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 83, 5086, 35, 1703, 32, 4863, 9900, 27,
-				30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 82, 5086, 35, 1703, 32, 4863,
-				9900, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 81, 5086, 35, 1703, 32,
-				4863, 9900, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 80, 5086, 35,
-				1703, 32, 4863, 9900, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 79,
-				5086, 35, 1703, 32, 4863, 9900, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76,
-				77, 78, 5086, 2402, 1703, 2927, 4863, 9900, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263,
-				106, 76, 77, 84, 3203, 9900, 9900, 9900, 9900, 4077, 2962, 9900, 9900, 9900, 9900, 9900, 9900, 9900,
-				9900, 77, 9900, 3300, 9900, 77, 4077, 9900, 4077, 9900, 4077, 9900, 9900, 9900, 9900, 9900, 9900, 262,
-				9900, 652, 597, 598, 599, 9900, 9900, 9900, 759, 9900, 9900, 9900, 9900, 9900, 378, 9900, 262, 9900,
-				378, 239, 249, 4745, 700, 2827, 266, 759, 9900, 2827, 238, 246, 247, 248, 250, 651, 699, 9900, 239, 249,
-				4745, 700, 2941, 278, 264, 265, 2941, 238, 246, 247, 248, 250, 651, 699, 9900, 9900, 9900, 9900, 9900,
-				240, 242, 244, 815, 9900, 9900, 3731, 9900, 9900, 9900, 545, 9900, 9900, 9900, 581, 241, 243, 240, 242,
-				244, 815, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 340, 241, 243, 4566, 35, 1703, 32,
-				4863, 9900, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 104, 5086, 35,
-				1703, 32, 4863, 9900, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76, 77, 110,
-				5086, 35, 1703, 32, 4863, 9900, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 106, 76,
-				77, 109, 5086, 35, 1703, 32, 4863, 9900, 27, 30, 31, 1654, 1590, 26, 28, 2249, 296, 23, 25, 50, 2263,
-				106, 76, 77, 105, 3397, 9900, 9900, 9900, 9900, 4077, 5151, 35, 1703, 32, 4863, 9900, 27, 30, 31, 1654,
-				1590, 26, 28, 2249, 296, 23, 25, 50, 2263, 3864, 76, 77, 9900, 9900, 9900, 262, 9900, 9900, 9900, 9900,
-				9900, 9900, 9900, 9900, 759, 9900, 9900 };
-	}
-
-	public interface BaseAction1 {
-		public final static char baseAction1[] = { 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 239, 249, 4745, 700,
-				9900, 9900, 9900, 9900, 9900, 238, 246, 247, 248, 250, 651, 699, 6270, 35, 1703, 32, 5364, 4411, 27, 30,
-				31, 1654, 1590, 374, 28, 1984, 9900, 9900, 9900, 6022, 4340, 9900, 9900, 9900, 240, 242, 244, 815, 9900,
-				9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 535, 241, 243, 9900, 9900, 9900, 9900, 9900, 262,
-				9900, 9900, 9900, 439, 6086, 9900, 9900, 9900, 5148, 4340, 6086, 9900, 77, 9900, 5148, 4340, 9900, 4077,
-				9900, 2649, 443, 8216, 714, 9900, 9900, 9900, 351, 1710, 356, 9900, 9900, 600, 597, 598, 599, 6282,
-				6118, 600, 597, 598, 599, 6282, 9900, 378, 3059, 9900, 9900, 3464, 9900, 9900, 9900, 9900, 2827, 3464,
-				9900, 9900, 9900, 444, 445, 446, 815, 9900, 9900, 652, 597, 598, 599, 9900, 9900, 2941, 9900, 652, 597,
-				598, 599, 4157, 9900, 9900, 9900, 2299, 716, 9900, 9900, 9900, 9900, 2299, 266, 9900, 9900, 9900, 9900,
-				367, 543, 9900, 266, 9900, 9900, 367, 9900, 9900, 9900, 3041, 4157, 269, 264, 265, 378, 716, 9900, 9900,
-				189, 281, 264, 265, 9900, 2827, 1598, 9900, 9900, 9900, 9900, 9900, 2802, 6930, 395, 9900, 9900, 9900,
-				9900, 4819, 395, 9900, 2941, 378, 2760, 77, 9900, 189, 9900, 9900, 4077, 3591, 2827, 1598, 1341, 5148,
-				3782, 3441, 3466, 2802, 9900, 9900, 3782, 3441, 3466, 2920, 9900, 9900, 7623, 2941, 9900, 2760, 447,
-				449, 9900, 9900, 378, 9900, 600, 597, 598, 599, 4157, 9900, 9900, 2827, 9900, 716, 9900, 9900, 9900,
-				9900, 2988, 77, 3464, 9900, 9900, 9900, 878, 9900, 9900, 9900, 2941, 3591, 9900, 1943, 9900, 5148, 4904,
-				9900, 9900, 9900, 9900, 378, 9900, 3156, 9900, 189, 9900, 690, 680, 9900, 2827, 1598, 378, 596, 2299,
-				9900, 189, 2802, 600, 597, 598, 599, 9900, 9900, 9900, 9900, 367, 2941, 221, 2760, 652, 597, 598, 599,
-				3464, 3253, 9900, 9900, 5370, 9900, 9900, 9900, 5928, 9900, 77, 692, 9900, 878, 9900, 878, 3828, 77,
-				9900, 266, 9900, 9900, 878, 9900, 6930, 9900, 9900, 9900, 652, 597, 598, 599, 2299, 9900, 9900, 9900,
-				284, 264, 265, 3575, 9900, 378, 9900, 189, 367, 189, 679, 7489, 378, 9900, 9900, 266, 189, 9900, 9900,
-				3018, 213, 221, 9900, 9900, 9900, 9900, 9900, 9900, 221, 9900, 9900, 5370, 569, 264, 265, 9900, 9900,
-				9900, 5370, 9900, 4819, 9900, 9900, 9900, 9900, 9900, 4118, 9900, 9900, 9900, 9900, 9900, 9900, 9900,
-				9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 229, 9900, 9900, 9900, 9900,
-				9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900,
-				9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900,
-				9900, 9900, 9900, 9900, 4120, 9900, 9900, 9900, 9900, 9900, 9900, 4200, 9900, 9900, 9900, 9900, 9900,
-				9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900,
-				9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900,
-				9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900,
-				9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900,
-				9900, 9900, 9900, 5518, 230, 9900, 0, 1, 263, 747, 0, 537, 7422, 0, 1, 263, 0, 39, 10602, 0, 39, 10601,
-				697, 0, 39, 9915, 0, 39, 9914, 0, 1, 860, 0, 849, 1, 0, 39, 1, 10602, 0, 39, 1, 10601, 0, 39, 1, 9915,
-				0, 39, 1, 9914, 0, 1, 5597, 0, 1, 818, 0, 263, 253, 0, 1, 1198, 0, 1, 1227, 0, 1, 1358, 0, 10168, 257,
-				0, 10167, 257, 0, 1198, 257, 0, 1227, 257, 0, 1358, 257, 0, 1439, 257, 0, 10273, 257, 0, 10272, 257, 0,
-				10195, 257, 0, 10194, 257, 0, 10193, 257, 0, 10192, 257, 0, 10191, 257, 0, 10190, 257, 0, 10189, 257, 0,
-				10188, 257, 0, 668, 698, 0, 10168, 258, 0, 10167, 258, 0, 1198, 258, 0, 1227, 258, 0, 1358, 258, 0,
-				1439, 258, 0, 10273, 258, 0, 10272, 258, 0, 10195, 258, 0, 10194, 258, 0, 10193, 258, 0, 10192, 258, 0,
-				10191, 258, 0, 10190, 258, 0, 10189, 258, 0, 10188, 258, 0, 10168, 259, 0, 10167, 259, 0, 1198, 259, 0,
-				1227, 259, 0, 1358, 259, 0, 1439, 259, 0, 10273, 259, 0, 10272, 259, 0, 10195, 259, 0, 10194, 259, 0,
-				10193, 259, 0, 10192, 259, 0, 10191, 259, 0, 10190, 259, 0, 10189, 259, 0, 10188, 259, 0, 1358, 430, 0,
-				1227, 430, 0, 1198, 430, 0, 318, 430, 0, 10168, 260, 0, 10167, 260, 0, 1198, 260, 0, 1227, 260, 0, 1358,
-				260, 0, 1439, 260, 0, 10273, 260, 0, 10272, 260, 0, 10195, 260, 0, 10194, 260, 0, 10193, 260, 0, 10192,
-				260, 0, 10191, 260, 0, 10190, 260, 0, 10189, 260, 0, 10188, 260, 0, 318, 323, 0, 10168, 261, 0, 10167,
-				261, 0, 1198, 261, 0, 1227, 261, 0, 1358, 261, 0, 1439, 261, 0, 10273, 261, 0, 10272, 261, 0, 10195,
-				261, 0, 10194, 261, 0, 10193, 261, 0, 10192, 261, 0, 10191, 261, 0, 10190, 261, 0, 10189, 261, 0, 10188,
-				261, 0, 1495, 423, 0, 39, 10601, 0, 10602, 48, 0, 10601, 48, 0, 9915, 48, 0, 9914, 48, 0, 10168, 650, 0,
-				10167, 650, 0, 1198, 650, 0, 1227, 650, 0, 1358, 650, 0, 1439, 650, 0, 10273, 650, 0, 10272, 650, 0,
-				10195, 650, 0, 10194, 650, 0, 10193, 650, 0, 10192, 650, 0, 10191, 650, 0, 10190, 650, 0, 10189, 650, 0,
-				10188, 650, 0, 10168, 275, 0, 10167, 275, 0, 1198, 275, 0, 1227, 275, 0, 1358, 275, 0, 1439, 275, 0,
-				10273, 275, 0, 10272, 275, 0, 10195, 275, 0, 10194, 275, 0, 10193, 275, 0, 10192, 275, 0, 10191, 275, 0,
-				10190, 275, 0, 10189, 275, 0, 10188, 275, 0, 10575, 275, 0, 10574, 275, 0, 10573, 275, 0, 10207, 275, 0,
-				10206, 275, 0, 10205, 275, 0, 10204, 275, 0, 10203, 275, 0, 10202, 275, 0, 10201, 275, 0, 10200, 275, 0,
-				10199, 275, 0, 10198, 275, 0, 10197, 275, 0, 10567, 275, 0, 10566, 275, 0, 39, 275, 10602, 0, 39, 275,
-				10601, 696, 0, 39, 275, 9915, 0, 39, 275, 9914, 0, 9938, 275, 0, 1, 366, 0, 38, 818, 0, 38, 10602, 0,
-				38, 10601, 0, 38, 9915, 0, 38, 9914, 0, 490, 2036, 0, 476, 2136, 0, 1495, 29, 0, 9912, 1, 0, 2193, 353,
-				0, 1358, 660, 0, 1227, 660, 0, 1198, 660, 0, 664, 660, 0, 664, 659, 0, 9963, 75, 0, 9962, 75, 0, 767,
-				75, 0, 1364, 75, 0, 1707, 75, 0, 1839, 75, 0, 1, 662, 0, 1, 480, 0, 494, 949, 0, 493, 1306, 0, 35, 33,
-				0, 47, 37, 0, 2056, 190, 0, 6299, 126, 0, 9912, 419, 0, 9911, 419, 0, 1358, 662, 0, 1227, 662, 0, 1198,
-				662, 0, 1198, 695, 0, 1227, 695, 0, 1358, 695, 0, 10581, 695, 0, 537, 3057, 0, 9938, 1, 263, 0, 39, 1,
-				263, 0, 263, 452, 0, 1, 1653, 0, 1, 10575, 0, 1, 10574, 0, 1, 10573, 0, 1, 10207, 0, 1, 10206, 0, 1,
-				10205, 0, 1, 10204, 0, 1, 10203, 0, 1, 10202, 0, 1, 10201, 0, 1, 10200, 0, 1, 10199, 0, 1, 10198, 0, 1,
-				10197, 0, 1, 10567, 0, 1, 10566, 0, 10602, 37, 0, 10601, 37, 0, 9915, 37, 0, 9914, 37, 0, 43, 9936, 0,
-				43, 37, 0, 2601, 91, 0, 32, 34, 0, 9908, 1, 0, 39, 818, 0, 1358, 366, 0, 1227, 366, 0, 1198, 366, 0, 39,
-				275, 10601, 0, 1, 1209, 0, 1, 2586, 0, 263, 254, 0, 10168, 691, 0, 10167, 691, 0, 1198, 691, 0, 1227,
-				691, 0, 1358, 691, 0, 1439, 691, 0, 10273, 691, 0, 10272, 691, 0, 10195, 691, 0, 10194, 691, 0, 10193,
-				691, 0, 10192, 691, 0, 10191, 691, 0, 10190, 691, 0, 10189, 691, 0, 10188, 691, 0, 1198, 694, 0, 1227,
-				694, 0, 1358, 694, 0, 10581, 694, 0, 9910, 441, 0, 9909, 441, 0, 263, 451, 0, 1, 6613, 0, 1, 7282, 0, 1,
-				7711, 0, 1, 7750, 0, 1, 7773, 0, 1, 7796, 0, 1, 7819, 0, 1, 7842, 0, 1, 7865, 0, 1, 7888, 0, 1, 7911, 0,
-				1, 9922, 0, 1, 9921, 0, 1, 9920, 0, 1, 9919, 0, 1, 9918, 0, 1, 9917, 0, 1, 9916, 0, 1, 2050, 0, 1, 2053,
-				0, 1, 2100, 0, 1, 2147, 0, 1, 2205, 0, 1, 2658, 0, 39, 1, 0, 9912, 649, 419, 0, 9911, 649, 419, 0, 1,
-				263, 3817, 0, 9909, 263, 0, 3818, 263, 0, 9906, 1, 0, 9905, 1, 0, 271, 1220, 0, 424, 32, 0, 423, 29, 0,
-				1358, 481, 0, 1227, 481, 0, 1198, 481, 0, 9938, 481, 0, 39, 481, 0, 366, 481, 0, 6299, 128, 0, 6299,
-				127, 0, 1198, 570, 0, 1227, 570, 0, 1358, 570, 0, 1198, 571, 0, 1227, 571, 0, 1358, 571, 0, 1198, 572,
-				0, 1227, 572, 0, 1358, 572, 0, 1198, 573, 0, 1227, 573, 0, 1358, 573, 0, 1198, 574, 0, 1227, 574, 0,
-				1358, 574, 0, 275, 10602, 0, 275, 10601, 0, 275, 9915, 0, 275, 9914, 0, 9936, 45, 0, 37, 45, 0, 9912,
-				638, 419, 0, 9911, 638, 419, 0, 9912, 636, 419, 0, 9911, 636, 419, 0, 9912, 87, 419, 0, 9911, 87, 419,
-				0, 1, 92, 0, 4000, 263, 0, 10, 12, 0, 9938, 1, 0, 648, 637, 0, 1439, 371, 0, 10273, 371, 0, 10272, 371,
-				0, 2401, 100, 0, 8, 10, 12, 0, 4101, 227, 0, 10602, 2, 37, 0, 10601, 2, 37, 0, 9915, 2, 37, 0, 9914, 2,
-				37, 0, 10602, 36, 0, 10601, 36, 0, 9915, 36, 0, 9914, 36, 0, 1358, 657, 0, 1227, 657, 0, 1198, 657, 0,
-				1358, 656, 0, 1227, 656, 0, 1198, 656, 0, 600, 601, 0, 5078, 103, 0, 4050, 99, 0, 1358, 95, 0, 1227, 95,
-				0, 1198, 95, 0, 9938, 95, 0, 39, 95, 0, 366, 95, 0, 9912, 649, 638, 419, 0, 649, 638, 0, 35, 73, 0,
-				4155, 419, 0, 1358, 657, 658, 0, 1227, 657, 658, 0, 1198, 657, 658, 0, 657, 658, 0, 313, 4350, 0, 8, 12,
-				0, 218, 5723, 0 };
-	}
-
-	public final static char baseAction[] = new char[BaseAction0.baseAction0.length + BaseAction1.baseAction1.length];
-	{
-		int index = 0;
-		System.arraycopy(BaseAction0.baseAction0, 0, baseAction, index, BaseAction0.baseAction0.length);
-		index += BaseAction0.baseAction0.length;
-		System.arraycopy(BaseAction1.baseAction1, 0, baseAction, index, BaseAction1.baseAction1.length);
-	}
-
-	@Override
-	public final int baseAction(int index) {
-		return baseAction[index];
-	}
-
-	public final static char lhs[] = baseAction;
-
-	@Override
-	public final int lhs(int index) {
-		return lhs[index];
-	}
-
-	public interface TermCheck {
-		public final static char termCheck[] = { 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
-				19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
-				45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 68, 69, 70,
-				71, 72, 73, 74, 75, 0, 0, 78, 79, 3, 14, 82, 83, 84, 85, 86, 87, 88, 89, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
-				10, 11, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
-				121, 122, 123, 124, 125, 126, 127, 128, 129, 0, 1, 65, 0, 134, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
-				13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
-				39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
-				65, 66, 0, 68, 69, 70, 73, 0, 1, 74, 75, 76, 77, 0, 12, 80, 81, 82, 83, 12, 85, 0, 87, 0, 0, 90, 91, 92,
-				93, 94, 95, 0, 97, 98, 99, 100, 101, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
-				19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
-				45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 73, 68, 69, 70,
-				85, 78, 86, 74, 75, 76, 77, 113, 114, 80, 81, 82, 83, 0, 85, 0, 87, 0, 105, 90, 91, 92, 93, 94, 95, 112,
-				97, 98, 99, 100, 101, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
-				23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
-				49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 68, 69, 70, 0, 88, 89, 74,
-				75, 76, 77, 0, 0, 80, 81, 82, 83, 5, 85, 0, 87, 106, 107, 90, 91, 92, 93, 94, 95, 110, 97, 98, 99, 100,
-				101, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
-				27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
-				53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 68, 69, 70, 0, 88, 89, 74, 75, 76, 77, 0, 0,
-				80, 81, 82, 83, 6, 85, 7, 8, 9, 0, 90, 91, 92, 93, 94, 95, 0, 97, 98, 99, 100, 101, 0, 1, 2, 3, 4, 5, 6,
-				7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
-				34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
-				60, 61, 62, 63, 64, 65, 66, 0, 68, 69, 70, 106, 107, 0, 74, 75, 76, 77, 5, 0, 80, 81, 82, 83, 0, 85, 7,
-				8, 9, 5, 90, 91, 92, 93, 94, 95, 109, 97, 98, 99, 100, 101, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
-				13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
-				39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
-				65, 66, 0, 68, 69, 70, 106, 107, 0, 74, 75, 76, 77, 5, 0, 80, 81, 82, 83, 0, 85, 7, 8, 9, 5, 90, 91, 92,
-				93, 94, 95, 0, 97, 98, 99, 100, 101, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
-				19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
-				45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 73, 68, 69, 70,
-				106, 107, 0, 74, 75, 76, 77, 5, 0, 80, 81, 82, 83, 0, 85, 7, 8, 9, 5, 90, 91, 92, 93, 94, 95, 0, 97, 98,
-				99, 100, 101, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
-				25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
-				51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 73, 68, 69, 70, 0, 78, 0, 74, 75, 76,
-				77, 0, 0, 80, 81, 82, 83, 6, 85, 7, 8, 9, 0, 90, 91, 92, 93, 94, 95, 0, 97, 98, 99, 100, 101, 0, 1, 2,
-				3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
-				31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
-				57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 68, 69, 70, 84, 78, 0, 74, 75, 76, 77, 5, 0, 80, 81, 82, 83,
-				0, 85, 7, 8, 9, 5, 90, 91, 92, 93, 94, 95, 0, 97, 98, 99, 100, 101, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
-				11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
-				37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
-				63, 64, 65, 66, 73, 68, 69, 70, 0, 0, 108, 74, 75, 76, 77, 6, 0, 80, 81, 82, 83, 13, 85, 7, 8, 9, 0, 90,
-				91, 92, 93, 94, 95, 0, 97, 98, 99, 100, 101, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
-				17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
-				43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 73, 68,
-				69, 70, 84, 0, 0, 74, 75, 76, 77, 5, 0, 80, 81, 82, 83, 0, 85, 7, 8, 9, 5, 90, 91, 92, 93, 94, 95, 0,
-				97, 98, 99, 100, 101, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
-				23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
-				49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 68, 69, 70, 0, 5, 0, 74, 75,
-				76, 77, 84, 0, 80, 81, 82, 83, 13, 85, 7, 8, 9, 0, 90, 91, 92, 93, 94, 95, 23, 97, 98, 99, 100, 101, 0,
-				1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
-				29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
-				55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 68, 69, 70, 0, 0, 0, 74, 75, 76, 77, 5, 0, 80, 81,
-				82, 83, 0, 85, 7, 8, 9, 5, 90, 91, 92, 93, 94, 95, 109, 97, 98, 99, 100, 101, 0, 1, 2, 3, 4, 5, 6, 7, 8,
-				9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
-				35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
-				61, 62, 63, 64, 65, 66, 0, 68, 69, 70, 0, 5, 0, 74, 75, 76, 77, 108, 110, 80, 81, 82, 83, 0, 85, 0, 14,
-				0, 0, 90, 91, 92, 93, 94, 95, 0, 97, 98, 99, 100, 101, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
-				46, 32, 33, 34, 0, 51, 52, 53, 54, 55, 56, 7, 8, 9, 47, 48, 0, 32, 33, 34, 35, 36, 72, 38, 39, 40, 41,
-				42, 43, 44, 45, 75, 47, 48, 49, 50, 32, 33, 34, 35, 36, 0, 38, 39, 40, 41, 42, 43, 44, 45, 65, 0, 1, 2,
-				3, 4, 71, 72, 73, 0, 75, 10, 11, 78, 79, 6, 7, 8, 9, 84, 85, 86, 87, 88, 89, 0, 1, 2, 3, 4, 5, 6, 7, 8,
-				9, 10, 11, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
-				120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 136, 0, 0, 0, 134, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
-				11, 12, 13, 14, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 0, 7, 8, 9, 12, 10, 11, 32, 33, 34, 35, 36, 12, 38, 39,
-				40, 41, 42, 43, 44, 45, 0, 47, 48, 49, 50, 32, 33, 34, 35, 36, 135, 38, 39, 40, 41, 42, 43, 44, 45, 65,
-				0, 1, 2, 3, 4, 71, 72, 73, 0, 75, 10, 0, 78, 79, 84, 7, 8, 9, 84, 85, 86, 87, 88, 89, 0, 1, 2, 3, 4, 5,
-				6, 7, 8, 9, 10, 11, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
-				119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 113, 114, 86, 67, 134, 0, 1, 2, 3, 4, 5, 6, 7, 8,
-				9, 10, 11, 12, 13, 72, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
-				35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
-				61, 62, 63, 64, 0, 66, 0, 68, 69, 70, 6, 5, 0, 74, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 15,
-				16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
-				42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 67, 66, 0,
-				68, 69, 70, 0, 5, 0, 74, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
-				22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 0, 1, 2,
-				3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 1, 2, 3, 4, 65, 66, 67, 68, 69, 70, 0, 1, 2, 3, 4, 76, 77, 86,
-				0, 80, 81, 0, 0, 84, 0, 0, 87, 90, 7, 8, 9, 7, 8, 9, 0, 96, 15, 16, 17, 18, 19, 20, 21, 22, 0, 24, 25,
-				26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 33, 38, 39, 40, 41, 42, 43, 44, 45, 0, 46, 84, 131, 132,
-				133, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
-				27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 0, 1, 2, 3, 4, 5, 6, 7, 8,
-				9, 10, 11, 12, 13, 0, 1, 2, 3, 4, 65, 66, 67, 68, 69, 70, 0, 1, 2, 3, 4, 76, 77, 0, 108, 80, 81, 0, 0,
-				84, 0, 0, 87, 0, 7, 8, 9, 7, 8, 9, 0, 96, 15, 16, 17, 18, 19, 20, 21, 22, 0, 24, 25, 26, 27, 28, 29, 30,
-				31, 32, 33, 34, 35, 36, 0, 38, 39, 40, 41, 42, 43, 44, 45, 23, 46, 84, 131, 132, 133, 0, 1, 2, 3, 4, 5,
-				6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
-				33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 0, 76, 104, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
-				12, 13, 14, 65, 66, 67, 68, 69, 70, 0, 1, 2, 3, 4, 76, 77, 0, 0, 80, 81, 32, 33, 34, 35, 36, 87, 38, 39,
-				40, 41, 42, 43, 44, 45, 96, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 67, 0, 65, 0, 1, 2, 3,
-				4, 71, 72, 7, 8, 9, 12, 13, 12, 79, 0, 1, 2, 3, 4, 135, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
-				14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
-				40, 41, 42, 43, 44, 45, 84, 67, 72, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 65, 66, 67, 68,
-				69, 70, 0, 1, 2, 3, 4, 76, 77, 0, 0, 80, 81, 32, 33, 34, 35, 36, 0, 38, 39, 40, 41, 42, 43, 44, 45, 96,
-				0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 32, 33, 34, 0, 65, 67, 0, 1, 2, 3, 4, 72, 6, 46, 75, 0,
-				10, 11, 79, 0, 1, 2, 3, 4, 135, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
-				20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
-				0, 0, 67, 71, 0, 5, 0, 1, 2, 3, 4, 7, 8, 9, 0, 67, 10, 73, 0, 65, 66, 67, 68, 69, 70, 71, 0, 0, 14, 0,
-				76, 77, 5, 0, 80, 81, 32, 33, 34, 35, 36, 14, 38, 39, 40, 41, 42, 43, 44, 45, 96, 0, 1, 2, 3, 4, 5, 6,
-				7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
-				34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 71, 0, 72, 73, 0, 0, 5, 0, 78, 79, 78, 7, 8, 9, 0, 1, 2,
-				3, 4, 65, 66, 67, 68, 69, 70, 0, 105, 0, 111, 0, 76, 77, 5, 112, 80, 81, 32, 33, 34, 35, 36, 87, 38, 39,
-				40, 41, 42, 43, 44, 45, 96, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
-				21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 72,
-				0, 72, 73, 0, 0, 5, 0, 78, 0, 78, 7, 8, 9, 7, 8, 9, 109, 0, 65, 66, 67, 68, 69, 70, 115, 116, 0, 0, 0,
-				76, 77, 14, 5, 80, 81, 32, 33, 34, 35, 36, 87, 38, 39, 40, 41, 42, 43, 44, 45, 96, 0, 1, 2, 3, 4, 5, 6,
-				7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
-				34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 79, 71, 0, 72, 0, 73, 0, 0, 78, 88, 89, 7, 8, 9, 0, 1,
-				2, 3, 4, 65, 66, 67, 68, 69, 70, 0, 0, 0, 0, 0, 76, 77, 102, 103, 80, 81, 32, 33, 34, 35, 36, 87, 38,
-				39, 40, 41, 42, 43, 44, 45, 96, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
-				20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
-				0, 0, 1, 71, 0, 0, 78, 7, 8, 9, 105, 7, 8, 9, 84, 0, 84, 112, 0, 65, 66, 67, 68, 69, 70, 0, 0, 0, 0, 14,
-				76, 77, 5, 32, 80, 81, 32, 33, 34, 35, 36, 14, 38, 39, 40, 41, 42, 43, 44, 45, 96, 0, 1, 2, 3, 4, 5, 6,
-				7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
-				34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 71, 0, 72, 73, 0, 87, 0, 0, 78, 79, 0, 7, 8, 9, 13, 0,
-				88, 89, 110, 65, 66, 67, 68, 69, 70, 0, 105, 0, 0, 14, 76, 77, 5, 112, 80, 81, 32, 33, 34, 35, 36, 14,
-				38, 39, 40, 41, 42, 43, 44, 45, 96, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
-				19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
-				45, 72, 0, 72, 0, 0, 87, 5, 0, 5, 79, 0, 7, 8, 9, 0, 84, 0, 104, 108, 65, 66, 67, 68, 69, 70, 0, 0, 0,
-				12, 0, 76, 77, 5, 0, 80, 81, 32, 33, 34, 35, 36, 14, 38, 39, 40, 41, 42, 43, 44, 45, 96, 0, 1, 2, 3, 4,
-				5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
-				32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 71, 88, 89, 71, 0, 88, 89, 71, 0, 79, 0, 7, 8,
-				9, 104, 5, 88, 89, 10, 65, 66, 67, 68, 69, 70, 0, 0, 0, 0, 0, 76, 77, 113, 114, 80, 81, 32, 33, 34, 35,
-				36, 0, 38, 39, 40, 41, 42, 43, 44, 45, 96, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
-				18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
-				44, 45, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 84, 71, 88, 89, 0, 65, 66, 67, 68, 69, 70, 0, 0,
-				0, 0, 0, 76, 77, 14, 5, 80, 81, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 96, 0, 1, 2, 3, 4, 5, 6,
-				7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
-				34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 79, 0, 0, 1, 0, 84, 5, 6, 7, 8, 9, 72, 0, 12, 13, 14,
-				14, 88, 89, 65, 66, 67, 68, 69, 70, 0, 14, 0, 0, 0, 76, 77, 5, 5, 80, 81, 32, 33, 34, 109, 0, 0, 1, 2,
-				3, 4, 5, 6, 46, 0, 96, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
-				30, 31, 72, 73, 0, 35, 65, 37, 78, 79, 79, 0, 1, 2, 3, 4, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
-				57, 58, 59, 60, 61, 62, 63, 64, 0, 1, 2, 3, 4, 0, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 82, 83, 0, 10, 11,
-				12, 13, 0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 0, 67, 110, 0, 111, 37,
-				6, 7, 8, 9, 47, 48, 12, 13, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
-				0, 1, 2, 3, 4, 5, 6, 0, 0, 74, 10, 11, 0, 78, 0, 71, 67, 82, 83, 0, 1, 2, 3, 4, 5, 6, 14, 0, 14, 10, 11,
-				12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 0, 1, 2, 3, 4, 37, 6, 7,
-				8, 9, 0, 0, 12, 13, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 0, 1, 2,
-				3, 4, 75, 6, 7, 8, 9, 75, 0, 12, 13, 71, 87, 130, 82, 83, 0, 1, 2, 3, 4, 5, 6, 0, 0, 0, 10, 11, 12, 13,
-				14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 0, 0, 130, 35, 78, 37, 0, 1, 2,
-				3, 4, 84, 6, 0, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 73, 0, 1, 2,
-				3, 4, 5, 6, 0, 74, 67, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
-				30, 31, 0, 1, 2, 3, 4, 37, 6, 7, 8, 9, 0, 0, 78, 111, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
-				58, 59, 60, 61, 62, 63, 64, 86, 0, 1, 2, 3, 4, 5, 6, 0, 74, 75, 10, 11, 0, 1, 2, 3, 4, 5, 6, 78, 0, 87,
-				10, 11, 12, 13, 6, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 0, 1, 2, 3, 4,
-				37, 6, 7, 8, 9, 47, 48, 12, 13, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
-				64, 0, 1, 2, 3, 4, 0, 6, 0, 0, 74, 0, 1, 2, 3, 4, 5, 6, 82, 83, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18,
-				19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 0, 1, 2, 3, 4, 37, 6, 7, 8, 9, 0, 0, 12, 13, 46, 47,
-				48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 23, 0, 1, 2, 3, 4, 5, 6, 78, 74, 75,
-				10, 11, 12, 13, 71, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 0, 1, 2, 3, 4,
-				37, 0, 7, 8, 9, 66, 67, 0, 0, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
-				64, 0, 1, 2, 3, 4, 32, 33, 34, 0, 74, 0, 1, 2, 3, 4, 5, 6, 82, 83, 0, 10, 11, 12, 13, 0, 15, 16, 17, 18,
-				19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 0, 1, 2, 3, 4, 37, 6, 0, 71, 71, 10, 11, 0, 0, 46,
-				47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 0, 1, 2, 3, 4, 0, 73, 82, 83,
-				74, 0, 1, 2, 3, 4, 5, 6, 82, 83, 14, 10, 11, 12, 13, 0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
-				27, 28, 29, 30, 31, 0, 1, 2, 3, 4, 37, 6, 0, 0, 72, 10, 11, 0, 5, 46, 47, 48, 49, 50, 51, 52, 53, 54,
-				55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 131, 132, 133, 0, 130, 75, 0, 82, 83, 74, 0, 1, 2, 3, 4, 5, 6,
-				82, 83, 13, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 0,
-				1, 2, 3, 4, 37, 6, 7, 8, 9, 73, 0, 0, 0, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
-				62, 63, 64, 72, 0, 1, 2, 3, 4, 5, 6, 0, 74, 75, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
-				24, 25, 26, 27, 28, 29, 30, 31, 0, 67, 0, 0, 0, 37, 0, 5, 5, 0, 1, 2, 3, 4, 46, 47, 48, 49, 50, 51, 52,
-				53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 86, 0, 1, 2, 3, 4, 5, 6, 66, 0, 0, 10, 11, 12, 13, 14,
-				15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 0, 1, 2, 3, 4, 37, 6, 7, 8, 9, 67,
-				73, 72, 111, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 0, 0, 1, 2, 3,
-				4, 5, 6, 0, 0, 75, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
-				31, 0, 67, 0, 0, 0, 37, 0, 1, 2, 3, 4, 7, 8, 9, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
-				60, 61, 62, 63, 64, 0, 0, 1, 2, 3, 4, 5, 6, 130, 0, 0, 10, 11, 12, 13, 6, 15, 16, 17, 18, 19, 20, 21,
-				22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 0, 1, 2, 3, 4, 37, 6, 67, 71, 71, 10, 11, 0, 111, 46, 47, 48,
-				49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 0, 1, 2, 3, 4, 5, 6, 0, 74, 74, 10, 11,
-				12, 13, 71, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 88, 89, 67, 0, 0, 37, 0,
-				1, 2, 3, 4, 0, 0, 0, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 0, 1,
-				2, 3, 4, 5, 6, 72, 0, 0, 10, 11, 12, 13, 0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
-				30, 31, 0, 1, 2, 3, 4, 37, 67, 0, 67, 0, 1, 2, 3, 4, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
-				59, 60, 61, 62, 63, 64, 0, 1, 2, 3, 4, 5, 6, 0, 0, 74, 10, 11, 12, 13, 6, 15, 16, 17, 18, 19, 20, 21,
-				22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 88, 89, 67, 0, 0, 37, 0, 1, 2, 3, 4, 67, 36, 71, 46, 47, 48, 49,
-				50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 0, 1, 2, 3, 4, 5, 6, 0, 0, 74, 10, 11, 12,
-				13, 6, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 0, 0, 0, 0, 0, 37, 0, 6, 67,
-				71, 6, 5, 0, 0, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 0, 1, 2, 3,
-				4, 5, 6, 102, 103, 74, 10, 11, 12, 13, 71, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
-				30, 31, 0, 0, 0, 0, 67, 37, 0, 71, 6, 71, 71, 0, 6, 0, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
-				58, 59, 60, 61, 62, 63, 64, 0, 1, 2, 3, 4, 5, 6, 102, 103, 36, 10, 11, 12, 13, 46, 15, 16, 17, 18, 19,
-				20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 0, 0, 0, 67, 0, 37, 0, 5, 71, 71, 0, 5, 0, 0, 46, 47,
-				48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 0, 1, 2, 3, 4, 5, 6, 102, 103, 0,
-				10, 11, 12, 13, 46, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 0, 0, 0, 67, 0,
-				37, 5, 131, 132, 133, 0, 0, 0, 0, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
-				63, 64, 0, 1, 2, 3, 4, 5, 6, 0, 0, 0, 10, 11, 12, 13, 0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
-				27, 28, 29, 30, 31, 88, 89, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
-				56, 57, 58, 59, 60, 61, 62, 63, 64, 0, 1, 2, 3, 4, 5, 6, 0, 0, 0, 10, 11, 12, 13, 0, 15, 16, 17, 18, 19,
-				20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 0, 0, 0, 86, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 46, 47, 48,
-				49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 0, 1, 2, 3, 4, 5, 6, 0, 0, 0, 10, 11,
-				12, 13, 0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 0, 0, 0, 86, 0, 37, 0, 0,
-				0, 0, 0, 0, 0, 0, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 0, 1, 2,
-				3, 4, 5, 6, 0, 0, 0, 10, 11, 12, 13, 0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
-				31, 0, 84, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
-				60, 61, 62, 63, 64, 0, 1, 2, 3, 4, 5, 6, 0, 0, 0, 10, 11, 12, 13, 0, 15, 16, 17, 18, 19, 20, 21, 22, 23,
-				24, 25, 26, 27, 28, 29, 30, 31, 0, 0, 0, 86, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 46, 47, 48, 49, 50, 51, 52,
-				53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 0, 1, 2, 3, 4, 5, 6, 0, 0, 0, 10, 11, 12, 13, 0, 15, 16,
-				17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 23, 84, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0,
-				46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 0, 1, 2, 3, 4, 0, 6, 7, 8,
-				9, 66, 67, 0, 0, 0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
-				36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 0, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, 1, 2, 3, 4, 86, 6, 7, 8, 9,
-				66, 0, 68, 69, 70, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
-				36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 0, 6, 7, 8, 9, 66,
-				0, 68, 69, 70, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
-				37, 38, 39, 40, 41, 42, 43, 44, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 0, 6, 7, 8, 9, 66, 0,
-				68, 69, 70, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
-				38, 39, 40, 41, 42, 43, 44, 45, 0, 0, 0, 1, 2, 3, 4, 0, 0, 0, 0, 1, 2, 3, 4, 0, 14, 7, 8, 9, 66, 0, 68,
-				69, 70, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 38,
-				39, 40, 41, 42, 43, 44, 45, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 1, 2, 3, 4, 0, 14, 7, 8, 9, 66, 75, 68,
-				69, 70, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 38,
-				39, 40, 41, 42, 43, 44, 45, 0, 0, 1, 0, 0, 5, 0, 0, 73, 0, 10, 65, 12, 13, 79, 14, 0, 14, 14, 73, 66, 0,
-				68, 69, 70, 0, 0, 0, 0, 0, 86, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 14, 0, 14, 0, 47, 48, 49, 50, 0, 0,
-				0, 0, 0, 0, 57, 0, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 71, 72, 73, 0, 0, 73, 86,
-				78, 75, 79, 0, 82, 83, 0, 0, 86, 0, 88, 89, 87, 0, 86, 0, 0, 14, 65, 0, 0, 0, 0, 0, 102, 103, 75, 105,
-				106, 107, 108, 109, 110, 14, 0, 113, 114, 115, 0, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 0,
-				0, 129, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
-				14, 79, 0, 32, 33, 34, 35, 36, 0, 38, 39, 40, 41, 42, 43, 44, 45, 79, 32, 33, 34, 35, 36, 0, 38, 39, 40,
-				41, 42, 43, 44, 45, 0, 0, 0, 0, 65, 84, 0, 0, 0, 0, 104, 72, 0, 0, 14, 0, 0, 0, 79, 65, 14, 0, 0, 0, 0,
-				104, 72, 0, 0, 14, 0, 0, 0, 79, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 14, 14, 12, 13, 0, 1, 2, 3, 4, 5, 6, 7, 8,
-				9, 0, 0, 12, 13, 0, 0, 0, 65, 32, 33, 34, 35, 36, 0, 38, 39, 40, 41, 42, 43, 44, 45, 32, 33, 34, 35, 36,
-				79, 38, 39, 40, 41, 42, 43, 44, 45, 79, 65, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 72, 73, 12, 13, 79, 0, 78, 0,
-				1, 2, 3, 4, 5, 6, 72, 73, 0, 10, 11, 0, 78, 0, 32, 33, 34, 35, 36, 0, 38, 39, 40, 41, 42, 43, 44, 45, 0,
-				0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 12, 13, 0, 0, 1, 2, 3, 4, 0, 6, 7, 8, 9, 72, 73, 12, 13, 14, 0, 78,
-				32, 33, 34, 35, 36, 0, 38, 39, 40, 41, 42, 43, 44, 45, 0, 0, 0, 2, 0, 14, 0, 0, 7, 8, 9, 0, 0, 0, 0, 0,
-				15, 16, 17, 18, 19, 20, 21, 22, 0, 14, 72, 73, 0, 0, 0, 0, 78, 32, 33, 34, 35, 36, 0, 38, 39, 40, 41,
-				42, 43, 44, 45, 0, 79, 2, 0, 0, 0, 0, 7, 8, 9, 0, 0, 0, 0, 0, 15, 16, 17, 18, 19, 20, 21, 22, 79, 0, 0,
-				104, 0, 0, 65, 0, 0, 32, 33, 34, 35, 36, 73, 38, 39, 40, 41, 42, 43, 44, 45, 0, 1, 2, 3, 4, 5, 6, 86, 0,
-				0, 10, 11, 0, 0, 14, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 116, 117,
-				118, 119, 120, 121, 122, 123, 124, 125, 126, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 0, 1, 2, 3, 4, 5, 6,
-				0, 0, 0, 10, 11, 72, 73, 14, 0, 0, 0, 78, 79, 0, 0, 0, 0, 0, 5, 86, 0, 1, 2, 3, 4, 5, 6, 0, 14, 2, 10,
-				11, 84, 0, 14, 0, 0, 104, 0, 0, 0, 0, 15, 16, 17, 18, 19, 20, 21, 22, 0, 1, 2, 3, 4, 5, 6, 0, 65, 0, 10,
-				11, 49, 50, 0, 84, 0, 0, 0, 0, 0, 71, 0, 71, 7, 8, 9, 0, 78, 71, 78, 14, 0, 14, 14, 72, 78, 73, 0, 0, 0,
-				14, 72, 79, 0, 0, 0, 0, 0, 79, 0, 0, 102, 103, 102, 103, 0, 0, 0, 0, 102, 103, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 72, 0, 0, 0, 0, 127, 128, 127, 128, 0, 65, 0, 0, 127, 128, 0, 0, 0, 73, 0, 129, 73, 75, 0, 0, 134,
-				0, 79, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static char termCheck[] = TermCheck.termCheck;
-
-	@Override
-	public final int termCheck(int index) {
-		return termCheck[index];
-	}
-
-	public interface TermAction {
-		public final static char termAction[] = { 0, 9900, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841,
-				8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841,
-				8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841,
-				8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841,
-				8841, 8841, 8841, 8841, 8841, 9900, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 1, 9900, 8841, 8841,
-				756, 9910, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 1, 8771, 8759, 8763, 8767, 860, 8756, 8790,
-				8784, 8787, 818, 5597, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841,
-				8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 8841, 9900, 3598,
-				9909, 9900, 8841, 9900, 9619, 8737, 8737, 8737, 8737, 8737, 8730, 8737, 8737, 8737, 8737, 8737, 8737,
-				9758, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9623, 1, 115, 1, 1, 1, 748, 9900, 3262, 1, 9911,
-				2489, 721, 420, 7352, 757, 10108, 1, 1, 3762, 2655, 111, 9907, 1, 35, 3863, 3260, 3389, 3054, 3816,
-				5147, 9900, 3861, 1108, 3837, 1789, 3826, 10, 9761, 9761, 9761, 9761, 9761, 9761, 9761, 9761, 9761,
-				9761, 9761, 9761, 9761, 9761, 9761, 9761, 9761, 9761, 9761, 9761, 9761, 9761, 9761, 9761, 9761, 9761,
-				9761, 9761, 9761, 9761, 9761, 9761, 9761, 9761, 9761, 9761, 9761, 9761, 9761, 9761, 9761, 9761, 9761,
-				9761, 9761, 9761, 9761, 9761, 9761, 9761, 9761, 9761, 9761, 9761, 9761, 9761, 9761, 9761, 9761, 9761,
-				9761, 9761, 9761, 9761, 9761, 9761, 3862, 9761, 9761, 9761, 1983, 8149, 1774, 9761, 9761, 9761, 9761,
-				7321, 5153, 9761, 9761, 9761, 9761, 129, 9761, 121, 9761, 137, 8080, 9761, 9761, 9761, 9761, 9761, 9761,
-				8103, 9761, 9761, 9761, 9761, 9761, 8, 9782, 9782, 9782, 9782, 9782, 9782, 9782, 9782, 9782, 9782, 9782,
-				9782, 9782, 9782, 9782, 9782, 9782, 9782, 9782, 9782, 9782, 9782, 9782, 9782, 9782, 9782, 9782, 9782,
-				9782, 9782, 9782, 9782, 9782, 9782, 9782, 9782, 9782, 9782, 9782, 9782, 9782, 9782, 9782, 9782, 9782,
-				9782, 9782, 9782, 9782, 9782, 9782, 9782, 9782, 9782, 9782, 9782, 9782, 9782, 9782, 9782, 9782, 9782,
-				9782, 9782, 9782, 9782, 9900, 9782, 9782, 9782, 9900, 6652, 6683, 9782, 9782, 9782, 9782, 9900, 9900,
-				9782, 9782, 9782, 9782, 782, 9782, 141, 9782, 5983, 5954, 9782, 9782, 9782, 9782, 9782, 9782, 3331,
-				9782, 9782, 9782, 9782, 9782, 9900, 9619, 8737, 8737, 8737, 8737, 8737, 8730, 8737, 8737, 8737, 8737,
-				8737, 8737, 9626, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9623, 1, 149, 1, 1, 1, 9900, 6652, 6683,
-				1, 9911, 2489, 721, 39, 333, 757, 10108, 1, 1, 9938, 2655, 1358, 1198, 1227, 135, 3863, 3260, 3389,
-				3054, 3816, 5147, 9900, 3861, 1108, 3837, 1789, 3826, 9900, 9619, 8737, 8737, 8737, 8737, 8737, 8730,
-				8737, 8737, 8737, 8737, 8737, 8737, 9626, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9623, 1, 130, 1,
-				1, 1, 1166, 1076, 9900, 1, 9911, 2489, 721, 4215, 665, 757, 10108, 1, 1, 9900, 2655, 1358, 1198, 1227,
-				1741, 3863, 3260, 3389, 3054, 3816, 5147, 3677, 3861, 1108, 3837, 1789, 3826, 9900, 9619, 8737, 8737,
-				8737, 8737, 8737, 8730, 8737, 8737, 8737, 8737, 8737, 8737, 9626, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 9623, 1, 150, 1, 1, 1, 5983, 5954, 9900, 1, 9911, 2489, 721, 4252, 348, 757, 10108, 1, 1, 9900,
-				2655, 1358, 1198, 1227, 1939, 3863, 3260, 3389, 3054, 3816, 5147, 343, 3861, 1108, 3837, 1789, 3826,
-				9900, 9619, 8737, 8737, 8737, 8737, 8737, 8730, 8737, 8737, 8737, 8737, 8737, 8737, 9626, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9623, 1, 5871, 1, 1, 1, 1166, 1076, 9900, 1, 9911, 2489, 721, 2193, 662,
-				757, 10108, 1, 1, 9900, 2655, 9329, 9335, 9332, 5617, 3863, 3260, 3389, 3054, 3816, 5147, 9900, 3861,
-				1108, 3837, 1789, 3826, 9900, 9619, 8737, 8737, 8737, 8737, 8737, 8730, 8737, 8737, 8737, 8737, 8737,
-				8737, 9626, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9623, 1, 3862, 1, 1, 1, 9900, 4154, 9900, 1,
-				9911, 2489, 721, 9900, 653, 757, 10108, 1, 1, 1120, 2655, 1358, 1198, 1227, 484, 3863, 3260, 3389, 3054,
-				3816, 5147, 9900, 3861, 1108, 3837, 1789, 3826, 9900, 9619, 8737, 8737, 8737, 8737, 8737, 8730, 8737,
-				8737, 8737, 8737, 8737, 8737, 9626, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9623, 1, 133, 1, 1, 1,
-				4098, 7934, 9900, 1, 9911, 2489, 721, 1220, 654, 757, 10108, 1, 1, 632, 2655, 1358, 1198, 1227, 3017,
-				3863, 3260, 3389, 3054, 3816, 5147, 190, 3861, 1108, 3837, 1789, 3826, 9900, 9619, 8737, 8737, 8737,
-				8737, 8737, 8730, 8737, 8737, 8737, 8737, 8737, 8737, 9626, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				9623, 1, 9317, 1, 1, 1, 131, 9900, 4608, 1, 9911, 2489, 721, 2213, 431, 757, 10108, 1, 1, 5050, 2655,
-				1358, 1198, 1227, 1, 3863, 3260, 3389, 3054, 3816, 5147, 629, 3861, 1108, 3837, 1789, 3826, 9900, 9619,
-				8737, 8737, 8737, 8737, 8737, 8730, 8737, 8737, 8737, 8737, 8737, 8737, 9626, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 9623, 1, 1604, 1, 1, 1, 2, 9900, 619, 1, 9911, 2489, 721, 2915, 366, 757, 10108, 1, 1,
-				91, 2655, 9445, 9451, 9448, 9433, 3863, 3260, 3389, 3054, 3816, 5147, 9900, 3861, 1108, 3837, 1789,
-				3826, 9900, 9619, 8737, 8737, 8737, 8737, 8737, 8730, 8737, 8737, 8737, 8737, 8737, 8737, 9626, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9623, 1, 606, 1, 1, 1, 151, 1510, 337, 1, 9911, 2489, 721, 10337,
-				366, 757, 10108, 1, 1, 5119, 2655, 1358, 1198, 1227, 155, 3863, 3260, 3389, 3054, 3816, 5147, 10236,
-				3861, 1108, 3837, 1789, 3826, 9900, 9619, 8737, 8737, 8737, 8737, 8737, 8730, 8737, 8737, 8737, 8737,
-				8737, 8737, 9626, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9623, 1, 9900, 1, 1, 1, 157, 153, 1, 1,
-				9911, 2489, 721, 7949, 655, 757, 10108, 1, 1, 271, 2655, 1358, 1198, 1227, 9635, 3863, 3260, 3389, 3054,
-				3816, 5147, 4531, 3861, 1108, 3837, 1789, 3826, 9900, 9619, 8737, 8737, 8737, 8737, 8737, 8730, 8737,
-				8737, 8737, 8737, 8737, 8737, 9626, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9623, 1, 353, 1, 1, 1,
-				9900, 9263, 9900, 1, 9911, 2489, 721, 4703, 4500, 757, 10108, 1, 1, 118, 2655, 9900, 9912, 9900, 9900,
-				3863, 3260, 3389, 3054, 3816, 5147, 218, 3861, 1108, 3837, 1789, 3826, 9900, 9311, 9311, 9311, 9311,
-				9311, 9311, 9311, 9311, 9311, 9311, 9311, 9311, 9311, 9311, 9919, 10272, 10273, 1439, 258, 9921, 9922,
-				9920, 9916, 9917, 9918, 8856, 8850, 8853, 7189, 4159, 9900, 9311, 9311, 9311, 9311, 9311, 1613, 9311,
-				9311, 9311, 9311, 9311, 9311, 9311, 9311, 9911, 9311, 9311, 9311, 9311, 8865, 8862, 8859, 8883, 8871,
-				9900, 8889, 8868, 8880, 8847, 8874, 8877, 8886, 8844, 9311, 38, 9248, 9239, 9242, 9245, 9311, 9311,
-				9311, 431, 9311, 9236, 5597, 9311, 9311, 424, 1358, 1198, 1227, 9311, 9311, 9311, 9311, 9311, 9311, 366,
-				8750, 8740, 9054, 8747, 860, 849, 1358, 1198, 1227, 818, 5597, 9311, 9311, 9311, 9311, 9311, 9311, 9311,
-				9311, 9311, 9311, 9311, 9311, 9311, 9311, 9311, 9311, 9311, 9311, 9311, 9311, 9311, 9311, 9311, 9311,
-				9311, 9311, 9311, 9311, 9897, 9900, 9900, 9900, 9311, 9900, 9436, 9436, 9436, 9436, 9436, 9436, 9436,
-				9436, 9436, 9436, 9436, 9436, 9436, 9436, 9900, 9900, 117, 9900, 259, 9900, 9914, 10602, 10601, 9915,
-				9900, 8904, 8898, 8901, 7352, 818, 5597, 9436, 9436, 9436, 9436, 9436, 5769, 9436, 9436, 9436, 9436,
-				9436, 9436, 9436, 9436, 328, 9436, 9436, 9436, 9436, 8913, 8910, 8907, 8931, 8919, 8729, 8937, 8916,
-				8928, 8895, 8922, 8925, 8934, 8892, 9436, 37, 9314, 9314, 9314, 9314, 9436, 9436, 9436, 661, 9436, 9314,
-				355, 9436, 9436, 3436, 1358, 1198, 1227, 9436, 9436, 9436, 9436, 9436, 9436, 662, 8750, 8740, 9054,
-				8747, 860, 849, 1358, 1198, 1227, 818, 5597, 9436, 9436, 9436, 9436, 9436, 9436, 9436, 9436, 9436, 9436,
-				9436, 9436, 9436, 9436, 9436, 9436, 9436, 9436, 9436, 9436, 9436, 9436, 9436, 9436, 9436, 9436, 9436,
-				9436, 7321, 5153, 3832, 2335, 9436, 39, 8750, 8740, 8743, 8747, 6776, 849, 1358, 1198, 1227, 7911, 5597,
-				7819, 7842, 1613, 10199, 10197, 10205, 10201, 10202, 10200, 10203, 10204, 1193, 10566, 10567, 10206,
-				10207, 10198, 10573, 10574, 10575, 10272, 10273, 1439, 10190, 10194, 8155, 10188, 10195, 10191, 10167,
-				10193, 10192, 10189, 10168, 9919, 7796, 7773, 7888, 7865, 9921, 9922, 9920, 9916, 9917, 9918, 7750,
-				2053, 2205, 2100, 7711, 2147, 2050, 7282, 9900, 10334, 9900, 4893, 10335, 10336, 2393, 3705, 9900, 2006,
-				39, 8750, 8740, 9054, 8747, 6776, 849, 1358, 1198, 1227, 7911, 5597, 7819, 7842, 9900, 10199, 10197,
-				10205, 10201, 10202, 10200, 10203, 10204, 1193, 10566, 10567, 10206, 10207, 10198, 10573, 10574, 10575,
-				10272, 10273, 1439, 10190, 10194, 8155, 10188, 10195, 10191, 10167, 10193, 10192, 10189, 10168, 9919,
-				7796, 7773, 7888, 7865, 9921, 9922, 9920, 9916, 9917, 9918, 7750, 2053, 2205, 2100, 7711, 2147, 2050,
-				7282, 1725, 10334, 346, 4893, 10335, 10336, 9900, 1130, 227, 2006, 9900, 9357, 9357, 9357, 9357, 263,
-				9353, 8737, 8737, 8737, 263, 263, 263, 263, 9361, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9900, 8771, 8759, 8763, 8767, 860, 8756, 8790, 8784, 8787, 818,
-				5597, 9233, 9233, 9900, 9066, 9057, 9060, 9063, 263, 1, 9350, 1, 1, 1, 9900, 9914, 10602, 10601, 9915,
-				4210, 2202, 1445, 9900, 757, 10348, 257, 631, 263, 453, 626, 452, 9786, 8805, 8799, 8802, 1358, 1198,
-				1227, 9900, 10436, 10199, 10197, 10205, 10201, 10202, 10200, 10203, 10204, 134, 10566, 10567, 10206,
-				10207, 10198, 10573, 10574, 10575, 8814, 8811, 8808, 8832, 8820, 10525, 8838, 8817, 8829, 8796, 8823,
-				8826, 8835, 8793, 9900, 2826, 3785, 10371, 10372, 10373, 9900, 9357, 9357, 9357, 9357, 263, 9353, 8737,
-				8737, 8737, 263, 263, 263, 263, 9533, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 9900, 8771, 8759, 8763, 8767, 860, 8756, 8790, 8784, 8787, 818, 5597, 9299,
-				9299, 9900, 15475, 15384, 15409, 15412, 263, 1, 9350, 1, 1, 1, 48, 9066, 9057, 9060, 9063, 4210, 2202,
-				393, 4608, 757, 10348, 570, 9900, 263, 657, 9900, 451, 9900, 9674, 9668, 9671, 9817, 9823, 9820, 9900,
-				10436, 10199, 10197, 10205, 10201, 10202, 10200, 10203, 10204, 337, 10566, 10567, 10206, 10207, 10198,
-				10573, 10574, 10575, 10272, 10273, 1439, 10190, 10194, 9900, 10188, 10195, 10191, 10167, 10193, 10192,
-				10189, 10168, 10236, 2355, 3785, 10371, 10372, 10373, 9900, 8737, 8737, 8737, 8737, 263, 8737, 8730,
-				8737, 8737, 263, 263, 263, 263, 8781, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 15410,
-				1, 1, 1, 1, 15539, 1, 15217, 1, 1, 1, 9900, 836, 10292, 9900, 29, 423, 423, 423, 423, 9641, 423, 423,
-				423, 423, 423, 423, 9641, 9641, 9641, 263, 1, 8734, 1, 1, 1, 433, 9914, 10602, 10601, 9915, 3256, 721,
-				9900, 9900, 757, 10145, 423, 423, 423, 423, 423, 253, 423, 423, 423, 423, 423, 423, 423, 423, 10436,
-				9900, 9900, 9835, 9835, 9835, 9835, 9835, 9835, 9835, 9835, 9835, 9835, 9835, 9835, 9835, 494, 7510,
-				9900, 9641, 37, 9314, 9314, 9314, 9314, 9257, 9641, 1358, 1198, 1227, 4954, 4910, 366, 9641, 9900,
-				15475, 15384, 15409, 15412, 253, 9900, 8737, 8737, 8737, 8737, 263, 8737, 8730, 8737, 8737, 263, 263,
-				263, 263, 263, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 15410, 1, 1, 1, 1, 15539, 1,
-				15217, 1, 1, 1, 9835, 9936, 9305, 9900, 638, 649, 649, 649, 649, 649, 649, 649, 649, 649, 649, 649,
-				9867, 9867, 9862, 263, 1, 8734, 1, 1, 1, 327, 9914, 10602, 10601, 9915, 3256, 721, 9900, 711, 757,
-				10145, 649, 649, 649, 649, 649, 9900, 649, 649, 649, 649, 649, 649, 649, 649, 10436, 344, 8771, 8759,
-				8763, 8767, 860, 8756, 8790, 8784, 8787, 818, 5597, 9233, 9233, 10272, 10273, 1439, 423, 9867, 7577,
-				9900, 8750, 8740, 9054, 8747, 649, 849, 2826, 9326, 551, 9442, 5597, 9867, 37, 9314, 9314, 9314, 9314,
-				254, 9900, 8737, 8737, 8737, 8737, 263, 8737, 8730, 8737, 8737, 263, 263, 263, 263, 263, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 15410, 1, 1, 1, 1, 15539, 1, 15217, 1, 1, 1, 9900, 9900,
-				2700, 9051, 260, 8444, 9900, 9914, 10602, 10601, 9915, 8964, 8958, 8961, 9900, 9936, 2237, 1228, 114,
-				263, 1, 8734, 1, 1, 1, 1786, 490, 1, 9904, 9900, 3256, 721, 4473, 9900, 757, 10145, 8973, 8970, 8967,
-				8991, 8979, 676, 8997, 8976, 8988, 8955, 8982, 8985, 8994, 8952, 10436, 9900, 8737, 8737, 8737, 8737,
-				263, 8737, 8730, 8737, 8737, 263, 263, 263, 263, 9464, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 15410, 1, 1, 1, 1, 15539, 1, 15217, 1, 1, 1, 9251, 9900, 1613, 676, 261, 136, 8507, 139,
-				676, 676, 10448, 9015, 9009, 9012, 36, 9814, 9805, 9808, 9811, 263, 1, 8734, 1, 1, 1, 493, 8080, 1,
-				9903, 9900, 3256, 721, 4473, 8103, 757, 10145, 9024, 9021, 9018, 9042, 9030, 254, 9048, 9027, 9039,
-				9006, 9033, 9036, 9045, 9003, 10436, 9900, 8737, 8737, 8737, 8737, 263, 8737, 8730, 8737, 8737, 263,
-				263, 263, 263, 9464, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 15410, 1, 1, 1, 1,
-				15539, 1, 15217, 1, 1, 1, 9308, 9900, 1613, 576, 650, 9900, 8505, 656, 576, 9900, 3873, 9081, 9075,
-				9078, 9826, 9832, 9829, 3677, 9900, 263, 1, 8734, 1, 1, 1, 788, 781, 9900, 382, 485, 3256, 721, 9906,
-				3141, 757, 10145, 9090, 9087, 9084, 9108, 9096, 254, 9114, 9093, 9105, 9072, 9099, 9102, 9111, 9069,
-				10436, 9900, 8737, 8737, 8737, 8737, 263, 8737, 8730, 8737, 8737, 263, 263, 263, 263, 9464, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 15410, 1, 1, 1, 1, 15539, 1, 15217, 1, 1, 1, 9905, 6454,
-				113, 1613, 691, 4147, 9900, 9900, 6508, 6652, 6683, 9479, 9473, 9476, 326, 1378, 1378, 1378, 1378, 263,
-				1, 8734, 1, 1, 1, 9900, 9900, 9900, 9900, 29, 3256, 721, 6427, 6400, 757, 10145, 9488, 9485, 9482, 9506,
-				9494, 254, 9512, 9491, 9503, 9470, 9497, 9500, 9509, 9467, 10436, 9900, 8737, 8737, 8737, 8737, 263,
-				8737, 8730, 8737, 8737, 263, 263, 263, 263, 263, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 15410, 1, 1, 1, 1, 15539, 1, 15217, 1, 1, 1, 454, 608, 10509, 1495, 571, 138, 3876, 1358, 1198,
-				1227, 8080, 9683, 9677, 9680, 3498, 1, 460, 8103, 112, 263, 1, 8734, 1, 1, 1, 640, 476, 1, 9900, 9439,
-				3256, 721, 4473, 10510, 757, 10145, 10272, 10273, 1439, 10190, 10194, 376, 10188, 10195, 10191, 10167,
-				10193, 10192, 10189, 10168, 10436, 9900, 8737, 8737, 8737, 8737, 263, 8737, 8730, 8737, 8737, 263, 263,
-				263, 263, 263, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 15410, 1, 1, 1, 1, 15539, 1,
-				15217, 1, 1, 1, 9254, 132, 1613, 376, 572, 9907, 9900, 154, 376, 376, 1, 9692, 9686, 9689, 5050, 9900,
-				6652, 6683, 3331, 263, 1, 8734, 1, 1, 1, 383, 8080, 1, 464, 9908, 3256, 721, 4473, 8103, 757, 10145,
-				10272, 10273, 1439, 10190, 10194, 9629, 10188, 10195, 10191, 10167, 10193, 10192, 10189, 10168, 10436,
-				9900, 8737, 8737, 8737, 8737, 263, 8737, 8730, 8737, 8737, 263, 263, 263, 263, 263, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 15410, 1, 1, 1, 1, 15539, 1, 15217, 1, 1, 1, 1613, 9900, 1613,
-				9900, 573, 9907, 8514, 1, 2099, 9632, 639, 9701, 9695, 9698, 125, 1591, 116, 10294, 4703, 263, 1, 8734,
-				1, 1, 1, 124, 29, 9900, 7352, 9900, 3256, 721, 1137, 9900, 757, 10145, 10272, 10273, 1439, 10190, 10194,
-				9906, 10188, 10195, 10191, 10167, 10193, 10192, 10189, 10168, 10436, 9900, 8737, 8737, 8737, 8737, 263,
-				8737, 8730, 8737, 8737, 263, 263, 263, 263, 263, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-				1, 1, 15410, 1, 1, 1, 1, 15539, 1, 15217, 1, 1, 1, 9257, 6652, 6683, 2343, 574, 6652, 6683, 5329, 9900,
-				9905, 9900, 9710, 9704, 9707, 4360, 2201, 6652, 6683, 2237, 263, 1, 8734, 1, 1, 1, 123, 9900, 9900,
-				9900, 9900, 3256, 721, 7321, 5153, 757, 10145, 10272, 10273, 1439, 10190, 10194, 9900, 10188, 10195,
-				10191, 10167, 10193, 10192, 10189, 10168, 10436, 9900, 8737, 8737, 8737, 8737, 263, 8737, 8730, 8737,
-				8737, 263, 263, 263, 263, 263, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 15410, 1, 1,
-				1, 1, 15539, 1, 15217, 1, 1, 1, 9900, 8771, 8759, 8763, 8767, 860, 8756, 8790, 8784, 8787, 818, 5597,
-				9299, 9299, 5219, 6751, 6652, 6683, 9900, 263, 1, 8734, 1, 1, 1, 9900, 122, 156, 9900, 9900, 3256, 721,
-				9906, 2251, 757, 10145, 380, 8750, 8740, 9054, 8747, 6481, 849, 1358, 1198, 1227, 818, 5597, 366, 366,
-				10436, 9900, 8737, 8737, 8737, 8737, 263, 8737, 8730, 8737, 8737, 263, 263, 263, 263, 263, 1, 1, 1, 1,
-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 15410, 1, 1, 1, 1, 15539, 1, 15217, 1, 1, 1, 9905, 39,
-				9900, 3545, 371, 1722, 4473, 9938, 1358, 1198, 1227, 1613, 441, 366, 366, 380, 9906, 6652, 6683, 263, 1,
-				8734, 1, 1, 1, 9900, 9527, 9900, 9900, 9900, 3256, 721, 2351, 4350, 757, 10145, 9776, 9773, 9770, 4531,
-				158, 1, 8750, 8740, 9054, 8747, 6776, 849, 3465, 9900, 10436, 7911, 5597, 7376, 7842, 9904, 10199,
-				10197, 10205, 10201, 10202, 10200, 10203, 10204, 1653, 10566, 10567, 10206, 10207, 10198, 10573, 10574,
-				10575, 1613, 380, 9900, 1660, 9530, 6613, 380, 380, 9905, 9900, 9424, 9415, 9418, 9421, 9919, 7796,
-				7773, 7888, 7865, 9921, 9922, 9920, 9916, 9917, 9918, 7750, 2053, 2205, 2100, 7711, 2147, 2050, 7282,
-				323, 9000, 9000, 9000, 9000, 120, 318, 1358, 1198, 1227, 1, 8771, 8759, 8763, 8767, 2658, 849, 39, 39,
-				9900, 7911, 5597, 7819, 7842, 47, 9400, 9406, 9382, 9394, 9391, 9397, 9388, 9385, 9364, 9412, 9409,
-				9379, 9376, 9403, 9373, 9370, 9367, 39, 9936, 4500, 583, 9903, 6613, 9938, 1358, 1198, 1227, 7189, 4159,
-				366, 366, 9919, 7796, 7773, 7888, 7865, 9921, 9922, 9920, 9916, 9917, 9918, 7750, 2053, 2205, 2100,
-				7711, 2147, 2050, 7282, 1, 8771, 8759, 8763, 8767, 8753, 8756, 9900, 9900, 2006, 8778, 8775, 8, 552, 1,
-				7555, 1474, 39, 39, 1, 8771, 8759, 8763, 8767, 9605, 8756, 9894, 9900, 9260, 9566, 8775, 9554, 9557,
-				9912, 9400, 9406, 9382, 9394, 9391, 9397, 9388, 9385, 9364, 9412, 9409, 9379, 9376, 9403, 9373, 9370,
-				9367, 480, 9302, 9302, 9302, 9302, 9536, 9302, 9302, 9302, 9302, 9900, 9900, 9302, 9302, 9578, 9551,
-				9548, 9563, 9560, 9572, 9569, 9575, 9587, 9584, 9581, 9545, 9593, 9602, 9596, 9542, 9599, 9590, 9539,
-				481, 9656, 9656, 9656, 9656, 9911, 9653, 9644, 9650, 9647, 9911, 397, 9659, 9659, 7579, 9894, 1, 9608,
-				9608, 39, 8750, 8740, 9054, 8747, 6776, 849, 9900, 37, 9900, 7911, 5597, 7399, 7842, 9904, 10199, 10197,
-				10205, 10201, 10202, 10200, 10203, 10204, 1653, 10566, 10567, 10206, 10207, 10198, 10573, 10574, 10575,
-				9900, 9900, 4113, 3599, 3879, 6613, 9900, 8750, 8740, 9054, 8747, 5291, 9938, 405, 9919, 7796, 7773,
-				7888, 7865, 9921, 9922, 9920, 9916, 9917, 9918, 7750, 2053, 2205, 2100, 7711, 2147, 2050, 7282, 4445,
-				39, 8750, 8740, 9054, 8747, 6776, 849, 9900, 2006, 9936, 7911, 5597, 7819, 7842, 9873, 10199, 10197,
-				10205, 10201, 10202, 10200, 10203, 10204, 1653, 10566, 10567, 10206, 10207, 10198, 10573, 10574, 10575,
-				659, 9278, 9278, 9278, 9278, 6613, 664, 1358, 1198, 1227, 9900, 9900, 3881, 9903, 9919, 7796, 7773,
-				7888, 7865, 9921, 9922, 9920, 9916, 9917, 9918, 7750, 2053, 2205, 2100, 7711, 2147, 2050, 7282, 1846, 1,
-				8771, 8759, 8763, 8767, 860, 8756, 119, 2006, 9326, 818, 5597, 174, 8750, 8740, 9054, 8747, 6776, 849,
-				10391, 9900, 9907, 7911, 5597, 7819, 7842, 2493, 10199, 10197, 10205, 10201, 10202, 10200, 10203, 10204,
-				1653, 10566, 10567, 10206, 10207, 10198, 10573, 10574, 10575, 92, 9755, 9755, 9755, 9755, 6613, 9755,
-				9755, 9755, 9755, 7189, 4159, 9755, 9755, 9919, 7796, 7773, 7888, 7865, 9921, 9922, 9920, 9916, 9917,
-				9918, 7750, 2053, 2205, 2100, 7711, 2147, 2050, 7282, 9900, 8750, 8740, 9054, 8747, 9900, 9938, 9900,
-				9900, 2006, 39, 8750, 8740, 9054, 8747, 6776, 849, 39, 39, 9900, 7911, 5597, 7819, 7842, 9323, 10199,
-				10197, 10205, 10201, 10202, 10200, 10203, 10204, 1653, 10566, 10567, 10206, 10207, 10198, 10573, 10574,
-				10575, 95, 9856, 9856, 9856, 9856, 6613, 9853, 9844, 9850, 9847, 1, 9900, 9859, 9859, 9919, 7796, 7773,
-				7888, 7865, 9921, 9922, 9920, 9916, 9917, 9918, 7750, 2053, 2205, 2100, 7711, 2147, 2050, 7282, 9458, 1,
-				8750, 8740, 9054, 8747, 6776, 849, 10377, 2006, 9326, 7911, 5597, 7819, 7842, 1495, 10199, 10197, 10205,
-				10201, 10202, 10200, 10203, 10204, 1653, 10566, 10567, 10206, 10207, 10198, 10573, 10574, 10575, 333,
-				9914, 10602, 10601, 9915, 6613, 371, 1358, 1198, 1227, 9461, 3468, 9900, 9900, 9919, 7796, 7773, 7888,
-				7865, 9921, 9922, 9920, 9916, 9917, 9918, 7750, 2053, 2205, 2100, 7711, 2147, 2050, 7282, 9900, 9914,
-				10602, 10601, 9915, 10272, 10273, 1439, 320, 2006, 614, 8750, 8740, 9054, 8747, 6776, 849, 39, 39, 475,
-				7911, 5597, 7819, 7842, 410, 10199, 10197, 10205, 10201, 10202, 10200, 10203, 10204, 1653, 10566, 10567,
-				10206, 10207, 10198, 10573, 10574, 10575, 9900, 8750, 8740, 9054, 8747, 6613, 849, 9900, 1786, 3264,
-				818, 5597, 100, 9900, 9919, 7796, 7773, 7888, 7865, 9921, 9922, 9920, 9916, 9917, 9918, 7750, 2053,
-				2205, 2100, 7711, 2147, 2050, 7282, 9900, 9066, 9057, 9060, 9063, 1, 10219, 8057, 921, 2006, 1, 8771,
-				8759, 8763, 8767, 2658, 849, 39, 39, 9912, 7911, 5597, 7819, 7842, 9900, 9400, 9406, 9382, 9394, 9391,
-				9397, 9388, 9385, 9364, 9412, 9409, 9379, 9376, 9403, 9373, 9370, 9367, 9900, 8750, 8740, 9054, 8747,
-				6613, 849, 9900, 9900, 9779, 818, 5597, 326, 4651, 9919, 7796, 7773, 7888, 7865, 9921, 9922, 9920, 9916,
-				9917, 9918, 7750, 2053, 2205, 2100, 7711, 2147, 2050, 7282, 10371, 10372, 10373, 99, 4113, 9911, 152,
-				8057, 921, 2006, 39, 8750, 8740, 9054, 8747, 6776, 849, 39, 39, 5119, 7911, 5597, 7819, 7842, 9323,
-				10199, 10197, 10205, 10201, 10202, 10200, 10203, 10204, 1653, 10566, 10567, 10206, 10207, 10198, 10573,
-				10574, 10575, 430, 8949, 8949, 8949, 8949, 6613, 318, 8940, 8946, 8943, 13490, 9900, 9900, 403, 9919,
-				7796, 7773, 7888, 7865, 9921, 9922, 9920, 9916, 9917, 9918, 7750, 2053, 2205, 2100, 7711, 2147, 2050,
-				7282, 9841, 39, 8750, 8740, 9054, 8747, 6776, 849, 9900, 2006, 9326, 7911, 5597, 7819, 7842, 9904,
-				10199, 10197, 10205, 10201, 10202, 10200, 10203, 10204, 1653, 10566, 10567, 10206, 10207, 10198, 10573,
-				10574, 10575, 9900, 318, 103, 9900, 462, 6613, 100, 9838, 3778, 43, 9430, 9430, 9430, 9430, 9919, 7796,
-				7773, 7888, 7865, 9921, 9922, 9920, 9916, 9917, 9918, 7750, 2053, 2205, 2100, 7711, 2147, 2050, 7282,
-				1896, 39, 8750, 8740, 9054, 8747, 6776, 849, 2685, 9900, 582, 7911, 5597, 7819, 7842, 9323, 10199,
-				10197, 10205, 10201, 10202, 10200, 10203, 10204, 1653, 10566, 10567, 10206, 10207, 10198, 10573, 10574,
-				10575, 660, 9275, 9275, 9275, 9275, 6613, 664, 9266, 9272, 9269, 9427, 2452, 9779, 9903, 9919, 7796,
-				7773, 7888, 7865, 9921, 9922, 9920, 9916, 9917, 9918, 7750, 2053, 2205, 2100, 7711, 2147, 2050, 7282,
-				9900, 39, 8750, 8740, 9054, 8747, 6776, 849, 9900, 9900, 9326, 7911, 5597, 7819, 7842, 9904, 10199,
-				10197, 10205, 10201, 10202, 10200, 10203, 10204, 1653, 10566, 10567, 10206, 10207, 10198, 10573, 10574,
-				10575, 9900, 664, 9900, 73, 431, 6613, 9900, 15285, 15285, 15285, 15285, 1358, 1198, 1227, 9919, 7796,
-				7773, 7888, 7865, 9921, 9922, 9920, 9916, 9917, 9918, 7750, 2053, 2205, 2100, 7711, 2147, 2050, 7282,
-				594, 39, 8750, 8740, 9054, 8747, 6776, 849, 4113, 432, 145, 7911, 5597, 7819, 7842, 423, 10199, 10197,
-				10205, 10201, 10202, 10200, 10203, 10204, 1653, 10566, 10567, 10206, 10207, 10198, 10573, 10574, 10575,
-				9900, 8750, 8740, 9054, 8747, 6613, 849, 9936, 9870, 1495, 9442, 5597, 9900, 9903, 9919, 7796, 7773,
-				7888, 7865, 9921, 9922, 9920, 9916, 9917, 9918, 7750, 2053, 2205, 2100, 7711, 2147, 2050, 7282, 39,
-				8750, 8740, 9054, 8747, 6776, 849, 9900, 4157, 2006, 7911, 5597, 7819, 7842, 1495, 10199, 10197, 10205,
-				10201, 10202, 10200, 10203, 10204, 1653, 10566, 10567, 10206, 10207, 10198, 10573, 10574, 10575, 6652,
-				6683, 2718, 9900, 1, 6613, 45, 9728, 9728, 9728, 9728, 9900, 9900, 9900, 9919, 7796, 7773, 7888, 7865,
-				9921, 9922, 9920, 9916, 9917, 9918, 7750, 2053, 2205, 2100, 7711, 2147, 2050, 7282, 39, 8750, 8740,
-				9054, 8747, 2658, 849, 1711, 9900, 144, 7911, 5597, 7819, 7842, 9900, 10199, 10197, 10205, 10201, 10202,
-				10200, 10203, 10204, 1653, 10566, 10567, 10206, 10207, 10198, 10573, 10574, 10575, 37, 9314, 9314, 9314,
-				9314, 6613, 835, 2, 9725, 9900, 9801, 9789, 9793, 9797, 9919, 7796, 7773, 7888, 7865, 9921, 9922, 9920,
-				9916, 9917, 9918, 7750, 2053, 2205, 2100, 7711, 2147, 2050, 7282, 39, 8750, 8740, 9054, 8747, 2658, 849,
-				9900, 39, 2006, 7911, 5597, 7819, 7842, 9938, 10199, 10197, 10205, 10201, 10202, 10200, 10203, 10204,
-				1653, 10566, 10567, 10206, 10207, 10198, 10573, 10574, 10575, 6652, 6683, 2185, 146, 9900, 6613, 9900,
-				16686, 16577, 16591, 16639, 9936, 1996, 37, 9919, 7796, 7773, 7888, 7865, 9921, 9922, 9920, 9916, 9917,
-				9918, 7750, 2053, 2205, 2100, 7711, 2147, 2050, 7282, 39, 8750, 8740, 9054, 8747, 6776, 849, 9900, 48,
-				2006, 7911, 5597, 7819, 7842, 10602, 10199, 10197, 10205, 10201, 10202, 10200, 10203, 10204, 1653,
-				10566, 10567, 10206, 10207, 10198, 10573, 10574, 10575, 9900, 48, 1, 148, 48, 6613, 9900, 10601, 9936,
-				6454, 9915, 1537, 9900, 9900, 9919, 7796, 7773, 7888, 7865, 9921, 9922, 9920, 9916, 9917, 9918, 7750,
-				2053, 2205, 2100, 7711, 2147, 2050, 7282, 39, 8750, 8740, 9054, 8747, 6029, 849, 6427, 6400, 2006, 7911,
-				5597, 7819, 7842, 10602, 10199, 10197, 10205, 10201, 10202, 10200, 10203, 10204, 1653, 10566, 10567,
-				10206, 10207, 10198, 10573, 10574, 10575, 9900, 9900, 48, 147, 874, 6613, 39, 10601, 9914, 6454, 9915,
-				9900, 9938, 9900, 9919, 7796, 7773, 7888, 7865, 9921, 9922, 9920, 9916, 9917, 9918, 7750, 2053, 2205,
-				2100, 7711, 2147, 2050, 7282, 39, 8750, 8740, 9054, 8747, 6971, 849, 6427, 6400, 1610, 7911, 5597, 7819,
-				7842, 2149, 10199, 10197, 10205, 10201, 10202, 10200, 10203, 10204, 1653, 10566, 10567, 10206, 10207,
-				10198, 10573, 10574, 10575, 9900, 1, 313, 7644, 9900, 6613, 103, 9891, 9914, 6454, 9900, 9838, 9900,
-				9900, 9919, 7796, 7773, 7888, 7865, 9921, 9922, 9920, 9916, 9917, 9918, 7750, 2053, 2205, 2100, 7711,
-				2147, 2050, 7282, 39, 8750, 8740, 9054, 8747, 8336, 849, 6427, 6400, 142, 7911, 5597, 7819, 7842, 877,
-				10199, 10197, 10205, 10201, 10202, 10200, 10203, 10204, 1653, 10566, 10567, 10206, 10207, 10198, 10573,
-				10574, 10575, 9900, 9900, 9900, 877, 9900, 6613, 7230, 10371, 10372, 10373, 9900, 9900, 9900, 9900,
-				9919, 7796, 7773, 7888, 7865, 9921, 9922, 9920, 9916, 9917, 9918, 7750, 2053, 2205, 2100, 7711, 2147,
-				2050, 7282, 39, 8750, 8740, 9054, 8747, 8363, 849, 9900, 9900, 9900, 7911, 5597, 7819, 7842, 544, 10199,
-				10197, 10205, 10201, 10202, 10200, 10203, 10204, 1653, 10566, 10567, 10206, 10207, 10198, 10573, 10574,
-				10575, 6652, 6683, 9900, 9900, 9900, 6613, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9919, 7796,
-				7773, 7888, 7865, 9921, 9922, 9920, 9916, 9917, 9918, 7750, 2053, 2205, 2100, 7711, 2147, 2050, 7282,
-				39, 8750, 8740, 9054, 8747, 6776, 849, 9900, 9900, 9900, 7911, 5597, 7819, 7842, 542, 10199, 10197,
-				10205, 10201, 10202, 10200, 10203, 10204, 1653, 10566, 10567, 10206, 10207, 10198, 10573, 10574, 10575,
-				9900, 9900, 9900, 7953, 9900, 6613, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9919, 7796, 7773,
-				7888, 7865, 9921, 9922, 9920, 9916, 9917, 9918, 7750, 2053, 2205, 2100, 7711, 2147, 2050, 7282, 39,
-				8750, 8740, 9054, 8747, 8433, 849, 9900, 9900, 9900, 7911, 5597, 7819, 7842, 9900, 10199, 10197, 10205,
-				10201, 10202, 10200, 10203, 10204, 1653, 10566, 10567, 10206, 10207, 10198, 10573, 10574, 10575, 9900,
-				9900, 9900, 8273, 9900, 6613, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9919, 7796, 7773, 7888,
-				7865, 9921, 9922, 9920, 9916, 9917, 9918, 7750, 2053, 2205, 2100, 7711, 2147, 2050, 7282, 39, 8750,
-				8740, 9054, 8747, 2658, 849, 9900, 9900, 9900, 7911, 5597, 7819, 7842, 456, 10199, 10197, 10205, 10201,
-				10202, 10200, 10203, 10204, 1653, 10566, 10567, 10206, 10207, 10198, 10573, 10574, 10575, 9900, 3894,
-				9900, 9900, 9900, 6613, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9919, 7796, 7773, 7888, 7865,
-				9921, 9922, 9920, 9916, 9917, 9918, 7750, 2053, 2205, 2100, 7711, 2147, 2050, 7282, 39, 8750, 8740,
-				9054, 8747, 2658, 849, 9900, 9900, 9900, 7911, 5597, 7819, 7842, 9900, 10199, 10197, 10205, 10201,
-				10202, 10200, 10203, 10204, 1653, 10566, 10567, 10206, 10207, 10198, 10573, 10574, 10575, 9900, 9900,
-				9900, 3941, 9900, 6613, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9919, 7796, 7773, 7888, 7865,
-				9921, 9922, 9920, 9916, 9917, 9918, 7750, 2053, 2205, 2100, 7711, 2147, 2050, 7282, 39, 8750, 8740,
-				9054, 8747, 6776, 849, 9900, 9900, 1, 7911, 5597, 7819, 7842, 9900, 10199, 10197, 10205, 10201, 10202,
-				10200, 10203, 10204, 1653, 10566, 10567, 10206, 10207, 10198, 10573, 10574, 10575, 9458, 3649, 9900,
-				9900, 9900, 6613, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9919, 7796, 7773, 7888, 7865, 9921,
-				9922, 9920, 9916, 9917, 9918, 7750, 2053, 2205, 2100, 7711, 2147, 2050, 7282, 9900, 8750, 8740, 8743,
-				8747, 9900, 9938, 1358, 1198, 1227, 9461, 3468, 9900, 9900, 9900, 10199, 10197, 10205, 10201, 10202,
-				10200, 10203, 10204, 1103, 10566, 10567, 10206, 10207, 10198, 10573, 10574, 10575, 10272, 10273, 1439,
-				10190, 10194, 4122, 10188, 10195, 10191, 10167, 10193, 10192, 10189, 10168, 9900, 9900, 9900, 9900,
-				9900, 9900, 9900, 5363, 9900, 9900, 275, 9226, 9213, 9217, 9222, 1774, 9230, 9129, 9123, 9126, 10334,
-				9900, 4893, 10335, 10336, 9198, 9204, 9180, 9192, 9189, 9195, 9186, 9183, 1103, 9210, 9207, 9177, 9174,
-				9201, 9171, 9168, 9165, 9138, 9135, 9132, 9156, 9144, 4122, 9162, 9141, 9153, 9120, 9147, 9150, 9159,
-				9117, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 8750, 8740, 9054, 8747, 9900,
-				9938, 1358, 1198, 1227, 10334, 9900, 4893, 10335, 10336, 10199, 10197, 10205, 10201, 10202, 10200,
-				10203, 10204, 1103, 10566, 10567, 10206, 10207, 10198, 10573, 10574, 10575, 10272, 10273, 1439, 10190,
-				10194, 4122, 10188, 10195, 10191, 10167, 10193, 10192, 10189, 10168, 9900, 9900, 9900, 9900, 9900, 9900,
-				9900, 9900, 9900, 9900, 275, 9226, 9213, 9454, 9222, 9900, 9230, 9129, 9123, 9126, 10334, 9900, 4893,
-				10335, 10336, 9198, 9204, 9180, 9192, 9189, 9195, 9186, 9183, 1103, 9210, 9207, 9177, 9174, 9201, 9171,
-				9168, 9165, 9138, 9135, 9132, 9156, 9144, 4122, 9162, 9141, 9153, 9120, 9147, 9150, 9159, 9117, 9900,
-				9900, 9900, 9914, 10602, 10601, 9915, 9900, 9900, 9900, 9900, 9914, 10602, 10601, 9915, 9900, 9912,
-				1358, 1198, 1227, 10334, 9900, 4893, 10335, 10336, 10199, 10197, 10205, 10201, 10202, 10200, 10203,
-				10204, 1299, 10566, 10567, 10206, 10207, 10198, 10573, 10574, 10575, 10272, 10273, 1439, 10190, 10194,
-				9900, 10188, 10195, 10191, 10167, 10193, 10192, 10189, 10168, 139, 9900, 9900, 9900, 9900, 9906, 9900,
-				9900, 9900, 9900, 275, 9722, 9713, 9716, 9719, 9900, 9910, 9129, 9123, 9126, 10334, 9911, 4893, 10335,
-				10336, 9198, 9204, 9180, 9192, 9189, 9195, 9186, 9183, 1299, 9210, 9207, 9177, 9174, 9201, 9171, 9168,
-				9165, 9138, 9135, 9132, 9156, 9144, 9900, 9162, 9141, 9153, 9120, 9147, 9150, 9159, 9117, 1, 9900, 2903,
-				9900, 649, 2157, 546, 9900, 1345, 9900, 10405, 9909, 10399, 10403, 9905, 9906, 9900, 9908, 9611, 5871,
-				10334, 9900, 4893, 10335, 10336, 9900, 9900, 9900, 9900, 638, 2608, 1, 8771, 8759, 8763, 8767, 860,
-				8756, 8790, 8784, 8787, 818, 5597, 9731, 9900, 344, 9900, 10397, 10398, 10428, 10429, 9900, 9900, 9900,
-				9900, 9900, 9900, 10406, 9900, 788, 781, 2558, 2508, 2458, 2408, 2358, 2308, 2258, 2208, 2158, 2106,
-				10408, 793, 10430, 9900, 9900, 1395, 3735, 10409, 9615, 9905, 9900, 2302, 2339, 9900, 9900, 10407, 9900,
-				10419, 10418, 9907, 9900, 1728, 9900, 9900, 9906, 344, 1, 9900, 9900, 9900, 9900, 10424, 10425, 9735,
-				10431, 10422, 10423, 10402, 10404, 10426, 398, 9900, 10400, 10401, 10427, 9900, 10412, 10413, 10414,
-				10410, 10411, 10420, 10421, 10416, 10415, 10417, 9900, 9900, 10432, 32, 424, 424, 424, 424, 9638, 424,
-				424, 424, 424, 424, 424, 9638, 9638, 9638, 637, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648,
-				9767, 9767, 9767, 9905, 9900, 424, 424, 424, 424, 424, 9900, 424, 424, 424, 424, 424, 424, 424, 424,
-				398, 648, 648, 648, 648, 648, 9900, 648, 648, 648, 648, 648, 648, 648, 648, 1, 9900, 9900, 9900, 9638,
-				5435, 1, 9900, 9900, 9900, 398, 9638, 9900, 9900, 9910, 1, 9900, 9900, 9638, 9767, 194, 9900, 9900,
-				9900, 9900, 4003, 648, 9900, 9900, 196, 1, 1, 9900, 9767, 37, 10602, 10602, 10602, 10602, 10602, 10602,
-				10602, 10602, 10602, 224, 590, 10602, 10602, 37, 10601, 10601, 10601, 10601, 10601, 10601, 10601, 10601,
-				10601, 9900, 9900, 10601, 10601, 9900, 9900, 9900, 9909, 10602, 10602, 10602, 10602, 10602, 9900, 10602,
-				10602, 10602, 10602, 10602, 10602, 10602, 10602, 10601, 10601, 10601, 10601, 10601, 194, 10601, 10601,
-				10601, 10601, 10601, 10601, 10601, 10601, 196, 224, 37, 9915, 9915, 9915, 9915, 9915, 9915, 9915, 9915,
-				9915, 10602, 10602, 9915, 9915, 590, 9900, 10602, 1, 8771, 8759, 8763, 8767, 860, 8756, 10601, 10601,
-				9900, 818, 5597, 9900, 10601, 9900, 9915, 9915, 9915, 9915, 9915, 9900, 9915, 9915, 9915, 9915, 9915,
-				9915, 9915, 9915, 9900, 37, 9914, 9914, 9914, 9914, 9914, 9914, 9914, 9914, 9914, 9900, 9900, 9914,
-				9914, 9900, 1, 9608, 9608, 9608, 9608, 9900, 9764, 8790, 8784, 8787, 9915, 9915, 366, 366, 398, 9900,
-				9915, 9914, 9914, 9914, 9914, 9914, 1, 9914, 9914, 9914, 9914, 9914, 9914, 9914, 9914, 9900, 695, 9900,
-				9347, 9900, 9906, 9900, 9900, 9344, 9338, 9341, 9900, 9900, 9900, 159, 9900, 10583, 10586, 10582, 10588,
-				10589, 10587, 10584, 10585, 9900, 9910, 9914, 9914, 9900, 9900, 9900, 9900, 9914, 10272, 10273, 1439,
-				10190, 10194, 9900, 10188, 10195, 10191, 10167, 10193, 10192, 10189, 10168, 694, 398, 9524, 9900, 9900,
-				9900, 9900, 9521, 9515, 9518, 9900, 9900, 9900, 9900, 9900, 10583, 10586, 10582, 10588, 10589, 10587,
-				10584, 10585, 9905, 9900, 9900, 398, 9900, 9900, 9909, 9900, 9900, 10272, 10273, 1439, 10190, 10194,
-				6096, 10188, 10195, 10191, 10167, 10193, 10192, 10189, 10168, 1, 8771, 8759, 8763, 8767, 6481, 8756,
-				3303, 9900, 9900, 818, 5597, 9900, 9900, 402, 1, 8771, 8759, 8763, 8767, 860, 8756, 8790, 8784, 8787,
-				818, 5597, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 9900, 4307, 1999, 3217, 3189, 3103, 3075,
-				2989, 2961, 2875, 2847, 2761, 2733, 1, 8771, 8759, 8763, 8767, 860, 8756, 8790, 8784, 8787, 818, 5597,
-				1, 8771, 8759, 8763, 8767, 8753, 8756, 126, 9900, 128, 8778, 8775, 1613, 402, 9910, 127, 9900, 9900,
-				402, 402, 75, 9900, 9900, 9900, 9900, 9293, 1796, 1, 8771, 8759, 8763, 8767, 6481, 8756, 9900, 9906,
-				10581, 818, 5597, 3785, 9900, 9629, 9900, 9900, 402, 9900, 9900, 9900, 9900, 10583, 10586, 10582, 10588,
-				10589, 10587, 10584, 10585, 1, 8771, 8759, 8763, 8767, 6481, 8756, 9900, 9909, 9900, 818, 5597, 9284,
-				9281, 9900, 3785, 9900, 9900, 9900, 636, 9900, 6326, 9900, 6326, 9876, 9884, 9880, 87, 9320, 6326, 9662,
-				9888, 9900, 9739, 9906, 9296, 9665, 1956, 9900, 9900, 9900, 9747, 1613, 9905, 9900, 9900, 9900, 9900,
-				9900, 9632, 9900, 9900, 6251, 5909, 6251, 5909, 9900, 9900, 9900, 9900, 6251, 5909, 9900, 9900, 9900,
-				9900, 9900, 9900, 9900, 9900, 9900, 9900, 1613, 9900, 9900, 9900, 9900, 4255, 1256, 4255, 1256, 9900,
-				9888, 9900, 9900, 4255, 1256, 9900, 9900, 9900, 9888, 9900, 9287, 8396, 9743, 9900, 9900, 9290, 9900,
-				9905, 9900, 9900, 9751 };
-	}
-
-	public final static char termAction[] = TermAction.termAction;
-
-	@Override
-	public final int termAction(int index) {
-		return termAction[index];
-	}
-
-	public interface Asb {
-		public final static char asb[] = { 0, 1459, 4, 1566, 321, 1448, 1, 363, 1501, 707, 707, 707, 1400, 67, 878,
-				1458, 994, 321, 329, 1263, 1566, 649, 245, 1566, 1566, 1566, 221, 261, 156, 261, 875, 261, 1103, 261,
-				261, 329, 330, 261, 995, 1345, 100, 1501, 321, 642, 261, 261, 1114, 330, 261, 330, 1566, 930, 164, 164,
-				920, 164, 651, 156, 80, 581, 80, 782, 994, 833, 938, 324, 70, 70, 321, 898, 330, 1264, 1053, 1035, 847,
-				1396, 579, 159, 877, 8, 875, 152, 329, 1103, 335, 330, 330, 703, 219, 995, 995, 995, 995, 995, 995, 995,
-				995, 995, 995, 644, 995, 1198, 1566, 930, 930, 930, 930, 329, 1566, 261, 861, 861, 834, 833, 321, 321,
-				330, 521, 1397, 335, 335, 261, 363, 468, 1397, 261, 261, 930, 261, 330, 701, 1298, 176, 164, 164, 163,
-				163, 156, 329, 573, 784, 1198, 791, 796, 793, 800, 798, 807, 805, 809, 808, 810, 588, 811, 321, 994,
-				1218, 321, 261, 330, 525, 898, 898, 330, 1264, 787, 845, 786, 1585, 86, 1396, 1395, 1397, 159, 330, 79,
-				865, 856, 703, 156, 837, 330, 335, 703, 330, 697, 1198, 1198, 1198, 1517, 362, 701, 261, 1397, 1397,
-				1397, 954, 1608, 1608, 974, 974, 363, 363, 363, 363, 330, 598, 6, 6, 598, 994, 861, 156, 329, 697, 261,
-				261, 335, 335, 324, 239, 468, 468, 1264, 1298, 176, 163, 163, 163, 330, 1397, 994, 1397, 995, 995, 995,
-				995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 994, 994, 994,
-				994, 994, 994, 994, 994, 994, 994, 994, 15, 995, 1397, 842, 156, 321, 1193, 991, 403, 468, 529, 824,
-				898, 834, 834, 1053, 834, 1514, 579, 1585, 1585, 1621, 1620, 851, 842, 330, 159, 65, 878, 930, 1262,
-				1568, 159, 79, 857, 861, 79, 861, 703, 837, 837, 330, 920, 365, 1183, 1198, 759, 757, 764, 762, 766,
-				765, 767, 768, 781, 330, 219, 330, 1397, 1397, 1397, 468, 362, 994, 261, 955, 324, 1294, 1284, 1283,
-				1353, 267, 267, 329, 644, 995, 1397, 1397, 920, 920, 920, 920, 703, 1397, 1263, 1265, 1263, 1397, 468,
-				156, 907, 330, 1566, 1196, 261, 920, 920, 261, 1397, 1288, 1271, 1287, 781, 930, 92, 92, 842, 842, 163,
-				330, 834, 1219, 793, 793, 791, 791, 791, 798, 798, 798, 798, 798, 798, 796, 796, 805, 800, 800, 808,
-				807, 809, 65, 65, 810, 842, 1218, 403, 468, 417, 524, 333, 1397, 86, 1397, 597, 1397, 1397, 701, 1570,
-				861, 861, 861, 861, 330, 837, 841, 922, 841, 1154, 1170, 1170, 1170, 1170, 1149, 329, 927, 995, 995,
-				995, 995, 995, 995, 995, 995, 995, 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, 995, 974,
-				697, 261, 261, 261, 995, 363, 261, 261, 1397, 954, 65, 995, 65, 834, 953, 1566, 1566, 1566, 955, 1566,
-				330, 471, 834, 834, 330, 156, 1608, 1397, 1296, 1298, 330, 701, 271, 1198, 1566, 1566, 1566, 1566, 330,
-				330, 330, 1265, 701, 873, 329, 330, 598, 261, 261, 888, 994, 1285, 1285, 1292, 324, 1058, 176, 164, 176,
-				780, 780, 842, 834, 994, 994, 1218, 994, 994, 468, 529, 1397, 1621, 1264, 833, 995, 65, 899, 932, 830,
-				1570, 861, 861, 407, 841, 842, 995, 330, 330, 995, 757, 757, 757, 762, 759, 759, 765, 764, 766, 65, 767,
-				1397, 261, 324, 944, 955, 65, 1045, 955, 974, 974, 972, 953, 974, 834, 834, 905, 952, 1397, 1298, 703,
-				1264, 1397, 994, 994, 994, 994, 1566, 1566, 219, 330, 1264, 873, 1397, 261, 709, 888, 994, 994, 1296,
-				1271, 176, 363, 363, 841, 468, 468, 597, 834, 1570, 995, 995, 830, 830, 1570, 1570, 907, 214, 408, 330,
-				842, 703, 1048, 994, 261, 261, 261, 994, 261, 955, 995, 955, 1397, 321, 974, 1397, 972, 1501, 1566,
-				1397, 873, 911, 1397, 330, 719, 1397, 1397, 1397, 1397, 598, 598, 1269, 261, 219, 945, 1566, 261, 891,
-				781, 261, 105, 830, 830, 407, 330, 329, 329, 330, 330, 261, 598, 995, 468, 955, 905, 955, 834, 1501,
-				994, 955, 952, 911, 911, 304, 1397, 1397, 1269, 1058, 891, 1343, 261, 261, 330, 330, 330, 261, 1397,
-				468, 994, 953, 598, 834, 1397, 914, 911, 1397, 1397, 318, 1566, 92, 330, 330, 955, 1397, 834, 914, 914,
-				156, 156, 320, 1299, 780, 955, 914, 1621, 1263, 363 };
-	}
-
-	public final static char asb[] = Asb.asb;
-
-	@Override
-	public final int asb(int index) {
-		return asb[index];
-	}
-
-	public interface Asr {
-		public final static char asr[] = { 0, 5, 33, 0, 135, 0, 11, 10, 67, 1, 4, 3, 2, 6, 0, 24, 25, 15, 16, 58, 82,
-				26, 59, 51, 17, 18, 19, 83, 11, 60, 20, 21, 61, 62, 52, 74, 53, 63, 23, 22, 27, 28, 54, 55, 56, 46, 1,
-				4, 5, 49, 50, 13, 12, 47, 48, 10, 57, 6, 37, 64, 3, 2, 29, 30, 31, 84, 0, 46, 67, 0, 85, 5, 78, 104, 86,
-				73, 79, 65, 72, 84, 14, 75, 8, 9, 7, 0, 14, 73, 79, 1, 32, 0, 78, 86, 73, 1, 4, 3, 2, 0, 14, 84, 75, 85,
-				0, 82, 83, 74, 49, 50, 13, 12, 47, 48, 10, 57, 61, 64, 37, 5, 6, 11, 54, 55, 56, 46, 53, 51, 52, 24, 25,
-				16, 28, 15, 20, 18, 19, 21, 22, 17, 26, 27, 29, 30, 31, 23, 59, 62, 60, 58, 63, 87, 1, 4, 3, 2, 75, 14,
-				0, 131, 132, 133, 84, 87, 11, 14, 5, 13, 12, 10, 65, 81, 76, 96, 77, 80, 24, 25, 34, 7, 38, 15, 16, 66,
-				32, 26, 68, 39, 40, 17, 41, 42, 18, 19, 43, 44, 20, 21, 35, 69, 67, 45, 23, 70, 22, 27, 33, 28, 37, 8,
-				9, 29, 30, 31, 1, 4, 3, 2, 36, 6, 0, 58, 82, 59, 51, 83, 60, 61, 62, 52, 74, 53, 63, 54, 55, 56, 46, 57,
-				64, 37, 23, 68, 66, 69, 70, 16, 28, 15, 20, 18, 19, 21, 22, 17, 26, 27, 29, 30, 31, 24, 25, 85, 84, 104,
-				111, 87, 75, 134, 129, 49, 50, 112, 105, 47, 48, 113, 114, 88, 89, 71, 78, 102, 103, 106, 107, 108, 109,
-				110, 115, 116, 86, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 73, 127, 128, 34, 38, 32, 39, 40,
-				41, 42, 43, 44, 35, 45, 36, 33, 65, 14, 79, 72, 11, 5, 10, 13, 12, 8, 9, 7, 6, 4, 3, 2, 1, 0, 58, 82,
-				59, 51, 83, 11, 60, 61, 62, 52, 74, 53, 63, 54, 55, 56, 46, 49, 50, 13, 12, 47, 48, 10, 57, 78, 64, 5,
-				37, 6, 23, 1, 4, 3, 2, 68, 66, 69, 70, 24, 25, 16, 28, 15, 20, 18, 19, 21, 22, 17, 26, 27, 29, 30, 31,
-				38, 44, 35, 40, 43, 42, 36, 39, 7, 9, 8, 41, 45, 32, 33, 34, 0, 36, 1, 4, 6, 3, 2, 131, 132, 133, 0, 82,
-				83, 5, 23, 59, 62, 60, 58, 63, 16, 28, 15, 20, 18, 19, 21, 22, 17, 26, 27, 29, 30, 31, 24, 25, 54, 55,
-				56, 46, 53, 51, 52, 10, 11, 6, 49, 50, 13, 12, 47, 48, 57, 61, 64, 37, 74, 35, 1, 4, 3, 2, 111, 14, 0,
-				24, 25, 15, 16, 58, 82, 26, 59, 51, 17, 18, 19, 83, 11, 60, 20, 21, 61, 62, 52, 74, 53, 63, 23, 22, 27,
-				28, 54, 55, 56, 46, 1, 4, 5, 49, 50, 47, 48, 10, 57, 6, 37, 64, 3, 2, 29, 30, 31, 65, 14, 12, 13, 0, 74,
-				34, 32, 33, 35, 82, 83, 111, 14, 49, 50, 13, 12, 47, 48, 10, 57, 61, 64, 37, 5, 6, 11, 24, 25, 16, 28,
-				15, 20, 18, 19, 21, 22, 17, 26, 27, 29, 30, 31, 23, 59, 62, 60, 58, 63, 1, 4, 3, 2, 54, 55, 56, 53, 51,
-				52, 46, 0, 7, 14, 75, 8, 9, 86, 0, 7, 78, 84, 104, 111, 87, 65, 8, 9, 73, 14, 79, 24, 25, 15, 16, 58,
-				26, 59, 51, 17, 18, 19, 60, 20, 21, 61, 62, 52, 74, 53, 63, 23, 22, 27, 28, 54, 55, 56, 46, 5, 49, 50,
-				13, 12, 47, 48, 57, 6, 37, 64, 29, 30, 31, 11, 10, 1, 4, 2, 83, 82, 3, 0, 24, 25, 34, 38, 15, 16, 66,
-				32, 26, 68, 39, 96, 40, 17, 41, 42, 18, 19, 43, 76, 44, 20, 21, 35, 69, 45, 23, 70, 22, 77, 36, 27, 33,
-				28, 5, 13, 6, 65, 37, 29, 30, 31, 80, 81, 75, 14, 12, 8, 9, 7, 11, 10, 1, 4, 3, 2, 67, 0, 74, 85, 134,
-				129, 49, 50, 84, 104, 111, 87, 39, 40, 41, 42, 43, 11, 44, 35, 45, 36, 33, 1, 4, 72, 5, 32, 38, 10, 6,
-				7, 34, 8, 9, 3, 2, 112, 105, 47, 48, 113, 114, 127, 128, 12, 79, 65, 75, 14, 89, 88, 71, 102, 103, 106,
-				107, 13, 108, 109, 110, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 86, 78, 73, 0, 111,
-				65, 73, 79, 14, 84, 0, 112, 105, 12, 113, 114, 47, 48, 89, 88, 71, 102, 103, 127, 128, 106, 107, 13,
-				108, 109, 110, 78, 79, 86, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 84, 104, 111, 87, 115, 116,
-				8, 9, 7, 73, 65, 14, 0, 1, 4, 3, 2, 73, 14, 87, 0, 84, 73, 79, 14, 5, 0, 79, 14, 1, 46, 0, 6, 8, 9, 7,
-				71, 14, 84, 75, 0, 6, 14, 84, 75, 8, 9, 7, 0, 130, 0, 6, 67, 84, 14, 75, 8, 9, 7, 1, 4, 3, 2, 0, 34, 32,
-				33, 74, 85, 78, 84, 104, 79, 75, 5, 7, 14, 73, 65, 8, 9, 86, 0, 14, 75, 73, 0, 34, 32, 33, 74, 14, 104,
-				86, 73, 79, 78, 0, 14, 73, 87, 86, 0, 78, 102, 103, 71, 0, 84, 7, 72, 8, 9, 71, 14, 73, 65, 86, 5, 0,
-				79, 96, 131, 132, 133, 67, 84, 135, 130, 136, 87, 81, 85, 80, 77, 76, 91, 93, 100, 98, 90, 95, 97, 99,
-				101, 75, 92, 94, 65, 14, 68, 66, 69, 70, 38, 44, 35, 40, 43, 42, 36, 39, 7, 9, 8, 41, 45, 34, 32, 33,
-				74, 82, 83, 23, 59, 62, 60, 58, 63, 5, 28, 26, 27, 29, 30, 31, 24, 25, 54, 55, 56, 46, 53, 51, 52, 10,
-				11, 6, 49, 50, 13, 12, 47, 48, 57, 61, 64, 37, 1, 4, 3, 2, 17, 15, 21, 22, 16, 20, 18, 19, 0, 84, 104,
-				0, 79, 14, 89, 88, 0, 14, 84, 79, 46, 0, 24, 25, 34, 7, 38, 15, 16, 66, 32, 26, 68, 39, 40, 17, 41, 42,
-				18, 19, 43, 44, 20, 21, 35, 69, 45, 23, 70, 22, 36, 27, 33, 28, 1, 4, 6, 37, 8, 9, 3, 2, 29, 30, 31,
-				104, 0, 6, 14, 75, 8, 9, 7, 1, 4, 3, 2, 0, 37, 83, 82, 47, 48, 113, 114, 108, 109, 10, 57, 86, 71, 120,
-				121, 117, 118, 119, 125, 124, 126, 89, 88, 122, 123, 106, 107, 102, 103, 110, 115, 49, 50, 105, 129, 23,
-				68, 66, 69, 70, 16, 28, 15, 20, 18, 19, 21, 22, 17, 26, 27, 29, 30, 31, 24, 25, 38, 44, 35, 40, 43, 42,
-				36, 39, 32, 33, 34, 41, 45, 78, 73, 1, 4, 13, 6, 3, 2, 5, 72, 8, 9, 7, 12, 0, 34, 7, 38, 66, 32, 68, 39,
-				40, 41, 42, 43, 44, 35, 69, 45, 70, 36, 33, 8, 9, 74, 82, 83, 49, 50, 13, 12, 47, 48, 57, 61, 64, 37, 5,
-				54, 55, 56, 46, 53, 51, 52, 24, 25, 16, 28, 15, 20, 18, 19, 21, 22, 17, 26, 27, 29, 30, 31, 59, 62, 60,
-				58, 63, 75, 14, 23, 6, 11, 1, 4, 3, 2, 10, 0, 7, 13, 12, 8, 9, 11, 10, 6, 1, 4, 3, 2, 5, 72, 78, 86, 73,
-				14, 79, 104, 0, 10, 11, 5, 72, 12, 13, 104, 24, 25, 34, 7, 38, 15, 16, 32, 26, 68, 39, 40, 17, 41, 42,
-				18, 19, 43, 44, 20, 21, 35, 69, 45, 23, 70, 22, 36, 27, 33, 28, 1, 4, 6, 37, 8, 9, 3, 2, 29, 30, 31, 79,
-				14, 66, 0, 78, 73, 37, 23, 68, 66, 69, 70, 24, 25, 34, 7, 38, 15, 16, 32, 26, 39, 40, 17, 41, 42, 18,
-				19, 43, 11, 44, 20, 21, 35, 45, 22, 36, 27, 33, 28, 4, 72, 13, 12, 10, 6, 65, 8, 9, 3, 2, 29, 30, 31, 5,
-				1, 79, 14, 0, 32, 26, 68, 39, 17, 41, 18, 19, 43, 44, 20, 21, 69, 45, 70, 22, 36, 27, 33, 28, 66, 16,
-				15, 37, 38, 34, 25, 24, 29, 30, 31, 14, 5, 13, 12, 65, 80, 77, 96, 40, 35, 42, 81, 71, 8, 9, 7, 67, 11,
-				1, 4, 10, 6, 3, 2, 23, 76, 0, 87, 24, 25, 34, 38, 15, 16, 66, 32, 26, 68, 39, 17, 41, 18, 19, 43, 44,
-				20, 21, 69, 45, 23, 70, 22, 36, 27, 33, 28, 37, 29, 30, 31, 135, 81, 76, 40, 35, 42, 96, 77, 80, 67, 7,
-				14, 13, 65, 8, 9, 10, 11, 4, 3, 2, 6, 5, 1, 12, 0, 82, 83, 49, 50, 13, 12, 47, 48, 10, 57, 61, 64, 37,
-				6, 11, 54, 55, 56, 46, 53, 51, 52, 24, 25, 16, 28, 15, 20, 18, 19, 21, 22, 17, 26, 27, 29, 30, 31, 23,
-				59, 62, 60, 58, 63, 72, 1, 4, 3, 2, 5, 0, 65, 14, 5, 11, 10, 84, 13, 12, 6, 1, 4, 3, 2, 8, 9, 7, 0, 11,
-				10, 17, 15, 21, 22, 16, 20, 18, 19, 38, 44, 35, 40, 43, 42, 36, 39, 32, 33, 34, 41, 45, 78, 7, 1, 4, 13,
-				12, 6, 8, 9, 3, 2, 72, 5, 79, 14, 73, 0 };
-	}
-
-	public final static char asr[] = Asr.asr;
-
-	@Override
-	public final int asr(int index) {
-		return asr[index];
-	}
-
-	public interface Nasb {
-		public final static char nasb[] = { 0, 275, 13, 13, 197, 14, 16, 5, 333, 13, 13, 13, 319, 13, 158, 319, 211,
-				191, 273, 273, 13, 13, 297, 13, 13, 13, 13, 298, 92, 298, 230, 298, 230, 298, 13, 11, 175, 298, 150,
-				290, 197, 190, 268, 152, 13, 13, 247, 329, 13, 175, 13, 13, 319, 319, 13, 319, 219, 92, 230, 13, 238,
-				13, 150, 120, 30, 349, 63, 63, 232, 230, 240, 240, 188, 20, 317, 199, 13, 197, 171, 273, 238, 38, 273,
-				238, 197, 175, 12, 13, 13, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 175, 325, 258, 13, 13, 13,
-				13, 13, 273, 13, 13, 197, 36, 120, 13, 224, 232, 175, 13, 317, 197, 197, 124, 5, 116, 317, 13, 13, 13,
-				13, 12, 72, 197, 197, 319, 319, 197, 197, 92, 273, 18, 13, 258, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
-				150, 13, 191, 65, 86, 224, 238, 175, 110, 230, 238, 186, 152, 317, 13, 13, 256, 68, 43, 13, 317, 340,
-				172, 230, 230, 13, 240, 92, 197, 240, 48, 56, 172, 59, 258, 258, 258, 150, 46, 72, 13, 317, 317, 317,
-				105, 203, 203, 1, 260, 261, 261, 261, 261, 175, 76, 22, 22, 76, 211, 36, 127, 178, 182, 230, 230, 48,
-				48, 349, 290, 116, 116, 152, 359, 359, 275, 275, 197, 240, 317, 150, 317, 150, 150, 150, 150, 150, 150,
-				150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
-				150, 150, 150, 150, 150, 32, 150, 317, 197, 92, 233, 230, 149, 99, 116, 111, 13, 238, 120, 120, 188,
-				120, 13, 188, 298, 256, 317, 13, 317, 106, 175, 120, 13, 185, 13, 14, 332, 340, 230, 230, 197, 238, 197,
-				56, 197, 330, 12, 13, 251, 203, 144, 13, 13, 13, 13, 13, 13, 13, 13, 13, 172, 13, 12, 317, 317, 317,
-				116, 262, 65, 286, 207, 349, 202, 63, 63, 13, 13, 13, 11, 175, 150, 317, 317, 13, 13, 13, 13, 71, 317,
-				151, 175, 151, 317, 116, 127, 13, 240, 13, 13, 197, 13, 13, 228, 317, 13, 266, 13, 13, 13, 74, 74, 106,
-				106, 275, 186, 120, 281, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
-				13, 13, 106, 197, 99, 116, 111, 122, 13, 317, 68, 317, 150, 317, 317, 72, 190, 197, 197, 41, 41, 172,
-				330, 28, 13, 13, 297, 298, 298, 298, 298, 306, 11, 13, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
-				150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 211, 150, 48, 59, 286, 286, 286, 150, 261, 197, 132,
-				317, 214, 13, 161, 13, 120, 13, 13, 13, 13, 215, 13, 330, 118, 120, 120, 330, 141, 300, 317, 347, 197,
-				175, 72, 13, 258, 13, 13, 13, 13, 172, 12, 175, 168, 72, 197, 178, 12, 76, 230, 122, 197, 150, 13, 13,
-				265, 349, 359, 359, 319, 197, 13, 13, 106, 120, 150, 150, 86, 150, 150, 116, 111, 317, 317, 152, 120,
-				150, 13, 139, 13, 230, 232, 41, 41, 101, 28, 106, 150, 330, 175, 150, 13, 13, 13, 13, 13, 13, 13, 13,
-				13, 13, 13, 317, 156, 228, 13, 215, 13, 13, 215, 353, 353, 357, 13, 353, 120, 120, 13, 197, 317, 359,
-				70, 172, 317, 211, 211, 211, 211, 13, 13, 13, 329, 172, 97, 317, 197, 122, 122, 150, 150, 347, 222, 359,
-				261, 261, 106, 116, 116, 150, 120, 191, 150, 150, 238, 230, 232, 13, 13, 273, 108, 240, 106, 56, 317,
-				150, 197, 79, 13, 211, 228, 215, 150, 215, 317, 268, 1, 317, 243, 197, 13, 317, 97, 197, 317, 172, 286,
-				317, 317, 317, 317, 76, 76, 169, 13, 13, 130, 13, 122, 197, 13, 81, 85, 230, 238, 135, 240, 273, 273,
-				12, 172, 156, 76, 150, 116, 215, 13, 215, 120, 191, 211, 215, 130, 122, 197, 13, 317, 317, 169, 262, 83,
-				13, 81, 13, 12, 240, 240, 79, 317, 116, 150, 13, 94, 120, 317, 197, 122, 317, 317, 197, 13, 74, 12, 12,
-				215, 317, 120, 83, 197, 141, 141, 266, 314, 13, 215, 83, 317, 151, 261 };
-	}
-
-	public final static char nasb[] = Nasb.nasb;
-
-	@Override
-	public final int nasb(int index) {
-		return nasb[index];
-	}
-
-	public interface Nasr {
-		public final static char nasr[] = { 0, 3, 13, 10, 9, 122, 157, 132, 118, 131, 130, 4, 2, 0, 188, 0, 243, 0, 15,
-				0, 173, 0, 4, 2, 9, 10, 177, 0, 185, 0, 224, 0, 5, 47, 158, 0, 190, 0, 41, 1, 0, 147, 0, 32, 208, 0,
-				215, 0, 4, 10, 9, 2, 13, 154, 5, 0, 2, 93, 0, 93, 176, 175, 0, 95, 0, 5, 35, 0, 206, 0, 2, 158, 93, 0,
-				145, 0, 5, 124, 0, 179, 0, 193, 0, 164, 0, 106, 4, 10, 9, 2, 13, 113, 41, 0, 5, 218, 0, 192, 0, 213, 0,
-				4, 133, 232, 0, 5, 106, 0, 233, 0, 5, 4, 10, 9, 2, 13, 82, 0, 5, 47, 48, 0, 50, 0, 5, 235, 0, 41, 191,
-				0, 156, 0, 5, 217, 0, 4, 133, 196, 0, 231, 0, 41, 59, 0, 41, 57, 40, 47, 59, 5, 13, 4, 10, 9, 2, 0, 181,
-				0, 43, 1, 0, 13, 2, 9, 10, 4, 245, 0, 2, 159, 0, 56, 2, 3, 0, 2, 56, 0, 200, 4, 199, 0, 43, 93, 0, 43,
-				138, 0, 172, 0, 119, 43, 78, 4, 2, 9, 10, 5, 0, 242, 32, 0, 32, 109, 110, 5, 0, 40, 53, 41, 219, 5, 47,
-				0, 106, 47, 53, 40, 96, 41, 5, 0, 110, 109, 10, 9, 2, 78, 4, 87, 43, 0, 5, 4, 10, 9, 2, 78, 27, 0, 2,
-				86, 0, 57, 5, 220, 0, 5, 57, 236, 0, 237, 132, 118, 131, 130, 122, 0, 41, 59, 47, 40, 5, 57, 0, 32, 110,
-				109, 78, 2, 9, 10, 5, 4, 0, 136, 92, 53, 5, 40, 0, 4, 10, 9, 2, 13, 113, 41, 112, 0, 2, 4, 118, 115,
-				116, 117, 128, 13, 67, 0, 110, 109, 43, 4, 87, 0, 118, 67, 13, 115, 116, 117, 204, 0, 57, 40, 5, 32, 0,
-				5, 40, 53, 92, 103, 0, 4, 10, 9, 13, 3, 1, 0, 48, 4, 2, 9, 10, 5, 189, 0, 5, 53, 92, 133, 51, 4, 0, 31,
-				5, 4, 43, 119, 0, 5, 57, 135, 0, 47, 221, 31, 5, 0 };
-	}
-
-	public final static char nasr[] = Nasr.nasr;
-
-	@Override
-	public final int nasr(int index) {
-		return nasr[index];
-	}
-
-	public interface TerminalIndex {
-		public final static char terminalIndex[] = { 0, 118, 132, 131, 119, 2, 31, 51, 129, 130, 13, 84, 10, 9, 120, 53,
-				57, 73, 79, 80, 91, 92, 107, 105, 48, 49, 65, 110, 112, 133, 134, 135, 59, 111, 50, 94, 109, 127, 52,
-				69, 71, 75, 78, 81, 88, 103, 117, 11, 12, 7, 8, 72, 99, 102, 114, 115, 116, 14, 60, 66, 89, 93, 95, 104,
-				128, 125, 58, 98, 68, 96, 106, 19, 1, 44, 100, 126, 82, 108, 20, 123, 136, 137, 63, 83, 30, 101, 33,
-				124, 17, 18, 113, 54, 55, 61, 62, 64, 70, 74, 76, 77, 90, 97, 21, 22, 32, 6, 23, 24, 25, 26, 27, 122, 4,
-				15, 16, 28, 29, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 5, 56, 85, 86, 87, 3, 138, 67, 121 };
-	}
-
-	public final static char terminalIndex[] = TerminalIndex.terminalIndex;
-
-	@Override
-	public final int terminalIndex(int index) {
-		return terminalIndex[index];
-	}
-
-	public interface NonterminalIndex {
-		public final static char nonterminalIndex[] = { 0, 144, 150, 151, 0, 0, 149, 0, 0, 253, 259, 148, 0, 158, 0,
-				145, 147, 0, 157, 163, 0, 0, 164, 173, 174, 175, 176, 271, 0, 0, 0, 203, 140, 0, 177, 166, 178, 179,
-				180, 181, 280, 143, 182, 272, 156, 183, 0, 146, 142, 184, 210, 200, 0, 0, 0, 153, 152, 167, 185, 195, 0,
-				0, 0, 0, 0, 0, 0, 209, 0, 0, 186, 0, 227, 0, 187, 0, 188, 224, 228, 189, 160, 190, 139, 191, 0, 192, 0,
-				170, 198, 0, 0, 0, 0, 0, 0, 229, 194, 0, 0, 0, 0, 0, 0, 201, 0, 0, 141, 161, 231, 232, 233, 0, 241, 0,
-				172, 212, 213, 214, 216, 225, 235, 243, 211, 230, 0, 215, 0, 0, 279, 204, 205, 206, 207, 244, 0, 197,
-				202, 208, 219, 221, 0, 222, 0, 0, 234, 0, 0, 0, 248, 0, 250, 0, 264, 0, 267, 0, 268, 278, 0, 162, 193,
-				218, 0, 220, 0, 237, 240, 0, 262, 0, 263, 0, 276, 281, 0, 154, 155, 159, 0, 0, 169, 171, 0, 0, 0, 0, 0,
-				217, 0, 226, 0, 238, 239, 0, 0, 245, 252, 0, 256, 257, 258, 261, 0, 0, 265, 0, 273, 0, 275, 0, 0, 282,
-				284, 285, 0, 0, 165, 168, 0, 196, 0, 199, 0, 0, 223, 236, 242, 0, 0, 246, 247, 249, 251, 0, 254, 255,
-				260, 266, 269, 270, 0, 0, 274, 0, 0, 277, 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	}
-
-	public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
-
-	@Override
-	public final int nonterminalIndex(int index) {
-		return nonterminalIndex[index];
-	}
-
-	public interface ScopePrefix {
-		public final static char scopePrefix[] = { 314, 476, 778, 797, 465, 494, 729, 745, 756, 767, 548, 10, 18, 420,
-				434, 451, 512, 184, 445, 568, 606, 322, 786, 672, 28, 149, 162, 193, 213, 222, 227, 232, 285, 350, 507,
-				518, 149, 640, 122, 299, 426, 440, 700, 169, 299, 558, 149, 805, 169, 372, 401, 24, 40, 58, 90, 90, 114,
-				118, 130, 141, 156, 203, 218, 246, 156, 537, 541, 624, 665, 694, 721, 725, 815, 819, 823, 237, 134, 237,
-				586, 602, 615, 633, 652, 713, 1, 256, 256, 384, 472, 615, 736, 752, 763, 774, 362, 683, 70, 82, 111,
-				198, 198, 311, 377, 64, 198, 398, 417, 64, 64, 198, 545, 662, 669, 311, 198, 838, 46, 52, 64, 105, 250,
-				523, 590, 630, 52, 33, 645, 198, 265, 457, 523, 265, 265, 484, 577, 332, 484, 75, 75, 96, 96, 244, 96,
-				96, 96, 96, 628, 827, 834, 75, 75, 100, 393, 827, 834, 207, 596, 292, 244, 393, 244, 406 };
-	}
-
-	public final static char scopePrefix[] = ScopePrefix.scopePrefix;
-
-	@Override
-	public final int scopePrefix(int index) {
-		return scopePrefix[index];
-	}
-
-	public interface ScopeSuffix {
-		public final static char scopeSuffix[] = { 145, 290, 94, 94, 290, 290, 94, 94, 94, 94, 555, 16, 16, 290, 44,
-				290, 154, 190, 431, 574, 612, 328, 209, 678, 16, 154, 167, 167, 167, 201, 201, 44, 290, 355, 160, 160,
-				154, 94, 127, 304, 431, 241, 705, 180, 307, 563, 792, 810, 174, 366, 366, 16, 44, 62, 94, 94, 94, 94,
-				94, 145, 160, 94, 201, 44, 160, 44, 44, 290, 16, 94, 94, 94, 94, 94, 16, 836, 138, 241, 555, 555, 555,
-				637, 656, 705, 5, 260, 274, 388, 460, 619, 740, 740, 740, 740, 366, 687, 73, 73, 94, 201, 201, 94, 94,
-				380, 382, 16, 94, 62, 62, 382, 44, 94, 16, 94, 698, 94, 49, 55, 67, 108, 253, 526, 593, 108, 659, 36,
-				648, 717, 260, 460, 708, 268, 279, 501, 580, 335, 487, 80, 88, 98, 147, 44, 529, 531, 533, 535, 44, 829,
-				829, 77, 85, 102, 395, 831, 831, 209, 598, 294, 357, 388, 342, 408 };
-	}
-
-	public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
-
-	@Override
-	public final int scopeSuffix(int index) {
-		return scopeSuffix[index];
-	}
-
-	public interface ScopeLhs {
-		public final static char scopeLhs[] = { 51, 117, 18, 18, 91, 117, 18, 18, 18, 18, 99, 95, 95, 105, 52, 91, 116,
-				89, 63, 99, 98, 51, 18, 20, 95, 204, 3, 7, 8, 196, 196, 195, 115, 51, 116, 116, 125, 58, 28, 112, 64,
-				52, 177, 169, 112, 99, 18, 18, 169, 111, 71, 95, 66, 88, 128, 19, 19, 205, 171, 102, 204, 199, 196, 195,
-				125, 222, 61, 59, 181, 19, 18, 18, 18, 18, 18, 12, 156, 195, 99, 98, 98, 84, 46, 177, 54, 121, 121, 87,
-				91, 98, 18, 18, 18, 18, 111, 20, 148, 141, 17, 200, 196, 224, 109, 123, 73, 95, 72, 189, 88, 125, 100,
-				182, 181, 215, 177, 17, 66, 18, 88, 97, 195, 125, 135, 97, 22, 40, 58, 177, 121, 91, 177, 121, 121, 117,
-				99, 51, 117, 148, 141, 157, 237, 195, 137, 132, 131, 130, 94, 175, 56, 148, 141, 245, 87, 175, 56, 199,
-				135, 115, 51, 87, 51, 71 };
-	}
-
-	public final static char scopeLhs[] = ScopeLhs.scopeLhs;
-
-	@Override
-	public final int scopeLhs(int index) {
-		return scopeLhs[index];
-	}
-
-	public interface ScopeLa {
-		public final static char scopeLa[] = { 130, 87, 79, 79, 87, 87, 79, 79, 79, 79, 79, 111, 111, 87, 65, 87, 1, 78,
-				1, 79, 136, 75, 5, 79, 111, 1, 78, 78, 78, 1, 1, 65, 87, 75, 1, 1, 1, 79, 79, 87, 1, 1, 6, 78, 73, 65,
-				1, 1, 78, 79, 79, 111, 65, 1, 79, 79, 79, 79, 79, 130, 1, 79, 1, 65, 1, 65, 65, 87, 111, 79, 79, 79, 79,
-				79, 111, 1, 79, 1, 79, 79, 79, 84, 84, 6, 73, 1, 1, 12, 75, 79, 78, 78, 78, 78, 79, 5, 8, 8, 79, 1, 1,
-				79, 79, 5, 1, 111, 79, 1, 1, 1, 65, 79, 111, 79, 10, 79, 1, 79, 8, 84, 1, 67, 86, 84, 79, 3, 78, 1, 1,
-				75, 67, 1, 1, 75, 90, 85, 1, 1, 1, 37, 1, 65, 1, 68, 66, 66, 65, 6, 6, 1, 1, 104, 13, 6, 6, 5, 1, 75, 1,
-				12, 1, 5 };
-	}
-
-	public final static char scopeLa[] = ScopeLa.scopeLa;
-
-	@Override
-	public final int scopeLa(int index) {
-		return scopeLa[index];
-	}
-
-	public interface ScopeStateSet {
-		public final static char scopeStateSet[] = { 466, 376, 268, 268, 478, 376, 268, 268, 268, 268, 111, 124, 124,
-				522, 466, 478, 376, 478, 510, 111, 111, 466, 268, 268, 124, 43, 190, 238, 238, 21, 21, 490, 376, 466,
-				376, 376, 378, 61, 391, 89, 510, 466, 53, 46, 89, 111, 268, 268, 46, 128, 165, 124, 510, 171, 378, 268,
-				268, 86, 1, 111, 43, 50, 21, 490, 378, 41, 510, 99, 18, 268, 268, 268, 268, 268, 268, 242, 8, 490, 111,
-				111, 111, 69, 336, 53, 466, 376, 376, 450, 478, 111, 268, 268, 268, 268, 128, 268, 24, 182, 268, 50, 21,
-				138, 128, 130, 165, 124, 165, 187, 171, 378, 111, 5, 18, 56, 53, 268, 510, 268, 171, 111, 490, 378, 13,
-				111, 273, 493, 61, 53, 376, 478, 53, 376, 376, 376, 111, 466, 376, 24, 182, 380, 389, 490, 380, 385,
-				385, 385, 29, 58, 140, 24, 182, 374, 450, 58, 140, 50, 13, 376, 466, 450, 466, 165 };
-	}
-
-	public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet;
-
-	@Override
-	public final int scopeStateSet(int index) {
-		return scopeStateSet[index];
-	}
-
-	public interface ScopeRhs {
-		public final static char scopeRhs[] = { 0, 184, 5, 80, 0, 44, 145, 140, 142, 0, 186, 35, 349, 142, 72, 0, 139,
-				0, 186, 349, 142, 35, 72, 0, 186, 35, 72, 0, 186, 349, 142, 72, 0, 347, 142, 0, 131, 281, 0, 0, 300,
-				142, 177, 0, 142, 0, 142, 177, 0, 220, 142, 0, 217, 5, 0, 140, 241, 0, 180, 256, 142, 0, 224, 0, 256,
-				142, 0, 272, 224, 0, 285, 180, 0, 272, 0, 180, 0, 248, 272, 0, 248, 0, 225, 180, 0, 198, 272, 0, 198, 0,
-				217, 5, 37, 0, 140, 0, 259, 0, 279, 0, 251, 0, 32, 172, 0, 382, 92, 0, 30, 194, 0, 196, 5, 0, 217, 5,
-				64, 0, 378, 5, 343, 0, 377, 5, 5, 8, 0, 140, 140, 0, 376, 5, 74, 0, 375, 5, 130, 0, 140, 195, 0, 142,
-				196, 85, 0, 239, 0, 265, 0, 230, 193, 141, 23, 0, 151, 0, 193, 141, 23, 0, 150, 0, 304, 142, 71, 139, 0,
-				20, 0, 338, 142, 71, 67, 0, 20, 58, 0, 33, 147, 0, 20, 58, 0, 0, 338, 142, 71, 67, 229, 0, 20, 201, 0,
-				304, 142, 71, 147, 0, 223, 141, 0, 156, 0, 261, 5, 337, 0, 337, 0, 2, 0, 140, 0, 304, 142, 71, 146, 0,
-				223, 141, 270, 0, 223, 141, 36, 270, 0, 223, 141, 370, 36, 0, 143, 230, 193, 141, 0, 230, 193, 141, 0,
-				149, 142, 0, 190, 0, 366, 142, 190, 0, 142, 190, 0, 246, 142, 0, 193, 365, 255, 0, 151, 0, 0, 0, 0, 365,
-				255, 0, 152, 151, 0, 0, 0, 0, 150, 0, 0, 0, 0, 152, 150, 0, 0, 0, 0, 364, 142, 178, 258, 0, 141, 0, 258,
-				0, 143, 0, 0, 141, 0, 363, 142, 178, 250, 0, 141, 0, 0, 44, 141, 0, 0, 172, 5, 0, 142, 328, 327, 142,
-				85, 326, 190, 0, 327, 142, 85, 326, 190, 0, 238, 0, 239, 0, 326, 190, 0, 101, 0, 0, 238, 0, 239, 0, 226,
-				101, 0, 0, 238, 0, 239, 0, 327, 142, 326, 190, 0, 238, 0, 226, 0, 0, 238, 0, 279, 142, 5, 0, 140, 0, 0,
-				0, 0, 0, 279, 142, 5, 246, 0, 260, 5, 0, 231, 0, 161, 0, 212, 193, 141, 0, 10, 0, 0, 0, 0, 212, 0, 9, 0,
-				0, 251, 72, 0, 279, 142, 5, 209, 0, 209, 0, 2, 0, 0, 140, 0, 0, 0, 0, 0, 225, 5, 0, 271, 142, 178, 46,
-				40, 0, 223, 141, 76, 77, 0, 219, 142, 0, 143, 223, 141, 325, 77, 0, 223, 141, 325, 77, 0, 223, 141, 86,
-				138, 76, 0, 271, 142, 178, 299, 76, 0, 299, 76, 0, 143, 0, 0, 141, 0, 271, 142, 178, 299, 275, 76, 0,
-				299, 275, 76, 0, 322, 323, 142, 178, 138, 360, 68, 0, 360, 68, 0, 144, 143, 0, 0, 0, 141, 0, 322, 323,
-				142, 178, 360, 68, 0, 143, 0, 0, 0, 141, 0, 223, 141, 321, 68, 0, 230, 223, 141, 321, 255, 0, 223, 141,
-				321, 255, 0, 193, 141, 0, 98, 151, 0, 215, 0, 214, 0, 213, 0, 212, 0, 320, 142, 168, 0, 320, 142, 190,
-				0, 184, 100, 0, 355, 185, 357, 358, 5, 97, 0, 140, 194, 0, 357, 358, 5, 97, 0, 142, 0, 140, 194, 0, 184,
-				5, 90, 233, 95, 0, 140, 142, 0, 233, 95, 0, 113, 2, 146, 140, 142, 0, 272, 5, 90, 0, 225, 194, 0, 33,
-				184, 0, 194, 0, 198, 33, 184, 0, 272, 5, 101, 0, 233, 169, 272, 5, 99, 0, 67, 194, 0, 272, 5, 99, 0,
-				140, 194, 67, 194, 0, 356, 142, 178, 0, 184, 0, 251, 92, 0, 184, 116, 220, 0, 30, 192, 0, 163, 78, 195,
-				5, 0, 195, 5, 0, 20, 176, 140, 0, 184, 116, 182, 0, 30, 184, 0, 140, 164, 0, 261, 5, 0, 251, 72, 318, 0,
-				184, 72, 0, 217, 5, 352, 83, 141, 0, 140, 0, 0, 0, 0, 352, 83, 141, 0, 2, 160, 140, 0, 0, 0, 0, 217, 5,
-				61, 0, 162, 0, 140, 67, 193, 141, 0, 31, 162, 0, 98, 151, 31, 162, 0, 244, 223, 141, 0, 161, 31, 162, 0,
-				217, 5, 63, 0, 184, 5, 63, 0, 184, 5, 78, 217, 71, 58, 0, 217, 71, 58, 0, 20, 2, 146, 140, 0, 184, 5,
-				78, 217, 71, 60, 0, 217, 71, 60, 0, 184, 5, 78, 217, 71, 62, 0, 217, 71, 62, 0, 184, 5, 78, 217, 71, 59,
-				0, 217, 71, 59, 0, 261, 5, 140, 230, 193, 141, 23, 0, 140, 230, 193, 141, 23, 0, 151, 2, 0, 140, 0, 261,
-				5, 139, 295, 193, 141, 23, 0, 295, 193, 141, 23, 0, 150, 2, 0, 140, 0, 261, 5, 150, 0, 261, 5, 155, 0,
-				184, 72, 155, 0, 313, 0, 31, 0, 31, 154, 0, 192, 0, 149, 0, 184, 5, 0 };
-	}
-
-	public final static char scopeRhs[] = ScopeRhs.scopeRhs;
-
-	@Override
-	public final int scopeRhs(int index) {
-		return scopeRhs[index];
-	}
-
-	public interface ScopeState {
-		public final static char scopeState[] = { 0, 2637, 2385, 1389, 0, 1708, 1310, 0, 3709, 2096, 1745, 1450, 0,
-				5518, 8514, 8507, 8444, 0, 3251, 2953, 0, 2452, 1591, 0, 6148, 6096, 6044, 4411, 0, 5795, 5723, 5651,
-				5579, 5507, 5435, 5363, 5291, 5219, 5147, 4739, 4636, 8505, 0, 7048, 6013, 0, 4911, 3862, 4778, 0, 4147,
-				4098, 0, 1364, 767, 0, 921, 0, 2213, 1120, 0, 4307, 4500, 4703, 4531, 1166, 1076, 5119, 2658, 3649,
-				1228, 3303, 3217, 3189, 3103, 3075, 2989, 2961, 2875, 2847, 2761, 2733, 1138, 1048, 958, 0, 1345, 1137,
-				0, 1395, 4189, 1314, 3880, 3779, 3383, 6709, 910, 1445, 0, 3135, 3021, 8433, 2655, 2097, 2658, 1944,
-				8363, 8336, 6971, 6776, 6029, 5795, 5723, 5651, 5579, 5507, 5435, 5363, 5291, 5219, 5147, 4739, 4636, 0,
-				2694, 2340, 1199, 1121, 4819, 6930, 6732, 6481, 6282, 4473, 3055, 2941, 2827, 0, 780, 0, 7534, 7465,
-				6888, 6501, 6539, 6187, 6035, 6494, 5759, 5724, 6022, 5687, 5220, 5580, 5543, 5148, 5508, 4863, 3988,
-				3486, 5471, 5436, 5364, 3882, 0, 4819, 8216, 5228, 6912, 6874, 4745, 6732, 5370, 6148, 6096, 6044, 6481,
-				4411, 6282, 7150, 5016, 860, 4872, 5871, 4217, 4961, 0, 8216, 4745, 0, 3137, 3027, 7534, 7465, 3023,
-				2535, 1643, 6888, 2485, 6501, 2335, 2237, 2185, 6539, 986, 3419, 6187, 2083, 6035, 1925, 6494, 5759,
-				5724, 2911, 1713, 6022, 5687, 6964, 5220, 1474, 5580, 5543, 1044, 5148, 2795, 4340, 5508, 4863, 1947,
-				3988, 3486, 5471, 5436, 5364, 818, 6745, 3882, 4077, 1496, 1384, 1011, 849, 1728, 6732, 4872, 5370,
-				6148, 6096, 4819, 6044, 6481, 4411, 6282, 2718, 2700, 8216, 5228, 1364, 767, 6912, 5871, 7150, 6874,
-				5016, 860, 4217, 4961, 4745, 8155, 7711, 7282, 6613, 4122, 3649, 6508, 7399, 8126, 1228, 4307, 3303,
-				3217, 3189, 3103, 3075, 2989, 2961, 2875, 2847, 2761, 2733, 4500, 4703, 4531, 1166, 1076, 5119, 6454,
-				6427, 6400, 6709, 2658, 7376, 788, 3331, 4608, 3677, 5983, 5954, 5050, 6683, 6652, 6326, 6299, 6251,
-				5909, 4255, 1256, 7352, 7321, 5153, 7189, 4159, 8103, 8080, 1138, 1048, 8057, 958, 7911, 7888, 7865,
-				7842, 7819, 7796, 7773, 7750, 3735, 4050, 1395, 878, 4003, 3941, 3894, 1956, 1896, 1846, 3832, 3785,
-				3599, 3548, 1314, 3498, 3436, 1796, 1510, 1746, 1660, 2608, 2558, 2508, 2458, 2408, 2358, 2308, 2258,
-				2208, 2158, 2106, 2056, 716, 1613, 1445, 2006, 1563, 3389, 0, 7048, 6013, 6964, 6745, 878, 716, 4340,
-				4077, 0, 878, 716, 4340, 4077, 6013, 0, 4872, 4366, 7099, 878, 6148, 6865, 4334, 6096, 6044, 6356, 5769,
-				7048, 8498, 8466, 8305, 7940, 6172, 6013, 4082, 6535, 4635, 4210, 7489, 7623, 3969, 5265, 5228, 6964,
-				4954, 4910, 4158, 716, 3142, 2793, 8297, 3859, 6084, 3464, 5871, 4340, 7150, 1924, 1691, 997, 5016, 925,
-				913, 6745, 7538, 6769, 4893, 6180, 3249, 4784, 4375, 5837, 4961, 3256, 4077, 6757, 4819, 8271, 4406,
-				8454, 8265, 6930, 4411, 6136, 8402, 4767, 6912, 6874, 4563, 4217, 0, 5795, 5723, 5651, 5579, 5507, 5435,
-				5363, 5291, 5219, 5147, 4739, 4636, 8149, 7215, 7083, 7004, 7951, 7934, 7644, 7577, 7510, 7439, 7422,
-				6546, 4904, 8229, 0, 8396, 7230, 8273, 7953, 8433, 7949, 2658, 7579, 7555, 6751, 5329, 5617, 8363, 8336,
-				6971, 6776, 6029, 5795, 5723, 5651, 5579, 5507, 5435, 5363, 5291, 5219, 5147, 4739, 4636, 8149, 7215,
-				7083, 7004, 7951, 7934, 7644, 7577, 7510, 7439, 7422, 6546, 0 };
-	}
-
-	public final static char scopeState[] = ScopeState.scopeState;
-
-	@Override
-	public final int scopeState(int index) {
-		return scopeState[index];
-	}
-
-	public interface InSymb {
-		public final static char inSymb[] = { 0, 0, 351, 80, 177, 77, 7, 142, 190, 229, 42, 35, 67, 40, 76, 273, 5, 142,
-				76, 325, 380, 347, 266, 8, 9, 7, 34, 267, 258, 268, 255, 269, 68, 274, 139, 23, 141, 294, 37, 259, 326,
-				142, 5, 6, 147, 146, 11, 10, 139, 141, 209, 67, 67, 67, 71, 67, 46, 299, 275, 138, 180, 184, 142, 300,
-				278, 142, 215, 209, 180, 225, 141, 141, 5, 3, 5, 5, 5, 178, 365, 321, 180, 360, 321, 180, 71, 141, 223,
-				193, 192, 37, 64, 61, 57, 48, 47, 12, 13, 50, 49, 141, 10, 5, 63, 58, 60, 62, 59, 23, 150, 155, 85, 142,
-				320, 300, 256, 180, 141, 212, 225, 71, 71, 194, 142, 72, 5, 82, 83, 139, 138, 223, 193, 5, 71, 78, 142,
-				178, 178, 299, 86, 73, 297, 5, 160, 162, 161, 171, 163, 174, 173, 176, 175, 179, 74, 182, 73, 5, 86,
-				256, 180, 141, 72, 225, 180, 223, 223, 381, 46, 309, 310, 5, 379, 1, 46, 142, 193, 282, 140, 139, 141,
-				138, 178, 141, 142, 193, 67, 6, 5, 5, 5, 82, 83, 193, 140, 217, 196, 184, 178, 177, 194, 142, 5, 71, 71,
-				71, 71, 141, 5, 129, 134, 5, 72, 142, 327, 84, 193, 13, 12, 142, 142, 142, 259, 72, 72, 230, 142, 142,
-				142, 142, 178, 141, 152, 73, 217, 105, 112, 48, 47, 114, 113, 12, 128, 127, 103, 102, 78, 71, 88, 89,
-				13, 107, 106, 109, 108, 110, 126, 125, 124, 123, 122, 121, 120, 119, 118, 117, 86, 116, 115, 172, 178,
-				250, 180, 193, 35, 142, 251, 12, 182, 180, 275, 143, 84, 169, 5, 73, 259, 384, 377, 343, 5, 364, 141,
-				188, 270, 76, 67, 77, 190, 367, 140, 139, 283, 180, 283, 223, 178, 142, 223, 304, 142, 291, 5, 195, 163,
-				211, 207, 216, 213, 218, 220, 307, 230, 313, 230, 217, 217, 217, 72, 352, 5, 169, 142, 142, 5, 247, 246,
-				150, 140, 139, 23, 141, 37, 217, 184, 217, 217, 217, 217, 193, 261, 67, 141, 67, 261, 184, 327, 336,
-				141, 337, 212, 212, 304, 304, 256, 279, 280, 168, 281, 338, 67, 23, 66, 271, 271, 142, 223, 169, 169,
-				161, 161, 160, 160, 160, 163, 163, 163, 163, 163, 163, 162, 162, 173, 171, 171, 175, 174, 176, 295, 184,
-				179, 142, 178, 142, 186, 349, 350, 12, 1, 73, 169, 5, 46, 1, 193, 142, 283, 283, 142, 142, 230, 142,
-				323, 138, 324, 266, 267, 268, 269, 374, 259, 23, 195, 103, 102, 71, 13, 107, 106, 109, 108, 110, 126,
-				125, 124, 123, 122, 121, 120, 119, 118, 117, 86, 116, 115, 73, 6, 169, 169, 169, 219, 5, 353, 194, 172,
-				356, 94, 92, 1, 184, 14, 101, 99, 97, 95, 90, 98, 100, 93, 91, 76, 85, 256, 260, 142, 5, 141, 193, 156,
-				5, 78, 78, 78, 78, 230, 295, 141, 223, 193, 328, 73, 223, 5, 12, 142, 169, 86, 260, 225, 5, 142, 73, 73,
-				78, 71, 282, 282, 271, 275, 84, 84, 142, 349, 35, 186, 12, 1, 378, 230, 366, 84, 287, 225, 139, 285,
-				180, 142, 142, 84, 323, 322, 86, 73, 141, 78, 163, 163, 163, 207, 195, 195, 213, 211, 216, 184, 218,
-				217, 142, 142, 14, 84, 382, 251, 84, 5, 5, 5, 233, 5, 138, 184, 138, 196, 279, 142, 193, 67, 217, 5, 5,
-				5, 5, 140, 139, 244, 10, 67, 142, 261, 212, 187, 142, 86, 86, 142, 256, 142, 86, 86, 363, 186, 186, 73,
-				143, 73, 84, 86, 180, 285, 180, 164, 369, 270, 36, 141, 322, 193, 163, 84, 169, 315, 318, 72, 224, 84,
-				104, 84, 272, 194, 142, 272, 358, 168, 90, 272, 142, 169, 279, 230, 169, 184, 184, 184, 184, 5, 5, 6,
-				138, 140, 329, 130, 142, 263, 338, 243, 73, 285, 180, 73, 141, 36, 370, 223, 230, 142, 5, 72, 184, 169,
-				225, 169, 357, 142, 5, 169, 329, 142, 169, 140, 261, 261, 6, 5, 142, 78, 243, 14, 223, 141, 141, 315,
-				261, 251, 86, 233, 185, 320, 184, 263, 142, 104, 375, 194, 74, 66, 223, 223, 136, 355, 169, 142, 263,
-				169, 169, 142, 5, 282, 169, 142, 376, 86, 73 };
-	}
-
-	public final static char inSymb[] = InSymb.inSymb;
-
-	@Override
-	public final int inSymb(int index) {
-		return inSymb[index];
-	}
-
-	public interface Name {
-		public final static String name[] = { "", "[", "(", ".", ".*", "->", "->*", "++", "--", "&", "*", "+", "-", "~",
-				"!", "/", "%", ">>", "<<", "<", ">", "<=", ">=", "==", "!=", "^", "|", "&&", "||", "?", ":", "::",
-				"...", "=", "*=", "/=", "%=", "+=", "-=", ">>=", "<<=", "&=", "^=", "|=", ",", ">?", "<?", "$empty",
-				"_Complex", "_Imaginary", "restrict", "asm", "auto", "bool", "break", "case", "catch", "char", "class",
-				"const", "const_cast", "continue", "default", "delete", "do", "double", "dynamic_cast", "else", "enum",
-				"explicit", "export", "extern", "false", "float", "for", "friend", "goto", "if", "inline", "int",
-				"long", "mutable", "namespace", "new", "operator", "private", "protected", "public", "register",
-				"reinterpret_cast", "return", "short", "signed", "sizeof", "static", "static_cast", "struct", "switch",
-				"template", "this", "throw", "try", "true", "typedef", "typeid", "typename", "union", "unsigned",
-				"using", "virtual", "void", "volatile", "wchar_t", "while", "integer", "floating", "charconst",
-				"stringlit", "identifier", "Completion", "EndOfCompletion", "Invalid", "RightBracket", "RightParen",
-				"RightBrace", "SemiColon", "LeftBrace", "typeof", "__alignof__", "__attribute__", "__declspec",
-				"vector", "pixel", "_Decimal32", "_Decimal64", "_Decimal128", "__static_assert", "ERROR_TOKEN",
-				"EOF_TOKEN", "]", ")", "}", ";", "{", "identifier_token", "literal", "expression", "id_expression",
-				"qualified_or_unqualified_name", "unqualified_id_name", "identifier_name", "template_id_name",
-				"nested_name_specifier", "class_or_namespace_name", "nested_name_specifier_with_tem" + "plate",
-				"class_or_namespace_name_with_t" + "emplate", "class_name", "postfix_expression",
-				"simple_type_specifier", "pseudo_destructor_name", "type_id", "type_name", "destructor_type_name",
-				"unary_expression", "cast_expression", "new_type_id", "expression_list", "type_specifier_seq",
-				"new_declarator", "new_pointer_operators", "ptr_operator", "new_array_expressions",
-				"constant_expression", "pm_expression", "multiplicative_expression", "additive_expression",
-				"shift_expression", "relational_expression", "equality_expression", "and_expression",
-				"exclusive_or_expression", "inclusive_or_expression", "logical_and_expression", "logical_or_expression",
-				"assignment_expression", "relational_expression_inTempla" + "te", "equality_expression_inTemplate",
-				"and_expression_inTemplate", "exclusive_or_expression_inTemp" + "late",
-				"inclusive_or_expression_inTemp" + "late", "logical_and_expression_inTempl" + "ate",
-				"logical_or_expression_inTempla" + "te", "assignment_expression_inTempla" + "te",
-				"expression_list_actual", "statement", "compound_statement", "statement_seq", "condition", "declarator",
-				"for_init_statement", "function_definition", "declaration", "declaration_seq", "declaration_specifiers",
-				"simple_declaration_specifiers", "class_declaration_specifiers",
-				"elaborated_declaration_specifi" + "ers", "enum_declaration_specifiers",
-				"type_name_declaration_specifie" + "rs", "no_type_declaration_specifier", "cv_qualifier",
-				"no_type_declaration_specifiers", "class_specifier", "elaborated_type_specifier", "enum_specifier",
-				"type_name_specifier", "class_keyword", "enumerator_list", "enumerator_definition", "namespace_name",
-				"init_declarator_list", "init_declarator_complete", "complete_declarator", "initializer",
-				"direct_declarator", "ptr_operator_seq", "function_declarator", "basic_direct_declarator",
-				"array_direct_declarator", "array_modifier", "abstract_declarator", "direct_abstract_declarator",
-				"basic_direct_abstract_declarat" + "or", "array_direct_abstract_declarat" + "or",
-				"parameter_declaration_list", "parameter_declaration", "parameter_init_declarator",
-				"parameter_initializer", "function_body", "handler_seq", "initializer_clause", "initializer_list",
-				"initializer_seq", "class_head", "access_specifier_keyword", "member_declaration",
-				"member_declarator_list", "member_declaration_list", "member_declarator_complete",
-				"constant_initializer", "bit_field_declarator", "base_specifier_list", "base_specifier",
-				"conversion_function_id", "conversion_type_id", "conversion_declarator", "mem_initializer_list",
-				"mem_initializer", "mem_initializer_name", "operator_id_name", "overloadable_operator",
-				"template_parameter_list", "template_parameter", "template_argument_list", "template_argument",
-				"type_name_specifier_inTemplate", "type_name_declaration_specifie" + "rs_inTemplate",
-				"type_specifier_seq_inTemplate", "handler", "exception_declaration", "type_id_list",
-				"attribute_or_decl_specifier", "attribute_or_decl_specifier_se" + "q", "word",
-				"extended_decl_modifier_seq", "extended_decl_modifier", "extended_asm_param", "case_range_expression",
-				"typeof_declaration_specifiers", "typeof_type_specifier", "vector_type", "vector_type_specifier",
-				"all_specifier_qualifiers", "all_specifier_qualifier_list", "array_modifier_type_qualifiers",
-				"type_qualifier_list" };
-	}
-
-	public final static String name[] = Name.name;
-
-	@Override
-	public final String name(int index) {
-		return name[index];
-	}
-
-	public final static int ERROR_SYMBOL = 81, SCOPE_UBOUND = 161, SCOPE_SIZE = 162, MAX_NAME_LENGTH = 43;
-
-	@Override
-	public final int getErrorSymbol() {
-		return ERROR_SYMBOL;
-	}
-
-	@Override
-	public final int getScopeUbound() {
-		return SCOPE_UBOUND;
-	}
-
-	@Override
-	public final int getScopeSize() {
-		return SCOPE_SIZE;
-	}
-
-	@Override
-	public final int getMaxNameLength() {
-		return MAX_NAME_LENGTH;
-	}
-
-	public final static int NUM_STATES = 719, NT_OFFSET = 137, LA_STATE_OFFSET = 10615, MAX_LA = 2147483647,
-			NUM_RULES = 715, NUM_NONTERMINALS = 256, NUM_SYMBOLS = 393, SEGMENT_SIZE = 8192, START_STATE = 6546,
-			IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 135, EOLT_SYMBOL = 135, ACCEPT_ACTION = 8729, ERROR_ACTION = 9900;
-
-	public final static boolean BACKTRACK = true;
-
-	@Override
-	public final int getNumStates() {
-		return NUM_STATES;
-	}
-
-	@Override
-	public final int getNtOffset() {
-		return NT_OFFSET;
-	}
-
-	@Override
-	public final int getLaStateOffset() {
-		return LA_STATE_OFFSET;
-	}
-
-	@Override
-	public final int getMaxLa() {
-		return MAX_LA;
-	}
-
-	@Override
-	public final int getNumRules() {
-		return NUM_RULES;
-	}
-
-	@Override
-	public final int getNumNonterminals() {
-		return NUM_NONTERMINALS;
-	}
-
-	@Override
-	public final int getNumSymbols() {
-		return NUM_SYMBOLS;
-	}
-
-	@Override
-	public final int getSegmentSize() {
-		return SEGMENT_SIZE;
-	}
-
-	@Override
-	public final int getStartState() {
-		return START_STATE;
-	}
-
-	@Override
-	public final int getStartSymbol() {
-		return lhs[0];
-	}
-
-	public final int getIdentifierSymbol() {
-		return IDENTIFIER_SYMBOL;
-	}
-
-	@Override
-	public final int getEoftSymbol() {
-		return EOFT_SYMBOL;
-	}
-
-	@Override
-	public final int getEoltSymbol() {
-		return EOLT_SYMBOL;
-	}
-
-	@Override
-	public final int getAcceptAction() {
-		return ACCEPT_ACTION;
-	}
-
-	@Override
-	public final int getErrorAction() {
-		return ERROR_ACTION;
-	}
-
-	@Override
-	public final boolean isValidForParser() {
-		return isValidForParser;
-	}
-
-	@Override
-	public final boolean getBacktrack() {
-		return BACKTRACK;
-	}
-
-	@Override
-	public final int originalState(int state) {
-		return -baseCheck[state];
-	}
-
-	@Override
-	public final int asi(int state) {
-		return asb[originalState(state)];
-	}
-
-	@Override
-	public final int nasi(int state) {
-		return nasb[originalState(state)];
-	}
-
-	@Override
-	public final int inSymbol(int state) {
-		return inSymb[originalState(state)];
-	}
-
-	@Override
-	public final int ntAction(int state, int sym) {
-		return baseAction[state + sym];
-	}
-
-	@Override
-	public final int tAction(int state, int sym) {
-		int i = baseAction[state], k = i + sym;
-		return termAction[termCheck[k] == sym ? k : i];
-	}
-
-	@Override
-	public final int lookAhead(int la_state, int sym) {
-		int k = la_state + sym;
-		return termAction[termCheck[k] == sym ? k : la_state];
-	}
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/cpp/XlcCPPParsersym.java b/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/cpp/XlcCPPParsersym.java
deleted file mode 100644
index c88a6b1..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/cpp/XlcCPPParsersym.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2006, 2010 IBM Corporation and others.
-*
-* This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License 2.0
-* which accompanies this distribution, and is available at
-* https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*     IBM Corporation - initial API and implementation
-*********************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.lrparser.xlc.cpp;
-
-public interface XlcCPPParsersym {
-	public final static int TK__Complex = 24, TK__Imaginary = 25, TK_restrict = 34, TK_asm = 7, TK_auto = 38,
-			TK_bool = 15, TK_break = 91, TK_case = 92, TK_catch = 130, TK_char = 16, TK_class = 66, TK_const = 32,
-			TK_const_cast = 58, TK_continue = 93, TK_default = 94, TK_delete = 82, TK_do = 95, TK_double = 26,
-			TK_dynamic_cast = 59, TK_else = 136, TK_enum = 68, TK_explicit = 39, TK_export = 96, TK_extern = 40,
-			TK_false = 51, TK_float = 17, TK_for = 97, TK_friend = 41, TK_goto = 98, TK_if = 99, TK_inline = 42,
-			TK_int = 18, TK_long = 19, TK_mutable = 43, TK_namespace = 76, TK_new = 83, TK_operator = 11,
-			TK_private = 131, TK_protected = 132, TK_public = 133, TK_register = 44, TK_reinterpret_cast = 60,
-			TK_return = 100, TK_short = 20, TK_signed = 21, TK_sizeof = 61, TK_static = 35, TK_static_cast = 62,
-			TK_struct = 69, TK_switch = 101, TK_template = 67, TK_this = 52, TK_throw = 74, TK_try = 85, TK_true = 53,
-			TK_typedef = 45, TK_typeid = 63, TK_typename = 23, TK_union = 70, TK_unsigned = 22, TK_using = 77,
-			TK_virtual = 36, TK_void = 27, TK_volatile = 33, TK_wchar_t = 28, TK_while = 90, TK_integer = 54,
-			TK_floating = 55, TK_charconst = 56, TK_stringlit = 46, TK_identifier = 1, TK_Completion = 4,
-			TK_EndOfCompletion = 14, TK_Invalid = 137, TK_LeftBracket = 72, TK_LeftParen = 5, TK_Dot = 134,
-			TK_DotStar = 112, TK_Arrow = 129, TK_ArrowStar = 105, TK_PlusPlus = 49, TK_MinusMinus = 50, TK_And = 13,
-			TK_Star = 12, TK_Plus = 47, TK_Minus = 48, TK_Tilde = 10, TK_Bang = 57, TK_Slash = 113, TK_Percent = 114,
-			TK_RightShift = 88, TK_LeftShift = 89, TK_LT = 71, TK_GT = 78, TK_LE = 102, TK_GE = 103, TK_EQ = 106,
-			TK_NE = 107, TK_Caret = 108, TK_Or = 109, TK_AndAnd = 110, TK_OrOr = 115, TK_Question = 116, TK_Colon = 84,
-			TK_ColonColon = 6, TK_DotDotDot = 104, TK_Assign = 86, TK_StarAssign = 117, TK_SlashAssign = 118,
-			TK_PercentAssign = 119, TK_PlusAssign = 120, TK_MinusAssign = 121, TK_RightShiftAssign = 122,
-			TK_LeftShiftAssign = 123, TK_AndAssign = 124, TK_CaretAssign = 125, TK_OrAssign = 126, TK_Comma = 73,
-			TK_RightBracket = 111, TK_RightParen = 79, TK_RightBrace = 87, TK_SemiColon = 65, TK_LeftBrace = 75,
-			TK_typeof = 37, TK___alignof__ = 64, TK___attribute__ = 8, TK___declspec = 9, TK_MAX = 127, TK_MIN = 128,
-			TK_vector = 3, TK_pixel = 2, TK__Decimal32 = 29, TK__Decimal64 = 30, TK__Decimal128 = 31,
-			TK___static_assert = 80, TK_ERROR_TOKEN = 81, TK_EOF_TOKEN = 135;
-
-	public final static String orderedTerminalSymbols[] = { "", "identifier", "pixel", "vector", "Completion",
-			"LeftParen", "ColonColon", "asm", "__attribute__", "__declspec", "Tilde", "operator", "Star", "And",
-			"EndOfCompletion", "bool", "char", "float", "int", "long", "short", "signed", "unsigned", "typename",
-			"_Complex", "_Imaginary", "double", "void", "wchar_t", "_Decimal32", "_Decimal64", "_Decimal128", "const",
-			"volatile", "restrict", "static", "virtual", "typeof", "auto", "explicit", "extern", "friend", "inline",
-			"mutable", "register", "typedef", "stringlit", "Plus", "Minus", "PlusPlus", "MinusMinus", "false", "this",
-			"true", "integer", "floating", "charconst", "Bang", "const_cast", "dynamic_cast", "reinterpret_cast",
-			"sizeof", "static_cast", "typeid", "__alignof__", "SemiColon", "class", "template", "enum", "struct",
-			"union", "LT", "LeftBracket", "Comma", "throw", "LeftBrace", "namespace", "using", "GT", "RightParen",
-			"__static_assert", "ERROR_TOKEN", "delete", "new", "Colon", "try", "Assign", "RightBrace", "RightShift",
-			"LeftShift", "while", "break", "case", "continue", "default", "do", "export", "for", "goto", "if", "return",
-			"switch", "LE", "GE", "DotDotDot", "ArrowStar", "EQ", "NE", "Caret", "Or", "AndAnd", "RightBracket",
-			"DotStar", "Slash", "Percent", "OrOr", "Question", "StarAssign", "SlashAssign", "PercentAssign",
-			"PlusAssign", "MinusAssign", "RightShiftAssign", "LeftShiftAssign", "AndAssign", "CaretAssign", "OrAssign",
-			"MAX", "MIN", "Arrow", "catch", "private", "protected", "public", "Dot", "EOF_TOKEN", "else", "Invalid" };
-
-	public final static boolean isValidForParser = true;
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/plugin.properties b/xlc/org.eclipse.cdt.core.lrparser.xlc/plugin.properties
deleted file mode 100644
index aa74cb5..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/plugin.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-###############################################################################
-# Copyright (c) 2009 IBM Corporation and others.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-Bundle-Name.0 = XLCParser Plug-in
-Bundle-Vendor.0 = Eclipse CDT
-Bundle-Name.1 = XLC Parser Plug-in
-
-# built-in languages
-language.name.c=XL C
-language.name.cpp=XL C++
-
-preferences.page.title=XL C/C++ Language Options
\ No newline at end of file
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/plugin.xml b/xlc/org.eclipse.cdt.core.lrparser.xlc/plugin.xml
deleted file mode 100644
index ffc0beb..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/plugin.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
- <extension point="org.eclipse.cdt.core.language">
-      <language
-            class="org.eclipse.cdt.core.lrparser.xlc.XlcCLanguage"
-            id="c"
-            name="%language.name.c">
-      </language>
-      
-      <language
-            class="org.eclipse.cdt.core.lrparser.xlc.XlcCPPLanguage"
-            id="cpp"
-            name="%language.name.cpp">
-      </language>
-   </extension>
- <extension
-       point="org.eclipse.core.runtime.preferences">
-    <initializer
-          class="org.eclipse.cdt.core.lrparser.xlc.preferences.PreferenceInitializer">
-    </initializer>
- </extension>
- <extension
-         point="org.eclipse.ui.preferencePages">
-      <page
-            category="org.eclipse.cdt.ui.preferences.CPluginPreferencePage"
-            class="org.eclipse.cdt.internal.core.lrparser.xlc.ui.preferences.XlcLanguageOptionsPreferencePage"
-            id="org.eclipse.cdt.core.lrparser.xlc.ui.XlcLanguagePreferencePage"
-            name="%preferences.page.title">
-      </page>
-   </extension>
-   <extension
-         point="org.eclipse.ui.propertyPages">
-      <page
-            category="org.eclipse.cdt.ui.newui.Page_head_general"
-            class="org.eclipse.cdt.internal.core.lrparser.xlc.ui.preferences.XlcLanguageOptionsPreferencePage"
-            id="org.eclipse.cdt.core.lrparser.xlc.ui.XlcLanguagePropertyPage"
-            name="%preferences.page.title">
-         <enabledWhen>
-            <adapt
-                  type="org.eclipse.core.resources.IProject">
-               <test
-                     property="org.eclipse.core.resources.projectNature"
-                     value="org.eclipse.cdt.core.cnature">
-               </test>
-            </adapt>
-         </enabledWhen>
-      </page>
-   </extension>
-</plugin>
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/ui/org/eclipse/cdt/internal/core/lrparser/xlc/ui/preferences/PrefCheckbox.java b/xlc/org.eclipse.cdt.core.lrparser.xlc/ui/org/eclipse/cdt/internal/core/lrparser/xlc/ui/preferences/PrefCheckbox.java
deleted file mode 100644
index a886dd2..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/ui/org/eclipse/cdt/internal/core/lrparser/xlc/ui/preferences/PrefCheckbox.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.lrparser.xlc.ui.preferences;
-
-import org.eclipse.cdt.core.lrparser.xlc.preferences.XlcLanguagePreferences;
-import org.eclipse.cdt.core.lrparser.xlc.preferences.XlcPref;
-import org.eclipse.cdt.utils.ui.controls.ControlFactory;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * A simple wrapper for a checkbox.
- *
- */
-class PrefCheckbox {
-
-	private final XlcPref key;
-	private final Button button;
-
-	PrefCheckbox(Composite parent, XlcPref prefKey, String label) {
-		button = ControlFactory.createCheckBox(parent, label);
-		key = prefKey;
-	}
-
-	public XlcPref getKey() {
-		return key;
-	}
-
-	public void setSelection(boolean selection) {
-		button.setSelection(selection);
-	}
-
-	public boolean getSelection() {
-		return button.getSelection();
-	}
-
-	public void setDefault() {
-		setSelection(Boolean.valueOf(XlcLanguagePreferences.getDefaultPreference(key)));
-	}
-}
\ No newline at end of file
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/ui/org/eclipse/cdt/internal/core/lrparser/xlc/ui/preferences/PreferenceMessages.java b/xlc/org.eclipse.cdt.core.lrparser.xlc/ui/org/eclipse/cdt/internal/core/lrparser/xlc/ui/preferences/PreferenceMessages.java
deleted file mode 100644
index 1b067b4..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/ui/org/eclipse/cdt/internal/core/lrparser/xlc/ui/preferences/PreferenceMessages.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.lrparser.xlc.ui.preferences;
-
-import java.lang.reflect.Field;
-
-import org.eclipse.osgi.util.NLS;
-
-public class PreferenceMessages extends NLS {
-
-	private static final String BUNDLE_NAME = "org.eclipse.cdt.internal.core.lrparser.xlc.ui.preferences.PreferenceMessages"; //$NON-NLS-1$
-
-	private PreferenceMessages() {
-	}
-
-	static {
-		initializeMessages(BUNDLE_NAME, PreferenceMessages.class);
-	}
-
-	public static final String PREFIX = "XlcLanguageOptionsPreferencePage_";
-
-	public static String getMessage(String suffix) {
-		try {
-			Field field = PreferenceMessages.class.getDeclaredField(PREFIX + suffix);
-			return (String) field.get(null);
-
-		} catch (NoSuchFieldException e) {
-			return null;
-		} catch (IllegalAccessException e) {
-			return null;
-		}
-	}
-
-	public static String XlcLanguageOptionsPreferencePage_link, XlcLanguageOptionsPreferencePage_group,
-
-			XlcLanguageOptionsPreferencePage_SUPPORT_VECTOR_TYPES,
-			XlcLanguageOptionsPreferencePage_SUPPORT_DECIMAL_FLOATING_POINT_TYPES,
-			XlcLanguageOptionsPreferencePage_SUPPORT_COMPLEX_IN_CPP,
-			XlcLanguageOptionsPreferencePage_SUPPORT_RESTRICT_IN_CPP,
-			XlcLanguageOptionsPreferencePage_SUPPORT_STATIC_ASSERT;
-}
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/ui/org/eclipse/cdt/internal/core/lrparser/xlc/ui/preferences/PreferenceMessages.properties b/xlc/org.eclipse.cdt.core.lrparser.xlc/ui/org/eclipse/cdt/internal/core/lrparser/xlc/ui/preferences/PreferenceMessages.properties
deleted file mode 100644
index 2562cc9..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/ui/org/eclipse/cdt/internal/core/lrparser/xlc/ui/preferences/PreferenceMessages.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-###############################################################################
-#  Copyright (c) 2009, 2010 IBM Corporation and others.
-#
-#  This program and the accompanying materials
-#  are made available under the terms of the Eclipse Public License 2.0
-#  which accompanies this distribution, and is available at
-#  https://www.eclipse.org/legal/epl-2.0/
-#
-#  SPDX-License-Identifier: EPL-2.0
-#
-#  Contributors:
-#      IBM Corporation - initial API and implementation
-###############################################################################
-
-XlcLanguageOptionsPreferencePage_link=These settings are project-specific. The settings listed here override <a href="org.eclipse.cdt.core.lrparser.xlc.ui.XlcLanguagePreferencePage">workspace-wide</a> language settings.
-XlcLanguageOptionsPreferencePage_group=Support For XL C/C++ Language Extensions
-
-XlcLanguageOptionsPreferencePage_SUPPORT_VECTOR_TYPES=Allow vector type declarations
-XlcLanguageOptionsPreferencePage_SUPPORT_DECIMAL_FLOATING_POINT_TYPES=Allow decimal floating-point types (_Decimal32, _Decimal64, _Decimal128)
-XlcLanguageOptionsPreferencePage_SUPPORT_COMPLEX_IN_CPP=Allow complex type in C++ (_Complex)
-XlcLanguageOptionsPreferencePage_SUPPORT_RESTRICT_IN_CPP=Allow 'restrict' keyword in C++ (restrict, __restrict, __restrict__)
-XlcLanguageOptionsPreferencePage_SUPPORT_STATIC_ASSERT=Allow static assert declarations (__static_assert)
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/ui/org/eclipse/cdt/internal/core/lrparser/xlc/ui/preferences/XlcLanguageOptionsPreferencePage.java b/xlc/org.eclipse.cdt.core.lrparser.xlc/ui/org/eclipse/cdt/internal/core/lrparser/xlc/ui/preferences/XlcLanguageOptionsPreferencePage.java
deleted file mode 100644
index 141b70c..0000000
--- a/xlc/org.eclipse.cdt.core.lrparser.xlc/ui/org/eclipse/cdt/internal/core/lrparser/xlc/ui/preferences/XlcLanguageOptionsPreferencePage.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.internal.core.lrparser.xlc.ui.preferences;
-
-import org.eclipse.cdt.core.lrparser.xlc.preferences.XlcLanguagePreferences;
-import org.eclipse.cdt.core.lrparser.xlc.preferences.XlcPref;
-import org.eclipse.cdt.utils.ui.controls.ControlFactory;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Link;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.ui.IWorkbenchPropertyPage;
-import org.eclipse.ui.dialogs.PreferencesUtil;
-
-/**
- * TODO trigger reindex?
- *
- */
-public class XlcLanguageOptionsPreferencePage extends PreferencePage
-		implements IWorkbenchPreferencePage, IWorkbenchPropertyPage {
-
-	private IAdaptable element;
-	private PrefCheckbox[] checkboxes;
-
-	private void initializeCheckboxes(Composite group) {
-		XlcPref[] prefs = XlcPref.values();
-		int n = prefs.length;
-		checkboxes = new PrefCheckbox[n];
-		IProject project = getProject(); // null for preference page
-
-		for (int i = 0; i < n; i++) {
-			String message = PreferenceMessages.getMessage(prefs[i].toString());
-			checkboxes[i] = new PrefCheckbox(group, prefs[i], message);
-			String preference = XlcLanguagePreferences.get(prefs[i], project);
-			checkboxes[i].setSelection(Boolean.valueOf(preference));
-		}
-	}
-
-	@Override
-	protected Control createContents(Composite parent) {
-		Composite page = ControlFactory.createComposite(parent, 1);
-
-		if (isPropertyPage()) {
-			Link link = new Link(page, SWT.NONE);
-			link.setText(PreferenceMessages.XlcLanguageOptionsPreferencePage_link);
-			link.addListener(SWT.Selection, new Listener() {
-				@Override
-				public void handleEvent(Event event) {
-					PreferencesUtil.createPreferenceDialogOn(getShell(), event.text, null, null).open();
-				}
-			});
-		}
-
-		Composite group = ControlFactory.createGroup(page, PreferenceMessages.XlcLanguageOptionsPreferencePage_group,
-				1);
-		initializeCheckboxes(group);
-
-		return page;
-	}
-
-	@Override
-	protected void performDefaults() {
-		for (PrefCheckbox button : checkboxes) {
-			button.setDefault();
-		}
-		super.performDefaults();
-	}
-
-	@Override
-	public boolean performOk() {
-		IProject project = getProject();
-		for (PrefCheckbox button : checkboxes) {
-			setPreference(button.getKey(), button.getSelection(), project);
-		}
-		return true;
-	}
-
-	private static void setPreference(XlcPref key, boolean val, IProject project) {
-		String s = String.valueOf(val);
-		if (project != null)
-			XlcLanguagePreferences.setProjectPreference(key, s, project);
-		else
-			XlcLanguagePreferences.setWorkspacePreference(key, s);
-	}
-
-	private IProject getProject() {
-		return isPropertyPage() ? (IProject) element.getAdapter(IProject.class) : null;
-	}
-
-	@Override
-	public IAdaptable getElement() {
-		return element;
-	}
-
-	@Override
-	public void setElement(IAdaptable element) {
-		this.element = element;
-	}
-
-	public boolean isPropertyPage() {
-		return element != null;
-	}
-
-	@Override
-	public void init(IWorkbench workbench) {
-		// TODO Auto-generated method stub
-	}
-
-}
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/.classpath b/xlc/org.eclipse.cdt.errorparsers.xlc.tests/.classpath
deleted file mode 100644
index eca7bdb..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/.project b/xlc/org.eclipse.cdt.errorparsers.xlc.tests/.project
deleted file mode 100644
index ab9159a..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.cdt.errorparsers.xlc.tests</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/.settings/org.eclipse.jdt.core.prefs b/xlc/org.eclipse.cdt.errorparsers.xlc.tests/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index ad05599..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,464 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch, *.xtend
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.mainOnlyProjectHasTestOnlyDependency=error
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.APILeak=warning
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=ignore
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
-org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=ignore
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=ignore
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
-org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
-org.eclipse.jdt.core.formatter.align_with_spaces=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
-org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped=true
-org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=true
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
-org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/.settings/org.eclipse.jdt.launching.prefs b/xlc/org.eclipse.cdt.errorparsers.xlc.tests/.settings/org.eclipse.jdt.launching.prefs
deleted file mode 100644
index f8a131b..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/.settings/org.eclipse.jdt.launching.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.launching.PREF_COMPILER_COMPLIANCE_DOES_NOT_MATCH_JRE=warning
-org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=warning
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/.settings/org.eclipse.jdt.ui.prefs b/xlc/org.eclipse.cdt.errorparsers.xlc.tests/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index e445763..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,133 +0,0 @@
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_missing_override_annotations_interface_methods=true
-cleanup.add_serial_version_id=false
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_functional_interfaces=false
-cleanup.convert_to_enhanced_for_loop=false
-cleanup.correct_indentation=false
-cleanup.format_source_code=true
-cleanup.format_source_code_changes_only=false
-cleanup.insert_inferred_type_arguments=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=true
-cleanup.qualify_static_field_accesses_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=false
-cleanup.qualify_static_method_accesses_with_declaring_class=false
-cleanup.remove_private_constructors=true
-cleanup.remove_redundant_modifiers=false
-cleanup.remove_redundant_semicolons=true
-cleanup.remove_redundant_type_arguments=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=false
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_anonymous_class_creation=false
-cleanup.use_blocks=false
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_lambda=true
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup_profile=_CDT
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_CDT
-formatter_settings_version=14
-internal.default.compliance=user
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.ondemandthreshold=1000
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.staticondemandthreshold=1000
-org.eclipse.jdt.ui.text.custom_code_templates=
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_functional_interfaces=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.insert_inferred_type_arguments=false
-sp_cleanup.make_local_variable_final=true
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_redundant_modifiers=false
-sp_cleanup.remove_redundant_semicolons=true
-sp_cleanup.remove_redundant_type_arguments=true
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=true
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_anonymous_class_creation=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_lambda=true
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/.settings/org.eclipse.pde.api.tools.prefs b/xlc/org.eclipse.cdt.errorparsers.xlc.tests/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index ec9fbf3..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,184 +0,0 @@
-ANNOTATION_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITH_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-API_USE_SCAN_FIELD_SEVERITY=Error
-API_USE_SCAN_METHOD_SEVERITY=Error
-API_USE_SCAN_TYPE_SEVERITY=Error
-CLASS_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERCLASS_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_CHANGED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENTS=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETERS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_ANNOTATION=Ignore
-INVALID_JAVADOC_TAG=Error
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Warning
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-MISSING_EE_DESCRIPTIONS=Warning
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-automatically_removed_unused_problem_filters=false
-changed_execution_env=Error
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-incompatible_api_component_version_report_major_without_breaking_change=Warning
-incompatible_api_component_version_report_minor_without_api_change=Warning
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/.settings/org.eclipse.pde.prefs b/xlc/org.eclipse.cdt.errorparsers.xlc.tests/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 51a63ec..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,35 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.build.bin.includes=1
-compilers.p.build.encodings=2
-compilers.p.build.java.compiler=2
-compilers.p.build.java.compliance=1
-compilers.p.build.missing.output=2
-compilers.p.build.output.library=1
-compilers.p.build.source.library=1
-compilers.p.build.src.includes=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=1
-compilers.p.missing-packages=2
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=2
-compilers.p.missing-version-require-bundle=2
-compilers.p.no-required-att=0
-compilers.p.no.automatic.module=1
-compilers.p.not-externalized-att=2
-compilers.p.service.component.without.lazyactivation=1
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/META-INF/MANIFEST.MF b/xlc/org.eclipse.cdt.errorparsers.xlc.tests/META-INF/MANIFEST.MF
deleted file mode 100644
index 9088d2c..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,18 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: xlC Error Parser Tests Plug-in
-Bundle-SymbolicName: org.eclipse.cdt.errorparsers.xlc.tests;singleton:=true
-Bundle-Version: 5.0.100.qualifier
-Bundle-Activator: org.eclipse.cdt.errorparsers.xlc.tests.TestsPlugin
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.eclipse.core.resources,
- org.eclipse.cdt.core,
- org.eclipse.cdt.errorparsers.xlc,
- org.junit
-Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.cdt.errorparsers.xlc.tests
-Bundle-ClassPath: .
-Bundle-Vendor: Eclipse.org
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Automatic-Module-Name: org.eclipse.cdt.errorparsers.xlc.tests
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/about.html b/xlc/org.eclipse.cdt.errorparsers.xlc.tests/about.html
deleted file mode 100644
index 164f781..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
-	<h2>About This Content</h2>
-
-	<p>November 30, 2017</p>
-	<h3>License</h3>
-
-	<p>
-		The Eclipse Foundation makes available all content in this plug-in
-		(&quot;Content&quot;). Unless otherwise indicated below, the Content
-		is provided to you under the terms and conditions of the Eclipse
-		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
-		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>
-		If you did not receive this Content directly from the Eclipse
-		Foundation, the Content is being redistributed by another party
-		(&quot;Redistributor&quot;) and different terms and conditions may
-		apply to your use of any object code in the Content. Check the
-		Redistributor's license that was provided with the Content. If no such
-		license exists, contact the Redistributor. Unless otherwise indicated
-		below, the terms and conditions of the EPL still apply to any source
-		code in the Content and such source code may be obtained at <a
-			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
-	</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/build.properties b/xlc/org.eclipse.cdt.errorparsers.xlc.tests/build.properties
deleted file mode 100644
index 35a8eda..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/build.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-#  Copyright (c) 2006, 2009 IBM Corporation and others.
-#
-#  This program and the accompanying materials
-#  are made available under the terms of the Eclipse Public License 2.0
-#  which accompanies this distribution, and is available at
-#  https://www.eclipse.org/legal/epl-2.0/
-#
-#  SPDX-License-Identifier: EPL-2.0
-#
-#  Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = META-INF/,\
-               .
-jars.compile.order = org.eclipse.cdt.errorparsers.xlc.tests.jar
-src.includes = about.html
-source.. = src/
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/AutomatedIntegrationSuite.java b/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/AutomatedIntegrationSuite.java
deleted file mode 100644
index 9070a43..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/AutomatedIntegrationSuite.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2013 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.errorparsers.xlc.tests;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class AutomatedIntegrationSuite {
-	public static void main(String[] args) {
-		junit.textui.TestRunner.run(AutomatedIntegrationSuite.suite());
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite("Testsuite for xlc compiler error parser");
-		//$JUnit-BEGIN$
-		suite.addTestSuite(TestInformationalMessage_1.class);
-		suite.addTestSuite(TestInformationalMessage_2.class);
-		suite.addTestSuite(TestInformationalMessage_3.class);
-		suite.addTestSuite(TestWarning_1.class);
-		suite.addTestSuite(TestError_1.class);
-		suite.addTestSuite(TestSevereError_1.class);
-		suite.addTestSuite(TestSevereError_2.class);
-		suite.addTestSuite(TestSevereError_3.class);
-		suite.addTestSuite(TestSevereError_4.class);
-		suite.addTestSuite(TestSevereError_5.class);
-		suite.addTestSuite(TestUnrecoverableError_1.class);
-		suite.addTestSuite(TestUnrecoverableError_2.class);
-		suite.addTestSuite(TestUnrecoverableError_3.class);
-
-		suite.addTestSuite(TestCompatibility.class);
-		suite.addTestSuite(TestRedefinition.class);
-		suite.addTestSuite(TestRedeclaration.class);
-		suite.addTestSuite(TestCommandOptionNotRecognized.class);
-
-		suite.addTestSuite(TestLinkerCommandOptionNotRecognized.class);
-		suite.addTestSuite(TestLinkerUndefinedSymbol.class);
-		suite.addTestSuite(TestLinkerDuplicateSymbol.class);
-		suite.addTestSuite(TestLinkerSevereError.class);
-		suite.addTestSuite(TestLinkerErrorWhileReading.class);
-		suite.addTestSuite(TestLinkerInfo.class);
-
-		//$JUnit-END$
-		return suite;
-	}
-}
\ No newline at end of file
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestCommandOptionNotRecognized.java b/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestCommandOptionNotRecognized.java
deleted file mode 100644
index a0e7b91..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestCommandOptionNotRecognized.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013, 2013 Andrew Gvozdev and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     Andrew Gvozdev - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.errorparsers.xlc.tests;
-
-import org.eclipse.cdt.core.IMarkerGenerator;
-
-import junit.framework.TestCase;
-
-public class TestCommandOptionNotRecognized extends TestCase {
-	String err_msg;
-
-	/**
-	 * This function tests parseLine function of the
-	 * XlcErrorParser class. A warning message generated by
-	 * xlc compiler about command options is given as
-	 * input for testing.
-	 */
-	public void testparseLine() {
-		XlcErrorParserTester aix = new XlcErrorParserTester();
-		aix.parseLine(err_msg);
-		assertEquals("", aix.getFileName(0));
-		assertEquals(0, aix.getLineNumber(0));
-		assertEquals(IMarkerGenerator.SEVERITY_WARNING, aix.getSeverity(0));
-		assertEquals("command option 9 is not recognized - passed to ld", aix.getMessage(0));
-	}
-
-	public TestCommandOptionNotRecognized(String name) {
-		super(name);
-		err_msg = "/usr/vacpp/bin/xlc: 1501-216 command option 9 is not recognized - passed to ld";
-	}
-}
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestCompatibility.java b/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestCompatibility.java
deleted file mode 100644
index 8110adb..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestCompatibility.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.errorparsers.xlc.tests;
-
-import org.eclipse.cdt.core.IMarkerGenerator;
-
-import junit.framework.TestCase;
-
-public class TestCompatibility extends TestCase {
-	String err_msg;
-
-	/**
-	 * This function tests parseLine function of the
-	 * XlcErrorParser class. Error message generated by
-	 * xlC compiler without message number or quotes around file name
-	 * which was OK in older version.
-	 */
-	public void testparseLine() {
-		XlcErrorParserTester aix = new XlcErrorParserTester();
-		aix.parseLine(err_msg);
-		assertEquals("temp1.c", aix.getFileName(0));
-		assertEquals(5, aix.getLineNumber(0));
-		assertEquals(IMarkerGenerator.SEVERITY_INFO, aix.getSeverity(0));
-		assertEquals("Compatibility test", aix.getMessage(0));
-	}
-
-	public TestCompatibility(String name) {
-		super(name);
-		err_msg = "temp1.c, line 5.1: (I) Compatibility test";
-	}
-}
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestError_1.java b/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestError_1.java
deleted file mode 100644
index 1c60241..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestError_1.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2013 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.cdt.errorparsers.xlc.tests;
-
-import org.eclipse.cdt.core.IMarkerGenerator;
-
-import junit.framework.TestCase;
-
-public class TestError_1 extends TestCase {
-	String err_msg;
-
-	/**
-	 * This function tests parseLine function of the
-	 * XlcErrorParser class. Error message generated by
-	 * xlc compiler with medium severity (E) is given as
-	 * input for testing.
-	 */
-	public void testparseLine() {
-		XlcErrorParserTester aix = new XlcErrorParserTester();
-		aix.parseLine(err_msg);
-		assertEquals("temp8.c", aix.getFileName(0));
-		assertEquals(9, aix.getLineNumber(0));
-		assertEquals(IMarkerGenerator.SEVERITY_ERROR_RESOURCE, aix.getSeverity(0));
-		assertEquals("Missing argument(s).", aix.getMessage(0));
-	}
-
-	public TestError_1(String name) {
-		super(name);
-		err_msg = "\"temp8.c\", line 9.17: 1506-098 (E) " + "Missing argument(s).";
-	}
-}
\ No newline at end of file
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestInformationalMessage_1.java b/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestInformationalMessage_1.java
deleted file mode 100644
index f401275..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestInformationalMessage_1.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2013 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.cdt.errorparsers.xlc.tests;
-
-import org.eclipse.cdt.core.IMarkerGenerator;
-
-import junit.framework.TestCase;
-
-public class TestInformationalMessage_1 extends TestCase {
-	String err_msg;
-
-	/**
-	 * This function tests parseLine function of the
-	 * XlcErrorParser class. Informative message generated
-	 * by the xlc compiler is given as input for testing.
-	 */
-	public void testparseLine() {
-		XlcErrorParserTester aix = new XlcErrorParserTester();
-		aix.parseLine(err_msg);
-		assertEquals("temp8.c", aix.getFileName(0));
-		assertEquals(12, aix.getLineNumber(0));
-		assertEquals(IMarkerGenerator.SEVERITY_INFO, aix.getSeverity(0));
-		assertEquals("The then branch of conditional is an empty statement.", aix.getMessage(0));
-	}
-
-	public TestInformationalMessage_1(String name) {
-		super(name);
-		err_msg = "\"temp8.c\", line 12.9: 1506-478 (I) " + "The then branch of conditional is an empty statement.";
-	}
-}
\ No newline at end of file
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestInformationalMessage_2.java b/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestInformationalMessage_2.java
deleted file mode 100644
index a1e4479..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestInformationalMessage_2.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013, 2013 Andrew Gvozdev and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     Andrew Gvozdev - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.errorparsers.xlc.tests;
-
-import org.eclipse.cdt.core.IMarkerGenerator;
-
-import junit.framework.TestCase;
-
-public class TestInformationalMessage_2 extends TestCase {
-	String err_msg;
-
-	/**
-	 * This function tests parseLine function of the
-	 * XlcErrorParser class. A variant of informational message generated by
-	 * xlc compiler with no file or line is given as
-	 * input for testing.
-	 */
-	public void testparseLine() {
-		XlcErrorParserTester aix = new XlcErrorParserTester();
-		aix.parseLine(err_msg);
-		assertEquals("", aix.getFileName(0));
-		assertEquals(0, aix.getLineNumber(0));
-		assertEquals(IMarkerGenerator.SEVERITY_INFO, aix.getSeverity(0));
-		assertEquals(
-				"clazz::fun(): Additional optimization may be attained by recompiling and specifying MAXMEM option with a value greater than 8192.",
-				aix.getMessage(0));
-	}
-
-	public TestInformationalMessage_2(String name) {
-		super(name);
-		err_msg = "    1500-030: (I) INFORMATION: clazz::fun(): Additional optimization may be attained by recompiling and specifying MAXMEM option with a value greater than 8192.";
-	}
-}
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestInformationalMessage_3.java b/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestInformationalMessage_3.java
deleted file mode 100644
index 448ac65..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestInformationalMessage_3.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013, 2013 Andrew Gvozdev and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     Andrew Gvozdev - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.errorparsers.xlc.tests;
-
-import org.eclipse.cdt.core.IMarkerGenerator;
-
-import junit.framework.TestCase;
-
-public class TestInformationalMessage_3 extends TestCase {
-	String err_msg;
-
-	/**
-	 * This function tests parseLine function of the
-	 * XlcErrorParser class. A variant of informational message generated by
-	 * xlc compiler is given as input for testing.
-	 */
-	public void testparseLine() {
-		XlcErrorParserTester aix = new XlcErrorParserTester();
-		aix.parseLine(err_msg);
-		assertEquals("", aix.getFileName(0));
-		assertEquals(0, aix.getLineNumber(0));
-		assertEquals(IMarkerGenerator.SEVERITY_INFO, aix.getSeverity(0));
-		assertEquals("Global variable \"__td __td__Q2_3std13runtime_error\" is not used.", aix.getMessage(0));
-	}
-
-	public TestInformationalMessage_3(String name) {
-		super(name);
-		err_msg = "1540-5336 (I) Global variable \"__td __td__Q2_3std13runtime_error\" is not used.";
-	}
-}
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestLinkerCommandOptionNotRecognized.java b/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestLinkerCommandOptionNotRecognized.java
deleted file mode 100644
index 5fd4f20..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestLinkerCommandOptionNotRecognized.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2013 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.cdt.errorparsers.xlc.tests;
-
-import org.eclipse.cdt.core.IMarkerGenerator;
-
-import junit.framework.TestCase;
-
-public class TestLinkerCommandOptionNotRecognized extends TestCase {
-	String err_msg;
-
-	/**
-	 * This function tests parseLine function of the
-	 * XlcErrorParser class. A warning message generated by
-	 * xlc linker about command options is given as
-	 * input for testing.
-	 */
-	public void testparseLine() {
-		XlcErrorParserTester aix = new XlcErrorParserTester();
-		aix.parseLine(err_msg);
-		assertEquals("", aix.getFileName(0));
-		assertEquals(0, aix.getLineNumber(0));
-		assertEquals(IMarkerGenerator.SEVERITY_WARNING, aix.getSeverity(0));
-		assertEquals("The -9 flag is not recognized.", aix.getMessage(0));
-	}
-
-	public TestLinkerCommandOptionNotRecognized(String name) {
-		super(name);
-		err_msg = "ld: 0706-012 The -9 flag is not recognized.";
-	}
-}
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestLinkerDuplicateSymbol.java b/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestLinkerDuplicateSymbol.java
deleted file mode 100644
index f498ca8..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestLinkerDuplicateSymbol.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.cdt.errorparsers.xlc.tests;
-
-import org.eclipse.cdt.core.IMarkerGenerator;
-
-import junit.framework.TestCase;
-
-public class TestLinkerDuplicateSymbol extends TestCase {
-	String err_msg;
-
-	/**
-	 * This function tests parseLine function of the
-	 * XlcErrorParser class. Error message generated by
-	 * xlc linker with "WARNING" level is given as
-	 * input for testing.
-	 */
-	public void testparseLine() {
-		XlcErrorParserTester aix = new XlcErrorParserTester();
-		aix.parseLine(err_msg);
-		assertEquals("", aix.getFileName(0));
-		assertEquals(0, aix.getLineNumber(0));
-		assertEquals(IMarkerGenerator.SEVERITY_WARNING, aix.getSeverity(0));
-		assertEquals("Duplicate symbol: dupefun", aix.getMessage(0));
-	}
-
-	public TestLinkerDuplicateSymbol(String name) {
-		super(name);
-		err_msg = "ld: 0711-224 WARNING: Duplicate symbol: dupefun";
-	}
-}
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestLinkerErrorWhileReading.java b/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestLinkerErrorWhileReading.java
deleted file mode 100644
index c8a3b11..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestLinkerErrorWhileReading.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.cdt.errorparsers.xlc.tests;
-
-import org.eclipse.cdt.core.IMarkerGenerator;
-
-import junit.framework.TestCase;
-
-public class TestLinkerErrorWhileReading extends TestCase {
-	String err_msg;
-
-	/**
-	 * This function tests parseLine function of the
-	 * XlcErrorParser class. Error message generated by
-	 * xlc linker with "ERROR" level is given as
-	 * input for testing.
-	 */
-	public void testparseLine() {
-		XlcErrorParserTester aix = new XlcErrorParserTester();
-		aix.parseLine(err_msg);
-		assertEquals("", aix.getFileName(0));
-		assertEquals(0, aix.getLineNumber(0));
-		assertEquals(IMarkerGenerator.SEVERITY_ERROR_RESOURCE, aix.getSeverity(0));
-		assertEquals("Error occurred while reading file", aix.getMessage(0));
-	}
-
-	public TestLinkerErrorWhileReading(String name) {
-		super(name);
-		err_msg = "ld: 0711-987 Error occurred while reading file";
-	}
-}
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestLinkerInfo.java b/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestLinkerInfo.java
deleted file mode 100644
index 4c7fe71..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestLinkerInfo.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.cdt.errorparsers.xlc.tests;
-
-import org.eclipse.cdt.core.IMarkerGenerator;
-
-import junit.framework.TestCase;
-
-public class TestLinkerInfo extends TestCase {
-	String err_msg;
-
-	/**
-	 * This function tests parseLine function of the
-	 * XlcErrorParser class. Informational message generated by
-	 * xlc linker is given as
-	 * input for testing.
-	 */
-	public void testparseLine() {
-		XlcErrorParserTester aix = new XlcErrorParserTester();
-		aix.parseLine(err_msg);
-		assertEquals("", aix.getFileName(0));
-		assertEquals(0, aix.getLineNumber(0));
-		assertEquals(IMarkerGenerator.SEVERITY_INFO, aix.getSeverity(0));
-		assertEquals("Use the -bloadmap or -bnoquiet option to obtain more information.", aix.getMessage(0));
-	}
-
-	public TestLinkerInfo(String name) {
-		super(name);
-		err_msg = "ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.";
-	}
-}
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestLinkerSevereError.java b/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestLinkerSevereError.java
deleted file mode 100644
index 15daa18..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestLinkerSevereError.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.cdt.errorparsers.xlc.tests;
-
-import org.eclipse.cdt.core.IMarkerGenerator;
-
-import junit.framework.TestCase;
-
-public class TestLinkerSevereError extends TestCase {
-	String err_msg;
-
-	/**
-	 * This function tests parseLine function of the
-	 * XlcErrorParser class. Error message generated by
-	 * xlc linker with "SEVERE ERROR" level is given as
-	 * input for testing.
-	 */
-	public void testparseLine() {
-		XlcErrorParserTester aix = new XlcErrorParserTester();
-		aix.parseLine(err_msg);
-		assertEquals("", aix.getFileName(0));
-		assertEquals(0, aix.getLineNumber(0));
-		assertEquals(IMarkerGenerator.SEVERITY_ERROR_RESOURCE, aix.getSeverity(0));
-		assertEquals("EXEC binder commands nested too deeply.", aix.getMessage(0));
-	}
-
-	public TestLinkerSevereError(String name) {
-		super(name);
-		err_msg = "ld: 0711-634 SEVERE ERROR: EXEC binder commands nested too deeply.";
-	}
-}
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestLinkerUndefinedSymbol.java b/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestLinkerUndefinedSymbol.java
deleted file mode 100644
index 03059ae..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestLinkerUndefinedSymbol.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.cdt.errorparsers.xlc.tests;
-
-import org.eclipse.cdt.core.IMarkerGenerator;
-
-import junit.framework.TestCase;
-
-public class TestLinkerUndefinedSymbol extends TestCase {
-	String err_msg;
-
-	/**
-	 * This function tests parseLine function of the
-	 * XlcErrorParser class. Error message generated by
-	 * xlc linker with "ERROR" level is given as
-	 * input for testing.
-	 */
-	public void testparseLine() {
-		XlcErrorParserTester aix = new XlcErrorParserTester();
-		aix.parseLine(err_msg);
-		assertEquals("", aix.getFileName(0));
-		assertEquals(0, aix.getLineNumber(0));
-		assertEquals(IMarkerGenerator.SEVERITY_ERROR_RESOURCE, aix.getSeverity(0));
-		assertEquals("Undefined symbol: nofun()", aix.getMessage(0));
-	}
-
-	public TestLinkerUndefinedSymbol(String name) {
-		super(name);
-		err_msg = "ld: 0711-317 ERROR: Undefined symbol: nofun()";
-	}
-}
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestRedeclaration.java b/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestRedeclaration.java
deleted file mode 100644
index 4545f8f..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestRedeclaration.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.errorparsers.xlc.tests;
-
-import org.eclipse.cdt.core.IMarkerGenerator;
-
-import junit.framework.TestCase;
-
-public class TestRedeclaration extends TestCase {
-	/**
-	 * This function tests parseLine function of the
-	 * XlcErrorParser class. The second message generated by
-	 * xlc compiler for symbol redeclaration problem is given as
-	 * input for testing.
-	 */
-	public void testparseLine() {
-		XlcErrorParserTester aix = new XlcErrorParserTester();
-		// Redeclaration error generates 2 cross-referencing messages.
-		String err_msg = "\"src/temp1.c\", line 6.6: 1506-343 (S) Redeclaration of my_fun differs from previous declaration on line 334 of \"include/temp1.h\".";
-		aix.parseLine(err_msg);
-		assertEquals(2, aix.getNumberOfMarkers());
-
-		assertEquals("Redeclaration of my_fun differs from another declaration on line 6 of \"src/temp1.c\".",
-				aix.getMessage(0));
-		assertEquals("temp1.h", aix.getFileName(0));
-		assertEquals(334, aix.getLineNumber(0));
-		assertEquals(IMarkerGenerator.SEVERITY_ERROR_RESOURCE, aix.getSeverity(0));
-
-		assertEquals("Redeclaration of my_fun differs from previous declaration on line 334 of \"include/temp1.h\".",
-				aix.getMessage(1));
-		assertEquals("temp1.c", aix.getFileName(1));
-		assertEquals(6, aix.getLineNumber(1));
-		assertEquals(IMarkerGenerator.SEVERITY_ERROR_RESOURCE, aix.getSeverity(1));
-	}
-
-	public TestRedeclaration(String name) {
-		super(name);
-	}
-}
\ No newline at end of file
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestRedefinition.java b/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestRedefinition.java
deleted file mode 100644
index d2fddf4..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestRedefinition.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.errorparsers.xlc.tests;
-
-import org.eclipse.cdt.core.IMarkerGenerator;
-
-import junit.framework.TestCase;
-
-public class TestRedefinition extends TestCase {
-	/**
-	 * This function tests parseLine function of the
-	 * XlcErrorParser class. The second message generated by
-	 * xlc compiler for macro/variable redefinition problem is given as
-	 * input for testing.
-	 */
-	public void testparseLine() {
-		XlcErrorParserTester aix = new XlcErrorParserTester();
-		// Macro redefinition warning generates 2 messages. First line is ignored.
-		// Second line is re-parsed to 2 warnings to cross-reference both.
-		String err_msg1 = "\"temp1.c\", line 5.9: 1506-236 (W) Macro name TEMP_1 has been redefined.";
-		String err_msg2 = "\"temp1.c\", line 5.9: 1506-358 (I) \"TEMP_1\" is defined on line 3 of temp1.h.";
-		// variation of the message
-		String err_msg3 = "\"temp2.c\", line 17.9: 1506-358 (I) \"MACRO_2\" is defined on line 10 of \"temp2.c\".";
-		aix.parseLine(err_msg1);
-		aix.parseLine(err_msg2);
-		aix.parseLine(err_msg3);
-		assertEquals(4, aix.getNumberOfMarkers());
-
-		assertEquals("\"TEMP_1\" has been redefined on line 5 of temp1.c", aix.getMessage(0));
-		assertEquals("temp1.h", aix.getFileName(0));
-		assertEquals(3, aix.getLineNumber(0));
-		assertEquals(IMarkerGenerator.SEVERITY_WARNING, aix.getSeverity(0));
-
-		assertEquals("\"TEMP_1\" redefines original definition on line 3 of temp1.h", aix.getMessage(1));
-		assertEquals("temp1.c", aix.getFileName(1));
-		assertEquals(5, aix.getLineNumber(1));
-		assertEquals(IMarkerGenerator.SEVERITY_WARNING, aix.getSeverity(1));
-
-		assertEquals("\"MACRO_2\" has been redefined on line 17 of temp2.c", aix.getMessage(2));
-		assertEquals("temp2.c", aix.getFileName(2));
-		assertEquals(10, aix.getLineNumber(2));
-		assertEquals(IMarkerGenerator.SEVERITY_WARNING, aix.getSeverity(2));
-
-		assertEquals("\"MACRO_2\" redefines original definition on line 10 of temp2.c", aix.getMessage(3));
-		assertEquals("temp2.c", aix.getFileName(3));
-		assertEquals(17, aix.getLineNumber(3));
-		assertEquals(IMarkerGenerator.SEVERITY_WARNING, aix.getSeverity(3));
-	}
-
-	public TestRedefinition(String name) {
-		super(name);
-	}
-}
\ No newline at end of file
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestSevereError_1.java b/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestSevereError_1.java
deleted file mode 100644
index 09358ce..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestSevereError_1.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2013 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.errorparsers.xlc.tests;
-
-import org.eclipse.cdt.core.IMarkerGenerator;
-
-import junit.framework.TestCase;
-
-public class TestSevereError_1 extends TestCase {
-	String err_msg;
-
-	/**
-	 * This function tests parseLine function of the
-	 * XlcErrorParser class. Error message generated by
-	 * xlc compiler with high severity (S) is given as
-	 * input for testing.
-	 */
-	public void testparseLine() {
-		XlcErrorParserTester aix = new XlcErrorParserTester();
-		aix.parseLine(err_msg);
-		assertEquals("temp1.c", aix.getFileName(0));
-		assertEquals(5, aix.getLineNumber(0));
-		assertEquals(IMarkerGenerator.SEVERITY_ERROR_RESOURCE, aix.getSeverity(0));
-		assertEquals("Syntax error: possible missing ')'?", aix.getMessage(0));
-	}
-
-	public TestSevereError_1(String name) {
-		super(name);
-		err_msg = "\"temp1.c\", line 5.1: 1506-276 (S) " + "Syntax error: possible missing ')'?";
-	}
-}
\ No newline at end of file
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestSevereError_2.java b/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestSevereError_2.java
deleted file mode 100644
index cf7ab77..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestSevereError_2.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2013 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.cdt.errorparsers.xlc.tests;
-
-import org.eclipse.cdt.core.IMarkerGenerator;
-
-import junit.framework.TestCase;
-
-public class TestSevereError_2 extends TestCase {
-	String err_msg;
-
-	/**
-	 * This function tests parseLine function of the
-	 * XlcErrorParser class. Error message generated by
-	 * xlc compiler with high severity (S) is given as
-	 * input for testing.
-	 */
-	public void testparseLine() {
-		XlcErrorParserTester aix = new XlcErrorParserTester();
-		aix.parseLine(err_msg);
-		assertEquals("temp5.c", aix.getFileName(0));
-		assertEquals(5, aix.getLineNumber(0));
-		assertEquals(IMarkerGenerator.SEVERITY_ERROR_RESOURCE, aix.getSeverity(0));
-		assertEquals("Undeclared identifier y.", aix.getMessage(0));
-	}
-
-	public TestSevereError_2(String name) {
-		super(name);
-		err_msg = "\"temp5.c\", line 5.9: 1506-045 (S) " + "Undeclared identifier y.";
-	}
-}
\ No newline at end of file
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestSevereError_3.java b/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestSevereError_3.java
deleted file mode 100644
index e2a32aa..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestSevereError_3.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2013 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.cdt.errorparsers.xlc.tests;
-
-import org.eclipse.cdt.core.IMarkerGenerator;
-
-import junit.framework.TestCase;
-
-public class TestSevereError_3 extends TestCase {
-	String err_msg;
-
-	/**
-	 * This function tests parseLine function of the
-	 * XlcErrorParser class. Error message generated by
-	 * xlc compiler with high severity (S) is given as
-	 * input for testing.
-	 */
-	public void testparseLine() {
-		XlcErrorParserTester aix = new XlcErrorParserTester();
-		aix.parseLine(err_msg);
-		assertEquals("temp9.c", aix.getFileName(0));
-		assertEquals(11, aix.getLineNumber(0));
-		assertEquals(IMarkerGenerator.SEVERITY_ERROR_RESOURCE, aix.getSeverity(0));
-		assertEquals("Floating point constant 10.23.3 is not valid", aix.getMessage(0));
-	}
-
-	public TestSevereError_3(String name) {
-		super(name);
-		err_msg = "\"temp9.c\", line 11.18: 1506-189 (S) " + "Floating point constant 10.23.3 is not valid";
-	}
-}
\ No newline at end of file
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestSevereError_4.java b/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestSevereError_4.java
deleted file mode 100644
index ae72385..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestSevereError_4.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2013 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.cdt.errorparsers.xlc.tests;
-
-import org.eclipse.cdt.core.IMarkerGenerator;
-
-import junit.framework.TestCase;
-
-public class TestSevereError_4 extends TestCase {
-	String err_msg;
-
-	/**
-	 * This function tests parseLine function of the
-	 * XlcErrorParser class. Error message generated by
-	 * xlc compiler with high severity (S) is given as
-	 * input for testing.
-	 */
-	public void testparseLine() {
-		XlcErrorParserTester aix = new XlcErrorParserTester();
-		aix.parseLine(err_msg);
-		assertEquals("temp9.c", aix.getFileName(0));
-		assertEquals(12, aix.getLineNumber(0));
-		assertEquals(IMarkerGenerator.SEVERITY_ERROR_RESOURCE, aix.getSeverity(0));
-		assertEquals("Function argument assignment between types " + "\"int\" and \"char*\" is not allowed.",
-				aix.getMessage(0));
-	}
-
-	public TestSevereError_4(String name) {
-		super(name);
-		err_msg = "\"temp9.c\", line 12.18: 1506-280 (S) " + "Function argument assignment between types "
-				+ "\"int\" and \"char*\" is not allowed.";
-	}
-}
\ No newline at end of file
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestSevereError_5.java b/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestSevereError_5.java
deleted file mode 100644
index 87f6f35..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestSevereError_5.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2013 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.errorparsers.xlc.tests;
-
-import org.eclipse.cdt.core.IMarkerGenerator;
-
-import junit.framework.TestCase;
-
-public class TestSevereError_5 extends TestCase {
-	String err_msg;
-
-	/**
-	 * This function tests parseLine function of the
-	 * XlcErrorParser class. Error message generated by
-	 * xlc compiler with high severity (S) is given as
-	 * input for testing.
-	 */
-	public void testparseLine() {
-		XlcErrorParserTester aix = new XlcErrorParserTester();
-		aix.parseLine(err_msg);
-		assertEquals("temp9.c", aix.getFileName(0));
-		assertEquals(13, aix.getLineNumber(0));
-		assertEquals(IMarkerGenerator.SEVERITY_ERROR_RESOURCE, aix.getSeverity(0));
-		assertEquals("Operand must be a modifiable lvalue.", aix.getMessage(0));
-	}
-
-	public TestSevereError_5(String name) {
-		super(name);
-		err_msg = "\"temp9.c\", line 13.9: 1506-025 (S) " + "Operand must be a modifiable lvalue.";
-	}
-}
\ No newline at end of file
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestUnrecoverableError_1.java b/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestUnrecoverableError_1.java
deleted file mode 100644
index 6ec0025..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestUnrecoverableError_1.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2013 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.errorparsers.xlc.tests;
-
-import org.eclipse.cdt.core.IMarkerGenerator;
-
-import junit.framework.TestCase;
-
-public class TestUnrecoverableError_1 extends TestCase {
-	String err_msg;
-
-	/**
-	 * This function tests parseLine function of the
-	 * XlcErrorParser class. Error message generated by
-	 * xlc compiler with unrecoverable severity (U) is given as
-	 * input for testing.
-	 */
-	public void testparseLine() {
-		XlcErrorParserTester aix = new XlcErrorParserTester();
-		aix.parseLine(err_msg);
-		assertEquals("temp1.c", aix.getFileName(0));
-		assertEquals(5, aix.getLineNumber(0));
-		assertEquals(IMarkerGenerator.SEVERITY_ERROR_RESOURCE, aix.getSeverity(0));
-		assertEquals("INTERNAL COMPILER ERROR", aix.getMessage(0));
-	}
-
-	public TestUnrecoverableError_1(String name) {
-		super(name);
-		err_msg = "\"temp1.c\", line 5.1: 1506-001 (U) " + "INTERNAL COMPILER ERROR";
-	}
-}
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestUnrecoverableError_2.java b/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestUnrecoverableError_2.java
deleted file mode 100644
index ecaa304..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestUnrecoverableError_2.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013, 2013 Andrew Gvozdev and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     Andrew Gvozdev - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.errorparsers.xlc.tests;
-
-import org.eclipse.cdt.core.IMarkerGenerator;
-
-import junit.framework.TestCase;
-
-public class TestUnrecoverableError_2 extends TestCase {
-	String err_msg;
-
-	/**
-	 * This function tests parseLine function of the
-	 * XlcErrorParser class. A variant of error message generated by
-	 * xlc compiler with unrecoverable severity (U) is given as
-	 * input for testing.
-	 */
-	public void testparseLine() {
-		XlcErrorParserTester aix = new XlcErrorParserTester();
-		aix.parseLine(err_msg);
-		assertEquals("", aix.getFileName(0));
-		assertEquals(0, aix.getLineNumber(0));
-		assertEquals(IMarkerGenerator.SEVERITY_ERROR_RESOURCE, aix.getSeverity(0));
-		assertEquals("An error occurred during code generation.  The code generation return code was 1.",
-				aix.getMessage(0));
-	}
-
-	public TestUnrecoverableError_2(String name) {
-		super(name);
-		err_msg = "1586-346 (U) An error occurred during code generation.  The code generation return code was 1.";
-	}
-}
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestUnrecoverableError_3.java b/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestUnrecoverableError_3.java
deleted file mode 100644
index 41615b8..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestUnrecoverableError_3.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013, 2013 Andrew Gvozdev and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     Andrew Gvozdev - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.errorparsers.xlc.tests;
-
-import org.eclipse.cdt.core.IMarkerGenerator;
-
-import junit.framework.TestCase;
-
-public class TestUnrecoverableError_3 extends TestCase {
-	String err_msg;
-
-	/**
-	 * This function tests parseLine function of the
-	 * XlcErrorParser class. A variant of error message generated by
-	 * xlc compiler with unrecoverable severity (U) is given as
-	 * input for testing.
-	 */
-	public void testparseLine() {
-		XlcErrorParserTester aix = new XlcErrorParserTester();
-		aix.parseLine(err_msg);
-		assertEquals("", aix.getFileName(0));
-		assertEquals(0, aix.getLineNumber(0));
-		assertEquals(IMarkerGenerator.SEVERITY_ERROR_RESOURCE, aix.getSeverity(0));
-		assertEquals(
-				"INTERNAL COMPILER ERROR while compiling ----.  Compilation ended.  Contact your Service Representative and provide the following information: Internal abort. For more information visit: http://www.ibm.com/support/docview.wss?uid=swg21110810",
-				aix.getMessage(0));
-	}
-
-	public TestUnrecoverableError_3(String name) {
-		super(name);
-		err_msg = "    1500-004: (U) INTERNAL COMPILER ERROR while compiling ----.  Compilation ended.  Contact your Service Representative and provide the following information: Internal abort. For more information visit: http://www.ibm.com/support/docview.wss?uid=swg21110810";
-	}
-}
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestWarning_1.java b/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestWarning_1.java
deleted file mode 100644
index 632fb92..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestWarning_1.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2013 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.errorparsers.xlc.tests;
-
-import org.eclipse.cdt.core.IMarkerGenerator;
-
-import junit.framework.TestCase;
-
-public class TestWarning_1 extends TestCase {
-	String err_msg;
-
-	/**
-	 * This function tests parseLine function of the
-	 * XlcErrorParser class. Warning message generated by
-	 * xlc compiler (W) is given as input for testing.
-	 */
-	public void testparseLine() {
-		XlcErrorParserTester aix = new XlcErrorParserTester();
-		aix.parseLine(err_msg);
-		assertEquals("temp1.c", aix.getFileName(0));
-		assertEquals(5, aix.getLineNumber(0));
-		assertEquals(IMarkerGenerator.SEVERITY_WARNING, aix.getSeverity(0));
-		assertEquals("No function prototype given for \"printf\".", aix.getMessage(0));
-	}
-
-	public TestWarning_1(String name) {
-		super(name);
-		err_msg = "\"temp1.c\", line 5.9: 1506-304 (W) " + "No function prototype given for \"printf\".";
-	}
-}
\ No newline at end of file
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestsPlugin.java b/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestsPlugin.java
deleted file mode 100644
index 00fa2c7..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestsPlugin.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.cdt.errorparsers.xlc.tests;
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class TestsPlugin extends AbstractUIPlugin {
-	//The shared instance.
-	private static TestsPlugin plugin;
-	//Resource bundle.
-	private ResourceBundle resourceBundle;
-
-	/**
-	 * The constructor.
-	 */
-	public TestsPlugin() {
-		super();
-		plugin = this;
-	}
-
-	/**
-	 * This method is called upon plug-in activation
-	 */
-	@Override
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-	}
-
-	/**
-	 * This method is called when the plug-in is stopped
-	 */
-	@Override
-	public void stop(BundleContext context) throws Exception {
-		super.stop(context);
-		plugin = null;
-		resourceBundle = null;
-	}
-
-	/**
-	 * Returns the shared instance.
-	 */
-	public static TestsPlugin getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * Returns the string from the plugin's resource bundle,
-	 * or 'key' if not found.
-	 */
-	public static String getResourceString(String key) {
-		ResourceBundle bundle = TestsPlugin.getDefault().getResourceBundle();
-		try {
-			return (bundle != null) ? bundle.getString(key) : key;
-		} catch (MissingResourceException e) {
-			return key;
-		}
-	}
-
-	/**
-	 * Returns the plugin's resource bundle,
-	 */
-	public ResourceBundle getResourceBundle() {
-		try {
-			if (resourceBundle == null)
-				resourceBundle = ResourceBundle
-						.getBundle("org.eclipse.cdt.errorparsers.xlc.tests.TestsPluginResources");
-		} catch (MissingResourceException x) {
-			resourceBundle = null;
-		}
-		return resourceBundle;
-	}
-
-	/**
-	 * Returns an image descriptor for the image file at the given
-	 * plug-in relative path.
-	 *
-	 * @param path the path
-	 * @return the image descriptor
-	 */
-	public static ImageDescriptor getImageDescriptor(String path) {
-		return AbstractUIPlugin.imageDescriptorFromPlugin("org.eclipse.cdt.errorparsers.xlc.tests", path);
-	}
-}
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/XlcErrorParserTester.java b/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/XlcErrorParserTester.java
deleted file mode 100644
index da531ab..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/XlcErrorParserTester.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2014 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Andrew Gvozdev
- *******************************************************************************/
-
-package org.eclipse.cdt.errorparsers.xlc.tests;
-
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.fail;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.cdt.core.ErrorParserManager;
-import org.eclipse.cdt.core.IErrorParserNamed;
-import org.eclipse.cdt.core.IMarkerGenerator;
-import org.eclipse.cdt.core.ProblemMarkerInfo;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-
-/*
- * Helper tester class to be able to test XlcErrorParser which extends AbstractErrorParser.
- */
-
-public class XlcErrorParserTester {
-	public static final String XLC_ERROR_PARSER_ID = "org.eclipse.cdt.errorparsers.xlc.XlcErrorParser";
-
-	static private int counter = 0;
-	IProject fTempProject = ResourcesPlugin.getWorkspace().getRoot()
-			.getProject("XlcErrorParserTester.temp." + counter++);
-
-	XlcErrorParserTester() {
-		try {
-			fTempProject.create(null);
-		} catch (CoreException e) {
-			e.printStackTrace();
-			fail("Exception creating temporary project " + fTempProject.getName() + ": " + e);
-		}
-	}
-
-	private class MarkerData {
-		private String fileName;
-		private int lineNumber;
-		private int severity;
-		private String message;
-	}
-
-	private List<MarkerData> markerDataList = new ArrayList<>();
-
-	/*
-	 * Dummy class implementing IMarkerGenerator lets get through testing
-	 * without NPE.
-	 */
-	private class MockMarkerGenerator implements IMarkerGenerator {
-
-		@Override
-		public void addMarker(IResource file, int lineNumber, String errorDesc, int severity, String errorVar) {
-			// dummy
-		}
-
-		@Override
-		public void addMarker(ProblemMarkerInfo problemMarkerInfo) {
-			// dummy
-		}
-
-	}
-
-	/*
-	 * Class MockErrorParserManager replaces ErrorParserManager
-	 * with the purpose to be able to inquire how the line was parsed.
-	 * fileName, lineNumber, message and severity are populated
-	 * to be accessed from the test cases.
-	 * Relying on internal implementation of ErrorPattern.RecordError()
-	 * to provide necessary data via generateExternalMarker() call
-	 */
-	private class MockErrorParserManager extends ErrorParserManager {
-
-		private MockErrorParserManager() {
-			super(fTempProject, new MockMarkerGenerator());
-		}
-
-		/*
-		 * A stub function just to return non-null IFile.
-		 * Necessary to trick ErrorPattern.RecordError() to generate markers.
-		 */
-		@Override
-		public IFile findFileName(String fileName) {
-			if (fileName != null && fileName.trim().length() > 0)
-				return fTempProject.getFile(fileName);
-			return null;
-		}
-
-		/**
-		 * Called by ErrorPattern.RecordError() for external problem markers
-		 */
-		@Override
-		public void generateExternalMarker(IResource rc, int lineNumb, String desc, int sev, String varName,
-				IPath externalPath) {
-			// if rc is this project it means that file was not found
-			MarkerData markerData = new MarkerData();
-			if (rc != null && rc != fTempProject) {
-				markerData.fileName = rc.getName();
-			} else {
-				markerData.fileName = "";
-			}
-			markerData.lineNumber = lineNumb;
-			markerData.message = desc;
-			markerData.severity = sev;
-
-			markerDataList.add(markerData);
-		}
-	}
-
-	/**
-	 * Main method called by individual error parser tests.
-	 * @param line one xlC error message
-	 * @return
-	 */
-	boolean parseLine(String line) {
-		IErrorParserNamed errorParser = ErrorParserManager.getErrorParserCopy(XLC_ERROR_PARSER_ID);
-		assertNotNull(errorParser);
-
-		MockErrorParserManager epManager = new MockErrorParserManager();
-		return errorParser.processLine(line, epManager);
-	}
-
-	int getNumberOfMarkers() {
-		return markerDataList.size();
-	}
-
-	String getFileName(int i) {
-		return markerDataList.get(i).fileName;
-	}
-
-	int getLineNumber(int i) {
-		return markerDataList.get(i).lineNumber;
-	}
-
-	int getSeverity(int i) {
-		return markerDataList.get(i).severity;
-	}
-
-	String getMessage(int i) {
-		return markerDataList.get(i).message;
-	}
-}
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc/.classpath b/xlc/org.eclipse.cdt.errorparsers.xlc/.classpath
deleted file mode 100644
index eca7bdb..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc/.project b/xlc/org.eclipse.cdt.errorparsers.xlc/.project
deleted file mode 100644
index 510561d..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.cdt.errorparsers.xlc</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc/.settings/org.eclipse.jdt.core.prefs b/xlc/org.eclipse.cdt.errorparsers.xlc/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 2b6ecff..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,464 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch, *.xtend
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.mainOnlyProjectHasTestOnlyDependency=error
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.APILeak=warning
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
-org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
-org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
-org.eclipse.jdt.core.formatter.align_with_spaces=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
-org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped=true
-org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=true
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
-org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc/.settings/org.eclipse.jdt.launching.prefs b/xlc/org.eclipse.cdt.errorparsers.xlc/.settings/org.eclipse.jdt.launching.prefs
deleted file mode 100644
index f8a131b..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc/.settings/org.eclipse.jdt.launching.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.launching.PREF_COMPILER_COMPLIANCE_DOES_NOT_MATCH_JRE=warning
-org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=warning
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc/.settings/org.eclipse.jdt.ui.prefs b/xlc/org.eclipse.cdt.errorparsers.xlc/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index e445763..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,133 +0,0 @@
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_missing_override_annotations_interface_methods=true
-cleanup.add_serial_version_id=false
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_functional_interfaces=false
-cleanup.convert_to_enhanced_for_loop=false
-cleanup.correct_indentation=false
-cleanup.format_source_code=true
-cleanup.format_source_code_changes_only=false
-cleanup.insert_inferred_type_arguments=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=true
-cleanup.qualify_static_field_accesses_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=false
-cleanup.qualify_static_method_accesses_with_declaring_class=false
-cleanup.remove_private_constructors=true
-cleanup.remove_redundant_modifiers=false
-cleanup.remove_redundant_semicolons=true
-cleanup.remove_redundant_type_arguments=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=false
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_anonymous_class_creation=false
-cleanup.use_blocks=false
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_lambda=true
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup_profile=_CDT
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_CDT
-formatter_settings_version=14
-internal.default.compliance=user
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.ondemandthreshold=1000
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.staticondemandthreshold=1000
-org.eclipse.jdt.ui.text.custom_code_templates=
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_functional_interfaces=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.insert_inferred_type_arguments=false
-sp_cleanup.make_local_variable_final=true
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_redundant_modifiers=false
-sp_cleanup.remove_redundant_semicolons=true
-sp_cleanup.remove_redundant_type_arguments=true
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=true
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_anonymous_class_creation=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_lambda=true
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc/.settings/org.eclipse.pde.api.tools.prefs b/xlc/org.eclipse.cdt.errorparsers.xlc/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index ec9fbf3..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,184 +0,0 @@
-ANNOTATION_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITH_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-API_USE_SCAN_FIELD_SEVERITY=Error
-API_USE_SCAN_METHOD_SEVERITY=Error
-API_USE_SCAN_TYPE_SEVERITY=Error
-CLASS_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERCLASS_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_CHANGED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENTS=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETERS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_ANNOTATION=Ignore
-INVALID_JAVADOC_TAG=Error
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Warning
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-MISSING_EE_DESCRIPTIONS=Warning
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-automatically_removed_unused_problem_filters=false
-changed_execution_env=Error
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-incompatible_api_component_version_report_major_without_breaking_change=Warning
-incompatible_api_component_version_report_minor_without_api_change=Warning
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc/.settings/org.eclipse.pde.prefs b/xlc/org.eclipse.cdt.errorparsers.xlc/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index d2dc703..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,35 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.build.bin.includes=1
-compilers.p.build.encodings=2
-compilers.p.build.java.compiler=2
-compilers.p.build.java.compliance=1
-compilers.p.build.missing.output=2
-compilers.p.build.output.library=1
-compilers.p.build.source.library=1
-compilers.p.build.src.includes=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=1
-compilers.p.missing-packages=2
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=2
-compilers.p.missing-version-require-bundle=2
-compilers.p.no-required-att=0
-compilers.p.no.automatic.module=1
-compilers.p.not-externalized-att=1
-compilers.p.service.component.without.lazyactivation=1
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc/META-INF/MANIFEST.MF b/xlc/org.eclipse.cdt.errorparsers.xlc/META-INF/MANIFEST.MF
deleted file mode 100644
index 9b79b73..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,16 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.cdt.errorparsers.xlc; singleton:=true
-Bundle-Version: 5.0.101.qualifier
-Bundle-Activator: org.eclipse.cdt.errorparsers.xlc.Activator
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.eclipse.cdt.core,
- org.eclipse.core.resources
-Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.cdt.errorparsers.xlc
-Bundle-Vendor: %providerName
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Automatic-Module-Name: org.eclipse.cdt.errorparsers.xlc
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc/about.html b/xlc/org.eclipse.cdt.errorparsers.xlc/about.html
deleted file mode 100644
index 164f781..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
-	<h2>About This Content</h2>
-
-	<p>November 30, 2017</p>
-	<h3>License</h3>
-
-	<p>
-		The Eclipse Foundation makes available all content in this plug-in
-		(&quot;Content&quot;). Unless otherwise indicated below, the Content
-		is provided to you under the terms and conditions of the Eclipse
-		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
-		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>
-		If you did not receive this Content directly from the Eclipse
-		Foundation, the Content is being redistributed by another party
-		(&quot;Redistributor&quot;) and different terms and conditions may
-		apply to your use of any object code in the Content. Check the
-		Redistributor's license that was provided with the Content. If no such
-		license exists, contact the Redistributor. Unless otherwise indicated
-		below, the terms and conditions of the EPL still apply to any source
-		code in the Content and such source code may be obtained at <a
-			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
-	</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc/build.properties b/xlc/org.eclipse.cdt.errorparsers.xlc/build.properties
deleted file mode 100644
index cdba9cf..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-###############################################################################
-#  Copyright (c) 2006, 2009 IBM Corporation and others.
-#
-#  This program and the accompanying materials
-#  are made available under the terms of the Eclipse Public License 2.0
-#  which accompanies this distribution, and is available at
-#  https://www.eclipse.org/legal/epl-2.0/
-#
-#  SPDX-License-Identifier: EPL-2.0
-#
-#  Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.properties,\
-               plugin.xml,\
-               about.html
-src.includes = about.html
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc/plugin.properties b/xlc/org.eclipse.cdt.errorparsers.xlc/plugin.properties
deleted file mode 100755
index 8bed0bb..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc/plugin.properties
+++ /dev/null
@@ -1,58 +0,0 @@
-###############################################################################
-#  Copyright (c) 2006, 2010 IBM Corporation and others.
-#
-#  This program and the accompanying materials
-#  are made available under the terms of the Eclipse Public License 2.0
-#  which accompanies this distribution, and is available at
-#  https://www.eclipse.org/legal/epl-2.0/
-#
-#  SPDX-License-Identifier: EPL-2.0
-#
-#  Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# plugin.properties
-# contains externalized strings for plugin.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-pluginName=xlC Error Parser Test Plugin
-providerName=Eclipse CDT
-
-CDTXLCErrorParser.name=xlC Error Parser
-
-# Translators:  do not translate patterns below. We currently do not support NL versions of the XL C/C++ compilers.
-# Following are patterns of xlC compiler messages. While translating the patterns should be replaced
-# with corresponding patterns matching localized compiler messages
-
-# START NON-TRANSLATABLE
-# "hello.c", line 5.9: 1506-358 (I) "MACRO" is defined on line 3 of hello.h.
-CDTXLCErrorParser.pattern.macro="?([^"]*)"?, line ([0-9]+)\\.[0-9]+:( [0-9]*-[0-9]*)? \\(I\\)\\s*(.*) is defined on line ([0-9]+) of "?([^"]*)"?\\.
-CDTXLCErrorParser.pattern.macro.replacement=$4 has been redefined on line $2 of $1
-CDTXLCErrorParser.pattern.macro.crossreference=$4 redefines original definition on line $5 of $6
-CDTXLCErrorParser.pattern.macro.ignore="?([^"]*)"?, line ([0-9]+)\\.[0-9]+:( [0-9]*-[0-9]*)? \\(W\\)\\s*Macro name .* has been redefined\\.
-# "src/temp1.c", line 6.6: 1506-343 (S) Redeclaration of fun differs from previous declaration on line 334 of "include/temp1.h".
-CDTXLCErrorParser.pattern.redeclaration="?([^"]*)"?, line ([0-9]+)\\.[0-9]+:( [0-9]*-[0-9]*)? \\(S\\)\\s*Redeclaration of (\\w+) differs from previous declaration on line (\\d+) of "?([^"]*)"?\\.
-CDTXLCErrorParser.pattern.redeclaration.crossreference=Redeclaration of $4 differs from another declaration on line $2 of "$1".
-# "main.cpp", line 10.6: 1540-0064 (S) Syntax error:  "name" was expected but "char" was found.
-CDTXLCErrorParser.pattern.error="?([^"]*)"?, line ([0-9]+)\\.[0-9]+:( [0-9]*-[0-9]*)? \\([USE]\\)\\s*(.*)
-CDTXLCErrorParser.pattern.warning="?([^"]*)"?, line ([0-9]+)\\.[0-9]+:( [0-9]*-[0-9]*)? \\(W\\)\\s*(.*)
-CDTXLCErrorParser.pattern.info="?([^"]*)"?, line ([0-9]+)\\.[0-9]+:( [0-9]*-[0-9]*)? \\(I\\)\\s*(.*)
-# 1586-346 (U) An error occurred during code generation.  The code generation return code was 1.
-CDTXLCErrorParser.pattern.error2=\\s*([0-9]*-[0-9]*:?)? \\([USE]\\)\\s*(.*)
-# /usr/vacpp/bin/xlc: 1501-216 command option 9 is not recognized - passed to ld
-CDTXLCErrorParser.pattern.warning2=/[/\\w]+: [0-9]+-[0-9]+\\s*(.*)
-#     1500-030: (I) INFORMATION: clazz::fun(): Additional optimization may be attained by recompiling and specifying MAXMEM option with a value greater than 8192.
-# 1540-5336 (I) Global variable "__td __td__Q2_3std13runtime_error" is not used.
-CDTXLCErrorParser.pattern.info2=\\s*([0-9]*-[0-9]*:?)? \\(I\\)( INFORMATION:)?\\s*(.*)
-# ld: 0711-224 WARNING: Duplicate symbol: symboldupe
-# WARNING, ERROR, SEVERE ERROR etc.
-CDTXLCErrorParser.pattern.ld.error=ld: ([0-9]+-[0-9]+).*ERROR:\\s*(.*)
-CDTXLCErrorParser.pattern.ld.warning=ld: ([0-9]+-[0-9]+)\\s*WARNING:\\s*(.*)
-# ld: 0706-012 The -9 flag is not recognized.
-CDTXLCErrorParser.pattern.ld.warning2=ld: 0706-012\\s*(.*)
-# ld: 0711-987 Error occurred while reading file
-CDTXLCErrorParser.pattern.ld.error2=ld: ([0-9]+-[0-9]+)\\s*(Error .*)
-# ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
-CDTXLCErrorParser.pattern.ld.info=ld: ([0-9]+-[0-9]+)\\s*(.*)
-# END NON-TRANSLATABLE
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc/plugin.xml b/xlc/org.eclipse.cdt.errorparsers.xlc/plugin.xml
deleted file mode 100644
index dff6bff..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc/plugin.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
-	<extension id="XlcErrorParser" name="%CDTXLCErrorParser.name" point="org.eclipse.cdt.core.ErrorParser">
-		<errorparser
-				class="org.eclipse.cdt.core.errorparsers.RegexErrorParser"
-				id="org.eclipse.cdt.errorparsers.xlc.XlcErrorParser"
-				name="%CDTXLCErrorParser.name">
-			<pattern regex="%CDTXLCErrorParser.pattern.macro.ignore" severity="Ignore" file-expr="" line-expr="" description-expr="" eat-processed-line="true" />
-			<pattern regex="%CDTXLCErrorParser.pattern.macro" severity="Warning" file-expr="$6" line-expr="$5" description-expr="%CDTXLCErrorParser.pattern.macro.replacement" eat-processed-line="false" />
-			<pattern regex="%CDTXLCErrorParser.pattern.macro" severity="Warning" file-expr="$1" line-expr="$2" description-expr="%CDTXLCErrorParser.pattern.macro.crossreference" eat-processed-line="true" />
-			<pattern regex="%CDTXLCErrorParser.pattern.redeclaration" severity="Error" file-expr="$6" line-expr="$5" description-expr="%CDTXLCErrorParser.pattern.redeclaration.crossreference" eat-processed-line="false" />
-			<pattern regex="%CDTXLCErrorParser.pattern.error" severity="Error" file-expr="$1" line-expr="$2" description-expr="$4" eat-processed-line="true"/>
-			<pattern regex="%CDTXLCErrorParser.pattern.error2" severity="Error" file-expr="" line-expr="" description-expr="$2" eat-processed-line="true"/>
-			<pattern regex="%CDTXLCErrorParser.pattern.warning" severity="Warning" file-expr="$1" line-expr="$2" description-expr="$4" eat-processed-line="true"/>
-			<pattern regex="%CDTXLCErrorParser.pattern.warning2" severity="Warning" file-expr="" line-expr="" description-expr="$1" eat-processed-line="true"/>
-			<pattern regex="%CDTXLCErrorParser.pattern.info" severity="Info" file-expr="$1" line-expr="$2" description-expr="$4" eat-processed-line="true"/>
-			<pattern regex="%CDTXLCErrorParser.pattern.info2" severity="Info" file-expr="" line-expr="" description-expr="$3" eat-processed-line="true"/>
-			<pattern regex="%CDTXLCErrorParser.pattern.ld.error" severity="Error" file-expr="" line-expr="" description-expr="$2" eat-processed-line="true"/>
-			<pattern regex="%CDTXLCErrorParser.pattern.ld.error2" severity="Error" file-expr="" line-expr="" description-expr="$2" eat-processed-line="true"/>
-			<pattern regex="%CDTXLCErrorParser.pattern.ld.warning" severity="Warning" file-expr="" line-expr="" description-expr="$2" eat-processed-line="true"/>
-			<pattern regex="%CDTXLCErrorParser.pattern.ld.warning2" severity="Warning" file-expr="" line-expr="" description-expr="$1" eat-processed-line="true"/>
-			<pattern regex="%CDTXLCErrorParser.pattern.ld.info" severity="Info" file-expr="" line-expr="" description-expr="$2" eat-processed-line="true"/>
-		</errorparser>
-	</extension>
-</plugin>
diff --git a/xlc/org.eclipse.cdt.errorparsers.xlc/src/org/eclipse/cdt/errorparsers/xlc/Activator.java b/xlc/org.eclipse.cdt.errorparsers.xlc/src/org/eclipse/cdt/errorparsers/xlc/Activator.java
deleted file mode 100644
index b6b7949..0000000
--- a/xlc/org.eclipse.cdt.errorparsers.xlc/src/org/eclipse/cdt/errorparsers/xlc/Activator.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2009 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.cdt.errorparsers.xlc;
-
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class Activator extends AbstractUIPlugin {
-
-	// The plug-in ID
-	public static final String PLUGIN_ID = "org.eclipse.cdt.errorparsers.xlc"; //$NON-NLS-1$
-
-	// The shared instance
-	private static Activator plugin;
-
-	/**
-	 * The constructor
-	 */
-	public Activator() {
-		plugin = this;
-	}
-
-	@Override
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-	}
-
-	@Override
-	public void stop(BundleContext context) throws Exception {
-		plugin = null;
-		super.stop(context);
-	}
-
-	/**
-	 * Returns the shared instance
-	 *
-	 * @return the shared instance
-	 */
-	public static Activator getDefault() {
-		return plugin;
-	}
-
-}
diff --git a/xlc/org.eclipse.cdt.make.xlc.core/.classpath b/xlc/org.eclipse.cdt.make.xlc.core/.classpath
deleted file mode 100644
index 22f3064..0000000
--- a/xlc/org.eclipse.cdt.make.xlc.core/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/xlc/org.eclipse.cdt.make.xlc.core/.project b/xlc/org.eclipse.cdt.make.xlc.core/.project
deleted file mode 100644
index 3c0a75d..0000000
--- a/xlc/org.eclipse.cdt.make.xlc.core/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.cdt.make.xlc.core</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/xlc/org.eclipse.cdt.make.xlc.core/.settings/org.eclipse.jdt.core.prefs b/xlc/org.eclipse.cdt.make.xlc.core/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 2b6ecff..0000000
--- a/xlc/org.eclipse.cdt.make.xlc.core/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,464 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch, *.xtend
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.mainOnlyProjectHasTestOnlyDependency=error
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.APILeak=warning
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
-org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
-org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
-org.eclipse.jdt.core.formatter.align_with_spaces=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
-org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped=true
-org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=true
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
-org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
diff --git a/xlc/org.eclipse.cdt.make.xlc.core/.settings/org.eclipse.jdt.launching.prefs b/xlc/org.eclipse.cdt.make.xlc.core/.settings/org.eclipse.jdt.launching.prefs
deleted file mode 100644
index f8a131b..0000000
--- a/xlc/org.eclipse.cdt.make.xlc.core/.settings/org.eclipse.jdt.launching.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.launching.PREF_COMPILER_COMPLIANCE_DOES_NOT_MATCH_JRE=warning
-org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=warning
diff --git a/xlc/org.eclipse.cdt.make.xlc.core/.settings/org.eclipse.jdt.ui.prefs b/xlc/org.eclipse.cdt.make.xlc.core/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index e445763..0000000
--- a/xlc/org.eclipse.cdt.make.xlc.core/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,133 +0,0 @@
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_missing_override_annotations_interface_methods=true
-cleanup.add_serial_version_id=false
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_functional_interfaces=false
-cleanup.convert_to_enhanced_for_loop=false
-cleanup.correct_indentation=false
-cleanup.format_source_code=true
-cleanup.format_source_code_changes_only=false
-cleanup.insert_inferred_type_arguments=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=true
-cleanup.qualify_static_field_accesses_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=false
-cleanup.qualify_static_method_accesses_with_declaring_class=false
-cleanup.remove_private_constructors=true
-cleanup.remove_redundant_modifiers=false
-cleanup.remove_redundant_semicolons=true
-cleanup.remove_redundant_type_arguments=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=false
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_anonymous_class_creation=false
-cleanup.use_blocks=false
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_lambda=true
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup_profile=_CDT
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_CDT
-formatter_settings_version=14
-internal.default.compliance=user
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.ondemandthreshold=1000
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.staticondemandthreshold=1000
-org.eclipse.jdt.ui.text.custom_code_templates=
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_functional_interfaces=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.insert_inferred_type_arguments=false
-sp_cleanup.make_local_variable_final=true
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_redundant_modifiers=false
-sp_cleanup.remove_redundant_semicolons=true
-sp_cleanup.remove_redundant_type_arguments=true
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=true
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_anonymous_class_creation=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_lambda=true
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/xlc/org.eclipse.cdt.make.xlc.core/.settings/org.eclipse.pde.api.tools.prefs b/xlc/org.eclipse.cdt.make.xlc.core/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index ec9fbf3..0000000
--- a/xlc/org.eclipse.cdt.make.xlc.core/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,184 +0,0 @@
-ANNOTATION_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITH_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-API_USE_SCAN_FIELD_SEVERITY=Error
-API_USE_SCAN_METHOD_SEVERITY=Error
-API_USE_SCAN_TYPE_SEVERITY=Error
-CLASS_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERCLASS_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_CHANGED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENTS=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETERS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_ANNOTATION=Ignore
-INVALID_JAVADOC_TAG=Error
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Warning
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-MISSING_EE_DESCRIPTIONS=Warning
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-automatically_removed_unused_problem_filters=false
-changed_execution_env=Error
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-incompatible_api_component_version_report_major_without_breaking_change=Warning
-incompatible_api_component_version_report_minor_without_api_change=Warning
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
diff --git a/xlc/org.eclipse.cdt.make.xlc.core/.settings/org.eclipse.pde.prefs b/xlc/org.eclipse.cdt.make.xlc.core/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index d2dc703..0000000
--- a/xlc/org.eclipse.cdt.make.xlc.core/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,35 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.build.bin.includes=1
-compilers.p.build.encodings=2
-compilers.p.build.java.compiler=2
-compilers.p.build.java.compliance=1
-compilers.p.build.missing.output=2
-compilers.p.build.output.library=1
-compilers.p.build.source.library=1
-compilers.p.build.src.includes=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=1
-compilers.p.missing-packages=2
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=2
-compilers.p.missing-version-require-bundle=2
-compilers.p.no-required-att=0
-compilers.p.no.automatic.module=1
-compilers.p.not-externalized-att=1
-compilers.p.service.component.without.lazyactivation=1
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/xlc/org.eclipse.cdt.make.xlc.core/META-INF/MANIFEST.MF b/xlc/org.eclipse.cdt.make.xlc.core/META-INF/MANIFEST.MF
deleted file mode 100644
index 45d38bc..0000000
--- a/xlc/org.eclipse.cdt.make.xlc.core/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,20 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.cdt.make.xlc.core;singleton:=true
-Bundle-Version: 5.2.200.qualifier
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.cdt.make.core,
- org.eclipse.cdt.core,
- org.eclipse.core.resources,
- org.eclipse.core.runtime,
- org.eclipse.cdt.managedbuilder.core
-Export-Package: org.eclipse.cdt.make.xlc.core.activator,
- org.eclipse.cdt.make.xlc.core.messages,
- org.eclipse.cdt.make.xlc.core.scannerconfig,
- org.eclipse.cdt.make.xlc.core.scannerconfig.util
-Bundle-ActivationPolicy: lazy
-Bundle-Activator: org.eclipse.cdt.make.xlc.core.activator.Activator
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Automatic-Module-Name: org.eclipse.cdt.make.xlc.core
diff --git a/xlc/org.eclipse.cdt.make.xlc.core/about.html b/xlc/org.eclipse.cdt.make.xlc.core/about.html
deleted file mode 100644
index 164f781..0000000
--- a/xlc/org.eclipse.cdt.make.xlc.core/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
-	<h2>About This Content</h2>
-
-	<p>November 30, 2017</p>
-	<h3>License</h3>
-
-	<p>
-		The Eclipse Foundation makes available all content in this plug-in
-		(&quot;Content&quot;). Unless otherwise indicated below, the Content
-		is provided to you under the terms and conditions of the Eclipse
-		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
-		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>
-		If you did not receive this Content directly from the Eclipse
-		Foundation, the Content is being redistributed by another party
-		(&quot;Redistributor&quot;) and different terms and conditions may
-		apply to your use of any object code in the Content. Check the
-		Redistributor's license that was provided with the Content. If no such
-		license exists, contact the Redistributor. Unless otherwise indicated
-		below, the terms and conditions of the EPL still apply to any source
-		code in the Content and such source code may be obtained at <a
-			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
-	</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/xlc/org.eclipse.cdt.make.xlc.core/build.properties b/xlc/org.eclipse.cdt.make.xlc.core/build.properties
deleted file mode 100644
index 8b7cd79..0000000
--- a/xlc/org.eclipse.cdt.make.xlc.core/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-###############################################################################
-#  Copyright (c) 2007, 2009 IBM Corporation and others.
-#
-#  This program and the accompanying materials
-#  are made available under the terms of the Eclipse Public License 2.0
-#  which accompanies this distribution, and is available at
-#  https://www.eclipse.org/legal/epl-2.0/
-#
-#  SPDX-License-Identifier: EPL-2.0
-#
-#  Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.properties,\
-               about.html
-src.includes = about.html
-
diff --git a/xlc/org.eclipse.cdt.make.xlc.core/plugin.properties b/xlc/org.eclipse.cdt.make.xlc.core/plugin.properties
deleted file mode 100644
index e5a6ec8..0000000
--- a/xlc/org.eclipse.cdt.make.xlc.core/plugin.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-#  Copyright (c) 2006, 2009 IBM Corporation and others.
-#
-#  This program and the accompanying materials
-#  are made available under the terms of the Eclipse Public License 2.0
-#  which accompanies this distribution, and is available at
-#  https://www.eclipse.org/legal/epl-2.0/
-#
-#  SPDX-License-Identifier: EPL-2.0
-#
-#  Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-# Plugin Name
-pluginName=XL C/C++ Make Core
-providerName=Eclipse CDT
\ No newline at end of file
diff --git a/xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/activator/Activator.java b/xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/activator/Activator.java
deleted file mode 100644
index bf0781b..0000000
--- a/xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/activator/Activator.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2012 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.make.xlc.core.activator;
-
-import org.eclipse.cdt.core.model.CModelException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Plugin;
-import org.eclipse.core.runtime.Status;
-
-/**
- * @author crecoskie
- *
- */
-public class Activator extends Plugin {
-
-	public static final String PLUGIN_ID = "org.eclipse.cdt.make.xlc.core"; //$NON-NLS-1$
-	private static Activator fInstance;
-
-	/**
-	 *
-	 */
-	public Activator() {
-		super();
-		if (fInstance == null) {
-			fInstance = this;
-		}
-	}
-
-	public static void log(String e) {
-		log(createStatus(e));
-	}
-
-	public static void log(Throwable e) {
-		log("Error", e); //$NON-NLS-1$
-	}
-
-	public static void log(String message, Throwable e) {
-		Throwable nestedException;
-		if (e instanceof CModelException && (nestedException = ((CModelException) e).getException()) != null) {
-			e = nestedException;
-		}
-		log(createStatus(message, e));
-	}
-
-	public static IStatus createStatus(String msg) {
-		return createStatus(msg, null);
-	}
-
-	public static IStatus createStatus(String msg, Throwable e) {
-		return new Status(IStatus.ERROR, PLUGIN_ID, IStatus.ERROR, msg, e);
-	}
-
-	public static void log(IStatus status) {
-		getDefault().getLog().log(status);
-	}
-
-	private static Plugin getDefault() {
-		return fInstance;
-	}
-
-}
diff --git a/xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/messages/Messages.java b/xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/messages/Messages.java
deleted file mode 100644
index f27630e..0000000
--- a/xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/messages/Messages.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.cdt.make.xlc.core.messages;
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-public class Messages {
-	private static final String BUNDLE_NAME = "org.eclipse.cdt.make.xlc.core.messages.Messages"; //$NON-NLS-1$
-
-	private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
-
-	private Messages() {
-	}
-
-	public static String getString(String key) {
-		try {
-			return RESOURCE_BUNDLE.getString(key);
-		} catch (MissingResourceException e) {
-			return '!' + key + '!';
-		}
-	}
-}
diff --git a/xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/messages/Messages.properties b/xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/messages/Messages.properties
deleted file mode 100644
index 14a8b8f..0000000
--- a/xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/messages/Messages.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2009, 2010 IBM Corporation and others.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-PerFileXLCScannerInfoCollector.0=Updating discovered includes and macros
-PerFileXLCScannerInfoCollector.1=Error updating discovered info.
-ScannerInfoCollector.Processing=Processing discovered scanner configuration ...\u0020
-ScannerInfoCollector.Updating=Updating Scanner Configuration for project\u0020
diff --git a/xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/scannerconfig/AbstractXLCBuildOutputParser.java b/xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/scannerconfig/AbstractXLCBuildOutputParser.java
deleted file mode 100644
index 80ff83e..0000000
--- a/xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/scannerconfig/AbstractXLCBuildOutputParser.java
+++ /dev/null
@@ -1,415 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2012 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.make.xlc.core.scannerconfig;
-
-import java.util.ArrayList;
-import java.util.LinkedList;
-import java.util.List;
-
-import org.eclipse.cdt.core.CCorePlugin;
-import org.eclipse.cdt.core.IMarkerGenerator;
-import org.eclipse.cdt.make.core.scannerconfig.IScannerInfoCollector;
-import org.eclipse.cdt.make.core.scannerconfig.IScannerInfoCollector2;
-import org.eclipse.cdt.make.core.scannerconfig.IScannerInfoConsoleParser;
-import org.eclipse.cdt.make.internal.core.scannerconfig.util.TraceUtil;
-import org.eclipse.cdt.make.internal.core.scannerconfig2.SCProfileInstance;
-import org.eclipse.cdt.make.internal.core.scannerconfig2.ScannerConfigProfile.BuildOutputProvider;
-import org.eclipse.cdt.make.internal.core.scannerconfig2.ScannerConfigProfileManager;
-import org.eclipse.cdt.make.xlc.core.activator.Activator;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.core.runtime.content.IContentTypeManager;
-
-/**
- * @author crecoskie
- *
- */
-public abstract class AbstractXLCBuildOutputParser implements IScannerInfoConsoleParser {
-
-	protected static final String[] COMPILER_INVOCATION = { "xlc", "xlC"//$NON-NLS-1$ //$NON-NLS-2$
-	};
-	protected static final String DASHIDASH = "-I-"; //$NON-NLS-1$
-	protected static final String DASHI = "-I"; //$NON-NLS-1$
-	protected static final String DASHD = "-D"; //$NON-NLS-1$
-
-	protected IProject fProject;
-	protected IScannerInfoCollector fCollector;
-	protected IPath fWorkingDir;
-	protected IMarkerGenerator fMarkerGenerator;
-	protected XLCBuildOutputParserUtility fUtility;
-
-	protected boolean fBMultiline = false;
-	protected String fSMultiline = ""; //$NON-NLS-1$
-
-	protected String[] fCompilerCommands = { "xlc", "xlC" }; //$NON-NLS-1$ //$NON-NLS-2$
-
-	/**
-	 * @return Returns the fProject.
-	 */
-	protected IProject getProject() {
-		return fProject;
-	}
-
-	/**
-	 * @return Returns the fCollector.
-	 */
-	protected IScannerInfoCollector getCollector() {
-		return fCollector;
-	}
-
-	public void startup(IProject project, IScannerInfoCollector collector) {
-		fProject = project;
-		fCollector = collector;
-		fCompilerCommands = computeCompilerCommands();
-	}
-
-	/**
-	 * Returns array of additional compiler commands to look for
-	 *
-	 * @return String[]
-	 */
-	protected String[] computeCompilerCommands() {
-		if (fProject != null) {
-			SCProfileInstance profileInstance = ScannerConfigProfileManager.getInstance().getSCProfileInstance(fProject,
-					ScannerConfigProfileManager.NULL_PROFILE_ID);
-			BuildOutputProvider boProvider = profileInstance.getProfile().getBuildOutputProviderElement();
-			if (boProvider != null) {
-				String compilerCommandsString = boProvider.getScannerInfoConsoleParser().getCompilerCommands();
-				if (compilerCommandsString != null && compilerCommandsString.length() > 0) {
-					String[] compilerCommands = compilerCommandsString.split(",\\s*"); //$NON-NLS-1$
-					if (compilerCommands.length > 0) {
-						String[] compilerInvocation = new String[COMPILER_INVOCATION.length + compilerCommands.length];
-						System.arraycopy(COMPILER_INVOCATION, 0, compilerInvocation, 0, COMPILER_INVOCATION.length);
-						System.arraycopy(compilerCommands, 0, compilerInvocation, COMPILER_INVOCATION.length,
-								compilerCommands.length);
-						return compilerInvocation;
-					}
-				}
-			}
-		}
-		return COMPILER_INVOCATION;
-	}
-
-	@Override
-	public boolean processLine(String line) {
-		if (line.trim().length() == 0) {
-			return false;
-		}
-
-		boolean rc = false;
-		int lineBreakPos = line.length() - 1;
-		char[] lineChars = line.toCharArray();
-		while (lineBreakPos >= 0 && Character.isWhitespace(lineChars[lineBreakPos])) {
-			lineBreakPos--;
-		}
-		if (lineBreakPos >= 0) {
-			if (lineChars[lineBreakPos] != '\\' || (lineBreakPos > 0 && lineChars[lineBreakPos - 1] == '\\')) {
-				lineBreakPos = -1;
-			}
-		}
-		// check for multiline commands (ends with '\')
-		if (lineBreakPos >= 0) {
-			fSMultiline += line.substring(0, lineBreakPos);
-			fBMultiline = true;
-			return rc;
-		}
-		if (fBMultiline) {
-			line = fSMultiline + line;
-			fBMultiline = false;
-			fSMultiline = ""; //$NON-NLS-1$
-		}
-		line = line.trim();
-		try {
-			TraceUtil.outputTrace("XLCBuildOutputParser parsing line: [", line, "]"); //$NON-NLS-1$ //$NON-NLS-2$
-		} catch (NoClassDefFoundError e) {
-			//no problem, as this may be called from a standalone indexer
-		}
-		// make\[[0-9]*\]: error_desc
-		int firstColon = line.indexOf(':');
-		String make = line.substring(0, firstColon + 1);
-		if (firstColon != -1 && make.indexOf("make") != -1) { //$NON-NLS-1$
-			boolean enter = false;
-			String msg = line.substring(firstColon + 1).trim();
-			if ((enter = msg.startsWith("Entering directory")) || //$NON-NLS-1$
-					(msg.startsWith("Leaving directory"))) { //$NON-NLS-1$
-				int s = msg.indexOf('`');
-				int e = msg.indexOf('\'');
-				if (s != -1 && e != -1) {
-					String dir = msg.substring(s + 1, e);
-					if (getUtility() != null) {
-						getUtility().changeMakeDirectory(dir, getDirectoryLevel(line), enter);
-					}
-					return rc;
-				}
-			}
-		}
-		// call sublclass to process a single line
-		return processSingleLine(line.trim());
-	}
-
-	protected synchronized XLCBuildOutputParserUtility getUtility() {
-		if (fUtility == null)
-			fUtility = new XLCBuildOutputParserUtility(fProject, fWorkingDir, fMarkerGenerator);
-
-		return fUtility;
-	}
-
-	protected int getDirectoryLevel(String line) {
-		int s = line.indexOf('[');
-		int num = 0;
-		if (s != -1) {
-			int e = line.indexOf(']');
-			String number = line.substring(s + 1, e).trim();
-			try {
-				num = Integer.parseInt(number);
-			} catch (NumberFormatException exc) {
-			}
-		}
-		return num;
-	}
-
-	@Override
-	public void shutdown() {
-		if (getUtility() != null) {
-			getUtility().reportProblems();
-		}
-
-		if (fCollector != null && fCollector instanceof IScannerInfoCollector2) {
-			IScannerInfoCollector2 collector = (IScannerInfoCollector2) fCollector;
-			try {
-				collector.updateScannerConfiguration(null);
-			} catch (CoreException e) {
-				// TODO Auto-generated catch block
-				Activator.log(e);
-			}
-		}
-	}
-
-	/**
-	 * Tokenizes a line into an array of commands. Commands are separated by
-	 * ';', '&&' or '||'. Tokens are separated by whitespace unless found inside
-	 * of quotes, back-quotes, or double quotes. Outside of single-, double- or
-	 * back-quotes a backslash escapes white-spaces, all quotes, the backslash,
-	 * '&' and '|'. A backslash used for escaping is removed. Quotes other than
-	 * the back-quote plus '&&', '||', ';' are removed, also.
-	 *
-	 * @param line
-	 *            to tokenize
-	 * @return array of commands
-	 */
-	protected String[][] tokenize(String line, boolean escapeInsideDoubleQuotes) {
-		ArrayList<String[]> commands = new ArrayList<>();
-		ArrayList<String> tokens = new ArrayList<>();
-		StringBuffer token = new StringBuffer();
-
-		final char[] input = line.toCharArray();
-		boolean nextEscaped = false;
-		char currentQuote = 0;
-		for (int i = 0; i < input.length; i++) {
-			final char c = input[i];
-			final boolean escaped = nextEscaped;
-			nextEscaped = false;
-
-			if (currentQuote != 0) {
-				if (c == currentQuote) {
-					if (escaped) {
-						token.append(c);
-					} else {
-						if (c == '`') {
-							token.append(c); // preserve back-quotes
-						}
-						currentQuote = 0;
-					}
-				} else {
-					if (escapeInsideDoubleQuotes && currentQuote == '"' && c == '\\') {
-						nextEscaped = !escaped;
-						if (escaped) {
-							token.append(c);
-						}
-					} else {
-						if (escaped) {
-							token.append('\\');
-						}
-						token.append(c);
-					}
-				}
-			} else {
-				switch (c) {
-				case '\\':
-					if (escaped) {
-						token.append(c);
-					} else {
-						nextEscaped = true;
-					}
-					break;
-				case '\'':
-				case '"':
-				case '`':
-					if (escaped) {
-						token.append(c);
-					} else {
-						if (c == '`') {
-							token.append(c);
-						}
-						currentQuote = c;
-					}
-					break;
-				case ';':
-					if (escaped) {
-						token.append(c);
-					} else {
-						endCommand(token, tokens, commands);
-					}
-					break;
-				case '&':
-				case '|':
-					if (escaped || i + 1 >= input.length || input[i + 1] != c) {
-						token.append(c);
-					} else {
-						i++;
-						endCommand(token, tokens, commands);
-					}
-					break;
-
-				default:
-					if (Character.isWhitespace(c)) {
-						if (escaped) {
-							token.append(c);
-						} else {
-							endToken(token, tokens);
-						}
-					} else {
-						if (escaped) {
-							token.append('\\'); // for windows put backslash
-												// back onto the token.
-						}
-						token.append(c);
-					}
-				}
-			}
-		}
-		endCommand(token, tokens, commands);
-		return commands.toArray(new String[commands.size()][]);
-	}
-
-	protected void endCommand(StringBuffer token, ArrayList<String> tokens, ArrayList<String[]> commands) {
-		endToken(token, tokens);
-		if (!tokens.isEmpty()) {
-			commands.add(tokens.toArray(new String[tokens.size()]));
-			tokens.clear();
-		}
-	}
-
-	protected void endToken(StringBuffer token, ArrayList<String> tokens) {
-		if (token.length() > 0) {
-			tokens.add(token.toString());
-			token.setLength(0);
-		}
-	}
-
-	protected boolean processSingleLine(String line) {
-		boolean rc = false;
-		String[][] tokens = tokenize(line, true);
-		for (int i = 0; i < tokens.length; i++) {
-			String[] command = tokens[i];
-			if (processCommand(command)) {
-				rc = true;
-			} else { // go inside quotes, if the compiler is called per wrapper
-						// or shell script
-				for (int j = 0; j < command.length; j++) {
-					String[][] subtokens = tokenize(command[j], true);
-					for (int k = 0; k < subtokens.length; k++) {
-						String[] subcommand = subtokens[k];
-						if (subcommand.length > 1) { // only proceed if there is
-														// any additional info
-							if (processCommand(subcommand)) {
-								rc = true;
-							}
-						}
-					}
-				}
-			}
-		}
-		return rc;
-	}
-
-	protected int findCompilerInvocation(String[] tokens) {
-		for (int i = 0; i < tokens.length; i++) {
-			final String token = tokens[i].toLowerCase();
-			final int searchFromOffset = Math.max(token.lastIndexOf('/'), token.lastIndexOf('\\')) + 1;
-			for (int j = 0; j < fCompilerCommands.length; j++) {
-				if (token.indexOf(fCompilerCommands[j], searchFromOffset) != -1) {
-					return i;
-				}
-			}
-		}
-		return -1;
-	}
-
-	@Override
-	public void startup(IProject project, IPath workingDirectory, IScannerInfoCollector collector,
-			IMarkerGenerator markerGenerator) {
-		fProject = project;
-		fWorkingDir = workingDirectory;
-		fCollector = collector;
-		fMarkerGenerator = markerGenerator;
-
-	}
-
-	abstract protected boolean processCommand(String[] tokens);
-
-	protected List<String> getFileExtensionsList() {
-		IContentTypeManager manager = Platform.getContentTypeManager();
-		List<String> extensions = new LinkedList<>();
-		IContentType cSource = manager.getContentType(CCorePlugin.CONTENT_TYPE_CSOURCE);
-		IContentType cppSource = manager.getContentType(CCorePlugin.CONTENT_TYPE_CXXSOURCE);
-
-		String[] cExtensions = cSource.getFileSpecs(IContentType.FILE_EXTENSION_SPEC);
-		String[] cppExtensions = cppSource.getFileSpecs(IContentType.FILE_EXTENSION_SPEC);
-
-		for (int k = 0; k < cExtensions.length; k++) {
-			extensions.add("." + cExtensions[k]); //$NON-NLS-1$
-		}
-
-		for (int k = 0; k < cppExtensions.length; k++) {
-			extensions.add("." + cppExtensions[k]); //$NON-NLS-1$
-		}
-
-		return extensions;
-	}
-
-	protected String[] getFileExtensions() {
-		IContentTypeManager manager = Platform.getContentTypeManager();
-		List<String> extensions = new LinkedList<>();
-		IContentType cSource = manager.getContentType(CCorePlugin.CONTENT_TYPE_CSOURCE);
-		IContentType cppSource = manager.getContentType(CCorePlugin.CONTENT_TYPE_CXXSOURCE);
-
-		String[] cExtensions = cSource.getFileSpecs(IContentType.FILE_EXTENSION_SPEC);
-		String[] cppExtensions = cppSource.getFileSpecs(IContentType.FILE_EXTENSION_SPEC);
-
-		for (int k = 0; k < cExtensions.length; k++) {
-			extensions.add("." + cExtensions[k]); //$NON-NLS-1$
-		}
-
-		for (int k = 0; k < cppExtensions.length; k++) {
-			extensions.add("." + cppExtensions[k]); //$NON-NLS-1$
-		}
-
-		return extensions.toArray(new String[0]);
-	}
-
-}
diff --git a/xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/scannerconfig/PerFileXLCScannerInfoCollector.java b/xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/scannerconfig/PerFileXLCScannerInfoCollector.java
deleted file mode 100644
index 59ada9d..0000000
--- a/xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/scannerconfig/PerFileXLCScannerInfoCollector.java
+++ /dev/null
@@ -1,1664 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2012 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.make.xlc.core.scannerconfig;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.LinkedHashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-import java.util.SortedSet;
-import java.util.TreeSet;
-
-import org.eclipse.cdt.core.model.CoreModel;
-import org.eclipse.cdt.core.settings.model.CIncludePathEntry;
-import org.eclipse.cdt.core.settings.model.CMacroEntry;
-import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
-import org.eclipse.cdt.core.settings.model.ICLanguageSetting;
-import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry;
-import org.eclipse.cdt.core.settings.model.ICProjectDescription;
-import org.eclipse.cdt.core.settings.model.ICProjectDescriptionManager;
-import org.eclipse.cdt.core.settings.model.ICSettingEntry;
-import org.eclipse.cdt.core.settings.model.util.CDataUtil;
-import org.eclipse.cdt.make.core.MakeCorePlugin;
-import org.eclipse.cdt.make.core.scannerconfig.IDiscoveredPathManager;
-import org.eclipse.cdt.make.core.scannerconfig.IDiscoveredPathManager.IDiscoveredPathInfo;
-import org.eclipse.cdt.make.core.scannerconfig.IDiscoveredPathManager.IDiscoveredScannerInfoSerializable;
-import org.eclipse.cdt.make.core.scannerconfig.IDiscoveredPathManager.IPerFileDiscoveredPathInfo;
-import org.eclipse.cdt.make.core.scannerconfig.IDiscoveredPathManager.IPerFileDiscoveredPathInfo2;
-import org.eclipse.cdt.make.core.scannerconfig.IScannerInfoCollector3;
-import org.eclipse.cdt.make.core.scannerconfig.InfoContext;
-import org.eclipse.cdt.make.core.scannerconfig.PathInfo;
-import org.eclipse.cdt.make.core.scannerconfig.ScannerInfoTypes;
-import org.eclipse.cdt.make.internal.core.scannerconfig.DiscoveredPathInfo;
-import org.eclipse.cdt.make.internal.core.scannerconfig.DiscoveredPathManager;
-import org.eclipse.cdt.make.internal.core.scannerconfig.DiscoveredScannerInfoStore;
-import org.eclipse.cdt.make.internal.core.scannerconfig.ScannerConfigUtil;
-import org.eclipse.cdt.make.internal.core.scannerconfig.util.CCommandDSC;
-import org.eclipse.cdt.make.internal.core.scannerconfig.util.CygpathTranslator;
-import org.eclipse.cdt.make.internal.core.scannerconfig.util.TraceUtil;
-import org.eclipse.cdt.make.xlc.core.activator.Activator;
-import org.eclipse.cdt.make.xlc.core.messages.Messages;
-import org.eclipse.cdt.make.xlc.core.scannerconfig.util.XLCCommandDSC;
-import org.eclipse.cdt.managedbuilder.core.IConfiguration;
-import org.eclipse.cdt.managedbuilder.core.IInputType;
-import org.eclipse.cdt.managedbuilder.core.IManagedBuildInfo;
-import org.eclipse.cdt.managedbuilder.core.ITool;
-import org.eclipse.cdt.managedbuilder.core.IToolChain;
-import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
-import org.eclipse.cdt.managedbuilder.scannerconfig.IManagedScannerInfoCollector;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.core.runtime.jobs.Job;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- * @author crecoskie
- *
- */
-public class PerFileXLCScannerInfoCollector implements IScannerInfoCollector3, IManagedScannerInfoCollector {
-
-	protected class ScannerConfigUpdateJob extends Job {
-
-		private InfoContext fContext;
-		private IDiscoveredPathInfo fPathInfo;
-		private boolean fIsDefaultContext;
-		private List<IResource> fChangedResources;
-
-		public ScannerConfigUpdateJob(InfoContext context, IDiscoveredPathInfo pathInfo, boolean isDefaultContext,
-				List<IResource> changedResources) {
-			super(Messages.getString("PerFileXLCScannerInfoCollector.0")); //$NON-NLS-1$);
-			fContext = context;
-			fPathInfo = pathInfo;
-			fIsDefaultContext = isDefaultContext;
-			fChangedResources = changedResources;
-		}
-
-		@Override
-		protected IStatus run(IProgressMonitor monitor) {
-			try {
-
-				// get the scanner info profile ID
-
-				IManagedBuildInfo info = ManagedBuildManager.getBuildInfo(project);
-				IConfiguration config = info.getDefaultConfiguration();
-
-				String profileID = config.getToolChain().getScannerConfigDiscoveryProfileId();
-				IDiscoveredPathManager manager = MakeCorePlugin.getDefault().getDiscoveryManager();
-
-				if (manager instanceof DiscoveredPathManager) {
-					((DiscoveredPathManager) manager).updateDiscoveredInfo(fContext, fPathInfo, fIsDefaultContext,
-							fChangedResources, profileID);
-				}
-
-				// reload project description to hopefully get the data to take
-				ICProjectDescriptionManager descriptionManager = CoreModel.getDefault().getProjectDescriptionManager();
-				ICProjectDescription cProjectDescription = descriptionManager.getProjectDescription(project,
-						true /* writable */);
-				ICConfigurationDescription configDes = cProjectDescription.getActiveConfiguration();
-
-				IToolChain toolchain = config.getToolChain();
-				for (ITool tool : toolchain.getTools()) {
-					for (IInputType inputType : tool.getInputTypes()) {
-						IContentType contentType = inputType.getSourceContentType();
-						if (contentType != null) {
-							for (IResource resource : fChangedResources) {
-								// get language settings for the resource
-								ICLanguageSetting langSetting = configDes
-										.getLanguageSettingForFile(resource.getProjectRelativePath(), false);
-
-								if (langSetting == null) {
-									continue;
-								}
-
-								// get content type IDs for the setting
-								String[] contentTypeIDs = langSetting.getSourceContentTypeIds();
-
-								// if the setting doesn't handle our content type ID, then go to the next resource
-								boolean found = false;
-								for (String id : contentTypeIDs) {
-									if (id.equals(contentType.getId())) {
-										found = true;
-										break;
-									}
-								}
-
-								if (!found) {
-									continue;
-								}
-
-								// update all the scanner config entries on the setting
-								updateIncludeSettings(langSetting);
-								updateMacroSettings(langSetting);
-
-							}
-						}
-
-					}
-				}
-
-				descriptionManager.setProjectDescription(project, cProjectDescription, true /* force */, monitor);
-
-			} catch (CoreException e) {
-				Activator.log(e);
-				return Activator.createStatus(Messages.getString("PerFileXLCScannerInfoCollector.1")); //$NON-NLS-1$
-			}
-			return Status.OK_STATUS;
-		}
-
-		private boolean updateMacroSettings(ICLanguageSetting langSetting) {
-			ICLanguageSettingEntry[] entries = langSetting.getSettingEntries(ICSettingEntry.MACRO);
-			List<ICLanguageSettingEntry> newEntries = new LinkedList<>();
-			for (ICLanguageSettingEntry entry : entries) {
-				newEntries.add(entry);
-			}
-
-			boolean entriesChanged = false;
-
-			// look for settings corresponding to each path we discovered
-			Map<String, String> discSymbols = fPathInfo.getSymbols();
-			for (String symbol : discSymbols.keySet()) {
-				boolean symbolFound = false;
-
-				for (ICLanguageSettingEntry entry : entries) {
-					if (((CMacroEntry) entry).getName().equals(symbol)) {
-						symbolFound = true; // it's already there, so don't set it
-						break;
-					}
-				}
-
-				// if we didn't find the path, add it
-				if (!symbolFound) {
-					entriesChanged = true;
-					CMacroEntry newEntry = CDataUtil.createCMacroEntry(symbol, discSymbols.get(symbol),
-							ICSettingEntry.BUILTIN | ICSettingEntry.READONLY | ICSettingEntry.RESOLVED);
-					newEntries.add(newEntry);
-				}
-			}
-
-			// if we changed the entries, then set the new ones
-			if (entriesChanged) {
-				langSetting.setSettingEntries(ICSettingEntry.MACRO, newEntries.toArray(new ICLanguageSettingEntry[0]));
-			}
-
-			return entriesChanged;
-		}
-
-		private boolean updateIncludeSettings(ICLanguageSetting langSetting) {
-			ICLanguageSettingEntry[] entries = langSetting.getSettingEntries(ICSettingEntry.INCLUDE_PATH);
-			List<ICLanguageSettingEntry> newEntries = new LinkedList<>();
-			for (ICLanguageSettingEntry entry : entries) {
-				newEntries.add(entry);
-			}
-
-			boolean entriesChanged = false;
-
-			// look for settings corresponding to each path we discovered
-			IPath[] discPaths = fPathInfo.getIncludePaths();
-			for (IPath path : discPaths) {
-				boolean pathFound = false;
-
-				for (ICLanguageSettingEntry entry : entries) {
-					if (((CIncludePathEntry) entry).getLocation().equals(path)) {
-						pathFound = true; // it's already there, so don't set it
-						break;
-					}
-				}
-
-				// if we didn't find the path, add it
-				if (!pathFound) {
-					entriesChanged = true;
-					CIncludePathEntry newEntry = CDataUtil.createCIncludePathEntry(path.toString(),
-							ICSettingEntry.BUILTIN | ICSettingEntry.READONLY | ICSettingEntry.RESOLVED);
-					newEntries.add(newEntry);
-				}
-			}
-
-			// if we changed the entries, then set the new ones
-			if (entriesChanged) {
-				langSetting.setSettingEntries(ICSettingEntry.INCLUDE_PATH,
-						newEntries.toArray(new ICLanguageSettingEntry[0]));
-			}
-
-			return entriesChanged;
-		}
-	}
-
-	protected class MergedPerFileDiscoveredPathInfo implements IPerFileDiscoveredPathInfo2 {
-		private IDiscoveredPathInfo fInfo1;
-		private IPerFileDiscoveredPathInfo2 fInfo2;
-
-		public MergedPerFileDiscoveredPathInfo(IDiscoveredPathInfo info1, IPerFileDiscoveredPathInfo2 info2) {
-			fInfo1 = info1;
-			fInfo2 = info2;
-		}
-
-		private IPerFileDiscoveredPathInfo2 getPerFileInfo1() {
-			if (fInfo1 instanceof IPerFileDiscoveredPathInfo2) {
-				return (IPerFileDiscoveredPathInfo2) fInfo1;
-			}
-
-			else {
-				return null;
-			}
-		}
-
-		@Override
-		public Map<IResource, PathInfo> getPathInfoMap() {
-			synchronized (fLock) {
-				IPerFileDiscoveredPathInfo2 info1 = getPerFileInfo1();
-				if (info1 != null) {
-					Map<IResource, PathInfo> map = new HashMap<>();
-					map.putAll(info1.getPathInfoMap());
-					map.putAll(fInfo2.getPathInfoMap());
-					return map;
-				}
-
-				else {
-					return fInfo2.getPathInfoMap();
-				}
-			}
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.cdt.make.core.scannerconfig.IDiscoveredPathManager.IPerFileDiscoveredPathInfo#getIncludeFiles(org.eclipse.core.runtime.IPath)
-		 */
-		@Override
-		public IPath[] getIncludeFiles(IPath path) {
-			synchronized (fLock) {
-				IPerFileDiscoveredPathInfo2 info1 = getPerFileInfo1();
-				if (info1 != null) {
-					List<IPath> list = new LinkedList<>();
-					for (IPath path1 : info1.getIncludeFiles(path)) {
-						list.add(path1);
-					}
-
-					for (IPath path1 : fInfo2.getIncludeFiles(path)) {
-						list.add(path1);
-					}
-					return list.toArray(new IPath[0]);
-				}
-
-				else {
-					return fInfo2.getIncludeFiles(path);
-				}
-			}
-		}
-
-		@Override
-		public IPath[] getIncludePaths(IPath path) {
-			synchronized (fLock) {
-
-				Set<IPath> pathSet = new HashSet<>();
-
-				// add project level settings if other info is per project
-				if (fInfo1 instanceof DiscoveredPathInfo) {
-					for (IPath path1 : fInfo1.getIncludePaths()) {
-						pathSet.add(path1);
-					}
-				}
-
-				else {
-					IPerFileDiscoveredPathInfo2 info1 = getPerFileInfo1();
-					if (info1 != null) {
-						// add file level settings
-						for (IPath path1 : info1.getIncludePaths(path)) {
-							pathSet.add(path1);
-						}
-					}
-				}
-
-				// add file level settings
-				for (IPath path2 : fInfo2.getIncludePaths(path)) {
-					pathSet.add(path2);
-				}
-
-				return pathSet.toArray(new IPath[0]);
-			}
-		}
-
-		@Override
-		public IPath[] getMacroFiles(IPath path) {
-			synchronized (fLock) {
-				Set<IPath> pathSet = new HashSet<>();
-
-				IPerFileDiscoveredPathInfo2 info1 = getPerFileInfo1();
-				if (info1 != null) {
-					// add file level settings
-					for (IPath path1 : info1.getMacroFiles(path)) {
-						pathSet.add(path1);
-					}
-				}
-
-				// add file level settings
-				for (IPath path2 : fInfo2.getMacroFiles(path)) {
-					pathSet.add(path2);
-				}
-
-				return pathSet.toArray(new IPath[0]);
-			}
-		}
-
-		@Override
-		public IPath[] getQuoteIncludePaths(IPath path) {
-			synchronized (fLock) {
-
-				Set<IPath> pathSet = new HashSet<>();
-
-				IPerFileDiscoveredPathInfo2 info1 = getPerFileInfo1();
-				if (info1 != null) {
-					// add file level settings
-					for (IPath path1 : info1.getQuoteIncludePaths(path)) {
-						pathSet.add(path1);
-					}
-				}
-
-				// add file level settings
-				for (IPath path2 : fInfo2.getQuoteIncludePaths(path)) {
-					pathSet.add(path2);
-				}
-
-				return pathSet.toArray(new IPath[0]);
-			}
-		}
-
-		@Override
-		public Map<String, String> getSymbols(IPath path) {
-			synchronized (fLock) {
-
-				Map<String, String> symbols = new HashMap<>();
-
-				// add project level settings
-				Map<String, String> projectSymbols = fInfo1.getSymbols();
-				for (String symbol : projectSymbols.keySet()) {
-					symbols.put(symbol, projectSymbols.get(symbol));
-				}
-
-				IPerFileDiscoveredPathInfo2 info1 = getPerFileInfo1();
-				if (info1 != null) {
-					// add file level settings
-					symbols.putAll(info1.getSymbols(path));
-				}
-
-				// add file level settings
-				symbols.putAll(fInfo2.getSymbols(path));
-
-				return symbols;
-			}
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.cdt.make.core.scannerconfig.IDiscoveredPathManager.IPerFileDiscoveredPathInfo#isEmpty(org.eclipse.core.runtime.IPath)
-		 */
-		@Override
-		public boolean isEmpty(IPath path) {
-			synchronized (fLock) {
-				boolean info1empty = false;
-
-				IPerFileDiscoveredPathInfo2 info1 = getPerFileInfo1();
-				if (info1 != null) {
-					info1empty = info1.isEmpty(path);
-				} else {
-					info1empty = fInfo1.getIncludePaths().length == 0 && fInfo1.getSymbols().size() == 0;
-				}
-
-				return fInfo2.isEmpty(path) && info1empty;
-			}
-		}
-
-		@Override
-		public IPath[] getIncludePaths() {
-			synchronized (fLock) {
-				return fInfo1.getIncludePaths();
-			}
-		}
-
-		@Override
-		public IProject getProject() {
-			return fInfo1.getProject();
-		}
-
-		@Override
-		public IDiscoveredScannerInfoSerializable getSerializable() {
-			return fInfo2.getSerializable();
-		}
-
-		@Override
-		public Map<String, String> getSymbols() {
-			synchronized (fLock) {
-				return fInfo1.getSymbols();
-			}
-		}
-
-	}
-
-	/**
-	 * Per file DPI object
-	 *
-	 * @author vhirsl
-	 */
-	protected class PerFileDiscoveredPathInfo implements IPerFileDiscoveredPathInfo2 {
-		/* (non-Javadoc)
-		 * @see org.eclipse.cdt.make.core.scannerconfig.IDiscoveredPathManager.IDiscoveredPathInfo#getIncludeFiles(org.eclipse.core.runtime.IPath)
-		 */
-		@Override
-		public IPath[] getIncludeFiles(IPath path) {
-			synchronized (fLock) {
-
-				Set<IPath> pathSet = new LinkedHashSet<>();
-				// get the command
-				CCommandDSC cmd = getCommand(path);
-				if (cmd != null) {
-					IPath[] paths = stringListToPathArray(cmd.getIncludeFile());
-					pathSet.addAll(Arrays.asList(paths));
-				}
-				// use project scope scanner info
-				if (psi == null) {
-					generateProjectScannerInfo();
-				}
-
-				for (IPath path2 : psi.includeFiles) {
-					pathSet.add(path2);
-				}
-
-				return pathSet.toArray(new IPath[0]);
-			}
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.cdt.make.core.scannerconfig.IDiscoveredPathManager.IDiscoveredPathInfo#getIncludePaths()
-		 */
-		@Override
-		public IPath[] getIncludePaths() {
-			final IPath[] includepaths;
-			final IPath[] quotepaths;
-			synchronized (fLock) {
-				//      		return new IPath[0];
-				includepaths = getAllIncludePaths(INCLUDE_PATH);
-				quotepaths = getAllIncludePaths(QUOTE_INCLUDE_PATH);
-			}
-			if (quotepaths == null || quotepaths.length == 0) {
-				return includepaths;
-			}
-			if (includepaths == null || includepaths.length == 0) {
-				return quotepaths;
-			}
-			ArrayList<IPath> result = new ArrayList<>(includepaths.length + quotepaths.length);
-			result.addAll(Arrays.asList(includepaths));
-			result.addAll(Arrays.asList(quotepaths));
-			return result.toArray(new IPath[result.size()]);
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.cdt.make.core.scannerconfig.IDiscoveredPathManager.IDiscoveredPathInfo#getIncludePaths(org.eclipse.core.runtime.IPath)
-		 */
-		@Override
-		public IPath[] getIncludePaths(IPath path) {
-			synchronized (fLock) {
-				Set<IPath> pathSet = new LinkedHashSet<>();
-				// get the command
-				CCommandDSC cmd = getCommand(path);
-				if (cmd != null) {
-					IPath[] paths = stringListToPathArray(cmd.getIncludes());
-					pathSet.addAll(Arrays.asList(paths));
-				}
-				// use project scope scanner info
-				if (psi == null) {
-					generateProjectScannerInfo();
-				}
-
-				for (IPath path2 : psi.includePaths) {
-					pathSet.add(path2);
-				}
-
-				return pathSet.toArray(new IPath[0]);
-			}
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.cdt.make.core.scannerconfig.IDiscoveredPathManager.IPerFileDiscoveredPathInfo#getMacroFiles(org.eclipse.core.runtime.IPath)
-		 */
-		@Override
-		public IPath[] getMacroFiles(IPath path) {
-			synchronized (fLock) {
-				Set<IPath> pathSet = new LinkedHashSet<>();
-				// get the command
-				CCommandDSC cmd = getCommand(path);
-				if (cmd != null) {
-					IPath[] paths = stringListToPathArray(cmd.getImacrosFile());
-					pathSet.addAll(Arrays.asList(paths));
-				}
-				// use project scope scanner info
-				if (psi == null) {
-					generateProjectScannerInfo();
-				}
-
-				for (IPath path2 : psi.macrosFiles) {
-					pathSet.add(path2);
-				}
-
-				return pathSet.toArray(new IPath[0]);
-			}
-		}
-
-		@Override
-		public Map<IResource, PathInfo> getPathInfoMap() {
-			synchronized (fLock) {
-				//TODO: do we need to cache this?
-				return calculatePathInfoMap();
-			}
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.cdt.make.core.scannerconfig.IDiscoveredPathManager.IDiscoveredPathInfo#getProject()
-		 */
-		@Override
-		public IProject getProject() {
-			return project;
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.cdt.make.core.scannerconfig.IDiscoveredPathManager.IPerFileDiscoveredPathInfo#getQuoteIncludePaths(org.eclipse.core.runtime.IPath)
-		 */
-		@Override
-		public IPath[] getQuoteIncludePaths(IPath path) {
-			synchronized (fLock) {
-				Set<IPath> pathSet = new LinkedHashSet<>();
-				// get the command
-				CCommandDSC cmd = getCommand(path);
-				if (cmd != null) {
-					IPath[] paths = stringListToPathArray(cmd.getQuoteIncludes());
-					pathSet.addAll(Arrays.asList(paths));
-				}
-				// use project scope scanner info
-				if (psi == null) {
-					generateProjectScannerInfo();
-				}
-
-				for (IPath path2 : psi.quoteIncludePaths) {
-					pathSet.add(path2);
-				}
-
-				return pathSet.toArray(new IPath[0]);
-			}
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.cdt.make.core.scannerconfig.IDiscoveredPathManager.IPerFileDiscoveredPathInfo#getSerializable()
-		 */
-		@Override
-		public IDiscoveredScannerInfoSerializable getSerializable() {
-			synchronized (fLock) {
-				return sid;
-			}
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.cdt.make.core.scannerconfig.IDiscoveredPathManager.IDiscoveredPathInfo#getSymbols()
-		 */
-		@Override
-		public Map<String, String> getSymbols() {
-			//            return new HashMap();
-			synchronized (fLock) {
-				return getAllSymbols();
-			}
-		}
-
-		/*
-		 * (non-Javadoc)
-		 *
-		 * @seeorg.eclipse.cdt.make.core.scannerconfig.IDiscoveredPathManager.
-		 * IDiscoveredPathInfo#getSymbols(org.eclipse.core.runtime.IPath)
-		 */
-		@Override
-		public Map<String, String> getSymbols(IPath path) {
-			synchronized (fLock) {
-				Map<String, String> definedSymbols = new HashMap<>();
-
-				// put project data in first so file level data can override it
-				// use project scope scanner info
-				if (psi == null) {
-					generateProjectScannerInfo();
-				}
-				definedSymbols.putAll(psi.definedSymbols);
-
-				// get the command
-				CCommandDSC cmd = getCommand(path);
-				if (cmd != null && cmd.isDiscovered()) {
-					List<String> symbols = cmd.getSymbols();
-					for (String symbol : symbols) {
-						String key = ScannerConfigUtil.getSymbolKey(symbol);
-						String value = ScannerConfigUtil.getSymbolValue(symbol);
-						definedSymbols.put(key, value);
-					}
-
-				}
-				// use project scope scanner info
-				if (psi == null) {
-					generateProjectScannerInfo();
-				}
-				definedSymbols.putAll(psi.definedSymbols);
-				return definedSymbols;
-			}
-
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.cdt.make.core.scannerconfig.IDiscoveredPathManager.IPerFileDiscoveredPathInfo#isEmpty(org.eclipse.core.runtime.IPath)
-		 */
-		@Override
-		public boolean isEmpty(IPath path) {
-			synchronized (fLock) {
-				boolean rc = true;
-				IResource resource = project.getWorkspace().getRoot().findMember(path);
-				if (resource != null) {
-					if (resource instanceof IFile) {
-						rc = (getCommand((IFile) resource) == null);
-					} else if (resource instanceof IProject) {
-						synchronized (fLock) {
-							rc = (psi == null || psi.isEmpty());
-						}
-					}
-				}
-				return rc;
-			}
-		}
-
-	}
-
-	public static class ProjectScannerInfo {
-		public Map<String, String> definedSymbols;
-		public IPath[] includeFiles;
-		public IPath[] includePaths;
-		public IPath[] macrosFiles;
-		public IPath[] quoteIncludePaths;
-
-		public boolean isEmpty() {
-			return (includePaths.length == 0 && quoteIncludePaths.length == 0 && includeFiles.length == 0
-					&& macrosFiles.length == 0 && definedSymbols.size() == 0);
-		}
-	}
-
-	public class ScannerInfoData implements IDiscoveredScannerInfoSerializable {
-		public static final String DEFINED_SYMBOL = "definedSymbol"; //$NON-NLS-1$
-		public static final String ID_ATTR = "id"; //$NON-NLS-1$
-		public static final String INCLUDE_PATH = "includePath"; //$NON-NLS-1$
-
-		private static final String NAME = "name"; //$NON-NLS-1$
-
-		public static final String PATH = "path"; //$NON-NLS-1$
-		private static final String PROJECT = "project"; //$NON-NLS-1$
-		public static final String REMOVED = "removed"; //$NON-NLS-1$
-		public static final String SYMBOL = "symbol"; //$NON-NLS-1$
-		public final Map<Integer, CCommandDSC> commandIdCommandMap; // map of all commands
-		public final Map<Integer, Set<IFile>> commandIdToFilesMap; // command id and set of files it applies to
-		public final Map<IFile, Integer> fileToCommandIdMap; // maps each file to the corresponding command id
-
-		public ScannerInfoData() {
-			commandIdCommandMap = new LinkedHashMap<>(); // [commandId, command]
-			fileToCommandIdMap = new HashMap<>(); // [file, commandId]
-			commandIdToFilesMap = new HashMap<>(); // [commandId, set of files]
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.cdt.make.internal.core.scannerconfig.DiscoveredScannerInfoStore.IDiscoveredScannerInfoSerializable#deserialize(org.w3c.dom.Element)
-		 */
-		@Override
-		public void deserialize(Element collectorElem) {
-			synchronized (fLock) {
-
-				for (Node child = collectorElem.getFirstChild(); child != null; child = child.getNextSibling()) {
-					if (child.getNodeName().equals(PROJECT)) {
-						Element projectElement = (Element) child;
-						String projectName = projectElement.getAttribute(NAME);
-
-						IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
-
-						Map<ScannerInfoTypes, List<String>> scannerInfo = new HashMap<>();
-
-						List<String> includes = new LinkedList<>();
-						List<String> symbols = new LinkedList<>();
-
-						// iterate over children
-						for (Node projectChild = projectElement
-								.getFirstChild(); projectChild != null; projectChild = projectChild.getNextSibling()) {
-							if (projectChild.getNodeName().equals(INCLUDE_PATH)) {
-								Element childElem = (Element) projectChild;
-								String path = childElem.getAttribute(PATH);
-								if (path != null) {
-									includes.add(path);
-								}
-							} else if (projectChild.getNodeName().equals(DEFINED_SYMBOL)) {
-								Element childElem = (Element) projectChild;
-								String symbol = childElem.getAttribute(SYMBOL);
-
-								if (symbol != null) {
-									symbols.add(symbol);
-								}
-							}
-						}
-
-						// add loaded scanner info to project settings for this collector
-						scannerInfo.put(ScannerInfoTypes.INCLUDE_PATHS, includes);
-						scannerInfo.put(ScannerInfoTypes.SYMBOL_DEFINITIONS, symbols);
-						fProjectSettingsMap.put(project, scannerInfo);
-					}
-
-					else if (child.getNodeName().equals(CC_ELEM)) {
-						Element cmdElem = (Element) child;
-						boolean cppFileType = cmdElem.getAttribute(FILE_TYPE_ATTR).equals("c++"); //$NON-NLS-1$
-						XLCCommandDSC command = new XLCCommandDSC(cppFileType, project);
-						command.setCommandId(Integer.parseInt(cmdElem.getAttribute(ID_ATTR)));
-						// deserialize command
-						command.deserialize(cmdElem);
-						// get set of files the command applies to
-						NodeList appliesList = cmdElem.getElementsByTagName(APPLIES_TO_ATTR);
-						if (appliesList.getLength() > 0) {
-							Element appliesElem = (Element) appliesList.item(0);
-							NodeList fileList = appliesElem.getElementsByTagName(FILE_ELEM);
-							for (int i = 0; i < fileList.getLength(); ++i) {
-								Element fileElem = (Element) fileList.item(i);
-								String fileName = fileElem.getAttribute(PATH_ATTR);
-								IFile file = project.getFile(fileName);
-								addCompilerCommand(file, command);
-							}
-							applyFileDeltas();
-						}
-					}
-				}
-			}
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.cdt.make.internal.core.scannerconfig.DiscoveredScannerInfoStore.IDiscoveredScannerInfoSerializable#getCollectorId()
-		 */
-		@Override
-		public String getCollectorId() {
-			return COLLECTOR_ID;
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.cdt.make.internal.core.scannerconfig.DiscoveredScannerInfoStore.IDiscoveredScannerInfoSerializable#serialize(org.w3c.dom.Element)
-		 */
-		@Override
-		public void serialize(Element collectorElem) {
-			try {
-				synchronized (fLock) {
-					Document doc = collectorElem.getOwnerDocument();
-
-					// serialize project level info
-					for (IProject project : fProjectSettingsMap.keySet()) {
-						// create a project node
-						Element projectElement = doc.createElement(PROJECT);
-						projectElement.setAttribute(NAME, project.getName());
-
-						Map<ScannerInfoTypes, List<String>> scannerInfo = (Map<ScannerInfoTypes, List<String>>) fProjectSettingsMap
-								.get(project);
-
-						List<String> includes = scannerInfo.get(ScannerInfoTypes.INCLUDE_PATHS);
-						for (String include : includes) {
-							Element pathElement = doc.createElement(INCLUDE_PATH);
-							pathElement.setAttribute(PATH, include);
-							//Boolean removed = (Boolean) includes.contains(include);
-							//if (removed != null && removed.booleanValue() == true) {
-							//	pathElement.setAttribute(REMOVED, "true"); //$NON-NLS-1$
-							//}
-							pathElement.setAttribute(REMOVED, "false"); //$NON-NLS-1$
-							projectElement.appendChild(pathElement);
-						}
-
-						// Now do the same for the symbols
-						List<String> symbols = scannerInfo.get(ScannerInfoTypes.SYMBOL_DEFINITIONS);
-
-						for (String symbol : symbols) {
-							Element symbolElement = doc.createElement(DEFINED_SYMBOL);
-							symbolElement.setAttribute(SYMBOL, symbol);
-							projectElement.appendChild(symbolElement);
-						}
-						collectorElem.appendChild(projectElement);
-					}
-
-					// serialize file level info
-					List<Integer> commandIds = new ArrayList<>(commandIdCommandMap.keySet());
-					Collections.sort(commandIds);
-					for (Iterator<Integer> i = commandIds.iterator(); i.hasNext();) {
-						Integer commandId = i.next();
-						CCommandDSC command = commandIdCommandMap.get(commandId);
-
-						Element cmdElem = doc.createElement(CC_ELEM);
-						collectorElem.appendChild(cmdElem);
-						cmdElem.setAttribute(ID_ATTR, commandId.toString());
-						cmdElem.setAttribute(FILE_TYPE_ATTR, command.appliesToCPPFileType() ? "c++" : "c"); //$NON-NLS-1$ //$NON-NLS-2$
-						// write command and scanner info
-						command.serialize(cmdElem);
-						// write files command applies to
-						Element filesElem = doc.createElement(APPLIES_TO_ATTR);
-						cmdElem.appendChild(filesElem);
-						Set<IFile> files = commandIdToFilesMap.get(commandId);
-						if (files != null) {
-							for (Iterator<IFile> j = files.iterator(); j.hasNext();) {
-								Element fileElem = doc.createElement(FILE_ELEM);
-								IFile file = j.next();
-								IPath path = file.getProjectRelativePath();
-								fileElem.setAttribute(PATH_ATTR, path.toString());
-								filesElem.appendChild(fileElem);
-							}
-						}
-					}
-				}
-
-			} catch (Throwable e) {
-				e.printStackTrace();
-			}
-		}
-
-	}
-
-	protected static final String APPLIES_TO_ATTR = "appliesToFiles"; //$NON-NLS-1$
-
-	protected static final String CC_ELEM = "compilerCommand"; //$NON-NLS-1$
-
-	public static final String COLLECTOR_ID = Activator.PLUGIN_ID + ".PerFileXLCScannerInfoCollector"; //$NON-NLS-1$
-
-	protected static final String FILE_ELEM = "file"; //$NON-NLS-1$
-
-	protected static final String FILE_TYPE_ATTR = "fileType"; //$NON-NLS-1$
-
-	protected static final String ID_ATTR = "id"; //$NON-NLS-1$
-
-	protected static final int INCLUDE_FILE = 3;
-
-	protected static final int INCLUDE_PATH = 1;
-
-	protected static final int MACROS_FILE = 4;
-
-	protected static final String PATH_ATTR = "path"; //$NON-NLS-1$
-
-	protected static final int QUOTE_INCLUDE_PATH = 2;
-
-	protected static PathInfo createFilePathInfo(CCommandDSC cmd) {
-		IPath[] includes = stringListToPathArray(cmd.getIncludes());
-		IPath[] quotedIncludes = stringListToPathArray(cmd.getQuoteIncludes());
-		IPath[] incFiles = stringListToPathArray(cmd.getIncludeFile());
-		IPath[] macroFiles = stringListToPathArray(cmd.getImacrosFile());
-		List symbols = cmd.getSymbols();
-		Map<String, String> definedSymbols = new HashMap<>(symbols.size());
-		for (Iterator i = symbols.iterator(); i.hasNext();) {
-			String symbol = (String) i.next();
-			String key = ScannerConfigUtil.getSymbolKey(symbol);
-			String value = ScannerConfigUtil.getSymbolValue(symbol);
-			definedSymbols.put(key, value);
-		}
-
-		return new PathInfo(includes, quotedIncludes, definedSymbols, incFiles, macroFiles);
-	}
-
-	/**
-	 * @param discovered
-	 * @param allIncludes
-	 * @return
-	 */
-	protected static IPath[] stringListToPathArray(List<String> discovered) {
-		List<Path> allIncludes = new ArrayList<>(discovered.size());
-		for (Iterator<String> j = discovered.iterator(); j.hasNext();) {
-			String include = j.next();
-			if (!allIncludes.contains(include)) {
-				allIncludes.add(new Path(include));
-			}
-		}
-		return allIncludes.toArray(new IPath[allIncludes.size()]);
-	}
-
-	protected int commandIdCounter = 0;
-	protected InfoContext context;
-
-	/** monitor for data access */
-	protected final Object fLock = new Object();
-
-	private Map<IProject, Map<?, ?>> fProjectSettingsMap = new HashMap<>();
-
-	protected final SortedSet<Integer> freeCommandIdPool; // sorted set of free command ids
-	protected IProject project;
-	protected ProjectScannerInfo psi = null; // sum of all scanner info
-	protected final List<Integer> siChangedForCommandIdList; // list of command ids for which scanner info has changed
-	//    protected List siChangedForFileList; 		// list of files for which scanner info has changed
-	protected final Map<IResource, Integer> siChangedForFileMap; // (file, comandId) map for deltas
-	protected ScannerInfoData sid; // scanner info data
-
-	/**
-	 *
-	 */
-	public PerFileXLCScannerInfoCollector() {
-		sid = new ScannerInfoData();
-
-		//        siChangedForFileList = new ArrayList();
-		siChangedForFileMap = new HashMap<>();
-		siChangedForCommandIdList = new ArrayList<>();
-
-		freeCommandIdPool = new TreeSet<>();
-	}
-
-	/**
-	 * @param file
-	 * @param object
-	 */
-	protected void addCompilerCommand(IFile file, CCommandDSC cmd) {
-		synchronized (fLock) {
-			List<CCommandDSC> existingCommands = new ArrayList<>(sid.commandIdCommandMap.values());
-			int index = existingCommands.indexOf(cmd);
-			if (index != -1) {
-				cmd = existingCommands.get(index);
-			} else {
-				int commandId = -1;
-				if (!freeCommandIdPool.isEmpty()) {
-					Integer freeCommandId = freeCommandIdPool.first();
-					freeCommandIdPool.remove(freeCommandId);
-					commandId = freeCommandId.intValue();
-				} else {
-					commandId = ++commandIdCounter;
-				}
-				cmd.setCommandId(commandId);
-				sid.commandIdCommandMap.put(cmd.getCommandIdAsInteger(), cmd);
-			}
-
-			generateFileDelta(file, cmd);
-		}
-	}
-
-	/**
-	 * @param commandId
-	 * @param scannerInfo
-	 */
-	protected void addScannerInfo(Integer commandId, Map scannerInfo) {
-		synchronized (fLock) {
-			CCommandDSC cmd = sid.commandIdCommandMap.get(commandId);
-			if (cmd != null) {
-				List<String> siItem = (List<String>) scannerInfo.get(ScannerInfoTypes.SYMBOL_DEFINITIONS);
-				cmd.setSymbols(siItem);
-				siItem = (List<String>) scannerInfo.get(ScannerInfoTypes.INCLUDE_PATHS);
-				siItem = CygpathTranslator.translateIncludePaths(project, siItem);
-				siItem = CCommandDSC.makeRelative(project, siItem);
-				cmd.setIncludes(siItem);
-				siItem = (List<String>) scannerInfo.get(ScannerInfoTypes.QUOTE_INCLUDE_PATHS);
-				siItem = CygpathTranslator.translateIncludePaths(project, siItem);
-				siItem = CCommandDSC.makeRelative(project, siItem);
-				cmd.setQuoteIncludes(siItem);
-
-				cmd.setDiscovered(true);
-			}
-		}
-	}
-
-	/**
-	 * @param type
-	 * @param object
-	 */
-	protected void addScannerInfo(ScannerInfoTypes type, List delta) {
-		// TODO Auto-generated method stub
-
-	}
-
-	/**
-	 * @param file
-	 * @param cmd
-	 */
-	protected void applyFileDeltas() {
-		synchronized (fLock) {
-			for (Iterator<IResource> i = siChangedForFileMap.keySet().iterator(); i.hasNext();) {
-				IFile file = (IFile) i.next();
-				Integer commandId = siChangedForFileMap.get(file);
-				if (commandId != null) {
-
-					// update sid.commandIdToFilesMap
-					Set<IFile> fileSet = sid.commandIdToFilesMap.get(commandId);
-					if (fileSet == null) {
-						fileSet = new HashSet<>();
-						sid.commandIdToFilesMap.put(commandId, fileSet);
-						CCommandDSC cmd = sid.commandIdCommandMap.get(commandId);
-						if (cmd != null) {
-							cmd.resolveOptions(project);
-						}
-					}
-					if (fileSet.add(file)) {
-						// update fileToCommandIdsMap
-						boolean change = true;
-						Integer oldCommandId = sid.fileToCommandIdMap.get(file);
-						if (oldCommandId != null) {
-							if (oldCommandId.equals(commandId)) {
-								change = false;
-							} else {
-								Set oldFileSet = sid.commandIdToFilesMap.get(oldCommandId);
-								if (oldFileSet != null) {
-									oldFileSet.remove(file);
-								}
-							}
-						}
-						if (change) {
-							sid.fileToCommandIdMap.put(file, commandId);
-							// TODO generate change event for this resource
-							// IPath path = file.getFullPath();
-							// if (!siChangedForFileList.contains(path)) {
-							// siChangedForFileList.add(path);
-							// }
-						}
-					}
-				}
-			}
-			generateProjectScannerInfo();
-		}
-	}
-
-	protected Map<IResource, PathInfo> calculatePathInfoMap() {
-		synchronized (fLock) {
-			Map<IResource, PathInfo> map = new HashMap<>(sid.fileToCommandIdMap.size() + 1);
-			Map.Entry entry;
-			IFile file;
-			CCommandDSC cmd;
-			PathInfo fpi;
-			for (Iterator iter = sid.fileToCommandIdMap.entrySet().iterator(); iter.hasNext();) {
-				entry = (Map.Entry) iter.next();
-				file = (IFile) entry.getKey();
-				if (file != null) {
-					cmd = sid.commandIdCommandMap.get(entry.getValue());
-					if (cmd != null) {
-						fpi = createFilePathInfo(cmd);
-						map.put(file, fpi);
-					}
-				}
-			}
-
-			if (project != null) {
-				if (psi == null) {
-					generateProjectScannerInfo();
-				}
-
-				fpi = new PathInfo(psi.includePaths, psi.quoteIncludePaths, psi.definedSymbols, psi.includeFiles,
-						psi.macrosFiles);
-				map.put(project, fpi);
-			}
-
-			return map;
-		}
-	}
-
-	@Override
-	public void contributeToScannerConfig(Object resource, Map scannerInfo) {
-		// check the resource
-		String errorMessage = null;
-		if (resource == null) {
-			errorMessage = "resource is null";//$NON-NLS-1$
-		} else if (resource instanceof Integer) {
-			synchronized (fLock) {
-				addScannerInfo(((Integer) resource), scannerInfo);
-			}
-			return;
-		}
-
-		if ((resource instanceof IFile)) {
-
-			if (((IFile) resource).getProject() == null) {
-				errorMessage = "project is null";//$NON-NLS-1$
-			} else if (!((IFile) resource).getProject().equals(project)) {
-				errorMessage = "wrong project";//$NON-NLS-1$
-			}
-			if (errorMessage != null) {
-				TraceUtil.outputError("PerFileSICollector.contributeToScannerConfig : ", errorMessage); //$NON-NLS-1$
-				return;
-			}
-
-			IFile file = (IFile) resource;
-
-			synchronized (fLock) {
-				for (Iterator i = scannerInfo.keySet().iterator(); i.hasNext();) {
-					ScannerInfoTypes type = (ScannerInfoTypes) i.next();
-					if (type.equals(ScannerInfoTypes.COMPILER_COMMAND)) {
-						List commands = (List) scannerInfo.get(type);
-						for (Iterator j = commands.iterator(); j.hasNext();) {
-							addCompilerCommand(file, (CCommandDSC) j.next());
-						}
-					} else {
-						addScannerInfo(type, (List) scannerInfo.get(type));
-					}
-				}
-			}
-		}
-
-		else if (resource instanceof IProject) {
-			// save to project level settings
-			synchronized (fLock) {
-				fProjectSettingsMap.put(((IProject) resource), scannerInfo);
-			}
-		}
-
-		else { // error
-			TraceUtil.outputError("PerFileSICollector.contributeToScannerConfig : ", "Not a project or file."); //$NON-NLS-1$ //$NON-NLS-2$
-			return;
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.make.core.scannerconfig.IScannerInfoCollector2#createPathInfoObject()
-	 */
-	@Override
-	public IDiscoveredPathInfo createPathInfoObject() {
-		return new PerFileDiscoveredPathInfo();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.make.internal.core.scannerconfig2.PerFileSICollector#deleteAll(org.eclipse.core.resources.IResource)
-	 */
-	public void deleteAll(IResource resource) {
-		synchronized (fLock) {
-			if (resource instanceof IProject) {
-				fProjectSettingsMap.remove(resource);
-			}
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.make.core.scannerconfig.IScannerInfoCollectorCleaner#deleteAll(org.eclipse.core.resources.IResource)
-	 */
-	public void deleteAll1(IResource resource) {
-		if (resource.equals(project)) {
-			synchronized (fLock) {
-				//            	siChangedForFileList = new ArrayList();
-				siChangedForFileMap.clear();
-				Set<IFile> changedFiles = sid.fileToCommandIdMap.keySet();
-				for (Iterator<IFile> i = changedFiles.iterator(); i.hasNext();) {
-					IFile file = i.next();
-					//	                IPath path = file.getFullPath();
-					//	                siChangedForFileList.add(path);
-					siChangedForFileMap.put(file, null);
-				}
-
-				sid = new ScannerInfoData();
-				psi = null;
-
-				commandIdCounter = 0;
-				freeCommandIdPool.clear();
-			}
-		}
-	}
-
-	public void deleteAllPaths(IResource resource) {
-		synchronized (fLock) {
-			if (resource instanceof IProject && fProjectSettingsMap != null) {
-				fProjectSettingsMap.remove(resource);
-			}
-		}
-	}
-
-	public void deleteAllSymbols(IResource resource) {
-		synchronized (fLock) {
-			if (resource instanceof IProject && fProjectSettingsMap != null) {
-				fProjectSettingsMap.remove(resource);
-			}
-		}
-	}
-
-	public void deletePath(IResource resource, String path) {
-		synchronized (fLock) {
-			if (resource instanceof IProject && fProjectSettingsMap != null) {
-				fProjectSettingsMap.remove(resource);
-			}
-		}
-	}
-
-	public void deleteSymbol(IResource resource, String symbol) {
-		synchronized (fLock) {
-			if (resource instanceof IProject && fProjectSettingsMap != null) {
-				fProjectSettingsMap.remove(resource);
-			}
-		}
-	}
-
-	/**
-	 * @param file
-	 * @param cmd
-	 */
-	protected void generateFileDelta(IFile file, CCommandDSC cmd) {
-		synchronized (fLock) {
-			Integer commandId = cmd.getCommandIdAsInteger();
-			Integer oldCommandId = sid.fileToCommandIdMap.get(file);
-
-			if (oldCommandId != null && oldCommandId.equals(commandId)) {
-				// already exists; remove form delta
-				siChangedForFileMap.remove(file);
-			} else {
-				// new (file, commandId) pair
-				siChangedForFileMap.put(file, commandId);
-			}
-		}
-	}
-
-	protected void generateProjectScannerInfo() {
-		synchronized (fLock) {
-			psi = new ProjectScannerInfo();
-			psi.includePaths = getAllIncludePaths(INCLUDE_PATH);
-			psi.quoteIncludePaths = getAllIncludePaths(QUOTE_INCLUDE_PATH);
-			psi.includeFiles = getAllIncludePaths(INCLUDE_FILE);
-			psi.macrosFiles = getAllIncludePaths(MACROS_FILE);
-			psi.definedSymbols = getAllSymbols();
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.make.internal.core.scannerconfig2.PerFileSICollector#getAllIncludePaths(int)
-	 */
-	protected IPath[] getAllIncludePaths(int type) {
-		synchronized (fLock) {
-			IProject project = this.getInfoContext().getProject();
-
-			Map projectScannerInfo = fProjectSettingsMap.get(project);
-			List<String> includes = null;
-
-			if (projectScannerInfo != null) {
-				includes = (List<String>) projectScannerInfo.get(ScannerInfoTypes.INCLUDE_PATHS);
-			}
-
-			List<IPath> pathList = new LinkedList<>();
-
-			if (includes != null) {
-				for (String include : includes) {
-					pathList.add(new Path(include));
-				}
-			}
-
-			IPath[] fileIncludes = getAllIncludePaths1(type);
-
-			for (IPath include : fileIncludes) {
-				pathList.add(include);
-			}
-
-			return pathList.toArray(new IPath[0]);
-		}
-	}
-
-	/**
-	 * @param type can be one of the following:
-	 * <li><code>INCLUDE_PATH</code>
-	 * <li><code>QUOTE_INCLUDE_PATH</code>
-	 * <li><code>INCLUDE_FILE</code>
-	 * <li><code>MACROS_FILE</code>
-	 *
-	 * @return list of IPath(s).
-	 */
-	protected IPath[] getAllIncludePaths1(int type) {
-		synchronized (fLock) {
-			List<String> allIncludes = new ArrayList<>();
-			for (Iterator<Integer> i = sid.commandIdCommandMap.keySet().iterator(); i.hasNext();) {
-				Integer cmdId = i.next();
-				CCommandDSC cmd = sid.commandIdCommandMap.get(cmdId);
-				if (cmd.isDiscovered()) {
-					List<String> discovered = null;
-					switch (type) {
-					case INCLUDE_PATH:
-						discovered = cmd.getIncludes();
-						break;
-					case QUOTE_INCLUDE_PATH:
-						discovered = cmd.getQuoteIncludes();
-						break;
-					case INCLUDE_FILE:
-						discovered = cmd.getIncludeFile();
-						break;
-					case MACROS_FILE:
-						discovered = cmd.getImacrosFile();
-						break;
-					}
-					for (Iterator<String> j = discovered.iterator(); j.hasNext();) {
-						String include = j.next();
-						// the following line degrades perfomance
-						// see
-						// https://bugs.eclipse.org/bugs/show_bug.cgi?id=189127
-						// it is not necessary for renaming projects anyway
-						// include = CCommandDSC.makeRelative(project, new
-						// Path(include)).toPortableString();
-						if (!allIncludes.contains(include)) {
-							allIncludes.add(include);
-						}
-					}
-				}
-			}
-			return stringListToPathArray(allIncludes);
-		}
-	}
-
-	protected Map<String, String> getAllSymbols() {
-		synchronized (fLock) {
-			IProject project = this.getInfoContext().getProject();
-
-			Map projectScannerInfo = fProjectSettingsMap.get(project);
-
-			Map<String, String> symbols = new HashMap<>();
-
-			if (projectScannerInfo != null) {
-				List<String> projectSymbols = (List<String>) projectScannerInfo
-						.get(ScannerInfoTypes.SYMBOL_DEFINITIONS);
-
-				if (projectSymbols != null) {
-
-					for (String symbol : projectSymbols) {
-						if (symbol.matches("_Builtin")) //$NON-NLS-1$
-							symbols.put(symbol, ""); //$NON-NLS-1$
-						else
-							symbols.put(symbol, "1"); //$NON-NLS-1$
-					}
-				}
-			}
-
-			Map<String, String> fileSymbols = getAllSymbols1();
-
-			symbols.putAll(fileSymbols);
-
-			return symbols;
-		}
-	}
-
-	/**
-	 * @return
-	 */
-	protected Map<String, String> getAllSymbols1() {
-		synchronized (fLock) {
-			Map<String, String> symbols = new HashMap<>();
-			for (Iterator<Integer> i = sid.commandIdCommandMap.keySet().iterator(); i.hasNext();) {
-				Integer cmdId = i.next();
-				CCommandDSC cmd = sid.commandIdCommandMap.get(cmdId);
-				if (cmd.isDiscovered()) {
-					List discovered = cmd.getSymbols();
-					for (Iterator j = discovered.iterator(); j.hasNext();) {
-						String symbol = (String) j.next();
-						String key = ScannerConfigUtil.getSymbolKey(symbol);
-						String value = ScannerConfigUtil.getSymbolValue(symbol);
-						symbols.put(key, value);
-					}
-				}
-			}
-			return symbols;
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.make.core.scannerconfig.IScannerInfoCollector#getCollectedScannerInfo(java.lang.Object, org.eclipse.cdt.make.core.scannerconfig.ScannerInfoTypes)
-	 */
-	@Override
-	public List<CCommandDSC> getCollectedScannerInfo(Object resource, ScannerInfoTypes type) {
-
-		List<CCommandDSC> rv = new ArrayList<>();
-		// check the resource
-		String errorMessage = null;
-		if (resource == null) {
-			errorMessage = "resource is null";//$NON-NLS-1$
-		} else if (!(resource instanceof IResource)) {
-			errorMessage = "resource is not an IResource";//$NON-NLS-1$
-		} else if (((IResource) resource).getProject() == null) {
-			errorMessage = "project is null";//$NON-NLS-1$
-		} else if (((IResource) resource).getProject() != project) {
-			errorMessage = "wrong project";//$NON-NLS-1$
-		}
-
-		if (errorMessage != null) {
-			TraceUtil.outputError("PerProjectSICollector.getCollectedScannerInfo : ", errorMessage); //$NON-NLS-1$
-			return rv;
-		}
-		if (project.equals(((IResource) resource).getProject())) {
-			if (type.equals(ScannerInfoTypes.COMPILER_COMMAND)) {
-				synchronized (fLock) {
-					for (Iterator<Integer> i = sid.commandIdCommandMap.keySet().iterator(); i.hasNext();) {
-						Integer cmdId = i.next();
-						Set<IFile> fileSet = sid.commandIdToFilesMap.get(cmdId);
-						if (fileSet != null && !fileSet.isEmpty()) {
-							rv.add(sid.commandIdCommandMap.get(cmdId));
-						}
-					}
-				}
-			} else if (type.equals(ScannerInfoTypes.UNDISCOVERED_COMPILER_COMMAND)) {
-				//      		if (!siChangedForFileList.isEmpty()) {
-				synchronized (fLock) {
-					if (scannerInfoChanged()) {
-						if (siChangedForCommandIdList.isEmpty()) {
-							//  						for (Iterator i = siChangedForFileList.iterator(); i.hasNext(); ) {
-							for (Iterator<IResource> i = siChangedForFileMap.keySet().iterator(); i.hasNext();) {
-								//  							IPath path = (IPath) i.next();
-								IFile file = (IFile) i.next();
-								Integer cmdId = siChangedForFileMap.get(file);
-								if (cmdId != null) {
-									if (!siChangedForCommandIdList.contains(cmdId)) {
-										siChangedForCommandIdList.add(cmdId);
-									}
-								}
-							}
-						}
-						Collections.sort(siChangedForCommandIdList);
-						for (Iterator<Integer> i = siChangedForCommandIdList.iterator(); i.hasNext();) {
-							Integer cmdId = i.next();
-							CCommandDSC command = sid.commandIdCommandMap.get(cmdId);
-							rv.add(command);
-						}
-					}
-				}
-			}
-		}
-		return rv;
-	}
-
-	protected CCommandDSC getCommand(IFile file) {
-		synchronized (fLock) {
-			CCommandDSC cmd = null;
-			if (file != null) {
-				Integer cmdId = sid.fileToCommandIdMap.get(file);
-				if (cmdId != null) {
-					// get the command
-					cmd = sid.commandIdCommandMap.get(cmdId);
-				}
-			}
-			return cmd;
-		}
-	}
-
-	/**
-	* @param path
-	* @return
-	*/
-	protected CCommandDSC getCommand(IPath path) {
-		synchronized (fLock) {
-			try {
-				IFile file = project.getWorkspace().getRoot().getFile(path);
-				return getCommand(file);
-			} catch (Exception e) {
-				return null;
-			}
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.managedbuilder.scannerconfig.IManagedScannerInfoCollector#getDefinedSymbols()
-	 */
-	@Override
-	public Map getDefinedSymbols() {
-		synchronized (fLock) {
-			return getAllSymbols();
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.managedbuilder.scannerconfig.IManagedScannerInfoCollector#getIncludePaths()
-	 */
-	@Override
-	public List<String> getIncludePaths() {
-		synchronized (fLock) {
-			List<String> pathStrings = new LinkedList<>();
-
-			List<IPath> paths = Arrays.asList(getAllIncludePaths(INCLUDE_PATH));
-			paths.addAll(Arrays.asList(getAllIncludePaths(QUOTE_INCLUDE_PATH)));
-
-			for (IPath path : paths) {
-				pathStrings.add(path.toString());
-			}
-
-			return pathStrings;
-		}
-	}
-
-	protected InfoContext getInfoContext() {
-		return context;
-	}
-
-	protected void removeUnusedCommands() {
-		synchronized (fLock) {
-			for (Iterator i = sid.commandIdToFilesMap.entrySet().iterator(); i.hasNext();) {
-				Entry entry = (Entry) i.next();
-				Integer cmdId = (Integer) entry.getKey();
-				Set fileSet = (Set) entry.getValue();
-				if (fileSet.isEmpty()) {
-					// return cmdId to the free command id pool
-					freeCommandIdPool.add(cmdId);
-				}
-			}
-			for (Iterator<Integer> i = freeCommandIdPool.iterator(); i.hasNext();) {
-				Integer cmdId = i.next();
-				// the command does not have any files associated; remove
-				sid.commandIdCommandMap.remove(cmdId);
-				sid.commandIdToFilesMap.remove(cmdId);
-			}
-			while (!freeCommandIdPool.isEmpty()) {
-				Integer last = freeCommandIdPool.last();
-				if (last.intValue() == commandIdCounter) {
-					freeCommandIdPool.remove(last);
-					--commandIdCounter;
-				} else
-					break;
-			}
-		}
-	}
-
-	protected boolean scannerInfoChanged() {
-		synchronized (fLock) {
-			return (!fProjectSettingsMap.isEmpty()) || !siChangedForFileMap.isEmpty();
-		}
-	}
-
-	@Override
-	public void setInfoContext(InfoContext context) {
-		synchronized (fLock) {
-			this.project = context.getProject();
-			this.context = context;
-
-			try {
-				// deserialize from SI store
-				DiscoveredScannerInfoStore.getInstance().loadDiscoveredScannerInfoFromState(project, context, sid);
-			} catch (CoreException e) {
-				MakeCorePlugin.log(e);
-			}
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.make.core.scannerconfig.IScannerInfoCollector2#setProject(org.eclipse.core.resources.IProject)
-	 */
-	@Override
-	public void setProject(IProject project) {
-		synchronized (fLock) {
-			setInfoContext(new InfoContext(project));
-		}
-	}
-
-	@Override
-	public void updateScannerConfiguration(IProgressMonitor monitor) throws CoreException {
-		if (monitor == null) {
-			monitor = new NullProgressMonitor();
-		}
-		monitor.beginTask(Messages.getString("ScannerInfoCollector.Processing"), 100); //$NON-NLS-1$
-		monitor.subTask(Messages.getString("ScannerInfoCollector.Processing")); //$NON-NLS-1$
-		ArrayList<IResource> changedResources = new ArrayList<>();
-		synchronized (fLock) {
-			if (scannerInfoChanged()) {
-				applyFileDeltas();
-				removeUnusedCommands();
-				changedResources.addAll(siChangedForFileMap.keySet());
-				siChangedForFileMap.clear();
-			}
-			siChangedForCommandIdList.clear();
-
-			// add in any projects that got project level info (from the specs provider)
-			changedResources.addAll(fProjectSettingsMap.keySet());
-
-			monitor.worked(50);
-			if (!changedResources.isEmpty()) {
-				// update outside monitor scope
-				try {
-					// update scanner configuration
-					monitor.subTask(Messages.getString("ScannerInfoCollector.Updating") + project.getName()); //$NON-NLS-1$
-					IDiscoveredPathInfo pathInfo = MakeCorePlugin.getDefault().getDiscoveryManager()
-							.getDiscoveredInfo(project, context);
-					//IDiscoveredPathInfo pathInfo = new PerFileDiscoveredPathInfo();
-					if (!(pathInfo instanceof IPerFileDiscoveredPathInfo)) {
-						pathInfo = createPathInfoObject();
-					} else {
-						PerFileDiscoveredPathInfo perFilePathInfo = new PerFileDiscoveredPathInfo();
-
-						// merge them
-						if (!(pathInfo instanceof IPerFileDiscoveredPathInfo)) {
-							pathInfo = new MergedPerFileDiscoveredPathInfo(pathInfo, perFilePathInfo);
-						} else {
-							pathInfo = perFilePathInfo;
-						}
-					}
-
-					Job job = new ScannerConfigUpdateJob(context, pathInfo, context.isDefaultContext(),
-							changedResources);
-					ISchedulingRule rule = ResourcesPlugin.getWorkspace().getRoot();
-					job.setRule(rule);
-					job.schedule();
-
-					//			        	} finally {
-					//			        	    manager.endRule(rule);
-					//			        	}
-
-				} catch (CoreException e) {
-					MakeCorePlugin.log(e);
-				}
-
-				catch (Throwable e) {
-					e.printStackTrace();
-				}
-			}
-		}
-
-		monitor.worked(50);
-		monitor.done();
-	}
-
-}
\ No newline at end of file
diff --git a/xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/scannerconfig/PerProjectXLCScannerInfoCollector.java b/xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/scannerconfig/PerProjectXLCScannerInfoCollector.java
deleted file mode 100644
index b5167d3..0000000
--- a/xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/scannerconfig/PerProjectXLCScannerInfoCollector.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.make.xlc.core.scannerconfig;
-
-import org.eclipse.cdt.make.internal.core.scannerconfig2.PerProjectSICollector;
-import org.eclipse.cdt.managedbuilder.scannerconfig.IManagedScannerInfoCollector;
-
-/**
- * @author laggarcia
- *
- */
-public class PerProjectXLCScannerInfoCollector extends PerProjectSICollector implements IManagedScannerInfoCollector {
-}
diff --git a/xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/scannerconfig/XLCBuildOutputParserUtility.java b/xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/scannerconfig/XLCBuildOutputParserUtility.java
deleted file mode 100644
index dec8c2a..0000000
--- a/xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/scannerconfig/XLCBuildOutputParserUtility.java
+++ /dev/null
@@ -1,707 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2016 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.make.xlc.core.scannerconfig;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Vector;
-
-import org.eclipse.cdt.core.IMarkerGenerator;
-import org.eclipse.cdt.core.ProblemMarkerInfo;
-import org.eclipse.cdt.make.core.MakeCorePlugin;
-import org.eclipse.cdt.make.internal.core.MakeMessages;
-import org.eclipse.cdt.make.internal.core.scannerconfig.util.CCommandDSC;
-import org.eclipse.cdt.make.internal.core.scannerconfig.util.KVStringPair;
-import org.eclipse.cdt.make.internal.core.scannerconfig.util.SCDOptionsEnum;
-import org.eclipse.cdt.make.internal.core.scannerconfig.util.TraceUtil;
-import org.eclipse.cdt.make.xlc.core.scannerconfig.util.XLCCommandDSC;
-import org.eclipse.cdt.utils.EFSExtensionManager;
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-
-/**
- * @author crecoskie
- *
- */
-public class XLCBuildOutputParserUtility {
-	protected class Problem {
-		protected String description;
-		protected IResource file;
-		protected int lineNumber;
-		protected int severity;
-		protected String variableName;
-
-		public Problem(IResource file, int lineNumber, String desciption, int severity, String variableName) {
-			this.file = file;
-			this.lineNumber = lineNumber;
-			this.description = desciption;
-			this.severity = severity;
-			this.variableName = variableName;
-		}
-	}
-
-	public static IPath convertCygpath(IPath path) {
-		if (path.segmentCount() > 1 && path.segment(0).equals("cygdrive")) { //$NON-NLS-1$
-			StringBuilder buf = new StringBuilder(2);
-			buf.append(Character.toUpperCase(path.segment(1).charAt(0)));
-			buf.append(':');
-			path = path.removeFirstSegments(2);
-			path = path.setDevice(buf.toString());
-			path = path.makeAbsolute();
-		}
-		return path;
-	}
-
-	private List commandsList2;
-	private int commandsN = 0;
-	private List compiledFileList;
-
-	private Map directoryCommandListMap;
-
-	private IPath fBaseDirectory;
-	private String fDefaultMacroDefinitionValue = "1"; //$NON-NLS-1$
-	private Vector<IPath> fDirectoryStack;
-	private ArrayList<Problem> fErrors;
-	private int filesN = 0;
-
-	private IMarkerGenerator fMarkerGenerator;
-
-	private IProject project;
-
-	private int workingDirsN = 0;
-
-	/*
-	 * For tracking the location of files being compiled
-	 */
-	private Map<String, IFile> fFilesInProject;
-	private List<String> fCollectedFiles;
-	private List<String> fNameConflicts;
-
-	protected XLCBuildOutputParserUtility(IPath baseDirectory, IPath workingDirectory) {
-		fDirectoryStack = new Vector<>();
-		fErrors = new ArrayList<>();
-		this.fBaseDirectory = baseDirectory;
-		if (workingDirectory != null) {
-			pushDirectory(workingDirectory);
-		}
-
-	}
-
-	/**
-	 *
-	 */
-	public XLCBuildOutputParserUtility(IProject project, IPath workingDirectory, IMarkerGenerator markerGenerator) {
-		fDirectoryStack = new Vector<>();
-		fErrors = new ArrayList<>();
-		this.project = project;
-		fBaseDirectory = getPathForResource(project);
-		if (workingDirectory != null) {
-			pushDirectory(workingDirectory);
-		}
-	}
-
-	private IPath getPathForResource(IResource resource) {
-		// TODO: when the file system utility stuff is in, this will have to call it to get the path
-		// for now, get the path from the URI
-		URI locationURI = resource.getLocationURI();
-		IPath path = new Path(locationURI.getPath());
-		return path;
-	}
-
-	/**
-	 * Adds a mapping filename, generic_command
-	 * @param longFileName
-	 * @param genericLine
-	 */
-	void addGenericCommandForFile(String longFileName, String genericCommand) {
-		// if a file name has already been added once, return
-		if (compiledFileList.contains(longFileName))
-			return;
-		compiledFileList.add(longFileName);
-
-		String workingDir = getWorkingDirectory().toString();
-		List directoryCommandList = (List) directoryCommandListMap.get(workingDir);
-		if (directoryCommandList == null) {
-			directoryCommandList = new ArrayList();
-			directoryCommandListMap.put(workingDir, directoryCommandList);
-			++workingDirsN;
-		}
-		Map command21FileListMap = null;
-		for (Iterator i = directoryCommandList.iterator(); i.hasNext();) {
-			command21FileListMap = (Map) i.next();
-			List fileList = (List) command21FileListMap.get(genericCommand);
-			if (fileList != null) {
-				if (!fileList.contains(longFileName)) {
-					fileList.add(longFileName);
-					++filesN;
-				}
-				return;
-			}
-		}
-		command21FileListMap = new HashMap(1);
-		directoryCommandList.add(command21FileListMap);
-		++commandsN;
-		List fileList = new ArrayList();
-		command21FileListMap.put(genericCommand, fileList);
-		fileList.add(longFileName);
-		++filesN;
-	}
-
-	/**
-	 * Adds a mapping command line -> file, this time without a dir
-	 * @param longFileName
-	 * @param genericLine
-	 */
-	void addGenericCommandForFile2(String longFileName, String genericLine) {
-		// if a file name has already been added once, return
-		if (compiledFileList.contains(longFileName))
-			return;
-		compiledFileList.add(longFileName);
-
-		String[] tokens = genericLine.split("\\s+"); //$NON-NLS-1$
-		CCommandDSC command = getNewCCommandDSC(tokens, 0, false); // assume .c file type
-		int index = commandsList2.indexOf(command);
-		if (index == -1) {
-			commandsList2.add(command);
-			++commandsN;
-		} else {
-			command = (CCommandDSC) commandsList2.get(index);
-		}
-		//        // add a file
-		//        command.addFile(longFileName);
-		//        ++filesN;
-	}
-
-	public void changeMakeDirectory(String dir, int dirLevel, boolean enterDir) {
-		if (enterDir) {
-			/* Sometimes make screws up the output, so
-			 * "leave" events can't be seen.  Double-check level
-			 * here.
-			 */
-			for (int parseLevel = getDirectoryLevel(); dirLevel < parseLevel; parseLevel = getDirectoryLevel()) {
-				popDirectory();
-			}
-			pushDirectory(new Path(dir));
-		} else {
-			popDirectory();
-			/* Could check to see if they match */
-		}
-	}
-
-	/**
-	 * Called by the console line parsers to generate a problem marker.
-	 */
-	public void generateMarker(IResource file, int lineNumber, String desc, int severity, String varName) {
-		// No need to collect markers if marker generator is not present
-		if (fMarkerGenerator != null) {
-			Problem problem = new Problem(file, lineNumber, desc, severity, varName);
-			fErrors.add(problem);
-		}
-	}
-
-	/**
-	 *
-	 */
-	void generateReport() {
-		TraceUtil.metricsTrace("Stats for directory ", //$NON-NLS-1$
-				"Generic command: '", "' applicable for:", //$NON-NLS-1$ //$NON-NLS-2$
-				directoryCommandListMap);
-		TraceUtil.summaryTrace("Discovery summary", workingDirsN, commandsN, filesN); //$NON-NLS-1$
-	}
-
-	/**
-	 * @param filePath : String
-	 * @return filePath : IPath - not <code>null</code>
-	 */
-	public IPath getAbsolutePath(String filePath) {
-		IPath pFilePath;
-		if (filePath.startsWith("/")) { //$NON-NLS-1$
-			return convertCygpath(new Path(filePath));
-		} else if (filePath.startsWith("\\") || //$NON-NLS-1$
-				(!filePath.startsWith(".") && //$NON-NLS-1$
-						filePath.length() > 2 && filePath.charAt(1) == ':'
-						&& (filePath.charAt(2) == '\\' || filePath.charAt(2) == '/'))) {
-			// absolute path
-			pFilePath = new Path(filePath);
-		} else {
-			// relative path
-			IPath cwd = getWorkingDirectory();
-			if (!cwd.isAbsolute()) {
-				cwd = getBaseDirectory().append(cwd);
-			}
-			if (filePath.startsWith("`pwd`")) { //$NON-NLS-1$
-				if (filePath.length() > 5 && (filePath.charAt(5) == '/' || filePath.charAt(5) == '\\')) {
-					filePath = filePath.substring(6);
-				} else {
-					filePath = filePath.substring(5);
-				}
-			}
-			pFilePath = cwd.append(filePath);
-		}
-		return pFilePath;
-	}
-
-	/**
-	 * @return Returns the fBaseDirectory.
-	 */
-	public IPath getBaseDirectory() {
-		return fBaseDirectory;
-	}
-
-	/**
-	 * Returns all CCommandDSC collected so far.
-	 * Currently this list is not filled, so it will always return an empty list.
-	 * @return List of CCommandDSC
-	 */
-	public List getCCommandDSCList() {
-		return new ArrayList(commandsList2);
-	}
-
-	protected int getDirectoryLevel() {
-		return fDirectoryStack.size();
-	}
-
-	/**
-	 * @return Returns the fDirectoryStack.
-	 */
-	protected Vector<IPath> getDirectoryStack() {
-		return fDirectoryStack;
-	}
-
-	/**
-	 * @return Returns the fErrors.
-	 */
-	protected ArrayList<Problem> getErrors() {
-		return fErrors;
-	}
-
-	/**
-	 * @return Returns the fMarkerGenerator.
-	 */
-	protected IMarkerGenerator getMarkerGenerator() {
-		return fMarkerGenerator;
-	}
-
-	/**
-	 * @param genericLine
-	 * @param cppFileType
-	 * @return CCommandDSC compile command description
-	 */
-	public CCommandDSC getNewCCommandDSC(String[] tokens, final int idxOfCompilerCommand, boolean cppFileType) {
-		ArrayList dirafter = new ArrayList();
-		ArrayList includes = new ArrayList();
-		XLCCommandDSC command = new XLCCommandDSC(cppFileType, getProject());
-		command.addSCOption(new KVStringPair(SCDOptionsEnum.COMMAND.toString(), tokens[idxOfCompilerCommand]));
-		for (int i = idxOfCompilerCommand + 1; i < tokens.length; ++i) {
-			String token = tokens[i];
-			//Target specific options: see GccScannerInfoConsoleParser
-			if (token.startsWith("-m") || //$NON-NLS-1$
-					token.equals("-ansi") || //$NON-NLS-1$
-					token.equals("-posix") || //$NON-NLS-1$
-					token.equals("-pthread") || //$NON-NLS-1$
-					token.startsWith("-O") || //$NON-NLS-1$
-					token.equals("-fno-inline") || //$NON-NLS-1$
-					token.startsWith("-finline") || //$NON-NLS-1$
-					token.equals("-fno-exceptions") || //$NON-NLS-1$
-					token.equals("-fexceptions") || //$NON-NLS-1$
-					token.equals("-fshort-wchar") || //$NON-NLS-1$
-					token.equals("-fshort-double") || //$NON-NLS-1$
-					token.equals("-fno-signed-char") || //$NON-NLS-1$
-					token.equals("-fsigned-char") || //$NON-NLS-1$
-					token.startsWith("-fabi-version=") //$NON-NLS-1$
-			) {
-				command.addSCOption(new KVStringPair(SCDOptionsEnum.COMMAND.toString(), token));
-				continue;
-			}
-			for (int j = SCDOptionsEnum.MIN; j <= SCDOptionsEnum.MAX; ++j) {
-				final SCDOptionsEnum optionKind = SCDOptionsEnum.getSCDOptionsEnum(j);
-				if (token.startsWith(optionKind.toString())) {
-					String option = token.substring(optionKind.toString().length()).trim();
-					if (option.length() > 0) {
-						// ex. -I/dir
-					} else if (optionKind.equals(SCDOptionsEnum.IDASH)) {
-						for (Iterator iter = includes.iterator(); iter.hasNext();) {
-							option = (String) iter.next();
-							KVStringPair pair = new KVStringPair(SCDOptionsEnum.IQUOTE.toString(), option);
-							command.addSCOption(pair);
-						}
-						includes = new ArrayList();
-						// -I- has no parameter
-					} else {
-						// ex. -I /dir
-						// take a next token
-						if (i + 1 < tokens.length && !tokens[i + 1].startsWith("-")) { //$NON-NLS-1$
-							option = tokens[++i];
-						} else
-							break;
-					}
-
-					if (option.length() > 0 && (optionKind.equals(SCDOptionsEnum.INCLUDE)
-							|| optionKind.equals(SCDOptionsEnum.INCLUDE_FILE)
-							|| optionKind.equals(SCDOptionsEnum.IMACROS_FILE)
-							|| optionKind.equals(SCDOptionsEnum.IDIRAFTER) || optionKind.equals(SCDOptionsEnum.ISYSTEM)
-							|| optionKind.equals(SCDOptionsEnum.IQUOTE))) {
-						option = (getAbsolutePath(option)).toString();
-					}
-
-					if (optionKind.equals(SCDOptionsEnum.IDIRAFTER)) {
-						KVStringPair pair = new KVStringPair(SCDOptionsEnum.INCLUDE.toString(), option);
-						dirafter.add(pair);
-					} else if (optionKind.equals(SCDOptionsEnum.INCLUDE)) {
-						includes.add(option);
-					} else { // add the pair
-						if (optionKind.equals(SCDOptionsEnum.DEFINE)) {
-							if (option.indexOf('=') == -1) {
-								option += '=' + fDefaultMacroDefinitionValue;
-							}
-						}
-						KVStringPair pair = new KVStringPair(optionKind.toString(), option);
-						command.addSCOption(pair);
-					}
-					break;
-				}
-			}
-		}
-		String option;
-		for (Iterator iter = includes.iterator(); iter.hasNext();) {
-			option = (String) iter.next();
-			KVStringPair pair = new KVStringPair(SCDOptionsEnum.INCLUDE.toString(), option);
-			command.addSCOption(pair);
-		}
-		for (Iterator iter = dirafter.iterator(); iter.hasNext();) {
-			command.addSCOption((KVStringPair) iter.next());
-		}
-		return command;
-	}
-
-	/**
-	 * @return Returns the project.
-	 */
-	protected IProject getProject() {
-		return project;
-	}
-
-	public IPath getWorkingDirectory() {
-		if (fDirectoryStack.size() != 0) {
-			return fDirectoryStack.lastElement();
-		}
-		// Fallback to the Project Location
-		// FIXME: if the build did not start in the Project ?
-		return fBaseDirectory;
-	}
-
-	protected IPath popDirectory() {
-		int i = getDirectoryLevel();
-		if (i != 0) {
-			IPath dir = fDirectoryStack.lastElement();
-			fDirectoryStack.removeElementAt(i - 1);
-			return dir;
-		}
-		return new Path(""); //$NON-NLS-1$
-	}
-
-	protected void pushDirectory(IPath dir) {
-		if (dir != null) {
-			IPath pwd = null;
-			if (fBaseDirectory != null && fBaseDirectory.isPrefixOf(dir)) {
-				pwd = dir.removeFirstSegments(fBaseDirectory.segmentCount());
-			} else {
-				// check if it is a cygpath
-				pwd = convertCygpath(dir);
-			}
-			fDirectoryStack.addElement(pwd);
-		}
-	}
-
-	public boolean reportProblems() {
-		boolean reset = false;
-		for (Iterator<Problem> iter = fErrors.iterator(); iter.hasNext();) {
-			Problem problem = iter.next();
-			if (problem.severity == IMarkerGenerator.SEVERITY_ERROR_BUILD) {
-				reset = true;
-			}
-			if (problem.file == null) {
-				fMarkerGenerator.addMarker(new ProblemMarkerInfo(project, problem.lineNumber, problem.description,
-						problem.severity, problem.variableName));
-			} else {
-				fMarkerGenerator.addMarker(new ProblemMarkerInfo(problem.file, problem.lineNumber, problem.description,
-						problem.severity, problem.variableName));
-			}
-		}
-		fErrors.clear();
-		return reset;
-	}
-
-	public void setDefaultMacroDefinitionValue(String val) {
-		if (val != null) {
-			fDefaultMacroDefinitionValue = val;
-		}
-	}
-
-	public String getDefaultMacroDefinitionValue() {
-		return fDefaultMacroDefinitionValue;
-	}
-
-	public String normalizePath(String path) {
-		int column = path.indexOf(':');
-		if (column > 0) {
-			char driveLetter = path.charAt(column - 1);
-			if (Character.isLowerCase(driveLetter)) {
-				StringBuilder sb = new StringBuilder();
-				if (column - 1 > 0) {
-					sb.append(path.substring(0, column - 1));
-				}
-				sb.append(Character.toUpperCase(driveLetter));
-				sb.append(path.substring(column));
-				path = sb.toString();
-			}
-		}
-		if (path.indexOf('.') == -1 || path.equals(".")) { //$NON-NLS-1$
-			return (new Path(path)).toString(); // convert separators to '/'
-		}
-		// lose "./" segments since they confuse the Path normalization
-		StringBuilder buf = new StringBuilder(path);
-		int len = buf.length();
-		StringBuilder newBuf = new StringBuilder(buf.length());
-		int scp = 0; // starting copy point
-		int ssp = 0; // starting search point
-		int sdot;
-		boolean validPrefix;
-		while (ssp < len && (sdot = buf.indexOf(".", ssp)) != -1) { //$NON-NLS-1$
-			validPrefix = false;
-			int ddot = buf.indexOf("..", ssp);//$NON-NLS-1$
-			if (sdot < ddot || ddot == -1) {
-				newBuf.append(buf.substring(scp, sdot));
-				scp = sdot;
-				ssp = sdot + 1;
-				if (ssp < len) {
-					if (sdot == 0 || buf.charAt(sdot - 1) == '/' || buf.charAt(sdot - 1) == '\\') {
-						validPrefix = true;
-					}
-					char nextChar = buf.charAt(ssp);
-					if (validPrefix && nextChar == '/') {
-						++ssp;
-						scp = ssp;
-					} else if (validPrefix && nextChar == '\\') {
-						++ssp;
-						if (ssp < len - 1 && buf.charAt(ssp) == '\\') {
-							++ssp;
-						}
-						scp = ssp;
-					} else {
-						// no path delimiter, must be '.' inside the path
-						scp = ssp - 1;
-					}
-				}
-			} else if (sdot == ddot) {
-				ssp = sdot + 2;
-			}
-		}
-		newBuf.append(buf.substring(scp, len));
-
-		IPath orgPath = new Path(newBuf.toString());
-		return orgPath.toString();
-	}
-
-	/**
-	 * Called by the console line parsers to find a file with a given name.
-	 * @param fileName
-	 * @return IFile or null
-	 */
-	public IFile findFile(String fileName) {
-		IFile file = findFilePath(fileName);
-		if (file == null) {
-			// Try the project's map.
-			file = findFileName(fileName);
-			if (file != null) {
-				// If there is a conflict then try all files in the project.
-				if (isConflictingName(fileName)) {
-					file = null;
-
-					// Create a problem marker
-					final String error = MakeMessages.getString("ConsoleParser.Ambiguous_Filepath_Error_Message"); //$NON-NLS-1$
-					TraceUtil.outputError(error, fileName);
-					generateMarker(getProject(), -1, error + fileName, IMarkerGenerator.SEVERITY_WARNING, null);
-				}
-			}
-		}
-		return file;
-	}
-
-	/**
-	 * @param filePath
-	 * @return
-	 */
-	protected IFile findFilePath(String filePath) {
-		IPath path = null;
-		IPath fp = new Path(filePath);
-		if (fp.isAbsolute()) {
-			if (getBaseDirectory().isPrefixOf(fp)) {
-				int segments = getBaseDirectory().matchingFirstSegments(fp);
-				path = fp.removeFirstSegments(segments);
-			} else {
-				path = fp;
-			}
-		} else {
-			path = getWorkingDirectory().append(filePath);
-		}
-
-		IFile file = null;
-		// The workspace may throw an IllegalArgumentException
-		// Catch it and the parser should fallback to scan the entire project.
-		try {
-			file = findFileInWorkspace(path);
-		} catch (Exception e) {
-		}
-
-		// We have to do another try, on Windows for cases like "TEST.C" vs "test.c"
-		// We use the java.io.File canonical path.
-		if (file == null || !file.exists()) {
-			File f = path.toFile();
-			try {
-				String canon = f.getCanonicalPath();
-				path = new Path(canon);
-				file = findFileInWorkspace(path);
-			} catch (IOException e1) {
-			}
-		}
-		return (file != null && file.exists()) ? file : null;
-	}
-
-	/**
-	 * @param fileName
-	 * @return
-	 */
-	protected IFile findFileName(String fileName) {
-		IPath path = new Path(fileName);
-		return fFilesInProject.get(path.lastSegment());
-	}
-
-	protected IFile findFileInWorkspace(IPath path) {
-		IFile file = null;
-		if (path.isAbsolute()) {
-			IWorkspaceRoot root = getProject().getWorkspace().getRoot();
-
-			// construct a URI, based on the project's locationURI, that points
-			// to the given path
-			URI projectURI = project.getLocationURI();
-
-			URI newURI = EFSExtensionManager.getDefault().createNewURIFromPath(projectURI, path.toString());
-
-			IFile[] files = root.findFilesForLocationURI(newURI);
-
-			for (int i = 0; i < files.length; i++) {
-				if (files[i].getProject().equals(getProject())) {
-					file = files[i];
-					break;
-				}
-			}
-
-		} else {
-			file = getProject().getFile(path);
-		}
-		return file;
-	}
-
-	protected void collectFiles(IContainer parent, List result) {
-		try {
-			IResource[] resources = parent.members();
-			for (int i = 0; i < resources.length; i++) {
-				IResource resource = resources[i];
-				if (resource instanceof IFile) {
-					result.add(resource);
-				} else if (resource instanceof IContainer) {
-					collectFiles((IContainer) resource, result);
-				}
-			}
-		} catch (CoreException e) {
-			MakeCorePlugin.log(e.getStatus());
-		}
-	}
-
-	protected boolean isConflictingName(String fileName) {
-		IPath path = new Path(fileName);
-		return fNameConflicts.contains(path.lastSegment());
-	}
-
-	public List translateRelativePaths(IFile file, String fileName, List includes) {
-		List translatedIncludes = new ArrayList(includes.size());
-		for (Iterator i = includes.iterator(); i.hasNext();) {
-			String include = (String) i.next();
-			IPath includePath = new Path(include);
-			if (!includePath.isAbsolute() && !includePath.isUNC()) { // do not translate UNC paths
-				// First try the current working directory
-				IPath cwd = getWorkingDirectory();
-				if (!cwd.isAbsolute()) {
-					cwd = getBaseDirectory().append(cwd);
-				}
-
-				IPath filePath = new Path(fileName);
-				if (!filePath.isAbsolute()) {
-					// check if the cwd is the right one
-					// appending fileName to cwd should yield file path
-					filePath = cwd.append(fileName);
-				}
-				if (!filePath.toString().equalsIgnoreCase(file.getLocation().toString())) {
-					// must be the cwd is wrong
-					// check if file name starts with ".."
-					if (fileName.startsWith("..")) { //$NON-NLS-1$
-						// probably multiple choices for cwd, hopeless
-						final String error = MakeMessages.getString("ConsoleParser.Working_Directory_Error_Message"); //$NON-NLS-1$
-						TraceUtil.outputError(error, fileName);
-						generateMarker(file, -1, error, IMarkerGenerator.SEVERITY_WARNING, fileName);
-						break;
-					} else {
-						// remove common segments at the end
-						IPath tPath = new Path(fileName);
-						if (fileName.startsWith(".")) { //$NON-NLS-1$
-							tPath = tPath.removeFirstSegments(1);
-						}
-						// get the file path from the file
-						filePath = file.getLocation();
-						IPath lastFileSegment = filePath
-								.removeFirstSegments(filePath.segmentCount() - tPath.segmentCount());
-						if (lastFileSegment.matchingFirstSegments(tPath) == tPath.segmentCount()) {
-							cwd = filePath.removeLastSegments(tPath.segmentCount());
-						}
-					}
-				}
-
-				IPath candidatePath = cwd.append(includePath);
-				File dir = candidatePath.toFile();
-				include = candidatePath.toString();
-				if (!dir.exists()) {
-					final String error = MakeMessages.getString("ConsoleParser.Nonexistent_Include_Path_Error_Message"); //$NON-NLS-1$
-					TraceUtil.outputError(error, include);
-					//					generateMarker(file, -1, error+include, IMarkerGenerator.SEVERITY_WARNING, fileName);
-				}
-			}
-			// TODO VMIR for now add unresolved paths as well
-			translatedIncludes.add(include);
-		}
-		return translatedIncludes;
-	}
-}
diff --git a/xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/scannerconfig/XLCPerFileBuildOutputParser.java b/xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/scannerconfig/XLCPerFileBuildOutputParser.java
deleted file mode 100644
index c0f7b78..0000000
--- a/xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/scannerconfig/XLCPerFileBuildOutputParser.java
+++ /dev/null
@@ -1,211 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2013 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.make.xlc.core.scannerconfig;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.CopyOnWriteArrayList;
-
-import org.eclipse.cdt.make.core.scannerconfig.IScannerInfoCollector2;
-import org.eclipse.cdt.make.core.scannerconfig.ScannerInfoTypes;
-import org.eclipse.cdt.make.internal.core.scannerconfig.util.CCommandDSC;
-import org.eclipse.cdt.make.internal.core.scannerconfig.util.TraceUtil;
-import org.eclipse.cdt.make.xlc.core.activator.Activator;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-
-/**
- * @author crecoskie
- *
- */
-@SuppressWarnings("restriction")
-public class XLCPerFileBuildOutputParser extends AbstractXLCBuildOutputParser {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.make.xlc.core.scannerconfig.AbstractXLCBuildOutputParser#processCommand(java.lang.String[])
-	 */
-	@Override
-	protected boolean processCommand(String[] tokens) {
-		try {
-
-			// GCC C/C++ compiler invocation
-			int compilerInvocationIndex = findCompilerInvocation(tokens);
-			if (compilerInvocationIndex < 0) {
-				return false;
-			}
-
-			// find a file name
-			int extensionsIndex = -1;
-			boolean found = false;
-			String filePath = null;
-
-			// check for automake format first
-			// e.g. line will start with
-			// source='/some/path/source.cpp'
-			int automakeSrcIndex = findAutoMakeSourceIndex(tokens);
-			if (automakeSrcIndex != -1) {
-				filePath = getAutoMakeSourcePath(tokens[automakeSrcIndex]);
-				int k = filePath.lastIndexOf('.');
-				if (k != -1 && (filePath.length() - k < 5)) {
-					String fileExtension = filePath.substring(k);
-					extensionsIndex = getFileExtensionsList().indexOf(fileExtension);
-					if (extensionsIndex != -1) {
-						found = true;
-					}
-				}
-			}
-
-			if (!found) {
-				for (int i = compilerInvocationIndex + 1; i < tokens.length; i++) {
-					String token = tokens[i];
-					int k = token.lastIndexOf('.');
-					if (k != -1 && (token.length() - k < 5)) {
-						String fileExtension = token.substring(k);
-						extensionsIndex = getFileExtensionsList().indexOf(fileExtension);
-						if (extensionsIndex != -1) {
-							filePath = token;
-							found = true;
-							break;
-						}
-					}
-				}
-			}
-
-			if (!found) {
-				TraceUtil.outputTrace("Error identifying file name :1", tokens, TraceUtil.EOL); //$NON-NLS-1$
-				return false;
-			}
-			// sanity check
-			if (filePath.indexOf(getFileExtensions()[extensionsIndex]) == -1) {
-				TraceUtil.outputTrace("Error identifying file name :2", tokens, TraceUtil.EOL); //$NON-NLS-1$
-				return false;
-			}
-			if (getUtility() != null) {
-				IPath pFilePath = fUtility.getAbsolutePath(filePath);
-				String shortFileName = pFilePath.removeFileExtension().lastSegment();
-
-				// generalize occurrences of the file name
-				for (int i = compilerInvocationIndex + 1; i < tokens.length; i++) {
-					String token = tokens[i];
-					if (token.equals("-include")) { //$NON-NLS-1$
-						++i;
-					} else if (token.equals("-imacros")) { //$NON-NLS-1$
-						++i;
-					} else if (token.equals(filePath)) {
-						tokens[i] = "LONG_NAME"; //$NON-NLS-1$
-					} else if (token.startsWith(shortFileName)) {
-						tokens[i] = token.replaceFirst(shortFileName, "SHORT_NAME"); //$NON-NLS-1$
-					}
-				}
-
-				IFile file = null;
-				IPath baseDirectory = fUtility.getBaseDirectory();
-				if (baseDirectory.isPrefixOf(pFilePath)) {
-					IPath relPath = pFilePath.removeFirstSegments(baseDirectory.segmentCount());
-					// Note: We add the scanner-config even if the resource doesn't
-					// actually
-					// exist below this project (which may happen when reading
-					// existing
-					// build logs, because resources can be created as part of the
-					// build
-					// and may not exist at the time of analyzing the config but
-					// re-built
-					// later on.
-					// if (getProject().exists(relPath)) {
-					file = getProject().getFile(relPath);
-				} else {
-					file = getUtility().findFileInWorkspace(pFilePath);
-				}
-				if (true /*file != null*/) {
-					CCommandDSC cmd = getUtility().getNewCCommandDSC(tokens, compilerInvocationIndex,
-							extensionsIndex > 0);
-					List<CCommandDSC> cmdList = new CopyOnWriteArrayList<>();
-					cmdList.add(cmd);
-					Map<ScannerInfoTypes, List<CCommandDSC>> sc = new HashMap<>(1);
-					sc.put(ScannerInfoTypes.COMPILER_COMMAND, cmdList);
-					getCollector().contributeToScannerConfig(file, sc);
-					if (fCollector != null && fCollector instanceof IScannerInfoCollector2) {
-						IScannerInfoCollector2 collector = (IScannerInfoCollector2) fCollector;
-						try {
-							collector.updateScannerConfiguration(null);
-						} catch (CoreException e) {
-							// TODO Auto-generated catch block
-							Activator.log(e);
-						}
-					}
-				} else {
-					/*
-					//TraceUtil.outputError("Build command for file outside project: " + pFilePath.toString(), tokens); //$NON-NLS-1$
-					// put the info on the project
-					//CCommandDSC cmd = getUtility().getNewCCommandDSC(tokens, compilerInvocationIndex, extensionsIndex > 0);
-					//List<CCommandDSC> cmdList = new ArrayList<CCommandDSC>();
-					//				cmdList.add(cmd);
-					Map<ScannerInfoTypes, List<?>> sc = new HashMap<ScannerInfoTypes, List<?>>();
-					//				sc.put(ScannerInfoTypes.COMPILER_COMMAND, cmdList);
-
-
-					// put in empty info for the other types
-					sc.put(ScannerInfoTypes.INCLUDE_PATHS, new LinkedList<String>());
-					sc.put(ScannerInfoTypes.SYMBOL_DEFINITIONS, new LinkedList<String>());
-
-					getCollector().contributeToScannerConfig(getProject(), sc);
-					if (fCollector != null && fCollector instanceof IScannerInfoCollector2) {
-						IScannerInfoCollector2 collector = (IScannerInfoCollector2) fCollector;
-						try {
-							collector.updateScannerConfiguration(null);
-						} catch (CoreException e) {
-							// TODO Auto-generated catch block
-							Activator.log(e);
-						}
-					}
-
-					*/
-				}
-			}
-			return true;
-
-		} catch (Throwable e) {
-			e.printStackTrace();
-			return false;
-		}
-	}
-
-	protected String getAutoMakeSourcePath(String string) {
-		// path may be enclosed in single quotes
-		int firstQuoteIndex = string.indexOf('\'');
-		int lastQuoteIndex = string.lastIndexOf('\'');
-		if (firstQuoteIndex != -1 && lastQuoteIndex != -1)
-			return string.substring(firstQuoteIndex, lastQuoteIndex);
-		else {
-			// just take everything after the equals sign
-			int equalsIndex = string.indexOf('=');
-			if (equalsIndex != -1 && equalsIndex < string.length())
-				return string.substring(equalsIndex + 1);
-
-		}
-		return null;
-	}
-
-	protected int findAutoMakeSourceIndex(String[] tokens) {
-		for (int i = 0; i < tokens.length; i++) {
-			final String token = tokens[i].toLowerCase();
-			if (token.indexOf("source=") != -1) //$NON-NLS-1$
-				return i;
-		}
-		return -1;
-	}
-
-}
diff --git a/xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/scannerconfig/XLCPerProjectBuildOutputParser.java b/xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/scannerconfig/XLCPerProjectBuildOutputParser.java
deleted file mode 100644
index c2a19dc..0000000
--- a/xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/scannerconfig/XLCPerProjectBuildOutputParser.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2016 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.make.xlc.core.scannerconfig;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.CopyOnWriteArrayList;
-
-import org.eclipse.cdt.core.IMarkerGenerator;
-import org.eclipse.cdt.make.core.scannerconfig.IScannerInfoCollector2;
-import org.eclipse.cdt.make.core.scannerconfig.ScannerInfoTypes;
-import org.eclipse.cdt.make.internal.core.MakeMessages;
-import org.eclipse.cdt.make.internal.core.scannerconfig.util.TraceUtil;
-import org.eclipse.cdt.make.xlc.core.activator.Activator;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * @author crecoskie
- *
- */
-public class XLCPerProjectBuildOutputParser extends AbstractXLCBuildOutputParser {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.make.xlc.core.scannerconfig.AbstractXLCBuildOutputParser#processCommand(java.lang.String[])
-	 */
-	@Override
-	protected boolean processCommand(String[] tokens) {
-		int compilerInvocationIdx = findCompilerInvocation(tokens);
-		if (compilerInvocationIdx < 0) {
-			return false;
-		}
-
-		if (compilerInvocationIdx + 1 >= tokens.length) {
-			return false;
-		}
-
-		// Recognized gcc or g++ compiler invocation
-		List<String> includes = new CopyOnWriteArrayList<>();
-		List<String> symbols = new CopyOnWriteArrayList<>();
-		List<String> targetSpecificOptions = new CopyOnWriteArrayList<>();
-
-		String fileName = null;
-		for (int j = compilerInvocationIdx + 1; j < tokens.length; j++) {
-			String token = tokens[j];
-			if (token.equals(DASHIDASH)) {
-			} else if (token.startsWith(DASHI)) {
-				String candidate = null;
-				if (token.length() > 2) {
-					candidate = token.substring(2).trim();
-				} else if (j + 1 < tokens.length) {
-					candidate = tokens[j + 1];
-					if (candidate.startsWith("-")) { //$NON-NLS-1$
-						candidate = null;
-					} else {
-						j++;
-					}
-				}
-				if (candidate != null && candidate.length() > 0) {
-					if (getUtility() != null) {
-						candidate = getUtility().normalizePath(candidate);
-					}
-					if (!includes.contains(candidate)) {
-						includes.add(candidate);
-					}
-				}
-			} else if (token.startsWith(DASHD)) {
-				String candidate = null;
-				if (token.length() > 2) {
-					candidate = token.substring(2).trim();
-				} else if (j + 1 < tokens.length) {
-					candidate = tokens[j + 1];
-					if (candidate.startsWith("-")) { //$NON-NLS-1$
-						candidate = null;
-					} else {
-						j++;
-					}
-				}
-				if (candidate != null && candidate.length() > 0) {
-					if (candidate.indexOf('=') == -1) {
-						candidate += '=' + getUtility().getDefaultMacroDefinitionValue();
-					}
-					if (!symbols.contains(candidate)) {
-						symbols.add(candidate);
-					}
-				}
-			}
-
-			else if (fileName == null) {
-				int extIndex = token.lastIndexOf('.');
-				String extension = null;
-
-				if (extIndex != -1)
-					extension = token.substring(extIndex);
-
-				List<String> extensions = getFileExtensionsList();
-				if (extension != null && extensions.contains(extension))
-					fileName = token;
-			}
-		}
-
-		if (fileName == null) {
-			return false; // return when no file was given (analogous to GCCPerFileBOPConsoleParser)
-		}
-
-		IProject project = getProject();
-		IFile file = null;
-		List<String> translatedIncludes = includes;
-		if (includes.size() > 0) {
-			if (fileName != null) {
-				if (getUtility() != null) {
-					file = getUtility().findFile(fileName);
-					if (file != null) {
-						project = file.getProject();
-						translatedIncludes = getUtility().translateRelativePaths(file, fileName, includes);
-					}
-				}
-			} else {
-				StringBuilder line = new StringBuilder();
-				for (int j = 0; j < tokens.length; j++) {
-					line.append(tokens[j]);
-					line.append(' ');
-				}
-				final String error = MakeMessages.getString("ConsoleParser.Filename_Missing_Error_Message"); //$NON-NLS-1$
-				TraceUtil.outputError(error, line.toString());
-				if (getUtility() != null) {
-					getUtility().generateMarker(getProject(), -1, error + line.toString(),
-							IMarkerGenerator.SEVERITY_WARNING, null);
-				}
-			}
-			if (file == null && getUtility() != null) { // real world case
-				// remove include paths since there was no chance to translate them
-				translatedIncludes.clear();
-			}
-		}
-		// Contribute discovered includes and symbols to the ScannerInfoCollector
-		if (translatedIncludes.size() > 0 || symbols.size() > 0) {
-			Map<ScannerInfoTypes, List<String>> scannerInfo = new HashMap<>();
-			scannerInfo.put(ScannerInfoTypes.INCLUDE_PATHS, translatedIncludes);
-			scannerInfo.put(ScannerInfoTypes.SYMBOL_DEFINITIONS, symbols);
-			scannerInfo.put(ScannerInfoTypes.TARGET_SPECIFIC_OPTION, targetSpecificOptions);
-			getCollector().contributeToScannerConfig(project, scannerInfo);
-			if (fCollector != null && fCollector instanceof IScannerInfoCollector2) {
-				IScannerInfoCollector2 collector = (IScannerInfoCollector2) fCollector;
-				try {
-					collector.updateScannerConfiguration(null);
-				} catch (CoreException e) {
-					// TODO Auto-generated catch block
-					Activator.log(e);
-				}
-			}
-
-			TraceUtil.outputTrace("Discovered scanner info for file \'" + fileName + '\'', //$NON-NLS-1$
-					"Include paths", includes, translatedIncludes, "Defined symbols", symbols); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		return true;
-
-	}
-
-}
diff --git a/xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/scannerconfig/XlCSpecsConsoleParser.java b/xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/scannerconfig/XlCSpecsConsoleParser.java
deleted file mode 100644
index 097e620..0000000
--- a/xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/scannerconfig/XlCSpecsConsoleParser.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2012 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.make.xlc.core.scannerconfig;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.eclipse.cdt.core.CCProjectNature;
-import org.eclipse.cdt.core.IMarkerGenerator;
-import org.eclipse.cdt.make.core.scannerconfig.IScannerInfoCollector;
-import org.eclipse.cdt.make.core.scannerconfig.IScannerInfoCollector2;
-import org.eclipse.cdt.make.core.scannerconfig.IScannerInfoConsoleParser;
-import org.eclipse.cdt.make.core.scannerconfig.ScannerInfoTypes;
-import org.eclipse.cdt.make.internal.core.scannerconfig.util.TraceUtil;
-import org.eclipse.cdt.make.xlc.core.activator.Activator;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-
-/**
- * Parses output of ppuxlc -E -v specs.c or ppuxlc -E -v specs.cpp command
- *
- * @author laggarcia
- * @since 1.0.0
- */
-public class XlCSpecsConsoleParser implements IScannerInfoConsoleParser {
-
-	// pattern for the output line of interest
-	final Pattern linePattern = Pattern.compile("exec:\\s(?!export)(?:.*)\\((.*)\\)"); //$NON-NLS-1$
-
-	// pattern for the symbols arguments
-	final Pattern symbolPattern = Pattern.compile("-D(.*)"); //$NON-NLS-1$
-
-	// pattern for the includes arguments
-	final Pattern includePattern = Pattern.compile("-(?:qgcc_c_stdinc|qc_stdinc|qgcc_cpp_stdinc|qcpp_stdinc)=(.*)"); //$NON-NLS-1$
-
-	final Pattern C_includePattern = Pattern.compile("-(?:qgcc_c_stdinc|qc_stdinc)=(.*)"); //$NON-NLS-1$
-	final Pattern CXX_includePattern = Pattern.compile("-(?:qgcc_cpp_stdinc|qcpp_stdinc)=(.*)"); //$NON-NLS-1$
-
-	// xlC compiler constants
-	protected final static String[] compilerConstants = { "_Builtin", //$NON-NLS-1$
-			"__IBMCPP__", //$NON-NLS-1$
-			"__xlC__", //$NON-NLS-1$
-			"__IBMC__", //$NON-NLS-1$
-			"__xlc__" //$NON-NLS-1$
-	};
-
-	private IProject fProject = null;
-
-	protected IScannerInfoCollector fCollector = null;
-
-	protected List<String> symbols = new ArrayList<>();
-
-	protected List<String> includes = new ArrayList<>();
-	protected List<String> c_includes = new ArrayList<>();
-	protected List<String> cpp_includes = new ArrayList<>();
-
-	boolean c_lang; // if language is C only search for the C include paths from the XL Compiler, otherwise get the C++ ones.
-
-	public boolean isC_lang() {
-		return c_lang;
-	}
-
-	public void setC_lang(boolean c_lang) {
-		this.c_lang = c_lang;
-	}
-
-	@Override
-	public void startup(IProject project, IPath workingDirectory, IScannerInfoCollector collector,
-			IMarkerGenerator markerGenerator) {
-		this.fProject = project;
-		this.fCollector = collector;
-
-		try {
-			if (project.hasNature(CCProjectNature.CC_NATURE_ID)) {
-				// use C++ pattern
-				c_lang = false;
-			} else {
-				// use C pattern
-				c_lang = true;
-			}
-		} catch (CoreException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-	}
-
-	/*
-	 * Process an output line from the compiler command line used to retrieve
-	 * standard information about the compiler being used. <p> During the
-	 * processing, builds two List objects, one with the standard symbols
-	 * defined in the compiler and other with the standard include directories.
-	 *
-	 * @param line the output line from the compiler command line used @return
-	 * boolean
-	 *
-	 * @see org.eclipse.cdt.make.intrenal.core.scannerconfig.gnu.GCCSpecsConsoleParser#processLine(java.lang.String)
-	 * @since 1.0
-	 */
-	@Override
-	public boolean processLine(String line) {
-		boolean rc = false;
-		TraceUtil.outputTrace("XLCSpecsConsoleParser parsing line: [", line, "]"); //$NON-NLS-1$ //$NON-NLS-2$
-
-		line = line.trim();
-		if (line.length() == 0) {
-			return false;
-		}
-
-		// testing the output line against the pattern of interest
-		Matcher lineMatcher = linePattern.matcher(line);
-		if (lineMatcher.matches()) {
-			// getting the arguments from the line of interest from the
-			// output
-			// generated in command line
-			String[] args = lineMatcher.group(1).split(","); //$NON-NLS-1$
-			for (int i = 0; i < args.length; i++) {
-				// getting the arguments of interest
-				Matcher symbolMatcher = symbolPattern.matcher(args[i]);
-				if (symbolMatcher.matches() && !symbols.contains(symbolMatcher.group(1))) {
-					// if it is a symbol and it was not yet added
-					symbols.add(symbolMatcher.group(1));
-				} else {
-					// if it is not a symbol, check to see if it is an
-					// include
-					Matcher includeMatcher = c_lang ? C_includePattern.matcher(args[i])
-							: CXX_includePattern.matcher(args[i]);
-					if (includeMatcher.matches()) {
-						// if it is a set of include paths, split it
-						String[] includePaths = includeMatcher.group(1).split(":"); //$NON-NLS-1$
-						for (int j = 0; j < includePaths.length; j++) {
-							if (!includes.contains(includePaths[j])) {
-								// if the include path was not yet added
-								includes.add(includePaths[j]);
-							}
-						}
-					}
-				}
-			}
-		}
-		return rc;
-	}
-
-	@Override
-	public void shutdown() {
-		Map<ScannerInfoTypes, List<String>> scannerInfo = new HashMap<>();
-
-		// insert compiler constants, work around buggy xlC option for dumping symbols (it misses a few)
-		for (String constant : compilerConstants) {
-			if (!symbols.contains(constant))
-				symbols.add(constant);
-		}
-
-		// add the scanner info
-		scannerInfo.put(ScannerInfoTypes.INCLUDE_PATHS, includes);
-		scannerInfo.put(ScannerInfoTypes.SYMBOL_DEFINITIONS, symbols);
-
-		fCollector.contributeToScannerConfig(fProject, scannerInfo);
-		if (fCollector != null && fCollector instanceof IScannerInfoCollector2) {
-			IScannerInfoCollector2 collector = (IScannerInfoCollector2) fCollector;
-			try {
-				collector.updateScannerConfiguration(null);
-			} catch (CoreException e) {
-				// TODO Auto-generated catch block
-				Activator.log(e);
-			}
-		}
-		TraceUtil.outputTrace("Scanner info from \'specs\' file", //$NON-NLS-1$
-				"Include paths", includes, new ArrayList<String>(), "Defined symbols", symbols); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-}
diff --git a/xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/scannerconfig/XlCSpecsRunSIProvider.java b/xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/scannerconfig/XlCSpecsRunSIProvider.java
deleted file mode 100644
index 8f67f09..0000000
--- a/xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/scannerconfig/XlCSpecsRunSIProvider.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2012 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.make.xlc.core.scannerconfig;
-
-import org.eclipse.cdt.make.internal.core.scannerconfig2.GCCSpecsRunSIProvider;
-import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
-import org.eclipse.cdt.managedbuilder.macros.BuildMacroException;
-import org.eclipse.cdt.managedbuilder.macros.IBuildMacroProvider;
-import org.eclipse.core.runtime.Path;
-
-/**
- * @author laggarcia
- *
- */
-public class XlCSpecsRunSIProvider extends GCCSpecsRunSIProvider {
-
-	protected static final String EMPTY_STRING = ""; //$NON-NLS-1$
-
-	@Override
-	protected boolean initialize() {
-
-		boolean rc = super.initialize();
-
-		if (rc) {
-			try {
-				this.fCompileCommand = new Path(ManagedBuildManager.getBuildMacroProvider().resolveValue(
-						this.fCompileCommand.toString(), EMPTY_STRING, null, IBuildMacroProvider.CONTEXT_CONFIGURATION,
-						ManagedBuildManager.getBuildInfo(this.resource.getProject()).getDefaultConfiguration()));
-			} catch (BuildMacroException e) {
-				e.printStackTrace();
-				return false;
-			}
-		}
-
-		return rc;
-
-	}
-
-}
diff --git a/xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/scannerconfig/util/XLCCommandDSC.java b/xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/scannerconfig/util/XLCCommandDSC.java
deleted file mode 100644
index cd4b6ad..0000000
--- a/xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/scannerconfig/util/XLCCommandDSC.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010, 2012 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.cdt.make.xlc.core.scannerconfig.util;
-
-import org.eclipse.cdt.make.internal.core.scannerconfig.util.CCommandDSC;
-import org.eclipse.cdt.make.internal.core.scannerconfig.util.KVStringPair;
-import org.eclipse.cdt.make.internal.core.scannerconfig.util.SCDOptionsEnum;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.Path;
-
-/**
- * Class that represents a XL C/C++ compiler command and related scanner configuration
- */
-public class XLCCommandDSC extends CCommandDSC {
-
-	public XLCCommandDSC(boolean cppFileType) {
-		super(cppFileType);
-	}
-
-	public XLCCommandDSC(boolean cppFileType, IProject project) {
-		super(cppFileType, project);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.make.internal.core.scannerconfig.util.CCommandDSC#addSCOption(org.eclipse.cdt.make.internal.core.scannerconfig.util.KVStringPair)
-	 */
-	@Override
-	public void addSCOption(KVStringPair option) {
-		if (project != null && (option.getKey().equals(SCDOptionsEnum.INCLUDE_FILE.toString())
-				|| option.getKey().equals(SCDOptionsEnum.INCLUDE.toString())
-				|| option.getKey().equals(SCDOptionsEnum.ISYSTEM.toString())
-				|| option.getKey().equals(SCDOptionsEnum.IMACROS_FILE.toString())
-				|| option.getKey().equals(SCDOptionsEnum.IQUOTE.toString()))) {
-			String value = option.getValue();
-			value = makeRelative(project, new Path(value)).toOSString();
-			option = new KVStringPair(option.getKey(), value);
-		}
-		compilerCommand.add(option);
-	}
-
-}
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.core/.classpath b/xlc/org.eclipse.cdt.managedbuilder.xlc.core/.classpath
deleted file mode 100644
index eca7bdb..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.core/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.core/.project b/xlc/org.eclipse.cdt.managedbuilder.xlc.core/.project
deleted file mode 100644
index ac6520e..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.core/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.cdt.managedbuilder.xlc.core</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.core/.settings/org.eclipse.jdt.core.prefs b/xlc/org.eclipse.cdt.managedbuilder.xlc.core/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 2b6ecff..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.core/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,464 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch, *.xtend
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.mainOnlyProjectHasTestOnlyDependency=error
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.APILeak=warning
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
-org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
-org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
-org.eclipse.jdt.core.formatter.align_with_spaces=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
-org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped=true
-org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=true
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
-org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.core/.settings/org.eclipse.jdt.launching.prefs b/xlc/org.eclipse.cdt.managedbuilder.xlc.core/.settings/org.eclipse.jdt.launching.prefs
deleted file mode 100644
index f8a131b..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.core/.settings/org.eclipse.jdt.launching.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.launching.PREF_COMPILER_COMPLIANCE_DOES_NOT_MATCH_JRE=warning
-org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=warning
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.core/.settings/org.eclipse.jdt.ui.prefs b/xlc/org.eclipse.cdt.managedbuilder.xlc.core/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index e445763..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.core/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,133 +0,0 @@
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_missing_override_annotations_interface_methods=true
-cleanup.add_serial_version_id=false
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_functional_interfaces=false
-cleanup.convert_to_enhanced_for_loop=false
-cleanup.correct_indentation=false
-cleanup.format_source_code=true
-cleanup.format_source_code_changes_only=false
-cleanup.insert_inferred_type_arguments=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=true
-cleanup.qualify_static_field_accesses_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=false
-cleanup.qualify_static_method_accesses_with_declaring_class=false
-cleanup.remove_private_constructors=true
-cleanup.remove_redundant_modifiers=false
-cleanup.remove_redundant_semicolons=true
-cleanup.remove_redundant_type_arguments=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=false
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_anonymous_class_creation=false
-cleanup.use_blocks=false
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_lambda=true
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup_profile=_CDT
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_CDT
-formatter_settings_version=14
-internal.default.compliance=user
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.ondemandthreshold=1000
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.staticondemandthreshold=1000
-org.eclipse.jdt.ui.text.custom_code_templates=
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_functional_interfaces=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.insert_inferred_type_arguments=false
-sp_cleanup.make_local_variable_final=true
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_redundant_modifiers=false
-sp_cleanup.remove_redundant_semicolons=true
-sp_cleanup.remove_redundant_type_arguments=true
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=true
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_anonymous_class_creation=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_lambda=true
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.core/.settings/org.eclipse.pde.api.tools.prefs b/xlc/org.eclipse.cdt.managedbuilder.xlc.core/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index ec9fbf3..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.core/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,184 +0,0 @@
-ANNOTATION_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITH_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-API_USE_SCAN_FIELD_SEVERITY=Error
-API_USE_SCAN_METHOD_SEVERITY=Error
-API_USE_SCAN_TYPE_SEVERITY=Error
-CLASS_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERCLASS_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_CHANGED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENTS=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETERS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_ANNOTATION=Ignore
-INVALID_JAVADOC_TAG=Error
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Warning
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-MISSING_EE_DESCRIPTIONS=Warning
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-automatically_removed_unused_problem_filters=false
-changed_execution_env=Error
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-incompatible_api_component_version_report_major_without_breaking_change=Warning
-incompatible_api_component_version_report_minor_without_api_change=Warning
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.core/.settings/org.eclipse.pde.prefs b/xlc/org.eclipse.cdt.managedbuilder.xlc.core/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index d2dc703..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.core/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,35 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.build.bin.includes=1
-compilers.p.build.encodings=2
-compilers.p.build.java.compiler=2
-compilers.p.build.java.compliance=1
-compilers.p.build.missing.output=2
-compilers.p.build.output.library=1
-compilers.p.build.source.library=1
-compilers.p.build.src.includes=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=1
-compilers.p.missing-packages=2
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=2
-compilers.p.missing-version-require-bundle=2
-compilers.p.no-required-att=0
-compilers.p.no.automatic.module=1
-compilers.p.not-externalized-att=1
-compilers.p.service.component.without.lazyactivation=1
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.core/META-INF/MANIFEST.MF b/xlc/org.eclipse.cdt.managedbuilder.xlc.core/META-INF/MANIFEST.MF
deleted file mode 100644
index eb68e0c..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.core/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,19 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.cdt.managedbuilder.xlc.core;singleton:=true
-Bundle-Version: 5.0.100.qualifier
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.cdt.managedbuilder.core,
- org.eclipse.core.resources,
- org.eclipse.core.runtime,
- org.eclipse.cdt.core,
- org.eclipse.cdt.make.xlc.core,
- org.eclipse.cdt.make.core,
- org.eclipse.ui
-Bundle-ActivationPolicy: lazy
-Bundle-Activator: org.eclipse.cdt.managedbuilder.xlc.core.XLCCorePlugin
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Export-Package: org.eclipse.cdt.managedbuilder.xlc.core
-Automatic-Module-Name: org.eclipse.cdt.managedbuilder.xlc.core
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.core/about.html b/xlc/org.eclipse.cdt.managedbuilder.xlc.core/about.html
deleted file mode 100644
index 164f781..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.core/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
-	<h2>About This Content</h2>
-
-	<p>November 30, 2017</p>
-	<h3>License</h3>
-
-	<p>
-		The Eclipse Foundation makes available all content in this plug-in
-		(&quot;Content&quot;). Unless otherwise indicated below, the Content
-		is provided to you under the terms and conditions of the Eclipse
-		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
-		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>
-		If you did not receive this Content directly from the Eclipse
-		Foundation, the Content is being redistributed by another party
-		(&quot;Redistributor&quot;) and different terms and conditions may
-		apply to your use of any object code in the Content. Check the
-		Redistributor's license that was provided with the Content. If no such
-		license exists, contact the Redistributor. Unless otherwise indicated
-		below, the terms and conditions of the EPL still apply to any source
-		code in the Content and such source code may be obtained at <a
-			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
-	</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.core/about.ini b/xlc/org.eclipse.cdt.managedbuilder.xlc.core/about.ini
deleted file mode 100644
index e07a7bb..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.core/about.ini
+++ /dev/null
@@ -1,24 +0,0 @@
-# about.ini
-# contains information about a feature
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in about.properties
-# This file does not need to be translated.
-
-# Property "aboutText" contains blurb for "About" dialog (translated)
-aboutText=%blurb
-
-# Property "windowImage" contains path to window icon (16x16)
-# needed for primary features only
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=cdt_logo_icon32.png
-
-# Property "aboutImage" contains path to product image (500x330 or 115x164)
-# needed for primary features only
-
-# Property "appName" contains name of the application (translated)
-# needed for primary features only
-
-# Property "welcomePerspective" contains the id of the perspective in which the
-# welcome page is to be opened.
-# optional
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.core/about.mappings b/xlc/org.eclipse.cdt.managedbuilder.xlc.core/about.mappings
deleted file mode 100644
index 936a803..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.core/about.mappings
+++ /dev/null
@@ -1,9 +0,0 @@
-# about.mappings
-# contains fill-ins for about.properties
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file does not need to be translated.
-
-# The following should contain the build version.
-# e.g. "0=20200106-1728"
-# This value will be added automatically via the build scripts
-0=${buildId}
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.core/about.properties b/xlc/org.eclipse.cdt.managedbuilder.xlc.core/about.properties
deleted file mode 100644
index d057eae..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.core/about.properties
+++ /dev/null
@@ -1,32 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2020 Contributors to the Eclipse Foundation
-#
-# See the NOTICE file(s) distributed with this work for additional
-# information regarding copyright ownership.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-###############################################################################
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-# NOTE TO TRANSLATOR: Please do not translate the featureVersion variable.
-
-
-blurb=C/C++ IBM XLC Compiler Support\n\
-\n\
-Version: {featureVersion}\n\
-Build id: {0}\n\
-\n\
-Copyright (c) 2006, 2020 Contributors to the Eclipse Foundation
-\n\
-See the NOTICE file(s) distributed with this work for additional\n\
-information regarding copyright ownership.\n\
-\n\
-Visit http://www.eclipse.org/cdt
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.core/build.properties b/xlc/org.eclipse.cdt.managedbuilder.xlc.core/build.properties
deleted file mode 100644
index cb8d17b..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.core/build.properties
+++ /dev/null
@@ -1,26 +0,0 @@
-###############################################################################
-#  Copyright (c) 2007, 2009 IBM Corporation and others.
-#
-#  This program and the accompanying materials
-#  are made available under the terms of the Eclipse Public License 2.0
-#  which accompanies this distribution, and is available at
-#  https://www.eclipse.org/legal/epl-2.0/
-#
-#  SPDX-License-Identifier: EPL-2.0
-#
-#  Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.xml,\
-               plugin.properties,\
-               about.html,\
-               about.ini,\
-               about.mappings,\
-               about.properties,\
-               cdt_logo_icon32.png
-src.includes = about.html
-
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.core/cdt_logo_icon32.png b/xlc/org.eclipse.cdt.managedbuilder.xlc.core/cdt_logo_icon32.png
deleted file mode 100644
index 470ca81..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.core/cdt_logo_icon32.png
+++ /dev/null
Binary files differ
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.core/plugin.properties b/xlc/org.eclipse.cdt.managedbuilder.xlc.core/plugin.properties
deleted file mode 100644
index fd953f3..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.core/plugin.properties
+++ /dev/null
@@ -1,25 +0,0 @@
-###############################################################################
-#  Copyright (c) 2006, 2009 IBM Corporation and others.
-#
-#  This program and the accompanying materials
-#  are made available under the terms of the Eclipse Public License 2.0
-#  which accompanies this distribution, and is available at
-#  https://www.eclipse.org/legal/epl-2.0/
-#
-#  SPDX-License-Identifier: EPL-2.0
-#
-#  Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-# Plugin Name
-pluginName=XL C/C++ Managed Build Core
-providerName=Eclipse CDT
-
-objectFileName=Object File
-
-profileName=XL C managed make per project scanner discovery profile
-profileNameCPP=XL C++ managed make per project scanner discovery profile
-
-XlcBuiltinSpecsDetectorName=CDT XLC Built-in Compiler Settings
-XlcBuildCommandParserName=CDT XLC Build Output Parser
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.core/plugin.xml b/xlc/org.eclipse.cdt.managedbuilder.xlc.core/plugin.xml
deleted file mode 100644
index 272caf0..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.core/plugin.xml
+++ /dev/null
@@ -1,98 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
-
-   <!-- -->
-   <!-- Xl C ScannerConfigurationDiscoveryProfile definitions -->
-   <!-- -->
-
-   <!-- We have to extend the core of CDT's make so that we can define a new ScannerConfigurationDiscoveryProfile -->
-   <!-- A ScannerConfigurationDiscoveryProfile is used to discover information about the standard options used by the compiler, e.g. the standard include directories -->
-
-   <!-- Xl C Managed Make Per Project Profile -->
-   <!-- The Profile gathers together information about the standard include directories and standard definitions used by the compiler -->
-   <extension
-         id="XLCManagedMakePerProjectProfile"
-         name="%profileName"
-         point="org.eclipse.cdt.make.core.ScannerConfigurationDiscoveryProfile">
-
-      <!-- The ScannerInfoCollector manages the information generated by the Profile so that it can be easily accessed afterwards -->
-      <scannerInfoCollector
-            class="org.eclipse.cdt.make.xlc.core.scannerconfig.PerFileXLCScannerInfoCollector"
-            scope="project">
-      </scannerInfoCollector>
-
-      <!-- The ScannerInfoProvider search for the information needed by the profile and send it to the ScannerInfoCollector -->
-      <scannerInfoProvider providerId="specsFile">
-         <!-- Specifies the compiler command that returns the information about standard include directories and standard definitions -->
-         <!-- The compiler command used will be always a C compiler command -->
-         <!-- The output for C or C++ projects will be different as the ScannerInfoProvider substitute the ${specs_file} variable below with a dummy "c" file or "cpp" file -->
-         <run
-               arguments="-E -v &quot;${plugin_state_location}/${specs_file}&quot;"
-               command="${XL_compilerRoot}/xlc"
-               class="org.eclipse.cdt.make.xlc.core.scannerconfig.XlCSpecsRunSIProvider">
-         </run>
-         <!-- Specifies the parser for the output generated by the compiler with the above command line -->
-         <scannerInfoConsoleParser
-               class="org.eclipse.cdt.make.xlc.core.scannerconfig.XlCSpecsConsoleParser">
-         </scannerInfoConsoleParser>
-      </scannerInfoProvider>
-
-   </extension>
-   <!-- -->
-   <!-- Xl C ScannerConfigurationDiscoveryProfile definitions -->
-   <!-- -->
-
-   <!-- We have to extend the core of CDT's make so that we can define a new ScannerConfigurationDiscoveryProfile -->
-   <!-- A ScannerConfigurationDiscoveryProfile is used to discover information about the standard options used by the compiler, e.g. the standard include directories -->
-
-   <!-- Xl C Managed Make Per Project Profile -->
-   <!-- The Profile gathers together information about the standard include directories and standard definitions used by the compiler -->
-   <extension
-         id="XLCManagedMakePerProjectProfileCPP"
-         name="%profileNameCPP"
-         point="org.eclipse.cdt.make.core.ScannerConfigurationDiscoveryProfile">
-
-      <!-- The ScannerInfoCollector manages the information generated by the Profile so that it can be easily accessed afterwards -->
-      <scannerInfoCollector
-            class="org.eclipse.cdt.make.xlc.core.scannerconfig.PerFileXLCScannerInfoCollector"
-            scope="project">
-      </scannerInfoCollector>
-
-      <!-- The ScannerInfoProvider search for the information needed by the profile and send it to the ScannerInfoCollector -->
-      <scannerInfoProvider providerId="specsFile">
-         <!-- Specifies the compiler command that returns the information about standard include directories and standard definitions -->
-         <!-- The compiler command used will be always a C compiler command -->
-         <!-- The output for C or C++ projects will be different as the ScannerInfoProvider substitute the ${specs_file} variable below with a dummy "c" file or "cpp" file -->
-         <run
-               arguments="-E -v &quot;${plugin_state_location}/${specs_file}&quot;"
-               command="${XL_compilerRoot}/xlC"
-               class="org.eclipse.cdt.make.xlc.core.scannerconfig.XlCSpecsRunSIProvider">
-         </run>
-         <!-- Specifies the parser for the output generated by the compiler with the above command line -->
-         <scannerInfoConsoleParser
-               class="org.eclipse.cdt.make.xlc.core.scannerconfig.XlCSpecsConsoleParser">
-         </scannerInfoConsoleParser>
-      </scannerInfoProvider>
-   </extension>
-
-   <extension
-         point="org.eclipse.cdt.core.LanguageSettingsProvider">
-      <provider
-            class="org.eclipse.cdt.managedbuilder.xlc.core.XlcBuiltinSpecsDetector"
-            id="org.eclipse.cdt.managedbuilder.xlc.core.XlcBuiltinSpecsDetector"
-            name="%XlcBuiltinSpecsDetectorName"
-            parameter="${COMMAND} ${FLAGS} -E -V -P -w &quot;${INPUTS}&quot;">
-         <language-scope id="org.eclipse.cdt.core.gcc"/>
-         <language-scope id="org.eclipse.cdt.core.g++"/>
-      </provider>
-      <provider
-            class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuildCommandParser"
-            id="org.eclipse.cdt.managedbuilder.xlc.core.XlcBuildCommandParser"
-            name="%XlcBuildCommandParserName"
-            parameter="xl[cC]"
-            prefer-non-shared="true">
-      </provider>
-   </extension>
-
-</plugin>
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.core/src/org/eclipse/cdt/managedbuilder/xlc/core/XLCCorePlugin.java b/xlc/org.eclipse.cdt.managedbuilder.xlc.core/src/org/eclipse/cdt/managedbuilder/xlc/core/XLCCorePlugin.java
deleted file mode 100644
index a996236..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.core/src/org/eclipse/cdt/managedbuilder/xlc/core/XLCCorePlugin.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2012 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.managedbuilder.xlc.core;
-
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * @author crecoskie
- *
- */
-public class XLCCorePlugin extends AbstractUIPlugin {
-
-	/**
-	 *
-	 */
-	public XLCCorePlugin() {
-		// TODO Auto-generated constructor stub
-	}
-
-}
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.core/src/org/eclipse/cdt/managedbuilder/xlc/core/XlcBuiltinSpecsDetector.java b/xlc/org.eclipse.cdt.managedbuilder.xlc.core/src/org/eclipse/cdt/managedbuilder/xlc/core/XlcBuiltinSpecsDetector.java
deleted file mode 100644
index edc06ec..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.core/src/org/eclipse/cdt/managedbuilder/xlc/core/XlcBuiltinSpecsDetector.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2012 Andrew Gvozdev and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     Andrew Gvozdev - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.cdt.managedbuilder.xlc.core;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.eclipse.cdt.core.language.settings.providers.ILanguageSettingsEditableProvider;
-import org.eclipse.cdt.core.settings.model.ICSettingEntry;
-import org.eclipse.cdt.managedbuilder.language.settings.providers.ToolchainBuiltinSpecsDetector;
-
-/**
- * Language settings provider to detect built-in compiler settings for IBM XLC compiler.
- */
-public class XlcBuiltinSpecsDetector extends ToolchainBuiltinSpecsDetector
-		implements ILanguageSettingsEditableProvider {
-	// must match the toolchain definition in org.eclipse.cdt.managedbuilder.core.buildDefinitions extension point
-	private static final String XLC_TOOLCHAIN_ID = "cdt.managedbuild.toolchain.xlc.exe.debug"; //$NON-NLS-1$
-
-	private static final Pattern OPTIONS_PATTERN = Pattern
-			.compile("-[^\\s\"']*(\\s*((\".*?\")|('.*?')|([^-\\s][^\\s]+)))?"); //$NON-NLS-1$
-	private static final int OPTION_GROUP = 0;
-
-	/*	Sample output:
-
-		> xlC -E -V -P -w ~/tmp/spec.C
-		export XL_CONFIG=/etc/vac.cfg:xlC
-		/usr/vac/exe/xlCcpp /home/me/tmp/spec.C - -qc++=/usr/vacpp/include -D_AIX -D_AIX32 -D_AIX41 -D_AIX43 -D_AIX50 -D_AIX51 -D_AIX52 -D_IBMR2 -D_POWER -E -P -w -qlanglvl=ansi -qansialias
-		rm /tmp/xlcW0lt4Jia
-		rm /tmp/xlcW1lt4Jib
-		rm /tmp/xlcW2lt4Jic
-	 */
-	@SuppressWarnings("nls")
-	private static final AbstractOptionParser[] optionParsers = {
-			new IncludePathOptionParser("-I\\s*([\"'])(.*)\\1", "$2",
-					ICSettingEntry.BUILTIN | ICSettingEntry.READONLY | ICSettingEntry.LOCAL),
-			new IncludePathOptionParser("-I\\s*([^\\s\"']*)", "$1", ICSettingEntry.BUILTIN | ICSettingEntry.READONLY),
-			new IncludePathOptionParser("-qc\\+\\+=\\s*([^\\s\"']*)", "$1",
-					ICSettingEntry.BUILTIN | ICSettingEntry.READONLY),
-			new MacroOptionParser("-D\\s*([\"'])([^=]*)(=(.*))?\\1", "$2", "$4",
-					ICSettingEntry.BUILTIN | ICSettingEntry.READONLY),
-			new MacroOptionParser("-D\\s*([^\\s=\"']*)=(\\\\([\"']))(.*?)\\2", "$1", "$3$4$3",
-					ICSettingEntry.BUILTIN | ICSettingEntry.READONLY),
-			new MacroOptionParser("-D\\s*([^\\s=\"']*)=([\"'])(.*?)\\2", "$1", "$3",
-					ICSettingEntry.BUILTIN | ICSettingEntry.READONLY),
-			new MacroOptionParser("-D\\s*([^\\s=\"']*)(=([^\\s\"']*))?", "$1", "$3",
-					ICSettingEntry.BUILTIN | ICSettingEntry.READONLY), };
-
-	@Override
-	public String getToolchainId() {
-		return XLC_TOOLCHAIN_ID;
-	}
-
-	@Override
-	protected AbstractOptionParser[] getOptionParsers() {
-		return optionParsers;
-	}
-
-	@Override
-	protected List<String> parseOptions(String line) {
-		List<String> options = new ArrayList<>();
-		Matcher optionMatcher = OPTIONS_PATTERN.matcher(line);
-		while (optionMatcher.find()) {
-			String option = optionMatcher.group(OPTION_GROUP);
-			if (option != null) {
-				options.add(option);
-			}
-		}
-		return options;
-	}
-
-	@Override
-	public XlcBuiltinSpecsDetector cloneShallow() throws CloneNotSupportedException {
-		return (XlcBuiltinSpecsDetector) super.cloneShallow();
-	}
-
-	@Override
-	public XlcBuiltinSpecsDetector clone() throws CloneNotSupportedException {
-		return (XlcBuiltinSpecsDetector) super.clone();
-	}
-
-}
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/.classpath b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/.classpath
deleted file mode 100644
index eca7bdb..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/.project b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/.project
deleted file mode 100644
index dcc854c..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.cdt.managedbuilder.xlc.ui</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/.settings/org.eclipse.jdt.core.prefs b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 2b6ecff..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,464 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch, *.xtend
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.mainOnlyProjectHasTestOnlyDependency=error
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.APILeak=warning
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
-org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
-org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
-org.eclipse.jdt.core.formatter.align_with_spaces=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
-org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped=true
-org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=true
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
-org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/.settings/org.eclipse.jdt.launching.prefs b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/.settings/org.eclipse.jdt.launching.prefs
deleted file mode 100644
index f8a131b..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/.settings/org.eclipse.jdt.launching.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.launching.PREF_COMPILER_COMPLIANCE_DOES_NOT_MATCH_JRE=warning
-org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=warning
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/.settings/org.eclipse.jdt.ui.prefs b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index e445763..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,133 +0,0 @@
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_missing_override_annotations_interface_methods=true
-cleanup.add_serial_version_id=false
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_functional_interfaces=false
-cleanup.convert_to_enhanced_for_loop=false
-cleanup.correct_indentation=false
-cleanup.format_source_code=true
-cleanup.format_source_code_changes_only=false
-cleanup.insert_inferred_type_arguments=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=true
-cleanup.qualify_static_field_accesses_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=false
-cleanup.qualify_static_method_accesses_with_declaring_class=false
-cleanup.remove_private_constructors=true
-cleanup.remove_redundant_modifiers=false
-cleanup.remove_redundant_semicolons=true
-cleanup.remove_redundant_type_arguments=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=false
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_anonymous_class_creation=false
-cleanup.use_blocks=false
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_lambda=true
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup_profile=_CDT
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_CDT
-formatter_settings_version=14
-internal.default.compliance=user
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.ondemandthreshold=1000
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.staticondemandthreshold=1000
-org.eclipse.jdt.ui.text.custom_code_templates=
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_functional_interfaces=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.insert_inferred_type_arguments=false
-sp_cleanup.make_local_variable_final=true
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_redundant_modifiers=false
-sp_cleanup.remove_redundant_semicolons=true
-sp_cleanup.remove_redundant_type_arguments=true
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=true
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_anonymous_class_creation=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_lambda=true
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/.settings/org.eclipse.pde.api.tools.prefs b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index ec9fbf3..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,184 +0,0 @@
-ANNOTATION_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITH_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-API_USE_SCAN_FIELD_SEVERITY=Error
-API_USE_SCAN_METHOD_SEVERITY=Error
-API_USE_SCAN_TYPE_SEVERITY=Error
-CLASS_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERCLASS_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_CHANGED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENTS=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETERS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_ANNOTATION=Ignore
-INVALID_JAVADOC_TAG=Error
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Warning
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-MISSING_EE_DESCRIPTIONS=Warning
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-automatically_removed_unused_problem_filters=false
-changed_execution_env=Error
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-incompatible_api_component_version_report_major_without_breaking_change=Warning
-incompatible_api_component_version_report_minor_without_api_change=Warning
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/.settings/org.eclipse.pde.prefs b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index d2dc703..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,35 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.build.bin.includes=1
-compilers.p.build.encodings=2
-compilers.p.build.java.compiler=2
-compilers.p.build.java.compliance=1
-compilers.p.build.missing.output=2
-compilers.p.build.output.library=1
-compilers.p.build.source.library=1
-compilers.p.build.src.includes=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=1
-compilers.p.missing-packages=2
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=2
-compilers.p.missing-version-require-bundle=2
-compilers.p.no-required-att=0
-compilers.p.no.automatic.module=1
-compilers.p.not-externalized-att=1
-compilers.p.service.component.without.lazyactivation=1
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/META-INF/MANIFEST.MF b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/META-INF/MANIFEST.MF
deleted file mode 100644
index 51c54d6..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,26 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.cdt.managedbuilder.xlc.ui; singleton := true
-Bundle-Version: 6.4.100.qualifier
-Bundle-Activator: org.eclipse.cdt.managedbuilder.xlc.ui.XLCUIPlugin
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.eclipse.cdt.managedbuilder.core,
- org.eclipse.cdt.core,
- org.eclipse.core.resources,
- org.eclipse.cdt.managedbuilder.ui,
- org.eclipse.cdt.ui,
- org.eclipse.ui.ide,
- org.eclipse.core.variables
-Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.cdt.managedbuilder.xlc.aix,
- org.eclipse.cdt.managedbuilder.xlc.ui,
- org.eclipse.cdt.managedbuilder.xlc.ui.preferences,
- org.eclipse.cdt.managedbuilder.xlc.ui.properties,
- org.eclipse.cdt.managedbuilder.xlc.ui.variables,
- org.eclipse.cdt.managedbuilder.xlc.ui.wizards
-Bundle-Vendor: %providerName
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Automatic-Module-Name: org.eclipse.cdt.managedbuilder.xlc.ui
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/about.html b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/about.html
deleted file mode 100644
index 164f781..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
-	<h2>About This Content</h2>
-
-	<p>November 30, 2017</p>
-	<h3>License</h3>
-
-	<p>
-		The Eclipse Foundation makes available all content in this plug-in
-		(&quot;Content&quot;). Unless otherwise indicated below, the Content
-		is provided to you under the terms and conditions of the Eclipse
-		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
-		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>
-		If you did not receive this Content directly from the Eclipse
-		Foundation, the Content is being redistributed by another party
-		(&quot;Redistributor&quot;) and different terms and conditions may
-		apply to your use of any object code in the Content. Check the
-		Redistributor's license that was provided with the Content. If no such
-		license exists, contact the Redistributor. Unless otherwise indicated
-		below, the terms and conditions of the EPL still apply to any source
-		code in the Content and such source code may be obtained at <a
-			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
-	</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/about.ini b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/about.ini
deleted file mode 100644
index e07a7bb..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/about.ini
+++ /dev/null
@@ -1,24 +0,0 @@
-# about.ini
-# contains information about a feature
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in about.properties
-# This file does not need to be translated.
-
-# Property "aboutText" contains blurb for "About" dialog (translated)
-aboutText=%blurb
-
-# Property "windowImage" contains path to window icon (16x16)
-# needed for primary features only
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=cdt_logo_icon32.png
-
-# Property "aboutImage" contains path to product image (500x330 or 115x164)
-# needed for primary features only
-
-# Property "appName" contains name of the application (translated)
-# needed for primary features only
-
-# Property "welcomePerspective" contains the id of the perspective in which the
-# welcome page is to be opened.
-# optional
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/about.mappings b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/about.mappings
deleted file mode 100644
index 936a803..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/about.mappings
+++ /dev/null
@@ -1,9 +0,0 @@
-# about.mappings
-# contains fill-ins for about.properties
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file does not need to be translated.
-
-# The following should contain the build version.
-# e.g. "0=20200106-1728"
-# This value will be added automatically via the build scripts
-0=${buildId}
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/about.properties b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/about.properties
deleted file mode 100644
index b2121fa..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/about.properties
+++ /dev/null
@@ -1,28 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-# NOTE TO TRANSLATOR: Please do not translate the featureVersion variable.
-
-
-blurb=CDT XL C/C++ Compiler Support\n\
-\n\
-Version: {featureVersion}\n\
-Build id: {0}\n\
-\n\
-(c) Copyright Eclipse contributors and others, 2007, 2010.\n\
-Visit http://www.eclipse.org/cdt
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/build.properties b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/build.properties
deleted file mode 100644
index 5d89bc2..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/build.properties
+++ /dev/null
@@ -1,25 +0,0 @@
-###############################################################################
-#  Copyright (c) 2007, 2009 IBM Corporation and others.
-#
-#  This program and the accompanying materials
-#  are made available under the terms of the Eclipse Public License 2.0
-#  which accompanies this distribution, and is available at
-#  https://www.eclipse.org/legal/epl-2.0/
-#
-#  SPDX-License-Identifier: EPL-2.0
-#
-#  Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.properties,\
-               plugin.xml,\
-               about.html,\
-               about.ini,\
-               about.mappings,\
-               about.properties,\
-               cdt_logo_icon32.png
-src.includes = about.html
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/cdt_logo_icon32.png b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/cdt_logo_icon32.png
deleted file mode 100644
index 470ca81..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/cdt_logo_icon32.png
+++ /dev/null
Binary files differ
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/plugin.properties b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/plugin.properties
deleted file mode 100644
index 934ae57..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/plugin.properties
+++ /dev/null
@@ -1,454 +0,0 @@
-###############################################################################
-# Copyright (c) 2007, 2011 IBM Corporation and others.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-pluginName = XL C/C++ Managed Build UI Plugin
-providerName = Eclipse CDT
-
-variableDescription = XL C/C++ Compiler Root Location
-
-#Build model names
-TargetName.xlc.exe=Executable (XL C/C++)
-TargetName.xlc.so=Shared Library (XL C/C++)
-TargetName.xlc.lib=Static Library(XL C/C++)
-
-# Default Configuration Names
-# START NON-TRANSLATABLE
-ConfigName.Rel=Release
-ConfigName.Dbg=Debug
-# END NON-TRANSLATABLE
-
-# Generic tool-chain names
-ToolChainName.Rel=XL C/C++ Tool Chain
-ToolChainName.Dbg=XL C/C++ Tool Chain
-
-# Generic platform names
-PlatformName.Rel=Release Platform
-PlatformName.Dbg=Debug Platform
-
-# Generic builder names
-BuilderName.Rel=GNU Make
-BuilderName.Dbg=GNU Make
-
-# Tool names
-ToolName.compiler.xlc.c = XL C Compiler
-ToolName.compiler.xlc.cpp = XL C++ Compiler
-ToolName.linker.xlc.c = XL C Executable Linker
-ToolName.linker.xlc.cpp = XL C++ Executable Linker
-ToolName.archiver.xlc = Archiver
-ToolName.assembler.xlc = XL Assembler
-ToolName.linker.xlc.cpp.so = XL C++ Shared Object Linker
-ToolName.linker.xlc.c.so = XL C Shared Object Linker
-
-# Generic Category Names
-OptionCategory.Linking = Linking
-OptionCategory.Libs = Libraries and Paths
-OptionCategory.ifp = Integer and Floating Point
-OptionCategory.cc = Compiler Customization
-OptionCategory.lm = Listings and Messages
-OptionCategory.ecd = Error Checking and Debugging
-OptionCategory.Input = Input Control
-OptionCategory.Output = Output Control
-OptionCategory.Optimize=Optimization
-OptionCategory.Comp = Compatibility
-OptionCategory.Misc=Miscellaneous
-OptionCategory.Assembler=Assembler Options
-OptionCategory.General=General
-OptionCategory.objcc=Object code control
-
-# generic names used by multiple options
-Option.none = none
-Option.default = default
-
-# Miscellaneous options
-Option.compiler.other = Other compiler flags
-
-# Input Control options
-Option.Preproccomments = Preserve comments in pre-processed output (-C)
-Option.DefSym = Define a macro name (-D)
-Option.InclPaths = Specify an additional search path for #include s (-I)
-Option.UndefSym = Undefine a macro name (-U)
-Option.altivec = Enable compiler support for vector data types (-qaltivec)
-Option.asm = Control the interpretation of and subsequent generation of code for asm statement (-qasm)
-Option.asm.default = Default
-Option.asm.stdcpp = Standard (-qasm=stdcpp)
-Option.asm.gcc = GCC (-qasm=gcc)
-Option.Cstdinc = Specify C standard search location (-qc_stdinc)
-Option.cppstdinc = Specify C++ standard search location (-qcpp_stdinc)
-Option.qcomplexgccincl = Wrap include files in GCC pragmas (-qcomplexgccincl)
-Option.Nocplus = Don't recognize C++ comments in C source files(-qnocpluscmt)
-Option.Mbcs = Enable recognition of multi-byte characters (-qmbcs)
-Option.Digraph = Enable recognition of digraph characters (-qdigraph)
-Option.Dollar = Allow $ symbols to be used in identifiers (-qdollar)
-Option.Incdirfirst =  Change the search path (-qidirfirst)
-Option.ignprag = Ignore certain pragmas (-qignprag=)
-Option.ignprag.disjoint = disjoint
-Option.ignprag.isolated = isolated
-Option.ignprag.all = all
-Option.ignprag.ibm = IBM(R)
-Option.ignprag.omp = omp
-Option.Keyword = Treat specified name as a keyword(-qkeyword)
-Option.langlvl = Language level (-qlanglvl=)
-Option.langlvl.classic = classic
-Option.langlvl.extended = extended
-Option.langlvl.saa = SAA
-Option.langlvl.saal2 = SAA Level 2
-Option.langlvl.stdc89 = C89 standard
-Option.langlvl.stdc99 = C99 standard
-Option.langlvl.extc89 = C89 with extensions
-Option.langlvl.extc99 = C99 with extensions
-Option.langlvl.ucs = UCS
-Option.Macpstr = Convert pascal string literals into null-terminated string literals (-qmacpstr)
-Option.Pascal = Recognize and accept the keyword pascal (-qpascal)
-Option.sourcetype = Override source type (-qsourcetype)
-Option.sourcetype.c = c
-Option.sourcetype.c++ = C++
-Option.sourcetype.assembler = assembler
-Option.stdframework = Search standard framework directories (-qstdframework)
-Option.frameworkdirs = Specify additional framework directories (-qframeworkdir)
-Option.Input = Don't search the default search path directories (-qnostdinc)
-Option.Warn.Syntax =Perform syntax checking without generating an object file(-qsyntaxonly)\u0020
-Option.Trigraph=Recognize tri-graph key combinations
-Option.Utf=Enable recognition of UTF literal syntax (-qutf)
-Option.plus = Compile any file as a C++ file (-+)
-Option.cinc = Insert extern "C" {} in the specified include files (-qcinc)
-Option.gcc_c_stdinc = Change GCC headers search location (-qgcc_c_stdinc)
-Option.gcc_cpp_stdinc = Change G++ headers search location (-qgcc_cpp_stdinc)
-
-# Output Control options
-
-Option.Trace=Preview the steps for compilation(-#)
-Option.bmaxdata=Maximum size of the area shared by the static data and the heap (-bmaxdata=)
-Option.c=Pass the source files through compiler component only(-c)
-Option.PreprocOnly=Preprocess the source files and create an output preprocessed source file (-E)
-Option.PreprocRemoveComments=Remove comments from preprocessed output (-C!)
-Option.M=Create an output file that contains targets for the make command (-M)
-Option.ma=Substitute inline code for calls to alloca (-ma)
-Option.o=Specify an output location for the files created by the compiler (-o)\u0020
-Option.P=Preprocess the source files and create an output preprocessed source file for each source file(-P)
-Option.Assem=Generate an assembler language file for each source file(-S)
-Option.Strip=Strip symbol table, line number information and relocation information from source file(-s)
-Option.64=Select 64-bit compiler mode(-q64)
-Option.Align=Specify what alignment rules compiler uses for compilation(-qalign)
-Option.Align.Full=full
-Option.Align.Natural=natural
-Option.Align.twobyte=two byte
-Option.Align.packed=packed
-Option.Align.bitpacked=bit packed
-Option.alloca=Substitute inline code for calls to function alloca(-qalloca)
-Option.Bitfields=Specify if bit fields are signed(-qbitfields)
-Option.Bitfields.signed = signed
-Option.Bitfields.unsigned = unsigned
-Option.Chars=Specify if chars are signed
-Option.chars.signed = signed (-qchars=signed)
-Option.chars.unsigned = unsigned (-qcharse=unsigned)
-Option.enablevmx=Enable generation of VMX instructions(-qenablevmx)
-Option.Enum=Specify the amount of storage occupied by enumerations(-qenum=)
-Option.enum.Int=Int
-Option.enum.Intlong=Intlong
-Option.enum.small=small
-Option.enum.1=1
-Option.enum.2=2
-Option.enum.4=4
-Option.enum.8=8
-Option.Pic=Generate position independent code suitable for use in libraries(-qpic=)
-Option.Pic.Small=Small
-Option.Pic.Large=Large
-Option.noro=Do not place string literals in read only storage (-qnoro)
-Option.noroconst=Do not place constant values in read only storage (-qnoroconst)
-Option.roptr=Place constant pointers in read only storage (-qroptr)\u0020
-Option.Statsym=Generate symbols for static variables (-qstatsym )
-Option.xcall=Generate code to treat static functions as external functions (-qxcall )
-Option.funcsect=Place instructions for each function in a separate object file control section or csect (-qfuncsect)
-Option.ppline=Enable generation of #line directive in the preprocessed output (-qppline)
-Option.upconv=Preserve the unsigned specification when performing integral promotions (-qupconv)
-Option.namemangling=Name mangling scheme for external symbol names (-qnamemangling=)
-Option.namemangling.v10.name=Name mangling scheme for external symbol names (-qnamemangling=)
-Option.namemangling.ansi = ANSI (-qnamemangling=ansi)
-Option.namemangling.v6 = VisualAge(R) C++ v6 (-qnamemangling=v6)
-Option.namemangling.v5 = VisualAge(R) C++ v5 (-qnamemangling=v5)
-Option.namemangling.v4 = VisualAge(R) C++ v4 (-qnamemangling=v4)
-Option.namemangling.v3 = Compatibility mode (-qnamemangling=v3)
-Option.namemangling.v7=IBM XL C/C++ v7 (-qnamemangling=v7)
-Option.namemangling.v8=IBM XL C/C++ v8 (-qnamemangling=v8)
-Option.namemangling.v9=IBM XL C/C++ v9 (-qnamemangling=v9)
-Option.namemangling.v10=IBM XL C/C++ v10 (-qnamemangling=v10)
-Option.objectmodel = Object model (-qobjmodel=)
-Option.objectmodel.classic = classic (-qobjmodel=classic)
-Option.objectmodel.ibm = IBM(R) (-qobjmodel=ibm)
-Option.rtti = Generate RunTime Type Information (-qrtti)
-Option.rtti.all = all (-qrrti=all)
-Option.rtti.type = type (-qrtti=type)
-Option.rtti.dynamiccast = dynamic cast (-qrtti=dynamiccast)
-Option.saveopt = Save the command line compiler options into an object file  (-qsaveopt)
-Option.staticinline = Treat inline functions as static (-qstaticinline)
-Option.statsym = Add static variables to the symbol table  (-qstatsym)
-Option.threaded = Enable multi-threaded execution (-qthreaded)
-Option.unique = Generate unique names for static constructor/deconstructor file compilation units (-qunique)
-Option.unique.v10 = Generate unique names for static constructor/deconstructor file compilation units (-qunique)
-Option.qconcurrentupdate.v11 = Update the operating system while the kernel is running (-qconcurrentupdate)
-Option.novftable = Do not generate virtual function table (-qnovftable)
-Option.vrsave = Maintain the VRSAVE register (-qvrsave)
-Option.weaksymbol = Generate weak symbols (-qweaksymbol)
-Option.macros=Emit macro definitions to preprocessed output (-qshowmacros)
-Option.macros.all=all (-qshowmacros=all)
-Option.macros.pre=predefined (-qshowmacros=pre)
-Option.macros.nopre=no macros (-qshowmacros=nopre)
-Option.qstackprotect = Protect against malicious code or programming errors that overwrite or corrupt the stack (-qstackprotect=)
-Options.timestamps=Suppress insert of implicit timestamps into an object file (-qnotimestamps)
-Option.qrestrict = Stop pointers from accessing the same memory that has been addressed by function parameter pointers (-qrestrict=)
-
-# Optimization options
-Option.OptLevel = Optimization level
-Option.Optimize.Optimize = -O
-Option.Optimize.Level2 = -O2
-Option.Optimize.Level3 = -O3
-Option.Optimize.Level4 = -O4
-Option.Optimize.Level5 = -O5
-Option.inlining = Function inlining
-Option.inlining.Q = inline all functions (-Q)
-Option.inlining.Qexclamation = disable inlining (-Q!)
-Option.Qplus = Specify functions to be inlined(-Q+name1:name2:...:nameN)
-Option.Qminus = Specify functions to not inline (-Q-name1:name2:...:nameN)
-Option.aggrcopy = Enable destructive copy operations for structs and unions
-Option.aggrcopy.nooverlap=no overlap (-qaggrcopy=nooverlap)
-Option.aggrcopy.overlap=overlap (-qaggrcopy=overlap)
-Option.alias= Apply aliasing instructions to compilation unit (-qalias=)
-Option.alias.addrtaken= Variables are not disjoint from pointers (-qalias=addrtaken)
-Option.alias.noaddrtaken=Variables are disjoint from pointers unless their address is taken (-qalias=notaddrtaken)
-Option.alias.allptrs=Pointers are aliased (-qalias=allptrs)
-Option.alias.noallptrs=Pointers are never aliased (-qalias=noallptrs)
-Option.alias.ansi=Pointers can only point to an object of the same type (-qalias=ansi)
-Option.alias.noansi=Pointers can point to an object of a different type (-qalias=notansi)
-Option.alias.typeptr=Pointers to different types are aliased (-qalias=typeptr)
-Option.alias.notypeptr=Pointers to different types are never aliased (-qalias=notypeptr)
-Option.optimization.arch = Specify the processor architecture to generate code and optimize for (-qarch=)
-Option.optimization.arch.ppc64 = PowerPC(R) 64-bit
-Option.optimization.arch.ppcgr = PowerPC(R) with graphics instructions
-Option.optimization.arch.ppc64gr = PowerPC(R) 64-bit with graphics instructions
-Option.optimization.arch.ppc64grsq = PowerPC(R) 64-bit with graphics and square root instructions
-Option.optimization.arch.ppc64v = PowerPC(R) 64-bit with AltiVec
-Option.optimization.tune = Specify the processor architecture to tune code for (-qtune=)
-Option.optimization.tune.auto = auto
-Option.optimization.assert = Assert program behaviours (-qassert=)
-Option.optimization.Cache = Specify the cache configuration (-qcache=option1:option2:...:optionN)
-Option.compact = Avoid transformations that lead to code expansion (-qcompact)
-Option.optimization.dataimported = Name the variables to be imported (-qdataimported=name1:name2:...:nameN)
-Option.optimization.datalocal = Name the variables which are local (-qdatalocal=name1:name2:...:nameN)
-Option.directstorage = Write-through enabled or cache-inhibited storage may be referenced (-qdirectstorage)
-Option.optimization.exceptionhandling = Exception handling
-Option.optimization.exceptionhandling.eh = Enable exception handling (-qeh)
-Option.optimization.exceptionhandling.noeh = Disable exception handling (-qnoeh)
-Option.optimization.exceptionhandling.v5 = VisualAge(R) C++ v5.0 compatibility
-Option.optimization.exceptionhandling.v6 = VisualAge(R) C++ v6.0 compatibility
-Option.fdpr = Include data required by fdpr utility (-qfdpr)
-Option.optimization.hot = Perform high-order loop analysis and transformations during optimization (-qhot=)
-Option.ignerrno = Perform optimizations which assume errno is not modified by system calls (-qignerrno)
-Option.optimization.inline = Attempt to inline functions (-qinline=)
-Option.optimization.ipa = Customize interprocedural analysis optimizations(-qipa=)
-Option.optimization.isolatedcall = Functions in source file that have no side effects (-qisolated_call=name1:name2:...:nameN)
-Option.optimization.keepinlines =\u0020
-Option.largepage = Exploit large page heaps available on POWER4(TM) systems running AIX(R) 5.1D or later (-qlargepage)
-Option.libansi = Assume all functions in the name of ansi C function are system functions (-qlibansi)
-Option.pdf1 = Tune optimizations through Profile Directed Feedback: first run (-qpdf1)
-Option.pdf2 = Tune optimizations through Profile Directed Feedback: second run (-qpdf2)
-Option.optimization.Prefetch = Disable generation of prefetching instructions in compiled code (-qnoprefetch)
-Option.optimization.procimported = Mark functions as imported (-qprocimported=)
-Option.optimization.proclocal = Mark functions as local (-qlocal=)
-Option.optimization.procunknown = Mark functions as unknown (-qprocunknown=)
-Option.optimization.showpdf = Add additional call and block count profiling information to the executable (-qshowpdf)
-Option.optimization.smallstack = Reduce the size of the stack frame (-qsmallstack)
-Option.optimization.smp = Enable parallelization of code (-qsmp)
-Option.optimization.smp.v10 = Specify parallelization of code (-qsmp=name1:name2:...:nameN)
-Option.optimization.smp.v10.tooltip=Possible values: nostackcheck, opt, norec_locks, noomp, nonested_par, \nexplicit, auto, omp, nested_par, noauto, noexplicit, noopt, rec_locks, \nschedule=(runtime | auto | affinity=n | dynamic=n | guided=n | static=n), stackcheck, threshold=n
-Option.optimization.Spill = Specify the register allocation spill area (-qspill=)
-Option.optimization.Strict=Turn off aggressive optimizations (-qstrict)
-Option.optimization.Strict.v10 = Specify the optimizations (-qstrict=name1:name2:...:nameN)
-Option.optimization.Strict.v10.tooltip=Possible values: all, none, precision, noprecision, exceptions, noexceptions, \nieeefp, noieeefp, nans, nonans, infinities, noinfinities, subnormals, nosubnormals, \nzerosigns, nozerosigns, operationprecision, nooperationprecision, order, noorder, \nassociation, noassociation, reductionorder, noreductionorder, guards, noguards, library, nolibrary
-Option.optimization.loopinduction = Loop induction settings
-Option.optimization.strict_induction = Strict induction
-Option.optimization.nostrict_induction = No induction
-Option.optimization.tocdata = Mark data as local
-Option.optimization.w = Specify options to pass to specific compiler components  (-W)
-Option.optimization.qassert = Provide information about the characteristics of the files that can help to fine-tune optimizations (-qassert=)
-Option.optimization.qassert.norefalign = norefalign
-Option.optimization.qassert.refalign = refalign
-Option.optimization.qlibmpi = Assert that functions with MPI names are in fact MPI functions (-qlibmpi)
-Option.optimization.qsimd = Let the compiler automatically take advantage of vector instructions for processors that support them (-qsimd)
-Option.optimization.qprefetch = Insert prefetch instructions automatically where there are opportunities to improve code performance (-qprefetch)
-
-# Linker Options
-Option.Linking.b = Control how shared objects are processed by the editor (-b)
-Option.linking.brtl = Enable runtime linking for the output file (-brtl)
-Option.Linking.e = Set the entry name for the shared executable(-e )
-Option.Linking.f =\u0020
-Option.linking.G = Create a shared object enabled for runtime linking (-G)
-Option.Linking.L = Search the path directory for the library files specified by the -lkey option (-L)
-Option.Linking.l = Search the specified library file(-l)
-Option.linking.r = Produce a relocatable object (-r)
-Option.Linking.Z = Specify a prefix for library search path (-Z)
-Option.linking.inlglue = Generate fast external linkage (-qinlglue)
-Option.linking.lib = Link with standard system libraries (-qlib)
-Option.Linking.mkshrobj = Create a shared object from generated object files (-qmkshrobj)
-Option.Linking.priority = Specify the priority level for initialization of static objects (-qpriority)
-Option.Linker.EnableRun=Enable Run time linking (-brtl)
-Option.Linker.NoStartFiles=Do not use standard start files (-nostartfiles)
-Option.Linker.NoDefLibs=Do not use default libraries (-nodefaultlibs)
-Option.Linker.NoStdLibs=No startup or default libs (-nostdlib)
-Option.Linker.Strip=Strip all symbol information (-s)
-Option.Linker.Strip.debug=Strip debug symbol information (-S)
-Option.Linker.Static=No shared libraries (-bstatic)
-Option.Linker.WLinker=Other options (-Wl, [option1,option2,...optionN])
-Option.Linker.Flags=Other linker flags
-Option.Libs=Libraries (-l)
-Option.Libsearch=Library search path (-L)
-Option.UserObjs=Other objects
-Option.Linker.Shared=Shared (-qmkshrobj)
-Option.Linker.SOName=Shared object name (-o=)
-Option.Linker.Implib=Import Library name (-Wl,--out-implib=)
-Option.Linker.Defname=DEF file name (-Wl,--output-def=)
-Option.linking.bundle = Create a bundle (-bundle)
-Option.linking.bundle_loader = Specify the name of bundle loader program (-bundle_loader=)
-Option.linking.f = Specify file containing a list of object files for the compiler to pass to the linker (-f)
-Option.linking.expfile = Save all the exported symbols in the designated file (-qexpfile=)
-
-#Archiver options
-Option.Archiver.Flags=Other archiver flags
-
-# Integer and Floating Point options
-Option.y = Specify compile time rounding mode (-y)
-Option.y.n = n
-Option.y.m = m
-Option.y.p = p
-Option.y.z = z
-Option.float = Specify floating point options (-qfloat=)
-Option.flttrap = Trap floating point exceptions (-qflttrap=)
-Option.longlong = Allow long long integer types in the program
-Option.longlong.longlong = Allow long long (-qlonglong)
-Option.longlong.nolonglong = Do not allow long long (-qnolonglong)
-Option.rndflt = Control compile-time rounding mode of floating point expressions( -qrndflt)
-Option.rndflt.nearest = Nearest
-Option.rndflt.minusinf = Minus infinity
-Option.rndflt.plusinf = Plus infinity
-Option.rndflt.zero = Zero
-Option.dfp = Decimal floating-point support for types and literals
-Option.dfp.enabled = Enabled (-qdfp)
-Option.dfp.disabled = Disabled (-qnodfp)
-
-# Compiler Customization options
-Option.B = Determine substitute program path name (-B)
-Option.F = Specify alternate configuration file (-F)
-Option.t = Add prefix to designated programs (-t)
-Option.maxmem = Amount of memory used during optimization (-qmaxmem=)
-Option.path = Alternate program name for compiler components (-qpath=)
-Option.tls = Specify the thread local storage model (-qtls=)
-Option.tls.unsupported=unsupported
-Option.tls.default=default
-Option.tls.global-dynamic=global-dynamic
-Option.tls.initial-exec=initial-exec
-Option.tls.local-dynamic=local-dynamic
-Option.tls.local-exec=local-exec
-Option.tls.notls=No tls
-
-# Listings and Messages options
-Option.V = Report information on the progress of compilation (-V)
-Option.Warn.Pedandic=Pedantic (-pedantic)
-Option.Warn.PedErrors=Pedantic warnings as errors (-pedantic-errors)
-Option.Warn.nowarn=Inhibit all warnings (-w)
-Option.Warn.allwarn=All warnings (-Wall)
-Option.Warn.toerrs=Warnings as errors (-Werror)
-Option.attr = Produce a compiler listing (-qattr)
-Option.attr.noattr = Does not produce an attribute listing for identifiers in program (-qnoattr)
-Option.attr.fullattr = Report attributes of all identifiers (-qattr=full)
-Option.attr.attr = Report attributes of only used identifiers (-qattr)
-Option.flag = Specify the minimum severity level of the diagnostic messages (-qflag=)
-Option.format = Warn of possible problems with string input and output format specifications (-qformat=)
-Option.qskipsrc = Hide the source statements skipped by the compiler (-qskipsrc = hide)
-Option.halt = Instruct the compiler to stop after compilation if it encounters errors of specified severity or higher (-qhalt=)
-Option.halt.information = Information (-qhalt=i)
-Option.halt.warning = Warning (-qhalt=w)
-Option.halt.error = Error (-qhalt=e)
-Option.halt.severeError = Severe error (-qhalt=s)
-Option.halt.unrecoverableError = Unrecoverable error (-qhalt=u)
-Option.info = Produce informational messages (-qinfo=)
-Option.list = Produce a compiler listing that includes an object listing (-qlist)
-Option.listopt = Produce a compiler listing that displays all options in effect(-qlistopt)
-Option.phsinfo = Report the time taken in each compilation phase (-qphsinfo)
-Option.noprint = Suppress all listings (-qnoprint )
-Option.showinc = Show all included files in the source listing (-qshowinc)
-Option.source = Produce a compiler listing and include the source code (-qsource)
-Option.srcmsg = Add the corresponding source code lines to the diagnostic messages in stderr file (-qsrcmsg)
-Option.suppress = Suppress the specified informational or warning messages (-qsuppress=)
-Option.tabsize = Change the tab-size (-qtabsize=)
-Option.xref = Produce a cross reference listing of identifiers (-qxref)
-Option.xref.noxref = Do not report identifiers in the program (-qnoxref)
-Option.xref.fullxref = Report all the identifiers in the program (-qxref = full)
-Option.xref.xref = Report only those identifiers which are used (-qxref)
-Option.warnfourcharconsts = Enable warning of four-character constants in source
-Option.report = Produce listing files that show how sections of code have been optimized (-qreport)
-Option.qlistfmt = Creates a report to assist with finding optimization opportunities (-qlistfmt)
-
-# Error Checking and Debugging
-Option.g = Generate debugging information (-g)
-Option.optdebug = Enable debugging of optimized code (-qoptdebug)
-Option.DebugLevel=Debug Level
-Option.Debug.Min=Minimal (-g1)
-Option.Debug.Def=Default (-g)
-Option.Debug.Max=Maximum (-g3)
-Option.Debug.Other=Other debugging flags
-Option.Debug.gprof=Generate gprof information (-pg)
-Option.Debug.prof=Generate prof information (-p)
-Option.Debug.Unref=Include information about unreferenced symbols (-qdbxextra)
-Option.p = Generate prof information (-p)
-Option.pg = Generate gprof information (-pg)
-Option.check = Generate code which performs certain types of runtime checking (-qcheck)
-Option.dbxextra = Include all typedefs, structs, unions, enums for debugging (-qdbxextra)
-Option.extchk = Generate bind-time type checking information and check for compile time consistency (-qextchk)
-Option.fullpath = Preserve absolute path name of source files used with -g option (-qfullpath)
-Option.genproto = Produce ANSI prototypes from K&R definitions
-Option.genproto.general = Generate prototypes with parameter names
-Option.genproto.parmgenproto = Include parameter names in prototypes
-Option.heapdebug = Enable debug versions of memory management functions (-qheapdebug)
-Option.initauto = Initialize the automatic variables (-qinitauto=)
-Option.linedebug = Generate line number and source file name info for the debugger (-qlinedebug)
-Option.maxerr = Halt compilation after this many errors (-qmaxerr=)
-Option.proto = All functions are prototyped (-qproto)
-Option.qfunctrace = Enable tracing for all functions in your program (-qfunctrace)
-
-# Assembler options
-Option.Xlc.Assembler.Flags=Other assembler flags
-Option.Xlc.Assembler.warn.suppress=Suppress warnings (-W)
-Option.Xlc.Assembler.version=Announce version (-v)
-
-
-# XL C/C++ Preference page
-XLCompilerPreferencePage.name = XL C/C++ Compiler
-XLCompilerPropertyPage.name = XL C/C++ Compiler
-
-
-
-
-extension.name = Managed Build Tools Description
-tool.name = Abstract XL Compiler
-tool.name.0 = Abstract XL Linker
-tool.name.1 = Abstract XL Shared Object Linker
-tool.compiler.c.abstract = Abstract XL C Compiler
-tool.compiler.cpp.abstract = Abstract XL C++ Compiler
-tool.compiler.abstract = Abstract XL Compiler
-tool.linker.exe.abstract.name = Abstract XL Linker
-tool.linker.so.abstract.name = Abstract XL Shared Object Linker
-tool.c.compiler.name = Local XL C Compiler
-inputType.c.name = Local C Sources
-tool.cpp.compiler.name = Local XL C++ Compiler
-inputType.c.name.2 = Local C Sources
-inputType.cpp.name = Local C++ Sources
\ No newline at end of file
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/plugin.xml b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/plugin.xml
deleted file mode 100644
index c8efec7..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/plugin.xml
+++ /dev/null
@@ -1,3848 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
-
-
-<!-- Managed Make Builder Tool Specifications -->
-   <extension
-      id="cdt.managed.build.info"
-      name="%extension.name"
-      point="org.eclipse.cdt.managedbuilder.core.buildDefinitions">
-      <managedBuildRevision
-         fileVersion="4.0.0">
-      </managedBuildRevision>
-      <tool
-         command="${XL_compilerRoot}/xlc"
-         id="cdt.managedbuild.tool.xlc.c.linker"
-         name="%ToolName.linker.xlc.c"
-         natureFilter="cnature"
-         superClass="org.eclipse.cdt.managedbuilder.xlc.ui.tool.abstractLinker">
-      </tool>
-      <tool
-         command="${XL_compilerRoot}/xlC"
-         id="cdt.managedbuild.tool.xlc.cpp.linker"
-         name="%ToolName.linker.xlc.cpp"
-         natureFilter="ccnature"
-         superClass="org.eclipse.cdt.managedbuilder.xlc.ui.tool.abstractLinker">
-      </tool>
-      <tool
-         natureFilter="both"
-         isAbstract="true"
-         name="%ToolName.archiver.xlc"
-         command="ar -rv"
-         id="cdt.managedbuild.tool.xlc.archiver">
-         <optionCategory
-            name="%OptionCategory.General"
-            id="xlc.lib.category.general">
-         </optionCategory>
-         <option
-            defaultValue="-r"
-            name="%Option.Archiver.Flags"
-            category="xlc.lib.category.general"
-            valueType="string"
-            id="xlc.both.lib.option.flags">
-         </option>
-         <inputType
-            sourceContentType="org.eclipse.cdt.managedbuilder.core.compiledObjectFile"
-            sources="o"
-            multipleOfType="true"
-            dependencyCalculator="org.eclipse.cdt.managedbuilder.makegen.internal.DefaultNoDependencyCalculator"
-            buildVariable="OBJS"
-            id="cdt.managedbuild.tool.xlc.archiver.input">
-            <additionalInput
-               paths="$(USER_OBJS)"
-               kind="additionalinputdependency">
-            </additionalInput>
-            <additionalInput
-               paths="$(LIBS)"
-               kind="additionalinput">
-            </additionalInput>
-         </inputType>
-         <outputType
-            outputs="a"
-            outputPrefix="lib"
-            buildVariable="ARCHIVES"
-            nameProvider="org.eclipse.cdt.managedbuilder.makegen.gnu.GnuLinkOutputNameProvider"
-            id="cdt.managedbuild.tool.xlc.archiver.output">
-         </outputType>
-      </tool>
-      <tool
-         command="${XL_compilerRoot}/xlc"
-         id="cdt.managedbuild.tool.xlc.c.linker.so"
-         isAbstract="false"
-         name="%ToolName.linker.xlc.c.so"
-         natureFilter="cnature"
-         superClass="org.eclipse.cdt.managedbuilder.xlc.ui.tool.linker.abstractSOLinker">
-      </tool>
-      <tool
-         command="${XL_compilerRoot}/xlC"
-         id="cdt.managedbuild.tool.xlc.cpp.linker.so"
-         isAbstract="false"
-         name="%ToolName.linker.xlc.cpp.so"
-         natureFilter="ccnature"
-         superClass="org.eclipse.cdt.managedbuilder.xlc.ui.tool.linker.abstractSOLinker">
-      </tool>
-      <tool
-         command="as"
-         name="%ToolName.assembler.xlc"
-         outputFlag="-o"
-         id="cdt.managedbuild.tool.xlc.assembler"
-         natureFilter="both">
-         <optionCategory
-            name="%OptionCategory.Assembler"
-            id="xlc.asm.category.assembler">
-         </optionCategory>
-         <option
-            command="-W"
-            defaultValue="false"
-            valueType="boolean"
-            category="xlc.asm.category.assembler"
-            name="%Option.Xlc.Assembler.warn.suppress"
-            id="xlc.both.asm.option.warnings.nowarn"/>
-         <option
-            command="-v"
-            defaultValue="false"
-            valueType="boolean"
-            category="xlc.asm.category.assembler"
-            name="%Option.Xlc.Assembler.version"
-            id="xlc.both.asm.option.version"/>
-         <option
-            name="%Option.Xlc.Assembler.Flags"
-            category="xlc.asm.category.assembler"
-            valueType="string"
-            id="xlc.both.asm.option.flags">
-         </option>
-         <inputType
-            sourceContentType="org.eclipse.cdt.core.asmSource"
-            sources="s,S"
-            id="cdt.managedbuild.tool.xlc.assembler.input">
-         </inputType>
-         <outputType
-            outputs="o"
-            buildVariable="OBJS"
-            id="cdt.managedbuild.tool.xlc.assembler.output">
-         </outputType>
-      </tool>
-      <tool
-         command="${XL_compilerRoot}/xlc"
-         id="cdt.managedbuild.tool.xlc.c.compiler.abstract"
-         isAbstract="true"
-         name="%tool.compiler.c.abstract"
-         natureFilter="both"
-         outputFlag="-o"
-         superClass="org.eclipse.cdt.managedbuilder.xlc.ui.tool.abstractCompiler">
-         <option
-            name="%Option.Cstdinc"
-            category="xlc.c.compiler.category.Input"
-            command="-qc_stdinc"
-            id="xlc.c.compiler.option.include.cstdinc"
-            valueType="includePath"
-            browseType="directory">
-         </option>
-         <option
-            defaultValue="false"
-            name="%Option.Nocplus"
-            category="xlc.c.compiler.category.Input"
-            command="-qnocpluscmt"
-            id="xlc.c.compiler.option.input.nocplus"
-            valueType="boolean">
-         </option>
-         <option
-            browseType="directory"
-            category="xlc.c.compiler.category.Input"
-            command="-qgcc_c_stdinc"
-            id="xlc.c.compiler.option.input.gcc_c_stdinc"
-            isAbstract="false"
-            name="%Option.gcc_c_stdinc"
-            resourceFilter="all"
-            valueType="includePath">
-         </option>
-         <option
-            defaultValue="false"
-            name="%Option.Pascal"
-            category="xlc.c.compiler.category.Input"
-            command="-qpascal"
-            id="xlc.c.compiler.option.misc.pascal"
-            valueType="boolean">
-         </option>
-         <option
-            defaultValue="false"
-            name="%Option.Warn.Syntax"
-            category="xlc.c.compiler.category.Input"
-            command="-qsyntaxonly"
-            id="xlc.c.compiler.option.warnings.syntax"
-            valueType="boolean">
-         </option>
-         <option
-            defaultValue="false"
-            name="%Option.ma"
-            category="xlc.c.compiler.category.output"
-            command="-ma"
-            id="xlc.c.compiler.option.preprocessor.ma"
-            valueType="boolean">
-         </option>
-         <option
-            category="xlc.c.compiler.category.output"
-            command="-qupconv"
-            defaultValue="false"
-            id="org.eclipse.cdt.managedbuilder.xlc.ui.option12"
-            isAbstract="false"
-            name="%Option.upconv"
-            resourceFilter="all"
-            valueType="boolean">
-         </option>
-         <option
-            name="%Option.Qplus"
-            category="xlc.c.compiler.category.optimization"
-            command="-Q+="
-            id="xlc.c.compiler.option.optimization.Qplus"
-            valueType="string">
-         </option>
-         <option
-            name="%Option.Qminus"
-            category="xlc.c.compiler.category.optimization"
-            command="-Q-="
-            id="xlc.c.compiler.option.optimization.Qminus"
-            valueType="string">
-         </option>
-         <option
-            id="xlc.c.compiler.option.input.D.c"
-            superClass="xlc.c.compiler.option.input.D">
-            <listOptionValue
-               builtIn="true"
-               value="__xlc__">
-            </listOptionValue>
-            <listOptionValue
-               builtIn="true"
-               value="__IBMC__">
-            </listOptionValue>
-         </option>
-         <option
-            applicabilityCalculator="org.eclipse.cdt.managedbuilder.xlc.ui.properties.XLCApplicabilityCalculator"
-            category="xlc.c.compiler.category.objcc"
-            command="-qunique"
-            defaultValue="false"
-            id="org.eclipse.cdt.managedbuilder.xlc.ui.cpp.option.output.unique.v10"
-            isAbstract="false"
-            name="%Option.unique.v10"
-            resourceFilter="all"
-            valueType="boolean">
-         </option>
-         <option
-            applicabilityCalculator="org.eclipse.cdt.managedbuilder.xlc.ui.properties.XLCApplicabilityCalculator"
-            category="xlc.c.compiler.category.objcc"
-            command="-qconcurrentupdate"
-            defaultValue="false"
-            id="org.eclipse.cdt.managedbuilder.xlc.ui.cpp.option.output.qconcurrentupdate"
-            isAbstract="false"
-            name="%Option.qconcurrentupdate.v11"
-            resourceFilter="all"
-            valueType="boolean">
-         </option>
-         <option
-            applicabilityCalculator="org.eclipse.cdt.managedbuilder.xlc.ui.properties.XLCApplicabilityCalculator"
-            category="xlc.c.compiler.category.optimization"
-            command="-qrestrict"
-            id="xlc.c.compiler.option.optimization.qrestrict"
-            name="%Option.qrestrict"
-            valueType="string">
-         </option>
-      </tool>
-      <tool
-         command="${XL_compilerRoot}/xlC"
-         id="cdt.managedbuild.tool.xlc.cpp.compiler.abstract"
-         isAbstract="true"
-         name="%tool.compiler.cpp.abstract"
-         natureFilter="ccnature"
-         outputFlag="-o"
-         superClass="org.eclipse.cdt.managedbuilder.xlc.ui.tool.abstractCompiler">
-         <option
-            category="xlc.c.compiler.category.Input"
-            command="-+"
-            defaultValue="false"
-            id="org.eclipse.cdt.managedbuilder.xlc.cpp.option.plus"
-            isAbstract="false"
-            name="%Option.plus"
-            resourceFilter="all"
-            valueType="boolean">
-         </option>
-         <option
-            category="xlc.c.compiler.category.Input"
-            command="-qcinc"
-            id="org.eclipse.cdt.managedbuilder.xlc.ui.cpp.opntion.qcinc"
-            isAbstract="false"
-            name="%Option.cinc"
-            resourceFilter="all"
-            valueType="stringList">
-         </option>
-         <option
-            browseType="directory"
-            category="xlc.c.compiler.category.Input"
-            command="-qcpp_stdinc"
-            id="org.eclipse.cdt.managedbuilder.xlc.ui.cpp.option.cpp_stdinc"
-            isAbstract="false"
-            name="%Option.cppstdinc"
-            resourceFilter="all"
-            valueType="includePath">
-         </option>
-         <option
-            category="xlc.c.compiler.category.Input"
-            command="-qgcc_cpp_stdinc"
-            id="org.eclipse.cdt.managedbuilder.xlc.ui.cpp.option.gcc_cpp_stdinc"
-            isAbstract="false"
-            name="%Option.gcc_cpp_stdinc"
-            resourceFilter="all"
-            valueType="string">
-         </option>
-         <option
-            applicabilityCalculator="org.eclipse.cdt.managedbuilder.xlc.ui.properties.XLCApplicabilityCalculator"
-            category="xlc.c.compiler.category.output"
-            id="org.eclipse.cdt.managedbuilder.xlc.ui.cpp.option.namemangling"
-            isAbstract="false"
-            name="%Option.namemangling"
-            resourceFilter="all"
-            valueType="enumerated">
-            <enumeratedOptionValue
-               id="org.eclipse.cdt.managedbuilder.xlc.ui.cpp.option.namemangling.default"
-               isDefault="true"
-               name="%Option.default">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qnamemangling=ansi"
-               id="org.eclipse.cdt.managedbuilder.xlc.ui.cpp.option.namemangling.ansi"
-               name="%Option.namemangling.ansi">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qnamemangling=v6"
-               id="org.eclipse.cdt.managedbuilder.xlc.ui.enumeratedOptionValue22"
-               name="%Option.namemangling.v6">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qnamemangling=v5"
-               id="org.eclipse.cdt.managedbuilder.xlc.ui.cpp.option.namemangling.v5"
-               name="%Option.namemangling.v5">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qnamemangling=v4"
-               id="org.eclipse.cdt.managedbuilder.xlc.ui.cpp.option.namemangling.v4"
-               name="%Option.namemangling.v4">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qnamemangling=v3"
-               id="org.eclipse.cdt.managedbuilder.xlc.ui.cpp.option.namemangling.v3"
-               name="%Option.namemangling.v3">
-            </enumeratedOptionValue>
-         </option>
-         <option
-            applicabilityCalculator="org.eclipse.cdt.managedbuilder.xlc.ui.properties.XLCApplicabilityCalculator"
-            category="xlc.c.compiler.category.output"
-            id="org.eclipse.cdt.managedbuilder.xlc.ui.cpp.option.namemangling.v10"
-            isAbstract="false"
-            name="%Option.namemangling.v10.name"
-            resourceFilter="all"
-            valueType="enumerated">
-            <enumeratedOptionValue
-               id="org.eclipse.cdt.managedbuilder.xlc.ui.cpp.option.namemangling.default"
-               isDefault="true"
-               name="%Option.default">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qnamemangling=ansi"
-               id="org.eclipse.cdt.managedbuilder.xlc.ui.cpp.option.namemangling.ansi"
-               name="%Option.namemangling.ansi">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qnamemangling=v10"
-               id="org.eclipse.cdt.managedbuilder.xlc.ui.cpp.option.namemangling.v10"
-               name="%Option.namemangling.v10">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qnamemangling=v9"
-               id="org.eclipse.cdt.managedbuilder.xlc.ui.cpp.option.namemangling.v9"
-               name="%Option.namemangling.v9">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qnamemangling=v8"
-               id="org.eclipse.cdt.managedbuilder.xlc.ui.cpp.option.namemangling.v8"
-               name="%Option.namemangling.v8">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qnamemangling=v7"
-               id="org.eclipse.cdt.managedbuilder.xlc.ui.cpp.option.namemangling.v7"
-               name="%Option.namemangling.v7">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qnamemangling=v6"
-               id="org.eclipse.cdt.managedbuilder.xlc.ui.enumeratedOptionValue22"
-               name="%Option.namemangling.v6">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qnamemangling=v5"
-               id="org.eclipse.cdt.managedbuilder.xlc.ui.cpp.option.namemangling.v5"
-               name="%Option.namemangling.v5">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qnamemangling=v4"
-               id="org.eclipse.cdt.managedbuilder.xlc.ui.cpp.option.namemangling.v4"
-               name="%Option.namemangling.v4">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qnamemangling=v3"
-               id="org.eclipse.cdt.managedbuilder.xlc.ui.cpp.option.namemangling.v3"
-               name="%Option.namemangling.v3">
-            </enumeratedOptionValue>
-         </option>
-         <option
-            category="xlc.c.compiler.category.output"
-            id="org.eclipse.cdt.managedbuilder.xlc.ui.cpp.option.objectmodel"
-            isAbstract="false"
-            name="%Option.objectmodel"
-            resourceFilter="all"
-            valueType="enumerated">
-            <enumeratedOptionValue
-               id="org.eclipse.cdt.managedbuilder.xlc.ui.cpp.option.objectmodel.default"
-               isDefault="true"
-               name="%Option.default">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qobjmodel=classic"
-               id="org.eclipse.cdt.managedbuilder.xlc.ui.cpp.option.objectmodel.classic"
-               name="%Option.objectmodel.classic">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qobjmodel=ibm"
-               id="org.eclipse.cdt.managedbuilder.xlc.ui.cpp.option.objectmodel.ibm"
-               name="%Option.objectmodel.ibm">
-            </enumeratedOptionValue>
-         </option>
-         <option
-            category="xlc.c.compiler.category.output"
-            id="org.eclipse.cdt.managedbuilder.xlc.ui.cpp.option.output.rtti"
-            isAbstract="false"
-            name="%Option.rtti"
-            resourceFilter="all"
-            valueType="enumerated">
-            <enumeratedOptionValue
-               id="org.eclipse.cdt.managedbuilder.xlc.ui.cpp.option.output.rtti.default"
-               isDefault="true"
-               name="%Option.default">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qnortti"
-               id="org.eclipse.cdt.managedbuilder.xlc.ui.cpp.option.output.rtti.none"
-               isDefault="false"
-               name="%Option.none">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qrtti=all"
-               id="org.eclipse.cdt.managedbuilder.xlc.ui.cpp.option.output.rtti.all"
-               name="%Option.rtti.all">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qrtti=type"
-               id="org.eclipse.cdt.managedbuilder.xlc.ui.cpp.option.output.rtti.type"
-               name="%Option.rtti.type">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qrtti=dynamiccast"
-               id="org.eclipse.cdt.managedbuilder.xlc.ui.cpp.option.output.rtti.dynamiccast"
-               name="%Option.rtti.dynamiccast">
-            </enumeratedOptionValue>
-         </option>
-         <option
-            category="xlc.c.compiler.category.objcc"
-            command="-qunique"
-            defaultValue="false"
-            id="org.eclipse.cdt.managedbuilder.xlc.ui.cpp.option.output.unique"
-            isAbstract="false"
-            name="%Option.unique"
-            resourceFilter="all"
-            valueType="boolean">
-         </option>
-         <option
-            category="xlc.c.compiler.category.output"
-            command="-qnovftable"
-            defaultValue="false"
-            id="org.eclipse.cdt.managedbuilder.xlc.ui.option6"
-            isAbstract="false"
-            name="%Option.novftable"
-            resourceFilter="all"
-            valueType="boolean">
-         </option>
-         <option
-            id="xlc.c.compiler.option.optimization.exceptionhandling"
-            isAbstract="false"
-            name="%Option.optimization.exceptionhandling"
-            resourceFilter="all"
-            valueType="enumerated">
-            <enumeratedOptionValue
-               id="xlc.c.compiler.option.optimization.exceptionhandling.default"
-               isDefault="true"
-               name="%Option.default">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qeh"
-               id="xlc.c.compiler.option.optimization.exceptionhandling.eh"
-               name="%Option.optimization.exceptionhandling.eh">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qnoeh"
-               id="xlc.c.compiler.option.optimization.exceptionhandling.noeh"
-               name="%Option.optimization.exceptionhandling.noeh">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qeh=v5"
-               id="xlc.c.compiler.option.optimization.exceptionhandling.v5"
-               name="%Option.optimization.exceptionhandling.v5">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qeh=v6"
-               id="xlc.c.compiler.option.optimization.exceptionhandling.v6"
-               name="%Option.optimization.exceptionhandling.v6">
-            </enumeratedOptionValue>
-         </option>
-         <option
-            id="xlc.c.compiler.option.input.D.cpp"
-            superClass="xlc.c.compiler.option.input.D">
-            <listOptionValue
-               builtIn="true"
-               value="__xlC__">
-            </listOptionValue>
-            <listOptionValue
-               builtIn="true"
-               value="__IBMCPP__">
-            </listOptionValue>
-         </option>
-      </tool>
-      <projectType
-         buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe"
-         id="cdt.managedbuild.target.xlc.exe"
-         isAbstract="false"
-         isTest="false"
-         name="%TargetName.xlc.exe"
-         projectMacroSupplier="org.eclipse.cdt.managedbuilder.xlc.ui.XLCProjectMacroSupplier">
-         <configuration
-               artifactExtension="exe"
-               cleanCommand="rm -rf"
-               errorParsers="org.eclipse.cdt.errorparsers.xlc.XlcErrorParser"
-               id="cdt.managedbuild.config.xlc.exe.debug"
-               languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain};-org.eclipse.cdt.managedbuilder.xlc.core.XlcBuildCommandParser"
-               name="%ConfigName.Dbg">
-            <toolChain
-               archList="all"
-               configurationEnvironmentSupplier="org.eclipse.cdt.managedbuilder.xlc.aix.AixConfigurationEnvironmentSupplier"
-               id="cdt.managedbuild.toolchain.xlc.exe.debug"
-               name="%ToolChainName.Dbg"
-               osList="all"
-               languageSettingsProviders="org.eclipse.cdt.managedbuilder.xlc.core.XlcBuildCommandParser;org.eclipse.cdt.managedbuilder.xlc.core.XlcBuiltinSpecsDetector"
-               targetTool="cdt.managedbuild.tool.xlc.c.linker.exe.debug;cdt.managedbuild.tool.xlc.cpp.linker.exe.debug">
-               <targetPlatform
-                  id="cdt.managedbuild.target.xlc.platform.exe.debug"
-                  name="%PlatformName.Dbg"
-                  osList="all"
-                  archList="all">
-               </targetPlatform>
-               <builder
-                  superClass="cdt.managedbuild.target.gnu.builder"
-                  id="org.eclipse.cdt.manangedbuilder.xlc.builder.exe.debug">
-               </builder>
-               <tool
-                  id="cdt.managedbuild.tool.xlc.cpp.compiler.exe.debug"
-                  superClass="cdt.managedbuild.tool.xlc.cpp.compiler">
-                  <option
-                     id="xlc.cpp.compiler.exe.debug.option.optimization.level"
-                     defaultValue="xlc.c.compiler.optimization.level.none"
-                     superClass="xlc.c.compiler.option.optimization.level">
-                  </option>
-                  <option
-                     id="xlc.cpp.compiler.exe.debug.option.debugging.g"
-                     defaultValue="true"
-                     superClass="xlc.c.compiler.option.ecd.g">
-                  </option>
-               </tool>
-               <tool
-                  id="cdt.managedbuild.tool.xlc.c.compiler.exe.debug"
-                  superClass="cdt.managedbuild.tool.xlc.c.compiler">
-                  <option
-                     id="xlc.c.compiler.exe.debug.option.optimization.level"
-                     defaultValue="xlc.c.optimization.level.none"
-                     superClass="xlc.c.compiler.option.optimization.level">
-                  </option>
-                  <option
-                     id="xlc.c.compiler.exe.debug.option.debugging.g"
-                     defaultValue="true"
-                     superClass="xlc.c.compiler.option.ecd.g">
-                  </option>
-               </tool>
-               <tool
-                  id="cdt.managedbuild.tool.xlc.c.linker.exe.debug"
-                  superClass="cdt.managedbuild.tool.xlc.c.linker">
-               </tool>
-               <tool
-                  id="cdt.managedbuild.tool.xlc.cpp.linker.exe.debug"
-                  superClass="cdt.managedbuild.tool.xlc.cpp.linker">
-               </tool>
-               <tool
-                  id="cdt.managedbuild.tool.xlc.assembler.exe.debug"
-                  superClass="cdt.managedbuild.tool.xlc.assembler">
-               </tool>
-            </toolChain>
-         </configuration>
-         <configuration
-               name="%ConfigName.Rel"
-               artifactExtension="exe"
-               cleanCommand="rm -rf"
-               errorParsers="org.eclipse.cdt.errorparsers.xlc.XlcErrorParser"
-               languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain};-org.eclipse.cdt.managedbuilder.xlc.core.XlcBuildCommandParser"
-               id="cdt.managedbuild.config.xlc.exe.release">
-            <toolChain
-               archList="all"
-               id="cdt.managedbuild.toolchain.xlc.exe.release"
-               name="%ToolChainName.Rel"
-               osList="all"
-               languageSettingsProviders="org.eclipse.cdt.managedbuilder.xlc.core.XlcBuildCommandParser;org.eclipse.cdt.managedbuilder.xlc.core.XlcBuiltinSpecsDetector"
-               targetTool="cdt.managedbuild.tool.xlc.c.linker.exe.release;cdt.managedbuild.tool.xlc.cpp.linker.exe.release">
-               <targetPlatform
-                  id="cdt.managedbuild.target.xlc.platform.exe.release"
-                  name="%PlatformName.Rel"
-                  osList="all"
-                  archList="all">
-               </targetPlatform>
-               <builder
-                  superClass="cdt.managedbuild.target.gnu.builder"
-                  id="org.eclipse.cdt.managedbuilder.xlc.builder.release">
-               </builder>
-               <tool
-                  id="cdt.managedbuild.tool.xlc.cpp.compiler.exe.release"
-                  superClass="cdt.managedbuild.tool.xlc.cpp.compiler">
-                  <option
-                     id="xlc.cpp.compiler.exe.release.option.optimization.level"
-                     defaultValue="xlc.c.optimization.level.Level5"
-                     superClass="xlc.c.compiler.option.optimization.level">
-                  </option>
-                  <option
-                     id="xlc.cpp.compiler.exe.release.option.debugging.g"
-                     defaultValue="false"
-                     superClass="xlc.c.compiler.option.ecd.g">
-                  </option>
-               </tool>
-               <tool
-                  id="cdt.managedbuild.tool.xlc.c.compiler.exe.release"
-                  superClass="cdt.managedbuild.tool.xlc.c.compiler">
-                  <option
-                     id="xlc.c.compiler.exe.release.option.optimization.level"
-                     defaultValue="xlc.c.optimization.level.Level5"
-                     superClass="xlc.c.compiler.option.optimization.level">
-                  </option>
-                  <option
-                     id="xlc.c.compiler.exe.release.option.debugging.g"
-                     defaultValue="false"
-                     superClass="xlc.c.compiler.option.ecd.g">
-                  </option>
-               </tool>
-               <tool
-                  id="cdt.managedbuild.tool.xlc.c.linker.exe.release"
-                  superClass="cdt.managedbuild.tool.xlc.c.linker">
-               </tool>
-               <tool
-                  id="cdt.managedbuild.tool.xlc.cpp.linker.exe.release"
-                  superClass="cdt.managedbuild.tool.xlc.cpp.linker">
-               </tool>
-               <tool
-                  id="cdt.managedbuild.tool.xlc.assembler.exe.release"
-                  superClass="cdt.managedbuild.tool.xlc.assembler">
-               </tool>
-            </toolChain>
-         </configuration>
-      </projectType>
-      <projectType
-         buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.sharedLib"
-         id="cdt.managedbuild.target.xlc.so"
-         isAbstract="false"
-         isTest="false"
-         name="%TargetName.xlc.so"
-         projectMacroSupplier="org.eclipse.cdt.managedbuilder.xlc.ui.XLCProjectMacroSupplier">
-         <configuration
-               name="%ConfigName.Dbg"
-               cleanCommand="rm -rf"
-               artifactExtension="so"
-               errorParsers="org.eclipse.cdt.errorparsers.xlc.XlcErrorParser"
-               languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain};-org.eclipse.cdt.managedbuilder.xlc.core.XlcBuildCommandParser"
-               id="cdt.managedbuild.config.xlc.so.debug">
-            <toolChain
-                  id="cdt.managedbuild.toolchain.xlc.so.debug"
-                  languageSettingsProviders="org.eclipse.cdt.managedbuilder.xlc.core.XlcBuildCommandParser;org.eclipse.cdt.managedbuilder.xlc.core.XlcBuiltinSpecsDetector"
-                  name="%ToolChainName.Dbg"
-                  targetTool="cdt.managedbuild.tool.xlc.c.linker.so.debug;cdt.managedbuild.tool.xlc.cpp.linker.so.debug">
-               <targetPlatform
-                  id="cdt.managedbuild.target.xlc.platform.so.debug"
-                  name="%PlatformName.Dbg"
-                  osList="all"
-                  archList="all">
-               </targetPlatform>
-               <builder
-                  superClass="cdt.managedbuild.target.gnu.builder"
-                  id="org.eclipse.cdt.managedbuilder.xlc.builder.so.debug">
-               </builder>
-               <tool
-                  id="cdt.managedbuild.tool.xlc.cpp.compiler.so.debug"
-                  superClass="cdt.managedbuild.tool.xlc.cpp.compiler">
-                  <option
-                     id="xlc.cpp.compiler.so.debug.option.optimization.level"
-                     defaultValue="xlc.ccompiler.optimization.level.none"
-                     superClass="xlc.c.compiler.option.optimization.level">
-                  </option>
-                  <option
-                     id="xlc.cpp.compiler.so.debug.option.debugging.g"
-                     defaultValue="true"
-                     superClass="xlc.c.compiler.option.ecd.g">
-                  </option>
-               </tool>
-               <tool
-                  id="cdt.managedbuild.tool.xlc.c.compiler.so.debug"
-                  superClass="cdt.managedbuild.tool.xlc.c.compiler">
-                  <option
-                     id="xlc.c.compiler.so.debug.option.optimization.level"
-                     defaultValue="xlc.c.optimization.level.none"
-                     superClass="xlc.c.compiler.option.optimization.level">
-                  </option>
-                  <option
-                     id="xlc.c.compiler.so.debug.option.debugging.g"
-                     defaultValue="true"
-                     superClass="xlc.c.compiler.option.ecd.g">
-                  </option>
-               </tool>
-               <tool
-                  id="cdt.managedbuild.tool.xlc.c.linker.so.debug"
-                  superClass="cdt.managedbuild.tool.xlc.c.linker.so">
-               </tool>
-               <tool
-                  id="cdt.managedbuild.tool.xlc.cpp.linker.so.debug"
-                  superClass="cdt.managedbuild.tool.xlc.cpp.linker.so">
-               </tool>
-               <tool
-                  id="cdt.managedbuild.tool.xlc.assembler.so.debug"
-                  superClass="cdt.managedbuild.tool.xlc.assembler">
-               </tool>
-            </toolChain>
-         </configuration>
-         <configuration
-               name="%ConfigName.Rel"
-               cleanCommand="rm -rf"
-               artifactExtension="so"
-               errorParsers="org.eclipse.cdt.errorparsers.xlc.XlcErrorParser"
-               languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain};-org.eclipse.cdt.managedbuilder.xlc.core.XlcBuildCommandParser"
-               id="cdt.managedbuild.config.xlc.so.release">
-            <toolChain
-                  id="cdt.managedbuild.toolchain.xlc.so.release"
-                  languageSettingsProviders="org.eclipse.cdt.managedbuilder.xlc.core.XlcBuildCommandParser;org.eclipse.cdt.managedbuilder.xlc.core.XlcBuiltinSpecsDetector"
-                  name="%ToolChainName.Rel"
-                  targetTool="cdt.managedbuild.tool.xlc.c.linker.so.release;cdt.managedbuild.tool.xlc.cpp.linker.so.release">
-               <targetPlatform
-                  id="cdt.managedbuild.target.xlc.platform.so.release"
-                  name="%PlatformName.Rel"
-                  osList="all"
-                  archList="all">
-               </targetPlatform>
-               <builder
-                  superClass="cdt.managedbuild.target.gnu.builder"
-                  id="org.eclipse.cdt.managedbuilder.xlc.builder.so.release">
-               </builder>
-               <tool
-                  id="cdt.managedbuild.tool.xlc.cpp.compiler.so.release"
-                  superClass="cdt.managedbuild.tool.xlc.cpp.compiler">
-                  <option
-                     id="xlc.cpp.compiler.so.release.option.optimization.level"
-                     defaultValue="xlc.c.optimization.level.Level5"
-                     superClass="xlc.c.compiler.option.optimization.level">
-                  </option>
-                  <option
-                     id="xlc.cpp.compiler.so.release.option.g"
-                     defaultValue="false"
-                     superClass="xlc.c.compiler.option.ecd.g">
-                  </option>
-               </tool>
-               <tool
-                  id="cdt.managedbuild.tool.xlc.c.compiler.so.release"
-                  superClass="cdt.managedbuild.tool.xlc.c.compiler">
-                  <option
-                     id="xlc.c.compiler.so.release.option.optimization.level"
-                     defaultValue="xlc.c.optimization.level.Level5"
-                     superClass="xlc.c.compiler.option.optimization.level">
-                  </option>
-                  <option
-                     id="xlc.c.compiler.so.release.option.debugging.g"
-                     defaultValue="false"
-                     superClass="xlc.c.compiler.option.ecd.g">
-                  </option>
-               </tool>
-               <tool
-                  id="cdt.managedbuild.tool.xlc.c.linker.so.release"
-                  superClass="cdt.managedbuild.tool.xlc.c.linker.so">
-               </tool>
-               <tool
-                  id="cdt.managedbuild.tool.xlc.cpp.linker.so.release"
-                  superClass="cdt.managedbuild.tool.xlc.cpp.linker.so">
-               </tool>
-               <tool
-                  id="cdt.managedbuild.tool.xlc.assembler.so.release"
-                  superClass="cdt.managedbuild.tool.xlc.assembler">
-               </tool>
-            </toolChain>
-         </configuration>
-      </projectType>
-      <projectType
-         buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.staticLib"
-         id="cdt.managedbuild.target.xlc.lib"
-         isAbstract="false"
-         isTest="false"
-         name="%TargetName.xlc.lib"
-         projectMacroSupplier="org.eclipse.cdt.managedbuilder.xlc.ui.XLCProjectMacroSupplier">
-         <configuration
-               name="%ConfigName.Dbg"
-               cleanCommand="rm -rf"
-               artifactExtension="lib"
-               errorParsers="org.eclipse.cdt.errorparsers.xlc.XlcErrorParser"
-               languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain};-org.eclipse.cdt.managedbuilder.xlc.core.XlcBuildCommandParser"
-               id="cdt.managedbuild.config.xlc.lib.debug">
-            <toolChain
-                  id="cdt.managedbuild.toolchain.xlc.lib.debug"
-                  languageSettingsProviders="org.eclipse.cdt.managedbuilder.xlc.core.XlcBuildCommandParser;org.eclipse.cdt.managedbuilder.xlc.core.XlcBuiltinSpecsDetector"
-                  name="%ToolChainName.Dbg"
-                  targetTool="cdt.managedbuild.tool.xlc.archiver.lib.debug">
-               <targetPlatform
-                  id="cdt.managedbuild.target.xlc.platform.lib.debug"
-                  name="%PlatformName.Dbg"
-                  osList="all"
-                  archList="all">
-               </targetPlatform>
-               <builder
-                  superClass="cdt.managedbuild.target.gnu.builder"
-                  id="org.eclipse.cdt.managedbuilder.xlc.builder.lib.debug">
-               </builder>
-               <tool
-                  id="cdt.managedbuild.tool.xlc.cpp.compiler.lib.debug"
-                  superClass="cdt.managedbuild.tool.xlc.cpp.compiler">
-                  <option
-                     id="xlc.cpp.compiler.lib.debug.option.optimization.level"
-                     defaultValue="xlc.c.compiler.optimization.level.none"
-                     superClass="xlc.c.compiler.option.optimization.level">
-                  </option>
-                  <option
-                     id="xlc.cpp.compiler.lib.debug.option.debugging.f"
-                     defaultValue="true"
-                     superClass="xlc.c.compiler.option.ecd.g">
-                  </option>
-               </tool>
-               <tool
-                  id="cdt.managedbuild.tool.xlc.c.compiler.lib.debug"
-                  superClass="cdt.managedbuild.tool.xlc.c.compiler">
-                  <option
-                     id="xlc.c.compiler.lib.debug.option.optimization.level"
-                     defaultValue="xlc.c.optimization.level.none"
-                     superClass="xlc.c.compiler.option.optimization.level">
-                  </option>
-                  <option
-                     id="xlc.c.compiler.lib.debug.option.debugging.g"
-                     defaultValue="true"
-                     superClass="xlc.c.compiler.option.ecd.g">
-                  </option>
-               </tool>
-               <tool
-                  id="cdt.managedbuild.tool.xlc.archiver.lib.debug"
-                  superClass="cdt.managedbuild.tool.xlc.archiver">
-               </tool>
-               <tool
-                  id="cdt.managedbuild.tool.xlc.assembler.lib.debug"
-                  superClass="cdt.managedbuild.tool.xlc.assembler">
-               </tool>
-            </toolChain>
-         </configuration>
-         <configuration
-               name="%ConfigName.Rel"
-               cleanCommand="rm -rf"
-               artifactExtension="lib"
-               errorParsers="org.eclipse.cdt.errorparsers.xlc.XlcErrorParser"
-               languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain};-org.eclipse.cdt.managedbuilder.xlc.core.XlcBuildCommandParser"
-               id="cdt.managedbuild.config.xlc.lib.release">
-            <toolChain
-                  id="cdt.managedbuild.toolchain.xlc.lib.release"
-                  languageSettingsProviders="org.eclipse.cdt.managedbuilder.xlc.core.XlcBuildCommandParser;org.eclipse.cdt.managedbuilder.xlc.core.XlcBuiltinSpecsDetector"
-                  name="%ToolChainName.Rel"
-                  targetTool="cdt.managedbuild.tool.xlc.archiver.lib.release">
-               <targetPlatform
-                  id="cdt.managedbuild.target.xlc.platform.lib.release"
-                  name="%PlatformName.Rel"
-                  osList="all"
-                  archList="all">
-               </targetPlatform>
-               <builder
-                  superClass="cdt.managedbuild.target.gnu.builder"
-                  id="org.eclipse.cdt.managedbuilder.xlc.builder.lib.release">
-               </builder>
-               <tool
-                  id="cdt.managedbuild.tool.xlc.cpp.compiler.lib.release"
-                  superClass="cdt.managedbuild.tool.xlc.cpp.compiler">
-                  <option
-                     id="xlc.cpp.compiler.lib.release.option.optimization.level"
-                     defaultValue="xlc.c.optimization.level.Level5"
-                     superClass="xlc.c.compiler.option.optimization.level">
-                  </option>
-                  <option
-                     id="xlc.cpp.compiler.lib.release.option.debugging.g"
-                     defaultValue="false"
-                     superClass="xlc.c.compiler.option.ecd.g">
-                  </option>
-               </tool>
-               <tool
-                  id="cdt.managedbuild.tool.xlc.c.compiler.lib.release"
-                  superClass="cdt.managedbuild.tool.xlc.c.compiler">
-                  <option
-                     id="xlc.c.compiler.lib.release.option.optimization.level"
-                     defaultValue="xlc.c.optimization.level.Level5"
-                     superClass="xlc.c.compiler.option.optimization.level">
-                  </option>
-                  <option
-                     id="xlc.c.compiler.lib.release.option.debugging.g"
-                     defaultValue="false"
-                     superClass="xlc.c.compiler.option.ecd.g">
-                  </option>
-               </tool>
-               <tool
-                  id="cdt.managedbuild.tool.xlc.archiver.lib.release"
-                  superClass="cdt.managedbuild.tool.xlc.archiver">
-               </tool>
-               <tool
-                  id="cdt.managedbuild.tool.xlc.assembler.lib.release"
-                  superClass="cdt.managedbuild.tool.xlc.assembler">
-               </tool>
-            </toolChain>
-         </configuration>
-      </projectType>
-      <tool
-         errorParsers="org.eclipse.cdt.errorparsers.xlc.XlcErrorParser"
-         id="org.eclipse.cdt.managedbuilder.xlc.ui.tool.abstractCompiler"
-         isAbstract="true"
-         name="%tool.compiler.abstract">
-         <envVarBuildPath
-            pathType="buildpathInclude"
-            variableList="CPATH,C_INCLUDE_PATH">
-         </envVarBuildPath>
-         <optionCategory
-            name="%OptionCategory.Input"
-            id="xlc.c.compiler.category.Input">
-         </optionCategory>
-         <option
-            defaultValue="false"
-            name="%Option.Preproccomments"
-            category="xlc.c.compiler.category.Input"
-            command="-C"
-            id="xlc.c.compiler.option.input.C"
-            valueType="boolean">
-         </option>
-         <option
-            name="%Option.DefSym"
-            category="xlc.c.compiler.category.Input"
-            command="-D"
-            id="xlc.c.compiler.option.input.D"
-            valueType="definedSymbols">
-         </option>
-         <option
-            name="%Option.InclPaths"
-            category="xlc.c.compiler.category.Input"
-            command="-I"
-            id="xlc.c.compiler.option.include.paths"
-            valueType="includePath"
-            browseType="directory">
-            <listOptionValue
-               builtIn="true"
-               value="/usr/include">
-            </listOptionValue>
-         </option>
-         <option
-            name="%Option.UndefSym"
-            category="xlc.c.compiler.category.Input"
-            command="-U"
-            id="xlc.c.compiler.option.preprocessor.undef.symbol"
-            valueType="stringList">
-         </option>
-         <option
-            defaultValue="false"
-            name="%Option.altivec"
-            category="xlc.c.compiler.category.Input"
-            command="-qaltivec"
-            id="xlc.c.compiler.option.input.altivec"
-            valueType="boolean">
-         </option>
-         <option
-            name="%Option.asm"
-            category="xlc.c.compiler.category.Input"
-            id="xlc.c.compiler.option.input.asm"
-            valueType="enumerated">
-            <enumeratedOptionValue
-               id="xlc.c.compiler.option.input.asm.default"
-               isDefault="true"
-               name="%Option.asm.default">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qasm=stdcpp"
-               id="xlc.c.compiler.option.input.asm.stdcpp"
-               name="%Option.asm.stdcpp">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qasm=gcc"
-               id="xlc.c.compiler.option.input.asm.gcc"
-               name="%Option.asm.gcc">
-            </enumeratedOptionValue>
-         </option>
-         <option
-            name="%Option.qcomplexgccincl"
-            category="xlc.c.compiler.category.Input"
-            command="-qcomplexgccincl"
-            id="xlc.c.compiler.option.input.qcomplexgccincl"
-            valueType="includePath"
-            browseType="directory">
-         </option>
-         <option
-            defaultValue="false"
-            name="%Option.Mbcs"
-            category="xlc.c.compiler.category.Input"
-            command="-qmbcs"
-            id="xlc.c.compiler.option.input.mbcs"
-            valueType="boolean">
-         </option>
-         <option
-            defaultValue="false"
-            name="%Option.Digraph"
-            category="xlc.c.compiler.category.Input"
-            command="-qdigraph"
-            id="xlc.c.compiler.option.input.digraph"
-            valueType="boolean">
-         </option>
-         <option
-            defaultValue="false"
-            name="%Option.Dollar"
-            category="xlc.c.compiler.category.Input"
-            command="-qdollar"
-            id="xlc.c.compiler.option.input.dollar"
-            valueType="boolean">
-         </option>
-         <option
-            defaultValue="false"
-            name="%Option.Incdirfirst"
-            category="xlc.c.compiler.category.Input"
-            command="-qidirfirst"
-            id="xlc.c.compiler.option.input.dirfirst"
-            valueType="boolean">
-         </option>
-         <option
-            name="%Option.ignprag"
-            category="xlc.c.compiler.category.Input"
-            id="xlc.c.compiler.option.input.ignprag"
-            valueType="enumerated">
-            <enumeratedOptionValue
-               name="%Option.none"
-               isDefault="false"
-               id="xlc.c.input.ignprag.none">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.ignprag.disjoint"
-               isDefault="false"
-               command="-qignprag=disjoint"
-               id="xlc.c.input.ignprag.disjoint">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.ignprag.isolated"
-               isDefault="false"
-               command="-qignprag=isolated"
-               id="xlc.c.input.ignprag.isolated">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.ignprag.all"
-               isDefault="false"
-               command="-qignprag=all"
-               id="xlc.c.input.ignprag.all">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.ignprag.ibm"
-               isDefault="false"
-               command="-qignprag=ibm"
-               id="xlc.c.input.ignprag.ibm">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.ignprag.omp"
-               isDefault="false"
-               id="xlc.c.input.ignprag.omp">
-            </enumeratedOptionValue>
-         </option>
-         <option
-            category="xlc.c.compiler.category.Input"
-            command="-qkeyword="
-            id="xlc.c.compiler.option.input.keyword"
-            name="%Option.Keyword"
-            valueType="boolean">
-         </option>
-         <option
-            name="%Option.langlvl"
-            category="xlc.c.compiler.category.Input"
-            id="xlc.c.compiler.option.input.langlvl"
-            valueType="enumerated">
-            <enumeratedOptionValue
-               name="%Option.default"
-               isDefault="false"
-               id="xlc.c.input.langlvl.">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.langlvl.classic"
-               isDefault="false"
-               command="-qlanglvl=classic"
-               id="xlc.c.input.langlvl.classic">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.langlvl.extended"
-               isDefault="false"
-               command="-qlanglvl=extended"
-               id="xlc.c.input.langlvl.extended">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.langlvl.saa"
-               isDefault="false"
-               command="-qlanglvl=saa"
-               id="xlc.c.input.langlvl.saa">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.langlvl.saal2"
-               isDefault="false"
-               command="-qlanglvl=saal2"
-               id="xlc.c.input.langlvl.saal2">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.langlvl.stdc89"
-               isDefault="false"
-               command="-qlanglvl=stdc89"
-               id="xlc.c.input.langlvl.stdc89">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.langlvl.stdc99"
-               isDefault="false"
-               command="-qlanglvl=stdc99"
-               id="xlc.c.input.langlvl.stdc99">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.langlvl.extc89"
-               isDefault="false"
-               command="-qlanglvl=extc89"
-               id="xlc.c.input.langlvl.extc89">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.langlvl.extc99"
-               isDefault="false"
-               command="-qlanglvl=extc99"
-               id="xlc.c.input.langlvl.extc99">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.langlvl.ucs"
-               isDefault="false"
-               command="-qlanglvl=ucs"
-               id="xlc.c.input.langlvl.ucs">
-            </enumeratedOptionValue>
-         </option>
-         <option
-            defaultValue="false"
-            name="%Option.Macpstr"
-            category="xlc.c.compiler.category.Input"
-            command="-qmacpstr"
-            id="xlc.c.compiler.option.input.macpstr"
-            valueType="boolean">
-         </option>
-         <option
-            name="%Option.sourcetype"
-            category="xlc.c.compiler.category.Input"
-            id="xlc.c.compiler.option.input.sourcetype"
-            valueType="enumerated">
-            <enumeratedOptionValue
-               name="%Option.none"
-               isDefault="false"
-               id="xlc.c.input.sourcetype.none">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.default"
-               isDefault="false"
-               command="-qsourcetype=default"
-               id="xlc.c.input.sourcetype.default">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.sourcetype.c"
-               isDefault="false"
-               command="-qsourcetype=c"
-               id="xlc.c.input.sourcetype.c">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.sourcetype.c++"
-               isDefault="false"
-               command="-qsourcetype=c++"
-               id="xlc.c.input.sourcetype.c++">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.sourcetype.assembler"
-               isDefault="false"
-               command="-qsourcetype=assembler"
-               id="xlc.c.input.sourcetype.assembler">
-            </enumeratedOptionValue>
-         </option>
-         <option
-            category="xlc.c.compiler.category.Input"
-            command="-qstdframework"
-            id="xlc.c.compiler.option.input.qstdframework"
-            isAbstract="false"
-            name="%Option.stdframework"
-            resourceFilter="all"
-            valueType="boolean">
-         </option>
-         <option
-            command="-qframeworkdir"
-            id="xlc.c.compiler.option.input.qframeworkdir"
-            isAbstract="false"
-            name="%Option.frameworkdirs"
-            resourceFilter="all"
-            valueType="includePath">
-         </option>
-         <option
-            defaultValue="false"
-            name="%Option.Input"
-            category="xlc.c.compiler.category.Input"
-            command="-qnostdinc"
-            id="xlc.c.compiler.option.input.nostdinc"
-            valueType="boolean">
-         </option>
-         <option
-            defaultValue="false"
-            name="%Option.Trigraph"
-            category="xlc.c.compiler.category.Input"
-            command="-qtrigraph"
-            id="xlc.c.compiler.option.input.trigraph"
-            valueType="boolean">
-         </option>
-         <option
-            defaultValue="false"
-            name="%Option.Utf"
-            category="xlc.c.compiler.category.Input"
-            command="-qutf"
-            id="xlc.c.compiler.option.input.utf"
-            valueType="boolean">
-         </option>
-         <optionCategory
-            name="%OptionCategory.Output"
-            id="xlc.c.compiler.category.output">
-         </optionCategory>
-         <option
-            defaultValue="false"
-            name="%Option.Trace"
-            category="xlc.c.compiler.category.output"
-            command="-#"
-            id="xlc.c.compiler.option.output.trace"
-            valueType="boolean">
-         </option>
-         <option
-            name="%Option.bmaxdata"
-            category="xlc.c.compiler.category.output"
-            command="-bmaxdata="
-            id="xlc.c.compiler.option.output.bmaxdata"
-            valueType="string">
-         </option>
-         <option
-            applicabilityCalculator="org.eclipse.cdt.managedbuilder.xlc.ui.properties.HiddenOptionApplicabilityCalculator"
-            category="xlc.c.compiler.category.output"
-            command="-c"
-            defaultValue="true"
-            id="xlc.c.compiler.option.output.c"
-            name="%Option.c"
-            valueType="boolean">
-         </option>
-         <option
-            defaultValue="false"
-            name="%Option.PreprocOnly"
-            category="xlc.c.compiler.category.output"
-            command="-E"
-            id="xlc.c.compiler.option.preprocessor.preprocess"
-            valueType="boolean">
-         </option>
-         <option
-            defaultValue="false"
-            name="%Option.M"
-            category="xlc.c.compiler.category.output"
-            command="-M"
-            id="xlc.c.compiler.option.output.M"
-            valueType="boolean">
-         </option>
-         <option
-            defaultValue="false"
-            name="%Option.P"
-            category="xlc.c.compiler.category.output"
-            command="-P"
-            id="xlc.c.compiler.option.output.P"
-            valueType="boolean">
-         </option>
-         <option
-            defaultValue="false"
-            name="%Option.Assem"
-            category="xlc.c.compiler.category.output"
-            command="-S"
-            id="xlc.c.compiler.option.output.assem"
-            valueType="boolean">
-         </option>
-         <option
-            defaultValue="false"
-            name="%Option.Strip"
-            category="xlc.c.compiler.category.output"
-            command="-s"
-            id="xlc.c.compiler.option.output.strip"
-            valueType="boolean">
-         </option>
-         <option
-            name="%Option.64"
-            category="xlc.c.compiler.category.output"
-            command="-q64"
-            id="xlc.c.compiler.option.output.64"
-            valueType="boolean">
-         </option>
-         <option
-            name="%Option.Align"
-            category="xlc.c.compiler.category.output"
-            id="xlc.c.compiler.option.alignment.align"
-            valueType="enumerated">
-            <enumeratedOptionValue
-               name="%Option.none"
-               isDefault="false"
-               id="xlc.c.alignment.align.none">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.Align.Full"
-               isDefault="false"
-               command="-qalign=full"
-               id="xlc.c.alignment.align.full">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="POWER™"
-               isDefault="false"
-               command="-qalign=power"
-               id="xlc.c.alignment.align.power">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.Align.Natural"
-               isDefault="false"
-               command="-qalign=natural"
-               id="xlc.c.alignment.align.natural">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.Align.twobyte"
-               isDefault="false"
-               command="-qalign=twobyte"
-               id="xlc.c.alignment.align.twobyte">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.Align.packed"
-               isDefault="false"
-               command="-qalign=packed"
-               id="xlc.c.alignment.align.packed">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.Align.bitpacked"
-               isDefault="false"
-               command="-qalign=bitpacked"
-               id="xlc.c.alignment.align.bitpacked">
-            </enumeratedOptionValue>
-         </option>
-         <option
-            name="%Option.alloca"
-            category="xlc.c.compiler.category.output"
-            command="-qalloca"
-            id="xlc.c.compiler.option.output.alloca"
-            valueType="boolean">
-         </option>
-         <option
-            defaultValue="false"
-            name="%Option.Bitfields"
-            category="xlc.c.compiler.category.output"
-            id="xlc.c.compiler.option.output.bitfields"
-            valueType="enumerated">
-            <enumeratedOptionValue
-               id="xlc.c.compiler.option.output.bitfields.default"
-               isDefault="true"
-               name="%Option.default">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qbitfields=signed"
-               id="xlc.c.compiler.option.output.bitfields.signed"
-               name="%Option.Bitfields.signed">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qbitfields=unsigned"
-               id="xlc.c.compiler.option.output.bitfields.unsigned"
-               name="%Option.Bitfields.unsigned">
-            </enumeratedOptionValue>
-         </option>
-         <option
-            defaultValue="false"
-            name="%Option.Chars"
-            category="xlc.c.compiler.category.output"
-            id="xlc.c.compiler.option.output.chars"
-            valueType="enumerated">
-            <enumeratedOptionValue
-               id="xlc.c.compiler.option.output.chars.default"
-               name="%Option.default">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qchars=signed"
-               id="xlc.c.compiler.option.output.chars.signed"
-               name="%Option.chars.signed">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qchars=unsigned"
-               id="xlc.c.compiler.option.output.chars.unsigned"
-               name="%Option.chars.unsigned">
-            </enumeratedOptionValue>
-         </option>
-         <option
-            applicabilityCalculator="org.eclipse.cdt.managedbuilder.xlc.ui.properties.HiddenOptionApplicabilityCalculator"
-            category="xlc.c.compiler.category.output"
-            command="-qenablevmx"
-            defaultValue="false"
-            id="xlc.c.compiler.option.output.enablevmx"
-            name="%Option.enablevmx"
-            valueType="boolean">
-         </option>
-         <option
-            name="%Option.Enum"
-            category="xlc.c.compiler.category.output"
-            id="xlc.c.compiler.option.output.alignment.enum"
-            valueType="enumerated">
-            <enumeratedOptionValue
-               name="%Option.none"
-               isDefault="false"
-               id="xlc.c.option.output.alignment.enum.none">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.enum.Int"
-               isDefault="false"
-               command="-qenum=int"
-               id="xlc.c.option.output.alignment.enum.int">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.enum.Intlong"
-               isDefault="false"
-               command="-qenum=intlong"
-               id="xlc.c.option.output.alignment.enum.intlong">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.enum.small"
-               isDefault="false"
-               command="-qenum=small"
-               id="xlc.c.option.output.alignment.enum.small">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.enum.1"
-               isDefault="false"
-               command="-qenum=1"
-               id="xlc.c.option.output.alignment.enum.1">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.enum.2"
-               isDefault="false"
-               command="-qenum=2"
-               id="xlc.c.option.output.alignment.enum.2">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.enum.4"
-               isDefault="false"
-               command="-qenum=4"
-               id="xlc.c.option.output.alignment.enum.4">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.enum.8"
-               isDefault="false"
-               command="-qenum=8"
-               id="xlc.c.option.output.alignment.enum.8">
-            </enumeratedOptionValue>
-         </option>
-         <option
-            name="%Option.Pic"
-            category="xlc.c.compiler.category.output"
-            id="xlc.c.compiler.option.output.pic"
-            valueType="enumerated">
-            <enumeratedOptionValue
-               name="%Option.none"
-               isDefault="false"
-               id="xlc.c.output.pic.none">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.Pic.Small"
-               isDefault="false"
-               command="-qpic=small"
-               id="xlc.c.output.pic.small">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.Pic.Large"
-               isDefault="false"
-               command="-qpic=large"
-               id="xlc.c.output.pic.large">
-            </enumeratedOptionValue>
-         </option>
-         <option
-            category="xlc.c.compiler.category.output"
-            command="-qfuncsect"
-            defaultValue="false"
-            id="xlc.c.compiler.option.output.funcsect"
-            name="%Option.funcsect"
-            valueType="boolean">
-         </option>
-         <option
-            category="xlc.c.compiler.category.output"
-            command="-qppline"
-            defaultValue="false"
-            id="xlc.c.compiler.option.output.ppline"
-            name="%Option.ppline"
-            valueType="boolean">
-         </option>
-         <option
-            category="xlc.c.compiler.category.output"
-            command="-qnoro"
-            defaultValue="false"
-            id="xlc.c.compiler.option.output.noro"
-            name="%Option.noro"
-            valueType="boolean">
-         </option>
-         <option
-            category="xlc.c.compiler.category.output"
-            command="-qnoroconst"
-            defaultValue="false"
-            id="xlc.c.compiler.option.output.noroconst"
-            name="%Option.noroconst"
-            valueType="boolean">
-         </option>
-         <option
-            category="xlc.c.compiler.category.output"
-            command="-qroptr"
-            defaultValue="false"
-            id="xlc.c.compiler.option.output.roptr"
-            name="%Option.roptr"
-            valueType="boolean">
-         </option>
-         <option
-            category="xlc.c.compiler.category.output"
-            command="-qsaveopt"
-            defaultValue="false"
-            id="xlc.c.compiler.option.output.saveopt"
-            name="%Option.saveopt"
-            valueType="boolean">
-         </option>
-         <option
-            category="xlc.c.compiler.category.output"
-            command="-qstaticinline"
-            defaultValue="false"
-            id="xlc.c.compiler.option.output.staticinline"
-            name="%Option.staticinline"
-            valueType="boolean">
-         </option>
-         <option
-            category="xlc.c.compiler.category.output"
-            command="-qstatsym"
-            defaultValue="false"
-            id="xlc.c.compiler.option.output.statsym"
-            name="%Option.statsym"
-            valueType="boolean">
-         </option>
-         <option
-            category="xlc.c.compiler.category.output"
-            command="-qthreaded"
-            defaultValue="false"
-            id="xlc.c.compiler.option.output.threaded"
-            name="%Option.threaded"
-            valueType="boolean">
-         </option>
-         <option
-            category="xlc.c.compiler.category.output"
-            command="-qvrsave"
-            defaultValue="false"
-            id="xlc.c.compiler.option.output.vrsave"
-            name="%Option.vrsave"
-            valueType="boolean">
-         </option>
-         <option
-            category="xlc.c.compiler.category.output"
-            command="-qweaksymbol"
-            defaultValue="false"
-            id="xlc.c.compiler.option.output.weaksymbol"
-            name="%Option.weaksymbol"
-            valueType="boolean">
-         </option>
-         <option
-            category="xlc.c.compiler.category.output"
-            command="-qxcall"
-            defaultValue="false"
-            id="xlc.c.compiler.option.output.xcall"
-            name="%Option.xcall"
-            valueType="boolean">
-         </option>
-         <optionCategory
-            name="%OptionCategory.Optimize"
-            id="xlc.c.compiler.category.optimization">
-         </optionCategory>
-         <option
-            name="%Option.OptLevel"
-            category="xlc.c.compiler.category.optimization"
-            id="xlc.c.compiler.option.optimization.level"
-            valueType="enumerated">
-            <enumeratedOptionValue
-               name="%Option.none"
-               isDefault="true"
-               command="-O0"
-               id="xlc.c.optimization.level.none">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.Optimize.Optimize"
-               command="-O"
-               id="xlc.c.optimization.level.optimize">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.Optimize.Level2"
-               command="-O2"
-               id="xlc.c.optimization.level.Level2">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.Optimize.Level3"
-               command="-O3"
-               id="xlc.c.optimization.level.Level3">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.Optimize.Level4"
-               command="-O4"
-               id="xlc.c.optimization.level.Level4">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.Optimize.Level5"
-               command="-O5"
-               id="xlc.c.optimization.level.Level5">
-            </enumeratedOptionValue>
-         </option>
-         <option
-            name="%Option.inlining"
-            category="xlc.c.compiler.category.optimization"
-            id="xlc.c.compiler.option.optimization.inlining"
-            valueType="enumerated">
-            <enumeratedOptionValue
-               id="xlc.c.compiler.option.optimization.inlining.default"
-               isDefault="true"
-               name="%Option.default">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-Q"
-               id="xlc.c.compiler.option.optimization.inlining.Q"
-               name="%Option.inlining.Q">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-Q!"
-               id="xlc.c.compiler.option.optimization.inlining.Qexclamation"
-               name="%Option.inlining.Qexclamation">
-            </enumeratedOptionValue>
-         </option>
-         <option
-            applicabilityCalculator="org.eclipse.cdt.managedbuilder.xlc.ui.properties.XLCApplicabilityCalculator"
-            category="xlc.c.compiler.category.optimization"
-            id="xlc.c.compiler.option.optimization.arch"
-            name="%Option.optimization.arch"
-            valueType="enumerated">
-            <enumeratedOptionValue
-               id="xlc.c.compiler.option.optimization.arch.default"
-               isDefault="true"
-               name="%Option.default">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=auto"
-               id="xlc.c.compiler.option.optimization.arch.auto"
-               name="auto">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=com"
-               id="xlc.c.compiler.option.optimization.arch.com"
-               name="com">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=403"
-               id="xlc.c.compiler.option.optimization.arch.403"
-               name="PowerPC® 403">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=601"
-               id="xlc.c.compiler.option.optimization.arch.601"
-               name="PowerPC® 601">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=602"
-               id="xlc.c.compiler.option.optimization.arch.602"
-               name="PowerPC® 602">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=603"
-               id="xlc.c.compiler.option.optimization.arch.603"
-               name="PowerPC® 603">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=604"
-               id="xlc.c.compiler.option.optimization.arch.604"
-               name="PowerPC® 604">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=pwr"
-               id="xlc.c.compiler.option.optimization.arch.pwr"
-               name="POWER(TM)">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=pwr2"
-               id="xlc.c.compiler.option.optimization.arch.pwr2"
-               name="POWER2(TM)">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=pwr2s"
-               id="xlc.c.compiler.option.optimization.arch.pwr2s"
-               name="POWER2(TM) s">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=pwr2sc"
-               id="xlc.c.compiler.option.optimization.arch.pwr2sc"
-               name="POWER2(TM) Super Chip">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=pwr3"
-               id="xlc.c.compiler.option.optimization.arch.pwr3"
-               name="POWER3(TM)">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=pwr4"
-               id="xlc.c.compiler.option.optimization.arch.pwr4"
-               name="POWER4(TM)">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=pwr5"
-               id="xlc.c.compiler.option.optimization.arch.pwr5"
-               name="POWER5(TM)">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=ppc"
-               id="xlc.c.compiler.option.optimization.arch.ppc"
-               name="PowerPC®">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=ppc64"
-               id="xlc.c.compiler.option.optimization.arch.ppc64"
-               name="%Option.optimization.arch.ppc64">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=ppcgr"
-               id="xlc.c.compiler.option.optimization.arch.ppcgr"
-               name="%Option.optimization.arch.ppcgr">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=ppc64gr"
-               id="xlc.c.compiler.option.optimization.arch.ppc64gr"
-               name="%Option.optimization.arch.ppc64gr">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=ppcs4grsq"
-               id="xlc.c.compiler.option.optimization.arch.ppc64grsq"
-               name="%Option.optimization.arch.ppc64grsq">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=ppc64v"
-               id="xlc.c.compiler.option.optimization.arch.ppc64v"
-               name="%Option.optimization.arch.ppc64v">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=ppc970"
-               id="xlc.c.compiler.option.optimization.arch.ppc970"
-               name="PowerPC® 970">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=rs64a"
-               id="xlc.c.compiler.option.optimization.arch.rs64a"
-               name="RS64I">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=rs64b"
-               id="xlc.c.compiler.option.optimization.arch.rs64b"
-               name="RS64II">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=rs64c"
-               id="xlc.c.compiler.option.optimization.arch.rs64c"
-               name="RS64III">
-            </enumeratedOptionValue>
-         </option>
-         <option
-            applicabilityCalculator="org.eclipse.cdt.managedbuilder.xlc.ui.properties.XLCApplicabilityCalculator"
-            category="xlc.c.compiler.category.optimization"
-            id="xlc.c.compiler.option.optimization.arch.9.0"
-            name="%Option.optimization.arch"
-            valueType="enumerated">
-            <enumeratedOptionValue
-               id="xlc.c.compiler.option.optimization.arch.default"
-               isDefault="true"
-               name="%Option.default">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=auto"
-               id="xlc.c.compiler.option.optimization.arch.auto"
-               name="auto">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=403"
-               id="xlc.c.compiler.option.optimization.arch.403"
-               name="PowerPC® 403">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=604"
-               id="xlc.c.compiler.option.optimization.arch.604"
-               name="PowerPC® 604">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=pwr3"
-               id="xlc.c.compiler.option.optimization.arch.pwr3"
-               name="POWER3(TM)">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=pwr4"
-               id="xlc.c.compiler.option.optimization.arch.pwr4"
-               name="POWER4(TM)">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=pwr5"
-               id="xlc.c.compiler.option.optimization.arch.pwr5"
-               name="POWER5(TM)">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=ppc"
-               id="xlc.c.compiler.option.optimization.arch.ppc"
-               name="PowerPC®">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=ppc64"
-               id="xlc.c.compiler.option.optimization.arch.ppc64"
-               name="%Option.optimization.arch.ppc64">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=ppcgr"
-               id="xlc.c.compiler.option.optimization.arch.ppcgr"
-               name="%Option.optimization.arch.ppcgr">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=ppc64gr"
-               id="xlc.c.compiler.option.optimization.arch.ppc64gr"
-               name="%Option.optimization.arch.ppc64gr">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=ppcs4grsq"
-               id="xlc.c.compiler.option.optimization.arch.ppc64grsq"
-               name="%Option.optimization.arch.ppc64grsq">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=ppc64v"
-               id="xlc.c.compiler.option.optimization.arch.ppc64v"
-               name="%Option.optimization.arch.ppc64v">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=ppc970"
-               id="xlc.c.compiler.option.optimization.arch.ppc970"
-               name="PowerPC® 970">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=rs64a"
-               id="xlc.c.compiler.option.optimization.arch.rs64a"
-               name="RS64I">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=rs64b"
-               id="xlc.c.compiler.option.optimization.arch.rs64b"
-               name="RS64II">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=rs64c"
-               id="xlc.c.compiler.option.optimization.arch.rs64c"
-               name="RS64III">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=pwr6"
-               id="xlc.c.compiler.option.optimization.arch.pwr6"
-               name="POWER6 (TM)">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=pwr6e"
-               id="xlc.c.compiler.option.optimization.arch.pwr6e"
-               name="POWER6 (TM) e">
-            </enumeratedOptionValue>
-         </option>
-         <option
-            applicabilityCalculator="org.eclipse.cdt.managedbuilder.xlc.ui.properties.XLCApplicabilityCalculator"
-            category="xlc.c.compiler.category.optimization"
-            id="xlc.c.compiler.option.optimization.arch.11.1"
-            name="%Option.optimization.arch"
-            valueType="enumerated">
-            <enumeratedOptionValue
-               id="xlc.c.compiler.option.optimization.arch.default"
-               isDefault="true"
-               name="%Option.default">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=auto"
-               id="xlc.c.compiler.option.optimization.arch.auto"
-               name="auto">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=403"
-               id="xlc.c.compiler.option.optimization.arch.403"
-               name="PowerPC® 403">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=604"
-               id="xlc.c.compiler.option.optimization.arch.604"
-               name="PowerPC® 604">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=pwr3"
-               id="xlc.c.compiler.option.optimization.arch.pwr3"
-               name="POWER3(TM)">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=pwr4"
-               id="xlc.c.compiler.option.optimization.arch.pwr4"
-               name="POWER4(TM)">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=pwr5"
-               id="xlc.c.compiler.option.optimization.arch.pwr5"
-               name="POWER5(TM)">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=pwr5"
-               id="xlc.c.compiler.option.optimization.arch.pwr5"
-               name="POWER5(TM)">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=ppc"
-               id="xlc.c.compiler.option.optimization.arch.ppc"
-               name="PowerPC®">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=ppc64"
-               id="xlc.c.compiler.option.optimization.arch.ppc64"
-               name="%Option.optimization.arch.ppc64">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=ppcgr"
-               id="xlc.c.compiler.option.optimization.arch.ppcgr"
-               name="%Option.optimization.arch.ppcgr">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=ppc64gr"
-               id="xlc.c.compiler.option.optimization.arch.ppc64gr"
-               name="%Option.optimization.arch.ppc64gr">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=ppcs4grsq"
-               id="xlc.c.compiler.option.optimization.arch.ppc64grsq"
-               name="%Option.optimization.arch.ppc64grsq">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=ppc64v"
-               id="xlc.c.compiler.option.optimization.arch.ppc64v"
-               name="%Option.optimization.arch.ppc64v">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=ppc970"
-               id="xlc.c.compiler.option.optimization.arch.ppc970"
-               name="PowerPC® 970">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=rs64a"
-               id="xlc.c.compiler.option.optimization.arch.rs64a"
-               name="RS64I">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=rs64b"
-               id="xlc.c.compiler.option.optimization.arch.rs64b"
-               name="RS64II">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=rs64c"
-               id="xlc.c.compiler.option.optimization.arch.rs64c"
-               name="RS64III">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=pwr6"
-               id="xlc.c.compiler.option.optimization.arch.pwr6"
-               name="POWER6 (TM)">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=pwr6e"
-               id="xlc.c.compiler.option.optimization.arch.pwr6e"
-               name="POWER6 (TM) e">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=pwr7"
-               id="xlc.c.compiler.option.optimization.arch.pwr7"
-               name="POWER7 (TM)">
-            </enumeratedOptionValue>
-         </option>
-         <option
-            applicabilityCalculator="org.eclipse.cdt.managedbuilder.xlc.ui.properties.XLCApplicabilityCalculator"
-            category="xlc.c.compiler.category.optimization"
-            id="xlc.c.compiler.option.optimization.tune"
-            name="%Option.optimization.tune"
-            valueType="enumerated">
-            <enumeratedOptionValue
-               id="xlc.c.compiler.option.optimization.tune.default"
-               isDefault="true"
-               name="%Option.default">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=auto"
-               id="xlc.c.compiler.option.optimization.tune.auto"
-               name="%Option.optimization.tune.auto">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=403"
-               id="xlc.c.compiler.option.optimization.tune.403"
-               name="PowerPC® 403">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=601"
-               id="xlc.c.compiler.option.optimization.tune.601"
-               name="PowerPC® 601">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=602"
-               id="xlc.c.compiler.option.optimization.tune.602"
-               name="PowerPC® 602">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=603"
-               id="xlc.c.compiler.option.optimization.tune.603"
-               name="PowerPC® 603">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=604"
-               id="xlc.c.compiler.option.optimization.tune.604"
-               name="PowerPC® 604">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=pwr"
-               id="xlc.c.compiler.option.optimization.tune.pwr"
-               name="POWER(TM)">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=pwr2"
-               id="xlc.c.compiler.option.optimization.tune.pwr2"
-               name="POWER2(TM)">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=pwr2s"
-               id="xlc.c.compiler.option.optimization.tune.pwr2s"
-               name="POWER2(TM) s">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=pwr2sc"
-               id="xlc.c.compiler.option.optimization.tune.pwr2sc"
-               name="POWER2(TM) Super Chip">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=pwr3"
-               id="xlc.c.compiler.option.optimization.tune.pwr3"
-               name="POWER3(TM)">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=pwr4"
-               id="xlc.c.compiler.option.optimization.tune.pwr4"
-               name="POWER4(TM)">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=pwr5"
-               id="xlc.c.compiler.option.optimization.tune.pwr5"
-               name="POWER5(TM)">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=ppc"
-               id="xlc.c.compiler.option.optimization.tune.ppc"
-               name="PowerPC®">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=ppc64"
-               id="xlc.c.compiler.option.optimization.tune.ppc64"
-               name="%Option.optimization.arch.ppc64">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=ppcgr"
-               id="xlc.c.compiler.option.optimization.tune.ppcgr"
-               name="%Option.optimization.arch.ppcgr">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=ppc64gr"
-               id="xlc.c.compiler.option.optimization.tune.ppc64gr"
-               name="%Option.optimization.arch.ppc64gr">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=ppcs4grsq"
-               id="xlc.c.compiler.option.optimization.tune.ppc64grsq"
-               name="%Option.optimization.arch.ppc64grsq">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=ppc64v"
-               id="xlc.c.compiler.option.optimization.tune.ppc64v"
-               name="%Option.optimization.arch.ppc64v">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=ppc970"
-               id="xlc.c.compiler.option.optimization.tune.ppc970"
-               name="PowerPC® 970">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=rs64a"
-               id="xlc.c.compiler.option.optimization.tune.rs64a"
-               name="RS64I">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=rs64b"
-               id="xlc.c.compiler.option.optimization.tune.rs64b"
-               name="RS64II">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=rs64c"
-               id="xlc.c.compiler.option.optimization.tune.rs64c"
-               name="RS64III">
-            </enumeratedOptionValue>
-         </option>
-         <option
-            applicabilityCalculator="org.eclipse.cdt.managedbuilder.xlc.ui.properties.XLCApplicabilityCalculator"
-            category="xlc.c.compiler.category.optimization"
-            id="xlc.c.compiler.option.optimization.tune.9.0"
-            name="%Option.optimization.tune"
-            valueType="enumerated">
-            <enumeratedOptionValue
-               id="xlc.c.compiler.option.optimization.tune.default"
-               isDefault="true"
-               name="%Option.default">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=auto"
-               id="xlc.c.compiler.option.optimization.tune.auto"
-               name="%Option.optimization.tune.auto">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=403"
-               id="xlc.c.compiler.option.optimization.tune.403"
-               name="PowerPC® 403">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=604"
-               id="xlc.c.compiler.option.optimization.tune.604"
-               name="PowerPC® 604">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=pwr3"
-               id="xlc.c.compiler.option.optimization.tune.pwr3"
-               name="POWER3(TM)">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=pwr4"
-               id="xlc.c.compiler.option.optimization.tune.pwr4"
-               name="POWER4(TM)">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=pwr5"
-               id="xlc.c.compiler.option.optimization.tune.pwr5"
-               name="POWER5(TM)">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=ppc"
-               id="xlc.c.compiler.option.optimization.tune.ppc"
-               name="PowerPC®">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=ppc64"
-               id="xlc.c.compiler.option.optimization.tune.ppc64"
-               name="%Option.optimization.arch.ppc64">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=ppcgr"
-               id="xlc.c.compiler.option.optimization.tune.ppcgr"
-               name="%Option.optimization.arch.ppcgr">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=ppc64gr"
-               id="xlc.c.compiler.option.optimization.tune.ppc64gr"
-               name="%Option.optimization.arch.ppc64gr">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=ppcs4grsq"
-               id="xlc.c.compiler.option.optimization.tune.ppc64grsq"
-               name="%Option.optimization.arch.ppc64grsq">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=ppc64v"
-               id="xlc.c.compiler.option.optimization.tune.ppc64v"
-               name="%Option.optimization.arch.ppc64v">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=ppc970"
-               id="xlc.c.compiler.option.optimization.tune.ppc970"
-               name="PowerPC® 970">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=rs64a"
-               id="xlc.c.compiler.option.optimization.tune.rs64a"
-               name="RS64I">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=rs64b"
-               id="xlc.c.compiler.option.optimization.tune.rs64b"
-               name="RS64II">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=rs64c"
-               id="xlc.c.compiler.option.optimization.tune.rs64c"
-               name="RS64III">
-            </enumeratedOptionValue>
-         </option>
-         <option
-            applicabilityCalculator="org.eclipse.cdt.managedbuilder.xlc.ui.properties.XLCApplicabilityCalculator"
-            category="xlc.c.compiler.category.optimization"
-            id="xlc.c.compiler.option.optimization.tune.11.1"
-            name="%Option.optimization.tune"
-            valueType="enumerated">
-            <enumeratedOptionValue
-               id="xlc.c.compiler.option.optimization.tune.default"
-               isDefault="true"
-               name="%Option.default">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=auto"
-               id="xlc.c.compiler.option.optimization.tune.auto"
-               name="%Option.optimization.tune.auto">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=403"
-               id="xlc.c.compiler.option.optimization.tune.403"
-               name="PowerPC® 403">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=604"
-               id="xlc.c.compiler.option.optimization.tune.604"
-               name="PowerPC® 604">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=pwr3"
-               id="xlc.c.compiler.option.optimization.tune.pwr3"
-               name="POWER3(TM)">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=pwr4"
-               id="xlc.c.compiler.option.optimization.tune.pwr4"
-               name="POWER4(TM)">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=pwr5"
-               id="xlc.c.compiler.option.optimization.tune.pwr5"
-               name="POWER5(TM)">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=pwr7"
-               id="xlc.c.compiler.option.optimization.tune.pwr7"
-               name="POWER7(TM)">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=ppc"
-               id="xlc.c.compiler.option.optimization.tune.ppc"
-               name="PowerPC®">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=ppc64"
-               id="xlc.c.compiler.option.optimization.tune.ppc64"
-               name="%Option.optimization.arch.ppc64">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=ppcgr"
-               id="xlc.c.compiler.option.optimization.tune.ppcgr"
-               name="%Option.optimization.arch.ppcgr">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=ppc64gr"
-               id="xlc.c.compiler.option.optimization.tune.ppc64gr"
-               name="%Option.optimization.arch.ppc64gr">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=ppcs4grsq"
-               id="xlc.c.compiler.option.optimization.tune.ppc64grsq"
-               name="%Option.optimization.arch.ppc64grsq">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=ppc64v"
-               id="xlc.c.compiler.option.optimization.tune.ppc64v"
-               name="%Option.optimization.arch.ppc64v">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=ppc970"
-               id="xlc.c.compiler.option.optimization.tune.ppc970"
-               name="PowerPC® 970">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=rs64a"
-               id="xlc.c.compiler.option.optimization.tune.rs64a"
-               name="RS64I">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=rs64b"
-               id="xlc.c.compiler.option.optimization.tune.rs64b"
-               name="RS64II">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtune=rs64c"
-               id="xlc.c.compiler.option.optimization.tune.rs64c"
-               name="RS64III">
-            </enumeratedOptionValue>
-         </option>
-         <option
-            name="%Option.aggrcopy"
-            category="xlc.c.compiler.category.optimization"
-            id="xlc.c.compiler.option.optimization.aggrcopy"
-            valueType="enumerated">
-            <enumeratedOptionValue
-               name="%Option.none"
-               isDefault="false"
-               id="xlc.c.optimization.aggrcopy.none">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.aggrcopy.nooverlap"
-               command="-qaggrcopy=nooverlap"
-               id="xlc.c.optimization.aggrcopy.nooverlap">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.aggrcopy.overlap"
-               command="-qaggrcopy=overlap"
-               id="xlc.c.optimization.aggrcopy.overlap">
-            </enumeratedOptionValue>
-         </option>
-         <option
-            name="%Option.alias"
-            category="xlc.c.compiler.category.optimization"
-            command="-qalias="
-            id="xlc.c.compiler.option.optimization.alias"
-            valueType="string">
-         </option>
-         <option
-            name="%Option.optimization.Cache"
-            category="xlc.c.compiler.category.optimization"
-            command="-qcache="
-            id="xlc.c.compiler.option.optimization.cache"
-            valueType="string">
-         </option>
-         <option
-            name="%Option.compact"
-            category="xlc.c.compiler.category.optimization"
-            command="-qcompact"
-            id="xlc.c.compiler.option.optimization.compact"
-            valueType="boolean">
-         </option>
-         <option
-            name="%Option.optimization.dataimported"
-            category="xlc.c.compiler.category.optimization"
-            command="-qdataimported="
-            id="xlc.c.compiler.option.optimization.dataimported"
-            valueType="string">
-         </option>
-         <option
-            name="%Option.optimization.datalocal"
-            category="xlc.c.compiler.category.optimization"
-            command="-qdatalocal="
-            id="xlc.c.compiler.option.optimization.datalocal"
-            valueType="string">
-         </option>
-         <option
-            name="%Option.directstorage"
-            category="xlc.c.compiler.category.optimization"
-            command="-qdirectstorage"
-            id="xlc.c.compiler.option.optimization.directstorage"
-            valueType="boolean">
-         </option>
-         <option
-            name="%Option.fdpr"
-            category="xlc.c.compiler.category.optimization"
-            command="-qfdpr"
-            id="xlc.c.compiler.option.optimization.fdpr"
-            valueType="boolean">
-         </option>
-         <option
-            name="%Option.optimization.hot"
-            category="xlc.c.compiler.category.optimization"
-            command="-qhot="
-            id="xlc.c.compiler.option.optimization.hot"
-            valueType="string">
-         </option>
-         <option
-            name="%Option.ignerrno"
-            category="xlc.c.compiler.category.optimization"
-            command="-qignerrno"
-            id="xlc.c.compiler.option.optimization.ignerrno"
-            valueType="boolean">
-         </option>
-         <option
-            name="%Option.optimization.ipa"
-            category="xlc.c.compiler.category.optimization"
-            command="-qipa="
-            id="xlc.c.compiler.option.optimization.ipa"
-            valueType="string">
-         </option>
-         <option
-            name="%Option.optimization.isolatedcall"
-            category="xlc.c.compiler.category.optimization"
-            command="-qisolated_call="
-            id="xlc.c.compiler.option.optimization.isolatedcall"
-            valueType="string">
-         </option>
-         <option
-            name="%Option.largepage"
-            category="xlc.c.compiler.category.optimization"
-            command="-qlargepage"
-            id="xlc.c.compiler.option.optimization.largepage"
-            valueType="boolean">
-         </option>
-         <option
-            name="%Option.libansi"
-            category="xlc.c.compiler.category.optimization"
-            command="-qlibansi"
-            id="xlc.c.compiler.option.optimization.libansi"
-            valueType="boolean">
-         </option>
-         <option
-            name="%Option.pdf1"
-            category="xlc.c.compiler.category.optimization"
-            command="-qpdf1"
-            id="xlc.c.compiler.option.optimization.pdf1"
-            valueType="boolean">
-         </option>
-         <option
-            name="%Option.pdf2"
-            category="xlc.c.compiler.category.optimization"
-            command="-qpdf2"
-            id="xlc.c.compiler.option.optimization.pdf2"
-            valueType="boolean">
-         </option>
-         <option
-            defaultValue="false"
-            name="%Option.optimization.Prefetch"
-            category="xlc.c.compiler.category.optimization"
-            command="-qnoprefetch"
-            id="xlc.c.compiler.option.optimization.prefetch"
-            valueType="boolean">
-         </option>
-         <option
-            name="%Option.optimization.procimported"
-            category="xlc.c.compiler.category.optimization"
-            command="-qprocunknown"
-            id="xlc.c.compiler.option.optimization.procimported"
-            valueType="string">
-         </option>
-         <option
-            name="%Option.optimization.procunknown"
-            category="xlc.c.compiler.category.optimization"
-            command="-qprocunknown="
-            id="xlc.c.compiler.option.optimization.procunknown"
-            valueType="string">
-         </option>
-         <option
-            defaultValue="false"
-            name="%Option.optimization.showpdf"
-            category="xlc.c.compiler.category.optimization"
-            command="-qshowpdf"
-            id="xlc.c.compiler.option.optimization.showpdf"
-            valueType="boolean">
-         </option>
-         <option
-            defaultValue="false"
-            name="%Option.optimization.smallstack"
-            category="xlc.c.compiler.category.optimization"
-            command="-qsmallstack"
-            id="xlc.c.compiler.option.optimization.smallstack"
-            valueType="boolean">
-         </option>
-         <option
-            applicabilityCalculator="org.eclipse.cdt.managedbuilder.xlc.ui.properties.XLCApplicabilityCalculator"
-            category="xlc.c.compiler.category.optimization"
-            command="-qsmp"
-            defaultValue="false"
-            id="xlc.c.compiler.option.optimization.smp"
-            name="%Option.optimization.smp"
-            valueType="boolean">
-         </option>
-         <option
-            applicabilityCalculator="org.eclipse.cdt.managedbuilder.xlc.ui.properties.XLCApplicabilityCalculator"
-            category="xlc.c.compiler.category.optimization"
-            command="-qsmp="
-            id="xlc.c.compiler.option.optimization.smp.v10"
-            name="%Option.optimization.smp.v10"
-            tip="%Option.optimization.smp.v10.tooltip"
-            valueType="string">
-         </option>
-         <option
-            name="%Option.optimization.Spill"
-            category="xlc.c.compiler.category.optimization"
-            command="-qspill="
-            id="xlc.c.compiler.option.optimization.spill"
-            valueType="string">
-         </option>
-         <option
-            applicabilityCalculator="org.eclipse.cdt.managedbuilder.xlc.ui.properties.XLCApplicabilityCalculator"
-            category="xlc.c.compiler.category.optimization"
-            command="-qstrict"
-            defaultValue="false"
-            id="xlc.c.compiler.option.optimization.strict"
-            name="%Option.optimization.Strict"
-            valueType="boolean">
-         </option>
-         <option
-            applicabilityCalculator="org.eclipse.cdt.managedbuilder.xlc.ui.properties.XLCApplicabilityCalculator"
-            category="xlc.c.compiler.category.optimization"
-            command="-qstrict="
-            id="xlc.c.compiler.option.optimization.strict.v10"
-            name="%Option.optimization.Strict.v10"
-            tip="%Option.optimization.Strict.v10.tooltip"
-            valueType="string">
-         </option>
-         <option
-            name="%Option.optimization.loopinduction"
-            category="xlc.c.compiler.category.optimization"
-            id="xlc.c.compiler.option.optimization.loopinduction"
-            valueType="enumerated">
-            <enumeratedOptionValue
-               id="org.eclipse.cdt.managedbuilder.xlc.ui.enumeratedOptionValue10"
-               isDefault="true"
-               name="%Option.default">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.optimization.strict_induction"
-               command="-qstrict_induction"
-               id="xlc.c.optimization.optimize.strict_induction">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.optimization.nostrict_induction"
-               isDefault="false"
-               command="-qnostrict_induction"
-               id="xlc.c.optimization.optimize.nostrict_induction">
-            </enumeratedOptionValue>
-         </option>
-         <option
-            defaultValue="false"
-            name="%Option.optimization.tocdata"
-            category="xlc.c.compiler.category.optimization"
-            command="-qtocdata"
-            id="xlc.c.compiler.option.optimization.tocdata"
-            valueType="boolean">
-         </option>
-         <optionCategory
-            name="%OptionCategory.ifp"
-            id="xlc.c.compiler.category.ifp">
-         </optionCategory>
-         <option
-            name="%Option.y"
-            category="xlc.c.compiler.category.ifp"
-            id="xlc.c.compiler.option.ifp.y"
-            valueType="enumerated">
-            <enumeratedOptionValue
-               name="%Option.none"
-               isDefault="false"
-               id="xlc.c.compiler.option.ifp.y.none">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.y.n"
-               isDefault="false"
-               command="-yn"
-               id="xlc.c.compiler.option.ifp.y.n">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.y.m"
-               isDefault="false"
-               command="-ym"
-               id="xlc.c.compiler.option.ifp.y.m">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.y.p"
-               isDefault="false"
-               command="-yp"
-               id="xlc.c.compiler.option.ifp.y.p">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.y.z"
-               isDefault="false"
-               command="-yz"
-               id="xlc.c.compiler.option.ifp.y.z">
-            </enumeratedOptionValue>
-         </option>
-         <option
-            name="%Option.float"
-            category="xlc.c.compiler.category.ifp"
-            command="-qfloat="
-            id="xlc.c.compiler.option.ifp.qfloat"
-            valueType="string">
-         </option>
-         <option
-            name="%Option.flttrap"
-            category="xlc.c.compiler.category.ifp"
-            command="-qflttrap="
-            id="xlc.c.compiler.option.ifp.qflttrap"
-            valueType="string">
-         </option>
-         <option
-            name="%Option.longlong"
-            category="xlc.c.compiler.category.ifp"
-            id="xlc.c.compiler.option.ifp.longlong"
-            valueType="enumerated">
-            <enumeratedOptionValue
-               name="%Option.default"
-               isDefault="true"
-               id="xlc.c.ifp.y.default">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.longlong"
-               command="-qlonglong"
-               id="xlc.c.ifp.qlonglong">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.longlong.nolonglong"
-               command="-qnolonglong"
-               id="xlc.c.ifp.qnolonglong">
-            </enumeratedOptionValue>
-         </option>
-         <option
-            name="%Option.rndflt"
-            category="xlc.c.compiler.category.ifp"
-            id="xlc.c.compiler.option.ifp.rndflt"
-            valueType="enumerated">
-            <enumeratedOptionValue
-               name="%Option.none"
-               isDefault="false"
-               id="xlc.c.ifp.rndflt.none">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.rndflt.nearest"
-               isDefault="false"
-               command="-qrndflt=nearest"
-               id="xlc.c.ifp.qrndflt.nearest">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.rndflt.minusinf"
-               isDefault="false"
-               command="-qrndflt=minusinf"
-               id="xlc.c.ifp.qrndflt.minusinf">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.rndflt.plusinf"
-               isDefault="false"
-               command="-qrndflt=plusinf"
-               id="xlc.c.ifp.qrndflt.plusinf">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.rndflt.zero"
-               isDefault="false"
-               command="-qrndflt=zero"
-               id="xlc.c.ifp.qrndflt.zero">
-            </enumeratedOptionValue>
-         </option>
-         <optionCategory
-            name="%OptionCategory.cc"
-            id="xlc.c.compiler.category.cc">
-         </optionCategory>
-         <option
-            name="%Option.B"
-            category="xlc.c.compiler.category.cc"
-            command="-B"
-            id="xlc.c.compiler.option.cc.B"
-            valueType="string">
-         </option>
-         <option
-            name="%Option.F"
-            category="xlc.c.compiler.category.cc"
-            command="-F"
-            id="xlc.c.compiler.option.cc.F"
-            valueType="string">
-         </option>
-         <option
-            name="%Option.t"
-            category="xlc.c.compiler.category.cc"
-            command="-t"
-            id="xlc.c.compiler.option.cc.t"
-            valueType="string">
-         </option>
-         <option
-            name="%Option.optimization.w"
-            category="xlc.c.compiler.category.cc"
-            command="-W"
-            id="xlc.c.compiler.option.cc.W"
-            valueType="string">
-         </option>
-         <option
-            name="%Option.maxmem"
-            category="xlc.c.compiler.category.cc"
-            command="-qmaxmem="
-            id="xlc.c.compiler.option.cc.maxmem"
-            valueType="string">
-         </option>
-         <option
-            browseType="directory"
-            category="xlc.c.compiler.category.cc"
-            command="-qpath="
-            id="xlc.c.compiler.option.cc.path"
-            name="%Option.path"
-            valueType="string">
-         </option>
-         <option
-            applicabilityCalculator="org.eclipse.cdt.managedbuilder.xlc.ui.properties.XLCApplicabilityCalculator"
-            category="xlc.c.compiler.category.cc"
-            command="-qtls="
-            id="xlc.c.compiler.option.cc.tls"
-            name="%Option.tls"
-            valueType="string">
-         </option>
-         <option
-            applicabilityCalculator="org.eclipse.cdt.managedbuilder.xlc.ui.properties.XLCApplicabilityCalculator"
-            category="xlc.c.compiler.category.objcc"
-            id="xlc.c.compiler.option.cc.tls.v10"
-            name="%Option.tls"
-            valueType="enumerated">
-            <enumeratedOptionValue
-               id="xlc.c.compiler.option.cc.tls.none"
-               isDefault="true"
-               name="%Option.none">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtls=unsupported"
-               id="xlc.c.compiler.option.cc.tls.unsupported"
-               isDefault="true"
-               name="%Option.tls.unsupported">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtls=default"
-               id="xlc.c.compiler.option.cc.tls.default"
-               name="%Option.tls.default">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtls=global-dynamic"
-               id="xlc.c.compiler.option.cc.tls.global-dynamic"
-               name="%Option.tls.global-dynamic">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtls=initial-exec"
-               id="xlc.c.compiler.option.cc.tls.initial-exec"
-               name="%Option.tls.initial-exec">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtls=local-exec"
-               id="xlc.c.compiler.option.cc.tls.local-exec"
-               name="%Option.tls.local-exec">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qtls=local-dynamic"
-               id="xlc.c.compiler.option.cc.tls.local-dynamic"
-               name="%Option.tls.local-dynamic">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qnotls"
-               id="xlc.c.compiler.option.cc.tls.notls"
-               name="%Option.tls.notls">
-            </enumeratedOptionValue>
-         </option>
-         <optionCategory
-            name="%OptionCategory.lm"
-            id="xlc.c.compiler.category.lm">
-         </optionCategory>
-         <option
-            name="%Option.V"
-            category="xlc.c.compiler.category.lm"
-            command="-V"
-            id="xlc.c.compiler.option.lm.V"
-            valueType="boolean">
-         </option>
-         <option
-            defaultValue="false"
-            name="%Option.Warn.nowarn"
-            category="xlc.c.compiler.category.lm"
-            command="-w"
-            id="xlc.c.compiler.option.lm.w"
-            valueType="boolean">
-         </option>
-         <option
-            name="%Option.attr"
-            category="xlc.c.compiler.category.lm"
-            id="xlc.c.compiler.option.lm.attr"
-            valueType="enumerated">
-            <enumeratedOptionValue
-               name="%Option.none"
-               isDefault="false"
-               id="xlc.c.lm.attr.none">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.attr.noattr"
-               isDefault="false"
-               command="-qnoattr"
-               id="xlc.c.lm.attr.noattr">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.attr.fullattr"
-               isDefault="false"
-               command="-qattr=full"
-               id="xlc.c.lm.attr.fullattr">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.attr.attr"
-               isDefault="false"
-               command="-qattr"
-               id="xlc.c.lm.attr.attr">
-            </enumeratedOptionValue>
-         </option>
-         <option
-            name="%Option.flag"
-            category="xlc.c.compiler.category.lm"
-            command="-qflag="
-            id="xlc.c.compiler.option.lm.flag"
-            valueType="string">
-         </option>
-         <option
-            name="%Option.format"
-            category="xlc.c.compiler.category.lm"
-            command="-qformat="
-            id="xlc.c.compiler.option.lm.format"
-            valueType="string">
-         </option>
-         <option
-            name="%Option.halt"
-            category="xlc.c.compiler.category.lm"
-            id="xlc.c.compiler.option.lm.halt"
-            valueType="enumerated">
-            <enumeratedOptionValue
-               id="org.eclipse.cdt.managedbuilder.xlc.ui.enumeratedOptionValue1"
-               isDefault="true"
-               name="%Option.default">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qhalt=i"
-               id="xlc.c.compiler.option.lm.halt.information"
-               name="%Option.halt.information">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qhalt=w"
-               id="xlc.c.compiler.option.lm.halt.warning"
-               name="%Option.halt.warning">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qhalt=e"
-               id="xlc.c.compiler.option.lm.halt.error"
-               name="%Option.halt.error">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qhalt=s"
-               id="xlc.c.compiler.option.lm.halt.severeError"
-               name="%Option.halt.severeError">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qhalt=u"
-               id="xlc.c.compiler.option.lm.halt.unrecoverableError"
-               name="%Option.halt.unrecoverableError">
-            </enumeratedOptionValue>
-         </option>
-         <option
-            name="%Option.info"
-            category="xlc.c.compiler.category.ecd"
-            command="-qinfo="
-            id="xlc.c.compiler.option.lm.info"
-            valueType="string">
-         </option>
-         <option
-            name="%Option.list"
-            category="xlc.c.compiler.category.lm"
-            command="-qlist"
-            id="xlc.c.compiler.option.lm.list"
-            valueType="boolean">
-         </option>
-         <option
-            name="%Option.listopt"
-            category="xlc.c.compiler.category.lm"
-            command="-qlistopt"
-            id="xlc.c.compiler.option.lm.listopt"
-            valueType="boolean">
-         </option>
-         <option
-            name="%Option.phsinfo"
-            category="xlc.c.compiler.category.lm"
-            command="-qphsinfo"
-            id="xlc.c.compiler.option.lm.phsinfo"
-            valueType="boolean">
-         </option>
-         <option
-            name="%Option.noprint"
-            category="xlc.c.compiler.category.lm"
-            command="-qnoprint"
-            id="xlc.c.compiler.option.lm.noprint"
-            valueType="boolean">
-         </option>
-         <option
-            name="%Option.report"
-            category="xlc.c.compiler.category.lm"
-            command="-qreport"
-            id="xlc.c.compiler.option.lm.report"
-            valueType="boolean">
-         </option>
-         <option
-            name="%Option.showinc"
-            category="xlc.c.compiler.category.lm"
-            command="-qshowinc"
-            id="xlc.c.compiler.option.lm.showinc"
-            valueType="boolean">
-         </option>
-         <option
-            name="%Option.source"
-            category="xlc.c.compiler.category.lm"
-            command="-qsource"
-            id="xlc.c.compiler.option.lm.source"
-            valueType="boolean">
-         </option>
-         <option
-            name="%Option.srcmsg"
-            category="xlc.c.compiler.category.lm"
-            command="-qsrcmsg"
-            id="xlc.c.compiler.option.lm.srcmsg"
-            valueType="boolean">
-         </option>
-         <option
-            name="%Option.suppress"
-            category="xlc.c.compiler.category.lm"
-            command="-qsuppress="
-            id="xlc.c.compiler.option.lm.suppress"
-            valueType="string">
-         </option>
-         <option
-            name="%Option.tabsize"
-            category="xlc.c.compiler.category.lm"
-            command="-qtabsize="
-            id="xlc.c.compiler.option.lm.tabsize"
-            valueType="string">
-         </option>
-         <option
-            name="%Option.warnfourcharconsts"
-            category="xlc.c.compiler.category.lm"
-            command="-qwarnfourcharconsts"
-            id="xlc.c.compiler.option.lm.warnfourcharconsts"
-            valueType="boolean">
-         </option>
-         <option
-            name="%Option.xref"
-            category="xlc.c.compiler.category.lm"
-            id="xlc.c.compiler.option.lm.xref"
-            valueType="enumerated">
-            <enumeratedOptionValue
-               name="%Option.none"
-               isDefault="false"
-               id="xlc.c.lm.xref.none">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.xref.noxref"
-               isDefault="false"
-               command="-qnoxref"
-               id="xlc.c.lm.attr.noattr">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.xref.fullxref"
-               isDefault="false"
-               command="-qxref=full"
-               id="xlc.c.lm.xref.fullxref">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.xref.xref"
-               isDefault="false"
-               command="-qxref"
-               id="xlc.c.lm.xref.xref">
-            </enumeratedOptionValue>
-         </option>
-         <optionCategory
-            name="%OptionCategory.ecd"
-            id="xlc.c.compiler.category.ecd">
-         </optionCategory>
-         <option
-            name="%Option.g"
-            category="xlc.c.compiler.category.ecd"
-            command="-g"
-            id="xlc.c.compiler.option.ecd.g"
-            valueType="boolean">
-         </option>
-         <option
-            name="%Option.p"
-            category="xlc.c.compiler.category.ecd"
-            command="-p"
-            id="xlc.c.compiler.option.ecd.p"
-            valueType="boolean">
-         </option>
-         <option
-            name="%Option.pg"
-            category="xlc.c.compiler.category.ecd"
-            command="-pg"
-            id="xlc.c.compiler.option.ecd.pg"
-            valueType="boolean">
-         </option>
-         <option
-            name="%Option.check"
-            category="xlc.c.compiler.category.ecd"
-            command="-qcheck"
-            id="xlc.c.compiler.option.ecd.check"
-            valueType="boolean">
-         </option>
-         <option
-            name="%Option.dbxextra"
-            category="xlc.c.compiler.category.ecd"
-            command="-qdbxextra"
-            id="xlc.c.compiler.option.ecd.dbxextra"
-            valueType="boolean">
-         </option>
-         <option
-            name="%Option.extchk"
-            category="xlc.c.compiler.category.ecd"
-            command="-qextchk"
-            id="xlc.c.compiler.option.ecd.extchk"
-            valueType="boolean">
-         </option>
-         <option
-            name="%Option.fullpath"
-            category="xlc.c.compiler.category.ecd"
-            command="-qfullpath"
-            id="xlc.c.compiler.option.ecd.fullpath"
-            valueType="boolean">
-         </option>
-         <option
-            name="%Option.genproto"
-            category="xlc.c.compiler.category.ecd"
-            id="xlc.c.compiler.option.ecd.genproto"
-            valueType="enumerated">
-            <enumeratedOptionValue
-               name="%Option.none"
-               isDefault="false"
-               id="xlc.c.ecd.genproto.none">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.genproto.general"
-               isDefault="false"
-               command="-qgenproto"
-               id="xlc.c.ecd.genproto">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               name="%Option.genproto.parmgenproto"
-               isDefault="false"
-               command="-qgenproto=parmnames"
-               id="xlc.c.ecd.genproto.parmnames">
-            </enumeratedOptionValue>
-         </option>
-         <option
-            name="%Option.heapdebug"
-            category="xlc.c.compiler.category.ecd"
-            command="-qheapdebug"
-            id="xlc.c.compiler.option.ecd.heapdebug"
-            valueType="boolean">
-         </option>
-         <option
-            name="%Option.initauto"
-            category="xlc.c.compiler.category.ecd"
-            command="-qinitauto="
-            id="xlc.c.compiler.option.ecd.initauto"
-            valueType="string">
-         </option>
-         <option
-            name="%Option.linedebug"
-            category="xlc.c.compiler.category.ecd"
-            command="-qlinedebug"
-            id="xlc.c.compiler.option.ecd.linedebug"
-            valueType="boolean">
-         </option>
-         <option
-            name="%Option.maxerr"
-            category="xlc.c.compiler.category.ecd"
-            command="-qmaxerr="
-            id="xlc.c.compiler.option.ecd.maxerr"
-            valueType="string">
-         </option>
-         <option
-            name="%Option.proto"
-            category="xlc.c.compiler.category.ecd"
-            command="-qproto"
-            id="xlc.c.compiler.option.ecd.proto"
-            valueType="boolean">
-         </option>
-         <optionCategory
-            name="%OptionCategory.Misc"
-            id="xlc.c.compiler.category.other">
-         </optionCategory>
-         <option
-            name="%Option.compiler.other"
-            category="xlc.c.compiler.category.other"
-            id="xlc.c.compiler.option.misc.other"
-            valueType="string">
-         </option>
-
-
-		<!-- Version 9 Options -->
-         <option
-            applicabilityCalculator="org.eclipse.cdt.managedbuilder.xlc.ui.properties.XLCApplicabilityCalculator"
-            category="xlc.c.compiler.category.ifp"
-            id="xlc.c.compiler.option.ifp.dfp"
-            name="%Option.dfp"
-            valueType="enumerated">
-            <enumeratedOptionValue
-               id="xlc.c.compiler.option.ifp.dfp.default"
-               isDefault="true"
-               name="%Option.default">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qdfp"
-               id="xlc.c.compiler.option.ifp.dfp.enabled"
-               name="%Option.dfp.enabled">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qnodfp"
-               id="xlc.c.compiler.option.ifp.dfp.disabled"
-               name="%Option.dfp.disabled">
-            </enumeratedOptionValue>
-         </option>
-         <option
-            applicabilityCalculator="org.eclipse.cdt.managedbuilder.xlc.ui.properties.XLCApplicabilityCalculator"
-            category="xlc.c.compiler.category.output"
-            command="-C!"
-            defaultValue="false"
-            id="xlc.c.compiler.option.preprocessor.PreprocessRemoveComments"
-            name="%Option.PreprocRemoveComments"
-            valueType="boolean">
-         </option>
-         <option
-            applicabilityCalculator="org.eclipse.cdt.managedbuilder.xlc.ui.properties.XLCApplicabilityCalculator"
-            category="xlc.c.compiler.category.ecd"
-            command="-qoptdebug"
-            defaultValue="false"
-            id="xlc.c.compiler.option.ecd.optdebug"
-            name="%Option.optdebug"
-            valueType="boolean">
-         </option>
-         <option
-            applicabilityCalculator="org.eclipse.cdt.managedbuilder.xlc.ui.properties.XLCApplicabilityCalculator"
-            category="xlc.c.compiler.category.output"
-            id="xlc.c.compiler.option.output.macros"
-            name="%Option.macros"
-            valueType="enumerated">
-            <enumeratedOptionValue
-               id="xlc.c.compiler.option.output.macros.none"
-               isDefault="true"
-               name="%Option.none">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qshowmacros=all"
-               id="xlc.c.compiler.option.output.macros.all"
-               name="%Option.macros.all">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qshowmacros=pre"
-               id="xlc.c.compiler.option.output.macros.pre"
-               name="%Option.macros.pre">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qshowmacros=nopre"
-               id="xlc.c.compiler.option.output.macros.nopre"
-               name="%Option.macros.nopre">
-            </enumeratedOptionValue>
-         </option>
-         <option
-            applicabilityCalculator="org.eclipse.cdt.managedbuilder.xlc.ui.properties.XLCApplicabilityCalculator"
-            category="xlc.c.compiler.category.output"
-            command="-qnotimestamps"
-            id="xlc.c.compiler.option.output.timestamps"
-            name="%Options.timestamps"
-            valueType="boolean">
-         </option>
-         <optionCategory
-            id="xlc.c.compiler.category.objcc"
-            name="%OptionCategory.objcc">
-         </optionCategory>
-         <option
-            applicabilityCalculator="org.eclipse.cdt.managedbuilder.xlc.ui.properties.XLCApplicabilityCalculator"
-            category="xlc.c.compiler.category.optimization"
-            id="xlc.c.compiler.option.optimization.qassert"
-            name="%Option.optimization.qassert"
-            valueType="enumerated">
-            <enumeratedOptionValue
-               command="-qassert=norefalign"
-               id="xlc.c.compiler.option.optimization.qassert.norefalign"
-               isDefault="false"
-               name="%Option.optimization.qassert.norefalign">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qassert=refalign"
-               id="xlc.c.compiler.option.optimization.qassert.refalign"
-               isDefault="false"
-               name="%Option.optimization.qassert.refalign">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               id="xlc.c.compiler.option.optimization.qassert.defaut"
-               isDefault="true"
-               name="%Option.default">
-            </enumeratedOptionValue>
-         </option>
-         <option
-            applicabilityCalculator="org.eclipse.cdt.managedbuilder.xlc.ui.properties.XLCApplicabilityCalculator"
-            category="xlc.c.compiler.category.ecd"
-            command="-qfunctrace"
-            id="xlc.c.compiler.option.qfunctrace"
-            name="%Option.qfunctrace"
-            valueType="boolean">
-         </option>
-         <option
-            applicabilityCalculator="org.eclipse.cdt.managedbuilder.xlc.ui.properties.XLCApplicabilityCalculator"
-            category="xlc.c.compiler.category.optimization"
-            command="-qinline"
-            id="xlc.c.compiler.option.optimization.qinline"
-            name="%Option.optimization.inline"
-            valueType="string">
-            <enumeratedOptionValue
-               id="xlc.c.compiler.option.optimization.arch.default"
-               isDefault="true"
-               name="%Option.default">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=auto"
-               id="xlc.c.compiler.option.optimization.arch.auto"
-               name="auto">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=com"
-               id="xlc.c.compiler.option.optimization.arch.com"
-               name="com">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=403"
-               id="xlc.c.compiler.option.optimization.arch.403"
-               name="PowerPC® 403">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=601"
-               id="xlc.c.compiler.option.optimization.arch.601"
-               name="PowerPC® 601">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=602"
-               id="xlc.c.compiler.option.optimization.arch.602"
-               name="PowerPC® 602">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=603"
-               id="xlc.c.compiler.option.optimization.arch.603"
-               name="PowerPC® 603">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=604"
-               id="xlc.c.compiler.option.optimization.arch.604"
-               name="PowerPC® 604">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=pwr"
-               id="xlc.c.compiler.option.optimization.arch.pwr"
-               name="POWER(TM)">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=pwr2"
-               id="xlc.c.compiler.option.optimization.arch.pwr2"
-               name="POWER2(TM)">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=pwr2s"
-               id="xlc.c.compiler.option.optimization.arch.pwr2s"
-               name="POWER2(TM) s">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=pwr2sc"
-               id="xlc.c.compiler.option.optimization.arch.pwr2sc"
-               name="POWER2(TM) Super Chip">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=pwr3"
-               id="xlc.c.compiler.option.optimization.arch.pwr3"
-               name="POWER3(TM)">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=pwr4"
-               id="xlc.c.compiler.option.optimization.arch.pwr4"
-               name="POWER4(TM)">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=pwr5"
-               id="xlc.c.compiler.option.optimization.arch.pwr5"
-               name="POWER5(TM)">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=ppc"
-               id="xlc.c.compiler.option.optimization.arch.ppc"
-               name="PowerPC®">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=ppc64"
-               id="xlc.c.compiler.option.optimization.arch.ppc64"
-               name="%Option.optimization.arch.ppc64">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=ppcgr"
-               id="xlc.c.compiler.option.optimization.arch.ppcgr"
-               name="%Option.optimization.arch.ppcgr">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=ppc64gr"
-               id="xlc.c.compiler.option.optimization.arch.ppc64gr"
-               name="%Option.optimization.arch.ppc64gr">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=ppcs4grsq"
-               id="xlc.c.compiler.option.optimization.arch.ppc64grsq"
-               name="%Option.optimization.arch.ppc64grsq">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=ppc64v"
-               id="xlc.c.compiler.option.optimization.arch.ppc64v"
-               name="%Option.optimization.arch.ppc64v">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=ppc970"
-               id="xlc.c.compiler.option.optimization.arch.ppc970"
-               name="PowerPC® 970">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=rs64a"
-               id="xlc.c.compiler.option.optimization.arch.rs64a"
-               name="RS64I">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=rs64b"
-               id="xlc.c.compiler.option.optimization.arch.rs64b"
-               name="RS64II">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=rs64c"
-               id="xlc.c.compiler.option.optimization.arch.rs64c"
-               name="RS64III">
-            </enumeratedOptionValue>
-         </option>
-         <option
-            applicabilityCalculator="org.eclipse.cdt.managedbuilder.xlc.ui.properties.XLCApplicabilityCalculator"
-            category="xlc.c.compiler.category.lm"
-            command="-qlistfmt"
-            id="xlc.c.compiler.option.lm.qlistfmt"
-            name="%Option.qlistfmt"
-            valueType="string">
-         </option>
-         <option
-            category="xlc.c.compiler.category.optimization"
-            command="-qlibmpi"
-            defaultValue="false"
-            id="xlc.c.compiler.option.optimization.qlibmpi"
-            name="%Option.optimization.qlibmpi"
-            valueType="boolean">
-         </option>
-         <option
-            applicabilityCalculator="org.eclipse.cdt.managedbuilder.xlc.ui.properties.XLCApplicabilityCalculator"
-            category="xlc.c.compiler.category.optimization"
-            command="-qsimd=auto"
-            id="xlc.c.compiler.option.optimization.qsimd"
-            name="%Option.optimization.qsimd"
-            valueType="boolean">
-         </option>
-         <option
-            category="xlc.c.compiler.category.lm"
-            command="-qskipsrc=hide"
-            id="xlc.c.compiler.option.lm.qskipsrc"
-            name="%Option.qskipsrc"
-            valueType="boolean">
-         </option>
-         <option
-            applicabilityCalculator="org.eclipse.cdt.managedbuilder.xlc.ui.properties.XLCApplicabilityCalculator"
-            category="xlc.c.compiler.category.optimization"
-            id="xlc.c.compiler.option.optimization.qprefetch"
-            name="%Option.optimization.qprefetch"
-            valueType="string">
-            <enumeratedOptionValue
-               id="xlc.c.compiler.option.optimization.arch.default"
-               isDefault="true"
-               name="%Option.default">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=auto"
-               id="xlc.c.compiler.option.optimization.arch.auto"
-               name="auto">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=com"
-               id="xlc.c.compiler.option.optimization.arch.com"
-               name="com">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=403"
-               id="xlc.c.compiler.option.optimization.arch.403"
-               name="PowerPC® 403">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=601"
-               id="xlc.c.compiler.option.optimization.arch.601"
-               name="PowerPC® 601">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=602"
-               id="xlc.c.compiler.option.optimization.arch.602"
-               name="PowerPC® 602">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=603"
-               id="xlc.c.compiler.option.optimization.arch.603"
-               name="PowerPC® 603">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=604"
-               id="xlc.c.compiler.option.optimization.arch.604"
-               name="PowerPC® 604">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=pwr"
-               id="xlc.c.compiler.option.optimization.arch.pwr"
-               name="POWER(TM)">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=pwr2"
-               id="xlc.c.compiler.option.optimization.arch.pwr2"
-               name="POWER2(TM)">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=pwr2s"
-               id="xlc.c.compiler.option.optimization.arch.pwr2s"
-               name="POWER2(TM) s">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=pwr2sc"
-               id="xlc.c.compiler.option.optimization.arch.pwr2sc"
-               name="POWER2(TM) Super Chip">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=pwr3"
-               id="xlc.c.compiler.option.optimization.arch.pwr3"
-               name="POWER3(TM)">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=pwr4"
-               id="xlc.c.compiler.option.optimization.arch.pwr4"
-               name="POWER4(TM)">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=pwr5"
-               id="xlc.c.compiler.option.optimization.arch.pwr5"
-               name="POWER5(TM)">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=ppc"
-               id="xlc.c.compiler.option.optimization.arch.ppc"
-               name="PowerPC®">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=ppc64"
-               id="xlc.c.compiler.option.optimization.arch.ppc64"
-               name="%Option.optimization.arch.ppc64">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=ppcgr"
-               id="xlc.c.compiler.option.optimization.arch.ppcgr"
-               name="%Option.optimization.arch.ppcgr">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=ppc64gr"
-               id="xlc.c.compiler.option.optimization.arch.ppc64gr"
-               name="%Option.optimization.arch.ppc64gr">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=ppcs4grsq"
-               id="xlc.c.compiler.option.optimization.arch.ppc64grsq"
-               name="%Option.optimization.arch.ppc64grsq">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=ppc64v"
-               id="xlc.c.compiler.option.optimization.arch.ppc64v"
-               name="%Option.optimization.arch.ppc64v">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=ppc970"
-               id="xlc.c.compiler.option.optimization.arch.ppc970"
-               name="PowerPC® 970">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=rs64a"
-               id="xlc.c.compiler.option.optimization.arch.rs64a"
-               name="RS64I">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=rs64b"
-               id="xlc.c.compiler.option.optimization.arch.rs64b"
-               name="RS64II">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-               command="-qarch=rs64c"
-               id="xlc.c.compiler.option.optimization.arch.rs64c"
-               name="RS64III">
-            </enumeratedOptionValue>
-         </option>
-         <option
-            applicabilityCalculator="org.eclipse.cdt.managedbuilder.xlc.ui.properties.XLCApplicabilityCalculator"
-            category="xlc.c.compiler.category.objcc"
-            id="xlc.c.compiler.option.output.qstackprotect"
-            name="%Option.qstackprotect"
-            valueType="string">
-         </option>
-      </tool>
-      <tool
-         errorParsers="org.eclipse.cdt.errorparsers.xlc.XlcErrorParser"
-         id="org.eclipse.cdt.managedbuilder.xlc.ui.tool.abstractLinker"
-         isAbstract="true"
-         name="%tool.linker.exe.abstract.name"
-         outputFlag="-o">
-         <envVarBuildPath
-            pathType="buildpathLibrary"
-            variableList="LIBRARY_PATH">
-         </envVarBuildPath>
-         <optionCategory
-            name="%OptionCategory.Libs"
-            id="xlc.c.link.category.libs">
-         </optionCategory>
-         <option
-            name="%Option.Libs"
-            category="xlc.c.link.category.libs"
-            command="-l"
-            id="xlc.c.link.option.libs"
-            browseType="none"
-            valueType="libs">
-         </option>
-         <option
-            name="%Option.Libsearch"
-            category="xlc.c.link.category.libs"
-            command="-L"
-            id="xlc.c.link.option.paths"
-            browseType="directory"
-            valueType="libPaths">
-         </option>
-         <option
-            name="%Option.UserObjs"
-            category="xlc.c.link.category.libs"
-            browseType="file"
-            valueType="userObjs"
-            id="xlc.c.link.option.userobjs">
-         </option>
-         <optionCategory
-            name="%OptionCategory.Linking"
-            id="xlc.c.compiler.category.linking">
-         </optionCategory>
-         <option
-            name="%Option.Linking.b"
-            category="xlc.c.compiler.category.linking"
-            command="-b"
-            id="xlc.c.compiler.option.linking.b"
-            valueType="string">
-         </option>
-         <option
-            defaultValue="false"
-            name="%Option.linking.brtl"
-            category="xlc.c.compiler.category.linking"
-            command="-brtl"
-            id="xlc.c.compiler.option.linking.brtl"
-            valueType="boolean">
-         </option>
-         <option
-            defaultValue="false"
-            name="%Option.linking.bundle"
-            category="xlc.c.compiler.category.linking"
-            command="-bundle"
-            id="xlc.c.compiler.option.linking.bundle"
-            valueType="boolean">
-         </option>
-         <option
-            name="%Option.linking.bundle_loader"
-            category="xlc.c.compiler.category.linking"
-            command="-bundle_loader="
-            id="xlc.c.compiler.option.linking.bundle_loader"
-            valueType="string">
-         </option>
-         <option
-            browseType="file"
-            category="xlc.c.compiler.category.linking"
-            command="-f="
-            id="xlc.c.compiler.option.linking.f"
-            name="%Option.linking.f"
-            valueType="string">
-         </option>
-         <option
-            name="%Option.Linking.L"
-            category="xlc.c.compiler.category.linking"
-            command="-L"
-            id="xlc.c.compiler.option.linking.L"
-            valueType="string">
-         </option>
-         <option
-            name="%Option.Linking.l"
-            category="xlc.c.compiler.category.linking"
-            command="-l"
-            id="xlc.c.compiler.option.linking.l"
-            valueType="string">
-         </option>
-         <option
-            defaultValue="false"
-            name="%Option.linking.r"
-            category="xlc.c.compiler.category.linking"
-            command="-r"
-            id="xlc.c.compiler.option.linking.r"
-            valueType="boolean">
-         </option>
-         <option
-            name="%Option.Linking.Z"
-            category="xlc.c.compiler.category.linking"
-            command="-Z"
-            id="xlc.c.compiler.option.linking.Z"
-            valueType="string">
-         </option>
-         <option
-            defaultValue="false"
-            name="%Option.linking.inlglue"
-            category="xlc.c.compiler.category.linking"
-            command="-qinlglue"
-            id="xlc.c.compiler.option.linking.qinlglue"
-            valueType="boolean">
-         </option>
-         <option
-            defaultValue="false"
-            name="%Option.linking.lib"
-            category="xlc.c.compiler.category.linking"
-            command="-qlib"
-            id="xlc.c.compiler.option.linking.qlib"
-            valueType="boolean">
-         </option>
-         <option
-            name="%Option.Linking.priority"
-            category="xlc.c.compiler.category.linking"
-            command="-qpriority="
-            id="xlc.c.compiler.option.linking.priority"
-            valueType="string">
-         </option>
-         <option
-            defaultValue="false"
-            name="%Option.Linker.Shared"
-            category="xlc.c.compiler.category.linking"
-            command="-qmkshrobj"
-            id="xlc.c.link.option.mkshrobj"
-            applicabilityCalculator="org.eclipse.cdt.managedbuilder.xlc.ui.properties.HiddenOptionApplicabilityCalculator"
-            valueType="boolean">
-         </option>
-         <option
-            defaultValue="false"
-            name="%Option.Linker.Strip"
-            category="xlc.c.compiler.category.linking"
-            command="-s"
-            id="xlc.c.link.option.strip"
-            valueType="boolean">
-         </option>
-         <optionCategory
-            name="%OptionCategory.Misc"
-            id="xlc.c.link.category.other">
-         </optionCategory>
-         <option
-            name="%Option.Linker.Flags"
-            category="xlc.c.link.category.other"
-            valueType="string"
-            id="xlc.c.link.option.ldflags">
-         </option>
-         <inputType
-            sourceContentType="org.eclipse.cdt.managedbuilder.core.compiledObjectFile"
-            sources="o"
-            multipleOfType="true"
-            dependencyCalculator="org.eclipse.cdt.managedbuilder.makegen.internal.DefaultNoDependencyCalculator"
-            buildVariable="OBJS"
-            id="cdt.managedbuild.tool.xlc.c.linker.input">
-            <additionalInput
-               paths="$(USER_OBJS)"
-               kind="additionalinputdependency">
-            </additionalInput>
-            <additionalInput
-               paths="$(LIBS)"
-               kind="additionalinput">
-            </additionalInput>
-         </inputType>
-         <outputType
-            outputs=""
-            buildVariable="EXECUTABLES"
-            nameProvider="org.eclipse.cdt.managedbuilder.makegen.gnu.GnuLinkOutputNameProvider"
-            id="cdt.managedbuild.tool.xlc.c.linker.output">
-         </outputType>
-      </tool>
-      <tool
-         errorParsers="org.eclipse.cdt.errorparsers.xlc.XlcErrorParser"
-         id="org.eclipse.cdt.managedbuilder.xlc.ui.tool.linker.abstractSOLinker"
-         isAbstract="true"
-         name="%tool.linker.so.abstract.name"
-         superClass="org.eclipse.cdt.managedbuilder.xlc.ui.tool.abstractLinker">
-         <option
-            name="%Option.Linking.mkshrobj"
-            id="xlc.c.link.so.option.shared"
-            defaultValue="true"
-            superClass="xlc.c.link.option.mkshrobj">
-         </option>
-         <option
-            name="%Option.Linking.e"
-            category="xlc.c.compiler.category.linking"
-            command="-e "
-            id="xlc.c.compiler.option.linking.e"
-            valueType="string">
-         </option>
-         <option
-            defaultValue="false"
-            name="%Option.linking.G"
-            category="xlc.c.compiler.category.linking"
-            command="-G"
-            id="xlc.c.compiler.option.linking.G"
-            valueType="boolean">
-         </option>
-         <option
-            browseType="file"
-            category="xlc.c.compiler.category.linking"
-            command="-qexpfile="
-            id="xlc.c.compiler.option.linking.expfile"
-            name="%Option.linking.expfile"
-            valueType="string">
-         </option>
-         <outputType
-            outputs="so"
-            outputPrefix="lib"
-            buildVariable="LIBRARIES"
-            superClass="cdt.managedbuild.tool.xlc.c.linker.output"
-            id="cdt.managedbuild.tool.xlc.c.linker.so.debug.output">
-         </outputType>
-      </tool>
-      <tool
-         id="cdt.managedbuild.tool.xlc.c.compiler"
-         isAbstract="false"
-         name="%tool.c.compiler.name"
-         superClass="cdt.managedbuild.tool.xlc.c.compiler.abstract">
-         <inputType
-            dependencyContentType="org.eclipse.cdt.core.cHeader"
-            dependencyExtensions="h"
-            id="cdt.managedbuild.tool.xlc.c.compiler.input"
-            name="%inputType.c.name"
-            primaryInput="true"
-            sourceContentType="org.eclipse.cdt.core.cSource"
-            sources="c">
-         </inputType>
-         <outputType
-            buildVariable="OBJS"
-            id="cdt.managedbuild.tool.xlc.c.compiler.output"
-            outputs="o">
-         </outputType>
-      </tool>
-      <tool
-         id="cdt.managedbuild.tool.xlc.cpp.compiler"
-         isAbstract="false"
-         name="%tool.cpp.compiler.name"
-         superClass="cdt.managedbuild.tool.xlc.cpp.compiler.abstract">
-         <inputType
-            dependencyContentType="org.eclipse.cdt.core.cHeader"
-            dependencyExtensions="h"
-            id="cdt.managedbuild.tool.xlc.cpp.c.compiler.input"
-            name="%inputType.c.name.2"
-            primaryInput="true"
-            sourceContentType="org.eclipse.cdt.core.cSource"
-            sources="c">
-         </inputType>
-         <inputType
-            dependencyContentType="org.eclipse.cdt.core.cxxHeader"
-            dependencyExtensions="h,H,hpp"
-            id="cdt.managedbuild.tool.xlc.cpp.compiler.input"
-            name="%inputType.cpp.name"
-            primaryInput="true"
-            sourceContentType="org.eclipse.cdt.core.cxxSource"
-            sources="c,C,cc,cxx,cpp">
-         </inputType>
-         <outputType
-            buildVariable="OBJS"
-            id="org.eclipse.cdt.managedbuilder.xlc.cpp.compiler.output"
-            outputs="o">
-         </outputType>
-      </tool>
-   </extension>
-   <extension
-      point="org.eclipse.ui.preferencePages">
-      <page
-         category="org.eclipse.cdt.ui.preferences.CPluginPreferencePage"
-         class="org.eclipse.cdt.managedbuilder.xlc.ui.preferences.XLCompilerPreferencePage"
-         id="org.eclipse.cdt.managedbuilder.xlc.ui.preferences.XLCompilerPreferencePage"
-         name="%XLCompilerPreferencePage.name">
-      </page>
-   </extension>
-   <extension
-      point="org.eclipse.core.runtime.preferences">
-      <initializer
-         class="org.eclipse.cdt.managedbuilder.xlc.ui.preferences.PreferenceInitializer">
-      </initializer>
-   </extension>
-   <extension
-      point="org.eclipse.ui.propertyPages">
-      <page
-         category="org.eclipse.cdt.managedbuilder.ui.properties.Page_head_build"
-         class="org.eclipse.cdt.managedbuilder.xlc.ui.properties.XLCompilerPropertyPage"
-         id="org.eclipse.cdt.managedbuilder.xlc.ui.properties.samplePropertyPage"
-         name="%XLCompilerPropertyPage.name">
-         <filter
-            name="projectNature"
-            value="org.eclipse.cdt.managedbuilder.core.managedBuildNature">
-         </filter>
-         <enabledWhen>
-            <or>
-               <instanceof value="org.eclipse.core.resources.IProject"/>
-               <instanceof value="org.eclipse.cdt.core.model.ICProject"/>
-               <instanceof value="org.eclipse.core.resources.IFolder"/>
-               <instanceof value="org.eclipse.cdt.core.model.ICContainer"/>
-               <instanceof value="org.eclipse.cdt.core.model.ITranslationUnit"/>
-               <instanceof value="org.eclipse.core.resources.IFile"/>
-            </or>
-         </enabledWhen>
-      </page>
-   </extension>
-   <extension
-      point="org.eclipse.cdt.managedbuilder.ui.newWizardPages">
-      <wizardPage
-         ID="org.eclipse.cdt.managedbuilder.xlc.ui.XlcSettingsWizardPage"
-         operationClass="org.eclipse.cdt.managedbuilder.xlc.ui.wizards.XLCSettingsWizardRunnable"
-         pageClass="org.eclipse.cdt.managedbuilder.xlc.ui.wizards.XLCSettingsWizardPage">
-         <projectType
-            projectTypeID="cdt.managedbuild.target.xlc.exe">
-         </projectType>
-         <projectType
-            projectTypeID="cdt.managedbuild.target.xlc.so">
-         </projectType>
-         <projectType
-            projectTypeID="cdt.managedbuild.target.xlc.lib">
-         </projectType>
-      </wizardPage>
-   </extension>
-   <!--extension
-         point="org.eclipse.core.variables.dynamicVariables">
-      <variable
-            description="%variableDescription"
-            name="XL_compilerRoot"
-            resolver="org.eclipse.cdt.managedbuilder.xlc.ui.variables.DynamicVariableResolver"
-            supportsArgument="true">
-      </variable>
-   </extension -->
-</plugin>
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/aix/AixConfigurationEnvironmentSupplier.java b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/aix/AixConfigurationEnvironmentSupplier.java
deleted file mode 100644
index d65417d..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/aix/AixConfigurationEnvironmentSupplier.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2012 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.cdt.managedbuilder.xlc.aix;
-
-import org.eclipse.cdt.managedbuilder.core.IConfiguration;
-import org.eclipse.cdt.managedbuilder.envvar.IBuildEnvironmentVariable;
-import org.eclipse.cdt.managedbuilder.envvar.IConfigurationEnvironmentVariableSupplier;
-import org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider;
-import org.eclipse.cdt.managedbuilder.internal.envvar.BuildEnvVar;
-
-public class AixConfigurationEnvironmentSupplier implements IConfigurationEnvironmentVariableSupplier {
-	static final String VARNAME = "PATH";
-	static final String BINPATH = "/usr/vac/bin";
-	static final String DELIMITER_AIX = ":";
-	static final String PROPERTY_DELIMITER = "path.separator";
-	static final String PROPERTY_OSNAME = "os.name";
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.managedbuilder.envvar.IConfigurationEnvironmentVariableSupplier#getVariable(java.lang.String, org.eclipse.cdt.managedbuilder.core.IConfiguration, org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider)
-	 */
-	@Override
-	public IBuildEnvironmentVariable getVariable(String variableName, IConfiguration configuration,
-			IEnvironmentVariableProvider provider) {
-
-		if (variableName == null)
-			return null;
-		if (!VARNAME.equalsIgnoreCase(variableName))
-			return null;
-		return new BuildEnvVar(VARNAME, BINPATH, IBuildEnvironmentVariable.ENVVAR_PREPEND,
-				System.getProperty(PROPERTY_DELIMITER, DELIMITER_AIX));
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.managedbuilder.envvar.IConfigurationEnvironmentVariableSupplier#getVariables(org.eclipse.cdt.managedbuilder.core.IConfiguration, org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider)
-	 */
-	@Override
-	public IBuildEnvironmentVariable[] getVariables(IConfiguration configuration,
-			IEnvironmentVariableProvider provider) {
-
-		IBuildEnvironmentVariable[] tmp = new IBuildEnvironmentVariable[1];
-		tmp[0] = getVariable(VARNAME, configuration, provider);
-		if (tmp[0] != null)
-			return tmp;
-		return null;
-	}
-}
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/aix/AixPathResolver.java b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/aix/AixPathResolver.java
deleted file mode 100644
index 0a5f64f..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/aix/AixPathResolver.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2012 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.cdt.managedbuilder.xlc.aix;
-
-import org.eclipse.cdt.managedbuilder.core.IBuildPathResolver;
-import org.eclipse.cdt.managedbuilder.core.IConfiguration;
-
-public class AixPathResolver implements IBuildPathResolver {
-	static final String DELIMITER_AIX = ":";
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.managedbuilder.core.IBuildPathResolver#resolveBuildPaths(int, java.lang.String, java.lang.String, org.eclipse.cdt.managedbuilder.core.IConfiguration)
-	 */
-	@Override
-	public String[] resolveBuildPaths(int pathType, String variableName, String variableValue,
-			IConfiguration configuration) {
-		return variableValue.split(DELIMITER_AIX);
-	}
-}
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/Messages.java b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/Messages.java
deleted file mode 100644
index e450d67..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/Messages.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2011 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.cdt.managedbuilder.xlc.ui;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.cdt.managedbuilder.xlc.ui.messages"; //$NON-NLS-1$
-	public static String XLCompiler_v8;
-	public static String XLCompiler_v9;
-	public static String XLCompiler_v10;
-	public static String XLCompiler_v11;
-	public static String XLCompilerPreferencePage_0;
-	public static String XLCompilerPreferencePage_1;
-	public static String XLCompilerPreferencePage_2;
-	public static String XLCompilerPreferencePage_3;
-	public static String XLCompilerPropertyPage_0;
-	public static String XLCompilerPropertyPage_1;
-	public static String XLCompilerPropertyPage_2;
-	public static String XLCSettingsWizardPage_0;
-	public static String XLCSettingsWizardPage_1;
-	public static String XLCSettingsWizardPage_2;
-	public static String XLCSettingsWizardPage_3;
-	public static String XLCSettingsWizardPage_4;
-	public static String XLCSettingsWizardPage_5;
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	private Messages() {
-	}
-}
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/XLCProjectMacroSupplier.java b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/XLCProjectMacroSupplier.java
deleted file mode 100644
index b156d23..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/XLCProjectMacroSupplier.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2012 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.managedbuilder.xlc.ui;
-
-import org.eclipse.cdt.core.cdtvariables.ICdtVariable;
-import org.eclipse.cdt.managedbuilder.core.IManagedProject;
-import org.eclipse.cdt.managedbuilder.internal.macros.BuildMacro;
-import org.eclipse.cdt.managedbuilder.macros.IBuildMacro;
-import org.eclipse.cdt.managedbuilder.macros.IBuildMacroProvider;
-import org.eclipse.cdt.managedbuilder.macros.IProjectBuildMacroSupplier;
-import org.eclipse.cdt.managedbuilder.xlc.ui.preferences.PreferenceConstants;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.QualifiedName;
-import org.eclipse.jface.preference.IPreferenceStore;
-
-/**
- * @author crecoskie
- *
- */
-public class XLCProjectMacroSupplier implements IProjectBuildMacroSupplier {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.managedbuilder.macros.IProjectBuildMacroSupplier#getMacro(java.lang.String, org.eclipse.cdt.managedbuilder.core.IManagedProject, org.eclipse.cdt.managedbuilder.macros.IBuildMacroProvider)
-	 */
-	@Override
-	public IBuildMacro getMacro(String macroName, IManagedProject project, IBuildMacroProvider provider) {
-
-		if (macroName.equals(PreferenceConstants.P_XL_COMPILER_ROOT)) {
-			String compilerPath = null;
-
-			// figure out compiler path from properties and preferences
-
-			// search for property first
-			IProject theProject = (IProject) project.getOwner();
-			try {
-				compilerPath = theProject
-						.getPersistentProperty(new QualifiedName("", PreferenceConstants.P_XL_COMPILER_ROOT));
-			} catch (CoreException e) {
-				// TODO Auto-generated catch block
-				e.printStackTrace();
-			}
-
-			if (compilerPath == null) {
-				// use the workbench preference
-				IPreferenceStore prefStore = XLCUIPlugin.getDefault().getPreferenceStore();
-				compilerPath = prefStore.getString(PreferenceConstants.P_XL_COMPILER_ROOT);
-			}
-
-			BuildMacro macro = new BuildMacro(macroName, ICdtVariable.VALUE_PATH_DIR, compilerPath);
-
-			return macro;
-		}
-
-		else
-			return provider.getMacro(macroName, IBuildMacroProvider.CONTEXT_PROJECT, project, true);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.managedbuilder.macros.IProjectBuildMacroSupplier#getMacros(org.eclipse.cdt.managedbuilder.core.IManagedProject, org.eclipse.cdt.managedbuilder.macros.IBuildMacroProvider)
-	 */
-	@Override
-	public IBuildMacro[] getMacros(IManagedProject project, IBuildMacroProvider provider) {
-
-		String macroName = PreferenceConstants.P_XL_COMPILER_ROOT;
-
-		String compilerPath = null;
-
-		// figure out compiler path from properties and preferences
-
-		// search for property first
-		IProject theProject = (IProject) project.getOwner();
-		try {
-			compilerPath = theProject
-					.getPersistentProperty(new QualifiedName("", PreferenceConstants.P_XL_COMPILER_ROOT));
-		} catch (CoreException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-
-		if (compilerPath == null) {
-			// use the workbench preference
-			IPreferenceStore prefStore = XLCUIPlugin.getDefault().getPreferenceStore();
-			compilerPath = prefStore.getString(PreferenceConstants.P_XL_COMPILER_ROOT);
-		}
-
-		BuildMacro macro = new BuildMacro(macroName, ICdtVariable.VALUE_PATH_DIR, compilerPath);
-
-		// our array consists of our macro, plus all the macros from our parent
-		IBuildMacro[] parentMacros = provider.getMacros(IBuildMacroProvider.CONTEXT_PROJECT, project, true);
-
-		// look for an existing macro definition
-		int foundIndex = -1;
-		for (int k = 0; k < parentMacros.length; k++) {
-
-			if (parentMacros[k].getName().equals(macro.getName())) {
-				foundIndex = k;
-				break;
-			}
-		}
-
-		int numMacros = (foundIndex == -1) ? parentMacros.length + 1 : parentMacros.length;
-
-		IBuildMacro[] macros = new IBuildMacro[numMacros];
-
-		// if there was no existing value then add it to the front
-		if (foundIndex == -1) {
-			macros[0] = macro;
-			for (int k = 1; k < macros.length; k++) {
-				macros[k] = parentMacros[k - 1];
-			}
-		}
-
-		else { // replace the old value
-			for (int k = 0; k < macros.length; k++) {
-				macros[k] = parentMacros[k];
-			}
-			macros[foundIndex] = macro;
-		}
-
-		return macros;
-
-	}
-
-}
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/XLCUIPlugin.java b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/XLCUIPlugin.java
deleted file mode 100644
index e616b72..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/XLCUIPlugin.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2012 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.cdt.managedbuilder.xlc.ui;
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class XLCUIPlugin extends AbstractUIPlugin {
-	//The shared instance.
-	private static XLCUIPlugin plugin;
-	//Resource bundle.
-	private ResourceBundle resourceBundle;
-
-	/**
-	 * The constructor.
-	 */
-	public XLCUIPlugin() {
-		super();
-		plugin = this;
-	}
-
-	/**
-	 * This method is called upon plug-in activation
-	 */
-	@Override
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-	}
-
-	/**
-	 * This method is called when the plug-in is stopped
-	 */
-	@Override
-	public void stop(BundleContext context) throws Exception {
-		super.stop(context);
-		plugin = null;
-		resourceBundle = null;
-	}
-
-	/**
-	 * Returns the shared instance.
-	 */
-	public static XLCUIPlugin getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * Returns the string from the plugin's resource bundle,
-	 * or 'key' if not found.
-	 */
-	public static String getResourceString(String key) {
-		ResourceBundle bundle = XLCUIPlugin.getDefault().getResourceBundle();
-		try {
-			return (bundle != null) ? bundle.getString(key) : key;
-		} catch (MissingResourceException e) {
-			return key;
-		}
-	}
-
-	/**
-	 * Returns the plugin's resource bundle,
-	 */
-	public ResourceBundle getResourceBundle() {
-		try {
-			if (resourceBundle == null)
-				resourceBundle = ResourceBundle.getBundle("org.eclipse.cdt.managedbuilder.gnu.ui.XlcUIPluginResources"); //$NON-NLS-1$
-		} catch (MissingResourceException x) {
-			resourceBundle = null;
-		}
-		return resourceBundle;
-	}
-
-}
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/messages.properties b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/messages.properties
deleted file mode 100644
index 7bb36f0..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/messages.properties
+++ /dev/null
@@ -1,31 +0,0 @@
-###############################################################################
-# Copyright (c) 2007, 2011 IBM Corporation and others.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-XLCompiler_v8=v8.0
-XLCompiler_v9=v9.0
-XLCompiler_v10=v10.1
-XLCompiler_v11=v11.1
-XLCompilerPreferencePage_0=XL C/C++ Compiler Preferences
-XLCompilerPreferencePage_1=Compiler Root Path:
-XLCompilerPreferencePage_2=Compiler Version:
-XLCompilerPreferencePage_3=Compiler path does not exist on the local machine.
-XLCompilerPropertyPage_0=Compiler Root Path:
-XLCompilerPropertyPage_1=Compiler Version:
-XLCompilerPropertyPage_2=Compiler path does not exist on the local machine.
-XLCSettingsWizardPage_0=XL C/C++ Settings
-XLCSettingsWizardPage_1=Compiler Root Path:
-XLCSettingsWizardPage_2=Browse...
-XLCSettingsWizardPage_3=Compiler Version:
-XLCSettingsWizardPage_4=Please select the path to your compiler, and the version of the compiler that you are using.
-XLCSettingsWizardPage_5=XL Compiler Settings
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/preferences/PreferenceConstants.java b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/preferences/PreferenceConstants.java
deleted file mode 100644
index e40749d..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/preferences/PreferenceConstants.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2012 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.cdt.managedbuilder.xlc.ui.preferences;
-
-import org.eclipse.cdt.managedbuilder.xlc.ui.Messages;
-
-/**
- * Constant definitions for plug-in preferences
- */
-public class PreferenceConstants {
-
-	public static final String P_XL_COMPILER_ROOT = "XL_compilerRoot"; //$NON-NLS-1$
-
-	public static final String P_XLC_COMPILER_VERSION = "XLC_compilerVersion"; //$NON-NLS-1$
-
-	public static final String P_XL_COMPILER_VERSION_8 = "v8.0"; //$NON-NLS-1$
-	public static final String P_XL_COMPILER_VERSION_9 = "v9.0"; //$NON-NLS-1$
-	public static final String P_XL_COMPILER_VERSION_10 = "v10.1"; //$NON-NLS-1$
-	public static final String P_XL_COMPILER_VERSION_11 = "v11.1"; //$NON-NLS-1$
-
-	public static final String P_XL_COMPILER_VERSION_8_NAME = Messages.XLCompiler_v8;
-	public static final String P_XL_COMPILER_VERSION_9_NAME = Messages.XLCompiler_v9;
-	public static final String P_XL_COMPILER_VERSION_10_NAME = Messages.XLCompiler_v10;
-	public static final String P_XL_COMPILER_VERSION_11_NAME = Messages.XLCompiler_v11;
-
-	public static String getVersion(String label) {
-		if (label.equalsIgnoreCase(P_XL_COMPILER_VERSION_11_NAME))
-			return P_XL_COMPILER_VERSION_11;
-		else if (label.equalsIgnoreCase(P_XL_COMPILER_VERSION_10_NAME))
-			return P_XL_COMPILER_VERSION_10;
-		else if (label.equalsIgnoreCase(P_XL_COMPILER_VERSION_9_NAME))
-			return P_XL_COMPILER_VERSION_9;
-		else
-			return P_XL_COMPILER_VERSION_8;
-	}
-
-	public static String getVersionLabel(String version) {
-		if (version.equalsIgnoreCase(P_XL_COMPILER_VERSION_11))
-			return P_XL_COMPILER_VERSION_11_NAME;
-		else if (version.equalsIgnoreCase(P_XL_COMPILER_VERSION_10))
-			return P_XL_COMPILER_VERSION_10_NAME;
-		else if (version.equalsIgnoreCase(P_XL_COMPILER_VERSION_9))
-			return P_XL_COMPILER_VERSION_9_NAME;
-		else
-			return P_XL_COMPILER_VERSION_8_NAME;
-	}
-
-}
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/preferences/PreferenceInitializer.java b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/preferences/PreferenceInitializer.java
deleted file mode 100644
index 6bb39a9..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/preferences/PreferenceInitializer.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2012 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.cdt.managedbuilder.xlc.ui.preferences;
-
-import org.eclipse.cdt.managedbuilder.xlc.ui.XLCUIPlugin;
-import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
-import org.eclipse.jface.preference.IPreferenceStore;
-
-/**
- * Class used to initialize default preference values.
- */
-public class PreferenceInitializer extends AbstractPreferenceInitializer {
-
-	@Override
-	public void initializeDefaultPreferences() {
-		IPreferenceStore store = XLCUIPlugin.getDefault().getPreferenceStore();
-		store.setDefault(PreferenceConstants.P_XL_COMPILER_ROOT, "/usr/vacpp/bin"); //$NON-NLS-1$
-		store.setDefault(PreferenceConstants.P_XLC_COMPILER_VERSION, PreferenceConstants.P_XL_COMPILER_VERSION_8);
-	}
-
-}
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/preferences/XLCompilerPreferencePage.java b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/preferences/XLCompilerPreferencePage.java
deleted file mode 100644
index 08404ed..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/preferences/XLCompilerPreferencePage.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2012 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.cdt.managedbuilder.xlc.ui.preferences;
-
-import org.eclipse.cdt.managedbuilder.xlc.ui.Messages;
-import org.eclipse.cdt.managedbuilder.xlc.ui.XLCUIPlugin;
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.jface.preference.ComboFieldEditor;
-import org.eclipse.jface.preference.DirectoryFieldEditor;
-import org.eclipse.jface.preference.FieldEditorPreferencePage;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-
-/**
- * This class represents a preference page that
- * is contributed to the Preferences dialog. By
- * subclassing <samp>FieldEditorPreferencePage</samp>, we
- * can use the field support built into JFace that allows
- * us to create a page that is small and knows how to
- * save, restore and apply itself.
- * <p>
- * This page is used to modify preferences only. They
- * are stored in the preference store that belongs to
- * the main plug-in class. That way, preferences can
- * be accessed directly via the preference store.
- */
-
-public class XLCompilerPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
-
-	private String originalMessage;
-
-	public XLCompilerPreferencePage() {
-		super(FLAT);
-		setPreferenceStore(XLCUIPlugin.getDefault().getPreferenceStore());
-		setDescription(Messages.XLCompilerPreferencePage_0);
-	}
-
-	/**
-	 * Creates the field editors. Field editors are abstractions of
-	 * the common GUI blocks needed to manipulate various types
-	 * of preferences. Each field editor knows how to save and
-	 * restore itself.
-	 */
-	@Override
-	public void createFieldEditors() {
-
-		DirectoryFieldEditor pathEditor = new DirectoryFieldEditor(PreferenceConstants.P_XL_COMPILER_ROOT,
-				Messages.XLCompilerPreferencePage_1, getFieldEditorParent()) {
-			@Override
-			protected boolean doCheckState() {
-				// always return true, as we don't want to fail cases when compiler is installed remotely
-				// just warn user
-				if (!super.doCheckState()) {
-					setMessage(Messages.XLCompilerPreferencePage_3, IMessageProvider.WARNING);
-				} else {
-					setMessage(originalMessage);
-				}
-
-				return true;
-			}
-
-			@Override
-			protected boolean checkState() {
-				return doCheckState();
-			}
-
-		};
-
-		addField(pathEditor);
-
-		String[][] versionEntries = {
-				{ PreferenceConstants.P_XL_COMPILER_VERSION_8_NAME, PreferenceConstants.P_XL_COMPILER_VERSION_8 },
-				{ PreferenceConstants.P_XL_COMPILER_VERSION_9_NAME, PreferenceConstants.P_XL_COMPILER_VERSION_9 },
-				{ PreferenceConstants.P_XL_COMPILER_VERSION_10_NAME, PreferenceConstants.P_XL_COMPILER_VERSION_10 },
-				{ PreferenceConstants.P_XL_COMPILER_VERSION_11_NAME, PreferenceConstants.P_XL_COMPILER_VERSION_11 } };
-
-		addField(new ComboFieldEditor(PreferenceConstants.P_XLC_COMPILER_VERSION, Messages.XLCompilerPreferencePage_2,
-				versionEntries, getFieldEditorParent()));
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
-	 */
-	@Override
-	public void init(IWorkbench workbench) {
-		originalMessage = getMessage();
-	}
-
-}
\ No newline at end of file
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/properties/HiddenOptionApplicabilityCalculator.java b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/properties/HiddenOptionApplicabilityCalculator.java
deleted file mode 100644
index 62e6e82..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/properties/HiddenOptionApplicabilityCalculator.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2012 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.cdt.managedbuilder.xlc.ui.properties;
-
-import org.eclipse.cdt.managedbuilder.core.IBuildObject;
-import org.eclipse.cdt.managedbuilder.core.IHoldsOptions;
-import org.eclipse.cdt.managedbuilder.core.IOption;
-import org.eclipse.cdt.managedbuilder.core.IOptionApplicability;
-
-/**
-	This class decides whether the make shared object
-	option is visible,enabled or used in command line or not */
-
-public class HiddenOptionApplicabilityCalculator implements IOptionApplicability {
-
-	/**
-	 * This function decides if the option for which this class
-	 * is option applicability calculator is enabled or not.
-	 */
-	@Override
-	public boolean isOptionEnabled(IBuildObject configuration, IHoldsOptions holder, IOption option) {
-		return false;
-	}
-
-	/**
-	 * This function decides if the option for which this class
-	 * is option applicability calculator is used in command line
-	 * or not.
-	 */
-
-	@Override
-	public boolean isOptionUsedInCommandLine(IBuildObject configuration, IHoldsOptions holder, IOption option) {
-		return true;
-	}
-
-	/**
-	 * This function decides if the option for which this class
-	 * is option applicability calculator is visible or not.
-	 */
-
-	@Override
-	public boolean isOptionVisible(IBuildObject configuration, IHoldsOptions holder, IOption option) {
-
-		return false;
-	}
-
-}
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/properties/XLCApplicabilityCalculator.java b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/properties/XLCApplicabilityCalculator.java
deleted file mode 100644
index a7163eb..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/properties/XLCApplicabilityCalculator.java
+++ /dev/null
@@ -1,249 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2007, 2012 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.managedbuilder.xlc.ui.properties;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-
-import org.eclipse.cdt.managedbuilder.core.IBuildObject;
-import org.eclipse.cdt.managedbuilder.core.IConfiguration;
-import org.eclipse.cdt.managedbuilder.core.IFolderInfo;
-import org.eclipse.cdt.managedbuilder.core.IHoldsOptions;
-import org.eclipse.cdt.managedbuilder.core.IManagedProject;
-import org.eclipse.cdt.managedbuilder.core.IOption;
-import org.eclipse.cdt.managedbuilder.core.IOptionApplicability;
-import org.eclipse.cdt.managedbuilder.xlc.ui.XLCUIPlugin;
-import org.eclipse.cdt.managedbuilder.xlc.ui.preferences.PreferenceConstants;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.QualifiedName;
-import org.eclipse.jface.preference.IPreferenceStore;
-
-/**
- * @author rkerimov
- *
- * This applicability calculator hides/shows options that are specific to the XL compiler versions
- *
- */
-
-public class XLCApplicabilityCalculator implements IOptionApplicability {
-	private static final String BUNDLE_NAME = "org/eclipse/cdt/managedbuilder/xlc/ui/properties/applicability.properties";
-	private static final String PROP_NAME_VERSION_ORDER = "xlc.applicability.version.order";
-	private static final String PROP_VALUE_PLUS = "+";
-
-	private static boolean initialized;
-	private static List versionOrder;
-	private static Map applicabilityMap;
-
-	public XLCApplicabilityCalculator() {
-		if (!initialized) {
-			Properties props = null;
-
-			ClassLoader loader = this.getClass().getClassLoader();
-			InputStream input = null;
-
-			if (loader != null)
-				input = loader.getResourceAsStream(BUNDLE_NAME);
-
-			if (input == null)
-				input = ClassLoader.getSystemResourceAsStream(BUNDLE_NAME);
-
-			try {
-				if (input != null) {
-					props = new Properties();
-					props.load(input);
-
-					Set entrySet = props.entrySet();
-					Iterator iterator = entrySet.iterator();
-					while (iterator.hasNext()) {
-						Map.Entry entry = (Map.Entry) iterator.next();
-
-						String key = (String) entry.getKey();
-						String value = (String) entry.getValue();
-
-						if (value == null)
-							value = "";
-
-						if (key.equals(PROP_NAME_VERSION_ORDER)) {
-							versionOrder = new ArrayList();
-							String[] versions = value.split(",");
-
-							if (versions != null) {
-								for (int i = 0; i < versions.length; i++) {
-									versionOrder.add(versions[i].trim());
-								}
-							}
-						} else {
-							if (applicabilityMap == null)
-								applicabilityMap = new HashMap();
-
-							List applicList = (List) applicabilityMap.get(key);
-							if (applicList == null) {
-								applicList = new ArrayList();
-								applicabilityMap.put(key, applicList);
-							}
-
-							boolean hasGreaterOption = false;
-							//find if ends with + and set as separate option
-							if (value.endsWith(PROP_VALUE_PLUS)) {
-								hasGreaterOption = true;
-								value = value.substring(0, value.length() - PROP_VALUE_PLUS.length());
-							}
-
-							String[] versions = value.split(",");
-
-							if (versions != null) {
-								for (int i = 0; i < versions.length; i++) {
-									applicList.add(versions[i].trim());
-								}
-
-							}
-
-							if (hasGreaterOption)
-								applicList.add(PROP_VALUE_PLUS);
-						}
-					}
-				}
-			} catch (IOException e) {
-				e.printStackTrace();
-			} finally {
-				if (input != null) {
-					try {
-						input.close();
-					} catch (IOException e) {
-						// ignore
-					}
-				}
-			}
-
-			initialized = true;
-
-		}
-	}
-
-	private boolean isApplicable(IBuildObject configuration, IHoldsOptions holder, IOption option) {
-		// first we check the preference for this project, if it exists
-		IProject project = null;
-		if (configuration instanceof IConfiguration) {
-			IConfiguration config = (IConfiguration) configuration;
-			IManagedProject managedProject = config.getManagedProject();
-
-			project = (IProject) managedProject.getOwner();
-		} else if (configuration instanceof IFolderInfo) {
-			IFolderInfo folderInfo = (IFolderInfo) configuration;
-
-			IConfiguration config = folderInfo.getParent();
-
-			IManagedProject managedProject = config.getManagedProject();
-
-			project = (IProject) managedProject.getOwner();
-
-		}
-
-		if (project == null)
-			return false;
-
-		String currentVersion = null;
-		try {
-			currentVersion = project
-					.getPersistentProperty(new QualifiedName("", PreferenceConstants.P_XLC_COMPILER_VERSION));
-		} catch (CoreException e) {
-			e.printStackTrace();
-		}
-
-		if (currentVersion == null) {
-			// if the property isn't set, then use the workbench preference
-			IPreferenceStore prefStore = XLCUIPlugin.getDefault().getPreferenceStore();
-			currentVersion = prefStore.getString(PreferenceConstants.P_XLC_COMPILER_VERSION);
-		}
-
-		//if applicability list is empty that means all options applicable to all versions
-		if (applicabilityMap == null)
-			return true;
-
-		//if applicability list for this option is not defined then option has no applicability restrictions
-		List applicList = (List) applicabilityMap.get(option.getId());
-		if (applicList == null || applicList.isEmpty())
-			return true;
-
-		//if version is defined in the list - perfect match
-		if (applicList.contains(currentVersion))
-			return true;
-
-		//if applicability is defined as 'starting from this version and greater', i.e. 'v8.0+',
-		//then we need to find out if current version is greater than the last valid in the list
-		String lastOption = (String) applicList.get(applicList.size() - 1);
-
-		if (lastOption != null && lastOption.equals(PROP_VALUE_PLUS)) {
-			//if 'greater than' option is specified but no version order exists, consider config error and return false
-			if (versionOrder == null)
-				return false;
-
-			//check for the last valid version in applicability list
-			String validVersion = null;
-			//start with element before the +
-			for (int k = applicList.size() - 2; k >= 0; k--) {
-				String version = (String) applicList.get(k);
-
-				if (versionOrder.contains(version)) {
-					validVersion = version;
-					break;
-				}
-			}
-
-			//if version that applicability starts with doesn't exist - config error
-			if (validVersion == null)
-				return false;
-
-			//compare if current compiler version is greater than the applicability version
-			if (versionOrder.indexOf(currentVersion) > versionOrder.indexOf(validVersion))
-				return true;
-		}
-
-		return false;
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.managedbuilder.core.IOptionApplicability#isOptionEnabled(org.eclipse.cdt.managedbuilder.core.IBuildObject, org.eclipse.cdt.managedbuilder.core.IHoldsOptions, org.eclipse.cdt.managedbuilder.core.IOption)
-	 */
-	@Override
-	public boolean isOptionEnabled(IBuildObject configuration, IHoldsOptions holder, IOption option) {
-		return isApplicable(configuration, holder, option);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.managedbuilder.core.IOptionApplicability#isOptionUsedInCommandLine(org.eclipse.cdt.managedbuilder.core.IBuildObject, org.eclipse.cdt.managedbuilder.core.IHoldsOptions, org.eclipse.cdt.managedbuilder.core.IOption)
-	 */
-	@Override
-	public boolean isOptionUsedInCommandLine(IBuildObject configuration, IHoldsOptions holder, IOption option) {
-		return isApplicable(configuration, holder, option);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.managedbuilder.core.IOptionApplicability#isOptionVisible(org.eclipse.cdt.managedbuilder.core.IBuildObject, org.eclipse.cdt.managedbuilder.core.IHoldsOptions, org.eclipse.cdt.managedbuilder.core.IOption)
-	 */
-	@Override
-	public boolean isOptionVisible(IBuildObject configuration, IHoldsOptions holder, IOption option) {
-		return isApplicable(configuration, holder, option);
-	}
-
-}
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/properties/XLCompilerPropertyPage.java b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/properties/XLCompilerPropertyPage.java
deleted file mode 100644
index 44ff582..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/properties/XLCompilerPropertyPage.java
+++ /dev/null
@@ -1,212 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2007, 2012 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.managedbuilder.xlc.ui.properties;
-
-import org.eclipse.cdt.managedbuilder.ui.properties.BuildOptionComboFieldEditor;
-import org.eclipse.cdt.managedbuilder.xlc.ui.Messages;
-import org.eclipse.cdt.managedbuilder.xlc.ui.XLCUIPlugin;
-import org.eclipse.cdt.managedbuilder.xlc.ui.preferences.PreferenceConstants;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.QualifiedName;
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.jface.preference.DirectoryFieldEditor;
-import org.eclipse.jface.preference.FieldEditorPreferencePage;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IWorkbenchPropertyPage;
-
-public class XLCompilerPropertyPage extends FieldEditorPreferencePage implements IWorkbenchPropertyPage {
-
-	protected String originalMessage;
-
-	protected Composite versionParent;
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors()
-	 */
-	@Override
-	protected void createFieldEditors() {
-		createPathEditor();
-		createVersionEditor();
-
-	}
-
-	protected void createPathEditor() {
-
-		Composite parent = getFieldEditorParent();
-
-		fPathEditor = new DirectoryFieldEditor(PreferenceConstants.P_XL_COMPILER_ROOT,
-				Messages.XLCompilerPropertyPage_0, parent) {
-			@Override
-			protected boolean doCheckState() {
-				// always return true, as we don't want to fail cases when
-				// compiler is installed remotely
-				// just warn user
-				if (!super.doCheckState()) {
-					setMessage(Messages.XLCompilerPropertyPage_2, IMessageProvider.WARNING);
-				} else {
-					setMessage(originalMessage);
-				}
-
-				return true;
-			}
-
-			@Override
-			protected boolean checkState() {
-				return doCheckState();
-			}
-
-		};
-
-		addField(fPathEditor);
-
-		IProject project = (getElement().getAdapter(IResource.class)).getProject();
-
-		String currentPath = null;
-
-		try {
-			currentPath = project.getPersistentProperty(new QualifiedName("", //$NON-NLS-1$
-					PreferenceConstants.P_XL_COMPILER_ROOT));
-		} catch (CoreException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-
-		if (currentPath == null) {
-			// if the property isn't set, then use the workbench preference
-			IPreferenceStore prefStore = XLCUIPlugin.getDefault().getPreferenceStore();
-			currentPath = prefStore.getString(PreferenceConstants.P_XL_COMPILER_ROOT);
-		}
-
-		fPathEditor.setStringValue(currentPath);
-
-	}
-
-	protected void createVersionEditor() {
-
-		IProject project = (getElement().getAdapter(IResource.class)).getProject();
-		String[] versionEntries = { PreferenceConstants.P_XL_COMPILER_VERSION_8_NAME,
-				PreferenceConstants.P_XL_COMPILER_VERSION_9_NAME, PreferenceConstants.P_XL_COMPILER_VERSION_10_NAME,
-				PreferenceConstants.P_XL_COMPILER_VERSION_11_NAME };
-
-		versionParent = getFieldEditorParent();
-
-		fVersionEditor = new BuildOptionComboFieldEditor(PreferenceConstants.P_XLC_COMPILER_VERSION,
-				Messages.XLCompilerPropertyPage_1, versionEntries, null, versionParent);
-
-		addField(fVersionEditor);
-
-		String currentVersion = null;
-		try {
-			currentVersion = project.getPersistentProperty(new QualifiedName("", //$NON-NLS-1$
-					PreferenceConstants.P_XLC_COMPILER_VERSION));
-		} catch (CoreException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-
-		if (currentVersion == null) {
-			// if the property isn't set, then use the workbench preference
-			IPreferenceStore prefStore = XLCUIPlugin.getDefault().getPreferenceStore();
-			currentVersion = prefStore.getString(PreferenceConstants.P_XLC_COMPILER_VERSION);
-		}
-
-		Combo versionCombo = fVersionEditor.getComboControl(versionParent);
-		versionCombo.setText(PreferenceConstants.getVersionLabel(currentVersion));
-
-	}
-
-	protected DirectoryFieldEditor fPathEditor;
-
-	protected BuildOptionComboFieldEditor fVersionEditor;
-
-	// private Composite parent;
-
-	/**
-	 * Constructor for SamplePropertyPage.
-	 */
-	public XLCompilerPropertyPage() {
-		super(FieldEditorPreferencePage.FLAT);
-
-		originalMessage = getMessage();
-	}
-
-	@Override
-	protected void performDefaults() {
-		// default to whatever is set on the workbench preference
-		IPreferenceStore prefStore = XLCUIPlugin.getDefault().getPreferenceStore();
-		String currentPath = prefStore.getString(PreferenceConstants.P_XL_COMPILER_ROOT);
-		String currentVersion = prefStore.getString(PreferenceConstants.P_XLC_COMPILER_VERSION);
-		String currentVersionLabel = PreferenceConstants.getVersionLabel(currentVersion);
-		if (fPathEditor != null) {
-			fPathEditor.setStringValue(currentPath);
-		}
-		//set the selection to default setting
-		fVersionEditor.setPreferenceStore(prefStore);
-		fVersionEditor.setPreferenceName(PreferenceConstants.P_XLC_COMPILER_VERSION);
-		fVersionEditor.loadDefault();
-		//set the text entry to default setting
-		fVersionEditor.getComboControl(versionParent).setText(currentVersionLabel);
-
-	}
-
-	@Override
-	public boolean performOk() {
-		// store the value in the owner text field
-		try {
-			IProject project = (getElement().getAdapter(IResource.class)).getProject();
-
-			if (fPathEditor != null) {
-				project.setPersistentProperty(new QualifiedName("", //$NON-NLS-1$
-						PreferenceConstants.P_XL_COMPILER_ROOT), fPathEditor.getStringValue());
-			}
-			String version = null;
-			if (fVersionEditor.getSelection() != null) {
-				version = PreferenceConstants.getVersion(fVersionEditor.getSelection());
-
-				project.setPersistentProperty(new QualifiedName("", //$NON-NLS-1$
-						PreferenceConstants.P_XLC_COMPILER_VERSION), version);
-			}
-		} catch (CoreException e) {
-			return false;
-		}
-		return true;
-	}
-
-	/**
-	 * The element.
-	 */
-	private IAdaptable element;
-
-	@Override
-	public IAdaptable getElement() {
-		return element;
-	}
-
-	/**
-	 * Sets the element that owns properties shown on this page.
-	 *
-	 * @param element
-	 *            the element
-	 */
-	@Override
-	public void setElement(IAdaptable element) {
-		this.element = element;
-	}
-
-}
\ No newline at end of file
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/properties/XLCv8ApplicabiltyCalculator.java b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/properties/XLCv8ApplicabiltyCalculator.java
deleted file mode 100644
index 001e009..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/properties/XLCv8ApplicabiltyCalculator.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2012 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.managedbuilder.xlc.ui.properties;
-
-import org.eclipse.cdt.managedbuilder.core.IBuildObject;
-import org.eclipse.cdt.managedbuilder.core.IConfiguration;
-import org.eclipse.cdt.managedbuilder.core.IFolderInfo;
-import org.eclipse.cdt.managedbuilder.core.IHoldsOptions;
-import org.eclipse.cdt.managedbuilder.core.IManagedProject;
-import org.eclipse.cdt.managedbuilder.core.IOption;
-import org.eclipse.cdt.managedbuilder.core.IOptionApplicability;
-import org.eclipse.cdt.managedbuilder.xlc.ui.XLCUIPlugin;
-import org.eclipse.cdt.managedbuilder.xlc.ui.preferences.PreferenceConstants;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.QualifiedName;
-import org.eclipse.jface.preference.IPreferenceStore;
-
-/**
- * @author crecoskie
- *
- */
-public class XLCv8ApplicabiltyCalculator implements IOptionApplicability {
-
-	private boolean isVersion8(IBuildObject configuration) {
-		// first we check the preference for this project, if it exists
-		if (configuration instanceof IConfiguration) {
-			IConfiguration config = (IConfiguration) configuration;
-			IManagedProject managedProject = config.getManagedProject();
-
-			IProject project = (IProject) managedProject.getOwner();
-
-			String currentVersion = null;
-			try {
-				currentVersion = project
-						.getPersistentProperty(new QualifiedName("", PreferenceConstants.P_XLC_COMPILER_VERSION));
-			} catch (CoreException e) {
-				// TODO Auto-generated catch block
-				e.printStackTrace();
-			}
-
-			if (currentVersion == null) {
-				// if the property isn't set, then use the workbench preference
-				IPreferenceStore prefStore = XLCUIPlugin.getDefault().getPreferenceStore();
-				currentVersion = prefStore.getString(PreferenceConstants.P_XLC_COMPILER_VERSION);
-			}
-
-			if (currentVersion.equals(PreferenceConstants.P_XL_COMPILER_VERSION_8))
-				return true;
-		}
-
-		if (configuration instanceof IFolderInfo) {
-			IFolderInfo folderInfo = (IFolderInfo) configuration;
-
-			IConfiguration config = folderInfo.getParent();
-
-			IManagedProject managedProject = config.getManagedProject();
-
-			IProject project = (IProject) managedProject.getOwner();
-
-			String currentVersion = null;
-			try {
-				currentVersion = project
-						.getPersistentProperty(new QualifiedName("", PreferenceConstants.P_XLC_COMPILER_VERSION));
-			} catch (CoreException e) {
-				// TODO Auto-generated catch block
-				e.printStackTrace();
-			}
-
-			if (currentVersion == null) {
-				// if the property isn't set, then use the workbench preference
-				IPreferenceStore prefStore = XLCUIPlugin.getDefault().getPreferenceStore();
-				currentVersion = prefStore.getString(PreferenceConstants.P_XLC_COMPILER_VERSION);
-			}
-
-			if (currentVersion.equals(PreferenceConstants.P_XL_COMPILER_VERSION_8))
-				return true;
-
-		}
-
-		return false;
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.managedbuilder.core.IOptionApplicability#isOptionEnabled(org.eclipse.cdt.managedbuilder.core.IBuildObject, org.eclipse.cdt.managedbuilder.core.IHoldsOptions, org.eclipse.cdt.managedbuilder.core.IOption)
-	 */
-	@Override
-	public boolean isOptionEnabled(IBuildObject configuration, IHoldsOptions holder, IOption option) {
-		return isVersion8(configuration);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.managedbuilder.core.IOptionApplicability#isOptionUsedInCommandLine(org.eclipse.cdt.managedbuilder.core.IBuildObject, org.eclipse.cdt.managedbuilder.core.IHoldsOptions, org.eclipse.cdt.managedbuilder.core.IOption)
-	 */
-	@Override
-	public boolean isOptionUsedInCommandLine(IBuildObject configuration, IHoldsOptions holder, IOption option) {
-		return isVersion8(configuration);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.managedbuilder.core.IOptionApplicability#isOptionVisible(org.eclipse.cdt.managedbuilder.core.IBuildObject, org.eclipse.cdt.managedbuilder.core.IHoldsOptions, org.eclipse.cdt.managedbuilder.core.IOption)
-	 */
-	@Override
-	public boolean isOptionVisible(IBuildObject configuration, IHoldsOptions holder, IOption option) {
-		return isVersion8(configuration);
-	}
-}
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/properties/XLCv9ApplicabilityCalculator.java b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/properties/XLCv9ApplicabilityCalculator.java
deleted file mode 100644
index 533e9b1..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/properties/XLCv9ApplicabilityCalculator.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2012 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.managedbuilder.xlc.ui.properties;
-
-import org.eclipse.cdt.managedbuilder.core.IBuildObject;
-import org.eclipse.cdt.managedbuilder.core.IConfiguration;
-import org.eclipse.cdt.managedbuilder.core.IFolderInfo;
-import org.eclipse.cdt.managedbuilder.core.IHoldsOptions;
-import org.eclipse.cdt.managedbuilder.core.IManagedProject;
-import org.eclipse.cdt.managedbuilder.core.IOption;
-import org.eclipse.cdt.managedbuilder.core.IOptionApplicability;
-import org.eclipse.cdt.managedbuilder.xlc.ui.XLCUIPlugin;
-import org.eclipse.cdt.managedbuilder.xlc.ui.preferences.PreferenceConstants;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.QualifiedName;
-import org.eclipse.jface.preference.IPreferenceStore;
-
-/**
- * @author crecoskie
- *
- * This applicability calculator hides/shows options that are specific to the XL compilers, v9.0
- *
- */
-public class XLCv9ApplicabilityCalculator implements IOptionApplicability {
-
-	private boolean isVersion9(IBuildObject configuration) {
-		// first we check the preference for this project, if it exists
-		if (configuration instanceof IConfiguration) {
-			IConfiguration config = (IConfiguration) configuration;
-			IManagedProject managedProject = config.getManagedProject();
-
-			IProject project = (IProject) managedProject.getOwner();
-
-			String currentVersion = null;
-			try {
-				currentVersion = project
-						.getPersistentProperty(new QualifiedName("", PreferenceConstants.P_XLC_COMPILER_VERSION));
-			} catch (CoreException e) {
-				// TODO Auto-generated catch block
-				e.printStackTrace();
-			}
-
-			if (currentVersion == null) {
-				// if the property isn't set, then use the workbench preference
-				IPreferenceStore prefStore = XLCUIPlugin.getDefault().getPreferenceStore();
-				currentVersion = prefStore.getString(PreferenceConstants.P_XLC_COMPILER_VERSION);
-			}
-
-			if (currentVersion.equals(PreferenceConstants.P_XL_COMPILER_VERSION_9))
-				return true;
-		}
-
-		if (configuration instanceof IFolderInfo) {
-			IFolderInfo folderInfo = (IFolderInfo) configuration;
-
-			IConfiguration config = folderInfo.getParent();
-
-			IManagedProject managedProject = config.getManagedProject();
-
-			IProject project = (IProject) managedProject.getOwner();
-
-			String currentVersion = null;
-			try {
-				currentVersion = project
-						.getPersistentProperty(new QualifiedName("", PreferenceConstants.P_XLC_COMPILER_VERSION));
-			} catch (CoreException e) {
-				// TODO Auto-generated catch block
-				e.printStackTrace();
-			}
-
-			if (currentVersion == null) {
-				// if the property isn't set, then use the workbench preference
-				IPreferenceStore prefStore = XLCUIPlugin.getDefault().getPreferenceStore();
-				currentVersion = prefStore.getString(PreferenceConstants.P_XLC_COMPILER_VERSION);
-			}
-
-			if (currentVersion.equals(PreferenceConstants.P_XL_COMPILER_VERSION_9))
-				return true;
-
-		}
-
-		return false;
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.managedbuilder.core.IOptionApplicability#isOptionEnabled(org.eclipse.cdt.managedbuilder.core.IBuildObject, org.eclipse.cdt.managedbuilder.core.IHoldsOptions, org.eclipse.cdt.managedbuilder.core.IOption)
-	 */
-	@Override
-	public boolean isOptionEnabled(IBuildObject configuration, IHoldsOptions holder, IOption option) {
-		return isVersion9(configuration);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.managedbuilder.core.IOptionApplicability#isOptionUsedInCommandLine(org.eclipse.cdt.managedbuilder.core.IBuildObject, org.eclipse.cdt.managedbuilder.core.IHoldsOptions, org.eclipse.cdt.managedbuilder.core.IOption)
-	 */
-	@Override
-	public boolean isOptionUsedInCommandLine(IBuildObject configuration, IHoldsOptions holder, IOption option) {
-		return isVersion9(configuration);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.managedbuilder.core.IOptionApplicability#isOptionVisible(org.eclipse.cdt.managedbuilder.core.IBuildObject, org.eclipse.cdt.managedbuilder.core.IHoldsOptions, org.eclipse.cdt.managedbuilder.core.IOption)
-	 */
-	@Override
-	public boolean isOptionVisible(IBuildObject configuration, IHoldsOptions holder, IOption option) {
-		return isVersion9(configuration);
-	}
-
-}
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/properties/applicability.properties b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/properties/applicability.properties
deleted file mode 100644
index b8de624..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/properties/applicability.properties
+++ /dev/null
@@ -1,49 +0,0 @@
-###############################################################################
-# Copyright (c) 2007, 2011 IBM Corporation and others.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# START NON-TRANSLATABLE
-xlc.applicability.version.order=v8.0,v9.0,v10.1,v11.1
-
-xlc.c.compiler.option.optimization.arch=v8.0
-xlc.c.compiler.option.optimization.arch.9.0=v9.0,v10.1
-xlc.c.compiler.option.optimization.arch.11.1=v11.1+
-xlc.c.compiler.option.optimization.qassert=v11.1+
-xlc.c.compiler.option.optimization.tune=v8.0
-xlc.c.compiler.option.optimization.tune.9.0=v9.0,v10.1
-xlc.c.compiler.option.optimization.tune.11.1=v11.1+
-xlc.c.compiler.option.optimization.qinline=v11.1+
-xlc.c.compiler.option.optimization.qsimd=v11.1+
-xlc.c.compiler.option.optimization.qprefetch=v11.1+
-xlc.c.compiler.option.ifp.dfp=v9.0+
-xlc.c.compiler.option.preprocessor.PreprocessRemoveComments=v9.0+
-xlc.c.compiler.option.ecd.optdebug=v9.0+
-xlc.c.compiler.option.optimization.smp=v8.0,v9.0
-xlc.c.compiler.option.optimization.smp.v10=v10.1
-xlc.c.compiler.option.optimization.strict=v8.0,v9.0
-xlc.c.compiler.option.optimization.strict.v10=v10.1+
-org.eclipse.cdt.managedbuilder.xlc.ui.cpp.option.output.unique.v10=v10.1
-org.eclipse.cdt.managedbuilder.xlc.ui.cpp.option.namemangling=v8.0,v9.0
-org.eclipse.cdt.managedbuilder.xlc.ui.cpp.option.namemangling.v10=v10.1
-org.eclipse.cdt.managedbuilder.xlc.ui.cpp.option.output.qconcurrentupdate=v11.1
-xlc.c.compiler.option.cc.tls=v8.0,v9.0
-xlc.c.compiler.option.cc.tls.v10=v10.1
-xlc.c.compiler.option.output.macros=v10.1
-xlc.c.compiler.option.output.timestamps=v10.1
-xlc.c.compiler.option.output.qstackprotect=v11.1+
-xlc.c.compiler.option.output.enablevmx=v8.0,v9.0,v10.1,v11.1
-xlc.ui.cpp.option.output.qconcurrentupdate
-xlc.c.compiler.option.qfunctrace=v11.1+
-xlc.c.compiler.option.optimization.qrestrict=v11.1+
-xlc.c.compiler.option.lm.qlistfmt=v11.1+
-
-# END NON-TRANSLATABLE
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/variables/DynamicVariableResolver.java b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/variables/DynamicVariableResolver.java
deleted file mode 100644
index 1557a67..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/variables/DynamicVariableResolver.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2012 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.managedbuilder.xlc.ui.variables;
-
-import org.eclipse.cdt.managedbuilder.xlc.ui.XLCUIPlugin;
-import org.eclipse.cdt.managedbuilder.xlc.ui.preferences.PreferenceConstants;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.variables.IDynamicVariable;
-import org.eclipse.core.variables.IDynamicVariableResolver;
-import org.eclipse.jface.preference.IPreferenceStore;
-
-/**
- * @author crecoskie
- *
- */
-public class DynamicVariableResolver implements IDynamicVariableResolver {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.variables.IDynamicVariableResolver#resolveValue(org.eclipse.core.variables.IDynamicVariable, java.lang.String)
-	 */
-	@Override
-	public String resolveValue(IDynamicVariable variable, String argument) throws CoreException {
-
-		if (variable.getName().equals((PreferenceConstants.P_XL_COMPILER_ROOT))) {
-			IPreferenceStore prefStore = XLCUIPlugin.getDefault().getPreferenceStore();
-			return prefStore.getString(PreferenceConstants.P_XL_COMPILER_ROOT);
-		}
-
-		return null;
-	}
-
-}
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/wizards/XLCSettingsWizardPage.java b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/wizards/XLCSettingsWizardPage.java
deleted file mode 100644
index 1f934ef..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/wizards/XLCSettingsWizardPage.java
+++ /dev/null
@@ -1,319 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2007, 2015 IBM Corporation and others.
- *
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  SPDX-License-Identifier: EPL-2.0
- *
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.managedbuilder.xlc.ui.wizards;
-
-import org.eclipse.cdt.managedbuilder.ui.wizards.MBSCustomPage;
-import org.eclipse.cdt.managedbuilder.ui.wizards.MBSCustomPageManager;
-import org.eclipse.cdt.managedbuilder.xlc.ui.Messages;
-import org.eclipse.cdt.managedbuilder.xlc.ui.XLCUIPlugin;
-import org.eclipse.cdt.managedbuilder.xlc.ui.preferences.PreferenceConstants;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.DirectoryDialog;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * @author crecoskie
- *
- */
-public class XLCSettingsWizardPage extends MBSCustomPage {
-
-	public static final String PAGE_ID = "org.eclipse.cdt.managedbuilder.xlc.ui.XlcSettingsWizardPage"; //$NON-NLS-1$
-
-	private final class BrowseButtonSelectionListener implements SelectionListener {
-		private final Composite composite;
-
-		private BrowseButtonSelectionListener(Composite composite) {
-			this.composite = composite;
-		}
-
-		@Override
-		public void widgetDefaultSelected(SelectionEvent e) {
-			// meaningless for a button... do nothing
-
-		}
-
-		@Override
-		public void widgetSelected(SelectionEvent e) {
-			// open a browse dialog
-			DirectoryDialog dirDialog = new DirectoryDialog(composite.getShell(), SWT.APPLICATION_MODAL);
-			String browsedDirectory = dirDialog.open();
-			if (browsedDirectory != null) {
-				fDirTextBox.setText(browsedDirectory);
-			}
-		}
-	}
-
-	private Composite fComposite = null;
-
-	private Text fDirTextBox;
-
-	private Combo fVersionCombo;
-
-	/**
-	 * @param pageID
-	 */
-	public XLCSettingsWizardPage(String pageID) {
-		super(pageID);
-		setDefaultPreferences(pageID);
-	}
-
-	/**
-	 *
-	 */
-	public XLCSettingsWizardPage() {
-		super(PAGE_ID);
-		setDefaultPreferences(PAGE_ID);
-	}
-
-	private void setDefaultPreferences(String pageID) {
-		String compilerPath = XLCUIPlugin.getDefault().getPreferenceStore()
-				.getString(PreferenceConstants.P_XL_COMPILER_ROOT);
-		MBSCustomPageManager.addPageProperty(pageID, PreferenceConstants.P_XL_COMPILER_ROOT, compilerPath);
-		MBSCustomPageManager.addPageProperty(pageID, PreferenceConstants.P_XLC_COMPILER_VERSION,
-				PreferenceConstants.P_XL_COMPILER_VERSION_8);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.managedbuilder.ui.wizards.MBSCustomPage#isCustomPageComplete()
-	 */
-	@Override
-	protected boolean isCustomPageComplete() {
-		return true;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.wizard.IWizardPage#getName()
-	 */
-	@Override
-	public String getName() {
-		String name = Messages.XLCSettingsWizardPage_0;
-		return name;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
-	 */
-	@Override
-	public void createControl(Composite parent) {
-		// create a new composite
-		fComposite = new Composite(parent, SWT.NONE);
-		fComposite.setBounds(parent.getBounds());
-		GridLayout layout = new GridLayout(3, false);
-		fComposite.setLayout(layout);
-		fComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		// create the first label
-		Label label1 = new Label(fComposite, SWT.NONE);
-		label1.setText(Messages.XLCSettingsWizardPage_1);
-		label1.setVisible(true);
-
-		// create the text box for the path
-		GridData dirBoxGridData = new GridData();
-		dirBoxGridData.grabExcessHorizontalSpace = true;
-		dirBoxGridData.horizontalAlignment = SWT.FILL;
-		fDirTextBox = new Text(fComposite, SWT.SINGLE | SWT.BORDER);
-		fDirTextBox.setLayoutData(dirBoxGridData);
-		fDirTextBox.setVisible(true);
-
-		// set the default compiler location based on preferences
-		IPreferenceStore prefStore = XLCUIPlugin.getDefault().getPreferenceStore();
-		String compilerPath = prefStore.getString(PreferenceConstants.P_XL_COMPILER_ROOT);
-		fDirTextBox.setText(compilerPath);
-
-		// update the page manager with the setting
-		MBSCustomPageManager.addPageProperty(pageID, PreferenceConstants.P_XL_COMPILER_ROOT, fDirTextBox.getText());
-
-		fDirTextBox.addModifyListener(new ModifyListener() {
-
-			@Override
-			public void modifyText(ModifyEvent e) {
-				// update the page manager with the setting
-				MBSCustomPageManager.addPageProperty(pageID, PreferenceConstants.P_XL_COMPILER_ROOT,
-						fDirTextBox.getText());
-
-			}
-
-		});
-
-		// create the browse button
-		//String selectedPath = null;
-		GridData buttonData = new GridData();
-		buttonData.horizontalAlignment = SWT.RIGHT;
-		Button browseButton = new Button(fComposite, SWT.PUSH);
-		browseButton.setAlignment(SWT.CENTER);
-		browseButton.setText(Messages.XLCSettingsWizardPage_2);
-		browseButton.addSelectionListener(new BrowseButtonSelectionListener(fComposite));
-
-		browseButton.setVisible(true);
-
-		// create the second label
-		Label label2 = new Label(fComposite, SWT.NONE);
-		label2.setText(Messages.XLCSettingsWizardPage_3);
-
-		label2.setVisible(true);
-
-		// create the version dropdown
-		GridData comboData = new GridData();
-		comboData.grabExcessHorizontalSpace = true;
-		comboData.horizontalAlignment = SWT.FILL;
-
-		fVersionCombo = new Combo(fComposite, SWT.READ_ONLY);
-		fVersionCombo.setLayoutData(comboData);
-
-		// populate the combo
-		fVersionCombo.add(PreferenceConstants.P_XL_COMPILER_VERSION_8_NAME);
-		fVersionCombo.add(PreferenceConstants.P_XL_COMPILER_VERSION_9_NAME);
-		fVersionCombo.add(PreferenceConstants.P_XL_COMPILER_VERSION_10_NAME);
-		fVersionCombo.add(PreferenceConstants.P_XL_COMPILER_VERSION_11_NAME);
-
-		// set the default based on the workbench preference
-		String compilerVersion = prefStore.getString(PreferenceConstants.P_XLC_COMPILER_VERSION);
-		fVersionCombo.setText(PreferenceConstants.getVersionLabel(compilerVersion));
-
-		// update the page manager with the setting
-		MBSCustomPageManager.addPageProperty(pageID, PreferenceConstants.P_XLC_COMPILER_VERSION,
-				PreferenceConstants.getVersion(fVersionCombo.getText()));
-
-		fVersionCombo.addModifyListener(new ModifyListener() {
-
-			@Override
-			public void modifyText(ModifyEvent e) {
-				// update the page manager with the setting
-				MBSCustomPageManager.addPageProperty(pageID, PreferenceConstants.P_XLC_COMPILER_VERSION,
-						PreferenceConstants.getVersion(fVersionCombo.getText()));
-
-			}
-
-		});
-
-		fVersionCombo.setVisible(true);
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.IDialogPage#dispose()
-	 */
-	@Override
-	public void dispose() {
-		fComposite.dispose();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.IDialogPage#getControl()
-	 */
-	@Override
-	public Control getControl() {
-		return fComposite;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.IDialogPage#getDescription()
-	 */
-	@Override
-	public String getDescription() {
-		return Messages.XLCSettingsWizardPage_4;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.IDialogPage#getErrorMessage()
-	 */
-	@Override
-	public String getErrorMessage() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.IDialogPage#getImage()
-	 */
-	@Override
-	public Image getImage() {
-		return wizard.getDefaultPageImage();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.IDialogPage#getMessage()
-	 */
-	@Override
-	public String getMessage() {
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.IDialogPage#getTitle()
-	 */
-	@Override
-	public String getTitle() {
-		return Messages.XLCSettingsWizardPage_5;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.IDialogPage#performHelp()
-	 */
-	@Override
-	public void performHelp() {
-		// TODO Auto-generated method stub
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.IDialogPage#setDescription(java.lang.String)
-	 */
-	@Override
-	public void setDescription(String description) {
-		// TODO Auto-generated method stub
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.IDialogPage#setImageDescriptor(org.eclipse.jface.resource.ImageDescriptor)
-	 */
-	@Override
-	public void setImageDescriptor(ImageDescriptor image) {
-		// TODO Auto-generated method stub
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.IDialogPage#setTitle(java.lang.String)
-	 */
-	@Override
-	public void setTitle(String title) {
-		// TODO Auto-generated method stub
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.IDialogPage#setVisible(boolean)
-	 */
-	@Override
-	public void setVisible(boolean visible) {
-		fComposite.setVisible(visible);
-	}
-
-}
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/wizards/XLCSettingsWizardRunnable.java b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/wizards/XLCSettingsWizardRunnable.java
deleted file mode 100644
index f8f74dc..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/wizards/XLCSettingsWizardRunnable.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2012 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.managedbuilder.xlc.ui.wizards;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.cdt.core.CCorePlugin;
-import org.eclipse.cdt.internal.ui.wizards.ICDTCommonProjectWizard;
-import org.eclipse.cdt.managedbuilder.ui.wizards.MBSCustomPageManager;
-import org.eclipse.cdt.managedbuilder.xlc.ui.preferences.PreferenceConstants;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.QualifiedName;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.wizard.IWizardPage;
-
-/**
- * @author crecoskie
- *
- */
-public class XLCSettingsWizardRunnable implements IRunnableWithProgress {
-
-	protected String pageId = XLCSettingsWizardPage.PAGE_ID;
-
-	public XLCSettingsWizardRunnable() {
-	}
-
-	@Override
-	public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
-		// take the data from the page manager, and set the project properties with it
-		String compilerPath = MBSCustomPageManager.getPageProperty(pageId, PreferenceConstants.P_XL_COMPILER_ROOT)
-				.toString();
-		String compilerVersion = MBSCustomPageManager
-				.getPageProperty(pageId, PreferenceConstants.P_XLC_COMPILER_VERSION).toString();
-
-		// get a handle to the wizard
-		IWizardPage[] pages = MBSCustomPageManager.getPages();
-
-		if (pages != null && pages.length > 0) {
-
-			ICDTCommonProjectWizard wizard = (ICDTCommonProjectWizard) pages[0].getWizard();
-			IProject project = wizard.getLastProject();
-
-			try {
-				project.setPersistentProperty(new QualifiedName("", PreferenceConstants.P_XL_COMPILER_ROOT),
-						compilerPath);
-				project.setPersistentProperty(new QualifiedName("", PreferenceConstants.P_XLC_COMPILER_VERSION),
-						compilerVersion);
-
-			} catch (CoreException e) {
-				CCorePlugin.log(e);
-			}
-		}
-	}
-
-}
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/.classpath b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/.classpath
deleted file mode 100644
index 4f83b23..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/.project b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/.project
deleted file mode 100644
index 92de644..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.cdt.managedbuilder.xlupc.ui</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/.settings/org.eclipse.jdt.core.prefs b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 2b6ecff..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,464 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch, *.xtend
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.mainOnlyProjectHasTestOnlyDependency=error
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.APILeak=warning
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
-org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
-org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
-org.eclipse.jdt.core.formatter.align_with_spaces=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
-org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped=true
-org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=true
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
-org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/.settings/org.eclipse.jdt.launching.prefs b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/.settings/org.eclipse.jdt.launching.prefs
deleted file mode 100644
index f8a131b..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/.settings/org.eclipse.jdt.launching.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.launching.PREF_COMPILER_COMPLIANCE_DOES_NOT_MATCH_JRE=warning
-org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=warning
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/.settings/org.eclipse.jdt.ui.prefs b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index e445763..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,133 +0,0 @@
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_missing_override_annotations_interface_methods=true
-cleanup.add_serial_version_id=false
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_functional_interfaces=false
-cleanup.convert_to_enhanced_for_loop=false
-cleanup.correct_indentation=false
-cleanup.format_source_code=true
-cleanup.format_source_code_changes_only=false
-cleanup.insert_inferred_type_arguments=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=true
-cleanup.qualify_static_field_accesses_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=false
-cleanup.qualify_static_method_accesses_with_declaring_class=false
-cleanup.remove_private_constructors=true
-cleanup.remove_redundant_modifiers=false
-cleanup.remove_redundant_semicolons=true
-cleanup.remove_redundant_type_arguments=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=false
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_anonymous_class_creation=false
-cleanup.use_blocks=false
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_lambda=true
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup_profile=_CDT
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_CDT
-formatter_settings_version=14
-internal.default.compliance=user
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.ondemandthreshold=1000
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.staticondemandthreshold=1000
-org.eclipse.jdt.ui.text.custom_code_templates=
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_functional_interfaces=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.insert_inferred_type_arguments=false
-sp_cleanup.make_local_variable_final=true
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_redundant_modifiers=false
-sp_cleanup.remove_redundant_semicolons=true
-sp_cleanup.remove_redundant_type_arguments=true
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=true
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_anonymous_class_creation=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_lambda=true
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/.settings/org.eclipse.pde.api.tools.prefs b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index ec9fbf3..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,184 +0,0 @@
-ANNOTATION_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITH_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-API_USE_SCAN_FIELD_SEVERITY=Error
-API_USE_SCAN_METHOD_SEVERITY=Error
-API_USE_SCAN_TYPE_SEVERITY=Error
-CLASS_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERCLASS_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_CHANGED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENTS=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETERS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_ANNOTATION=Ignore
-INVALID_JAVADOC_TAG=Error
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Warning
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-MISSING_EE_DESCRIPTIONS=Warning
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-automatically_removed_unused_problem_filters=false
-changed_execution_env=Error
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-incompatible_api_component_version_report_major_without_breaking_change=Warning
-incompatible_api_component_version_report_minor_without_api_change=Warning
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/.settings/org.eclipse.pde.prefs b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index d2dc703..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,35 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.build.bin.includes=1
-compilers.p.build.encodings=2
-compilers.p.build.java.compiler=2
-compilers.p.build.java.compliance=1
-compilers.p.build.missing.output=2
-compilers.p.build.output.library=1
-compilers.p.build.source.library=1
-compilers.p.build.src.includes=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=1
-compilers.p.missing-packages=2
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=2
-compilers.p.missing-version-require-bundle=2
-compilers.p.no-required-att=0
-compilers.p.no.automatic.module=1
-compilers.p.not-externalized-att=1
-compilers.p.service.component.without.lazyactivation=1
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/META-INF/MANIFEST.MF b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/META-INF/MANIFEST.MF
deleted file mode 100644
index 89b6eaf..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,24 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Bundle-Name.0
-Bundle-SymbolicName: org.eclipse.cdt.managedbuilder.xlupc.ui;singleton:=true
-Bundle-Version: 1.1.1.qualifier
-Bundle-Activator: org.eclipse.cdt.managedbuilder.xlupc.ui.Activator
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.eclipse.cdt.managedbuilder.core;bundle-version="5.0.1",
- org.eclipse.cdt.core;bundle-version="5.0.2",
- org.eclipse.core.resources;bundle-version="3.4.1",
- org.eclipse.cdt.managedbuilder.ui;bundle-version="5.0.1",
- org.eclipse.cdt.ui;bundle-version="5.0.2",
- org.eclipse.ui.ide;bundle-version="3.4.1",
- org.eclipse.core.variables;bundle-version="3.2.100",
- org.eclipse.cdt.core.parser.upc;bundle-version="5.0.0",
- org.eclipse.cdt.managedbuilder.xlc.ui;bundle-version="6.0.0"
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-ActivationPolicy: lazy
-Bundle-Vendor: %Bundle-Vendor.0
-Export-Package: org.eclipse.cdt.managedbuilder.xlupc.ui,
- org.eclipse.cdt.managedbuilder.xlupc.ui.wizards
-Bundle-Localization: plugin
-Automatic-Module-Name: org.eclipse.cdt.managedbuilder.xlupc.ui
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/about.html b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/about.html
deleted file mode 100644
index 164f781..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
-	<h2>About This Content</h2>
-
-	<p>November 30, 2017</p>
-	<h3>License</h3>
-
-	<p>
-		The Eclipse Foundation makes available all content in this plug-in
-		(&quot;Content&quot;). Unless otherwise indicated below, the Content
-		is provided to you under the terms and conditions of the Eclipse
-		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
-		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>
-		If you did not receive this Content directly from the Eclipse
-		Foundation, the Content is being redistributed by another party
-		(&quot;Redistributor&quot;) and different terms and conditions may
-		apply to your use of any object code in the Content. Check the
-		Redistributor's license that was provided with the Content. If no such
-		license exists, contact the Redistributor. Unless otherwise indicated
-		below, the terms and conditions of the EPL still apply to any source
-		code in the Content and such source code may be obtained at <a
-			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
-	</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/build.properties b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/build.properties
deleted file mode 100644
index 5d28cf1..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-###############################################################################
-#  Copyright (c) 2009 IBM Corporation and others.
-#
-#  This program and the accompanying materials
-#  are made available under the terms of the Eclipse Public License 2.0
-#  which accompanies this distribution, and is available at
-#  https://www.eclipse.org/legal/epl-2.0/
-#
-#  SPDX-License-Identifier: EPL-2.0
-#
-#  Contributors:
-#      IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.xml,\
-               plugin.properties,\
-               about.html
-src.includes = about.html
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/icons/c-project.gif b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/icons/c-project.gif
deleted file mode 100644
index 0b693cb..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/icons/c-project.gif
+++ /dev/null
Binary files differ
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/plugin.properties b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/plugin.properties
deleted file mode 100644
index b0ba262..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/plugin.properties
+++ /dev/null
@@ -1,66 +0,0 @@
-###############################################################################
-# Copyright (c) 2009, 2011 IBM Corporation and others.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-#Properties file for org.eclipse.cdt.managedbuilder.xlupc.ui
-Bundle-Vendor.0 = Eclipse CDT
-Bundle-Name.0 = XL UPC Managed Build UI Plugin
-category.name.1=XL UPC
-wizard.name.1=XL UPC Project
-
-ToolName.compiler.xlupc = XL UPC Compiler
-ToolName.linker.xlupc = XL UPC Linker
-tool.name.0 = Abstract XL UPC Linker
-
-TargetName.xlupc.exe=Executable (XL UPC)
-TargetName.xlupc.so=Shared Library (XL UPC)
-TargetName.xlupc.lib=Static Library(XL UPC)
-
-ToolChainName.Upc=XL UPC Tool Chain
-
-ConfigName.Dbg=Debug
-ConfigName.Rel=Release
-
-PlatformName.Rel=Release Platform
-PlatformName.Dbg=Debug Platform
-
-BuildProperty.type.name.xlupc.executable=Executable (XL UPC)
-BuildProperty.type.name.xlupc.staticLibrary=Static Library (XL UPC)
-BuildProperty.type.name.xlupc.sharedLibrary=Shared Library (XL UPC)
-
-OptionCategory.upc=XL UPC Compiler Options
-
-Option.qsourcetype=Use filename suffix to determine the programming language (-qsourcetype)
-Option.qsourcetype.default=default
-Option.qsourcetype.upc=upc
-
-Option.runtime=UPC runtime implementation (-qupc=rts=<suboption>)
-Option.runtime.default=default
-Option.runtime.lapi=lapi
-Option.runtime.smp=smp
-
-Option.threads=Number of static THREADS (-qupc=threads=<n>)
-
-Option.compilation=Select either 32-bit or 64-bit compilation mode
-Option.compilation.q32=-q32
-Option.compilation.q64=-q64
-
-
-extension.name = Base Build Properties Definition
-tool.linker.exe.name = XL UPC Executable Linker
-tool.linker.so.name = XL UPC Shared Object Linker
-tool.compiler.abstract.name = Abstract XL UPC Compiler
-tool.compiler.name = Local XL UPC Compiler
-inputType.upc.name = Local UPC Sources
-inputType.c.name = Local C Sources
-wizard.description = Create a new XL UPC project
\ No newline at end of file
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/plugin.xml b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/plugin.xml
deleted file mode 100644
index 5213400..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/plugin.xml
+++ /dev/null
@@ -1,499 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
-   <extension
-         point="org.eclipse.cdt.managedbuilder.core.buildDefinitions">
-      <projectType
-            buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.xlupc.exe"
-            id="cdt.managedbuild.target.xlupc.exe"
-            isAbstract="false"
-            isTest="false"
-            name="%TargetName.xlupc.exe"
-            projectMacroSupplier="org.eclipse.cdt.managedbuilder.xlc.ui.XLCProjectMacroSupplier">
-         <configuration
-               artifactExtension="exe"
-               cleanCommand="rm -rf"
-               errorParsers="org.eclipse.cdt.errorparsers.xlc.XlcErrorParser"
-               id="cdt.managedbuild.config.xlupc.exe.debug"
-               name="%ConfigName.Dbg">
-            <toolChain
-                  archList="all"
-                  configurationEnvironmentSupplier="org.eclipse.cdt.managedbuilder.xlc.aix.AixConfigurationEnvironmentSupplier"
-                  id="cdt.managedbuild.toolchain.xlupc.exe.debug"
-                  name="%ToolChainName.Upc"
-                  osList="all"
-                  targetTool="cdt.managedbuild.tool.linker.xlupc.exe.debug">
-               <targetPlatform
-                     archList="all"
-                     id="cdt.managedbuild.targetplatform.xlupc.exe.debug"
-                     name="%PlatformName.Dbg"
-                     osList="all">
-               </targetPlatform>
-               <builder
-                     id="cdt.managedbuild.builder.xlupc.exe.debug"
-                     superClass="cdt.managedbuild.target.gnu.builder">
-               </builder>
-               <tool
-                     id="cdt.managedbuild.tool.compiler.xlupc.exe.debug"
-                     superClass="org.eclipse.cdt.managedbuilder.xlupc.ui.compiler">
-                  <option
-                        defaultValue="xlc.c.optimization.level.none"
-                        id="cdt.managedbuild.compiler.option.xlupc.exe.debug.optimization.level"
-                        superClass="xlc.c.compiler.option.optimization.level">
-                  </option>
-                  <option
-                        defaultValue="true"
-                        id="cdt.managedbuild.compiler.option.xlupc.exe.debug.debugging.g"
-                        superClass="xlc.c.compiler.option.ecd.g">
-                  </option>
-               </tool>
-               <tool
-                     id="cdt.managedbuild.tool.linker.xlupc.exe.debug"
-                     superClass="cdt.managedbuild.tool.xlupc.linker.exe">
-               </tool>
-               <tool
-                     id="cdt.managedbuild.tool.assembler.xlupc.exe.debug"
-                     superClass="cdt.managedbuild.tool.xlc.assembler">
-               </tool>
-            </toolChain>
-         </configuration>
-         <configuration
-               artifactExtension="exe"
-               cleanCommand="rm -rf"
-               errorParsers="org.eclipse.cdt.errorparsers.xlc.XlcErrorParser"
-               id="cdt.managedbuild.config.xlupc.exe.release"
-               name="%ConfigName.Rel">
-            <toolChain
-                  archList="all"
-                  configurationEnvironmentSupplier="org.eclipse.cdt.managedbuilder.xlc.aix.AixConfigurationEnvironmentSupplier"
-                  id="cdt.managedbuild.toolchain.xlupc.exe.release"
-                  name="%ToolChainName.Upc"
-                  osList="all"
-                  targetTool="cdt.managedbuild.tool.linker.xlupc.exe.release">
-               <targetPlatform
-                     archList="all"
-                     id="cdt.managedbuild.targetplatform.xlupc.exe.release"
-                     name="%PlatformName.Rel"
-                     osList="all">
-               </targetPlatform>
-               <builder
-                     id="cdt.managedbuild.builder.xlupc.exe.release"
-                     superClass="cdt.managedbuild.target.gnu.builder">
-               </builder>
-               <tool
-                     id="cdt.managedbuild.tool.compiler.xlupc.exe.release"
-                     superClass="org.eclipse.cdt.managedbuilder.xlupc.ui.compiler">
-                  <option
-                        defaultValue="xlc.c.optimization.level.Level5"
-                        id="cdt.managedbuild.compiler.option.xlupc.exe.release.optimization.level"
-                        superClass="xlc.c.compiler.option.optimization.level">
-                  </option>
-                  <option
-                        defaultValue="false"
-                        id="cdt.managedbuild.compiler.option.xlupc.exe.release.debugging.g"
-                        superClass="xlc.c.compiler.option.ecd.g">
-                  </option>
-               </tool>
-               <tool
-                     id="cdt.managedbuild.tool.linker.xlupc.exe.release"
-                     superClass="cdt.managedbuild.tool.xlupc.linker.exe">
-               </tool>
-               <tool
-                     id="cdt.managedbuild.tool.assembler.xlupc.exe.release"
-                     superClass="cdt.managedbuild.tool.xlc.assembler">
-               </tool>
-            </toolChain>
-         </configuration>
-      </projectType>
-      <projectType
-            buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.xlupc.sharedLib"
-            id="cdt.managedbuild.target.xlupc.so"
-            isAbstract="false"
-            isTest="false"
-            name="%TargetName.xlupc.so"
-            projectMacroSupplier="org.eclipse.cdt.managedbuilder.xlc.ui.XLCProjectMacroSupplier">
-         <configuration
-               artifactExtension="so"
-               cleanCommand="rm -rf"
-               errorParsers="org.eclipse.cdt.errorparsers.xlc.XlcErrorParser"
-               id="cdt.managedbuild.config.xlupc.so.debug"
-               name="%ConfigName.Dbg">
-            <toolChain
-                  id="cdt.managedbuild.toolchain.xlupc.so.debug"
-                  name="%ToolChainName.Upc"
-                  targetTool="cdt.managedbuild.tool.linker.xlupc.so.debug">
-               <targetPlatform
-                     archList="all"
-                     id="cdt.managedbuild.targetplatform.xlupc.so.debug"
-                     name="%PlatformName.Dbg"
-                     osList="all">
-               </targetPlatform>
-               <builder
-                     id="cdt.managedbuild.builder.xlupc.so.debug"
-                     superClass="cdt.managedbuild.target.gnu.builder">
-               </builder>
-               <tool
-                     id="cdt.managedbuild.tool.compiler.xlupc.so.debug"
-                     superClass="org.eclipse.cdt.managedbuilder.xlupc.ui.compiler">
-                  <option
-                        defaultValue="xlc.c.optimization.level.none"
-                        id="cdt.managedbuild.compiler.option.xlupc.so.debug.optimization.level"
-                        superClass="xlc.c.compiler.option.optimization.level">
-                  </option>
-                  <option
-                        defaultValue="true"
-                        id="cdt.managedbuild.compiler.option.xlupc.so.debug.debugging.g"
-                        superClass="xlc.c.compiler.option.ecd.g">
-                  </option>
-               </tool>
-               <tool
-                     id="cdt.managedbuild.tool.linker.xlupc.so.debug"
-                     superClass="cdt.managedbuild.tool.xlupc.linker.so">
-               </tool>
-               <tool
-                     id="cdt.managedbuild.tool.assembler.xlupc.so.debug"
-                     superClass="cdt.managedbuild.tool.xlc.assembler">
-               </tool>
-            </toolChain>
-         </configuration>
-         <configuration
-               artifactExtension="so"
-               cleanCommand="rm -rf"
-               errorParsers="org.eclipse.cdt.errorparsers.xlc.XlcErrorParser"
-               id="cdt.managedbuild.config.xlupc.so.release"
-               name="%ConfigName.Rel">
-            <toolChain
-                  id="cdt.managedbuild.toolchain.xlupc.so.release"
-                  name="%ToolChainName.Upc"
-                  targetTool="cdt.managedbuild.tool.linker.xlupc.so.release">
-               <targetPlatform
-                     archList="all"
-                     id="cdt.managedbuild.targetplatform.xlupc.so.release"
-                     name="%PlatformName.Rel"
-                     osList="all">
-               </targetPlatform>
-               <builder
-                     id="cdt.managedbuild.builder.xlupc.so.release"
-                     superClass="cdt.managedbuild.target.gnu.builder">
-               </builder>
-               <tool
-                     id="cdt.managedbuild.tool.compiler.xlupc.so.release"
-                     superClass="org.eclipse.cdt.managedbuilder.xlupc.ui.compiler">
-                  <option
-                        defaultValue="xlc.c.optimization.level.Level5"
-                        id="cdt.managedbuild.compiler.option.xlupc.so.release.optimization.level"
-                        superClass="xlc.c.compiler.option.optimization.level">
-                  </option>
-                  <option
-                        defaultValue="false"
-                        id="cdt.managedbuild.compiler.option.xlupc.so.release.debugging.g"
-                        superClass="xlc.c.compiler.option.ecd.g">
-                  </option>
-               </tool>
-               <tool
-                     id="cdt.managedbuild.tool.linker.xlupc.so.release"
-                     superClass="cdt.managedbuild.tool.xlupc.linker.so">
-               </tool>
-               <tool
-                     id="cdt.managedbuild.tool.assembler.xlupc.so.release"
-                     superClass="cdt.managedbuild.tool.xlc.assembler">
-               </tool>
-            </toolChain>
-         </configuration>
-      </projectType>
-      <projectType
-            buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.xlupc.staticLib"
-            id="cdt.managedbuild.target.xlupc.lib"
-            isAbstract="false"
-            isTest="false"
-            name="%TargetName.xlupc.lib"
-            projectMacroSupplier="org.eclipse.cdt.managedbuilder.xlc.ui.XLCProjectMacroSupplier">
-         <configuration
-               artifactExtension="lib"
-               cleanCommand="rm -rf"
-               errorParsers="org.eclipse.cdt.errorparsers.xlc.XlcErrorParser"
-               id="cdt.managedbuild.config.xlupc.lib.debug"
-               name="%ConfigName.Dbg">
-            <toolChain
-                  id="cdt.managedbuild.toolchain.xlupc.lib.debug"
-                  name="%ToolChainName.Upc"
-                  targetTool="cdt.managedbuild.tool.archiver.xlupc.lib.debug">
-               <targetPlatform
-                     archList="all"
-                     id="cdt.managedbuild.targetplatform.xlupc.lib.debug"
-                     name="%PlatformName.Dbg"
-                     osList="all">
-               </targetPlatform>
-               <builder
-                     id="cdt.managedbuild.builder.xlupc.lib.debug"
-                     superClass="cdt.managedbuild.target.gnu.builder">
-               </builder>
-               <tool
-                     id="cdt.managedbuild.tool.compiler.xlupc.lib.debug"
-                     superClass="org.eclipse.cdt.managedbuilder.xlupc.ui.compiler">
-                  <option
-                        defaultValue="xlc.c.optimization.level.none"
-                        id="cdt.managedbuild.compiler.option.xlupc.lib.debug.optimization.level"
-                        superClass="xlc.c.compiler.option.optimization.level">
-                  </option>
-                  <option
-                        defaultValue="true"
-                        id="cdt.managedbuild.compiler.option.xlupc.lib.debug.debugging.g"
-                        superClass="xlc.c.compiler.option.ecd.g">
-                  </option>
-               </tool>
-               <tool
-                     id="cdt.managedbuild.tool.archiver.xlupc.lib.debug"
-                     superClass="cdt.managedbuild.tool.xlc.archiver">
-               </tool>
-               <tool
-                     id="cdt.managedbuild.tool.assembler.xlupc.lib.debug"
-                     superClass="cdt.managedbuild.tool.xlc.assembler">
-               </tool>
-            </toolChain>
-         </configuration>
-         <configuration
-               artifactExtension="lib"
-               cleanCommand="rm -rf"
-               errorParsers="org.eclipse.cdt.errorparsers.xlc.XlcErrorParser"
-               id="cdt.managedbuild.config.xlupc.lib.release"
-               name="%ConfigName.Rel">
-            <toolChain
-                  id="cdt.managedbuild.toolchain.xlupc.lib.release"
-                  name="%ToolChainName.Upc"
-                  targetTool="cdt.managedbuild.tool.archiver.xlupc.lib.release">
-               <targetPlatform
-                     archList="all"
-                     id="cdt.managedbuild.targetplatform.xlupc.lib.release"
-                     name="%PlatformName.Rel"
-                     osList="all">
-               </targetPlatform>
-               <builder
-                     id="cdt.managedbuild.builder.xlupc.lib.release"
-                     superClass="cdt.managedbuild.target.gnu.builder">
-               </builder>
-               <tool
-                     id="cdt.managedbuild.tool.compiler.xlupc.lib.release"
-                     superClass="org.eclipse.cdt.managedbuilder.xlupc.ui.compiler">
-                  <option
-                        defaultValue="xlc.c.optimization.level.Level5"
-                        id="cdt.managedbuild.compiler.option.xlupc.lib.release.optimization.level"
-                        superClass="xlc.c.compiler.option.optimization.level">
-                  </option>
-                  <option
-                        defaultValue="false"
-                        id="cdt.managedbuild.compiler.option.xlupc.lib.release.debugging.g"
-                        superClass="xlc.c.compiler.option.ecd.g">
-                  </option>
-               </tool>
-               <tool
-                     id="cdt.managedbuild.tool.archiver.xlupc.lib.release"
-                     superClass="cdt.managedbuild.tool.xlc.archiver">
-               </tool>
-               <tool
-                     id="cdt.managedbuild.tool.assembler.xlupc.lib.release"
-                     superClass="cdt.managedbuild.tool.xlc.assembler">
-               </tool>
-            </toolChain>
-         </configuration>
-      </projectType>
-
-    <tool
-          command="${XL_compilerRoot}/xlupc"
-          id="cdt.managedbuild.tool.xlupc.linker.exe"
-          isAbstract="false"
-          name="%tool.linker.exe.name"
-          natureFilter="cnature"
-          superClass="cdt.managedbuild.tool.xlc.c.linker">
-    </tool>
-    <tool
-          id="cdt.managedbuild.tool.xlupc.linker.so"
-          isAbstract="false"
-          name="%tool.linker.so.name">
-    </tool>
-      
-      
-      <tool
-            command="${XL_compilerRoot}/xlupc"
-            id="org.eclipse.cdt.managedbuilder.xlupc.ui.compiler.abstract"
-            isAbstract="true"
-            name="%tool.compiler.abstract.name"
-            natureFilter="cnature"
-            outputFlag="-o"
-            superClass="cdt.managedbuild.tool.xlc.c.compiler.abstract">
-         <optionCategory
-               id="org.eclipse.cdt.managedbuilder.xlupc.ui.optionCategory.upc"
-               name="%OptionCategory.upc">
-         </optionCategory>
-         <option
-               category="org.eclipse.cdt.managedbuilder.xlupc.ui.optionCategory.upc"
-               id="org.eclipse.cdt.managedbuilder.xlupc.ui.qsourcetype"
-               isAbstract="false"
-               name="%Option.qsourcetype"
-               valueType="enumerated">
-            <enumeratedOptionValue
-                  id="org.eclipse.cdt.managedbuilder.xlupc.ui.qsourcetype.empty"
-                  isDefault="true"
-                  name="">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-                  command="-qsourcetype=default"
-                  id="org.eclipse.cdt.managedbuilder.xlupc.ui.qsourcetype.default"
-                  name="%Option.qsourcetype.default">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-                  command="-qsourcetype=upc"
-                  id="org.eclipse.cdt.managedbuilder.xlupc.ui.qsourcetype.upc"
-                  name="%Option.qsourcetype.upc">
-            </enumeratedOptionValue>
-         </option>
-         <option
-               category="org.eclipse.cdt.managedbuilder.xlupc.ui.optionCategory.upc"
-               id="org.eclipse.cdt.managedbuilder.xlupc.ui.runtime"
-               isAbstract="false"
-               name="%Option.runtime"
-               valueType="enumerated">
-            <enumeratedOptionValue
-                  id="org.eclipse.cdt.managedbuilder.xlupc.ui.runtime.empty"
-                  isDefault="true"
-                  name="">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-                  command="-qupc=rts=default"
-                  id="org.eclipse.cdt.managedbuilder.xlupc.ui.runtime.default"
-                  name="%Option.runtime.default">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-                  command="-qupc=rts=lapi"
-                  id="org.eclipse.cdt.managedbuilder.xlupc.ui.runtime.lapi"
-                  name="%Option.runtime.lapi">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-                  command="-qupc=rts=smp"
-                  id="org.eclipse.cdt.managedbuilder.xlupc.ui.runtime.smp"
-                  name="%Option.runtime.smp">
-            </enumeratedOptionValue>
-         </option>
-         <option
-               category="org.eclipse.cdt.managedbuilder.xlupc.ui.optionCategory.upc"
-               id="org.eclipse.cdt.managedbuilder.xlupc.ui.compilation"
-               isAbstract="false"
-               name="%Option.compilation"
-               valueType="enumerated">
-            <enumeratedOptionValue
-                  id="org.eclipse.cdt.managedbuilder.xlupc.ui.compilation.empty"
-                  isDefault="true"
-                  name="">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-                  command="-q32"
-                  id="org.eclipse.cdt.managedbuilder.xlupc.ui.compilation.q32"
-                  name="%Option.compilation.q32">
-            </enumeratedOptionValue>
-            <enumeratedOptionValue
-                  command="-q64"
-                  id="org.eclipse.cdt.managedbuilder.xlupc.ui.compilation.q64"
-                  name="%Option.compilation.q64">
-            </enumeratedOptionValue>
-         </option>
-         <option
-               category="org.eclipse.cdt.managedbuilder.xlupc.ui.optionCategory.upc"
-               command="-qupc=threads="
-               id="org.eclipse.cdt.managedbuilder.xlupc.ui.threads"
-               isAbstract="false"
-               name="%Option.threads"
-               valueType="string">
-         </option>
-        
-      </tool>
-      <tool
-            id="org.eclipse.cdt.managedbuilder.xlupc.ui.compiler"
-            isAbstract="false"
-            name="%tool.compiler.name"
-            superClass="org.eclipse.cdt.managedbuilder.xlupc.ui.compiler.abstract">
-            <inputType
-                  dependencyContentType="org.eclipse.cdt.core.cHeader"
-                  dependencyExtensions="h"
-                  id="org.eclipse.cdt.managedbuilder.xlupc.ui.inputType.upc"
-                  name="%inputType.upc.name"
-                  primaryInput="true"
-                  scannerConfigDiscoveryProfileId="org.eclipse.cdt.managedbuilder.xlc.core.XLCManagedMakePerProjectProfile"
-                  sourceContentType="org.eclipse.cdt.core.parser.upc.upcSource"
-                  sources="upc">
-         </inputType>
-            <inputType
-                  dependencyContentType="org.eclipse.cdt.core.cHeader"
-                  dependencyExtensions="h"
-                  id="org.eclipse.cdt.managedbuilder.xlupc.ui.inputType.c"
-                  name="%inputType.c.name"
-                  primaryInput="true"
-                  scannerConfigDiscoveryProfileId="org.eclipse.cdt.managedbuilder.xlc.core.XLCManagedMakePerProjectProfile"
-                  sourceContentType="org.eclipse.cdt.core.cSource"
-                  sources="c">
-            </inputType>
-            <outputType
-                  buildVariable="OBJS"
-                  id="org.eclipse.cdt.managedbuilder.xlupc.ui.outputType.objectFile"
-                  outputs="o">
-            </outputType>
-      </tool>
-   </extension>
-   <extension
-         point="org.eclipse.cdt.managedbuilder.ui.newWizardPages">
-      <wizardPage
-            ID="org.eclipse.cdt.managedbuilder.xlupc.ui.wizards.XLUpcSettingsWizardPage"
-            operationClass="org.eclipse.cdt.managedbuilder.xlupc.ui.wizards.XLUpcSettingsWizardRunnable"
-            pageClass="org.eclipse.cdt.managedbuilder.xlupc.ui.wizards.XLUpcSettingsWizardPage">
-         <projectType
-               projectTypeID="cdt.managedbuild.target.xlupc.exe">
-         </projectType>
-         <projectType
-               projectTypeID="cdt.managedbuild.target.xlupc.so">
-         </projectType>
-         <projectType
-               projectTypeID="cdt.managedbuild.target.xlupc.lib">
-         </projectType>
-      </wizardPage>
-   </extension>
-   <extension
-         point="org.eclipse.ui.newWizards">
-      <category
-            id="cdt.managedbuild.wizardcategory.upc"
-            name="%category.name.1">
-      </category>
-      <wizard
-            canFinishEarly="false"
-            category="cdt.managedbuild.wizardcategory.upc"
-            class="org.eclipse.cdt.managedbuilder.xlupc.ui.wizards.UpcProjectWizard"
-            hasPages="true"
-            icon="icons/c-project.gif"
-            id="cdt.managedbuilder.wizard.upc"
-            name="%wizard.name.1"
-            project="true">
-         <description>
-            %wizard.description
-         </description>
-      </wizard>
-   </extension>
-   <extension
-         id="baseProperties"
-         name="%extension.name"
-         point="org.eclipse.cdt.managedbuilder.core.buildProperties">
-      <propertyValue
-            id="org.eclipse.cdt.build.core.buildArtefactType.xlupc.exe"
-            name="%BuildProperty.type.name.xlupc.executable"
-            property="org.eclipse.cdt.build.core.buildArtefactType">
-      </propertyValue>
-      <propertyValue
-            id="org.eclipse.cdt.build.core.buildArtefactType.xlupc.staticLib"
-            name="%BuildProperty.type.name.xlupc.staticLibrary"
-            property="org.eclipse.cdt.build.core.buildArtefactType">
-      </propertyValue>
-      <propertyValue
-            id="org.eclipse.cdt.build.core.buildArtefactType.xlupc.sharedLib"
-            name="%BuildProperty.type.name.xlupc.sharedLibrary"
-            property="org.eclipse.cdt.build.core.buildArtefactType">
-      </propertyValue>
-   </extension>
-
-</plugin>
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/Activator.java b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/Activator.java
deleted file mode 100644
index 0c60ca8..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/Activator.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2012 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.managedbuilder.xlupc.ui;
-
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-public class Activator extends AbstractUIPlugin {
-
-	public static final String PLUGIN_ID = "org.eclipse.cdt.managedbuilder.xlupc.ui"; //$NON-NLS-1$
-
-	private static Activator plugin;
-
-	public Activator() {
-	}
-
-	@Override
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		plugin = this;
-	}
-
-	@Override
-	public void stop(BundleContext context) throws Exception {
-		plugin = null;
-		super.stop(context);
-	}
-
-	public static Activator getDefault() {
-		return plugin;
-	}
-
-}
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/Messages.java b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/Messages.java
deleted file mode 100644
index c51cc76..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/Messages.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2012 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.cdt.managedbuilder.xlupc.ui;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
-
-	private static final String BUNDLE_NAME = "org.eclipse.cdt.managedbuilder.xlupc.ui.messages"; //$NON-NLS-1$
-
-	static {
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	private Messages() {
-	}
-
-	public static String UpcProjectWizard_0;
-	public static String UpcProjectWizard_1;
-	public static String XLUpcSettingsWizardPage_0;
-	public static String XLUpcSettingsWizardPage_1;
-}
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/messages.properties b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/messages.properties
deleted file mode 100644
index 17f1ba7..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/messages.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-###############################################################################
-# Copyright (c) 2009 IBM Corporation and others.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-UpcProjectWizard_0=UPC Project
-UpcProjectWizard_1=Create UPC project of selected type
-
-XLUpcSettingsWizardPage_0=XL UPC Settings
-XLUpcSettingsWizardPage_1=XL Compiler Settings
\ No newline at end of file
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/wizards/UpcProjectWizard.java b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/wizards/UpcProjectWizard.java
deleted file mode 100644
index ee914ce..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/wizards/UpcProjectWizard.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2012 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.managedbuilder.xlupc.ui.wizards;
-
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.cdt.core.CCorePlugin;
-import org.eclipse.cdt.core.CProjectNature;
-import org.eclipse.cdt.core.dom.upc.UPCLanguage;
-import org.eclipse.cdt.managedbuilder.xlupc.ui.Messages;
-import org.eclipse.cdt.ui.wizards.CDTCommonProjectWizard;
-import org.eclipse.cdt.ui.wizards.CDTMainWizardPage;
-import org.eclipse.cdt.ui.wizards.EntryDescriptor;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.NullProgressMonitor;
-
-@SuppressWarnings({ "nls", "serial" })
-public class UpcProjectWizard extends CDTCommonProjectWizard {
-
-	private static final String ARTIFACT_TYPE_UPC_EXE = "org.eclipse.cdt.build.core.buildArtefactType.xlupc.exe";
-	private static final String ARTIFACT_TYPE_UPC_EXE_DEFAULT = ARTIFACT_TYPE_UPC_EXE + ".default";
-
-	private static final String ARTIFACT_TYPE_UPC_SO = "org.eclipse.cdt.build.core.buildArtefactType.xlupc.sharedLib";
-	private static final String ARTIFACT_TYPE_UPC_SO_DEFAULT = ARTIFACT_TYPE_UPC_SO + ".default";
-
-	private static final String ARTIFACT_TYPE_UPC_LIB = "org.eclipse.cdt.build.core.buildArtefactType.xlupc.staticLib";
-	private static final String ARTIFACT_TYPE_UPC_LIB_DEFAULT = ARTIFACT_TYPE_UPC_LIB + ".default";
-
-	private final static String PAGE_NAME = "org.eclipse.cdt.managedbuilder.xlupc.ui.mainpage";
-
-	private static final Set<String> ALL_TYPES = new HashSet<String>() {
-		{
-			add(ARTIFACT_TYPE_UPC_EXE);
-			add(ARTIFACT_TYPE_UPC_EXE_DEFAULT);
-			add(ARTIFACT_TYPE_UPC_SO);
-			add(ARTIFACT_TYPE_UPC_SO_DEFAULT);
-			add(ARTIFACT_TYPE_UPC_LIB);
-			add(ARTIFACT_TYPE_UPC_LIB_DEFAULT);
-		}
-	};
-
-	public UpcProjectWizard() {
-		super(Messages.UpcProjectWizard_0, Messages.UpcProjectWizard_1);
-	}
-
-	@Override
-	public void addPages() {
-		fMainPage = new CDTMainWizardPage(PAGE_NAME) {
-			@Override
-			public List<EntryDescriptor> filterItems(List<EntryDescriptor> items) {
-				// filter out all non-UPC project types
-				if (items != null) {
-					Iterator<EntryDescriptor> iter = items.iterator();
-					while (iter.hasNext()) {
-						EntryDescriptor entryDescriptor = iter.next();
-						if (!ALL_TYPES.contains(entryDescriptor.getId()))
-							iter.remove();
-					}
-				}
-				return items;
-			}
-		};
-
-		fMainPage.setTitle(Messages.UpcProjectWizard_0);
-		fMainPage.setDescription(Messages.UpcProjectWizard_1);
-		addPage(fMainPage);
-	}
-
-	@Override
-	protected IProject continueCreation(IProject prj) {
-		try {
-			CProjectNature.addCNature(prj, new NullProgressMonitor());
-		} catch (CoreException e) {
-		}
-		return prj;
-	}
-
-	@Override
-	public String[] getNatures() {
-		return new String[] {
-				CProjectNature.C_NATURE_ID/*, CCProjectNature.CC_NATURE_ID, RemoteNature.REMOTE_NATURE_ID*/ };
-	}
-
-	@Override
-	public String[] getContentTypeIDs() {
-		return new String[] { CCorePlugin.CONTENT_TYPE_CSOURCE, CCorePlugin.CONTENT_TYPE_CHEADER,
-				UPCLanguage.UPC_CONTENT_TYPE_ID };
-	}
-}
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/wizards/XLUpcSettingsWizardPage.java b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/wizards/XLUpcSettingsWizardPage.java
deleted file mode 100644
index d0a1111..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/wizards/XLUpcSettingsWizardPage.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2012 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.managedbuilder.xlupc.ui.wizards;
-
-import org.eclipse.cdt.managedbuilder.xlc.ui.wizards.XLCSettingsWizardPage;
-import org.eclipse.cdt.managedbuilder.xlupc.ui.Messages;
-
-/**
- *
- */
-public class XLUpcSettingsWizardPage extends XLCSettingsWizardPage {
-
-	public static final String PAGE_ID = "org.eclipse.cdt.managedbuilder.xlupc.ui.wizards.XLUpcSettingsWizardPage"; //$NON-NLS-1$
-
-	public XLUpcSettingsWizardPage(String pageID) {
-		super(pageID);
-	}
-
-	public XLUpcSettingsWizardPage() {
-		super();
-		pageID = PAGE_ID;
-	}
-
-	@Override
-	public String getName() {
-		return Messages.XLUpcSettingsWizardPage_0;
-	}
-
-	@Override
-	public String getTitle() {
-		return Messages.XLUpcSettingsWizardPage_1;
-	}
-
-}
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/wizards/XLUpcSettingsWizardRunnable.java b/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/wizards/XLUpcSettingsWizardRunnable.java
deleted file mode 100644
index 39c52c6..0000000
--- a/xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/wizards/XLUpcSettingsWizardRunnable.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2012 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.managedbuilder.xlupc.ui.wizards;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.cdt.core.CCorePlugin;
-import org.eclipse.cdt.core.dom.upc.UPCLanguage;
-import org.eclipse.cdt.core.language.ProjectLanguageConfiguration;
-import org.eclipse.cdt.core.model.CoreModel;
-import org.eclipse.cdt.core.model.LanguageManager;
-import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
-import org.eclipse.cdt.core.settings.model.ICProjectDescription;
-import org.eclipse.cdt.managedbuilder.ui.wizards.MBSCustomPageManager;
-import org.eclipse.cdt.managedbuilder.xlc.ui.wizards.XLCSettingsWizardRunnable;
-import org.eclipse.cdt.ui.wizards.CDTCommonProjectWizard;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.core.runtime.content.IContentTypeManager;
-import org.eclipse.jface.wizard.IWizardPage;
-
-public class XLUpcSettingsWizardRunnable extends XLCSettingsWizardRunnable {
-
-	// now add UPC language mapping to the project
-	private static final String[] CONTENT_TYPE_IDS = { CCorePlugin.CONTENT_TYPE_CHEADER,
-			CCorePlugin.CONTENT_TYPE_CSOURCE };
-
-	public XLUpcSettingsWizardRunnable() {
-		pageId = XLUpcSettingsWizardPage.PAGE_ID;
-	}
-
-	@Override
-	public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
-		super.run(monitor);
-		// get a handle to the wizard
-		IWizardPage[] pages = MBSCustomPageManager.getPages();
-
-		if (pages != null && pages.length > 0) {
-
-			CDTCommonProjectWizard wizard = (CDTCommonProjectWizard) pages[0].getWizard();
-			IProject project = wizard.getLastProject();
-			LanguageManager langManager = LanguageManager.getInstance();
-
-			try {
-				ProjectLanguageConfiguration langConfig = langManager.getLanguageConfiguration(project);
-
-				ICProjectDescription projectDescription = CoreModel.getDefault().getProjectDescription(project, false);
-				ICConfigurationDescription configDescription = projectDescription.getActiveConfiguration();
-
-				IContentTypeManager contentTypeManager = Platform.getContentTypeManager();
-
-				for (String id : CONTENT_TYPE_IDS) {
-					if (contentTypeManager.getContentType(id) != null) {
-						langConfig.addContentTypeMapping(configDescription, id, UPCLanguage.ID);
-					}
-				}
-
-				langManager.storeLanguageMappingConfiguration(project, new IContentType[0]);
-
-			} catch (CoreException e) {
-				CCorePlugin.log(e);
-			}
-		}
-	}
-}
diff --git a/xlc/org.eclipse.cdt.xlc.feature/.project b/xlc/org.eclipse.cdt.xlc.feature/.project
deleted file mode 100644
index 7405ef9..0000000
--- a/xlc/org.eclipse.cdt.xlc.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.cdt.xlc.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/xlc/org.eclipse.cdt.xlc.feature/build.properties b/xlc/org.eclipse.cdt.xlc.feature/build.properties
deleted file mode 100644
index cbfee45..0000000
--- a/xlc/org.eclipse.cdt.xlc.feature/build.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2008 IBM Corporation and others.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = feature.xml,\
-               feature.properties
-root = rootfiles
diff --git a/xlc/org.eclipse.cdt.xlc.feature/feature.properties b/xlc/org.eclipse.cdt.xlc.feature/feature.properties
deleted file mode 100644
index b502882..0000000
--- a/xlc/org.eclipse.cdt.xlc.feature/feature.properties
+++ /dev/null
@@ -1,36 +0,0 @@
-###############################################################################
-#  Copyright (c) 2006, 2010 IBM Corporation and others.
-#
-#  This program and the accompanying materials
-#  are made available under the terms of the Eclipse Public License 2.0
-#  which accompanies this distribution, and is available at
-#  https://www.eclipse.org/legal/epl-2.0/
-#
-#  SPDX-License-Identifier: EPL-2.0
-#
-#  Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=C/C++ IBM XLC Compiler Support
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse CDT
-
-# "description" property - description of the feature
-description=Support for the IBM XL C/C++ compilers.
-
-# copyright
-copyright=\
-Copyright (c) 2006, 2011 IBM Corporation and others.\n\
-This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License 2.0\n\
-which accompanies this distribution, and is available at\n\
-https://www.eclipse.org/legal/epl-2.0/
-
diff --git a/xlc/org.eclipse.cdt.xlc.feature/feature.xml b/xlc/org.eclipse.cdt.xlc.feature/feature.xml
deleted file mode 100644
index 74c07c5..0000000
--- a/xlc/org.eclipse.cdt.xlc.feature/feature.xml
+++ /dev/null
@@ -1,65 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.cdt.xlc.feature"
-      label="%featureName"
-      version="10.0.0.qualifier"
-      provider-name="%providerName"
-      plugin="org.eclipse.cdt.managedbuilder.xlc.core"
-      license-feature="org.eclipse.license"
-      license-feature-version="0.0.0">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="%licenseURL">
-      %license
-   </license>
-
-   <plugin
-         id="org.eclipse.cdt.errorparsers.xlc"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.cdt.managedbuilder.xlc.ui"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.cdt.make.xlc.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.cdt.managedbuilder.xlc.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.cdt.core.lrparser.xlc"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.cdt.managedbuilder.xlupc.ui"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/xlc/org.eclipse.cdt.xlc.feature/rootfiles/notice.html b/xlc/org.eclipse.cdt.xlc.feature/rootfiles/notice.html
deleted file mode 100644
index 008b801..0000000
--- a/xlc/org.eclipse.cdt.xlc.feature/rootfiles/notice.html
+++ /dev/null
@@ -1,189 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-	<h2>Eclipse Foundation Software User Agreement</h2>
-	<p>November 22, 2017</p>
-
-	<h3>Usage Of Content</h3>
-
-	<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION,
-		INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-		(COLLECTIVELY &quot;CONTENT&quot;). USE OF THE CONTENT IS GOVERNED BY
-		THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-		CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED
-		BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS
-		GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY
-		APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED
-		BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS
-		AGREEMENT AND THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE
-		AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT
-		USE THE CONTENT.</p>
-
-	<h3>Applicable Licenses</h3>
-
-	<p>
-		Unless otherwise indicated, all Content made available by the Eclipse
-		Foundation is provided to you under the terms and conditions of the
-		Eclipse Public License Version 2.0 (&quot;EPL&quot;). A copy of the
-		EPL is provided with this Content and is also available at <a
-			href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>Content includes, but is not limited to, source code, object
-		code, documentation and other files maintained in the Eclipse
-		Foundation source code repository (&quot;Repository&quot;) in software
-		modules (&quot;Modules&quot;) and made available as downloadable
-		archives (&quot;Downloads&quot;).</p>
-
-	<ul>
-		<li>Content may be structured and packaged into modules to
-			facilitate delivering, extending, and upgrading the Content. Typical
-			modules may include plug-ins (&quot;Plug-ins&quot;), plug-in
-			fragments (&quot;Fragments&quot;), and features
-			(&quot;Features&quot;).</li>
-		<li>Each Plug-in or Fragment may be packaged as a sub-directory
-			or JAR (Java&trade; ARchive) in a directory named
-			&quot;plugins&quot;.</li>
-		<li>A Feature is a bundle of one or more Plug-ins and/or
-			Fragments and associated material. Each Feature may be packaged as a
-			sub-directory in a directory named &quot;features&quot;. Within a
-			Feature, files named &quot;feature.xml&quot; may contain a list of
-			the names and version numbers of the Plug-ins and/or Fragments
-			associated with that Feature.</li>
-		<li>Features may also include other Features (&quot;Included
-			Features&quot;). Within a Feature, files named
-			&quot;feature.xml&quot; may contain a list of the names and version
-			numbers of Included Features.</li>
-	</ul>
-
-	<p>The terms and conditions governing Plug-ins and Fragments should
-		be contained in files named &quot;about.html&quot;
-		(&quot;Abouts&quot;). The terms and conditions governing Features and
-		Included Features should be contained in files named
-		&quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and
-		Feature Licenses may be located in any directory of a Download or
-		Module including, but not limited to the following locations:</p>
-
-	<ul>
-		<li>The top-level (root) directory</li>
-		<li>Plug-in and Fragment directories</li>
-		<li>Inside Plug-ins and Fragments packaged as JARs</li>
-		<li>Sub-directories of the directory named &quot;src&quot; of
-			certain Plug-ins</li>
-		<li>Feature directories</li>
-	</ul>
-
-	<p>Note: if a Feature made available by the Eclipse Foundation is
-		installed using the Provisioning Technology (as defined below), you
-		must agree to a license (&quot;Feature Update License&quot;) during
-		the installation process. If the Feature contains Included Features,
-		the Feature Update License should either provide you with the terms
-		and conditions governing the Included Features or inform you where you
-		can locate them. Feature Update Licenses may be found in the
-		&quot;license&quot; property of files named
-		&quot;feature.properties&quot; found within a Feature. Such Abouts,
-		Feature Licenses, and Feature Update Licenses contain the terms and
-		conditions (or references to such terms and conditions) that govern
-		your use of the associated Content in that directory.</p>
-
-	<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY
-		REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND
-		CONDITIONS. SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT
-		ARE NOT LIMITED TO):</p>
-
-	<ul>
-		<li>Eclipse Public License Version 1.0 (available at <a
-			href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>)
-		</li>
-		<li>Eclipse Distribution License Version 1.0 (available at <a
-			href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)
-		</li>
-		<li>Common Public License Version 1.0 (available at <a
-			href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)
-		</li>
-		<li>Apache Software License 1.1 (available at <a
-			href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)
-		</li>
-		<li>Apache Software License 2.0 (available at <a
-			href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)
-		</li>
-		<li>Mozilla Public License Version 1.1 (available at <a
-			href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)
-		</li>
-	</ul>
-
-	<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND
-		CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License,
-		or Feature Update License is provided, please contact the Eclipse
-		Foundation to determine what terms and conditions govern that
-		particular Content.</p>
-
-
-	<h3>Use of Provisioning Technology</h3>
-
-	<p>
-		The Eclipse Foundation makes available provisioning software, examples
-		of which include, but are not limited to, p2 and the Eclipse Update
-		Manager (&quot;Provisioning Technology&quot;) for the purpose of
-		allowing users to install software, documentation, information and/or
-		other materials (collectively &quot;Installable Software&quot;). This
-		capability is provided with the intent of allowing such users to
-		install, extend and update Eclipse-based products. Information about
-		packaging Installable Software is available at <a
-			href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-		(&quot;Specification&quot;).
-	</p>
-
-	<p>You may use Provisioning Technology to allow other parties to
-		install Installable Software. You shall be responsible for enabling
-		the applicable license agreements relating to the Installable Software
-		to be presented to, and accepted by, the users of the Provisioning
-		Technology in accordance with the Specification. By using Provisioning
-		Technology in such a manner and making it available in accordance with
-		the Specification, you further acknowledge your agreement to, and the
-		acquisition of all necessary rights to permit the following:</p>
-
-	<ol>
-		<li>A series of actions may occur (&quot;Provisioning
-			Process&quot;) in which a user may execute the Provisioning
-			Technology on a machine (&quot;Target Machine&quot;) with the intent
-			of installing, extending or updating the functionality of an
-			Eclipse-based product.</li>
-		<li>During the Provisioning Process, the Provisioning Technology
-			may cause third party Installable Software or a portion thereof to be
-			accessed and copied to the Target Machine.</li>
-		<li>Pursuant to the Specification, you will provide to the user
-			the terms and conditions that govern the use of the Installable
-			Software (&quot;Installable Software Agreement&quot;) and such
-			Installable Software Agreement shall be accessed from the Target
-			Machine in accordance with the Specification. Such Installable
-			Software Agreement must inform the user of the terms and conditions
-			that govern the Installable Software and must solicit acceptance by
-			the end user in the manner prescribed in such Installable Software
-			Agreement. Upon such indication of agreement by the user, the
-			provisioning Technology will complete installation of the Installable
-			Software.</li>
-	</ol>
-
-	<h3>Cryptography</h3>
-
-	<p>Content may contain encryption software. The country in which
-		you are currently may have restrictions on the import, possession, and
-		use, and/or re-export to another country, of encryption software.
-		BEFORE using any encryption software, please check the country's laws,
-		regulations and policies concerning the import, possession, or use,
-		and re-export of encryption software, to see if this is permitted.</p>
-
-	<p>
-		<small>Java and all Java-based trademarks are trademarks of
-			Oracle Corporation in the United States, other countries, or both.</small>
-	</p>
-</body>
-</html>
diff --git a/xlc/org.eclipse.cdt.xlc.feature/sourceTemplateFeature/p2.inf b/xlc/org.eclipse.cdt.xlc.feature/sourceTemplateFeature/p2.inf
deleted file mode 100644
index edf5d0d..0000000
--- a/xlc/org.eclipse.cdt.xlc.feature/sourceTemplateFeature/p2.inf
+++ /dev/null
@@ -1 +0,0 @@
-update.matchExp=providedCapabilities.exists(pc | pc.namespace == 'org.eclipse.equinox.p2.iu' && (pc.name == 'org.eclipse.cdt.xlc.source.feature.group' || pc.name == 'org.eclipse.cdt.xlc.feature.source.feature.group'))
diff --git a/xlc/org.eclipse.cdt.xlc.sdk-feature/.project b/xlc/org.eclipse.cdt.xlc.sdk-feature/.project
deleted file mode 100644
index 7df5619..0000000
--- a/xlc/org.eclipse.cdt.xlc.sdk-feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.cdt.xlc.sdk-feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/xlc/org.eclipse.cdt.xlc.sdk-feature/build.properties b/xlc/org.eclipse.cdt.xlc.sdk-feature/build.properties
deleted file mode 100644
index 75fcb04..0000000
--- a/xlc/org.eclipse.cdt.xlc.sdk-feature/build.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-	###############################################################################
-# Copyright (c) 2006, 2008 IBM Corporation and others.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = feature.xml,\
-               feature.properties
-root = rootfiles
-generate.feature@org.eclipse.cdt.xlc.source = org.eclipse.cdt.xlc.feature
diff --git a/xlc/org.eclipse.cdt.xlc.sdk-feature/feature-no-source.properties b/xlc/org.eclipse.cdt.xlc.sdk-feature/feature-no-source.properties
deleted file mode 100644
index 8c2b2f7..0000000
--- a/xlc/org.eclipse.cdt.xlc.sdk-feature/feature-no-source.properties
+++ /dev/null
@@ -1 +0,0 @@
-# This file tells the Maven build to not generate sources for this feature
diff --git a/xlc/org.eclipse.cdt.xlc.sdk-feature/feature.properties b/xlc/org.eclipse.cdt.xlc.sdk-feature/feature.properties
deleted file mode 100644
index 6123503..0000000
--- a/xlc/org.eclipse.cdt.xlc.sdk-feature/feature.properties
+++ /dev/null
@@ -1,36 +0,0 @@
-###############################################################################
-#  Copyright (c) 2006, 2010 IBM Corporation and others.
-#
-#  This program and the accompanying materials
-#  are made available under the terms of the Eclipse Public License 2.0
-#  which accompanies this distribution, and is available at
-#  https://www.eclipse.org/legal/epl-2.0/
-#
-#  SPDX-License-Identifier: EPL-2.0
-#
-#  Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=C/C++ IBM XLC Compiler Support SDK
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse CDT
-
-# "description" property - description of the feature
-description=Support for the IBM XL C/C++ compilers. Software development kit including source code and developer documentation.
-
-# copyright
-copyright=\
-Copyright (c) 2006, 2011 IBM Corporation and others.\n\
-This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License 2.0\n\
-which accompanies this distribution, and is available at\n\
-https://www.eclipse.org/legal/epl-2.0/
-
diff --git a/xlc/org.eclipse.cdt.xlc.sdk-feature/feature.xml b/xlc/org.eclipse.cdt.xlc.sdk-feature/feature.xml
deleted file mode 100644
index 2ee523b..0000000
--- a/xlc/org.eclipse.cdt.xlc.sdk-feature/feature.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.cdt.xlc.sdk"
-      label="%featureName"
-      version="10.0.0.qualifier"
-      provider-name="%providerName"
-      plugin="org.eclipse.cdt.xlc.sdk.branding"
-      license-feature="org.eclipse.license"
-      license-feature-version="0.0.0">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="%licenseURL">
-      %license
-   </license>
-
-   <includes
-         id="org.eclipse.cdt.xlc.feature.source"
-         version="0.0.0"/>
-
-   <includes
-         id="org.eclipse.cdt.xlc.feature"
-         version="0.0.0"/>
-
-   <plugin
-         id="org.eclipse.cdt.xlc.sdk.branding"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/xlc/org.eclipse.cdt.xlc.sdk-feature/rootfiles/notice.html b/xlc/org.eclipse.cdt.xlc.sdk-feature/rootfiles/notice.html
deleted file mode 100644
index 008b801..0000000
--- a/xlc/org.eclipse.cdt.xlc.sdk-feature/rootfiles/notice.html
+++ /dev/null
@@ -1,189 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-	<h2>Eclipse Foundation Software User Agreement</h2>
-	<p>November 22, 2017</p>
-
-	<h3>Usage Of Content</h3>
-
-	<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION,
-		INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-		(COLLECTIVELY &quot;CONTENT&quot;). USE OF THE CONTENT IS GOVERNED BY
-		THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-		CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED
-		BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS
-		GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY
-		APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED
-		BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS
-		AGREEMENT AND THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE
-		AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT
-		USE THE CONTENT.</p>
-
-	<h3>Applicable Licenses</h3>
-
-	<p>
-		Unless otherwise indicated, all Content made available by the Eclipse
-		Foundation is provided to you under the terms and conditions of the
-		Eclipse Public License Version 2.0 (&quot;EPL&quot;). A copy of the
-		EPL is provided with this Content and is also available at <a
-			href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>Content includes, but is not limited to, source code, object
-		code, documentation and other files maintained in the Eclipse
-		Foundation source code repository (&quot;Repository&quot;) in software
-		modules (&quot;Modules&quot;) and made available as downloadable
-		archives (&quot;Downloads&quot;).</p>
-
-	<ul>
-		<li>Content may be structured and packaged into modules to
-			facilitate delivering, extending, and upgrading the Content. Typical
-			modules may include plug-ins (&quot;Plug-ins&quot;), plug-in
-			fragments (&quot;Fragments&quot;), and features
-			(&quot;Features&quot;).</li>
-		<li>Each Plug-in or Fragment may be packaged as a sub-directory
-			or JAR (Java&trade; ARchive) in a directory named
-			&quot;plugins&quot;.</li>
-		<li>A Feature is a bundle of one or more Plug-ins and/or
-			Fragments and associated material. Each Feature may be packaged as a
-			sub-directory in a directory named &quot;features&quot;. Within a
-			Feature, files named &quot;feature.xml&quot; may contain a list of
-			the names and version numbers of the Plug-ins and/or Fragments
-			associated with that Feature.</li>
-		<li>Features may also include other Features (&quot;Included
-			Features&quot;). Within a Feature, files named
-			&quot;feature.xml&quot; may contain a list of the names and version
-			numbers of Included Features.</li>
-	</ul>
-
-	<p>The terms and conditions governing Plug-ins and Fragments should
-		be contained in files named &quot;about.html&quot;
-		(&quot;Abouts&quot;). The terms and conditions governing Features and
-		Included Features should be contained in files named
-		&quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and
-		Feature Licenses may be located in any directory of a Download or
-		Module including, but not limited to the following locations:</p>
-
-	<ul>
-		<li>The top-level (root) directory</li>
-		<li>Plug-in and Fragment directories</li>
-		<li>Inside Plug-ins and Fragments packaged as JARs</li>
-		<li>Sub-directories of the directory named &quot;src&quot; of
-			certain Plug-ins</li>
-		<li>Feature directories</li>
-	</ul>
-
-	<p>Note: if a Feature made available by the Eclipse Foundation is
-		installed using the Provisioning Technology (as defined below), you
-		must agree to a license (&quot;Feature Update License&quot;) during
-		the installation process. If the Feature contains Included Features,
-		the Feature Update License should either provide you with the terms
-		and conditions governing the Included Features or inform you where you
-		can locate them. Feature Update Licenses may be found in the
-		&quot;license&quot; property of files named
-		&quot;feature.properties&quot; found within a Feature. Such Abouts,
-		Feature Licenses, and Feature Update Licenses contain the terms and
-		conditions (or references to such terms and conditions) that govern
-		your use of the associated Content in that directory.</p>
-
-	<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY
-		REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND
-		CONDITIONS. SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT
-		ARE NOT LIMITED TO):</p>
-
-	<ul>
-		<li>Eclipse Public License Version 1.0 (available at <a
-			href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>)
-		</li>
-		<li>Eclipse Distribution License Version 1.0 (available at <a
-			href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)
-		</li>
-		<li>Common Public License Version 1.0 (available at <a
-			href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)
-		</li>
-		<li>Apache Software License 1.1 (available at <a
-			href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)
-		</li>
-		<li>Apache Software License 2.0 (available at <a
-			href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)
-		</li>
-		<li>Mozilla Public License Version 1.1 (available at <a
-			href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)
-		</li>
-	</ul>
-
-	<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND
-		CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License,
-		or Feature Update License is provided, please contact the Eclipse
-		Foundation to determine what terms and conditions govern that
-		particular Content.</p>
-
-
-	<h3>Use of Provisioning Technology</h3>
-
-	<p>
-		The Eclipse Foundation makes available provisioning software, examples
-		of which include, but are not limited to, p2 and the Eclipse Update
-		Manager (&quot;Provisioning Technology&quot;) for the purpose of
-		allowing users to install software, documentation, information and/or
-		other materials (collectively &quot;Installable Software&quot;). This
-		capability is provided with the intent of allowing such users to
-		install, extend and update Eclipse-based products. Information about
-		packaging Installable Software is available at <a
-			href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-		(&quot;Specification&quot;).
-	</p>
-
-	<p>You may use Provisioning Technology to allow other parties to
-		install Installable Software. You shall be responsible for enabling
-		the applicable license agreements relating to the Installable Software
-		to be presented to, and accepted by, the users of the Provisioning
-		Technology in accordance with the Specification. By using Provisioning
-		Technology in such a manner and making it available in accordance with
-		the Specification, you further acknowledge your agreement to, and the
-		acquisition of all necessary rights to permit the following:</p>
-
-	<ol>
-		<li>A series of actions may occur (&quot;Provisioning
-			Process&quot;) in which a user may execute the Provisioning
-			Technology on a machine (&quot;Target Machine&quot;) with the intent
-			of installing, extending or updating the functionality of an
-			Eclipse-based product.</li>
-		<li>During the Provisioning Process, the Provisioning Technology
-			may cause third party Installable Software or a portion thereof to be
-			accessed and copied to the Target Machine.</li>
-		<li>Pursuant to the Specification, you will provide to the user
-			the terms and conditions that govern the use of the Installable
-			Software (&quot;Installable Software Agreement&quot;) and such
-			Installable Software Agreement shall be accessed from the Target
-			Machine in accordance with the Specification. Such Installable
-			Software Agreement must inform the user of the terms and conditions
-			that govern the Installable Software and must solicit acceptance by
-			the end user in the manner prescribed in such Installable Software
-			Agreement. Upon such indication of agreement by the user, the
-			provisioning Technology will complete installation of the Installable
-			Software.</li>
-	</ol>
-
-	<h3>Cryptography</h3>
-
-	<p>Content may contain encryption software. The country in which
-		you are currently may have restrictions on the import, possession, and
-		use, and/or re-export to another country, of encryption software.
-		BEFORE using any encryption software, please check the country's laws,
-		regulations and policies concerning the import, possession, or use,
-		and re-export of encryption software, to see if this is permitted.</p>
-
-	<p>
-		<small>Java and all Java-based trademarks are trademarks of
-			Oracle Corporation in the United States, other countries, or both.</small>
-	</p>
-</body>
-</html>
diff --git a/xlc/org.eclipse.cdt.xlc.sdk.branding/.project b/xlc/org.eclipse.cdt.xlc.sdk.branding/.project
deleted file mode 100644
index abc89c9..0000000
--- a/xlc/org.eclipse.cdt.xlc.sdk.branding/.project
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.cdt.xlc.sdk.branding</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/xlc/org.eclipse.cdt.xlc.sdk.branding/.settings/org.eclipse.pde.api.tools.prefs b/xlc/org.eclipse.cdt.xlc.sdk.branding/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index ec9fbf3..0000000
--- a/xlc/org.eclipse.cdt.xlc.sdk.branding/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,184 +0,0 @@
-ANNOTATION_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITH_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-API_USE_SCAN_FIELD_SEVERITY=Error
-API_USE_SCAN_METHOD_SEVERITY=Error
-API_USE_SCAN_TYPE_SEVERITY=Error
-CLASS_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERCLASS_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_CHANGED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENTS=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETERS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_ANNOTATION=Ignore
-INVALID_JAVADOC_TAG=Error
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Warning
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-MISSING_EE_DESCRIPTIONS=Warning
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-automatically_removed_unused_problem_filters=false
-changed_execution_env=Error
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-incompatible_api_component_version_report_major_without_breaking_change=Warning
-incompatible_api_component_version_report_minor_without_api_change=Warning
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
diff --git a/xlc/org.eclipse.cdt.xlc.sdk.branding/.settings/org.eclipse.pde.prefs b/xlc/org.eclipse.cdt.xlc.sdk.branding/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index d2dc703..0000000
--- a/xlc/org.eclipse.cdt.xlc.sdk.branding/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,35 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.build.bin.includes=1
-compilers.p.build.encodings=2
-compilers.p.build.java.compiler=2
-compilers.p.build.java.compliance=1
-compilers.p.build.missing.output=2
-compilers.p.build.output.library=1
-compilers.p.build.source.library=1
-compilers.p.build.src.includes=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=1
-compilers.p.missing-packages=2
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=2
-compilers.p.missing-version-require-bundle=2
-compilers.p.no-required-att=0
-compilers.p.no.automatic.module=1
-compilers.p.not-externalized-att=1
-compilers.p.service.component.without.lazyactivation=1
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/xlc/org.eclipse.cdt.xlc.sdk.branding/META-INF/MANIFEST.MF b/xlc/org.eclipse.cdt.xlc.sdk.branding/META-INF/MANIFEST.MF
deleted file mode 100644
index 4ddfed1..0000000
--- a/xlc/org.eclipse.cdt.xlc.sdk.branding/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,7 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.cdt.xlc.sdk.branding;singleton:=true
-Bundle-Version: 10.0.0.qualifier
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
diff --git a/xlc/org.eclipse.cdt.xlc.sdk.branding/about.html b/xlc/org.eclipse.cdt.xlc.sdk.branding/about.html
deleted file mode 100644
index 164f781..0000000
--- a/xlc/org.eclipse.cdt.xlc.sdk.branding/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
-	<h2>About This Content</h2>
-
-	<p>November 30, 2017</p>
-	<h3>License</h3>
-
-	<p>
-		The Eclipse Foundation makes available all content in this plug-in
-		(&quot;Content&quot;). Unless otherwise indicated below, the Content
-		is provided to you under the terms and conditions of the Eclipse
-		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
-		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>
-		If you did not receive this Content directly from the Eclipse
-		Foundation, the Content is being redistributed by another party
-		(&quot;Redistributor&quot;) and different terms and conditions may
-		apply to your use of any object code in the Content. Check the
-		Redistributor's license that was provided with the Content. If no such
-		license exists, contact the Redistributor. Unless otherwise indicated
-		below, the terms and conditions of the EPL still apply to any source
-		code in the Content and such source code may be obtained at <a
-			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
-	</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/xlc/org.eclipse.cdt.xlc.sdk.branding/about.ini b/xlc/org.eclipse.cdt.xlc.sdk.branding/about.ini
deleted file mode 100644
index e07a7bb..0000000
--- a/xlc/org.eclipse.cdt.xlc.sdk.branding/about.ini
+++ /dev/null
@@ -1,24 +0,0 @@
-# about.ini
-# contains information about a feature
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in about.properties
-# This file does not need to be translated.
-
-# Property "aboutText" contains blurb for "About" dialog (translated)
-aboutText=%blurb
-
-# Property "windowImage" contains path to window icon (16x16)
-# needed for primary features only
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=cdt_logo_icon32.png
-
-# Property "aboutImage" contains path to product image (500x330 or 115x164)
-# needed for primary features only
-
-# Property "appName" contains name of the application (translated)
-# needed for primary features only
-
-# Property "welcomePerspective" contains the id of the perspective in which the
-# welcome page is to be opened.
-# optional
diff --git a/xlc/org.eclipse.cdt.xlc.sdk.branding/about.mappings b/xlc/org.eclipse.cdt.xlc.sdk.branding/about.mappings
deleted file mode 100644
index 936a803..0000000
--- a/xlc/org.eclipse.cdt.xlc.sdk.branding/about.mappings
+++ /dev/null
@@ -1,9 +0,0 @@
-# about.mappings
-# contains fill-ins for about.properties
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file does not need to be translated.
-
-# The following should contain the build version.
-# e.g. "0=20200106-1728"
-# This value will be added automatically via the build scripts
-0=${buildId}
diff --git a/xlc/org.eclipse.cdt.xlc.sdk.branding/about.properties b/xlc/org.eclipse.cdt.xlc.sdk.branding/about.properties
deleted file mode 100644
index 014093a..0000000
--- a/xlc/org.eclipse.cdt.xlc.sdk.branding/about.properties
+++ /dev/null
@@ -1,32 +0,0 @@
-###############################################################################
-# Copyright (c) 2008, 2020 Contributors to the Eclipse Foundation
-#
-# See the NOTICE file(s) distributed with this work for additional
-# information regarding copyright ownership.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-###############################################################################
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-# NOTE TO TRANSLATOR: Please do not translate the featureVersion variable.
-
-
-blurb=C/C++ IBM XLC Compiler Support SDK\n\
-\n\
-Version: {featureVersion}\n\
-Build id: {0}\n\
-\n\
-Copyright (c) 2008, 2020 Contributors to the Eclipse Foundation
-\n\
-See the NOTICE file(s) distributed with this work for additional\n\
-information regarding copyright ownership.\n\
-\n\
-Visit http://www.eclipse.org/cdt
diff --git a/xlc/org.eclipse.cdt.xlc.sdk.branding/build.properties b/xlc/org.eclipse.cdt.xlc.sdk.branding/build.properties
deleted file mode 100644
index f9952c2..0000000
--- a/xlc/org.eclipse.cdt.xlc.sdk.branding/build.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-###############################################################################
-#  Copyright (c) 2005, 2009 IBM Corporation and others.
-#
-#  This program and the accompanying materials
-#  are made available under the terms of the Eclipse Public License 2.0
-#  which accompanies this distribution, and is available at
-#  https://www.eclipse.org/legal/epl-2.0/
-#
-#  SPDX-License-Identifier: EPL-2.0
-#
-#  Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = about.html,\
-               about.ini,\
-               about.mappings,\
-               about.properties,\
-               notice.html,\
-               plugin.properties,\
-               epl-v20.html,\
-               META-INF/,\
-               cdt_logo_icon32.png
-src.includes = about.html
diff --git a/xlc/org.eclipse.cdt.xlc.sdk.branding/cdt_logo_icon32.png b/xlc/org.eclipse.cdt.xlc.sdk.branding/cdt_logo_icon32.png
deleted file mode 100644
index 470ca81..0000000
--- a/xlc/org.eclipse.cdt.xlc.sdk.branding/cdt_logo_icon32.png
+++ /dev/null
Binary files differ
diff --git a/xlc/org.eclipse.cdt.xlc.sdk.branding/epl-v20.html b/xlc/org.eclipse.cdt.xlc.sdk.branding/epl-v20.html
deleted file mode 100644
index 008b801..0000000
--- a/xlc/org.eclipse.cdt.xlc.sdk.branding/epl-v20.html
+++ /dev/null
@@ -1,189 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-	<h2>Eclipse Foundation Software User Agreement</h2>
-	<p>November 22, 2017</p>
-
-	<h3>Usage Of Content</h3>
-
-	<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION,
-		INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-		(COLLECTIVELY &quot;CONTENT&quot;). USE OF THE CONTENT IS GOVERNED BY
-		THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-		CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED
-		BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS
-		GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY
-		APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED
-		BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS
-		AGREEMENT AND THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE
-		AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT
-		USE THE CONTENT.</p>
-
-	<h3>Applicable Licenses</h3>
-
-	<p>
-		Unless otherwise indicated, all Content made available by the Eclipse
-		Foundation is provided to you under the terms and conditions of the
-		Eclipse Public License Version 2.0 (&quot;EPL&quot;). A copy of the
-		EPL is provided with this Content and is also available at <a
-			href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>Content includes, but is not limited to, source code, object
-		code, documentation and other files maintained in the Eclipse
-		Foundation source code repository (&quot;Repository&quot;) in software
-		modules (&quot;Modules&quot;) and made available as downloadable
-		archives (&quot;Downloads&quot;).</p>
-
-	<ul>
-		<li>Content may be structured and packaged into modules to
-			facilitate delivering, extending, and upgrading the Content. Typical
-			modules may include plug-ins (&quot;Plug-ins&quot;), plug-in
-			fragments (&quot;Fragments&quot;), and features
-			(&quot;Features&quot;).</li>
-		<li>Each Plug-in or Fragment may be packaged as a sub-directory
-			or JAR (Java&trade; ARchive) in a directory named
-			&quot;plugins&quot;.</li>
-		<li>A Feature is a bundle of one or more Plug-ins and/or
-			Fragments and associated material. Each Feature may be packaged as a
-			sub-directory in a directory named &quot;features&quot;. Within a
-			Feature, files named &quot;feature.xml&quot; may contain a list of
-			the names and version numbers of the Plug-ins and/or Fragments
-			associated with that Feature.</li>
-		<li>Features may also include other Features (&quot;Included
-			Features&quot;). Within a Feature, files named
-			&quot;feature.xml&quot; may contain a list of the names and version
-			numbers of Included Features.</li>
-	</ul>
-
-	<p>The terms and conditions governing Plug-ins and Fragments should
-		be contained in files named &quot;about.html&quot;
-		(&quot;Abouts&quot;). The terms and conditions governing Features and
-		Included Features should be contained in files named
-		&quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and
-		Feature Licenses may be located in any directory of a Download or
-		Module including, but not limited to the following locations:</p>
-
-	<ul>
-		<li>The top-level (root) directory</li>
-		<li>Plug-in and Fragment directories</li>
-		<li>Inside Plug-ins and Fragments packaged as JARs</li>
-		<li>Sub-directories of the directory named &quot;src&quot; of
-			certain Plug-ins</li>
-		<li>Feature directories</li>
-	</ul>
-
-	<p>Note: if a Feature made available by the Eclipse Foundation is
-		installed using the Provisioning Technology (as defined below), you
-		must agree to a license (&quot;Feature Update License&quot;) during
-		the installation process. If the Feature contains Included Features,
-		the Feature Update License should either provide you with the terms
-		and conditions governing the Included Features or inform you where you
-		can locate them. Feature Update Licenses may be found in the
-		&quot;license&quot; property of files named
-		&quot;feature.properties&quot; found within a Feature. Such Abouts,
-		Feature Licenses, and Feature Update Licenses contain the terms and
-		conditions (or references to such terms and conditions) that govern
-		your use of the associated Content in that directory.</p>
-
-	<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY
-		REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND
-		CONDITIONS. SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT
-		ARE NOT LIMITED TO):</p>
-
-	<ul>
-		<li>Eclipse Public License Version 1.0 (available at <a
-			href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>)
-		</li>
-		<li>Eclipse Distribution License Version 1.0 (available at <a
-			href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)
-		</li>
-		<li>Common Public License Version 1.0 (available at <a
-			href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)
-		</li>
-		<li>Apache Software License 1.1 (available at <a
-			href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)
-		</li>
-		<li>Apache Software License 2.0 (available at <a
-			href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)
-		</li>
-		<li>Mozilla Public License Version 1.1 (available at <a
-			href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)
-		</li>
-	</ul>
-
-	<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND
-		CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License,
-		or Feature Update License is provided, please contact the Eclipse
-		Foundation to determine what terms and conditions govern that
-		particular Content.</p>
-
-
-	<h3>Use of Provisioning Technology</h3>
-
-	<p>
-		The Eclipse Foundation makes available provisioning software, examples
-		of which include, but are not limited to, p2 and the Eclipse Update
-		Manager (&quot;Provisioning Technology&quot;) for the purpose of
-		allowing users to install software, documentation, information and/or
-		other materials (collectively &quot;Installable Software&quot;). This
-		capability is provided with the intent of allowing such users to
-		install, extend and update Eclipse-based products. Information about
-		packaging Installable Software is available at <a
-			href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-		(&quot;Specification&quot;).
-	</p>
-
-	<p>You may use Provisioning Technology to allow other parties to
-		install Installable Software. You shall be responsible for enabling
-		the applicable license agreements relating to the Installable Software
-		to be presented to, and accepted by, the users of the Provisioning
-		Technology in accordance with the Specification. By using Provisioning
-		Technology in such a manner and making it available in accordance with
-		the Specification, you further acknowledge your agreement to, and the
-		acquisition of all necessary rights to permit the following:</p>
-
-	<ol>
-		<li>A series of actions may occur (&quot;Provisioning
-			Process&quot;) in which a user may execute the Provisioning
-			Technology on a machine (&quot;Target Machine&quot;) with the intent
-			of installing, extending or updating the functionality of an
-			Eclipse-based product.</li>
-		<li>During the Provisioning Process, the Provisioning Technology
-			may cause third party Installable Software or a portion thereof to be
-			accessed and copied to the Target Machine.</li>
-		<li>Pursuant to the Specification, you will provide to the user
-			the terms and conditions that govern the use of the Installable
-			Software (&quot;Installable Software Agreement&quot;) and such
-			Installable Software Agreement shall be accessed from the Target
-			Machine in accordance with the Specification. Such Installable
-			Software Agreement must inform the user of the terms and conditions
-			that govern the Installable Software and must solicit acceptance by
-			the end user in the manner prescribed in such Installable Software
-			Agreement. Upon such indication of agreement by the user, the
-			provisioning Technology will complete installation of the Installable
-			Software.</li>
-	</ol>
-
-	<h3>Cryptography</h3>
-
-	<p>Content may contain encryption software. The country in which
-		you are currently may have restrictions on the import, possession, and
-		use, and/or re-export to another country, of encryption software.
-		BEFORE using any encryption software, please check the country's laws,
-		regulations and policies concerning the import, possession, or use,
-		and re-export of encryption software, to see if this is permitted.</p>
-
-	<p>
-		<small>Java and all Java-based trademarks are trademarks of
-			Oracle Corporation in the United States, other countries, or both.</small>
-	</p>
-</body>
-</html>
diff --git a/xlc/org.eclipse.cdt.xlc.sdk.branding/notice.html b/xlc/org.eclipse.cdt.xlc.sdk.branding/notice.html
deleted file mode 100644
index 008b801..0000000
--- a/xlc/org.eclipse.cdt.xlc.sdk.branding/notice.html
+++ /dev/null
@@ -1,189 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-	<h2>Eclipse Foundation Software User Agreement</h2>
-	<p>November 22, 2017</p>
-
-	<h3>Usage Of Content</h3>
-
-	<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION,
-		INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-		(COLLECTIVELY &quot;CONTENT&quot;). USE OF THE CONTENT IS GOVERNED BY
-		THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-		CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED
-		BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS
-		GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY
-		APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED
-		BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS
-		AGREEMENT AND THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE
-		AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT
-		USE THE CONTENT.</p>
-
-	<h3>Applicable Licenses</h3>
-
-	<p>
-		Unless otherwise indicated, all Content made available by the Eclipse
-		Foundation is provided to you under the terms and conditions of the
-		Eclipse Public License Version 2.0 (&quot;EPL&quot;). A copy of the
-		EPL is provided with this Content and is also available at <a
-			href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>Content includes, but is not limited to, source code, object
-		code, documentation and other files maintained in the Eclipse
-		Foundation source code repository (&quot;Repository&quot;) in software
-		modules (&quot;Modules&quot;) and made available as downloadable
-		archives (&quot;Downloads&quot;).</p>
-
-	<ul>
-		<li>Content may be structured and packaged into modules to
-			facilitate delivering, extending, and upgrading the Content. Typical
-			modules may include plug-ins (&quot;Plug-ins&quot;), plug-in
-			fragments (&quot;Fragments&quot;), and features
-			(&quot;Features&quot;).</li>
-		<li>Each Plug-in or Fragment may be packaged as a sub-directory
-			or JAR (Java&trade; ARchive) in a directory named
-			&quot;plugins&quot;.</li>
-		<li>A Feature is a bundle of one or more Plug-ins and/or
-			Fragments and associated material. Each Feature may be packaged as a
-			sub-directory in a directory named &quot;features&quot;. Within a
-			Feature, files named &quot;feature.xml&quot; may contain a list of
-			the names and version numbers of the Plug-ins and/or Fragments
-			associated with that Feature.</li>
-		<li>Features may also include other Features (&quot;Included
-			Features&quot;). Within a Feature, files named
-			&quot;feature.xml&quot; may contain a list of the names and version
-			numbers of Included Features.</li>
-	</ul>
-
-	<p>The terms and conditions governing Plug-ins and Fragments should
-		be contained in files named &quot;about.html&quot;
-		(&quot;Abouts&quot;). The terms and conditions governing Features and
-		Included Features should be contained in files named
-		&quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and
-		Feature Licenses may be located in any directory of a Download or
-		Module including, but not limited to the following locations:</p>
-
-	<ul>
-		<li>The top-level (root) directory</li>
-		<li>Plug-in and Fragment directories</li>
-		<li>Inside Plug-ins and Fragments packaged as JARs</li>
-		<li>Sub-directories of the directory named &quot;src&quot; of
-			certain Plug-ins</li>
-		<li>Feature directories</li>
-	</ul>
-
-	<p>Note: if a Feature made available by the Eclipse Foundation is
-		installed using the Provisioning Technology (as defined below), you
-		must agree to a license (&quot;Feature Update License&quot;) during
-		the installation process. If the Feature contains Included Features,
-		the Feature Update License should either provide you with the terms
-		and conditions governing the Included Features or inform you where you
-		can locate them. Feature Update Licenses may be found in the
-		&quot;license&quot; property of files named
-		&quot;feature.properties&quot; found within a Feature. Such Abouts,
-		Feature Licenses, and Feature Update Licenses contain the terms and
-		conditions (or references to such terms and conditions) that govern
-		your use of the associated Content in that directory.</p>
-
-	<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY
-		REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND
-		CONDITIONS. SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT
-		ARE NOT LIMITED TO):</p>
-
-	<ul>
-		<li>Eclipse Public License Version 1.0 (available at <a
-			href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>)
-		</li>
-		<li>Eclipse Distribution License Version 1.0 (available at <a
-			href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)
-		</li>
-		<li>Common Public License Version 1.0 (available at <a
-			href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)
-		</li>
-		<li>Apache Software License 1.1 (available at <a
-			href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)
-		</li>
-		<li>Apache Software License 2.0 (available at <a
-			href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)
-		</li>
-		<li>Mozilla Public License Version 1.1 (available at <a
-			href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)
-		</li>
-	</ul>
-
-	<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND
-		CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License,
-		or Feature Update License is provided, please contact the Eclipse
-		Foundation to determine what terms and conditions govern that
-		particular Content.</p>
-
-
-	<h3>Use of Provisioning Technology</h3>
-
-	<p>
-		The Eclipse Foundation makes available provisioning software, examples
-		of which include, but are not limited to, p2 and the Eclipse Update
-		Manager (&quot;Provisioning Technology&quot;) for the purpose of
-		allowing users to install software, documentation, information and/or
-		other materials (collectively &quot;Installable Software&quot;). This
-		capability is provided with the intent of allowing such users to
-		install, extend and update Eclipse-based products. Information about
-		packaging Installable Software is available at <a
-			href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-		(&quot;Specification&quot;).
-	</p>
-
-	<p>You may use Provisioning Technology to allow other parties to
-		install Installable Software. You shall be responsible for enabling
-		the applicable license agreements relating to the Installable Software
-		to be presented to, and accepted by, the users of the Provisioning
-		Technology in accordance with the Specification. By using Provisioning
-		Technology in such a manner and making it available in accordance with
-		the Specification, you further acknowledge your agreement to, and the
-		acquisition of all necessary rights to permit the following:</p>
-
-	<ol>
-		<li>A series of actions may occur (&quot;Provisioning
-			Process&quot;) in which a user may execute the Provisioning
-			Technology on a machine (&quot;Target Machine&quot;) with the intent
-			of installing, extending or updating the functionality of an
-			Eclipse-based product.</li>
-		<li>During the Provisioning Process, the Provisioning Technology
-			may cause third party Installable Software or a portion thereof to be
-			accessed and copied to the Target Machine.</li>
-		<li>Pursuant to the Specification, you will provide to the user
-			the terms and conditions that govern the use of the Installable
-			Software (&quot;Installable Software Agreement&quot;) and such
-			Installable Software Agreement shall be accessed from the Target
-			Machine in accordance with the Specification. Such Installable
-			Software Agreement must inform the user of the terms and conditions
-			that govern the Installable Software and must solicit acceptance by
-			the end user in the manner prescribed in such Installable Software
-			Agreement. Upon such indication of agreement by the user, the
-			provisioning Technology will complete installation of the Installable
-			Software.</li>
-	</ol>
-
-	<h3>Cryptography</h3>
-
-	<p>Content may contain encryption software. The country in which
-		you are currently may have restrictions on the import, possession, and
-		use, and/or re-export to another country, of encryption software.
-		BEFORE using any encryption software, please check the country's laws,
-		regulations and policies concerning the import, possession, or use,
-		and re-export of encryption software, to see if this is permitted.</p>
-
-	<p>
-		<small>Java and all Java-based trademarks are trademarks of
-			Oracle Corporation in the United States, other countries, or both.</small>
-	</p>
-</body>
-</html>
diff --git a/xlc/org.eclipse.cdt.xlc.sdk.branding/plugin.properties b/xlc/org.eclipse.cdt.xlc.sdk.branding/plugin.properties
deleted file mode 100644
index b654c52..0000000
--- a/xlc/org.eclipse.cdt.xlc.sdk.branding/plugin.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-#  Copyright (c) 2005, 2011 IBM Corporation and others.
-#
-#  This program and the accompanying materials
-#  are made available under the terms of the Eclipse Public License 2.0
-#  which accompanies this distribution, and is available at
-#  https://www.eclipse.org/legal/epl-2.0/
-#
-#  SPDX-License-Identifier: EPL-2.0
-#
-#  Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-pluginName=C/C++ IBM XLC Compiler Support SDK
-providerName=Eclipse CDT
\ No newline at end of file
diff --git a/xlc/pom.xml b/xlc/pom.xml
deleted file mode 100644
index 0a6f4a7..0000000
--- a/xlc/pom.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
-	xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-	<modelVersion>4.0.0</modelVersion>
-
-	<parent>
-		<groupId>org.eclipse.cdt</groupId>
-		<artifactId>cdt-parent</artifactId>
-		<version>10.0.0-SNAPSHOT</version>
-	</parent>
-
-	<artifactId>org.eclipse.cdt.xlc-parent</artifactId>
-	<packaging>pom</packaging>
-</project>