Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/.classpath7
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/.project28
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/.settings/org.eclipse.jdt.core.prefs65
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/META-INF/MANIFEST.MF16
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/about.html24
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/build.properties17
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/plugin.properties15
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCCSpecTests.java31
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCCommentTests.java23
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCCompleteParser2Tests.java24
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCCompletionBasicTest.java26
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCCompletionParseTest.java26
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCDOMLocationInclusionTests.java30
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCDOMLocationMacroTests.java26
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCDOMLocationTests.java30
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCDOMPreprocessorInformationTest.java24
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCDigraphTrigraphTests.java27
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCGCCTests.java31
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCKnRTests.java27
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCLanguageExtensionTests.java547
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCParserTestSuite.java40
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCSelectionParseTest.java27
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCTaskParserTest.java24
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCTests.java37
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCUtilOldTests.java24
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCUtilTests.java24
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/META-INF/MANIFEST.MF2
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/build.properties15
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/grammar/build.xml32
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCExpressionParser.g2
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCGrammarExtensions.g12
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCNoCastExpressionParser.g2
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCParser.g2
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCSizeofExpressionParser.g10
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/plugin.properties16
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/plugin.xml3
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/DOMToUPCTokenMap.java18
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/IUPCNodeFactory.java54
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCASTNodeFactory.java53
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCKeyword.java58
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCLanguageKeywords.java32
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCParserAction.java39
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCSecondaryParserFactory.java44
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/UPCLanguage.java76
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTCompositeTypeSpecifier.java14
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTDeclSpecifier.java15
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTElaboratedTypeSpecifier.java15
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTEnumerationSpecifier.java15
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTForallStatement.java15
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTKeywordExpression.java15
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTLayoutQualifier.java15
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTSimpleDeclSpecifier.java15
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTSynchronizationStatement.java16
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTTypeIdSizeofExpression.java2
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTTypedefNameSpecifier.java16
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTUnarySizeofExpression.java1
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParser.java946
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParserprs.java1621
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParsersym.java124
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParser.java942
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParserprs.java1553
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParsersym.java116
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParser.java957
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParserprs.java2661
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParsersym.java42
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParser.java930
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParserprs.java1524
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParsersym.java124
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTCompositeTypeSpecifier.java19
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTElaboratedTypeSpecifier.java16
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTEnumerationSpecifier.java18
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTForallStatement.java17
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTKeywordExpression.java24
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTLayoutQualifier.java18
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTSimpleDeclSpecifier.java15
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTSynchronizationStatement.java19
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTTypeIdSizeofExpression.java1
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTTypedefNameSpecifier.java24
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTUnarySizeofExpression.java1
79 files changed, 7457 insertions, 6099 deletions
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/.classpath b/upc/org.eclipse.cdt.core.parser.upc.tests/.classpath
new file mode 100644
index 0000000000..64c5e31b7a
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/.project b/upc/org.eclipse.cdt.core.parser.upc.tests/.project
new file mode 100644
index 0000000000..5ccd5d6305
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.cdt.core.parser.upc.tests</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/.settings/org.eclipse.jdt.core.prefs b/upc/org.eclipse.cdt.core.parser.upc.tests/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000000..f88f26df75
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,65 @@
+#Fri Apr 25 15:24:03 EDT 2008
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=error
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/META-INF/MANIFEST.MF b/upc/org.eclipse.cdt.core.parser.upc.tests/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000..50fb978bbb
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,16 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %Bundle-Name.0
+Bundle-SymbolicName: org.eclipse.cdt.core.parser.upc.tests
+Bundle-Version: 5.1.0.qualifier
+Require-Bundle: org.eclipse.core.runtime,
+ org.junit,
+ org.eclipse.cdt.core.tests,
+ org.eclipse.cdt.core,
+ org.eclipse.core.resources,
+ org.eclipse.cdt.core.parser.upc,
+ org.eclipse.cdt.core.lrparser;bundle-version="4.0.1",
+ org.eclipse.cdt.core.lrparser.tests;bundle-version="4.0.0"
+Bundle-Vendor: %Bundle-Vendor.0
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/about.html b/upc/org.eclipse.cdt.core.parser.upc.tests/about.html
new file mode 100644
index 0000000000..9b669c2fd0
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/about.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>About</title></head>
+
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>February 8, 2007</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, "Program" will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party ("Redistributor") and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body></html> \ No newline at end of file
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/build.properties b/upc/org.eclipse.cdt.core.parser.upc.tests/build.properties
new file mode 100644
index 0000000000..417826ea2a
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/build.properties
@@ -0,0 +1,17 @@
+###############################################################################
+# Copyright (c) 2007, 2009 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# IBM Corporation - initial API and implementation
+###############################################################################
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ about.html,\
+ plugin.properties
+src.includes = about.html
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/plugin.properties b/upc/org.eclipse.cdt.core.parser.upc.tests/plugin.properties
new file mode 100644
index 0000000000..3d52fe6fe9
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/plugin.properties
@@ -0,0 +1,15 @@
+###############################################################################
+# Copyright (c) 2007, 2009 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# IBM Corporation - initial API and implementation
+###############################################################################
+# properties file for org.eclipse.cdt.core.parser.c99.tests
+Bundle-Vendor.0 = Eclipse CDT
+Bundle-Name.0 = C99 Parser Tests Plug-in
+
+upcSourceName=UPC Source File \ No newline at end of file
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCCSpecTests.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCCSpecTests.java
new file mode 100644
index 0000000000..54f87b22b0
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCCSpecTests.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.cdt.core.parser.upc.tests;
+
+import org.eclipse.cdt.core.dom.upc.UPCLanguage;
+import org.eclipse.cdt.core.lrparser.tests.LRCSpecTests;
+import org.eclipse.cdt.core.model.ILanguage;
+
+public class UPCCSpecTests extends LRCSpecTests {
+
+ public UPCCSpecTests() {
+ }
+
+ public UPCCSpecTests(String name) {
+ super(name);
+ }
+
+ @Override
+ protected ILanguage getCLanguage() {
+ return UPCLanguage.getDefault();
+ }
+
+}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCCommentTests.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCCommentTests.java
new file mode 100644
index 0000000000..f75c751f2e
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCCommentTests.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.cdt.core.parser.upc.tests;
+
+import org.eclipse.cdt.core.dom.upc.UPCLanguage;
+import org.eclipse.cdt.core.lrparser.tests.LRCommentTests;
+import org.eclipse.cdt.core.model.ILanguage;
+
+public class UPCCommentTests extends LRCommentTests {
+
+ @Override
+ protected ILanguage getCLanguage() {
+ return UPCLanguage.getDefault();
+ }
+}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCCompleteParser2Tests.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCCompleteParser2Tests.java
new file mode 100644
index 0000000000..7239e1bde7
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCCompleteParser2Tests.java
@@ -0,0 +1,24 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.cdt.core.parser.upc.tests;
+
+import org.eclipse.cdt.core.dom.upc.UPCLanguage;
+import org.eclipse.cdt.core.lrparser.tests.LRCompleteParser2Tests;
+import org.eclipse.cdt.core.model.ILanguage;
+
+public class UPCCompleteParser2Tests extends LRCompleteParser2Tests {
+
+ @Override
+ protected ILanguage getCLanguage() {
+ return UPCLanguage.getDefault();
+ }
+
+}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCCompletionBasicTest.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCCompletionBasicTest.java
new file mode 100644
index 0000000000..11dcc96bae
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCCompletionBasicTest.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.cdt.core.parser.upc.tests;
+
+import org.eclipse.cdt.core.dom.upc.UPCLanguage;
+import org.eclipse.cdt.core.lrparser.tests.LRCompletionBasicTest;
+import org.eclipse.cdt.core.model.ILanguage;
+
+public class UPCCompletionBasicTest extends LRCompletionBasicTest {
+
+ public UPCCompletionBasicTest() { }
+
+ @Override
+ protected ILanguage getCLanguage() {
+ return UPCLanguage.getDefault();
+ }
+
+} \ No newline at end of file
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCCompletionParseTest.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCCompletionParseTest.java
new file mode 100644
index 0000000000..8d3d31144e
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCCompletionParseTest.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.cdt.core.parser.upc.tests;
+
+import org.eclipse.cdt.core.dom.upc.UPCLanguage;
+import org.eclipse.cdt.core.lrparser.tests.LRCompletionParseTest;
+import org.eclipse.cdt.core.model.ILanguage;
+
+public class UPCCompletionParseTest extends LRCompletionParseTest {
+
+ public UPCCompletionParseTest() { }
+ public UPCCompletionParseTest(String name) { super(name); }
+
+ @Override
+ protected ILanguage getCLanguage() {
+ return UPCLanguage.getDefault();
+ }
+}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCDOMLocationInclusionTests.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCDOMLocationInclusionTests.java
new file mode 100644
index 0000000000..43d8a893b5
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCDOMLocationInclusionTests.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.cdt.core.parser.upc.tests;
+
+import org.eclipse.cdt.core.dom.upc.UPCLanguage;
+import org.eclipse.cdt.core.lrparser.tests.LRDOMLocationInclusionTests;
+import org.eclipse.cdt.core.model.ILanguage;
+
+public class UPCDOMLocationInclusionTests extends LRDOMLocationInclusionTests {
+
+ public UPCDOMLocationInclusionTests() {
+ }
+
+ public UPCDOMLocationInclusionTests(String name) {
+ super(name);
+ }
+
+ @Override
+ protected ILanguage getCLanguage() {
+ return UPCLanguage.getDefault();
+ }
+}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCDOMLocationMacroTests.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCDOMLocationMacroTests.java
new file mode 100644
index 0000000000..dbe5cc55c3
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCDOMLocationMacroTests.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.cdt.core.parser.upc.tests;
+
+import org.eclipse.cdt.core.dom.upc.UPCLanguage;
+import org.eclipse.cdt.core.lrparser.tests.LRDOMLocationMacroTests;
+import org.eclipse.cdt.core.model.ILanguage;
+
+public class UPCDOMLocationMacroTests extends LRDOMLocationMacroTests {
+
+ public UPCDOMLocationMacroTests() {
+ }
+
+ @Override
+ protected ILanguage getCLanguage() {
+ return UPCLanguage.getDefault();
+ }
+}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCDOMLocationTests.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCDOMLocationTests.java
new file mode 100644
index 0000000000..dba207d419
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCDOMLocationTests.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.cdt.core.parser.upc.tests;
+
+import org.eclipse.cdt.core.dom.upc.UPCLanguage;
+import org.eclipse.cdt.core.lrparser.tests.LRDOMLocationTests;
+import org.eclipse.cdt.core.model.ILanguage;
+
+public class UPCDOMLocationTests extends LRDOMLocationTests {
+
+ public UPCDOMLocationTests() {
+ }
+
+ public UPCDOMLocationTests(String name) {
+ super(name);
+ }
+
+ @Override
+ protected ILanguage getCLanguage() {
+ return UPCLanguage.getDefault();
+ }
+}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCDOMPreprocessorInformationTest.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCDOMPreprocessorInformationTest.java
new file mode 100644
index 0000000000..e5e6fd3f85
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCDOMPreprocessorInformationTest.java
@@ -0,0 +1,24 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.cdt.core.parser.upc.tests;
+
+import org.eclipse.cdt.core.dom.upc.UPCLanguage;
+import org.eclipse.cdt.core.lrparser.tests.LRDOMPreprocessorInformationTest;
+import org.eclipse.cdt.core.model.ILanguage;
+
+public class UPCDOMPreprocessorInformationTest extends LRDOMPreprocessorInformationTest {
+
+ @Override
+ protected ILanguage getCLanguage() {
+ return UPCLanguage.getDefault();
+ }
+
+}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCDigraphTrigraphTests.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCDigraphTrigraphTests.java
new file mode 100644
index 0000000000..990f5b15eb
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCDigraphTrigraphTests.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.cdt.core.parser.upc.tests;
+
+import org.eclipse.cdt.core.dom.upc.UPCLanguage;
+import org.eclipse.cdt.core.lrparser.tests.LRDigraphTrigraphTests;
+import org.eclipse.cdt.core.model.ILanguage;
+
+
+public class UPCDigraphTrigraphTests extends LRDigraphTrigraphTests {
+
+ public UPCDigraphTrigraphTests() { }
+ public UPCDigraphTrigraphTests(String name) { super(name); }
+
+ @Override
+ protected ILanguage getCLanguage() {
+ return UPCLanguage.getDefault();
+ }
+}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCGCCTests.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCGCCTests.java
new file mode 100644
index 0000000000..12ec9c91b8
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCGCCTests.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.cdt.core.parser.upc.tests;
+
+import org.eclipse.cdt.core.dom.upc.UPCLanguage;
+import org.eclipse.cdt.core.lrparser.tests.LRGCCTests;
+import org.eclipse.cdt.core.model.ILanguage;
+
+public class UPCGCCTests extends LRGCCTests {
+
+ public UPCGCCTests() {
+ }
+
+ public UPCGCCTests(String message) {
+ super(message);
+ }
+
+ @Override
+ protected ILanguage getCLanguage() {
+ return UPCLanguage.getDefault();
+ }
+
+}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCKnRTests.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCKnRTests.java
new file mode 100644
index 0000000000..93cfb62245
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCKnRTests.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.cdt.core.parser.upc.tests;
+
+import org.eclipse.cdt.core.dom.upc.UPCLanguage;
+import org.eclipse.cdt.core.lrparser.tests.LRKnRTests;
+import org.eclipse.cdt.core.model.ILanguage;
+
+public class UPCKnRTests extends LRKnRTests {
+
+ public UPCKnRTests() {
+ }
+
+ @Override
+ protected ILanguage getCLanguage() {
+ return UPCLanguage.getDefault();
+ }
+
+}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCLanguageExtensionTests.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCLanguageExtensionTests.java
new file mode 100644
index 0000000000..1dd4c898a6
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCLanguageExtensionTests.java
@@ -0,0 +1,547 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.cdt.core.parser.upc.tests;
+
+import junit.framework.TestCase;
+
+import org.eclipse.cdt.core.dom.ast.IASTArrayDeclarator;
+import org.eclipse.cdt.core.dom.ast.IASTArrayModifier;
+import org.eclipse.cdt.core.dom.ast.IASTArraySubscriptExpression;
+import org.eclipse.cdt.core.dom.ast.IASTBinaryExpression;
+import org.eclipse.cdt.core.dom.ast.IASTCompoundStatement;
+import org.eclipse.cdt.core.dom.ast.IASTDeclaration;
+import org.eclipse.cdt.core.dom.ast.IASTDeclarationStatement;
+import org.eclipse.cdt.core.dom.ast.IASTDeclarator;
+import org.eclipse.cdt.core.dom.ast.IASTExpressionStatement;
+import org.eclipse.cdt.core.dom.ast.IASTFunctionDefinition;
+import org.eclipse.cdt.core.dom.ast.IASTIdExpression;
+import org.eclipse.cdt.core.dom.ast.IASTLiteralExpression;
+import org.eclipse.cdt.core.dom.ast.IASTName;
+import org.eclipse.cdt.core.dom.ast.IASTSimpleDeclSpecifier;
+import org.eclipse.cdt.core.dom.ast.IASTSimpleDeclaration;
+import org.eclipse.cdt.core.dom.ast.IASTStatement;
+import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
+import org.eclipse.cdt.core.dom.ast.IASTTypeIdExpression;
+import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression;
+import org.eclipse.cdt.core.dom.ast.IScope;
+import org.eclipse.cdt.core.dom.ast.IVariable;
+import org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage;
+import org.eclipse.cdt.core.dom.upc.UPCLanguage;
+import org.eclipse.cdt.core.dom.upc.ast.IUPCASTDeclSpecifier;
+import org.eclipse.cdt.core.dom.upc.ast.IUPCASTForallStatement;
+import org.eclipse.cdt.core.dom.upc.ast.IUPCASTKeywordExpression;
+import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSimpleDeclSpecifier;
+import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSynchronizationStatement;
+import org.eclipse.cdt.core.dom.upc.ast.IUPCASTTypeIdSizeofExpression;
+import org.eclipse.cdt.core.dom.upc.ast.IUPCASTUnarySizeofExpression;
+import org.eclipse.cdt.core.lrparser.tests.ParseHelper;
+
+@SuppressWarnings("nls")
+public class UPCLanguageExtensionTests extends TestCase {
+
+ public UPCLanguageExtensionTests() {
+ }
+
+ public UPCLanguageExtensionTests(String name) {
+ super(name);
+ }
+
+
+ protected BaseExtensibleLanguage getLanguage() {
+ return UPCLanguage.getDefault();
+ }
+
+ // test problem-free parsing of UPC constructs (maily declarations)
+ // test the AST is correct
+ // test that binding resolution works
+
+ private IASTTranslationUnit parseAndCheckBindings(String code) {
+ ParseHelper.Options options = new ParseHelper.Options();
+ options.setCheckSyntaxProblems(true);
+ options.setCheckPreprocessorProblems(true);
+ options.setCheckBindings(true);
+ return ParseHelper.parse(code, getLanguage(), options );
+ }
+
+
+ private IASTTranslationUnit parse(String code) {
+ ParseHelper.Options options = new ParseHelper.Options();
+ options.setCheckSyntaxProblems(true);
+ options.setCheckPreprocessorProblems(true);
+ options.setCheckBindings(false);
+ return ParseHelper.parse(code, getLanguage(), options);
+ }
+
+
+
+ public void testUPCSharedDeclarations1() throws Exception {
+ String code =
+ "shared int a [100+THREADS];\n" +
+ "shared [] int b [THREADS];\n" +
+ "shared [90] int c [10];\n" +
+ "shared [*] int d [];\n" +
+ "relaxed int x;" +
+ "strict int y;";
+
+ IASTTranslationUnit tu = parseAndCheckBindings(code);
+ IScope globalScope = tu.getScope();
+ assertNotNull(globalScope);
+
+ IASTDeclaration[] declarations = tu.getDeclarations();
+ assertNotNull(declarations);
+ assertEquals(6, declarations.length);
+
+ // shared int a [100+THREADS];
+ IASTSimpleDeclaration decl_a = (IASTSimpleDeclaration) declarations[0];
+ IUPCASTSimpleDeclSpecifier declspec_a = (IUPCASTSimpleDeclSpecifier) decl_a.getDeclSpecifier();
+ assertEquals(IUPCASTDeclSpecifier.rt_unspecified, declspec_a.getReferenceType());
+ assertEquals(IUPCASTDeclSpecifier.sh_shared_default_block_size, declspec_a.getSharedQualifier());
+ assertEquals(IASTSimpleDeclSpecifier.t_int, declspec_a.getType());
+ assertNull(declspec_a.getBlockSizeExpression());
+ IASTDeclarator[] declarators = decl_a.getDeclarators();
+ assertNotNull(declarators);
+ assertEquals(1, declarators.length);
+ IASTArrayDeclarator declarator_a = (IASTArrayDeclarator) declarators[0];
+ IASTName name_a = declarator_a.getName();
+ assertEquals("a", name_a.toString());
+ IASTArrayModifier[] array_modifiers = declarator_a.getArrayModifiers();
+ assertNotNull(array_modifiers);
+ assertEquals(1, array_modifiers.length);
+ IASTBinaryExpression expr = (IASTBinaryExpression) array_modifiers[0].getConstantExpression();
+ IUPCASTKeywordExpression threads = (IUPCASTKeywordExpression) expr.getOperand2();
+ assertEquals(IUPCASTKeywordExpression.kw_threads, threads.getKeywordKind());
+
+ // shared [] int b [THREADS];
+ IASTSimpleDeclaration decl_b = (IASTSimpleDeclaration) declarations[1];
+ IUPCASTSimpleDeclSpecifier declspec_b = (IUPCASTSimpleDeclSpecifier) decl_b.getDeclSpecifier();
+ assertEquals(IUPCASTDeclSpecifier.rt_unspecified, declspec_b.getReferenceType());
+ assertEquals(IUPCASTDeclSpecifier.sh_shared_indefinite_allocation, declspec_b.getSharedQualifier());
+ assertEquals(IASTSimpleDeclSpecifier.t_int, declspec_b.getType());
+ assertNull(declspec_b.getBlockSizeExpression());
+ declarators = decl_b.getDeclarators();
+ assertNotNull(declarators);
+ assertEquals(1, declarators.length);
+ IASTArrayDeclarator declarator_b = (IASTArrayDeclarator) declarators[0];
+ IASTName name_b = declarator_b.getName();
+ assertEquals("b", name_b.toString());
+ array_modifiers = declarator_b.getArrayModifiers();
+ assertNotNull(array_modifiers);
+ assertEquals(1, array_modifiers.length);
+ threads = (IUPCASTKeywordExpression) array_modifiers[0].getConstantExpression();
+ assertEquals(IUPCASTKeywordExpression.kw_threads, threads.getKeywordKind());
+
+ // shared [90] int c [10];
+ IASTSimpleDeclaration decl_c = (IASTSimpleDeclaration) declarations[2];
+ IUPCASTSimpleDeclSpecifier declspec_c = (IUPCASTSimpleDeclSpecifier) decl_c.getDeclSpecifier();
+ assertEquals(IUPCASTDeclSpecifier.rt_unspecified, declspec_c.getReferenceType());
+ assertEquals(IUPCASTDeclSpecifier.sh_shared_constant_expression, declspec_c.getSharedQualifier());
+ assertEquals(IASTSimpleDeclSpecifier.t_int, declspec_c.getType());
+ @SuppressWarnings("unused")
+ IASTLiteralExpression literalExpr = (IASTLiteralExpression) declspec_c.getBlockSizeExpression();
+ declarators = decl_c.getDeclarators();
+ assertNotNull(declarators);
+ assertEquals(1, declarators.length);
+ IASTArrayDeclarator declarator_c = (IASTArrayDeclarator) declarators[0];
+ IASTName name_c = declarator_c.getName();
+ assertEquals("c", name_c.toString());
+ array_modifiers = declarator_c.getArrayModifiers();
+ assertNotNull(array_modifiers);
+ assertEquals(1, array_modifiers.length);
+ assertNotNull(array_modifiers[0].getConstantExpression());
+
+ // shared [*] int d [];
+ IASTSimpleDeclaration decl_d = (IASTSimpleDeclaration) declarations[3];
+ IUPCASTSimpleDeclSpecifier declspec_d = (IUPCASTSimpleDeclSpecifier) decl_d.getDeclSpecifier();
+ assertEquals(IUPCASTDeclSpecifier.rt_unspecified, declspec_d.getReferenceType());
+ assertEquals(IUPCASTDeclSpecifier.sh_shared_pure_allocation, declspec_d.getSharedQualifier());
+ assertEquals(IASTSimpleDeclSpecifier.t_int, declspec_d.getType());
+ assertNull(declspec_d.getBlockSizeExpression());
+ declarators = decl_d.getDeclarators();
+ assertNotNull(declarators);
+ assertEquals(1, declarators.length);
+ IASTArrayDeclarator declarator_d = (IASTArrayDeclarator) declarators[0];
+ IASTName name_d = declarator_d.getName();
+ assertEquals("d", name_d.toString());
+ array_modifiers = declarator_d.getArrayModifiers();
+ assertNotNull(array_modifiers);
+ assertEquals(1, array_modifiers.length);
+ assertNull(array_modifiers[0].getConstantExpression());
+
+ IASTSimpleDeclaration decl_x = (IASTSimpleDeclaration) declarations[4];
+ IUPCASTSimpleDeclSpecifier declspec_x = (IUPCASTSimpleDeclSpecifier) decl_x.getDeclSpecifier();
+ assertEquals(IUPCASTDeclSpecifier.rt_relaxed, declspec_x.getReferenceType());
+
+ IASTSimpleDeclaration decl_y = (IASTSimpleDeclaration) declarations[5];
+ IUPCASTSimpleDeclSpecifier declspec_y = (IUPCASTSimpleDeclSpecifier) decl_y.getDeclSpecifier();
+ assertEquals(IUPCASTDeclSpecifier.rt_strict, declspec_y.getReferenceType());
+
+
+ IVariable binding_a = (IVariable) name_a.resolveBinding();
+ assertNotNull(binding_a);
+ assertEquals(globalScope, binding_a.getScope());
+
+ IVariable binding_b = (IVariable) name_a.resolveBinding();
+ assertNotNull(binding_b);
+ assertEquals(globalScope, binding_b.getScope());
+
+ IVariable binding_c = (IVariable) name_a.resolveBinding();
+ assertNotNull(binding_c);
+ assertEquals(globalScope, binding_c.getScope());
+
+ IVariable binding_d = (IVariable) name_a.resolveBinding();
+ assertNotNull(binding_d);
+ assertEquals(globalScope, binding_d.getScope());
+
+ }
+
+
+
+ public void testUPCSharedDeclarations2() throws Exception {
+ String code =
+ "int x = 10;" +
+ "shared [x] int a [];\n";
+
+ IASTTranslationUnit tu = parseAndCheckBindings(code);
+ IScope globalScope = tu.getScope();
+ assertNotNull(globalScope);
+
+ IASTDeclaration[] declarations = tu.getDeclarations();
+ assertNotNull(declarations);
+ assertEquals(2, declarations.length);
+
+ IASTSimpleDeclaration decl_x = (IASTSimpleDeclaration) declarations[0];
+
+ // shared [x] int a [];
+ IASTSimpleDeclaration decl_a = (IASTSimpleDeclaration) declarations[1];
+ IUPCASTSimpleDeclSpecifier declspec_a = (IUPCASTSimpleDeclSpecifier) decl_a.getDeclSpecifier();
+ assertEquals(IUPCASTDeclSpecifier.rt_unspecified, declspec_a.getReferenceType());
+ assertEquals(IUPCASTDeclSpecifier.sh_shared_constant_expression, declspec_a.getSharedQualifier());
+ assertEquals(IASTSimpleDeclSpecifier.t_int, declspec_a.getType());
+ IASTIdExpression expr_x = (IASTIdExpression) declspec_a.getBlockSizeExpression();
+
+ IASTName name_x = expr_x.getName();
+ IVariable binding_x = (IVariable) name_x.resolveBinding();
+ assertNotNull(binding_x);
+ assertEquals(decl_x.getDeclarators()[0].getName().resolveBinding(), binding_x);
+ }
+
+
+
+ public void testUPCForall1() throws Exception {
+ String code =
+ "int main() {\n" +
+ " int i;\n" +
+ " shared float *a;\n" +
+ " upc_forall(i=0; i<N; i++; &a[i]) { \n" +
+ " a[i] = 99; \n" +
+ " } \n" +
+ "}\n";
+
+ IASTTranslationUnit tu = parse(code);
+
+ IScope globalScope = tu.getScope();
+ assertNotNull(globalScope);
+
+ IASTDeclaration[] declarations = tu.getDeclarations();
+ assertNotNull(declarations);
+ assertEquals(1, declarations.length);
+
+ IASTFunctionDefinition main = (IASTFunctionDefinition) declarations[0];
+ IASTStatement[] body = ((IASTCompoundStatement)main.getBody()).getStatements();
+ assertEquals(3, body.length);
+
+ IASTSimpleDeclaration decl_i = (IASTSimpleDeclaration)((IASTDeclarationStatement)body[0]).getDeclaration();
+ IVariable binding_i = (IVariable) decl_i.getDeclarators()[0].getName().resolveBinding();
+
+ IASTSimpleDeclaration decl_a = (IASTSimpleDeclaration)((IASTDeclarationStatement)body[1]).getDeclaration();
+ IVariable binding_a = (IVariable) decl_a.getDeclarators()[0].getName().resolveBinding();
+
+ IUPCASTForallStatement forall = (IUPCASTForallStatement) body[2];
+
+ IASTBinaryExpression expr1 = (IASTBinaryExpression)((IASTExpressionStatement)forall.getInitializerStatement()).getExpression();
+ IASTName name_i_1 = ((IASTIdExpression)expr1.getOperand1()).getName();
+
+ IASTBinaryExpression expr2 = (IASTBinaryExpression)forall.getConditionExpression();
+ IASTName name_i_2 = ((IASTIdExpression)expr2.getOperand1()).getName();
+
+ IASTUnaryExpression expr3 = (IASTUnaryExpression)forall.getIterationExpression();
+ IASTName name_i_3 = ((IASTIdExpression)expr3.getOperand()).getName();
+
+ IASTUnaryExpression expr4 = (IASTUnaryExpression)forall.getAffinityExpresiion();
+ IASTName name_i_4 = ((IASTIdExpression)((IASTArraySubscriptExpression)expr4.getOperand()).getSubscriptExpression()).getName();
+ IASTName name_a_1 = ((IASTIdExpression)((IASTArraySubscriptExpression)expr4.getOperand()).getArrayExpression()).getName();
+
+ IASTBinaryExpression expr5 = (IASTBinaryExpression)((IASTExpressionStatement)((IASTCompoundStatement)forall.getBody()).getStatements()[0]).getExpression();
+ IASTName name_i_5 = ((IASTIdExpression)((IASTArraySubscriptExpression)expr5.getOperand1()).getSubscriptExpression()).getName();
+ IASTName name_a_2 = ((IASTIdExpression)((IASTArraySubscriptExpression)expr5.getOperand1()).getArrayExpression()).getName();
+
+ // test binding resolution
+ IVariable binding_i_1 = (IVariable) name_i_1.resolveBinding();
+ assertNotNull(binding_i_1);
+ assertEquals(binding_i, binding_i_1);
+
+ IVariable binding_i_2 = (IVariable) name_i_2.resolveBinding();
+ assertNotNull(binding_i_2);
+ assertEquals(binding_i, binding_i_2);
+
+ IVariable binding_i_3 = (IVariable) name_i_3.resolveBinding();
+ assertNotNull(binding_i_3);
+ assertEquals(binding_i, binding_i_3);
+
+ IVariable binding_i_4 = (IVariable) name_i_4.resolveBinding();
+ assertNotNull(binding_i_4);
+ assertEquals(binding_i, binding_i_4);
+
+ IVariable binding_i_5 = (IVariable) name_i_5.resolveBinding();
+ assertNotNull(binding_i_5);
+ assertEquals(binding_i, binding_i_5);
+
+ IVariable binding_a_1 = (IVariable) name_a_1.resolveBinding();
+ assertNotNull(binding_a_1);
+ assertEquals(binding_a, binding_a_1);
+
+ IVariable binding_a_2 = (IVariable) name_a_2.resolveBinding();
+ assertNotNull(binding_a_2);
+ assertEquals(binding_a, binding_a_2);
+ }
+
+
+ /**
+ * Test a declaration inside a upc_forall definition.
+ */
+ public void testUPCForall2() throws Exception {
+ String code =
+ "int main() {\n" +
+ " shared float *a;\n" +
+ " upc_forall(int i=0; i<N; i++; &a[i]) { \n" +
+ " a[i] = 99; \n" +
+ " } \n" +
+ "}\n";
+
+ IASTTranslationUnit tu = parse(code);
+
+ IScope globalScope = tu.getScope();
+ assertNotNull(globalScope);
+
+ IASTDeclaration[] declarations = tu.getDeclarations();
+ assertNotNull(declarations);
+ assertEquals(1, declarations.length);
+
+ IASTFunctionDefinition main = (IASTFunctionDefinition) declarations[0];
+ IASTStatement[] body = ((IASTCompoundStatement)main.getBody()).getStatements();
+ assertEquals(2, body.length);
+
+ IASTSimpleDeclaration decl_a = (IASTSimpleDeclaration)((IASTDeclarationStatement)body[0]).getDeclaration();
+ IVariable binding_a = (IVariable) decl_a.getDeclarators()[0].getName().resolveBinding();
+
+ IUPCASTForallStatement forall = (IUPCASTForallStatement) body[1];
+
+ IASTSimpleDeclaration decl_i = (IASTSimpleDeclaration)((IASTDeclarationStatement)forall.getInitializerStatement()).getDeclaration();
+ IVariable binding_i = (IVariable) decl_i.getDeclarators()[0].getName().resolveBinding();
+
+ IASTBinaryExpression expr2 = (IASTBinaryExpression)forall.getConditionExpression();
+ IASTName name_i_2 = ((IASTIdExpression)expr2.getOperand1()).getName();
+
+ IASTUnaryExpression expr3 = (IASTUnaryExpression)forall.getIterationExpression();
+ IASTName name_i_3 = ((IASTIdExpression)expr3.getOperand()).getName();
+
+ IASTUnaryExpression expr4 = (IASTUnaryExpression)forall.getAffinityExpresiion();
+ IASTName name_i_4 = ((IASTIdExpression)((IASTArraySubscriptExpression)expr4.getOperand()).getSubscriptExpression()).getName();
+ IASTName name_a_1 = ((IASTIdExpression)((IASTArraySubscriptExpression)expr4.getOperand()).getArrayExpression()).getName();
+
+ IASTBinaryExpression expr5 = (IASTBinaryExpression)((IASTExpressionStatement)((IASTCompoundStatement)forall.getBody()).getStatements()[0]).getExpression();
+ IASTName name_i_5 = ((IASTIdExpression)((IASTArraySubscriptExpression)expr5.getOperand1()).getSubscriptExpression()).getName();
+ IASTName name_a_2 = ((IASTIdExpression)((IASTArraySubscriptExpression)expr5.getOperand1()).getArrayExpression()).getName();
+
+ // test binding resolution
+ IVariable binding_i_2 = (IVariable) name_i_2.resolveBinding();
+ assertNotNull(binding_i_2);
+ assertEquals(binding_i, binding_i_2);
+
+ IVariable binding_i_3 = (IVariable) name_i_3.resolveBinding();
+ assertNotNull(binding_i_3);
+ assertEquals(binding_i, binding_i_3);
+
+ IVariable binding_i_4 = (IVariable) name_i_4.resolveBinding();
+ assertNotNull(binding_i_4);
+ assertEquals(binding_i, binding_i_4);
+
+ IVariable binding_i_5 = (IVariable) name_i_5.resolveBinding();
+ assertNotNull(binding_i_5);
+ assertEquals(binding_i, binding_i_5);
+
+ IVariable binding_a_1 = (IVariable) name_a_1.resolveBinding();
+ assertNotNull(binding_a_1);
+ assertEquals(binding_a, binding_a_1);
+
+ IVariable binding_a_2 = (IVariable) name_a_2.resolveBinding();
+ assertNotNull(binding_a_2);
+ assertEquals(binding_a, binding_a_2);
+ }
+
+ /**
+ * Test 'continue' inside upc_forall
+ */
+ public void testUPCForall3() throws Exception {
+ String code =
+ "int main() {\n" +
+ " upc_forall(int i=0; i<N; i++; continue) { \n" +
+ " } \n" +
+ "}\n";
+
+ IASTTranslationUnit tu = parse(code);
+
+ IASTDeclaration[] declarations = tu.getDeclarations();
+ assertNotNull(declarations);
+ assertEquals(1, declarations.length);
+
+ IASTFunctionDefinition main = (IASTFunctionDefinition) declarations[0];
+ IASTStatement[] body = ((IASTCompoundStatement)main.getBody()).getStatements();
+ assertEquals(1, body.length);
+
+
+ IUPCASTForallStatement forall = (IUPCASTForallStatement) body[0];
+
+ assertTrue(forall.isAffinityContinue());
+ assertNull(forall.getAffinityExpresiion());
+ }
+
+
+ public void testUPCSynchronizationStatment() throws Exception {
+ String code =
+ "int main() {\n" +
+ " upc_notify 1;\n" +
+ " upc_notify;\n" +
+ " upc_wait 1;\n" +
+ " upc_wait;\n" +
+ " upc_barrier 1;\n" +
+ " upc_barrier;\n" +
+ " upc_fence;\n" +
+ "}\n";
+
+ IASTTranslationUnit tu = parse(code);
+
+ IASTDeclaration[] declarations = tu.getDeclarations();
+ assertNotNull(declarations);
+ assertEquals(1, declarations.length);
+
+ IASTFunctionDefinition main = (IASTFunctionDefinition) declarations[0];
+ IASTStatement[] body = ((IASTCompoundStatement)main.getBody()).getStatements();
+ assertEquals(7, body.length);
+
+ IUPCASTSynchronizationStatement stat;
+
+ stat = (IUPCASTSynchronizationStatement) body[0];
+ assertEquals(stat.getStatementKind(), IUPCASTSynchronizationStatement.st_upc_notify);
+ assertNotNull(stat.getBarrierExpression());
+
+ stat = (IUPCASTSynchronizationStatement) body[1];
+ assertEquals(stat.getStatementKind(), IUPCASTSynchronizationStatement.st_upc_notify);
+ assertNull(stat.getBarrierExpression());
+
+ stat = (IUPCASTSynchronizationStatement) body[2];
+ assertEquals(stat.getStatementKind(), IUPCASTSynchronizationStatement.st_upc_wait);
+ assertNotNull(stat.getBarrierExpression());
+
+ stat = (IUPCASTSynchronizationStatement) body[3];
+ assertEquals(stat.getStatementKind(), IUPCASTSynchronizationStatement.st_upc_wait);
+ assertNull(stat.getBarrierExpression());
+
+ stat = (IUPCASTSynchronizationStatement) body[4];
+ assertEquals(stat.getStatementKind(), IUPCASTSynchronizationStatement.st_upc_barrier);
+ assertNotNull(stat.getBarrierExpression());
+
+ stat = (IUPCASTSynchronizationStatement) body[5];
+ assertEquals(stat.getStatementKind(), IUPCASTSynchronizationStatement.st_upc_barrier);
+ assertNull(stat.getBarrierExpression());
+
+ stat = (IUPCASTSynchronizationStatement) body[6];
+ assertEquals(stat.getStatementKind(), IUPCASTSynchronizationStatement.st_upc_fence);
+ assertNull(stat.getBarrierExpression());
+ }
+
+ public void testUPCSizeofExpressions() throws Exception {
+ String code =
+ "int main() {\n" +
+ " sizeof(int); \n" +
+ " sizeof x; \n" +
+ " upc_localsizeof(int); \n" +
+ " upc_localsizeof x; \n" +
+ " upc_blocksizeof(int); \n" +
+ " upc_blocksizeof x; \n" +
+ " upc_elemsizeof(int); \n" +
+ " upc_elemsizeof x; \n" +
+ "}\n";
+
+ IASTTranslationUnit tu = parse(code);
+
+ IASTDeclaration[] declarations = tu.getDeclarations();
+ assertNotNull(declarations);
+ assertEquals(1, declarations.length);
+
+ IASTFunctionDefinition main = (IASTFunctionDefinition) declarations[0];
+ IASTStatement[] body = ((IASTCompoundStatement)main.getBody()).getStatements();
+ assertEquals(8, body.length);
+
+ @SuppressWarnings("unused")
+ IASTTypeIdExpression cidexpr = (IASTTypeIdExpression)((IASTExpressionStatement)body[0]).getExpression();
+
+ IASTUnaryExpression cexpr = (IASTUnaryExpression)((IASTExpressionStatement)body[1]).getExpression();
+ assertEquals(IASTUnaryExpression.op_sizeof, cexpr.getOperator());
+
+ IUPCASTUnarySizeofExpression expr;
+ IUPCASTTypeIdSizeofExpression idexpr;
+
+ idexpr = (IUPCASTTypeIdSizeofExpression)((IASTExpressionStatement)body[2]).getExpression();
+ assertEquals(IASTTypeIdExpression.op_sizeof, idexpr.getOperator());
+ assertEquals(IUPCASTTypeIdSizeofExpression.upc_localsizeof, idexpr.getUPCSizeofOperator());
+
+ expr = (IUPCASTUnarySizeofExpression)((IASTExpressionStatement)body[3]).getExpression();
+ assertEquals(IASTUnaryExpression.op_sizeof, expr.getOperator());
+ assertEquals(IUPCASTUnarySizeofExpression.upc_localsizeof, expr.getUPCSizeofOperator());
+
+ idexpr = (IUPCASTTypeIdSizeofExpression)((IASTExpressionStatement)body[4]).getExpression();
+ assertEquals(IASTTypeIdExpression.op_sizeof, idexpr.getOperator());
+ assertEquals(IUPCASTTypeIdSizeofExpression.upc_blocksizeof, idexpr.getUPCSizeofOperator());
+
+ expr = (IUPCASTUnarySizeofExpression)((IASTExpressionStatement)body[5]).getExpression();
+ assertEquals(IASTUnaryExpression.op_sizeof, expr.getOperator());
+ assertEquals(IUPCASTUnarySizeofExpression.upc_blocksizeof, expr.getUPCSizeofOperator());
+
+ idexpr = (IUPCASTTypeIdSizeofExpression)((IASTExpressionStatement)body[6]).getExpression();
+ assertEquals(IASTTypeIdExpression.op_sizeof, idexpr.getOperator());
+ assertEquals(IUPCASTTypeIdSizeofExpression.upc_elemsizeof, idexpr.getUPCSizeofOperator());
+
+ expr = (IUPCASTUnarySizeofExpression)((IASTExpressionStatement)body[7]).getExpression();
+ assertEquals(IASTUnaryExpression.op_sizeof, expr.getOperator());
+ assertEquals(IUPCASTUnarySizeofExpression.upc_elemsizeof, expr.getUPCSizeofOperator());
+ }
+
+
+ public void testUPCSizeofExpressionsDisambiguate() throws Exception {
+ String code =
+ "int foo() {" +
+ " typedef int t;" +
+ " int x;" +
+ " upc_blocksizeof(t);" +
+ " upc_blocksizeof(x);" +
+ "}";
+
+ IASTTranslationUnit tu = parse(code);
+
+ IASTDeclaration[] declarations = tu.getDeclarations();
+ IASTFunctionDefinition main = (IASTFunctionDefinition) declarations[0];
+ IASTStatement[] body = ((IASTCompoundStatement)main.getBody()).getStatements();
+
+ assertTrue(((IASTExpressionStatement)body[2]).getExpression() instanceof IUPCASTTypeIdSizeofExpression);
+ assertTrue(((IASTExpressionStatement)body[3]).getExpression() instanceof IUPCASTUnarySizeofExpression);
+ }
+}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCParserTestSuite.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCParserTestSuite.java
new file mode 100644
index 0000000000..ff84f06c47
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCParserTestSuite.java
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.cdt.core.parser.upc.tests;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class UPCParserTestSuite extends TestSuite {
+
+ public static Test suite() {
+ return new TestSuite() {{
+ addTestSuite(UPCCommentTests.class);
+ addTestSuite(UPCCompletionBasicTest.class);
+ addTestSuite(UPCCompletionParseTest.class);
+ addTestSuite(UPCDOMLocationInclusionTests.class);
+ addTestSuite(UPCDOMLocationMacroTests.class);
+ addTestSuite(UPCDOMLocationTests.class);
+ addTestSuite(UPCDOMPreprocessorInformationTest.class);
+ addTestSuite(UPCKnRTests.class);
+ addTestSuite(UPCSelectionParseTest.class);
+ addTestSuite(UPCCSpecTests.class);
+ addTestSuite(UPCTests.class);
+ addTestSuite(UPCLanguageExtensionTests.class);
+ addTestSuite(UPCDigraphTrigraphTests.class);
+ addTestSuite(UPCGCCTests.class);
+ addTestSuite(UPCUtilOldTests.class);
+ addTestSuite(UPCUtilTests.class);
+ addTestSuite(UPCCompleteParser2Tests.class);
+ addTestSuite(UPCTaskParserTest.class);
+ }};
+ }
+}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCSelectionParseTest.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCSelectionParseTest.java
new file mode 100644
index 0000000000..1bee629900
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCSelectionParseTest.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.cdt.core.parser.upc.tests;
+
+import org.eclipse.cdt.core.dom.upc.UPCLanguage;
+import org.eclipse.cdt.core.lrparser.tests.LRSelectionParseTest;
+import org.eclipse.cdt.core.model.ILanguage;
+
+public class UPCSelectionParseTest extends LRSelectionParseTest {
+
+ public UPCSelectionParseTest() { }
+ public UPCSelectionParseTest(String name) { super(name); }
+
+
+ @Override
+ protected ILanguage getCLanguage() {
+ return UPCLanguage.getDefault();
+ }
+}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCTaskParserTest.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCTaskParserTest.java
new file mode 100644
index 0000000000..c85fd46cfc
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCTaskParserTest.java
@@ -0,0 +1,24 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.cdt.core.parser.upc.tests;
+
+import org.eclipse.cdt.core.dom.upc.UPCLanguage;
+import org.eclipse.cdt.core.lrparser.tests.LRTaskParserTest;
+import org.eclipse.cdt.core.model.ILanguage;
+
+public class UPCTaskParserTest extends LRTaskParserTest {
+
+ @Override
+ protected ILanguage getCLanguage() {
+ return UPCLanguage.getDefault();
+ }
+
+}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCTests.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCTests.java
new file mode 100644
index 0000000000..bc62936c17
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCTests.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.cdt.core.parser.upc.tests;
+
+import junit.framework.TestSuite;
+
+import org.eclipse.cdt.core.dom.upc.UPCLanguage;
+import org.eclipse.cdt.core.lrparser.tests.LRTests;
+import org.eclipse.cdt.core.model.ILanguage;
+/**
+ * Run the C99 tests against the UPC parser
+ *
+ */
+public class UPCTests extends LRTests {
+
+ public static TestSuite suite() {
+ return suite(UPCTests.class);
+ }
+
+ public UPCTests(String name) {
+ super(name);
+ }
+
+ @Override
+ protected ILanguage getCLanguage() {
+ return UPCLanguage.getDefault();
+ }
+
+}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCUtilOldTests.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCUtilOldTests.java
new file mode 100644
index 0000000000..acc19879a4
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCUtilOldTests.java
@@ -0,0 +1,24 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.cdt.core.parser.upc.tests;
+
+import org.eclipse.cdt.core.dom.upc.UPCLanguage;
+import org.eclipse.cdt.core.lrparser.tests.LRUtilOldTests;
+import org.eclipse.cdt.core.model.ILanguage;
+
+public class UPCUtilOldTests extends LRUtilOldTests {
+
+ @Override
+ protected ILanguage getCLanguage() {
+ return UPCLanguage.getDefault();
+ }
+
+}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCUtilTests.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCUtilTests.java
new file mode 100644
index 0000000000..fbd75b26cf
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCUtilTests.java
@@ -0,0 +1,24 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.cdt.core.parser.upc.tests;
+
+import org.eclipse.cdt.core.dom.upc.UPCLanguage;
+import org.eclipse.cdt.core.lrparser.tests.LRUtilTests;
+import org.eclipse.cdt.core.model.ILanguage;
+
+public class UPCUtilTests extends LRUtilTests {
+
+ @Override
+ protected ILanguage getCLanguage() {
+ return UPCLanguage.getDefault();
+ }
+
+}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/META-INF/MANIFEST.MF b/upc/org.eclipse.cdt.core.parser.upc/META-INF/MANIFEST.MF
index 3208da69b7..59d655a778 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/META-INF/MANIFEST.MF
+++ b/upc/org.eclipse.cdt.core.parser.upc/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %Bundle-Name.1
Bundle-SymbolicName: org.eclipse.cdt.core.parser.upc;singleton:=true
-Bundle-Version: 5.0.0.qualifier
+Bundle-Version: 5.1.0.qualifier
Bundle-ClassPath: .
Require-Bundle: org.eclipse.cdt.core,
net.sourceforge.lpg.lpgjavaruntime;bundle-version="1.1.0";visibility:=reexport,
diff --git a/upc/org.eclipse.cdt.core.parser.upc/build.properties b/upc/org.eclipse.cdt.core.parser.upc/build.properties
index f476dcb673..4dd55390af 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/build.properties
+++ b/upc/org.eclipse.cdt.core.parser.upc/build.properties
@@ -1,11 +1,11 @@
###############################################################################
-# Copyright (c) 2007, 2008 IBM Corporation and others
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
+# Copyright (c) 2007, 2009 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
# IBM Corporation - initial API and implementation
###############################################################################
source.. = src/
@@ -20,3 +20,4 @@ bin.includes = META-INF/,\
about.properties,\
eclipse32.gif,\
templates/
+src.includes = about.html
diff --git a/upc/org.eclipse.cdt.core.parser.upc/grammar/build.xml b/upc/org.eclipse.cdt.core.parser.upc/grammar/build.xml
index fb3fb979f0..14946c96cc 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/grammar/build.xml
+++ b/upc/org.eclipse.cdt.core.parser.upc/grammar/build.xml
@@ -1,5 +1,5 @@
<!--
- Copyright (c) 2006, 2008 IBM Corporation and others.
+ Copyright (c) 2006, 2009 IBM Corporation and others.
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
which accompanies this distribution, and is available at
@@ -12,15 +12,7 @@
<project name="UPC Parser" default="upc" basedir=".">
<description>Generates the UPC parser from LPG grammar files</description>
- <fail unless="lpg_exe">
- Property $${lpg_exe} not set.
- This property must be set to the full path to the LPG generator executable.
- </fail>
-
- <fail unless="lpg_template">
- Property $${lpg_template} not set.
- This property must be set to the full path to the LPG templates folder.
- </fail>
+ <import file="../../org.eclipse.cdt.core.lrparser/grammar/generate.xml"/>
<property name="upc_location" value="../src/org/eclipse/cdt/internal/core/dom/parser/upc"/>
@@ -52,25 +44,5 @@
<param name="grammar_name" value="${grammar_name}"/>
</antcall>
</target>
-
-
- <target name="generate">
- <property name="grammar_file" value="${grammar_dir}/${grammar_name}.g"/>
- <echo message="lpg_exe=${lpg_exe}"/>
- <echo message="lpg_template=${lpg_template}"/>
- <echo message="grammar_file=${grammar_file}.g"/>
- <echo message="output_dir=${output_dir}"/>
-
- <exec executable="${lpg_exe}">
- <arg value="${grammar_file}"/>
- <env key="LPG_TEMPLATE" path="${lpg_template}"/>
- </exec>
-
- <move overwrite="true" toDir="${output_dir}">
- <fileset dir=".">
- <include name="${grammar_name}*.*"/>
- </fileset>
- </move>
- </target>
</project> \ No newline at end of file
diff --git a/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCExpressionParser.g b/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCExpressionParser.g
index 5aebaa7dbc..b7be58100a 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCExpressionParser.g
+++ b/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCExpressionParser.g
@@ -11,7 +11,7 @@
%options la=2
%options package=org.eclipse.cdt.internal.core.dom.parser.upc
-%options template=FixedBtParserTemplateD.g
+%options template=LRSecondaryParserTemplate.g
$Import
diff --git a/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCGrammarExtensions.g b/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCGrammarExtensions.g
index 48655f6df8..c000634cde 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCGrammarExtensions.g
+++ b/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCGrammarExtensions.g
@@ -1,5 +1,5 @@
-----------------------------------------------------------------------------------
--- Copyright (c) 2006, 2007 IBM Corporation and others.
+-- Copyright (c) 2006, 2009 IBM Corporation and others.
-- All rights reserved. This program and the accompanying materials
-- are made available under the terms of the Eclipse Public License v1.0
-- which accompanies this distribution, and is available at
@@ -12,13 +12,15 @@
$Define
$build_action_class /. UPCParserAction ./
- $node_factory_create_expression /. UPCASTNodeFactory.DEFAULT_INSTANCE ./
+ $node_factory_create_expression /. new UPCASTNodeFactory() ./
+ $parser_factory_create_expression /. UPCSecondaryParserFactory.getDefault() ./
$End
$Globals
/.
import org.eclipse.cdt.core.dom.parser.upc.UPCASTNodeFactory;
+import org.eclipse.cdt.core.dom.parser.upc.UPCSecondaryParserFactory;
import org.eclipse.cdt.core.dom.parser.upc.UPCParserAction;
import org.eclipse.cdt.core.dom.upc.ast.IUPCASTKeywordExpression;
import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSynchronizationStatement;
@@ -67,15 +69,15 @@ literal
unary_expression
::= 'upc_localsizeof' unary_expression
/. $Build consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_localsizeof); $EndBuild ./
- | 'upc_localsizeof' '(' type_name ')'
+ | 'upc_localsizeof' '(' type_id ')'
/. $Build consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_localsizeof); $EndBuild ./
| 'upc_blocksizeof' unary_expression
/. $Build consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_blocksizeof); $EndBuild ./
- | 'upc_blocksizeof' '(' type_name ')'
+ | 'upc_blocksizeof' '(' type_id ')'
/. $Build consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_blocksizeof); $EndBuild ./
| 'upc_elemsizeof' unary_expression
/. $Build consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_elemsizeof); $EndBuild ./
- | 'upc_elemsizeof' '(' type_name ')'
+ | 'upc_elemsizeof' '(' type_id ')'
/. $Build consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_elemsizeof); $EndBuild ./
diff --git a/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCNoCastExpressionParser.g b/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCNoCastExpressionParser.g
index c17364f890..635c9aee76 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCNoCastExpressionParser.g
+++ b/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCNoCastExpressionParser.g
@@ -11,7 +11,7 @@
%options la=2
%options package=org.eclipse.cdt.internal.core.dom.parser.upc
-%options template=FixedBtParserTemplateD.g
+%options template=LRSecondaryParserTemplate.g
$Import
diff --git a/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCParser.g b/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCParser.g
index ea1e78c3a8..8f4d84d256 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCParser.g
+++ b/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCParser.g
@@ -11,7 +11,7 @@
%options la=2
%options package=org.eclipse.cdt.internal.core.dom.parser.upc
-%options template=FixedBtParserTemplateD.g
+%options template=LRParserTemplate.g
$Import
diff --git a/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCSizeofExpressionParser.g b/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCSizeofExpressionParser.g
index 369ab99e88..564b1637ca 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCSizeofExpressionParser.g
+++ b/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCSizeofExpressionParser.g
@@ -1,5 +1,5 @@
-----------------------------------------------------------------------------------
--- Copyright (c) 2006, 2008 IBM Corporation and others.
+-- Copyright (c) 2006, 2009 IBM Corporation and others.
-- All rights reserved. This program and the accompanying materials
-- are made available under the terms of the Eclipse Public License v1.0
-- which accompanies this distribution, and is available at
@@ -11,7 +11,7 @@
%options la=2
%options package=org.eclipse.cdt.internal.core.dom.parser.upc
-%options template=FixedBtParserTemplateD.g
+%options template=LRSecondaryParserTemplate.g
$Import
@@ -23,8 +23,8 @@ $Import
$DropRules
unary_expression
- ::= 'upc_localsizeof' '(' type_name ')'
- | 'upc_blocksizeof' '(' type_name ')'
- | 'upc_elemsizeof' '(' type_name ')'
+ ::= 'upc_localsizeof' '(' type_id ')'
+ | 'upc_blocksizeof' '(' type_id ')'
+ | 'upc_elemsizeof' '(' type_id ')'
$End \ No newline at end of file
diff --git a/upc/org.eclipse.cdt.core.parser.upc/plugin.properties b/upc/org.eclipse.cdt.core.parser.upc/plugin.properties
index f1adfa0dd5..c61c0c1935 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/plugin.properties
+++ b/upc/org.eclipse.cdt.core.parser.upc/plugin.properties
@@ -1,15 +1,15 @@
###############################################################################
-# Copyright (c) 2007 IBM Corporation and others
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
+# Copyright (c) 2007, 2009 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
# IBM Corporation - initial API and implementation
###############################################################################
# properties file for org.eclipse.cdt.core.parser.upc
Bundle-Name.0 = UPC Parser Plug-in
-Bundle-Vendor.0 = Eclipse.org
+Bundle-Vendor.0 = Eclipse CDT
Bundle-Name.1 = UPC Parser Plug-in
upcSourceName = UPC Source File \ No newline at end of file
diff --git a/upc/org.eclipse.cdt.core.parser.upc/plugin.xml b/upc/org.eclipse.cdt.core.parser.upc/plugin.xml
index 98703b78a5..c1469b3df4 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/plugin.xml
+++ b/upc/org.eclipse.cdt.core.parser.upc/plugin.xml
@@ -17,9 +17,6 @@
name="UPC">
<contentType id="org.eclipse.cdt.core.parser.upc.upcSource"/>
</language>
- <pdomLinkageFactory
- class="org.eclipse.cdt.internal.core.pdom.dom.c.PDOMCLinkageFactory"
- id="upc"/>
</extension>
<extension point="org.eclipse.ui.editors.templates">
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/DOMToUPCTokenMap.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/DOMToUPCTokenMap.java
index d626097072..be9f2490e4 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/DOMToUPCTokenMap.java
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/DOMToUPCTokenMap.java
@@ -1,11 +1,11 @@
/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
+ * Copyright (c) 2006, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.core.dom.parser.upc;
@@ -130,8 +130,12 @@ public class DOMToUPCTokenMap implements IDOMTokenMap {
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;
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/IUPCNodeFactory.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/IUPCNodeFactory.java
new file mode 100644
index 0000000000..91c2996a78
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/IUPCNodeFactory.java
@@ -0,0 +1,54 @@
+/*******************************************************************************
+ * Copyright (c) 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.cdt.core.dom.parser.upc;
+
+import org.eclipse.cdt.core.dom.ast.IASTExpression;
+import org.eclipse.cdt.core.dom.ast.IASTName;
+import org.eclipse.cdt.core.dom.ast.IASTStatement;
+
+import org.eclipse.cdt.core.dom.lrparser.action.c99.ICNodeFactory;
+import org.eclipse.cdt.core.dom.upc.ast.IUPCASTCompositeTypeSpecifier;
+import org.eclipse.cdt.core.dom.upc.ast.IUPCASTElaboratedTypeSpecifier;
+import org.eclipse.cdt.core.dom.upc.ast.IUPCASTEnumerationSpecifier;
+import org.eclipse.cdt.core.dom.upc.ast.IUPCASTForallStatement;
+import org.eclipse.cdt.core.dom.upc.ast.IUPCASTKeywordExpression;
+import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSimpleDeclSpecifier;
+import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSynchronizationStatement;
+import org.eclipse.cdt.core.dom.upc.ast.IUPCASTTypedefNameSpecifier;
+
+public interface IUPCNodeFactory extends ICNodeFactory {
+
+ public void setUseUPCSizeofExpressions(int op);
+
+ public void setUseC99SizeofExpressions();
+
+ public IUPCASTKeywordExpression newKeywordExpression(int keywordKind);
+
+ public IUPCASTSynchronizationStatement newSyncronizationStatment(
+ IASTExpression barrierExpression, int statmentKind);
+
+ public IUPCASTForallStatement newForallStatement(IASTStatement init,
+ IASTExpression condition, IASTExpression iterationExpression,
+ IASTStatement body, IASTExpression affinity);
+
+ public IUPCASTSimpleDeclSpecifier newSimpleDeclSpecifier();
+
+ public IUPCASTCompositeTypeSpecifier newCompositeTypeSpecifier(int key,
+ IASTName name);
+
+ public IUPCASTElaboratedTypeSpecifier newElaboratedTypeSpecifier(int kind,
+ IASTName name);
+
+ public IUPCASTEnumerationSpecifier newEnumerationSpecifier(IASTName name);
+
+ public IUPCASTTypedefNameSpecifier newTypedefNameSpecifier(IASTName name);
+
+} \ No newline at end of file
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCASTNodeFactory.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCASTNodeFactory.java
index 5b7f3c54c1..1a4f935903 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCASTNodeFactory.java
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCASTNodeFactory.java
@@ -1,11 +1,11 @@
/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
+ * Copyright (c) 2006, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.core.dom.parser.upc;
@@ -16,15 +16,15 @@ import org.eclipse.cdt.core.dom.ast.IASTStatement;
import org.eclipse.cdt.core.dom.ast.IASTTypeId;
import org.eclipse.cdt.core.dom.ast.IASTTypeIdExpression;
import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression;
-import org.eclipse.cdt.core.dom.ast.c.ICASTCompositeTypeSpecifier;
-import org.eclipse.cdt.core.dom.ast.c.ICASTElaboratedTypeSpecifier;
-import org.eclipse.cdt.core.dom.ast.c.ICASTEnumerationSpecifier;
-import org.eclipse.cdt.core.dom.ast.c.ICASTSimpleDeclSpecifier;
-import org.eclipse.cdt.core.dom.ast.c.ICASTTypedefNameSpecifier;
-import org.eclipse.cdt.core.dom.lrparser.action.c99.C99ASTNodeFactory;
+import org.eclipse.cdt.core.dom.lrparser.action.c99.CNodeFactory;
+import org.eclipse.cdt.core.dom.upc.ast.IUPCASTCompositeTypeSpecifier;
+import org.eclipse.cdt.core.dom.upc.ast.IUPCASTElaboratedTypeSpecifier;
+import org.eclipse.cdt.core.dom.upc.ast.IUPCASTEnumerationSpecifier;
import org.eclipse.cdt.core.dom.upc.ast.IUPCASTForallStatement;
import org.eclipse.cdt.core.dom.upc.ast.IUPCASTKeywordExpression;
+import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSimpleDeclSpecifier;
import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSynchronizationStatement;
+import org.eclipse.cdt.core.dom.upc.ast.IUPCASTTypedefNameSpecifier;
import org.eclipse.cdt.internal.core.dom.parser.upc.ast.UPCASTCompositeTypeSpecifier;
import org.eclipse.cdt.internal.core.dom.parser.upc.ast.UPCASTElaboratedTypeSpecifier;
import org.eclipse.cdt.internal.core.dom.parser.upc.ast.UPCASTEnumerationSpecifier;
@@ -45,9 +45,8 @@ import org.eclipse.cdt.internal.core.dom.parser.upc.ast.UPCASTUnarySizeofExpress
* declaration specifiers. These UPC specific nodes add support
* for 'strict', 'relaxed' and 'shared'.
*/
-public class UPCASTNodeFactory extends C99ASTNodeFactory {
+public class UPCASTNodeFactory extends CNodeFactory implements IUPCNodeFactory {
- public static final UPCASTNodeFactory DEFAULT_INSTANCE = new UPCASTNodeFactory();
private boolean useUPCSizeofExpressions = false;
private int currentUPCSizofExpressionOperator = 0;
@@ -74,6 +73,7 @@ public class UPCASTNodeFactory extends C99ASTNodeFactory {
return super.newTypeIdExpression(operator, typeId);
}
+
@Override
public IASTUnaryExpression newUnaryExpression(int operator, IASTExpression operand) {
if(useUPCSizeofExpressions) {
@@ -84,45 +84,50 @@ public class UPCASTNodeFactory extends C99ASTNodeFactory {
return super.newUnaryExpression(operator, operand);
}
+
public IUPCASTKeywordExpression newKeywordExpression(int keywordKind) {
return new UPCASTKeywordExpression(keywordKind);
}
+
public IUPCASTSynchronizationStatement newSyncronizationStatment(IASTExpression barrierExpression, int statmentKind) {
return new UPCASTSynchronizationStatement(barrierExpression, statmentKind);
}
+
public IUPCASTForallStatement newForallStatement(IASTStatement init, IASTExpression condition,
IASTExpression iterationExpression, IASTStatement body, IASTExpression affinity) {
return new UPCASTForallStatement(init, condition, iterationExpression, body, affinity);
}
- /**
- * Override to return UPC version of decl specifier.
- */
+
@Override
- public ICASTSimpleDeclSpecifier newCSimpleDeclSpecifier() {
+ public IUPCASTSimpleDeclSpecifier newSimpleDeclSpecifier() {
return new UPCASTSimpleDeclSpecifier();
}
+
@Override
- public ICASTCompositeTypeSpecifier newCCompositeTypeSpecifier(int key, IASTName name) {
+ public IUPCASTCompositeTypeSpecifier newCompositeTypeSpecifier(int key, IASTName name) {
return new UPCASTCompositeTypeSpecifier(key, name);
}
+
@Override
- public ICASTElaboratedTypeSpecifier newElaboratedTypeSpecifier(int kind, IASTName name) {
+ public IUPCASTElaboratedTypeSpecifier newElaboratedTypeSpecifier(int kind, IASTName name) {
return new UPCASTElaboratedTypeSpecifier(kind, name);
}
+
@Override
- public ICASTEnumerationSpecifier newEnumerationSpecifier(IASTName name) {
+ public IUPCASTEnumerationSpecifier newEnumerationSpecifier(IASTName name) {
return new UPCASTEnumerationSpecifier(name);
}
+
@Override
- public ICASTTypedefNameSpecifier newCTypedefNameSpecifier() {
- return new UPCASTTypedefNameSpecifier();
+ public IUPCASTTypedefNameSpecifier newTypedefNameSpecifier(IASTName name) {
+ return new UPCASTTypedefNameSpecifier(name);
}
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCKeyword.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCKeyword.java
index 30cd0d1d91..c3b850fa03 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCKeyword.java
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCKeyword.java
@@ -1,12 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
package org.eclipse.cdt.core.dom.parser.upc;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.*;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
+import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_MYTHREAD;
+import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_THREADS;
+import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_UPC_MAX_BLOCKSIZE;
+import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_relaxed;
+import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_shared;
+import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_strict;
+import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_upc_barrier;
+import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_upc_blocksizeof;
+import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_upc_elemsizeof;
+import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_upc_fence;
+import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_upc_forall;
+import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_upc_localsizeof;
+import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_upc_notify;
+import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_upc_wait;
import org.eclipse.cdt.core.dom.lrparser.c99.C99Language;
+import org.eclipse.cdt.core.model.ICLanguageKeywords;
import org.eclipse.cdt.core.parser.util.CharArrayMap;
/**
@@ -34,19 +54,31 @@ public enum UPCKeyword {
private final int tokenKind;
- private static List<String> names = new ArrayList<String>();
+
private static final CharArrayMap<Integer> tokenMap = new CharArrayMap<Integer>();
+ private static final String[] upcKeywords;
+ private static final String[] allKeywords;
UPCKeyword(int tokenKind) {
this.tokenKind = tokenKind;
}
- static { // cannot refer to static fields from constructor
- for(UPCKeyword keyword : values()) {
+ static {
+ UPCKeyword[] keywords = values();
+ upcKeywords = new String[keywords.length];
+ for(int i = 0; i < keywords.length; i++) {
+ UPCKeyword keyword = keywords[i];
String name = keyword.name();
- names.add(name);
+ upcKeywords[i] = name;
tokenMap.put(name.toCharArray(), keyword.tokenKind);
}
+
+ // TODO change to GCC language when gcc support is added
+ ICLanguageKeywords c99Keywords = (ICLanguageKeywords) C99Language.getDefault().getAdapter(ICLanguageKeywords.class);
+ String[] c99ks = c99Keywords.getKeywords();
+ allKeywords = new String[upcKeywords.length + c99ks.length];
+ System.arraycopy(c99ks, 0, allKeywords, 0, c99ks.length);
+ System.arraycopy(upcKeywords, 0, allKeywords, c99ks.length, upcKeywords.length);
}
public int getTokenKind() {
@@ -54,16 +86,16 @@ public enum UPCKeyword {
}
public static String[] getUPCOnlyKeywords() {
- return names.toArray(new String[names.size()]);
+ return upcKeywords;
}
public static String[] getAllKeywords() {
- List<String> allKeywords = new ArrayList<String>(names);
- allKeywords.addAll(Arrays.asList(C99Language.getDefault().getKeywords()));
- return allKeywords.toArray(new String[allKeywords.size()]);
+ return allKeywords;
}
public static Integer getTokenKind(char[] image) {
+ if(image == null)
+ return null;
return tokenMap.get(image);
}
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCLanguageKeywords.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCLanguageKeywords.java
new file mode 100644
index 0000000000..95fddf3149
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCLanguageKeywords.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.cdt.core.dom.parser.upc;
+
+import org.eclipse.cdt.core.dom.lrparser.CLanguageKeywords;
+import org.eclipse.cdt.core.dom.lrparser.ScannerExtensionConfiguration;
+import org.eclipse.cdt.core.dom.parser.IScannerExtensionConfiguration;
+import org.eclipse.cdt.core.parser.ParserLanguage;
+
+public class UPCLanguageKeywords extends CLanguageKeywords {
+
+ public static final UPCLanguageKeywords DEFAULT_ALL_KEYWORDS = new UPCLanguageKeywords(ScannerExtensionConfiguration.createC());
+
+ public UPCLanguageKeywords(IScannerExtensionConfiguration config) {
+ super(ParserLanguage.C, config);
+ }
+
+ private static String[] upcKeywords = UPCKeyword.getAllKeywords();
+
+ @Override
+ public String[] getKeywords() {
+ return upcKeywords;
+ }
+}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCParserAction.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCParserAction.java
index 1c7ed62675..5900bd8747 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCParserAction.java
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCParserAction.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
+ * Copyright (c) 2006, 2009 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -11,26 +11,26 @@
package org.eclipse.cdt.core.dom.parser.upc;
-import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.*;
+import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_Completion;
+import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_relaxed;
+import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_shared;
+import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_strict;
import lpg.lpgjavaruntime.IToken;
import org.eclipse.cdt.core.dom.ast.IASTDeclaration;
import org.eclipse.cdt.core.dom.ast.IASTExpression;
import org.eclipse.cdt.core.dom.ast.IASTStatement;
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
import org.eclipse.cdt.core.dom.ast.IASTTypeIdExpression;
import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression;
import org.eclipse.cdt.core.dom.ast.c.ICASTDeclSpecifier;
-import org.eclipse.cdt.core.dom.lrparser.IParser;
-import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
+import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
+import org.eclipse.cdt.core.dom.lrparser.action.ISecondaryParserFactory;
+import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
import org.eclipse.cdt.core.dom.lrparser.action.c99.C99BuildASTParserAction;
import org.eclipse.cdt.core.dom.upc.ast.IUPCASTDeclSpecifier;
import org.eclipse.cdt.core.dom.upc.ast.IUPCASTForallStatement;
import org.eclipse.cdt.core.dom.upc.ast.IUPCASTKeywordExpression;
import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSynchronizationStatement;
-import org.eclipse.cdt.internal.core.dom.parser.upc.UPCExpressionParser;
-import org.eclipse.cdt.internal.core.dom.parser.upc.UPCNoCastExpressionParser;
-import org.eclipse.cdt.internal.core.dom.parser.upc.UPCSizeofExpressionParser;
/**
@@ -39,7 +39,7 @@ import org.eclipse.cdt.internal.core.dom.parser.upc.UPCSizeofExpressionParser;
*/
public class UPCParserAction extends C99BuildASTParserAction {
- private UPCASTNodeFactory nodeFactory;
+ private IUPCNodeFactory nodeFactory;
/**
@@ -48,8 +48,8 @@ public class UPCParserAction extends C99BuildASTParserAction {
* @param parser
* @param tu
*/
- public UPCParserAction(UPCASTNodeFactory nodeFactory, IParserActionTokenProvider parser, IASTTranslationUnit tu) {
- super(nodeFactory, parser, tu);
+ public UPCParserAction(ITokenStream parser, ScopedStack<Object> astStack, IUPCNodeFactory nodeFactory, ISecondaryParserFactory parserFactory) {
+ super(parser, astStack, nodeFactory, parserFactory);
this.nodeFactory = nodeFactory;
nodeFactory.setUseC99SizeofExpressions();
}
@@ -60,20 +60,7 @@ public class UPCParserAction extends C99BuildASTParserAction {
return token.getKind() == TK_Completion;
}
- @Override
- protected IParser getExpressionParser() {
- return new UPCExpressionParser(parser.getOrderedTerminalSymbols());
- }
-
- @Override
- protected IParser getNoCastExpressionParser() {
- return new UPCNoCastExpressionParser(parser.getOrderedTerminalSymbols());
- }
-
- @Override
- protected IParser getSizeofExpressionParser() {
- return new UPCSizeofExpressionParser(parser.getOrderedTerminalSymbols());
- }
+
/**************************************************************************************
@@ -193,7 +180,7 @@ public class UPCParserAction extends C99BuildASTParserAction {
* Overrides setSpecifier to add support for temporary layout qualifier nodes.
*/
@Override
- protected void setSpecifier(ICASTDeclSpecifier declSpec, Object specifier) {
+ public void setSpecifier(ICASTDeclSpecifier declSpec, Object specifier) {
if(specifier instanceof IToken)
setTokenSpecifier((IUPCASTDeclSpecifier)declSpec, (IToken)specifier);
else
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCSecondaryParserFactory.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCSecondaryParserFactory.java
new file mode 100644
index 0000000000..de52c1b1d3
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCSecondaryParserFactory.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.cdt.core.dom.parser.upc;
+
+import java.util.Map;
+
+import org.eclipse.cdt.core.dom.ast.IASTExpression;
+import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
+import org.eclipse.cdt.core.dom.lrparser.action.ISecondaryParserFactory;
+import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
+import org.eclipse.cdt.internal.core.dom.parser.upc.UPCExpressionParser;
+import org.eclipse.cdt.internal.core.dom.parser.upc.UPCNoCastExpressionParser;
+import org.eclipse.cdt.internal.core.dom.parser.upc.UPCSizeofExpressionParser;
+
+public class UPCSecondaryParserFactory implements ISecondaryParserFactory{
+
+ private static final UPCSecondaryParserFactory DEFAULT_INSTANCE = new UPCSecondaryParserFactory();
+
+ public static UPCSecondaryParserFactory getDefault() {
+ return DEFAULT_INSTANCE;
+ }
+
+ public ISecondaryParser<IASTExpression> getExpressionParser(ITokenStream stream, Map<String,String> properties) {
+ return new UPCExpressionParser(stream, properties);
+ }
+
+ public ISecondaryParser<IASTExpression> getNoCastExpressionParser(ITokenStream stream, Map<String,String> properties) {
+ return new UPCNoCastExpressionParser(stream, properties);
+ }
+
+ public ISecondaryParser<IASTExpression> getSizeofExpressionParser(ITokenStream stream, Map<String,String> properties) {
+ return new UPCSizeofExpressionParser(stream, properties);
+ }
+
+}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/UPCLanguage.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/UPCLanguage.java
index 90fd09b047..4cf855ae5e 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/UPCLanguage.java
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/UPCLanguage.java
@@ -1,31 +1,31 @@
/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
+ * Copyright (c) 2006, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.core.dom.upc;
+import java.util.Map;
+
import org.eclipse.cdt.core.dom.ILinkage;
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
import org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage;
-import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
import org.eclipse.cdt.core.dom.lrparser.IParser;
import org.eclipse.cdt.core.dom.lrparser.ScannerExtensionConfiguration;
-import org.eclipse.cdt.core.dom.lrparser.action.c99.C99ASTNodeFactory;
+import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
import org.eclipse.cdt.core.dom.parser.IScannerExtensionConfiguration;
+import org.eclipse.cdt.core.dom.parser.c.ANSICParserExtensionConfiguration;
import org.eclipse.cdt.core.dom.parser.upc.DOMToUPCTokenMap;
-import org.eclipse.cdt.core.dom.parser.upc.UPCKeyword;
+import org.eclipse.cdt.core.dom.parser.upc.UPCLanguageKeywords;
import org.eclipse.cdt.core.index.IIndex;
-import org.eclipse.cdt.core.model.IContributedModelBuilder;
-import org.eclipse.cdt.core.model.ITranslationUnit;
+import org.eclipse.cdt.core.model.ICLanguageKeywords;
import org.eclipse.cdt.core.parser.IScanner;
import org.eclipse.cdt.core.parser.ParserLanguage;
-import org.eclipse.cdt.internal.core.dom.parser.c.CASTTranslationUnit;
import org.eclipse.cdt.internal.core.dom.parser.upc.UPCParser;
@@ -34,39 +34,21 @@ import org.eclipse.cdt.internal.core.dom.parser.upc.UPCParser;
*
* @author Mike Kucera
*/
-@SuppressWarnings("restriction")
public class UPCLanguage extends BaseExtensibleLanguage {
- public static final String PLUGIN_ID = "org.eclipse.cdt.core.parser.upc"; //$NON-NLS-1$
- public static final String ID = PLUGIN_ID + ".upc"; //$NON-NLS-1$
+ public static final String ID = "org.eclipse.cdt.core.parser.upc.upc"; //$NON-NLS-1$
- private static final IDOMTokenMap TOKEN_MAP = new DOMToUPCTokenMap();
+ public static final String UPC_CONTENT_TYPE_ID = "org.eclipse.cdt.core.parser.upc.upcSource"; //$NON-NLS-1$
private static final UPCLanguage myDefault = new UPCLanguage();
- private static final String[] upcKeywords = UPCKeyword.getAllKeywords();
- private static final IScannerExtensionConfiguration SCANNER_CONFIGURATION = new ScannerExtensionConfiguration();
-
-
public static UPCLanguage getDefault() {
return myDefault;
}
@Override
- protected IDOMTokenMap getTokenMap() {
- return TOKEN_MAP;
- }
-
- @Override
- public IParser getParser() {
- return new UPCParser();
- }
-
- /**
- * @param tu Not used, default model builder used.
- */
- public IContributedModelBuilder createModelBuilder(ITranslationUnit tu) {
- return null;
+ protected IParser<IASTTranslationUnit> getParser(IScanner scanner, IIndex index, Map<String,String> properties) {
+ return new UPCParser(scanner, new DOMToUPCTokenMap(), getBuiltinBindingsProvider(), index, properties);
}
public String getId() {
@@ -76,10 +58,10 @@ public class UPCLanguage extends BaseExtensibleLanguage {
public int getLinkageID() {
return ILinkage.C_LINKAGE_ID;
}
-
+
@Override
- public String[] getKeywords() {
- return upcKeywords;
+ protected ICLanguageKeywords getCLanguageKeywords() {
+ return UPCLanguageKeywords.DEFAULT_ALL_KEYWORDS;
}
@Override
@@ -87,22 +69,12 @@ public class UPCLanguage extends BaseExtensibleLanguage {
return ParserLanguage.C;
}
- /**
- * Gets the translation unit object and sets the index and the location resolver.
- */
- @Override
- protected IASTTranslationUnit createASTTranslationUnit(IIndex index, IScanner preprocessor) {
- IASTTranslationUnit tu = C99ASTNodeFactory.DEFAULT_INSTANCE.newTranslationUnit();
- tu.setIndex(index);
- if(tu instanceof CASTTranslationUnit) {
- ((CASTTranslationUnit)tu).setLocationResolver(preprocessor.getLocationResolver());
- }
- return tu;
- }
-
@Override
protected IScannerExtensionConfiguration getScannerExtensionConfiguration() {
- return SCANNER_CONFIGURATION;
+ return ScannerExtensionConfiguration.createC();
}
+ protected IBuiltinBindingsProvider getBuiltinBindingsProvider() {
+ return new ANSICParserExtensionConfiguration().getBuiltinBindingsProvider();
+ }
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTCompositeTypeSpecifier.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTCompositeTypeSpecifier.java
index c6c1976a0a..d425b1ba84 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTCompositeTypeSpecifier.java
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTCompositeTypeSpecifier.java
@@ -1,11 +1,11 @@
/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
+ * Copyright (c) 2006, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.core.dom.upc.ast;
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTDeclSpecifier.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTDeclSpecifier.java
index c49fd6665d..efd83bc51c 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTDeclSpecifier.java
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTDeclSpecifier.java
@@ -1,11 +1,11 @@
/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
+ * Copyright (c) 2006, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.core.dom.upc.ast;
@@ -55,4 +55,5 @@ public interface IUPCASTDeclSpecifier extends ICASTDeclSpecifier {
public IASTExpression getBlockSizeExpression();
public void setBlockSizeExpression(IASTExpression expr);
+
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTElaboratedTypeSpecifier.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTElaboratedTypeSpecifier.java
index a4fa878a3a..4aad4bb3e9 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTElaboratedTypeSpecifier.java
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTElaboratedTypeSpecifier.java
@@ -1,11 +1,11 @@
/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
+ * Copyright (c) 2006, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.core.dom.upc.ast;
@@ -15,4 +15,5 @@ import org.eclipse.cdt.core.dom.ast.c.ICASTElaboratedTypeSpecifier;
public interface IUPCASTElaboratedTypeSpecifier extends IUPCASTDeclSpecifier,
ICASTElaboratedTypeSpecifier {
+
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTEnumerationSpecifier.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTEnumerationSpecifier.java
index 86335227ac..0e54c8efb0 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTEnumerationSpecifier.java
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTEnumerationSpecifier.java
@@ -1,11 +1,11 @@
/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
+ * Copyright (c) 2006, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.core.dom.upc.ast;
@@ -15,4 +15,5 @@ import org.eclipse.cdt.core.dom.ast.c.ICASTEnumerationSpecifier;
public interface IUPCASTEnumerationSpecifier extends IUPCASTDeclSpecifier,
ICASTEnumerationSpecifier {
+
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTForallStatement.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTForallStatement.java
index 2b10ba6f7b..7ccf5e450f 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTForallStatement.java
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTForallStatement.java
@@ -1,11 +1,11 @@
/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
+ * Copyright (c) 2006, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.core.dom.upc.ast;
@@ -44,4 +44,5 @@ public interface IUPCASTForallStatement extends IASTForStatement {
public IASTStatement getBody();
public void setBody(IASTStatement statement);
+
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTKeywordExpression.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTKeywordExpression.java
index 5ef9c3da33..885a1458dc 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTKeywordExpression.java
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTKeywordExpression.java
@@ -1,11 +1,11 @@
/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
+ * Copyright (c) 2006, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.core.dom.upc.ast;
@@ -25,4 +25,5 @@ public interface IUPCASTKeywordExpression extends IASTExpression {
public void setKeywordKind(int kind);
+
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTLayoutQualifier.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTLayoutQualifier.java
index 49a61e49f5..9c3d0a56dd 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTLayoutQualifier.java
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTLayoutQualifier.java
@@ -1,11 +1,11 @@
/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
+ * Copyright (c) 2006, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.core.dom.upc.ast;
@@ -30,4 +30,5 @@ public interface IUPCASTLayoutQualifier {
public void setBlockSizeExpression(IASTExpression expr);
+
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTSimpleDeclSpecifier.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTSimpleDeclSpecifier.java
index c2a347341d..753cb10dc4 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTSimpleDeclSpecifier.java
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTSimpleDeclSpecifier.java
@@ -1,11 +1,11 @@
/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
+ * Copyright (c) 2006, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.core.dom.upc.ast;
@@ -15,4 +15,5 @@ import org.eclipse.cdt.core.dom.ast.c.ICASTSimpleDeclSpecifier;
public interface IUPCASTSimpleDeclSpecifier extends IUPCASTDeclSpecifier,
ICASTSimpleDeclSpecifier {
+
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTSynchronizationStatement.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTSynchronizationStatement.java
index 2c388c991d..4e95977064 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTSynchronizationStatement.java
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTSynchronizationStatement.java
@@ -1,11 +1,11 @@
/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
+ * Copyright (c) 2006, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.core.dom.upc.ast;
@@ -37,4 +37,6 @@ public interface IUPCASTSynchronizationStatement extends IASTStatement {
public int getStatementKind();
public void setStatementKind(int kind);
+
+
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTTypeIdSizeofExpression.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTTypeIdSizeofExpression.java
index 53d71f43c6..f7b23a2659 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTTypeIdSizeofExpression.java
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTTypeIdSizeofExpression.java
@@ -24,4 +24,6 @@ public interface IUPCASTTypeIdSizeofExpression extends IASTTypeIdExpression {
public int getUPCSizeofOperator();
public void setUPCSizeofOperator(int upcSizeofOperator);
+
+
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTTypedefNameSpecifier.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTTypedefNameSpecifier.java
index 5c571380b0..e050194eb7 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTTypedefNameSpecifier.java
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTTypedefNameSpecifier.java
@@ -1,11 +1,11 @@
/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
+ * Copyright (c) 2006, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.core.dom.upc.ast;
@@ -14,5 +14,5 @@ import org.eclipse.cdt.core.dom.ast.c.ICASTTypedefNameSpecifier;
public interface IUPCASTTypedefNameSpecifier extends IUPCASTDeclSpecifier,
ICASTTypedefNameSpecifier {
-
+
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTUnarySizeofExpression.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTUnarySizeofExpression.java
index 32996f1d21..abed98db83 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTUnarySizeofExpression.java
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTUnarySizeofExpression.java
@@ -25,4 +25,5 @@ public interface IUPCASTUnarySizeofExpression extends IASTUnaryExpression {
public void setUPCSizeofOperator(int upcSizeofOperator);
+
} \ No newline at end of file
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParser.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParser.java
index 414f4b808c..91a93e2d90 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParser.java
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParser.java
@@ -1,5 +1,5 @@
/*******************************************************************************
-* Copyright (c) 2006, 2008 IBM Corporation and others.
+* Copyright (c) 2006, 2009 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -17,24 +17,36 @@ import lpg.lpgjavaruntime.*;
import java.util.*;
import org.eclipse.cdt.core.dom.ast.*;
+import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
import org.eclipse.cdt.core.dom.lrparser.IParser;
-import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
+import org.eclipse.cdt.core.dom.lrparser.ITokenCollector;
+import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter;
+import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser;
+import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
+import org.eclipse.cdt.core.parser.IScanner;
+import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
+import org.eclipse.cdt.core.index.IIndex;
import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
+import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
-import org.eclipse.cdt.core.dom.lrparser.action.c99.C99ASTNodeFactory;
+import org.eclipse.cdt.core.dom.lrparser.action.c99.CNodeFactory;
import org.eclipse.cdt.core.dom.lrparser.action.c99.C99BuildASTParserAction;
+import org.eclipse.cdt.core.dom.lrparser.action.c99.C99SecondaryParserFactory;
import org.eclipse.cdt.core.dom.parser.upc.UPCASTNodeFactory;
+import org.eclipse.cdt.core.dom.parser.upc.UPCSecondaryParserFactory;
import org.eclipse.cdt.core.dom.parser.upc.UPCParserAction;
import org.eclipse.cdt.core.dom.upc.ast.IUPCASTKeywordExpression;
import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSynchronizationStatement;
import org.eclipse.cdt.core.dom.upc.ast.IUPCASTUnarySizeofExpression;
import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser;
-public class UPCExpressionParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser
+public class UPCExpressionParser extends PrsStream implements RuleAction, ITokenStream,
+ ITokenCollector, IParser< IASTExpression >
+ , ISecondaryParser< IASTExpression >
{
private static ParseTable prs = new UPCExpressionParserprs();
private FixedBacktrackingParser btParser;
@@ -125,22 +137,22 @@ public class UPCExpressionParser extends PrsStream implements RuleAction , IPars
super.reportError((firsttok > lasttok ? ParseErrorCodes.INSERTION_CODE : ParseErrorCodes.SUBSTITUTION_CODE), location, msg);
}
- public Object parser()
+ public void parser()
{
- return parser(null, 0);
+ parser(null, 0);
}
- public Object parser(Monitor monitor)
+ public void parser(Monitor monitor)
{
- return parser(monitor, 0);
+ parser(monitor, 0);
}
- public Object parser(int error_repair_count)
+ public void parser(int error_repair_count)
{
- return parser(null, error_repair_count);
+ parser(null, error_repair_count);
}
- public Object parser(Monitor monitor, int error_repair_count)
+ public void parser(Monitor monitor, int error_repair_count)
{
try
{
@@ -158,7 +170,7 @@ public class UPCExpressionParser extends PrsStream implements RuleAction , IPars
try
{
- return (Object) btParser.parse(error_repair_count);
+ btParser.parse(error_repair_count);
}
catch (BadParseException e)
{
@@ -166,18 +178,26 @@ public class UPCExpressionParser extends PrsStream implements RuleAction , IPars
DiagnoseParser diagnoseParser = new DiagnoseParser(this, prs);
diagnoseParser.diagnose(e.error_token);
}
-
- return null;
}
private UPCParserAction action;
+private IASTCompletionNode compNode;
+
-public UPCExpressionParser() { // constructor
+public UPCExpressionParser(IScanner scanner, IDOMTokenMap tokenMap, IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Map<String,String> properties) {
+ initActions(properties);
+ action.initializeTranslationUnit(scanner, builtinBindingsProvider, index);
+ CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap);
}
-private void initActions(IASTTranslationUnit tu) {
- action = new UPCParserAction ( UPCASTNodeFactory.DEFAULT_INSTANCE , this, tu);
+private void initActions(Map<String,String> properties) {
+ ScopedStack<Object> astStack = new ScopedStack<Object>();
+
+ action = new UPCParserAction (this, astStack, new UPCASTNodeFactory() , UPCSecondaryParserFactory.getDefault() );
+ action.setParserProperties(properties);
+
+
}
@@ -187,39 +207,35 @@ public void addToken(IToken token) {
}
-public IASTCompletionNode parse(IASTTranslationUnit tu) {
+public IASTExpression parse() {
// this has to be done, or... kaboom!
setStreamLength(getSize());
- initActions(tu);
final int errorRepairCount = -1; // -1 means full error handling
parser(null, errorRepairCount); // do the actual parse
super.resetTokenStream(); // allow tokens to be garbage collected
- // the completion node may be null
- IASTCompletionNode compNode = action.getASTCompletionNode();
+ compNode = action.getASTCompletionNode(); // the completion node may be null
+ return ( IASTExpression ) action.getParseResult();
+}
+
- //action = null;
- //parserAction = null;
+public IASTCompletionNode getCompletionNode() {
return compNode;
}
// uncomment this method to use with backtracking parser
-public List getRuleTokens() {
- return Collections.unmodifiableList(getTokens().subList(getLeftSpan(), getRightSpan() + 1));
-}
-
-
-public IASTNode getSecondaryParseResult() {
- return action.getSecondaryParseResult();
+public List<IToken> getRuleTokens() {
+ return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
}
public String[] getOrderedTerminalSymbols() {
return UPCExpressionParsersym.orderedTerminalSymbols;
}
+@SuppressWarnings("nls")
public String getName() {
- return "UPCExpressionParser"; //$NON-NLS-1$
+ return "UPCExpressionParser";
}
@@ -236,12 +252,12 @@ public void setTokens(List<IToken> tokens) {
addToken(new Token(null, 0, 0, UPCExpressionParsersym.TK_EOF_TOKEN));
}
-public UPCExpressionParser(String[] mapFrom) { // constructor
- tokenMap = new TokenMap(UPCExpressionParsersym.orderedTerminalSymbols, mapFrom);
+public UPCExpressionParser(ITokenStream stream, Map<String,String> properties) { // constructor for creating secondary parser
+ initActions(properties);
+ tokenMap = new TokenMap(UPCExpressionParsersym.orderedTerminalSymbols, stream.getOrderedTerminalSymbols());
}
-
public void ruleAction(int ruleNumber)
{
switch (ruleNumber)
@@ -254,1293 +270,1299 @@ public UPCExpressionParser(String[] mapFrom) { // constructor
}
//
- // Rule 10: literal ::= integer
+ // Rule 2: <empty> ::= $Empty
//
- case 10: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant); break;
+ case 2: { action. consumeEmpty(); break;
}
//
- // Rule 11: literal ::= floating
+ // Rule 13: literal ::= integer
//
- case 11: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant); break;
+ case 13: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant); break;
}
//
- // Rule 12: literal ::= charconst
+ // Rule 14: literal ::= floating
//
- case 12: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant); break;
+ case 14: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant); break;
}
//
- // Rule 13: literal ::= stringlit
+ // Rule 15: literal ::= charconst
//
- case 13: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal); break;
+ case 15: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant); break;
}
//
- // Rule 15: primary_expression ::= primary_expression_id
+ // Rule 16: literal ::= stringlit
//
- case 15: { action. consumeExpressionID(); break;
+ case 16: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal); break;
}
//
- // Rule 16: primary_expression ::= ( expression )
+ // Rule 18: primary_expression ::= primary_expression_id
//
- case 16: { action. consumeExpressionBracketed(); break;
+ case 18: { action. consumeExpressionID(); break;
}
//
- // Rule 20: postfix_expression ::= postfix_expression [ expression ]
+ // Rule 19: primary_expression ::= ( expression )
//
- case 20: { action. consumeExpressionArraySubscript(); break;
+ case 19: { action. consumeExpressionBracketed(); break;
}
//
- // Rule 21: postfix_expression ::= postfix_expression ( expression_list_opt )
+ // Rule 22: postfix_expression ::= postfix_expression [ expression ]
//
- case 21: { action. consumeExpressionFunctionCall(); break;
+ case 22: { action. consumeExpressionArraySubscript(); break;
}
//
- // Rule 22: postfix_expression ::= postfix_expression . member_name
+ // Rule 23: postfix_expression ::= postfix_expression ( expression_list_opt )
//
- case 22: { action. consumeExpressionFieldReference(false); break;
+ case 23: { action. consumeExpressionFunctionCall(); break;
}
//
- // Rule 23: postfix_expression ::= postfix_expression -> member_name
+ // Rule 24: postfix_expression ::= postfix_expression . member_name
//
- case 23: { action. consumeExpressionFieldReference(true); break;
+ case 24: { action. consumeExpressionFieldReference(false); break;
}
//
- // Rule 24: postfix_expression ::= postfix_expression ++
+ // Rule 25: postfix_expression ::= postfix_expression -> member_name
//
- case 24: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break;
+ case 25: { action. consumeExpressionFieldReference(true); break;
}
//
- // Rule 25: postfix_expression ::= postfix_expression --
+ // Rule 26: postfix_expression ::= postfix_expression ++
//
- case 25: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break;
+ case 26: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break;
}
//
- // Rule 26: postfix_expression ::= ( type_name ) { <openscope-ast> initializer_list comma_opt }
+ // Rule 27: postfix_expression ::= postfix_expression --
//
- case 26: { action. consumeExpressionTypeIdInitializer(); break;
+ case 27: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break;
}
//
- // Rule 32: unary_expression ::= ++ unary_expression
+ // Rule 28: postfix_expression ::= ( type_id ) initializer_list
//
- case 32: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break;
+ case 28: { action. consumeExpressionTypeIdInitializer(); break;
}
//
- // Rule 33: unary_expression ::= -- unary_expression
+ // Rule 33: unary_expression ::= ++ unary_expression
//
- case 33: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break;
+ case 33: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break;
}
//
- // Rule 34: unary_expression ::= & cast_expression
+ // Rule 34: unary_expression ::= -- unary_expression
//
- case 34: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break;
+ case 34: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break;
}
//
- // Rule 35: unary_expression ::= * cast_expression
+ // Rule 35: unary_expression ::= & cast_expression
//
- case 35: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break;
+ case 35: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break;
}
//
- // Rule 36: unary_expression ::= + cast_expression
+ // Rule 36: unary_expression ::= * cast_expression
//
- case 36: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break;
+ case 36: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break;
}
//
- // Rule 37: unary_expression ::= - cast_expression
+ // Rule 37: unary_expression ::= + cast_expression
//
- case 37: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break;
+ case 37: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break;
}
//
- // Rule 38: unary_expression ::= ~ cast_expression
+ // Rule 38: unary_expression ::= - cast_expression
//
- case 38: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break;
+ case 38: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break;
}
//
- // Rule 39: unary_expression ::= ! cast_expression
+ // Rule 39: unary_expression ::= ~ cast_expression
//
- case 39: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break;
+ case 39: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break;
}
//
- // Rule 40: unary_expression ::= sizeof unary_expression
+ // Rule 40: unary_expression ::= ! cast_expression
//
- case 40: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break;
+ case 40: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break;
}
//
- // Rule 41: unary_expression ::= sizeof ( type_name )
+ // Rule 41: unary_expression ::= sizeof unary_expression
//
- case 41: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof); break;
+ case 41: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break;
}
//
- // Rule 43: cast_expression ::= ( type_name ) cast_expression
+ // Rule 42: unary_expression ::= sizeof ( type_id )
//
- case 43: { action. consumeExpressionCast(IASTCastExpression.op_cast); break;
+ case 42: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof); break;
}
//
- // Rule 45: multiplicative_expression ::= multiplicative_expression * cast_expression
+ // Rule 44: cast_expression ::= ( type_id ) cast_expression
//
- case 45: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break;
+ case 44: { action. consumeExpressionCast(IASTCastExpression.op_cast); break;
}
//
- // Rule 46: multiplicative_expression ::= multiplicative_expression / cast_expression
+ // Rule 46: multiplicative_expression ::= multiplicative_expression * cast_expression
//
- case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break;
+ case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break;
}
//
- // Rule 47: multiplicative_expression ::= multiplicative_expression % cast_expression
+ // Rule 47: multiplicative_expression ::= multiplicative_expression / cast_expression
//
- case 47: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break;
+ case 47: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break;
}
//
- // Rule 49: additive_expression ::= additive_expression + multiplicative_expression
+ // Rule 48: multiplicative_expression ::= multiplicative_expression % cast_expression
//
- case 49: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break;
+ case 48: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break;
}
//
- // Rule 50: additive_expression ::= additive_expression - multiplicative_expression
+ // Rule 50: additive_expression ::= additive_expression + multiplicative_expression
//
- case 50: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break;
+ case 50: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break;
}
//
- // Rule 52: shift_expression ::= shift_expression << additive_expression
+ // Rule 51: additive_expression ::= additive_expression - multiplicative_expression
//
- case 52: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break;
+ case 51: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break;
}
//
- // Rule 53: shift_expression ::= shift_expression >> additive_expression
+ // Rule 53: shift_expression ::= shift_expression << additive_expression
//
- case 53: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break;
+ case 53: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break;
}
//
- // Rule 55: relational_expression ::= relational_expression < shift_expression
+ // Rule 54: shift_expression ::= shift_expression >> additive_expression
//
- case 55: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break;
+ case 54: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break;
}
//
- // Rule 56: relational_expression ::= relational_expression > shift_expression
+ // Rule 56: relational_expression ::= relational_expression < shift_expression
//
- case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break;
+ case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break;
}
//
- // Rule 57: relational_expression ::= relational_expression <= shift_expression
+ // Rule 57: relational_expression ::= relational_expression > shift_expression
//
- case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break;
+ case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break;
}
//
- // Rule 58: relational_expression ::= relational_expression >= shift_expression
+ // Rule 58: relational_expression ::= relational_expression <= shift_expression
//
- case 58: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break;
+ case 58: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break;
}
//
- // Rule 60: equality_expression ::= equality_expression == relational_expression
+ // Rule 59: relational_expression ::= relational_expression >= shift_expression
//
- case 60: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break;
+ case 59: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break;
}
//
- // Rule 61: equality_expression ::= equality_expression != relational_expression
+ // Rule 61: equality_expression ::= equality_expression == relational_expression
//
- case 61: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break;
+ case 61: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break;
}
//
- // Rule 63: AND_expression ::= AND_expression & equality_expression
+ // Rule 62: equality_expression ::= equality_expression != relational_expression
//
- case 63: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break;
+ case 62: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break;
}
//
- // Rule 65: exclusive_OR_expression ::= exclusive_OR_expression ^ AND_expression
+ // Rule 64: and_expression ::= and_expression & equality_expression
//
- case 65: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break;
+ case 64: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break;
}
//
- // Rule 67: inclusive_OR_expression ::= inclusive_OR_expression | exclusive_OR_expression
+ // Rule 66: exclusive_or_expression ::= exclusive_or_expression ^ and_expression
//
- case 67: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break;
+ case 66: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break;
}
//
- // Rule 69: logical_AND_expression ::= logical_AND_expression && inclusive_OR_expression
+ // Rule 68: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression
//
- case 69: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break;
+ case 68: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break;
}
//
- // Rule 71: logical_OR_expression ::= logical_OR_expression || logical_AND_expression
+ // Rule 70: logical_and_expression ::= logical_and_expression && inclusive_or_expression
//
- case 71: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break;
+ case 70: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break;
}
//
- // Rule 73: conditional_expression ::= logical_OR_expression ? expression : conditional_expression
+ // Rule 72: logical_or_expression ::= logical_or_expression || logical_and_expression
//
- case 73: { action. consumeExpressionConditional(); break;
+ case 72: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break;
}
//
- // Rule 75: assignment_expression ::= unary_expression = assignment_expression
+ // Rule 74: conditional_expression ::= logical_or_expression ? expression : assignment_expression
//
- case 75: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break;
+ case 74: { action. consumeExpressionConditional(); break;
}
//
- // Rule 76: assignment_expression ::= unary_expression *= assignment_expression
+ // Rule 76: assignment_expression ::= unary_expression = assignment_expression
//
- case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break;
+ case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break;
}
//
- // Rule 77: assignment_expression ::= unary_expression /= assignment_expression
+ // Rule 77: assignment_expression ::= unary_expression *= assignment_expression
//
- case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break;
+ case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break;
}
//
- // Rule 78: assignment_expression ::= unary_expression %= assignment_expression
+ // Rule 78: assignment_expression ::= unary_expression /= assignment_expression
//
- case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break;
+ case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break;
}
//
- // Rule 79: assignment_expression ::= unary_expression += assignment_expression
+ // Rule 79: assignment_expression ::= unary_expression %= assignment_expression
//
- case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break;
+ case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break;
}
//
- // Rule 80: assignment_expression ::= unary_expression -= assignment_expression
+ // Rule 80: assignment_expression ::= unary_expression += assignment_expression
//
- case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break;
+ case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break;
}
//
- // Rule 81: assignment_expression ::= unary_expression <<= assignment_expression
+ // Rule 81: assignment_expression ::= unary_expression -= assignment_expression
//
- case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break;
+ case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break;
}
//
- // Rule 82: assignment_expression ::= unary_expression >>= assignment_expression
+ // Rule 82: assignment_expression ::= unary_expression <<= assignment_expression
//
- case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break;
+ case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break;
}
//
- // Rule 83: assignment_expression ::= unary_expression &= assignment_expression
+ // Rule 83: assignment_expression ::= unary_expression >>= assignment_expression
//
- case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break;
+ case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break;
}
//
- // Rule 84: assignment_expression ::= unary_expression ^= assignment_expression
+ // Rule 84: assignment_expression ::= unary_expression &= assignment_expression
//
- case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break;
+ case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break;
}
//
- // Rule 85: assignment_expression ::= unary_expression |= assignment_expression
+ // Rule 85: assignment_expression ::= unary_expression ^= assignment_expression
//
- case 85: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break;
+ case 85: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break;
}
//
- // Rule 88: expression_list ::= <openscope-ast> expression_list_actual
+ // Rule 86: assignment_expression ::= unary_expression |= assignment_expression
//
- case 88: { action. consumeExpressionList(); break;
+ case 86: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break;
}
//
- // Rule 90: expression_list_opt ::= $Empty
+ // Rule 89: expression_list ::= <openscope-ast> expression_list_actual
//
- case 90: { action. consumeEmpty(); break;
+ case 89: { action. consumeExpressionList(); break;
}
//
- // Rule 100: statement ::= ERROR_TOKEN
+ // Rule 91: expression_list_opt ::= $Empty
//
- case 100: { action. consumeStatementProblem(); break;
+ case 91: { action. consumeEmpty(); break;
}
//
- // Rule 101: labeled_statement ::= identifier_or_typedefname : statement
+ // Rule 101: statement ::= ERROR_TOKEN
//
- case 101: { action. consumeStatementLabeled(); break;
+ case 101: { action. consumeStatementProblem(); break;
}
//
- // Rule 102: labeled_statement ::= case constant_expression :
+ // Rule 102: labeled_statement ::= identifier_token : statement
//
- case 102: { action. consumeStatementCase(); break;
+ case 102: { action. consumeStatementLabeled(); break;
}
//
- // Rule 103: labeled_statement ::= default :
+ // Rule 103: labeled_statement ::= case constant_expression : statement
//
- case 103: { action. consumeStatementDefault(); break;
+ case 103: { action. consumeStatementCase(); break;
}
//
- // Rule 104: compound_statement ::= { }
+ // Rule 104: labeled_statement ::= default : statement
//
- case 104: { action. consumeStatementCompoundStatement(false); break;
+ case 104: { action. consumeStatementDefault(); break;
}
//
- // Rule 105: compound_statement ::= { <openscope-ast> block_item_list }
+ // Rule 105: compound_statement ::= { }
//
- case 105: { action. consumeStatementCompoundStatement(true); break;
+ case 105: { action. consumeStatementCompoundStatement(false); break;
}
//
- // Rule 109: block_item ::= declaration
+ // Rule 106: compound_statement ::= { <openscope-ast> block_item_list }
//
- case 109: { action. consumeStatementDeclarationWithDisambiguation(); break;
+ case 106: { action. consumeStatementCompoundStatement(true); break;
}
//
- // Rule 110: expression_statement ::= ;
+ // Rule 110: block_item ::= declaration
//
- case 110: { action. consumeStatementNull(); break;
+ case 110: { action. consumeStatementDeclarationWithDisambiguation(); break;
}
//
- // Rule 111: expression_statement ::= expression_in_statement ;
+ // Rule 111: expression_statement ::= ;
//
- case 111: { action. consumeStatementExpression(); break;
+ case 111: { action. consumeStatementNull(); break;
}
//
- // Rule 112: selection_statement ::= if ( expression ) statement
+ // Rule 112: expression_statement ::= expression_in_statement ;
//
- case 112: { action. consumeStatementIf(false); break;
+ case 112: { action. consumeStatementExpression(); break;
}
//
- // Rule 113: selection_statement ::= if ( expression ) statement else statement
+ // Rule 113: selection_statement ::= if ( expression ) statement
//
- case 113: { action. consumeStatementIf(true); break;
+ case 113: { action. consumeStatementIf(false); break;
}
//
- // Rule 114: selection_statement ::= switch ( expression ) statement
+ // Rule 114: selection_statement ::= if ( expression ) statement else statement
//
- case 114: { action. consumeStatementSwitch(); break;
+ case 114: { action. consumeStatementIf(true); break;
}
//
- // Rule 116: expression_opt ::= $Empty
+ // Rule 115: selection_statement ::= switch ( expression ) statement
//
- case 116: { action. consumeEmpty(); break;
+ case 115: { action. consumeStatementSwitch(); break;
}
//
- // Rule 117: iteration_statement ::= do statement while ( expression ) ;
+ // Rule 117: expression_opt ::= $Empty
//
- case 117: { action. consumeStatementDoLoop(); break;
+ case 117: { action. consumeEmpty(); break;
}
//
- // Rule 118: iteration_statement ::= while ( expression ) statement
+ // Rule 118: iteration_statement ::= do statement while ( expression ) ;
//
- case 118: { action. consumeStatementWhileLoop(); break;
+ case 118: { action. consumeStatementDoLoop(); break;
}
//
- // Rule 119: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement
+ // Rule 119: iteration_statement ::= while ( expression ) statement
//
- case 119: { action. consumeStatementForLoop(); break;
+ case 119: { action. consumeStatementWhileLoop(); break;
}
//
- // Rule 120: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement
+ // Rule 120: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement
//
case 120: { action. consumeStatementForLoop(); break;
}
//
- // Rule 121: jump_statement ::= goto identifier_or_typedefname ;
+ // Rule 121: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement
//
- case 121: { action. consumeStatementGoto(); break;
+ case 121: { action. consumeStatementForLoop(); break;
}
//
- // Rule 122: jump_statement ::= continue ;
+ // Rule 122: jump_statement ::= goto identifier_token ;
//
- case 122: { action. consumeStatementContinue(); break;
+ case 122: { action. consumeStatementGoto(); break;
}
//
- // Rule 123: jump_statement ::= break ;
+ // Rule 123: jump_statement ::= continue ;
//
- case 123: { action. consumeStatementBreak(); break;
+ case 123: { action. consumeStatementContinue(); break;
}
//
- // Rule 124: jump_statement ::= return ;
+ // Rule 124: jump_statement ::= break ;
//
- case 124: { action. consumeStatementReturn(false); break;
+ case 124: { action. consumeStatementBreak(); break;
}
//
- // Rule 125: jump_statement ::= return expression ;
+ // Rule 125: jump_statement ::= return ;
//
- case 125: { action. consumeStatementReturn(true); break;
+ case 125: { action. consumeStatementReturn(false); break;
}
//
- // Rule 126: declaration ::= declaration_specifiers ;
+ // Rule 126: jump_statement ::= return expression ;
//
- case 126: { action. consumeDeclarationSimple(false); break;
+ case 126: { action. consumeStatementReturn(true); break;
}
//
- // Rule 127: declaration ::= declaration_specifiers <openscope-ast> init_declarator_list ;
+ // Rule 127: declaration ::= declaration_specifiers ;
//
- case 127: { action. consumeDeclarationSimple(true); break;
+ case 127: { action. consumeDeclarationSimple(false); break;
}
//
- // Rule 128: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
+ // Rule 128: declaration ::= declaration_specifiers <openscope-ast> init_declarator_list ;
//
- case 128: { action. consumeDeclarationSpecifiersSimple(); break;
+ case 128: { action. consumeDeclarationSimple(true); break;
}
//
- // Rule 129: declaration_specifiers ::= <openscope-ast> struct_or_union_declaration_specifiers
+ // Rule 129: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
//
- case 129: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
+ case 129: { action. consumeDeclarationSpecifiersSimple(); break;
}
//
- // Rule 130: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
+ // Rule 130: declaration_specifiers ::= <openscope-ast> struct_or_union_declaration_specifiers
//
case 130: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
}
//
- // Rule 131: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
+ // Rule 131: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
//
case 131: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
}
//
- // Rule 132: declaration_specifiers ::= <openscope-ast> typdef_name_declaration_specifiers
+ // Rule 132: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
//
- case 132: { action. consumeDeclarationSpecifiersTypedefName(); break;
+ case 132: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
}
//
- // Rule 157: init_declarator ::= complete_declarator = initializer
+ // Rule 133: declaration_specifiers ::= <openscope-ast> typdef_name_declaration_specifiers
//
- case 157: { action. consumeDeclaratorWithInitializer(true); break;
+ case 133: { action. consumeDeclarationSpecifiersTypedefName(); break;
}
//
- // Rule 159: storage_class_specifier ::= storage_class_specifier_token
+ // Rule 158: init_declarator ::= complete_declarator = initializer
//
- case 159: { action. consumeDeclSpecToken(); break;
+ case 158: { action. consumeDeclaratorWithInitializer(true); break;
}
//
- // Rule 165: simple_type_specifier ::= simple_type_specifier_token
+ // Rule 160: storage_class_specifier ::= storage_class_specifier_token
//
- case 165: { action. consumeDeclSpecToken(); break;
+ case 160: { action. consumeToken(); break;
}
//
- // Rule 178: typedef_name_in_declspec ::= Completion
+ // Rule 166: simple_type_specifier ::= simple_type_specifier_token
//
- case 178: { action. consumeDeclSpecToken(); break;
+ case 166: { action. consumeToken(); break;
}
//
- // Rule 179: typedef_name_in_declspec ::= identifier
+ // Rule 179: type_name_specifier ::= identifier_token
//
- case 179: { action. consumeDeclSpecToken(); break;
+ case 179: { action. consumeToken(); break;
}
//
- // Rule 182: struct_or_union_specifier ::= struct { <openscope-ast> struct_declaration_list_opt }
+ // Rule 180: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { <openscope-ast> struct_declaration_list_opt }
//
- case 182: { action. consumeTypeSpecifierComposite(false, IASTCompositeTypeSpecifier.k_struct); break;
+ case 180: { action. consumeTypeSpecifierComposite(false); break;
}
//
- // Rule 183: struct_or_union_specifier ::= union { <openscope-ast> struct_declaration_list_opt }
+ // Rule 181: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { <openscope-ast> struct_declaration_list_opt }
//
- case 183: { action. consumeTypeSpecifierComposite(false, IASTCompositeTypeSpecifier.k_union); break;
+ case 181: { action. consumeTypeSpecifierComposite(true); break;
}
//
- // Rule 184: struct_or_union_specifier ::= struct identifier_or_typedefname { <openscope-ast> struct_declaration_list_opt }
+ // Rule 186: elaborated_specifier ::= struct elaborated_specifier_hook identifier_token
//
- case 184: { action. consumeTypeSpecifierComposite(true, IASTCompositeTypeSpecifier.k_struct); break;
+ case 186: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break;
}
//
- // Rule 185: struct_or_union_specifier ::= union identifier_or_typedefname { <openscope-ast> struct_declaration_list_opt }
+ // Rule 187: elaborated_specifier ::= union elaborated_specifier_hook identifier_token
//
- case 185: { action. consumeTypeSpecifierComposite(true, IASTCompositeTypeSpecifier.k_union); break;
+ case 187: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break;
}
//
- // Rule 186: elaborated_specifier ::= struct identifier_or_typedefname
+ // Rule 188: elaborated_specifier ::= enum elaborated_specifier_hook identifier_token
//
- case 186: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break;
+ case 188: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break;
}
//
- // Rule 187: elaborated_specifier ::= union identifier_or_typedefname
+ // Rule 194: struct_declaration ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ;
//
- case 187: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break;
+ case 194: { action. consumeStructDeclaration(true); break;
}
//
- // Rule 188: elaborated_specifier ::= enum identifier_or_typedefname
+ // Rule 195: struct_declaration ::= specifier_qualifier_list ;
//
- case 188: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break;
+ case 195: { action. consumeStructDeclaration(false); break;
}
//
- // Rule 193: struct_declaration ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ;
+ // Rule 196: struct_declaration ::= ERROR_TOKEN
//
- case 193: { action. consumeStructDeclaration(true); break;
+ case 196: { action. consumeDeclarationProblem(); break;
}
//
- // Rule 194: struct_declaration ::= specifier_qualifier_list ;
+ // Rule 202: struct_declarator ::= : constant_expression
//
- case 194: { action. consumeStructDeclaration(false); break;
+ case 202: { action. consumeBitField(false); break;
}
//
- // Rule 195: struct_declaration ::= ERROR_TOKEN
+ // Rule 203: struct_declarator ::= declarator : constant_expression
//
- case 195: { action. consumeDeclarationProblem(); break;
+ case 203: { action. consumeBitField(true); break;
}
//
- // Rule 201: struct_declarator ::= : constant_expression
+ // Rule 204: enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
//
- case 201: { action. consumeBitField(false); break;
+ case 204: { action. consumeTypeSpecifierEnumeration(false); break;
}
//
- // Rule 202: struct_declarator ::= declarator : constant_expression
+ // Rule 205: enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
//
- case 202: { action. consumeBitField(true); break;
+ case 205: { action. consumeTypeSpecifierEnumeration(true); break;
}
//
- // Rule 203: enum_specifier ::= enum { <openscope-ast> enumerator_list_opt comma_opt }
+ // Rule 211: enumerator ::= identifier_token
//
- case 203: { action. consumeTypeSpecifierEnumeration(false); break;
+ case 211: { action. consumeEnumerator(false); break;
}
//
- // Rule 204: enum_specifier ::= enum identifier_or_typedefname { <openscope-ast> enumerator_list_opt comma_opt }
+ // Rule 212: enumerator ::= identifier_token = constant_expression
//
- case 204: { action. consumeTypeSpecifierEnumeration(true); break;
+ case 212: { action. consumeEnumerator(true); break;
}
//
- // Rule 209: enumerator ::= identifier_or_typedefname
+ // Rule 213: type_qualifier ::= type_qualifier_token
//
- case 209: { action. consumeEnumerator(false); break;
+ case 213: { action. consumeToken(); break;
}
//
- // Rule 210: enumerator ::= identifier_or_typedefname = constant_expression
+ // Rule 217: function_specifier ::= inline
//
- case 210: { action. consumeEnumerator(true); break;
+ case 217: { action. consumeToken(); break;
}
//
- // Rule 211: type_qualifier ::= type_qualifier_token
+ // Rule 219: declarator ::= <openscope-ast> pointer_seq direct_declarator
//
- case 211: { action. consumeDeclSpecToken(); break;
+ case 219: { action. consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 215: function_specifier ::= inline
+ // Rule 224: basic_direct_declarator ::= declarator_id_name
//
- case 215: { action. consumeDeclSpecToken(); break;
+ case 224: { action. consumeDirectDeclaratorIdentifier(); break;
}
//
- // Rule 217: declarator ::= <openscope-ast> pointer_seq direct_declarator
+ // Rule 225: basic_direct_declarator ::= ( declarator )
//
- case 217: { action. consumeDeclaratorWithPointer(true); break;
+ case 225: { action. consumeDirectDeclaratorBracketed(); break;
}
//
- // Rule 222: basic_direct_declarator ::= declarator_id_name
+ // Rule 226: declarator_id_name ::= identifier
//
- case 222: { action. consumeDirectDeclaratorIdentifier(); break;
+ case 226: { action. consumeIdentifierName(); break;
}
//
- // Rule 223: basic_direct_declarator ::= ( declarator )
+ // Rule 227: array_direct_declarator ::= basic_direct_declarator array_modifier
//
- case 223: { action. consumeDirectDeclaratorBracketed(); break;
+ case 227: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 224: declarator_id_name ::= identifier
+ // Rule 228: array_direct_declarator ::= array_direct_declarator array_modifier
//
- case 224: { action. consumeIdentifierName(); break;
+ case 228: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 225: array_direct_declarator ::= basic_direct_declarator array_modifier
+ // Rule 230: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_type_list )
//
- case 225: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ case 230: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
}
//
- // Rule 226: array_direct_declarator ::= array_direct_declarator array_modifier
+ // Rule 231: function_direct_declarator ::= basic_direct_declarator ( )
//
- case 226: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ case 231: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
}
//
- // Rule 228: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_type_list )
+ // Rule 233: function_declarator ::= <openscope-ast> pointer_seq function_direct_declarator
//
- case 228: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
+ case 233: { action. consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 229: function_direct_declarator ::= basic_direct_declarator ( )
+ // Rule 234: knr_direct_declarator ::= basic_direct_declarator ( <openscope-ast> identifier_list )
//
- case 229: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
+ case 234: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break;
}
//
- // Rule 231: function_declarator ::= <openscope-ast> pointer_seq function_direct_declarator
+ // Rule 236: knr_function_declarator ::= <openscope-ast> pointer_seq knr_direct_declarator
//
- case 231: { action. consumeDeclaratorWithPointer(true); break;
+ case 236: { action. consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 232: knr_direct_declarator ::= basic_direct_declarator ( <openscope-ast> identifier_list )
+ // Rule 237: identifier_list ::= identifier
//
- case 232: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break;
+ case 237: { action. consumeIdentifierKnR(); break;
}
//
- // Rule 234: knr_function_declarator ::= <openscope-ast> pointer_seq knr_direct_declarator
+ // Rule 238: identifier_list ::= identifier_list , identifier
//
- case 234: { action. consumeDeclaratorWithPointer(true); break;
+ case 238: { action. consumeIdentifierKnR(); break;
}
//
- // Rule 235: identifier_list ::= identifier
+ // Rule 239: array_modifier ::= [ ]
//
- case 235: { action. consumeIdentifierKnR(); break;
+ case 239: { action. consumeDirectDeclaratorArrayModifier(false); break;
}
//
- // Rule 236: identifier_list ::= identifier_list , identifier
+ // Rule 240: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ]
//
- case 236: { action. consumeIdentifierKnR(); break;
+ case 240: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break;
}
//
- // Rule 237: array_modifier ::= [ ]
+ // Rule 241: array_modifier ::= [ assignment_expression ]
//
- case 237: { action. consumeDirectDeclaratorArrayModifier(false); break;
+ case 241: { action. consumeDirectDeclaratorArrayModifier(true); break;
}
//
- // Rule 238: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ]
+ // Rule 242: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
//
- case 238: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break;
+ case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break;
}
//
- // Rule 239: array_modifier ::= [ assignment_expression ]
+ // Rule 243: array_modifier ::= [ static assignment_expression ]
//
- case 239: { action. consumeDirectDeclaratorArrayModifier(true); break;
+ case 243: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break;
}
//
- // Rule 240: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
+ // Rule 244: array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
//
- case 240: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break;
+ case 244: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break;
}
//
- // Rule 241: array_modifier ::= [ static assignment_expression ]
+ // Rule 245: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ]
//
- case 241: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break;
+ case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break;
}
//
- // Rule 242: array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
+ // Rule 246: array_modifier ::= [ * ]
//
- case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break;
+ case 246: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break;
}
//
- // Rule 243: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ]
+ // Rule 247: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ]
//
- case 243: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break;
+ case 247: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break;
}
//
- // Rule 244: array_modifier ::= [ * ]
+ // Rule 249: pointer_seq ::= pointer_hook * pointer_hook
//
- case 244: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break;
+ case 249: { action. consumePointer(); break;
}
//
- // Rule 245: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ]
+ // Rule 250: pointer_seq ::= pointer_seq pointer_hook * pointer_hook
//
- case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break;
+ case 250: { action. consumePointer(); break;
}
//
- // Rule 247: pointer_seq ::= *
+ // Rule 251: pointer_seq ::= pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
//
- case 247: { action. consumePointer(); break;
+ case 251: { action. consumePointerTypeQualifierList(); break;
}
//
- // Rule 248: pointer_seq ::= pointer_seq *
+ // Rule 252: pointer_seq ::= pointer_seq pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
//
- case 248: { action. consumePointer(); break;
+ case 252: { action. consumePointerTypeQualifierList(); break;
}
//
- // Rule 249: pointer_seq ::= * <openscope-ast> type_qualifier_list
+ // Rule 256: parameter_type_list ::= parameter_list
//
- case 249: { action. consumePointerTypeQualifierList(); break;
+ case 256: { action. consumeEmpty(); break;
}
//
- // Rule 250: pointer_seq ::= pointer_seq * <openscope-ast> type_qualifier_list
+ // Rule 257: parameter_type_list ::= parameter_list , ...
//
- case 250: { action. consumePointerTypeQualifierList(); break;
+ case 257: { action. consumePlaceHolder(); break;
}
//
- // Rule 253: parameter_type_list ::= parameter_list
+ // Rule 258: parameter_type_list ::= ...
//
- case 253: { action. consumeEmpty(); break;
+ case 258: { action. consumePlaceHolder(); break;
}
//
- // Rule 254: parameter_type_list ::= parameter_list , ...
+ // Rule 261: parameter_declaration ::= declaration_specifiers complete_parameter_declarator
//
- case 254: { action. consumePlaceHolder(); break;
+ case 261: { action. consumeParameterDeclaration(); break;
}
//
- // Rule 255: parameter_type_list ::= ...
+ // Rule 262: parameter_declaration ::= declaration_specifiers
//
- case 255: { action. consumePlaceHolder(); break;
+ case 262: { action. consumeParameterDeclarationWithoutDeclarator(); break;
}
//
- // Rule 258: parameter_declaration ::= declaration_specifiers complete_parameter_declarator
+ // Rule 265: type_id ::= specifier_qualifier_list
//
- case 258: { action. consumeParameterDeclaration(); break;
+ case 265: { action. consumeTypeId(false); break;
}
//
- // Rule 259: parameter_declaration ::= declaration_specifiers
+ // Rule 266: type_id ::= specifier_qualifier_list abstract_declarator
//
- case 259: { action. consumeParameterDeclarationWithoutDeclarator(); break;
+ case 266: { action. consumeTypeId(true); break;
}
//
- // Rule 262: type_name ::= specifier_qualifier_list
+ // Rule 268: abstract_declarator ::= <openscope-ast> pointer_seq
//
- case 262: { action. consumeTypeId(false); break;
+ case 268: { action. consumeDeclaratorWithPointer(false); break;
}
//
- // Rule 263: type_name ::= specifier_qualifier_list abstract_declarator
+ // Rule 269: abstract_declarator ::= <openscope-ast> pointer_seq direct_abstract_declarator
//
- case 263: { action. consumeTypeId(true); break;
+ case 269: { action. consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 265: abstract_declarator ::= <openscope-ast> pointer_seq
+ // Rule 273: basic_direct_abstract_declarator ::= ( abstract_declarator )
//
- case 265: { action. consumeDeclaratorWithPointer(false); break;
+ case 273: { action. consumeDirectDeclaratorBracketed(); break;
}
//
- // Rule 266: abstract_declarator ::= <openscope-ast> pointer_seq direct_abstract_declarator
+ // Rule 274: array_direct_abstract_declarator ::= array_modifier
//
- case 266: { action. consumeDeclaratorWithPointer(false); break;
+ case 274: { action. consumeDirectDeclaratorArrayDeclarator(false); break;
}
//
- // Rule 270: basic_direct_abstract_declarator ::= ( abstract_declarator )
+ // Rule 275: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
//
- case 270: { action. consumeDirectDeclaratorBracketed(); break;
+ case 275: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 271: array_direct_abstract_declarator ::= array_modifier
+ // Rule 276: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
//
- case 271: { action. consumeDirectDeclaratorArrayDeclarator(false); break;
+ case 276: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 272: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
+ // Rule 277: function_direct_abstract_declarator ::= ( )
//
- case 272: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ case 277: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break;
+ }
+
+ //
+ // Rule 278: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( )
+ //
+ case 278: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
}
//
- // Rule 273: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
+ // Rule 279: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list )
//
- case 273: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ case 279: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break;
}
//
- // Rule 274: function_direct_abstract_declarator ::= ( )
+ // Rule 280: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list )
//
- case 274: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break;
- }
+ case 280: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
+ }
//
- // Rule 275: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( )
+ // Rule 281: initializer ::= assignment_expression
//
- case 275: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
+ case 281: { action. consumeInitializer(); break;
}
//
- // Rule 276: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list )
+ // Rule 283: initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq comma_opt } end_initializer_list
//
- case 276: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break;
+ case 283: { action. consumeInitializerList(); break;
}
//
- // Rule 277: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list )
+ // Rule 284: initializer_list ::= { <openscope-ast> }
//
- case 277: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
+ case 284: { action. consumeInitializerList(); break;
}
//
- // Rule 278: initializer ::= assignment_expression
+ // Rule 285: start_initializer_list ::= $Empty
//
- case 278: { action. consumeInitializer(); break;
+ case 285: { action. initializerListStart(); break;
}
//
- // Rule 279: initializer ::= { <openscope-ast> initializer_list comma_opt }
+ // Rule 286: end_initializer_list ::= $Empty
//
- case 279: { action. consumeInitializerList(); break;
+ case 286: { action. initializerListEnd(); break;
}
//
- // Rule 284: designated_initializer ::= <openscope-ast> designation = initializer
+ // Rule 291: designated_initializer ::= <openscope-ast> designation = initializer
//
- case 284: { action. consumeInitializerDesignated(); break;
+ case 291: { action. consumeInitializerDesignated(); break;
}
//
- // Rule 288: designator_base ::= [ constant_expression ]
+ // Rule 295: designator_base ::= [ constant_expression ]
//
- case 288: { action. consumeDesignatorArray(); break;
+ case 295: { action. consumeDesignatorArray(); break;
}
//
- // Rule 289: designator_base ::= . identifier_or_typedefname
+ // Rule 296: designator_base ::= . identifier_token
//
- case 289: { action. consumeDesignatorField(); break;
+ case 296: { action. consumeDesignatorField(); break;
}
//
- // Rule 290: designator ::= [ constant_expression ]
+ // Rule 297: designator ::= [ constant_expression ]
//
- case 290: { action. consumeDesignatorArray(); break;
+ case 297: { action. consumeDesignatorArray(); break;
}
//
- // Rule 291: designator ::= . identifier_or_typedefname
+ // Rule 298: designator ::= . identifier_token
//
- case 291: { action. consumeDesignatorField(); break;
+ case 298: { action. consumeDesignatorField(); break;
}
//
- // Rule 292: translation_unit ::= external_declaration_list
+ // Rule 299: translation_unit ::= external_declaration_list
//
- case 292: { action. consumeTranslationUnit(); break;
+ case 299: { action. consumeTranslationUnit(); break;
}
//
- // Rule 293: translation_unit ::= $Empty
+ // Rule 300: translation_unit ::= $Empty
//
- case 293: { action. consumeTranslationUnit(); break;
+ case 300: { action. consumeTranslationUnit(); break;
}
//
- // Rule 298: external_declaration ::= ;
+ // Rule 305: external_declaration ::= ;
//
- case 298: { action. consumeDeclarationEmpty(); break;
+ case 305: { action. consumeDeclarationEmpty(); break;
}
//
- // Rule 299: external_declaration ::= ERROR_TOKEN
+ // Rule 306: external_declaration ::= ERROR_TOKEN
//
- case 299: { action. consumeDeclarationProblem(); break;
+ case 306: { action. consumeDeclarationProblem(); break;
}
//
- // Rule 302: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
+ // Rule 310: function_definition ::= <openscope-ast> function_declarator function_body
//
- case 302: { action. consumeFunctionDefinition(true); break;
+ case 310: { action. consumeFunctionDefinition(false); break;
}
//
- // Rule 303: function_definition ::= <openscope-ast> function_declarator function_body
+ // Rule 311: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
//
- case 303: { action. consumeFunctionDefinition(false); break;
+ case 311: { action. consumeFunctionDefinitionKnR(); break;
}
//
- // Rule 304: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
+ // Rule 312: normal_function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
//
- case 304: { action. consumeFunctionDefinitionKnR(); break;
+ case 312: { action. consumeFunctionDefinition(true); break;
}
//
- // Rule 305: function_body ::= { }
+ // Rule 313: function_body ::= { }
//
- case 305: { action. consumeStatementCompoundStatement(false); break;
+ case 313: { action. consumeStatementCompoundStatement(false); break;
}
//
- // Rule 306: function_body ::= { <openscope-ast> block_item_list }
+ // Rule 314: function_body ::= { <openscope-ast> block_item_list }
//
- case 306: { action. consumeStatementCompoundStatement(true); break;
+ case 314: { action. consumeStatementCompoundStatement(true); break;
}
//
- // Rule 308: expression_parser_start ::= ERROR_TOKEN
+ // Rule 316: expression_parser_start ::= ERROR_TOKEN
//
- case 308: { action. consumeExpressionProblem(); break;
+ case 316: { action. consumeEmpty(); break;
}
//
- // Rule 309: literal ::= MYTHREAD
+ // Rule 317: literal ::= MYTHREAD
//
- case 309: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread); break;
+ case 317: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread); break;
}
//
- // Rule 310: literal ::= THREADS
+ // Rule 318: literal ::= THREADS
//
- case 310: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads); break;
+ case 318: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads); break;
}
//
- // Rule 311: literal ::= UPC_MAX_BLOCKSIZE
+ // Rule 319: literal ::= UPC_MAX_BLOCKSIZE
//
- case 311: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size); break;
+ case 319: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size); break;
}
//
- // Rule 312: unary_expression ::= upc_localsizeof unary_expression
+ // Rule 320: unary_expression ::= upc_localsizeof unary_expression
//
- case 312: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_localsizeof); break;
+ case 320: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_localsizeof); break;
}
//
- // Rule 313: unary_expression ::= upc_localsizeof ( type_name )
+ // Rule 321: unary_expression ::= upc_localsizeof ( type_id )
//
- case 313: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_localsizeof); break;
+ case 321: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_localsizeof); break;
}
//
- // Rule 314: unary_expression ::= upc_blocksizeof unary_expression
+ // Rule 322: unary_expression ::= upc_blocksizeof unary_expression
//
- case 314: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_blocksizeof); break;
+ case 322: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_blocksizeof); break;
}
//
- // Rule 315: unary_expression ::= upc_blocksizeof ( type_name )
+ // Rule 323: unary_expression ::= upc_blocksizeof ( type_id )
//
- case 315: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_blocksizeof); break;
+ case 323: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_blocksizeof); break;
}
//
- // Rule 316: unary_expression ::= upc_elemsizeof unary_expression
+ // Rule 324: unary_expression ::= upc_elemsizeof unary_expression
//
- case 316: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_elemsizeof); break;
+ case 324: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_elemsizeof); break;
}
//
- // Rule 317: unary_expression ::= upc_elemsizeof ( type_name )
+ // Rule 325: unary_expression ::= upc_elemsizeof ( type_id )
//
- case 317: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_elemsizeof); break;
+ case 325: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_elemsizeof); break;
}
//
- // Rule 321: shared_type_qualifier ::= shared
+ // Rule 329: shared_type_qualifier ::= shared
//
- case 321: { action. consumeToken(); break;
+ case 329: { action. consumeToken(); break;
}
//
- // Rule 322: reference_type_qualifier ::= relaxed
+ // Rule 330: reference_type_qualifier ::= relaxed
//
- case 322: { action. consumeToken(); break;
+ case 330: { action. consumeToken(); break;
}
//
- // Rule 323: reference_type_qualifier ::= strict
+ // Rule 331: reference_type_qualifier ::= strict
//
- case 323: { action. consumeToken(); break;
+ case 331: { action. consumeToken(); break;
}
//
- // Rule 324: layout_qualifier ::= [ constant_expression ]
+ // Rule 332: layout_qualifier ::= [ constant_expression ]
//
- case 324: { action. consumeLayoutQualifier(true, false); break;
+ case 332: { action. consumeLayoutQualifier(true, false); break;
}
//
- // Rule 325: layout_qualifier ::= [ * ]
+ // Rule 333: layout_qualifier ::= [ * ]
//
- case 325: { action. consumeLayoutQualifier(false, true); break;
+ case 333: { action. consumeLayoutQualifier(false, true); break;
}
//
- // Rule 326: layout_qualifier ::= [ ]
+ // Rule 334: layout_qualifier ::= [ ]
//
- case 326: { action. consumeLayoutQualifier(false, false); break;
+ case 334: { action. consumeLayoutQualifier(false, false); break;
}
//
- // Rule 328: synchronization_statement ::= upc_notify expression ;
+ // Rule 336: synchronization_statement ::= upc_notify expression ;
//
- case 328: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true); break;
+ case 336: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true); break;
}
//
- // Rule 329: synchronization_statement ::= upc_notify ;
+ // Rule 337: synchronization_statement ::= upc_notify ;
//
- case 329: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false); break;
+ case 337: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false); break;
}
//
- // Rule 330: synchronization_statement ::= upc_wait expression ;
+ // Rule 338: synchronization_statement ::= upc_wait expression ;
//
- case 330: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true); break;
+ case 338: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true); break;
}
//
- // Rule 331: synchronization_statement ::= upc_wait ;
+ // Rule 339: synchronization_statement ::= upc_wait ;
//
- case 331: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false); break;
+ case 339: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false); break;
}
//
- // Rule 332: synchronization_statement ::= upc_barrier expression ;
+ // Rule 340: synchronization_statement ::= upc_barrier expression ;
//
- case 332: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true); break;
+ case 340: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true); break;
}
//
- // Rule 333: synchronization_statement ::= upc_barrier ;
+ // Rule 341: synchronization_statement ::= upc_barrier ;
//
- case 333: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false); break;
+ case 341: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false); break;
}
//
- // Rule 334: synchronization_statement ::= upc_fence ;
+ // Rule 342: synchronization_statement ::= upc_fence ;
//
- case 334: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false); break;
+ case 342: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false); break;
}
//
- // Rule 335: iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement
+ // Rule 343: iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement
//
- case 335: { action. consumeStatementUPCForallLoop(true, true, true, true); break;
+ case 343: { action. consumeStatementUPCForallLoop(true, true, true, true); break;
}
//
- // Rule 336: iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement
+ // Rule 344: iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement
//
- case 336: { action. consumeStatementUPCForallLoop(true, true, true, false); break;
+ case 344: { action. consumeStatementUPCForallLoop(true, true, true, false); break;
}
//
- // Rule 337: iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement
+ // Rule 345: iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement
//
- case 337: { action. consumeStatementUPCForallLoop(true, true, false, true); break;
+ case 345: { action. consumeStatementUPCForallLoop(true, true, false, true); break;
}
//
- // Rule 338: iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement
+ // Rule 346: iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement
//
- case 338: { action. consumeStatementUPCForallLoop(true, true, false, false); break;
+ case 346: { action. consumeStatementUPCForallLoop(true, true, false, false); break;
}
//
- // Rule 339: iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement
+ // Rule 347: iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement
//
- case 339: { action. consumeStatementUPCForallLoop(true, false, true, true); break;
+ case 347: { action. consumeStatementUPCForallLoop(true, false, true, true); break;
}
//
- // Rule 340: iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement
+ // Rule 348: iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement
//
- case 340: { action. consumeStatementUPCForallLoop(true, false, true, false); break;
+ case 348: { action. consumeStatementUPCForallLoop(true, false, true, false); break;
}
//
- // Rule 341: iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement
+ // Rule 349: iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement
//
- case 341: { action. consumeStatementUPCForallLoop(true, false, false, true); break;
+ case 349: { action. consumeStatementUPCForallLoop(true, false, false, true); break;
}
//
- // Rule 342: iteration_statement ::= upc_forall ( expression ; ; ; ) statement
+ // Rule 350: iteration_statement ::= upc_forall ( expression ; ; ; ) statement
//
- case 342: { action. consumeStatementUPCForallLoop(true, false, false, false); break;
+ case 350: { action. consumeStatementUPCForallLoop(true, false, false, false); break;
}
//
- // Rule 343: iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement
+ // Rule 351: iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement
//
- case 343: { action. consumeStatementUPCForallLoop(false, true, true, true); break;
+ case 351: { action. consumeStatementUPCForallLoop(false, true, true, true); break;
}
//
- // Rule 344: iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement
+ // Rule 352: iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement
//
- case 344: { action. consumeStatementUPCForallLoop(false, true, true, false); break;
+ case 352: { action. consumeStatementUPCForallLoop(false, true, true, false); break;
}
//
- // Rule 345: iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement
+ // Rule 353: iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement
//
- case 345: { action. consumeStatementUPCForallLoop(false, true, false, true); break;
+ case 353: { action. consumeStatementUPCForallLoop(false, true, false, true); break;
}
//
- // Rule 346: iteration_statement ::= upc_forall ( ; expression ; ; ) statement
+ // Rule 354: iteration_statement ::= upc_forall ( ; expression ; ; ) statement
//
- case 346: { action. consumeStatementUPCForallLoop(false, true, false, false); break;
+ case 354: { action. consumeStatementUPCForallLoop(false, true, false, false); break;
}
//
- // Rule 347: iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement
+ // Rule 355: iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement
//
- case 347: { action. consumeStatementUPCForallLoop(false, false, true, true); break;
+ case 355: { action. consumeStatementUPCForallLoop(false, false, true, true); break;
}
//
- // Rule 348: iteration_statement ::= upc_forall ( ; ; expression ; ) statement
+ // Rule 356: iteration_statement ::= upc_forall ( ; ; expression ; ) statement
//
- case 348: { action. consumeStatementUPCForallLoop(false, false, true, false); break;
+ case 356: { action. consumeStatementUPCForallLoop(false, false, true, false); break;
}
//
- // Rule 349: iteration_statement ::= upc_forall ( ; ; ; affinity ) statement
+ // Rule 357: iteration_statement ::= upc_forall ( ; ; ; affinity ) statement
//
- case 349: { action. consumeStatementUPCForallLoop(false, false, false, true); break;
+ case 357: { action. consumeStatementUPCForallLoop(false, false, false, true); break;
}
//
- // Rule 350: iteration_statement ::= upc_forall ( ; ; ; ) statement
+ // Rule 358: iteration_statement ::= upc_forall ( ; ; ; ) statement
//
- case 350: { action. consumeStatementUPCForallLoop(false, false, false, false); break;
+ case 358: { action. consumeStatementUPCForallLoop(false, false, false, false); break;
}
//
- // Rule 351: iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement
+ // Rule 359: iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement
//
- case 351: { action. consumeStatementUPCForallLoop(true, true, true, true); break;
+ case 359: { action. consumeStatementUPCForallLoop(true, true, true, true); break;
}
//
- // Rule 352: iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement
+ // Rule 360: iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement
//
- case 352: { action. consumeStatementUPCForallLoop(true, true, true, false); break;
+ case 360: { action. consumeStatementUPCForallLoop(true, true, true, false); break;
}
//
- // Rule 353: iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement
+ // Rule 361: iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement
//
- case 353: { action. consumeStatementUPCForallLoop(true, true, false, true); break;
+ case 361: { action. consumeStatementUPCForallLoop(true, true, false, true); break;
}
//
- // Rule 354: iteration_statement ::= upc_forall ( declaration expression ; ; ) statement
+ // Rule 362: iteration_statement ::= upc_forall ( declaration expression ; ; ) statement
//
- case 354: { action. consumeStatementUPCForallLoop(true, true, false, false); break;
+ case 362: { action. consumeStatementUPCForallLoop(true, true, false, false); break;
}
//
- // Rule 355: iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement
+ // Rule 363: iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement
//
- case 355: { action. consumeStatementUPCForallLoop(true, false, true, true); break;
+ case 363: { action. consumeStatementUPCForallLoop(true, false, true, true); break;
}
//
- // Rule 356: iteration_statement ::= upc_forall ( declaration ; expression ; ) statement
+ // Rule 364: iteration_statement ::= upc_forall ( declaration ; expression ; ) statement
//
- case 356: { action. consumeStatementUPCForallLoop(true, false, true, false); break;
+ case 364: { action. consumeStatementUPCForallLoop(true, false, true, false); break;
}
//
- // Rule 357: iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement
+ // Rule 365: iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement
//
- case 357: { action. consumeStatementUPCForallLoop(true, false, false, true); break;
+ case 365: { action. consumeStatementUPCForallLoop(true, false, false, true); break;
}
//
- // Rule 358: iteration_statement ::= upc_forall ( declaration ; ; ) statement
+ // Rule 366: iteration_statement ::= upc_forall ( declaration ; ; ) statement
//
- case 358: { action. consumeStatementUPCForallLoop(true, false, false, false); break;
+ case 366: { action. consumeStatementUPCForallLoop(true, false, false, false); break;
}
//
- // Rule 360: affinity ::= continue
+ // Rule 368: affinity ::= continue
//
- case 360: { action. consumeToken(); break;
+ case 368: { action. consumeToken(); break;
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParserprs.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParserprs.java
index 9d802d02b0..cff6fd915e 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParserprs.java
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParserprs.java
@@ -1,5 +1,5 @@
/*******************************************************************************
-* Copyright (c) 2006, 2008 IBM Corporation and others.
+* Copyright (c) 2006, 2009 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -35,197 +35,199 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP
public interface BaseCheck {
public final static short baseCheck[] = {0,
- 0,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,3,1,1,1,4,
- 4,3,3,2,2,8,1,0,1,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,3,2,2,4,1,2,1,1,1,
- 2,5,7,5,1,0,7,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,
+ 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,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,1,
- 1,5,5,6,6,2,2,2,1,0,
- 1,2,4,2,1,1,1,3,1,1,
- 2,3,6,7,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,1,2,3,4,
- 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,5,1,
- 1,3,3,4,1,1,2,3,2,3,
- 2,1,0,1,2,1,1,1,1,1,
- 2,4,3,6,2,4,1,1,1,1,
- 1,2,4,2,4,2,4,1,1,2,
- 1,1,1,3,3,2,1,3,2,3,
- 2,3,2,2,11,10,10,9,10,9,
- 9,8,10,9,9,8,9,8,8,7,
- 10,9,9,8,9,8,8,7,1,1,
- -43,0,0,0,0,0,0,-2,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- -82,-4,-80,0,0,0,0,-5,0,0,
- 0,0,0,0,0,0,0,-61,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-17,0,-36,0,-6,0,
- 0,0,0,0,0,0,0,0,-19,-20,
- -88,-21,0,0,0,0,0,0,0,0,
- -138,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- -189,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- -44,0,0,0,0,0,0,0,0,-143,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- -22,0,0,-159,-23,-24,0,-56,0,0,
+ 1,1,1,1,1,1,1,1,1,6,
+ 8,0,0,1,1,3,3,3,0,1,
+ 0,1,2,4,2,1,1,1,3,1,
+ 1,2,3,7,8,0,1,0,1,3,
+ 1,3,1,1,1,1,1,1,3,1,
+ 1,1,1,1,3,1,2,2,1,5,
+ 3,1,3,5,1,3,1,3,2,4,
+ 3,5,4,6,6,3,5,1,3,4,
+ 5,6,0,1,2,1,3,1,1,3,
+ 2,1,1,1,1,2,1,2,3,1,
+ 1,1,3,1,2,2,2,3,4,5,
+ 1,1,7,3,0,0,1,1,3,3,
+ 4,1,1,2,3,2,3,2,1,0,
+ 1,2,1,1,1,1,1,2,1,3,
+ 6,4,2,4,1,1,1,1,1,2,
+ 4,2,4,2,4,1,1,2,1,1,
+ 1,3,3,2,1,3,2,3,2,3,
+ 2,2,11,10,10,9,10,9,9,8,
+ 10,9,9,8,9,8,8,7,10,9,
+ 9,8,9,8,8,7,1,1,-43,0,
+ 0,0,0,0,0,0,0,0,-2,0,
+ 0,0,0,0,0,0,0,0,0,-132,
+ 0,0,0,0,0,-81,0,0,0,0,
+ 0,0,0,0,0,0,0,-62,0,0,
+ 0,0,0,0,0,0,0,-40,0,0,
+ 0,0,0,0,0,0,-175,0,-153,0,
+ -120,0,0,0,0,-88,0,-90,0,-4,
+ 0,-17,0,0,0,0,0,0,0,-157,
0,0,0,0,0,0,0,0,0,0,
- -37,-25,0,-184,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-83,0,0,0,0,0,0,
+ -224,-44,0,0,0,0,0,0,0,0,
+ 0,0,-207,0,-19,-193,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-147,-170,0,-7,0,0,0,
- 0,0,-59,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-148,0,-1,0,
0,0,0,0,0,0,0,0,0,0,
- -85,0,0,0,0,0,0,0,0,0,
- -62,0,0,0,0,0,0,-26,0,0,
- 0,0,0,0,0,0,0,-27,0,0,
- 0,-8,0,0,0,0,0,0,0,0,
- 0,-15,0,0,0,0,0,0,0,0,
- 0,0,0,-3,0,0,0,0,0,0,
- -158,0,0,0,0,0,0,0,0,0,
- 0,0,0,-123,0,0,0,0,0,0,
+ 0,-82,-20,0,-145,0,0,0,0,0,
+ 0,0,0,-115,-116,-85,0,0,0,0,
+ -21,0,0,0,0,-117,0,0,0,0,
+ 0,0,0,0,0,-5,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-130,0,0,0,0,0,0,
- -28,0,0,0,0,0,0,0,0,0,
- 0,0,-29,-97,0,0,-98,-99,-100,-57,
+ 0,0,0,0,0,0,-22,0,-141,0,
+ 0,0,0,0,0,0,0,-208,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-204,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-49,
0,0,0,0,0,0,0,0,0,0,
- 0,-30,0,0,0,0,0,0,-40,0,
+ 0,0,-83,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-45,0,0,0,0,0,0,0,0,
- -63,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-80,0,-45,0,0,0,0,
+ 0,0,0,0,0,-3,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -64,0,0,0,0,0,0,-41,0,0,
+ 0,0,0,0,0,0,-124,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -65,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-131,0,0,
+ 0,0,0,0,0,0,0,-199,0,0,
+ 0,0,0,0,0,0,0,-133,0,0,
+ -9,0,0,0,0,0,0,0,-23,0,
+ 0,0,0,0,-125,-144,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -66,0,0,0,0,0,0,-74,0,0,
+ 0,0,0,0,0,0,0,0,-30,0,
+ 0,0,0,0,0,0,0,0,-41,0,
+ 0,0,0,0,0,0,0,0,0,-63,
0,0,0,0,0,0,0,0,0,0,
- -67,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -68,0,0,0,0,0,0,-75,0,0,
+ -64,0,0,0,0,0,0,0,0,0,
+ -74,0,0,0,0,0,0,0,0,0,
+ 0,-65,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -69,0,0,0,0,0,0,0,0,0,
+ 0,0,-66,0,0,0,0,0,0,0,
+ 0,0,-75,0,0,0,0,0,0,0,
+ 0,0,0,-67,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -70,0,0,0,0,0,0,-76,0,0,
+ 0,0,0,0,-68,0,0,0,0,0,
+ 0,0,0,0,-76,0,0,0,0,0,
+ 0,0,0,0,0,-69,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -71,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-70,0,0,0,
+ 0,0,0,0,0,0,-77,0,0,0,
+ 0,0,0,0,0,0,0,-71,0,0,
0,0,0,0,0,0,0,0,0,0,
- -72,0,0,0,0,0,0,-77,0,0,
+ 0,0,0,0,0,0,0,0,-72,0,
+ 0,0,0,0,0,0,0,0,-78,0,
+ 0,0,0,0,0,0,0,0,0,-73,
0,0,0,0,0,0,0,0,0,0,
- -73,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -163,0,0,0,0,0,0,-78,0,0,
+ -137,0,0,0,0,0,0,0,0,0,
+ -79,0,0,0,0,0,0,0,0,0,
+ 0,-160,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -164,0,0,0,0,0,0,0,0,0,
+ 0,0,-161,0,0,0,0,0,0,0,
+ 0,0,-24,0,0,0,0,0,0,0,
+ 0,0,0,-196,0,0,0,0,0,0,
+ 0,0,0,-226,0,0,0,0,0,0,
+ 0,0,0,-205,0,0,0,0,0,0,
+ 0,0,0,-25,0,0,0,0,0,0,
+ 0,0,0,0,-6,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-134,
+ 0,-211,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -187,0,0,0,0,0,0,-101,0,0,
- 0,0,0,0,0,0,0,0,0,-201,
- 0,0,0,0,0,0,-102,0,0,0,
- 0,0,0,0,0,0,0,0,-207,0,
+ 0,-217,0,0,0,0,0,0,0,0,
+ 0,-26,0,0,0,0,0,0,0,0,
+ 0,-10,0,0,0,0,0,0,0,0,
+ -11,0,0,0,0,0,0,0,-27,-225,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-211,0,0,
+ 0,0,0,0,0,0,0,0,0,-61,
+ 0,0,0,0,0,0,0,0,0,-28,
+ 0,0,0,0,0,0,0,-97,0,-12,
+ 0,0,0,0,0,0,0,0,-50,0,
+ 0,0,0,0,0,0,0,0,-95,0,
+ 0,0,0,0,-174,-118,-86,-147,-29,-36,
+ 0,-98,0,0,0,0,-99,0,-59,0,
+ 0,0,0,0,0,0,0,0,-100,0,
+ 0,0,0,0,0,0,0,0,-212,0,
+ 0,0,0,0,-164,0,0,0,0,0,
+ 0,0,0,-92,0,-101,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-128,
+ -119,-135,0,0,-13,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-221,0,0,0,
+ 0,-202,0,0,0,0,0,0,-183,-37,
+ 0,0,0,0,0,0,-58,0,0,0,
+ 0,0,0,0,0,0,-139,0,0,0,
+ 0,0,0,-102,-206,0,0,0,0,-103,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-137,0,0,0,0,
+ 0,0,0,0,0,-89,-146,0,0,0,
+ 0,-55,0,0,0,0,0,0,0,0,
+ 0,-104,0,0,0,-136,0,0,0,0,
+ 0,0,0,-197,0,0,-195,0,-158,-105,
+ 0,0,0,0,0,-56,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-57,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-174,-146,-144,-86,-79,-202,
- -168,0,0,-58,0,0,0,0,0,0,
- -103,0,0,0,0,0,0,0,0,0,
- 0,0,0,-213,0,0,0,-104,-210,0,
- 0,0,0,0,0,0,0,0,0,-167,
- -91,0,0,0,0,0,0,-49,0,0,
- 0,0,0,0,-127,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-92,
- -96,-196,0,0,0,-105,0,0,0,0,
- 0,0,0,-106,0,0,0,0,0,0,
- -175,-94,-120,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-125,0,0,
- 0,0,0,0,0,-198,-107,0,0,0,
- 0,-122,0,0,-188,0,-108,0,0,-124,
- 0,0,0,0,0,0,0,0,-55,0,
- 0,0,0,0,0,-142,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-109,
- 0,-145,-132,-134,-87,0,-220,0,0,0,
- 0,-110,-150,0,-50,0,0,0,0,0,
- 0,0,0,0,0,-135,-139,0,0,0,
+ 0,-51,0,0,0,0,0,0,0,0,
+ 0,-87,0,-52,0,0,0,0,0,0,
+ 0,0,0,-186,0,-14,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-127,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-111,0,0,0,0,0,0,0,0,
- -16,0,0,0,0,0,0,0,-165,0,
- -112,0,-51,0,0,0,0,0,0,-113,
- 0,0,0,-52,0,0,0,0,0,0,
- 0,0,0,0,-114,-89,0,0,-53,0,
- 0,0,0,0,0,-121,0,0,-54,0,
- 0,0,0,0,0,-84,0,0,0,0,
- 0,0,0,-90,-178,-129,-152,-179,0,0,
- 0,0,0,0,0,0,-9,0,0,0,
- 0,0,0,-214,0,0,0,0,0,0,
- -93,0,0,0,0,0,0,0,0,0,
- -186,0,0,0,0,-95,-10,0,0,0,
- 0,0,0,0,0,0,0,-172,0,-115,
- -42,0,-203,0,0,0,0,0,0,0,
- 0,0,0,-116,-117,0,-118,0,0,0,
- 0,0,-126,0,0,0,0,0,0,0,
- -151,0,0,0,0,0,0,-166,0,0,
- 0,0,0,0,0,-222,0,0,0,0,
- -154,-157,0,-160,-208,-140,0,0,0,0,
- 0,-119,-131,0,-11,0,0,0,0,0,
- 0,-12,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-13,
- 0,0,0,0,0,0,-14,0,0,0,
- 0,0,0,-18,-133,-171,-136,-31,0,-193,
- 0,-32,0,-183,0,-33,0,-206,0,-169,
- -195,-197,0,-199,0,-200,0,0,0,0,
+ -53,0,0,0,0,0,0,0,0,0,
+ 0,-93,-91,-210,0,0,-106,0,0,-54,
+ 0,0,0,0,0,0,0,0,0,-219,
+ -130,-169,-182,-154,-84,0,0,0,0,0,
+ 0,-94,0,0,0,0,-189,0,0,0,
+ 0,0,0,0,-107,0,-7,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-34,0,0,0,
- -35,0,0,0,0,0,0,0,0,0,
- -46,0,0,0,0,0,0,0,-128,-191,
- -192,0,-148,0,0,0,0,0,0,-180,
- 0,-47,0,0,0,0,0,0,-141,0,
- 0,0,0,-215,0,-48,0,0,0,0,
- 0,0,-81,0,0,0,0,0,0,-218,
- -153,0,0,0,0,-155,-205,0,-181,-173,
- 0,0,0,-216,0,-156,0,-194,0,0,
- 0,0,-177,-185,0,-219,0,0,0,0,
- 0,-212,0,-209,-149,0,0,-223,0,0,
- 0,0,0,0,-217,0,-1,0,0,0,
- -182,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-161,0,0,0,0,
- 0,0,0,0,0,0,0,0,-162,0,
- 0,0,0,0,-190,-176,0,0,0,0,
+ 0,0,0,0,0,-96,0,0,0,0,
+ 0,-143,0,0,0,0,0,-152,0,0,
+ 0,0,0,0,0,0,-42,-156,0,0,
+ 0,0,-151,0,-108,-165,0,0,0,0,
+ 0,0,0,0,-163,0,0,0,0,0,
+ 0,0,-109,-110,0,0,-46,0,0,0,
+ 0,0,0,0,0,-111,0,-47,0,0,
+ 0,0,0,0,0,0,0,0,0,-48,
+ 0,0,0,0,0,0,0,0,-129,-168,
+ -187,-159,-162,-39,-138,-181,-173,0,0,0,
+ 0,0,-112,0,-113,0,-8,0,0,0,
+ 0,0,0,-114,0,0,0,0,0,-121,
+ -123,0,0,0,0,0,-15,0,0,0,
+ 0,0,0,-16,0,0,0,0,0,0,
+ 0,-18,0,0,0,-140,0,-60,0,0,
+ 0,0,-31,0,-185,0,-38,0,-149,-167,
+ 0,-172,0,-32,-166,-220,0,0,0,0,
+ -155,0,0,0,0,0,-33,-170,0,0,
+ 0,0,0,0,0,0,0,-34,0,0,
+ 0,0,-122,0,0,0,0,0,-35,0,
+ 0,-200,-190,0,0,-203,-171,0,0,0,
+ 0,0,-126,0,0,0,0,-176,0,0,
+ 0,0,0,0,-142,0,0,0,0,0,
+ -184,0,-192,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,-178,-201,-179,-150,-216,0,-188,0,0,
+ -204,0,0,-180,0,-213,-177,0,-191,-215,
+ -221,0,-209,0,-214,0,0,-198,0,0,
+ -194,0,-222,0,0,0,0,0,0,0,
+ 0,0,0,-218,0,0,0,-223,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-38,0,-39,-60,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,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;
@@ -235,198 +237,200 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP
public interface BaseAction {
public final static char baseAction[] = {
- 85,7,22,22,20,20,31,31,70,70,
- 1,1,1,1,2,2,2,3,3,4,
- 4,4,4,4,4,4,4,54,54,71,
- 71,5,5,5,5,5,5,5,5,5,
- 5,5,6,6,8,8,8,8,9,9,
- 9,10,10,10,11,11,11,11,11,12,
- 12,12,13,13,14,14,15,15,16,16,
- 17,17,18,18,19,19,19,19,19,19,
- 19,19,19,19,19,19,96,30,28,86,
- 86,73,73,45,97,97,97,97,97,97,
- 97,98,98,98,99,99,104,104,105,105,
- 100,100,101,101,101,107,107,102,102,102,
- 102,103,103,103,103,103,106,106,21,21,
- 21,21,21,33,33,33,79,79,74,74,
- 74,74,75,75,75,76,76,76,77,77,
- 77,78,78,78,108,108,109,109,110,34,
- 36,36,36,36,36,55,57,57,57,57,
- 57,57,57,57,57,57,57,57,67,67,
- 32,32,64,64,64,64,65,65,65,58,
- 58,59,59,51,51,51,27,87,87,80,
- 81,81,81,66,66,82,82,83,83,68,
- 68,23,24,24,24,35,50,50,37,37,
- 37,37,40,40,42,38,38,39,43,43,
- 111,111,41,112,112,88,88,29,29,29,
- 29,29,29,29,29,29,84,52,52,52,
- 52,61,61,60,60,60,62,62,53,53,
- 89,89,44,44,63,63,63,46,46,46,
- 47,48,48,48,49,49,49,49,56,56,
- 72,72,72,72,69,90,91,91,92,92,
- 93,93,113,113,114,114,115,115,115,115,
- 117,117,116,116,116,118,118,85,85,1,
- 1,1,5,5,5,5,5,5,23,23,
- 25,25,26,26,94,94,94,97,119,119,
- 119,119,119,119,119,102,102,102,102,102,
- 102,102,102,102,102,102,102,102,102,102,
- 102,102,102,102,102,102,102,102,102,120,
- 120,1,14,19,15,415,713,44,33,430,
- 429,511,432,516,515,618,532,701,628,74,
- 91,65,51,472,134,211,318,319,830,14,
- 19,15,415,316,136,133,135,159,800,14,
- 19,15,415,42,44,20,430,429,511,432,
- 516,515,618,532,1390,1149,138,138,165,860,
- 14,19,15,415,314,142,145,148,151,74,
- 430,359,186,1416,382,1325,1406,1434,1461,1476,
- 1231,734,14,19,15,415,713,44,514,430,
- 429,511,432,516,515,618,532,701,628,74,
- 278,734,14,19,15,415,713,44,514,430,
- 429,511,432,516,515,618,532,701,628,74,
- 278,800,14,19,15,415,42,44,23,718,
- 440,14,19,15,415,713,44,280,430,429,
- 511,432,516,515,618,532,701,628,74,1379,
- 281,73,238,661,780,173,184,280,800,14,
- 19,15,415,42,44,320,430,429,511,1287,
- 281,138,285,1545,486,14,19,15,415,713,
- 44,514,430,429,511,432,516,515,618,532,
- 701,628,74,278,394,14,19,15,415,713,
- 44,1268,430,429,511,432,516,515,618,532,
- 701,628,74,1290,340,65,237,890,14,19,
- 15,415,312,800,14,19,15,415,42,44,
- 282,430,429,511,432,516,1362,134,211,318,
- 319,302,22,283,1724,1285,286,136,133,135,
- 159,800,14,19,15,415,42,44,126,430,
- 429,511,432,516,515,618,1405,1232,350,138,
- 272,165,920,14,19,15,415,40,142,145,
- 148,151,950,14,19,15,415,33,1325,1406,
- 1434,1461,1476,1231,800,14,19,15,415,713,
- 44,654,430,429,511,432,516,515,618,532,
- 701,628,74,91,980,14,19,15,415,713,
- 44,1679,430,429,511,432,516,515,618,532,
- 701,628,74,1306,612,14,19,15,415,42,
- 44,162,430,429,511,432,516,515,618,532,
- 701,628,93,109,1010,1604,326,1050,435,471,
- 800,14,19,15,415,42,44,382,430,429,
- 511,1320,767,14,19,15,415,713,44,1333,
- 430,429,511,432,516,515,618,532,701,628,
- 74,278,800,14,19,15,415,713,44,573,
- 430,429,511,432,516,515,618,532,701,628,
- 74,92,800,14,19,15,415,42,44,1693,
- 719,800,14,19,15,415,713,44,284,430,
- 429,511,432,516,515,618,532,701,628,74,
- 85,800,14,19,15,415,713,44,573,430,
- 429,511,432,516,515,618,532,701,628,74,
- 84,800,14,19,15,415,713,44,16,430,
- 429,511,432,516,515,618,532,701,628,74,
- 83,800,14,19,15,415,713,44,573,430,
- 429,511,432,516,515,618,532,701,628,74,
- 82,800,14,19,15,415,713,44,1490,430,
- 429,511,432,516,515,618,532,701,628,74,
- 81,800,14,19,15,415,713,44,573,430,
- 429,511,432,516,515,618,532,701,628,74,
- 80,800,14,19,15,415,713,44,1504,430,
- 429,511,432,516,515,618,532,701,628,74,
- 79,800,14,19,15,415,713,44,573,430,
- 429,511,432,516,515,618,532,701,628,74,
- 78,800,14,19,15,415,713,44,1505,430,
- 429,511,432,516,515,618,532,701,628,74,
- 77,800,14,19,15,415,713,44,573,430,
- 429,511,432,516,515,618,532,701,628,74,
- 76,800,14,19,15,415,713,44,1507,430,
- 429,511,432,516,515,618,532,701,628,74,
- 75,800,14,19,15,415,713,44,573,430,
- 429,511,432,516,515,618,532,701,628,74,
- 1660,800,14,19,15,415,713,44,1552,430,
- 429,511,432,516,515,618,532,701,628,74,
- 1661,800,14,19,15,415,42,44,86,430,
- 429,511,432,516,515,618,532,701,628,93,
- 800,14,19,15,415,42,44,200,430,429,
- 511,432,516,515,618,532,701,628,93,800,
- 14,19,15,415,42,44,1707,430,429,511,
- 432,516,515,618,532,701,628,93,800,14,
- 19,15,415,42,44,210,430,429,511,432,
- 516,515,618,532,701,628,93,800,14,19,
- 15,415,42,44,1714,430,429,511,432,516,
- 515,618,532,701,628,93,800,14,19,15,
- 415,42,44,201,430,429,511,432,516,515,
- 618,532,701,628,73,480,543,292,369,573,
- 605,709,202,575,800,14,19,15,415,42,
- 44,249,430,429,511,432,516,515,1332,21,
- 252,211,318,319,446,271,183,273,287,525,
- 226,1454,1670,216,1161,219,1610,221,222,227,
- 135,663,264,1158,601,269,260,1718,800,14,
- 19,15,415,42,44,573,430,429,1048,261,
- 274,216,1161,219,1610,221,222,227,208,271,
- 805,340,1033,1553,1600,270,354,216,1161,219,
- 1610,221,222,227,474,258,264,1158,601,269,
- 1600,240,835,6,134,211,318,319,1276,193,
- 441,271,1595,1215,137,133,135,159,121,217,
- 1161,219,1610,221,222,227,405,532,266,1158,
- 601,269,64,1454,1597,812,139,244,165,1546,
- 472,251,211,318,319,143,146,149,152,800,
- 14,19,15,415,42,44,472,430,429,511,
- 432,1277,239,216,1161,219,1610,221,222,227,
- 301,194,573,6,6,516,1732,405,241,1157,
- 1701,1706,572,472,1454,800,14,19,15,415,
- 42,44,276,430,429,1067,6,235,134,211,
- 318,319,490,1716,1766,324,197,199,141,133,
- 135,159,610,1189,216,1161,219,1610,221,222,
- 227,950,14,19,15,415,32,1732,287,472,
- 140,426,165,800,14,19,15,415,42,44,
- 219,430,429,1171,800,14,19,15,415,42,
- 44,240,430,429,1188,618,1059,198,199,800,
- 14,19,15,415,42,44,1074,430,1236,800,
- 14,19,15,415,42,44,1148,430,1244,134,
- 211,318,319,1659,1091,480,599,6,692,144,
- 133,135,159,1735,1710,271,274,800,14,19,
- 15,415,42,39,65,271,275,134,211,318,
- 319,1101,266,1158,601,269,182,147,133,135,
- 159,605,264,1158,601,269,1133,800,14,19,
- 15,415,42,38,134,211,318,319,573,1215,
- 280,517,1616,692,150,133,135,159,381,134,
- 211,318,319,289,577,619,1536,620,277,153,
- 133,135,159,566,14,19,15,415,42,35,
- 271,566,14,19,15,415,42,35,566,14,
- 19,15,415,42,35,244,78,264,1158,601,
- 269,6,6,325,6,654,121,1684,1723,1751,
- 245,461,656,665,263,800,14,19,15,415,
- 42,37,800,14,19,15,415,42,36,251,
- 211,318,319,217,1161,219,1610,221,222,227,
- 800,14,19,15,415,42,35,800,14,19,
- 15,415,42,34,6,699,712,700,6,1745,
- 573,361,6,574,480,361,6,1779,605,361,
- 866,599,480,361,480,196,480,1156,1734,196,
- 223,1491,87,196,808,1491,87,196,808,1491,
- 87,229,808,1491,87,26,808,6,759,225,
- 291,6,848,185,361,184,888,203,361,257,
- 928,800,14,19,15,415,42,47,196,478,
- 472,472,196,653,1491,87,574,808,1491,87,
- 114,808,800,14,19,15,415,42,46,121,
- 1156,968,242,243,480,1008,800,14,19,15,
- 415,42,45,701,14,19,15,415,42,43,
- 573,55,251,211,318,319,112,472,574,693,
- 169,1416,256,574,472,204,536,574,478,1322,
- 228,1663,196,283,228,574,596,196,1251,288,
- 574,196,452,1251,597,342,290,1251,647,1156,
- 1157,574,574,1918,196,480,232,658,1670,1918,
- 1251,536,191,1918,654,1156,1156,191,1918,1155,
- 1786,191,1918,1001,1435,1786,121,1918,1612,1786,
- 1232,256,1918,1918,191,87,279,307,1322,349,
- 1663,1614,1786,1670,207,425,226,256,256,251,
- 211,318,319,574,1700,1488,1663,1663,1438,1709,
- 1918,1918,252,211,318,319,1918,196,252,211,
- 318,319,1918,1251,476,1918,6,6,1918,207,
- 1918,654,1726,654,654,1918,1918,1785,1918,1918,
- 1918,1918,368,1493,1709,1918,1918,192,1918,1918,
- 1918,1918,89,1918,87,87,383,1381,1918,1918,
- 1918,1918,1918,1918,1918,1918,1918,1918,1918,1918,
- 1918,1918,1918,1918,1918,1918,1918,1918,1918,1918,
- 1918,1918,1918,1918,1918,1918,1918,1918,1918,1918,
- 1918,1918,1918,1918,1918,1918,1918,1918,1918,1918,
- 1918,1918,1918,1918,1918,1918,1918,1918,1918,1918,
- 1159,1918,0,321,694,0,17,179,0,18,
- 178,0,1,2142,0,1,2153,0
+ 89,10,105,22,22,21,21,46,46,72,
+ 72,1,1,2,2,2,2,3,3,3,
+ 4,5,5,5,5,5,5,5,5,62,
+ 62,73,6,6,6,6,6,6,6,6,
+ 6,6,6,7,7,8,8,8,8,9,
+ 9,9,11,11,11,12,12,12,12,12,
+ 13,13,13,14,14,15,15,16,16,17,
+ 17,18,18,19,19,20,20,20,20,20,
+ 20,20,20,20,20,20,20,106,31,28,
+ 90,90,74,74,48,107,107,107,107,107,
+ 107,107,108,108,108,109,109,114,114,115,
+ 115,110,110,111,111,111,117,117,112,112,
+ 112,112,113,113,113,113,113,116,116,27,
+ 27,27,27,27,35,35,35,80,80,75,
+ 75,75,75,76,76,76,77,77,77,78,
+ 78,78,79,79,79,118,118,119,119,120,
+ 36,38,38,38,38,38,56,57,57,57,
+ 57,57,57,57,57,57,57,57,57,66,
+ 63,63,91,92,68,68,64,64,64,69,
+ 81,81,82,82,70,70,70,33,93,93,
+ 83,84,84,84,65,65,94,85,85,86,
+ 86,71,71,23,24,24,24,37,53,53,
+ 39,39,39,39,42,42,44,40,40,41,
+ 45,45,121,121,43,122,122,95,95,29,
+ 29,29,29,29,29,29,29,29,87,54,
+ 54,54,54,30,59,59,58,58,58,60,
+ 60,55,55,96,96,47,47,61,61,61,
+ 49,49,49,50,51,51,51,52,52,52,
+ 52,67,67,32,32,34,98,97,97,97,
+ 97,88,99,100,100,101,101,102,102,123,
+ 123,124,124,125,125,125,125,127,127,126,
+ 126,126,128,129,129,89,89,2,2,2,
+ 6,6,6,6,6,6,23,23,25,25,
+ 26,26,103,103,103,107,130,130,130,130,
+ 130,130,130,112,112,112,112,112,112,112,
+ 112,112,112,112,112,112,112,112,112,112,
+ 112,112,112,112,112,112,112,131,131,1,
+ 1262,17,21,18,442,1259,45,523,485,295,
+ 577,541,1063,729,1162,1104,1220,1189,75,92,
+ 76,429,135,213,326,327,525,20,17,21,
+ 18,442,43,44,137,134,136,160,618,20,
+ 17,21,18,442,43,45,523,485,838,577,
+ 541,1063,729,1162,1694,139,166,551,28,123,
+ 1700,6,143,146,149,152,277,438,39,396,
+ 40,1675,65,440,1472,1396,1523,1552,1586,1228,
+ 556,20,17,21,18,442,1259,45,523,485,
+ 427,577,541,1063,729,1162,1104,1220,1189,75,
+ 281,232,618,20,17,21,18,442,43,45,
+ 1267,1746,282,132,1700,66,347,20,17,21,
+ 18,442,1259,45,523,485,427,577,541,1063,
+ 729,1162,1104,1220,1189,75,281,225,179,492,
+ 218,1616,221,1745,223,224,229,287,282,656,
+ 1700,1758,32,59,1874,830,1861,1424,293,390,
+ 135,213,326,327,133,768,151,88,288,328,
+ 315,64,137,134,136,160,799,1255,255,213,
+ 326,327,1701,289,199,200,649,20,17,21,
+ 18,442,324,139,166,275,28,28,1700,1700,
+ 143,146,149,152,290,438,1773,142,28,32,
+ 1700,283,1472,1396,1523,1552,1586,1228,587,20,
+ 17,21,18,442,1259,45,523,485,379,577,
+ 541,1063,729,1162,1104,1220,1189,75,281,1672,
+ 618,20,17,21,18,442,43,45,523,485,
+ 282,1306,1700,281,20,17,21,18,442,1259,
+ 45,523,485,1793,577,541,1063,729,1162,1104,
+ 1220,1189,75,735,235,239,618,20,17,21,
+ 18,442,43,45,1279,291,618,20,17,21,
+ 18,442,1259,45,523,485,22,577,541,1063,
+ 729,1162,1104,1220,1189,75,92,804,20,17,
+ 21,18,442,1259,45,523,485,1805,577,541,
+ 1063,729,1162,1104,1220,1189,75,1592,461,20,
+ 17,21,18,442,43,45,523,485,982,577,
+ 541,1063,729,1162,1104,1220,1189,94,243,187,
+ 334,618,20,17,21,18,442,43,40,53,
+ 440,255,213,326,327,235,314,20,17,21,
+ 18,442,1259,45,523,485,1613,577,541,1063,
+ 729,1162,1104,1220,1189,75,1673,241,240,618,
+ 20,17,21,18,442,1259,45,523,485,838,
+ 577,541,1063,729,1162,1104,1220,1189,75,93,
+ 618,20,17,21,18,442,1259,45,523,485,
+ 19,577,541,1063,729,1162,1104,1220,1189,75,
+ 86,618,20,17,21,18,442,1259,45,523,
+ 485,838,577,541,1063,729,1162,1104,1220,1189,
+ 75,85,618,20,17,21,18,442,1259,45,
+ 523,485,534,577,541,1063,729,1162,1104,1220,
+ 1189,75,84,618,20,17,21,18,442,1259,
+ 45,523,485,838,577,541,1063,729,1162,1104,
+ 1220,1189,75,83,618,20,17,21,18,442,
+ 1259,45,523,485,535,577,541,1063,729,1162,
+ 1104,1220,1189,75,82,618,20,17,21,18,
+ 442,1259,45,523,485,838,577,541,1063,729,
+ 1162,1104,1220,1189,75,81,618,20,17,21,
+ 18,442,1259,45,523,485,546,577,541,1063,
+ 729,1162,1104,1220,1189,75,80,618,20,17,
+ 21,18,442,1259,45,523,485,838,577,541,
+ 1063,729,1162,1104,1220,1189,75,79,618,20,
+ 17,21,18,442,1259,45,523,485,1256,577,
+ 541,1063,729,1162,1104,1220,1189,75,78,618,
+ 20,17,21,18,442,1259,45,523,485,838,
+ 577,541,1063,729,1162,1104,1220,1189,75,77,
+ 618,20,17,21,18,442,1259,45,523,485,
+ 1321,577,541,1063,729,1162,1104,1220,1189,75,
+ 76,618,20,17,21,18,442,1259,45,523,
+ 485,838,577,541,1063,729,1162,1104,1220,1189,
+ 75,74,618,20,17,21,18,442,1259,45,
+ 523,485,23,577,541,1063,729,1162,1104,1220,
+ 1189,75,1832,618,20,17,21,18,442,1259,
+ 45,523,485,171,577,541,1063,729,1162,1104,
+ 1220,1189,75,1834,618,20,17,21,18,442,
+ 43,45,523,485,736,577,541,1063,729,1162,
+ 1104,1220,1189,94,618,20,17,21,18,442,
+ 43,45,523,485,333,577,541,1063,729,1162,
+ 1104,1220,1189,94,1726,680,20,17,21,18,
+ 442,322,1853,219,1616,221,1745,223,224,229,
+ 243,186,618,20,17,21,18,442,43,45,
+ 523,485,212,577,541,1063,729,1162,1104,1220,
+ 1189,94,618,20,17,21,18,442,43,45,
+ 523,485,613,577,541,1063,729,1162,1104,1220,
+ 1189,94,618,20,17,21,18,442,43,39,
+ 1863,618,20,17,21,18,442,43,38,176,
+ 618,20,17,21,18,442,43,45,523,485,
+ 202,577,541,1063,729,1162,1104,1220,1189,94,
+ 618,20,17,21,18,442,43,45,523,485,
+ 238,577,541,1063,729,1162,1104,1685,225,179,
+ 618,20,17,21,18,442,43,37,203,618,
+ 20,17,21,18,442,43,45,523,485,380,
+ 1374,135,213,326,327,654,854,385,1019,885,
+ 243,31,835,138,134,136,160,81,1740,618,
+ 20,17,21,18,442,43,45,523,485,115,
+ 577,541,1063,1646,140,166,276,274,28,1002,
+ 1700,144,147,150,153,979,438,218,1616,221,
+ 1745,223,224,229,325,1676,341,267,1257,536,
+ 272,263,255,213,326,327,277,1813,1416,264,
+ 838,886,188,1751,274,618,20,17,21,18,
+ 442,43,36,25,218,1616,221,1745,223,224,
+ 229,273,232,1322,267,1257,536,272,1844,1030,
+ 243,31,1746,28,261,1700,1320,618,20,17,
+ 21,18,442,43,45,523,485,6,577,541,
+ 1063,729,1634,718,400,243,1783,450,274,1726,
+ 480,218,1616,221,1745,223,224,229,219,1616,
+ 221,1745,223,224,229,1874,864,838,269,1257,
+ 536,272,618,20,17,21,18,442,43,45,
+ 523,485,511,577,541,1565,243,188,279,135,
+ 213,326,327,24,583,198,200,243,296,32,
+ 80,145,134,136,160,1836,618,20,17,21,
+ 18,442,43,45,523,485,210,577,1615,618,
+ 20,17,21,18,442,43,45,523,485,1798,
+ 577,1633,618,20,17,21,18,442,43,45,
+ 523,485,378,1380,618,20,17,21,18,442,
+ 43,45,523,485,632,1412,618,20,17,21,
+ 18,442,43,35,1342,135,213,326,327,430,
+ 20,17,21,18,442,43,36,142,134,136,
+ 160,618,20,17,21,18,442,43,45,523,
+ 1430,246,358,881,243,298,294,249,141,166,
+ 618,20,17,21,18,442,43,45,523,1527,
+ 674,883,838,883,6,848,135,213,326,327,
+ 1746,1835,909,1782,1787,1669,195,661,148,134,
+ 136,160,278,280,231,193,277,711,20,17,
+ 21,18,442,320,274,135,213,326,327,218,
+ 1616,221,1745,223,224,229,926,151,134,136,
+ 160,1130,235,1844,267,1257,536,272,430,20,
+ 17,21,18,442,43,36,1320,880,6,135,
+ 213,326,327,235,243,70,599,522,1677,1841,
+ 333,154,134,136,160,430,20,17,21,18,
+ 442,43,36,120,706,332,274,618,20,17,
+ 21,18,442,43,48,228,200,247,618,20,
+ 17,21,18,442,43,47,267,1257,536,272,
+ 618,20,17,21,18,442,43,46,266,924,
+ 601,113,974,235,6,518,924,441,1783,507,
+ 507,507,1847,20,656,487,507,742,20,17,
+ 21,18,442,41,550,242,1258,1258,197,1701,
+ 912,175,88,1258,1484,644,1701,773,20,17,
+ 21,18,442,34,773,20,17,21,18,442,
+ 33,284,6,1773,259,260,391,1397,6,1739,
+ 1349,259,369,6,1397,518,1739,340,656,486,
+ 32,193,6,369,6,386,32,656,209,197,
+ 88,930,1838,769,369,1607,88,6,957,1683,
+ 197,88,1557,1849,769,90,1607,369,6,418,
+ 1701,197,88,925,227,769,1701,1607,369,6,
+ 811,180,247,716,197,88,661,57,769,369,
+ 1607,853,507,382,1349,197,88,507,978,769,
+ 1084,1607,274,1726,895,382,197,88,1858,1258,
+ 769,6,1607,518,197,937,254,213,326,327,
+ 1484,1833,269,1257,536,272,979,1021,254,213,
+ 326,327,235,169,235,539,1006,259,441,1783,
+ 1846,518,1739,507,838,507,838,382,1851,723,
+ 518,518,525,235,244,192,245,192,382,483,
+ 197,747,1258,235,525,225,1484,230,1735,1671,
+ 254,213,326,327,449,295,234,1855,373,1939,
+ 736,254,213,326,327,297,1939,204,1939,1939,
+ 259,1939,1032,1542,1939,1739,181,205,1939,1939,
+ 1939,1939,1939,192,1939,1939,708,1939,194,209,
+ 1939,1939,1939,1939,1850,1671,1939,1289,1939,1939,
+ 1939,1939,1939,1786,1849,1939,0,329,698,0,
+ 20,179,0,1,2165,0,1,2176,0
};
};
public final static char baseAction[] = BaseAction.baseAction;
@@ -437,131 +441,119 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP
public interface TermCheck {
public final static byte termCheck[] = {0,
0,1,2,3,4,0,6,7,8,9,
- 10,11,12,13,14,15,16,17,18,19,
+ 10,11,12,13,14,15,16,17,18,0,
20,21,22,23,24,25,26,27,28,29,
- 30,0,0,33,34,35,36,37,38,39,
+ 30,0,32,33,34,35,36,37,0,0,
40,41,42,43,44,45,46,47,48,49,
- 0,51,52,53,0,1,0,3,0,5,
- 6,7,8,0,0,11,12,13,4,6,
- 7,8,0,0,11,12,13,0,1,2,
- 0,4,9,10,30,0,0,33,34,35,
- 36,37,38,39,40,41,42,43,44,45,
- 46,47,48,49,54,51,52,53,0,55,
- 56,0,1,0,3,0,5,6,7,8,
- 0,89,11,12,13,0,6,7,8,57,
- 58,11,12,13,0,1,2,0,1,5,
- 3,30,57,58,33,34,35,36,37,38,
- 39,40,41,42,43,44,45,46,47,48,
- 49,0,51,52,53,31,55,56,0,1,
- 0,3,0,5,6,7,8,69,0,11,
- 12,13,69,0,50,0,14,79,80,81,
- 82,83,84,85,86,87,88,72,30,0,
- 0,33,34,35,36,37,38,39,40,41,
- 42,43,44,45,46,47,48,49,0,51,
- 52,53,0,55,56,0,1,0,3,0,
- 5,6,7,8,0,74,11,12,13,0,
- 6,7,8,0,5,11,12,13,0,64,
- 65,66,67,70,71,30,57,58,33,34,
- 35,36,37,38,39,40,41,42,43,44,
- 45,46,47,48,49,0,51,52,53,0,
- 55,56,0,1,0,3,0,5,6,7,
- 8,0,74,11,12,13,69,6,7,8,
- 0,0,11,12,13,57,58,64,65,66,
- 67,32,30,0,75,33,34,35,36,37,
- 38,39,40,41,42,43,44,45,46,47,
- 48,49,31,51,52,53,0,55,56,0,
- 1,0,3,57,58,6,7,8,0,0,
- 11,12,13,0,6,7,8,73,0,11,
- 12,13,9,10,64,65,66,67,0,30,
- 2,0,33,34,35,36,37,38,39,40,
- 41,42,43,44,45,46,47,48,49,31,
- 51,52,53,0,1,2,3,4,5,31,
- 0,60,9,10,0,1,2,14,15,16,
- 17,18,19,20,21,22,23,24,25,26,
- 27,28,29,30,0,0,77,78,0,0,
- 6,7,8,4,0,11,12,13,4,0,
- 1,2,3,4,5,0,1,2,9,10,
- 0,0,59,14,15,16,17,18,19,20,
- 21,22,23,24,25,26,27,28,29,30,
- 0,0,68,0,4,0,5,0,0,0,
- 5,4,9,10,5,0,1,2,3,4,
- 5,62,63,68,9,10,62,63,59,14,
+ 50,51,0,53,54,55,0,1,0,3,
+ 8,5,4,0,0,0,2,11,12,0,
+ 14,6,7,9,10,0,1,38,3,0,
+ 0,25,26,27,4,6,7,68,32,33,
+ 34,35,36,37,19,31,40,41,42,43,
+ 44,45,46,47,48,49,50,51,52,53,
+ 54,55,0,1,0,3,60,5,4,0,
+ 62,63,0,11,12,61,14,64,65,66,
+ 67,0,0,64,65,66,67,25,26,27,
+ 76,0,62,63,32,33,34,35,36,37,
+ 0,19,40,41,42,43,44,45,46,47,
+ 48,49,50,51,52,53,54,55,0,1,
+ 0,3,60,5,0,0,62,63,4,11,
+ 12,31,14,64,65,66,67,0,1,0,
+ 3,0,0,25,26,27,5,56,57,0,
+ 32,33,34,35,36,37,19,8,40,41,
+ 42,43,44,45,46,47,48,49,50,51,
+ 52,53,54,55,0,1,0,3,60,38,
+ 39,0,1,2,0,11,12,0,14,5,
+ 70,71,0,1,0,3,0,1,0,25,
+ 26,27,77,78,6,7,32,33,34,35,
+ 36,37,70,71,40,41,42,43,44,45,
+ 46,47,48,49,50,51,0,53,54,55,
+ 0,1,2,3,4,5,6,7,8,9,
+ 10,0,58,13,0,15,16,17,18,68,
+ 20,21,22,23,24,59,0,31,28,29,
+ 30,74,32,0,1,2,3,4,5,6,
+ 7,8,9,10,0,1,13,3,15,16,
+ 17,18,0,20,21,22,23,24,58,0,
+ 0,28,29,30,5,32,0,1,2,3,
+ 4,5,6,7,8,9,10,0,1,13,
+ 3,15,16,17,18,19,20,21,22,23,
+ 24,58,0,1,28,29,30,0,39,0,
+ 1,0,3,89,0,0,2,2,11,12,
+ 0,14,11,12,4,14,56,57,52,0,
+ 0,0,25,26,27,73,25,26,27,32,
+ 33,34,35,36,37,31,31,40,41,42,
+ 43,44,45,46,47,48,49,50,51,0,
+ 1,2,3,4,5,6,7,8,9,10,
+ 0,1,13,3,15,16,17,18,0,20,
+ 21,22,23,24,0,56,57,28,29,30,
+ 0,1,2,3,4,5,6,7,8,9,
+ 10,0,1,13,3,15,16,17,18,0,
+ 20,21,22,23,24,0,0,58,28,29,
+ 30,0,1,2,3,4,0,6,7,8,
+ 9,10,0,0,13,0,15,16,17,18,
+ 0,20,21,22,23,24,68,0,58,28,
+ 29,30,5,38,0,1,2,3,4,0,
+ 6,7,8,9,10,56,57,13,0,15,
+ 16,17,18,19,20,21,22,23,24,0,
+ 0,60,28,29,30,0,1,2,3,4,
+ 74,6,7,8,9,10,56,57,13,52,
15,16,17,18,19,20,21,22,23,24,
- 25,26,27,28,29,0,0,32,2,68,
- 4,6,7,8,0,50,11,12,13,5,
- 59,0,62,63,55,0,1,60,3,0,
- 55,0,0,1,2,30,4,31,33,34,
- 35,36,37,38,39,40,41,42,43,44,
- 45,46,47,48,49,0,1,2,3,4,
- 5,0,0,31,9,10,0,5,54,14,
- 15,16,17,18,19,20,21,22,23,24,
- 25,26,27,28,29,0,0,1,0,75,
- 5,70,71,5,0,1,0,3,32,0,
- 0,0,1,2,3,4,5,0,0,0,
- 9,10,50,14,59,14,15,16,17,18,
- 19,20,21,22,23,24,25,26,27,28,
- 29,0,1,72,3,50,0,1,50,54,
- 32,32,0,0,0,0,60,0,1,2,
- 3,4,0,1,0,3,9,10,0,0,
- 59,14,15,16,17,18,19,20,21,22,
- 23,24,25,26,27,28,29,32,0,0,
- 73,0,0,0,32,0,32,0,0,0,
- 0,1,2,3,4,0,54,54,0,9,
- 10,0,0,56,14,15,16,17,18,19,
- 20,21,22,23,24,25,26,27,28,29,
- 32,32,32,0,1,2,3,4,0,31,
- 0,0,9,10,0,54,54,14,15,16,
- 17,18,19,20,21,22,23,24,25,26,
- 27,28,29,0,0,32,0,1,2,3,
- 4,60,0,0,0,9,10,0,0,0,
- 14,15,16,17,18,19,20,21,22,23,
- 24,25,26,27,28,29,0,0,32,0,
- 1,2,3,4,0,1,0,3,9,10,
- 31,0,0,14,15,16,17,18,19,20,
- 21,22,23,24,25,26,27,28,29,0,
- 1,2,3,4,0,1,32,3,9,10,
- 61,0,31,14,15,16,17,18,19,20,
- 21,22,23,24,25,26,27,28,29,0,
- 1,2,3,4,0,0,32,2,9,10,
- 0,0,61,14,15,16,17,18,19,20,
- 21,22,23,24,25,26,27,28,29,0,
- 1,2,3,4,0,0,31,0,9,10,
- 0,0,0,14,15,16,17,18,19,20,
- 21,22,23,24,25,26,27,28,29,0,
- 1,2,3,4,0,0,0,0,9,10,
- 0,0,0,14,15,16,17,18,19,20,
- 21,22,23,24,25,26,27,28,29,0,
- 1,2,3,4,0,0,0,0,9,10,
- 0,0,0,14,15,16,17,18,19,20,
- 21,22,23,24,25,26,27,28,29,0,
- 1,2,3,4,0,0,0,0,9,10,
- 0,0,0,14,15,16,17,18,19,20,
- 21,22,23,24,25,26,27,28,29,0,
- 0,2,0,4,5,6,7,8,0,0,
- 11,12,13,0,0,0,0,0,0,0,
- 0,0,0,1,2,0,4,0,0,30,
- 31,0,33,34,35,36,37,0,0,0,
- 0,2,0,4,5,6,7,8,0,50,
- 11,12,13,31,6,7,8,0,0,11,
- 12,13,0,0,0,2,0,4,0,30,
- 31,0,33,34,35,36,37,0,30,0,
- 0,33,34,35,36,37,6,7,8,50,
- 0,11,12,13,31,0,6,7,8,0,
- 0,11,12,13,0,0,0,0,0,0,
- 30,0,0,33,34,35,36,37,0,0,
- 30,0,0,33,34,35,36,37,6,7,
- 8,0,0,11,12,13,0,0,0,2,
- 2,0,5,0,0,0,0,0,0,0,
- 0,0,30,15,16,33,34,35,36,37,
- 0,0,0,0,0,0,0,0,31,31,
+ 0,31,0,28,29,30,0,1,2,3,
+ 4,0,6,7,8,9,10,59,0,13,
+ 0,15,16,17,18,19,20,21,22,23,
+ 24,61,0,31,28,29,30,0,1,2,
+ 3,4,73,6,7,8,9,10,0,31,
+ 13,0,15,16,17,18,5,20,21,22,
+ 23,24,0,61,0,28,29,30,0,1,
+ 2,3,4,0,6,7,8,9,10,59,
+ 0,13,0,15,16,17,18,0,20,21,
+ 22,23,24,0,1,2,28,29,30,0,
+ 1,2,3,4,72,6,7,8,9,10,
+ 0,38,13,0,15,16,17,18,38,20,
+ 21,22,23,24,0,0,75,28,29,30,
+ 0,1,2,3,4,0,6,7,8,9,
+ 10,0,0,13,0,15,16,17,18,0,
+ 20,21,22,23,24,0,1,2,28,29,
+ 30,0,1,2,3,4,0,6,7,8,
+ 9,10,0,0,13,0,15,16,17,18,
+ 38,20,21,22,23,24,0,0,0,28,
+ 29,30,0,1,2,3,4,72,6,7,
+ 8,9,10,0,69,13,19,15,16,17,
+ 18,0,20,21,22,23,24,0,0,0,
+ 28,29,30,0,1,2,3,4,0,6,
+ 7,8,9,10,0,69,13,19,15,16,
+ 17,18,0,20,21,22,23,24,0,0,
+ 0,28,29,30,0,0,2,0,4,5,
+ 11,12,5,14,0,11,12,0,14,2,
+ 0,0,5,0,25,26,27,0,0,25,
+ 26,27,5,0,0,31,32,33,34,35,
+ 36,37,19,39,11,12,39,14,31,0,
+ 0,2,0,4,0,0,39,5,25,26,
+ 27,11,12,0,14,32,33,34,35,36,
+ 37,0,0,0,19,25,26,27,0,52,
+ 31,0,32,33,34,35,36,37,0,11,
+ 12,39,14,0,0,0,2,4,4,0,
+ 19,0,0,25,26,27,11,12,0,14,
+ 32,33,34,35,36,37,0,0,19,0,
+ 25,26,27,69,0,31,0,32,33,34,
+ 35,36,37,79,80,81,82,83,84,85,
+ 86,87,88,0,0,19,0,0,0,1,
+ 2,0,59,5,11,12,0,14,11,12,
+ 0,14,11,12,0,14,0,0,25,26,
+ 27,0,25,26,27,0,25,26,27,31,
+ 5,0,11,12,0,14,19,39,0,1,
+ 2,0,4,0,0,0,25,26,27,0,
+ 1,2,0,4,0,0,0,0,0,0,
+ 19,0,19,38,0,0,0,0,0,31,
+ 0,0,0,0,0,0,0,0,0,0,
+ 31,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,50,0,0,
- 0,0,0,0,0,0,0,0,0,61,
+ 75,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,76,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,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;
@@ -569,129 +561,115 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP
public interface TermAction {
public final static char termAction[] = {0,
- 1918,714,1594,717,1580,1,2130,2131,2132,1562,
- 1555,2240,431,2241,1587,1371,642,632,1928,1929,
- 1930,1931,1477,1447,2227,2228,2229,577,419,388,
- 2080,1918,1918,2081,2079,2133,2082,2078,2085,2090,
- 2089,2087,2088,2086,2091,2092,2084,2093,2094,2095,
- 88,1252,1230,1201,1918,1,1918,1,1918,190,
- 1,1,1,247,1918,1,1,1,1282,1,
- 1,1,54,51,1,1,1,1918,2142,1184,
- 1918,1347,772,481,1,58,1918,1,1,1,
- 1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,752,1,1,1,42,190,
- 2113,1918,1,209,1,1918,190,1,1,1,
- 1918,1902,1,1,1,66,2130,2131,2132,1409,
- 1419,2240,431,2241,1,1912,1200,1918,1947,1923,
- 1948,1,1409,1419,1,1,1,1,1,1,
+ 1939,1950,1722,1951,1325,1,1230,1181,1486,1714,
+ 1707,2153,2154,1687,2155,1952,1953,1954,1955,1939,
+ 1172,721,2256,2257,2258,2269,436,2270,1567,1115,
+ 556,253,2102,2103,2101,2156,2104,2100,182,89,
+ 2107,2112,2111,2109,2110,2108,2113,2114,2106,2115,
+ 2116,2117,65,1249,1522,1304,1939,1,49,1,
+ 1402,191,1660,60,32,52,1737,1,1,62,
+ 1,646,472,1965,1966,1939,1950,759,1951,54,
+ 51,1,1,1,1660,646,472,1011,1,1,
+ 1,1,1,1,1544,1674,1,1,1,1,
+ 1,1,1,1,1,1,1,1,191,1,
+ 1,1,1939,1,50,1,2135,190,1660,61,
+ 1648,1637,183,1,1,1350,1,1474,1462,1239,
+ 610,286,325,1474,1462,1239,610,1,1,1,
+ 1260,55,1648,1637,1,1,1,1,1,1,
+ 271,3165,1,1,1,1,1,1,1,1,
+ 1,1,1,1,190,1,1,1,1939,1,
+ 63,1,2135,191,1939,73,1648,1637,579,1,
+ 1,623,1,1474,1462,1239,610,1939,1950,1939,
+ 1951,1939,64,1,1,1,1945,1511,1530,66,
+ 1,1,1,1,1,1,1608,1402,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,70,1,1,1,554,190,2113,1918,1,
- 1918,1,64,190,1,1,1,981,1918,1,
- 1,1,1060,62,1922,59,1299,961,941,921,
- 901,881,841,861,821,801,781,583,1,57,
- 1918,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,71,1,
- 1,1,1918,190,2113,1918,1,1918,1,1918,
- 189,1,1,1,248,611,1,1,1,1,
- 1,1,1,61,1927,1,1,1,56,1394,
- 1383,1335,1208,720,518,1,1409,1419,1,1,
- 1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1918,1,1,1,317,
- 189,2113,1918,1,68,1,55,190,1,1,
- 1,246,611,1,1,1,732,2130,2131,2132,
- 60,268,2240,431,2241,1409,1419,1394,1383,1335,
- 1208,1253,1,1918,1926,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,1,1,
- 1,1,554,1,1,1,1918,190,2113,1918,
- 2097,1,2096,1409,1419,2130,2131,2132,249,72,
- 2240,431,2241,53,2130,2131,2132,1164,321,2240,
- 431,2241,772,481,1394,1383,1335,1208,267,2080,
- 1436,1918,2081,2079,2133,2082,2078,2085,2090,2089,
- 2087,2088,2086,2091,2092,2084,2093,2094,2095,1903,
- 1252,1230,1201,1,1935,1594,1936,1513,1921,554,
- 1918,2173,1562,1555,1,2142,1184,1587,1371,642,
- 632,1928,1929,1930,1931,1477,1447,2227,2228,2229,
- 577,419,388,674,250,1918,398,1817,1918,48,
- 2130,2131,2132,1686,50,2240,431,2241,1686,1918,
- 1935,1594,1936,1528,1921,1,2142,1184,1562,1555,
- 1918,200,1920,1587,1371,642,632,1928,1929,1930,
- 1931,1477,1447,2227,2228,2229,577,419,388,1021,
- 49,1918,1098,52,1686,1,1921,1,1918,1918,
- 90,1282,772,481,1925,1,1935,1594,1936,1580,
- 27,1672,1651,1136,1562,1555,1672,1651,1920,1587,
- 1371,642,632,1928,1929,1930,1931,1477,1447,2227,
- 2228,2229,577,419,388,128,262,1544,1426,1117,
- 1,2130,2131,2132,1918,90,2240,431,2241,1927,
- 1920,63,1672,1651,1924,206,2098,2173,2099,1918,
- 27,1918,259,2142,1200,2080,1,554,2081,2079,
- 2133,2082,2078,2085,2090,2089,2087,2088,2086,2091,
- 2092,2084,2093,2094,2095,1918,1935,1594,1936,1580,
- 1921,67,1918,554,1562,1555,315,1923,1327,1587,
- 1371,642,632,1928,1929,1930,1931,1477,1447,2227,
- 2228,2229,577,419,388,1918,1,1915,1,1926,
- 1923,720,518,1923,1918,2098,1918,2099,1253,65,
- 1918,1918,1935,1594,1936,1521,1921,69,313,41,
- 1562,1555,1922,1299,1920,1587,1371,642,632,1928,
- 1929,1930,1931,1477,1447,2227,2228,2229,577,419,
- 388,205,1160,583,1160,1922,1918,2154,1922,1738,
- 1253,1253,253,28,1918,1918,2173,1918,1,1,
- 1,1,1918,2098,187,2099,1,1,1918,1918,
- 1920,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1253,1918,1918,
- 1164,28,205,1918,1323,1918,1437,1918,186,188,
- 1918,1935,1594,1936,1580,1918,1596,534,218,1562,
- 1555,1,1918,2226,1587,1371,642,632,1928,1929,
- 1930,1931,1477,1447,2227,2228,2229,577,419,388,
- 1541,1542,1253,1,1935,1594,1936,1580,1918,554,
- 1918,1918,1562,1555,1918,1945,2920,1587,1371,642,
- 632,1928,1929,1930,1931,1477,1447,2227,2228,2229,
- 577,419,388,1918,1918,1544,1918,1935,1594,1936,
- 1580,2172,1918,1918,1918,1562,1555,1918,1918,1918,
- 1587,1371,642,632,1928,1929,1930,1931,1477,1447,
- 2227,2228,2229,577,419,388,1918,1918,1544,1918,
- 1935,1594,1936,1580,1918,2098,1918,2099,1562,1555,
- 1041,285,1918,1587,1371,642,632,1928,1929,1930,
- 1931,1477,1447,2227,2228,2229,577,419,388,1918,
- 1935,1598,1936,1580,1918,2098,1324,2099,1562,1555,
- 1471,1918,1079,1587,1371,642,632,1928,1929,1930,
- 1931,1477,1447,2227,2228,2229,577,419,388,1918,
- 1935,1602,1936,1580,1918,220,1346,1611,1562,1555,
- 1918,1918,1608,1587,1371,642,632,1928,1929,1930,
- 1931,1477,1447,2227,2228,2229,577,419,388,1918,
- 1935,1606,1936,1580,1918,1918,554,1918,1562,1555,
- 1918,1918,1918,1587,1371,642,632,1928,1929,1930,
- 1931,1477,1447,2227,2228,2229,577,419,388,1918,
- 1935,1637,1936,1580,1918,1918,1918,1918,1562,1555,
- 1918,1918,1918,1587,1371,642,632,1928,1929,1930,
- 1931,1477,1447,2227,2228,2229,577,419,388,1918,
- 1935,1641,1936,1580,1918,1918,1918,1918,1562,1555,
- 1918,1918,1918,1587,1371,642,632,1928,1929,1930,
- 1931,1477,1447,2227,2228,2229,577,419,388,1,
- 1935,1594,1936,1580,1918,1918,1918,1918,1562,1555,
- 1918,1918,1918,1587,1371,642,632,1928,1929,1930,
- 1931,1477,1447,2227,2228,2229,577,419,388,17,
- 1918,1906,1918,1906,1906,179,179,179,1918,1918,
- 179,179,179,1918,1918,1918,1918,1918,1918,1918,
- 1918,1918,265,2142,1200,1918,1347,1918,1918,179,
- 1906,1918,179,179,179,179,179,1918,1918,18,
- 1918,1909,1918,1909,1909,178,178,178,129,1906,
- 178,178,178,554,2130,2131,2132,1918,1918,2240,
- 431,2241,1918,265,1918,1426,1918,1347,1918,178,
- 1909,1918,178,178,178,178,178,1918,2080,1918,
- 130,2081,2079,2133,2082,2078,2130,2131,2132,1909,
- 131,2240,431,2241,554,1918,2130,2131,2132,1918,
- 1918,2240,431,2241,1918,1918,1918,1918,1918,1918,
- 2080,1918,1918,2081,2079,2133,2082,2078,1918,1918,
- 2080,1918,132,2081,2079,2133,2082,2078,2130,2131,
- 2132,1918,1918,2240,431,2241,1918,1,31,1426,
- 1814,1918,1923,1918,1918,1918,1918,1918,1918,1918,
- 1918,1918,2080,1942,1943,2081,2079,2133,2082,2078,
- 1918,1918,1918,1918,1918,1918,1918,1918,554,1816,
- 1918,1918,1918,1918,1918,1918,1918,1918,1918,1918,
- 1918,1918,1918,1918,1918,1918,1918,1922,1918,1918,
- 1918,1918,1918,1918,1918,1918,1918,1918,1918,531,
- 1918,1918,1918,1918,1918,1918,1918,1918,1918,1918,
- 1918,1918,1918,1918,417
+ 191,1,1,1,1939,1950,1939,1951,2135,1878,
+ 1944,1,2165,1540,1939,2153,2154,71,2155,1943,
+ 1449,1436,1939,1950,1939,1951,1,1936,53,2269,
+ 436,2270,1210,1728,646,472,2102,2103,2101,2156,
+ 2104,2100,1449,1436,2107,2112,2111,2109,2110,2108,
+ 2113,2114,2106,2115,2116,2117,329,1249,1522,1304,
+ 1,1950,1722,1951,1499,1943,1230,1181,1486,1714,
+ 1707,1939,1942,1687,1939,1952,1953,1954,1955,1152,
+ 1172,721,2256,2257,2258,2197,1939,1927,1567,1115,
+ 556,408,677,1939,1950,1722,1951,1625,1943,1230,
+ 1181,1486,1714,1707,185,3305,1687,3305,1952,1953,
+ 1954,1955,69,1172,721,2256,2257,2258,1942,1,
+ 59,1567,1115,556,91,1053,1,1950,1722,1951,
+ 1325,29,1230,1181,1486,1714,1707,184,3329,1687,
+ 3329,1952,1953,1954,1955,3165,1172,721,2256,2257,
+ 2258,1942,1939,2177,1567,1115,556,129,91,206,
+ 3331,1939,3331,1926,270,222,1541,1543,2153,2154,
+ 1939,2155,2153,2154,1429,2155,1511,1530,29,58,
+ 1939,1939,2269,436,2270,1357,2269,436,2270,2102,
+ 2103,2101,2156,2104,2100,623,623,2107,2112,2111,
+ 2109,2110,2108,2113,2114,2106,2115,2116,2117,1939,
+ 1950,1722,1951,1325,1943,1230,1181,1486,1714,1707,
+ 208,1950,1687,1951,1952,1953,1954,1955,201,1172,
+ 721,2256,2257,2258,1939,1511,1530,1567,1115,556,
+ 1939,1950,1722,1951,1598,1943,1230,1181,1486,1714,
+ 1707,207,1375,1687,1375,1952,1953,1954,1955,57,
+ 1172,721,2256,2257,2258,256,72,1942,1567,1115,
+ 556,1939,1,1,1,1,1939,1,1,1,
+ 1,1,1939,1939,1,1939,1,1,1,1,
+ 56,1,1,1,1,1,1190,1939,1942,1,
+ 1,1,1947,1670,1939,1950,1722,1951,1325,1939,
+ 1230,1181,1486,1714,1707,1511,1530,1687,1,1952,
+ 1953,1954,1955,3165,1172,721,2256,2257,2258,70,
+ 1939,2255,1567,1115,556,1,1950,1722,1951,1325,
+ 408,1230,1181,1486,1714,1707,1511,1530,1687,1946,
+ 1952,1953,1954,1955,3165,1172,721,2256,2257,2258,
+ 1939,1074,292,1567,1115,556,1939,1950,1722,1951,
+ 1325,1939,1230,1181,1486,1714,1707,2197,220,1687,
+ 1,1952,1953,1954,1955,3165,1172,721,2256,2257,
+ 2258,1427,67,1132,1567,1115,556,1939,1950,1722,
+ 1951,1325,1357,1230,1181,1486,1714,1707,1939,623,
+ 1687,1,1952,1953,1954,1955,1949,1172,721,2256,
+ 2257,2258,1939,1524,1939,1567,1115,556,1939,1950,
+ 1733,1951,1325,30,1230,1181,1486,1714,1707,2196,
+ 30,1687,1939,1952,1953,1954,1955,1939,1172,721,
+ 2256,2257,2258,1,2165,1540,1567,1115,556,1939,
+ 1950,1744,1951,1325,1269,1230,1181,1486,1714,1707,
+ 1939,486,1687,1939,1952,1953,1954,1955,1968,1172,
+ 721,2256,2257,2258,1939,68,1948,1567,1115,556,
+ 1939,1950,1757,1951,1325,211,1230,1181,1486,1714,
+ 1707,1939,207,1687,1939,1952,1953,1954,1955,1939,
+ 1172,721,2256,2257,2258,253,2165,1540,1567,1115,
+ 556,1939,1950,1768,1951,1325,1939,1230,1181,1486,
+ 1714,1707,1939,1939,1687,1939,1952,1953,1954,1955,
+ 2779,1172,721,2256,2257,2258,1939,323,1939,1567,
+ 1115,556,1939,1950,1779,1951,1325,1269,1230,1181,
+ 1486,1714,1707,1939,1094,1687,3165,1952,1953,1954,
+ 1955,1939,1172,721,2256,2257,2258,1939,321,1939,
+ 1567,1115,556,1,1950,1722,1951,1325,1939,1230,
+ 1181,1486,1714,1707,1939,588,1687,3165,1952,1953,
+ 1954,1955,1939,1172,721,2256,2257,2258,1939,248,
+ 1939,1567,1115,556,20,1939,1930,1939,1930,1930,
+ 2153,2154,1945,2155,1939,179,179,1,179,1545,
+ 1939,1939,1945,42,2269,436,2270,285,1939,179,
+ 179,179,431,130,1939,1930,179,179,179,179,
+ 179,179,3165,1930,2153,2154,1944,2155,623,265,
+ 131,1545,1,1,43,1939,1944,1945,2269,436,
+ 2270,2153,2154,1939,2155,2102,2103,2101,2156,2104,
+ 2100,1939,1939,1939,3165,2269,436,2270,132,431,
+ 623,1939,2102,2103,2101,2156,2104,2100,1939,2153,
+ 2154,1944,2155,1,268,133,1545,253,253,1939,
+ 1367,1939,1939,2269,436,2270,2153,2154,1939,2155,
+ 2102,2103,2101,2156,2104,2100,1939,1939,1742,1939,
+ 2269,436,2270,990,1939,623,1939,2102,2103,2101,
+ 2156,2104,2100,969,948,927,906,885,843,864,
+ 822,801,780,249,1939,1811,1939,250,1,1933,
+ 1295,251,2197,1945,1,1,1939,1,1,1,
+ 1939,1,2153,2154,1939,2155,1939,189,1,1,
+ 1,252,1,1,1,1939,2269,436,2270,623,
+ 1949,1939,2153,2154,1939,2155,185,1944,262,2165,
+ 1295,189,1,189,1939,1939,2269,436,2270,268,
+ 2165,1295,1939,253,1939,1939,1939,1939,1939,1939,
+ 184,1939,206,471,1939,1939,1939,1939,1939,623,
+ 1939,1939,1939,1939,1939,1939,1939,1939,1939,1939,
+ 623,1939,1939,1939,1939,1939,1939,1939,1939,1939,
+ 1939,1939,1939,1939,1939,1939,1939,1939,1939,1939,
+ 1948
};
};
public final static char termAction[] = TermAction.termAction;
@@ -699,29 +677,29 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP
public interface Asb {
public final static char asb[] = {0,
- 463,1,168,41,168,168,168,168,168,168,
- 168,168,168,168,168,168,3,55,378,375,
- 382,380,388,386,390,389,392,391,10,168,
- 55,55,55,55,55,360,360,487,168,240,
- 240,315,55,168,168,168,168,168,168,168,
- 168,168,168,168,168,168,168,168,168,168,
- 168,168,168,168,168,168,168,168,168,168,
- 168,168,168,240,240,240,240,240,240,45,
- 135,319,159,327,238,237,287,48,299,299,
- 155,155,299,155,299,75,191,191,375,375,
- 380,380,380,380,378,378,386,382,382,389,
- 388,424,391,390,363,363,363,363,157,133,
- 315,307,162,45,98,106,240,426,330,106,
- 403,254,403,254,321,403,168,133,307,98,
- 98,45,105,159,240,313,75,239,332,45,
- 106,254,254,254,254,321,321,323,251,133,
- 98,307,168,168,45,106,327,419,418,319,
- 332,240,254,284,243,254,254,284,323,458,
- 323,321,284,131,461,360,168,250,133,307,
- 45,45,240,426,330,313,284,245,284,284,
- 168,360,323,135,45,360,168,323,332,399,
- 168,398,187,319,284,45,284,240,239,245,
- 168,187,361
+ 133,1,206,98,206,206,206,206,206,206,
+ 206,206,206,206,206,206,60,10,80,77,
+ 84,82,90,88,92,91,94,93,66,206,
+ 10,10,10,10,10,418,418,459,206,304,
+ 304,339,10,206,206,206,206,206,206,206,
+ 206,206,206,206,206,206,206,206,206,206,
+ 206,206,206,206,206,206,206,206,206,206,
+ 206,206,206,304,304,304,304,304,304,102,
+ 109,343,197,385,302,301,311,3,323,129,
+ 323,129,129,323,129,323,30,255,77,77,
+ 82,82,82,82,80,80,88,84,84,91,
+ 90,490,93,92,157,157,157,157,131,382,
+ 131,339,343,200,102,53,230,304,427,388,
+ 230,129,418,418,129,418,206,382,107,343,
+ 331,53,102,229,197,304,337,30,303,390,
+ 102,230,131,352,131,421,107,331,331,206,
+ 206,102,230,385,485,484,343,390,304,131,
+ 352,421,421,423,308,331,53,102,102,304,
+ 427,388,337,352,382,345,352,421,423,492,
+ 423,382,105,495,418,206,307,53,331,390,
+ 352,347,423,382,206,418,60,109,102,418,
+ 206,331,304,303,382,193,206,192,225,343,
+ 382,102,419,347,206,225
};
};
public final static char asb[] = Asb.asb;
@@ -729,58 +707,56 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP
public interface Asr {
public final static byte asr[] = {0,
- 89,0,75,31,2,61,76,15,16,14,
- 4,9,10,62,63,57,58,64,65,66,
- 67,70,71,72,73,74,77,78,55,69,
- 79,80,81,82,83,85,84,86,87,88,
- 68,50,89,54,59,5,0,5,68,54,
- 59,50,75,31,17,18,19,20,21,2,
- 15,16,14,4,9,10,22,23,24,25,
- 26,27,28,29,3,1,51,52,53,46,
- 38,43,41,42,40,39,44,45,47,48,
- 49,37,34,30,33,36,35,6,7,8,
- 12,11,13,0,30,59,5,15,16,14,
- 4,9,10,22,23,17,27,28,29,2,
- 1,3,18,19,20,21,24,25,26,0,
- 5,55,31,61,15,16,14,4,9,10,
- 22,23,17,27,28,29,2,18,19,20,
- 21,24,25,26,1,3,32,0,59,5,
- 30,6,7,8,11,12,13,18,19,20,
- 21,24,25,26,3,15,16,14,9,10,
- 22,23,17,27,28,29,4,2,1,0,
- 7,30,37,8,36,35,34,6,33,11,
- 12,13,61,76,15,16,14,9,10,62,
- 63,57,58,64,65,66,67,70,71,72,
- 73,74,77,78,69,79,80,81,82,83,
- 84,85,86,87,88,4,2,31,54,50,
- 5,0,75,5,4,1,2,68,0,69,
- 31,61,0,33,38,6,39,51,34,40,
- 35,41,42,36,7,43,44,30,52,37,
- 53,45,46,8,47,48,49,1,3,11,
- 12,13,56,55,5,0,46,38,43,41,
- 42,40,39,44,45,47,48,49,68,75,
- 37,34,30,33,36,35,6,7,8,11,
- 12,13,54,1,5,50,2,31,4,0,
- 1,3,5,55,54,0,4,2,31,50,
- 5,33,38,6,39,51,34,40,35,41,
- 42,36,7,43,44,30,52,37,53,45,
- 46,8,47,48,49,11,12,13,60,3,
- 1,0,69,79,80,81,82,83,84,85,
- 86,87,88,32,4,62,63,9,10,58,
- 57,64,65,66,67,70,71,14,72,73,
- 74,59,50,55,89,77,78,68,75,5,
- 54,0,33,6,34,35,36,7,30,37,
- 8,1,4,11,12,13,32,2,5,54,
- 50,75,31,68,0,33,38,6,39,51,
- 34,40,35,41,42,36,7,43,44,30,
- 52,37,53,45,46,8,47,48,49,1,
- 3,11,12,13,60,4,0,5,54,55,
- 69,0,17,18,19,20,21,1,3,2,
- 15,16,14,4,9,10,22,23,24,25,
- 26,27,28,29,56,0,5,50,17,18,
- 19,20,21,1,3,2,15,16,14,4,
- 9,10,22,23,24,25,26,27,28,29,
- 0
+ 89,0,5,68,38,58,39,75,31,13,
+ 15,16,17,18,2,9,10,8,4,6,
+ 7,20,21,22,23,24,28,29,30,1,
+ 3,53,54,55,48,40,45,43,44,42,
+ 41,46,47,49,50,51,37,34,32,33,
+ 36,35,11,12,14,26,25,27,0,31,
+ 2,61,76,9,10,69,79,80,81,82,
+ 83,85,84,86,87,88,4,62,63,6,
+ 7,57,56,64,65,66,67,70,71,8,
+ 72,73,74,52,75,77,78,68,39,89,
+ 38,58,5,0,5,52,31,61,9,10,
+ 8,4,6,7,20,21,13,28,29,30,
+ 2,15,16,17,18,22,23,24,1,3,
+ 19,0,13,15,16,17,18,1,3,2,
+ 9,10,8,4,6,7,20,21,22,23,
+ 24,28,29,30,60,0,8,4,6,7,
+ 62,63,56,57,64,65,66,67,70,71,
+ 72,73,74,77,78,69,79,80,81,82,
+ 83,84,85,86,87,88,58,39,52,89,
+ 19,68,75,5,38,0,58,5,32,11,
+ 12,14,25,26,27,15,16,17,18,22,
+ 23,24,3,9,10,8,6,7,20,21,
+ 13,28,29,30,4,2,1,0,32,58,
+ 5,9,10,8,4,6,7,20,21,13,
+ 28,29,30,2,1,3,15,16,17,18,
+ 22,23,24,0,12,32,37,14,36,35,
+ 34,11,33,25,26,27,61,76,9,10,
+ 8,6,7,62,63,56,57,64,65,66,
+ 67,70,71,72,73,74,77,78,69,79,
+ 80,81,82,83,84,85,86,87,88,4,
+ 2,31,38,39,5,0,69,31,61,0,
+ 48,40,45,43,44,42,41,46,47,49,
+ 50,51,68,75,37,34,32,33,36,35,
+ 11,12,14,25,26,27,38,1,5,39,
+ 2,31,4,0,75,5,4,1,2,68,
+ 0,33,40,11,41,53,34,42,35,43,
+ 44,36,12,45,46,32,54,37,55,47,
+ 48,14,49,50,51,1,3,25,26,27,
+ 60,5,52,0,4,2,31,39,5,33,
+ 40,11,41,53,34,42,35,43,44,36,
+ 12,45,46,32,54,37,55,47,48,14,
+ 49,50,51,25,26,27,59,3,1,0,
+ 1,3,5,52,38,0,4,33,40,11,
+ 41,53,34,42,35,43,44,36,12,45,
+ 46,32,54,37,55,47,48,14,49,50,
+ 51,1,3,25,26,27,59,0,5,39,
+ 13,15,16,17,18,1,3,2,9,10,
+ 8,4,6,7,20,21,22,23,24,28,
+ 29,30,0,2,5,38,39,75,31,68,
+ 0,5,38,52,69,0
};
};
public final static byte asr[] = Asr.asr;
@@ -788,29 +764,29 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP
public interface Nasb {
public final static byte nasb[] = {0,
- 82,8,17,8,17,17,17,17,17,17,
- 17,17,17,17,17,17,8,66,8,8,
- 8,8,8,8,8,8,8,8,8,17,
- 66,66,66,66,66,9,9,89,67,64,
- 64,59,1,17,17,17,17,17,17,17,
- 17,17,17,17,17,17,17,17,17,67,
- 17,17,17,17,17,17,17,17,17,17,
- 17,17,17,64,64,64,64,64,64,21,
- 17,72,19,58,23,23,44,11,45,45,
- 38,38,45,38,45,40,8,8,8,8,
- 8,8,8,8,8,8,8,8,8,8,
- 8,8,8,8,8,8,8,8,8,80,
- 60,80,16,21,50,20,64,70,63,20,
- 8,80,8,80,80,8,17,16,80,50,
- 50,21,20,29,64,32,2,8,79,21,
- 20,80,74,80,74,38,80,25,13,80,
- 50,29,17,17,21,20,31,23,23,72,
- 79,64,74,27,47,85,74,27,25,8,
- 8,38,27,15,8,38,17,56,16,29,
- 21,21,64,70,63,33,27,52,27,27,
- 17,38,25,17,21,38,17,25,78,48,
- 17,8,52,72,27,21,27,64,64,52,
- 17,35,8
+ 36,35,26,35,26,26,26,26,26,26,
+ 26,26,26,26,26,26,35,105,35,35,
+ 35,35,35,35,35,35,35,35,35,26,
+ 105,105,105,105,105,66,66,109,106,87,
+ 87,90,1,26,26,26,26,26,26,26,
+ 26,26,26,26,26,26,26,26,26,106,
+ 26,26,26,26,26,26,26,26,26,26,
+ 26,26,26,87,87,87,87,87,87,48,
+ 9,39,46,89,44,44,58,17,59,19,
+ 59,62,62,59,61,59,53,35,35,35,
+ 35,35,35,35,35,35,35,35,35,35,
+ 35,35,35,35,10,10,10,10,10,73,
+ 35,112,35,50,48,124,47,87,94,86,
+ 47,7,7,7,7,7,26,103,73,35,
+ 79,124,48,47,42,87,69,28,35,96,
+ 48,47,15,73,35,73,24,79,73,26,
+ 26,48,47,68,44,44,39,96,87,35,
+ 120,73,7,64,13,73,124,48,48,87,
+ 94,86,75,73,103,83,99,7,64,35,
+ 35,103,23,35,7,26,81,124,42,116,
+ 120,71,64,103,26,7,21,25,48,7,
+ 26,42,87,87,103,84,26,35,71,39,
+ 103,48,35,71,26,77
};
};
public final static byte nasb[] = Nasb.nasb;
@@ -818,16 +794,19 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP
public interface Nasr {
public final static char nasr[] = {0,
- 4,79,78,77,76,75,74,0,71,0,
- 94,0,91,0,69,7,4,0,7,4,
- 22,0,29,0,54,0,31,0,23,0,
- 20,7,48,47,40,38,0,32,0,64,
- 65,66,67,55,33,0,7,70,0,61,
- 0,7,40,38,0,93,0,20,7,48,
- 47,0,7,20,0,27,7,30,0,7,
- 21,52,0,59,7,27,0,88,21,7,
- 0,7,85,0,7,27,51,0,7,86,
- 0
+ 80,78,77,68,76,75,1,0,5,34,
+ 32,0,100,0,92,0,103,0,91,0,
+ 98,0,88,10,34,5,0,80,79,78,
+ 77,68,76,75,0,10,89,0,30,54,
+ 0,23,0,29,0,10,5,22,0,5,
+ 10,0,68,63,64,65,66,56,35,0,
+ 94,69,0,62,0,73,0,21,51,50,
+ 42,40,10,0,51,50,42,40,30,0,
+ 102,0,10,72,0,10,21,0,21,50,
+ 51,10,0,30,54,10,27,0,10,33,
+ 70,0,46,0,33,10,31,0,10,90,
+ 0,51,50,30,0,95,10,27,0,82,
+ 10,33,0,59,0
};
};
public final static char nasr[] = Nasr.nasr;
@@ -835,12 +814,12 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP
public interface TerminalIndex {
public final static char terminalIndex[] = {0,
- 85,2,86,9,87,48,64,76,10,11,
- 96,97,98,8,6,7,68,81,82,83,
- 84,12,13,93,94,95,100,101,102,69,
- 1,3,44,55,60,63,72,47,52,56,
- 61,62,66,67,74,75,78,79,80,90,
- 54,70,73,42,91,107,16,17,89,30,
+ 85,2,86,9,87,10,11,8,6,7,
+ 48,64,68,76,81,82,83,84,3,12,
+ 13,93,94,95,96,97,98,100,101,102,
+ 1,69,44,55,60,63,72,42,90,47,
+ 52,56,61,62,66,67,74,75,78,79,
+ 80,91,54,70,73,16,17,89,30,107,
4,14,15,18,19,20,21,29,31,22,
23,24,25,26,92,5,27,28,32,33,
34,35,36,37,38,39,40,41,108,45,
@@ -853,18 +832,20 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP
public interface NonterminalIndex {
public final static char nonterminalIndex[] = {0,
- 0,0,0,115,119,120,0,121,122,123,
- 124,125,126,127,128,129,130,131,132,111,
- 136,110,143,0,0,0,154,0,163,114,
- 112,135,142,0,0,0,159,161,0,162,
- 0,0,0,117,134,172,173,174,0,151,
- 153,160,169,0,145,150,0,0,152,164,
- 167,168,171,146,147,148,149,158,175,113,
- 116,118,133,137,138,139,140,141,144,156,
- 0,0,157,166,109,0,155,165,170,176,
- 177,0,178,179,0,0,0,0,0,0,
+ 114,0,0,0,116,120,121,122,123,0,
+ 124,125,126,127,128,129,130,131,0,132,
+ 111,110,142,0,0,0,135,0,163,0,
+ 115,119,154,0,141,0,0,0,159,161,
+ 0,162,0,0,0,112,118,134,172,173,
+ 174,0,150,160,169,144,0,164,167,168,
+ 171,0,145,146,147,148,149,151,0,153,
+ 158,113,117,133,136,137,138,139,140,143,
+ 0,152,156,0,0,157,166,176,109,0,
+ 0,0,155,0,165,170,175,0,177,178,
+ 0,179,180,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0
+ 0
};
};
public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
@@ -872,12 +853,11 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP
public interface ScopePrefix {
public final static char scopePrefix[] = {
- 214,118,57,67,125,145,151,188,26,33,
- 85,103,157,162,73,6,12,16,38,81,
- 50,135,210,229,233,50,50,197,50,1,
- 1,1,42,45,90,113,45,237,20,139,
- 204,179,204,131,167,167,167,167,167,93,
- 93,93
+ 120,151,130,59,69,159,26,186,35,87,
+ 105,75,6,12,16,40,83,52,141,208,
+ 215,219,52,52,195,52,1,1,1,44,
+ 47,92,115,47,223,20,145,202,202,177,
+ 137,165,165,165,165,165,95,95,95
};
};
public final static char scopePrefix[] = ScopePrefix.scopePrefix;
@@ -885,12 +865,11 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP
public interface ScopeSuffix {
public final static char scopeSuffix[] = {
- 31,31,4,4,31,31,31,194,31,10,
- 4,10,31,31,78,10,10,10,10,4,
- 4,133,10,10,4,54,78,201,63,4,
- 4,4,10,48,4,10,116,10,23,142,
- 207,182,222,133,169,171,173,175,177,100,
- 95,108
+ 128,128,128,4,4,128,32,192,10,4,
+ 10,80,10,10,10,10,4,4,139,10,
+ 10,4,56,80,199,65,4,4,4,10,
+ 50,4,10,118,10,23,148,205,212,180,
+ 139,167,169,171,173,175,102,97,110
};
};
public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
@@ -898,12 +877,11 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP
public interface ScopeLhs {
public final static char scopeLhs[] = {
- 4,66,29,29,66,64,64,101,56,49,
- 29,43,64,64,29,5,5,5,49,29,
- 29,51,5,4,4,29,29,18,29,94,
- 93,92,47,63,29,40,50,2,69,51,
- 6,102,4,51,78,77,76,75,74,43,
- 41,43
+ 65,63,65,29,29,63,32,111,52,29,
+ 45,29,6,6,6,52,29,29,70,6,
+ 5,5,29,29,19,29,103,102,101,50,
+ 61,29,42,53,3,88,70,7,5,112,
+ 70,79,78,77,76,75,45,43,45
};
};
public final static char scopeLhs[] = ScopeLhs.scopeLhs;
@@ -911,12 +889,11 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP
public interface ScopeLa {
public final static byte scopeLa[] = {
- 55,55,59,59,55,55,55,95,55,50,
- 59,50,55,55,18,50,50,50,50,59,
- 59,75,50,50,59,4,18,68,30,59,
- 59,59,50,2,59,50,1,50,69,1,
- 50,101,50,75,3,51,52,52,46,2,
- 2,2
+ 52,52,52,58,58,52,52,95,39,58,
+ 39,15,39,39,39,39,58,58,75,39,
+ 39,58,4,15,68,32,58,58,58,39,
+ 2,58,39,1,39,69,1,39,39,101,
+ 75,1,53,54,54,48,2,2,2
};
};
public final static byte scopeLa[] = ScopeLa.scopeLa;
@@ -924,12 +901,11 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP
public interface ScopeStateSet {
public final static byte scopeStateSet[] = {
- 36,21,25,25,21,21,21,-1,96,29,
- 25,11,21,21,25,36,36,36,29,25,
- 25,5,36,36,36,25,25,70,25,19,
- 1,3,29,31,25,11,13,36,97,5,
- 42,-1,36,5,22,22,22,22,22,11,
- 11,11
+ 29,29,29,33,33,29,19,-1,37,33,
+ 9,33,44,44,44,37,33,33,5,44,
+ 44,44,33,33,78,33,17,1,3,37,
+ 39,33,9,11,44,105,5,50,44,-1,
+ 5,30,30,30,30,30,9,9,9
};
};
public final static byte scopeStateSet[] = ScopeStateSet.scopeStateSet;
@@ -937,30 +913,29 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP
public interface ScopeRhs {
public final static char scopeRhs[] = {0,
- 152,31,0,110,0,151,2,29,0,111,
- 0,151,2,28,0,151,2,27,0,197,
- 114,0,31,150,0,161,179,114,32,0,
- 112,0,167,114,2,154,0,167,114,2,
- 0,170,2,0,159,114,0,172,0,191,
- 114,31,0,9,110,0,126,30,191,114,
- 31,0,69,132,110,0,126,191,114,30,
- 31,0,191,114,30,31,0,132,110,0,
- 126,30,31,0,126,191,114,31,0,126,
- 31,0,147,0,2,0,165,111,0,2,
- 111,0,167,114,2,147,0,2,0,164,
- 111,0,157,2,0,159,0,161,189,114,
- 32,139,51,0,161,189,114,32,51,0,
- 134,0,113,0,194,114,134,0,114,134,
- 0,155,113,0,165,114,32,139,53,0,
- 165,114,32,139,52,0,165,114,32,53,
- 0,165,114,32,52,0,186,0,149,0,
- 148,0,147,0,146,0,145,0,204,94,
- 0,77,2,114,111,113,0,204,127,137,
- 2,98,0,53,0,0,137,78,124,0,
- 29,131,0,151,2,0,111,120,0,151,
- 2,17,0,161,179,114,32,127,151,2,
- 0,111,3,0,118,0,112,0,193,2,
- 111,0,137,31,111,0,137,2,0
+ 155,31,0,110,0,154,2,30,0,111,
+ 0,154,2,29,0,154,2,28,0,206,
+ 117,0,31,149,0,169,204,117,19,141,
+ 0,112,0,0,165,117,2,157,0,165,
+ 117,2,0,168,2,0,161,117,0,172,
+ 0,194,117,31,0,9,110,0,127,32,
+ 194,117,31,0,69,132,110,0,127,194,
+ 117,32,31,0,194,117,32,31,0,132,
+ 110,0,127,32,31,0,127,194,117,31,
+ 0,127,31,0,149,0,2,0,165,111,
+ 0,2,111,0,165,117,2,149,0,2,
+ 0,164,111,0,160,2,0,159,0,169,
+ 192,117,19,108,201,53,0,112,0,169,
+ 192,117,19,201,53,0,140,0,113,0,
+ 200,117,140,0,117,140,0,155,113,0,
+ 188,117,19,199,108,198,175,0,188,117,
+ 19,198,175,0,187,0,148,0,147,0,
+ 146,0,145,0,144,0,214,94,0,77,
+ 2,115,111,113,0,214,128,138,2,98,
+ 0,53,0,0,138,78,125,0,29,132,
+ 0,154,2,0,111,121,0,154,2,13,
+ 0,111,119,0,197,2,112,0,138,31,
+ 112,0,138,2,0
};
};
public final static char scopeRhs[] = ScopeRhs.scopeRhs;
@@ -968,16 +943,17 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP
public interface ScopeState {
public final static char scopeState[] = {0,
- 1285,0,514,0,1723,1786,1710,1706,1701,0,
- 1536,1232,1327,1184,1276,1200,1156,0,431,0,
- 1231,574,361,0,1610,1161,1158,601,1232,1416,
- 1200,1156,1426,1491,0,1371,642,632,577,419,
- 388,1528,1521,1513,1693,611,398,583,1164,720,
- 518,1299,1419,1409,1394,1383,1335,1208,1686,1672,
- 1651,772,481,1587,1580,1562,1555,1477,1447,1117,
- 1098,1079,1060,1041,1021,1001,490,1136,694,674,
- 554,981,961,941,921,901,881,861,841,821,
- 801,781,361,752,654,732,461,534,441,0
+ 1424,0,427,0,1833,1671,1787,0,1084,1349,
+ 471,1540,1342,1295,1258,0,436,0,588,486,
+ 450,1321,1256,546,535,534,396,0,1228,507,
+ 369,0,1745,1616,1257,536,1349,1773,1295,1258,
+ 1545,1607,0,1714,1707,1687,1567,1115,556,1625,
+ 1598,1499,396,408,1210,1269,1357,1449,1436,1402,
+ 1530,1511,1474,1462,1239,610,1660,1648,1637,646,
+ 472,1486,1325,1230,1181,1172,721,1190,1152,1132,
+ 588,1094,1074,1053,1032,736,1011,698,677,623,
+ 990,969,948,927,906,885,864,843,822,801,
+ 780,369,759,656,486,450,0
};
};
public final static char scopeState[] = ScopeState.scopeState;
@@ -985,29 +961,29 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP
public interface InSymb {
public final static char inSymb[] = {0,
- 0,192,114,180,29,28,27,17,23,22,
- 10,9,4,14,16,15,111,2,116,115,
- 118,117,120,119,122,121,124,123,112,54,
- 2,2,2,2,2,76,61,2,31,151,
- 137,134,114,10,9,63,62,4,67,66,
- 65,64,57,58,14,71,70,73,72,78,
+ 0,196,117,181,30,29,28,13,21,20,
+ 7,6,4,8,10,9,112,2,116,115,
+ 119,118,121,120,123,122,125,124,113,38,
+ 2,2,2,2,2,76,61,2,31,154,
+ 138,140,117,7,6,63,62,4,67,66,
+ 65,64,56,57,8,71,70,73,72,78,
77,74,88,87,86,84,85,83,82,81,
- 80,79,69,151,151,151,151,151,193,137,
- 127,114,31,2,155,154,181,12,182,183,
- 53,52,184,51,185,186,1,3,115,115,
- 117,117,117,117,116,116,119,118,118,121,
- 120,137,123,122,127,127,127,127,127,32,
- 159,4,30,126,114,4,170,114,2,31,
- 139,32,139,32,32,139,68,114,4,114,
- 114,126,191,168,167,128,114,169,114,152,
- 4,32,114,32,114,114,32,179,114,32,
- 114,168,191,30,126,4,2,145,147,114,
- 54,167,114,165,134,166,114,165,189,139,
- 190,114,161,54,197,61,31,198,114,168,
- 126,126,157,114,2,159,165,114,165,161,
- 69,54,189,69,152,61,31,179,114,194,
- 68,157,2,114,161,152,161,167,195,54,
- 68,159,54
+ 80,79,69,154,154,154,154,154,197,138,
+ 128,117,31,2,158,157,182,26,183,175,
+ 184,55,54,185,53,186,187,108,115,115,
+ 118,118,118,118,116,116,120,119,119,122,
+ 121,138,124,123,128,128,128,128,128,19,
+ 141,161,137,32,127,117,4,168,117,2,
+ 31,198,176,176,201,176,68,117,19,137,
+ 4,117,127,194,166,165,134,117,167,117,
+ 155,4,108,19,108,19,117,4,137,194,
+ 32,127,4,2,147,149,117,38,165,199,
+ 117,19,117,204,117,137,117,127,127,160,
+ 117,2,161,19,188,140,189,117,192,108,
+ 193,169,38,206,61,31,207,117,166,117,
+ 117,117,192,169,69,38,153,69,155,61,
+ 31,166,165,202,188,200,68,160,2,117,
+ 169,155,38,38,68,161
};
};
public final static char inSymb[] = InSymb.inSymb;
@@ -1129,10 +1105,11 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP
")",
"}",
";",
+ "identifier_token",
"expression",
"postfix_expression",
"member_name",
- "type_name",
+ "type_id",
"initializer_list",
"unary_expression",
"cast_expression",
@@ -1141,16 +1118,14 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP
"shift_expression",
"relational_expression",
"equality_expression",
- "AND_expression",
- "exclusive_OR_expression",
- "inclusive_OR_expression",
- "logical_AND_expression",
- "logical_OR_expression",
- "conditional_expression",
+ "and_expression",
+ "exclusive_or_expression",
+ "inclusive_or_expression",
+ "logical_and_expression",
+ "logical_or_expression",
"assignment_expression",
"expression_list_actual",
"constant_expression",
- "identifier_or_typedefname",
"declaration_specifiers",
"simple_declaration_specifiers",
"struct_or_union_declaration_sp" +
@@ -1167,9 +1142,10 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP
"struct_or_union_specifier",
"elaborated_specifier",
"enum_specifier",
- "typedef_name_in_declspec",
+ "type_name_specifier",
"initializer",
"declarator",
+ "struct_or_union",
"struct_declaration_list",
"struct_declaration",
"specifier_qualifier_list",
@@ -1195,6 +1171,7 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP
"or",
"array_direct_abstract_declarat" +
"or",
+ "initializer_seq",
"designated_initializer",
"designation",
"designator_list",
@@ -1206,9 +1183,9 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP
public final String name(int index) { return name[index]; }
public final static int
- ERROR_SYMBOL = 56,
- SCOPE_UBOUND = 51,
- SCOPE_SIZE = 52,
+ ERROR_SYMBOL = 60,
+ SCOPE_UBOUND = 48,
+ SCOPE_SIZE = 49,
MAX_NAME_LENGTH = 38;
public final int getErrorSymbol() { return ERROR_SYMBOL; }
@@ -1217,20 +1194,20 @@ public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UP
public final int getMaxNameLength() { return MAX_NAME_LENGTH; }
public final static int
- NUM_STATES = 223,
+ NUM_STATES = 226,
NT_OFFSET = 107,
- LA_STATE_OFFSET = 2278,
+ LA_STATE_OFFSET = 2307,
MAX_LA = 2,
- NUM_RULES = 360,
- NUM_NONTERMINALS = 120,
- NUM_SYMBOLS = 227,
+ NUM_RULES = 368,
+ NUM_NONTERMINALS = 131,
+ NUM_SYMBOLS = 238,
SEGMENT_SIZE = 8192,
- START_STATE = 1747,
+ START_STATE = 509,
IDENTIFIER_SYMBOL = 0,
EOFT_SYMBOL = 89,
EOLT_SYMBOL = 89,
- ACCEPT_ACTION = 1902,
- ERROR_ACTION = 1918;
+ ACCEPT_ACTION = 1926,
+ ERROR_ACTION = 1939;
public final static boolean BACKTRACK = true;
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParsersym.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParsersym.java
index c9c99f54e9..bc39f383e2 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParsersym.java
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParsersym.java
@@ -1,5 +1,5 @@
/*******************************************************************************
-* Copyright (c) 2006, 2008 IBM Corporation and others.
+* Copyright (c) 2006, 2009 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -18,65 +18,65 @@ public interface UPCExpressionParsersym {
TK_auto = 33,
TK_break = 90,
TK_case = 91,
- TK_char = 38,
- TK_const = 6,
+ TK_char = 40,
+ TK_const = 11,
TK_continue = 92,
TK_default = 93,
TK_do = 94,
- TK_double = 39,
+ TK_double = 41,
TK_else = 95,
- TK_enum = 51,
+ TK_enum = 53,
TK_extern = 34,
- TK_float = 40,
+ TK_float = 42,
TK_for = 96,
TK_goto = 97,
TK_if = 98,
TK_inline = 35,
- TK_int = 41,
- TK_long = 42,
+ TK_int = 43,
+ TK_long = 44,
TK_register = 36,
- TK_restrict = 7,
+ TK_restrict = 12,
TK_return = 99,
- TK_short = 43,
- TK_signed = 44,
- TK_sizeof = 17,
- TK_static = 30,
- TK_struct = 52,
+ TK_short = 45,
+ TK_signed = 46,
+ TK_sizeof = 13,
+ TK_static = 32,
+ TK_struct = 54,
TK_switch = 100,
TK_typedef = 37,
- TK_union = 53,
- TK_unsigned = 45,
- TK_void = 46,
- TK_volatile = 8,
+ TK_union = 55,
+ TK_unsigned = 47,
+ TK_void = 48,
+ TK_volatile = 14,
TK_while = 101,
- TK__Bool = 47,
- TK__Complex = 48,
- TK__Imaginary = 49,
- TK_integer = 18,
- TK_floating = 19,
- TK_charconst = 20,
- TK_stringlit = 21,
+ TK__Bool = 49,
+ TK__Complex = 50,
+ TK__Imaginary = 51,
+ TK_integer = 15,
+ TK_floating = 16,
+ TK_charconst = 17,
+ TK_stringlit = 18,
TK_identifier = 1,
TK_Completion = 3,
TK_EndOfCompletion = 5,
TK_Invalid = 102,
TK_LeftBracket = 31,
TK_LeftParen = 2,
- TK_LeftBrace = 32,
+ TK_LeftBrace = 19,
TK_Dot = 61,
TK_Arrow = 76,
- TK_PlusPlus = 15,
- TK_MinusMinus = 16,
- TK_And = 14,
+ TK_PlusPlus = 9,
+ TK_MinusMinus = 10,
+ TK_And = 8,
TK_Star = 4,
- TK_Plus = 9,
- TK_Minus = 10,
- TK_Tilde = 22,
- TK_Bang = 23,
+ TK_Plus = 6,
+ TK_Minus = 7,
+ TK_Tilde = 20,
+ TK_Bang = 21,
TK_Slash = 62,
TK_Percent = 63,
- TK_RightShift = 57,
- TK_LeftShift = 58,
+ TK_RightShift = 56,
+ TK_LeftShift = 57,
TK_LT = 64,
TK_GT = 65,
TK_LE = 66,
@@ -89,7 +89,7 @@ public interface UPCExpressionParsersym {
TK_OrOr = 77,
TK_Question = 78,
TK_Colon = 68,
- TK_DotDotDot = 60,
+ TK_DotDotDot = 59,
TK_Assign = 69,
TK_StarAssign = 79,
TK_SlashAssign = 80,
@@ -101,26 +101,26 @@ public interface UPCExpressionParsersym {
TK_AndAssign = 86,
TK_CaretAssign = 87,
TK_OrAssign = 88,
- TK_Comma = 54,
- TK_RightBracket = 59,
- TK_RightParen = 50,
- TK_RightBrace = 55,
+ TK_Comma = 38,
+ TK_RightBracket = 58,
+ TK_RightParen = 39,
+ TK_RightBrace = 52,
TK_SemiColon = 75,
- TK_MYTHREAD = 24,
- TK_THREADS = 25,
- TK_UPC_MAX_BLOCKSIZE = 26,
- TK_relaxed = 11,
- TK_shared = 12,
- TK_strict = 13,
+ TK_MYTHREAD = 22,
+ TK_THREADS = 23,
+ TK_UPC_MAX_BLOCKSIZE = 24,
+ TK_relaxed = 25,
+ TK_shared = 26,
+ TK_strict = 27,
TK_upc_barrier = 103,
- TK_upc_localsizeof = 27,
- TK_upc_blocksizeof = 28,
- TK_upc_elemsizeof = 29,
+ TK_upc_localsizeof = 28,
+ TK_upc_blocksizeof = 29,
+ TK_upc_elemsizeof = 30,
TK_upc_notify = 104,
TK_upc_fence = 105,
TK_upc_wait = 106,
TK_upc_forall = 107,
- TK_ERROR_TOKEN = 56,
+ TK_ERROR_TOKEN = 60,
TK_EOF_TOKEN = 89;
public final static String orderedTerminalSymbols[] = {
@@ -130,38 +130,40 @@ public interface UPCExpressionParsersym {
"Completion",
"Star",
"EndOfCompletion",
- "const",
- "restrict",
- "volatile",
"Plus",
"Minus",
- "relaxed",
- "shared",
- "strict",
"And",
"PlusPlus",
"MinusMinus",
+ "const",
+ "restrict",
"sizeof",
+ "volatile",
"integer",
"floating",
"charconst",
"stringlit",
+ "LeftBrace",
"Tilde",
"Bang",
"MYTHREAD",
"THREADS",
"UPC_MAX_BLOCKSIZE",
+ "relaxed",
+ "shared",
+ "strict",
"upc_localsizeof",
"upc_blocksizeof",
"upc_elemsizeof",
- "static",
"LeftBracket",
- "LeftBrace",
+ "static",
"auto",
"extern",
"inline",
"register",
"typedef",
+ "Comma",
+ "RightParen",
"char",
"double",
"float",
@@ -174,17 +176,15 @@ public interface UPCExpressionParsersym {
"_Bool",
"_Complex",
"_Imaginary",
- "RightParen",
+ "RightBrace",
"enum",
"struct",
"union",
- "Comma",
- "RightBrace",
- "ERROR_TOKEN",
"RightShift",
"LeftShift",
"RightBracket",
"DotDotDot",
+ "ERROR_TOKEN",
"Dot",
"Slash",
"Percent",
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParser.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParser.java
index db15600741..43338901f0 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParser.java
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParser.java
@@ -1,5 +1,5 @@
/*******************************************************************************
-* Copyright (c) 2006, 2008 IBM Corporation and others.
+* Copyright (c) 2006, 2009 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -17,24 +17,36 @@ import lpg.lpgjavaruntime.*;
import java.util.*;
import org.eclipse.cdt.core.dom.ast.*;
+import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
import org.eclipse.cdt.core.dom.lrparser.IParser;
-import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
+import org.eclipse.cdt.core.dom.lrparser.ITokenCollector;
+import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter;
+import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser;
+import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
+import org.eclipse.cdt.core.parser.IScanner;
+import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
+import org.eclipse.cdt.core.index.IIndex;
import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
+import org.eclipse.cdt.core.dom.lrparser.ISecondaryParser;
-import org.eclipse.cdt.core.dom.lrparser.action.c99.C99ASTNodeFactory;
+import org.eclipse.cdt.core.dom.lrparser.action.c99.CNodeFactory;
import org.eclipse.cdt.core.dom.lrparser.action.c99.C99BuildASTParserAction;
+import org.eclipse.cdt.core.dom.lrparser.action.c99.C99SecondaryParserFactory;
import org.eclipse.cdt.core.dom.parser.upc.UPCASTNodeFactory;
+import org.eclipse.cdt.core.dom.parser.upc.UPCSecondaryParserFactory;
import org.eclipse.cdt.core.dom.parser.upc.UPCParserAction;
import org.eclipse.cdt.core.dom.upc.ast.IUPCASTKeywordExpression;
import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSynchronizationStatement;
import org.eclipse.cdt.core.dom.upc.ast.IUPCASTUnarySizeofExpression;
import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser;
-public class UPCNoCastExpressionParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser
+public class UPCNoCastExpressionParser extends PrsStream implements RuleAction, ITokenStream,
+ ITokenCollector, IParser< IASTExpression >
+ , ISecondaryParser< IASTExpression >
{
private static ParseTable prs = new UPCNoCastExpressionParserprs();
private FixedBacktrackingParser btParser;
@@ -125,22 +137,22 @@ public class UPCNoCastExpressionParser extends PrsStream implements RuleAction ,
super.reportError((firsttok > lasttok ? ParseErrorCodes.INSERTION_CODE : ParseErrorCodes.SUBSTITUTION_CODE), location, msg);
}
- public Object parser()
+ public void parser()
{
- return parser(null, 0);
+ parser(null, 0);
}
- public Object parser(Monitor monitor)
+ public void parser(Monitor monitor)
{
- return parser(monitor, 0);
+ parser(monitor, 0);
}
- public Object parser(int error_repair_count)
+ public void parser(int error_repair_count)
{
- return parser(null, error_repair_count);
+ parser(null, error_repair_count);
}
- public Object parser(Monitor monitor, int error_repair_count)
+ public void parser(Monitor monitor, int error_repair_count)
{
try
{
@@ -158,7 +170,7 @@ public class UPCNoCastExpressionParser extends PrsStream implements RuleAction ,
try
{
- return (Object) btParser.parse(error_repair_count);
+ btParser.parse(error_repair_count);
}
catch (BadParseException e)
{
@@ -166,18 +178,26 @@ public class UPCNoCastExpressionParser extends PrsStream implements RuleAction ,
DiagnoseParser diagnoseParser = new DiagnoseParser(this, prs);
diagnoseParser.diagnose(e.error_token);
}
-
- return null;
}
private UPCParserAction action;
+private IASTCompletionNode compNode;
+
-public UPCNoCastExpressionParser() { // constructor
+public UPCNoCastExpressionParser(IScanner scanner, IDOMTokenMap tokenMap, IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Map<String,String> properties) {
+ initActions(properties);
+ action.initializeTranslationUnit(scanner, builtinBindingsProvider, index);
+ CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap);
}
-private void initActions(IASTTranslationUnit tu) {
- action = new UPCParserAction ( UPCASTNodeFactory.DEFAULT_INSTANCE , this, tu);
+private void initActions(Map<String,String> properties) {
+ ScopedStack<Object> astStack = new ScopedStack<Object>();
+
+ action = new UPCParserAction (this, astStack, new UPCASTNodeFactory() , UPCSecondaryParserFactory.getDefault() );
+ action.setParserProperties(properties);
+
+
}
@@ -187,39 +207,35 @@ public void addToken(IToken token) {
}
-public IASTCompletionNode parse(IASTTranslationUnit tu) {
+public IASTExpression parse() {
// this has to be done, or... kaboom!
setStreamLength(getSize());
- initActions(tu);
final int errorRepairCount = -1; // -1 means full error handling
parser(null, errorRepairCount); // do the actual parse
super.resetTokenStream(); // allow tokens to be garbage collected
- // the completion node may be null
- IASTCompletionNode compNode = action.getASTCompletionNode();
+ compNode = action.getASTCompletionNode(); // the completion node may be null
+ return ( IASTExpression ) action.getParseResult();
+}
+
- //action = null;
- //parserAction = null;
+public IASTCompletionNode getCompletionNode() {
return compNode;
}
// uncomment this method to use with backtracking parser
-public List getRuleTokens() {
- return Collections.unmodifiableList(getTokens().subList(getLeftSpan(), getRightSpan() + 1));
-}
-
-
-public IASTNode getSecondaryParseResult() {
- return action.getSecondaryParseResult();
+public List<IToken> getRuleTokens() {
+ return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
}
public String[] getOrderedTerminalSymbols() {
return UPCNoCastExpressionParsersym.orderedTerminalSymbols;
}
+@SuppressWarnings("nls")
public String getName() {
- return "UPCNoCastExpressionParser"; //$NON-NLS-1$
+ return "UPCNoCastExpressionParser";
}
@@ -236,12 +252,12 @@ public void setTokens(List<IToken> tokens) {
addToken(new Token(null, 0, 0, UPCNoCastExpressionParsersym.TK_EOF_TOKEN));
}
-public UPCNoCastExpressionParser(String[] mapFrom) { // constructor
- tokenMap = new TokenMap(UPCNoCastExpressionParsersym.orderedTerminalSymbols, mapFrom);
+public UPCNoCastExpressionParser(ITokenStream stream, Map<String,String> properties) { // constructor for creating secondary parser
+ initActions(properties);
+ tokenMap = new TokenMap(UPCNoCastExpressionParsersym.orderedTerminalSymbols, stream.getOrderedTerminalSymbols());
}
-
public void ruleAction(int ruleNumber)
{
switch (ruleNumber)
@@ -254,1287 +270,1293 @@ public UPCNoCastExpressionParser(String[] mapFrom) { // constructor
}
//
- // Rule 10: literal ::= integer
+ // Rule 2: <empty> ::= $Empty
//
- case 10: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant); break;
+ case 2: { action. consumeEmpty(); break;
}
//
- // Rule 11: literal ::= floating
+ // Rule 13: literal ::= integer
//
- case 11: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant); break;
+ case 13: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant); break;
}
//
- // Rule 12: literal ::= charconst
+ // Rule 14: literal ::= floating
//
- case 12: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant); break;
+ case 14: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant); break;
}
//
- // Rule 13: literal ::= stringlit
+ // Rule 15: literal ::= charconst
//
- case 13: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal); break;
+ case 15: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant); break;
}
//
- // Rule 15: primary_expression ::= primary_expression_id
+ // Rule 16: literal ::= stringlit
//
- case 15: { action. consumeExpressionID(); break;
+ case 16: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal); break;
}
//
- // Rule 16: primary_expression ::= ( expression )
+ // Rule 18: primary_expression ::= primary_expression_id
//
- case 16: { action. consumeExpressionBracketed(); break;
+ case 18: { action. consumeExpressionID(); break;
}
//
- // Rule 20: postfix_expression ::= postfix_expression [ expression ]
+ // Rule 19: primary_expression ::= ( expression )
//
- case 20: { action. consumeExpressionArraySubscript(); break;
+ case 19: { action. consumeExpressionBracketed(); break;
}
//
- // Rule 21: postfix_expression ::= postfix_expression ( expression_list_opt )
+ // Rule 22: postfix_expression ::= postfix_expression [ expression ]
//
- case 21: { action. consumeExpressionFunctionCall(); break;
+ case 22: { action. consumeExpressionArraySubscript(); break;
}
//
- // Rule 22: postfix_expression ::= postfix_expression . member_name
+ // Rule 23: postfix_expression ::= postfix_expression ( expression_list_opt )
//
- case 22: { action. consumeExpressionFieldReference(false); break;
+ case 23: { action. consumeExpressionFunctionCall(); break;
}
//
- // Rule 23: postfix_expression ::= postfix_expression -> member_name
+ // Rule 24: postfix_expression ::= postfix_expression . member_name
//
- case 23: { action. consumeExpressionFieldReference(true); break;
+ case 24: { action. consumeExpressionFieldReference(false); break;
}
//
- // Rule 24: postfix_expression ::= postfix_expression ++
+ // Rule 25: postfix_expression ::= postfix_expression -> member_name
//
- case 24: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break;
+ case 25: { action. consumeExpressionFieldReference(true); break;
}
//
- // Rule 25: postfix_expression ::= postfix_expression --
+ // Rule 26: postfix_expression ::= postfix_expression ++
//
- case 25: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break;
+ case 26: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break;
}
//
- // Rule 26: postfix_expression ::= ( type_name ) { <openscope-ast> initializer_list comma_opt }
+ // Rule 27: postfix_expression ::= postfix_expression --
//
- case 26: { action. consumeExpressionTypeIdInitializer(); break;
+ case 27: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break;
}
//
- // Rule 32: unary_expression ::= ++ unary_expression
+ // Rule 28: postfix_expression ::= ( type_id ) initializer_list
//
- case 32: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break;
+ case 28: { action. consumeExpressionTypeIdInitializer(); break;
}
//
- // Rule 33: unary_expression ::= -- unary_expression
+ // Rule 33: unary_expression ::= ++ unary_expression
//
- case 33: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break;
+ case 33: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break;
}
//
- // Rule 34: unary_expression ::= & cast_expression
+ // Rule 34: unary_expression ::= -- unary_expression
//
- case 34: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break;
+ case 34: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break;
}
//
- // Rule 35: unary_expression ::= * cast_expression
+ // Rule 35: unary_expression ::= & cast_expression
//
- case 35: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break;
+ case 35: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break;
}
//
- // Rule 36: unary_expression ::= + cast_expression
+ // Rule 36: unary_expression ::= * cast_expression
//
- case 36: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break;
+ case 36: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break;
}
//
- // Rule 37: unary_expression ::= - cast_expression
+ // Rule 37: unary_expression ::= + cast_expression
//
- case 37: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break;
+ case 37: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break;
}
//
- // Rule 38: unary_expression ::= ~ cast_expression
+ // Rule 38: unary_expression ::= - cast_expression
//
- case 38: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break;
+ case 38: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break;
}
//
- // Rule 39: unary_expression ::= ! cast_expression
+ // Rule 39: unary_expression ::= ~ cast_expression
//
- case 39: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break;
+ case 39: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break;
}
//
- // Rule 40: unary_expression ::= sizeof unary_expression
+ // Rule 40: unary_expression ::= ! cast_expression
//
- case 40: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break;
+ case 40: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break;
}
//
- // Rule 41: unary_expression ::= sizeof ( type_name )
+ // Rule 41: unary_expression ::= sizeof unary_expression
//
- case 41: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof); break;
+ case 41: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break;
}
//
- // Rule 44: multiplicative_expression ::= multiplicative_expression * cast_expression
+ // Rule 42: unary_expression ::= sizeof ( type_id )
//
- case 44: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break;
+ case 42: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof); break;
}
//
- // Rule 45: multiplicative_expression ::= multiplicative_expression / cast_expression
+ // Rule 45: multiplicative_expression ::= multiplicative_expression * cast_expression
//
- case 45: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break;
+ case 45: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break;
}
//
- // Rule 46: multiplicative_expression ::= multiplicative_expression % cast_expression
+ // Rule 46: multiplicative_expression ::= multiplicative_expression / cast_expression
//
- case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break;
+ case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break;
}
//
- // Rule 48: additive_expression ::= additive_expression + multiplicative_expression
+ // Rule 47: multiplicative_expression ::= multiplicative_expression % cast_expression
//
- case 48: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break;
+ case 47: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break;
}
//
- // Rule 49: additive_expression ::= additive_expression - multiplicative_expression
+ // Rule 49: additive_expression ::= additive_expression + multiplicative_expression
//
- case 49: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break;
+ case 49: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break;
}
//
- // Rule 51: shift_expression ::= shift_expression << additive_expression
+ // Rule 50: additive_expression ::= additive_expression - multiplicative_expression
//
- case 51: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break;
+ case 50: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break;
}
//
- // Rule 52: shift_expression ::= shift_expression >> additive_expression
+ // Rule 52: shift_expression ::= shift_expression << additive_expression
//
- case 52: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break;
+ case 52: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break;
}
//
- // Rule 54: relational_expression ::= relational_expression < shift_expression
+ // Rule 53: shift_expression ::= shift_expression >> additive_expression
//
- case 54: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break;
+ case 53: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break;
}
//
- // Rule 55: relational_expression ::= relational_expression > shift_expression
+ // Rule 55: relational_expression ::= relational_expression < shift_expression
//
- case 55: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break;
+ case 55: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break;
}
//
- // Rule 56: relational_expression ::= relational_expression <= shift_expression
+ // Rule 56: relational_expression ::= relational_expression > shift_expression
//
- case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break;
+ case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break;
}
//
- // Rule 57: relational_expression ::= relational_expression >= shift_expression
+ // Rule 57: relational_expression ::= relational_expression <= shift_expression
//
- case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break;
+ case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break;
}
//
- // Rule 59: equality_expression ::= equality_expression == relational_expression
+ // Rule 58: relational_expression ::= relational_expression >= shift_expression
//
- case 59: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break;
+ case 58: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break;
}
//
- // Rule 60: equality_expression ::= equality_expression != relational_expression
+ // Rule 60: equality_expression ::= equality_expression == relational_expression
//
- case 60: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break;
+ case 60: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break;
}
//
- // Rule 62: AND_expression ::= AND_expression & equality_expression
+ // Rule 61: equality_expression ::= equality_expression != relational_expression
//
- case 62: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break;
+ case 61: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break;
}
//
- // Rule 64: exclusive_OR_expression ::= exclusive_OR_expression ^ AND_expression
+ // Rule 63: and_expression ::= and_expression & equality_expression
//
- case 64: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break;
+ case 63: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break;
}
//
- // Rule 66: inclusive_OR_expression ::= inclusive_OR_expression | exclusive_OR_expression
+ // Rule 65: exclusive_or_expression ::= exclusive_or_expression ^ and_expression
//
- case 66: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break;
+ case 65: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break;
}
//
- // Rule 68: logical_AND_expression ::= logical_AND_expression && inclusive_OR_expression
+ // Rule 67: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression
//
- case 68: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break;
+ case 67: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break;
}
//
- // Rule 70: logical_OR_expression ::= logical_OR_expression || logical_AND_expression
+ // Rule 69: logical_and_expression ::= logical_and_expression && inclusive_or_expression
//
- case 70: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break;
+ case 69: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break;
}
//
- // Rule 72: conditional_expression ::= logical_OR_expression ? expression : conditional_expression
+ // Rule 71: logical_or_expression ::= logical_or_expression || logical_and_expression
//
- case 72: { action. consumeExpressionConditional(); break;
+ case 71: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break;
}
//
- // Rule 74: assignment_expression ::= unary_expression = assignment_expression
+ // Rule 73: conditional_expression ::= logical_or_expression ? expression : assignment_expression
//
- case 74: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break;
+ case 73: { action. consumeExpressionConditional(); break;
}
//
- // Rule 75: assignment_expression ::= unary_expression *= assignment_expression
+ // Rule 75: assignment_expression ::= unary_expression = assignment_expression
//
- case 75: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break;
+ case 75: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break;
}
//
- // Rule 76: assignment_expression ::= unary_expression /= assignment_expression
+ // Rule 76: assignment_expression ::= unary_expression *= assignment_expression
//
- case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break;
+ case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break;
}
//
- // Rule 77: assignment_expression ::= unary_expression %= assignment_expression
+ // Rule 77: assignment_expression ::= unary_expression /= assignment_expression
//
- case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break;
+ case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break;
}
//
- // Rule 78: assignment_expression ::= unary_expression += assignment_expression
+ // Rule 78: assignment_expression ::= unary_expression %= assignment_expression
//
- case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break;
+ case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break;
}
//
- // Rule 79: assignment_expression ::= unary_expression -= assignment_expression
+ // Rule 79: assignment_expression ::= unary_expression += assignment_expression
//
- case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break;
+ case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break;
}
//
- // Rule 80: assignment_expression ::= unary_expression <<= assignment_expression
+ // Rule 80: assignment_expression ::= unary_expression -= assignment_expression
//
- case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break;
+ case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break;
}
//
- // Rule 81: assignment_expression ::= unary_expression >>= assignment_expression
+ // Rule 81: assignment_expression ::= unary_expression <<= assignment_expression
//
- case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break;
+ case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break;
}
//
- // Rule 82: assignment_expression ::= unary_expression &= assignment_expression
+ // Rule 82: assignment_expression ::= unary_expression >>= assignment_expression
//
- case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break;
+ case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break;
}
//
- // Rule 83: assignment_expression ::= unary_expression ^= assignment_expression
+ // Rule 83: assignment_expression ::= unary_expression &= assignment_expression
//
- case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break;
+ case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break;
}
//
- // Rule 84: assignment_expression ::= unary_expression |= assignment_expression
+ // Rule 84: assignment_expression ::= unary_expression ^= assignment_expression
//
- case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break;
+ case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break;
}
//
- // Rule 87: expression_list ::= <openscope-ast> expression_list_actual
+ // Rule 85: assignment_expression ::= unary_expression |= assignment_expression
//
- case 87: { action. consumeExpressionList(); break;
+ case 85: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break;
}
//
- // Rule 89: expression_list_opt ::= $Empty
+ // Rule 88: expression_list ::= <openscope-ast> expression_list_actual
//
- case 89: { action. consumeEmpty(); break;
+ case 88: { action. consumeExpressionList(); break;
}
//
- // Rule 99: statement ::= ERROR_TOKEN
+ // Rule 90: expression_list_opt ::= $Empty
//
- case 99: { action. consumeStatementProblem(); break;
+ case 90: { action. consumeEmpty(); break;
}
//
- // Rule 100: labeled_statement ::= identifier_or_typedefname : statement
+ // Rule 100: statement ::= ERROR_TOKEN
//
- case 100: { action. consumeStatementLabeled(); break;
+ case 100: { action. consumeStatementProblem(); break;
}
//
- // Rule 101: labeled_statement ::= case constant_expression :
+ // Rule 101: labeled_statement ::= identifier_token : statement
//
- case 101: { action. consumeStatementCase(); break;
+ case 101: { action. consumeStatementLabeled(); break;
}
//
- // Rule 102: labeled_statement ::= default :
+ // Rule 102: labeled_statement ::= case constant_expression : statement
//
- case 102: { action. consumeStatementDefault(); break;
+ case 102: { action. consumeStatementCase(); break;
}
//
- // Rule 103: compound_statement ::= { }
+ // Rule 103: labeled_statement ::= default : statement
//
- case 103: { action. consumeStatementCompoundStatement(false); break;
+ case 103: { action. consumeStatementDefault(); break;
}
//
- // Rule 104: compound_statement ::= { <openscope-ast> block_item_list }
+ // Rule 104: compound_statement ::= { }
//
- case 104: { action. consumeStatementCompoundStatement(true); break;
+ case 104: { action. consumeStatementCompoundStatement(false); break;
}
//
- // Rule 108: block_item ::= declaration
+ // Rule 105: compound_statement ::= { <openscope-ast> block_item_list }
//
- case 108: { action. consumeStatementDeclarationWithDisambiguation(); break;
+ case 105: { action. consumeStatementCompoundStatement(true); break;
}
//
- // Rule 109: expression_statement ::= ;
+ // Rule 109: block_item ::= declaration
//
- case 109: { action. consumeStatementNull(); break;
+ case 109: { action. consumeStatementDeclarationWithDisambiguation(); break;
}
//
- // Rule 110: expression_statement ::= expression_in_statement ;
+ // Rule 110: expression_statement ::= ;
//
- case 110: { action. consumeStatementExpression(); break;
+ case 110: { action. consumeStatementNull(); break;
}
//
- // Rule 111: selection_statement ::= if ( expression ) statement
+ // Rule 111: expression_statement ::= expression_in_statement ;
//
- case 111: { action. consumeStatementIf(false); break;
+ case 111: { action. consumeStatementExpression(); break;
}
//
- // Rule 112: selection_statement ::= if ( expression ) statement else statement
+ // Rule 112: selection_statement ::= if ( expression ) statement
//
- case 112: { action. consumeStatementIf(true); break;
+ case 112: { action. consumeStatementIf(false); break;
}
//
- // Rule 113: selection_statement ::= switch ( expression ) statement
+ // Rule 113: selection_statement ::= if ( expression ) statement else statement
//
- case 113: { action. consumeStatementSwitch(); break;
+ case 113: { action. consumeStatementIf(true); break;
}
//
- // Rule 115: expression_opt ::= $Empty
+ // Rule 114: selection_statement ::= switch ( expression ) statement
//
- case 115: { action. consumeEmpty(); break;
+ case 114: { action. consumeStatementSwitch(); break;
}
//
- // Rule 116: iteration_statement ::= do statement while ( expression ) ;
+ // Rule 116: expression_opt ::= $Empty
//
- case 116: { action. consumeStatementDoLoop(); break;
+ case 116: { action. consumeEmpty(); break;
}
//
- // Rule 117: iteration_statement ::= while ( expression ) statement
+ // Rule 117: iteration_statement ::= do statement while ( expression ) ;
//
- case 117: { action. consumeStatementWhileLoop(); break;
+ case 117: { action. consumeStatementDoLoop(); break;
}
//
- // Rule 118: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement
+ // Rule 118: iteration_statement ::= while ( expression ) statement
//
- case 118: { action. consumeStatementForLoop(); break;
+ case 118: { action. consumeStatementWhileLoop(); break;
}
//
- // Rule 119: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement
+ // Rule 119: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement
//
case 119: { action. consumeStatementForLoop(); break;
}
//
- // Rule 120: jump_statement ::= goto identifier_or_typedefname ;
+ // Rule 120: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement
//
- case 120: { action. consumeStatementGoto(); break;
+ case 120: { action. consumeStatementForLoop(); break;
}
//
- // Rule 121: jump_statement ::= continue ;
+ // Rule 121: jump_statement ::= goto identifier_token ;
//
- case 121: { action. consumeStatementContinue(); break;
+ case 121: { action. consumeStatementGoto(); break;
}
//
- // Rule 122: jump_statement ::= break ;
+ // Rule 122: jump_statement ::= continue ;
//
- case 122: { action. consumeStatementBreak(); break;
+ case 122: { action. consumeStatementContinue(); break;
}
//
- // Rule 123: jump_statement ::= return ;
+ // Rule 123: jump_statement ::= break ;
//
- case 123: { action. consumeStatementReturn(false); break;
+ case 123: { action. consumeStatementBreak(); break;
}
//
- // Rule 124: jump_statement ::= return expression ;
+ // Rule 124: jump_statement ::= return ;
//
- case 124: { action. consumeStatementReturn(true); break;
+ case 124: { action. consumeStatementReturn(false); break;
}
//
- // Rule 125: declaration ::= declaration_specifiers ;
+ // Rule 125: jump_statement ::= return expression ;
//
- case 125: { action. consumeDeclarationSimple(false); break;
+ case 125: { action. consumeStatementReturn(true); break;
}
//
- // Rule 126: declaration ::= declaration_specifiers <openscope-ast> init_declarator_list ;
+ // Rule 126: declaration ::= declaration_specifiers ;
//
- case 126: { action. consumeDeclarationSimple(true); break;
+ case 126: { action. consumeDeclarationSimple(false); break;
}
//
- // Rule 127: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
+ // Rule 127: declaration ::= declaration_specifiers <openscope-ast> init_declarator_list ;
//
- case 127: { action. consumeDeclarationSpecifiersSimple(); break;
+ case 127: { action. consumeDeclarationSimple(true); break;
}
//
- // Rule 128: declaration_specifiers ::= <openscope-ast> struct_or_union_declaration_specifiers
+ // Rule 128: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
//
- case 128: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
+ case 128: { action. consumeDeclarationSpecifiersSimple(); break;
}
//
- // Rule 129: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
+ // Rule 129: declaration_specifiers ::= <openscope-ast> struct_or_union_declaration_specifiers
//
case 129: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
}
//
- // Rule 130: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
+ // Rule 130: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
//
case 130: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
}
//
- // Rule 131: declaration_specifiers ::= <openscope-ast> typdef_name_declaration_specifiers
+ // Rule 131: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
//
- case 131: { action. consumeDeclarationSpecifiersTypedefName(); break;
+ case 131: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
}
//
- // Rule 156: init_declarator ::= complete_declarator = initializer
+ // Rule 132: declaration_specifiers ::= <openscope-ast> typdef_name_declaration_specifiers
//
- case 156: { action. consumeDeclaratorWithInitializer(true); break;
+ case 132: { action. consumeDeclarationSpecifiersTypedefName(); break;
}
//
- // Rule 158: storage_class_specifier ::= storage_class_specifier_token
+ // Rule 157: init_declarator ::= complete_declarator = initializer
//
- case 158: { action. consumeDeclSpecToken(); break;
+ case 157: { action. consumeDeclaratorWithInitializer(true); break;
}
//
- // Rule 164: simple_type_specifier ::= simple_type_specifier_token
+ // Rule 159: storage_class_specifier ::= storage_class_specifier_token
//
- case 164: { action. consumeDeclSpecToken(); break;
+ case 159: { action. consumeToken(); break;
}
//
- // Rule 177: typedef_name_in_declspec ::= Completion
+ // Rule 165: simple_type_specifier ::= simple_type_specifier_token
//
- case 177: { action. consumeDeclSpecToken(); break;
+ case 165: { action. consumeToken(); break;
}
//
- // Rule 178: typedef_name_in_declspec ::= identifier
+ // Rule 178: type_name_specifier ::= identifier_token
//
- case 178: { action. consumeDeclSpecToken(); break;
+ case 178: { action. consumeToken(); break;
}
//
- // Rule 181: struct_or_union_specifier ::= struct { <openscope-ast> struct_declaration_list_opt }
+ // Rule 179: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { <openscope-ast> struct_declaration_list_opt }
//
- case 181: { action. consumeTypeSpecifierComposite(false, IASTCompositeTypeSpecifier.k_struct); break;
+ case 179: { action. consumeTypeSpecifierComposite(false); break;
}
//
- // Rule 182: struct_or_union_specifier ::= union { <openscope-ast> struct_declaration_list_opt }
+ // Rule 180: 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(false, IASTCompositeTypeSpecifier.k_union); break;
+ case 180: { action. consumeTypeSpecifierComposite(true); break;
}
//
- // Rule 183: struct_or_union_specifier ::= struct identifier_or_typedefname { <openscope-ast> struct_declaration_list_opt }
+ // Rule 185: elaborated_specifier ::= struct elaborated_specifier_hook identifier_token
//
- case 183: { action. consumeTypeSpecifierComposite(true, IASTCompositeTypeSpecifier.k_struct); break;
+ case 185: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break;
}
//
- // Rule 184: struct_or_union_specifier ::= union identifier_or_typedefname { <openscope-ast> struct_declaration_list_opt }
+ // Rule 186: elaborated_specifier ::= union elaborated_specifier_hook identifier_token
//
- case 184: { action. consumeTypeSpecifierComposite(true, IASTCompositeTypeSpecifier.k_union); break;
+ case 186: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break;
}
//
- // Rule 185: elaborated_specifier ::= struct identifier_or_typedefname
+ // Rule 187: elaborated_specifier ::= enum elaborated_specifier_hook identifier_token
//
- case 185: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break;
+ case 187: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break;
}
//
- // Rule 186: elaborated_specifier ::= union identifier_or_typedefname
+ // Rule 193: struct_declaration ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ;
//
- case 186: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break;
+ case 193: { action. consumeStructDeclaration(true); break;
}
//
- // Rule 187: elaborated_specifier ::= enum identifier_or_typedefname
+ // Rule 194: struct_declaration ::= specifier_qualifier_list ;
//
- case 187: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break;
+ case 194: { action. consumeStructDeclaration(false); break;
}
//
- // Rule 192: struct_declaration ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ;
+ // Rule 195: struct_declaration ::= ERROR_TOKEN
//
- case 192: { action. consumeStructDeclaration(true); break;
+ case 195: { action. consumeDeclarationProblem(); break;
}
//
- // Rule 193: struct_declaration ::= specifier_qualifier_list ;
+ // Rule 201: struct_declarator ::= : constant_expression
//
- case 193: { action. consumeStructDeclaration(false); break;
+ case 201: { action. consumeBitField(false); break;
}
//
- // Rule 194: struct_declaration ::= ERROR_TOKEN
+ // Rule 202: struct_declarator ::= declarator : constant_expression
//
- case 194: { action. consumeDeclarationProblem(); break;
+ case 202: { action. consumeBitField(true); break;
}
//
- // Rule 200: struct_declarator ::= : constant_expression
+ // Rule 203: enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
//
- case 200: { action. consumeBitField(false); break;
+ case 203: { action. consumeTypeSpecifierEnumeration(false); break;
}
//
- // Rule 201: struct_declarator ::= declarator : constant_expression
+ // Rule 204: enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
//
- case 201: { action. consumeBitField(true); break;
+ case 204: { action. consumeTypeSpecifierEnumeration(true); break;
}
//
- // Rule 202: enum_specifier ::= enum { <openscope-ast> enumerator_list_opt comma_opt }
+ // Rule 210: enumerator ::= identifier_token
//
- case 202: { action. consumeTypeSpecifierEnumeration(false); break;
+ case 210: { action. consumeEnumerator(false); break;
}
//
- // Rule 203: enum_specifier ::= enum identifier_or_typedefname { <openscope-ast> enumerator_list_opt comma_opt }
+ // Rule 211: enumerator ::= identifier_token = constant_expression
//
- case 203: { action. consumeTypeSpecifierEnumeration(true); break;
+ case 211: { action. consumeEnumerator(true); break;
}
//
- // Rule 208: enumerator ::= identifier_or_typedefname
+ // Rule 212: type_qualifier ::= type_qualifier_token
//
- case 208: { action. consumeEnumerator(false); break;
+ case 212: { action. consumeToken(); break;
}
//
- // Rule 209: enumerator ::= identifier_or_typedefname = constant_expression
+ // Rule 216: function_specifier ::= inline
//
- case 209: { action. consumeEnumerator(true); break;
+ case 216: { action. consumeToken(); break;
}
//
- // Rule 210: type_qualifier ::= type_qualifier_token
+ // Rule 218: declarator ::= <openscope-ast> pointer_seq direct_declarator
//
- case 210: { action. consumeDeclSpecToken(); break;
+ case 218: { action. consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 214: function_specifier ::= inline
+ // Rule 223: basic_direct_declarator ::= declarator_id_name
//
- case 214: { action. consumeDeclSpecToken(); break;
+ case 223: { action. consumeDirectDeclaratorIdentifier(); break;
}
//
- // Rule 216: declarator ::= <openscope-ast> pointer_seq direct_declarator
+ // Rule 224: basic_direct_declarator ::= ( declarator )
//
- case 216: { action. consumeDeclaratorWithPointer(true); break;
+ case 224: { action. consumeDirectDeclaratorBracketed(); break;
}
//
- // Rule 221: basic_direct_declarator ::= declarator_id_name
+ // Rule 225: declarator_id_name ::= identifier
//
- case 221: { action. consumeDirectDeclaratorIdentifier(); break;
+ case 225: { action. consumeIdentifierName(); break;
}
//
- // Rule 222: basic_direct_declarator ::= ( declarator )
+ // Rule 226: array_direct_declarator ::= basic_direct_declarator array_modifier
//
- case 222: { action. consumeDirectDeclaratorBracketed(); break;
+ case 226: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 223: declarator_id_name ::= identifier
+ // Rule 227: array_direct_declarator ::= array_direct_declarator array_modifier
//
- case 223: { action. consumeIdentifierName(); break;
+ case 227: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 224: array_direct_declarator ::= basic_direct_declarator array_modifier
+ // Rule 229: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_type_list )
//
- case 224: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ case 229: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
}
//
- // Rule 225: array_direct_declarator ::= array_direct_declarator array_modifier
+ // Rule 230: function_direct_declarator ::= basic_direct_declarator ( )
//
- case 225: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ case 230: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
}
//
- // Rule 227: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_type_list )
+ // Rule 232: function_declarator ::= <openscope-ast> pointer_seq function_direct_declarator
//
- case 227: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
+ case 232: { action. consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 228: function_direct_declarator ::= basic_direct_declarator ( )
+ // Rule 233: knr_direct_declarator ::= basic_direct_declarator ( <openscope-ast> identifier_list )
//
- case 228: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
+ case 233: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break;
}
//
- // Rule 230: function_declarator ::= <openscope-ast> pointer_seq function_direct_declarator
+ // Rule 235: knr_function_declarator ::= <openscope-ast> pointer_seq knr_direct_declarator
//
- case 230: { action. consumeDeclaratorWithPointer(true); break;
+ case 235: { action. consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 231: knr_direct_declarator ::= basic_direct_declarator ( <openscope-ast> identifier_list )
+ // Rule 236: identifier_list ::= identifier
//
- case 231: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break;
+ case 236: { action. consumeIdentifierKnR(); break;
}
//
- // Rule 233: knr_function_declarator ::= <openscope-ast> pointer_seq knr_direct_declarator
+ // Rule 237: identifier_list ::= identifier_list , identifier
//
- case 233: { action. consumeDeclaratorWithPointer(true); break;
+ case 237: { action. consumeIdentifierKnR(); break;
}
//
- // Rule 234: identifier_list ::= identifier
+ // Rule 238: array_modifier ::= [ ]
//
- case 234: { action. consumeIdentifierKnR(); break;
+ case 238: { action. consumeDirectDeclaratorArrayModifier(false); break;
}
//
- // Rule 235: identifier_list ::= identifier_list , identifier
+ // Rule 239: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ]
//
- case 235: { action. consumeIdentifierKnR(); break;
+ case 239: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break;
}
//
- // Rule 236: array_modifier ::= [ ]
+ // Rule 240: array_modifier ::= [ assignment_expression ]
//
- case 236: { action. consumeDirectDeclaratorArrayModifier(false); break;
+ case 240: { action. consumeDirectDeclaratorArrayModifier(true); break;
}
//
- // Rule 237: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ]
+ // Rule 241: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
//
- case 237: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break;
+ case 241: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break;
}
//
- // Rule 238: array_modifier ::= [ assignment_expression ]
+ // Rule 242: array_modifier ::= [ static assignment_expression ]
//
- case 238: { action. consumeDirectDeclaratorArrayModifier(true); break;
+ case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break;
}
//
- // Rule 239: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
+ // Rule 243: array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
//
- case 239: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break;
+ case 243: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break;
}
//
- // Rule 240: array_modifier ::= [ static assignment_expression ]
+ // Rule 244: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ]
//
- case 240: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break;
+ case 244: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break;
}
//
- // Rule 241: array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
+ // Rule 245: array_modifier ::= [ * ]
//
- case 241: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break;
+ case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break;
}
//
- // Rule 242: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ]
+ // Rule 246: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ]
//
- case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break;
+ case 246: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break;
}
//
- // Rule 243: array_modifier ::= [ * ]
+ // Rule 248: pointer_seq ::= pointer_hook * pointer_hook
//
- case 243: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break;
+ case 248: { action. consumePointer(); break;
}
//
- // Rule 244: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ]
+ // Rule 249: pointer_seq ::= pointer_seq pointer_hook * pointer_hook
//
- case 244: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break;
+ case 249: { action. consumePointer(); break;
}
//
- // Rule 246: pointer_seq ::= *
+ // Rule 250: pointer_seq ::= pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
//
- case 246: { action. consumePointer(); break;
+ case 250: { action. consumePointerTypeQualifierList(); break;
}
//
- // Rule 247: pointer_seq ::= pointer_seq *
+ // Rule 251: pointer_seq ::= pointer_seq pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
//
- case 247: { action. consumePointer(); break;
+ case 251: { action. consumePointerTypeQualifierList(); break;
}
//
- // Rule 248: pointer_seq ::= * <openscope-ast> type_qualifier_list
+ // Rule 255: parameter_type_list ::= parameter_list
//
- case 248: { action. consumePointerTypeQualifierList(); break;
+ case 255: { action. consumeEmpty(); break;
}
//
- // Rule 249: pointer_seq ::= pointer_seq * <openscope-ast> type_qualifier_list
+ // Rule 256: parameter_type_list ::= parameter_list , ...
//
- case 249: { action. consumePointerTypeQualifierList(); break;
+ case 256: { action. consumePlaceHolder(); break;
}
//
- // Rule 252: parameter_type_list ::= parameter_list
+ // Rule 257: parameter_type_list ::= ...
//
- case 252: { action. consumeEmpty(); break;
+ case 257: { action. consumePlaceHolder(); break;
}
//
- // Rule 253: parameter_type_list ::= parameter_list , ...
+ // Rule 260: parameter_declaration ::= declaration_specifiers complete_parameter_declarator
//
- case 253: { action. consumePlaceHolder(); break;
+ case 260: { action. consumeParameterDeclaration(); break;
}
//
- // Rule 254: parameter_type_list ::= ...
+ // Rule 261: parameter_declaration ::= declaration_specifiers
//
- case 254: { action. consumePlaceHolder(); break;
+ case 261: { action. consumeParameterDeclarationWithoutDeclarator(); break;
}
//
- // Rule 257: parameter_declaration ::= declaration_specifiers complete_parameter_declarator
+ // Rule 264: type_id ::= specifier_qualifier_list
//
- case 257: { action. consumeParameterDeclaration(); break;
+ case 264: { action. consumeTypeId(false); break;
}
//
- // Rule 258: parameter_declaration ::= declaration_specifiers
+ // Rule 265: type_id ::= specifier_qualifier_list abstract_declarator
//
- case 258: { action. consumeParameterDeclarationWithoutDeclarator(); break;
+ case 265: { action. consumeTypeId(true); break;
}
//
- // Rule 261: type_name ::= specifier_qualifier_list
+ // Rule 267: abstract_declarator ::= <openscope-ast> pointer_seq
//
- case 261: { action. consumeTypeId(false); break;
+ case 267: { action. consumeDeclaratorWithPointer(false); break;
}
//
- // Rule 262: type_name ::= specifier_qualifier_list abstract_declarator
+ // Rule 268: abstract_declarator ::= <openscope-ast> pointer_seq direct_abstract_declarator
//
- case 262: { action. consumeTypeId(true); break;
+ case 268: { action. consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 264: abstract_declarator ::= <openscope-ast> pointer_seq
+ // Rule 272: basic_direct_abstract_declarator ::= ( abstract_declarator )
//
- case 264: { action. consumeDeclaratorWithPointer(false); break;
+ case 272: { action. consumeDirectDeclaratorBracketed(); break;
}
//
- // Rule 265: abstract_declarator ::= <openscope-ast> pointer_seq direct_abstract_declarator
+ // Rule 273: array_direct_abstract_declarator ::= array_modifier
//
- case 265: { action. consumeDeclaratorWithPointer(false); break;
+ case 273: { action. consumeDirectDeclaratorArrayDeclarator(false); break;
}
//
- // Rule 269: basic_direct_abstract_declarator ::= ( abstract_declarator )
+ // Rule 274: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
//
- case 269: { action. consumeDirectDeclaratorBracketed(); break;
+ case 274: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 270: array_direct_abstract_declarator ::= array_modifier
+ // Rule 275: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
//
- case 270: { action. consumeDirectDeclaratorArrayDeclarator(false); break;
+ case 275: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 271: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
+ // Rule 276: function_direct_abstract_declarator ::= ( )
//
- case 271: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ case 276: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break;
+ }
+
+ //
+ // Rule 277: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( )
+ //
+ case 277: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
}
//
- // Rule 272: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
+ // Rule 278: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list )
//
- case 272: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ case 278: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break;
}
//
- // Rule 273: function_direct_abstract_declarator ::= ( )
+ // Rule 279: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list )
//
- case 273: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break;
- }
+ case 279: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
+ }
//
- // Rule 274: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( )
+ // Rule 280: initializer ::= assignment_expression
//
- case 274: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
+ case 280: { action. consumeInitializer(); break;
}
//
- // Rule 275: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list )
+ // Rule 282: initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq comma_opt } end_initializer_list
//
- case 275: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break;
+ case 282: { action. consumeInitializerList(); break;
}
//
- // Rule 276: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list )
+ // Rule 283: initializer_list ::= { <openscope-ast> }
//
- case 276: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
+ case 283: { action. consumeInitializerList(); break;
}
//
- // Rule 277: initializer ::= assignment_expression
+ // Rule 284: start_initializer_list ::= $Empty
//
- case 277: { action. consumeInitializer(); break;
+ case 284: { action. initializerListStart(); break;
}
//
- // Rule 278: initializer ::= { <openscope-ast> initializer_list comma_opt }
+ // Rule 285: end_initializer_list ::= $Empty
//
- case 278: { action. consumeInitializerList(); break;
+ case 285: { action. initializerListEnd(); break;
}
//
- // Rule 283: designated_initializer ::= <openscope-ast> designation = initializer
+ // Rule 290: designated_initializer ::= <openscope-ast> designation = initializer
//
- case 283: { action. consumeInitializerDesignated(); break;
+ case 290: { action. consumeInitializerDesignated(); break;
}
//
- // Rule 287: designator_base ::= [ constant_expression ]
+ // Rule 294: designator_base ::= [ constant_expression ]
//
- case 287: { action. consumeDesignatorArray(); break;
+ case 294: { action. consumeDesignatorArray(); break;
}
//
- // Rule 288: designator_base ::= . identifier_or_typedefname
+ // Rule 295: designator_base ::= . identifier_token
//
- case 288: { action. consumeDesignatorField(); break;
+ case 295: { action. consumeDesignatorField(); break;
}
//
- // Rule 289: designator ::= [ constant_expression ]
+ // Rule 296: designator ::= [ constant_expression ]
//
- case 289: { action. consumeDesignatorArray(); break;
+ case 296: { action. consumeDesignatorArray(); break;
}
//
- // Rule 290: designator ::= . identifier_or_typedefname
+ // Rule 297: designator ::= . identifier_token
//
- case 290: { action. consumeDesignatorField(); break;
+ case 297: { action. consumeDesignatorField(); break;
}
//
- // Rule 291: translation_unit ::= external_declaration_list
+ // Rule 298: translation_unit ::= external_declaration_list
//
- case 291: { action. consumeTranslationUnit(); break;
+ case 298: { action. consumeTranslationUnit(); break;
}
//
- // Rule 292: translation_unit ::= $Empty
+ // Rule 299: translation_unit ::= $Empty
//
- case 292: { action. consumeTranslationUnit(); break;
+ case 299: { action. consumeTranslationUnit(); break;
}
//
- // Rule 297: external_declaration ::= ;
+ // Rule 304: external_declaration ::= ;
//
- case 297: { action. consumeDeclarationEmpty(); break;
+ case 304: { action. consumeDeclarationEmpty(); break;
}
//
- // Rule 298: external_declaration ::= ERROR_TOKEN
+ // Rule 305: external_declaration ::= ERROR_TOKEN
//
- case 298: { action. consumeDeclarationProblem(); break;
+ case 305: { action. consumeDeclarationProblem(); break;
}
//
- // Rule 301: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
+ // Rule 309: function_definition ::= <openscope-ast> function_declarator function_body
//
- case 301: { action. consumeFunctionDefinition(true); break;
+ case 309: { action. consumeFunctionDefinition(false); break;
}
//
- // Rule 302: function_definition ::= <openscope-ast> function_declarator function_body
+ // Rule 310: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
//
- case 302: { action. consumeFunctionDefinition(false); break;
+ case 310: { action. consumeFunctionDefinitionKnR(); break;
}
//
- // Rule 303: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
+ // Rule 311: normal_function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
//
- case 303: { action. consumeFunctionDefinitionKnR(); break;
+ case 311: { action. consumeFunctionDefinition(true); break;
}
//
- // Rule 304: function_body ::= { }
+ // Rule 312: function_body ::= { }
//
- case 304: { action. consumeStatementCompoundStatement(false); break;
+ case 312: { action. consumeStatementCompoundStatement(false); break;
}
//
- // Rule 305: function_body ::= { <openscope-ast> block_item_list }
+ // Rule 313: function_body ::= { <openscope-ast> block_item_list }
//
- case 305: { action. consumeStatementCompoundStatement(true); break;
+ case 313: { action. consumeStatementCompoundStatement(true); break;
}
//
- // Rule 307: no_cast_start ::= ERROR_TOKEN
+ // Rule 315: no_cast_start ::= ERROR_TOKEN
//
- case 307: { action. consumeExpressionProblem(); break;
+ case 315: { action. consumeEmpty(); break;
}
//
- // Rule 308: literal ::= MYTHREAD
+ // Rule 316: literal ::= MYTHREAD
//
- case 308: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread); break;
+ case 316: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread); break;
}
//
- // Rule 309: literal ::= THREADS
+ // Rule 317: literal ::= THREADS
//
- case 309: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads); break;
+ case 317: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads); break;
}
//
- // Rule 310: literal ::= UPC_MAX_BLOCKSIZE
+ // Rule 318: literal ::= UPC_MAX_BLOCKSIZE
//
- case 310: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size); break;
+ case 318: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size); break;
}
//
- // Rule 311: unary_expression ::= upc_localsizeof unary_expression
+ // Rule 319: unary_expression ::= upc_localsizeof unary_expression
//
- case 311: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_localsizeof); break;
+ case 319: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_localsizeof); break;
}
//
- // Rule 312: unary_expression ::= upc_localsizeof ( type_name )
+ // Rule 320: unary_expression ::= upc_localsizeof ( type_id )
//
- case 312: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_localsizeof); break;
+ case 320: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_localsizeof); break;
}
//
- // Rule 313: unary_expression ::= upc_blocksizeof unary_expression
+ // Rule 321: unary_expression ::= upc_blocksizeof unary_expression
//
- case 313: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_blocksizeof); break;
+ case 321: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_blocksizeof); break;
}
//
- // Rule 314: unary_expression ::= upc_blocksizeof ( type_name )
+ // Rule 322: unary_expression ::= upc_blocksizeof ( type_id )
//
- case 314: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_blocksizeof); break;
+ case 322: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_blocksizeof); break;
}
//
- // Rule 315: unary_expression ::= upc_elemsizeof unary_expression
+ // Rule 323: unary_expression ::= upc_elemsizeof unary_expression
//
- case 315: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_elemsizeof); break;
+ case 323: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_elemsizeof); break;
}
//
- // Rule 316: unary_expression ::= upc_elemsizeof ( type_name )
+ // Rule 324: unary_expression ::= upc_elemsizeof ( type_id )
//
- case 316: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_elemsizeof); break;
+ case 324: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_elemsizeof); break;
}
//
- // Rule 320: shared_type_qualifier ::= shared
+ // Rule 328: shared_type_qualifier ::= shared
//
- case 320: { action. consumeToken(); break;
+ case 328: { action. consumeToken(); break;
}
//
- // Rule 321: reference_type_qualifier ::= relaxed
+ // Rule 329: reference_type_qualifier ::= relaxed
//
- case 321: { action. consumeToken(); break;
+ case 329: { action. consumeToken(); break;
}
//
- // Rule 322: reference_type_qualifier ::= strict
+ // Rule 330: reference_type_qualifier ::= strict
//
- case 322: { action. consumeToken(); break;
+ case 330: { action. consumeToken(); break;
}
//
- // Rule 323: layout_qualifier ::= [ constant_expression ]
+ // Rule 331: layout_qualifier ::= [ constant_expression ]
//
- case 323: { action. consumeLayoutQualifier(true, false); break;
+ case 331: { action. consumeLayoutQualifier(true, false); break;
}
//
- // Rule 324: layout_qualifier ::= [ * ]
+ // Rule 332: layout_qualifier ::= [ * ]
//
- case 324: { action. consumeLayoutQualifier(false, true); break;
+ case 332: { action. consumeLayoutQualifier(false, true); break;
}
//
- // Rule 325: layout_qualifier ::= [ ]
+ // Rule 333: layout_qualifier ::= [ ]
//
- case 325: { action. consumeLayoutQualifier(false, false); break;
+ case 333: { action. consumeLayoutQualifier(false, false); break;
}
//
- // Rule 327: synchronization_statement ::= upc_notify expression ;
+ // Rule 335: synchronization_statement ::= upc_notify expression ;
//
- case 327: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true); break;
+ case 335: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true); break;
}
//
- // Rule 328: synchronization_statement ::= upc_notify ;
+ // Rule 336: synchronization_statement ::= upc_notify ;
//
- case 328: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false); break;
+ case 336: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false); break;
}
//
- // Rule 329: synchronization_statement ::= upc_wait expression ;
+ // Rule 337: synchronization_statement ::= upc_wait expression ;
//
- case 329: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true); break;
+ case 337: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true); break;
}
//
- // Rule 330: synchronization_statement ::= upc_wait ;
+ // Rule 338: synchronization_statement ::= upc_wait ;
//
- case 330: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false); break;
+ case 338: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false); break;
}
//
- // Rule 331: synchronization_statement ::= upc_barrier expression ;
+ // Rule 339: synchronization_statement ::= upc_barrier expression ;
//
- case 331: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true); break;
+ case 339: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true); break;
}
//
- // Rule 332: synchronization_statement ::= upc_barrier ;
+ // Rule 340: synchronization_statement ::= upc_barrier ;
//
- case 332: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false); break;
+ case 340: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false); break;
}
//
- // Rule 333: synchronization_statement ::= upc_fence ;
+ // Rule 341: synchronization_statement ::= upc_fence ;
//
- case 333: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false); break;
+ case 341: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false); break;
}
//
- // Rule 334: iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement
+ // Rule 342: iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement
//
- case 334: { action. consumeStatementUPCForallLoop(true, true, true, true); break;
+ case 342: { action. consumeStatementUPCForallLoop(true, true, true, true); break;
}
//
- // Rule 335: iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement
+ // Rule 343: iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement
//
- case 335: { action. consumeStatementUPCForallLoop(true, true, true, false); break;
+ case 343: { action. consumeStatementUPCForallLoop(true, true, true, false); break;
}
//
- // Rule 336: iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement
+ // Rule 344: iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement
//
- case 336: { action. consumeStatementUPCForallLoop(true, true, false, true); break;
+ case 344: { action. consumeStatementUPCForallLoop(true, true, false, true); break;
}
//
- // Rule 337: iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement
+ // Rule 345: iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement
//
- case 337: { action. consumeStatementUPCForallLoop(true, true, false, false); break;
+ case 345: { action. consumeStatementUPCForallLoop(true, true, false, false); break;
}
//
- // Rule 338: iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement
+ // Rule 346: iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement
//
- case 338: { action. consumeStatementUPCForallLoop(true, false, true, true); break;
+ case 346: { action. consumeStatementUPCForallLoop(true, false, true, true); break;
}
//
- // Rule 339: iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement
+ // Rule 347: iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement
//
- case 339: { action. consumeStatementUPCForallLoop(true, false, true, false); break;
+ case 347: { action. consumeStatementUPCForallLoop(true, false, true, false); break;
}
//
- // Rule 340: iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement
+ // Rule 348: iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement
//
- case 340: { action. consumeStatementUPCForallLoop(true, false, false, true); break;
+ case 348: { action. consumeStatementUPCForallLoop(true, false, false, true); break;
}
//
- // Rule 341: iteration_statement ::= upc_forall ( expression ; ; ; ) statement
+ // Rule 349: iteration_statement ::= upc_forall ( expression ; ; ; ) statement
//
- case 341: { action. consumeStatementUPCForallLoop(true, false, false, false); break;
+ case 349: { action. consumeStatementUPCForallLoop(true, false, false, false); break;
}
//
- // Rule 342: iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement
+ // Rule 350: iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement
//
- case 342: { action. consumeStatementUPCForallLoop(false, true, true, true); break;
+ case 350: { action. consumeStatementUPCForallLoop(false, true, true, true); break;
}
//
- // Rule 343: iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement
+ // Rule 351: iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement
//
- case 343: { action. consumeStatementUPCForallLoop(false, true, true, false); break;
+ case 351: { action. consumeStatementUPCForallLoop(false, true, true, false); break;
}
//
- // Rule 344: iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement
+ // Rule 352: iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement
//
- case 344: { action. consumeStatementUPCForallLoop(false, true, false, true); break;
+ case 352: { action. consumeStatementUPCForallLoop(false, true, false, true); break;
}
//
- // Rule 345: iteration_statement ::= upc_forall ( ; expression ; ; ) statement
+ // Rule 353: iteration_statement ::= upc_forall ( ; expression ; ; ) statement
//
- case 345: { action. consumeStatementUPCForallLoop(false, true, false, false); break;
+ case 353: { action. consumeStatementUPCForallLoop(false, true, false, false); break;
}
//
- // Rule 346: iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement
+ // Rule 354: iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement
//
- case 346: { action. consumeStatementUPCForallLoop(false, false, true, true); break;
+ case 354: { action. consumeStatementUPCForallLoop(false, false, true, true); break;
}
//
- // Rule 347: iteration_statement ::= upc_forall ( ; ; expression ; ) statement
+ // Rule 355: iteration_statement ::= upc_forall ( ; ; expression ; ) statement
//
- case 347: { action. consumeStatementUPCForallLoop(false, false, true, false); break;
+ case 355: { action. consumeStatementUPCForallLoop(false, false, true, false); break;
}
//
- // Rule 348: iteration_statement ::= upc_forall ( ; ; ; affinity ) statement
+ // Rule 356: iteration_statement ::= upc_forall ( ; ; ; affinity ) statement
//
- case 348: { action. consumeStatementUPCForallLoop(false, false, false, true); break;
+ case 356: { action. consumeStatementUPCForallLoop(false, false, false, true); break;
}
//
- // Rule 349: iteration_statement ::= upc_forall ( ; ; ; ) statement
+ // Rule 357: iteration_statement ::= upc_forall ( ; ; ; ) statement
//
- case 349: { action. consumeStatementUPCForallLoop(false, false, false, false); break;
+ case 357: { action. consumeStatementUPCForallLoop(false, false, false, false); break;
}
//
- // Rule 350: iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement
+ // Rule 358: iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement
//
- case 350: { action. consumeStatementUPCForallLoop(true, true, true, true); break;
+ case 358: { action. consumeStatementUPCForallLoop(true, true, true, true); break;
}
//
- // Rule 351: iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement
+ // Rule 359: iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement
//
- case 351: { action. consumeStatementUPCForallLoop(true, true, true, false); break;
+ case 359: { action. consumeStatementUPCForallLoop(true, true, true, false); break;
}
//
- // Rule 352: iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement
+ // Rule 360: iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement
//
- case 352: { action. consumeStatementUPCForallLoop(true, true, false, true); break;
+ case 360: { action. consumeStatementUPCForallLoop(true, true, false, true); break;
}
//
- // Rule 353: iteration_statement ::= upc_forall ( declaration expression ; ; ) statement
+ // Rule 361: iteration_statement ::= upc_forall ( declaration expression ; ; ) statement
//
- case 353: { action. consumeStatementUPCForallLoop(true, true, false, false); break;
+ case 361: { action. consumeStatementUPCForallLoop(true, true, false, false); break;
}
//
- // Rule 354: iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement
+ // Rule 362: iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement
//
- case 354: { action. consumeStatementUPCForallLoop(true, false, true, true); break;
+ case 362: { action. consumeStatementUPCForallLoop(true, false, true, true); break;
}
//
- // Rule 355: iteration_statement ::= upc_forall ( declaration ; expression ; ) statement
+ // Rule 363: iteration_statement ::= upc_forall ( declaration ; expression ; ) statement
//
- case 355: { action. consumeStatementUPCForallLoop(true, false, true, false); break;
+ case 363: { action. consumeStatementUPCForallLoop(true, false, true, false); break;
}
//
- // Rule 356: iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement
+ // Rule 364: iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement
//
- case 356: { action. consumeStatementUPCForallLoop(true, false, false, true); break;
+ case 364: { action. consumeStatementUPCForallLoop(true, false, false, true); break;
}
//
- // Rule 357: iteration_statement ::= upc_forall ( declaration ; ; ) statement
+ // Rule 365: iteration_statement ::= upc_forall ( declaration ; ; ) statement
//
- case 357: { action. consumeStatementUPCForallLoop(true, false, false, false); break;
+ case 365: { action. consumeStatementUPCForallLoop(true, false, false, false); break;
}
//
- // Rule 359: affinity ::= continue
+ // Rule 367: affinity ::= continue
//
- case 359: { action. consumeToken(); break;
+ case 367: { action. consumeToken(); break;
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParserprs.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParserprs.java
index c919965ad7..f46352be62 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParserprs.java
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParserprs.java
@@ -1,5 +1,5 @@
/*******************************************************************************
-* Copyright (c) 2006, 2008 IBM Corporation and others.
+* Copyright (c) 2006, 2009 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -35,191 +35,197 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface BaseCheck {
public final static short baseCheck[] = {0,
- 0,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,3,1,1,1,4,
- 4,3,3,2,2,8,1,0,1,1,
- 1,2,2,2,2,2,2,2,2,2,
- 4,1,1,3,3,3,1,3,3,1,
- 3,3,1,3,3,3,3,1,3,3,
- 1,3,1,3,1,3,1,3,1,3,
- 1,5,1,3,3,3,3,3,3,3,
- 3,3,3,3,1,1,2,1,0,1,
- 3,1,1,1,1,1,1,1,1,3,
- 3,2,2,4,1,2,1,1,1,2,
- 5,7,5,1,0,7,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,
+ 0,0,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,3,1,
+ 1,4,4,3,3,2,2,4,1,0,
+ 1,1,2,2,2,2,2,2,2,2,
+ 2,4,1,1,3,3,3,1,3,3,
+ 1,3,3,1,3,3,3,3,1,3,
+ 3,1,3,1,3,1,3,1,3,1,
+ 3,1,5,1,3,3,3,3,3,3,
+ 3,3,3,3,3,1,1,2,1,0,
+ 1,3,1,1,1,1,1,1,1,1,
+ 3,4,3,2,4,1,2,1,1,1,
+ 2,5,7,5,1,0,7,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,1,1,
- 5,5,6,6,2,2,2,1,0,1,
- 2,4,2,1,1,1,3,1,1,2,
- 3,6,7,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,1,2,3,4,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,5,1,1,
- 3,3,4,1,1,2,3,2,3,2,
- 1,0,1,2,1,1,1,1,1,2,
- 4,3,6,2,4,1,1,1,1,1,
- 2,4,2,4,2,4,1,1,2,1,
- 1,1,3,3,2,1,3,2,3,2,
- 3,2,2,11,10,10,9,10,9,9,
- 8,10,9,9,8,9,8,8,7,10,
- 9,9,8,9,8,8,7,1,1,-38,
- 0,0,0,0,0,0,0,-2,0,0,
- 0,0,0,0,0,0,0,0,0,-78,
- -4,-87,0,0,0,0,-5,0,0,0,
- 0,0,0,0,0,0,-60,0,0,0,
- 0,0,0,0,-141,0,0,0,0,0,
- 0,0,0,0,0,-18,0,-6,0,0,
+ 1,1,1,1,1,1,1,1,6,8,
+ 0,0,1,1,3,3,3,0,1,0,
+ 1,2,4,2,1,1,1,3,1,1,
+ 2,3,7,8,0,1,0,1,3,1,
+ 3,1,1,1,1,1,1,3,1,1,
+ 1,1,1,3,1,2,2,1,5,3,
+ 1,3,5,1,3,1,3,2,4,3,
+ 5,4,6,6,3,5,1,3,4,5,
+ 6,0,1,2,1,3,1,1,3,2,
+ 1,1,1,1,2,1,2,3,1,1,
+ 1,3,1,2,2,2,3,4,5,1,
+ 1,7,3,0,0,1,1,3,3,4,
+ 1,1,2,3,2,3,2,1,0,1,
+ 2,1,1,1,1,1,2,1,3,6,
+ 4,2,4,1,1,1,1,1,2,4,
+ 2,4,2,4,1,1,2,1,1,1,
+ 3,3,2,1,3,2,3,2,3,2,
+ 2,11,10,10,9,10,9,9,8,10,
+ 9,9,8,9,8,8,7,10,9,9,
+ 8,9,8,8,7,1,1,-38,0,0,
+ 0,0,0,0,0,0,0,0,-127,0,
+ 0,0,0,0,0,0,0,0,-2,0,
+ 0,0,0,0,-129,0,-77,-81,-138,0,
+ 0,0,0,0,-60,0,0,0,0,0,
+ 0,0,0,0,0,-179,0,0,0,0,
+ 0,0,-172,0,0,0,0,0,0,-86,
+ 0,0,0,0,0,0,0,-39,0,-40,
+ 0,0,0,0,0,0,0,0,-154,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-61,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-135,
+ 0,0,0,0,0,0,0,-190,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-186,
+ 0,0,0,0,0,0,0,0,-145,0,
+ 0,-4,0,-88,-142,0,-18,-117,-180,0,
+ 0,0,0,0,-135,0,-196,-35,0,-203,
+ 0,0,0,0,0,-36,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-193,
- -9,0,0,0,0,0,0,-30,0,0,
+ 0,0,0,-194,0,-209,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-35,
- -36,0,-156,-19,-20,0,0,0,0,0,
- 0,0,0,-84,0,0,0,0,0,0,
- 0,0,-181,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-213,0,0,
+ 0,0,0,0,0,0,0,0,0,-205,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-79,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-144,0,-7,0,0,0,0,0,
-57,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-21,
- -81,0,0,0,0,0,0,0,0,-61,
+ 0,0,0,0,0,0,-82,0,-79,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-22,-23,0,0,0,
- -8,0,0,0,0,0,0,0,0,0,
- -15,0,0,0,0,0,0,0,0,0,
- 0,0,-3,0,0,0,0,0,0,0,
- -167,0,0,0,0,0,0,0,0,0,
- 0,0,-120,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-127,0,0,0,0,0,0,0,
- -24,0,0,0,0,0,0,0,0,0,
- 0,-25,0,0,-48,0,0,0,0,0,
- 0,0,-26,0,0,0,-27,-96,-140,0,
+ 0,-89,-19,-84,0,0,0,-3,0,0,
+ 0,0,0,0,0,0,0,0,-20,0,
+ 0,0,0,0,0,0,0,0,-121,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-128,
0,0,0,0,0,0,0,0,0,0,
- -201,0,0,0,0,0,0,0,-73,0,
+ -96,0,0,0,0,0,0,0,0,-21,
+ 0,0,-43,0,0,0,0,0,0,0,
+ 0,0,0,-130,0,-141,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -62,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-30,0,
+ 0,0,0,0,0,0,0,0,0,-73,
+ 0,0,0,0,0,0,0,0,0,-62,
0,0,0,0,0,0,0,0,0,0,
- -43,0,0,0,0,0,0,0,-63,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-64,0,
- 0,0,0,0,0,0,-74,0,0,0,
- 0,0,0,0,0,0,0,0,-65,0,
+ -63,0,0,0,0,0,0,0,0,0,
+ 0,-74,0,0,0,0,0,0,0,0,
+ 0,-64,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-66,0,
- 0,0,0,0,0,0,-75,0,0,0,
- 0,0,0,0,0,0,0,0,-67,0,
+ 0,0,-65,0,0,0,0,0,0,0,
+ 0,0,0,-75,0,0,0,0,0,0,
+ 0,0,0,-66,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-68,0,
- 0,0,0,0,0,0,-76,0,0,0,
- 0,0,0,0,0,0,0,0,-69,0,
+ 0,0,0,0,-67,0,0,0,0,0,
+ 0,0,0,0,0,-76,0,0,0,0,
+ 0,0,0,0,0,-68,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-69,0,0,0,
+ 0,0,0,0,0,0,0,-95,0,0,
+ 0,0,0,0,0,0,0,-70,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-70,0,
- 0,0,0,0,0,0,-95,0,0,0,
0,0,0,0,0,0,0,0,-71,0,
+ 0,0,0,0,0,0,0,0,0,-125,
+ 0,0,0,0,0,0,0,0,0,-72,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-72,0,
- 0,0,0,0,0,0,-124,0,0,0,
- 0,0,0,0,0,0,0,0,-160,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-161,0,
- 0,0,0,0,0,0,-142,0,0,0,
- 0,0,0,0,0,0,0,0,-184,0,
+ -134,0,0,0,0,0,0,0,0,0,
+ 0,-143,0,0,0,0,0,0,0,0,
+ 0,-157,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-198,0,0,
- 0,0,0,0,0,-39,0,0,0,0,
- 0,0,0,0,0,0,-16,0,0,0,
- 0,0,0,-52,0,0,0,0,0,0,
- 0,-28,0,-204,0,0,0,0,0,0,
+ 0,0,-158,0,0,0,0,0,0,0,
+ 0,0,0,-166,0,0,0,0,0,0,
+ 0,0,0,-193,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-208,0,0,0,0,0,0,0,
- -40,0,0,0,0,0,0,0,0,0,
- 0,-29,-77,-93,-94,-155,0,0,-53,0,
- 0,0,0,0,0,0,-97,0,-218,0,
+ 0,0,0,-202,0,0,0,0,0,0,
+ 0,0,0,0,-22,0,0,0,0,0,
+ 0,0,0,-5,0,0,0,0,0,0,
+ 0,-9,0,0,0,0,0,0,0,-208,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-134,0,0,
- 0,0,0,0,0,-82,0,0,0,0,
- 0,0,0,0,0,0,-143,-122,-88,0,
- -98,0,0,-159,0,-58,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-165,
- 0,0,0,0,0,-187,0,0,0,0,
- 0,-85,-164,0,0,0,0,0,0,0,
- 0,0,0,0,0,-99,0,0,0,0,
- 0,0,0,-172,0,0,0,0,0,0,
- 0,0,-171,-92,0,0,0,0,-90,0,
- 0,0,0,0,0,0,-117,0,0,0,
- 0,0,0,-119,0,0,0,0,0,0,
- -199,0,0,-37,-195,0,0,0,0,0,
- 0,0,0,-54,0,0,0,0,0,0,
- 0,-217,0,0,0,0,-1,-100,0,0,
- 0,0,0,0,0,-121,-101,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,-102,-185,0,0,0,0,0,0,
- 0,0,0,0,0,-139,0,-169,0,-147,
- -176,0,-55,0,0,0,0,0,0,0,
- -129,0,0,0,0,0,0,0,0,-175,
- 0,0,-83,-44,0,0,0,0,0,0,
- 0,0,0,-56,0,0,0,0,0,0,
+ -23,0,0,0,0,0,0,0,0,-6,
+ 0,0,0,0,0,0,0,-131,0,-132,
+ 0,-78,-93,0,-24,-222,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -162,-188,-189,-202,0,0,0,0,0,-49,
- 0,0,0,0,0,0,0,-210,0,0,
- -41,0,0,0,0,0,0,0,0,0,
- -50,0,0,0,0,0,0,0,-211,0,
- 0,-51,0,0,0,0,0,0,0,0,
- 0,0,-86,-80,0,0,0,0,0,0,
- 0,0,-126,-192,-131,-183,-132,0,-166,-89,
- 0,0,0,0,0,0,0,0,0,-103,
- -104,0,0,0,-91,0,0,0,0,-137,
- 0,-190,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-165,
+ 0,-150,-144,-133,0,0,0,0,0,-122,
+ 0,-25,-184,0,-10,0,0,0,0,0,
+ 0,0,0,0,-26,0,0,-177,0,0,
+ 0,0,-113,-83,-27,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-123,0,0,0,0,0,0,-148,0,
- 0,0,0,0,0,-163,0,0,0,0,
- 0,0,0,-219,-136,-149,-151,-154,-180,0,
- 0,-200,0,0,0,0,0,-10,0,0,
- 0,0,0,0,-11,0,0,0,0,0,
- 0,-12,0,0,0,0,0,0,0,-105,
- 0,0,0,0,0,0,0,-13,0,0,
- 0,0,0,0,-14,0,0,0,0,0,
- 0,-17,-31,-157,-213,0,-106,-215,-107,0,
- 0,0,-32,-33,-168,-207,-203,-108,-42,-109,
+ -161,-85,-155,0,0,-28,0,0,0,0,
+ 0,0,-44,0,0,0,0,0,0,0,
+ 0,0,0,-29,0,0,0,0,0,0,
+ 0,0,-94,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-192,0,0,0,
+ 0,0,-210,0,-7,0,0,0,0,0,
+ 0,0,-58,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-54,0,0,
+ 0,0,0,0,0,0,0,0,-199,0,
+ 0,-11,0,0,0,0,0,0,0,0,
+ -55,0,0,0,0,0,0,0,0,0,
+ 0,-91,0,-56,0,0,0,0,0,0,
+ 0,0,0,0,-221,0,-136,0,0,0,
+ 0,0,0,0,-97,0,-98,0,-114,-207,
+ 0,0,-48,0,0,0,0,0,0,0,
+ 0,0,0,-52,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-34,-125,0,
+ 0,0,0,-99,-100,-101,0,0,-162,-102,
+ 0,0,-49,0,0,0,0,0,0,0,
+ 0,0,0,-50,0,0,0,0,0,0,
+ 0,0,0,0,-223,0,0,0,0,-51,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-45,0,0,0,0,0,0,0,
- 0,0,0,-194,0,-196,0,0,0,-46,
- 0,0,0,0,0,0,-47,0,0,0,
- 0,0,0,-138,-197,0,0,-205,-150,-110,
- 0,0,-212,0,-152,0,0,-170,0,-111,
- 0,-112,0,-174,-113,0,0,0,0,0,
- 0,0,-191,-214,0,0,0,-114,-206,0,
- 0,0,0,-115,0,0,0,-153,-146,-59,
- 0,-179,-116,-128,0,-130,0,0,-118,0,
- 0,0,-133,0,0,0,0,0,0,-216,
- 0,-145,0,0,0,0,0,-177,0,0,
- 0,0,0,0,0,0,0,0,-158,0,
- -178,0,0,-182,0,-209,-220,0,0,0,
- 0,0,0,0,0,0,0,0,0,-173,
+ -53,0,0,0,0,0,0,0,0,0,
+ -216,-80,-87,0,-8,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ -103,-151,0,-153,-104,0,0,0,0,0,
+ -182,-90,0,-163,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-92,-156,-126,0,
0,0,0,0,0,0,0,0,0,0,
+ -105,0,0,-183,0,0,0,0,-171,0,
+ 0,0,0,-106,0,0,0,0,-140,0,
+ 0,0,0,-124,0,0,0,0,0,0,
+ 0,-149,0,0,0,0,0,0,0,-169,
+ 0,-1,0,0,-107,0,0,-108,0,-109,
+ 0,-148,0,0,-160,0,0,0,0,0,
+ 0,0,-12,0,0,0,0,0,0,0,
+ 0,0,0,0,-110,0,0,-13,0,0,
+ 0,0,0,0,0,-14,0,0,0,0,
+ 0,0,0,-37,-45,0,0,0,0,0,
+ 0,0,-186,-164,0,-46,0,0,0,0,
+ 0,0,0,-47,0,0,0,0,0,0,
+ 0,0,-178,-15,0,0,0,0,0,0,
+ 0,-159,0,0,-16,0,0,0,0,0,
+ 0,0,0,0,0,-174,-111,-173,-17,0,
+ -112,0,-181,0,0,-118,-31,0,0,0,
+ -189,-32,-200,0,0,-120,-137,0,0,0,
+ 0,0,0,-170,0,0,0,0,0,0,
+ 0,-119,0,0,-33,0,0,0,0,-146,
+ -152,0,0,0,-123,0,-34,-204,0,-167,
+ 0,-168,-185,0,0,-201,0,0,0,0,
+ 0,0,0,0,0,0,-139,0,0,0,
+ 0,0,-187,0,0,-115,0,0,0,0,
+ 0,0,0,0,-197,-198,0,-188,0,0,
+ 0,0,0,-195,0,0,0,-116,0,-147,
+ -212,0,-175,0,-41,-176,-206,0,0,0,
+ 0,0,0,0,-217,0,0,0,0,0,
+ -191,0,0,0,0,0,0,0,0,0,
+ -42,0,0,0,0,0,-218,0,0,0,
+ -59,0,0,0,0,0,0,-215,-211,-220,
+ -219,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0
+ 0,0,0,0,0,0
};
};
public final static short baseCheck[] = BaseCheck.baseCheck;
@@ -229,192 +235,198 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface BaseAction {
public final static char baseAction[] = {
- 85,8,21,21,20,20,30,30,70,70,
- 1,1,1,1,2,2,2,3,3,4,
- 4,4,4,4,4,4,4,54,54,71,
- 71,5,5,5,5,5,5,5,5,5,
- 5,5,6,7,7,7,7,9,9,9,
- 10,10,10,11,11,11,11,11,12,12,
- 12,13,13,14,14,15,15,16,16,17,
- 17,18,18,19,19,19,19,19,19,19,
- 19,19,19,19,19,96,31,29,86,86,
- 73,73,44,97,97,97,97,97,97,97,
- 98,98,98,99,99,104,104,105,105,100,
- 100,101,101,101,107,107,102,102,102,102,
- 103,103,103,103,103,106,106,22,22,22,
- 22,22,33,33,33,79,79,74,74,74,
- 74,75,75,75,76,76,76,77,77,77,
- 78,78,78,108,108,109,109,110,34,36,
- 36,36,36,36,55,57,57,57,57,57,
- 57,57,57,57,57,57,57,67,67,32,
- 32,64,64,64,64,65,65,65,58,58,
- 59,59,51,51,51,27,87,87,80,81,
- 81,81,66,66,82,82,83,83,68,68,
- 23,24,24,24,35,50,50,37,37,37,
- 37,40,40,42,38,38,39,43,43,111,
- 111,41,112,112,88,88,28,28,28,28,
- 28,28,28,28,28,84,52,52,52,52,
- 61,61,60,60,60,62,62,53,53,89,
- 89,49,49,63,63,63,45,45,45,46,
- 47,47,47,48,48,48,48,56,56,72,
- 72,72,72,69,90,91,91,92,92,93,
- 93,113,113,114,114,115,115,115,115,117,
- 117,116,116,116,118,118,85,85,1,1,
- 1,5,5,5,5,5,5,23,23,25,
- 25,26,26,94,94,94,97,119,119,119,
- 119,119,119,119,102,102,102,102,102,102,
- 102,102,102,102,102,102,102,102,102,102,
- 102,102,102,102,102,102,102,102,120,120,
- 1,14,19,15,416,1132,43,515,314,514,
- 626,600,701,627,723,712,1092,727,73,90,
- 105,38,182,133,210,317,318,784,14,19,
- 15,416,315,135,132,134,158,752,14,19,
- 15,416,42,43,515,238,514,626,600,701,
- 627,723,712,1700,1734,137,67,164,816,14,
- 19,15,416,313,141,144,147,150,251,210,
- 317,318,1739,381,1373,1222,1453,1470,1485,1254,
- 688,14,19,15,416,1132,43,515,513,514,
- 626,600,701,627,723,712,1092,727,73,277,
- 688,14,19,15,416,1132,43,515,513,514,
- 626,600,701,627,723,712,1092,727,73,277,
- 595,752,14,19,15,416,42,39,752,14,
- 19,15,416,1132,43,515,279,514,626,600,
- 701,627,723,712,1092,727,73,91,270,280,
- 528,528,1136,516,243,307,279,216,1210,218,
- 1469,220,221,226,525,265,1176,601,268,280,
- 1133,16,1688,480,14,19,15,416,1132,43,
- 515,513,514,626,600,701,627,723,712,1092,
- 727,73,277,394,14,19,15,416,1132,43,
- 515,1188,514,626,600,701,627,723,712,1092,
- 727,73,1316,340,236,848,14,19,15,416,
- 311,752,14,19,15,416,42,43,515,281,
- 514,626,600,701,627,1618,133,210,317,318,
- 72,514,282,1774,1334,285,135,132,134,158,
- 752,14,19,15,416,42,43,515,319,514,
- 626,600,701,627,723,1702,140,357,137,271,
- 164,880,14,19,15,416,40,141,144,147,
- 150,752,14,19,15,416,33,1373,1222,1453,
- 1470,1485,1254,752,14,19,15,416,1132,43,
- 515,105,514,626,600,701,627,723,712,1092,
- 727,73,90,912,14,19,15,416,1132,43,
- 515,1684,514,626,600,701,627,723,712,1092,
- 727,73,1346,605,14,19,15,416,42,43,
- 515,71,514,626,600,701,627,723,712,1092,
- 727,92,126,480,325,752,14,19,15,416,
- 42,43,515,228,514,1236,381,287,598,437,
- 14,19,15,416,1132,43,515,1350,514,626,
- 600,701,627,723,712,1092,727,73,1401,20,
- 237,720,14,19,15,416,1132,43,515,528,
- 514,626,600,701,627,723,712,1092,727,73,
- 277,752,14,19,15,416,1132,43,515,1705,
- 514,626,600,701,627,723,712,1092,727,73,
- 84,752,14,19,15,416,42,43,1147,752,
- 14,19,15,416,1132,43,515,283,514,626,
- 600,701,627,723,712,1092,727,73,83,752,
- 14,19,15,416,1132,43,515,528,514,626,
- 600,701,627,723,712,1092,727,73,82,752,
- 14,19,15,416,1132,43,515,1718,514,626,
- 600,701,627,723,712,1092,727,73,81,752,
- 14,19,15,416,1132,43,515,528,514,626,
- 600,701,627,723,712,1092,727,73,80,752,
- 14,19,15,416,1132,43,515,1724,514,626,
- 600,701,627,723,712,1092,727,73,79,752,
- 14,19,15,416,1132,43,515,528,514,626,
- 600,701,627,723,712,1092,727,73,78,752,
- 14,19,15,416,1132,43,515,1733,514,626,
- 600,701,627,723,712,1092,727,73,77,752,
- 14,19,15,416,1132,43,515,528,514,626,
- 600,701,627,723,712,1092,727,73,76,752,
- 14,19,15,416,1132,43,515,21,514,626,
- 600,701,627,723,712,1092,727,73,75,752,
- 14,19,15,416,1132,43,515,528,514,626,
- 600,701,627,723,712,1092,727,73,74,752,
- 14,19,15,416,1132,43,515,269,514,626,
- 600,701,627,723,712,1092,727,73,1402,752,
- 14,19,15,416,1132,43,515,528,514,626,
- 600,701,627,723,712,1092,727,73,1403,752,
- 14,19,15,416,42,43,515,275,514,626,
- 600,701,627,723,712,1092,727,92,752,14,
- 19,15,416,42,43,515,353,514,626,600,
- 701,627,723,712,1092,727,92,752,14,19,
- 15,416,32,1404,752,14,19,15,416,42,
- 43,515,51,1480,752,14,19,15,416,42,
- 43,515,209,514,626,600,701,627,723,712,
- 1092,727,92,752,14,19,15,416,42,43,
- 515,353,514,626,600,701,627,723,712,1092,
- 727,92,887,531,944,981,495,23,1605,752,
- 14,19,15,416,42,43,515,426,1481,752,
- 14,19,15,416,42,43,515,200,514,626,
- 600,701,627,723,712,1092,727,92,752,14,
- 19,15,416,42,43,515,57,514,626,600,
- 701,627,723,712,1092,727,72,471,124,239,
- 1549,538,22,201,295,661,752,14,19,15,
- 416,42,43,515,272,514,626,600,701,1620,
- 1006,250,210,317,318,270,352,251,210,317,
- 318,1736,993,427,215,1210,218,1469,220,221,
- 226,1713,263,1176,601,268,344,259,225,251,
- 210,317,318,273,529,133,210,317,318,405,
- 260,270,1285,1005,340,143,132,134,158,296,
- 215,1210,218,1469,220,221,226,6,263,1176,
- 601,268,729,1492,68,440,257,133,210,317,
- 318,726,1490,182,431,366,987,136,132,134,
- 158,1743,380,1439,752,14,19,15,416,42,
- 43,515,366,514,626,600,1580,648,513,138,
- 1439,164,270,1758,193,653,598,515,142,145,
- 148,151,215,1210,218,1469,220,221,226,263,
- 1176,601,268,638,982,1776,86,238,306,215,
- 1210,218,1469,220,221,226,598,262,528,207,
- 598,640,1776,752,14,19,15,416,42,43,
- 515,6,514,626,1607,196,198,240,276,1689,
- 1005,323,1616,512,752,14,19,15,416,42,
- 43,1191,197,198,752,14,19,15,416,42,
- 43,515,368,514,626,1609,133,210,317,318,
- 181,598,598,598,598,1685,140,132,134,158,
- 752,14,19,15,416,42,43,515,80,514,
- 1308,680,239,241,242,287,1439,286,139,653,
- 164,752,14,19,15,416,42,43,515,105,
- 514,1317,752,14,19,15,416,42,43,515,
- 88,514,1333,1030,474,215,1210,218,1469,220,
- 221,226,1639,681,681,6,726,6,1492,945,
- 1042,1729,1719,1695,273,1728,133,210,317,318,
- 602,642,270,274,228,1073,146,132,134,158,
- 124,1544,528,133,210,317,318,224,288,263,
- 1176,601,268,149,132,134,158,947,133,210,
- 317,318,222,250,210,317,318,987,152,132,
- 134,158,562,14,19,15,416,42,35,562,
- 14,19,15,416,42,35,562,14,19,15,
- 416,42,35,243,308,181,6,6,6,1005,
- 324,1194,640,1769,1698,1704,1732,244,752,14,
- 19,15,416,42,38,752,14,19,15,416,
- 42,37,752,14,19,15,416,42,36,26,
- 612,216,1210,218,1469,220,221,226,752,14,
- 19,15,416,42,35,752,14,19,15,416,
- 42,34,6,6,6,598,1693,129,528,186,
- 360,360,460,6,6,793,957,726,656,6,
- 390,360,360,573,195,195,289,653,227,1284,
- 1284,86,86,511,511,195,195,1187,6,643,
- 1284,1284,86,86,511,511,360,573,86,290,
- 728,510,759,752,14,19,15,416,42,46,
- 195,1187,827,867,1005,1284,1005,86,256,511,
- 752,14,19,15,416,42,45,752,14,19,
- 15,416,42,44,124,1005,192,907,495,55,
- 162,1739,255,1005,184,112,183,573,169,1027,
- 149,1752,337,573,283,763,573,250,210,317,
- 318,195,573,643,1005,202,1244,195,789,698,
- 195,573,1244,203,790,1244,195,573,445,285,
- 6,1244,445,794,795,1187,821,573,653,637,
- 190,1187,1714,822,278,405,190,1253,1790,190,
- 486,1187,200,1370,1790,190,1664,1790,17,86,
- 1758,1690,1666,1790,1758,480,255,270,999,124,
- 231,863,255,1027,400,1752,526,644,1859,1608,
- 1859,1752,255,1859,265,1176,601,268,1859,1348,
- 226,1752,250,210,317,318,206,1859,573,1859,
- 206,1859,1859,1859,1859,1859,1859,1750,1859,1859,
- 1351,1771,195,1859,1552,1771,1859,1244,1859,1859,
- 1859,1859,1859,1859,1859,1859,1859,1859,1859,1859,
- 1216,1859,1859,1859,1859,1859,1859,1859,1859,1859,
- 1859,191,1859,0,320,693,0,17,178,0,
- 18,177,0,1,2082,0,1,2093,0
+ 89,11,105,22,22,21,21,46,46,72,
+ 72,1,1,2,2,2,2,3,3,3,
+ 4,5,5,5,5,5,5,5,5,62,
+ 62,73,6,6,6,6,6,6,6,6,
+ 6,6,6,7,8,8,8,8,9,9,
+ 9,10,10,10,12,12,12,12,12,13,
+ 13,13,14,14,15,15,16,16,17,17,
+ 18,18,19,19,20,20,20,20,20,20,
+ 20,20,20,20,20,20,106,31,30,90,
+ 90,74,74,47,107,107,107,107,107,107,
+ 107,108,108,108,109,109,114,114,115,115,
+ 110,110,111,111,111,117,117,112,112,112,
+ 112,113,113,113,113,113,116,116,27,27,
+ 27,27,27,33,33,33,80,80,75,75,
+ 75,75,76,76,76,77,77,77,78,78,
+ 78,79,79,79,118,118,119,119,120,34,
+ 36,36,36,36,36,56,57,57,57,57,
+ 57,57,57,57,57,57,57,57,66,63,
+ 63,91,92,68,68,64,64,64,69,81,
+ 81,82,82,70,70,70,37,93,93,83,
+ 84,84,84,65,65,94,85,85,86,86,
+ 71,71,23,24,24,24,35,53,53,39,
+ 39,39,39,42,42,44,40,40,41,45,
+ 45,121,121,43,122,122,95,95,28,28,
+ 28,28,28,28,28,28,28,87,54,54,
+ 54,54,29,59,59,58,58,58,60,60,
+ 55,55,96,96,52,52,61,61,61,48,
+ 48,48,49,50,50,50,51,51,51,51,
+ 67,67,32,32,38,98,97,97,97,97,
+ 88,99,100,100,101,101,102,102,123,123,
+ 124,124,125,125,125,125,127,127,126,126,
+ 126,128,129,129,89,89,2,2,2,6,
+ 6,6,6,6,6,23,23,25,25,26,
+ 26,103,103,103,107,130,130,130,130,130,
+ 130,130,112,112,112,112,112,112,112,112,
+ 112,112,112,112,112,112,112,112,112,112,
+ 112,112,112,112,112,112,131,131,1,1303,
+ 17,21,18,517,1294,44,669,653,1105,675,
+ 720,1185,1161,1235,1222,1276,1245,74,91,450,
+ 1810,134,212,325,326,80,1212,582,588,88,
+ 277,136,133,135,159,606,20,17,21,18,
+ 517,43,44,669,653,1105,675,720,1185,1161,
+ 1235,1222,1707,175,138,165,274,1795,1548,28,
+ 119,142,145,148,151,1716,430,230,191,31,
+ 191,31,512,1244,1272,1503,1532,1547,1183,542,
+ 20,17,21,18,517,1294,44,669,653,1105,
+ 423,720,1185,1161,1235,1222,1276,1245,74,280,
+ 606,20,17,21,18,517,43,44,669,653,
+ 1105,281,720,1185,1161,1235,1711,1716,351,20,
+ 17,21,18,517,1294,44,669,653,1105,423,
+ 720,1185,1161,1235,1222,1276,1245,74,280,225,
+ 178,25,277,24,583,176,286,59,53,815,
+ 281,395,1831,554,292,63,1716,915,443,525,
+ 191,1783,134,212,325,326,443,287,254,212,
+ 325,326,136,133,135,159,1569,273,1727,397,
+ 254,212,325,326,914,288,926,19,218,1449,
+ 220,1534,222,223,228,138,165,268,627,398,
+ 271,283,142,145,148,151,289,430,326,254,
+ 212,325,326,734,1244,1272,1503,1532,1547,1183,
+ 574,20,17,21,18,517,1294,44,669,653,
+ 1105,209,720,1185,1161,1235,1222,1276,1245,74,
+ 280,606,20,17,21,18,517,43,44,669,
+ 653,1105,281,720,1185,1161,1608,776,1716,281,
+ 20,17,21,18,517,1294,44,669,653,1105,
+ 1755,720,1185,1161,1235,1222,1276,1245,74,1220,
+ 193,238,615,78,661,275,293,290,606,20,
+ 17,21,18,517,1294,44,669,653,1105,193,
+ 720,1185,1161,1235,1222,1276,1245,74,91,766,
+ 20,17,21,18,517,1294,44,669,653,1105,
+ 1777,720,1185,1161,1235,1222,1276,1245,74,1579,
+ 470,20,17,21,18,517,43,44,669,653,
+ 1105,743,720,1185,1161,1235,1222,1276,1245,93,
+ 64,1178,333,606,20,17,21,18,517,43,
+ 44,1405,512,22,191,186,316,20,17,21,
+ 18,517,1294,44,669,653,1105,1612,720,1185,
+ 1161,1235,1222,1276,1245,74,1692,327,239,606,
+ 20,17,21,18,517,1294,44,669,653,1105,
+ 443,720,1185,1161,1235,1222,1276,1245,74,92,
+ 606,20,17,21,18,517,1294,44,669,653,
+ 1105,1243,720,1185,1161,1235,1222,1276,1245,74,
+ 85,606,20,17,21,18,517,1294,44,669,
+ 653,1105,443,720,1185,1161,1235,1222,1276,1245,
+ 74,84,606,20,17,21,18,517,1294,44,
+ 669,653,1105,1409,720,1185,1161,1235,1222,1276,
+ 1245,74,83,606,20,17,21,18,517,1294,
+ 44,669,653,1105,443,720,1185,1161,1235,1222,
+ 1276,1245,74,82,606,20,17,21,18,517,
+ 1294,44,669,653,1105,1786,720,1185,1161,1235,
+ 1222,1276,1245,74,81,606,20,17,21,18,
+ 517,1294,44,669,653,1105,443,720,1185,1161,
+ 1235,1222,1276,1245,74,80,606,20,17,21,
+ 18,517,1294,44,669,653,1105,1808,720,1185,
+ 1161,1235,1222,1276,1245,74,79,606,20,17,
+ 21,18,517,1294,44,669,653,1105,443,720,
+ 1185,1161,1235,1222,1276,1245,74,78,606,20,
+ 17,21,18,517,1294,44,669,653,1105,23,
+ 720,1185,1161,1235,1222,1276,1245,74,77,606,
+ 20,17,21,18,517,1294,44,669,653,1105,
+ 443,720,1185,1161,1235,1222,1276,1245,74,76,
+ 606,20,17,21,18,517,1294,44,669,653,
+ 1105,272,720,1185,1161,1235,1222,1276,1245,74,
+ 75,606,20,17,21,18,517,1294,44,669,
+ 653,1105,443,720,1185,1161,1235,1222,1276,1245,
+ 74,73,606,20,17,21,18,517,1294,44,
+ 669,653,1105,278,720,1185,1161,1235,1222,1276,
+ 1245,74,1813,606,20,17,21,18,517,1294,
+ 44,669,653,1105,443,720,1185,1161,1235,1222,
+ 1276,1245,74,1816,606,20,17,21,18,517,
+ 43,44,669,653,1105,279,720,1185,1161,1235,
+ 1222,1276,1245,93,606,20,17,21,18,517,
+ 43,44,669,653,1105,139,720,1185,1161,1235,
+ 1222,1276,1245,93,638,20,17,21,18,517,
+ 323,1817,606,20,17,21,18,517,43,40,
+ 606,20,17,21,18,517,43,44,669,653,
+ 1105,211,720,1185,1161,1235,1222,1276,1245,93,
+ 606,20,17,21,18,517,43,44,669,653,
+ 1105,349,720,1185,1161,1235,1222,1276,1245,93,
+ 670,20,17,21,18,517,321,1861,191,185,
+ 537,1751,88,225,178,16,606,20,17,21,
+ 18,517,43,44,669,653,1105,201,720,1185,
+ 1161,1235,1222,1276,1245,93,134,212,325,326,
+ 712,1726,152,398,191,187,137,133,135,159,
+ 743,509,6,113,1664,606,20,17,21,18,
+ 517,43,39,202,509,24,1742,1213,443,139,
+ 165,273,240,678,383,171,143,146,149,152,
+ 196,430,217,1449,220,1534,222,223,228,224,
+ 1564,266,627,398,271,259,262,134,212,325,
+ 326,941,814,88,263,28,230,141,133,135,
+ 159,1716,1683,606,20,17,21,18,517,43,
+ 44,1407,276,192,325,134,212,325,326,273,
+ 140,165,1708,798,1760,144,133,135,159,260,
+ 217,1449,220,1534,222,223,228,191,295,266,
+ 627,398,271,443,1238,702,20,17,21,18,
+ 517,319,980,606,20,17,21,18,517,43,
+ 44,669,653,1105,229,720,1185,1610,606,20,
+ 17,21,18,517,43,44,669,653,1105,72,
+ 720,1561,606,20,17,21,18,517,43,38,
+ 1825,606,20,17,21,18,517,43,44,669,
+ 653,1105,647,1574,606,20,17,21,18,517,
+ 43,44,669,653,1105,72,1605,53,217,1449,
+ 220,1534,222,223,228,227,1825,324,449,742,
+ 191,297,1858,606,20,17,21,18,517,43,
+ 44,669,653,1444,606,20,17,21,18,517,
+ 43,44,669,1521,217,1449,220,1534,222,223,
+ 228,28,197,199,151,458,804,1716,1858,813,
+ 818,1214,578,606,20,17,21,18,517,43,
+ 44,669,653,1445,606,20,17,21,18,517,
+ 43,44,669,653,1446,554,1180,227,198,199,
+ 606,20,17,21,18,517,43,44,669,653,
+ 1450,606,20,17,21,18,517,43,44,669,
+ 1525,502,291,844,1727,734,20,17,21,18,
+ 517,41,1825,1549,218,1449,220,1534,222,223,
+ 228,614,53,276,53,646,134,212,325,326,
+ 273,63,855,1762,839,1734,147,133,135,159,
+ 217,1449,220,1534,222,223,228,885,232,385,
+ 266,627,398,271,1238,134,212,325,326,1706,
+ 509,710,226,980,902,150,133,135,159,679,
+ 134,212,325,326,77,1359,1213,179,1726,743,
+ 153,133,135,159,435,20,17,21,18,517,
+ 43,36,435,20,17,21,18,517,43,36,
+ 53,242,505,1742,258,187,245,1022,350,1750,
+ 467,1763,743,658,332,435,20,17,21,18,
+ 517,43,36,606,20,17,21,18,517,43,
+ 37,1721,87,314,331,483,194,246,606,20,
+ 17,21,18,517,43,36,606,20,17,21,
+ 18,517,43,35,361,606,20,17,21,18,
+ 517,43,47,805,88,1182,606,20,17,21,
+ 18,517,43,46,606,20,17,21,18,517,
+ 43,45,273,385,606,20,17,21,18,517,
+ 34,389,743,1726,509,606,20,17,21,18,
+ 517,33,266,627,398,271,124,513,896,53,
+ 1213,809,1726,53,241,265,930,53,519,1804,
+ 368,63,53,805,1796,1766,243,707,368,253,
+ 212,325,326,368,682,1783,196,519,258,87,
+ 536,1022,445,1750,196,53,1654,87,536,196,
+ 541,932,87,536,1654,124,368,53,180,1654,
+ 933,528,57,682,1783,527,63,1758,368,770,
+ 273,1727,196,509,812,87,536,124,253,212,
+ 325,326,1654,550,196,1847,871,87,536,196,
+ 268,627,398,271,1654,715,169,854,845,1564,
+ 253,212,325,326,124,208,509,509,901,896,
+ 329,63,203,743,515,480,743,743,28,1663,
+ 1798,509,1213,196,1716,88,658,253,212,325,
+ 326,842,191,1564,208,243,515,1213,244,294,
+ 28,53,736,1531,1223,89,1716,63,1723,1798,
+ 258,53,658,1323,1726,1750,282,180,884,479,
+ 39,743,658,556,1032,258,191,1920,1064,1920,
+ 1750,87,711,1920,1920,1920,1920,1811,1223,1475,
+ 233,87,1635,296,1920,1920,1920,1920,1920,1920,
+ 1859,1920,1920,204,1920,1920,1920,1920,1920,1920,
+ 1920,1920,1920,1920,1920,938,1920,0,328,700,
+ 0,20,178,0,1,2145,0,1,2156,0
};
};
public final static char baseAction[] = BaseAction.baseAction;
@@ -425,123 +437,111 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface TermCheck {
public final static byte termCheck[] = {0,
0,1,2,3,4,0,6,7,8,9,
- 10,11,12,13,14,15,0,17,18,19,
- 20,21,22,23,24,25,26,27,28,29,
- 30,31,32,33,34,35,36,0,38,39,
+ 10,11,12,13,14,0,16,17,18,19,
+ 20,21,22,0,24,25,26,27,28,29,
+ 30,31,32,33,34,35,36,37,0,1,
40,41,42,43,44,45,46,47,48,49,
- 0,51,52,53,0,1,0,3,2,5,
- 6,7,8,9,10,11,0,0,2,15,
- 0,0,16,6,7,8,9,10,11,0,
- 1,2,16,17,18,69,32,33,34,35,
- 36,54,38,39,40,41,42,43,44,45,
- 46,47,48,49,0,51,52,53,4,55,
- 56,0,1,0,3,0,5,6,7,8,
- 9,10,11,0,74,0,15,61,0,6,
- 7,8,9,10,11,64,65,66,67,0,
- 70,71,76,32,33,34,35,36,0,38,
- 39,40,41,42,43,44,45,46,47,48,
- 49,0,51,52,53,0,55,56,0,1,
- 0,3,0,5,6,7,8,9,10,11,
- 0,0,1,15,3,0,6,7,8,9,
- 10,11,64,65,66,67,57,58,73,0,
- 32,33,34,35,36,0,38,39,40,41,
- 42,43,44,45,46,47,48,49,37,51,
- 52,53,74,55,56,0,1,0,3,68,
- 5,6,7,8,9,10,11,0,0,1,
- 15,3,0,6,7,8,9,10,11,64,
- 65,66,67,54,12,13,0,32,33,34,
- 35,36,0,38,39,40,41,42,43,44,
- 45,46,47,48,49,37,51,52,53,0,
- 55,56,0,1,0,3,0,5,6,7,
- 8,9,10,11,0,0,1,15,3,72,
- 6,7,8,9,10,11,0,0,1,2,
- 4,4,0,0,32,33,34,35,36,0,
- 38,39,40,41,42,43,44,45,46,47,
- 48,49,37,51,52,53,0,55,56,0,
- 1,0,3,0,60,6,7,8,9,10,
- 11,0,0,1,15,3,0,6,7,8,
- 9,10,11,77,78,0,1,2,62,63,
- 14,32,33,34,35,36,0,38,39,40,
- 41,42,43,44,45,46,47,48,49,0,
- 51,52,53,0,1,2,3,4,5,0,
- 57,58,89,14,0,12,13,14,15,73,
- 17,18,19,20,21,22,23,24,25,26,
- 27,28,29,30,31,0,0,1,2,4,
- 0,5,2,68,4,0,0,1,2,3,
- 4,5,16,0,0,1,16,3,12,13,
- 14,15,59,17,18,19,20,21,22,23,
- 24,25,26,27,28,29,30,31,69,0,
- 0,1,2,0,4,2,50,0,5,0,
- 1,2,3,4,5,0,16,62,63,16,
- 5,12,13,14,0,59,17,18,19,20,
- 21,22,23,24,25,26,27,28,29,30,
- 31,0,0,0,0,0,37,6,7,8,
- 9,10,11,50,0,0,15,0,0,16,
- 0,16,5,5,55,50,0,0,0,54,
- 16,4,0,32,33,34,35,36,54,38,
- 39,40,41,42,43,44,45,46,47,48,
- 49,0,1,2,3,4,5,37,0,57,
- 58,57,58,12,13,14,61,50,17,18,
- 19,20,21,22,23,24,25,26,27,28,
- 29,30,31,68,0,1,2,0,4,62,
- 63,0,5,75,0,1,2,3,4,5,
- 16,0,0,12,13,0,12,13,14,0,
- 59,17,18,19,20,21,22,23,24,25,
- 26,27,28,29,30,31,0,0,2,0,
- 4,0,0,0,1,0,4,0,1,2,
- 3,4,16,12,13,0,59,0,0,12,
- 13,14,0,59,17,18,19,20,21,22,
- 23,24,25,26,27,28,29,30,31,0,
- 0,70,71,0,5,5,0,0,1,2,
- 3,4,0,54,57,58,0,0,1,12,
- 13,14,60,56,17,18,19,20,21,22,
- 23,24,25,26,27,28,29,30,31,0,
- 1,2,3,4,37,0,1,72,3,50,
- 50,12,13,14,0,0,17,18,19,20,
- 21,22,23,24,25,26,27,28,29,30,
- 31,0,1,2,3,4,37,60,0,1,
- 0,3,0,12,13,14,0,0,17,18,
- 19,20,21,22,23,24,25,26,27,28,
- 29,30,31,0,1,2,3,4,0,0,
- 0,0,0,0,0,12,13,14,0,37,
- 17,18,19,20,21,22,23,24,25,26,
+ 50,51,0,53,54,55,0,1,0,3,
+ 2,5,0,0,8,9,10,5,12,13,
+ 14,0,1,2,16,17,0,0,73,0,
+ 1,23,3,6,7,70,71,0,32,33,
+ 34,35,36,37,15,72,40,41,42,43,
+ 44,45,46,47,48,49,50,51,52,53,
+ 54,55,0,1,52,3,60,5,0,61,
+ 8,9,10,0,12,13,14,64,65,66,
+ 67,8,9,10,76,12,13,14,0,68,
+ 64,65,66,67,32,33,34,35,36,37,
+ 0,0,40,41,42,43,44,45,46,47,
+ 48,49,50,51,52,53,54,55,0,1,
+ 0,3,60,5,0,0,8,9,10,0,
+ 12,13,14,8,9,10,0,12,13,14,
+ 0,1,0,3,56,57,4,23,0,0,
+ 32,33,34,35,36,37,56,57,40,41,
+ 42,43,44,45,46,47,48,49,50,51,
+ 52,53,54,55,0,1,0,3,60,0,
+ 4,0,8,9,10,61,12,13,14,8,
+ 9,10,0,12,13,14,4,77,78,0,
+ 64,65,66,67,62,63,32,33,34,35,
+ 36,37,0,0,40,41,42,43,44,45,
+ 46,47,48,49,50,51,0,53,54,55,
+ 0,1,2,3,4,5,6,7,62,63,
+ 0,11,2,0,0,5,16,17,18,19,
+ 20,21,22,74,24,25,26,27,28,29,
+ 30,31,32,23,38,0,1,2,3,4,
+ 5,6,7,0,0,0,11,4,0,39,
+ 5,16,17,18,19,20,21,22,58,24,
+ 25,26,27,28,29,30,31,32,0,0,
+ 0,1,2,3,4,5,6,7,0,11,
+ 0,11,2,38,4,15,16,17,18,19,
+ 20,21,22,58,24,25,26,27,28,29,
+ 30,31,0,23,0,62,63,59,4,0,
+ 8,9,10,69,12,13,14,0,1,2,
+ 75,4,52,79,80,81,82,83,84,85,
+ 86,87,88,0,32,33,34,35,36,37,
+ 23,72,40,41,42,43,44,45,46,47,
+ 48,49,50,51,0,1,2,3,4,5,
+ 6,7,0,59,0,11,2,5,4,0,
+ 16,17,18,19,20,21,22,0,24,25,
+ 26,27,28,29,30,31,0,23,0,0,
+ 1,2,3,4,5,6,7,11,0,0,
+ 11,39,0,5,5,16,17,18,19,20,
+ 21,22,58,24,25,26,27,28,29,30,
+ 31,0,1,2,0,1,2,3,4,0,
+ 6,7,0,56,57,11,38,39,39,0,
+ 16,17,18,19,20,21,22,58,24,25,
+ 26,27,28,29,30,31,0,1,89,3,
+ 0,0,1,2,3,4,0,6,7,0,
+ 68,15,11,0,1,2,15,16,17,18,
+ 19,20,21,22,60,24,25,26,27,28,
+ 29,30,31,0,1,2,3,4,38,6,
+ 7,0,0,1,11,3,74,0,15,16,
+ 17,18,19,20,21,22,15,24,25,26,
27,28,29,30,31,0,1,2,3,4,
- 0,0,0,0,0,37,37,12,13,14,
- 37,37,17,18,19,20,21,22,23,24,
+ 23,6,7,0,0,1,11,3,69,6,
+ 7,16,17,18,19,20,21,22,0,24,
25,26,27,28,29,30,31,0,1,2,
- 3,4,60,0,0,0,0,37,37,12,
- 13,14,0,0,17,18,19,20,21,22,
- 23,24,25,26,27,28,29,30,31,0,
- 1,2,3,4,0,0,0,0,0,0,
- 0,12,13,14,0,0,17,18,19,20,
- 21,22,23,24,25,26,27,28,29,30,
- 31,0,1,2,3,4,54,0,0,0,
- 0,0,0,12,13,14,0,0,17,18,
- 19,20,21,22,23,24,25,26,27,28,
- 29,30,31,0,0,2,2,4,5,6,
- 7,8,9,10,11,69,0,0,15,16,
- 16,5,0,0,0,79,80,81,82,83,
- 84,85,86,87,88,32,33,34,35,36,
- 0,0,2,0,4,5,6,7,8,9,
- 10,11,0,50,0,15,16,16,6,7,
- 8,9,10,11,0,0,0,15,0,5,
- 54,0,32,33,34,35,36,0,0,0,
- 0,16,0,0,32,33,34,35,36,0,
- 50,75,0,0,0,6,7,8,9,10,
- 11,0,61,0,15,0,0,6,7,8,
- 9,10,11,0,0,0,15,0,0,55,
- 0,32,33,34,35,36,0,0,0,0,
- 0,0,0,32,33,34,35,36,6,7,
- 8,9,10,11,0,0,0,15,0,0,
+ 3,4,0,6,7,0,0,1,11,3,
+ 0,6,7,16,17,18,19,20,21,22,
+ 0,24,25,26,27,28,29,30,31,0,
+ 1,2,3,4,0,6,7,0,0,5,
+ 11,0,1,23,3,16,17,18,19,20,
+ 21,22,15,24,25,26,27,28,29,30,
+ 31,0,1,2,3,4,0,6,7,0,
+ 4,0,11,39,0,1,38,16,17,18,
+ 19,20,21,22,0,24,25,26,27,28,
+ 29,30,31,0,1,2,3,4,0,6,
+ 7,0,0,0,11,0,1,5,3,16,
+ 17,18,19,20,21,22,15,24,25,26,
+ 27,28,29,30,31,0,1,2,3,4,
+ 59,6,7,59,0,0,11,2,0,70,
+ 71,16,17,18,19,20,21,22,0,24,
+ 25,26,27,28,29,30,31,0,23,2,
+ 58,4,5,0,0,8,9,10,0,12,
+ 13,14,0,0,0,1,2,0,4,0,
+ 23,8,9,10,5,12,13,14,0,32,
+ 33,34,35,36,37,23,39,23,0,0,
+ 2,0,38,0,0,32,33,34,35,36,
+ 37,8,9,10,0,12,13,14,0,56,
+ 57,23,8,9,10,0,12,13,14,0,
+ 0,52,0,56,57,32,33,34,35,36,
+ 37,73,38,0,0,15,32,33,34,35,
+ 36,37,8,9,10,0,12,13,14,0,
+ 0,0,0,8,9,10,5,12,13,14,
+ 69,0,0,0,0,15,32,33,34,35,
+ 36,37,8,9,10,0,12,13,14,0,
+ 0,0,0,8,9,10,23,12,13,14,
+ 0,1,2,0,15,5,15,15,0,0,
+ 0,68,0,0,0,0,0,0,15,0,
+ 0,0,0,23,15,15,0,0,0,0,
+ 0,0,0,0,61,0,75,0,0,39,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,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
+ 0,0,0,0,0,0,0,0
};
};
public final static byte termCheck[] = TermCheck.termCheck;
@@ -549,117 +549,104 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface TermAction {
public final static char termAction[] = {0,
- 1859,1134,1602,1135,1588,1,2070,2071,2072,2180,
- 524,2181,1572,1565,1595,2020,208,1077,641,631,
- 1869,1870,1871,1872,1558,481,2167,2168,2169,575,
- 418,387,2021,2019,2073,2022,2018,87,2025,2030,
- 2029,2027,2028,2026,2031,2032,2024,2033,2034,2035,
- 69,1259,1189,382,1859,1,266,1,1463,189,
- 1,1,1,1,1,1,31,246,1421,1,
- 61,58,553,1,1,1,1,1,1,1,
- 2082,1418,1619,1883,1884,1058,1,1,1,1,
- 1,488,1,1,1,1,1,1,1,1,
- 1,1,1,1,1859,1,1,1,1274,189,
- 2053,1859,1,1859,1,1859,189,1,1,1,
- 1,1,1,1859,610,67,1,1121,60,2070,
- 2071,2072,2180,524,2181,1442,1431,1410,715,53,
- 1384,1353,1066,1,1,1,1,1,70,1,
- 1,1,1,1,1,1,1,1,1,1,
- 1,1859,1,1,1,1859,189,2053,1859,1,
- 1859,1,1859,189,1,1,1,1,1,1,
- 247,1859,2038,1,2039,59,1,1,1,1,
- 1,1,1442,1431,1410,715,1084,1139,581,252,
- 1,1,1,1,1,1859,1,1,1,1,
- 1,1,1,1,1,1,1,1,1361,1,
- 1,1,610,189,2053,1859,1,65,1,1168,
- 188,1,1,1,1,1,1,245,1859,2038,
- 1,2039,50,2070,2071,2072,2180,524,2181,1442,
- 1431,1410,715,1615,1374,791,1859,1,1,1,
- 1,1,1859,1,1,1,1,1,1,1,
- 1,1,1,1,1,1465,1,1,1,1859,
- 188,2053,1859,1,1,1,71,189,1,1,
- 1,1,1,1,248,1859,2038,1,2039,1196,
- 2070,2071,2072,2180,524,2181,47,1859,2082,1418,
- 1677,1545,1859,1859,1,1,1,1,1,1859,
+ 1920,1931,1709,1932,1638,68,1623,1362,2133,2134,
+ 2135,1646,2249,654,2250,62,1695,1684,1505,1933,
+ 1934,1935,1936,66,1225,1122,2236,2237,2238,1325,
+ 1170,1114,2082,2083,2081,2136,2084,2080,1920,2157,
+ 2087,2092,2091,2089,2090,2088,2093,2094,2086,2095,
+ 2096,2097,1,1382,652,514,1920,1,32,1,
+ 1815,190,1920,59,1,1,1,1928,1,1,
+ 1,1,2145,1501,1946,1947,61,51,611,1920,
+ 1931,1841,1932,1283,723,1384,1371,252,1,1,
+ 1,1,1,1,1522,1333,1,1,1,1,
+ 1,1,1,1,1,1,1,1,190,1,
+ 1,1,1920,1,1927,1,2115,189,181,440,
+ 1,1,1,1920,1,1,1,1480,1464,1453,
+ 1413,2133,2134,2135,438,2249,654,2250,54,1150,
+ 1480,1464,1453,1413,1,1,1,1,1,1,
+ 58,182,1,1,1,1,1,1,1,1,
+ 1,1,1,1,189,1,1,1,1920,1,
+ 72,1,2115,190,1920,247,1,1,1,285,
+ 1,1,1,2133,2134,2135,60,2249,654,2250,
+ 1920,1931,48,1932,1424,1491,1674,1074,1920,1920,
+ 1,1,1,1,1,1,1424,1491,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1467,1,1,1,68,189,2053,1859,
- 2037,1859,2036,57,2113,2070,2071,2072,2180,524,
- 2181,249,1859,1888,2020,1889,63,2070,2071,2072,
- 2180,524,2181,397,1730,1,2082,1418,1670,1653,
- 1294,2021,2019,2073,2022,2018,1859,2025,2030,2029,
- 2027,2028,2026,2031,2032,2024,2033,2034,2035,64,
- 1259,1189,382,1,1876,1602,1877,1522,1862,1859,
- 1084,1139,1843,1294,1859,1572,1565,1595,673,581,
- 1077,641,631,1869,1870,1871,1872,1558,481,2167,
- 2168,2169,575,418,387,49,1,1853,1223,1677,
- 261,1864,1454,1113,1,1859,1859,1876,1602,1877,
- 1536,1862,553,1859,205,2038,553,2039,1572,1565,
- 1595,1019,1861,1077,641,631,1869,1870,1871,1872,
- 1558,481,2167,2168,2169,575,418,387,751,1859,
- 258,2082,1223,1,1,1454,1863,1859,1864,1,
- 1876,1602,1877,1588,27,1859,553,1670,1653,553,
- 1864,1572,1565,1595,28,1861,1077,641,631,1869,
- 1870,1871,1872,1558,481,2167,2168,2169,575,418,
- 387,127,56,267,55,1859,1604,2070,2071,2072,
- 2180,524,2181,1863,320,199,2020,1859,1,553,
- 1859,1039,1864,1868,27,1863,1859,48,1859,1777,
- 1844,1677,1859,2021,2019,2073,2022,2018,533,2025,
- 2030,2029,2027,2028,2026,2031,2032,2024,2033,2034,
- 2035,1859,1876,1602,1877,1588,1862,1267,1859,1084,
- 1139,1084,1139,1572,1565,1595,1466,1863,1077,641,
- 631,1869,1870,1871,1872,1558,481,2167,2168,2169,
- 575,418,387,1149,264,2082,1223,1859,1545,1670,
- 1653,52,1862,1867,1859,1876,1602,1877,1529,1862,
- 553,62,1859,1374,791,1859,1572,1565,1595,1859,
- 1861,1077,641,631,1869,1870,1871,1872,1558,481,
- 2167,2168,2169,575,418,387,264,54,1454,28,
- 1545,51,1,1859,2094,1859,1274,1859,1,1,
- 1,1,553,1374,791,66,1861,1859,1859,1,
- 1,1,1859,1861,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,1,1,
- 1,1384,1353,1859,89,1864,1859,1,1876,1602,
- 1877,1588,1859,1886,1084,1139,1859,1,1856,1572,
- 1565,1595,2113,2166,1077,641,631,1869,1870,1871,
- 1872,1558,481,2167,2168,2169,575,418,387,1859,
- 1876,1602,1877,1588,1604,1859,2038,1196,2039,89,
- 1863,1572,1565,1595,1859,1859,1077,641,631,1869,
- 1870,1871,1872,1558,481,2167,2168,2169,575,418,
- 387,1859,1876,1602,1877,1588,1604,2113,204,1281,
- 1859,1281,316,1572,1565,1595,1859,1859,1077,641,
- 631,1869,1870,1871,1872,1558,481,2167,2168,2169,
- 575,418,387,1859,1876,1603,1877,1588,314,312,
- 1859,1859,1,41,186,1572,1565,1595,1859,1267,
- 1077,641,631,1869,1870,1871,1872,1558,481,2167,
- 2168,2169,575,418,387,1859,1876,1613,1877,1588,
- 185,187,1859,1859,1859,1267,1267,1572,1565,1595,
- 1267,1546,1077,641,631,1869,1870,1871,1872,1558,
- 481,2167,2168,2169,575,418,387,1859,1876,1614,
- 1877,1588,2112,1859,1859,1859,1859,1547,1548,1572,
- 1565,1595,204,1859,1077,641,631,1869,1870,1871,
- 1872,1558,481,2167,2168,2169,575,418,387,1859,
- 1876,1638,1877,1588,1859,1859,42,1859,1859,1859,
- 1859,1572,1565,1595,1859,1859,1077,641,631,1869,
- 1870,1871,1872,1558,481,2167,2168,2169,575,418,
- 387,1,1876,1602,1877,1588,2977,1859,1859,1859,
- 1859,1859,1859,1572,1565,1595,1859,1859,1077,641,
- 631,1869,1870,1871,1872,1558,481,2167,2168,2169,
- 575,418,387,17,219,1847,1464,1847,1847,178,
- 178,178,178,178,178,979,1859,1859,178,1847,
- 553,1868,1859,1859,1859,959,939,919,899,879,
- 839,859,819,799,771,178,178,178,178,178,
- 18,284,1850,1859,1850,1850,177,177,177,177,
- 177,177,128,1847,1859,177,1850,1094,2070,2071,
- 2072,2180,524,2181,1859,217,1859,2020,1859,1866,
- 1302,1859,177,177,177,177,177,1859,1859,1859,
- 1859,553,1859,1859,2021,2019,2073,2022,2018,129,
- 1850,1867,1859,1859,1859,2070,2071,2072,2180,524,
- 2181,130,1617,1859,2020,1859,1859,2070,2071,2072,
- 2180,524,2181,1859,1859,1859,2020,1859,1859,1865,
- 1859,2021,2019,2073,2022,2018,1859,1859,1859,1859,
- 1859,1859,131,2021,2019,2073,2022,2018,2070,2071,
- 2072,2180,524,2181,1859,1859,1859,2020,1859,1859,
- 1859,1859,1859,1859,1859,1859,1859,1859,1859,1859,
- 1859,1859,1859,1859,2021,2019,2073,2022,2018
+ 190,1,1,1,1920,1931,50,1932,2115,70,
+ 1674,248,2133,2134,2135,1317,2249,654,2250,1,
+ 1,1,1920,1,1,1,399,405,1851,1920,
+ 1480,1464,1453,1413,1666,1655,2082,2083,2081,2136,
+ 2084,2080,1920,1920,2087,2092,2091,2089,2090,2088,
+ 2093,2094,2086,2095,2096,2097,88,1382,652,514,
+ 1,1931,1709,1932,1584,1924,1623,1362,1666,1655,
+ 1,1646,1502,1920,1920,1926,1695,1684,1505,1933,
+ 1934,1935,1936,470,1225,1122,2236,2237,2238,1325,
+ 1170,1114,679,629,759,1920,1931,1709,1932,1615,
+ 1924,1623,1362,49,43,1920,1646,1674,1,1925,
+ 1930,1695,1684,1505,1933,1934,1935,1936,1923,1225,
+ 1122,2236,2237,2238,1325,1170,1114,1053,64,67,
+ 1,1931,1709,1932,1638,29,1623,1362,1920,1348,
+ 264,1646,1502,1395,1,3107,1695,1684,1505,1933,
+ 1934,1935,1936,1923,1225,1122,2236,2237,2238,1325,
+ 1170,1114,128,629,1,1666,1655,2177,252,1920,
+ 2133,2134,2135,990,2249,654,2250,261,2145,1271,
+ 1929,1,29,969,948,927,906,885,843,864,
+ 822,801,780,1920,2082,2083,2081,2136,2084,2080,
+ 629,1333,2087,2092,2091,2089,2090,2088,2093,2094,
+ 2086,2095,2096,2097,1920,1931,1709,1932,1638,1924,
+ 1623,1362,1920,2177,267,1646,1502,1926,252,1920,
+ 1695,1684,1505,1933,1934,1935,1936,57,1225,1122,
+ 2236,2237,2238,1325,1170,1114,65,629,1920,1920,
+ 1931,1709,1932,1592,1924,1623,1362,1348,1920,1,
+ 1646,1925,1920,1926,90,1695,1684,1505,1933,1934,
+ 1935,1936,1923,1225,1122,2236,2237,2238,1325,1170,
+ 1114,1,2145,1501,1920,1,1,1,1,1920,
+ 1,1,71,1424,1491,1,1860,1925,90,1920,
+ 1,1,1,1,1,1,1,1923,1,1,
+ 1,1,1,1,1,1,1920,1931,1907,1932,
+ 255,1,1931,1709,1932,1638,1920,1623,1362,210,
+ 1011,1524,1646,252,2145,1501,3107,1695,1684,1505,
+ 1933,1934,1935,1936,2235,1225,1122,2236,2237,2238,
+ 1325,1170,1114,1920,1931,1709,1932,1638,1210,1623,
+ 1362,1920,184,3231,1646,3231,470,270,3107,1695,
+ 1684,1505,1933,1934,1935,1936,3107,1225,1122,2236,
+ 2237,2238,1325,1170,1114,1920,1931,1709,1932,1638,
+ 629,1623,1362,53,183,3237,1646,3237,1094,1283,
+ 723,1695,1684,1505,1933,1934,1935,1936,1920,1225,
+ 1122,2236,2237,2238,1325,1170,1114,1920,1931,1717,
+ 1932,1638,1920,1623,1362,52,205,3238,1646,3238,
+ 1920,1283,723,1695,1684,1505,1933,1934,1935,1936,
+ 328,1225,1122,2236,2237,2238,1325,1170,1114,1920,
+ 1931,1722,1932,1638,1,1623,1362,324,30,1926,
+ 1646,207,1931,1908,1932,1695,1684,1505,1933,1934,
+ 1935,1936,3107,1225,1122,2236,2237,2238,1325,1170,
+ 1114,1920,1931,1745,1932,1638,1920,1623,1362,63,
+ 1273,1,1646,1925,1,1917,488,1695,1684,1505,
+ 1933,1934,1935,1936,1920,1225,1122,2236,2237,2238,
+ 1325,1170,1114,1920,1931,1757,1932,1638,1920,1623,
+ 1362,322,1920,1920,1646,206,530,1924,530,1695,
+ 1684,1505,1933,1934,1935,1936,3107,1225,1122,2236,
+ 2237,2238,1325,1170,1114,1,1931,1709,1932,1638,
+ 2176,1623,1362,2177,1920,269,1646,379,1920,1384,
+ 1371,1695,1684,1505,1933,1934,1935,1936,1920,1225,
+ 1122,2236,2237,2238,1325,1170,1114,20,629,1911,
+ 1923,1911,1911,56,30,178,178,178,69,178,
+ 178,178,219,129,267,2145,1271,55,252,284,
+ 1911,2133,2134,2135,518,2249,654,2250,1920,178,
+ 178,178,178,178,178,629,1911,629,221,1920,
+ 416,1920,1949,130,206,2082,2083,2081,2136,2084,
+ 2080,2133,2134,2135,131,2249,654,2250,1920,1424,
+ 1491,629,2133,2134,2135,1920,2249,654,2250,1920,
+ 320,518,1920,1424,1491,2082,2083,2081,2136,2084,
+ 2080,611,3033,200,132,3107,2082,2083,2081,2136,
+ 2084,2080,2133,2134,2135,249,2249,654,2250,1920,
+ 42,1,1920,1,1,1,1930,1,1,1,
+ 590,1920,1920,291,250,3107,2082,2083,2081,2136,
+ 2084,2080,2133,2134,2135,251,2249,654,2250,1920,
+ 1920,1920,1920,2133,2134,2135,1130,2249,654,2250,
+ 1,1914,1271,188,1397,1926,1600,1713,1920,188,
+ 188,1186,1920,1920,1920,1920,1920,1920,184,1920,
+ 1920,1920,1920,629,183,205,1920,1920,1920,1920,
+ 1920,1920,1920,1920,1410,1920,1929,1920,1920,1925
};
};
public final static char termAction[] = TermAction.termAction;
@@ -667,28 +654,29 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface Asb {
public final static char asb[] = {0,
- 250,1,142,41,142,142,142,142,142,142,
- 142,142,142,142,142,142,55,3,459,456,
- 463,461,469,467,471,470,473,472,10,142,
- 55,55,55,55,240,240,339,55,403,403,
- 345,142,142,142,142,142,142,142,142,142,
- 142,142,142,142,142,142,142,142,142,142,
- 142,142,142,142,142,142,142,142,142,142,
- 142,142,240,240,240,240,131,343,133,370,
- 238,237,311,48,323,323,129,129,323,129,
- 323,75,191,191,240,45,456,456,461,461,
- 461,461,459,459,467,463,463,470,469,505,
- 472,471,444,444,444,444,107,339,331,136,
- 45,98,166,240,412,373,166,484,278,484,
- 278,406,484,142,107,331,98,98,45,165,
- 133,240,337,75,239,375,45,166,278,278,
- 278,278,406,406,408,275,107,98,331,142,
- 142,45,166,370,500,499,343,375,240,278,
- 308,243,278,278,308,408,507,408,406,308,
- 105,510,403,142,274,107,331,45,45,240,
- 412,373,337,308,245,308,308,142,403,408,
- 109,45,403,142,408,375,480,142,479,161,
- 343,308,45,308,240,239,245,142,161,404
+ 443,1,89,69,89,89,89,89,89,89,
+ 89,89,89,89,89,89,119,31,51,48,
+ 55,53,61,59,63,62,65,64,37,89,
+ 119,119,119,119,318,318,263,119,354,354,
+ 472,89,89,89,89,89,89,89,89,89,
+ 89,89,89,89,89,89,89,89,89,89,
+ 89,89,89,89,89,89,89,89,89,89,
+ 89,89,318,318,318,318,29,267,80,321,
+ 316,315,235,112,247,27,247,27,27,247,
+ 27,247,139,269,318,73,48,48,53,53,
+ 53,53,51,51,59,55,55,62,61,402,
+ 64,63,195,195,195,195,387,29,263,267,
+ 83,73,162,170,318,404,324,170,27,354,
+ 354,27,354,89,387,5,267,255,162,73,
+ 169,80,318,261,139,317,326,73,170,29,
+ 357,29,390,5,255,255,89,89,73,170,
+ 321,397,396,267,326,318,29,357,390,390,
+ 392,77,255,162,73,73,318,404,324,261,
+ 357,387,436,357,390,392,467,392,387,3,
+ 470,354,89,76,162,255,326,357,438,392,
+ 387,89,354,31,7,73,354,89,255,318,
+ 317,387,231,89,230,108,267,387,73,355,
+ 438,89,108
};
};
public final static char asb[] = Asb.asb;
@@ -696,58 +684,56 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface Asr {
public final static byte asr[] = {0,
- 89,0,75,16,2,61,76,17,18,14,
- 4,12,13,62,63,57,58,64,65,66,
- 67,70,71,72,73,74,77,78,55,69,
- 79,80,81,82,83,85,84,86,87,88,
- 68,50,89,54,59,5,0,5,68,54,
- 59,50,75,16,19,20,21,22,23,2,
- 17,18,14,4,12,13,24,25,26,27,
- 28,29,30,31,3,1,51,52,53,46,
- 38,43,41,42,40,39,44,45,47,48,
- 49,36,33,15,32,35,34,6,7,8,
- 10,9,11,0,5,55,16,61,17,18,
- 14,4,12,13,24,25,19,29,30,31,
- 2,20,21,22,23,26,27,28,1,3,
- 37,0,59,5,15,6,7,8,9,10,
- 11,20,21,22,23,26,27,28,3,17,
- 18,14,12,13,24,25,19,29,30,31,
- 4,2,1,0,15,59,5,17,18,14,
- 4,12,13,24,25,19,29,30,31,2,
- 1,3,20,21,22,23,26,27,28,0,
- 7,15,36,8,35,34,33,6,32,9,
- 10,11,61,76,17,18,14,12,13,62,
- 63,57,58,64,65,66,67,70,71,72,
- 73,74,77,78,69,79,80,81,82,83,
- 84,85,86,87,88,4,2,16,54,50,
- 5,0,75,5,4,1,2,68,0,19,
- 20,21,22,23,1,3,2,17,18,14,
- 4,12,13,24,25,26,27,28,29,30,
- 31,56,0,69,16,61,0,32,38,6,
- 39,51,33,40,34,41,42,35,7,43,
- 44,15,52,36,53,45,46,8,47,48,
- 49,1,3,9,10,11,56,55,5,0,
- 46,38,43,41,42,40,39,44,45,47,
- 48,49,68,75,36,33,15,32,35,34,
- 6,7,8,9,10,11,54,1,5,50,
- 2,16,4,0,5,50,19,20,21,22,
- 23,1,3,2,17,18,14,4,12,13,
- 24,25,26,27,28,29,30,31,0,4,
- 2,16,50,5,32,38,6,39,51,33,
- 40,34,41,42,35,7,43,44,15,52,
- 36,53,45,46,8,47,48,49,9,10,
- 11,60,3,1,0,1,3,5,55,54,
- 0,32,38,6,39,51,33,40,34,41,
- 42,35,7,43,44,15,52,36,53,45,
- 46,8,47,48,49,1,3,9,10,11,
- 60,4,0,69,79,80,81,82,83,84,
- 85,86,87,88,37,4,62,63,12,13,
- 58,57,64,65,66,67,70,71,14,72,
- 73,74,59,50,55,89,77,78,68,75,
- 5,54,0,32,6,33,34,35,7,15,
- 36,8,1,4,9,10,11,37,2,5,
- 54,50,75,16,68,0,5,54,55,69,
- 0
+ 89,0,5,52,23,61,16,17,11,4,
+ 6,7,24,25,18,29,30,31,2,19,
+ 20,21,22,26,27,28,1,3,15,0,
+ 23,2,61,76,16,17,69,79,80,81,
+ 82,83,85,84,86,87,88,4,62,63,
+ 6,7,57,56,64,65,66,67,70,71,
+ 11,72,73,74,52,75,77,78,68,39,
+ 89,38,58,5,0,69,23,61,0,58,
+ 5,32,8,9,10,12,13,14,19,20,
+ 21,22,26,27,28,3,16,17,11,6,
+ 7,24,25,18,29,30,31,4,2,1,
+ 0,5,68,38,58,39,75,23,18,19,
+ 20,21,22,2,16,17,11,4,6,7,
+ 24,25,26,27,28,29,30,31,1,3,
+ 53,54,55,48,40,45,43,44,42,41,
+ 46,47,49,50,51,37,34,32,33,36,
+ 35,8,9,10,13,12,14,0,32,58,
+ 5,16,17,11,4,6,7,24,25,18,
+ 29,30,31,2,1,3,19,20,21,22,
+ 26,27,28,0,11,4,6,7,62,63,
+ 56,57,64,65,66,67,70,71,72,73,
+ 74,77,78,69,79,80,81,82,83,84,
+ 85,86,87,88,58,39,52,89,15,68,
+ 75,5,38,0,48,40,45,43,44,42,
+ 41,46,47,49,50,51,68,75,37,34,
+ 32,33,36,35,8,9,10,12,13,14,
+ 38,1,5,39,2,23,4,0,9,32,
+ 37,10,36,35,34,8,33,12,13,14,
+ 61,76,16,17,11,6,7,62,63,56,
+ 57,64,65,66,67,70,71,72,73,74,
+ 77,78,69,79,80,81,82,83,84,85,
+ 86,87,88,4,2,23,38,39,5,0,
+ 4,2,23,39,5,33,40,8,41,53,
+ 34,42,35,43,44,36,9,45,46,32,
+ 54,37,55,47,48,10,49,50,51,12,
+ 13,14,59,3,1,0,33,40,8,41,
+ 53,34,42,35,43,44,36,9,45,46,
+ 32,54,37,55,47,48,10,49,50,51,
+ 1,3,12,13,14,60,5,52,0,1,
+ 3,5,52,38,0,2,5,38,39,75,
+ 23,68,0,4,33,40,8,41,53,34,
+ 42,35,43,44,36,9,45,46,32,54,
+ 37,55,47,48,10,49,50,51,1,3,
+ 12,13,14,59,0,75,5,4,1,2,
+ 68,0,18,19,20,21,22,1,3,2,
+ 16,17,11,4,6,7,24,25,26,27,
+ 28,29,30,31,60,0,5,38,52,69,
+ 0,5,39,18,19,20,21,22,1,3,
+ 2,16,17,11,4,6,7,24,25,26,
+ 27,28,29,30,31,0
};
};
public final static byte asr[] = Asr.asr;
@@ -755,28 +741,29 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface Nasb {
public final static byte nasb[] = {0,
- 56,8,19,8,19,19,19,19,19,19,
- 19,19,19,19,19,19,72,8,8,8,
- 8,8,8,8,8,8,8,8,8,19,
- 72,72,72,72,70,70,65,1,27,27,
- 61,73,19,19,19,19,19,19,19,19,
- 19,19,19,19,19,19,19,19,73,19,
- 19,19,19,19,19,19,19,19,19,19,
- 19,19,70,70,70,70,8,78,21,64,
- 25,25,49,15,50,50,9,9,50,9,
- 50,45,8,8,70,23,8,8,8,8,
- 8,8,8,8,8,8,8,8,8,8,
- 8,8,8,8,8,8,86,66,86,18,
- 23,31,22,70,76,69,22,8,86,8,
- 86,86,8,19,18,86,31,31,23,22,
- 11,70,34,2,8,85,23,22,86,80,
- 86,80,9,86,29,13,86,31,11,19,
- 19,23,22,33,25,25,78,85,70,80,
- 43,40,88,80,43,29,8,8,9,43,
- 17,8,9,19,59,18,11,23,23,70,
- 76,69,35,43,52,43,43,19,9,29,
- 19,23,9,19,29,84,41,19,8,52,
- 78,43,23,43,70,70,52,19,37,8
+ 99,35,26,35,26,26,26,26,26,26,
+ 26,26,26,26,26,26,102,35,35,35,
+ 35,35,35,35,35,35,35,35,35,26,
+ 102,102,102,102,10,10,85,1,21,21,
+ 122,103,26,26,26,26,26,26,26,26,
+ 26,26,26,26,26,26,26,26,103,26,
+ 26,26,26,26,26,26,26,26,26,26,
+ 26,26,10,10,10,10,12,57,48,84,
+ 15,15,65,52,66,19,66,82,82,66,
+ 81,66,60,35,10,50,35,35,35,35,
+ 35,35,35,35,35,35,35,35,35,35,
+ 35,35,12,12,12,12,79,35,106,35,
+ 54,50,110,49,10,89,9,49,7,7,
+ 7,7,7,26,44,79,35,42,110,50,
+ 49,36,10,75,28,35,91,50,49,68,
+ 79,35,79,24,42,79,26,26,50,49,
+ 74,15,15,57,91,10,35,114,79,7,
+ 97,17,79,110,50,50,10,89,9,38,
+ 79,44,94,70,7,97,35,35,44,23,
+ 35,7,26,46,110,36,118,114,77,97,
+ 44,26,7,112,25,50,7,26,36,10,
+ 10,44,95,26,35,77,57,44,50,35,
+ 77,26,40
};
};
public final static byte nasb[] = Nasb.nasb;
@@ -784,16 +771,19 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface Nasr {
public final static char nasr[] = {0,
- 4,79,78,77,76,75,74,0,32,0,
- 23,0,91,0,94,0,69,8,4,0,
- 8,4,21,0,28,0,71,0,54,0,
- 61,0,20,8,47,46,40,38,0,8,
- 70,0,30,0,64,65,66,67,55,33,
- 0,8,40,38,0,8,85,0,93,0,
- 8,86,0,20,8,47,46,0,8,20,
- 0,27,8,31,0,8,22,52,0,59,
- 8,27,0,88,22,8,0,8,27,51,
- 0
+ 80,78,77,68,76,75,1,0,11,21,
+ 0,38,32,0,28,0,100,0,91,0,
+ 73,0,88,11,38,5,0,80,79,78,
+ 77,68,76,75,0,23,0,50,49,42,
+ 40,29,0,46,0,102,0,11,5,22,
+ 0,103,0,5,11,0,29,54,0,68,
+ 63,64,65,66,56,33,0,92,0,11,
+ 37,70,0,21,50,49,42,40,11,0,
+ 94,69,0,21,49,50,11,0,29,54,
+ 11,27,0,11,72,0,62,0,11,89,
+ 0,37,11,31,0,50,49,29,0,59,
+ 0,98,0,82,11,37,0,95,11,27,
+ 0,11,90,0
};
};
public final static char nasr[] = Nasr.nasr;
@@ -801,12 +791,12 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface TerminalIndex {
public final static char terminalIndex[] = {0,
- 85,2,86,9,87,48,64,76,96,97,
- 98,10,11,8,69,1,6,7,68,81,
- 82,83,84,12,13,93,94,95,100,101,
- 102,44,55,60,63,72,3,47,52,56,
- 61,62,66,67,74,75,78,79,80,90,
- 54,70,73,42,91,107,16,17,89,30,
+ 85,2,86,9,87,10,11,48,64,76,
+ 8,96,97,98,3,6,7,68,81,82,
+ 83,84,1,12,13,93,94,95,100,101,
+ 102,69,44,55,60,63,72,42,90,47,
+ 52,56,61,62,66,67,74,75,78,79,
+ 80,91,54,70,73,16,17,89,30,107,
4,14,15,18,19,20,21,29,31,22,
23,24,25,26,92,5,27,28,32,33,
34,35,36,37,38,39,40,41,108,45,
@@ -819,18 +809,20 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface NonterminalIndex {
public final static char nonterminalIndex[] = {0,
- 0,0,0,115,119,120,121,0,122,123,
- 124,125,126,127,128,129,130,131,132,111,
- 110,136,143,0,0,0,154,163,0,112,
- 114,135,142,0,0,0,159,161,0,162,
- 0,0,0,134,172,173,174,0,117,151,
- 153,160,169,0,145,150,0,0,152,164,
- 167,168,171,146,147,148,149,158,175,113,
- 116,118,133,137,138,139,140,141,144,156,
- 0,0,157,166,109,0,155,165,170,176,
- 177,0,178,179,0,0,0,0,0,0,
+ 114,0,0,0,116,120,121,122,123,124,
+ 0,125,126,127,128,129,130,131,0,132,
+ 111,110,142,0,0,0,135,163,0,0,
+ 115,119,141,0,0,0,154,0,159,161,
+ 0,162,0,0,0,112,134,172,173,174,
+ 0,118,150,160,169,144,0,164,167,168,
+ 171,0,145,146,147,148,149,151,0,153,
+ 158,113,117,133,136,137,138,139,140,143,
+ 0,152,156,0,0,157,166,176,109,0,
+ 0,0,155,0,165,170,175,0,177,178,
+ 0,179,180,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0
+ 0
};
};
public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
@@ -838,12 +830,11 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface ScopePrefix {
public final static char scopePrefix[] = {
- 208,118,57,67,125,145,151,188,26,33,
- 85,103,157,162,73,6,12,16,38,81,
- 50,135,204,226,230,50,50,197,50,1,
- 1,1,42,45,90,113,45,234,20,139,
- 179,216,131,167,167,167,167,167,93,93,
- 93
+ 120,151,130,59,69,159,26,186,35,87,
+ 105,75,6,12,16,40,83,52,141,202,
+ 212,216,52,52,195,52,1,1,1,44,
+ 47,92,115,47,220,20,145,206,177,137,
+ 165,165,165,165,165,95,95,95
};
};
public final static char scopePrefix[] = ScopePrefix.scopePrefix;
@@ -851,12 +842,11 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface ScopeSuffix {
public final static char scopeSuffix[] = {
- 31,31,4,4,31,31,31,194,31,10,
- 4,10,31,31,78,10,10,10,10,4,
- 4,133,10,10,4,54,78,201,63,4,
- 4,4,10,48,4,10,116,10,23,142,
- 182,219,133,169,171,173,175,177,100,95,
- 108
+ 128,128,128,4,4,128,32,192,10,4,
+ 10,80,10,10,10,10,4,4,139,10,
+ 10,4,56,80,199,65,4,4,4,10,
+ 50,4,10,118,10,23,148,209,180,139,
+ 167,169,171,173,175,102,97,110
};
};
public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
@@ -864,12 +854,11 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface ScopeLhs {
public final static char scopeLhs[] = {
- 4,66,28,28,66,64,64,101,56,48,
- 28,43,64,64,28,5,5,5,48,28,
- 28,51,5,4,4,28,28,18,28,94,
- 93,92,46,63,28,40,50,2,69,51,
- 102,4,51,78,77,76,75,74,43,41,
- 43
+ 65,63,65,28,28,63,32,111,51,28,
+ 45,28,6,6,6,51,28,28,70,6,
+ 5,5,28,28,19,28,103,102,101,49,
+ 61,28,42,53,3,88,70,5,112,70,
+ 79,78,77,76,75,45,43,45
};
};
public final static char scopeLhs[] = ScopeLhs.scopeLhs;
@@ -877,12 +866,11 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface ScopeLa {
public final static byte scopeLa[] = {
- 55,55,59,59,55,55,55,95,55,50,
- 59,50,55,55,20,50,50,50,50,59,
- 59,75,50,50,59,4,20,68,15,59,
- 59,59,50,2,59,50,1,50,69,1,
- 101,50,75,3,51,52,52,46,2,2,
- 2
+ 52,52,52,58,58,52,52,95,39,58,
+ 39,19,39,39,39,39,58,58,75,39,
+ 39,58,4,19,68,32,58,58,58,39,
+ 2,58,39,1,39,69,1,39,101,75,
+ 1,53,54,54,48,2,2,2
};
};
public final static byte scopeLa[] = ScopeLa.scopeLa;
@@ -890,12 +878,11 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface ScopeStateSet {
public final static byte scopeStateSet[] = {
- 36,21,25,25,21,21,21,-1,95,29,
- 25,11,21,21,25,36,36,36,29,25,
- 25,5,36,36,36,25,25,69,25,19,
- 1,3,29,31,25,11,13,36,96,5,
- -1,36,5,22,22,22,22,22,11,11,
- 11
+ 28,28,28,32,32,28,19,-1,36,32,
+ 9,32,43,43,43,36,32,32,5,43,
+ 43,43,32,32,76,32,17,1,3,36,
+ 38,32,9,11,43,103,5,43,-1,5,
+ 29,29,29,29,29,9,9,9
};
};
public final static byte scopeStateSet[] = ScopeStateSet.scopeStateSet;
@@ -903,30 +890,29 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface ScopeRhs {
public final static char scopeRhs[] = {0,
- 151,16,0,110,0,156,2,31,0,111,
- 0,156,2,30,0,156,2,29,0,197,
- 115,0,31,150,0,161,179,115,37,0,
- 112,0,167,115,2,153,0,167,115,2,
- 0,170,2,0,159,115,0,172,0,191,
- 115,16,0,9,110,0,126,15,191,115,
- 16,0,69,132,110,0,126,191,115,15,
- 16,0,191,115,15,16,0,132,110,0,
- 126,15,16,0,126,191,115,16,0,126,
- 16,0,147,0,2,0,165,111,0,2,
- 111,0,167,115,2,147,0,2,0,164,
- 111,0,157,2,0,159,0,161,189,115,
- 37,139,51,0,161,189,115,37,51,0,
- 134,0,113,0,194,115,134,0,115,134,
- 0,155,113,0,165,115,37,139,53,0,
- 165,115,37,139,52,0,165,115,37,53,
- 0,165,115,37,52,0,186,0,149,0,
- 148,0,147,0,146,0,145,0,204,94,
- 0,77,2,114,111,113,0,204,127,138,
- 2,98,0,53,0,0,138,78,124,0,
- 29,131,0,156,2,19,0,161,179,115,
- 37,127,156,2,0,156,2,0,111,3,
- 0,118,0,112,0,193,2,111,0,138,
- 16,111,0,138,2,0
+ 154,23,0,110,0,159,2,31,0,111,
+ 0,159,2,30,0,159,2,29,0,206,
+ 118,0,31,149,0,169,204,118,15,145,
+ 0,112,0,0,165,118,2,156,0,165,
+ 118,2,0,168,2,0,161,118,0,172,
+ 0,194,118,23,0,9,110,0,127,32,
+ 194,118,23,0,69,132,110,0,127,194,
+ 118,32,23,0,194,118,32,23,0,132,
+ 110,0,127,32,23,0,127,194,118,23,
+ 0,127,23,0,149,0,2,0,165,111,
+ 0,2,111,0,165,118,2,149,0,2,
+ 0,164,111,0,160,2,0,159,0,169,
+ 192,118,15,108,201,53,0,112,0,169,
+ 192,118,15,201,53,0,144,0,113,0,
+ 200,118,144,0,118,144,0,155,113,0,
+ 188,118,15,199,108,198,175,0,188,118,
+ 15,198,175,0,187,0,148,0,147,0,
+ 146,0,145,0,144,0,214,94,0,77,
+ 2,115,111,113,0,214,128,138,2,98,
+ 0,53,0,0,138,78,125,0,29,132,
+ 0,159,2,18,0,159,2,0,111,119,
+ 0,197,2,112,0,138,23,112,0,138,
+ 2,0
};
};
public final static char scopeRhs[] = ScopeRhs.scopeRhs;
@@ -934,16 +920,17 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface ScopeState {
public final static char scopeState[] = {0,
- 1334,0,513,0,1704,1790,1698,1695,1689,0,
- 1544,480,1302,1418,1285,1223,1187,0,524,0,
- 1254,573,360,0,1469,1210,1176,601,480,1739,
- 1223,1187,1454,1284,0,1536,1529,1522,610,397,
- 1196,581,1384,1353,1294,1139,1084,1442,1431,1410,
- 715,1677,1670,1653,1374,791,1077,641,1595,1588,
- 1572,1565,1558,481,631,575,418,387,1149,1113,
- 1094,1058,1039,1019,999,729,1168,693,673,553,
- 979,959,939,919,899,879,859,839,819,799,
- 771,360,488,653,751,460,533,440,0
+ 554,0,423,0,1796,1223,1762,0,1475,519,
+ 1395,1501,1359,1271,1213,0,654,0,590,488,
+ 449,1808,1786,1409,1243,397,0,1183,509,368,
+ 0,1534,1449,627,398,519,1742,1271,1213,1502,
+ 1654,0,1615,1592,1584,470,405,1333,611,1384,
+ 1371,1348,1491,1424,1480,1464,1453,1413,1674,1666,
+ 1655,1283,723,1695,1684,1646,1638,1623,1362,1225,
+ 1122,1505,1325,1170,1114,1186,1150,1130,590,1094,
+ 1074,1053,1032,736,1011,700,679,629,990,969,
+ 948,927,906,885,864,843,822,801,780,368,
+ 759,658,488,449,0
};
};
public final static char scopeState[] = ScopeState.scopeState;
@@ -951,28 +938,29 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface InSymb {
public final static char inSymb[] = {0,
- 0,192,115,180,31,30,29,19,25,24,
- 13,12,4,14,18,17,2,111,116,114,
- 118,117,120,119,122,121,124,123,112,54,
- 2,2,2,2,156,138,134,115,76,61,
- 2,16,13,12,63,62,4,67,66,65,
- 64,57,58,14,71,70,73,72,78,77,
+ 0,196,118,181,31,30,29,18,25,24,
+ 7,6,4,11,17,16,2,112,116,115,
+ 119,117,121,120,123,122,125,124,113,38,
+ 2,2,2,2,159,138,144,118,76,61,
+ 2,23,7,6,63,62,4,67,66,65,
+ 64,56,57,11,71,70,73,72,78,77,
74,88,87,86,84,85,83,82,81,80,
- 79,69,156,156,156,156,127,115,16,2,
- 154,153,181,10,182,183,53,52,184,51,
- 185,186,1,3,193,138,114,114,117,117,
- 117,117,116,116,119,118,118,121,120,138,
- 123,122,127,127,127,127,37,159,4,15,
- 126,115,4,170,115,2,16,139,37,139,
- 37,37,139,68,115,4,115,115,126,191,
- 168,167,129,115,169,115,151,4,37,115,
- 37,115,115,37,179,115,37,115,168,191,
- 15,126,4,2,145,147,115,54,167,115,
- 165,134,166,115,165,189,139,190,115,161,
- 54,197,61,16,198,115,168,126,126,157,
- 115,2,159,165,115,165,161,69,54,189,
- 69,151,61,16,179,115,194,68,157,2,
- 115,161,151,161,167,195,54,68,159,54
+ 79,69,159,159,159,159,128,118,23,2,
+ 157,156,182,13,183,175,184,55,54,185,
+ 53,186,187,108,197,138,115,115,117,117,
+ 117,117,116,116,120,119,119,122,121,138,
+ 124,123,128,128,128,128,15,145,161,136,
+ 32,127,118,4,168,118,2,23,198,176,
+ 176,201,176,68,118,15,136,4,118,127,
+ 194,166,165,134,118,167,118,154,4,108,
+ 15,108,15,118,4,136,194,32,127,4,
+ 2,147,149,118,38,165,199,118,15,118,
+ 204,118,136,118,127,127,160,118,2,161,
+ 15,188,144,189,118,192,108,193,169,38,
+ 206,61,23,207,118,166,118,118,118,192,
+ 169,69,38,153,69,154,61,23,166,165,
+ 202,188,200,68,160,2,118,169,154,38,
+ 38,68,161
};
};
public final static char inSymb[] = InSymb.inSymb;
@@ -1094,10 +1082,11 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
")",
"}",
";",
+ "identifier_token",
"expression",
"postfix_expression",
"member_name",
- "type_name",
+ "type_id",
"initializer_list",
"unary_expression",
"cast_expression",
@@ -1106,16 +1095,14 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
"shift_expression",
"relational_expression",
"equality_expression",
- "AND_expression",
- "exclusive_OR_expression",
- "inclusive_OR_expression",
- "logical_AND_expression",
- "logical_OR_expression",
- "conditional_expression",
+ "and_expression",
+ "exclusive_or_expression",
+ "inclusive_or_expression",
+ "logical_and_expression",
+ "logical_or_expression",
"assignment_expression",
"expression_list_actual",
"constant_expression",
- "identifier_or_typedefname",
"declaration_specifiers",
"simple_declaration_specifiers",
"struct_or_union_declaration_sp" +
@@ -1132,9 +1119,10 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
"struct_or_union_specifier",
"elaborated_specifier",
"enum_specifier",
- "typedef_name_in_declspec",
+ "type_name_specifier",
"initializer",
"declarator",
+ "struct_or_union",
"struct_declaration_list",
"struct_declaration",
"specifier_qualifier_list",
@@ -1160,6 +1148,7 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
"or",
"array_direct_abstract_declarat" +
"or",
+ "initializer_seq",
"designated_initializer",
"designation",
"designator_list",
@@ -1171,9 +1160,9 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public final String name(int index) { return name[index]; }
public final static int
- ERROR_SYMBOL = 56,
- SCOPE_UBOUND = 50,
- SCOPE_SIZE = 51,
+ ERROR_SYMBOL = 60,
+ SCOPE_UBOUND = 47,
+ SCOPE_SIZE = 48,
MAX_NAME_LENGTH = 38;
public final int getErrorSymbol() { return ERROR_SYMBOL; }
@@ -1182,20 +1171,20 @@ public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public final int getMaxNameLength() { return MAX_NAME_LENGTH; }
public final static int
- NUM_STATES = 220,
+ NUM_STATES = 223,
NT_OFFSET = 107,
- LA_STATE_OFFSET = 2218,
+ LA_STATE_OFFSET = 2287,
MAX_LA = 2,
- NUM_RULES = 359,
- NUM_NONTERMINALS = 120,
- NUM_SYMBOLS = 227,
+ NUM_RULES = 367,
+ NUM_NONTERMINALS = 131,
+ NUM_SYMBOLS = 238,
SEGMENT_SIZE = 8192,
- START_STATE = 1307,
+ START_STATE = 1602,
IDENTIFIER_SYMBOL = 0,
EOFT_SYMBOL = 89,
EOLT_SYMBOL = 89,
- ACCEPT_ACTION = 1843,
- ERROR_ACTION = 1859;
+ ACCEPT_ACTION = 1907,
+ ERROR_ACTION = 1920;
public final static boolean BACKTRACK = true;
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParsersym.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParsersym.java
index 7ff98639ba..2128315502 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParsersym.java
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParsersym.java
@@ -1,5 +1,5 @@
/*******************************************************************************
-* Copyright (c) 2006, 2008 IBM Corporation and others.
+* Copyright (c) 2006, 2009 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -15,68 +15,68 @@ package org.eclipse.cdt.internal.core.dom.parser.upc;
public interface UPCNoCastExpressionParsersym {
public final static int
- TK_auto = 32,
+ TK_auto = 33,
TK_break = 90,
TK_case = 91,
- TK_char = 38,
- TK_const = 6,
+ TK_char = 40,
+ TK_const = 8,
TK_continue = 92,
TK_default = 93,
TK_do = 94,
- TK_double = 39,
+ TK_double = 41,
TK_else = 95,
- TK_enum = 51,
- TK_extern = 33,
- TK_float = 40,
+ TK_enum = 53,
+ TK_extern = 34,
+ TK_float = 42,
TK_for = 96,
TK_goto = 97,
TK_if = 98,
- TK_inline = 34,
- TK_int = 41,
- TK_long = 42,
- TK_register = 35,
- TK_restrict = 7,
+ TK_inline = 35,
+ TK_int = 43,
+ TK_long = 44,
+ TK_register = 36,
+ TK_restrict = 9,
TK_return = 99,
- TK_short = 43,
- TK_signed = 44,
- TK_sizeof = 19,
- TK_static = 15,
- TK_struct = 52,
+ TK_short = 45,
+ TK_signed = 46,
+ TK_sizeof = 18,
+ TK_static = 32,
+ TK_struct = 54,
TK_switch = 100,
- TK_typedef = 36,
- TK_union = 53,
- TK_unsigned = 45,
- TK_void = 46,
- TK_volatile = 8,
+ TK_typedef = 37,
+ TK_union = 55,
+ TK_unsigned = 47,
+ TK_void = 48,
+ TK_volatile = 10,
TK_while = 101,
- TK__Bool = 47,
- TK__Complex = 48,
- TK__Imaginary = 49,
- TK_integer = 20,
- TK_floating = 21,
- TK_charconst = 22,
- TK_stringlit = 23,
+ TK__Bool = 49,
+ TK__Complex = 50,
+ TK__Imaginary = 51,
+ TK_integer = 19,
+ TK_floating = 20,
+ TK_charconst = 21,
+ TK_stringlit = 22,
TK_identifier = 1,
TK_Completion = 3,
TK_EndOfCompletion = 5,
TK_Invalid = 102,
- TK_LeftBracket = 16,
+ TK_LeftBracket = 23,
TK_LeftParen = 2,
- TK_LeftBrace = 37,
+ TK_LeftBrace = 15,
TK_Dot = 61,
TK_Arrow = 76,
- TK_PlusPlus = 17,
- TK_MinusMinus = 18,
- TK_And = 14,
+ TK_PlusPlus = 16,
+ TK_MinusMinus = 17,
+ TK_And = 11,
TK_Star = 4,
- TK_Plus = 12,
- TK_Minus = 13,
+ TK_Plus = 6,
+ TK_Minus = 7,
TK_Tilde = 24,
TK_Bang = 25,
TK_Slash = 62,
TK_Percent = 63,
- TK_RightShift = 57,
- TK_LeftShift = 58,
+ TK_RightShift = 56,
+ TK_LeftShift = 57,
TK_LT = 64,
TK_GT = 65,
TK_LE = 66,
@@ -89,7 +89,7 @@ public interface UPCNoCastExpressionParsersym {
TK_OrOr = 77,
TK_Question = 78,
TK_Colon = 68,
- TK_DotDotDot = 60,
+ TK_DotDotDot = 59,
TK_Assign = 69,
TK_StarAssign = 79,
TK_SlashAssign = 80,
@@ -101,17 +101,17 @@ public interface UPCNoCastExpressionParsersym {
TK_AndAssign = 86,
TK_CaretAssign = 87,
TK_OrAssign = 88,
- TK_Comma = 54,
- TK_RightBracket = 59,
- TK_RightParen = 50,
- TK_RightBrace = 55,
+ TK_Comma = 38,
+ TK_RightBracket = 58,
+ TK_RightParen = 39,
+ TK_RightBrace = 52,
TK_SemiColon = 75,
TK_MYTHREAD = 26,
TK_THREADS = 27,
TK_UPC_MAX_BLOCKSIZE = 28,
- TK_relaxed = 9,
- TK_shared = 10,
- TK_strict = 11,
+ TK_relaxed = 12,
+ TK_shared = 13,
+ TK_strict = 14,
TK_upc_barrier = 103,
TK_upc_localsizeof = 29,
TK_upc_blocksizeof = 30,
@@ -120,7 +120,7 @@ public interface UPCNoCastExpressionParsersym {
TK_upc_fence = 105,
TK_upc_wait = 106,
TK_upc_forall = 107,
- TK_ERROR_TOKEN = 56,
+ TK_ERROR_TOKEN = 60,
TK_EOF_TOKEN = 89;
public final static String orderedTerminalSymbols[] = {
@@ -130,17 +130,16 @@ public interface UPCNoCastExpressionParsersym {
"Completion",
"Star",
"EndOfCompletion",
+ "Plus",
+ "Minus",
"const",
"restrict",
"volatile",
+ "And",
"relaxed",
"shared",
"strict",
- "Plus",
- "Minus",
- "And",
- "static",
- "LeftBracket",
+ "LeftBrace",
"PlusPlus",
"MinusMinus",
"sizeof",
@@ -148,6 +147,7 @@ public interface UPCNoCastExpressionParsersym {
"floating",
"charconst",
"stringlit",
+ "LeftBracket",
"Tilde",
"Bang",
"MYTHREAD",
@@ -156,12 +156,14 @@ public interface UPCNoCastExpressionParsersym {
"upc_localsizeof",
"upc_blocksizeof",
"upc_elemsizeof",
+ "static",
"auto",
"extern",
"inline",
"register",
"typedef",
- "LeftBrace",
+ "Comma",
+ "RightParen",
"char",
"double",
"float",
@@ -174,17 +176,15 @@ public interface UPCNoCastExpressionParsersym {
"_Bool",
"_Complex",
"_Imaginary",
- "RightParen",
+ "RightBrace",
"enum",
"struct",
"union",
- "Comma",
- "RightBrace",
- "ERROR_TOKEN",
"RightShift",
"LeftShift",
"RightBracket",
"DotDotDot",
+ "ERROR_TOKEN",
"Dot",
"Slash",
"Percent",
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParser.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParser.java
index c3ec37202a..914bc5ba4b 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParser.java
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParser.java
@@ -1,5 +1,5 @@
/*******************************************************************************
-* Copyright (c) 2006, 2008 IBM Corporation and others.
+* Copyright (c) 2006, 2009 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -17,24 +17,32 @@ import lpg.lpgjavaruntime.*;
import java.util.*;
import org.eclipse.cdt.core.dom.ast.*;
+import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
import org.eclipse.cdt.core.dom.lrparser.IParser;
-import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
+import org.eclipse.cdt.core.dom.lrparser.ITokenCollector;
+import org.eclipse.cdt.core.dom.lrparser.CPreprocessorAdapter;
+import org.eclipse.cdt.core.dom.lrparser.action.ITokenStream;
import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser;
+import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack;
+import org.eclipse.cdt.core.parser.IScanner;
+import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider;
+import org.eclipse.cdt.core.index.IIndex;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
-import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
-
-import org.eclipse.cdt.core.dom.lrparser.action.c99.C99ASTNodeFactory;
+import org.eclipse.cdt.core.dom.lrparser.action.c99.CNodeFactory;
import org.eclipse.cdt.core.dom.lrparser.action.c99.C99BuildASTParserAction;
+import org.eclipse.cdt.core.dom.lrparser.action.c99.C99SecondaryParserFactory;
import org.eclipse.cdt.core.dom.parser.upc.UPCASTNodeFactory;
+import org.eclipse.cdt.core.dom.parser.upc.UPCSecondaryParserFactory;
import org.eclipse.cdt.core.dom.parser.upc.UPCParserAction;
import org.eclipse.cdt.core.dom.upc.ast.IUPCASTKeywordExpression;
import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSynchronizationStatement;
import org.eclipse.cdt.core.dom.upc.ast.IUPCASTUnarySizeofExpression;
import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser;
-public class UPCParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser
+public class UPCParser extends PrsStream implements RuleAction, ITokenStream,
+ ITokenCollector, IParser< IASTTranslationUnit >
+
{
private static ParseTable prs = new UPCParserprs();
private FixedBacktrackingParser btParser;
@@ -125,22 +133,22 @@ public class UPCParser extends PrsStream implements RuleAction , IParserActionTo
super.reportError((firsttok > lasttok ? ParseErrorCodes.INSERTION_CODE : ParseErrorCodes.SUBSTITUTION_CODE), location, msg);
}
- public Object parser()
+ public void parser()
{
- return parser(null, 0);
+ parser(null, 0);
}
- public Object parser(Monitor monitor)
+ public void parser(Monitor monitor)
{
- return parser(monitor, 0);
+ parser(monitor, 0);
}
- public Object parser(int error_repair_count)
+ public void parser(int error_repair_count)
{
- return parser(null, error_repair_count);
+ parser(null, error_repair_count);
}
- public Object parser(Monitor monitor, int error_repair_count)
+ public void parser(Monitor monitor, int error_repair_count)
{
try
{
@@ -158,7 +166,7 @@ public class UPCParser extends PrsStream implements RuleAction , IParserActionTo
try
{
- return (Object) btParser.parse(error_repair_count);
+ btParser.parse(error_repair_count);
}
catch (BadParseException e)
{
@@ -166,18 +174,26 @@ public class UPCParser extends PrsStream implements RuleAction , IParserActionTo
DiagnoseParser diagnoseParser = new DiagnoseParser(this, prs);
diagnoseParser.diagnose(e.error_token);
}
-
- return null;
}
private UPCParserAction action;
+private IASTCompletionNode compNode;
-public UPCParser() { // constructor
+
+public UPCParser(IScanner scanner, IDOMTokenMap tokenMap, IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Map<String,String> properties) {
+ initActions(properties);
+ action.initializeTranslationUnit(scanner, builtinBindingsProvider, index);
+ CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap);
}
-private void initActions(IASTTranslationUnit tu) {
- action = new UPCParserAction ( UPCASTNodeFactory.DEFAULT_INSTANCE , this, tu);
+private void initActions(Map<String,String> properties) {
+ ScopedStack<Object> astStack = new ScopedStack<Object>();
+
+ action = new UPCParserAction (this, astStack, new UPCASTNodeFactory() , UPCSecondaryParserFactory.getDefault() );
+ action.setParserProperties(properties);
+
+
}
@@ -187,60 +203,37 @@ public void addToken(IToken token) {
}
-public IASTCompletionNode parse(IASTTranslationUnit tu) {
+public IASTTranslationUnit parse() {
// this has to be done, or... kaboom!
setStreamLength(getSize());
- initActions(tu);
final int errorRepairCount = -1; // -1 means full error handling
parser(null, errorRepairCount); // do the actual parse
super.resetTokenStream(); // allow tokens to be garbage collected
- // the completion node may be null
- IASTCompletionNode compNode = action.getASTCompletionNode();
+ compNode = action.getASTCompletionNode(); // the completion node may be null
+ return ( IASTTranslationUnit ) action.getParseResult();
+}
+
- //action = null;
- //parserAction = null;
+public IASTCompletionNode getCompletionNode() {
return compNode;
}
// uncomment this method to use with backtracking parser
-public List getRuleTokens() {
- return Collections.unmodifiableList(getTokens().subList(getLeftSpan(), getRightSpan() + 1));
-}
-
-
-public IASTNode getSecondaryParseResult() {
- return action.getSecondaryParseResult();
+public List<IToken> getRuleTokens() {
+ return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
}
public String[] getOrderedTerminalSymbols() {
return UPCParsersym.orderedTerminalSymbols;
}
+@SuppressWarnings("nls")
public String getName() {
- return "UPCParser"; //$NON-NLS-1$
-}
-
-
-
-private ITokenMap tokenMap = null;
-
-public void setTokens(List<IToken> tokens) {
- resetTokenStream();
- addToken(new Token(null, 0, 0, 0)); // dummy token
- for(IToken token : tokens) {
- token.setKind(tokenMap.mapKind(token.getKind()));
- addToken(token);
- }
- addToken(new Token(null, 0, 0, UPCParsersym.TK_EOF_TOKEN));
+ return "UPCParser";
}
-public UPCParser(String[] mapFrom) { // constructor
- tokenMap = new TokenMap(UPCParsersym.orderedTerminalSymbols, mapFrom);
-}
-
-
public void ruleAction(int ruleNumber)
{
@@ -254,1287 +247,1293 @@ public UPCParser(String[] mapFrom) { // constructor
}
//
- // Rule 10: literal ::= integer
+ // Rule 2: <empty> ::= $Empty
//
- case 10: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant); break;
+ case 2: { action. consumeEmpty(); break;
}
//
- // Rule 11: literal ::= floating
+ // Rule 13: literal ::= integer
//
- case 11: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant); break;
+ case 13: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant); break;
}
//
- // Rule 12: literal ::= charconst
+ // Rule 14: literal ::= floating
//
- case 12: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant); break;
+ case 14: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant); break;
}
//
- // Rule 13: literal ::= stringlit
+ // Rule 15: literal ::= charconst
//
- case 13: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal); break;
+ case 15: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant); break;
}
//
- // Rule 15: primary_expression ::= primary_expression_id
+ // Rule 16: literal ::= stringlit
//
- case 15: { action. consumeExpressionID(); break;
+ case 16: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal); break;
}
//
- // Rule 16: primary_expression ::= ( expression )
+ // Rule 18: primary_expression ::= primary_expression_id
//
- case 16: { action. consumeExpressionBracketed(); break;
+ case 18: { action. consumeExpressionID(); break;
}
//
- // Rule 20: postfix_expression ::= postfix_expression [ expression ]
+ // Rule 19: primary_expression ::= ( expression )
//
- case 20: { action. consumeExpressionArraySubscript(); break;
+ case 19: { action. consumeExpressionBracketed(); break;
}
//
- // Rule 21: postfix_expression ::= postfix_expression ( expression_list_opt )
+ // Rule 22: postfix_expression ::= postfix_expression [ expression ]
//
- case 21: { action. consumeExpressionFunctionCall(); break;
+ case 22: { action. consumeExpressionArraySubscript(); break;
}
//
- // Rule 22: postfix_expression ::= postfix_expression . member_name
+ // Rule 23: postfix_expression ::= postfix_expression ( expression_list_opt )
//
- case 22: { action. consumeExpressionFieldReference(false); break;
+ case 23: { action. consumeExpressionFunctionCall(); break;
}
//
- // Rule 23: postfix_expression ::= postfix_expression -> member_name
+ // Rule 24: postfix_expression ::= postfix_expression . member_name
//
- case 23: { action. consumeExpressionFieldReference(true); break;
+ case 24: { action. consumeExpressionFieldReference(false); break;
}
//
- // Rule 24: postfix_expression ::= postfix_expression ++
+ // Rule 25: postfix_expression ::= postfix_expression -> member_name
//
- case 24: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break;
+ case 25: { action. consumeExpressionFieldReference(true); break;
}
//
- // Rule 25: postfix_expression ::= postfix_expression --
+ // Rule 26: postfix_expression ::= postfix_expression ++
//
- case 25: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break;
+ case 26: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break;
}
//
- // Rule 26: postfix_expression ::= ( type_name ) { <openscope-ast> initializer_list comma_opt }
+ // Rule 27: postfix_expression ::= postfix_expression --
//
- case 26: { action. consumeExpressionTypeIdInitializer(); break;
+ case 27: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break;
}
//
- // Rule 32: unary_expression ::= ++ unary_expression
+ // Rule 28: postfix_expression ::= ( type_id ) initializer_list
//
- case 32: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break;
+ case 28: { action. consumeExpressionTypeIdInitializer(); break;
}
//
- // Rule 33: unary_expression ::= -- unary_expression
+ // Rule 33: unary_expression ::= ++ unary_expression
//
- case 33: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break;
+ case 33: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break;
}
//
- // Rule 34: unary_expression ::= & cast_expression
+ // Rule 34: unary_expression ::= -- unary_expression
//
- case 34: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break;
+ case 34: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break;
}
//
- // Rule 35: unary_expression ::= * cast_expression
+ // Rule 35: unary_expression ::= & cast_expression
//
- case 35: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break;
+ case 35: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break;
}
//
- // Rule 36: unary_expression ::= + cast_expression
+ // Rule 36: unary_expression ::= * cast_expression
//
- case 36: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break;
+ case 36: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break;
}
//
- // Rule 37: unary_expression ::= - cast_expression
+ // Rule 37: unary_expression ::= + cast_expression
//
- case 37: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break;
+ case 37: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break;
}
//
- // Rule 38: unary_expression ::= ~ cast_expression
+ // Rule 38: unary_expression ::= - cast_expression
//
- case 38: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break;
+ case 38: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break;
}
//
- // Rule 39: unary_expression ::= ! cast_expression
+ // Rule 39: unary_expression ::= ~ cast_expression
//
- case 39: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break;
+ case 39: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break;
}
//
- // Rule 40: unary_expression ::= sizeof unary_expression
+ // Rule 40: unary_expression ::= ! cast_expression
//
- case 40: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break;
+ case 40: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break;
}
//
- // Rule 41: unary_expression ::= sizeof ( type_name )
+ // Rule 41: unary_expression ::= sizeof unary_expression
//
- case 41: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof); break;
+ case 41: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break;
}
//
- // Rule 43: cast_expression ::= ( type_name ) cast_expression
+ // Rule 42: unary_expression ::= sizeof ( type_id )
//
- case 43: { action. consumeExpressionCast(IASTCastExpression.op_cast); break;
+ case 42: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof); break;
}
//
- // Rule 45: multiplicative_expression ::= multiplicative_expression * cast_expression
+ // Rule 44: cast_expression ::= ( type_id ) cast_expression
//
- case 45: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break;
+ case 44: { action. consumeExpressionCast(IASTCastExpression.op_cast); break;
}
//
- // Rule 46: multiplicative_expression ::= multiplicative_expression / cast_expression
+ // Rule 46: multiplicative_expression ::= multiplicative_expression * cast_expression
//
- case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break;
+ case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break;
}
//
- // Rule 47: multiplicative_expression ::= multiplicative_expression % cast_expression
+ // Rule 47: multiplicative_expression ::= multiplicative_expression / cast_expression
//
- case 47: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break;
+ case 47: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break;
}
//
- // Rule 49: additive_expression ::= additive_expression + multiplicative_expression
+ // Rule 48: multiplicative_expression ::= multiplicative_expression % cast_expression
//
- case 49: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break;
+ case 48: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break;
}
//
- // Rule 50: additive_expression ::= additive_expression - multiplicative_expression
+ // Rule 50: additive_expression ::= additive_expression + multiplicative_expression
//
- case 50: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break;
+ case 50: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break;
}
//
- // Rule 52: shift_expression ::= shift_expression << additive_expression
+ // Rule 51: additive_expression ::= additive_expression - multiplicative_expression
//
- case 52: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break;
+ case 51: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break;
}
//
- // Rule 53: shift_expression ::= shift_expression >> additive_expression
+ // Rule 53: shift_expression ::= shift_expression << additive_expression
//
- case 53: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break;
+ case 53: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break;
}
//
- // Rule 55: relational_expression ::= relational_expression < shift_expression
+ // Rule 54: shift_expression ::= shift_expression >> additive_expression
//
- case 55: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break;
+ case 54: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break;
}
//
- // Rule 56: relational_expression ::= relational_expression > shift_expression
+ // Rule 56: relational_expression ::= relational_expression < shift_expression
//
- case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break;
+ case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break;
}
//
- // Rule 57: relational_expression ::= relational_expression <= shift_expression
+ // Rule 57: relational_expression ::= relational_expression > shift_expression
//
- case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break;
+ case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break;
}
//
- // Rule 58: relational_expression ::= relational_expression >= shift_expression
+ // Rule 58: relational_expression ::= relational_expression <= shift_expression
//
- case 58: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break;
+ case 58: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break;
}
//
- // Rule 60: equality_expression ::= equality_expression == relational_expression
+ // Rule 59: relational_expression ::= relational_expression >= shift_expression
//
- case 60: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break;
+ case 59: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break;
}
//
- // Rule 61: equality_expression ::= equality_expression != relational_expression
+ // Rule 61: equality_expression ::= equality_expression == relational_expression
//
- case 61: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break;
+ case 61: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break;
}
//
- // Rule 63: AND_expression ::= AND_expression & equality_expression
+ // Rule 62: equality_expression ::= equality_expression != relational_expression
//
- case 63: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break;
+ case 62: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break;
}
//
- // Rule 65: exclusive_OR_expression ::= exclusive_OR_expression ^ AND_expression
+ // Rule 64: and_expression ::= and_expression & equality_expression
//
- case 65: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break;
+ case 64: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break;
}
//
- // Rule 67: inclusive_OR_expression ::= inclusive_OR_expression | exclusive_OR_expression
+ // Rule 66: exclusive_or_expression ::= exclusive_or_expression ^ and_expression
//
- case 67: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break;
+ case 66: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break;
}
//
- // Rule 69: logical_AND_expression ::= logical_AND_expression && inclusive_OR_expression
+ // Rule 68: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression
//
- case 69: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break;
+ case 68: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break;
}
//
- // Rule 71: logical_OR_expression ::= logical_OR_expression || logical_AND_expression
+ // Rule 70: logical_and_expression ::= logical_and_expression && inclusive_or_expression
//
- case 71: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break;
+ case 70: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break;
}
//
- // Rule 73: conditional_expression ::= logical_OR_expression ? expression : conditional_expression
+ // Rule 72: logical_or_expression ::= logical_or_expression || logical_and_expression
//
- case 73: { action. consumeExpressionConditional(); break;
+ case 72: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break;
}
//
- // Rule 75: assignment_expression ::= unary_expression = assignment_expression
+ // Rule 74: conditional_expression ::= logical_or_expression ? expression : assignment_expression
//
- case 75: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break;
+ case 74: { action. consumeExpressionConditional(); break;
}
//
- // Rule 76: assignment_expression ::= unary_expression *= assignment_expression
+ // Rule 76: assignment_expression ::= unary_expression = assignment_expression
//
- case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break;
+ case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break;
}
//
- // Rule 77: assignment_expression ::= unary_expression /= assignment_expression
+ // Rule 77: assignment_expression ::= unary_expression *= assignment_expression
//
- case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break;
+ case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break;
}
//
- // Rule 78: assignment_expression ::= unary_expression %= assignment_expression
+ // Rule 78: assignment_expression ::= unary_expression /= assignment_expression
//
- case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break;
+ case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break;
}
//
- // Rule 79: assignment_expression ::= unary_expression += assignment_expression
+ // Rule 79: assignment_expression ::= unary_expression %= assignment_expression
//
- case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break;
+ case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break;
}
//
- // Rule 80: assignment_expression ::= unary_expression -= assignment_expression
+ // Rule 80: assignment_expression ::= unary_expression += assignment_expression
//
- case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break;
+ case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break;
}
//
- // Rule 81: assignment_expression ::= unary_expression <<= assignment_expression
+ // Rule 81: assignment_expression ::= unary_expression -= assignment_expression
//
- case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break;
+ case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break;
}
//
- // Rule 82: assignment_expression ::= unary_expression >>= assignment_expression
+ // Rule 82: assignment_expression ::= unary_expression <<= assignment_expression
//
- case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break;
+ case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break;
}
//
- // Rule 83: assignment_expression ::= unary_expression &= assignment_expression
+ // Rule 83: assignment_expression ::= unary_expression >>= assignment_expression
//
- case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break;
+ case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break;
}
//
- // Rule 84: assignment_expression ::= unary_expression ^= assignment_expression
+ // Rule 84: assignment_expression ::= unary_expression &= assignment_expression
//
- case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break;
+ case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break;
}
//
- // Rule 85: assignment_expression ::= unary_expression |= assignment_expression
+ // Rule 85: assignment_expression ::= unary_expression ^= assignment_expression
//
- case 85: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break;
+ case 85: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break;
}
//
- // Rule 88: expression_list ::= <openscope-ast> expression_list_actual
+ // Rule 86: assignment_expression ::= unary_expression |= assignment_expression
//
- case 88: { action. consumeExpressionList(); break;
+ case 86: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break;
}
//
- // Rule 90: expression_list_opt ::= $Empty
+ // Rule 89: expression_list ::= <openscope-ast> expression_list_actual
//
- case 90: { action. consumeEmpty(); break;
+ case 89: { action. consumeExpressionList(); break;
}
//
- // Rule 100: statement ::= ERROR_TOKEN
+ // Rule 91: expression_list_opt ::= $Empty
//
- case 100: { action. consumeStatementProblem(); break;
+ case 91: { action. consumeEmpty(); break;
}
//
- // Rule 101: labeled_statement ::= identifier_or_typedefname : statement
+ // Rule 101: statement ::= ERROR_TOKEN
//
- case 101: { action. consumeStatementLabeled(); break;
+ case 101: { action. consumeStatementProblem(); break;
}
//
- // Rule 102: labeled_statement ::= case constant_expression :
+ // Rule 102: labeled_statement ::= identifier_token : statement
//
- case 102: { action. consumeStatementCase(); break;
+ case 102: { action. consumeStatementLabeled(); break;
}
//
- // Rule 103: labeled_statement ::= default :
+ // Rule 103: labeled_statement ::= case constant_expression : statement
//
- case 103: { action. consumeStatementDefault(); break;
+ case 103: { action. consumeStatementCase(); break;
}
//
- // Rule 104: compound_statement ::= { }
+ // Rule 104: labeled_statement ::= default : statement
//
- case 104: { action. consumeStatementCompoundStatement(false); break;
+ case 104: { action. consumeStatementDefault(); break;
}
//
- // Rule 105: compound_statement ::= { <openscope-ast> block_item_list }
+ // Rule 105: compound_statement ::= { }
//
- case 105: { action. consumeStatementCompoundStatement(true); break;
+ case 105: { action. consumeStatementCompoundStatement(false); break;
}
//
- // Rule 109: block_item ::= declaration
+ // Rule 106: compound_statement ::= { <openscope-ast> block_item_list }
//
- case 109: { action. consumeStatementDeclarationWithDisambiguation(); break;
+ case 106: { action. consumeStatementCompoundStatement(true); break;
}
//
- // Rule 110: expression_statement ::= ;
+ // Rule 110: block_item ::= declaration
//
- case 110: { action. consumeStatementNull(); break;
+ case 110: { action. consumeStatementDeclarationWithDisambiguation(); break;
}
//
- // Rule 111: expression_statement ::= expression_in_statement ;
+ // Rule 111: expression_statement ::= ;
//
- case 111: { action. consumeStatementExpression(); break;
+ case 111: { action. consumeStatementNull(); break;
}
//
- // Rule 112: selection_statement ::= if ( expression ) statement
+ // Rule 112: expression_statement ::= expression_in_statement ;
//
- case 112: { action. consumeStatementIf(false); break;
+ case 112: { action. consumeStatementExpression(); break;
}
//
- // Rule 113: selection_statement ::= if ( expression ) statement else statement
+ // Rule 113: selection_statement ::= if ( expression ) statement
//
- case 113: { action. consumeStatementIf(true); break;
+ case 113: { action. consumeStatementIf(false); break;
}
//
- // Rule 114: selection_statement ::= switch ( expression ) statement
+ // Rule 114: selection_statement ::= if ( expression ) statement else statement
//
- case 114: { action. consumeStatementSwitch(); break;
+ case 114: { action. consumeStatementIf(true); break;
}
//
- // Rule 116: expression_opt ::= $Empty
+ // Rule 115: selection_statement ::= switch ( expression ) statement
//
- case 116: { action. consumeEmpty(); break;
+ case 115: { action. consumeStatementSwitch(); break;
}
//
- // Rule 117: iteration_statement ::= do statement while ( expression ) ;
+ // Rule 117: expression_opt ::= $Empty
//
- case 117: { action. consumeStatementDoLoop(); break;
+ case 117: { action. consumeEmpty(); break;
}
//
- // Rule 118: iteration_statement ::= while ( expression ) statement
+ // Rule 118: iteration_statement ::= do statement while ( expression ) ;
//
- case 118: { action. consumeStatementWhileLoop(); break;
+ case 118: { action. consumeStatementDoLoop(); break;
}
//
- // Rule 119: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement
+ // Rule 119: iteration_statement ::= while ( expression ) statement
//
- case 119: { action. consumeStatementForLoop(); break;
+ case 119: { action. consumeStatementWhileLoop(); break;
}
//
- // Rule 120: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement
+ // Rule 120: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement
//
case 120: { action. consumeStatementForLoop(); break;
}
//
- // Rule 121: jump_statement ::= goto identifier_or_typedefname ;
+ // Rule 121: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement
//
- case 121: { action. consumeStatementGoto(); break;
+ case 121: { action. consumeStatementForLoop(); break;
}
//
- // Rule 122: jump_statement ::= continue ;
+ // Rule 122: jump_statement ::= goto identifier_token ;
//
- case 122: { action. consumeStatementContinue(); break;
+ case 122: { action. consumeStatementGoto(); break;
}
//
- // Rule 123: jump_statement ::= break ;
+ // Rule 123: jump_statement ::= continue ;
//
- case 123: { action. consumeStatementBreak(); break;
+ case 123: { action. consumeStatementContinue(); break;
}
//
- // Rule 124: jump_statement ::= return ;
+ // Rule 124: jump_statement ::= break ;
//
- case 124: { action. consumeStatementReturn(false); break;
+ case 124: { action. consumeStatementBreak(); break;
}
//
- // Rule 125: jump_statement ::= return expression ;
+ // Rule 125: jump_statement ::= return ;
//
- case 125: { action. consumeStatementReturn(true); break;
+ case 125: { action. consumeStatementReturn(false); break;
}
//
- // Rule 126: declaration ::= declaration_specifiers ;
+ // Rule 126: jump_statement ::= return expression ;
//
- case 126: { action. consumeDeclarationSimple(false); break;
+ case 126: { action. consumeStatementReturn(true); break;
}
//
- // Rule 127: declaration ::= declaration_specifiers <openscope-ast> init_declarator_list ;
+ // Rule 127: declaration ::= declaration_specifiers ;
//
- case 127: { action. consumeDeclarationSimple(true); break;
+ case 127: { action. consumeDeclarationSimple(false); break;
}
//
- // Rule 128: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
+ // Rule 128: declaration ::= declaration_specifiers <openscope-ast> init_declarator_list ;
//
- case 128: { action. consumeDeclarationSpecifiersSimple(); break;
+ case 128: { action. consumeDeclarationSimple(true); break;
}
//
- // Rule 129: declaration_specifiers ::= <openscope-ast> struct_or_union_declaration_specifiers
+ // Rule 129: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
//
- case 129: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
+ case 129: { action. consumeDeclarationSpecifiersSimple(); break;
}
//
- // Rule 130: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
+ // Rule 130: declaration_specifiers ::= <openscope-ast> struct_or_union_declaration_specifiers
//
case 130: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
}
//
- // Rule 131: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
+ // Rule 131: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
//
case 131: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
}
//
- // Rule 132: declaration_specifiers ::= <openscope-ast> typdef_name_declaration_specifiers
+ // Rule 132: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
//
- case 132: { action. consumeDeclarationSpecifiersTypedefName(); break;
+ case 132: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
}
//
- // Rule 157: init_declarator ::= complete_declarator = initializer
+ // Rule 133: declaration_specifiers ::= <openscope-ast> typdef_name_declaration_specifiers
//
- case 157: { action. consumeDeclaratorWithInitializer(true); break;
+ case 133: { action. consumeDeclarationSpecifiersTypedefName(); break;
}
//
- // Rule 159: storage_class_specifier ::= storage_class_specifier_token
+ // Rule 158: init_declarator ::= complete_declarator = initializer
//
- case 159: { action. consumeDeclSpecToken(); break;
+ case 158: { action. consumeDeclaratorWithInitializer(true); break;
}
//
- // Rule 165: simple_type_specifier ::= simple_type_specifier_token
+ // Rule 160: storage_class_specifier ::= storage_class_specifier_token
//
- case 165: { action. consumeDeclSpecToken(); break;
+ case 160: { action. consumeToken(); break;
}
//
- // Rule 178: typedef_name_in_declspec ::= Completion
+ // Rule 166: simple_type_specifier ::= simple_type_specifier_token
//
- case 178: { action. consumeDeclSpecToken(); break;
+ case 166: { action. consumeToken(); break;
}
//
- // Rule 179: typedef_name_in_declspec ::= identifier
+ // Rule 179: type_name_specifier ::= identifier_token
//
- case 179: { action. consumeDeclSpecToken(); break;
+ case 179: { action. consumeToken(); break;
}
//
- // Rule 182: struct_or_union_specifier ::= struct { <openscope-ast> struct_declaration_list_opt }
+ // Rule 180: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { <openscope-ast> struct_declaration_list_opt }
//
- case 182: { action. consumeTypeSpecifierComposite(false, IASTCompositeTypeSpecifier.k_struct); break;
+ case 180: { action. consumeTypeSpecifierComposite(false); break;
}
//
- // Rule 183: struct_or_union_specifier ::= union { <openscope-ast> struct_declaration_list_opt }
+ // Rule 181: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { <openscope-ast> struct_declaration_list_opt }
//
- case 183: { action. consumeTypeSpecifierComposite(false, IASTCompositeTypeSpecifier.k_union); break;
+ case 181: { action. consumeTypeSpecifierComposite(true); break;
}
//
- // Rule 184: struct_or_union_specifier ::= struct identifier_or_typedefname { <openscope-ast> struct_declaration_list_opt }
+ // Rule 186: elaborated_specifier ::= struct elaborated_specifier_hook identifier_token
//
- case 184: { action. consumeTypeSpecifierComposite(true, IASTCompositeTypeSpecifier.k_struct); break;
+ case 186: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break;
}
//
- // Rule 185: struct_or_union_specifier ::= union identifier_or_typedefname { <openscope-ast> struct_declaration_list_opt }
+ // Rule 187: elaborated_specifier ::= union elaborated_specifier_hook identifier_token
//
- case 185: { action. consumeTypeSpecifierComposite(true, IASTCompositeTypeSpecifier.k_union); break;
+ case 187: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break;
}
//
- // Rule 186: elaborated_specifier ::= struct identifier_or_typedefname
+ // Rule 188: elaborated_specifier ::= enum elaborated_specifier_hook identifier_token
//
- case 186: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break;
+ case 188: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break;
}
//
- // Rule 187: elaborated_specifier ::= union identifier_or_typedefname
+ // Rule 194: struct_declaration ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ;
//
- case 187: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break;
+ case 194: { action. consumeStructDeclaration(true); break;
}
//
- // Rule 188: elaborated_specifier ::= enum identifier_or_typedefname
+ // Rule 195: struct_declaration ::= specifier_qualifier_list ;
//
- case 188: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break;
+ case 195: { action. consumeStructDeclaration(false); break;
}
//
- // Rule 193: struct_declaration ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ;
+ // Rule 196: struct_declaration ::= ERROR_TOKEN
//
- case 193: { action. consumeStructDeclaration(true); break;
+ case 196: { action. consumeDeclarationProblem(); break;
}
//
- // Rule 194: struct_declaration ::= specifier_qualifier_list ;
+ // Rule 202: struct_declarator ::= : constant_expression
//
- case 194: { action. consumeStructDeclaration(false); break;
+ case 202: { action. consumeBitField(false); break;
}
//
- // Rule 195: struct_declaration ::= ERROR_TOKEN
+ // Rule 203: struct_declarator ::= declarator : constant_expression
//
- case 195: { action. consumeDeclarationProblem(); break;
+ case 203: { action. consumeBitField(true); break;
}
//
- // Rule 201: struct_declarator ::= : constant_expression
+ // Rule 204: enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
//
- case 201: { action. consumeBitField(false); break;
+ case 204: { action. consumeTypeSpecifierEnumeration(false); break;
}
//
- // Rule 202: struct_declarator ::= declarator : constant_expression
+ // Rule 205: enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
//
- case 202: { action. consumeBitField(true); break;
+ case 205: { action. consumeTypeSpecifierEnumeration(true); break;
}
//
- // Rule 203: enum_specifier ::= enum { <openscope-ast> enumerator_list_opt comma_opt }
+ // Rule 211: enumerator ::= identifier_token
//
- case 203: { action. consumeTypeSpecifierEnumeration(false); break;
+ case 211: { action. consumeEnumerator(false); break;
}
//
- // Rule 204: enum_specifier ::= enum identifier_or_typedefname { <openscope-ast> enumerator_list_opt comma_opt }
+ // Rule 212: enumerator ::= identifier_token = constant_expression
//
- case 204: { action. consumeTypeSpecifierEnumeration(true); break;
+ case 212: { action. consumeEnumerator(true); break;
}
//
- // Rule 209: enumerator ::= identifier_or_typedefname
+ // Rule 213: type_qualifier ::= type_qualifier_token
//
- case 209: { action. consumeEnumerator(false); break;
+ case 213: { action. consumeToken(); break;
}
//
- // Rule 210: enumerator ::= identifier_or_typedefname = constant_expression
+ // Rule 217: function_specifier ::= inline
//
- case 210: { action. consumeEnumerator(true); break;
+ case 217: { action. consumeToken(); break;
}
//
- // Rule 211: type_qualifier ::= type_qualifier_token
+ // Rule 219: declarator ::= <openscope-ast> pointer_seq direct_declarator
//
- case 211: { action. consumeDeclSpecToken(); break;
+ case 219: { action. consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 215: function_specifier ::= inline
+ // Rule 224: basic_direct_declarator ::= declarator_id_name
//
- case 215: { action. consumeDeclSpecToken(); break;
+ case 224: { action. consumeDirectDeclaratorIdentifier(); break;
}
//
- // Rule 217: declarator ::= <openscope-ast> pointer_seq direct_declarator
+ // Rule 225: basic_direct_declarator ::= ( declarator )
//
- case 217: { action. consumeDeclaratorWithPointer(true); break;
+ case 225: { action. consumeDirectDeclaratorBracketed(); break;
}
//
- // Rule 222: basic_direct_declarator ::= declarator_id_name
+ // Rule 226: declarator_id_name ::= identifier
//
- case 222: { action. consumeDirectDeclaratorIdentifier(); break;
+ case 226: { action. consumeIdentifierName(); break;
}
//
- // Rule 223: basic_direct_declarator ::= ( declarator )
+ // Rule 227: array_direct_declarator ::= basic_direct_declarator array_modifier
//
- case 223: { action. consumeDirectDeclaratorBracketed(); break;
+ case 227: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 224: declarator_id_name ::= identifier
+ // Rule 228: array_direct_declarator ::= array_direct_declarator array_modifier
//
- case 224: { action. consumeIdentifierName(); break;
+ case 228: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 225: array_direct_declarator ::= basic_direct_declarator array_modifier
+ // Rule 230: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_type_list )
//
- case 225: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ case 230: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
}
//
- // Rule 226: array_direct_declarator ::= array_direct_declarator array_modifier
+ // Rule 231: function_direct_declarator ::= basic_direct_declarator ( )
//
- case 226: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ case 231: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
}
//
- // Rule 228: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_type_list )
+ // Rule 233: function_declarator ::= <openscope-ast> pointer_seq function_direct_declarator
//
- case 228: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
+ case 233: { action. consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 229: function_direct_declarator ::= basic_direct_declarator ( )
+ // Rule 234: knr_direct_declarator ::= basic_direct_declarator ( <openscope-ast> identifier_list )
//
- case 229: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
+ case 234: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break;
}
//
- // Rule 231: function_declarator ::= <openscope-ast> pointer_seq function_direct_declarator
+ // Rule 236: knr_function_declarator ::= <openscope-ast> pointer_seq knr_direct_declarator
//
- case 231: { action. consumeDeclaratorWithPointer(true); break;
+ case 236: { action. consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 232: knr_direct_declarator ::= basic_direct_declarator ( <openscope-ast> identifier_list )
+ // Rule 237: identifier_list ::= identifier
//
- case 232: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break;
+ case 237: { action. consumeIdentifierKnR(); break;
}
//
- // Rule 234: knr_function_declarator ::= <openscope-ast> pointer_seq knr_direct_declarator
+ // Rule 238: identifier_list ::= identifier_list , identifier
//
- case 234: { action. consumeDeclaratorWithPointer(true); break;
+ case 238: { action. consumeIdentifierKnR(); break;
}
//
- // Rule 235: identifier_list ::= identifier
+ // Rule 239: array_modifier ::= [ ]
//
- case 235: { action. consumeIdentifierKnR(); break;
+ case 239: { action. consumeDirectDeclaratorArrayModifier(false); break;
}
//
- // Rule 236: identifier_list ::= identifier_list , identifier
+ // Rule 240: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ]
//
- case 236: { action. consumeIdentifierKnR(); break;
+ case 240: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break;
}
//
- // Rule 237: array_modifier ::= [ ]
+ // Rule 241: array_modifier ::= [ assignment_expression ]
//
- case 237: { action. consumeDirectDeclaratorArrayModifier(false); break;
+ case 241: { action. consumeDirectDeclaratorArrayModifier(true); break;
}
//
- // Rule 238: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ]
+ // Rule 242: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
//
- case 238: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break;
+ case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break;
}
//
- // Rule 239: array_modifier ::= [ assignment_expression ]
+ // Rule 243: array_modifier ::= [ static assignment_expression ]
//
- case 239: { action. consumeDirectDeclaratorArrayModifier(true); break;
+ case 243: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break;
}
//
- // Rule 240: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
+ // Rule 244: array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
//
- case 240: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break;
+ case 244: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break;
}
//
- // Rule 241: array_modifier ::= [ static assignment_expression ]
+ // Rule 245: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ]
//
- case 241: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break;
+ case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break;
}
//
- // Rule 242: array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
+ // Rule 246: array_modifier ::= [ * ]
//
- case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break;
+ case 246: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break;
}
//
- // Rule 243: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ]
+ // Rule 247: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ]
//
- case 243: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break;
+ case 247: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break;
}
//
- // Rule 244: array_modifier ::= [ * ]
+ // Rule 249: pointer_seq ::= pointer_hook * pointer_hook
//
- case 244: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break;
+ case 249: { action. consumePointer(); break;
}
//
- // Rule 245: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ]
+ // Rule 250: pointer_seq ::= pointer_seq pointer_hook * pointer_hook
//
- case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break;
+ case 250: { action. consumePointer(); break;
}
//
- // Rule 247: pointer_seq ::= *
+ // Rule 251: pointer_seq ::= pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
//
- case 247: { action. consumePointer(); break;
+ case 251: { action. consumePointerTypeQualifierList(); break;
}
//
- // Rule 248: pointer_seq ::= pointer_seq *
+ // Rule 252: pointer_seq ::= pointer_seq pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
//
- case 248: { action. consumePointer(); break;
+ case 252: { action. consumePointerTypeQualifierList(); break;
}
//
- // Rule 249: pointer_seq ::= * <openscope-ast> type_qualifier_list
+ // Rule 256: parameter_type_list ::= parameter_list
//
- case 249: { action. consumePointerTypeQualifierList(); break;
+ case 256: { action. consumeEmpty(); break;
}
//
- // Rule 250: pointer_seq ::= pointer_seq * <openscope-ast> type_qualifier_list
+ // Rule 257: parameter_type_list ::= parameter_list , ...
//
- case 250: { action. consumePointerTypeQualifierList(); break;
+ case 257: { action. consumePlaceHolder(); break;
}
//
- // Rule 253: parameter_type_list ::= parameter_list
+ // Rule 258: parameter_type_list ::= ...
//
- case 253: { action. consumeEmpty(); break;
+ case 258: { action. consumePlaceHolder(); break;
}
//
- // Rule 254: parameter_type_list ::= parameter_list , ...
+ // Rule 261: parameter_declaration ::= declaration_specifiers complete_parameter_declarator
//
- case 254: { action. consumePlaceHolder(); break;
+ case 261: { action. consumeParameterDeclaration(); break;
}
//
- // Rule 255: parameter_type_list ::= ...
+ // Rule 262: parameter_declaration ::= declaration_specifiers
//
- case 255: { action. consumePlaceHolder(); break;
+ case 262: { action. consumeParameterDeclarationWithoutDeclarator(); break;
}
//
- // Rule 258: parameter_declaration ::= declaration_specifiers complete_parameter_declarator
+ // Rule 265: type_id ::= specifier_qualifier_list
//
- case 258: { action. consumeParameterDeclaration(); break;
+ case 265: { action. consumeTypeId(false); break;
}
//
- // Rule 259: parameter_declaration ::= declaration_specifiers
+ // Rule 266: type_id ::= specifier_qualifier_list abstract_declarator
//
- case 259: { action. consumeParameterDeclarationWithoutDeclarator(); break;
+ case 266: { action. consumeTypeId(true); break;
}
//
- // Rule 262: type_name ::= specifier_qualifier_list
+ // Rule 268: abstract_declarator ::= <openscope-ast> pointer_seq
//
- case 262: { action. consumeTypeId(false); break;
+ case 268: { action. consumeDeclaratorWithPointer(false); break;
}
//
- // Rule 263: type_name ::= specifier_qualifier_list abstract_declarator
+ // Rule 269: abstract_declarator ::= <openscope-ast> pointer_seq direct_abstract_declarator
//
- case 263: { action. consumeTypeId(true); break;
+ case 269: { action. consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 265: abstract_declarator ::= <openscope-ast> pointer_seq
+ // Rule 273: basic_direct_abstract_declarator ::= ( abstract_declarator )
//
- case 265: { action. consumeDeclaratorWithPointer(false); break;
+ case 273: { action. consumeDirectDeclaratorBracketed(); break;
}
//
- // Rule 266: abstract_declarator ::= <openscope-ast> pointer_seq direct_abstract_declarator
+ // Rule 274: array_direct_abstract_declarator ::= array_modifier
//
- case 266: { action. consumeDeclaratorWithPointer(false); break;
+ case 274: { action. consumeDirectDeclaratorArrayDeclarator(false); break;
}
//
- // Rule 270: basic_direct_abstract_declarator ::= ( abstract_declarator )
+ // Rule 275: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
//
- case 270: { action. consumeDirectDeclaratorBracketed(); break;
+ case 275: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 271: array_direct_abstract_declarator ::= array_modifier
+ // Rule 276: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
//
- case 271: { action. consumeDirectDeclaratorArrayDeclarator(false); break;
+ case 276: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 272: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
+ // Rule 277: function_direct_abstract_declarator ::= ( )
+ //
+ case 277: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break;
+ }
+
//
- case 272: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ // Rule 278: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( )
+ //
+ case 278: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
}
//
- // Rule 273: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
+ // Rule 279: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list )
//
- case 273: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ case 279: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break;
}
//
- // Rule 274: function_direct_abstract_declarator ::= ( )
+ // Rule 280: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list )
//
- case 274: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break;
- }
+ case 280: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
+ }
//
- // Rule 275: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( )
+ // Rule 281: initializer ::= assignment_expression
//
- case 275: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
+ case 281: { action. consumeInitializer(); break;
}
//
- // Rule 276: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list )
+ // Rule 283: initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq comma_opt } end_initializer_list
//
- case 276: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break;
+ case 283: { action. consumeInitializerList(); break;
}
//
- // Rule 277: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list )
+ // Rule 284: initializer_list ::= { <openscope-ast> }
//
- case 277: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
+ case 284: { action. consumeInitializerList(); break;
}
//
- // Rule 278: initializer ::= assignment_expression
+ // Rule 285: start_initializer_list ::= $Empty
//
- case 278: { action. consumeInitializer(); break;
+ case 285: { action. initializerListStart(); break;
}
//
- // Rule 279: initializer ::= { <openscope-ast> initializer_list comma_opt }
+ // Rule 286: end_initializer_list ::= $Empty
//
- case 279: { action. consumeInitializerList(); break;
+ case 286: { action. initializerListEnd(); break;
}
//
- // Rule 284: designated_initializer ::= <openscope-ast> designation = initializer
+ // Rule 291: designated_initializer ::= <openscope-ast> designation = initializer
//
- case 284: { action. consumeInitializerDesignated(); break;
+ case 291: { action. consumeInitializerDesignated(); break;
}
//
- // Rule 288: designator_base ::= [ constant_expression ]
+ // Rule 295: designator_base ::= [ constant_expression ]
//
- case 288: { action. consumeDesignatorArray(); break;
+ case 295: { action. consumeDesignatorArray(); break;
}
//
- // Rule 289: designator_base ::= . identifier_or_typedefname
+ // Rule 296: designator_base ::= . identifier_token
//
- case 289: { action. consumeDesignatorField(); break;
+ case 296: { action. consumeDesignatorField(); break;
}
//
- // Rule 290: designator ::= [ constant_expression ]
+ // Rule 297: designator ::= [ constant_expression ]
//
- case 290: { action. consumeDesignatorArray(); break;
+ case 297: { action. consumeDesignatorArray(); break;
}
//
- // Rule 291: designator ::= . identifier_or_typedefname
+ // Rule 298: designator ::= . identifier_token
//
- case 291: { action. consumeDesignatorField(); break;
+ case 298: { action. consumeDesignatorField(); break;
}
//
- // Rule 292: translation_unit ::= external_declaration_list
+ // Rule 299: translation_unit ::= external_declaration_list
//
- case 292: { action. consumeTranslationUnit(); break;
+ case 299: { action. consumeTranslationUnit(); break;
}
//
- // Rule 293: translation_unit ::= $Empty
+ // Rule 300: translation_unit ::= $Empty
//
- case 293: { action. consumeTranslationUnit(); break;
+ case 300: { action. consumeTranslationUnit(); break;
}
//
- // Rule 298: external_declaration ::= ;
+ // Rule 305: external_declaration ::= ;
//
- case 298: { action. consumeDeclarationEmpty(); break;
+ case 305: { action. consumeDeclarationEmpty(); break;
}
//
- // Rule 299: external_declaration ::= ERROR_TOKEN
+ // Rule 306: external_declaration ::= ERROR_TOKEN
//
- case 299: { action. consumeDeclarationProblem(); break;
+ case 306: { action. consumeDeclarationProblem(); break;
}
//
- // Rule 302: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
+ // Rule 310: function_definition ::= <openscope-ast> function_declarator function_body
//
- case 302: { action. consumeFunctionDefinition(true); break;
+ case 310: { action. consumeFunctionDefinition(false); break;
}
//
- // Rule 303: function_definition ::= <openscope-ast> function_declarator function_body
+ // Rule 311: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
//
- case 303: { action. consumeFunctionDefinition(false); break;
+ case 311: { action. consumeFunctionDefinitionKnR(); break;
}
//
- // Rule 304: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
+ // Rule 312: normal_function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
//
- case 304: { action. consumeFunctionDefinitionKnR(); break;
+ case 312: { action. consumeFunctionDefinition(true); break;
}
//
- // Rule 305: function_body ::= { }
+ // Rule 313: function_body ::= { }
//
- case 305: { action. consumeStatementCompoundStatement(false); break;
+ case 313: { action. consumeStatementCompoundStatement(false); break;
}
//
- // Rule 306: function_body ::= { <openscope-ast> block_item_list }
+ // Rule 314: function_body ::= { <openscope-ast> block_item_list }
//
- case 306: { action. consumeStatementCompoundStatement(true); break;
+ case 314: { action. consumeStatementCompoundStatement(true); break;
}
//
- // Rule 307: literal ::= MYTHREAD
+ // Rule 315: literal ::= MYTHREAD
//
- case 307: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread); break;
+ case 315: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread); break;
}
//
- // Rule 308: literal ::= THREADS
+ // Rule 316: literal ::= THREADS
//
- case 308: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads); break;
+ case 316: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads); break;
}
//
- // Rule 309: literal ::= UPC_MAX_BLOCKSIZE
+ // Rule 317: literal ::= UPC_MAX_BLOCKSIZE
//
- case 309: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size); break;
+ case 317: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size); break;
}
//
- // Rule 310: unary_expression ::= upc_localsizeof unary_expression
+ // Rule 318: unary_expression ::= upc_localsizeof unary_expression
//
- case 310: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_localsizeof); break;
+ case 318: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_localsizeof); break;
}
//
- // Rule 311: unary_expression ::= upc_localsizeof ( type_name )
+ // Rule 319: unary_expression ::= upc_localsizeof ( type_id )
//
- case 311: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_localsizeof); break;
+ case 319: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_localsizeof); break;
}
//
- // Rule 312: unary_expression ::= upc_blocksizeof unary_expression
+ // Rule 320: unary_expression ::= upc_blocksizeof unary_expression
//
- case 312: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_blocksizeof); break;
+ case 320: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_blocksizeof); break;
}
//
- // Rule 313: unary_expression ::= upc_blocksizeof ( type_name )
+ // Rule 321: unary_expression ::= upc_blocksizeof ( type_id )
//
- case 313: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_blocksizeof); break;
+ case 321: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_blocksizeof); break;
}
//
- // Rule 314: unary_expression ::= upc_elemsizeof unary_expression
+ // Rule 322: unary_expression ::= upc_elemsizeof unary_expression
//
- case 314: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_elemsizeof); break;
+ case 322: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_elemsizeof); break;
}
//
- // Rule 315: unary_expression ::= upc_elemsizeof ( type_name )
+ // Rule 323: unary_expression ::= upc_elemsizeof ( type_id )
//
- case 315: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_elemsizeof); break;
+ case 323: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_elemsizeof); break;
}
//
- // Rule 319: shared_type_qualifier ::= shared
+ // Rule 327: shared_type_qualifier ::= shared
//
- case 319: { action. consumeToken(); break;
+ case 327: { action. consumeToken(); break;
}
//
- // Rule 320: reference_type_qualifier ::= relaxed
+ // Rule 328: reference_type_qualifier ::= relaxed
//
- case 320: { action. consumeToken(); break;
+ case 328: { action. consumeToken(); break;
}
//
- // Rule 321: reference_type_qualifier ::= strict
+ // Rule 329: reference_type_qualifier ::= strict
//
- case 321: { action. consumeToken(); break;
+ case 329: { action. consumeToken(); break;
}
//
- // Rule 322: layout_qualifier ::= [ constant_expression ]
+ // Rule 330: layout_qualifier ::= [ constant_expression ]
//
- case 322: { action. consumeLayoutQualifier(true, false); break;
+ case 330: { action. consumeLayoutQualifier(true, false); break;
}
//
- // Rule 323: layout_qualifier ::= [ * ]
+ // Rule 331: layout_qualifier ::= [ * ]
//
- case 323: { action. consumeLayoutQualifier(false, true); break;
+ case 331: { action. consumeLayoutQualifier(false, true); break;
}
//
- // Rule 324: layout_qualifier ::= [ ]
+ // Rule 332: layout_qualifier ::= [ ]
//
- case 324: { action. consumeLayoutQualifier(false, false); break;
+ case 332: { action. consumeLayoutQualifier(false, false); break;
}
//
- // Rule 326: synchronization_statement ::= upc_notify expression ;
+ // Rule 334: synchronization_statement ::= upc_notify expression ;
//
- case 326: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true); break;
+ case 334: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true); break;
}
//
- // Rule 327: synchronization_statement ::= upc_notify ;
+ // Rule 335: synchronization_statement ::= upc_notify ;
//
- case 327: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false); break;
+ case 335: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false); break;
}
//
- // Rule 328: synchronization_statement ::= upc_wait expression ;
+ // Rule 336: synchronization_statement ::= upc_wait expression ;
//
- case 328: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true); break;
+ case 336: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true); break;
}
//
- // Rule 329: synchronization_statement ::= upc_wait ;
+ // Rule 337: synchronization_statement ::= upc_wait ;
//
- case 329: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false); break;
+ case 337: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false); break;
}
//
- // Rule 330: synchronization_statement ::= upc_barrier expression ;
+ // Rule 338: synchronization_statement ::= upc_barrier expression ;
//
- case 330: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true); break;
+ case 338: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true); break;
}
//
- // Rule 331: synchronization_statement ::= upc_barrier ;
+ // Rule 339: synchronization_statement ::= upc_barrier ;
//
- case 331: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false); break;
+ case 339: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false); break;
}
//
- // Rule 332: synchronization_statement ::= upc_fence ;
+ // Rule 340: synchronization_statement ::= upc_fence ;
//
- case 332: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false); break;
+ case 340: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false); break;
}
//
- // Rule 333: iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement
+ // Rule 341: iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement
//
- case 333: { action. consumeStatementUPCForallLoop(true, true, true, true); break;
+ case 341: { action. consumeStatementUPCForallLoop(true, true, true, true); break;
}
//
- // Rule 334: iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement
+ // Rule 342: iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement
//
- case 334: { action. consumeStatementUPCForallLoop(true, true, true, false); break;
+ case 342: { action. consumeStatementUPCForallLoop(true, true, true, false); break;
}
//
- // Rule 335: iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement
+ // Rule 343: iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement
//
- case 335: { action. consumeStatementUPCForallLoop(true, true, false, true); break;
+ case 343: { action. consumeStatementUPCForallLoop(true, true, false, true); break;
}
//
- // Rule 336: iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement
+ // Rule 344: iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement
//
- case 336: { action. consumeStatementUPCForallLoop(true, true, false, false); break;
+ case 344: { action. consumeStatementUPCForallLoop(true, true, false, false); break;
}
//
- // Rule 337: iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement
+ // Rule 345: iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement
//
- case 337: { action. consumeStatementUPCForallLoop(true, false, true, true); break;
+ case 345: { action. consumeStatementUPCForallLoop(true, false, true, true); break;
}
//
- // Rule 338: iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement
+ // Rule 346: iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement
//
- case 338: { action. consumeStatementUPCForallLoop(true, false, true, false); break;
+ case 346: { action. consumeStatementUPCForallLoop(true, false, true, false); break;
}
//
- // Rule 339: iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement
+ // Rule 347: iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement
//
- case 339: { action. consumeStatementUPCForallLoop(true, false, false, true); break;
+ case 347: { action. consumeStatementUPCForallLoop(true, false, false, true); break;
}
//
- // Rule 340: iteration_statement ::= upc_forall ( expression ; ; ; ) statement
+ // Rule 348: iteration_statement ::= upc_forall ( expression ; ; ; ) statement
//
- case 340: { action. consumeStatementUPCForallLoop(true, false, false, false); break;
+ case 348: { action. consumeStatementUPCForallLoop(true, false, false, false); break;
}
//
- // Rule 341: iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement
+ // Rule 349: iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement
//
- case 341: { action. consumeStatementUPCForallLoop(false, true, true, true); break;
+ case 349: { action. consumeStatementUPCForallLoop(false, true, true, true); break;
}
//
- // Rule 342: iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement
+ // Rule 350: iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement
//
- case 342: { action. consumeStatementUPCForallLoop(false, true, true, false); break;
+ case 350: { action. consumeStatementUPCForallLoop(false, true, true, false); break;
}
//
- // Rule 343: iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement
+ // Rule 351: iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement
//
- case 343: { action. consumeStatementUPCForallLoop(false, true, false, true); break;
+ case 351: { action. consumeStatementUPCForallLoop(false, true, false, true); break;
}
//
- // Rule 344: iteration_statement ::= upc_forall ( ; expression ; ; ) statement
+ // Rule 352: iteration_statement ::= upc_forall ( ; expression ; ; ) statement
//
- case 344: { action. consumeStatementUPCForallLoop(false, true, false, false); break;
+ case 352: { action. consumeStatementUPCForallLoop(false, true, false, false); break;
}
//
- // Rule 345: iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement
+ // Rule 353: iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement
//
- case 345: { action. consumeStatementUPCForallLoop(false, false, true, true); break;
+ case 353: { action. consumeStatementUPCForallLoop(false, false, true, true); break;
}
//
- // Rule 346: iteration_statement ::= upc_forall ( ; ; expression ; ) statement
+ // Rule 354: iteration_statement ::= upc_forall ( ; ; expression ; ) statement
//
- case 346: { action. consumeStatementUPCForallLoop(false, false, true, false); break;
+ case 354: { action. consumeStatementUPCForallLoop(false, false, true, false); break;
}
//
- // Rule 347: iteration_statement ::= upc_forall ( ; ; ; affinity ) statement
+ // Rule 355: iteration_statement ::= upc_forall ( ; ; ; affinity ) statement
//
- case 347: { action. consumeStatementUPCForallLoop(false, false, false, true); break;
+ case 355: { action. consumeStatementUPCForallLoop(false, false, false, true); break;
}
//
- // Rule 348: iteration_statement ::= upc_forall ( ; ; ; ) statement
+ // Rule 356: iteration_statement ::= upc_forall ( ; ; ; ) statement
//
- case 348: { action. consumeStatementUPCForallLoop(false, false, false, false); break;
+ case 356: { action. consumeStatementUPCForallLoop(false, false, false, false); break;
}
//
- // Rule 349: iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement
+ // Rule 357: iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement
//
- case 349: { action. consumeStatementUPCForallLoop(true, true, true, true); break;
+ case 357: { action. consumeStatementUPCForallLoop(true, true, true, true); break;
}
//
- // Rule 350: iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement
+ // Rule 358: iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement
//
- case 350: { action. consumeStatementUPCForallLoop(true, true, true, false); break;
+ case 358: { action. consumeStatementUPCForallLoop(true, true, true, false); break;
}
//
- // Rule 351: iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement
+ // Rule 359: iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement
//
- case 351: { action. consumeStatementUPCForallLoop(true, true, false, true); break;
+ case 359: { action. consumeStatementUPCForallLoop(true, true, false, true); break;
}
//
- // Rule 352: iteration_statement ::= upc_forall ( declaration expression ; ; ) statement
+ // Rule 360: iteration_statement ::= upc_forall ( declaration expression ; ; ) statement
//
- case 352: { action. consumeStatementUPCForallLoop(true, true, false, false); break;
+ case 360: { action. consumeStatementUPCForallLoop(true, true, false, false); break;
}
//
- // Rule 353: iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement
+ // Rule 361: iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement
//
- case 353: { action. consumeStatementUPCForallLoop(true, false, true, true); break;
+ case 361: { action. consumeStatementUPCForallLoop(true, false, true, true); break;
}
//
- // Rule 354: iteration_statement ::= upc_forall ( declaration ; expression ; ) statement
+ // Rule 362: iteration_statement ::= upc_forall ( declaration ; expression ; ) statement
//
- case 354: { action. consumeStatementUPCForallLoop(true, false, true, false); break;
+ case 362: { action. consumeStatementUPCForallLoop(true, false, true, false); break;
}
//
- // Rule 355: iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement
+ // Rule 363: iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement
//
- case 355: { action. consumeStatementUPCForallLoop(true, false, false, true); break;
+ case 363: { action. consumeStatementUPCForallLoop(true, false, false, true); break;
}
//
- // Rule 356: iteration_statement ::= upc_forall ( declaration ; ; ) statement
+ // Rule 364: iteration_statement ::= upc_forall ( declaration ; ; ) statement
//
- case 356: { action. consumeStatementUPCForallLoop(true, false, false, false); break;
+ case 364: { action. consumeStatementUPCForallLoop(true, false, false, false); break;
}
//
- // Rule 358: affinity ::= continue
+ // Rule 366: affinity ::= continue
//
- case 358: { action. consumeToken(); break;
+ case 366: { action. consumeToken(); break;
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParserprs.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParserprs.java
index 2bcb9843a8..9415bcb29f 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParserprs.java
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParserprs.java
@@ -1,5 +1,5 @@
/*******************************************************************************
-* Copyright (c) 2006, 2008 IBM Corporation and others.
+* Copyright (c) 2006, 2009 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -35,342 +35,330 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym
public interface BaseCheck {
public final static short baseCheck[] = {0,
- 0,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,3,1,1,1,4,
- 4,3,3,2,2,8,1,0,1,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,3,2,2,4,1,2,1,1,1,
- 2,5,7,5,1,0,7,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,
+ 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,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,1,
- 1,5,5,6,6,2,2,2,1,0,
- 1,2,4,2,1,1,1,3,1,1,
- 2,3,6,7,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,1,2,3,4,
- 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,5,1,
- 1,3,3,4,1,1,2,3,2,3,
- 2,1,0,1,2,1,1,1,1,1,
- 2,4,3,6,2,4,1,1,1,2,
- 4,2,4,2,4,1,1,2,1,1,
- 1,3,3,2,1,3,2,3,2,3,
- 2,2,11,10,10,9,10,9,9,8,
- 10,9,9,8,9,8,8,7,10,9,
- 9,8,9,8,8,7,1,1,-107,-83,
- 0,-2,0,0,0,0,0,0,-19,0,
- 0,-22,0,0,0,0,-20,0,-4,0,
- 0,-215,0,-39,-276,0,0,0,0,0,
- 0,-74,0,0,0,0,0,-24,-8,0,
- 0,0,-26,-6,0,0,0,0,0,-29,
- 0,0,0,0,0,0,-25,0,-3,0,
- -40,0,0,0,0,-11,0,0,0,0,
- 0,-41,0,0,0,0,-32,0,0,-43,
- 0,0,0,0,0,0,0,0,0,-162,
- 0,-17,0,0,0,0,0,-124,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-88,0,0,0,0,0,
- -59,0,0,-87,0,0,0,-60,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-241,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- -61,0,0,0,-51,0,-12,-141,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,-30,-89,0,0,0,-288,0,-27,0,
- 0,0,0,0,0,0,0,0,0,-254,
- -33,0,0,0,-62,0,-98,0,0,0,
- 0,-102,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-14,0,0,0,0,
- 0,0,0,0,-106,0,0,0,0,0,
- -296,0,-110,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-42,-1,0,0,0,0,
- 0,0,0,-146,0,-28,0,0,-214,0,
- -80,0,-31,0,0,0,0,0,0,0,
- -143,0,0,0,-38,0,0,0,0,0,
- -9,-37,0,0,0,0,0,0,0,0,
- 0,0,0,-117,0,0,0,-119,0,0,
- 0,0,0,0,-152,0,0,0,0,-36,
- 0,0,-142,0,0,0,0,0,0,0,
- -79,0,0,0,0,0,-5,0,0,-34,
- 0,-63,0,0,0,0,0,-150,0,0,
- 0,0,0,-64,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-23,0,
- -65,0,0,0,0,0,0,0,-45,0,
- 0,-70,0,0,0,0,0,0,-66,0,
- 0,-173,0,0,0,0,0,0,0,0,
- 0,-72,0,-35,-84,0,-67,0,0,0,
- 0,0,0,0,0,0,0,0,-68,0,
- 0,0,-52,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,-75,0,-154,0,0,0,0,0,
- 0,0,0,0,0,0,0,-76,0,0,
- 0,0,-47,0,-147,-220,0,0,0,0,
- 0,0,0,0,0,0,0,-168,0,-144,
- 0,0,0,0,0,0,0,-69,0,0,
- -71,0,0,0,0,-55,0,-82,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- -225,0,0,-189,0,0,0,0,0,0,
- -95,0,0,0,0,0,0,0,-96,0,
- 0,-92,-219,0,0,0,0,0,0,0,
- 0,0,0,-94,0,0,-315,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- -108,0,0,0,0,0,-240,0,0,0,
- 0,0,-257,0,0,0,0,0,0,-104,
- 0,-97,0,0,0,0,0,0,0,-118,
- 0,0,-163,0,0,0,0,-53,0,0,
- -187,0,0,0,0,0,0,0,0,0,
- 0,0,-218,0,0,-109,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- -221,0,-90,0,0,0,0,-93,-159,0,
- 0,0,0,0,0,-227,0,-99,0,0,
- 0,0,0,0,0,-239,0,0,0,-155,
- 0,0,0,-190,0,0,0,0,0,0,
- -101,-100,0,0,0,0,0,0,-228,0,
- -103,0,0,0,0,0,0,0,-300,0,
- 0,-253,0,0,0,0,-158,0,0,-197,
- 0,0,0,0,0,0,0,0,0,0,
- 0,-229,0,0,0,0,0,0,0,0,
- 0,-105,0,0,-298,-148,0,0,0,-167,
- 0,0,-149,-245,0,0,0,0,0,0,
- 0,0,0,0,-230,0,-157,0,0,0,
- 0,0,0,0,-191,0,0,-161,-164,0,
- 0,0,-272,0,0,-224,0,0,0,0,
- 0,0,0,0,0,0,0,-231,0,-165,
- -192,0,0,0,0,0,0,-166,0,0,
- 0,-176,0,0,0,-169,0,0,0,-120,
- 0,0,0,0,0,0,0,0,0,0,
- -232,0,-180,0,0,0,0,0,0,0,
- -193,0,0,-183,-184,0,0,0,-54,0,
- 0,-185,0,0,0,0,0,0,0,0,
- 0,0,0,-233,0,-198,-194,0,0,0,
- 0,0,0,-199,0,0,0,-200,0,0,
- 0,-56,0,-81,0,0,0,0,0,0,
- 0,0,0,0,0,0,-234,0,-201,-195,
- 0,0,0,0,0,0,-202,0,0,0,
- -203,0,0,0,-204,0,0,-271,-317,-73,
- 0,-170,-196,0,0,0,0,0,0,-235,
- 0,0,0,0,0,0,0,0,0,-205,
- 0,0,-206,0,0,0,0,-226,0,-171,
- -207,0,0,0,0,-208,0,0,0,0,
- 0,0,-236,0,0,-216,0,0,0,0,
- 0,0,-217,0,0,-209,-222,0,0,0,
- -210,0,0,0,0,0,0,-172,0,0,
- 0,0,0,0,0,-237,0,0,0,0,
- 0,0,0,0,0,-211,0,0,0,-212,
- 0,0,0,-111,0,0,-213,0,0,0,
- 0,0,0,0,0,0,0,0,-252,0,
- -248,-247,0,0,0,0,0,0,-249,0,
- 0,0,-258,0,0,0,-121,0,0,-275,
- 0,0,0,0,0,0,0,0,0,0,
- 0,-265,0,-259,-250,0,0,0,0,0,
- 0,-255,0,0,0,-260,0,0,0,-122,
- 0,0,-261,0,0,0,0,0,0,0,
- 0,0,0,0,-269,-244,-262,0,0,0,
- 0,0,0,0,-266,0,0,-268,-297,0,
- 0,0,-312,0,-290,0,-283,0,0,0,
- -267,0,0,0,0,0,0,-270,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-123,0,0,-293,0,
- 0,0,0,0,0,0,0,0,0,0,
- -292,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-246,0,
- 0,0,-140,0,0,0,0,0,0,0,
- 0,0,0,-299,-264,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,-278,0,0,-280,0,0,0,-282,-289,
- 0,0,0,0,0,0,-318,0,0,0,
- 0,0,0,0,0,0,0,0,0,-294,
- -313,0,0,0,0,0,-44,0,0,0,
- 0,0,-274,0,0,0,0,0,0,0,
- 0,0,0,-302,0,0,0,0,0,0,
- 0,0,0,0,-91,0,0,0,0,0,
- -305,0,0,0,-86,0,0,0,0,-308,
- -78,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- -145,0,-179,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,
- -295,-316,0,0,-311,0,0,0,-251,0,
- 0,0,-48,-314,0,0,0,0,0,0,
- 0,0,0,0,-138,0,0,0,0,0,
- 0,0,0,0,0,0,-320,-325,0,0,
- 0,0,-323,0,0,0,0,0,0,0,
- -332,0,-160,0,-328,0,0,-263,0,-336,
- 0,0,0,0,0,0,0,0,0,0,
- -337,0,0,0,0,-330,0,0,-18,0,
- -334,0,0,0,0,0,0,0,0,0,
- -256,0,0,0,0,-238,0,-340,0,0,
- 0,0,0,0,-354,0,0,0,0,0,
- 0,-342,-346,0,0,0,0,-156,0,0,
- 0,0,0,0,0,0,0,0,-348,-351,
- -356,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-16,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,-139,0,0,-360,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-21,0,-364,0,
- 0,0,0,-301,0,-367,0,0,0,0,
- 0,0,0,0,-369,0,-377,0,-188,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-10,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-136,
- -153,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-137,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-181,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-284,0,0,0,-49,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,-286,0,0,0,-50,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- -287,0,0,0,-57,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-319,0,
- 0,0,-58,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-324,0,0,0,
- 0,-242,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-335,0,0,0,0,-243,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,-338,0,0,0,0,-277,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- -339,0,0,0,0,-279,0,0,0,0,
+ 1,1,1,1,1,1,1,1,1,6,
+ 8,0,0,1,1,3,3,3,0,1,
+ 0,1,2,4,2,1,1,1,3,1,
+ 1,2,3,7,8,0,1,0,1,3,
+ 1,3,1,1,1,1,1,1,3,1,
+ 1,1,1,1,3,1,2,2,1,5,
+ 3,1,3,5,1,3,1,3,2,4,
+ 3,5,4,6,6,3,5,1,3,4,
+ 5,6,0,1,2,1,3,1,1,3,
+ 2,1,1,1,1,2,1,2,3,1,
+ 1,1,3,1,2,2,2,3,4,5,
+ 1,1,7,3,0,0,1,1,3,3,
+ 4,1,1,2,3,2,3,2,1,0,
+ 1,2,1,1,1,1,1,2,1,3,
+ 6,4,2,4,1,1,1,2,4,2,
+ 4,2,4,1,1,2,1,1,1,3,
+ 3,2,1,3,2,3,2,3,2,2,
+ 11,10,10,9,10,9,9,8,10,9,
+ 9,8,9,8,8,7,10,9,9,8,
+ 9,8,8,7,1,1,-118,-275,0,-16,
+ -304,0,0,0,0,0,0,-19,0,0,
+ -57,0,0,0,-2,0,0,0,0,0,
+ 0,-21,0,0,0,0,0,0,0,-7,
+ 0,0,0,0,0,-43,0,0,0,0,
+ 0,-23,0,0,0,0,0,0,-22,0,
+ 0,0,0,0,-11,-13,-81,-4,0,0,
+ -279,0,0,0,0,0,0,-34,0,0,
+ 0,0,0,0,-28,0,-45,0,-9,0,
+ 0,0,0,0,0,-110,0,0,0,0,
+ 0,0,0,0,0,0,0,-30,0,0,
+ 0,0,-29,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-31,0,0,0,
+ -26,0,0,0,0,0,0,0,-39,-24,
+ 0,0,0,0,0,0,0,0,-40,0,
+ 0,0,0,0,0,0,0,-243,0,0,
+ -65,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-66,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ -27,0,0,0,0,-51,-300,0,0,-32,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,-53,0,0,-67,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-25,
+ 0,-134,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-147,0,0,0,0,
+ 0,0,0,0,0,0,-68,0,0,-61,
+ 0,0,0,0,0,0,0,0,0,0,
+ -69,0,0,0,0,-129,0,0,-48,0,
+ 0,-47,0,0,0,0,0,0,0,-70,
+ 0,0,0,0,-35,0,0,-85,0,0,
+ -3,0,0,0,0,0,0,0,0,0,
+ 0,-36,0,0,-259,0,-20,0,-71,-14,
+ -192,0,0,0,0,0,-86,0,0,0,
+ -320,0,0,0,0,0,0,-41,0,0,
+ 0,0,0,0,0,0,-185,0,0,0,
+ 0,0,0,0,0,-72,0,0,0,0,
+ 0,0,0,0,0,-99,0,0,0,-237,
+ 0,0,0,0,0,0,0,-77,0,0,
+ 0,0,0,0,0,0,-321,0,0,-79,
+ 0,0,0,0,0,0,0,0,0,0,
+ -119,0,0,0,-42,-98,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-88,
+ 0,0,-161,0,0,0,0,0,0,0,
+ 0,-37,0,0,-227,0,0,0,0,0,
+ -46,0,0,-73,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-100,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-33,-74,0,0,0,
+ 0,0,0,0,0,0,-75,0,0,-91,
+ 0,0,0,-78,0,0,0,0,0,0,
+ -76,0,0,0,0,0,0,0,-114,0,
+ -87,0,0,-80,0,0,0,0,0,0,
+ 0,-90,0,0,-241,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-162,0,0,-93,0,0,0,
+ 0,0,0,0,-198,0,0,0,0,-54,
+ 0,0,-154,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-94,0,-180,-271,
+ 0,0,0,0,0,0,0,0,0,-104,
+ 0,0,0,0,0,0,-5,0,-127,0,
+ 0,-128,0,0,0,0,0,0,0,0,
+ 0,-116,0,0,0,0,0,0,0,0,
+ 0,0,-96,0,0,-58,0,0,0,0,
+ 0,0,0,0,0,0,-176,0,0,0,
+ 0,0,0,0,-97,-130,0,0,-164,0,
+ 0,-84,0,0,0,0,0,0,0,0,
+ 0,0,-38,0,0,0,-105,0,-106,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,-165,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-113,0,-302,
+ 0,0,0,0,0,0,-120,0,0,0,
+ 0,0,0,0,-166,0,0,0,-107,0,
+ 0,0,0,0,0,-108,0,0,-59,0,
+ 0,0,-109,0,0,0,0,0,0,-200,
+ 0,0,0,0,0,0,0,-167,0,0,
+ -152,0,0,0,0,0,0,0,-111,0,
+ 0,-60,0,0,0,-201,0,0,0,0,
+ 0,0,-112,0,0,0,0,0,0,0,
+ -168,0,0,-155,0,0,0,0,0,0,
+ 0,0,0,0,-62,0,0,0,-115,0,
+ 0,0,0,0,0,-156,0,0,0,0,
+ 0,0,0,-169,0,0,0,0,0,0,
+ 0,0,0,0,-117,0,0,-95,0,0,
+ 0,-150,0,0,0,0,0,0,-175,0,
+ 0,0,0,0,0,0,-170,0,0,0,
+ -158,0,0,0,0,0,0,-178,0,0,
+ -131,0,0,0,-188,0,0,0,0,0,
+ 0,-193,0,0,0,0,0,0,0,-171,
+ 0,0,-177,0,0,0,0,0,0,0,
+ -195,0,0,-132,0,0,0,-196,0,0,
+ 0,0,0,0,-202,0,0,0,0,0,
+ 0,0,-172,0,0,0,-209,0,0,0,
+ 0,0,0,-210,0,0,-133,0,0,0,
+ -208,0,0,0,0,0,0,-203,0,0,
+ 0,0,0,0,0,-173,0,0,0,-211,
+ 0,0,0,0,0,0,-212,0,0,-55,
+ 0,0,0,-240,0,0,0,0,0,0,
+ -204,0,0,0,0,0,0,0,-174,0,
+ 0,0,-213,0,0,0,0,0,0,-214,
+ 0,0,-56,0,0,0,-276,0,0,0,
+ 0,0,0,-205,0,0,0,0,0,0,
+ 0,-238,0,0,0,-215,0,0,0,0,
+ 0,0,-216,0,0,-63,0,0,0,-277,
+ 0,0,0,0,0,0,-206,0,0,0,
+ 0,0,0,0,-239,0,0,0,-217,0,
+ 0,0,0,0,0,-218,0,0,-64,0,
+ 0,0,-163,0,0,0,0,0,0,-207,
+ 0,0,0,0,0,0,0,-255,0,0,
+ 0,-219,0,0,0,0,0,0,-179,0,
+ 0,0,0,-220,0,-230,-89,0,0,0,
+ 0,-225,0,0,0,0,0,0,0,0,
+ -265,0,0,-221,-226,0,0,0,0,0,
+ 0,-181,0,0,0,0,-323,0,0,-260,
+ -273,0,0,0,0,-222,0,0,0,0,
+ 0,0,0,-270,0,0,-261,-262,0,0,
+ 0,0,0,0,-182,0,0,0,0,-322,
+ 0,-1,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-295,0,
+ 0,-263,0,0,0,0,0,0,0,-183,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,-268,0,0,0,0,0,0,0,
+ 0,-184,0,-303,0,0,-233,0,0,0,
+ 0,0,0,0,-246,0,0,0,0,-223,
+ 0,0,-101,0,0,0,0,-224,0,0,
+ 0,0,0,0,0,0,0,-153,-319,0,
+ 0,-231,-232,0,0,0,0,0,0,-248,
+ 0,0,0,0,-278,0,-121,0,0,0,
+ 0,-249,0,0,0,0,0,0,0,0,
+ 0,-242,0,-324,0,0,-251,0,0,0,
+ 0,0,0,0,-250,0,0,0,0,-269,
+ 0,-50,0,0,0,0,-296,-301,0,0,
+ 0,0,0,0,0,0,-316,0,0,0,
+ 0,0,0,0,0,0,0,-10,0,0,
+ 0,0,0,0,0,-191,0,0,0,0,
+ 0,-281,-283,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,-293,0,0,0,0,-44,0,0,-253,
+ 0,0,0,0,0,0,0,-229,-18,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-49,0,
+ 0,-252,0,-194,0,0,0,0,0,0,
+ 0,-236,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-157,
+ 0,0,0,0,0,0,-149,0,0,-342,
+ 0,0,0,0,0,0,0,-234,0,0,
+ 0,0,0,0,-148,0,-235,0,0,0,
+ 0,-264,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-258,
+ 0,0,0,0,0,0,-102,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-257,0,-160,
+ 0,0,0,-291,0,0,-6,0,0,0,
+ 0,0,0,0,0,-297,-146,0,0,0,
+ -298,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-315,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-285,
+ -299,-144,0,0,0,0,0,0,0,0,
+ 0,0,-294,0,0,0,0,0,0,0,
+ -103,0,-306,0,0,0,-309,0,0,0,
+ -312,0,0,0,0,0,0,-254,0,0,
+ 0,0,-314,0,0,0,0,0,-329,0,
+ 0,0,-317,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-287,0,0,0,0,
+ -334,-326,-272,0,0,-289,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,-290,0,0,0,0,0,0,0,0,
+ 0,-325,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-330,0,0,
+ 0,0,-336,-331,0,0,0,-341,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-343,0,0,0,0,-340,-338,
+ 0,0,0,-344,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-346,
+ 0,0,0,0,-359,-345,0,0,0,-349,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-350,0,0,0,0,
+ 0,-347,0,0,0,-352,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,-355,0,0,0,0,0,-351,0,0,
+ 0,-360,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-362,0,0,
+ 0,0,0,-353,0,0,0,-363,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-364,0,0,0,0,0,-356,
+ 0,0,0,-366,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-367,
+ 0,0,0,0,0,-361,0,0,0,-368,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-341,0,
- 0,0,0,-281,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-344,0,0,0,
- 0,-303,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,-306,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,-347,0,0,0,0,-307,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- -350,0,0,0,0,-309,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-355,0,
- 0,0,0,-331,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-357,0,0,0,
- 0,-333,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-358,0,0,0,0,-175,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,-359,0,0,0,0,-177,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- -361,0,0,0,0,-178,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-362,0,
- 0,0,0,-285,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-363,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-365,0,0,0,0,0,
+ 0,0,0,0,0,-370,0,0,0,0,
+ 0,-365,0,0,0,-371,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-366,0,0,0,0,0,0,0,
+ 0,-373,0,0,0,0,0,-369,0,0,
+ 0,-376,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-377,0,0,
+ 0,0,0,-372,0,0,0,-378,0,0,
0,0,0,0,0,0,0,0,0,0,
- -368,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-371,0,
+ 0,0,0,-379,0,0,0,0,0,-374,
+ 0,0,0,-380,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-381,
+ 0,0,0,0,0,-382,0,0,0,-383,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-372,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-145,0,0,-159,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-373,0,0,0,0,0,
+ 0,0,0,-267,0,0,0,-138,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-374,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-247,
+ 0,-318,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-8,0,0,-139,-12,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -375,0,0,0,0,0,0,-77,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-376,0,
- 0,0,0,0,0,-151,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-378,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,-134,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-291,0,
- 0,0,0,0,0,0,0,-135,0,0,
+ 0,-140,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-141,0,
0,0,0,0,0,0,0,0,0,0,
- -7,-128,0,0,0,0,0,0,0,0,
+ 0,0,-142,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-143,0,0,0,
+ -15,0,0,0,0,0,0,-17,0,0,
+ -135,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-197,-82,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-199,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-125,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-126,0,0,0,
+ 0,0,0,0,0,0,-136,0,0,-274,
+ 0,0,0,0,0,0,0,-137,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-129,0,0,0,0,0,0,
- 0,0,0,0,0,0,-130,0,0,0,
- 0,0,0,0,0,0,0,0,0,-131,
- 0,0,0,0,0,0,0,0,0,-13,
- 0,0,-132,-15,0,0,0,0,0,0,
- 0,0,0,0,0,-133,0,0,0,0,
- 0,0,0,0,0,-85,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-92,0,
+ -52,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-122,0,0,0,0,
+ -123,0,-124,0,0,0,0,-151,0,0,
+ 0,0,0,0,0,0,0,0,-125,0,
+ 0,0,0,-126,0,0,-256,0,0,0,
+ -266,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-83,0,-292,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-46,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-186,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-305,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-127,0,0,0,0,
- 0,0,0,0,0,0,0,0,-112,0,
- 0,0,-113,0,0,0,-114,0,0,0,
- 0,0,0,0,0,0,0,0,-304,0,
- 0,0,-115,0,0,0,-116,0,0,0,
- 0,0,0,0,0,0,0,-273,0,0,
- 0,0,0,0,0,0,0,0,0,-174,
- 0,0,0,-223,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-186,0,
0,0,0,0,0,0,0,0,0,0,
+ -308,0,-228,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ -327,0,0,0,0,0,0,0,-328,0,
+ 0,0,0,0,0,0,-332,0,0,0,
+ 0,0,0,0,0,-333,0,0,0,0,
+ 0,-335,0,0,0,0,0,-348,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-321,0,0,0,0,0,0,0,-322,
- 0,0,0,0,0,0,0,-326,0,0,
- 0,0,0,0,0,-327,0,0,0,0,
- 0,0,0,0,0,0,0,-329,0,0,
- 0,0,0,0,0,0,0,0,0,-343,
- 0,0,0,0,0,0,0,-349,0,0,
- 0,0,0,0,0,-352,0,0,0,0,
- 0,0,0,-353,0,0,0,0,0,0,
- 0,0,0,0,0,-370,0,0,0,0,
+ 0,0,0,-354,0,0,0,0,0,0,
+ 0,0,-357,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-358,0,
+ 0,0,0,0,-375,0,0,0,0,0,
+ -244,0,0,0,0,0,0,0,0,-245,
+ 0,0,0,0,0,0,0,-280,0,0,
+ 0,0,0,0,0,-282,0,0,0,0,
+ 0,0,0,-284,0,0,0,0,0,0,
+ -286,0,-307,0,0,0,0,0,-310,0,
+ 0,0,0,0,0,0,0,-311,0,0,
+ 0,0,0,-313,0,-337,0,0,0,0,
+ 0,0,-339,0,-187,0,0,0,0,0,
+ -189,0,0,0,0,0,0,0,0,-190,
+ 0,-288,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0
+ 0,0
};
};
public final static short baseCheck[] = BaseCheck.baseCheck;
@@ -380,344 +368,332 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym
public interface BaseAction {
public final static char baseAction[] = {
- 106,1,39,39,10,10,43,43,2,2,
- 4,4,4,4,5,5,5,6,6,7,
- 7,7,7,7,7,7,7,72,72,92,
- 92,8,8,8,8,8,8,8,8,8,
- 8,8,9,9,11,11,11,11,12,12,
- 12,15,15,15,16,16,16,16,16,17,
- 17,17,19,19,28,28,29,29,30,30,
- 31,31,32,32,34,34,34,34,34,34,
- 34,34,34,34,34,34,20,14,3,107,
- 107,94,94,57,21,21,21,21,21,21,
- 21,22,22,22,18,18,95,95,73,73,
- 23,23,24,24,24,65,65,25,25,25,
- 25,26,26,26,26,26,50,50,33,33,
- 33,33,33,52,52,52,87,87,82,82,
- 82,82,83,83,83,84,84,84,85,85,
- 85,86,86,86,96,96,88,88,89,53,
- 55,55,55,55,55,66,68,68,68,68,
- 68,68,68,68,68,68,68,68,77,77,
- 13,13,74,74,74,74,75,75,75,78,
- 78,79,79,69,69,69,45,108,108,97,
- 98,98,98,76,76,99,99,100,100,90,
- 90,35,36,36,36,54,56,56,46,46,
- 46,46,40,40,41,47,47,48,42,42,
- 101,101,49,110,110,109,109,51,51,51,
- 51,51,51,51,51,51,102,58,58,58,
- 58,80,80,70,70,70,71,71,60,60,
- 111,111,59,59,81,81,81,61,61,61,
- 62,63,63,63,64,64,64,64,67,67,
- 93,93,93,93,91,112,113,113,114,114,
- 115,115,106,106,116,116,103,103,103,103,
- 117,117,104,104,104,105,105,4,4,4,
- 8,8,8,8,8,8,35,35,37,37,
- 38,38,118,118,118,21,27,27,27,27,
- 27,27,27,25,25,25,25,25,25,25,
- 25,25,25,25,25,25,25,25,25,25,
- 25,25,25,25,25,25,25,44,44,359,
- 399,561,1814,14,19,15,481,1117,44,363,
- 488,565,2117,1597,521,724,712,2270,759,1822,
- 1887,126,1977,561,1950,2053,127,741,789,777,
- 858,74,2129,91,134,211,316,317,2039,1840,
- 710,222,227,2271,1815,1096,216,774,219,221,
- 2435,136,133,135,159,305,158,355,861,2265,
- 452,1963,710,222,227,138,384,165,216,774,
- 219,221,2442,142,145,148,151,2055,1455,398,
- 1819,2921,661,1926,3030,3034,1848,223,155,421,
- 2598,651,1967,1194,134,211,316,317,2771,377,
- 222,230,14,19,15,481,42,44,304,488,
- 1216,136,133,135,159,1822,848,331,87,197,
- 199,1825,207,595,2253,138,332,165,1966,1100,
- 1545,835,1103,142,145,148,151,1459,1059,286,
- 301,2921,661,1926,3030,3034,1848,2646,385,303,
- 542,14,19,15,481,1117,44,318,488,565,
- 404,1885,521,724,712,2771,759,388,2269,14,
- 19,15,481,42,39,741,789,777,858,74,
- 403,278,1955,1822,848,329,87,2646,385,355,
- 1270,14,19,15,481,1117,44,1166,488,565,
- 2114,1967,521,724,712,1980,759,430,848,110,
- 86,183,2117,1673,280,741,789,777,858,74,
- 1092,278,377,222,231,95,392,1041,1162,94,
- 96,97,98,99,325,1822,2855,126,281,410,
- 1400,2457,385,1841,971,14,19,15,481,1117,
- 44,271,488,565,280,104,521,724,712,1641,
- 759,266,1034,884,269,1967,1806,419,298,741,
- 789,777,858,74,2269,278,355,392,281,2269,
- 1591,2354,1818,2303,2798,14,19,15,481,1117,
- 44,2336,488,565,271,1815,521,724,712,379,
- 759,1982,355,868,264,1034,884,269,282,741,
- 789,777,858,74,2196,1030,297,182,2185,848,
- 237,89,185,3056,263,2926,134,211,316,317,
- 2111,1234,283,1822,382,194,134,211,316,317,
- 229,2111,1941,136,133,135,159,1877,419,298,
- 2060,229,2112,144,133,135,159,138,2129,165,
- 252,211,316,317,1813,142,145,148,151,294,
- 296,1096,362,2921,661,1926,3030,3034,1848,2522,
- 379,2513,707,14,19,15,481,42,44,2183,
- 488,565,355,1533,521,724,712,297,759,2122,
- 302,225,1822,359,2180,87,23,741,789,777,
- 858,93,355,1671,2445,2572,1446,2094,324,14,
- 19,15,481,1117,44,1273,488,565,322,1970,
- 521,724,712,2771,759,595,749,14,19,15,
- 481,42,38,741,789,777,858,74,207,278,
- 295,296,2152,355,718,2821,3174,836,1103,14,
- 19,15,481,1117,44,226,488,565,2914,2826,
- 521,724,712,2671,759,68,68,14,19,15,
- 481,314,157,741,789,777,858,74,2771,1136,
- 2164,651,14,19,15,481,1117,44,2110,488,
- 565,1948,651,521,724,712,2547,759,355,651,
- 14,19,15,481,42,35,741,789,777,858,
- 74,2407,91,196,2553,14,19,15,481,1117,
- 44,2447,488,565,196,693,521,724,712,2450,
- 759,595,2253,2191,123,323,693,1323,1471,741,
- 789,777,858,74,2191,1268,1096,2572,300,192,
- 238,14,19,15,481,1117,44,1338,488,565,
- 191,2055,521,724,712,272,759,2775,651,528,
- 850,3189,1194,2111,1465,741,789,777,858,74,
- 2771,278,2451,275,14,19,15,481,42,44,
- 2196,488,565,355,507,521,724,712,2771,759,
- 1753,1967,14,19,15,481,42,37,741,789,
- 777,858,93,2771,284,450,2055,14,19,15,
- 481,42,44,208,488,565,16,257,521,724,
- 712,2932,759,1822,848,327,87,1183,2253,2055,
- 122,741,789,777,858,93,2771,1272,2482,228,
- 14,19,15,481,1117,44,1967,488,565,560,
- 2183,521,724,712,2274,759,252,211,316,317,
- 210,2253,2519,111,741,789,777,858,74,2771,
- 85,2446,22,14,19,15,481,1117,44,2800,
- 488,565,355,547,521,724,712,2547,759,239,
- 2183,14,19,15,481,42,35,741,789,777,
- 858,74,2771,84,1603,273,14,19,15,481,
- 1117,44,2576,488,565,2191,2602,521,724,712,
- 2253,759,330,212,2109,848,244,87,289,20,
- 741,789,777,858,74,2771,83,1812,115,14,
- 19,15,481,1117,44,2055,488,565,1834,1965,
- 521,724,712,2547,759,1393,2183,14,19,15,
- 481,42,35,741,789,777,858,74,2771,82,
- 2599,2055,14,19,15,481,1117,44,73,488,
- 565,1414,1845,521,724,712,2253,759,328,1569,
- 355,848,245,87,287,241,741,789,777,858,
- 74,2771,81,2601,1070,14,19,15,481,1117,
- 44,2055,488,565,2015,2846,521,724,712,2771,
- 759,1426,2858,14,19,15,481,42,36,741,
- 789,777,858,74,2771,80,2195,2055,14,19,
- 15,481,1117,44,2256,488,565,1433,1968,521,
- 724,712,2771,759,2159,651,14,19,15,481,
- 42,34,741,789,777,858,74,2771,79,1976,
- 2055,14,19,15,481,1117,44,1900,488,565,
- 1447,1958,521,724,712,2360,759,1753,2183,2191,
- 2020,651,2253,2055,326,741,789,777,858,74,
- 2771,78,291,21,14,19,15,481,1117,44,
- 2434,488,565,2438,256,521,724,712,2938,759,
- 2253,2440,125,196,1009,1128,2344,240,741,789,
- 777,858,74,2771,77,693,2269,14,19,15,
- 481,1117,44,2269,488,565,2166,2052,521,724,
- 712,2609,759,252,211,316,317,232,2253,191,
- 121,741,789,777,858,74,2771,76,634,850,
- 14,19,15,481,1117,44,2612,488,565,184,
- 2802,521,724,712,2771,759,203,2777,14,19,
- 15,481,42,35,741,789,777,858,74,2771,
- 75,2606,2055,14,19,15,481,1117,44,2055,
- 488,565,2035,2607,521,724,712,2771,759,2063,
- 2852,14,19,15,481,42,47,741,789,777,
- 858,74,2771,92,2610,2055,14,19,15,481,
- 42,44,2055,488,565,2091,2611,521,724,712,
- 2771,759,270,2864,14,19,15,481,42,46,
- 741,789,777,858,93,2771,2253,2866,2264,14,
- 19,15,481,1117,44,2855,488,565,396,2750,
- 521,724,712,2856,759,2159,651,2109,848,201,
- 87,2269,1701,741,789,777,858,74,2771,1499,
- 3380,115,14,19,15,481,1117,44,3380,488,
- 565,3380,3380,521,724,712,2771,759,1753,2183,
- 14,19,15,481,42,45,741,789,777,858,
- 74,2771,1590,3380,204,14,19,15,481,42,
- 44,3380,488,565,3380,256,521,724,712,2253,
- 759,1467,1677,2092,651,1714,1128,3380,242,741,
- 789,777,858,93,2771,2849,3380,193,14,19,
- 15,481,42,44,3380,488,565,3380,3380,521,
- 724,712,2253,759,2292,2253,196,2320,202,2253,
- 2055,2376,741,789,777,858,93,2771,693,3380,
- 276,14,19,15,481,42,44,3380,488,565,
- 2183,2852,521,724,712,3380,759,217,359,110,
- 86,1702,191,1837,3380,741,789,777,858,93,
- 1092,639,850,3380,2253,95,3222,1041,108,94,
- 96,97,98,99,325,1822,848,124,87,243,
- 595,2253,3380,3238,1771,1,359,110,86,1300,
- 2253,1955,2404,710,222,227,3380,109,1092,217,
- 774,219,221,95,271,1041,108,94,96,97,
- 98,99,325,1760,266,1034,884,269,595,3380,
- 106,2236,651,288,359,110,86,2253,306,2432,
- 3380,710,222,227,3380,109,1092,217,774,219,
- 221,95,1635,1041,108,94,96,97,98,99,
- 325,2269,2183,3380,196,2055,595,3380,107,145,
- 359,110,86,2696,2055,1781,693,14,19,15,
- 481,312,1092,109,277,355,848,95,87,1041,
- 108,94,96,97,98,99,325,2055,2055,1360,
- 191,288,595,2253,279,3270,106,2203,2287,1316,
- 850,2055,105,1828,1026,2253,3380,3278,2771,109,
- 2269,2399,14,19,15,481,42,44,1709,488,
- 565,2183,3380,521,724,712,2253,759,3286,399,
- 561,2253,107,117,3380,3380,741,789,777,858,
- 73,2439,651,710,222,227,1816,3158,2055,216,
- 774,219,221,26,271,2253,274,3306,2427,260,
- 290,3380,2055,2055,264,1034,884,269,2920,710,
- 222,227,2455,2511,1753,216,774,219,221,2055,
- 2055,2055,3380,3380,261,437,710,222,227,2539,
- 2595,2679,216,774,219,221,3380,271,2336,560,
- 3380,256,437,251,211,316,317,264,1034,884,
- 269,1570,1128,2771,258,3380,2055,14,19,15,
- 481,42,44,3380,488,565,2707,1422,521,724,
- 712,3380,759,134,211,316,317,399,625,2055,
- 3380,741,789,1367,2857,848,2055,87,1298,2735,
- 137,133,135,159,2119,2055,2763,2055,357,1886,
- 1791,3380,3380,3380,139,2791,165,2847,3380,274,
- 881,3380,143,146,149,152,2054,710,222,432,
- 3380,3380,3380,216,774,219,440,3380,1737,3380,
- 2771,2259,651,158,14,19,15,481,42,44,
- 3380,488,565,3380,3380,521,724,712,3380,759,
- 271,134,211,316,317,3380,3380,3380,741,1331,
- 264,1034,884,269,1753,154,421,3380,147,133,
- 135,159,3380,384,3380,3380,3380,2771,655,3380,
- 1422,14,19,15,481,42,44,662,488,565,
- 3380,256,521,724,712,3380,759,473,848,110,
- 86,1009,1128,3380,3380,1356,3380,3380,3380,3380,
- 1092,3380,3380,3380,3380,95,3380,1041,101,94,
- 96,97,98,99,325,516,848,110,86,2721,
- 3380,3380,3380,14,19,15,481,310,1092,3380,
- 1327,3380,3380,95,3380,1041,118,94,96,97,
- 98,99,325,559,848,110,86,2746,3380,3380,
- 3380,14,19,15,481,40,1092,3380,3380,3380,
- 3380,95,3380,1041,114,94,96,97,98,99,
- 325,602,848,110,86,2796,3380,3380,3380,14,
- 19,15,481,33,1092,3380,3380,3380,3380,95,
- 3380,1041,1463,94,96,97,98,99,325,645,
- 848,110,86,2796,3380,3380,3380,14,19,15,
- 481,32,1092,3380,3380,3380,3380,95,3380,1041,
- 356,94,96,97,98,99,325,688,848,110,
- 86,3380,1822,848,2208,87,3380,3380,3380,3380,
- 1092,3380,3380,3380,3380,95,1562,1041,348,94,
- 96,97,98,99,325,731,848,110,86,3380,
- 1822,848,2236,87,3380,3380,3380,3380,1092,3380,
- 3380,3380,3380,95,1565,1041,113,94,96,97,
- 98,99,325,774,848,110,86,3380,1822,848,
- 1894,87,3380,3380,3380,3380,1092,3380,3380,3380,
- 3380,95,1614,1041,355,94,96,97,98,99,
- 325,817,848,110,86,3380,1822,848,3139,87,
- 3380,3380,3380,3380,1092,3380,3380,3380,3380,95,
- 1631,1041,354,94,96,97,98,99,325,860,
- 848,110,86,3380,1822,848,2348,87,3380,3380,
- 3380,3380,1092,3380,3380,3380,3380,95,1640,1041,
- 352,94,96,97,98,99,325,903,848,110,
- 86,3380,1822,848,3230,87,3380,3380,3380,3380,
- 1092,3380,3380,3380,3380,95,1743,1041,347,94,
- 96,97,98,99,325,946,848,110,86,3380,
- 1822,848,3246,87,3380,3380,3380,3380,1092,3380,
- 3380,3380,3380,95,1755,1041,346,94,96,97,
- 98,99,325,989,848,110,86,3380,1822,848,
- 3258,87,3380,3380,3380,3380,1092,3380,3380,3380,
- 3380,95,1776,1041,344,94,96,97,98,99,
- 325,1032,848,110,86,3380,2109,848,3380,87,
- 3380,3380,3380,3380,1092,3380,3380,3380,3380,95,
- 115,1041,340,94,96,97,98,99,325,1075,
- 848,110,86,3380,1822,848,3294,87,3380,3380,
- 3380,3380,1092,3380,3380,3380,3380,95,1805,1041,
- 120,94,96,97,98,99,325,1118,848,110,
- 86,3380,2109,848,3380,87,3380,3380,3380,3380,
- 1092,1751,3380,3380,3380,95,115,1041,353,94,
- 96,97,98,99,325,1161,848,110,86,3380,
- 355,848,3380,87,3380,3380,3380,3380,1092,3380,
- 3380,3380,3380,95,1382,1041,351,94,96,97,
- 98,99,325,1204,848,110,86,3380,355,848,
- 3380,87,3380,3380,3380,3380,1092,1831,3380,3380,
- 3380,95,1389,1041,350,94,96,97,98,99,
- 325,1247,848,110,86,3380,355,848,3380,87,
- 3380,3380,3380,3380,1092,3380,3380,3380,3380,95,
- 1415,1041,345,94,96,97,98,99,325,1290,
- 848,110,86,3380,355,848,3380,87,3380,3380,
- 3380,3380,1092,3380,3380,3380,3380,95,1705,1041,
- 343,94,96,97,98,99,325,1333,848,110,
- 86,3380,3380,3380,3380,3380,3380,3380,3380,3380,
- 1092,3380,3380,3380,3380,95,3380,1041,342,94,
- 96,97,98,99,325,1376,848,110,86,3380,
- 3380,3380,3380,3380,3380,3380,3380,3380,1092,3380,
- 3380,3380,3380,95,3380,1041,339,94,96,97,
- 98,99,325,1419,848,110,86,3380,3380,3380,
- 3380,3380,3380,3380,3380,3380,1092,3380,3380,3380,
- 3380,95,3380,1041,338,94,96,97,98,99,
- 325,1462,848,110,86,3380,3380,3380,3380,3380,
- 3380,3380,3380,3380,1092,3380,3380,3380,3380,95,
- 3380,1041,336,94,96,97,98,99,325,1505,
- 848,110,86,3380,3380,3380,3380,3380,3380,3380,
- 3380,3380,1092,3380,3380,3380,3380,95,3380,1041,
- 119,94,96,97,98,99,325,1548,848,110,
- 86,3380,3380,3380,3380,3380,3380,3380,3380,3380,
- 1092,3380,3380,3380,3380,95,3380,1041,349,94,
- 96,97,98,99,325,1591,848,110,86,3380,
- 3380,3380,3380,3380,3380,3380,3380,3380,1092,3380,
- 3380,3380,3380,95,3380,1041,341,94,96,97,
- 98,99,325,1634,848,110,86,3380,3380,3380,
- 3380,3380,3380,3380,3380,3380,1092,3380,3380,3380,
- 3380,95,3380,1041,337,94,96,97,98,99,
- 325,1677,848,110,86,3380,3380,3380,2920,3380,
- 3380,3380,3380,3380,1092,3380,3380,3380,3380,95,
- 3380,1041,335,94,96,97,98,99,325,1720,
- 848,110,86,3380,3380,3380,2920,3380,3380,3380,
- 3380,3380,1092,251,211,316,317,95,3380,1041,
- 334,94,96,97,98,99,325,1763,848,110,
- 86,3380,3380,3380,3380,399,561,3380,3380,3380,
- 1092,251,211,316,317,95,3380,1041,333,94,
- 96,97,98,99,325,2771,3380,3380,685,14,
- 19,15,481,42,44,3380,488,565,3380,3380,
- 521,724,712,3380,1306,710,222,227,3380,1977,
- 561,216,774,219,221,3380,1001,3380,2771,3380,
- 3380,158,14,19,15,481,42,44,3380,488,
- 565,2443,2771,521,724,1326,14,19,15,481,
- 42,44,3380,488,565,3380,3380,521,1257,710,
- 222,227,3380,154,421,216,774,219,221,3380,
- 3380,384,3380,3380,3380,1455,134,211,316,317,
- 2771,3380,3380,3380,14,19,15,481,42,44,
- 3380,488,1224,141,133,135,159,2771,3380,3380,
- 3380,14,19,15,481,42,44,140,1228,165,
- 3380,3380,3380,3380,2771,3380,198,199,14,19,
- 15,481,42,44,3380,488,565,2771,3380,521,
- 1261,14,19,15,481,42,44,3380,488,565,
- 2771,3380,1265,3380,14,19,15,481,42,44,
- 2126,488,565,2771,2198,1290,3380,14,19,15,
- 481,42,44,3380,488,565,2771,3380,1293,3380,
- 14,19,15,481,42,44,1955,488,565,3380,
- 3380,1301,3380,3380,3380,134,211,316,317,134,
- 211,316,317,3380,3380,3380,355,359,3380,87,
- 3380,3380,150,133,135,159,153,133,135,159,
- 986,3380,3380,3380,3380,3380,710,222,1150,3380,
- 3380,3380,217,774,219,1129,2771,3380,3380,196,
- 14,19,15,481,42,44,3380,1249,3380,355,
- 359,603,87,355,359,3380,87,355,359,3380,
- 87,3380,3380,986,3380,931,3380,986,3380,2857,
- 848,986,87,355,359,3380,87,355,359,2147,
- 87,3380,196,357,3380,3380,196,986,2439,651,
- 196,986,3380,3380,603,3380,3380,3380,603,3380,
- 2109,359,603,87,2920,3380,196,3380,1125,3380,
- 196,3380,1151,1738,115,3380,1191,3380,603,2621,
- 3380,1753,603,14,19,15,481,42,43,3380,
- 3380,3380,1217,595,3380,3380,1250,3380,3380,251,
- 211,316,317,3380,3380,3380,1603,3380,256,3380,
- 1104,3380,2857,848,3380,87,3380,3380,1570,1128,
- 2857,848,2231,87,3380,1529,357,3380,2857,848,
- 2259,87,3380,3380,357,3380,2857,848,2315,87,
- 3380,3380,357,3380,1298,3380,2343,3380,2857,848,
- 357,87,3380,3380,3380,3380,1798,3380,2371,3380,
- 2857,848,357,87,1812,3380,1445,3380,2857,848,
- 2483,87,1813,3380,357,3380,2857,848,2567,87,
- 1829,3380,357,3380,2857,848,2623,87,3380,3380,
- 357,3380,1830,3380,2651,3380,2857,848,357,87,
- 3380,3380,3380,3380,1866,3380,2819,3380,3380,3380,
- 357,3380,1889,3380,3380,3380,3380,3380,3380,3380,
- 1896,3380,3380,3380,3380,3380,3380,3380,1905,3380,
- 3380,3380,3380,3380,3380,3380,3380,3380,3380,3380,
- 1907,3380,0,319,739,0,179,224,0,3387,
- 1,0,1,3615,0,7,9,0,179,17,
- 0,178,18,0,1,3604,0,112,2175,0
+ 111,1,130,39,39,11,11,49,49,3,
+ 3,2,2,5,5,5,5,6,6,6,
+ 7,8,8,8,8,8,8,8,8,82,
+ 82,94,9,9,9,9,9,9,9,9,
+ 9,9,9,10,10,12,12,12,12,13,
+ 13,13,15,15,15,17,17,17,17,17,
+ 26,26,26,27,27,28,28,29,29,30,
+ 30,31,31,32,32,34,34,34,34,34,
+ 34,34,34,34,34,34,34,18,14,4,
+ 112,112,95,95,60,19,19,19,19,19,
+ 19,19,20,20,20,16,16,96,96,73,
+ 73,21,21,22,22,22,68,68,23,23,
+ 23,23,24,24,24,24,24,51,51,33,
+ 33,33,33,33,54,54,54,88,88,83,
+ 83,83,83,84,84,84,85,85,85,86,
+ 86,86,87,87,87,97,97,89,89,90,
+ 55,57,57,57,57,57,69,70,70,70,
+ 70,70,70,70,70,70,70,70,70,77,
+ 74,74,113,114,79,79,75,75,75,91,
+ 98,98,99,99,92,92,92,58,115,115,
+ 100,101,101,101,76,76,116,102,102,103,
+ 103,93,93,35,36,36,36,56,59,59,
+ 45,45,45,45,41,41,42,46,46,47,
+ 43,43,104,104,48,118,118,117,117,52,
+ 52,52,52,52,52,52,52,52,105,61,
+ 61,61,61,40,80,80,71,71,71,72,
+ 72,63,63,119,119,62,62,81,81,81,
+ 64,64,64,65,66,66,66,67,67,67,
+ 67,78,78,50,50,53,121,120,120,120,
+ 120,106,122,123,123,124,124,125,125,111,
+ 111,126,126,107,107,107,107,127,127,108,
+ 108,108,109,110,110,5,5,5,9,9,
+ 9,9,9,9,35,35,37,37,38,38,
+ 128,128,128,19,25,25,25,25,25,25,
+ 25,23,23,23,23,23,23,23,23,23,
+ 23,23,23,23,23,23,23,23,23,23,
+ 23,23,23,23,23,44,44,362,2858,1258,
+ 2059,2895,17,21,18,521,882,45,72,534,
+ 617,2751,576,20,650,2078,17,21,18,521,
+ 43,40,2045,631,716,679,837,804,847,75,
+ 1922,92,135,213,324,325,2558,2915,874,551,
+ 224,229,1922,219,491,221,223,231,509,2077,
+ 274,137,134,136,160,56,2043,72,2213,378,
+ 179,2883,269,1126,1100,272,139,166,1901,499,
+ 861,143,146,149,152,2137,425,401,765,2151,
+ 2626,1688,2630,2741,2748,1739,433,939,1185,111,
+ 87,1023,1251,135,213,324,325,1144,72,419,
+ 224,232,96,1910,1058,1225,95,97,98,99,
+ 100,333,137,134,136,160,792,2055,551,224,
+ 229,2509,218,491,221,223,294,139,166,1912,
+ 129,1727,143,146,149,152,159,425,509,2181,
+ 310,2626,1688,2630,2741,2748,1739,655,2601,431,
+ 20,2832,312,17,21,18,521,882,45,1759,
+ 534,617,400,576,2108,650,156,445,438,874,
+ 419,224,233,228,631,716,679,837,804,847,
+ 75,2150,281,1668,371,293,2317,2412,431,20,
+ 2318,1662,17,21,18,521,882,45,282,534,
+ 617,937,576,2651,650,20,1903,326,17,21,
+ 18,521,322,631,716,679,837,804,847,75,
+ 2861,281,2751,128,20,330,287,17,21,18,
+ 521,43,45,227,534,1277,2751,282,20,313,
+ 937,17,21,18,521,43,45,2466,534,617,
+ 2503,576,20,650,288,17,21,18,521,43,
+ 36,2135,631,716,1496,289,2850,939,1625,2528,
+ 90,20,2558,2849,17,21,18,521,882,45,
+ 2048,534,617,231,576,2217,650,187,2284,331,
+ 179,2839,1897,290,127,631,716,679,837,804,
+ 847,75,2217,281,186,2558,2917,401,765,2268,
+ 2049,476,939,1185,111,87,278,2839,2559,282,
+ 127,202,937,135,213,324,325,96,2320,1058,
+ 104,95,97,98,99,100,333,2839,367,225,
+ 3100,88,137,134,136,160,2210,158,551,224,
+ 229,1585,218,491,221,223,2917,139,166,340,
+ 2918,658,143,146,149,152,698,425,129,2878,
+ 687,2626,1688,2630,2741,2748,1739,2626,1430,20,
+ 129,1608,17,21,18,521,882,45,3091,534,
+ 617,2320,576,1810,650,72,1,367,1185,111,
+ 87,672,2765,631,716,679,837,804,847,75,
+ 2317,281,96,2317,1058,109,95,97,98,99,
+ 100,333,1905,260,854,2839,2574,282,195,687,
+ 937,2290,1457,20,275,509,17,21,18,521,
+ 882,45,283,534,617,314,576,110,650,241,
+ 2839,939,243,339,88,291,2766,631,716,679,
+ 837,804,847,75,1449,780,2478,2117,20,108,
+ 239,17,21,18,521,43,45,2296,534,617,
+ 2503,576,20,650,2562,17,21,18,521,43,
+ 36,145,631,716,679,837,804,847,94,2318,
+ 1696,2801,1890,20,2221,332,17,21,18,521,
+ 882,45,2041,534,617,2503,576,20,650,246,
+ 17,21,18,521,43,36,556,631,716,679,
+ 837,804,847,75,2362,783,20,129,997,17,
+ 21,18,521,882,45,72,534,617,105,576,
+ 2676,650,20,72,247,17,21,18,521,320,
+ 631,716,679,837,804,847,75,2569,1324,2751,
+ 2217,20,1612,240,17,21,18,521,882,45,
+ 2917,534,617,124,576,509,650,1966,428,2217,
+ 305,31,2217,1577,31,631,716,679,837,804,
+ 847,75,2751,92,20,1192,2897,17,21,18,
+ 521,43,45,1983,534,617,2751,576,20,650,
+ 661,17,21,18,521,43,39,2924,631,716,
+ 679,837,804,847,94,2829,129,939,304,2751,
+ 88,20,2567,658,17,21,18,521,882,45,
+ 1291,534,617,2217,576,188,650,2917,311,2217,
+ 123,1572,1232,210,1251,631,716,679,837,804,
+ 847,75,2751,86,20,687,284,17,21,18,
+ 521,882,45,25,534,617,24,576,2917,650,
+ 2217,112,296,308,302,303,309,2320,631,716,
+ 679,837,804,847,75,2751,85,20,19,2324,
+ 17,21,18,521,882,45,2407,534,617,2751,
+ 576,20,650,2570,17,21,18,521,43,38,
+ 2897,631,716,679,837,804,847,75,2751,84,
+ 20,129,1738,17,21,18,521,882,45,2836,
+ 534,617,2751,576,20,650,2882,17,21,18,
+ 521,43,37,2847,631,716,679,837,804,847,
+ 75,2751,83,20,2148,1828,17,21,18,521,
+ 882,45,275,534,617,2751,576,20,650,2657,
+ 17,21,18,521,43,35,2320,631,716,679,
+ 837,804,847,75,2751,82,20,230,276,17,
+ 21,18,521,882,45,2682,534,617,2751,576,
+ 20,650,2840,17,21,18,521,43,36,2316,
+ 631,716,679,837,804,847,75,2751,81,20,
+ 234,2782,17,21,18,521,882,45,74,534,
+ 617,2751,576,20,650,2837,17,21,18,521,
+ 43,48,2707,631,716,679,837,804,847,75,
+ 2751,80,20,129,518,17,21,18,521,882,
+ 45,2885,534,617,2751,576,20,650,2826,17,
+ 21,18,521,43,47,2320,631,716,679,837,
+ 804,847,75,2751,79,20,1490,2468,17,21,
+ 18,521,882,45,2553,534,617,2751,576,20,
+ 650,2317,17,21,18,521,43,46,2320,631,
+ 716,679,837,804,847,75,2751,78,20,1507,
+ 2207,17,21,18,521,882,45,2315,534,617,
+ 2701,576,20,650,2317,17,21,18,521,318,
+ 22,2320,631,716,679,837,804,847,75,2751,
+ 77,20,1508,2114,17,21,18,521,882,45,
+ 2118,534,617,2726,576,20,650,2317,17,21,
+ 18,521,41,242,2320,631,716,679,837,804,
+ 847,75,2751,76,20,1542,1930,17,21,18,
+ 521,882,45,2394,534,617,2776,576,20,650,
+ 2317,17,21,18,521,34,244,2320,631,716,
+ 679,837,804,847,75,2751,1357,20,1842,2854,
+ 17,21,18,521,882,45,2868,534,617,2776,
+ 576,20,650,2356,17,21,18,521,33,245,
+ 2320,631,716,679,837,804,847,75,2751,1390,
+ 20,23,2925,17,21,18,521,882,45,2917,
+ 534,617,338,576,2477,650,2935,1929,255,213,
+ 324,325,129,2901,631,716,679,837,804,847,
+ 75,2751,93,20,2856,2924,17,21,18,521,
+ 882,45,2917,534,617,336,576,2217,650,298,
+ 2951,2857,254,213,324,325,2469,631,716,679,
+ 837,804,847,75,2751,74,20,2954,2955,17,
+ 21,18,521,43,45,2917,534,617,334,576,
+ 2317,650,1895,428,180,305,255,213,324,325,
+ 631,716,679,837,804,847,94,1423,1660,2751,
+ 28,20,2958,937,17,21,18,521,43,45,
+ 2917,534,617,126,576,661,650,28,28,295,
+ 937,937,904,2935,212,631,716,679,837,804,
+ 847,94,2917,304,2751,122,20,2845,2023,17,
+ 21,18,521,43,45,2917,534,617,3124,576,
+ 2732,650,28,2839,939,937,337,88,2867,202,
+ 631,716,679,837,804,847,94,1482,2405,2751,
+ 1612,20,2606,2936,17,21,18,521,43,45,
+ 2917,534,617,3131,576,2941,650,2355,915,301,
+ 303,309,2320,385,1520,631,716,679,837,804,
+ 847,94,387,2016,2751,1906,20,2320,957,17,
+ 21,18,521,43,45,2946,534,617,2026,576,
+ 2924,650,220,367,1185,111,87,2953,2965,203,
+ 631,716,679,837,804,847,94,2056,96,274,
+ 1058,109,95,97,98,99,100,333,346,3258,
+ 3258,267,1126,1100,272,687,291,367,1185,111,
+ 87,209,2917,2917,1820,3133,3139,1951,266,204,
+ 1456,1613,96,110,1058,109,95,97,98,99,
+ 100,333,2924,135,213,324,325,129,658,687,
+ 147,367,1185,111,87,107,3258,3258,2405,2284,
+ 1612,179,145,134,136,160,96,110,1058,109,
+ 95,97,98,99,100,333,3258,3258,766,1912,
+ 687,3258,2320,687,519,939,1185,111,87,107,
+ 3258,181,72,2052,135,213,324,325,307,106,
+ 96,110,1058,102,95,97,98,99,100,333,
+ 3258,3258,1730,138,134,136,160,3258,3258,874,
+ 551,224,1005,108,219,491,221,983,140,166,
+ 1923,1772,509,144,147,150,153,2751,425,20,
+ 2317,3258,17,21,18,521,43,45,1929,534,
+ 617,209,576,368,650,129,939,1932,2820,88,
+ 1563,1613,2962,631,716,679,837,1598,277,1590,
+ 3258,551,224,229,1012,218,491,221,223,297,
+ 2848,658,274,254,213,324,325,2839,939,263,
+ 335,88,3258,3258,267,1126,1100,272,551,224,
+ 229,1515,218,491,221,223,3258,3258,2320,274,
+ 1929,264,28,1810,2320,937,698,401,468,273,
+ 509,267,1126,1100,272,279,2924,2751,1491,20,
+ 3258,2863,17,21,18,521,43,45,1888,534,
+ 617,2897,576,259,650,254,213,324,325,261,
+ 2320,1894,1211,631,716,679,1474,3258,551,224,
+ 487,2129,218,491,221,473,255,213,324,325,
+ 2917,2924,2751,3154,20,205,159,17,21,18,
+ 521,43,45,2915,534,617,194,576,3258,650,
+ 1423,2839,939,2917,125,88,3001,2917,631,1442,
+ 3017,2917,3258,3258,3156,1550,155,445,562,939,
+ 1185,111,87,2917,590,1372,3163,3258,3258,2917,
+ 691,412,3038,2320,96,3258,1058,103,95,97,
+ 98,99,100,333,280,500,605,939,1185,111,
+ 87,2917,2320,1929,3054,3258,648,939,1185,111,
+ 87,3258,96,2124,1058,119,95,97,98,99,
+ 100,333,96,3258,1058,115,95,97,98,99,
+ 100,333,691,939,1185,111,87,3258,254,213,
+ 324,325,734,939,1185,111,87,3258,96,3258,
+ 1058,1677,95,97,98,99,100,333,96,3258,
+ 1058,364,95,97,98,99,100,333,777,939,
+ 1185,111,87,2917,2320,3258,3063,3258,820,939,
+ 1185,111,87,1911,96,2170,1058,356,95,97,
+ 98,99,100,333,96,3258,1058,114,95,97,
+ 98,99,100,333,863,939,1185,111,87,2917,
+ 2320,3258,118,3258,906,939,1185,111,87,3258,
+ 96,2242,1058,363,95,97,98,99,100,333,
+ 96,3258,1058,362,95,97,98,99,100,333,
+ 949,939,1185,111,87,2917,2320,3258,3085,3258,
+ 992,939,1185,111,87,3258,96,2268,1058,360,
+ 95,97,98,99,100,333,96,3258,1058,355,
+ 95,97,98,99,100,333,1035,939,1185,111,
+ 87,3258,2320,3258,3258,3258,1078,939,1185,111,
+ 87,3258,96,2278,1058,354,95,97,98,99,
+ 100,333,96,3258,1058,352,95,97,98,99,
+ 100,333,1121,939,1185,111,87,3258,2320,3258,
+ 3258,3258,1164,939,1185,111,87,3258,96,2314,
+ 1058,348,95,97,98,99,100,333,96,3258,
+ 1058,121,95,97,98,99,100,333,1207,939,
+ 1185,111,87,3258,2320,3258,3258,3258,1250,939,
+ 1185,111,87,3258,96,2340,1058,361,95,97,
+ 98,99,100,333,96,3258,1058,359,95,97,
+ 98,99,100,333,1293,939,1185,111,87,3258,
+ 2320,3258,3258,3258,1336,939,1185,111,87,3258,
+ 96,2376,1058,358,95,97,98,99,100,333,
+ 96,3258,1058,353,95,97,98,99,100,333,
+ 1379,939,1185,111,87,3258,2320,3258,3258,3258,
+ 1422,939,1185,111,87,3258,96,2422,1058,351,
+ 95,97,98,99,100,333,96,3258,1058,350,
+ 95,97,98,99,100,333,1465,939,1185,111,
+ 87,3258,2320,3258,3258,3258,1508,939,1185,111,
+ 87,3258,96,2448,1058,347,95,97,98,99,
+ 100,333,96,3258,1058,346,95,97,98,99,
+ 100,333,1551,939,1185,111,87,3258,2320,3258,
+ 3258,3258,1594,939,1185,111,87,3258,96,2458,
+ 1058,344,95,97,98,99,100,333,96,3258,
+ 1058,120,95,97,98,99,100,333,1637,939,
+ 1185,111,87,3258,2320,3258,3258,3258,1680,939,
+ 1185,111,87,3258,96,2484,1058,357,95,97,
+ 98,99,100,333,96,3258,1058,349,95,97,
+ 98,99,100,333,1723,939,1185,111,87,3258,
+ 2320,3258,3258,3258,1766,939,1185,111,87,3258,
+ 96,2494,1058,345,95,97,98,99,100,333,
+ 96,3258,1058,343,95,97,98,99,100,333,
+ 1809,939,1185,111,87,3258,2320,3258,3258,3258,
+ 1852,939,1185,111,87,3258,96,2530,1058,342,
+ 95,97,98,99,100,333,96,3258,1058,341,
+ 95,97,98,99,100,333,2751,3258,20,401,
+ 765,17,21,18,521,43,45,3258,534,617,
+ 3258,576,3258,650,1916,765,3258,3258,2751,3258,
+ 20,3258,1454,17,21,18,521,43,45,3258,
+ 534,617,3258,576,3258,1343,3258,3258,3258,3258,
+ 551,224,229,3258,218,491,221,223,3258,3258,
+ 2914,939,1916,765,88,551,224,229,159,218,
+ 491,221,223,3258,116,3258,2398,3258,3258,2751,
+ 1950,20,3258,1667,17,21,18,521,43,45,
+ 3258,534,617,3258,576,3258,1350,3258,155,445,
+ 3258,3258,3258,551,224,229,590,218,491,221,
+ 223,135,213,324,325,135,213,324,325,3258,
+ 3258,1667,3258,3258,198,200,3258,3258,1950,3258,
+ 142,134,136,160,148,134,136,160,3258,1963,
+ 3258,3258,2751,3258,20,141,166,17,21,18,
+ 521,43,45,3258,534,617,3258,1376,3258,2751,
+ 3258,20,199,200,17,21,18,521,43,45,
+ 3258,534,617,2751,1383,20,3258,3258,17,21,
+ 18,521,43,45,3258,534,617,2751,1409,20,
+ 3258,2021,17,21,18,521,43,45,2076,534,
+ 617,2751,1416,20,3258,3258,17,21,18,521,
+ 43,45,3258,534,1284,2576,1912,20,3258,3258,
+ 17,21,18,521,43,44,135,213,324,325,
+ 1984,1860,3258,135,213,324,325,3258,3258,3258,
+ 3258,277,3258,3258,3258,151,134,136,160,3258,
+ 3258,3258,154,134,136,160,874,551,224,229,
+ 3258,219,491,221,223,28,3258,2751,937,20,
+ 2848,658,17,21,18,521,43,45,2751,1310,
+ 20,3258,274,17,21,18,521,43,45,3258,
+ 1317,3258,3258,3258,267,1126,1100,272,3258,2360,
+ 658,129,367,1810,3258,88,3258,3258,3258,3258,
+ 509,1888,3258,3258,3258,1067,129,367,3258,3258,
+ 88,129,367,129,367,88,3258,88,2037,658,
+ 1067,368,1810,259,197,1067,3258,1067,3258,129,
+ 367,1894,1211,88,129,367,3258,2894,88,197,
+ 3258,2183,658,1067,197,3258,197,3258,1067,1627,
+ 3258,197,259,761,3258,2388,658,2388,658,3258,
+ 1166,1211,197,3258,1627,3258,3258,197,1265,1627,
+ 3258,1627,3258,1298,197,1331,795,874,3258,2914,
+ 367,3258,3258,88,3258,3258,3258,1627,1810,274,
+ 1810,1364,1627,116,2916,939,1397,3258,88,795,
+ 3258,269,1126,1100,272,2062,1199,3258,365,3258,
+ 192,3258,687,3258,3258,3258,1475,2983,259,3258,
+ 259,2916,939,2110,658,88,1166,1211,2003,1211,
+ 2610,3258,2088,192,3258,365,3258,3258,2022,1722,
+ 2983,2916,939,3258,3258,88,3258,1620,3258,2916,
+ 939,3258,2134,88,3258,365,197,2916,939,3258,
+ 2160,88,3258,365,3258,2094,2916,939,2196,3258,
+ 88,365,2916,939,3258,3258,88,2206,2916,939,
+ 365,795,88,2232,3258,2166,365,3258,3258,2304,
+ 3258,3258,365,2202,2916,939,3258,3258,88,3258,
+ 3258,2238,3258,2916,939,2350,3258,88,365,3258,
+ 2274,3258,3258,3258,2386,193,2310,365,3258,2916,
+ 939,3258,2382,88,3258,2916,939,3258,3258,88,
+ 2412,2839,939,365,3108,88,2520,3258,2418,365,
+ 2839,939,3258,3116,88,1702,3258,2454,2839,939,
+ 3258,2954,88,3258,1703,3258,2839,939,3258,2981,
+ 88,3258,1973,2490,2839,939,3258,3148,88,2526,
+ 1977,2914,939,2839,939,88,3009,88,1981,2839,
+ 939,3258,3026,88,3258,116,3258,1999,2839,939,
+ 3258,3032,88,2021,2914,939,2839,939,88,3079,
+ 88,3258,2093,2914,939,129,939,88,116,88,
+ 2165,129,939,3258,3258,88,3258,116,3258,1632,
+ 129,939,129,939,88,1647,88,3258,3258,3258,
+ 3258,3258,3258,3258,1762,3258,1930,3258,3258,1993,
+ 3258,3258,3258,3258,3258,3258,3258,3258,3258,3258,
+ 3258,3258,3258,3258,3258,3258,3258,3258,3258,3258,
+ 3258,3258,2130,3258,3258,3258,3258,3258,3258,3258,
+ 3258,2346,3258,0,327,836,0,11,226,0,
+ 3266,1,0,1,3495,0,8,10,0,179,
+ 20,0,1,3484,0,113,2098,0
};
};
public final static char baseAction[] = BaseAction.baseAction;
@@ -732,49 +708,45 @@ public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym
20,21,22,23,24,25,26,27,28,29,
30,31,32,33,34,35,36,37,38,39,
40,41,42,43,44,45,46,47,48,49,
- 50,51,52,53,54,55,56,57,58,59,
- 60,61,62,63,64,65,66,0,68,69,
- 70,71,0,1,2,3,4,5,6,7,
- 8,9,10,11,12,13,14,15,16,17,
- 18,19,20,21,22,23,24,25,26,27,
- 28,29,30,31,32,33,34,35,36,37,
- 38,39,40,41,42,43,44,45,46,47,
- 48,49,50,51,52,53,54,55,56,57,
- 58,59,60,61,62,63,64,65,66,72,
- 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,37,38,39,40,41,42,43,44,45,
- 46,47,48,49,50,51,52,53,54,55,
- 56,57,58,59,60,61,62,63,64,65,
- 66,0,68,69,70,71,0,1,2,3,
+ 50,51,52,53,54,0,56,57,58,59,
+ 60,61,62,63,64,65,66,67,68,69,
+ 70,0,72,0,1,2,3,4,5,6,
+ 7,8,9,10,11,12,13,14,15,16,
+ 17,18,19,20,21,22,23,24,25,26,
+ 27,28,29,30,31,32,33,34,35,36,
+ 37,38,39,40,41,42,43,44,45,46,
+ 47,48,49,50,51,52,53,54,0,56,
+ 57,58,59,60,61,62,63,64,65,66,
+ 67,68,69,70,0,72,0,1,2,3,
4,5,6,7,8,9,10,11,12,13,
14,15,16,17,18,19,20,21,22,23,
24,25,26,27,28,29,30,31,32,33,
34,35,36,37,38,39,40,41,42,43,
44,45,46,47,48,49,50,51,52,53,
- 54,55,56,57,58,59,60,61,62,63,
- 64,65,66,72,68,69,70,0,1,2,
- 3,4,5,6,7,8,9,10,11,12,
- 13,14,15,16,17,18,19,20,21,22,
- 23,24,25,26,27,28,29,30,31,32,
- 33,34,35,36,37,38,39,40,41,42,
- 43,44,45,46,47,48,49,50,51,52,
- 53,54,55,56,57,58,59,60,61,62,
- 63,64,65,66,0,68,69,70,0,1,
- 2,3,0,5,2,7,8,9,10,11,
- 12,13,14,15,16,17,18,19,20,21,
- 22,23,24,0,1,0,3,0,1,6,
- 3,0,1,6,3,0,1,6,0,1,
- 2,43,44,45,46,47,48,49,50,51,
- 52,53,54,55,56,57,58,59,60,61,
- 62,63,64,65,66,0,68,69,70,0,
+ 54,0,56,57,58,59,60,61,62,63,