Skip to main content
aboutsummaryrefslogtreecommitdiffstats
path: root/xlc
diff options
context:
space:
mode:
authorJonah Graham2018-11-20 16:20:42 +0000
committerJonah Graham2018-11-22 21:47:02 +0000
commit170e654b4796bad1453ae85a427b97317d67a69a (patch)
tree6ca9b8a8fedd5fd25f97eb79c408312e256ff981 /xlc
parent35996a5c5ca5c254959ba48241eaada6dbf8628d (diff)
downloadorg.eclipse.cdt-170e654b4796bad1453ae85a427b97317d67a69a.tar.gz
org.eclipse.cdt-170e654b4796bad1453ae85a427b97317d67a69a.tar.xz
org.eclipse.cdt-170e654b4796bad1453ae85a427b97317d67a69a.zip
Bug 540373: Cleanup: Format & Remove trailing whitespace
This was done by selecting all projects in Eclipse then Source -> Clean Up... -> choosing: - Format source code - Remove trailing white spaces on all lines and completing the wizard Change-Id: I63685372c6bcc67719bcf145123bcb72e5b00394
Diffstat (limited to 'xlc')
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/VectorExtensionsTest.java284
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/XlcExtensionsTest.java243
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/XlcExtensionsTestSuite.java10
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/XlcTestBase.java22
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcCompletionHangingTest.java36
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRCPPImplicitNameTests.java4
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRCPPSpecTest.java4
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRCPPTests.java7
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRCSpecTests.java4
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRCommentTests.java15
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRCompleteParser2Tests.java4
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRCompletionBasicTest.java4
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRCompletionParseTest.java4
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRDOMLocationMacroTests.java4
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRDOMLocationTests.java4
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRDOMPreprocessorInformationTest.java4
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRDigraphTrigraphTests.java4
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRGCCCompleteParseExtensionsTest.java4
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRGCCTests.java4
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRImageLocationTests.java4
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRInactiveCodeTests.java4
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRKnRTests.java4
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRNodeSelectorTest.java4
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRParserTestSuite.java71
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRQuickParser2Tests.java4
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRSelectionParseTest.java6
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRSemanticsTests.java4
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRTaskParserTest.java4
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRTemplateTests.java4
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRTests.java6
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRUtilOldTests.java4
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRUtilTests.java4
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/suite/AutomatedIntegrationSuite.java11
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/XlcCLanguage.java28
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/XlcCPPLanguage.java46
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/XlcCPPScannerExtensionConfiguration.java15
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/XlcCPPTokenMap.java458
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/XlcCScannerExtensionConfiguration.java14
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/XlcCTokenMap.java349
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/XlcKeywords.java76
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/action/XlcCBuildASTParserAction.java26
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/action/XlcCPPBuildASTParserAction.java65
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/activator/XlcParserPlugin.java2
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/ast/IXlcCASTVectorTypeSpecifier.java8
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/ast/IXlcCPPASTModifiedArrayModifier.java23
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/ast/IXlcCPPASTVectorTypeSpecifier.java6
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/ast/IXlcCPPNodeFactory.java6
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/preferences/XlcLanguagePreferences.java51
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/preferences/XlcPref.java17
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/ast/XlcCNodeFactory.java2
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/ast/XlcCPPASTModifiedArrayModifier.java96
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/ast/XlcCPPASTVectorTypeSpecifier.java2
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/ast/XlcCPPNodeFactory.java10
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/c/XlcCParser.java3173
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/c/XlcCParserprs.java3229
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/c/XlcCParsersym.java251
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/cpp/XlcCPPParser.java5357
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/cpp/XlcCPPParserprs.java6371
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/cpp/XlcCPPParsersym.java319
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc/ui/org/eclipse/cdt/internal/core/lrparser/xlc/ui/preferences/PrefCheckbox.java13
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc/ui/org/eclipse/cdt/internal/core/lrparser/xlc/ui/preferences/PreferenceMessages.java34
-rw-r--r--xlc/org.eclipse.cdt.core.lrparser.xlc/ui/org/eclipse/cdt/internal/core/lrparser/xlc/ui/preferences/XlcLanguageOptionsPreferencePage.java49
-rw-r--r--xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestCommandOptionNotRecognized.java10
-rw-r--r--xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestCompatibility.java10
-rw-r--r--xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestError_1.java18
-rw-r--r--xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestInformationalMessage_1.java18
-rw-r--r--xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestInformationalMessage_2.java12
-rw-r--r--xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestInformationalMessage_3.java10
-rw-r--r--xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestLinkerCommandOptionNotRecognized.java10
-rw-r--r--xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestLinkerDuplicateSymbol.java14
-rw-r--r--xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestLinkerErrorWhileReading.java14
-rw-r--r--xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestLinkerInfo.java14
-rw-r--r--xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestLinkerSevereError.java14
-rw-r--r--xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestLinkerUndefinedSymbol.java14
-rw-r--r--xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestRedeclaration.java17
-rw-r--r--xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestRedefinition.java15
-rw-r--r--xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestSevereError_1.java17
-rw-r--r--xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestSevereError_2.java17
-rw-r--r--xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestSevereError_3.java19
-rw-r--r--xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestSevereError_4.java22
-rw-r--r--xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestSevereError_5.java18
-rw-r--r--xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestUnrecoverableError_1.java13
-rw-r--r--xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestUnrecoverableError_2.java11
-rw-r--r--xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestUnrecoverableError_3.java12
-rw-r--r--xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestWarning_1.java15
-rw-r--r--xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/TestsPlugin.java5
-rw-r--r--xlc/org.eclipse.cdt.errorparsers.xlc.tests/src/org/eclipse/cdt/errorparsers/xlc/tests/XlcErrorParserTester.java23
-rw-r--r--xlc/org.eclipse.cdt.errorparsers.xlc/src/org/eclipse/cdt/errorparsers/xlc/Activator.java4
-rw-r--r--xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/activator/Activator.java5
-rw-r--r--xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/scannerconfig/AbstractXLCBuildOutputParser.java12
-rw-r--r--xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/scannerconfig/PerFileXLCScannerInfoCollector.java1247
-rw-r--r--xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/scannerconfig/XLCBuildOutputParserUtility.java829
-rw-r--r--xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/scannerconfig/XLCPerFileBuildOutputParser.java244
-rw-r--r--xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/scannerconfig/XLCPerProjectBuildOutputParser.java218
-rw-r--r--xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/scannerconfig/XlCSpecsConsoleParser.java56
-rw-r--r--xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/scannerconfig/XlCSpecsRunSIProvider.java12
-rw-r--r--xlc/org.eclipse.cdt.make.xlc.core/src/org/eclipse/cdt/make/xlc/core/scannerconfig/util/XLCCommandDSC.java12
-rw-r--r--xlc/org.eclipse.cdt.managedbuilder.xlc.core/src/org/eclipse/cdt/managedbuilder/xlc/core/XlcBuiltinSpecsDetector.java29
-rw-r--r--xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/aix/AixConfigurationEnvironmentSupplier.java28
-rw-r--r--xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/aix/AixPathResolver.java4
-rw-r--r--xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/XLCProjectMacroSupplier.java47
-rw-r--r--xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/preferences/PreferenceConstants.java12
-rw-r--r--xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/preferences/PreferenceInitializer.java2
-rw-r--r--xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/preferences/XLCompilerPreferencePage.java37
-rw-r--r--xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/properties/HiddenOptionApplicabilityCalculator.java12
-rw-r--r--xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/properties/XLCApplicabilityCalculator.java97
-rw-r--r--xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/properties/XLCompilerPropertyPage.java5
-rw-r--r--xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/properties/XLCv8ApplicabiltyCalculator.java33
-rw-r--r--xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/properties/XLCv9ApplicabilityCalculator.java33
-rw-r--r--xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/variables/DynamicVariableResolver.java6
-rw-r--r--xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/wizards/XLCSettingsWizardPage.java21
-rw-r--r--xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/wizards/XLCSettingsWizardRunnable.java14
-rw-r--r--xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/Activator.java3
-rw-r--r--xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/Messages.java3
-rw-r--r--xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/wizards/UpcProjectWizard.java40
-rw-r--r--xlc/org.eclipse.cdt.managedbuilder.xlupc.ui/src/org/eclipse/cdt/managedbuilder/xlupc/ui/wizards/XLUpcSettingsWizardRunnable.java9
116 files changed, 10769 insertions, 13562 deletions
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
index cabf940057c..63d91e07771 100644
--- 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
@@ -24,183 +24,123 @@ 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());
- }
+
+ 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
index 2db13e11da3..59e08e4958c 100644
--- 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
@@ -16,286 +16,201 @@ 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";
+ 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";
+ 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";
+ 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";
+ 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";
+ 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";
+ 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";
+ 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";
+ 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";
+ 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";
+ 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";
+ 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";
+ 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";
+ 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";
+ 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";
+ 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";
+ 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";
+ 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) {} ";
+ 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) {} ";
+ 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) {} ";
+ 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 " +
- "}";
+ 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 ";
+ 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";
-
+ 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" +
- "} ";
+ 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
index c00b93049a8..42a42ae5268 100644
--- 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
@@ -19,9 +19,11 @@ import junit.framework.TestSuite;
public class XlcExtensionsTestSuite extends TestSuite {
public static Test suite() {
- return new TestSuite() {{
- addTestSuite(VectorExtensionsTest.class);
- addTestSuite(XlcExtensionsTest.class);
- }};
+ 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
index af38de28c15..c4d3cf3c419 100644
--- 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
@@ -25,11 +25,11 @@ 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);
@@ -37,13 +37,13 @@ public class XlcTestBase extends TestCase {
options.setCheckBindings(checkBindings);
return ParseHelper.parse(code, language, options);
}
-
- protected XlcCLanguage getCLanguage() {
- return XlcCLanguage.getDefault();
- }
-
- protected XlcCPPLanguage getCPPLanguage() {
- return XlcCPPLanguage.getDefault();
- }
-
+
+ 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
index 09c6e264a45..fcabbf988a7 100644
--- 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
@@ -7,7 +7,7 @@
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
- *
+ *
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
@@ -19,32 +19,32 @@ import org.eclipse.cdt.core.lrparser.tests.LRCompletionHangingTest;
import org.eclipse.cdt.core.lrparser.xlc.XlcCLanguage;
import org.eclipse.cdt.core.lrparser.xlc.XlcCPPLanguage;
-public class XlcCompletionHangingTest extends LRCompletionHangingTest{
+public class XlcCompletionHangingTest extends LRCompletionHangingTest {
-
public static TestSuite suite() {
return new TestSuite(XlcCompletionHangingTest.class);
}
-
-
+
//TODO ??? overwrite some failed test cases
- public void testCompletionTemplateClassForCPP() throws Exception {}
- public void testCompletionGnuCPP() throws Exception {}
-
-
- protected XlcCLanguage getCLanguage() {
- return XlcCLanguage.getDefault();
- }
-
+ public void testCompletionTemplateClassForCPP() throws Exception {
+ }
+
+ public void testCompletionGnuCPP() throws Exception {
+ }
+
+ protected XlcCLanguage getCLanguage() {
+ return XlcCLanguage.getDefault();
+ }
+
protected XlcCPPLanguage getCPPLanguage() {
- return XlcCPPLanguage.getDefault();
+ 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";
+ 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
index 1202c907f4a..2d6050baa6c 100644
--- 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
@@ -24,11 +24,11 @@ public class XlcLRCPPImplicitNameTests extends LRCPPImplicitNameTests {
public static TestSuite suite() {
return suite(XlcLRCPPImplicitNameTests.class);
}
-
+
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/XlcLRCPPSpecTest.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRCPPSpecTest.java
index 814db43d48a..1900fca8e28 100644
--- 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
@@ -24,11 +24,11 @@ public class XlcLRCPPSpecTest extends LRCPPSpecTest {
public static TestSuite suite() {
return suite(XlcLRCPPSpecTest.class);
}
-
+
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/XlcLRCPPTests.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRCPPTests.java
index 8da81d45da2..b76de18c521 100644
--- 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
@@ -25,17 +25,18 @@ public class XlcLRCPPTests extends LRCPPTests {
public static TestSuite suite() {
return suite(XlcLRCPPTests.class);
}
+
//CDT_70_FIX_FROM_50-#9
public void testStaticAssertions_294730() throws Exception {
- String code= getAboveComment();
+ String code = getAboveComment();
code = code.replaceAll("static_assert", "__static_assert");
parseAndCheckBindings(code, ParserLanguage.CPP);
}
-
+
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/XlcLRCSpecTests.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRCSpecTests.java
index 1d0dac14b36..8607ef23f23 100644
--- 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
@@ -24,11 +24,11 @@ public class XlcLRCSpecTests extends LRCSpecTests {
public static TestSuite suite() {
return suite(XlcLRCSpecTests.class);
}
-
+
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/XlcLRCommentTests.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRCommentTests.java
index 5a359aeaa15..172863181bf 100644
--- 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
@@ -21,16 +21,15 @@ import org.eclipse.cdt.core.lrparser.xlc.XlcCPPLanguage;
import org.eclipse.cdt.core.model.ILanguage;
public class XlcLRCommentTests extends LRCommentTests {
-
-
+
public static TestSuite suite() {
- return suite(XlcLRCommentTests.class);
- }
-
+ return suite(XlcLRCommentTests.class);
+ }
+
protected ILanguage getCLanguage() {
- return XlcCLanguage.getDefault();
- }
-
+ 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/XlcLRCompleteParser2Tests.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRCompleteParser2Tests.java
index 0a2e5969859..fbbda23e66a 100644
--- 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
@@ -25,11 +25,11 @@ public class XlcLRCompleteParser2Tests extends LRCompleteParser2Tests {
public static TestSuite suite() {
return suite(XlcLRCompleteParser2Tests.class);
}
-
+
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/XlcLRCompletionBasicTest.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRCompletionBasicTest.java
index 6cd1a7ffe51..394a9baf277 100644
--- 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
@@ -24,11 +24,11 @@ public class XlcLRCompletionBasicTest extends LRCompletionBasicTest {
public static TestSuite suite() {
return suite(XlcLRCompletionBasicTest.class);
}
-
+
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/XlcLRCompletionParseTest.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRCompletionParseTest.java
index e96f13bf06a..fd5ed160751 100644
--- 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
@@ -24,11 +24,11 @@ public class XlcLRCompletionParseTest extends LRCompletionParseTest {
public static TestSuite suite() {
return new TestSuite(XlcLRCompletionParseTest.class);
}
-
+
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
index 20e28cca007..8e2d936df6f 100644
--- 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
@@ -24,11 +24,11 @@ public class XlcLRDOMLocationMacroTests extends LRDOMLocationMacroTests {
public static TestSuite suite() {
return suite(XlcLRDOMLocationMacroTests.class);
}
-
+
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/XlcLRDOMLocationTests.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRDOMLocationTests.java
index 08dac57e6ca..b2108ca084a 100644
--- 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
@@ -24,11 +24,11 @@ public class XlcLRDOMLocationTests extends LRDOMLocationTests {
public static TestSuite suite() {
return suite(XlcLRDOMLocationTests.class);
}
-
+
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/XlcLRDOMPreprocessorInformationTest.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRDOMPreprocessorInformationTest.java
index 7dce686dbc1..d4b2a04abb6 100644
--- 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
@@ -24,11 +24,11 @@ public class XlcLRDOMPreprocessorInformationTest extends LRDOMPreprocessorInform
public static TestSuite suite() {
return suite(XlcLRDOMPreprocessorInformationTest.class);
}
-
+
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/XlcLRDigraphTrigraphTests.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRDigraphTrigraphTests.java
index f7d90e9eb89..eaa4da889c3 100644
--- 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
@@ -25,11 +25,11 @@ public class XlcLRDigraphTrigraphTests extends LRDigraphTrigraphTests {
public static TestSuite suite() {
return new TestSuite(XlcLRDigraphTrigraphTests.class);
}
-
+
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
index c036eac6a53..187580d9871 100644
--- 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
@@ -24,11 +24,11 @@ public class XlcLRGCCCompleteParseExtensionsTest extends LRGCCCompleteParseExten
public static TestSuite suite() {
return suite(XlcLRGCCCompleteParseExtensionsTest.class);
}
-
+
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/XlcLRGCCTests.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRGCCTests.java
index 5297c7b93fb..967aaa79114 100644
--- 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
@@ -24,11 +24,11 @@ public class XlcLRGCCTests extends LRGCCTests {
public static TestSuite suite() {
return suite(XlcLRGCCTests.class);
}
-
+
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/XlcLRImageLocationTests.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRImageLocationTests.java
index 1ee0030f6c5..0e9c557d9ce 100644
--- 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
@@ -24,11 +24,11 @@ public class XlcLRImageLocationTests extends LRImageLocationTests {
public static TestSuite suite() {
return suite(XlcLRImageLocationTests.class);
}
-
+
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/XlcLRInactiveCodeTests.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRInactiveCodeTests.java
index e050e796f6d..342e7dc17c1 100644
--- 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
@@ -24,11 +24,11 @@ public class XlcLRInactiveCodeTests extends LRInactiveCodeTests {
public static TestSuite suite() {
return suite(XlcLRInactiveCodeTests.class);
}
-
+
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/XlcLRKnRTests.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRKnRTests.java
index 31bb9d8e2e1..d9a34967ffc 100644
--- 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
@@ -24,11 +24,11 @@ public class XlcLRKnRTests extends LRKnRTests {
public static TestSuite suite() {
return suite(XlcLRKnRTests.class);
}
-
+
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/XlcLRNodeSelectorTest.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRNodeSelectorTest.java
index 021ed9671b4..54f859a83a4 100644
--- 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
@@ -24,11 +24,11 @@ public class XlcLRNodeSelectorTest extends LRNodeSelectorTest {
public static TestSuite suite() {
return suite(XlcLRNodeSelectorTest.class);
}
-
+
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/XlcLRParserTestSuite.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRParserTestSuite.java
index 7e8c9a8d923..4db01c58b36 100644
--- 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
@@ -13,13 +13,11 @@
*******************************************************************************/
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
@@ -28,39 +26,40 @@ public class XlcLRParserTestSuite extends TestSuite {
// 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());
+ 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
index 2b0bc037d2c..860a2b43dc8 100644
--- 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
@@ -24,11 +24,11 @@ public class XlcLRQuickParser2Tests extends LRQuickParser2Tests {
public static TestSuite suite() {
return new TestSuite(XlcLRQuickParser2Tests.class);
}
-
+
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/XlcLRSelectionParseTest.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRSelectionParseTest.java
index fcf72512f62..0fac0baf0b8 100644
--- 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
@@ -21,7 +21,7 @@ import org.eclipse.cdt.core.lrparser.xlc.XlcCPPLanguage;
import org.eclipse.cdt.core.model.ILanguage;
public class XlcLRSelectionParseTest extends LRSelectionParseTest {
-
+
public XlcLRSelectionParseTest() {
}
@@ -32,11 +32,11 @@ public class XlcLRSelectionParseTest extends LRSelectionParseTest {
public static TestSuite suite() {
return new TestSuite(XlcLRSelectionParseTest.class);
}
-
+
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/XlcLRSemanticsTests.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRSemanticsTests.java
index 60150ce85e0..8b59776a0cc 100644
--- 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
@@ -24,11 +24,11 @@ public class XlcLRSemanticsTests extends LRSemanticsTests {
public static TestSuite suite() {
return suite(XlcLRSemanticsTests.class);
}
-
+
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/XlcLRTaskParserTest.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRTaskParserTest.java
index 2d291f21f84..d2e602b5741 100644
--- 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
@@ -24,11 +24,11 @@ public class XlcLRTaskParserTest extends LRTaskParserTest {
public static TestSuite suite() {
return suite(XlcLRTaskParserTest.class);
}
-
+
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/XlcLRTemplateTests.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRTemplateTests.java
index c2f7e260dc4..fa2c1c18089 100644
--- 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
@@ -24,11 +24,11 @@ public class XlcLRTemplateTests extends LRTemplateTests {
public static TestSuite suite() {
return suite(XlcLRTemplateTests.class);
}
-
+
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/XlcLRTests.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRTests.java
index d755b1cd750..4eb9418e20f 100644
--- 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
@@ -26,15 +26,15 @@ public class XlcLRTests extends LRTests {
super(name);
// TODO Auto-generated constructor stub
}
-
+
public static TestSuite suite() {
return suite(XlcLRTests.class);
}
-
+
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/XlcLRUtilOldTests.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRUtilOldTests.java
index e7ed83f8bc6..895eb9da8a4 100644
--- 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
@@ -24,11 +24,11 @@ public class XlcLRUtilOldTests extends LRUtilOldTests {
public static TestSuite suite() {
return suite(XlcLRUtilOldTests.class);
}
-
+
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/XlcLRUtilTests.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/base/XlcLRUtilTests.java
index b0d9892e5e8..5026cd26895 100644
--- 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
@@ -24,11 +24,11 @@ public class XlcLRUtilTests extends LRUtilTests {
public static TestSuite suite() {
return suite(XlcLRUtilTests.class);
}
-
+
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/suite/AutomatedIntegrationSuite.java b/xlc/org.eclipse.cdt.core.lrparser.xlc.tests/src/org/eclipse/cdt/core/parser/xlc/tests/suite/AutomatedIntegrationSuite.java
index 3a3d517e251..280a4f4dde6 100644
--- 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
@@ -13,7 +13,6 @@
*******************************************************************************/
package org.eclipse.cdt.core.parser.xlc.tests.suite;
-
import junit.framework.Test;
import junit.framework.TestSuite;
@@ -23,9 +22,11 @@ import org.eclipse.cdt.core.parser.xlc.tests.base.XlcLRParserTestSuite;
public class AutomatedIntegrationSuite extends TestSuite {
public static Test suite() {
- return new TestSuite() {{
- addTest(XlcExtensionsTestSuite.suite());
- addTest(XlcLRParserTestSuite.suite());
- }};
+ return new TestSuite() {
+ {
+ addTest(XlcExtensionsTestSuite.suite());
+ addTest(XlcLRParserTestSuite.suite());
+ }
+ };
}
}
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
index 6d08023e11f..62573bcccc1 100644
--- 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
@@ -30,45 +30,45 @@ 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$
+ 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) {
+ 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 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);
+
+ return new XlcCParser(scanner, new XlcCTokenMap(supportVectors, supportDecimals), getBuiltinBindingsProvider(),
+ index, properties);
}
-
+
public String getId() {
return ID;
}
-
+
@Override
protected IScannerExtensionConfiguration getScannerExtensionConfiguration() {
return XlcCScannerExtensionConfiguration.getInstance();
}
-
@SuppressWarnings("rawtypes")
@Override
public Object getAdapter(Class adapter) {
- if(ICLanguageKeywords.class.equals(adapter))
+ if (ICLanguageKeywords.class.equals(adapter))
return 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
index 4bd28533394..3504a824e2e 100644
--- 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
@@ -33,70 +33,66 @@ 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$
+ 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) {
+ 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) {
+ 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) {
+ 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 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 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);
-
+ IDOMTokenMap tokenMap = new XlcCPPTokenMap(supportVectors, supportDecimals, supportComplex, supportRestrict,
+ supportStaticAssert);
+
XlcCPPParser parser = new XlcCPPParser(scanner, tokenMap, getBuiltinBindingsProvider(), index, properties);
return parser;
}
-
-
+
public String getId() {
return ID;
}
-
+
@Override
protected IScannerExtensionConfiguration getScannerExtensionConfiguration() {
return XlcCPPScannerExtensionConfiguration.getInstance();
}
-
-
+
@SuppressWarnings("rawtypes")
@Override
public Object getAdapter(Class adapter) {
- if(ICLanguageKeywords.class.equals(adapter))
+ if (ICLanguageKeywords.class.equals(adapter))
return 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
index 5ac1600eba8..632f5f4f1af 100644
--- 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
@@ -13,18 +13,17 @@
*******************************************************************************/
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() {}
-
+
+ private XlcCPPScannerExtensionConfiguration() {
+ }
+
public static synchronized XlcCPPScannerExtensionConfiguration getInstance() {
- if(instance == null)
+ if (instance == null)
instance = new XlcCPPScannerExtensionConfiguration();
return instance;
}
@@ -36,6 +35,6 @@ public class XlcCPPScannerExtensionConfiguration extends GPPScannerExtensionConf
@Override
public char[] supportAdditionalNumericLiteralSuffixes() {
- return "dflij".toCharArray(); //$NON-NLS-1$
- }
+ 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
index 57ddc607c41..fae72b3c1a2 100644
--- 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
@@ -23,180 +23,316 @@ 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);
+
+ public XlcCPPTokenMap(boolean supportVectors, boolean supportDecimalFloatingPoint, boolean supportComplex,
+ boolean supportRestrict, boolean supportStaticAssert) {
+ keywordMap = XlcKeywords.createCPP(supportVectors, supportDecimalFloatingPoint, supportComplex, supportRestrict,
+ supportStaticAssert);
}
-
-
+
public int getEOFTokenKind() {
return TK_EOF_TOKEN;
}
-
+
public int getEOCTokenKind() {
return TK_EndOfCompletion;
}
-
+
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;
+
+ 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
index e8a4472a32c..64e6d9974b8 100644
--- 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
@@ -18,12 +18,12 @@ import org.eclipse.cdt.core.dom.parser.c.GCCScannerExtensionConfiguration;
public class XlcCScannerExtensionConfiguration extends GCCScannerExtensionConfiguration {
private static XlcCScannerExtensionConfiguration instance;
-
-
- private XlcCScannerExtensionConfiguration() {}
-
+
+ private XlcCScannerExtensionConfiguration() {
+ }
+
public static synchronized XlcCScannerExtensionConfiguration getInstance() {
- if(instance == null)
+ if (instance == null)
instance = new XlcCScannerExtensionConfiguration();
return instance;
}
@@ -35,6 +35,6 @@ public class XlcCScannerExtensionConfiguration extends GCCScannerExtensionConfig
@Override
public char[] supportAdditionalNumericLiteralSuffixes() {
- return "dflij".toCharArray(); //$NON-NLS-1$
- }
+ 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
index 80012d1654c..9179ee616ee 100644
--- 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
@@ -23,146 +23,247 @@ 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);
}
-
-
+
public int getEOFTokenKind() {
return TK_EOF_TOKEN;
}
-
+
public int getEOCTokenKind() {
return TK_EndOfCompletion;
}
-
+
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;
+ 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
index 5ce477b5e21..b8227279d18 100644
--- 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
@@ -26,102 +26,98 @@ 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<Integer>();
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);
+ 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);
+ 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);
+ 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) {
+
+ 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);
+ 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);
+ 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);
+ 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) {
+ if (supportComplex) {
map.put("_Complex".toCharArray(), XlcCPPParsersym.TK__Complex);
}
- if(supportRestrict) {
+ 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) {
+
+ 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()
+ return lang.isCPP() ? XlcCPPScannerExtensionConfiguration.getInstance()
: XlcCScannerExtensionConfiguration.getInstance();
}
-
+
/**
- * Returns the LPG token kind for additional keywords defined by
+ * 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) {
+ if (allKeywords == null) {
ICLanguageKeywords base = new CLanguageKeywords(language, getConfig(language));
String[] baseKeywords = base.getKeywords();
-
+
List<String> keywords = new ArrayList<String>();
keywords.addAll(Arrays.asList(baseKeywords));
-
- for(char[] keyword : map.keys()) {
+
+ 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
index 835d675ce2c..19304d79492 100644
--- 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
@@ -27,9 +27,7 @@ public class XlcCBuildASTParserAction extends GCCBuildASTParserAction {
private IXlcCNodeFactory nodeFactory;
-
- public XlcCBuildASTParserAction(ITokenStream parser,
- ScopedStack<Object> astStack, IXlcCNodeFactory nodeFactory,
+ public XlcCBuildASTParserAction(ITokenStream parser, ScopedStack<Object> astStack, IXlcCNodeFactory nodeFactory,
ISecondaryParserFactory parserFactory) {
super(parser, astStack, nodeFactory, parserFactory);
this.nodeFactory = nodeFactory;
@@ -37,30 +35,30 @@ public class XlcCBuildASTParserAction extends GCCBuildASTParserAction {
/*
* vector_type
- * ::= <openscope-ast> sqlist_op 'vector' vector_type_specifier all_specifier_qualifier_list
+ * ::= <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 :
+
+ 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 :
+ case XlcCParsersym.TK_bool:
declSpec.setBool(true);
continue;
- case XlcCParsersym.TK_vector :
+ 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
index df9aa5fcc69..195ad3abf62 100644
--- 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
@@ -34,9 +34,7 @@ public class XlcCPPBuildASTParserAction extends GPPBuildASTParserAction {
private IXlcCPPNodeFactory nodeFactory;
private final ITokenMap tokenMap;
-
- public XlcCPPBuildASTParserAction(ITokenStream parser,
- ScopedStack<Object> astStack, IXlcCPPNodeFactory nodeFactory,
+ public XlcCPPBuildASTParserAction(ITokenStream parser, ScopedStack<Object> astStack, IXlcCPPNodeFactory nodeFactory,
ICPPSecondaryParserFactory parserFactory) {
super(parser, astStack, nodeFactory, parserFactory);
this.nodeFactory = nodeFactory;
@@ -45,67 +43,72 @@ public class XlcCPPBuildASTParserAction extends GPPBuildASTParserAction {
/*
* vector_type
- * ::= <openscope-ast> sqlist_op 'vector' vector_type_specifier all_specifier_qualifier_list
+ * ::= <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 :
+
+ 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 :
+ case XlcCPPParsersym.TK_vector:
continue;
}
}
-
+
setSpecifier(declSpec, specifier);
}
-
+
setOffsetAndLength(declSpec);
astStack.push(declSpec);
}
-
-
- public void consumeDirectDeclaratorModifiedArrayModifier(boolean isStatic,
- boolean isVarSized, boolean hasTypeQualifierList, boolean hasAssignmentExpr) {
+
+ 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)
+
+ 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;
+ 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
index 833e816fbbc..171ba54c8bd 100644
--- 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
@@ -18,7 +18,5 @@ 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
index fd4a76ca262..68a96369df1 100644
--- 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
@@ -18,11 +18,11 @@ 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/IXlcCPPASTModifiedArrayModifier.java b/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/ast/IXlcCPPASTModifiedArrayModifier.java
index 724773ea16c..f2e19a0a5fa 100644
--- 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
@@ -20,39 +20,38 @@ import org.eclipse.cdt.core.dom.ast.IASTArrayModifier;
*
*/
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
*/
@@ -60,7 +59,7 @@ public interface IXlcCPPASTModifiedArrayModifier extends IASTArrayModifier {
/**
* Set true/false that the volatile modifier is used.
- *
+ *
* @param value
* boolean
*/
@@ -68,7 +67,7 @@ public interface IXlcCPPASTModifiedArrayModifier extends IASTArrayModifier {
/**
* Set true/false that the restrict modifier is used.
- *
+ *
* @param value
* boolean
*/
@@ -76,7 +75,7 @@ public interface IXlcCPPASTModifiedArrayModifier extends IASTArrayModifier {
/**
* Set true/false that the static modifier is used.
- *
+ *
* @param value
* boolean
*/
@@ -84,19 +83,19 @@ public interface IXlcCPPASTModifiedArrayModifier extends IASTArrayModifier {
/**
* 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);
-
+
/**
*/
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
index df660ec071d..50cd9becaf0 100644
--- 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
@@ -7,7 +7,7 @@
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
- *
+ *
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
@@ -18,7 +18,7 @@ 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
index 998e64e1379..538fbbb32e8 100644
--- 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
@@ -7,7 +7,7 @@
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
- *
+ *
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
@@ -17,8 +17,8 @@ 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/XlcLanguagePreferences.java b/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/preferences/XlcLanguagePreferences.java
index 1956ff74ad1..6e7c610ad11 100644
--- 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
@@ -24,35 +24,30 @@ import org.osgi.service.prefs.Preferences;
/**
* TODO trigger the indexer?
- *
+ *
* @author Mike Kucera
*/
-public class XlcLanguagePreferences {
+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()) {
+
+ 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);
}
@@ -60,15 +55,14 @@ public class XlcLanguagePreferences {
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) {
@@ -76,31 +70,22 @@ public class XlcLanguagePreferences {
}
private static Preferences[] getPreferences(IProject project) {
- if(project == null) {
- return new Preferences[] {
- getWorkspacePreferences(),
- getDefaultPreferences()
- };
- }
- else {
- return new Preferences[] {
- getProjectPreferences(project),
- getWorkspacePreferences(),
- getDefaultPreferences()
- };
+ 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));
}
@@ -109,6 +94,4 @@ public class XlcLanguagePreferences {
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
index ccf1c582ae2..194532c185d 100644
--- 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
@@ -13,27 +13,18 @@
*******************************************************************************/
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");
+ 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/XlcCNodeFactory.java b/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/ast/XlcCNodeFactory.java
index d7023e1d74a..3da0095254c 100644
--- 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
@@ -21,7 +21,7 @@ import org.eclipse.cdt.internal.core.dom.parser.c.CNodeFactory;
public class XlcCNodeFactory extends CNodeFactory implements IXlcCNodeFactory {
private static final XlcCNodeFactory DEFAULT_INSTANCE = new XlcCNodeFactory();
-
+
public static XlcCNodeFactory getDefault() {
return DEFAULT_INSTANCE;
}
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
index 34b5a7e36f0..f6857b5f59f 100644
--- 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
@@ -21,10 +21,10 @@ import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTArrayModifier;
public class XlcCPPASTModifiedArrayModifier extends CPPASTArrayModifier implements IXlcCPPASTModifiedArrayModifier {
private boolean isVolatile;
- private boolean isRestrict;
- private boolean isStatic;
- private boolean isConst;
- private boolean varSized;
+ private boolean isRestrict;
+ private boolean isStatic;
+ private boolean isConst;
+ private boolean varSized;
public XlcCPPASTModifiedArrayModifier() {
}
@@ -49,50 +49,50 @@ public class XlcCPPASTModifiedArrayModifier extends CPPASTArrayModifier implemen
copy.varSized = varSized;
return copy(copy, style);
}
-
+
public boolean isConst() {
- return isConst;
- }
-
- public boolean isStatic() {
- return isStatic;
- }
-
- public boolean isRestrict() {
- return isRestrict;
- }
-
- public boolean isVolatile() {
- return isVolatile;
- }
-
- public void setConst(boolean value) {
- assertNotFrozen();
- this.isConst = value;
- }
-
- public void setVolatile(boolean value) {
- assertNotFrozen();
- this.isVolatile = value;
- }
-
- public void setRestrict(boolean value) {
- assertNotFrozen();
- this.isRestrict = value;
- }
-
- public void setStatic(boolean value) {
- assertNotFrozen();
- this.isStatic = value;
- }
-
- public boolean isVariableSized() {
- return varSized;
- }
-
- public void setVariableSized(boolean value) {
- assertNotFrozen();
- varSized = value;
- }
+ return isConst;
+ }
+
+ public boolean isStatic() {
+ return isStatic;
+ }
+
+ public boolean isRestrict() {
+ return isRestrict;
+ }
+
+ public boolean isVolatile() {
+ return isVolatile;
+ }
+
+ public void setConst(boolean value) {
+ assertNotFrozen();
+ this.isConst = value;
+ }
+
+ public void setVolatile(boolean value) {
+ assertNotFrozen();
+ this.isVolatile = value;
+ }
+
+ public void setRestrict(boolean value) {
+ assertNotFrozen();
+ this.isRestrict = value;
+ }
+
+ public void setStatic(boolean value) {
+ assertNotFrozen();
+ this.isStatic = value;
+ }
+
+ public boolean isVariableSized() {
+ return varSized;
+ }
+
+ 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
index 438d5e63ef9..3da2bbc8393 100644
--- 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
@@ -44,5 +44,5 @@ public class XlcCPPASTVectorTypeSpecifier extends CPPASTSimpleDeclSpecifier impl
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
index 3f998f42463..0be792d68ae 100644
--- 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
@@ -21,17 +21,17 @@ 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();
-
+
+ private static final XlcCPPNodeFactory DEFAULT_INSTANCE = new XlcCPPNodeFactory();
+
public static XlcCPPNodeFactory getDefault() {
return DEFAULT_INSTANCE;
}
-
+
public IXlcCPPASTVectorTypeSpecifier newVectorTypeSpecifier() {
return new XlcCPPASTVectorTypeSpecifier();
}
-
+
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
index 856ac8b1635..5676192e0cd 100644
--- 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
@@ -38,1405 +38,1808 @@ import org.eclipse.cdt.core.dom.lrparser.action.gnu.GCCSecondaryParserFactory;
import org.eclipse.cdt.core.lrparser.xlc.action.XlcCBuildASTParserAction;
import org.eclipse.cdt.internal.core.lrparser.xlc.ast.XlcCNodeFactory;
-public class XlcCParser extends PrsStream implements RuleAction, ITokenStream,
- ITokenCollector, IParser< IASTTranslationUnit >
-
+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(); }
- 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 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]));
- }
- }
-
- 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 (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 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 static ParseTable prs = new XlcCParserprs();
+ private FixedBacktrackingParser btParser;
-private void initActions(Map<String,String> properties) {
- ScopedStack<Object> astStack = new ScopedStack<Object>();
-
- action = new XlcCBuildASTParserAction (this, astStack, XlcCNodeFactory.getDefault() , GCCSecondaryParserFactory.getDefault() );
- action.setParserProperties(properties);
-
-
+ public FixedBacktrackingParser getParser() {
+ return btParser;
+ }
- gnuAction = new GNUBuildASTParserAction (this, astStack, XlcCNodeFactory.getDefault() );
- gnuAction.setParserProperties(properties);
+ 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 void addToken(IToken token) {
- token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called?
- super.addToken(token);
-}
+ public IToken getRhsIToken(int i) {
+ return super.getIToken(getRhsTokenIndex(i));
+ }
+ public int getRhsFirstTokenIndex(int i) {
+ return btParser.getFirstToken(i);
+ }
-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
+ public IToken getRhsFirstIToken(int i) {
+ return super.getIToken(getRhsFirstTokenIndex(i));
+ }
- compNode = action.getASTCompletionNode(); // the completion node may be null
- return ( IASTTranslationUnit ) action.getParseResult();
-}
+ public int getRhsLastTokenIndex(int i) {
+ return btParser.getLastToken(i);
+ }
+ public IToken getRhsLastIToken(int i) {
+ return super.getIToken(getRhsLastTokenIndex(i));
+ }
-public IASTCompletionNode getCompletionNode() {
- return compNode;
-}
+ public int getLeftSpan() {
+ return btParser.getFirstToken();
+ }
-// uncomment this method to use with backtracking parser
-public List<IToken> getRuleTokens() {
- return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
-}
+ public IToken getLeftIToken() {
+ return super.getIToken(getLeftSpan());
+ }
-public String[] getOrderedTerminalSymbols() {
- return XlcCParsersym.orderedTerminalSymbols;
-}
+ public int getRightSpan() {
+ return btParser.getLastToken();
+ }
-@SuppressWarnings("nls")
-public String getName() {
- return "XlcCParser";
-}
+ 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);
+ }
-private GNUBuildASTParserAction gnuAction;
-
- 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;
- }
-}
+ 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]));
+ }
+ }
+
+ 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 (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 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<Object>();
+
+ action = new XlcCBuildASTParserAction(this, astStack, XlcCNodeFactory.getDefault(),
+ GCCSecondaryParserFactory.getDefault());
+ action.setParserProperties(properties);
+
+ gnuAction = new GNUBuildASTParserAction(this, astStack, XlcCNodeFactory.getDefault());
+ gnuAction.setParserProperties(properties);
+
+ }
+
+ public void addToken(IToken token) {
+ token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called?
+ super.addToken(token);
+ }
+
+ 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();
+ }
+
+ 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 XlcCParsersym.orderedTerminalSymbols;
+ }
+
+ @SuppressWarnings("nls")
+ public String getName() {
+ return "XlcCParser";
+ }
+
+ private GNUBuildASTParserAction gnuAction;
+
+ 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
index 1608857eff1..2b3cdd11a3c 100644
--- 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
@@ -18,2156 +18,1081 @@ 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;
- public final int baseCheck(int index) { return baseCheck[index]; }
- public final static short rhs[] = baseCheck;
- 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;
- public final int baseAction(int index) { return baseAction[index]; }
- public final static char lhs[] = baseAction;
- 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;
- 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;
- 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;
- 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;
- 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;
- 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;
- 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;
- 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;
- 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;
- 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;
- 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;
- 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;
- 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;
- 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;
- 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;
- 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;
- 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;
- 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;
-
- public final int getErrorSymbol() { return ERROR_SYMBOL; }
- public final int getScopeUbound() { return SCOPE_UBOUND; }
- public final int getScopeSize() { return SCOPE_SIZE; }
- 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;
-
- public final int getNumStates() { return NUM_STATES; }
- public final int getNtOffset() { return NT_OFFSET; }
- public final int getLaStateOffset() { return LA_STATE_OFFSET; }
- public final int getMaxLa() { return MAX_LA; }
- public final int getNumRules() { return NUM_RULES; }
- public final int getNumNonterminals() { return NUM_NONTERMINALS; }
- public final int getNumSymbols() { return NUM_SYMBOLS; }
- public final int getSegmentSize() { return SEGMENT_SIZE; }
- public final int getStartState() { return START_STATE; }
- public final int getStartSymbol() { return lhs[0]; }
- public final int getIdentifierSymbol() { return IDENTIFIER_SYMBOL; }
- public final int getEoftSymbol() { return EOFT_SYMBOL; }
- public final int getEoltSymbol() { return EOLT_SYMBOL; }
- public final int getAcceptAction() { return ACCEPT_ACTION; }
- public final int getErrorAction() { return ERROR_ACTION; }
- public final boolean isValidForParser() { return isValidForParser; }
- public final boolean getBacktrack() { return BACKTRACK; }
-
- public final int originalState(int state) {
- return -baseCheck[state];
- }
- public final int asi(int state) {
- return asb[originalState(state)];
- }
- public final int nasi(int state) {
- return nasb[originalState(state)];
- }
- public final int inSymbol(int state) {
- return inSymb[originalState(state)];
- }
-
- public final int ntAction(int state, int sym) {
- return baseAction[state + sym];
- }
-
- public final int tAction(int state, int sym) {
- int i = baseAction[state],
- k = i + sym;
- return termAction[termCheck[k] == sym ? k : i];
- }
- public final int lookAhead(int la_state, int sym) {
- int k = la_state + sym;
- return termAction[termCheck[k] == sym ? k : la_state];
- }
+ 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;
+
+ public final int baseCheck(int index) {
+ return baseCheck[index];
+ }
+
+ public final static short rhs[] = baseCheck;
+
+ 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;
+
+ public final int baseAction(int index) {
+ return baseAction[index];
+ }
+
+ public final static char lhs[] = baseAction;
+
+ 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;
+
+ 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;
+
+ 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;
+
+ 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;
+
+ 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;
+
+ 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;
+
+ 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;
+
+ 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;
+
+ 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;
+
+ 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;
+
+ 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;
+
+ 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;
+
+ 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;
+
+ 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;
+
+ 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;
+
+ 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;
+
+ 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;
+
+ 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;
+
+ public final int getErrorSymbol() {
+ return ERROR_SYMBOL;
+ }
+
+ public final int getScopeUbound() {
+ return SCOPE_UBOUND;
+ }
+
+ public final int getScopeSize() {
+ return SCOPE_SIZE;
+ }
+
+ 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;
+
+ public final int getNumStates() {
+ return NUM_STATES;
+ }
+
+ public final int getNtOffset() {
+ return NT_OFFSET;
+ }
+
+ public final int getLaStateOffset() {
+ return LA_STATE_OFFSET;
+ }
+
+ public final int getMaxLa() {
+ return MAX_LA;
+ }
+
+ public final int getNumRules() {
+ return NUM_RULES;
+ }
+
+ public final int getNumNonterminals() {
+ return NUM_NONTERMINALS;
+ }
+
+ public final int getNumSymbols() {
+ return NUM_SYMBOLS;
+ }
+
+ public final int getSegmentSize() {
+ return SEGMENT_SIZE;
+ }
+
+ public final int getStartState() {
+ return START_STATE;
+ }
+
+ public final int getStartSymbol() {
+ return lhs[0];
+ }
+
+ public final int getIdentifierSymbol() {
+ return IDENTIFIER_SYMBOL;
+ }
+
+ public final int getEoftSymbol() {
+ return EOFT_SYMBOL;
+ }
+
+ public final int getEoltSymbol() {
+ return EOLT_SYMBOL;
+ }
+
+ public final int getAcceptAction() {
+ return ACCEPT_ACTION;
+ }
+
+ public final int getErrorAction() {
+ return ERROR_ACTION;
+ }
+
+ public final boolean isValidForParser() {
+ return isValidForParser;
+ }
+
+ public final boolean getBacktrack() {
+ return BACKTRACK;
+ }
+
+ public final int originalState(int state) {
+ return -baseCheck[state];
+ }
+
+ public final int asi(int state) {
+ return asb[originalState(state)];
+ }
+
+ public final int nasi(int state) {
+ return nasb[originalState(state)];
+ }
+
+ public final int inSymbol(int state) {
+ return inSymb[originalState(state)];
+ }
+
+ public final int ntAction(int state, int sym) {
+ return baseAction[state + sym];
+ }
+
+ public final int tAction(int state, int sym) {
+ int i = baseAction[state], k = i + sym;
+ return termAction[termCheck[k] == sym ? k : i];
+ }
+
+ 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
index d2577f43250..9b4cb97baa0 100644
--- 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
@@ -17,225 +17,38 @@
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 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 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;
+ 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
index ff01c3ebd3d..6c0a202894c 100644
--- 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
@@ -41,2341 +41,3056 @@ import org.eclipse.cdt.core.dom.ast.gnu.cpp.*;
import org.eclipse.cdt.core.lrparser.xlc.action.XlcCPPBuildASTParserAction;
import org.eclipse.cdt.internal.core.lrparser.xlc.ast.XlcCPPNodeFactory;
-public class XlcCPPParser extends PrsStream implements RuleAction, ITokenStream,
- ITokenCollector, IParser< IASTTranslationUnit >
-
+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(); }
- 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 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]));
- }
- }
-
- 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 (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 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 static ParseTable prs = new XlcCPPParserprs();
+ private FixedBacktrackingParser btParser;
-private void initActions(Map<String,String> properties) {
- ScopedStack<Object> astStack = new ScopedStack<Object>();
-
- action = new XlcCPPBuildASTParserAction (this, astStack, XlcCPPNodeFactory.getDefault() , GPPSecondaryParserFactory.getDefault() );
- action.setParserProperties(properties);
-
-
+ public FixedBacktrackingParser getParser() {
+ return btParser;
+ }
- gnuAction = new GNUBuildASTParserAction (this, astStack, XlcCPPNodeFactory.getDefault() );
- gnuAction.setParserProperties(properties);
+ 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 void addToken(IToken token) {
- token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called?
- super.addToken(token);
-}
+ public IToken getRhsIToken(int i) {
+ return super.getIToken(getRhsTokenIndex(i));
+ }
+ public int getRhsFirstTokenIndex(int i) {
+ return btParser.getFirstToken(i);
+ }
-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
+ public IToken getRhsFirstIToken(int i) {
+ return super.getIToken(getRhsFirstTokenIndex(i));
+ }
- compNode = action.getASTCompletionNode(); // the completion node may be null
- return ( IASTTranslationUnit ) action.getParseResult();
-}
+ public int getRhsLastTokenIndex(int i) {
+ return btParser.getLastToken(i);
+ }
+ public IToken getRhsLastIToken(int i) {
+ return super.getIToken(getRhsLastTokenIndex(i));
+ }
-public IASTCompletionNode getCompletionNode() {
- return compNode;
-}
+ public int getLeftSpan() {
+ return btParser.getFirstToken();
+ }
-// uncomment this method to use with backtracking parser
-public List<IToken> getRuleTokens() {
- return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
-}
+ public IToken getLeftIToken() {
+ return super.getIToken(getLeftSpan());
+ }
-public String[] getOrderedTerminalSymbols() {
- return XlcCPPParsersym.orderedTerminalSymbols;
-}
+ public int getRightSpan() {
+ return btParser.getLastToken();
+ }
-@SuppressWarnings("nls")
-public String getName() {
- return "XlcCPPParser";
-}
+ 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);
+ }
-private GNUBuildASTParserAction gnuAction;
-
- 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;
- }
-}
+ 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]));
+ }
+ }
+
+ 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 (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 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<Object>();
+
+ action = new XlcCPPBuildASTParserAction(this, astStack, XlcCPPNodeFactory.getDefault(),
+ GPPSecondaryParserFactory.getDefault());
+ action.setParserProperties(properties);
+
+ gnuAction = new GNUBuildASTParserAction(this, astStack, XlcCPPNodeFactory.getDefault());
+ gnuAction.setParserProperties(properties);
+
+ }
+
+ public void addToken(IToken token) {
+ token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called?
+ super.addToken(token);
+ }
+
+ 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();
+ }
+
+ 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 XlcCPPParsersym.orderedTerminalSymbols;
+ }
+
+ @SuppressWarnings("nls")
+ public String getName() {
+ return "XlcCPPParser";
+ }
+
+ private GNUBuildASTParserAction gnuAction;
+
+ 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
index c1989d0224a..2182dbd1aa4 100644
--- 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
@@ -18,4396 +18,2045 @@ 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 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 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,