Skip to main content
aboutsummaryrefslogtreecommitdiffstats
path: root/upc
diff options
context:
space:
mode:
authorJonah Graham2018-11-20 16:20:42 +0000
committerJonah Graham2018-11-22 21:47:02 +0000
commit170e654b4796bad1453ae85a427b97317d67a69a (patch)
tree6ca9b8a8fedd5fd25f97eb79c408312e256ff981 /upc
parent35996a5c5ca5c254959ba48241eaada6dbf8628d (diff)
downloadorg.eclipse.cdt-170e654b4796bad1453ae85a427b97317d67a69a.tar.gz
org.eclipse.cdt-170e654b4796bad1453ae85a427b97317d67a69a.tar.xz
org.eclipse.cdt-170e654b4796bad1453ae85a427b97317d67a69a.zip
Bug 540373: Cleanup: Format & Remove trailing whitespace
This was done by selecting all projects in Eclipse then Source -> Clean Up... -> choosing: - Format source code - Remove trailing white spaces on all lines and completing the wizard Change-Id: I63685372c6bcc67719bcf145123bcb72e5b00394
Diffstat (limited to 'upc')
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/AutomatedIntegrationSuite.java42
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCCommentTests.java4
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCCompleteParser2Tests.java21
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCCompletionBasicTest.java5
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCCompletionParseTest.java12
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCDOMLocationMacroTests.java10
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCDOMLocationTests.java4
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCDOMPreprocessorInformationTest.java6
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCDigraphTrigraphTests.java9
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCGCCTests.java6
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCKnRTests.java2
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCLanguageExtensionTests.java376
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCSelectionParseTest.java11
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCTaskParserTest.java2
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCTests.java88
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCUtilOldTests.java2
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCUtilTests.java2
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/DOMToUPCTokenMap.java316
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/IUPCNodeFactory.java15
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCASTNodeFactory.java21
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCKeyword.java51
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCLanguageKeywords.java4
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCParserAction.java146
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCSecondaryParserFactory.java10
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/UPCLanguage.java11
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTCompositeTypeSpecifier.java4
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTDeclSpecifier.java12
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTElaboratedTypeSpecifier.java4
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTEnumerationSpecifier.java4
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTForallStatement.java12
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTKeywordExpression.java2
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTLayoutQualifier.java19
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTSimpleDeclSpecifier.java4
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTSynchronizationStatement.java6
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTTypeIdSizeofExpression.java4
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTTypedefNameSpecifier.java4
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTUnarySizeofExpression.java4
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParser.java3497
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParserprs.java2013
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParsersym.java252
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParser.java3485
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParserprs.java1979
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParsersym.java252
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParser.java3488
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParserprs.java3059
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParsersym.java251
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParser.java3443
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParserprs.java1943
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParsersym.java252
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTCompositeTypeSpecifier.java58
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTElaboratedTypeSpecifier.java58
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTEnumerationSpecifier.java58
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTForallStatement.java34
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTKeywordExpression.java21
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTLayoutQualifier.java1
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTSimpleDeclSpecifier.java47
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTSynchronizationStatement.java18
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTTypedefNameSpecifier.java50
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTUnarySizeofExpression.java1
-rw-r--r--upc/org.eclipse.cdt.managedbuilder.bupc.ui/src/org/eclipse/cdt/managedbuilder/bupc/ui/UPCWizardsPlugin.java5
60 files changed, 12012 insertions, 13508 deletions
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/AutomatedIntegrationSuite.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/AutomatedIntegrationSuite.java
index 78d275c5abc..242fc53512c 100644
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/AutomatedIntegrationSuite.java
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/AutomatedIntegrationSuite.java
@@ -17,26 +17,28 @@ import junit.framework.Test;
import junit.framework.TestSuite;
public class AutomatedIntegrationSuite extends TestSuite {
-
+
public static Test suite() {
- return new TestSuite() {{
- addTestSuite(UPCCommentTests.class);
- addTestSuite(UPCCompletionBasicTest.class);
- addTestSuite(UPCCompletionParseTest.class);
- addTestSuite(UPCDOMLocationMacroTests.class);
- addTestSuite(UPCDOMLocationTests.class);
- addTestSuite(UPCDOMPreprocessorInformationTest.class);
- addTestSuite(UPCKnRTests.class);
- addTestSuite(UPCSelectionParseTest.class);
- addTestSuite(UPCCSpecTests.class);
- addTestSuite(UPCTests.class);
- addTestSuite(UPCLanguageExtensionTests.class);
- addTestSuite(UPCDigraphTrigraphTests.class);
- addTestSuite(UPCGCCTests.class);
- addTestSuite(UPCUtilOldTests.class);
- addTestSuite(UPCUtilTests.class);
- addTestSuite(UPCCompleteParser2Tests.class);
- addTestSuite(UPCTaskParserTest.class);
- }};
+ return new TestSuite() {
+ {
+ addTestSuite(UPCCommentTests.class);
+ addTestSuite(UPCCompletionBasicTest.class);
+ addTestSuite(UPCCompletionParseTest.class);
+ addTestSuite(UPCDOMLocationMacroTests.class);
+ addTestSuite(UPCDOMLocationTests.class);
+ addTestSuite(UPCDOMPreprocessorInformationTest.class);
+ addTestSuite(UPCKnRTests.class);
+ addTestSuite(UPCSelectionParseTest.class);
+ addTestSuite(UPCCSpecTests.class);
+ addTestSuite(UPCTests.class);
+ addTestSuite(UPCLanguageExtensionTests.class);
+ addTestSuite(UPCDigraphTrigraphTests.class);
+ addTestSuite(UPCGCCTests.class);
+ addTestSuite(UPCUtilOldTests.class);
+ addTestSuite(UPCUtilTests.class);
+ addTestSuite(UPCCompleteParser2Tests.class);
+ addTestSuite(UPCTaskParserTest.class);
+ }
+ };
}
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCCommentTests.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCCommentTests.java
index a5bf07021fb..db778db4d33 100644
--- 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
@@ -7,7 +7,7 @@
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
- *
+ *
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
@@ -18,7 +18,7 @@ import org.eclipse.cdt.core.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
index 03b1eeade8a..4654e2f8b55 100644
--- 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
@@ -7,7 +7,7 @@
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
- *
+ *
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
@@ -19,17 +19,22 @@ import org.eclipse.cdt.core.model.ILanguage;
public class UPCCompleteParser2Tests extends LRCompleteParser2Tests {
-
@Override
- public void testGNUASMExtension() throws Exception{}
+ public void testGNUASMExtension() throws Exception {
+ }
+
@Override
- public void testBug39551B() throws Exception{}
+ public void testBug39551B() throws Exception {
+ }
+
@Override
- public void testBug39676_tough() throws Exception{}
+ public void testBug39676_tough() throws Exception {
+ }
+
@Override
- public void testBug102376() throws Exception {}
-
-
+ public void testBug102376() throws Exception {
+ }
+
@Override
protected ILanguage getCLanguage() {
return UPCLanguage.getDefault();
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCCompletionBasicTest.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCCompletionBasicTest.java
index b54c21f363c..01e76a63d06 100644
--- 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
@@ -7,7 +7,7 @@
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
- *
+ *
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
@@ -19,7 +19,8 @@ import org.eclipse.cdt.core.model.ILanguage;
public class UPCCompletionBasicTest extends LRCompletionBasicTest {
- public UPCCompletionBasicTest() { }
+ public UPCCompletionBasicTest() {
+ }
@Override
protected ILanguage getCLanguage() {
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
index 91fa036a163..043edeea963 100644
--- 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
@@ -7,7 +7,7 @@
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
- *
+ *
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
@@ -19,9 +19,13 @@ import org.eclipse.cdt.core.model.ILanguage;
public class UPCCompletionParseTest extends LRCompletionParseTest {
- public UPCCompletionParseTest() { }
- public UPCCompletionParseTest(String name) { super(name); }
-
+ public UPCCompletionParseTest() {
+ }
+
+ public UPCCompletionParseTest(String name) {
+ super(name);
+ }
+
@Override
protected ILanguage getCLanguage() {
return UPCLanguage.getDefault();
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCDOMLocationMacroTests.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCDOMLocationMacroTests.java
index 4e5fe4c04f4..0f7ae36a34e 100644
--- 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
@@ -7,7 +7,7 @@
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
- *
+ *
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
@@ -22,12 +22,14 @@ public class UPCDOMLocationMacroTests extends LRDOMLocationMacroTests {
public UPCDOMLocationMacroTests() {
}
+
//TODO ??? overwrite some failed test cases
@Override
- public void testStdioBug() throws ParserException{}
+ public void testStdioBug() throws ParserException {
+ }
@Override
protected ILanguage getCLanguage() {
- return UPCLanguage.getDefault();
- }
+ 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
index ac838953972..a1ad7ad9c93 100644
--- 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
@@ -7,7 +7,7 @@
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
- *
+ *
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
@@ -28,6 +28,6 @@ public class UPCDOMLocationTests extends LRDOMLocationTests {
@Override
protected ILanguage getCLanguage() {
- return UPCLanguage.getDefault();
+ 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
index b9b6e835279..af758dbffb7 100644
--- 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
@@ -7,7 +7,7 @@
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
- *
+ *
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
@@ -21,7 +21,7 @@ public class UPCDOMPreprocessorInformationTest extends LRDOMPreprocessorInformat
@Override
protected ILanguage getCLanguage() {
- return UPCLanguage.getDefault();
- }
+ 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
index 18d367ec29e..febb6c26127 100644
--- 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
@@ -17,11 +17,14 @@ 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); }
+ public UPCDigraphTrigraphTests() {
+ }
+
+ public UPCDigraphTrigraphTests(String name) {
+ super(name);
+ }
@Override
protected ILanguage getCLanguage() {
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
index 6a82edc6e6b..0f3b6c3f6e1 100644
--- 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
@@ -7,7 +7,7 @@
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
- *
+ *
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
@@ -18,10 +18,10 @@ 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);
}
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
index 63e9d59a56d..702a21dc207 100644
--- 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
@@ -7,7 +7,7 @@
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
- *
+ *
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
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
index d43c0aff314..160ef04d51f 100644
--- 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
@@ -7,7 +7,7 @@
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
- *
+ *
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
@@ -57,24 +57,22 @@ public class UPCLanguageExtensionTests extends TestCase {
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 );
+ return ParseHelper.parse(code, getLanguage(), options);
}
-
-
+
private IASTTranslationUnit parse(String code) {
ParseHelper.Options options = new ParseHelper.Options();
options.setCheckSyntaxProblems(true);
@@ -82,22 +80,15 @@ public class UPCLanguageExtensionTests extends TestCase {
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;";
-
+ 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);
@@ -121,7 +112,7 @@ public class UPCLanguageExtensionTests extends TestCase {
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();
@@ -140,7 +131,7 @@ public class UPCLanguageExtensionTests extends TestCase {
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();
@@ -159,7 +150,7 @@ public class UPCLanguageExtensionTests extends TestCase {
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();
@@ -177,51 +168,46 @@ public class UPCLanguageExtensionTests extends TestCase {
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";
-
+ 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();
@@ -229,322 +215,292 @@ public class UPCLanguageExtensionTests extends TestCase {
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";
-
+ 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();
+ IASTStatement[] body = ((IASTCompoundStatement) main.getBody()).getStatements();
assertEquals(3, body.length);
-
- IASTSimpleDeclaration decl_i = (IASTSimpleDeclaration)((IASTDeclarationStatement)body[0]).getDeclaration();
+
+ 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();
+
+ 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();
-
+
+ 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";
-
+ 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();
+ IASTStatement[] body = ((IASTCompoundStatement) main.getBody()).getStatements();
assertEquals(2, body.length);
-
- IASTSimpleDeclaration decl_a = (IASTSimpleDeclaration)((IASTDeclarationStatement)body[0]).getDeclaration();
+
+ 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();
+
+ 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();
-
+
+ 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";
-
+ 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();
+ 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";
-
+ 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();
+ 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";
-
+ 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();
+ 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();
+ 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();
+
+ idexpr = (IUPCASTTypeIdSizeofExpression) ((IASTExpressionStatement) body[2]).getExpression();
assertEquals(IASTTypeIdExpression.op_sizeof, idexpr.getOperator());
assertEquals(IUPCASTTypeIdSizeofExpression.upc_localsizeof, idexpr.getUPCSizeofOperator());
-
- expr = (IUPCASTUnarySizeofExpression)((IASTExpressionStatement)body[3]).getExpression();
+
+ expr = (IUPCASTUnarySizeofExpression) ((IASTExpressionStatement) body[3]).getExpression();
assertEquals(IASTUnaryExpression.op_sizeof, expr.getOperator());
assertEquals(IUPCASTUnarySizeofExpression.upc_localsizeof, expr.getUPCSizeofOperator());
-
- idexpr = (IUPCASTTypeIdSizeofExpression)((IASTExpressionStatement)body[4]).getExpression();
+
+ idexpr = (IUPCASTTypeIdSizeofExpression) ((IASTExpressionStatement) body[4]).getExpression();
assertEquals(IASTTypeIdExpression.op_sizeof, idexpr.getOperator());
assertEquals(IUPCASTTypeIdSizeofExpression.upc_blocksizeof, idexpr.getUPCSizeofOperator());
-
- expr = (IUPCASTUnarySizeofExpression)((IASTExpressionStatement)body[5]).getExpression();
+
+ expr = (IUPCASTUnarySizeofExpression) ((IASTExpressionStatement) body[5]).getExpression();
assertEquals(IASTUnaryExpression.op_sizeof, expr.getOperator());
assertEquals(IUPCASTUnarySizeofExpression.upc_blocksizeof, expr.getUPCSizeofOperator());
-
- idexpr = (IUPCASTTypeIdSizeofExpression)((IASTExpressionStatement)body[6]).getExpression();
+
+ idexpr = (IUPCASTTypeIdSizeofExpression) ((IASTExpressionStatement) body[6]).getExpression();
assertEquals(IASTTypeIdExpression.op_sizeof, idexpr.getOperator());
assertEquals(IUPCASTTypeIdSizeofExpression.upc_elemsizeof, idexpr.getUPCSizeofOperator());
-
- expr = (IUPCASTUnarySizeofExpression)((IASTExpressionStatement)body[7]).getExpression();
+
+ 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);" +
- "}";
-
+ String code = "int foo() {" + " typedef int t;" + " int x;" + " upc_blocksizeof(t);"
+ + " upc_blocksizeof(x);" + "}";
+
IASTTranslationUnit tu = parse(code);
-
- IASTDeclaration[] declarations = tu.getDeclarations();
+
+ 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);
+ IASTStatement[] body = ((IASTCompoundStatement) main.getBody()).getStatements();
+
+ assertTrue(((IASTExpressionStatement) body[2]).getExpression() instanceof IUPCASTTypeIdSizeofExpression);
+ assertTrue(((IASTExpressionStatement) body[3]).getExpression() instanceof IUPCASTUnarySizeofExpression);
}
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCSelectionParseTest.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCSelectionParseTest.java
index b4bc5fff782..401e3114b57 100644
--- 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
@@ -7,7 +7,7 @@
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
- *
+ *
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
@@ -19,10 +19,13 @@ import org.eclipse.cdt.core.model.ILanguage;
public class UPCSelectionParseTest extends LRSelectionParseTest {
- public UPCSelectionParseTest() { }
- public UPCSelectionParseTest(String name) { super(name); }
+ 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
index c4316afbac0..74e3d44b6ce 100644
--- 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
@@ -7,7 +7,7 @@
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
- *
+ *
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
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
index c6d74c33d36..9404f78363d 100644
--- 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
@@ -7,7 +7,7 @@
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
- *
+ *
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
@@ -18,6 +18,7 @@ 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
*
@@ -25,55 +26,92 @@ import org.eclipse.cdt.core.model.ILanguage;
public class UPCTests extends LRTests {
public static TestSuite suite() {
- return suite(UPCTests.class);
- }
-
+ return suite(UPCTests.class);
+ }
+
public UPCTests(String name) {
super(name);
}
-
+
//TODO ??? overwrite some failed test cases
//some test cases which are not applicable to UPC are bypassed here.
//UPC extends from C99, which doesn't include some GNU extending features such as "typeof".
@Override
- public void testCompositeTypes() throws Exception {}
+ public void testCompositeTypes() throws Exception {
+ }
+
@Override
- public void testBug93980() throws Exception {}
+ public void testBug93980() throws Exception {
+ }
+
@Override
- public void testBug95866() throws Exception {}
+ public void testBug95866() throws Exception {
+ }
+
@Override
- public void testBug191450_attributesInBetweenPointers() throws Exception {}
+ public void testBug191450_attributesInBetweenPointers() throws Exception {
+ }
+
@Override
- public void testOmittedPositiveExpression_212905() throws Exception {}
+ public void testOmittedPositiveExpression_212905() throws Exception {
+ }
+
@Override
- public void testRedefinedGCCKeywords_226112() throws Exception {}
+ public void testRedefinedGCCKeywords_226112() throws Exception {
+ }
+
@Override
- public void testASMLabels_226121() throws Exception {}
+ public void testASMLabels_226121() throws Exception {
+ }
+
@Override
- public void testCompoundStatementExpression_226274() throws Exception {}
+ public void testCompoundStatementExpression_226274() throws Exception {
+ }
+
@Override
- public void testTypeofUnaryExpression_226492() throws Exception {}
+ public void testTypeofUnaryExpression_226492() throws Exception {
+ }
+
@Override
- public void testTypeofExpression_226492() throws Exception {}
+ public void testTypeofExpression_226492() throws Exception {
+ }
+
@Override
- public void testTypeofExpressionWithAttribute_226492() throws Exception {}
+ public void testTypeofExpressionWithAttribute_226492() throws Exception {
+ }
+
@Override
- public void testAttributeInElaboratedTypeSpecifier_227085() throws Exception {}
+ public void testAttributeInElaboratedTypeSpecifier_227085() throws Exception {
+ }
+
@Override
- public void testRedefinePtrdiff_230895() throws Exception {}
+ public void testRedefinePtrdiff_230895() throws Exception {
+ }
+
@Override
- public void testDeclspecInEnumSpecifier_241203() throws Exception {}
+ public void testDeclspecInEnumSpecifier_241203() throws Exception {
+ }
+
@Override
- public void testBuiltinTypesCompatible_241570() throws Exception {}
+ public void testBuiltinTypesCompatible_241570() throws Exception {
+ }
+
@Override
- public void testThreadLocalVariables_260387() throws Exception {}
+ public void testThreadLocalVariables_260387() throws Exception {
+ }
+
@Override
- public void testVaArgWithFunctionPtr_311030() throws Exception {}
+ public void testVaArgWithFunctionPtr_311030() throws Exception {
+ }
+
@Override
- public void testRecursiveFunctionType_321856() throws Exception {}
+ public void testRecursiveFunctionType_321856() throws Exception {
+ }
+
@Override
- public void testPtrDiffRecursion_317004() throws Exception {}
-
+ public void testPtrDiffRecursion_317004() throws Exception {
+ }
+
@Override
protected ILanguage getCLanguage() {
return UPCLanguage.getDefault();
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCUtilOldTests.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCUtilOldTests.java
index 53bd1c32d3f..6c0fcb98543 100644
--- 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
@@ -7,7 +7,7 @@
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
- *
+ *
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
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
index 5f7b2817ad8..3a0f84de12a 100644
--- 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
@@ -7,7 +7,7 @@
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
- *
+ *
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
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 1c14eb1dfc4..096afa69e7b 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
@@ -13,14 +13,12 @@
*******************************************************************************/
package org.eclipse.cdt.core.dom.parser.upc;
-
import static org.eclipse.cdt.core.parser.IToken.*;
import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.*;
import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
import org.eclipse.cdt.core.parser.IToken;
-
/**
* Maps token kinds from CPreprocessor to the tokens kinds
* created by LPG.
@@ -32,7 +30,6 @@ import org.eclipse.cdt.core.parser.IToken;
@SuppressWarnings("nls")
public class DOMToUPCTokenMap implements IDOMTokenMap {
-
@Override
public int getEOFTokenKind() {
return TK_EOF_TOKEN;
@@ -46,116 +43,211 @@ public class DOMToUPCTokenMap implements IDOMTokenMap {
@Override
public int mapKind(IToken token) {
- switch(token.getType()) {
- case tIDENTIFIER :
- Integer keywordKind = UPCKeyword.getTokenKind(token.getCharImage());
- return keywordKind == null ? TK_identifier : keywordKind;
-
- case tINTEGER : return TK_integer;
- case tCOLON : return TK_Colon;
- case tSEMI : return TK_SemiColon;
- case tCOMMA : return TK_Comma;
- case tQUESTION : return TK_Question;
- case tLPAREN : return TK_LeftParen;
- case tRPAREN : return TK_RightParen;
- case tLBRACKET : return TK_LeftBracket;
- case tRBRACKET : return TK_RightBracket;
- case tLBRACE : return TK_LeftBrace;
- case tRBRACE : return TK_RightBrace;
- case tPLUSASSIGN : return TK_PlusAssign;
- case tINCR : return TK_PlusPlus;
- case tPLUS : return TK_Plus;
- case tMINUSASSIGN : return TK_MinusAssign;
- case tDECR : return TK_MinusMinus;
- case tARROW : return TK_Arrow;
- case tMINUS : return TK_Minus;
- case tSTARASSIGN : return TK_StarAssign;
- case tSTAR : return TK_Star;
- case tMODASSIGN : return TK_PercentAssign;
- case tMOD : return TK_Percent;
- case tXORASSIGN : return TK_CaretAssign;
- case tXOR : return TK_Caret;
- case tAMPERASSIGN : return TK_AndAssign;
- case tAND : return TK_AndAnd;
- case tAMPER : return TK_And;
- case tBITORASSIGN : return TK_OrAssign;
- case tOR : return TK_OrOr;
- case tBITOR : return TK_Or;
- case tBITCOMPLEMENT: return TK_Tilde;
- case tNOTEQUAL : return TK_NE;
- case tNOT : return TK_Bang;
- case tEQUAL : return TK_EQ;
- case tASSIGN : return TK_Assign;
- case tUNKNOWN_CHAR : return TK_Invalid;
- case tSHIFTL : return TK_LeftShift;
- case tLTEQUAL : return TK_LE;
- case tLT : return TK_LT;
- case tSHIFTRASSIGN : return TK_RightShiftAssign;
- case tSHIFTR : return TK_RightShift;
- case tGTEQUAL : return TK_GE;
- case tGT : return TK_GT;
- case tSHIFTLASSIGN : return TK_LeftShiftAssign;
- case tELLIPSIS : return TK_DotDotDot;
- case tDOT : return TK_Dot;
- case tDIVASSIGN : return TK_SlashAssign;
- case tDIV : return TK_Slash;
-
- case t_auto : return TK_auto;
- case t_break : return TK_break;
- case t_case : return TK_case;
- case t_char : return TK_char;
- case t_const : return TK_const;
- case t_continue : return TK_continue;
- case t_default : return TK_default;
- case t_do : return TK_do;
- case t_double : return TK_double;
- case t_else : return TK_else;
- case t_enum : return TK_enum;
- case t_extern : return TK_extern;
- case t_float : return TK_float;
- case t_for : return TK_for;
- case t_goto : return TK_goto;
- case t_if : return TK_if;
- case t_inline : return TK_inline;
- case t_int : return TK_int;
- case t_long : return TK_long;
- case t_register : return TK_register;
- case t_return : return TK_return;
- case t_short : return TK_short;
- case t_sizeof : return TK_sizeof;
- case t_static : return TK_static;
- case t_signed : return TK_signed;
- case t_struct : return TK_struct;
- case t_switch : return TK_switch;
- case t_typedef : return TK_typedef;
- case t_union : return TK_union;
- case t_unsigned : return TK_unsigned;
- case t_void : return TK_void;
- case t_volatile : return TK_volatile;
- case t_while : return TK_while;
- case tFLOATINGPT : return TK_floating;
- case tSTRING : return TK_stringlit;
- case tLSTRING : return TK_stringlit;
- case tUTF16STRING : return TK_stringlit;
- case tUTF32STRING : return TK_stringlit;
- case tCHAR : return TK_charconst;
- case tLCHAR : return TK_charconst;
- case tUTF16CHAR : return TK_charconst;
- case tUTF32CHAR : return TK_charconst;
- case t__Bool : return TK__Bool;
- case t__Complex : return TK__Complex;
- case t__Imaginary : return TK__Imaginary;
- case t_restrict : return TK_restrict;
- case tCOMPLETION : return TK_Completion;
- case tEOC : return TK_EndOfCompletion;
- case tEND_OF_INPUT : return TK_EOF_TOKEN;
-
- default:
- assert false : "token not recognized by the UPC parser: " + token.getType();
- return TK_Invalid;
+ switch (token.getType()) {
+ case tIDENTIFIER:
+ Integer keywordKind = UPCKeyword.getTokenKind(token.getCharImage());
+ return keywordKind == null ? TK_identifier : keywordKind;
+
+ case tINTEGER:
+ return TK_integer;
+ case tCOLON:
+ return TK_Colon;
+ case tSEMI:
+ return TK_SemiColon;
+ case tCOMMA:
+ return TK_Comma;
+ case tQUESTION:
+ return TK_Question;
+ case tLPAREN:
+ return TK_LeftParen;
+ case tRPAREN:
+ return TK_RightParen;
+ case tLBRACKET:
+ return TK_LeftBracket;
+ case tRBRACKET:
+ return TK_RightBracket;
+ case tLBRACE:
+ return TK_LeftBrace;
+ case tRBRACE:
+ return TK_RightBrace;
+ case tPLUSASSIGN:
+ return TK_PlusAssign;
+ case tINCR:
+ return TK_PlusPlus;
+ case tPLUS:
+ return TK_Plus;
+ case tMINUSASSIGN:
+ return TK_MinusAssign;
+ case tDECR:
+ return TK_MinusMinus;
+ case tARROW:
+ return TK_Arrow;
+ case tMINUS:
+ return TK_Minus;
+ case tSTARASSIGN:
+ return TK_StarAssign;
+ case tSTAR:
+ return TK_Star;
+ case tMODASSIGN:
+ return TK_PercentAssign;
+ case tMOD:
+ return TK_Percent;
+ case tXORASSIGN:
+ return TK_CaretAssign;
+ case tXOR:
+ return TK_Caret;
+ case tAMPERASSIGN:
+ return TK_AndAssign;
+ case tAND:
+ return TK_AndAnd;
+ case tAMPER:
+ return TK_And;
+ case tBITORASSIGN:
+ return TK_OrAssign;
+ case tOR:
+ return TK_OrOr;
+ case tBITOR:
+ return TK_Or;
+ case tBITCOMPLEMENT:
+ return TK_Tilde;
+ case tNOTEQUAL:
+ return TK_NE;
+ case tNOT:
+ return TK_Bang;
+ case tEQUAL:
+ return TK_EQ;
+ case tASSIGN:
+ return TK_Assign;
+ case tUNKNOWN_CHAR:
+ return TK_Invalid;
+ case tSHIFTL:
+ return TK_LeftShift;
+ case tLTEQUAL:
+ return TK_LE;
+ case tLT:
+ return TK_LT;
+ case tSHIFTRASSIGN:
+ return TK_RightShiftAssign;
+ case tSHIFTR:
+ return TK_RightShift;
+ case tGTEQUAL:
+ return TK_GE;
+ case tGT:
+ return TK_GT;
+ case tSHIFTLASSIGN:
+ return TK_LeftShiftAssign;
+ case tELLIPSIS:
+ return TK_DotDotDot;
+ case tDOT:
+ return TK_Dot;
+ case tDIVASSIGN:
+ return TK_SlashAssign;
+ case tDIV:
+ return TK_Slash;
+
+ case t_auto:
+ return TK_auto;
+ case t_break:
+ return TK_break;
+ case t_case:
+ return TK_case;
+ case t_char:
+ return TK_char;
+ case t_const:
+ return TK_const;
+ case t_continue:
+ return TK_continue;
+ case t_default:
+ return TK_default;
+ case t_do:
+ return TK_do;
+ case t_double:
+ return TK_double;
+ case t_else:
+ return TK_else;
+ case t_enum:
+ return TK_enum;
+ case t_extern:
+ return TK_extern;
+ case t_float:
+ return TK_float;
+ case t_for:
+ return TK_for;
+ case t_goto:
+ return TK_goto;
+ case t_if:
+ return TK_if;
+ case t_inline:
+ return TK_inline;
+ case t_int:
+ return TK_int;
+ case t_long:
+ return TK_long;
+ case t_register:
+ return TK_register;
+ case t_return:
+ return TK_return;
+ case t_short:
+ return TK_short;
+ case t_sizeof:
+ return TK_sizeof;
+ case t_static:
+ return TK_static;
+ case t_signed:
+ return TK_signed;
+ case t_struct:
+ return TK_struct;
+ case t_switch:
+ return TK_switch;
+ case t_typedef:
+ return TK_typedef;
+ case t_union:
+ return TK_union;
+ case t_unsigned:
+ return TK_unsigned;
+ case t_void:
+ return TK_void;
+ case t_volatile:
+ return TK_volatile;
+ case t_while:
+ return TK_while;
+ case tFLOATINGPT:
+ return TK_floating;
+ case tSTRING:
+ return TK_stringlit;
+ case tLSTRING:
+ return TK_stringlit;
+ case tUTF16STRING:
+ return TK_stringlit;
+ case tUTF32STRING:
+ return TK_stringlit;
+ case tCHAR:
+ return TK_charconst;
+ case tLCHAR:
+ return TK_charconst;
+ case tUTF16CHAR:
+ return TK_charconst;
+ case tUTF32CHAR:
+ return TK_charconst;
+ case t__Bool:
+ return TK__Bool;
+ case t__Complex:
+ return TK__Complex;
+ case t__Imaginary:
+ return TK__Imaginary;
+ case t_restrict:
+ return TK_restrict;
+ case tCOMPLETION:
+ return TK_Completion;
+ case tEOC:
+ return TK_EndOfCompletion;
+ case tEND_OF_INPUT:
+ return TK_EOF_TOKEN;
+
+ default:
+ assert false : "token not recognized by the UPC parser: " + token.getType();
+ return TK_Invalid;
}
}
-
-
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/IUPCNodeFactory.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/IUPCNodeFactory.java
index d062adc1f80..f96bcff5f1d 100644
--- 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
@@ -34,23 +34,20 @@ public interface IUPCNodeFactory extends ICNodeFactory {
public IUPCASTKeywordExpression newKeywordExpression(int keywordKind);
- public IUPCASTSynchronizationStatement newSyncronizationStatment(
- IASTExpression barrierExpression, int statmentKind);
+ public IUPCASTSynchronizationStatement newSyncronizationStatment(IASTExpression barrierExpression,
+ int statmentKind);
- public IUPCASTForallStatement newForallStatement(IASTStatement init,
- IASTExpression condition, IASTExpression iterationExpression,
- IASTStatement body, IASTExpression affinity);
+ public IUPCASTForallStatement newForallStatement(IASTStatement init, IASTExpression condition,
+ IASTExpression iterationExpression, IASTStatement body, IASTExpression affinity);
@Override
public IUPCASTSimpleDeclSpecifier newSimpleDeclSpecifier();
@Override
- public IUPCASTCompositeTypeSpecifier newCompositeTypeSpecifier(int key,
- IASTName name);
+ public IUPCASTCompositeTypeSpecifier newCompositeTypeSpecifier(int key, IASTName name);
@Override
- public IUPCASTElaboratedTypeSpecifier newElaboratedTypeSpecifier(int kind,
- IASTName name);
+ public IUPCASTElaboratedTypeSpecifier newElaboratedTypeSpecifier(int kind, IASTName name);
@Override
public IUPCASTEnumerationSpecifier newEnumerationSpecifier(IASTName name);
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 be3c3bcd7fd..3484859427a 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
@@ -39,7 +39,6 @@ import org.eclipse.cdt.internal.core.dom.parser.upc.ast.UPCASTTypeIdSizeofExpres
import org.eclipse.cdt.internal.core.dom.parser.upc.ast.UPCASTTypedefNameSpecifier;
import org.eclipse.cdt.internal.core.dom.parser.upc.ast.UPCASTUnarySizeofExpression;
-
/**
* Creates AST nodes that are specific to the UPC parser.
*
@@ -51,11 +50,9 @@ import org.eclipse.cdt.internal.core.dom.parser.upc.ast.UPCASTUnarySizeofExpress
@SuppressWarnings("restriction")
public class UPCASTNodeFactory extends CNodeFactory implements IUPCNodeFactory {
-
private boolean useUPCSizeofExpressions = false;
private int currentUPCSizofExpressionOperator = 0;
-
@Override
public void setUseUPCSizeofExpressions(int op) {
useUPCSizeofExpressions = true;
@@ -67,11 +64,9 @@ public class UPCASTNodeFactory extends CNodeFactory implements IUPCNodeFactory {
useUPCSizeofExpressions = false;
}
-
-
@Override
public IASTTypeIdExpression newTypeIdExpression(int operator, IASTTypeId typeId) {
- if(useUPCSizeofExpressions) {
+ if (useUPCSizeofExpressions) {
assert operator == IASTTypeIdExpression.op_sizeof;
return new UPCASTTypeIdSizeofExpression(currentUPCSizofExpressionOperator, typeId);
}
@@ -79,10 +74,9 @@ public class UPCASTNodeFactory extends CNodeFactory implements IUPCNodeFactory {
return super.newTypeIdExpression(operator, typeId);
}
-
@Override
public IASTUnaryExpression newUnaryExpression(int operator, IASTExpression operand) {
- if(useUPCSizeofExpressions) {
+ if (useUPCSizeofExpressions) {
assert operator == IASTUnaryExpression.op_sizeof;
return new UPCASTUnarySizeofExpression(currentUPCSizofExpressionOperator, operand);
}
@@ -90,50 +84,43 @@ public class UPCASTNodeFactory extends CNodeFactory implements IUPCNodeFactory {
return super.newUnaryExpression(operator, operand);
}
-
@Override
public IUPCASTKeywordExpression newKeywordExpression(int keywordKind) {
return new UPCASTKeywordExpression(keywordKind);
}
-
@Override
- public IUPCASTSynchronizationStatement newSyncronizationStatment(IASTExpression barrierExpression, int statmentKind) {
+ public IUPCASTSynchronizationStatement newSyncronizationStatment(IASTExpression barrierExpression,
+ int statmentKind) {
return new UPCASTSynchronizationStatement(barrierExpression, statmentKind);
}
-
@Override
public IUPCASTForallStatement newForallStatement(IASTStatement init, IASTExpression condition,
IASTExpression iterationExpression, IASTStatement body, IASTExpression affinity) {
return new UPCASTForallStatement(init, condition, iterationExpression, body, affinity);
}
-
@Override
public IUPCASTSimpleDeclSpecifier newSimpleDeclSpecifier() {
return new UPCASTSimpleDeclSpecifier();
}
-
@Override
public IUPCASTCompositeTypeSpecifier newCompositeTypeSpecifier(int key, IASTName name) {
return new UPCASTCompositeTypeSpecifier(key, name);
}
-
@Override
public IUPCASTElaboratedTypeSpecifier newElaboratedTypeSpecifier(int kind, IASTName name) {
return new UPCASTElaboratedTypeSpecifier(kind, name);
}
-
@Override
public IUPCASTEnumerationSpecifier newEnumerationSpecifier(IASTName name) {
return new UPCASTEnumerationSpecifier(name);
}
-
@Override
public IUPCASTTypedefNameSpecifier newTypedefNameSpecifier(IASTName name) {
return new UPCASTTypedefNameSpecifier(name);
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCKeyword.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCKeyword.java
index 53fb290923f..a3162c8f9cb 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
@@ -7,7 +7,7 @@
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
- *
+ *
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
@@ -34,70 +34,59 @@ import org.eclipse.cdt.core.parser.util.CharArrayMap;
/**
* Enumeration of keywords that UPC adds to C99.
- *
+ *
* @author Mike Kucera
*/
public enum UPCKeyword {
- MYTHREAD(TK_MYTHREAD),
- THREADS(TK_THREADS),
- UPC_MAX_BLOCKSIZE(TK_UPC_MAX_BLOCKSIZE),
- relaxed(TK_relaxed),
- shared(TK_shared),
- strict(TK_strict),
- upc_barrier(TK_upc_barrier),
- upc_localsizeof(TK_upc_localsizeof),
- upc_blocksizeof(TK_upc_blocksizeof),
- upc_elemsizeof(TK_upc_elemsizeof),
- upc_notify(TK_upc_notify),
- upc_fence(TK_upc_fence),
- upc_wait(TK_upc_wait),
- upc_forall(TK_upc_forall);
-
-
+ MYTHREAD(TK_MYTHREAD), THREADS(TK_THREADS), UPC_MAX_BLOCKSIZE(TK_UPC_MAX_BLOCKSIZE), relaxed(TK_relaxed),
+ shared(TK_shared), strict(TK_strict), upc_barrier(TK_upc_barrier), upc_localsizeof(TK_upc_localsizeof),
+ upc_blocksizeof(TK_upc_blocksizeof), upc_elemsizeof(TK_upc_elemsizeof), upc_notify(TK_upc_notify),
+ upc_fence(TK_upc_fence), upc_wait(TK_upc_wait), upc_forall(TK_upc_forall);
+
private final int tokenKind;
-
-
+
private static final CharArrayMap<Integer> tokenMap = new CharArrayMap<Integer>();
private static final String[] upcKeywords;
private static final String[] allKeywords;
-
+
UPCKeyword(int tokenKind) {
this.tokenKind = tokenKind;
}
-
+
static {
UPCKeyword[] keywords = values();
upcKeywords = new String[keywords.length];
- for(int i = 0; i < keywords.length; i++) {
- UPCKeyword keyword = keywords[i];
+ for (int i = 0; i < keywords.length; i++) {
+ UPCKeyword keyword = keywords[i];
String name = keyword.name();
upcKeywords[i] = name;
tokenMap.put(name.toCharArray(), keyword.tokenKind);
}
-
+
// TODO change to GCC language when gcc support is added
- ICLanguageKeywords c99Keywords = (ICLanguageKeywords) C99Language.getDefault().getAdapter(ICLanguageKeywords.class);
+ ICLanguageKeywords c99Keywords = (ICLanguageKeywords) C99Language.getDefault()
+ .getAdapter(ICLanguageKeywords.class);
String[] c99ks = c99Keywords.getKeywords();
allKeywords = new String[upcKeywords.length + c99ks.length];
System.arraycopy(c99ks, 0, allKeywords, 0, c99ks.length);
System.arraycopy(upcKeywords, 0, allKeywords, c99ks.length, upcKeywords.length);
}
-
+
public int getTokenKind() {
return tokenKind;
}
-
+
public static String[] getUPCOnlyKeywords() {
return upcKeywords;
}
-
+
public static String[] getAllKeywords() {
return allKeywords;
}
-
+
public static Integer getTokenKind(char[] image) {
- if(image == null)
+ 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
index f4e7a91eac1..82ec27a2622 100644
--- 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
@@ -7,7 +7,7 @@
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
- *
+ *
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
@@ -24,7 +24,7 @@ public class UPCLanguageKeywords extends CLanguageKeywords {
}
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 e14e21c2e86..206b842400c 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
@@ -13,7 +13,6 @@
*******************************************************************************/
package org.eclipse.cdt.core.dom.parser.upc;
-
import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_Completion;
import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_relaxed;
import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.TK_shared;
@@ -35,57 +34,48 @@ 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;
-
/**
* Extension to the C99ParserAction that adds support fot building
* an AST with UPC specific nodes.
*/
public class UPCParserAction extends C99BuildASTParserAction {
-
+
private IUPCNodeFactory nodeFactory;
-
-
+
/**
* TODO why is the nodeFactory passed as an argument
* @param nodeFactory
* @param parser
* @param tu
*/
- public UPCParserAction(ITokenStream parser, ScopedStack<Object> astStack, IUPCNodeFactory nodeFactory, ISecondaryParserFactory parserFactory) {
+ public UPCParserAction(ITokenStream parser, ScopedStack<Object> astStack, IUPCNodeFactory nodeFactory,
+ ISecondaryParserFactory parserFactory) {
super(parser, astStack, nodeFactory, parserFactory);
this.nodeFactory = nodeFactory;
nodeFactory.setUseC99SizeofExpressions();
}
-
-
- @Override
+
+ @Override
protected boolean isCompletionToken(IToken token) {
return token.getKind() == TK_Completion;
}
-
-
-
/**************************************************************************************
* Semantic actions
**************************************************************************************/
-
public void consumeExpressionUnarySizeofOperator(int upcOp) {
nodeFactory.setUseUPCSizeofExpressions(upcOp);
super.consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof);
nodeFactory.setUseC99SizeofExpressions();
}
-
-
+
public void consumeExpressionSizeofTypeId(int upcOp) {
nodeFactory.setUseUPCSizeofExpressions(upcOp);
super.consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof);
nodeFactory.setUseC99SizeofExpressions();
}
-
-
/**
* constant ::= 'MYTHREAD' | 'THREADS' | 'UPC_MAX_BLOCKSIZE'
*/
@@ -94,67 +84,66 @@ public class UPCParserAction extends C99BuildASTParserAction {
setOffsetAndLength(expr);
astStack.push(expr);
}
-
-
+
/**
* synchronization_statement ::= 'upc_notify' expression ';'
- * | 'upc_notify' ';'
- * | 'upc_wait' expression ';'
- * | 'upc_wait' ';'
- * | 'upc_barrier' expression ';'
- * | 'upc_barrier' ';'
- * | 'upc_fence' ';'
+ * | 'upc_notify' ';'
+ * | 'upc_wait' expression ';'
+ * | 'upc_wait' ';'
+ * | 'upc_barrier' expression ';'
+ * | 'upc_barrier' ';'
+ * | 'upc_fence' ';'
*/
public void consumeStatementSynchronizationStatement(int statementKind, boolean hasBarrierExpr) {
IASTExpression barrierExpression = hasBarrierExpr ? (IASTExpression) astStack.pop() : null;
- IUPCASTSynchronizationStatement statement = nodeFactory.newSyncronizationStatment(barrierExpression, statementKind);
+ IUPCASTSynchronizationStatement statement = nodeFactory.newSyncronizationStatment(barrierExpression,
+ statementKind);
setOffsetAndLength(statement);
astStack.push(statement);
}
-
-
+
/**
* iteration_statement
- * ::= 'upc_forall' '(' expression ';' expression ';' expression ';' affinity ')' statement
- * | 'upc_forall' '(' declaration expression ';' expression ';' affinity ')' statement
+ * ::= 'upc_forall' '(' expression ';' expression ';' expression ';' affinity ')' statement
+ * | 'upc_forall' '(' declaration expression ';' expression ';' affinity ')' statement
*/
- public void consumeStatementUPCForallLoop(boolean hasExpr1, boolean hasExpr2, boolean hasExpr3, boolean hasAffinity) {
+ public void consumeStatementUPCForallLoop(boolean hasExpr1, boolean hasExpr2, boolean hasExpr3,
+ boolean hasAffinity) {
IASTStatement body = (IASTStatement) astStack.pop();
-
+
boolean affinityContinue = false;
IASTExpression affinity = null;
- if(hasAffinity) {
+ if (hasAffinity) {
Object o = astStack.pop();
- if(o instanceof IASTExpression)
- affinity = (IASTExpression)o;
- else if(o instanceof IToken)
+ if (o instanceof IASTExpression)
+ affinity = (IASTExpression) o;
+ else if (o instanceof IToken)
affinityContinue = true;
}
-
+
IASTExpression expr3 = hasExpr3 ? (IASTExpression) astStack.pop() : null;
IASTExpression expr2 = hasExpr2 ? (IASTExpression) astStack.pop() : null;
-
+
IASTStatement initializer = nodeFactory.newNullStatement();
- if(hasExpr1) { // may be an expression or a declaration
+ if (hasExpr1) { // may be an expression or a declaration
Object node = astStack.pop();
- if(node instanceof IASTExpression)
- initializer = nodeFactory.newExpressionStatement((IASTExpression)node);
- else if(node instanceof IASTDeclaration)
- initializer = nodeFactory.newDeclarationStatement((IASTDeclaration)node);
+ if (node instanceof IASTExpression)
+ initializer = nodeFactory.newExpressionStatement((IASTExpression) node);
+ else if (node instanceof IASTDeclaration)
+ initializer = nodeFactory.newDeclarationStatement((IASTDeclaration) node);
}
-
+
IUPCASTForallStatement forStat = nodeFactory.newForallStatement(initializer, expr2, expr3, body, affinity);
forStat.setAffinityContinue(affinityContinue);
setOffsetAndLength(forStat);
astStack.push(forStat);
}
-
-
+
/**
* Temporary object used during the parsing of UPC declaration specifiers.
* Stored temporarily on the astStack, but does not become part of the AST.
* Makes parsing of layout qualifiers easier.
- *
+ *
* @author Mike
*/
private static class UPCParserActionLayoutQualifier {
@@ -162,74 +151,65 @@ public class UPCParserAction extends C99BuildASTParserAction {
public IASTExpression expression = null;
}
-
/**
* layout_qualifier ::= '[' constant_expression ']'
- * | '[' '*' ']'
- * | '[' ']'
+ * | '[' '*' ']'
+ * | '[' ']'
*/
public void consumeLayoutQualifier(boolean hasExpression, boolean hasStar) {
UPCParserActionLayoutQualifier layoutQualifier = new UPCParserActionLayoutQualifier();
layoutQualifier.hasStar = hasStar;
- if(hasExpression) {
+ if (hasExpression) {
layoutQualifier.expression = (IASTExpression) astStack.pop();
}
astStack.push(layoutQualifier);
}
-
-
-
+
/**
* Overrides setSpecifier to add support for temporary layout qualifier nodes.
*/
@Override
public void setSpecifier(ICASTDeclSpecifier declSpec, Object specifier) {
- if(specifier instanceof IToken)
- setTokenSpecifier((IUPCASTDeclSpecifier)declSpec, (IToken)specifier);
- else
- setLayoutQualifier((IUPCASTDeclSpecifier)declSpec, (UPCParserActionLayoutQualifier) specifier);
+ if (specifier instanceof IToken)
+ setTokenSpecifier((IUPCASTDeclSpecifier) declSpec, (IToken) specifier);
+ else
+ setLayoutQualifier((IUPCASTDeclSpecifier) declSpec, (UPCParserActionLayoutQualifier) specifier);
}
-
-
+
/**
* Support for new declaration specifier keywords.
- *
+ *
* 'shared' without [] is handled here
* 'shared' with [] is handled in setLayoutQualifier().
*/
protected void setTokenSpecifier(IUPCASTDeclSpecifier node, IToken token) {
- switch(token.getKind()) {
- case TK_relaxed:
- node.setReferenceType(IUPCASTDeclSpecifier.rt_relaxed);
- break;
- case TK_strict:
- node.setReferenceType(IUPCASTDeclSpecifier.rt_strict);
- break;
- case TK_shared:
- node.setSharedQualifier(IUPCASTDeclSpecifier.sh_shared_default_block_size);
- break;
- default:
- super.setSpecifier(node, token);
+ switch (token.getKind()) {
+ case TK_relaxed:
+ node.setReferenceType(IUPCASTDeclSpecifier.rt_relaxed);
+ break;
+ case TK_strict:
+ node.setReferenceType(IUPCASTDeclSpecifier.rt_strict);
+ break;
+ case TK_shared:
+ node.setSharedQualifier(IUPCASTDeclSpecifier.sh_shared_default_block_size);
+ break;
+ default:
+ super.setSpecifier(node, token);
}
}
-
-
+
/**
* Handles layout qualifiers with block size specified.
*/
protected void setLayoutQualifier(IUPCASTDeclSpecifier node, UPCParserActionLayoutQualifier layoutQualifier) {
- if(layoutQualifier.hasStar) {
+ if (layoutQualifier.hasStar) {
node.setSharedQualifier(IUPCASTDeclSpecifier.sh_shared_pure_allocation);
- }
- else if(layoutQualifier.expression != null) {
+ } else if (layoutQualifier.expression != null) {
node.setSharedQualifier(IUPCASTDeclSpecifier.sh_shared_constant_expression);
node.setBlockSizeExpression(layoutQualifier.expression);
- }
- else {
+ } else {
node.setSharedQualifier(IUPCASTDeclSpecifier.sh_shared_indefinite_allocation);
}
}
-
-}
-
+}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCSecondaryParserFactory.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCSecondaryParserFactory.java
index 3740b152fe1..a0d722dce38 100644
--- 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
@@ -24,7 +24,7 @@ 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{
+public class UPCSecondaryParserFactory implements ISecondaryParserFactory {
private static final UPCSecondaryParserFactory DEFAULT_INSTANCE = new UPCSecondaryParserFactory();
@@ -33,17 +33,19 @@ public class UPCSecondaryParserFactory implements ISecondaryParserFactory{
}
@Override
- public ISecondaryParser<IASTExpression> getExpressionParser(ITokenStream stream, Map<String,String> properties) {
+ public ISecondaryParser<IASTExpression> getExpressionParser(ITokenStream stream, Map<String, String> properties) {
return new UPCExpressionParser(stream, properties);
}
@Override
- public ISecondaryParser<IASTExpression> getNoCastExpressionParser(ITokenStream stream, Map<String,String> properties) {
+ public ISecondaryParser<IASTExpression> getNoCastExpressionParser(ITokenStream stream,
+ Map<String, String> properties) {
return new UPCNoCastExpressionParser(stream, properties);
}
@Override
- public ISecondaryParser<IASTExpression> getSizeofExpressionParser(ITokenStream stream, Map<String,String> properties) {
+ 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 d3f89dc7697..0e9f383d508 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
@@ -31,7 +31,6 @@ import org.eclipse.cdt.core.parser.IScanner;
import org.eclipse.cdt.core.parser.ParserLanguage;
import org.eclipse.cdt.internal.core.dom.parser.upc.UPCParser;
-
/**
* Implementation of the ILanguage extension point, adds UPC as a language to CDT.
*
@@ -43,14 +42,14 @@ public class UPCLanguage extends BaseExtensibleLanguage {
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 UPCLanguage myDefault = new UPCLanguage();
public static UPCLanguage getDefault() {
return myDefault;
}
@Override
- protected IParser<IASTTranslationUnit> getParser(IScanner scanner, IIndex index, Map<String,String> properties) {
+ protected IParser<IASTTranslationUnit> getParser(IScanner scanner, IIndex index, Map<String, String> properties) {
return new UPCParser(scanner, new DOMToUPCTokenMap(), getBuiltinBindingsProvider(), index, properties);
}
@@ -64,13 +63,13 @@ public class UPCLanguage extends BaseExtensibleLanguage {
return ILinkage.C_LINKAGE_ID;
}
-
- private static final ICLanguageKeywords upcKeywords = new UPCLanguageKeywords(ScannerExtensionConfiguration.createC());
+ private static final ICLanguageKeywords upcKeywords = new UPCLanguageKeywords(
+ ScannerExtensionConfiguration.createC());
@SuppressWarnings("rawtypes")
@Override
public Object getAdapter(Class adapter) {
- if(ICLanguageKeywords.class.equals(adapter))
+ if (ICLanguageKeywords.class.equals(adapter))
return upcKeywords;
return super.getAdapter(adapter);
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 28970106ce8..0e7bce3d57e 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
@@ -15,9 +15,7 @@ package org.eclipse.cdt.core.dom.upc.ast;
import org.eclipse.cdt.core.dom.ast.c.ICASTCompositeTypeSpecifier;
-public interface IUPCASTCompositeTypeSpecifier extends
- IUPCASTDeclSpecifier, ICASTCompositeTypeSpecifier {
-
+public interface IUPCASTCompositeTypeSpecifier extends IUPCASTDeclSpecifier, ICASTCompositeTypeSpecifier {
@Override
public IUPCASTCompositeTypeSpecifier copy();
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTDeclSpecifier.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTDeclSpecifier.java
index 5abf3e2425a..4a54bc07f85 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
@@ -20,8 +20,7 @@ import org.eclipse.cdt.core.dom.ast.c.ICASTDeclSpecifier;
public interface IUPCASTDeclSpecifier extends ICASTDeclSpecifier {
public static final ASTNodeProperty BLOCK_SIZE_EXPRESSION = new ASTNodeProperty(
- "IUPCASTDeclSpecifier.BLOCK_SIZE_EXPRESSION - IUPCASTDeclSpecifier block size expression"); //$NON-NLS-1$
-
+ "IUPCASTDeclSpecifier.BLOCK_SIZE_EXPRESSION - IUPCASTDeclSpecifier block size expression"); //$NON-NLS-1$
public static final int rt_unspecified = 0;
@@ -29,8 +28,6 @@ public interface IUPCASTDeclSpecifier extends ICASTDeclSpecifier {
public static final int rt_relaxed = 2;
-
-
public static final int sh_not_shared = 0;
public static final int sh_shared_default_block_size = 1;
@@ -41,25 +38,18 @@ public interface IUPCASTDeclSpecifier extends ICASTDeclSpecifier {
public static final int sh_shared_constant_expression = 4;
-
-
public int getReferenceType();
public void setReferenceType(int referenceType);
-
-
public int getSharedQualifier();
public void setSharedQualifier(int shared);
-
-
public IASTExpression getBlockSizeExpression();
public void setBlockSizeExpression(IASTExpression expr);
-
@Override
public IUPCASTDeclSpecifier copy();
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTElaboratedTypeSpecifier.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTElaboratedTypeSpecifier.java
index 919ba869aa5..3db445c48ed 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
@@ -15,9 +15,7 @@ package org.eclipse.cdt.core.dom.upc.ast;
import org.eclipse.cdt.core.dom.ast.c.ICASTElaboratedTypeSpecifier;
-public interface IUPCASTElaboratedTypeSpecifier extends IUPCASTDeclSpecifier,
- ICASTElaboratedTypeSpecifier {
-
+public interface IUPCASTElaboratedTypeSpecifier extends IUPCASTDeclSpecifier, ICASTElaboratedTypeSpecifier {
@Override
public IUPCASTElaboratedTypeSpecifier copy();
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTEnumerationSpecifier.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTEnumerationSpecifier.java
index 6c1c4eea3c7..7e4c580f946 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
@@ -15,9 +15,7 @@ package org.eclipse.cdt.core.dom.upc.ast;
import org.eclipse.cdt.core.dom.ast.c.ICASTEnumerationSpecifier;
-public interface IUPCASTEnumerationSpecifier extends IUPCASTDeclSpecifier,
- ICASTEnumerationSpecifier {
-
+public interface IUPCASTEnumerationSpecifier extends IUPCASTDeclSpecifier, ICASTEnumerationSpecifier {
@Override
public IUPCASTEnumerationSpecifier copy();
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTForallStatement.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTForallStatement.java
index f13f445facd..eb94ba43aa3 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
@@ -20,15 +20,14 @@ import org.eclipse.cdt.core.dom.ast.IASTStatement;
public interface IUPCASTForallStatement extends IASTForStatement {
- public static final ASTNodeProperty AFFINITY = new ASTNodeProperty(
- "IUPCASTForallStatement.AFFINITY - IASTExpression affinity for IUPCASTForallStatement"); //$NON-NLS-1$
+ public static final ASTNodeProperty AFFINITY = new ASTNodeProperty(
+ "IUPCASTForallStatement.AFFINITY - IASTExpression affinity for IUPCASTForallStatement"); //$NON-NLS-1$
-
- @Override
+ @Override
public IASTStatement getInitializerStatement();
- @Override
- public void setInitializerStatement( IASTStatement statement );
+ @Override
+ public void setInitializerStatement(IASTStatement statement);
@Override
public IASTExpression getConditionExpression();
@@ -56,7 +55,6 @@ public interface IUPCASTForallStatement extends IASTForStatement {
@Override
public void setBody(IASTStatement statement);
-
@Override
public IUPCASTForallStatement copy();
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTKeywordExpression.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTKeywordExpression.java
index ac69fa47e75..31fe55b5624 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
@@ -23,12 +23,10 @@ public interface IUPCASTKeywordExpression extends IASTExpression {
public static final int kw_upc_max_block_size = 3;
-
public int getKeywordKind();
public void setKeywordKind(int kind);
-
@Override
public IUPCASTKeywordExpression copy();
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTLayoutQualifier.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTLayoutQualifier.java
index e654f1b56c9..80d0f127e38 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
@@ -7,7 +7,7 @@
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
- *
+ *
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
@@ -15,24 +15,19 @@ package org.eclipse.cdt.core.dom.upc.ast;
import org.eclipse.cdt.core.dom.ast.IASTExpression;
-
public interface IUPCASTLayoutQualifier {
-
-
+
public boolean isIndefiniteBlockAllocation();
-
+
public void setIndefiniteBlockAllocation(boolean allocation);
-
-
+
public boolean isPureBlockAllocation();
-
+
public void setPureBlockAllocation(boolean allocation);
-
-
+
public IASTExpression getBlockSizeExpression();
public void setBlockSizeExpression(IASTExpression expr);
-
-
+
public IUPCASTLayoutQualifier copy();
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTSimpleDeclSpecifier.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTSimpleDeclSpecifier.java
index ea247d12ff2..74c0719029d 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
@@ -15,9 +15,7 @@ package org.eclipse.cdt.core.dom.upc.ast;
import org.eclipse.cdt.core.dom.ast.c.ICASTSimpleDeclSpecifier;
-public interface IUPCASTSimpleDeclSpecifier extends IUPCASTDeclSpecifier,
- ICASTSimpleDeclSpecifier {
-
+public interface IUPCASTSimpleDeclSpecifier extends IUPCASTDeclSpecifier, ICASTSimpleDeclSpecifier {
@Override
public IUPCASTSimpleDeclSpecifier copy();
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTSynchronizationStatement.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTSynchronizationStatement.java
index 8b6fde6bb69..7c49de0ea36 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
@@ -19,10 +19,8 @@ import org.eclipse.cdt.core.dom.ast.IASTStatement;
public interface IUPCASTSynchronizationStatement extends IASTStatement {
-
public static final ASTNodeProperty BARRIER_EXPRESSION = new ASTNodeProperty(
- "IUPCASTSynchronizationStatement.BARRIER_EXPRESSION - IASTExpression barrier for IUPCASTSynchronizationStatement"); //$NON-NLS-1$
-
+ "IUPCASTSynchronizationStatement.BARRIER_EXPRESSION - IASTExpression barrier for IUPCASTSynchronizationStatement"); //$NON-NLS-1$
public final int st_upc_notify = 1;
@@ -32,7 +30,6 @@ public interface IUPCASTSynchronizationStatement extends IASTStatement {
public final int st_upc_fence = 4;
-
public IASTExpression getBarrierExpression();
public void setBarrierExpression(IASTExpression expr);
@@ -41,7 +38,6 @@ public interface IUPCASTSynchronizationStatement extends IASTStatement {
public void setStatementKind(int kind);
-
@Override
public IUPCASTSynchronizationStatement copy();
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTTypeIdSizeofExpression.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTTypeIdSizeofExpression.java
index f724c4da298..9453f5c564a 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
@@ -21,14 +21,12 @@ public interface IUPCASTTypeIdSizeofExpression extends IASTTypeIdExpression {
public final int upc_blocksizeof = 2;
- public final int upc_elemsizeof = 3;
-
+ public final int upc_elemsizeof = 3;
public int getUPCSizeofOperator();
public void setUPCSizeofOperator(int upcSizeofOperator);
-
@Override
public IUPCASTTypeIdSizeofExpression copy();
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTTypedefNameSpecifier.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTTypedefNameSpecifier.java
index 610f45299ea..4a925d9fde1 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
@@ -15,9 +15,7 @@ package org.eclipse.cdt.core.dom.upc.ast;
import org.eclipse.cdt.core.dom.ast.c.ICASTTypedefNameSpecifier;
-public interface IUPCASTTypedefNameSpecifier extends IUPCASTDeclSpecifier,
- ICASTTypedefNameSpecifier {
-
+public interface IUPCASTTypedefNameSpecifier extends IUPCASTDeclSpecifier, ICASTTypedefNameSpecifier {
@Override
public IUPCASTTypedefNameSpecifier copy();
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTUnarySizeofExpression.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTUnarySizeofExpression.java
index 4ca897b176c..7046087077a 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
@@ -21,14 +21,12 @@ public interface IUPCASTUnarySizeofExpression extends IASTUnaryExpression {
public final int upc_blocksizeof = 2;
- public final int upc_elemsizeof = 3;
-
+ public final int upc_elemsizeof = 3;
public int getUPCSizeofOperator();
public void setUPCSizeofOperator(int upcSizeofOperator);
-
@Override
public IUPCASTUnarySizeofExpression copy();
} \ No newline at end of file
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParser.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParser.java
index 1587f68f921..2737b9a6b62 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
@@ -66,1555 +66,1996 @@ import org.eclipse.cdt.core.dom.upc.ast.IUPCASTUnarySizeofExpression;
import org.eclipse.cdt.core.index.IIndex;
import org.eclipse.cdt.core.parser.IScanner;
-public class UPCExpressionParser extends PrsStream implements RuleAction, ITokenStream,
- ITokenCollector, IParser< IASTExpression >
- , ISecondaryParser< IASTExpression >
-{
- private static ParseTable prs = new UPCExpressionParserprs();
- private FixedBacktrackingParser btParser;
-
- public FixedBacktrackingParser getParser() { return btParser; }
- private void setResult(Object object) { btParser.setSym1(object); }
- public Object getRhsSym(int i) { return btParser.getSym(i); }
-
- public int getRhsTokenIndex(int i) { return btParser.getToken(i); }
- public IToken getRhsIToken(int i) { return super.getIToken(getRhsTokenIndex(i)); }
-
- public int getRhsFirstTokenIndex(int i) { return btParser.getFirstToken(i); }
- public IToken getRhsFirstIToken(int i) { return super.getIToken(getRhsFirstTokenIndex(i)); }
-
- public int getRhsLastTokenIndex(int i) { return btParser.getLastToken(i); }
- public IToken getRhsLastIToken(int i) { return super.getIToken(getRhsLastTokenIndex(i)); }
-
- public int getLeftSpan() { return btParser.getFirstToken(); }
- @Override
- public IToken getLeftIToken() { return super.getIToken(getLeftSpan()); }
-
- public int getRightSpan() { return btParser.getLastToken(); }
- @Override
- public IToken getRightIToken() { return super.getIToken(getRightSpan()); }
-
- public int getRhsErrorTokenIndex(int i)
- {
- int index = btParser.getToken(i);
- IToken err = super.getIToken(index);
- return (err instanceof ErrorToken ? index : 0);
- }
- public ErrorToken getRhsErrorIToken(int i)
- {
- int index = btParser.getToken(i);
- IToken err = super.getIToken(index);
- return (ErrorToken) (err instanceof ErrorToken ? err : null);
- }
-
- public UPCExpressionParser(LexStream lexStream)
- {
- super(lexStream);
-
- try
- {
- super.remapTerminalSymbols(orderedTerminalSymbols(), UPCExpressionParserprs.EOFT_SYMBOL);
- }
- catch(NullExportedSymbolsException e) {
- }
- catch(NullTerminalSymbolsException e) {
- }
- catch(UnimplementedTerminalsException e)
- {
- java.util.ArrayList unimplemented_symbols = e.getSymbols();
- System.out.println("The Lexer will not scan the following token(s):");
- for (int i = 0; i < unimplemented_symbols.size(); i++)
- {
- Integer id = (Integer) unimplemented_symbols.get(i);
- System.out.println(" " + UPCExpressionParsersym.orderedTerminalSymbols[id.intValue()]);
- }
- System.out.println();
- }
- catch(UndefinedEofSymbolException e)
- {
- throw new Error(new UndefinedEofSymbolException
- ("The Lexer does not implement the Eof symbol " +
- UPCExpressionParsersym.orderedTerminalSymbols[UPCExpressionParserprs.EOFT_SYMBOL]));
- }
- }
-
- @Override
- public String[] orderedTerminalSymbols() { return UPCExpressionParsersym.orderedTerminalSymbols; }
- public String getTokenKindName(int kind) { return UPCExpressionParsersym.orderedTerminalSymbols[kind]; }
- public int getEOFTokenKind() { return UPCExpressionParserprs.EOFT_SYMBOL; }
- public PrsStream getParseStream() { return this; }
-
- //
- // Report error message for given error_token.
- //
- public final void reportErrorTokenMessage(int error_token, String msg)
- {
- int firsttok = super.getFirstErrorToken(error_token),
- lasttok = super.getLastErrorToken(error_token);
- String location = super.getFileName() + ':' +
- (firsttok > lasttok
- ? (super.getEndLine(lasttok) + ":" + super.getEndColumn(lasttok))
- : (super.getLine(error_token) + ":" +
- super.getColumn(error_token) + ":" +
- super.getEndLine(error_token) + ":" +
- super.getEndColumn(error_token)))
- + ": ";
- super.reportError((firsttok > lasttok ? ParseErrorCodes.INSERTION_CODE : ParseErrorCodes.SUBSTITUTION_CODE), location, msg);
- }
-
- public void parser()
- {
- parser(null, 0);
- }
-
- public void parser(Monitor monitor)
- {
- parser(monitor, 0);
- }
-
- public void parser(int error_repair_count)
- {
- parser(null, error_repair_count);
- }
-
- public void parser(Monitor monitor, int error_repair_count)
- {
- try
- {
- btParser = new FixedBacktrackingParser(monitor, this, prs, this);
- }
- catch (NotBacktrackParseTableException e)
- {
- throw new Error(new NotBacktrackParseTableException
- ("Regenerate UPCExpressionParserprs.java with -BACKTRACK option"));
- }
- catch (BadParseSymFileException e)
- {
- throw new Error(new BadParseSymFileException("Bad Parser Symbol File -- UPCExpressionParsersym.java"));
- }
-
- try
- {
- btParser.parse(error_repair_count);
- }
- catch (BadParseException e)
- {
- reset(e.error_token); // point to error token
- DiagnoseParser diagnoseParser = new DiagnoseParser(this, prs);
- diagnoseParser.diagnose(e.error_token);
- }
- }
-
-
-private UPCParserAction action;
-private IASTCompletionNode compNode;
-
-
-public UPCExpressionParser(IScanner scanner, IDOMTokenMap tokenMap, IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Map<String,String> properties) {
- initActions(properties);
- action.initializeTranslationUnit(scanner, builtinBindingsProvider, index);
- CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap);
-}
+public class UPCExpressionParser extends PrsStream implements RuleAction, ITokenStream, ITokenCollector,
+ IParser<IASTExpression>, ISecondaryParser<IASTExpression> {
+ private static ParseTable prs = new UPCExpressionParserprs();
+ private FixedBacktrackingParser btParser;
-private void initActions(Map<String,String> properties) {
- ScopedStack<Object> astStack = new ScopedStack<Object>();
+ public FixedBacktrackingParser getParser() {
+ return btParser;
+ }
- action = new UPCParserAction (this, astStack, new UPCASTNodeFactory() , UPCSecondaryParserFactory.getDefault() );
- action.setParserProperties(properties);
+ private void setResult(Object object) {
+ btParser.setSym1(object);
+ }
+ public Object getRhsSym(int i) {
+ return btParser.getSym(i);
+ }
-}
+ public int getRhsTokenIndex(int i) {
+ return btParser.getToken(i);
+ }
+ public IToken getRhsIToken(int i) {
+ return super.getIToken(getRhsTokenIndex(i));
+ }
-@Override
-public void addToken(IToken token) {
- token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called?
- super.addToken(token);
-}
+ public int getRhsFirstTokenIndex(int i) {
+ return btParser.getFirstToken(i);
+ }
+ public IToken getRhsFirstIToken(int i) {
+ return super.getIToken(getRhsFirstTokenIndex(i));
+ }
-@Override
-public IASTExpression parse() {
- // this has to be done, or... kaboom!
- setStreamLength(getSize());
+ public int getRhsLastTokenIndex(int i) {
+ return btParser.getLastToken(i);
+ }
- final int errorRepairCount = -1; // -1 means full error handling
- parser(null, errorRepairCount); // do the actual parse
- super.resetTokenStream(); // allow tokens to be garbage collected
+ public IToken getRhsLastIToken(int i) {
+ return super.getIToken(getRhsLastTokenIndex(i));
+ }
- compNode = action.getASTCompletionNode(); // the completion node may be null
- return ( IASTExpression ) action.getParseResult();
-}
+ public int getLeftSpan() {
+ return btParser.getFirstToken();
+ }
+ @Override
+ public IToken getLeftIToken() {
+ return super.getIToken(getLeftSpan());
+ }
-@Override
-public IASTCompletionNode getCompletionNode() {
- return compNode;
-}
+ public int getRightSpan() {
+ return btParser.getLastToken();
+ }
-// uncomment this method to use with backtracking parser
-@Override
-public List<IToken> getRuleTokens() {
- return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
-}
+ @Override
+ public IToken getRightIToken() {
+ return super.getIToken(getRightSpan());
+ }
-@Override
-public String[] getOrderedTerminalSymbols() {
- return UPCExpressionParsersym.orderedTerminalSymbols;
-}
+ public int getRhsErrorTokenIndex(int i) {
+ int index = btParser.getToken(i);
+ IToken err = super.getIToken(index);
+ return (err instanceof ErrorToken ? index : 0);
+ }
-@Override
-@SuppressWarnings("nls")
-public String getName() {
- return "UPCExpressionParser";
-}
+ public ErrorToken getRhsErrorIToken(int i) {
+ int index = btParser.getToken(i);
+ IToken err = super.getIToken(index);
+ return (ErrorToken) (err instanceof ErrorToken ? err : null);
+ }
+ public UPCExpressionParser(LexStream lexStream) {
+ super(lexStream);
+
+ try {
+ super.remapTerminalSymbols(orderedTerminalSymbols(), UPCExpressionParserprs.EOFT_SYMBOL);
+ } catch (NullExportedSymbolsException e) {
+ } catch (NullTerminalSymbolsException e) {
+ } catch (UnimplementedTerminalsException e) {
+ java.util.ArrayList unimplemented_symbols = e.getSymbols();
+ System.out.println("The Lexer will not scan the following token(s):");
+ for (int i = 0; i < unimplemented_symbols.size(); i++) {
+ Integer id = (Integer) unimplemented_symbols.get(i);
+ System.out.println(" " + UPCExpressionParsersym.orderedTerminalSymbols[id.intValue()]);
+ }
+ System.out.println();
+ } catch (UndefinedEofSymbolException e) {
+ throw new Error(new UndefinedEofSymbolException("The Lexer does not implement the Eof symbol "
+ + UPCExpressionParsersym.orderedTerminalSymbols[UPCExpressionParserprs.EOFT_SYMBOL]));
+ }
+ }
+ @Override
+ public String[] orderedTerminalSymbols() {
+ return UPCExpressionParsersym.orderedTerminalSymbols;
+ }
-private ITokenMap tokenMap = null;
+ public String getTokenKindName(int kind) {
+ return UPCExpressionParsersym.orderedTerminalSymbols[kind];
+ }
-@Override
-public void setTokens(List<IToken> tokens) {
- resetTokenStream();
- addToken(new Token(null, 0, 0, 0)); // dummy token
- for(IToken token : tokens) {
- token.setKind(tokenMap.mapKind(token.getKind()));
- addToken(token);
+ public int getEOFTokenKind() {
+ return UPCExpressionParserprs.EOFT_SYMBOL;
}
- addToken(new Token(null, 0, 0, UPCExpressionParsersym.TK_EOF_TOKEN));
-}
-public UPCExpressionParser(ITokenStream stream, Map<String,String> properties) { // constructor for creating secondary parser
- initActions(properties);
- tokenMap = new TokenMap(UPCExpressionParsersym.orderedTerminalSymbols, stream.getOrderedTerminalSymbols());
-}
+ public PrsStream getParseStream() {
+ return this;
+ }
+ //
+ // Report error message for given error_token.
+ //
+ public final void reportErrorTokenMessage(int error_token, String msg) {
+ int firsttok = super.getFirstErrorToken(error_token), lasttok = super.getLastErrorToken(error_token);
+ String location = super.getFileName() + ':'
+ + (firsttok > lasttok ? (super.getEndLine(lasttok) + ":" + super.getEndColumn(lasttok))
+ : (super.getLine(error_token) + ":" + super.getColumn(error_token) + ":"
+ + super.getEndLine(error_token) + ":" + super.getEndColumn(error_token)))
+ + ": ";
+ super.reportError((firsttok > lasttok ? ParseErrorCodes.INSERTION_CODE : ParseErrorCodes.SUBSTITUTION_CODE),
+ location, msg);
+ }
- @Override
- public void ruleAction(int ruleNumber)
- {
- switch (ruleNumber)
- {
-
- //
- // Rule 1: <openscope-ast> ::= $Empty
- //
- case 1: { action. openASTScope(); break;
- }
-
- //
- // Rule 2: <empty> ::= $Empty
- //
- case 2: { action. consumeEmpty(); break;
- }
-
- //
- // Rule 13: literal ::= integer
- //
- case 13: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant); break;
- }
-
- //
- // Rule 14: literal ::= floating
- //
- case 14: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant); break;
- }
-
- //
- // Rule 15: literal ::= charconst
- //
- case 15: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant); break;
- }
-
- //
- // Rule 16: literal ::= stringlit
- //
- case 16: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal); break;
- }
-
- //
- // Rule 18: primary_expression ::= primary_expression_id
- //
- case 18: { action. consumeExpressionID(); break;
- }
-
- //
- // Rule 19: primary_expression ::= ( expression )
- //
- case 19: { action. consumeExpressionBracketed(); break;
- }
-
- //
- // Rule 22: postfix_expression ::= postfix_expression [ expression ]
- //
- case 22: { action. consumeExpressionArraySubscript(); break;
- }
-
- //
- // Rule 23: postfix_expression ::= postfix_expression ( expression_list_opt )
- //
- case 23: { action. consumeExpressionFunctionCall(); break;
- }
-
- //
- // Rule 24: postfix_expression ::= postfix_expression . member_name
- //
- case 24: { action. consumeExpressionFieldReference(false); break;
- }
-
- //
- // Rule 25: postfix_expression ::= postfix_expression -> member_name
- //
- case 25: { action. consumeExpressionFieldReference(true); break;
- }
-
- //
- // Rule 26: postfix_expression ::= postfix_expression ++
- //
- case 26: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break;
- }
-
- //
- // Rule 27: postfix_expression ::= postfix_expression --
- //
- case 27: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break;
- }
-
- //
- // Rule 28: postfix_expression ::= ( type_id ) initializer_list
- //
- case 28: { action. consumeExpressionTypeIdInitializer(); break;
- }
-
- //
- // Rule 33: unary_expression ::= ++ unary_expression
- //
- case 33: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break;
- }
-
- //
- // Rule 34: unary_expression ::= -- unary_expression
- //
- case 34: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break;
- }
-
- //
- // Rule 35: unary_expression ::= & cast_expression
- //
- case 35: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break;
- }
-
- //
- // Rule 36: unary_expression ::= * cast_expression
- //
- case 36: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break;
- }
-
- //
- // Rule 37: unary_expression ::= + cast_expression
- //
- case 37: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break;
- }
-
- //
- // Rule 38: unary_expression ::= - cast_expression
- //
- case 38: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break;
- }
-
- //
- // Rule 39: unary_expression ::= ~ cast_expression
- //
- case 39: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break;
- }
-
- //
- // Rule 40: unary_expression ::= ! cast_expression
- //
- case 40: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break;
- }
-
- //
- // Rule 41: unary_expression ::= sizeof unary_expression
- //
- case 41: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break;
- }
-
- //
- // Rule 42: unary_expression ::= sizeof ( type_id )
- //
- case 42: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof); break;
- }
-
- //
- // Rule 44: cast_expression ::= ( type_id ) cast_expression
- //
- case 44: { action. consumeExpressionCast(IASTCastExpression.op_cast); break;
- }
-
- //
- // Rule 46: multiplicative_expression ::= multiplicative_expression * cast_expression
- //
- case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break;
- }
-
- //
- // Rule 47: multiplicative_expression ::= multiplicative_expression / cast_expression
- //
- case 47: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break;
- }
-
- //
- // Rule 48: multiplicative_expression ::= multiplicative_expression % cast_expression
- //
- case 48: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break;
- }
-
- //
- // Rule 50: additive_expression ::= additive_expression + multiplicative_expression
- //
- case 50: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break;
- }
-
- //
- // Rule 51: additive_expression ::= additive_expression - multiplicative_expression
- //
- case 51: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break;
- }
-
- //
- // Rule 53: shift_expression ::= shift_expression << additive_expression
- //
- case 53: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break;
- }
-
- //
- // Rule 54: shift_expression ::= shift_expression >> additive_expression
- //
- case 54: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break;
- }
-
- //
- // Rule 56: relational_expression ::= relational_expression < shift_expression
- //
- case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break;
- }
-
- //
- // Rule 57: relational_expression ::= relational_expression > shift_expression
- //
- case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break;
- }
-
- //
- // Rule 58: relational_expression ::= relational_expression <= shift_expression
- //
- case 58: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break;
- }
-
- //
- // Rule 59: relational_expression ::= relational_expression >= shift_expression
- //
- case 59: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break;
- }
-
- //
- // Rule 61: equality_expression ::= equality_expression == relational_expression
- //
- case 61: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break;
- }
-
- //
- // Rule 62: equality_expression ::= equality_expression != relational_expression
- //
- case 62: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break;
- }
-
- //
- // Rule 64: and_expression ::= and_expression & equality_expression
- //
- case 64: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break;
- }
-
- //
- // Rule 66: exclusive_or_expression ::= exclusive_or_expression ^ and_expression
- //
- case 66: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break;
- }
-
- //
- // Rule 68: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression
- //
- case 68: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break;
- }
-
- //
- // Rule 70: logical_and_expression ::= logical_and_expression && inclusive_or_expression
- //
- case 70: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break;
- }
-
- //
- // Rule 72: logical_or_expression ::= logical_or_expression || logical_and_expression
- //
- case 72: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break;
- }
-
- //
- // Rule 74: conditional_expression ::= logical_or_expression ? expression : assignment_expression
- //
- case 74: { action. consumeExpressionConditional(); break;
- }
-
- //
- // Rule 76: assignment_expression ::= unary_expression = assignment_expression
- //
- case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break;
- }
-
- //
- // Rule 77: assignment_expression ::= unary_expression *= assignment_expression
- //
- case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break;
- }
-
- //
- // Rule 78: assignment_expression ::= unary_expression /= assignment_expression
- //
- case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break;
- }
-
- //
- // Rule 79: assignment_expression ::= unary_expression %= assignment_expression
- //
- case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break;
- }
-
- //
- // Rule 80: assignment_expression ::= unary_expression += assignment_expression
- //
- case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break;
- }
-
- //
- // Rule 81: assignment_expression ::= unary_expression -= assignment_expression
- //
- case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break;
- }
-
- //
- // Rule 82: assignment_expression ::= unary_expression <<= assignment_expression
- //
- case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break;
- }
-
- //
- // Rule 83: assignment_expression ::= unary_expression >>= assignment_expression
- //
- case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break;
- }
-
- //
- // Rule 84: assignment_expression ::= unary_expression &= assignment_expression
- //
- case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break;
- }
-
- //
- // Rule 85: assignment_expression ::= unary_expression ^= assignment_expression
- //
- case 85: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break;
- }
-
- //
- // Rule 86: assignment_expression ::= unary_expression |= assignment_expression
- //
- case 86: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break;
- }
-
- //
- // Rule 89: expression_list ::= <openscope-ast> expression_list_actual
- //
- case 89: { action. consumeExpressionList(); break;
- }
-
- //
- // Rule 91: expression_list_opt ::= $Empty
- //
- case 91: { action. consumeEmpty(); break;
- }
-
- //
- // Rule 101: statement ::= ERROR_TOKEN
- //
- case 101: { action. consumeStatementProblem(); break;
- }
-
- //
- // Rule 102: labeled_statement ::= identifier_token : statement
- //
- case 102: { action. consumeStatementLabeled(); break;
- }
-
- //
- // Rule 103: labeled_statement ::= case constant_expression : statement
- //
- case 103: { action. consumeStatementCase(); break;
- }
-
- //
- // Rule 104: labeled_statement ::= default : statement
- //
- case 104: { action. consumeStatementDefault(); break;
- }
-
- //
- // Rule 105: compound_statement ::= { }
- //
- case 105: { action. consumeStatementCompoundStatement(false); break;
- }
-
- //
- // Rule 106: compound_statement ::= { <openscope-ast> block_item_list }
- //
- case 106: { action. consumeStatementCompoundStatement(true); break;
- }
-
- //
- // Rule 110: block_item ::= declaration
- //
- case 110: { action. consumeStatementDeclarationWithDisambiguation(); break;
- }
-
- //
- // Rule 111: expression_statement ::= ;
- //
- case 111: { action. consumeStatementNull(); break;
- }
-
- //
- // Rule 112: expression_statement ::= expression_in_statement ;
- //
- case 112: { action. consumeStatementExpression(); break;
- }
-
- //
- // Rule 113: selection_statement ::= if ( expression ) statement
- //
- case 113: { action. consumeStatementIf(false); break;
- }
-
- //
- // Rule 114: selection_statement ::= if ( expression ) statement else statement
- //
- case 114: { action. consumeStatementIf(true); break;
- }
-
- //
- // Rule 115: selection_statement ::= switch ( expression ) statement
- //
- case 115: { action. consumeStatementSwitch(); break;
- }
-
- //
- // Rule 117: expression_opt ::= $Empty
- //
- case 117: { action. consumeEmpty(); break;
- }
-
- //
- // Rule 118: iteration_statement ::= do statement while ( expression ) ;
- //
- case 118: { action. consumeStatementDoLoop(true); break;
- }
-
- //
- // Rule 119: iteration_statement ::= do statement
- //
- case 119: { action. consumeStatementDoLoop(false); break;
- }
-
- //
- // Rule 120: iteration_statement ::= while ( expression ) statement
- //
- case 120: { action. consumeStatementWhileLoop(); break;
- }
-
- //
- // Rule 121: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement
- //
- case 121: { action. consumeStatementForLoop(); break;
- }
-
- //
- // Rule 122: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement
- //
- case 122: { action. consumeStatementForLoop(); break;
- }
-
- //
- // Rule 123: jump_statement ::= goto identifier_token ;
- //
- case 123: { action. consumeStatementGoto(); break;
- }
-
- //
- // Rule 124: jump_statement ::= continue ;
- //
- case 124: { action. consumeStatementContinue(); break;
- }
-
- //
- // Rule 125: jump_statement ::= break ;
- //
- case 125: { action. consumeStatementBreak(); break;
- }
-
- //
- // Rule 126: jump_statement ::= return ;
- //
- case 126: { action. consumeStatementReturn(false); break;
- }
-
- //
- // Rule 127: jump_statement ::= return expression ;
- //
- case 127: { action. consumeStatementReturn(true); break;
- }
-
- //
- // Rule 128: declaration ::= declaration_specifiers ;
- //
- case 128: { action. consumeDeclarationSimple(false); break;
- }
-
- //
- // Rule 129: declaration ::= declaration_specifiers <openscope-ast> init_declarator_list ;
- //
- case 129: { action. consumeDeclarationSimple(true); break;
- }
-
- //
- // Rule 130: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
- //
- case 130: { action. consumeDeclarationSpecifiersSimple(); break;
- }
-
- //
- // Rule 131: declaration_specifiers ::= <openscope-ast> struct_or_union_declaration_specifiers
- //
- case 131: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
- }
-
- //
- // Rule 132: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
- //
- case 132: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
- }
-
- //
- // Rule 133: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
- //
- case 133: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
- }
-
- //
- // Rule 134: declaration_specifiers ::= <openscope-ast> typdef_name_declaration_specifiers
- //
- case 134: { action. consumeDeclarationSpecifiersTypedefName(); break;
- }
-
- //
- // Rule 159: init_declarator ::= complete_declarator = initializer
- //
- case 159: { action. consumeDeclaratorWithInitializer(true); break;
- }
-
- //
- // Rule 161: storage_class_specifier ::= storage_class_specifier_token
- //
- case 161: { action. consumeToken(); break;
- }
-
- //
- // Rule 167: simple_type_specifier ::= simple_type_specifier_token
- //
- case 167: { action. consumeToken(); break;
- }
-
- //
- // Rule 180: type_name_specifier ::= identifier_token
- //
- case 180: { action. consumeToken(); break;
- }
-
- //
- // Rule 181: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { <openscope-ast> struct_declaration_list_opt }
- //
- case 181: { action. consumeTypeSpecifierComposite(false); break;
- }
-
- //
- // Rule 182: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { <openscope-ast> struct_declaration_list_opt }
- //
- case 182: { action. consumeTypeSpecifierComposite(true); break;
- }
-
- //
- // Rule 187: elaborated_specifier ::= struct elaborated_specifier_hook identifier_token
- //
- case 187: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break;
- }
-
- //
- // Rule 188: elaborated_specifier ::= union elaborated_specifier_hook identifier_token
- //
- case 188: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break;
- }
-
- //
- // Rule 189: elaborated_specifier ::= enum elaborated_specifier_hook identifier_token
- //
- case 189: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break;
- }
-
- //
- // Rule 195: struct_declaration ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ;
- //
- case 195: { action. consumeStructDeclaration(true); break;
- }
-
- //
- // Rule 196: struct_declaration ::= specifier_qualifier_list ;
- //
- case 196: { action. consumeStructDeclaration(false); break;
- }
-
- //
- // Rule 197: struct_declaration ::= ERROR_TOKEN
- //
- case 197: { action. consumeDeclarationProblem(); break;
- }
-
- //
- // Rule 203: struct_declarator ::= : constant_expression
- //
- case 203: { action. consumeBitField(false); break;
- }
-
- //
- // Rule 204: struct_declarator ::= declarator : constant_expression
- //
- case 204: { action. consumeBitField(true); break;
- }
-
- //
- // Rule 205: enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
- //
- case 205: { action. consumeTypeSpecifierEnumeration(false); break;
- }
-
- //
- // Rule 206: enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
- //
- case 206: { action. consumeTypeSpecifierEnumeration(true); break;
- }
-
- //
- // Rule 212: enumerator ::= identifier_token
- //
- case 212: { action. consumeEnumerator(false); break;
- }
-
- //
- // Rule 213: enumerator ::= identifier_token = constant_expression
- //
- case 213: { action. consumeEnumerator(true); break;
- }
-
- //
- // Rule 214: type_qualifier ::= type_qualifier_token
- //
- case 214: { action. consumeToken(); break;
- }
-
- //
- // Rule 218: function_specifier ::= inline
- //
- case 218: { action. consumeToken(); break;
- }
-
- //
- // Rule 220: declarator ::= <openscope-ast> pointer_seq direct_declarator
- //
- case 220: { action. consumeDeclaratorWithPointer(true); break;
- }
-
- //
- // Rule 225: basic_direct_declarator ::= declarator_id_name
- //
- case 225: { action. consumeDirectDeclaratorIdentifier(); break;
- }
-
- //
- // Rule 226: basic_direct_declarator ::= ( declarator )
- //
- case 226: { action. consumeDirectDeclaratorBracketed(); break;
- }
-
- //
- // Rule 227: declarator_id_name ::= identifier
- //
- case 227: { action. consumeIdentifierName(); break;
- }
-
- //
- // Rule 228: array_direct_declarator ::= basic_direct_declarator array_modifier
- //
- case 228: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
- }
-
- //
- // Rule 229: array_direct_declarator ::= array_direct_declarator array_modifier
- //
- case 229: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
- }
-
- //
- // Rule 231: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_type_list )
- //
- case 231: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
- }
-
- //
- // Rule 232: function_direct_declarator ::= basic_direct_declarator ( )
- //
- case 232: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
- }
-
- //
- // Rule 234: function_declarator ::= <openscope-ast> pointer_seq function_direct_declarator
- //
- case 234: { action. consumeDeclaratorWithPointer(true); break;
- }
-
- //
- // Rule 235: knr_direct_declarator ::= basic_direct_declarator ( <openscope-ast> identifier_list )
- //
- case 235: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break;
- }
-
- //
- // Rule 237: knr_function_declarator ::= <openscope-ast> pointer_seq knr_direct_declarator
- //
- case 237: { action. consumeDeclaratorWithPointer(true); break;
- }
-
- //
- // Rule 238: identifier_list ::= identifier
- //
- case 238: { action. consumeIdentifierKnR(); break;
- }
-
- //
- // Rule 239: identifier_list ::= identifier_list , identifier
- //
- case 239: { action. consumeIdentifierKnR(); break;
- }
-
- //
- // Rule 240: array_modifier ::= [ ]
- //
- case 240: { action. consumeDirectDeclaratorArrayModifier(false); break;
- }
-
- //
- // Rule 241: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ]
- //
- case 241: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break;
- }
-
- //
- // Rule 242: array_modifier ::= [ assignment_expression ]
- //
- case 242: { action. consumeDirectDeclaratorArrayModifier(true); break;
- }
-
- //
- // Rule 243: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
- //
- case 243: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break;
- }
-
- //
- // Rule 244: array_modifier ::= [ static assignment_expression ]
- //
- case 244: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break;
- }
-
- //
- // Rule 245: array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
- //
- case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break;
- }
-
- //
- // Rule 246: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ]
- //
- case 246: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break;
- }
-
- //
- // Rule 247: array_modifier ::= [ * ]
- //
- case 247: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break;
- }
-
- //
- // Rule 248: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ]
- //
- case 248: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break;
- }
-
- //
- // Rule 250: pointer_seq ::= pointer_hook * pointer_hook
- //
- case 250: { action. consumePointer(); break;
- }
-
- //
- // Rule 251: pointer_seq ::= pointer_seq pointer_hook * pointer_hook
- //
- case 251: { action. consumePointer(); break;
- }
-
- //
- // Rule 252: pointer_seq ::= pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
- //
- case 252: { action. consumePointerTypeQualifierList(); break;
- }
-
- //
- // Rule 253: pointer_seq ::= pointer_seq pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
- //
- case 253: { action. consumePointerTypeQualifierList(); break;
- }
-
- //
- // Rule 257: parameter_type_list ::= parameter_list
- //
- case 257: { action. consumeEmpty(); break;
- }
-
- //
- // Rule 258: parameter_type_list ::= parameter_list , ...
- //
- case 258: { action. consumePlaceHolder(); break;
- }
-
- //
- // Rule 259: parameter_type_list ::= ...
- //
- case 259: { action. consumePlaceHolder(); break;
- }
-
- //
- // Rule 262: parameter_declaration ::= declaration_specifiers complete_parameter_declarator
- //
- case 262: { action. consumeParameterDeclaration(); break;
- }
-
- //
- // Rule 263: parameter_declaration ::= declaration_specifiers
- //
- case 263: { action. consumeParameterDeclarationWithoutDeclarator(); break;
- }
-
- //
- // Rule 266: type_id ::= specifier_qualifier_list
- //
- case 266: { action. consumeTypeId(false); break;
- }
-
- //
- // Rule 267: type_id ::= specifier_qualifier_list abstract_declarator
- //
- case 267: { action. consumeTypeId(true); break;
- }
-
- //
- // Rule 269: abstract_declarator ::= <openscope-ast> pointer_seq
- //
- case 269: { action. consumeDeclaratorWithPointer(false); break;
- }
-
- //
- // Rule 270: abstract_declarator ::= <openscope-ast> pointer_seq direct_abstract_declarator
- //
- case 270: { action. consumeDeclaratorWithPointer(true); break;
- }
-
- //
- // Rule 274: basic_direct_abstract_declarator ::= ( abstract_declarator )
- //
- case 274: { action. consumeDirectDeclaratorBracketed(); break;
- }
-
- //
- // Rule 275: array_direct_abstract_declarator ::= array_modifier
- //
- case 275: { action. consumeDirectDeclaratorArrayDeclarator(false); break;
- }
-
- //
- // Rule 276: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
- //
- case 276: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
- }
-
- //
- // Rule 277: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
- //
- case 277: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
- }
-
- //
- // Rule 278: function_direct_abstract_declarator ::= ( )
- //
- case 278: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break;
- }
-
- //
- // Rule 279: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( )
- //
- case 279: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
- }
-
- //
- // Rule 280: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list )
- //
- case 280: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break;
- }
-
- //
- // Rule 281: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list )
- //
- case 281: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
- }
-
- //
- // Rule 282: initializer ::= assignment_expression
- //
- case 282: { action. consumeInitializer(); break;
- }
-
- //
- // Rule 283: initializer ::= initializer_list
- //
- case 283: { action. consumeInitializer(); break;
- }
-
- //
- // Rule 284: initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq comma_opt } end_initializer_list
- //
- case 284: { action. consumeInitializerList(); break;
- }
-
- //
- // Rule 285: initializer_list ::= { <openscope-ast> }
- //
- case 285: { action. consumeInitializerList(); break;
- }
-
- //
- // Rule 286: start_initializer_list ::= $Empty
- //
- case 286: { action. initializerListStart(); break;
- }
-
- //
- // Rule 287: end_initializer_list ::= $Empty
- //
- case 287: { action. initializerListEnd(); break;
- }
-
- //
- // Rule 292: designated_initializer ::= <openscope-ast> designation = initializer
- //
- case 292: { action. consumeInitializerDesignated(); break;
- }
-
- //
- // Rule 296: designator_base ::= [ constant_expression ]
- //
- case 296: { action. consumeDesignatorArray(); break;
- }
-
- //
- // Rule 297: designator_base ::= . identifier_token
- //
- case 297: { action. consumeDesignatorField(); break;
- }
-
- //
- // Rule 298: designator ::= [ constant_expression ]
- //
- case 298: { action. consumeDesignatorArray(); break;
- }
-
- //
- // Rule 299: designator ::= . identifier_token
- //
- case 299: { action. consumeDesignatorField(); break;
- }
-
- //
- // Rule 300: translation_unit ::= external_declaration_list
- //
- case 300: { action. consumeTranslationUnit(); break;
- }
-
- //
- // Rule 301: translation_unit ::= $Empty
- //
- case 301: { action. consumeTranslationUnit(); break;
- }
-
- //
- // Rule 306: external_declaration ::= ;
- //
- case 306: { action. consumeDeclarationEmpty(); break;
- }
-
- //
- // Rule 307: external_declaration ::= ERROR_TOKEN
- //
- case 307: { action. consumeDeclarationProblem(); break;
- }
-
- //
- // Rule 311: function_definition ::= <openscope-ast> function_declarator function_body
- //
- case 311: { action. consumeFunctionDefinition(false); break;
- }
-
- //
- // Rule 312: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
- //
- case 312: { action. consumeFunctionDefinitionKnR(); break;
- }
-
- //
- // Rule 313: normal_function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
- //
- case 313: { action. consumeFunctionDefinition(true); break;
- }
-
- //
- // Rule 314: function_body ::= { }
- //
- case 314: { action. consumeStatementCompoundStatement(false); break;
- }
-
- //
- // Rule 315: function_body ::= { <openscope-ast> block_item_list }
- //
- case 315: { action. consumeStatementCompoundStatement(true); break;
- }
-
- //
- // Rule 317: expression_parser_start ::= ERROR_TOKEN
- //
- case 317: { action. consumeEmpty(); break;
- }
-
- //
- // Rule 318: literal ::= MYTHREAD
- //
- case 318: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread); break;
- }
-
- //
- // Rule 319: literal ::= THREADS
- //
- case 319: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads); break;
- }
-
- //
- // Rule 320: literal ::= UPC_MAX_BLOCKSIZE
- //
- case 320: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size); break;
- }
-
- //
- // Rule 321: unary_expression ::= upc_localsizeof unary_expression
- //
- case 321: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_localsizeof); break;
- }
-
- //
- // Rule 322: unary_expression ::= upc_localsizeof ( type_id )
- //
- case 322: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_localsizeof); break;
- }
-
- //
- // Rule 323: unary_expression ::= upc_blocksizeof unary_expression
- //
- case 323: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_blocksizeof); break;
- }
-
- //
- // Rule 324: unary_expression ::= upc_blocksizeof ( type_id )
- //
- case 324: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_blocksizeof); break;
- }
-
- //
- // Rule 325: unary_expression ::= upc_elemsizeof unary_expression
- //
- case 325: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_elemsizeof); break;
- }
-
- //
- // Rule 326: unary_expression ::= upc_elemsizeof ( type_id )
- //
- case 326: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_elemsizeof); break;
- }
-
- //
- // Rule 330: shared_type_qualifier ::= shared
- //
- case 330: { action. consumeToken(); break;
- }
-
- //
- // Rule 331: reference_type_qualifier ::= relaxed
- //
- case 331: { action. consumeToken(); break;
- }
-
- //
- // Rule 332: reference_type_qualifier ::= strict
- //
- case 332: { action. consumeToken(); break;
- }
-
- //
- // Rule 333: layout_qualifier ::= [ constant_expression ]
- //
- case 333: { action. consumeLayoutQualifier(true, false); break;
- }
-
- //
- // Rule 334: layout_qualifier ::= [ * ]
- //
- case 334: { action. consumeLayoutQualifier(false, true); break;
- }
-
- //
- // Rule 335: layout_qualifier ::= [ ]
- //
- case 335: { action. consumeLayoutQualifier(false, false); break;
- }
-
- //
- // Rule 337: synchronization_statement ::= upc_notify expression ;
- //
- case 337: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true); break;
- }
-
- //
- // Rule 338: synchronization_statement ::= upc_notify ;
- //
- case 338: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false); break;
- }
-
- //
- // Rule 339: synchronization_statement ::= upc_wait expression ;
- //
- case 339: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true); break;
- }
-
- //
- // Rule 340: synchronization_statement ::= upc_wait ;
- //
- case 340: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false); break;
- }
-
- //
- // Rule 341: synchronization_statement ::= upc_barrier expression ;
- //
- case 341: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true); break;
- }
-
- //
- // Rule 342: synchronization_statement ::= upc_barrier ;
- //
- case 342: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false); break;
- }
-
- //
- // Rule 343: synchronization_statement ::= upc_fence ;
- //
- case 343: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false); break;
- }
-
- //
- // Rule 344: iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement
- //
- case 344: { action. consumeStatementUPCForallLoop(true, true, true, true); break;
- }
-
- //
- // Rule 345: iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement
- //
- case 345: { action. consumeStatementUPCForallLoop(true, true, true, false); break;
- }
-
- //
- // Rule 346: iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement
- //
- case 346: { action. consumeStatementUPCForallLoop(true, true, false, true); break;
- }
-
- //
- // Rule 347: iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement
- //
- case 347: { action. consumeStatementUPCForallLoop(true, true, false, false); break;
- }
-
- //
- // Rule 348: iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement
- //
- case 348: { action. consumeStatementUPCForallLoop(true, false, true, true); break;
- }
-
- //
- // Rule 349: iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement
- //
- case 349: { action. consumeStatementUPCForallLoop(true, false, true, false); break;
- }
-
- //
- // Rule 350: iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement
- //
- case 350: { action. consumeStatementUPCForallLoop(true, false, false, true); break;
- }
-
- //
- // Rule 351: iteration_statement ::= upc_forall ( expression ; ; ; ) statement
- //
- case 351: { action. consumeStatementUPCForallLoop(true, false, false, false); break;
- }
-
- //
- // Rule 352: iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement
- //
- case 352: { action. consumeStatementUPCForallLoop(false, true, true, true); break;
- }
-
- //
- // Rule 353: iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement
- //
- case 353: { action. consumeStatementUPCForallLoop(false, true, true, false); break;
- }
-
- //
- // Rule 354: iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement
- //
- case 354: { action. consumeStatementUPCForallLoop(false, true, false, true); break;
- }
-
- //
- // Rule 355: iteration_statement ::= upc_forall ( ; expression ; ; ) statement
- //
- case 355: { action. consumeStatementUPCForallLoop(false, true, false, false); break;
- }
-
- //
- // Rule 356: iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement
- //
- case 356: { action. consumeStatementUPCForallLoop(false, false, true, true); break;
- }
-
- //
- // Rule 357: iteration_statement ::= upc_forall ( ; ; expression ; ) statement
- //
- case 357: { action. consumeStatementUPCForallLoop(false, false, true, false); break;
- }
-
- //
- // Rule 358: iteration_statement ::= upc_forall ( ; ; ; affinity ) statement
- //
- case 358: { action. consumeStatementUPCForallLoop(false, false, false, true); break;
- }
-
- //
- // Rule 359: iteration_statement ::= upc_forall ( ; ; ; ) statement
- //
- case 359: { action. consumeStatementUPCForallLoop(false, false, false, false); break;
- }
-
- //
- // Rule 360: iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement
- //
- case 360: { action. consumeStatementUPCForallLoop(true, true, true, true); break;
- }
-
- //
- // Rule 361: iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement
- //
- case 361: { action. consumeStatementUPCForallLoop(true, true, true, false); break;
- }
-
- //
- // Rule 362: iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement
- //
- case 362: { action. consumeStatementUPCForallLoop(true, true, false, true); break;
- }
-
- //
- // Rule 363: iteration_statement ::= upc_forall ( declaration expression ; ; ) statement
- //
- case 363: { action. consumeStatementUPCForallLoop(true, true, false, false); break;
- }
-
- //
- // Rule 364: iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement
- //
- case 364: { action. consumeStatementUPCForallLoop(true, false, true, true); break;
- }
-
- //
- // Rule 365: iteration_statement ::= upc_forall ( declaration ; expression ; ) statement
- //
- case 365: { action. consumeStatementUPCForallLoop(true, false, true, false); break;
- }
-
- //
- // Rule 366: iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement
- //
- case 366: { action. consumeStatementUPCForallLoop(true, false, false, true); break;
- }
-
- //
- // Rule 367: iteration_statement ::= upc_forall ( declaration ; ; ) statement
- //
- case 367: { action. consumeStatementUPCForallLoop(true, false, false, false); break;
- }
-
- //
- // Rule 369: affinity ::= continue
- //
- case 369: { action. consumeToken(); break;
- }
-
-
- default:
- break;
- }
- return;
- }
-}
+ public void parser() {
+ parser(null, 0);
+ }
+ public void parser(Monitor monitor) {
+ parser(monitor, 0);
+ }
+
+ public void parser(int error_repair_count) {
+ parser(null, error_repair_count);
+ }
+
+ public void parser(Monitor monitor, int error_repair_count) {
+ try {
+ btParser = new FixedBacktrackingParser(monitor, this, prs, this);
+ } catch (NotBacktrackParseTableException e) {
+ throw new Error(new NotBacktrackParseTableException(
+ "Regenerate UPCExpressionParserprs.java with -BACKTRACK option"));
+ } catch (BadParseSymFileException e) {
+ throw new Error(new BadParseSymFileException("Bad Parser Symbol File -- UPCExpressionParsersym.java"));
+ }
+
+ try {
+ btParser.parse(error_repair_count);
+ } catch (BadParseException e) {
+ reset(e.error_token); // point to error token
+ DiagnoseParser diagnoseParser = new DiagnoseParser(this, prs);
+ diagnoseParser.diagnose(e.error_token);
+ }
+ }
+
+ private UPCParserAction action;
+ private IASTCompletionNode compNode;
+
+ public UPCExpressionParser(IScanner scanner, IDOMTokenMap tokenMap,
+ IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Map<String, String> properties) {
+ initActions(properties);
+ action.initializeTranslationUnit(scanner, builtinBindingsProvider, index);
+ CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap);
+ }
+
+ private void initActions(Map<String, String> properties) {
+ ScopedStack<Object> astStack = new ScopedStack<Object>();
+
+ action = new UPCParserAction(this, astStack, new UPCASTNodeFactory(), UPCSecondaryParserFactory.getDefault());
+ action.setParserProperties(properties);
+
+ }
+
+ @Override
+ public void addToken(IToken token) {
+ token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called?
+ super.addToken(token);
+ }
+
+ @Override
+ public IASTExpression parse() {
+ // this has to be done, or... kaboom!
+ setStreamLength(getSize());
+
+ final int errorRepairCount = -1; // -1 means full error handling
+ parser(null, errorRepairCount); // do the actual parse
+ super.resetTokenStream(); // allow tokens to be garbage collected
+
+ compNode = action.getASTCompletionNode(); // the completion node may be null
+ return (IASTExpression) action.getParseResult();
+ }
+
+ @Override
+ public IASTCompletionNode getCompletionNode() {
+ return compNode;
+ }
+
+ // uncomment this method to use with backtracking parser
+ @Override
+ public List<IToken> getRuleTokens() {
+ return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
+ }
+
+ @Override
+ public String[] getOrderedTerminalSymbols() {
+ return UPCExpressionParsersym.orderedTerminalSymbols;
+ }
+
+ @Override
+ @SuppressWarnings("nls")
+ public String getName() {
+ return "UPCExpressionParser";
+ }
+
+ private ITokenMap tokenMap = null;
+
+ @Override
+ public void setTokens(List<IToken> tokens) {
+ resetTokenStream();
+ addToken(new Token(null, 0, 0, 0)); // dummy token
+ for (IToken token : tokens) {
+ token.setKind(tokenMap.mapKind(token.getKind()));
+ addToken(token);
+ }
+ addToken(new Token(null, 0, 0, UPCExpressionParsersym.TK_EOF_TOKEN));
+ }
+
+ public UPCExpressionParser(ITokenStream stream, Map<String, String> properties) { // constructor for creating secondary parser
+ initActions(properties);
+ tokenMap = new TokenMap(UPCExpressionParsersym.orderedTerminalSymbols, stream.getOrderedTerminalSymbols());
+ }
+
+ @Override
+ public void ruleAction(int ruleNumber) {
+ switch (ruleNumber) {
+
+ //
+ // Rule 1: <openscope-ast> ::= $Empty
+ //
+ case 1: {
+ action.openASTScope();
+ break;
+ }
+
+ //
+ // Rule 2: <empty> ::= $Empty
+ //
+ case 2: {
+ action.consumeEmpty();
+ break;
+ }
+
+ //
+ // Rule 13: literal ::= integer
+ //
+ case 13: {
+ action.consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant);
+ break;
+ }
+
+ //
+ // Rule 14: literal ::= floating
+ //
+ case 14: {
+ action.consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant);
+ break;
+ }
+
+ //
+ // Rule 15: literal ::= charconst
+ //
+ case 15: {
+ action.consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant);
+ break;
+ }
+
+ //
+ // Rule 16: literal ::= stringlit
+ //
+ case 16: {
+ action.consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal);
+ break;
+ }
+
+ //
+ // Rule 18: primary_expression ::= primary_expression_id
+ //
+ case 18: {
+ action.consumeExpressionID();
+ break;
+ }
+
+ //
+ // Rule 19: primary_expression ::= ( expression )
+ //
+ case 19: {
+ action.consumeExpressionBracketed();
+ break;
+ }
+
+ //
+ // Rule 22: postfix_expression ::= postfix_expression [ expression ]
+ //
+ case 22: {
+ action.consumeExpressionArraySubscript();
+ break;
+ }
+
+ //
+ // Rule 23: postfix_expression ::= postfix_expression ( expression_list_opt )
+ //
+ case 23: {
+ action.consumeExpressionFunctionCall();
+ break;
+ }
+
+ //
+ // Rule 24: postfix_expression ::= postfix_expression . member_name
+ //
+ case 24: {
+ action.consumeExpressionFieldReference(false);
+ break;
+ }
+
+ //
+ // Rule 25: postfix_expression ::= postfix_expression -> member_name
+ //
+ case 25: {
+ action.consumeExpressionFieldReference(true);
+ break;
+ }
+
+ //
+ // Rule 26: postfix_expression ::= postfix_expression ++
+ //
+ case 26: {
+ action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr);
+ break;
+ }
+
+ //
+ // Rule 27: postfix_expression ::= postfix_expression --
+ //
+ case 27: {
+ action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr);
+ break;
+ }
+
+ //
+ // Rule 28: postfix_expression ::= ( type_id ) initializer_list
+ //
+ case 28: {
+ action.consumeExpressionTypeIdInitializer();
+ break;
+ }
+
+ //
+ // Rule 33: unary_expression ::= ++ unary_expression
+ //
+ case 33: {
+ action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr);
+ break;
+ }
+
+ //
+ // Rule 34: unary_expression ::= -- unary_expression
+ //
+ case 34: {
+ action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr);
+ break;
+ }
+
+ //
+ // Rule 35: unary_expression ::= & cast_expression
+ //
+ case 35: {
+ action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper);
+ break;
+ }
+
+ //
+ // Rule 36: unary_expression ::= * cast_expression
+ //
+ case 36: {
+ action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_star);
+ break;
+ }
+
+ //
+ // Rule 37: unary_expression ::= + cast_expression
+ //
+ case 37: {
+ action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus);
+ break;
+ }
+
+ //
+ // Rule 38: unary_expression ::= - cast_expression
+ //
+ case 38: {
+ action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus);
+ break;
+ }
+
+ //
+ // Rule 39: unary_expression ::= ~ cast_expression
+ //
+ case 39: {
+ action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde);
+ break;
+ }
+
+ //
+ // Rule 40: unary_expression ::= ! cast_expression
+ //
+ case 40: {
+ action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_not);
+ break;
+ }
+
+ //
+ // Rule 41: unary_expression ::= sizeof unary_expression
+ //
+ case 41: {
+ action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof);
+ break;
+ }
+
+ //
+ // Rule 42: unary_expression ::= sizeof ( type_id )
+ //
+ case 42: {
+ action.consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof);
+ break;
+ }
+
+ //
+ // Rule 44: cast_expression ::= ( type_id ) cast_expression
+ //
+ case 44: {
+ action.consumeExpressionCast(IASTCastExpression.op_cast);
+ break;
+ }
+
+ //
+ // Rule 46: multiplicative_expression ::= multiplicative_expression * cast_expression
+ //
+ case 46: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply);
+ break;
+ }
+
+ //
+ // Rule 47: multiplicative_expression ::= multiplicative_expression / cast_expression
+ //
+ case 47: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide);
+ break;
+ }
+
+ //
+ // Rule 48: multiplicative_expression ::= multiplicative_expression % cast_expression
+ //
+ case 48: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo);
+ break;
+ }
+
+ //
+ // Rule 50: additive_expression ::= additive_expression + multiplicative_expression
+ //
+ case 50: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus);
+ break;
+ }
+
+ //
+ // Rule 51: additive_expression ::= additive_expression - multiplicative_expression
+ //
+ case 51: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus);
+ break;
+ }
+
+ //
+ // Rule 53: shift_expression ::= shift_expression << additive_expression
+ //
+ case 53: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft);
+ break;
+ }
+
+ //
+ // Rule 54: shift_expression ::= shift_expression >> additive_expression
+ //
+ case 54: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight);
+ break;
+ }
+
+ //
+ // Rule 56: relational_expression ::= relational_expression < shift_expression
+ //
+ case 56: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan);
+ break;
+ }
+
+ //
+ // Rule 57: relational_expression ::= relational_expression > shift_expression
+ //
+ case 57: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan);
+ break;
+ }
+
+ //
+ // Rule 58: relational_expression ::= relational_expression <= shift_expression
+ //
+ case 58: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual);
+ break;
+ }
+
+ //
+ // Rule 59: relational_expression ::= relational_expression >= shift_expression
+ //
+ case 59: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual);
+ break;
+ }
+
+ //
+ // Rule 61: equality_expression ::= equality_expression == relational_expression
+ //
+ case 61: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals);
+ break;
+ }
+
+ //
+ // Rule 62: equality_expression ::= equality_expression != relational_expression
+ //
+ case 62: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals);
+ break;
+ }
+
+ //
+ // Rule 64: and_expression ::= and_expression & equality_expression
+ //
+ case 64: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd);
+ break;
+ }
+
+ //
+ // Rule 66: exclusive_or_expression ::= exclusive_or_expression ^ and_expression
+ //
+ case 66: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor);
+ break;
+ }
+
+ //
+ // Rule 68: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression
+ //
+ case 68: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr);
+ break;
+ }
+
+ //
+ // Rule 70: logical_and_expression ::= logical_and_expression && inclusive_or_expression
+ //
+ case 70: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd);
+ break;
+ }
+
+ //
+ // Rule 72: logical_or_expression ::= logical_or_expression || logical_and_expression
+ //
+ case 72: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr);
+ break;
+ }
+
+ //
+ // Rule 74: conditional_expression ::= logical_or_expression ? expression : assignment_expression
+ //
+ case 74: {
+ action.consumeExpressionConditional();
+ break;
+ }
+
+ //
+ // Rule 76: assignment_expression ::= unary_expression = assignment_expression
+ //
+ case 76: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign);
+ break;
+ }
+
+ //
+ // Rule 77: assignment_expression ::= unary_expression *= assignment_expression
+ //
+ case 77: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign);
+ break;
+ }
+
+ //
+ // Rule 78: assignment_expression ::= unary_expression /= assignment_expression
+ //
+ case 78: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign);
+ break;
+ }
+
+ //
+ // Rule 79: assignment_expression ::= unary_expression %= assignment_expression
+ //
+ case 79: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign);
+ break;
+ }
+
+ //
+ // Rule 80: assignment_expression ::= unary_expression += assignment_expression
+ //
+ case 80: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign);
+ break;
+ }
+
+ //
+ // Rule 81: assignment_expression ::= unary_expression -= assignment_expression
+ //
+ case 81: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign);
+ break;
+ }
+
+ //
+ // Rule 82: assignment_expression ::= unary_expression <<= assignment_expression
+ //
+ case 82: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign);
+ break;
+ }
+
+ //
+ // Rule 83: assignment_expression ::= unary_expression >>= assignment_expression
+ //
+ case 83: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign);
+ break;
+ }
+
+ //
+ // Rule 84: assignment_expression ::= unary_expression &= assignment_expression
+ //
+ case 84: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign);
+ break;
+ }
+
+ //
+ // Rule 85: assignment_expression ::= unary_expression ^= assignment_expression
+ //
+ case 85: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign);
+ break;
+ }
+
+ //
+ // Rule 86: assignment_expression ::= unary_expression |= assignment_expression
+ //
+ case 86: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign);
+ break;
+ }
+
+ //
+ // Rule 89: expression_list ::= <openscope-ast> expression_list_actual
+ //
+ case 89: {
+ action.consumeExpressionList();
+ break;
+ }
+
+ //
+ // Rule 91: expression_list_opt ::= $Empty
+ //
+ case 91: {
+ action.consumeEmpty();
+ break;
+ }
+
+ //
+ // Rule 101: statement ::= ERROR_TOKEN
+ //
+ case 101: {
+ action.consumeStatementProblem();
+ break;
+ }
+
+ //
+ // Rule 102: labeled_statement ::= identifier_token : statement
+ //
+ case 102: {
+ action.consumeStatementLabeled();
+ break;
+ }
+
+ //
+ // Rule 103: labeled_statement ::= case constant_expression : statement
+ //
+ case 103: {
+ action.consumeStatementCase();
+ break;
+ }
+
+ //
+ // Rule 104: labeled_statement ::= default : statement
+ //
+ case 104: {
+ action.consumeStatementDefault();
+ break;
+ }
+
+ //
+ // Rule 105: compound_statement ::= { }
+ //
+ case 105: {
+ action.consumeStatementCompoundStatement(false);
+ break;
+ }
+
+ //
+ // Rule 106: compound_statement ::= { <openscope-ast> block_item_list }
+ //
+ case 106: {
+ action.consumeStatementCompoundStatement(true);
+ break;
+ }
+
+ //
+ // Rule 110: block_item ::= declaration
+ //
+ case 110: {
+ action.consumeStatementDeclarationWithDisambiguation();
+ break;
+ }
+
+ //
+ // Rule 111: expression_statement ::= ;
+ //
+ case 111: {
+ action.consumeStatementNull();
+ break;
+ }
+
+ //
+ // Rule 112: expression_statement ::= expression_in_statement ;
+ //
+ case 112: {
+ action.consumeStatementExpression();
+ break;
+ }
+
+ //
+ // Rule 113: selection_statement ::= if ( expression ) statement
+ //
+ case 113: {
+ action.consumeStatementIf(false);
+ break;
+ }
+
+ //
+ // Rule 114: selection_statement ::= if ( expression ) statement else statement
+ //
+ case 114: {
+ action.consumeStatementIf(true);
+ break;
+ }
+
+ //
+ // Rule 115: selection_statement ::= switch ( expression ) statement
+ //
+ case 115: {
+ action.consumeStatementSwitch();
+ break;
+ }
+
+ //
+ // Rule 117: expression_opt ::= $Empty
+ //
+ case 117: {
+ action.consumeEmpty();
+ break;
+ }
+
+ //
+ // Rule 118: iteration_statement ::= do statement while ( expression ) ;
+ //
+ case 118: {
+ action.consumeStatementDoLoop(true);
+ break;
+ }
+
+ //
+ // Rule 119: iteration_statement ::= do statement
+ //
+ case 119: {
+ action.consumeStatementDoLoop(false);
+ break;
+ }
+
+ //
+ // Rule 120: iteration_statement ::= while ( expression ) statement
+ //
+ case 120: {
+ action.consumeStatementWhileLoop();
+ break;
+ }
+
+ //
+ // Rule 121: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement
+ //
+ case 121: {
+ action.consumeStatementForLoop();
+ break;
+ }
+
+ //
+ // Rule 122: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement
+ //
+ case 122: {
+ action.consumeStatementForLoop();
+ break;
+ }
+
+ //
+ // Rule 123: jump_statement ::= goto identifier_token ;
+ //
+ case 123: {
+ action.consumeStatementGoto();
+ break;
+ }
+
+ //
+ // Rule 124: jump_statement ::= continue ;
+ //
+ case 124: {
+ action.consumeStatementContinue();
+ break;
+ }
+
+ //
+ // Rule 125: jump_statement ::= break ;
+ //
+ case 125: {
+ action.consumeStatementBreak();
+ break;
+ }
+
+ //
+ // Rule 126: jump_statement ::= return ;
+ //
+ case 126: {
+ action.consumeStatementReturn(false);
+ break;
+ }
+
+ //
+ // Rule 127: jump_statement ::= return expression ;
+ //
+ case 127: {
+ action.consumeStatementReturn(true);
+ break;
+ }
+
+ //
+ // Rule 128: declaration ::= declaration_specifiers ;
+ //
+ case 128: {
+ action.consumeDeclarationSimple(false);
+ break;
+ }
+
+ //
+ // Rule 129: declaration ::= declaration_specifiers <openscope-ast> init_declarator_list ;
+ //
+ case 129: {
+ action.consumeDeclarationSimple(true);
+ break;
+ }
+
+ //
+ // Rule 130: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
+ //
+ case 130: {
+ action.consumeDeclarationSpecifiersSimple();
+ break;
+ }
+
+ //
+ // Rule 131: declaration_specifiers ::= <openscope-ast> struct_or_union_declaration_specifiers
+ //
+ case 131: {
+ action.consumeDeclarationSpecifiersStructUnionEnum();
+ break;
+ }
+
+ //
+ // Rule 132: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
+ //
+ case 132: {
+ action.consumeDeclarationSpecifiersStructUnionEnum();
+ break;
+ }
+
+ //
+ // Rule 133: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
+ //
+ case 133: {
+ action.consumeDeclarationSpecifiersStructUnionEnum();
+ break;
+ }
+
+ //
+ // Rule 134: declaration_specifiers ::= <openscope-ast> typdef_name_declaration_specifiers
+ //
+ case 134: {
+ action.consumeDeclarationSpecifiersTypedefName();
+ break;
+ }
+
+ //
+ // Rule 159: init_declarator ::= complete_declarator = initializer
+ //
+ case 159: {
+ action.consumeDeclaratorWithInitializer(true);
+ break;
+ }
+
+ //
+ // Rule 161: storage_class_specifier ::= storage_class_specifier_token
+ //
+ case 161: {
+ action.consumeToken();
+ break;
+ }
+
+ //
+ // Rule 167: simple_type_specifier ::= simple_type_specifier_token
+ //
+ case 167: {
+ action.consumeToken();
+ break;
+ }
+
+ //
+ // Rule 180: type_name_specifier ::= identifier_token
+ //
+ case 180: {
+ action.consumeToken();
+ break;
+ }
+
+ //
+ // Rule 181: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { <openscope-ast> struct_declaration_list_opt }
+ //
+ case 181: {
+ action.consumeTypeSpecifierComposite(false);
+ break;
+ }
+
+ //
+ // Rule 182: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { <openscope-ast> struct_declaration_list_opt }
+ //
+ case 182: {
+ action.consumeTypeSpecifierComposite(true);
+ break;
+ }
+
+ //
+ // Rule 187: elaborated_specifier ::= struct elaborated_specifier_hook identifier_token
+ //
+ case 187: {
+ action.consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct);
+ break;
+ }
+
+ //
+ // Rule 188: elaborated_specifier ::= union elaborated_specifier_hook identifier_token
+ //
+ case 188: {
+ action.consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union);
+ break;
+ }
+
+ //
+ // Rule 189: elaborated_specifier ::= enum elaborated_specifier_hook identifier_token
+ //
+ case 189: {
+ action.consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum);
+ break;
+ }
+
+ //
+ // Rule 195: struct_declaration ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ;
+ //
+ case 195: {
+ action.consumeStructDeclaration(true);
+ break;
+ }
+
+ //
+ // Rule 196: struct_declaration ::= specifier_qualifier_list ;
+ //
+ case 196: {
+ action.consumeStructDeclaration(false);
+ break;
+ }
+
+ //
+ // Rule 197: struct_declaration ::= ERROR_TOKEN
+ //
+ case 197: {
+ action.consumeDeclarationProblem();
+ break;
+ }
+
+ //
+ // Rule 203: struct_declarator ::= : constant_expression
+ //
+ case 203: {
+ action.consumeBitField(false);
+ break;
+ }
+
+ //
+ // Rule 204: struct_declarator ::= declarator : constant_expression
+ //
+ case 204: {
+ action.consumeBitField(true);
+ break;
+ }
+
+ //
+ // Rule 205: enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
+ //
+ case 205: {
+ action.consumeTypeSpecifierEnumeration(false);
+ break;
+ }
+
+ //
+ // Rule 206: enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
+ //
+ case 206: {
+ action.consumeTypeSpecifierEnumeration(true);
+ break;
+ }
+
+ //
+ // Rule 212: enumerator ::= identifier_token
+ //
+ case 212: {
+ action.consumeEnumerator(false);
+ break;
+ }
+
+ //
+ // Rule 213: enumerator ::= identifier_token = constant_expression
+ //
+ case 213: {
+ action.consumeEnumerator(true);
+ break;
+ }
+
+ //
+ // Rule 214: type_qualifier ::= type_qualifier_token
+ //
+ case 214: {
+ action.consumeToken();
+ break;
+ }
+
+ //
+ // Rule 218: function_specifier ::= inline
+ //
+ case 218: {
+ action.consumeToken();
+ break;
+ }
+
+ //
+ // Rule 220: declarator ::= <openscope-ast> pointer_seq direct_declarator
+ //
+ case 220: {
+ action.consumeDeclaratorWithPointer(true);
+ break;
+ }
+
+ //
+ // Rule 225: basic_direct_declarator ::= declarator_id_name
+ //
+ case 225: {
+ action.consumeDirectDeclaratorIdentifier();
+ break;
+ }
+
+ //
+ // Rule 226: basic_direct_declarator ::= ( declarator )
+ //
+ case 226: {
+ action.consumeDirectDeclaratorBracketed();
+ break;
+ }
+
+ //
+ // Rule 227: declarator_id_name ::= identifier
+ //
+ case 227: {
+ action.consumeIdentifierName();
+ break;
+ }
+
+ //
+ // Rule 228: array_direct_declarator ::= basic_direct_declarator array_modifier
+ //
+ case 228: {
+ action.consumeDirectDeclaratorArrayDeclarator(true);
+ break;
+ }
+
+ //
+ // Rule 229: array_direct_declarator ::= array_direct_declarator array_modifier
+ //
+ case 229: {
+ action.consumeDirectDeclaratorArrayDeclarator(true);
+ break;
+ }
+
+ //
+ // Rule 231: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_type_list )
+ //
+ case 231: {
+ action.consumeDirectDeclaratorFunctionDeclarator(true, true);
+ break;
+ }
+
+ //
+ // Rule 232: function_direct_declarator ::= basic_direct_declarator ( )
+ //
+ case 232: {
+ action.consumeDirectDeclaratorFunctionDeclarator(true, false);
+ break;
+ }
+
+ //
+ // Rule 234: function_declarator ::= <openscope-ast> pointer_seq function_direct_declarator
+ //
+ case 234: {
+ action.consumeDeclaratorWithPointer(true);
+ break;
+ }
+
+ //
+ // Rule 235: knr_direct_declarator ::= basic_direct_declarator ( <openscope-ast> identifier_list )
+ //
+ case 235: {
+ action.consumeDirectDeclaratorFunctionDeclaratorKnR();
+ break;
+ }
+
+ //
+ // Rule 237: knr_function_declarator ::= <openscope-ast> pointer_seq knr_direct_declarator
+ //
+ case 237: {
+ action.consumeDeclaratorWithPointer(true);
+ break;
+ }
+
+ //
+ // Rule 238: identifier_list ::= identifier
+ //
+ case 238: {
+ action.consumeIdentifierKnR();
+ break;
+ }
+
+ //
+ // Rule 239: identifier_list ::= identifier_list , identifier
+ //
+ case 239: {
+ action.consumeIdentifierKnR();
+ break;
+ }
+
+ //
+ // Rule 240: array_modifier ::= [ ]
+ //
+ case 240: {
+ action.consumeDirectDeclaratorArrayModifier(false);
+ break;
+ }
+
+ //
+ // Rule 241: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ]
+ //
+ case 241: {
+ action.consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false);
+ break;
+ }
+
+ //
+ // Rule 242: array_modifier ::= [ assignment_expression ]
+ //
+ case 242: {
+ action.consumeDirectDeclaratorArrayModifier(true);
+ break;
+ }
+
+ //
+ // Rule 243: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
+ //
+ case 243: {
+ action.consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true);
+ break;
+ }
+
+ //
+ // Rule 244: array_modifier ::= [ static assignment_expression ]
+ //
+ case 244: {
+ action.consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true);
+ break;
+ }
+
+ //
+ // Rule 245: array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
+ //
+ case 245: {
+ action.consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true);
+ break;
+ }
+
+ //
+ // Rule 246: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ]
+ //
+ case 246: {
+ action.consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true);
+ break;
+ }
+
+ //
+ // Rule 247: array_modifier ::= [ * ]
+ //
+ case 247: {
+ action.consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false);
+ break;
+ }
+
+ //
+ // Rule 248: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ]
+ //
+ case 248: {
+ action.consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false);
+ break;
+ }
+
+ //
+ // Rule 250: pointer_seq ::= pointer_hook * pointer_hook
+ //
+ case 250: {
+ action.consumePointer();
+ break;
+ }
+
+ //
+ // Rule 251: pointer_seq ::= pointer_seq pointer_hook * pointer_hook
+ //
+ case 251: {
+ action.consumePointer();
+ break;
+ }
+
+ //
+ // Rule 252: pointer_seq ::= pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
+ //
+ case 252: {
+ action.consumePointerTypeQualifierList();
+ break;
+ }
+
+ //
+ // Rule 253: pointer_seq ::= pointer_seq pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
+ //
+ case 253: {
+ action.consumePointerTypeQualifierList();
+ break;
+ }
+
+ //
+ // Rule 257: parameter_type_list ::= parameter_list
+ //
+ case 257: {
+ action.consumeEmpty();
+ break;
+ }
+
+ //
+ // Rule 258: parameter_type_list ::= parameter_list , ...
+ //
+ case 258: {
+ action.consumePlaceHolder();
+ break;
+ }
+
+ //
+ // Rule 259: parameter_type_list ::= ...
+ //
+ case 259: {
+ action.consumePlaceHolder();
+ break;
+ }
+
+ //
+ // Rule 262: parameter_declaration ::= declaration_specifiers complete_parameter_declarator
+ //
+ case 262: {
+ action.consumeParameterDeclaration();
+ break;
+ }
+
+ //
+ // Rule 263: parameter_declaration ::= declaration_specifiers
+ //
+ case 263: {
+ action.consumeParameterDeclarationWithoutDeclarator();
+ break;
+ }
+
+ //
+ // Rule 266: type_id ::= specifier_qualifier_list
+ //
+ case 266: {
+ action.consumeTypeId(false);
+ break;
+ }
+
+ //
+ // Rule 267: type_id ::= specifier_qualifier_list abstract_declarator
+ //
+ case 267: {
+ action.consumeTypeId(true);
+ break;
+ }
+
+ //
+ // Rule 269: abstract_declarator ::= <openscope-ast> pointer_seq
+ //
+ case 269: {
+ action.consumeDeclaratorWithPointer(false);
+ break;
+ }
+
+ //
+ // Rule 270: abstract_declarator ::= <openscope-ast> pointer_seq direct_abstract_declarator
+ //
+ case 270: {
+ action.consumeDeclaratorWithPointer(true);
+ break;
+ }
+
+ //
+ // Rule 274: basic_direct_abstract_declarator ::= ( abstract_declarator )
+ //
+ case 274: {
+ action.consumeDirectDeclaratorBracketed();
+ break;
+ }
+
+ //
+ // Rule 275: array_direct_abstract_declarator ::= array_modifier
+ //
+ case 275: {
+ action.consumeDirectDeclaratorArrayDeclarator(false);
+ break;
+ }
+
+ //
+ // Rule 276: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
+ //
+ case 276: {
+ action.consumeDirectDeclaratorArrayDeclarator(true);
+ break;
+ }
+
+ //
+ // Rule 277: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
+ //
+ case 277: {
+ action.consumeDirectDeclaratorArrayDeclarator(true);
+ break;
+ }
+
+ //
+ // Rule 278: function_direct_abstract_declarator ::= ( )
+ //
+ case 278: {
+ action.consumeDirectDeclaratorFunctionDeclarator(false, false);
+ break;
+ }
+
+ //
+ // Rule 279: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( )
+ //
+ case 279: {
+ action.consumeDirectDeclaratorFunctionDeclarator(true, false);
+ break;
+ }
+
+ //
+ // Rule 280: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list )
+ //
+ case 280: {
+ action.consumeDirectDeclaratorFunctionDeclarator(false, true);
+ break;
+ }
+
+ //
+ // Rule 281: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list )
+ //
+ case 281: {
+ action.consumeDirectDeclaratorFunctionDeclarator(true, true);
+ break;
+ }
+
+ //
+ // Rule 282: initializer ::= assignment_expression
+ //
+ case 282: {
+ action.consumeInitializer();
+ break;
+ }
+
+ //
+ // Rule 283: initializer ::= initializer_list
+ //
+ case 283: {
+ action.consumeInitializer();
+ break;
+ }
+
+ //
+ // Rule 284: initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq comma_opt } end_initializer_list
+ //
+ case 284: {
+ action.consumeInitializerList();
+ break;
+ }
+
+ //
+ // Rule 285: initializer_list ::= { <openscope-ast> }
+ //
+ case 285: {
+ action.consumeInitializerList();
+ break;
+ }
+
+ //
+ // Rule 286: start_initializer_list ::= $Empty
+ //
+ case 286: {
+ action.initializerListStart();
+ break;
+ }
+
+ //
+ // Rule 287: end_initializer_list ::= $Empty
+ //
+ case 287: {
+ action.initializerListEnd();
+ break;
+ }
+
+ //
+ // Rule 292: designated_initializer ::= <openscope-ast> designation = initializer
+ //
+ case 292: {
+ action.consumeInitializerDesignated();
+ break;
+ }
+
+ //
+ // Rule 296: designator_base ::= [ constant_expression ]
+ //
+ case 296: {
+ action.consumeDesignatorArray();
+ break;
+ }
+
+ //
+ // Rule 297: designator_base ::= . identifier_token
+ //
+ case 297: {
+ action.consumeDesignatorField();
+ break;
+ }
+
+ //
+ // Rule 298: designator ::= [ constant_expression ]
+ //
+ case 298: {
+ action.consumeDesignatorArray();
+ break;
+ }
+
+ //
+ // Rule 299: designator ::= . identifier_token
+ //
+ case 299: {
+ action.consumeDesignatorField();
+ break;
+ }
+
+ //
+ // Rule 300: translation_unit ::= external_declaration_list
+ //
+ case 300: {
+ action.consumeTranslationUnit();
+ break;
+ }
+
+ //
+ // Rule 301: translation_unit ::= $Empty
+ //
+ case 301: {
+ action.consumeTranslationUnit();
+ break;
+ }
+
+ //
+ // Rule 306: external_declaration ::= ;
+ //
+ case 306: {
+ action.consumeDeclarationEmpty();
+ break;
+ }
+
+ //
+ // Rule 307: external_declaration ::= ERROR_TOKEN
+ //
+ case 307: {
+ action.consumeDeclarationProblem();
+ break;
+ }
+
+ //
+ // Rule 311: function_definition ::= <openscope-ast> function_declarator function_body
+ //
+ case 311: {
+ action.consumeFunctionDefinition(false);
+ break;
+ }
+
+ //
+ // Rule 312: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
+ //
+ case 312: {
+ action.consumeFunctionDefinitionKnR();
+ break;
+ }
+
+ //
+ // Rule 313: normal_function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
+ //
+ case 313: {
+ action.consumeFunctionDefinition(true);
+ break;
+ }
+
+ //
+ // Rule 314: function_body ::= { }
+ //
+ case 314: {
+ action.consumeStatementCompoundStatement(false);
+ break;
+ }
+
+ //
+ // Rule 315: function_body ::= { <openscope-ast> block_item_list }
+ //
+ case 315: {
+ action.consumeStatementCompoundStatement(true);
+ break;
+ }
+
+ //
+ // Rule 317: expression_parser_start ::= ERROR_TOKEN
+ //
+ case 317: {
+ action.consumeEmpty();
+ break;
+ }
+
+ //
+ // Rule 318: literal ::= MYTHREAD
+ //
+ case 318: {
+ action.consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread);
+ break;
+ }
+
+ //
+ // Rule 319: literal ::= THREADS
+ //
+ case 319: {
+ action.consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads);
+ break;
+ }
+
+ //
+ // Rule 320: literal ::= UPC_MAX_BLOCKSIZE
+ //
+ case 320: {
+ action.consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size);
+ break;
+ }
+
+ //
+ // Rule 321: unary_expression ::= upc_localsizeof unary_expression
+ //
+ case 321: {
+ action.consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_localsizeof);
+ break;
+ }
+
+ //
+ // Rule 322: unary_expression ::= upc_localsizeof ( type_id )
+ //
+ case 322: {
+ action.consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_localsizeof);
+ break;
+ }
+
+ //
+ // Rule 323: unary_expression ::= upc_blocksizeof unary_expression
+ //
+ case 323: {
+ action.consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_blocksizeof);
+ break;
+ }
+
+ //
+ // Rule 324: unary_expression ::= upc_blocksizeof ( type_id )
+ //
+ case 324: {
+ action.consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_blocksizeof);
+ break;
+ }
+
+ //
+ // Rule 325: unary_expression ::= upc_elemsizeof unary_expression
+ //
+ case 325: {
+ action.consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_elemsizeof);
+ break;
+ }
+
+ //
+ // Rule 326: unary_expression ::= upc_elemsizeof ( type_id )
+ //
+ case 326: {
+ action.consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_elemsizeof);
+ break;
+ }
+
+ //
+ // Rule 330: shared_type_qualifier ::= shared
+ //
+ case 330: {
+ action.consumeToken();
+ break;
+ }
+
+ //
+ // Rule 331: reference_type_qualifier ::= relaxed
+ //
+ case 331: {
+ action.consumeToken();
+ break;
+ }
+
+ //
+ // Rule 332: reference_type_qualifier ::= strict
+ //
+ case 332: {
+ action.consumeToken();
+ break;
+ }
+
+ //
+ // Rule 333: layout_qualifier ::= [ constant_expression ]
+ //
+ case 333: {
+ action.consumeLayoutQualifier(true, false);
+ break;
+ }
+
+ //
+ // Rule 334: layout_qualifier ::= [ * ]
+ //
+ case 334: {
+ action.consumeLayoutQualifier(false, true);
+ break;
+ }
+
+ //
+ // Rule 335: layout_qualifier ::= [ ]
+ //
+ case 335: {
+ action.consumeLayoutQualifier(false, false);
+ break;
+ }
+
+ //
+ // Rule 337: synchronization_statement ::= upc_notify expression ;
+ //
+ case 337: {
+ action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true);
+ break;
+ }
+
+ //
+ // Rule 338: synchronization_statement ::= upc_notify ;
+ //
+ case 338: {
+ action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false);
+ break;
+ }
+
+ //
+ // Rule 339: synchronization_statement ::= upc_wait expression ;
+ //
+ case 339: {
+ action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true);
+ break;
+ }
+
+ //
+ // Rule 340: synchronization_statement ::= upc_wait ;
+ //
+ case 340: {
+ action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false);
+ break;
+ }
+
+ //
+ // Rule 341: synchronization_statement ::= upc_barrier expression ;
+ //
+ case 341: {
+ action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true);
+ break;
+ }
+
+ //
+ // Rule 342: synchronization_statement ::= upc_barrier ;
+ //
+ case 342: {
+ action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false);
+ break;
+ }
+
+ //
+ // Rule 343: synchronization_statement ::= upc_fence ;
+ //
+ case 343: {
+ action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false);
+ break;
+ }
+
+ //
+ // Rule 344: iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement
+ //
+ case 344: {
+ action.consumeStatementUPCForallLoop(true, true, true, true);
+ break;
+ }
+
+ //
+ // Rule 345: iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement
+ //
+ case 345: {
+ action.consumeStatementUPCForallLoop(true, true, true, false);
+ break;
+ }
+
+ //
+ // Rule 346: iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement
+ //
+ case 346: {
+ action.consumeStatementUPCForallLoop(true, true, false, true);
+ break;
+ }
+
+ //
+ // Rule 347: iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement
+ //
+ case 347: {
+ action.consumeStatementUPCForallLoop(true, true, false, false);
+ break;
+ }
+
+ //
+ // Rule 348: iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement
+ //
+ case 348: {
+ action.consumeStatementUPCForallLoop(true, false, true, true);
+ break;
+ }
+
+ //
+ // Rule 349: iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement
+ //
+ case 349: {
+ action.consumeStatementUPCForallLoop(true, false, true, false);
+ break;
+ }
+
+ //
+ // Rule 350: iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement
+ //
+ case 350: {
+ action.consumeStatementUPCForallLoop(true, false, false, true);
+ break;
+ }
+
+ //
+ // Rule 351: iteration_statement ::= upc_forall ( expression ; ; ; ) statement
+ //
+ case 351: {
+ action.consumeStatementUPCForallLoop(true, false, false, false);
+ break;
+ }
+
+ //
+ // Rule 352: iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement
+ //
+ case 352: {
+ action.consumeStatementUPCForallLoop(false, true, true, true);
+ break;
+ }
+
+ //
+ // Rule 353: iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement
+ //
+ case 353: {
+ action.consumeStatementUPCForallLoop(false, true, true, false);
+ break;
+ }
+
+ //
+ // Rule 354: iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement
+ //
+ case 354: {
+ action.consumeStatementUPCForallLoop(false, true, false, true);
+ break;
+ }
+
+ //
+ // Rule 355: iteration_statement ::= upc_forall ( ; expression ; ; ) statement
+ //
+ case 355: {
+ action.consumeStatementUPCForallLoop(false, true, false, false);
+ break;
+ }
+
+ //
+ // Rule 356: iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement
+ //
+ case 356: {
+ action.consumeStatementUPCForallLoop(false, false, true, true);
+ break;
+ }
+
+ //
+ // Rule 357: iteration_statement ::= upc_forall ( ; ; expression ; ) statement
+ //
+ case 357: {
+ action.consumeStatementUPCForallLoop(false, false, true, false);
+ break;
+ }
+
+ //
+ // Rule 358: iteration_statement ::= upc_forall ( ; ; ; affinity ) statement
+ //
+ case 358: {
+ action.consumeStatementUPCForallLoop(false, false, false, true);
+ break;
+ }
+
+ //
+ // Rule 359: iteration_statement ::= upc_forall ( ; ; ; ) statement
+ //
+ case 359: {
+ action.consumeStatementUPCForallLoop(false, false, false, false);
+ break;
+ }
+
+ //
+ // Rule 360: iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement
+ //
+ case 360: {
+ action.consumeStatementUPCForallLoop(true, true, true, true);
+ break;
+ }
+
+ //
+ // Rule 361: iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement
+ //
+ case 361: {
+ action.consumeStatementUPCForallLoop(true, true, true, false);
+ break;
+ }
+
+ //
+ // Rule 362: iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement
+ //
+ case 362: {
+ action.consumeStatementUPCForallLoop(true, true, false, true);
+ break;
+ }
+
+ //
+ // Rule 363: iteration_statement ::= upc_forall ( declaration expression ; ; ) statement
+ //
+ case 363: {
+ action.consumeStatementUPCForallLoop(true, true, false, false);
+ break;
+ }
+
+ //
+ // Rule 364: iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement
+ //
+ case 364: {
+ action.consumeStatementUPCForallLoop(true, false, true, true);
+ break;
+ }
+
+ //
+ // Rule 365: iteration_statement ::= upc_forall ( declaration ; expression ; ) statement
+ //
+ case 365: {
+ action.consumeStatementUPCForallLoop(true, false, true, false);
+ break;
+ }
+
+ //
+ // Rule 366: iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement
+ //
+ case 366: {
+ action.consumeStatementUPCForallLoop(true, false, false, true);
+ break;
+ }
+
+ //
+ // Rule 367: iteration_statement ::= upc_forall ( declaration ; ; ) statement
+ //
+ case 367: {
+ action.consumeStatementUPCForallLoop(true, false, false, false);
+ break;
+ }
+
+ //
+ // Rule 369: affinity ::= continue
+ //
+ case 369: {
+ action.consumeToken();
+ break;
+ }
+
+ default:
+ break;
+ }
+ return;
+ }
+}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParserprs.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParserprs.java
index 399dea333eb..dd92bacf92c 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
@@ -18,1292 +18,747 @@ package org.eclipse.cdt.internal.core.dom.parser.upc;
public class UPCExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UPCExpressionParsersym {
- public interface IsKeyword {
- public final static byte isKeyword[] = {0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0
- };
- };
- public final static byte isKeyword[] = IsKeyword.isKeyword;
- public final boolean isKeyword(int index) { return isKeyword[index] != 0; }
-
- public interface BaseCheck {
- public final static short baseCheck[] = {0,
- 0,0,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,3,1,
- 1,4,4,3,3,2,2,4,1,0,
- 1,1,2,2,2,2,2,2,2,2,
- 2,4,1,4,1,3,3,3,1,3,
- 3,1,3,3,1,3,3,3,3,1,
- 3,3,1,3,1,3,1,3,1,3,
- 1,3,1,5,1,3,3,3,3,3,
- 3,3,3,3,3,3,1,1,2,1,
- 0,1,3,1,1,1,1,1,1,1,
- 1,3,4,3,2,4,1,2,1,1,
- 1,2,5,7,5,1,0,7,2,5,
- 9,8,3,2,2,2,3,2,4,2,
- 2,2,2,2,1,1,1,1,2,1,
- 2,2,2,1,2,2,1,2,2,1,
- 2,2,1,2,2,1,3,1,3,1,
- 1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,1,1,
- 6,8,0,0,1,1,3,3,3,0,
- 1,0,1,2,4,2,1,1,1,3,
- 1,1,2,3,7,8,0,1,0,1,
- 3,1,3,1,1,1,1,1,1,3,
- 1,1,1,1,1,3,1,2,2,1,
- 5,3,1,3,5,1,3,1,3,2,
- 4,3,5,4,6,6,3,5,1,3,
- 4,5,6,0,1,2,1,3,1,1,
- 3,2,1,1,1,1,2,1,2,3,
- 1,1,1,3,1,2,2,2,3,4,
- 5,1,1,7,3,0,0,1,1,3,
- 3,4,1,1,2,3,2,3,2,1,
- 0,1,2,1,1,1,1,1,2,1,
- 3,6,4,2,4,1,1,1,1,1,
- 2,4,2,4,2,4,1,1,2,1,
- 1,1,3,3,2,1,3,2,3,2,
- 3,2,2,11,10,10,9,10,9,9,
- 8,10,9,9,8,9,8,8,7,10,
- 9,9,8,9,8,8,7,1,1,-43,
- 0,0,0,0,0,0,0,0,0,-2,
- 0,0,0,0,0,0,0,0,0,0,
- -132,0,0,0,0,0,-81,0,0,0,
- 0,0,0,0,0,0,0,0,-62,0,
- 0,0,0,0,0,0,0,0,-40,0,
- 0,0,0,0,0,0,0,-175,0,-153,
- 0,-120,0,0,0,0,-88,0,-90,0,
- -4,0,-17,0,0,0,0,0,0,0,
- -157,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,-224,-44,0,0,0,0,0,0,0,
- 0,0,0,-207,0,-19,-193,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-148,0,-1,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,-82,-20,0,-145,0,0,0,0,
- 0,0,0,0,-115,-116,-85,0,0,0,
- 0,-21,0,0,0,0,-117,0,0,0,
- 0,0,0,0,0,0,-5,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-22,0,-141,
- 0,0,0,0,0,0,0,0,-208,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- -49,0,0,0,0,0,0,0,0,0,
- 0,0,0,-83,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-80,0,-45,0,0,0,
- 0,0,0,0,0,0,-3,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-124,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-131,0,
- 0,0,0,0,0,0,0,0,-199,0,
- 0,0,0,0,0,0,0,0,-133,0,
- 0,-9,0,0,0,0,0,0,0,-23,
- 0,0,0,0,0,-125,-144,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-30,
- 0,0,0,0,0,0,0,0,0,-41,
- 0,0,0,0,0,0,0,0,0,0,
- -63,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,-64,0,0,0,0,0,0,0,0,
- 0,-74,0,0,0,0,0,0,0,0,
- 0,0,-65,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-66,0,0,0,0,0,0,
- 0,0,0,-75,0,0,0,0,0,0,
- 0,0,0,0,-67,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-68,0,0,0,0,
- 0,0,0,0,0,-76,0,0,0,0,
- 0,0,0,0,0,0,-69,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-70,0,0,
- 0,0,0,0,0,0,0,-77,0,0,
- 0,0,0,0,0,0,0,0,-71,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-72,
- 0,0,0,0,0,0,0,0,0,-78,
- 0,0,0,0,0,0,0,0,0,0,
- -73,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,-137,0,0,0,0,0,0,0,0,
- 0,-79,0,0,0,0,0,0,0,0,
- 0,0,-160,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-161,0,0,0,0,0,0,
- 0,0,0,-24,0,0,0,0,0,0,
- 0,0,0,0,-196,0,0,0,0,0,
- 0,0,0,0,-226,0,0,0,0,0,
- 0,0,0,0,-205,0,0,0,0,0,
- 0,0,0,0,-25,0,0,0,0,0,
- 0,0,0,0,0,-6,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- -134,0,-211,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,-217,0,0,0,0,0,0,0,
- 0,0,-26,0,0,0,0,0,0,0,
- 0,0,-10,0,0,0,0,0,0,0,
- 0,-11,0,0,0,0,0,0,0,-27,
- -225,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- -61,0,0,0,0,0,0,0,0,0,
- -28,0,0,0,0,0,0,0,-97,0,
- -12,0,0,0,0,0,0,0,0,-50,
- 0,0,0,0,0,0,0,0,0,-95,
- 0,0,0,0,0,-174,-118,-86,-147,-29,
- -36,0,-98,0,0,0,0,-99,0,-59,
- 0,0,0,0,0,0,0,0,0,-100,
- 0,0,0,0,0,0,0,0,0,-212,
- 0,0,0,0,0,-164,0,0,0,0,
- 0,0,0,0,-92,0,-101,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- -128,-119,-135,0,0,-13,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,-202,0,0,0,0,0,0,-183,
- -37,0,0,0,0,0,0,-58,0,0,
- 0,0,0,0,0,0,0,-139,0,0,
- 0,0,0,0,-102,-206,0,0,0,0,
- -103,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-89,-146,0,0,
- 0,0,-55,0,0,0,0,0,0,0,
- 0,0,-104,0,0,0,-136,0,0,0,
- 0,0,0,0,-197,0,0,-195,0,-158,
- -105,0,0,0,0,0,-56,0,0,0,
- 0,0,0,0,0,0,0,0,0,-57,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,-51,0,0,0,0,0,0,0,
- 0,0,-87,0,-52,0,0,0,0,0,
- 0,0,0,0,-186,0,-14,0,0,0,
- 0,0,0,0,0,0,0,0,0,-127,
- 0,0,0,0,0,0,0,0,0,0,
- 0,-53,0,0,0,0,0,0,0,0,
- 0,0,-93,-91,-210,0,0,-106,0,0,
- -54,0,0,0,0,0,0,0,0,0,
- -219,-130,-169,-182,-154,-84,0,0,0,0,
- 0,0,-94,0,0,0,0,-189,0,0,
- 0,0,0,0,0,-107,0,-7,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-96,0,0,0,
- 0,0,-143,0,0,0,0,0,-152,0,
- 0,0,0,0,0,0,0,-42,-156,0,
- 0,0,0,-151,0,-108,-165,0,0,0,
- 0,0,0,0,0,-163,0,0,0,0,
- 0,0,0,-109,-110,0,0,-46,0,0,
- 0,0,0,0,0,0,-111,0,-47,0,
- 0,0,0,0,0,0,0,0,0,0,
- -48,0,0,0,0,0,0,0,0,-129,
- -168,-187,-159,-162,-39,-138,-181,-173,0,0,
- 0,0,0,-112,0,-113,0,-8,0,0,
- 0,0,0,0,-114,0,0,0,0,0,
- -121,-123,0,0,0,0,0,-15,0,0,
- 0,0,0,0,-16,0,0,0,0,0,
- 0,0,-18,0,0,0,-140,0,-60,0,
- 0,0,0,-31,0,-185,0,-38,0,-149,
- -167,0,-172,0,-32,-166,-220,0,0,0,
- 0,-155,0,0,0,0,0,-33,-170,0,
- 0,0,0,0,0,0,0,0,-34,0,
- 0,0,0,-122,0,0,0,0,0,-35,
- 0,0,-200,-190,0,0,-203,-171,0,0,
- 0,0,0,-126,0,0,0,0,-176,0,
- 0,0,0,0,0,-142,0,0,0,0,
- 0,-184,0,-192,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,-178,-201,-179,-150,-216,0,-188,0,
- 0,-204,0,0,-180,0,-213,-177,0,-191,
- -215,-221,0,-209,0,-214,0,0,-198,0,
- 0,-194,0,-222,0,0,0,0,0,0,
- 0,0,0,0,-218,0,0,0,-223,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0
- };
- };
- public final static short baseCheck[] = BaseCheck.baseCheck;
- @Override
- public final int baseCheck(int index) { return baseCheck[index]; }
- public final static short rhs[] = baseCheck;
- @Override
- public final int rhs(int index) { return rhs[index]; };
-
- public interface BaseAction {
- public final static char baseAction[] = {
- 89,10,105,22,22,21,21,46,46,72,
- 72,1,1,2,2,2,2,3,3,3,
- 4,5,5,5,5,5,5,5,5,62,
- 62,73,6,6,6,6,6,6,6,6,
- 6,6,6,7,7,8,8,8,8,9,
- 9,9,11,11,11,12,12,12,12,12,
- 13,13,13,14,14,15,15,16,16,17,
- 17,18,18,19,19,20,20,20,20,20,
- 20,20,20,20,20,20,20,106,31,28,
- 90,90,74,74,48,107,107,107,107,107,
- 107,107,108,108,108,109,109,114,114,115,
- 115,110,110,111,111,111,117,117,112,112,
- 112,112,112,113,113,113,113,113,116,116,
- 27,27,27,27,27,35,35,35,80,80,
- 75,75,75,75,76,76,76,77,77,77,
- 78,78,78,79,79,79,118,118,119,119,
- 120,36,38,38,38,38,38,56,57,57,
- 57,57,57,57,57,57,57,57,57,57,
- 66,63,63,91,92,68,68,64,64,64,
- 69,81,81,82,82,70,70,70,33,93,
- 93,83,84,84,84,65,65,94,85,85,
- 86,86,71,71,23,24,24,24,37,53,
- 53,39,39,39,39,42,42,44,40,40,
- 41,45,45,121,121,43,122,122,95,95,
- 29,29,29,29,29,29,29,29,29,87,
- 54,54,54,54,30,59,59,58,58,58,
- 60,60,55,55,96,96,47,47,61,61,
- 61,49,49,49,50,51,51,51,52,52,
- 52,52,67,67,32,32,34,98,97,97,
- 97,97,88,99,100,100,101,101,102,102,
- 123,123,124,124,125,125,125,125,127,127,
- 126,126,126,128,129,129,89,89,2,2,
- 2,6,6,6,6,6,6,23,23,25,
- 25,26,26,103,103,103,107,130,130,130,
- 130,130,130,130,112,112,112,112,112,112,
- 112,112,112,112,112,112,112,112,112,112,
- 112,112,112,112,112,112,112,112,131,131,
- 1,1263,17,21,18,443,1260,45,524,486,
- 295,578,542,1064,730,1163,1105,1221,1190,75,
- 92,76,430,136,214,327,328,525,20,17,
- 21,18,443,43,44,138,135,137,161,618,
- 20,17,21,18,443,43,45,524,486,838,
- 578,542,1064,730,1163,1695,140,167,551,28,
- 123,1701,6,144,147,150,153,277,439,39,
- 397,40,1676,65,441,1473,1397,1524,1553,1587,
- 1229,556,20,17,21,18,443,1260,45,524,
- 486,428,578,542,1064,730,1163,1105,1221,1190,
- 75,282,232,618,20,17,21,18,443,43,
- 45,1268,1747,283,132,1701,66,347,20,17,
- 21,18,443,1260,45,524,486,428,578,542,
- 1064,730,1163,1105,1221,1190,75,282,225,180,
- 492,219,1617,222,1746,224,225,230,288,283,
- 657,1701,1759,32,59,1875,830,1862,1425,294,
- 391,136,214,327,328,133,768,151,88,289,
- 329,316,64,138,135,137,161,799,1256,256,
- 214,327,328,1702,290,200,201,649,20,17,
- 21,18,443,325,140,167,276,28,28,1701,
- 1701,144,147,150,153,291,439,1774,142,28,
- 32,1701,284,1473,1397,1524,1553,1587,1229,587,
- 20,17,21,18,443,1260,45,524,486,380,
- 578,542,1064,730,1163,1105,1221,1190,75,282,
- 1673,618,20,17,21,18,443,43,45,524,
- 486,283,1307,1701,281,20,17,21,18,443,
- 1260,45,524,486,1794,578,542,1064,730,1163,
- 1105,1221,1190,75,736,235,240,618,20,17,
- 21,18,443,43,45,1280,292,618,20,17,
- 21,18,443,1260,45,524,486,22,578,542,
- 1064,730,1163,1105,1221,1190,75,92,804,20,
- 17,21,18,443,1260,45,524,486,1806,578,
- 542,1064,730,1163,1105,1221,1190,75,1593,461,
- 20,17,21,18,443,43,45,524,486,982,
- 578,542,1064,730,1163,1105,1221,1190,94,243,
- 188,335,618,20,17,21,18,443,43,40,
- 53,441,256,214,327,328,235,314,20,17,
- 21,18,443,1260,45,524,486,1614,578,542,
- 1064,730,1163,1105,1221,1190,75,1674,242,241,
- 618,20,17,21,18,443,1260,45,524,486,
- 838,578,542,1064,730,1163,1105,1221,1190,75,
- 93,618,20,17,21,18,443,1260,45,524,
- 486,19,578,542,1064,730,1163,1105,1221,1190,
- 75,86,618,20,17,21,18,443,1260,45,
- 524,486,838,578,542,1064,730,1163,1105,1221,
- 1190,75,85,618,20,17,21,18,443,1260,
- 45,524,486,535,578,542,1064,730,1163,1105,
- 1221,1190,75,84,618,20,17,21,18,443,
- 1260,45,524,486,838,578,542,1064,730,1163,
- 1105,1221,1190,75,83,618,20,17,21,18,
- 443,1260,45,524,486,536,578,542,1064,730,
- 1163,1105,1221,1190,75,82,618,20,17,21,
- 18,443,1260,45,524,486,838,578,542,1064,
- 730,1163,1105,1221,1190,75,81,618,20,17,
- 21,18,443,1260,45,524,486,547,578,542,
- 1064,730,1163,1105,1221,1190,75,80,618,20,
- 17,21,18,443,1260,45,524,486,838,578,
- 542,1064,730,1163,1105,1221,1190,75,79,618,
- 20,17,21,18,443,1260,45,524,486,1257,
- 578,542,1064,730,1163,1105,1221,1190,75,78,
- 618,20,17,21,18,443,1260,45,524,486,
- 838,578,542,1064,730,1163,1105,1221,1190,75,
- 77,618,20,17,21,18,443,1260,45,524,
- 486,1322,578,542,1064,730,1163,1105,1221,1190,
- 75,76,618,20,17,21,18,443,1260,45,
- 524,486,838,578,542,1064,730,1163,1105,1221,
- 1190,75,74,618,20,17,21,18,443,1260,
- 45,524,486,23,578,542,1064,730,1163,1105,
- 1221,1190,75,1833,618,20,17,21,18,443,
- 1260,45,524,486,171,578,542,1064,730,1163,
- 1105,1221,1190,75,1835,618,20,17,21,18,
- 443,43,45,524,486,736,578,542,1064,730,
- 1163,1105,1221,1190,94,618,20,17,21,18,
- 443,43,45,524,486,333,578,542,1064,730,
- 1163,1105,1221,1190,94,1727,680,20,17,21,
- 18,443,323,1854,220,1617,222,1746,224,225,
- 230,243,187,618,20,17,21,18,443,43,
- 45,524,486,213,578,542,1064,730,1163,1105,
- 1221,1190,94,618,20,17,21,18,443,43,
- 45,524,486,613,578,542,1064,730,1163,1105,
- 1221,1190,94,618,20,17,21,18,443,43,
- 39,1864,618,20,17,21,18,443,43,38,
- 176,618,20,17,21,18,443,43,45,524,
- 486,203,578,542,1064,730,1163,1105,1221,1190,
- 94,618,20,17,21,18,443,43,45,524,
- 486,238,578,542,1064,730,1163,1105,1686,225,
- 180,618,20,17,21,18,443,43,37,204,
- 618,20,17,21,18,443,43,45,524,486,
- 380,1375,136,214,327,328,654,854,385,1019,
- 885,243,31,835,139,135,137,161,81,1741,
- 618,20,17,21,18,443,43,45,524,486,
- 115,578,542,1064,1647,141,167,277,275,28,
- 1002,1701,145,148,151,154,979,439,219,1617,
- 222,1746,224,225,230,325,1677,341,268,1258,
- 537,273,264,256,214,327,328,278,1814,1417,
- 265,838,886,188,1752,275,618,20,17,21,
- 18,443,43,36,25,219,1617,222,1746,224,
- 225,230,274,232,1323,268,1258,537,273,1845,
- 1030,243,31,1747,28,262,1701,1321,618,20,
- 17,21,18,443,43,45,524,486,6,578,
- 542,1064,730,1635,719,400,243,1784,451,275,
- 1727,480,219,1617,222,1746,224,225,230,220,
- 1617,222,1746,224,225,230,1875,864,838,270,
- 1258,537,273,618,20,17,21,18,443,43,
- 45,524,486,511,578,542,1566,243,189,280,
- 136,214,327,328,24,583,199,201,243,297,
- 32,80,146,135,137,161,1837,618,20,17,
- 21,18,443,43,45,524,486,211,578,1616,
- 618,20,17,21,18,443,43,45,524,486,
- 1799,578,1634,618,20,17,21,18,443,43,
- 45,524,486,378,1381,618,20,17,21,18,
- 443,43,45,524,486,632,1413,618,20,17,
- 21,18,443,43,35,1343,136,214,327,328,
- 430,20,17,21,18,443,43,36,143,135,
- 137,161,618,20,17,21,18,443,43,45,
- 524,1431,247,358,881,243,299,295,249,142,
- 167,618,20,17,21,18,443,43,45,524,
- 1528,674,883,838,883,6,848,136,214,327,
- 328,1747,1836,909,1783,1788,1670,196,661,149,
- 135,137,161,279,281,232,193,278,711,20,
- 17,21,18,443,321,275,136,214,327,328,
- 219,1617,222,1746,224,225,230,926,152,135,
- 137,161,1131,235,1845,268,1258,537,273,430,
- 20,17,21,18,443,43,36,1321,880,6,
- 136,214,327,328,235,244,70,599,523,1678,
- 1842,334,155,135,137,161,430,20,17,21,
- 18,443,43,36,120,706,333,275,618,20,
- 17,21,18,443,43,48,229,200,248,618,
- 20,17,21,18,443,43,47,268,1258,537,
- 273,618,20,17,21,18,443,43,46,267,
- 924,601,113,974,235,6,518,924,441,1784,
- 508,508,508,1848,20,657,487,508,742,20,
- 17,21,18,443,41,550,243,1259,1259,198,
- 1702,912,175,88,1259,1485,645,1702,773,20,
- 17,21,18,443,34,773,20,17,21,18,
- 443,33,285,6,1774,260,261,391,1398,6,
- 1740,1350,260,370,6,1398,518,1740,340,657,
- 486,32,194,6,370,6,386,32,657,210,
- 198,88,930,1839,770,370,1608,88,6,957,
- 1684,198,88,1558,1850,770,90,1608,370,6,
- 419,1702,198,88,925,228,770,1702,1608,370,
- 6,812,181,247,716,198,88,661,57,770,
- 370,1608,854,508,382,1350,198,88,508,978,
- 770,1085,1608,275,1727,896,382,198,88,1859,
- 1259,770,6,1608,518,198,938,255,214,327,
- 328,1485,1834,270,1258,537,273,980,1022,255,
- 214,327,328,235,169,235,539,1006,260,441,
- 1784,1847,518,1740,508,838,508,838,382,1852,
- 723,518,518,526,235,245,192,246,193,382,
- 484,198,747,1259,235,526,226,1485,231,1736,
- 1672,255,214,327,328,449,296,235,1856,373,
- 1940,737,255,214,327,328,298,1940,205,1940,
- 1940,260,1940,1033,1543,1940,1740,182,206,1940,
- 1940,1940,1940,1940,193,1940,1940,709,1940,195,
- 210,1940,1940,1940,1940,1851,1672,1940,1290,1940,
- 1940,1940,1940,1940,1787,1850,1940,0,330,699,
- 0,20,180,0,1,2167,0,1,2178,0
- };
- };
- public final static char baseAction[] = BaseAction.baseAction;
- @Override
- public final int baseAction(int index) { return baseAction[index]; }
- public final static char lhs[] = baseAction;
- @Override
- public final int lhs(int index) { return lhs[index]; };
-
- public interface TermCheck {
- public final static byte termCheck[] = {0,
- 0,1,2,3,4,0,6,7,8,9,
- 10,11,12,13,14,15,16,17,18,0,
- 20,21,22,23,24,25,26,27,28,29,
- 30,0,32,33,34,35,36,37,0,0,
- 40,41,42,43,44,45,46,47,48,49,
- 50,51,0,53,54,55,0,1,0,3,
- 8,5,4,0,0,0,2,11,12,0,
- 14,6,7,9,10,0,1,38,3,0,
- 0,25,26,27,4,6,7,68,32,33,
- 34,35,36,37,19,31,40,41,42,43,
- 44,45,46,47,48,49,50,51,52,53,
- 54,55,0,1,0,3,60,5,4,0,
- 62,63,0,11,12,61,14,64,65,66,
- 67,0,0,64,65,66,67,25,26,27,
- 76,0,62,63,32,33,34,35,36,37,
- 0,19,40,41,42,43,44,45,46,47,
- 48,49,50,51,52,53,54,55,0,1,
- 0,3,60,5,0,0,62,63,4,11,
- 12,31,14,64,65,66,67,0,1,0,
- 3,0,0,25,26,27,5,56,57,0,
- 32,33,34,35,36,37,19,8,40,41,
- 42,43,44,45,46,47,48,49,50,51,
- 52,53,54,55,0,1,0,3,60,38,
- 39,0,1,2,0,11,12,0,14,5,
- 70,71,0,1,0,3,0,1,0,25,
- 26,27,77,78,6,7,32,33,34,35,
- 36,37,70,71,40,41,42,43,44,45,
- 46,47,48,49,50,51,0,53,54,55,
- 0,1,2,3,4,5,6,7,8,9,
- 10,0,58,13,0,15,16,17,18,68,
- 20,21,22,23,24,59,0,31,28,29,
- 30,74,32,0,1,2,3,4,5,6,
- 7,8,9,10,0,1,13,3,15,16,
- 17,18,0,20,21,22,23,24,58,0,
- 0,28,29,30,5,32,0,1,2,3,
- 4,5,6,7,8,9,10,0,1,13,
- 3,15,16,17,18,19,20,21,22,23,
- 24,58,0,1,28,29,30,0,39,0,
- 1,0,3,89,0,0,2,2,11,12,
- 0,14,11,12,4,14,56,57,52,0,
- 0,0,25,26,27,73,25,26,27,32,
- 33,34,35,36,37,31,31,40,41,42,
- 43,44,45,46,47,48,49,50,51,0,
- 1,2,3,4,5,6,7,8,9,10,
- 0,1,13,3,15,16,17,18,0,20,
- 21,22,23,24,0,56,57,28,29,30,
- 0,1,2,3,4,5,6,7,8,9,
- 10,0,1,13,3,15,16,17,18,0,
- 20,21,22,23,24,0,0,58,28,29,
- 30,0,1,2,3,4,0,6,7,8,
- 9,10,0,0,13,0,15,16,17,18,
- 0,20,21,22,23,24,68,0,58,28,
- 29,30,5,38,0,1,2,3,4,0,
- 6,7,8,9,10,56,57,13,0,15,
- 16,17,18,19,20,21,22,23,24,0,
- 0,60,28,29,30,0,1,2,3,4,
- 74,6,7,8,9,10,56,57,13,52,
- 15,16,17,18,19,20,21,22,23,24,
- 0,31,0,28,29,30,0,1,2,3,
- 4,0,6,7,8,9,10,59,0,13,
- 0,15,16,17,18,19,20,21,22,23,
- 24,61,0,31,28,29,30,0,1,2,
- 3,4,73,6,7,8,9,10,0,31,
- 13,0,15,16,17,18,5,20,21,22,
- 23,24,0,61,0,28,29,30,0,1,
- 2,3,4,0,6,7,8,9,10,59,
- 0,13,0,15,16,17,18,0,20,21,
- 22,23,24,0,1,2,28,29,30,0,
- 1,2,3,4,72,6,7,8,9,10,
- 0,38,13,0,15,16,17,18,38,20,
- 21,22,23,24,0,0,75,28,29,30,
- 0,1,2,3,4,0,6,7,8,9,
- 10,0,0,13,0,15,16,17,18,0,
- 20,21,22,23,24,0,1,2,28,29,
- 30,0,1,2,3,4,0,6,7,8,
- 9,10,0,0,13,0,15,16,17,18,
- 38,20,21,22,23,24,0,0,0,28,
- 29,30,0,1,2,3,4,72,6,7,
- 8,9,10,0,69,13,19,15,16,17,
- 18,0,20,21,22,23,24,0,0,0,
- 28,29,30,0,1,2,3,4,0,6,
- 7,8,9,10,0,69,13,19,15,16,
- 17,18,0,20,21,22,23,24,0,0,
- 0,28,29,30,0,0,2,0,4,5,
- 11,12,5,14,0,11,12,0,14,2,
- 0,0,5,0,25,26,27,0,0,25,
- 26,27,5,0,0,31,32,33,34,35,
- 36,37,19,39,11,12,39,14,31,0,
- 0,2,0,4,0,0,39,5,25,26,
- 27,11,12,0,14,32,33,34,35,36,
- 37,0,0,0,19,25,26,27,0,52,
- 31,0,32,33,34,35,36,37,0,11,
- 12,39,14,0,0,0,2,4,4,0,
- 19,0,0,25,26,27,11,12,0,14,
- 32,33,34,35,36,37,0,0,19,0,
- 25,26,27,69,0,31,0,32,33,34,
- 35,36,37,79,80,81,82,83,84,85,
- 86,87,88,0,0,19,0,0,0,1,
- 2,0,59,5,11,12,0,14,11,12,
- 0,14,11,12,0,14,0,0,25,26,
- 27,0,25,26,27,0,25,26,27,31,
- 5,0,11,12,0,14,19,39,0,1,
- 2,0,4,0,0,0,25,26,27,0,
- 1,2,0,4,0,0,0,0,0,0,
- 19,0,19,38,0,0,0,0,0,31,
- 0,0,0,0,0,0,0,0,0,0,
- 31,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 75,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0
- };
- };
- public final static byte termCheck[] = TermCheck.termCheck;
- @Override
- public final int termCheck(int index) { return termCheck[index]; }
-
- public interface TermAction {
- public final static char termAction[] = {0,
- 1940,1951,1723,1952,1326,1,1231,1182,1487,1715,
- 1708,2155,2156,1688,2157,1953,1954,1955,1956,1940,
- 1173,722,2258,2259,2260,2271,437,2272,1568,1116,
- 557,254,2104,2105,2103,2158,2106,2102,183,89,
- 2109,2114,2113,2111,2112,2110,2115,2116,2108,2117,
- 2118,2119,65,1250,1523,1305,1940,1,49,1,
- 1403,192,1661,60,32,52,1738,1,1,62,
- 1,647,473,1966,1967,1940,1951,760,1952,54,
- 51,1,1,1,1661,647,473,1012,1,1,
- 1,1,1,1,1545,1675,1,1,1,1,
- 1,1,1,1,1,1,1,1,192,1,
- 1,1,1940,1,50,1,2137,191,1661,61,
- 1649,1638,184,1,1,1351,1,1475,1463,1240,
- 611,287,326,1475,1463,1240,611,1,1,1,
- 1261,55,1649,1638,1,1,1,1,1,1,
- 272,3167,1,1,1,1,1,1,1,1,
- 1,1,1,1,191,1,1,1,1940,1,
- 63,1,2137,192,1940,73,1649,1638,580,1,
- 1,624,1,1475,1463,1240,611,1940,1951,1940,
- 1952,1940,64,1,1,1,1946,1512,1531,66,
- 1,1,1,1,1,1,1609,1403,1,1,
- 1,1,1,1,1,1,1,1,1,1,
- 192,1,1,1,1940,1951,1940,1952,2137,1879,
- 1945,1,2167,1541,1940,2155,2156,71,2157,1944,
- 1450,1437,1940,1951,1940,1952,1,1937,53,2271,
- 437,2272,1211,1729,647,473,2104,2105,2103,2158,
- 2106,2102,1450,1437,2109,2114,2113,2111,2112,2110,
- 2115,2116,2108,2117,2118,2119,330,1250,1523,1305,
- 1,1951,1723,1952,1500,1944,1231,1182,1487,1715,
- 1708,1940,1943,1688,1940,1953,1954,1955,1956,1153,
- 1173,722,2258,2259,2260,2199,1940,1928,1568,1116,
- 557,409,678,1940,1951,1723,1952,1626,1944,1231,
- 1182,1487,1715,1708,186,3307,1688,3307,1953,1954,
- 1955,1956,69,1173,722,2258,2259,2260,1943,1,
- 59,1568,1116,557,91,1054,1,1951,1723,1952,
- 1326,29,1231,1182,1487,1715,1708,185,3331,1688,
- 3331,1953,1954,1955,1956,3167,1173,722,2258,2259,
- 2260,1943,1940,2179,1568,1116,557,130,91,207,
- 3333,1940,3333,1927,271,223,1542,1544,2155,2156,
- 1940,2157,2155,2156,1430,2157,1512,1531,29,58,
- 1940,1940,2271,437,2272,1358,2271,437,2272,2104,
- 2105,2103,2158,2106,2102,624,624,2109,2114,2113,
- 2111,2112,2110,2115,2116,2108,2117,2118,2119,1940,
- 1951,1723,1952,1326,1944,1231,1182,1487,1715,1708,
- 209,1951,1688,1952,1953,1954,1955,1956,202,1173,
- 722,2258,2259,2260,1940,1512,1531,1568,1116,557,
- 1940,1951,1723,1952,1599,1944,1231,1182,1487,1715,
- 1708,208,1376,1688,1376,1953,1954,1955,1956,57,
- 1173,722,2258,2259,2260,257,72,1943,1568,1116,
- 557,1940,1,1,1,1,1940,1,1,1,
- 1,1,1940,1940,1,1940,1,1,1,1,
- 56,1,1,1,1,1,1191,1940,1943,1,
- 1,1,1948,1671,1940,1951,1723,1952,1326,1940,
- 1231,1182,1487,1715,1708,1512,1531,1688,1,1953,
- 1954,1955,1956,3167,1173,722,2258,2259,2260,70,
- 1940,2257,1568,1116,557,1,1951,1723,1952,1326,
- 409,1231,1182,1487,1715,1708,1512,1531,1688,1947,
- 1953,1954,1955,1956,3167,1173,722,2258,2259,2260,
- 1940,1075,293,1568,1116,557,1940,1951,1723,1952,
- 1326,1940,1231,1182,1487,1715,1708,2199,221,1688,
- 1,1953,1954,1955,1956,3167,1173,722,2258,2259,
- 2260,1428,67,1133,1568,1116,557,1940,1951,1723,
- 1952,1326,1358,1231,1182,1487,1715,1708,1940,624,
- 1688,1,1953,1954,1955,1956,1950,1173,722,2258,
- 2259,2260,1940,1525,1940,1568,1116,557,1940,1951,
- 1734,1952,1326,30,1231,1182,1487,1715,1708,2198,
- 30,1688,1940,1953,1954,1955,1956,1940,1173,722,
- 2258,2259,2260,1,2167,1541,1568,1116,557,1940,
- 1951,1745,1952,1326,1270,1231,1182,1487,1715,1708,
- 1940,487,1688,1940,1953,1954,1955,1956,1969,1173,
- 722,2258,2259,2260,1940,68,1949,1568,1116,557,
- 1940,1951,1758,1952,1326,212,1231,1182,1487,1715,
- 1708,1940,208,1688,1940,1953,1954,1955,1956,1940,
- 1173,722,2258,2259,2260,254,2167,1541,1568,1116,
- 557,1940,1951,1769,1952,1326,1940,1231,1182,1487,
- 1715,1708,1940,1940,1688,1940,1953,1954,1955,1956,
- 2781,1173,722,2258,2259,2260,1940,324,1940,1568,
- 1116,557,1940,1951,1780,1952,1326,1270,1231,1182,
- 1487,1715,1708,1940,1095,1688,3167,1953,1954,1955,
- 1956,1940,1173,722,2258,2259,2260,1940,322,1940,
- 1568,1116,557,1,1951,1723,1952,1326,1940,1231,
- 1182,1487,1715,1708,1940,589,1688,3167,1953,1954,
- 1955,1956,1940,1173,722,2258,2259,2260,1940,249,
- 1940,1568,1116,557,20,1940,1931,1940,1931,1931,
- 2155,2156,1946,2157,1940,180,180,1,180,1546,
- 1940,1940,1946,42,2271,437,2272,286,1940,180,
- 180,180,432,131,1940,1931,180,180,180,180,
- 180,180,3167,1931,2155,2156,1945,2157,624,266,
- 132,1546,1,1,43,1940,1945,1946,2271,437,
- 2272,2155,2156,1940,2157,2104,2105,2103,2158,2106,
- 2102,1940,1940,1940,3167,2271,437,2272,133,432,
- 624,1940,2104,2105,2103,2158,2106,2102,1940,2155,
- 2156,1945,2157,1,269,134,1546,254,254,1940,
- 1368,1940,1940,2271,437,2272,2155,2156,1940,2157,
- 2104,2105,2103,2158,2106,2102,1940,1940,1743,1940,
- 2271,437,2272,991,1940,624,1940,2104,2105,2103,
- 2158,2106,2102,970,949,928,907,886,844,865,
- 823,802,781,250,1940,1812,1940,251,1,1934,
- 1296,252,2199,1946,1,1,1940,1,1,1,
- 1940,1,2155,2156,1940,2157,1940,190,1,1,
- 1,253,1,1,1,1940,2271,437,2272,624,
- 1950,1940,2155,2156,1940,2157,186,1945,263,2167,
- 1296,190,1,190,1940,1940,2271,437,2272,269,
- 2167,1296,1940,254,1940,1940,1940,1940,1940,1940,
- 185,1940,207,472,1940,1940,1940,1940,1940,624,
- 1940,1940,1940,1940,1940,1940,1940,1940,1940,1940,
- 624,1940,1940,1940,1940,1940,1940,1940,1940,1940,
- 1940,1940,1940,1940,1940,1940,1940,1940,1940,1940,
- 1949
- };
- };
- public final static char termAction[] = TermAction.termAction;
- @Override
- public final int termAction(int index) { return termAction[index]; }
-
- public interface Asb {
- public final static char asb[] = {0,
- 133,1,206,98,206,206,206,206,206,206,
- 206,206,206,206,206,206,60,10,80,77,
- 84,82,90,88,92,91,94,93,66,206,
- 10,10,10,10,10,418,418,459,206,304,
- 304,339,10,206,206,206,206,206,206,206,
- 206,206,206,206,206,206,206,206,206,206,
- 206,206,206,206,206,206,206,206,206,206,
- 206,206,206,304,304,304,304,304,304,102,
- 109,343,197,385,302,301,311,3,323,129,
- 323,129,129,323,129,323,30,255,77,77,
- 82,82,82,82,80,80,88,84,84,91,
- 90,490,93,92,157,157,157,157,131,382,
- 131,339,343,200,102,53,230,304,427,388,
- 230,129,418,418,129,418,206,382,107,343,
- 331,53,102,229,197,304,337,30,303,390,
- 102,230,131,352,131,421,107,331,331,206,
- 206,102,230,385,485,484,343,390,304,131,
- 352,421,421,423,308,331,53,102,102,304,
- 427,388,337,352,382,345,352,421,423,492,
- 423,382,105,495,418,206,307,53,331,390,
- 352,347,423,382,206,418,60,109,102,418,
- 206,331,304,303,382,193,206,192,225,343,
- 382,102,419,347,206,225
- };
- };
- public final static char asb[] = Asb.asb;
- @Override
- public final int asb(int index) { return asb[index]; }
-
- public interface Asr {
- public final static byte asr[] = {0,
- 89,0,5,68,38,58,39,75,31,13,
- 15,16,17,18,2,9,10,8,4,6,
- 7,20,21,22,23,24,28,29,30,1,
- 3,53,54,55,48,40,45,43,44,42,
- 41,46,47,49,50,51,37,34,32,33,
- 36,35,11,12,14,26,25,27,0,31,
- 2,61,76,9,10,69,79,80,81,82,
- 83,85,84,86,87,88,4,62,63,6,
- 7,57,56,64,65,66,67,70,71,8,
- 72,73,74,52,75,77,78,68,39,89,
- 38,58,5,0,5,52,31,61,9,10,
- 8,4,6,7,20,21,13,28,29,30,
- 2,15,16,17,18,22,23,24,1,3,
- 19,0,13,15,16,17,18,1,3,2,
- 9,10,8,4,6,7,20,21,22,23,
- 24,28,29,30,60,0,8,4,6,7,
- 62,63,56,57,64,65,66,67,70,71,
- 72,73,74,77,78,69,79,80,81,82,
- 83,84,85,86,87,88,58,39,52,89,
- 19,68,75,5,38,0,58,5,32,11,
- 12,14,25,26,27,15,16,17,18,22,
- 23,24,3,9,10,8,6,7,20,21,
- 13,28,29,30,4,2,1,0,32,58,
- 5,9,10,8,4,6,7,20,21,13,
- 28,29,30,2,1,3,15,16,17,18,
- 22,23,24,0,12,32,37,14,36,35,
- 34,11,33,25,26,27,61,76,9,10,
- 8,6,7,62,63,56,57,64,65,66,
- 67,70,71,72,73,74,77,78,69,79,
- 80,81,82,83,84,85,86,87,88,4,
- 2,31,38,39,5,0,69,31,61,0,
- 48,40,45,43,44,42,41,46,47,49,
- 50,51,68,75,37,34,32,33,36,35,
- 11,12,14,25,26,27,38,1,5,39,
- 2,31,4,0,75,5,4,1,2,68,
- 0,33,40,11,41,53,34,42,35,43,
- 44,36,12,45,46,32,54,37,55,47,
- 48,14,49,50,51,1,3,25,26,27,
- 60,5,52,0,4,2,31,39,5,33,
- 40,11,41,53,34,42,35,43,44,36,
- 12,45,46,32,54,37,55,47,48,14,
- 49,50,51,25,26,27,59,3,1,0,
- 1,3,5,52,38,0,4,33,40,11,
- 41,53,34,42,35,43,44,36,12,45,
- 46,32,54,37,55,47,48,14,49,50,
- 51,1,3,25,26,27,59,0,5,39,
- 13,15,16,17,18,1,3,2,9,10,
- 8,4,6,7,20,21,22,23,24,28,
- 29,30,0,2,5,38,39,75,31,68,
- 0,5,38,52,69,0
- };
- };
- public final static byte asr[] = Asr.asr;
- @Override
- public final int asr(int index) { return asr[index]; }
-
- public interface Nasb {
- public final static byte nasb[] = {0,
- 36,35,26,35,26,26,26,26,26,26,
- 26,26,26,26,26,26,35,105,35,35,
- 35,35,35,35,35,35,35,35,35,26,
- 105,105,105,105,105,66,66,109,106,87,
- 87,90,1,26,26,26,26,26,26,26,
- 26,26,26,26,26,26,26,26,26,106,
- 26,26,26,26,26,26,26,26,26,26,
- 26,26,26,87,87,87,87,87,87,48,
- 9,39,46,89,44,44,58,17,59,19,
- 59,62,62,59,61,59,53,35,35,35,
- 35,35,35,35,35,35,35,35,35,35,
- 35,35,35,35,10,10,10,10,10,73,
- 35,112,35,50,48,124,47,87,94,86,
- 47,7,7,7,7,7,26,103,73,35,
- 79,124,48,47,42,87,69,28,35,96,
- 48,47,15,73,35,73,24,79,73,26,
- 26,48,47,68,44,44,39,96,87,35,
- 120,73,7,64,13,73,124,48,48,87,
- 94,86,75,73,103,83,99,7,64,35,
- 35,103,23,35,7,26,81,124,42,116,
- 120,71,64,103,26,7,21,25,48,7,
- 26,42,87,87,103,84,26,35,71,39,
- 103,48,35,71,26,77
- };
- };
- public final static byte nasb[] = Nasb.nasb;
- @Override
- public final int nasb(int index) { return nasb[index]; }
-
- public interface Nasr {
- public final static char nasr[] = {0,
- 80,78,77,68,76,75,1,0,5,34,
- 32,0,100,0,92,0,103,0,91,0,
- 98,0,88,10,34,5,0,80,79,78,
- 77,68,76,75,0,10,89,0,30,54,
- 0,23,0,29,0,10,5,22,0,5,
- 10,0,68,63,64,65,66,56,35,0,
- 94,69,0,62,0,73,0,21,51,50,
- 42,40,10,0,51,50,42,40,30,0,
- 102,0,10,72,0,10,21,0,21,50,
- 51,10,0,30,54,10,27,0,10,33,
- 70,0,46,0,33,10,31,0,10,90,
- 0,51,50,30,0,95,10,27,0,82,
- 10,33,0,59,0
- };
- };
- public final static char nasr[] = Nasr.nasr;
- @Override
- public final int nasr(int index) { return nasr[index]; }
-
- public interface TerminalIndex {
- public final static char terminalIndex[] = {0,
- 85,2,86,9,87,10,11,8,6,7,
- 48,64,68,76,81,82,83,84,3,12,
- 13,93,94,95,96,97,98,100,101,102,
- 1,69,44,55,60,63,72,42,90,47,
- 52,56,61,62,66,67,74,75,78,79,
- 80,91,54,70,73,16,17,89,30,107,
- 4,14,15,18,19,20,21,29,31,22,
- 23,24,25,26,92,5,27,28,32,33,
- 34,35,36,37,38,39,40,41,108,45,
- 46,49,50,51,53,57,58,59,65,71,
- 77,88,99,103,104,105,106
- };
- };
- public final static char terminalIndex[] = TerminalIndex.terminalIndex;
- @Override
- public final int terminalIndex(int index) { return terminalIndex[index]; }
-
- public interface NonterminalIndex {
- public final static char nonterminalIndex[] = {0,
- 114,0,0,0,116,120,121,122,123,0,
- 124,125,126,127,128,129,130,131,0,132,
- 111,110,142,0,0,0,135,0,163,0,
- 115,119,154,0,141,0,0,0,159,161,
- 0,162,0,0,0,112,118,134,172,173,
- 174,0,150,160,169,144,0,164,167,168,
- 171,0,145,146,147,148,149,151,0,153,
- 158,113,117,133,136,137,138,139,140,143,
- 0,152,156,0,0,157,166,176,109,0,
- 0,0,155,0,165,170,175,0,177,178,
- 0,179,180,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0
- };
- };
- public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
- @Override
- public final int nonterminalIndex(int index) { return nonterminalIndex[index]; }
-
- public interface ScopePrefix {
- public final static char scopePrefix[] = {
- 120,151,130,59,69,159,26,186,35,87,
- 105,75,6,12,16,40,83,52,141,208,
- 215,219,52,52,195,52,1,1,1,44,
- 47,92,115,47,223,20,145,202,202,177,
- 137,165,165,165,165,165,95,95,95
- };
- };
- public final static char scopePrefix[] = ScopePrefix.scopePrefix;
- @Override
- public final int scopePrefix(int index) { return scopePrefix[index]; }
-
- public interface ScopeSuffix {
- public final static char scopeSuffix[] = {
- 128,128,128,4,4,128,32,192,10,4,
- 10,80,10,10,10,10,4,4,139,10,
- 10,4,56,80,199,65,4,4,4,10,
- 50,4,10,118,10,23,148,205,212,180,
- 139,167,169,171,173,175,102,97,110
- };
- };
- public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
- @Override
- public final int scopeSuffix(int index) { return scopeSuffix[index]; }
-
- public interface ScopeLhs {
- public final static char scopeLhs[] = {
- 65,63,65,29,29,63,32,111,52,29,
- 45,29,6,6,6,52,29,29,70,6,
- 5,5,29,29,19,29,103,102,101,50,
- 61,29,42,53,3,88,70,7,5,112,
- 70,79,78,77,76,75,45,43,45
- };
- };
- public final static char scopeLhs[] = ScopeLhs.scopeLhs;
- @Override
- public final int scopeLhs(int index) { return scopeLhs[index]; }
-
- public interface ScopeLa {
- public final static byte scopeLa[] = {
- 52,52,52,58,58,52,52,95,39,58,
- 39,15,39,39,39,39,58,58,75,39,
- 39,58,4,15,68,32,58,58,58,39,
- 2,58,39,1,39,69,1,39,39,101,
- 75,1,53,54,54,48,2,2,2
- };
- };
- public final static byte scopeLa[] = ScopeLa.scopeLa;
- @Override
- public final int scopeLa(int index) { return scopeLa[index]; }
-
- public interface ScopeStateSet {
- public final static byte scopeStateSet[] = {
- 29,29,29,33,33,29,19,-1,37,33,
- 9,33,44,44,44,37,33,33,5,44,
- 44,44,33,33,78,33,17,1,3,37,
- 39,33,9,11,44,105,5,50,44,-1,
- 5,30,30,30,30,30,9,9,9
- };
- };
- public final static byte scopeStateSet[] = ScopeStateSet.scopeStateSet;
- @Override
- public final int scopeStateSet(int index) { return scopeStateSet[index]; }
-
- public interface ScopeRhs {
- public final static char scopeRhs[] = {0,
- 155,31,0,110,0,154,2,30,0,111,
- 0,154,2,29,0,154,2,28,0,206,
- 117,0,31,149,0,169,204,117,19,141,
- 0,112,0,0,165,117,2,157,0,165,
- 117,2,0,168,2,0,161,117,0,172,
- 0,194,117,31,0,9,110,0,127,32,
- 194,117,31,0,69,132,110,0,127,194,
- 117,32,31,0,194,117,32,31,0,132,
- 110,0,127,32,31,0,127,194,117,31,
- 0,127,31,0,149,0,2,0,165,111,
- 0,2,111,0,165,117,2,149,0,2,
- 0,164,111,0,160,2,0,159,0,169,
- 192,117,19,108,201,53,0,112,0,169,
- 192,117,19,201,53,0,140,0,113,0,
- 200,117,140,0,117,140,0,155,113,0,
- 188,117,19,199,108,198,175,0,188,117,
- 19,198,175,0,187,0,148,0,147,0,
- 146,0,145,0,144,0,214,94,0,77,
- 2,115,111,113,0,214,128,138,2,98,
- 0,53,0,0,138,78,125,0,29,132,
- 0,154,2,0,111,121,0,154,2,13,
- 0,111,119,0,197,2,112,0,138,31,
- 112,0,138,2,0
- };
- };
- public final static char scopeRhs[] = ScopeRhs.scopeRhs;
- @Override
- public final int scopeRhs(int index) { return scopeRhs[index]; }
-
- public interface ScopeState {
- public final static char scopeState[] = {0,
- 1425,0,428,0,1834,1672,1788,0,1085,1350,
- 472,1541,1343,1296,1259,0,437,0,589,487,
- 451,1322,1257,547,536,535,397,0,1229,508,
- 370,0,1746,1617,1258,537,1350,1774,1296,1259,
- 1546,1608,0,1715,1708,1688,1568,1116,557,1626,
- 1599,1500,397,409,1211,1270,1358,1450,1437,1403,
- 1531,1512,1475,1463,1240,611,1661,1649,1638,647,
- 473,1487,1326,1231,1182,1173,722,1191,1153,1133,
- 589,1095,1075,1054,1033,737,1012,699,678,624,
- 991,970,949,928,907,886,865,844,823,802,
- 781,370,760,657,487,451,0
- };
- };
- public final static char scopeState[] = ScopeState.scopeState;
- @Override
- public final int scopeState(int index) { return scopeState[index]; }
-
- public interface InSymb {
- public final static char inSymb[] = {0,
- 0,196,117,181,30,29,28,13,21,20,
- 7,6,4,8,10,9,112,2,116,115,
- 119,118,121,120,123,122,125,124,113,38,
- 2,2,2,2,2,76,61,2,31,154,
- 138,140,117,7,6,63,62,4,67,66,
- 65,64,56,57,8,71,70,73,72,78,
- 77,74,88,87,86,84,85,83,82,81,
- 80,79,69,154,154,154,154,154,197,138,
- 128,117,31,2,158,157,182,26,183,175,
- 184,55,54,185,53,186,187,108,115,115,
- 118,118,118,118,116,116,120,119,119,122,
- 121,138,124,123,128,128,128,128,128,19,
- 141,161,137,32,127,117,4,168,117,2,
- 31,198,176,176,201,176,68,117,19,137,
- 4,117,127,194,166,165,134,117,167,117,
- 155,4,108,19,108,19,117,4,137,194,
- 32,127,4,2,147,149,117,38,165,199,
- 117,19,117,204,117,137,117,127,127,160,
- 117,2,161,19,188,140,189,117,192,108,
- 193,169,38,206,61,31,207,117,166,117,
- 117,117,192,169,69,38,153,69,155,61,
- 31,166,165,202,188,200,68,160,2,117,
- 169,155,38,38,68,161
- };
- };
- public final static char inSymb[] = InSymb.inSymb;
- @Override
- public final int inSymb(int index) { return inSymb[index]; }
-
- public interface Name {
- public final static String name[] = {
- "",
- "[",
- "(",
- "{",
- ".",
- "->",
- "++",
- "--",
- "&",
- "*",
- "+",
- "-",
- "~",
- "!",
- "/",
- "%",
- ">>",
- "<<",
- "<",
- ">",
- "<=",
- ">=",
- "==",
- "!=",
- "^",
- "|",
- "&&",
- "||",
- "?",
- ":",
- "...",
- "=",
- "*=",
- "/=",
- "%=",
- "+=",
- "-=",
- ">>=",
- "<<=",
- "&=",
- "^=",
- "|=",
- ",",
- "$empty",
- "auto",
- "break",
- "case",
- "char",
- "const",
- "continue",
- "default",
- "do",
- "double",
- "else",
- "enum",
- "extern",
- "float",
- "for",
- "goto",
- "if",
- "inline",
- "int",
- "long",
- "register",
- "restrict",
- "return",
- "short",
- "signed",
- "sizeof",
- "static",
- "struct",
- "switch",
- "typedef",
- "union",
- "unsigned",
- "void",
- "volatile",
- "while",
- "_Bool",
- "_Complex",
- "_Imaginary",
- "integer",
- "floating",
- "charconst",
- "stringlit",
- "identifier",
- "Completion",
- "EndOfCompletion",
- "Invalid",
- "RightBracket",
- "RightParen",
- "RightBrace",
- "SemiColon",
- "MYTHREAD",
- "THREADS",
- "UPC_MAX_BLOCKSIZE",
- "relaxed",
- "shared",
- "strict",
- "upc_barrier",
- "upc_localsizeof",
- "upc_blocksizeof",
- "upc_elemsizeof",
- "upc_notify",
- "upc_fence",
- "upc_wait",
- "upc_forall",
- "ERROR_TOKEN",
- "EOF_TOKEN",
- "expression_parser_start",
- "]",
- ")",
- "}",
- ";",
- "identifier_token",
- "expression",
- "postfix_expression",
- "member_name",
- "type_id",
- "initializer_list",
- "unary_expression",
- "cast_expression",
- "multiplicative_expression",
- "additive_expression",
- "shift_expression",
- "relational_expression",
- "equality_expression",
- "and_expression",
- "exclusive_or_expression",
- "inclusive_or_expression",
- "logical_and_expression",
- "logical_or_expression",
- "assignment_expression",
- "expression_list_actual",
- "constant_expression",
- "declaration_specifiers",
- "simple_declaration_specifiers",
- "struct_or_union_declaration_sp" +
- "ecifiers",
- "elaborated_declaration_specifi" +
- "ers",
- "enum_declaration_specifiers",
- "typdef_name_declaration_specif" +
- "iers",
- "no_type_declaration_specifier",
- "type_qualifier",
- "no_type_declaration_specifiers",
- "simple_type_specifier",
- "struct_or_union_specifier",
- "elaborated_specifier",
- "enum_specifier",
- "type_name_specifier",
- "initializer",
- "declarator",
- "struct_or_union",
- "struct_declaration_list",
- "struct_declaration",
- "specifier_qualifier_list",
- "struct_declarator_list",
- "complete_struct_declarator",
- "enumerator_list",
- "enumerator",
- "direct_declarator",
- "pointer_seq",
- "array_direct_declarator",
- "basic_direct_declarator",
- "array_modifier",
- "parameter_type_list",
- "identifier_list",
- "array_modifier_type_qualifiers",
- "type_qualifier_list",
- "parameter_list",
- "parameter_declaration",
- "complete_parameter_declarator",
- "abstract_declarator",
- "direct_abstract_declarator",
- "basic_direct_abstract_declarat" +
- "or",
- "array_direct_abstract_declarat" +
- "or",
- "initializer_seq",
- "designated_initializer",
- "designation",
- "designator_list",
- "designator",
- "layout_qualifier"
- };
- };
- public final static String name[] = Name.name;
- @Override
- public final String name(int index) { return name[index]; }
-
- public final static int
- ERROR_SYMBOL = 60,
- SCOPE_UBOUND = 48,
- SCOPE_SIZE = 49,
- MAX_NAME_LENGTH = 38;
-
- @Override
- public final int getErrorSymbol() { return ERROR_SYMBOL; }
- @Override
- public final int getScopeUbound() { return SCOPE_UBOUND; }
- @Override
- public final int getScopeSize() { return SCOPE_SIZE; }
- @Override
- public final int getMaxNameLength() { return MAX_NAME_LENGTH; }
-
- public final static int
- NUM_STATES = 226,
- NT_OFFSET = 107,
- LA_STATE_OFFSET = 2309,
- MAX_LA = 2,
- NUM_RULES = 369,
- NUM_NONTERMINALS = 131,
- NUM_SYMBOLS = 238,
- SEGMENT_SIZE = 8192,
- START_STATE = 510,
- IDENTIFIER_SYMBOL = 0,
- EOFT_SYMBOL = 89,
- EOLT_SYMBOL = 89,
- ACCEPT_ACTION = 1927,
- ERROR_ACTION = 1940;
-
- public final static boolean BACKTRACK = true;
-
- @Override
- public final int getNumStates() { return NUM_STATES; }
- @Override
- public final int getNtOffset() { return NT_OFFSET; }
- @Override
- public final int getLaStateOffset() { return LA_STATE_OFFSET; }
- @Override
- public final int getMaxLa() { return MAX_LA; }
- @Override
- public final int getNumRules() { return NUM_RULES; }
- @Override
- public final int getNumNonterminals() { return NUM_NONTERMINALS; }
- @Override
- public final int getNumSymbols() { return NUM_SYMBOLS; }
- @Override
- public final int getSegmentSize() { return SEGMENT_SIZE; }
- @Override
- public final int getStartState() { return START_STATE; }
- @Override
- public final int getStartSymbol() { return lhs[0]; }
- public final int getIdentifierSymbol() { return IDENTIFIER_SYMBOL; }
- @Override
- public final int getEoftSymbol() { return EOFT_SYMBOL; }
- @Override
- public final int getEoltSymbol() { return EOLT_SYMBOL; }
- @Override
- public final int getAcceptAction() { return ACCEPT_ACTION; }
- @Override
- public final int getErrorAction() { return ERROR_ACTION; }
- @Override
- public final boolean isValidForParser() { return isValidForParser; }
- @Override
- public final boolean getBacktrack() { return BACKTRACK; }
-
- @Override
+ public interface IsKeyword {
+ public final static byte isKeyword[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
+ };
+
+ public final static byte isKeyword[] = IsKeyword.isKeyword;
+
+ public final boolean isKeyword(int index) {
+ return isKeyword[index] != 0;
+ }
+
+ public interface BaseCheck {
+ public final static short baseCheck[] = { 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 4,
+ 4, 3, 3, 2, 2, 4, 1, 0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 1, 4, 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 3, 3,
+ 3, 3, 1, 3, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 2, 1, 0, 1,
+ 3, 1, 1, 1, 1, 1, 1, 1, 1, 3, 4, 3, 2, 4, 1, 2, 1, 1, 1, 2, 5, 7, 5, 1, 0, 7, 2, 5, 9, 8, 3, 2, 2, 2, 3,
+ 2, 4, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 3, 1, 3, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6, 8, 0, 0, 1, 1, 3, 3, 3, 0, 1, 0, 1, 2, 4, 2, 1,
+ 1, 1, 3, 1, 1, 2, 3, 7, 8, 0, 1, 0, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 3, 1, 2, 2, 1, 5, 3,
+ 1, 3, 5, 1, 3, 1, 3, 2, 4, 3, 5, 4, 6, 6, 3, 5, 1, 3, 4, 5, 6, 0, 1, 2, 1, 3, 1, 1, 3, 2, 1, 1, 1, 1, 2,
+ 1, 2, 3, 1, 1, 1, 3, 1, 2, 2, 2, 3, 4, 5, 1, 1, 7, 3, 0, 0, 1, 1, 3, 3, 4, 1, 1, 2, 3, 2, 3, 2, 1, 0, 1,
+ 2, 1, 1, 1, 1, 1, 2, 1, 3, 6, 4, 2, 4, 1, 1, 1, 1, 1, 2, 4, 2, 4, 2, 4, 1, 1, 2, 1, 1, 1, 3, 3, 2, 1, 3,
+ 2, 3, 2, 3, 2, 2, 11, 10, 10, 9, 10, 9, 9, 8, 10, 9, 9, 8, 9, 8, 8, 7, 10, 9, 9, 8, 9, 8, 8, 7, 1, 1,
+ -43, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -132, 0, 0, 0, 0, 0, -81, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, -62, 0, 0, 0, 0, 0, 0, 0, 0, 0, -40, 0, 0, 0, 0, 0, 0, 0, 0, -175, 0, -153, 0,
+ -120, 0, 0, 0, 0, -88, 0, -90, 0, -4, 0, -17, 0, 0, 0, 0, 0, 0, 0, -157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -224, -44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -207, 0, -19, -193, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -148, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -82,
+ -20, 0, -145, 0, 0, 0, 0, 0, 0, 0, 0, -115, -116, -85, 0, 0, 0, 0, -21, 0, 0, 0, 0, -117, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -22, 0, -141, 0, 0, 0, 0, 0,
+ 0, 0, 0, -208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -49, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, -83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -80, 0, -45, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -124, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -131, 0, 0, 0, 0, 0, 0, 0, 0, 0, -199, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -133, 0, 0, -9, 0, 0, 0, 0, 0, 0, 0, -23, 0, 0, 0, 0, 0, -125, -144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -30, 0, 0, 0, 0, 0, 0, 0, 0, 0, -41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -64, 0, 0, 0, 0, 0, 0, 0, 0, 0, -74, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, -65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -66, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, -75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, -68, 0, 0, 0, 0, 0, 0, 0, 0, 0, -76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -69, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -70, 0, 0, 0, 0, 0, 0, 0, 0, 0, -77, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, -71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -72, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ -78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ -137, 0, 0, 0, 0, 0, 0, 0, 0, 0, -79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -161, 0, 0, 0, 0, 0, 0, 0, 0, 0, -24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -196,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, -226, 0, 0, 0, 0, 0, 0, 0, 0, 0, -205, 0, 0, 0, 0, 0, 0, 0, 0, 0, -25, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, -6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -134, 0, -211, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -217, 0, 0, 0, 0, 0, 0, 0, 0, 0, -26, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ -10, 0, 0, 0, 0, 0, 0, 0, 0, -11, 0, 0, 0, 0, 0, 0, 0, -27, -225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, -61, 0, 0, 0, 0, 0, 0, 0, 0, 0, -28, 0, 0, 0, 0, 0, 0, 0, -97, 0, -12, 0, 0, 0, 0, 0,
+ 0, 0, 0, -50, 0, 0, 0, 0, 0, 0, 0, 0, 0, -95, 0, 0, 0, 0, 0, -174, -118, -86, -147, -29, -36, 0, -98, 0,
+ 0, 0, 0, -99, 0, -59, 0, 0, 0, 0, 0, 0, 0, 0, 0, -100, 0, 0, 0, 0, 0, 0, 0, 0, 0, -212, 0, 0, 0, 0, 0,
+ -164, 0, 0, 0, 0, 0, 0, 0, 0, -92, 0, -101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, -119, -135, 0,
+ 0, -13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -202, 0, 0, 0, 0, 0, 0, -183, -37, 0, 0, 0, 0,
+ 0, 0, -58, 0, 0, 0, 0, 0, 0, 0, 0, 0, -139, 0, 0, 0, 0, 0, 0, -102, -206, 0, 0, 0, 0, -103, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -89, -146, 0, 0, 0, 0, -55, 0, 0, 0, 0, 0, 0, 0, 0, 0, -104, 0, 0, 0,
+ -136, 0, 0, 0, 0, 0, 0, 0, -197, 0, 0, -195, 0, -158, -105, 0, 0, 0, 0, 0, -56, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, -57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -51, 0, 0, 0, 0, 0, 0, 0, 0, 0, -87, 0, -52, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, -186, 0, -14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -127, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, -53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -93, -91, -210, 0, 0, -106, 0, 0, -54, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -219, -130, -169, -182, -154, -84, 0, 0, 0, 0, 0, 0, -94, 0, 0, 0, 0, -189, 0, 0, 0, 0, 0, 0, 0,
+ -107, 0, -7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -96, 0, 0, 0, 0, 0, -143, 0, 0, 0, 0,
+ 0, -152, 0, 0, 0, 0, 0, 0, 0, 0, -42, -156, 0, 0, 0, 0, -151, 0, -108, -165, 0, 0, 0, 0, 0, 0, 0, 0,
+ -163, 0, 0, 0, 0, 0, 0, 0, -109, -110, 0, 0, -46, 0, 0, 0, 0, 0, 0, 0, 0, -111, 0, -47, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, -48, 0, 0, 0, 0, 0, 0, 0, 0, -129, -168, -187, -159, -162, -39, -138, -181, -173, 0,
+ 0, 0, 0, 0, -112, 0, -113, 0, -8, 0, 0, 0, 0, 0, 0, -114, 0, 0, 0, 0, 0, -121, -123, 0, 0, 0, 0, 0, -15,
+ 0, 0, 0, 0, 0, 0, -16, 0, 0, 0, 0, 0, 0, 0, -18, 0, 0, 0, -140, 0, -60, 0, 0, 0, 0, -31, 0, -185, 0,
+ -38, 0, -149, -167, 0, -172, 0, -32, -166, -220, 0, 0, 0, 0, -155, 0, 0, 0, 0, 0, -33, -170, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, -34, 0, 0, 0, 0, -122, 0, 0, 0, 0, 0, -35, 0, 0, -200, -190, 0, 0, -203, -171, 0, 0, 0,
+ 0, 0, -126, 0, 0, 0, 0, -176, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 0, 0, -184, 0, -192, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -178, -201, -179, -150, -216, 0, -188, 0, 0, -204, 0, 0, -180, 0, -213,
+ -177, 0, -191, -215, -221, 0, -209, 0, -214, 0, 0, -198, 0, 0, -194, 0, -222, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -218, 0, 0, 0, -223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
+ };
+
+ public final static short baseCheck[] = BaseCheck.baseCheck;
+
+ @Override
+ public final int baseCheck(int index) {
+ return baseCheck[index];
+ }
+
+ public final static short rhs[] = baseCheck;
+
+ @Override
+ public final int rhs(int index) {
+ return rhs[index];
+ };
+
+ public interface BaseAction {
+ public final static char baseAction[] = { 89, 10, 105, 22, 22, 21, 21, 46, 46, 72, 72, 1, 1, 2, 2, 2, 2, 3, 3,
+ 3, 4, 5, 5, 5, 5, 5, 5, 5, 5, 62, 62, 73, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9,
+ 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 20,
+ 20, 20, 20, 20, 20, 20, 20, 20, 20, 106, 31, 28, 90, 90, 74, 74, 48, 107, 107, 107, 107, 107, 107, 107,
+ 108, 108, 108, 109, 109, 114, 114, 115, 115, 110, 110, 111, 111, 111, 117, 117, 112, 112, 112, 112, 112,
+ 113, 113, 113, 113, 113, 116, 116, 27, 27, 27, 27, 27, 35, 35, 35, 80, 80, 75, 75, 75, 75, 76, 76, 76,
+ 77, 77, 77, 78, 78, 78, 79, 79, 79, 118, 118, 119, 119, 120, 36, 38, 38, 38, 38, 38, 56, 57, 57, 57, 57,
+ 57, 57, 57, 57, 57, 57, 57, 57, 66, 63, 63, 91, 92, 68, 68, 64, 64, 64, 69, 81, 81, 82, 82, 70, 70, 70,
+ 33, 93, 93, 83, 84, 84, 84, 65, 65, 94, 85, 85, 86, 86, 71, 71, 23, 24, 24, 24, 37, 53, 53, 39, 39, 39,
+ 39, 42, 42, 44, 40, 40, 41, 45, 45, 121, 121, 43, 122, 122, 95, 95, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 87, 54, 54, 54, 54, 30, 59, 59, 58, 58, 58, 60, 60, 55, 55, 96, 96, 47, 47, 61, 61, 61, 49, 49, 49, 50,
+ 51, 51, 51, 52, 52, 52, 52, 67, 67, 32, 32, 34, 98, 97, 97, 97, 97, 88, 99, 100, 100, 101, 101, 102,
+ 102, 123, 123, 124, 124, 125, 125, 125, 125, 127, 127, 126, 126, 126, 128, 129, 129, 89, 89, 2, 2, 2, 6,
+ 6, 6, 6, 6, 6, 23, 23, 25, 25, 26, 26, 103, 103, 103, 107, 130, 130, 130, 130, 130, 130, 130, 112, 112,
+ 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
+ 112, 131, 131, 1, 1263, 17, 21, 18, 443, 1260, 45, 524, 486, 295, 578, 542, 1064, 730, 1163, 1105, 1221,
+ 1190, 75, 92, 76, 430, 136, 214, 327, 328, 525, 20, 17, 21, 18, 443, 43, 44, 138, 135, 137, 161, 618,
+ 20, 17, 21, 18, 443, 43, 45, 524, 486, 838, 578, 542, 1064, 730, 1163, 1695, 140, 167, 551, 28, 123,
+ 1701, 6, 144, 147, 150, 153, 277, 439, 39, 397, 40, 1676, 65, 441, 1473, 1397, 1524, 1553, 1587, 1229,
+ 556, 20, 17, 21, 18, 443, 1260, 45, 524, 486, 428, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 75, 282,
+ 232, 618, 20, 17, 21, 18, 443, 43, 45, 1268, 1747, 283, 132, 1701, 66, 347, 20, 17, 21, 18, 443, 1260,
+ 45, 524, 486, 428, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 75, 282, 225, 180, 492, 219, 1617, 222,
+ 1746, 224, 225, 230, 288, 283, 657, 1701, 1759, 32, 59, 1875, 830, 1862, 1425, 294, 391, 136, 214, 327,
+ 328, 133, 768, 151, 88, 289, 329, 316, 64, 138, 135, 137, 161, 799, 1256, 256, 214, 327, 328, 1702, 290,
+ 200, 201, 649, 20, 17, 21, 18, 443, 325, 140, 167, 276, 28, 28, 1701, 1701, 144, 147, 150, 153, 291,
+ 439, 1774, 142, 28, 32, 1701, 284, 1473, 1397, 1524, 1553, 1587, 1229, 587, 20, 17, 21, 18, 443, 1260,
+ 45, 524, 486, 380, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 75, 282, 1673, 618, 20, 17, 21, 18, 443,
+ 43, 45, 524, 486, 283, 1307, 1701, 281, 20, 17, 21, 18, 443, 1260, 45, 524, 486, 1794, 578, 542, 1064,
+ 730, 1163, 1105, 1221, 1190, 75, 736, 235, 240, 618, 20, 17, 21, 18, 443, 43, 45, 1280, 292, 618, 20,
+ 17, 21, 18, 443, 1260, 45, 524, 486, 22, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 75, 92, 804, 20,
+ 17, 21, 18, 443, 1260, 45, 524, 486, 1806, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 75, 1593, 461,
+ 20, 17, 21, 18, 443, 43, 45, 524, 486, 982, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 94, 243, 188,
+ 335, 618, 20, 17, 21, 18, 443, 43, 40, 53, 441, 256, 214, 327, 328, 235, 314, 20, 17, 21, 18, 443, 1260,
+ 45, 524, 486, 1614, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 75, 1674, 242, 241, 618, 20, 17, 21,
+ 18, 443, 1260, 45, 524, 486, 838, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 75, 93, 618, 20, 17, 21,
+ 18, 443, 1260, 45, 524, 486, 19, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 75, 86, 618, 20, 17, 21,
+ 18, 443, 1260, 45, 524, 486, 838, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 75, 85, 618, 20, 17, 21,
+ 18, 443, 1260, 45, 524, 486, 535, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 75, 84, 618, 20, 17, 21,
+ 18, 443, 1260, 45, 524, 486, 838, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 75, 83, 618, 20, 17, 21,
+ 18, 443, 1260, 45, 524, 486, 536, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 75, 82, 618, 20, 17, 21,
+ 18, 443, 1260, 45, 524, 486, 838, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 75, 81, 618, 20, 17, 21,
+ 18, 443, 1260, 45, 524, 486, 547, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 75, 80, 618, 20, 17, 21,
+ 18, 443, 1260, 45, 524, 486, 838, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 75, 79, 618, 20, 17, 21,
+ 18, 443, 1260, 45, 524, 486, 1257, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 75, 78, 618, 20, 17, 21,
+ 18, 443, 1260, 45, 524, 486, 838, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 75, 77, 618, 20, 17, 21,
+ 18, 443, 1260, 45, 524, 486, 1322, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 75, 76, 618, 20, 17, 21,
+ 18, 443, 1260, 45, 524, 486, 838, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 75, 74, 618, 20, 17, 21,
+ 18, 443, 1260, 45, 524, 486, 23, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 75, 1833, 618, 20, 17, 21,
+ 18, 443, 1260, 45, 524, 486, 171, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 75, 1835, 618, 20, 17,
+ 21, 18, 443, 43, 45, 524, 486, 736, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 94, 618, 20, 17, 21,
+ 18, 443, 43, 45, 524, 486, 333, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 94, 1727, 680, 20, 17, 21,
+ 18, 443, 323, 1854, 220, 1617, 222, 1746, 224, 225, 230, 243, 187, 618, 20, 17, 21, 18, 443, 43, 45,
+ 524, 486, 213, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 94, 618, 20, 17, 21, 18, 443, 43, 45, 524,
+ 486, 613, 578, 542, 1064, 730, 1163, 1105, 1221, 1190, 94, 618, 20, 17, 21, 18, 443, 43, 39, 1864, 618,
+ 20, 17, 21, 18, 443, 43, 38, 176, 618, 20, 17, 21, 18, 443, 43, 45, 524, 486, 203, 578, 542, 1064, 730,
+ 1163, 1105, 1221, 1190, 94, 618, 20, 17, 21, 18, 443, 43, 45, 524, 486, 238, 578, 542, 1064, 730, 1163,
+ 1105, 1686, 225, 180, 618, 20, 17, 21, 18, 443, 43, 37, 204, 618, 20, 17, 21, 18, 443, 43, 45, 524, 486,
+ 380, 1375, 136, 214, 327, 328, 654, 854, 385, 1019, 885, 243, 31, 835, 139, 135, 137, 161, 81, 1741,
+ 618, 20, 17, 21, 18, 443, 43, 45, 524, 486, 115, 578, 542, 1064, 1647, 141, 167, 277, 275, 28, 1002,
+ 1701, 145, 148, 151, 154, 979, 439, 219, 1617, 222, 1746, 224, 225, 230, 325, 1677, 341, 268, 1258, 537,
+ 273, 264, 256, 214, 327, 328, 278, 1814, 1417, 265, 838, 886, 188, 1752, 275, 618, 20, 17, 21, 18, 443,
+ 43, 36, 25, 219, 1617, 222, 1746, 224, 225, 230, 274, 232, 1323, 268, 1258, 537, 273, 1845, 1030, 243,
+ 31, 1747, 28, 262, 1701, 1321, 618, 20, 17, 21, 18, 443, 43, 45, 524, 486, 6, 578, 542, 1064, 730, 1635,
+ 719, 400, 243, 1784, 451, 275, 1727, 480, 219, 1617, 222, 1746, 224, 225, 230, 220, 1617, 222, 1746,
+ 224, 225, 230, 1875, 864, 838, 270, 1258, 537, 273, 618, 20, 17, 21, 18, 443, 43, 45, 524, 486, 511,
+ 578, 542, 1566, 243, 189, 280, 136, 214, 327, 328, 24, 583, 199, 201, 243, 297, 32, 80, 146, 135, 137,
+ 161, 1837, 618, 20, 17, 21, 18, 443, 43, 45, 524, 486, 211, 578, 1616, 618, 20, 17, 21, 18, 443, 43, 45,
+ 524, 486, 1799, 578, 1634, 618, 20, 17, 21, 18, 443, 43, 45, 524, 486, 378, 1381, 618, 20, 17, 21, 18,
+ 443, 43, 45, 524, 486, 632, 1413, 618, 20, 17, 21, 18, 443, 43, 35, 1343, 136, 214, 327, 328, 430, 20,
+ 17, 21, 18, 443, 43, 36, 143, 135, 137, 161, 618, 20, 17, 21, 18, 443, 43, 45, 524, 1431, 247, 358, 881,
+ 243, 299, 295, 249, 142, 167, 618, 20, 17, 21, 18, 443, 43, 45, 524, 1528, 674, 883, 838, 883, 6, 848,
+ 136, 214, 327, 328, 1747, 1836, 909, 1783, 1788, 1670, 196, 661, 149, 135, 137, 161, 279, 281, 232, 193,
+ 278, 711, 20, 17, 21, 18, 443, 321, 275, 136, 214, 327, 328, 219, 1617, 222, 1746, 224, 225, 230, 926,
+ 152, 135, 137, 161, 1131, 235, 1845, 268, 1258, 537, 273, 430, 20, 17, 21, 18, 443, 43, 36, 1321, 880,
+ 6, 136, 214, 327, 328, 235, 244, 70, 599, 523, 1678, 1842, 334, 155, 135, 137, 161, 430, 20, 17, 21, 18,
+ 443, 43, 36, 120, 706, 333, 275, 618, 20, 17, 21, 18, 443, 43, 48, 229, 200, 248, 618, 20, 17, 21, 18,
+ 443, 43, 47, 268, 1258, 537, 273, 618, 20, 17, 21, 18, 443, 43, 46, 267, 924, 601, 113, 974, 235, 6,
+ 518, 924, 441, 1784, 508, 508, 508, 1848, 20, 657, 487, 508, 742, 20, 17, 21, 18, 443, 41, 550, 243,
+ 1259, 1259, 198, 1702, 912, 175, 88, 1259, 1485, 645, 1702, 773, 20, 17, 21, 18, 443, 34, 773, 20, 17,
+ 21, 18, 443, 33, 285, 6, 1774, 260, 261, 391, 1398, 6, 1740, 1350, 260, 370, 6, 1398, 518, 1740, 340,
+ 657, 486, 32, 194, 6, 370, 6, 386, 32, 657, 210, 198, 88, 930, 1839, 770, 370, 1608, 88, 6, 957, 1684,
+ 198, 88, 1558, 1850, 770, 90, 1608, 370, 6, 419, 1702, 198, 88, 925, 228, 770, 1702, 1608, 370, 6, 812,
+ 181, 247, 716, 198, 88, 661, 57, 770, 370, 1608, 854, 508, 382, 1350, 198, 88, 508, 978, 770, 1085,
+ 1608, 275, 1727, 896, 382, 198, 88, 1859, 1259, 770, 6, 1608, 518, 198, 938, 255, 214, 327, 328, 1485,
+ 1834, 270, 1258, 537, 273, 980, 1022, 255, 214, 327, 328, 235, 169, 235, 539, 1006, 260, 441, 1784,
+ 1847, 518, 1740, 508, 838, 508, 838, 382, 1852, 723, 518, 518, 526, 235, 245, 192, 246, 193, 382, 484,
+ 198, 747, 1259, 235, 526, 226, 1485, 231, 1736, 1672, 255, 214, 327, 328, 449, 296, 235, 1856, 373,
+ 1940, 737, 255, 214, 327, 328, 298, 1940, 205, 1940, 1940, 260, 1940, 1033, 1543, 1940, 1740, 182, 206,
+ 1940, 1940, 1940, 1940, 1940, 193, 1940, 1940, 709, 1940, 195, 210, 1940, 1940, 1940, 1940, 1851, 1672,
+ 1940, 1290, 1940, 1940, 1940, 1940, 1940, 1787, 1850, 1940, 0, 330, 699, 0, 20, 180, 0, 1, 2167, 0, 1,
+ 2178, 0 };
+ };
+
+ public final static char baseAction[] = BaseAction.baseAction;
+
+ @Override
+ public final int baseAction(int index) {
+ return baseAction[index];
+ }
+
+ public final static char lhs[] = baseAction;
+
+ @Override
+ public final int lhs(int index) {
+ return lhs[index];
+ };
+
+ public interface TermCheck {
+ public final static byte termCheck[] = { 0, 0, 1, 2, 3, 4, 0, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 0,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 0, 32, 33, 34, 35, 36, 37, 0, 0, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, 51, 0, 53, 54, 55, 0, 1, 0, 3, 8, 5, 4, 0, 0, 0, 2, 11, 12, 0, 14, 6, 7, 9, 10, 0, 1,
+ 38, 3, 0, 0, 25, 26, 27, 4, 6, 7, 68, 32, 33, 34, 35, 36, 37, 19, 31, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, 0, 1, 0, 3, 60, 5, 4, 0, 62, 63, 0, 11, 12, 61, 14, 64, 65, 66, 67, 0,
+ 0, 64, 65, 66, 67, 25, 26, 27, 76, 0, 62, 63, 32, 33, 34, 35, 36, 37, 0, 19, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, 51, 52, 53, 54, 55, 0, 1, 0, 3, 60, 5, 0, 0, 62, 63, 4, 11, 12, 31, 14, 64, 65, 66, 67,
+ 0, 1, 0, 3, 0, 0, 25, 26, 27, 5, 56, 57, 0, 32, 33, 34, 35, 36, 37, 19, 8, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, 51, 52, 53, 54, 55, 0, 1, 0, 3, 60, 38, 39, 0, 1, 2, 0, 11, 12, 0, 14, 5, 70, 71, 0, 1,
+ 0, 3, 0, 1, 0, 25, 26, 27, 77, 78, 6, 7, 32, 33, 34, 35, 36, 37, 70, 71, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 0, 53, 54, 55, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, 58, 13, 0, 15, 16, 17, 18, 68, 20,
+ 21, 22, 23, 24, 59, 0, 31, 28, 29, 30, 74, 32, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, 1, 13, 3, 15, 16,
+ 17, 18, 0, 20, 21, 22, 23, 24, 58, 0, 0, 28, 29, 30, 5, 32, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, 1, 13,
+ 3, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 58, 0, 1, 28, 29, 30, 0, 39, 0, 1, 0, 3, 89, 0, 0, 2, 2, 11,
+ 12, 0, 14, 11, 12, 4, 14, 56, 57, 52, 0, 0, 0, 25, 26, 27, 73, 25, 26, 27, 32, 33, 34, 35, 36, 37, 31,
+ 31, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, 1, 13, 3, 15,
+ 16, 17, 18, 0, 20, 21, 22, 23, 24, 0, 56, 57, 28, 29, 30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, 1, 13, 3,
+ 15, 16, 17, 18, 0, 20, 21, 22, 23, 24, 0, 0, 58, 28, 29, 30, 0, 1, 2, 3, 4, 0, 6, 7, 8, 9, 10, 0, 0, 13,
+ 0, 15, 16, 17, 18, 0, 20, 21, 22, 23, 24, 68, 0, 58, 28, 29, 30, 5, 38, 0, 1, 2, 3, 4, 0, 6, 7, 8, 9,
+ 10, 56, 57, 13, 0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 60, 28, 29, 30, 0, 1, 2, 3, 4, 74, 6,
+ 7, 8, 9, 10, 56, 57, 13, 52, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 31, 0, 28, 29, 30, 0, 1, 2, 3,
+ 4, 0, 6, 7, 8, 9, 10, 59, 0, 13, 0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 61, 0, 31, 28, 29, 30, 0, 1,
+ 2, 3, 4, 73, 6, 7, 8, 9, 10, 0, 31, 13, 0, 15, 16, 17, 18, 5, 20, 21, 22, 23, 24, 0, 61, 0, 28, 29, 30,
+ 0, 1, 2, 3, 4, 0, 6, 7, 8, 9, 10, 59, 0, 13, 0, 15, 16, 17, 18, 0, 20, 21, 22, 23, 24, 0, 1, 2, 28, 29,
+ 30, 0, 1, 2, 3, 4, 72, 6, 7, 8, 9, 10, 0, 38, 13, 0, 15, 16, 17, 18, 38, 20, 21, 22, 23, 24, 0, 0, 75,
+ 28, 29, 30, 0, 1, 2, 3, 4, 0, 6, 7, 8, 9, 10, 0, 0, 13, 0, 15, 16, 17, 18, 0, 20, 21, 22, 23, 24, 0, 1,
+ 2, 28, 29, 30, 0, 1, 2, 3, 4, 0, 6, 7, 8, 9, 10, 0, 0, 13, 0, 15, 16, 17, 18, 38, 20, 21, 22, 23, 24, 0,
+ 0, 0, 28, 29, 30, 0, 1, 2, 3, 4, 72, 6, 7, 8, 9, 10, 0, 69, 13, 19, 15, 16, 17, 18, 0, 20, 21, 22, 23,
+ 24, 0, 0, 0, 28, 29, 30, 0, 1, 2, 3, 4, 0, 6, 7, 8, 9, 10, 0, 69, 13, 19, 15, 16, 17, 18, 0, 20, 21, 22,
+ 23, 24, 0, 0, 0, 28, 29, 30, 0, 0, 2, 0, 4, 5, 11, 12, 5, 14, 0, 11, 12, 0, 14, 2, 0, 0, 5, 0, 25, 26,
+ 27, 0, 0, 25, 26, 27, 5, 0, 0, 31, 32, 33, 34, 35, 36, 37, 19, 39, 11, 12, 39, 14, 31, 0, 0, 2, 0, 4, 0,
+ 0, 39, 5, 25, 26, 27, 11, 12, 0, 14, 32, 33, 34, 35, 36, 37, 0, 0, 0, 19, 25, 26, 27, 0, 52, 31, 0, 32,
+ 33, 34, 35, 36, 37, 0, 11, 12, 39, 14, 0, 0, 0, 2, 4, 4, 0, 19, 0, 0, 25, 26, 27, 11, 12, 0, 14, 32, 33,
+ 34, 35, 36, 37, 0, 0, 19, 0, 25, 26, 27, 69, 0, 31, 0, 32, 33, 34, 35, 36, 37, 79, 80, 81, 82, 83, 84,
+ 85, 86, 87, 88, 0, 0, 19, 0, 0, 0, 1, 2, 0, 59, 5, 11, 12, 0, 14, 11, 12, 0, 14, 11, 12, 0, 14, 0, 0,
+ 25, 26, 27, 0, 25, 26, 27, 0, 25, 26, 27, 31, 5, 0, 11, 12, 0, 14, 19, 39, 0, 1, 2, 0, 4, 0, 0, 0, 25,
+ 26, 27, 0, 1, 2, 0, 4, 0, 0, 0, 0, 0, 0, 19, 0, 19, 38, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0 };
+ };
+
+ public final static byte termCheck[] = TermCheck.termCheck;
+
+ @Override
+ public final int termCheck(int index) {
+ return termCheck[index];
+ }
+
+ public interface TermAction {
+ public final static char termAction[] = { 0, 1940, 1951, 1723, 1952, 1326, 1, 1231, 1182, 1487, 1715, 1708,
+ 2155, 2156, 1688, 2157, 1953, 1954, 1955, 1956, 1940, 1173, 722, 2258, 2259, 2260, 2271, 437, 2272,
+ 1568, 1116, 557, 254, 2104, 2105, 2103, 2158, 2106, 2102, 183, 89, 2109, 2114, 2113, 2111, 2112, 2110,
+ 2115, 2116, 2108, 2117, 2118, 2119, 65, 1250, 1523, 1305, 1940, 1, 49, 1, 1403, 192, 1661, 60, 32, 52,
+ 1738, 1, 1, 62, 1, 647, 473, 1966, 1967, 1940, 1951, 760, 1952, 54, 51, 1, 1, 1, 1661, 647, 473, 1012,
+ 1, 1, 1, 1, 1, 1, 1545, 1675, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 192, 1, 1, 1, 1940, 1, 50, 1, 2137,
+ 191, 1661, 61, 1649, 1638, 184, 1, 1, 1351, 1, 1475, 1463, 1240, 611, 287, 326, 1475, 1463, 1240, 611,
+ 1, 1, 1, 1261, 55, 1649, 1638, 1, 1, 1, 1, 1, 1, 272, 3167, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 191, 1,
+ 1, 1, 1940, 1, 63, 1, 2137, 192, 1940, 73, 1649, 1638, 580, 1, 1, 624, 1, 1475, 1463, 1240, 611, 1940,
+ 1951, 1940, 1952, 1940, 64, 1, 1, 1, 1946, 1512, 1531, 66, 1, 1, 1, 1, 1, 1, 1609, 1403, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 192, 1, 1, 1, 1940, 1951, 1940, 1952, 2137, 1879, 1945, 1, 2167, 1541, 1940, 2155,
+ 2156, 71, 2157, 1944, 1450, 1437, 1940, 1951, 1940, 1952, 1, 1937, 53, 2271, 437, 2272, 1211, 1729, 647,
+ 473, 2104, 2105, 2103, 2158, 2106, 2102, 1450, 1437, 2109, 2114, 2113, 2111, 2112, 2110, 2115, 2116,
+ 2108, 2117, 2118, 2119, 330, 1250, 1523, 1305, 1, 1951, 1723, 1952, 1500, 1944, 1231, 1182, 1487, 1715,
+ 1708, 1940, 1943, 1688, 1940, 1953, 1954, 1955, 1956, 1153, 1173, 722, 2258, 2259, 2260, 2199, 1940,
+ 1928, 1568, 1116, 557, 409, 678, 1940, 1951, 1723, 1952, 1626, 1944, 1231, 1182, 1487, 1715, 1708, 186,
+ 3307, 1688, 3307, 1953, 1954, 1955, 1956, 69, 1173, 722, 2258, 2259, 2260, 1943, 1, 59, 1568, 1116, 557,
+ 91, 1054, 1, 1951, 1723, 1952, 1326, 29, 1231, 1182, 1487, 1715, 1708, 185, 3331, 1688, 3331, 1953,
+ 1954, 1955, 1956, 3167, 1173, 722, 2258, 2259, 2260, 1943, 1940, 2179, 1568, 1116, 557, 130, 91, 207,
+ 3333, 1940, 3333, 1927, 271, 223, 1542, 1544, 2155, 2156, 1940, 2157, 2155, 2156, 1430, 2157, 1512,
+ 1531, 29, 58, 1940, 1940, 2271, 437, 2272, 1358, 2271, 437, 2272, 2104, 2105, 2103, 2158, 2106, 2102,
+ 624, 624, 2109, 2114, 2113, 2111, 2112, 2110, 2115, 2116, 2108, 2117, 2118, 2119, 1940, 1951, 1723,
+ 1952, 1326, 1944, 1231, 1182, 1487, 1715, 1708, 209, 1951, 1688, 1952, 1953, 1954, 1955, 1956, 202,
+ 1173, 722, 2258, 2259, 2260, 1940, 1512, 1531, 1568, 1116, 557, 1940, 1951, 1723, 1952, 1599, 1944,
+ 1231, 1182, 1487, 1715, 1708, 208, 1376, 1688, 1376, 1953, 1954, 1955, 1956, 57, 1173, 722, 2258, 2259,
+ 2260, 257, 72, 1943, 1568, 1116, 557, 1940, 1, 1, 1, 1, 1940, 1, 1, 1, 1, 1, 1940, 1940, 1, 1940, 1, 1,
+ 1, 1, 56, 1, 1, 1, 1, 1, 1191, 1940, 1943, 1, 1, 1, 1948, 1671, 1940, 1951, 1723, 1952, 1326, 1940,
+ 1231, 1182, 1487, 1715, 1708, 1512, 1531, 1688, 1, 1953, 1954, 1955, 1956, 3167, 1173, 722, 2258, 2259,
+ 2260, 70, 1940, 2257, 1568, 1116, 557, 1, 1951, 1723, 1952, 1326, 409, 1231, 1182, 1487, 1715, 1708,
+ 1512, 1531, 1688, 1947, 1953, 1954, 1955, 1956, 3167, 1173, 722, 2258, 2259, 2260, 1940, 1075, 293,
+ 1568, 1116, 557, 1940, 1951, 1723, 1952, 1326, 1940, 1231, 1182, 1487, 1715, 1708, 2199, 221, 1688, 1,
+ 1953, 1954, 1955, 1956, 3167, 1173, 722, 2258, 2259, 2260, 1428, 67, 1133, 1568, 1116, 557, 1940, 1951,
+ 1723, 1952, 1326, 1358, 1231, 1182, 1487, 1715, 1708, 1940, 624, 1688, 1, 1953, 1954, 1955, 1956, 1950,
+ 1173, 722, 2258, 2259, 2260, 1940, 1525, 1940, 1568, 1116, 557, 1940, 1951, 1734, 1952, 1326, 30, 1231,
+ 1182, 1487, 1715, 1708, 2198, 30, 1688, 1940, 1953, 1954, 1955, 1956, 1940, 1173, 722, 2258, 2259, 2260,
+ 1, 2167, 1541, 1568, 1116, 557, 1940, 1951, 1745, 1952, 1326, 1270, 1231, 1182, 1487, 1715, 1708, 1940,
+ 487, 1688, 1940, 1953, 1954, 1955, 1956, 1969, 1173, 722, 2258, 2259, 2260, 1940, 68, 1949, 1568, 1116,
+ 557, 1940, 1951, 1758, 1952, 1326, 212, 1231, 1182, 1487, 1715, 1708, 1940, 208, 1688, 1940, 1953, 1954,
+ 1955, 1956, 1940, 1173, 722, 2258, 2259, 2260, 254, 2167, 1541, 1568, 1116, 557, 1940, 1951, 1769, 1952,
+ 1326, 1940, 1231, 1182, 1487, 1715, 1708, 1940, 1940, 1688, 1940, 1953, 1954, 1955, 1956, 2781, 1173,
+ 722, 2258, 2259, 2260, 1940, 324, 1940, 1568, 1116, 557, 1940, 1951, 1780, 1952, 1326, 1270, 1231, 1182,
+ 1487, 1715, 1708, 1940, 1095, 1688, 3167, 1953, 1954, 1955, 1956, 1940, 1173, 722, 2258, 2259, 2260,
+ 1940, 322, 1940, 1568, 1116, 557, 1, 1951, 1723, 1952, 1326, 1940, 1231, 1182, 1487, 1715, 1708, 1940,
+ 589, 1688, 3167, 1953, 1954, 1955, 1956, 1940, 1173, 722, 2258, 2259, 2260, 1940, 249, 1940, 1568, 1116,
+ 557, 20, 1940, 1931, 1940, 1931, 1931, 2155, 2156, 1946, 2157, 1940, 180, 180, 1, 180, 1546, 1940, 1940,
+ 1946, 42, 2271, 437, 2272, 286, 1940, 180, 180, 180, 432, 131, 1940, 1931, 180, 180, 180, 180, 180, 180,
+ 3167, 1931, 2155, 2156, 1945, 2157, 624, 266, 132, 1546, 1, 1, 43, 1940, 1945, 1946, 2271, 437, 2272,
+ 2155, 2156, 1940, 2157, 2104, 2105, 2103, 2158, 2106, 2102, 1940, 1940, 1940, 3167, 2271, 437, 2272,
+ 133, 432, 624, 1940, 2104, 2105, 2103, 2158, 2106, 2102, 1940, 2155, 2156, 1945, 2157, 1, 269, 134,
+ 1546, 254, 254, 1940, 1368, 1940, 1940, 2271, 437, 2272, 2155, 2156, 1940, 2157, 2104, 2105, 2103, 2158,
+ 2106, 2102, 1940, 1940, 1743, 1940, 2271, 437, 2272, 991, 1940, 624, 1940, 2104, 2105, 2103, 2158, 2106,
+ 2102, 970, 949, 928, 907, 886, 844, 865, 823, 802, 781, 250, 1940, 1812, 1940, 251, 1, 1934, 1296, 252,
+ 2199, 1946, 1, 1, 1940, 1, 1, 1, 1940, 1, 2155, 2156, 1940, 2157, 1940, 190, 1, 1, 1, 253, 1, 1, 1,
+ 1940, 2271, 437, 2272, 624, 1950, 1940, 2155, 2156, 1940, 2157, 186, 1945, 263, 2167, 1296, 190, 1, 190,
+ 1940, 1940, 2271, 437, 2272, 269, 2167, 1296, 1940, 254, 1940, 1940, 1940, 1940, 1940, 1940, 185, 1940,
+ 207, 472, 1940, 1940, 1940, 1940, 1940, 624, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
+ 624, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
+ 1940, 1940, 1940, 1949 };
+ };
+
+ public final static char termAction[] = TermAction.termAction;
+
+ @Override
+ public final int termAction(int index) {
+ return termAction[index];
+ }
+
+ public interface Asb {
+ public final static char asb[] = { 0, 133, 1, 206, 98, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206,
+ 206, 60, 10, 80, 77, 84, 82, 90, 88, 92, 91, 94, 93, 66, 206, 10, 10, 10, 10, 10, 418, 418, 459, 206,
+ 304, 304, 339, 10, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206,
+ 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 304, 304, 304, 304, 304, 304, 102, 109,
+ 343, 197, 385, 302, 301, 311, 3, 323, 129, 323, 129, 129, 323, 129, 323, 30, 255, 77, 77, 82, 82, 82,
+ 82, 80, 80, 88, 84, 84, 91, 90, 490, 93, 92, 157, 157, 157, 157, 131, 382, 131, 339, 343, 200, 102, 53,
+ 230, 304, 427, 388, 230, 129, 418, 418, 129, 418, 206, 382, 107, 343, 331, 53, 102, 229, 197, 304, 337,
+ 30, 303, 390, 102, 230, 131, 352, 131, 421, 107, 331, 331, 206, 206, 102, 230, 385, 485, 484, 343, 390,
+ 304, 131, 352, 421, 421, 423, 308, 331, 53, 102, 102, 304, 427, 388, 337, 352, 382, 345, 352, 421, 423,
+ 492, 423, 382, 105, 495, 418, 206, 307, 53, 331, 390, 352, 347, 423, 382, 206, 418, 60, 109, 102, 418,
+ 206, 331, 304, 303, 382, 193, 206, 192, 225, 343, 382, 102, 419, 347, 206, 225 };
+ };
+
+ public final static char asb[] = Asb.asb;
+
+ @Override
+ public final int asb(int index) {
+ return asb[index];
+ }
+
+ public interface Asr {
+ public final static byte asr[] = { 0, 89, 0, 5, 68, 38, 58, 39, 75, 31, 13, 15, 16, 17, 18, 2, 9, 10, 8, 4, 6,
+ 7, 20, 21, 22, 23, 24, 28, 29, 30, 1, 3, 53, 54, 55, 48, 40, 45, 43, 44, 42, 41, 46, 47, 49, 50, 51, 37,
+ 34, 32, 33, 36, 35, 11, 12, 14, 26, 25, 27, 0, 31, 2, 61, 76, 9, 10, 69, 79, 80, 81, 82, 83, 85, 84, 86,
+ 87, 88, 4, 62, 63, 6, 7, 57, 56, 64, 65, 66, 67, 70, 71, 8, 72, 73, 74, 52, 75, 77, 78, 68, 39, 89, 38,
+ 58, 5, 0, 5, 52, 31, 61, 9, 10, 8, 4, 6, 7, 20, 21, 13, 28, 29, 30, 2, 15, 16, 17, 18, 22, 23, 24, 1, 3,
+ 19, 0, 13, 15, 16, 17, 18, 1, 3, 2, 9, 10, 8, 4, 6, 7, 20, 21, 22, 23, 24, 28, 29, 30, 60, 0, 8, 4, 6,
+ 7, 62, 63, 56, 57, 64, 65, 66, 67, 70, 71, 72, 73, 74, 77, 78, 69, 79, 80, 81, 82, 83, 84, 85, 86, 87,
+ 88, 58, 39, 52, 89, 19, 68, 75, 5, 38, 0, 58, 5, 32, 11, 12, 14, 25, 26, 27, 15, 16, 17, 18, 22, 23, 24,
+ 3, 9, 10, 8, 6, 7, 20, 21, 13, 28, 29, 30, 4, 2, 1, 0, 32, 58, 5, 9, 10, 8, 4, 6, 7, 20, 21, 13, 28, 29,
+ 30, 2, 1, 3, 15, 16, 17, 18, 22, 23, 24, 0, 12, 32, 37, 14, 36, 35, 34, 11, 33, 25, 26, 27, 61, 76, 9,
+ 10, 8, 6, 7, 62, 63, 56, 57, 64, 65, 66, 67, 70, 71, 72, 73, 74, 77, 78, 69, 79, 80, 81, 82, 83, 84, 85,
+ 86, 87, 88, 4, 2, 31, 38, 39, 5, 0, 69, 31, 61, 0, 48, 40, 45, 43, 44, 42, 41, 46, 47, 49, 50, 51, 68,
+ 75, 37, 34, 32, 33, 36, 35, 11, 12, 14, 25, 26, 27, 38, 1, 5, 39, 2, 31, 4, 0, 75, 5, 4, 1, 2, 68, 0,
+ 33, 40, 11, 41, 53, 34, 42, 35, 43, 44, 36, 12, 45, 46, 32, 54, 37, 55, 47, 48, 14, 49, 50, 51, 1, 3,
+ 25, 26, 27, 60, 5, 52, 0, 4, 2, 31, 39, 5, 33, 40, 11, 41, 53, 34, 42, 35, 43, 44, 36, 12, 45, 46, 32,
+ 54, 37, 55, 47, 48, 14, 49, 50, 51, 25, 26, 27, 59, 3, 1, 0, 1, 3, 5, 52, 38, 0, 4, 33, 40, 11, 41, 53,
+ 34, 42, 35, 43, 44, 36, 12, 45, 46, 32, 54, 37, 55, 47, 48, 14, 49, 50, 51, 1, 3, 25, 26, 27, 59, 0, 5,
+ 39, 13, 15, 16, 17, 18, 1, 3, 2, 9, 10, 8, 4, 6, 7, 20, 21, 22, 23, 24, 28, 29, 30, 0, 2, 5, 38, 39, 75,
+ 31, 68, 0, 5, 38, 52, 69, 0 };
+ };
+
+ public final static byte asr[] = Asr.asr;
+
+ @Override
+ public final int asr(int index) {
+ return asr[index];
+ }
+
+ public interface Nasb {
+ public final static byte nasb[] = { 0, 36, 35, 26, 35, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 35, 105,
+ 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 26, 105, 105, 105, 105, 105, 66, 66, 109, 106, 87, 87, 90,
+ 1, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 106, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 87, 87, 87, 87, 87, 87, 48, 9, 39, 46, 89, 44, 44, 58, 17, 59, 19, 59, 62, 62, 59,
+ 61, 59, 53, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 10, 10, 10, 10, 73,
+ 35, 112, 35, 50, 48, 124, 47, 87, 94, 86, 47, 7, 7, 7, 7, 7, 26, 103, 73, 35, 79, 124, 48, 47, 42, 87,
+ 69, 28, 35, 96, 48, 47, 15, 73, 35, 73, 24, 79, 73, 26, 26, 48, 47, 68, 44, 44, 39, 96, 87, 35, 120, 73,
+ 7, 64, 13, 73, 124, 48, 48, 87, 94, 86, 75, 73, 103, 83, 99, 7, 64, 35, 35, 103, 23, 35, 7, 26, 81, 124,
+ 42, 116, 120, 71, 64, 103, 26, 7, 21, 25, 48, 7, 26, 42, 87, 87, 103, 84, 26, 35, 71, 39, 103, 48, 35,
+ 71, 26, 77 };
+ };
+
+ public final static byte nasb[] = Nasb.nasb;
+
+ @Override
+ public final int nasb(int index) {
+ return nasb[index];
+ }
+
+ public interface Nasr {
+ public final static char nasr[] = { 0, 80, 78, 77, 68, 76, 75, 1, 0, 5, 34, 32, 0, 100, 0, 92, 0, 103, 0, 91, 0,
+ 98, 0, 88, 10, 34, 5, 0, 80, 79, 78, 77, 68, 76, 75, 0, 10, 89, 0, 30, 54, 0, 23, 0, 29, 0, 10, 5, 22,
+ 0, 5, 10, 0, 68, 63, 64, 65, 66, 56, 35, 0, 94, 69, 0, 62, 0, 73, 0, 21, 51, 50, 42, 40, 10, 0, 51, 50,
+ 42, 40, 30, 0, 102, 0, 10, 72, 0, 10, 21, 0, 21, 50, 51, 10, 0, 30, 54, 10, 27, 0, 10, 33, 70, 0, 46, 0,
+ 33, 10, 31, 0, 10, 90, 0, 51, 50, 30, 0, 95, 10, 27, 0, 82, 10, 33, 0, 59, 0 };
+ };
+
+ public final static char nasr[] = Nasr.nasr;
+
+ @Override
+ public final int nasr(int index) {
+ return nasr[index];
+ }
+
+ public interface TerminalIndex {
+ public final static char terminalIndex[] = { 0, 85, 2, 86, 9, 87, 10, 11, 8, 6, 7, 48, 64, 68, 76, 81, 82, 83,
+ 84, 3, 12, 13, 93, 94, 95, 96, 97, 98, 100, 101, 102, 1, 69, 44, 55, 60, 63, 72, 42, 90, 47, 52, 56, 61,
+ 62, 66, 67, 74, 75, 78, 79, 80, 91, 54, 70, 73, 16, 17, 89, 30, 107, 4, 14, 15, 18, 19, 20, 21, 29, 31,
+ 22, 23, 24, 25, 26, 92, 5, 27, 28, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 108, 45, 46, 49, 50, 51, 53,
+ 57, 58, 59, 65, 71, 77, 88, 99, 103, 104, 105, 106 };
+ };
+
+ public final static char terminalIndex[] = TerminalIndex.terminalIndex;
+
+ @Override
+ public final int terminalIndex(int index) {
+ return terminalIndex[index];
+ }
+
+ public interface NonterminalIndex {
+ public final static char nonterminalIndex[] = { 0, 114, 0, 0, 0, 116, 120, 121, 122, 123, 0, 124, 125, 126, 127,
+ 128, 129, 130, 131, 0, 132, 111, 110, 142, 0, 0, 0, 135, 0, 163, 0, 115, 119, 154, 0, 141, 0, 0, 0, 159,
+ 161, 0, 162, 0, 0, 0, 112, 118, 134, 172, 173, 174, 0, 150, 160, 169, 144, 0, 164, 167, 168, 171, 0,
+ 145, 146, 147, 148, 149, 151, 0, 153, 158, 113, 117, 133, 136, 137, 138, 139, 140, 143, 0, 152, 156, 0,
+ 0, 157, 166, 176, 109, 0, 0, 0, 155, 0, 165, 170, 175, 0, 177, 178, 0, 179, 180, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
+ };
+
+ public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
+
+ @Override
+ public final int nonterminalIndex(int index) {
+ return nonterminalIndex[index];
+ }
+
+ public interface ScopePrefix {
+ public final static char scopePrefix[] = { 120, 151, 130, 59, 69, 159, 26, 186, 35, 87, 105, 75, 6, 12, 16, 40,
+ 83, 52, 141, 208, 215, 219, 52, 52, 195, 52, 1, 1, 1, 44, 47, 92, 115, 47, 223, 20, 145, 202, 202, 177,
+ 137, 165, 165, 165, 165, 165, 95, 95, 95 };
+ };
+
+ public final static char scopePrefix[] = ScopePrefix.scopePrefix;
+
+ @Override
+ public final int scopePrefix(int index) {
+ return scopePrefix[index];
+ }
+
+ public interface ScopeSuffix {
+ public final static char scopeSuffix[] = { 128, 128, 128, 4, 4, 128, 32, 192, 10, 4, 10, 80, 10, 10, 10, 10, 4,
+ 4, 139, 10, 10, 4, 56, 80, 199, 65, 4, 4, 4, 10, 50, 4, 10, 118, 10, 23, 148, 205, 212, 180, 139, 167,
+ 169, 171, 173, 175, 102, 97, 110 };
+ };
+
+ public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
+
+ @Override
+ public final int scopeSuffix(int index) {
+ return scopeSuffix[index];
+ }
+
+ public interface ScopeLhs {
+ public final static char scopeLhs[] = { 65, 63, 65, 29, 29, 63, 32, 111, 52, 29, 45, 29, 6, 6, 6, 52, 29, 29,
+ 70, 6, 5, 5, 29, 29, 19, 29, 103, 102, 101, 50, 61, 29, 42, 53, 3, 88, 70, 7, 5, 112, 70, 79, 78, 77,
+ 76, 75, 45, 43, 45 };
+ };
+
+ public final static char scopeLhs[] = ScopeLhs.scopeLhs;
+
+ @Override
+ public final int scopeLhs(int index) {
+ return scopeLhs[index];
+ }
+
+ public interface ScopeLa {
+ public final static byte scopeLa[] = { 52, 52, 52, 58, 58, 52, 52, 95, 39, 58, 39, 15, 39, 39, 39, 39, 58, 58,
+ 75, 39, 39, 58, 4, 15, 68, 32, 58, 58, 58, 39, 2, 58, 39, 1, 39, 69, 1, 39, 39, 101, 75, 1, 53, 54, 54,
+ 48, 2, 2, 2 };
+ };
+
+ public final static byte scopeLa[] = ScopeLa.scopeLa;
+
+ @Override
+ public final int scopeLa(int index) {
+ return scopeLa[index];
+ }
+
+ public interface ScopeStateSet {
+ public final static byte scopeStateSet[] = { 29, 29, 29, 33, 33, 29, 19, -1, 37, 33, 9, 33, 44, 44, 44, 37, 33,
+ 33, 5, 44, 44, 44, 33, 33, 78, 33, 17, 1, 3, 37, 39, 33, 9, 11, 44, 105, 5, 50, 44, -1, 5, 30, 30, 30,
+ 30, 30, 9, 9, 9 };
+ };
+
+ public final static byte scopeStateSet[] = ScopeStateSet.scopeStateSet;
+
+ @Override
+ public final int scopeStateSet(int index) {
+ return scopeStateSet[index];
+ }
+
+ public interface ScopeRhs {
+ public final static char scopeRhs[] = { 0, 155, 31, 0, 110, 0, 154, 2, 30, 0, 111, 0, 154, 2, 29, 0, 154, 2, 28,
+ 0, 206, 117, 0, 31, 149, 0, 169, 204, 117, 19, 141, 0, 112, 0, 0, 165, 117, 2, 157, 0, 165, 117, 2, 0,
+ 168, 2, 0, 161, 117, 0, 172, 0, 194, 117, 31, 0, 9, 110, 0, 127, 32, 194, 117, 31, 0, 69, 132, 110, 0,
+ 127, 194, 117, 32, 31, 0, 194, 117, 32, 31, 0, 132, 110, 0, 127, 32, 31, 0, 127, 194, 117, 31, 0, 127,
+ 31, 0, 149, 0, 2, 0, 165, 111, 0, 2, 111, 0, 165, 117, 2, 149, 0, 2, 0, 164, 111, 0, 160, 2, 0, 159, 0,
+ 169, 192, 117, 19, 108, 201, 53, 0, 112, 0, 169, 192, 117, 19, 201, 53, 0, 140, 0, 113, 0, 200, 117,
+ 140, 0, 117, 140, 0, 155, 113, 0, 188, 117, 19, 199, 108, 198, 175, 0, 188, 117, 19, 198, 175, 0, 187,
+ 0, 148, 0, 147, 0, 146, 0, 145, 0, 144, 0, 214, 94, 0, 77, 2, 115, 111, 113, 0, 214, 128, 138, 2, 98, 0,
+ 53, 0, 0, 138, 78, 125, 0, 29, 132, 0, 154, 2, 0, 111, 121, 0, 154, 2, 13, 0, 111, 119, 0, 197, 2, 112,
+ 0, 138, 31, 112, 0, 138, 2, 0 };
+ };
+
+ public final static char scopeRhs[] = ScopeRhs.scopeRhs;
+
+ @Override
+ public final int scopeRhs(int index) {
+ return scopeRhs[index];
+ }
+
+ public interface ScopeState {
+ public final static char scopeState[] = { 0, 1425, 0, 428, 0, 1834, 1672, 1788, 0, 1085, 1350, 472, 1541, 1343,
+ 1296, 1259, 0, 437, 0, 589, 487, 451, 1322, 1257, 547, 536, 535, 397, 0, 1229, 508, 370, 0, 1746, 1617,
+ 1258, 537, 1350, 1774, 1296, 1259, 1546, 1608, 0, 1715, 1708, 1688, 1568, 1116, 557, 1626, 1599, 1500,
+ 397, 409, 1211, 1270, 1358, 1450, 1437, 1403, 1531, 1512, 1475, 1463, 1240, 611, 1661, 1649, 1638, 647,
+ 473, 1487, 1326, 1231, 1182, 1173, 722, 1191, 1153, 1133, 589, 1095, 1075, 1054, 1033, 737, 1012, 699,
+ 678, 624, 991, 970, 949, 928, 907, 886, 865, 844, 823, 802, 781, 370, 760, 657, 487, 451, 0 };
+ };
+
+ public final static char scopeState[] = ScopeState.scopeState;
+
+ @Override
+ public final int scopeState(int index) {
+ return scopeState[index];
+ }
+
+ public interface InSymb {
+ public final static char inSymb[] = { 0, 0, 196, 117, 181, 30, 29, 28, 13, 21, 20, 7, 6, 4, 8, 10, 9, 112, 2,
+ 116, 115, 119, 118, 121, 120, 123, 122, 125, 124, 113, 38, 2, 2, 2, 2, 2, 76, 61, 2, 31, 154, 138, 140,
+ 117, 7, 6, 63, 62, 4, 67, 66, 65, 64, 56, 57, 8, 71, 70, 73, 72, 78, 77, 74, 88, 87, 86, 84, 85, 83, 82,
+ 81, 80, 79, 69, 154, 154, 154, 154, 154, 197, 138, 128, 117, 31, 2, 158, 157, 182, 26, 183, 175, 184,
+ 55, 54, 185, 53, 186, 187, 108, 115, 115, 118, 118, 118, 118, 116, 116, 120, 119, 119, 122, 121, 138,
+ 124, 123, 128, 128, 128, 128, 128, 19, 141, 161, 137, 32, 127, 117, 4, 168, 117, 2, 31, 198, 176, 176,
+ 201, 176, 68, 117, 19, 137, 4, 117, 127, 194, 166, 165, 134, 117, 167, 117, 155, 4, 108, 19, 108, 19,
+ 117, 4, 137, 194, 32, 127, 4, 2, 147, 149, 117, 38, 165, 199, 117, 19, 117, 204, 117, 137, 117, 127,
+ 127, 160, 117, 2, 161, 19, 188, 140, 189, 117, 192, 108, 193, 169, 38, 206, 61, 31, 207, 117, 166, 117,
+ 117, 117, 192, 169, 69, 38, 153, 69, 155, 61, 31, 166, 165, 202, 188, 200, 68, 160, 2, 117, 169, 155,
+ 38, 38, 68, 161 };
+ };
+
+ public final static char inSymb[] = InSymb.inSymb;
+
+ @Override
+ public final int inSymb(int index) {
+ return inSymb[index];
+ }
+
+ public interface Name {
+ public final static String name[] = { "", "[", "(", "{", ".", "->", "++", "--", "&", "*", "+", "-", "~", "!",
+ "/", "%", ">>", "<<", "<", ">", "<=", ">=", "==", "!=", "^", "|", "&&", "||", "?", ":", "...", "=",
+ "*=", "/=", "%=", "+=", "-=", ">>=", "<<=", "&=", "^=", "|=", ",", "$empty", "auto", "break", "case",
+ "char", "const", "continue", "default", "do", "double", "else", "enum", "extern", "float", "for",
+ "goto", "if", "inline", "int", "long", "register", "restrict", "return", "short", "signed", "sizeof",
+ "static", "struct", "switch", "typedef", "union", "unsigned", "void", "volatile", "while", "_Bool",
+ "_Complex", "_Imaginary", "integer", "floating", "charconst", "stringlit", "identifier", "Completion",
+ "EndOfCompletion", "Invalid", "RightBracket", "RightParen", "RightBrace", "SemiColon", "MYTHREAD",
+ "THREADS", "UPC_MAX_BLOCKSIZE", "relaxed", "shared", "strict", "upc_barrier", "upc_localsizeof",
+ "upc_blocksizeof", "upc_elemsizeof", "upc_notify", "upc_fence", "upc_wait", "upc_forall", "ERROR_TOKEN",
+ "EOF_TOKEN", "expression_parser_start", "]", ")", "}", ";", "identifier_token", "expression",
+ "postfix_expression", "member_name", "type_id", "initializer_list", "unary_expression",
+ "cast_expression", "multiplicative_expression", "additive_expression", "shift_expression",
+ "relational_expression", "equality_expression", "and_expression", "exclusive_or_expression",
+ "inclusive_or_expression", "logical_and_expression", "logical_or_expression", "assignment_expression",
+ "expression_list_actual", "constant_expression", "declaration_specifiers",
+ "simple_declaration_specifiers", "struct_or_union_declaration_sp" + "ecifiers",
+ "elaborated_declaration_specifi" + "ers", "enum_declaration_specifiers",
+ "typdef_name_declaration_specif" + "iers", "no_type_declaration_specifier", "type_qualifier",
+ "no_type_declaration_specifiers", "simple_type_specifier", "struct_or_union_specifier",
+ "elaborated_specifier", "enum_specifier", "type_name_specifier", "initializer", "declarator",
+ "struct_or_union", "struct_declaration_list", "struct_declaration", "specifier_qualifier_list",
+ "struct_declarator_list", "complete_struct_declarator", "enumerator_list", "enumerator",
+ "direct_declarator", "pointer_seq", "array_direct_declarator", "basic_direct_declarator",
+ "array_modifier", "parameter_type_list", "identifier_list", "array_modifier_type_qualifiers",
+ "type_qualifier_list", "parameter_list", "parameter_declaration", "complete_parameter_declarator",
+ "abstract_declarator", "direct_abstract_declarator", "basic_direct_abstract_declarat" + "or",
+ "array_direct_abstract_declarat" + "or", "initializer_seq", "designated_initializer", "designation",
+ "designator_list", "designator", "layout_qualifier" };
+ };
+
+ public final static String name[] = Name.name;
+
+ @Override
+ public final String name(int index) {
+ return name[index];
+ }
+
+ public final static int ERROR_SYMBOL = 60, SCOPE_UBOUND = 48, SCOPE_SIZE = 49, MAX_NAME_LENGTH = 38;
+
+ @Override
+ public final int getErrorSymbol() {
+ return ERROR_SYMBOL;
+ }
+
+ @Override
+ public final int getScopeUbound() {
+ return SCOPE_UBOUND;
+ }
+
+ @Override
+ public final int getScopeSize() {
+ return SCOPE_SIZE;
+ }
+
+ @Override
+ public final int getMaxNameLength() {
+ return MAX_NAME_LENGTH;
+ }
+
+ public final static int NUM_STATES = 226, NT_OFFSET = 107, LA_STATE_OFFSET = 2309, MAX_LA = 2, NUM_RULES = 369,
+ NUM_NONTERMINALS = 131, NUM_SYMBOLS = 238, SEGMENT_SIZE = 8192, START_STATE = 510, IDENTIFIER_SYMBOL = 0,
+ EOFT_SYMBOL = 89, EOLT_SYMBOL = 89, ACCEPT_ACTION = 1927, ERROR_ACTION = 1940;
+
+ public final static boolean BACKTRACK = true;
+
+ @Override
+ public final int getNumStates() {
+ return NUM_STATES;
+ }
+
+ @Override
+ public final int getNtOffset() {
+ return NT_OFFSET;
+ }
+
+ @Override
+ public final int getLaStateOffset() {
+ return LA_STATE_OFFSET;
+ }
+
+ @Override
+ public final int getMaxLa() {
+ return MAX_LA;
+ }
+
+ @Override
+ public final int getNumRules() {
+ return NUM_RULES;
+ }
+
+ @Override
+ public final int getNumNonterminals() {
+ return NUM_NONTERMINALS;
+ }
+
+ @Override
+ public final int getNumSymbols() {
+ return NUM_SYMBOLS;
+ }
+
+ @Override
+ public final int getSegmentSize() {
+ return SEGMENT_SIZE;
+ }
+
+ @Override
+ public final int getStartState() {
+ return START_STATE;
+ }
+
+ @Override
+ public final int getStartSymbol() {
+ return lhs[0];
+ }
+
+ public final int getIdentifierSymbol() {
+ return IDENTIFIER_SYMBOL;
+ }
+
+ @Override
+ public final int getEoftSymbol() {
+ return EOFT_SYMBOL;
+ }
+
+ @Override
+ public final int getEoltSymbol() {
+ return EOLT_SYMBOL;
+ }
+
+ @Override
+ public final int getAcceptAction() {
+ return ACCEPT_ACTION;
+ }
+
+ @Override
+ public final int getErrorAction() {
+ return ERROR_ACTION;
+ }
+
+ @Override
+ public final boolean isValidForParser() {
+ return isValidForParser;
+ }
+
+ @Override
+ public final boolean getBacktrack() {
+ return BACKTRACK;
+ }
+
+ @Override
public final int originalState(int state) {
- return -baseCheck[state];
- }
- @Override
+ return -baseCheck[state];
+ }
+
+ @Override
public final int asi(int state) {
- return asb[originalState(state)];
- }
- @Override
+ return asb[originalState(state)];
+ }
+
+ @Override
public final int nasi(int state) {
- return nasb[originalState(state)];
- }
- @Override
+ return nasb[originalState(state)];
+ }
+
+ @Override
public final int inSymbol(int state) {
- return inSymb[originalState(state)];
- }
+ return inSymb[originalState(state)];
+ }
- @Override
+ @Override
public final int ntAction(int state, int sym) {
- return baseAction[state + sym];
- }
+ return baseAction[state + sym];
+ }
- @Override
+ @Override
public final int tAction(int state, int sym) {
- int i = baseAction[state],
- k = i + sym;
- return termAction[termCheck[k] == sym ? k : i];
- }
- @Override
+ int i = baseAction[state], k = i + sym;
+ return termAction[termCheck[k] == sym ? k : i];
+ }
+
+ @Override
public final int lookAhead(int la_state, int sym) {
- int k = la_state + sym;
- return termAction[termCheck[k] == sym ? k : la_state];
- }
+ int k = la_state + sym;
+ return termAction[termCheck[k] == sym ? k : la_state];
+ }
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParsersym.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionParsersym.java
index 7dff109a2d2..0cb5a646528 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
@@ -17,225 +17,39 @@
package org.eclipse.cdt.internal.core.dom.parser.upc;
public interface UPCExpressionParsersym {
- public final static int
- TK_auto = 33,
- TK_break = 90,
- TK_case = 91,
- TK_char = 40,
- TK_const = 11,
- TK_continue = 92,
- TK_default = 93,
- TK_do = 94,
- TK_double = 41,
- TK_else = 95,
- TK_enum = 53,
- TK_extern = 34,
- TK_float = 42,
- TK_for = 96,
- TK_goto = 97,
- TK_if = 98,
- TK_inline = 35,
- TK_int = 43,
- TK_long = 44,
- TK_register = 36,
- TK_restrict = 12,
- TK_return = 99,
- TK_short = 45,
- TK_signed = 46,
- TK_sizeof = 13,
- TK_static = 32,
- TK_struct = 54,
- TK_switch = 100,
- TK_typedef = 37,
- TK_union = 55,
- TK_unsigned = 47,
- TK_void = 48,
- TK_volatile = 14,
- TK_while = 101,
- TK__Bool = 49,
- TK__Complex = 50,
- TK__Imaginary = 51,
- TK_integer = 15,
- TK_floating = 16,
- TK_charconst = 17,
- TK_stringlit = 18,
- TK_identifier = 1,
- TK_Completion = 3,
- TK_EndOfCompletion = 5,
- TK_Invalid = 102,
- TK_LeftBracket = 31,
- TK_LeftParen = 2,
- TK_LeftBrace = 19,
- TK_Dot = 61,
- TK_Arrow = 76,
- TK_PlusPlus = 9,
- TK_MinusMinus = 10,
- TK_And = 8,
- TK_Star = 4,
- TK_Plus = 6,
- TK_Minus = 7,
- TK_Tilde = 20,
- TK_Bang = 21,
- TK_Slash = 62,
- TK_Percent = 63,
- TK_RightShift = 56,
- TK_LeftShift = 57,
- TK_LT = 64,
- TK_GT = 65,
- TK_LE = 66,
- TK_GE = 67,
- TK_EQ = 70,
- TK_NE = 71,
- TK_Caret = 72,
- TK_Or = 73,
- TK_AndAnd = 74,
- TK_OrOr = 77,
- TK_Question = 78,
- TK_Colon = 68,
- TK_DotDotDot = 59,
- TK_Assign = 69,
- TK_StarAssign = 79,
- TK_SlashAssign = 80,
- TK_PercentAssign = 81,
- TK_PlusAssign = 82,
- TK_MinusAssign = 83,
- TK_RightShiftAssign = 84,
- TK_LeftShiftAssign = 85,
- TK_AndAssign = 86,
- TK_CaretAssign = 87,
- TK_OrAssign = 88,
- TK_Comma = 38,
- TK_RightBracket = 58,
- TK_RightParen = 39,
- TK_RightBrace = 52,
- TK_SemiColon = 75,
- TK_MYTHREAD = 22,
- TK_THREADS = 23,
- TK_UPC_MAX_BLOCKSIZE = 24,
- TK_relaxed = 25,
- TK_shared = 26,
- TK_strict = 27,
- TK_upc_barrier = 103,
- TK_upc_localsizeof = 28,
- TK_upc_blocksizeof = 29,
- TK_upc_elemsizeof = 30,
- TK_upc_notify = 104,
- TK_upc_fence = 105,
- TK_upc_wait = 106,
- TK_upc_forall = 107,
- TK_ERROR_TOKEN = 60,
- TK_EOF_TOKEN = 89;
+ public final static int TK_auto = 33, TK_break = 90, TK_case = 91, TK_char = 40, TK_const = 11, TK_continue = 92,
+ TK_default = 93, TK_do = 94, TK_double = 41, TK_else = 95, TK_enum = 53, TK_extern = 34, TK_float = 42,
+ TK_for = 96, TK_goto = 97, TK_if = 98, TK_inline = 35, TK_int = 43, TK_long = 44, TK_register = 36,
+ TK_restrict = 12, TK_return = 99, TK_short = 45, TK_signed = 46, TK_sizeof = 13, TK_static = 32,
+ TK_struct = 54, TK_switch = 100, TK_typedef = 37, TK_union = 55, TK_unsigned = 47, TK_void = 48,
+ TK_volatile = 14, TK_while = 101, TK__Bool = 49, TK__Complex = 50, TK__Imaginary = 51, TK_integer = 15,
+ TK_floating = 16, TK_charconst = 17, TK_stringlit = 18, TK_identifier = 1, TK_Completion = 3,
+ TK_EndOfCompletion = 5, TK_Invalid = 102, TK_LeftBracket = 31, TK_LeftParen = 2, TK_LeftBrace = 19,
+ TK_Dot = 61, TK_Arrow = 76, TK_PlusPlus = 9, TK_MinusMinus = 10, TK_And = 8, TK_Star = 4, TK_Plus = 6,
+ TK_Minus = 7, TK_Tilde = 20, TK_Bang = 21, TK_Slash = 62, TK_Percent = 63, TK_RightShift = 56,
+ TK_LeftShift = 57, TK_LT = 64, TK_GT = 65, TK_LE = 66, TK_GE = 67, TK_EQ = 70, TK_NE = 71, TK_Caret = 72,
+ TK_Or = 73, TK_AndAnd = 74, TK_OrOr = 77, TK_Question = 78, TK_Colon = 68, TK_DotDotDot = 59,
+ TK_Assign = 69, TK_StarAssign = 79, TK_SlashAssign = 80, TK_PercentAssign = 81, TK_PlusAssign = 82,
+ TK_MinusAssign = 83, TK_RightShiftAssign = 84, TK_LeftShiftAssign = 85, TK_AndAssign = 86,
+ TK_CaretAssign = 87, TK_OrAssign = 88, TK_Comma = 38, TK_RightBracket = 58, TK_RightParen = 39,
+ TK_RightBrace = 52, TK_SemiColon = 75, TK_MYTHREAD = 22, TK_THREADS = 23, TK_UPC_MAX_BLOCKSIZE = 24,
+ TK_relaxed = 25, TK_shared = 26, TK_strict = 27, TK_upc_barrier = 103, TK_upc_localsizeof = 28,
+ TK_upc_blocksizeof = 29, TK_upc_elemsizeof = 30, TK_upc_notify = 104, TK_upc_fence = 105, TK_upc_wait = 106,
+ TK_upc_forall = 107, TK_ERROR_TOKEN = 60, TK_EOF_TOKEN = 89;
- public final static String orderedTerminalSymbols[] = {
- "",
- "identifier",
- "LeftParen",
- "Completion",
- "Star",
- "EndOfCompletion",
- "Plus",
- "Minus",
- "And",
- "PlusPlus",
- "MinusMinus",
- "const",
- "restrict",
- "sizeof",
- "volatile",
- "integer",
- "floating",
- "charconst",
- "stringlit",
- "LeftBrace",
- "Tilde",
- "Bang",
- "MYTHREAD",
- "THREADS",
- "UPC_MAX_BLOCKSIZE",
- "relaxed",
- "shared",
- "strict",
- "upc_localsizeof",
- "upc_blocksizeof",
- "upc_elemsizeof",
- "LeftBracket",
- "static",
- "auto",
- "extern",
- "inline",
- "register",
- "typedef",
- "Comma",
- "RightParen",
- "char",
- "double",
- "float",
- "int",
- "long",
- "short",
- "signed",
- "unsigned",
- "void",
- "_Bool",
- "_Complex",
- "_Imaginary",
- "RightBrace",
- "enum",
- "struct",
- "union",
- "RightShift",
- "LeftShift",
- "RightBracket",
- "DotDotDot",
- "ERROR_TOKEN",
- "Dot",
- "Slash",
- "Percent",
- "LT",
- "GT",
- "LE",
- "GE",
- "Colon",
- "Assign",
- "EQ",
- "NE",
- "Caret",
- "Or",
- "AndAnd",
- "SemiColon",
- "Arrow",
- "OrOr",
- "Question",
- "StarAssign",
- "SlashAssign",
- "PercentAssign",
- "PlusAssign",
- "MinusAssign",
- "RightShiftAssign",
- "LeftShiftAssign",
- "AndAssign",
- "CaretAssign",
- "OrAssign",
- "EOF_TOKEN",
- "break",
- "case",
- "continue",
- "default",
- "do",
- "else",
- "for",
- "goto",
- "if",
- "return",
- "switch",
- "while",
- "Invalid",
- "upc_barrier",
- "upc_notify",
- "upc_fence",
- "upc_wait",
- "upc_forall"
- };
+ public final static String orderedTerminalSymbols[] = { "", "identifier", "LeftParen", "Completion", "Star",
+ "EndOfCompletion", "Plus", "Minus", "And", "PlusPlus", "MinusMinus", "const", "restrict", "sizeof",
+ "volatile", "integer", "floating", "charconst", "stringlit", "LeftBrace", "Tilde", "Bang", "MYTHREAD",
+ "THREADS", "UPC_MAX_BLOCKSIZE", "relaxed", "shared", "strict", "upc_localsizeof", "upc_blocksizeof",
+ "upc_elemsizeof", "LeftBracket", "static", "auto", "extern", "inline", "register", "typedef", "Comma",
+ "RightParen", "char", "double", "float", "int", "long", "short", "signed", "unsigned", "void", "_Bool",
+ "_Complex", "_Imaginary", "RightBrace", "enum", "struct", "union", "RightShift", "LeftShift",
+ "RightBracket", "DotDotDot", "ERROR_TOKEN", "Dot", "Slash", "Percent", "LT", "GT", "LE", "GE", "Colon",
+ "Assign", "EQ", "NE", "Caret", "Or", "AndAnd", "SemiColon", "Arrow", "OrOr", "Question", "StarAssign",
+ "SlashAssign", "PercentAssign", "PlusAssign", "MinusAssign", "RightShiftAssign", "LeftShiftAssign",
+ "AndAssign", "CaretAssign", "OrAssign", "EOF_TOKEN", "break", "case", "continue", "default", "do", "else",
+ "for", "goto", "if", "return", "switch", "while", "Invalid", "upc_barrier", "upc_notify", "upc_fence",
+ "upc_wait", "upc_forall" };
- public final static boolean isValidForParser = true;
+ public final static boolean isValidForParser = true;
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParser.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParser.java
index f2ae2979955..56026015e78 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
@@ -65,1549 +65,1990 @@ import org.eclipse.cdt.core.dom.upc.ast.IUPCASTUnarySizeofExpression;
import org.eclipse.cdt.core.index.IIndex;
import org.eclipse.cdt.core.parser.IScanner;
-public class UPCNoCastExpressionParser extends PrsStream implements RuleAction, ITokenStream,
- ITokenCollector, IParser< IASTExpression >
- , ISecondaryParser< IASTExpression >
-{
- private static ParseTable prs = new UPCNoCastExpressionParserprs();
- private FixedBacktrackingParser btParser;
-
- public FixedBacktrackingParser getParser() { return btParser; }
- private void setResult(Object object) { btParser.setSym1(object); }
- public Object getRhsSym(int i) { return btParser.getSym(i); }
-
- public int getRhsTokenIndex(int i) { return btParser.getToken(i); }
- public IToken getRhsIToken(int i) { return super.getIToken(getRhsTokenIndex(i)); }
-
- public int getRhsFirstTokenIndex(int i) { return btParser.getFirstToken(i); }
- public IToken getRhsFirstIToken(int i) { return super.getIToken(getRhsFirstTokenIndex(i)); }
-
- public int getRhsLastTokenIndex(int i) { return btParser.getLastToken(i); }
- public IToken getRhsLastIToken(int i) { return super.getIToken(getRhsLastTokenIndex(i)); }
-
- public int getLeftSpan() { return btParser.getFirstToken(); }
- @Override
- public IToken getLeftIToken() { return super.getIToken(getLeftSpan()); }
-
- public int getRightSpan() { return btParser.getLastToken(); }
- @Override
- public IToken getRightIToken() { return super.getIToken(getRightSpan()); }
-
- public int getRhsErrorTokenIndex(int i)
- {
- int index = btParser.getToken(i);
- IToken err = super.getIToken(index);
- return (err instanceof ErrorToken ? index : 0);
- }
- public ErrorToken getRhsErrorIToken(int i)
- {
- int index = btParser.getToken(i);
- IToken err = super.getIToken(index);
- return (ErrorToken) (err instanceof ErrorToken ? err : null);
- }
-
- public UPCNoCastExpressionParser(LexStream lexStream)
- {
- super(lexStream);
-
- try
- {
- super.remapTerminalSymbols(orderedTerminalSymbols(), UPCNoCastExpressionParserprs.EOFT_SYMBOL);
- }
- catch(NullExportedSymbolsException e) {
- }
- catch(NullTerminalSymbolsException e) {
- }
- catch(UnimplementedTerminalsException e)
- {
- java.util.ArrayList unimplemented_symbols = e.getSymbols();
- System.out.println("The Lexer will not scan the following token(s):");
- for (int i = 0; i < unimplemented_symbols.size(); i++)
- {
- Integer id = (Integer) unimplemented_symbols.get(i);
- System.out.println(" " + UPCNoCastExpressionParsersym.orderedTerminalSymbols[id.intValue()]);
- }
- System.out.println();
- }
- catch(UndefinedEofSymbolException e)
- {
- throw new Error(new UndefinedEofSymbolException
- ("The Lexer does not implement the Eof symbol " +
- UPCNoCastExpressionParsersym.orderedTerminalSymbols[UPCNoCastExpressionParserprs.EOFT_SYMBOL]));
- }
- }
-
- @Override
- public String[] orderedTerminalSymbols() { return UPCNoCastExpressionParsersym.orderedTerminalSymbols; }
- public String getTokenKindName(int kind) { return UPCNoCastExpressionParsersym.orderedTerminalSymbols[kind]; }
- public int getEOFTokenKind() { return UPCNoCastExpressionParserprs.EOFT_SYMBOL; }
- public PrsStream getParseStream() { return this; }
-
- //
- // Report error message for given error_token.
- //
- public final void reportErrorTokenMessage(int error_token, String msg)
- {
- int firsttok = super.getFirstErrorToken(error_token),
- lasttok = super.getLastErrorToken(error_token);
- String location = super.getFileName() + ':' +
- (firsttok > lasttok
- ? (super.getEndLine(lasttok) + ":" + super.getEndColumn(lasttok))
- : (super.getLine(error_token) + ":" +
- super.getColumn(error_token) + ":" +
- super.getEndLine(error_token) + ":" +
- super.getEndColumn(error_token)))
- + ": ";
- super.reportError((firsttok > lasttok ? ParseErrorCodes.INSERTION_CODE : ParseErrorCodes.SUBSTITUTION_CODE), location, msg);
- }
-
- public void parser()
- {
- parser(null, 0);
- }
-
- public void parser(Monitor monitor)
- {
- parser(monitor, 0);
- }
-
- public void parser(int error_repair_count)
- {
- parser(null, error_repair_count);
- }
-
- public void parser(Monitor monitor, int error_repair_count)
- {
- try
- {
- btParser = new FixedBacktrackingParser(monitor, this, prs, this);
- }
- catch (NotBacktrackParseTableException e)
- {
- throw new Error(new NotBacktrackParseTableException
- ("Regenerate UPCNoCastExpressionParserprs.java with -BACKTRACK option"));
- }
- catch (BadParseSymFileException e)
- {
- throw new Error(new BadParseSymFileException("Bad Parser Symbol File -- UPCNoCastExpressionParsersym.java"));
- }
-
- try
- {
- btParser.parse(error_repair_count);
- }
- catch (BadParseException e)
- {
- reset(e.error_token); // point to error token
- DiagnoseParser diagnoseParser = new DiagnoseParser(this, prs);
- diagnoseParser.diagnose(e.error_token);
- }
- }
-
-
-private UPCParserAction action;
-private IASTCompletionNode compNode;
-
-
-public UPCNoCastExpressionParser(IScanner scanner, IDOMTokenMap tokenMap, IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Map<String,String> properties) {
- initActions(properties);
- action.initializeTranslationUnit(scanner, builtinBindingsProvider, index);
- CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap);
-}
+public class UPCNoCastExpressionParser extends PrsStream implements RuleAction, ITokenStream, ITokenCollector,
+ IParser<IASTExpression>, ISecondaryParser<IASTExpression> {
+ private static ParseTable prs = new UPCNoCastExpressionParserprs();
+ private FixedBacktrackingParser btParser;
-private void initActions(Map<String,String> properties) {
- ScopedStack<Object> astStack = new ScopedStack<Object>();
+ public FixedBacktrackingParser getParser() {
+ return btParser;
+ }
- action = new UPCParserAction (this, astStack, new UPCASTNodeFactory() , UPCSecondaryParserFactory.getDefault() );
- action.setParserProperties(properties);
+ private void setResult(Object object) {
+ btParser.setSym1(object);
+ }
+ public Object getRhsSym(int i) {
+ return btParser.getSym(i);
+ }
-}
+ public int getRhsTokenIndex(int i) {
+ return btParser.getToken(i);
+ }
+ public IToken getRhsIToken(int i) {
+ return super.getIToken(getRhsTokenIndex(i));
+ }
-@Override
-public void addToken(IToken token) {
- token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called?
- super.addToken(token);
-}
+ public int getRhsFirstTokenIndex(int i) {
+ return btParser.getFirstToken(i);
+ }
+ public IToken getRhsFirstIToken(int i) {
+ return super.getIToken(getRhsFirstTokenIndex(i));
+ }
-@Override
-public IASTExpression parse() {
- // this has to be done, or... kaboom!
- setStreamLength(getSize());
+ public int getRhsLastTokenIndex(int i) {
+ return btParser.getLastToken(i);
+ }
- final int errorRepairCount = -1; // -1 means full error handling
- parser(null, errorRepairCount); // do the actual parse
- super.resetTokenStream(); // allow tokens to be garbage collected
+ public IToken getRhsLastIToken(int i) {
+ return super.getIToken(getRhsLastTokenIndex(i));
+ }
- compNode = action.getASTCompletionNode(); // the completion node may be null
- return ( IASTExpression ) action.getParseResult();
-}
+ public int getLeftSpan() {
+ return btParser.getFirstToken();
+ }
+ @Override
+ public IToken getLeftIToken() {
+ return super.getIToken(getLeftSpan());
+ }
-@Override
-public IASTCompletionNode getCompletionNode() {
- return compNode;
-}
+ public int getRightSpan() {
+ return btParser.getLastToken();
+ }
-// uncomment this method to use with backtracking parser
-@Override
-public List<IToken> getRuleTokens() {
- return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
-}
+ @Override
+ public IToken getRightIToken() {
+ return super.getIToken(getRightSpan());
+ }
-@Override
-public String[] getOrderedTerminalSymbols() {
- return UPCNoCastExpressionParsersym.orderedTerminalSymbols;
-}
+ public int getRhsErrorTokenIndex(int i) {
+ int index = btParser.getToken(i);
+ IToken err = super.getIToken(index);
+ return (err instanceof ErrorToken ? index : 0);
+ }
-@Override
-@SuppressWarnings("nls")
-public String getName() {
- return "UPCNoCastExpressionParser";
-}
+ public ErrorToken getRhsErrorIToken(int i) {
+ int index = btParser.getToken(i);
+ IToken err = super.getIToken(index);
+ return (ErrorToken) (err instanceof ErrorToken ? err : null);
+ }
+ public UPCNoCastExpressionParser(LexStream lexStream) {
+ super(lexStream);
+
+ try {
+ super.remapTerminalSymbols(orderedTerminalSymbols(), UPCNoCastExpressionParserprs.EOFT_SYMBOL);
+ } catch (NullExportedSymbolsException e) {
+ } catch (NullTerminalSymbolsException e) {
+ } catch (UnimplementedTerminalsException e) {
+ java.util.ArrayList unimplemented_symbols = e.getSymbols();
+ System.out.println("The Lexer will not scan the following token(s):");
+ for (int i = 0; i < unimplemented_symbols.size(); i++) {
+ Integer id = (Integer) unimplemented_symbols.get(i);
+ System.out.println(" " + UPCNoCastExpressionParsersym.orderedTerminalSymbols[id.intValue()]);
+ }
+ System.out.println();
+ } catch (UndefinedEofSymbolException e) {
+ throw new Error(new UndefinedEofSymbolException("The Lexer does not implement the Eof symbol "
+ + UPCNoCastExpressionParsersym.orderedTerminalSymbols[UPCNoCastExpressionParserprs.EOFT_SYMBOL]));
+ }
+ }
+ @Override
+ public String[] orderedTerminalSymbols() {
+ return UPCNoCastExpressionParsersym.orderedTerminalSymbols;
+ }
-private ITokenMap tokenMap = null;
+ public String getTokenKindName(int kind) {
+ return UPCNoCastExpressionParsersym.orderedTerminalSymbols[kind];
+ }
-@Override
-public void setTokens(List<IToken> tokens) {
- resetTokenStream();
- addToken(new Token(null, 0, 0, 0)); // dummy token
- for(IToken token : tokens) {
- token.setKind(tokenMap.mapKind(token.getKind()));
- addToken(token);
+ public int getEOFTokenKind() {
+ return UPCNoCastExpressionParserprs.EOFT_SYMBOL;
}
- addToken(new Token(null, 0, 0, UPCNoCastExpressionParsersym.TK_EOF_TOKEN));
-}
-public UPCNoCastExpressionParser(ITokenStream stream, Map<String,String> properties) { // constructor for creating secondary parser
- initActions(properties);
- tokenMap = new TokenMap(UPCNoCastExpressionParsersym.orderedTerminalSymbols, stream.getOrderedTerminalSymbols());
-}
+ public PrsStream getParseStream() {
+ return this;
+ }
+ //
+ // Report error message for given error_token.
+ //
+ public final void reportErrorTokenMessage(int error_token, String msg) {
+ int firsttok = super.getFirstErrorToken(error_token), lasttok = super.getLastErrorToken(error_token);
+ String location = super.getFileName() + ':'
+ + (firsttok > lasttok ? (super.getEndLine(lasttok) + ":" + super.getEndColumn(lasttok))
+ : (super.getLine(error_token) + ":" + super.getColumn(error_token) + ":"
+ + super.getEndLine(error_token) + ":" + super.getEndColumn(error_token)))
+ + ": ";
+ super.reportError((firsttok > lasttok ? ParseErrorCodes.INSERTION_CODE : ParseErrorCodes.SUBSTITUTION_CODE),
+ location, msg);
+ }
- @Override
- public void ruleAction(int ruleNumber)
- {
- switch (ruleNumber)
- {
-
- //
- // Rule 1: <openscope-ast> ::= $Empty
- //
- case 1: { action. openASTScope(); break;
- }
-
- //
- // Rule 2: <empty> ::= $Empty
- //
- case 2: { action. consumeEmpty(); break;
- }
-
- //
- // Rule 13: literal ::= integer
- //
- case 13: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant); break;
- }
-
- //
- // Rule 14: literal ::= floating
- //
- case 14: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant); break;
- }
-
- //
- // Rule 15: literal ::= charconst
- //
- case 15: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant); break;
- }
-
- //
- // Rule 16: literal ::= stringlit
- //
- case 16: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal); break;
- }
-
- //
- // Rule 18: primary_expression ::= primary_expression_id
- //
- case 18: { action. consumeExpressionID(); break;
- }
-
- //
- // Rule 19: primary_expression ::= ( expression )
- //
- case 19: { action. consumeExpressionBracketed(); break;
- }
-
- //
- // Rule 22: postfix_expression ::= postfix_expression [ expression ]
- //
- case 22: { action. consumeExpressionArraySubscript(); break;
- }
-
- //
- // Rule 23: postfix_expression ::= postfix_expression ( expression_list_opt )
- //
- case 23: { action. consumeExpressionFunctionCall(); break;
- }
-
- //
- // Rule 24: postfix_expression ::= postfix_expression . member_name
- //
- case 24: { action. consumeExpressionFieldReference(false); break;
- }
-
- //
- // Rule 25: postfix_expression ::= postfix_expression -> member_name
- //
- case 25: { action. consumeExpressionFieldReference(true); break;
- }
-
- //
- // Rule 26: postfix_expression ::= postfix_expression ++
- //
- case 26: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break;
- }
-
- //
- // Rule 27: postfix_expression ::= postfix_expression --
- //
- case 27: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break;
- }
-
- //
- // Rule 28: postfix_expression ::= ( type_id ) initializer_list
- //
- case 28: { action. consumeExpressionTypeIdInitializer(); break;
- }
-
- //
- // Rule 33: unary_expression ::= ++ unary_expression
- //
- case 33: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break;
- }
-
- //
- // Rule 34: unary_expression ::= -- unary_expression
- //
- case 34: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break;
- }
-
- //
- // Rule 35: unary_expression ::= & cast_expression
- //
- case 35: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break;
- }
-
- //
- // Rule 36: unary_expression ::= * cast_expression
- //
- case 36: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break;
- }
-
- //
- // Rule 37: unary_expression ::= + cast_expression
- //
- case 37: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break;
- }
-
- //
- // Rule 38: unary_expression ::= - cast_expression
- //
- case 38: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break;
- }
-
- //
- // Rule 39: unary_expression ::= ~ cast_expression
- //
- case 39: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break;
- }
-
- //
- // Rule 40: unary_expression ::= ! cast_expression
- //
- case 40: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break;
- }
-
- //
- // Rule 41: unary_expression ::= sizeof unary_expression
- //
- case 41: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break;
- }
-
- //
- // Rule 42: unary_expression ::= sizeof ( type_id )
- //
- case 42: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof); break;
- }
-
- //
- // Rule 45: multiplicative_expression ::= multiplicative_expression * cast_expression
- //
- case 45: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break;
- }
-
- //
- // Rule 46: multiplicative_expression ::= multiplicative_expression / cast_expression
- //
- case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break;
- }
-
- //
- // Rule 47: multiplicative_expression ::= multiplicative_expression % cast_expression
- //
- case 47: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break;
- }
-
- //
- // Rule 49: additive_expression ::= additive_expression + multiplicative_expression
- //
- case 49: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break;
- }
-
- //
- // Rule 50: additive_expression ::= additive_expression - multiplicative_expression
- //
- case 50: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break;
- }
-
- //
- // Rule 52: shift_expression ::= shift_expression << additive_expression
- //
- case 52: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break;
- }
-
- //
- // Rule 53: shift_expression ::= shift_expression >> additive_expression
- //
- case 53: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break;
- }
-
- //
- // Rule 55: relational_expression ::= relational_expression < shift_expression
- //
- case 55: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break;
- }
-
- //
- // Rule 56: relational_expression ::= relational_expression > shift_expression
- //
- case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break;
- }
-
- //
- // Rule 57: relational_expression ::= relational_expression <= shift_expression
- //
- case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break;
- }
-
- //
- // Rule 58: relational_expression ::= relational_expression >= shift_expression
- //
- case 58: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break;
- }
-
- //
- // Rule 60: equality_expression ::= equality_expression == relational_expression
- //
- case 60: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break;
- }
-
- //
- // Rule 61: equality_expression ::= equality_expression != relational_expression
- //
- case 61: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break;
- }
-
- //
- // Rule 63: and_expression ::= and_expression & equality_expression
- //
- case 63: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break;
- }
-
- //
- // Rule 65: exclusive_or_expression ::= exclusive_or_expression ^ and_expression
- //
- case 65: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break;
- }
-
- //
- // Rule 67: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression
- //
- case 67: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break;
- }
-
- //
- // Rule 69: logical_and_expression ::= logical_and_expression && inclusive_or_expression
- //
- case 69: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break;
- }
-
- //
- // Rule 71: logical_or_expression ::= logical_or_expression || logical_and_expression
- //
- case 71: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break;
- }
-
- //
- // Rule 73: conditional_expression ::= logical_or_expression ? expression : assignment_expression
- //
- case 73: { action. consumeExpressionConditional(); break;
- }
-
- //
- // Rule 75: assignment_expression ::= unary_expression = assignment_expression
- //
- case 75: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break;
- }
-
- //
- // Rule 76: assignment_expression ::= unary_expression *= assignment_expression
- //
- case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break;
- }
-
- //
- // Rule 77: assignment_expression ::= unary_expression /= assignment_expression
- //
- case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break;
- }
-
- //
- // Rule 78: assignment_expression ::= unary_expression %= assignment_expression
- //
- case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break;
- }
-
- //
- // Rule 79: assignment_expression ::= unary_expression += assignment_expression
- //
- case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break;
- }
-
- //
- // Rule 80: assignment_expression ::= unary_expression -= assignment_expression
- //
- case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break;
- }
-
- //
- // Rule 81: assignment_expression ::= unary_expression <<= assignment_expression
- //
- case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break;
- }
-
- //
- // Rule 82: assignment_expression ::= unary_expression >>= assignment_expression
- //
- case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break;
- }
-
- //
- // Rule 83: assignment_expression ::= unary_expression &= assignment_expression
- //
- case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break;
- }
-
- //
- // Rule 84: assignment_expression ::= unary_expression ^= assignment_expression
- //
- case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break;
- }
-
- //
- // Rule 85: assignment_expression ::= unary_expression |= assignment_expression
- //
- case 85: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break;
- }
-
- //
- // Rule 88: expression_list ::= <openscope-ast> expression_list_actual
- //
- case 88: { action. consumeExpressionList(); break;
- }
-
- //
- // Rule 90: expression_list_opt ::= $Empty
- //
- case 90: { action. consumeEmpty(); break;
- }
-
- //
- // Rule 100: statement ::= ERROR_TOKEN
- //
- case 100: { action. consumeStatementProblem(); break;
- }
-
- //
- // Rule 101: labeled_statement ::= identifier_token : statement
- //
- case 101: { action. consumeStatementLabeled(); break;
- }
-
- //
- // Rule 102: labeled_statement ::= case constant_expression : statement
- //
- case 102: { action. consumeStatementCase(); break;
- }
-
- //
- // Rule 103: labeled_statement ::= default : statement
- //
- case 103: { action. consumeStatementDefault(); break;
- }
-
- //
- // Rule 104: compound_statement ::= { }
- //
- case 104: { action. consumeStatementCompoundStatement(false); break;
- }
-
- //
- // Rule 105: compound_statement ::= { <openscope-ast> block_item_list }
- //
- case 105: { action. consumeStatementCompoundStatement(true); break;
- }
-
- //
- // Rule 109: block_item ::= declaration
- //
- case 109: { action. consumeStatementDeclarationWithDisambiguation(); break;
- }
-
- //
- // Rule 110: expression_statement ::= ;
- //
- case 110: { action. consumeStatementNull(); break;
- }
-
- //
- // Rule 111: expression_statement ::= expression_in_statement ;
- //
- case 111: { action. consumeStatementExpression(); break;
- }
-
- //
- // Rule 112: selection_statement ::= if ( expression ) statement
- //
- case 112: { action. consumeStatementIf(false); break;
- }
-
- //
- // Rule 113: selection_statement ::= if ( expression ) statement else statement
- //
- case 113: { action. consumeStatementIf(true); break;
- }
-
- //
- // Rule 114: selection_statement ::= switch ( expression ) statement
- //
- case 114: { action. consumeStatementSwitch(); break;
- }
-
- //
- // Rule 116: expression_opt ::= $Empty
- //
- case 116: { action. consumeEmpty(); break;
- }
-
- //
- // Rule 117: iteration_statement ::= do statement while ( expression ) ;
- //
- case 117: { action. consumeStatementDoLoop(true); break;
- }
-
- //
- // Rule 118: iteration_statement ::= do statement
- //
- case 118: { action. consumeStatementDoLoop(false); break;
- }
-
- //
- // Rule 119: iteration_statement ::= while ( expression ) statement
- //
- case 119: { action. consumeStatementWhileLoop(); break;
- }
-
- //
- // Rule 120: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement
- //
- case 120: { action. consumeStatementForLoop(); break;
- }
-
- //
- // Rule 121: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement
- //
- case 121: { action. consumeStatementForLoop(); break;
- }
-
- //
- // Rule 122: jump_statement ::= goto identifier_token ;
- //
- case 122: { action. consumeStatementGoto(); break;
- }
-
- //
- // Rule 123: jump_statement ::= continue ;
- //
- case 123: { action. consumeStatementContinue(); break;
- }
-
- //
- // Rule 124: jump_statement ::= break ;
- //
- case 124: { action. consumeStatementBreak(); break;
- }
-
- //
- // Rule 125: jump_statement ::= return ;
- //
- case 125: { action. consumeStatementReturn(false); break;
- }
-
- //
- // Rule 126: jump_statement ::= return expression ;
- //
- case 126: { action. consumeStatementReturn(true); break;
- }
-
- //
- // Rule 127: declaration ::= declaration_specifiers ;
- //
- case 127: { action. consumeDeclarationSimple(false); break;
- }
-
- //
- // Rule 128: declaration ::= declaration_specifiers <openscope-ast> init_declarator_list ;
- //
- case 128: { action. consumeDeclarationSimple(true); break;
- }
-
- //
- // Rule 129: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
- //
- case 129: { action. consumeDeclarationSpecifiersSimple(); break;
- }
-
- //
- // Rule 130: declaration_specifiers ::= <openscope-ast> struct_or_union_declaration_specifiers
- //
- case 130: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
- }
-
- //
- // Rule 131: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
- //
- case 131: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
- }
-
- //
- // Rule 132: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
- //
- case 132: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
- }
-
- //
- // Rule 133: declaration_specifiers ::= <openscope-ast> typdef_name_declaration_specifiers
- //
- case 133: { action. consumeDeclarationSpecifiersTypedefName(); break;
- }
-
- //
- // Rule 158: init_declarator ::= complete_declarator = initializer
- //
- case 158: { action. consumeDeclaratorWithInitializer(true); break;
- }
-
- //
- // Rule 160: storage_class_specifier ::= storage_class_specifier_token
- //
- case 160: { action. consumeToken(); break;
- }
-
- //
- // Rule 166: simple_type_specifier ::= simple_type_specifier_token
- //
- case 166: { action. consumeToken(); break;
- }
-
- //
- // Rule 179: type_name_specifier ::= identifier_token
- //
- case 179: { action. consumeToken(); break;
- }
-
- //
- // Rule 180: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { <openscope-ast> struct_declaration_list_opt }
- //
- case 180: { action. consumeTypeSpecifierComposite(false); break;
- }
-
- //
- // Rule 181: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { <openscope-ast> struct_declaration_list_opt }
- //
- case 181: { action. consumeTypeSpecifierComposite(true); break;
- }
-
- //
- // Rule 186: elaborated_specifier ::= struct elaborated_specifier_hook identifier_token
- //
- case 186: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break;
- }
-
- //
- // Rule 187: elaborated_specifier ::= union elaborated_specifier_hook identifier_token
- //
- case 187: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break;
- }
-
- //
- // Rule 188: elaborated_specifier ::= enum elaborated_specifier_hook identifier_token
- //
- case 188: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break;
- }
-
- //
- // Rule 194: struct_declaration ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ;
- //
- case 194: { action. consumeStructDeclaration(true); break;
- }
-
- //
- // Rule 195: struct_declaration ::= specifier_qualifier_list ;
- //
- case 195: { action. consumeStructDeclaration(false); break;
- }
-
- //
- // Rule 196: struct_declaration ::= ERROR_TOKEN
- //
- case 196: { action. consumeDeclarationProblem(); break;
- }
-
- //
- // Rule 202: struct_declarator ::= : constant_expression
- //
- case 202: { action. consumeBitField(false); break;
- }
-
- //
- // Rule 203: struct_declarator ::= declarator : constant_expression
- //
- case 203: { action. consumeBitField(true); break;
- }
-
- //
- // Rule 204: enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
- //
- case 204: { action. consumeTypeSpecifierEnumeration(false); break;
- }
-
- //
- // Rule 205: enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
- //
- case 205: { action. consumeTypeSpecifierEnumeration(true); break;
- }
-
- //
- // Rule 211: enumerator ::= identifier_token
- //
- case 211: { action. consumeEnumerator(false); break;
- }
-
- //
- // Rule 212: enumerator ::= identifier_token = constant_expression
- //
- case 212: { action. consumeEnumerator(true); break;
- }
-
- //
- // Rule 213: type_qualifier ::= type_qualifier_token
- //
- case 213: { action. consumeToken(); break;
- }
-
- //
- // Rule 217: function_specifier ::= inline
- //
- case 217: { action. consumeToken(); break;
- }
-
- //
- // Rule 219: declarator ::= <openscope-ast> pointer_seq direct_declarator
- //
- case 219: { action. consumeDeclaratorWithPointer(true); break;
- }
-
- //
- // Rule 224: basic_direct_declarator ::= declarator_id_name
- //
- case 224: { action. consumeDirectDeclaratorIdentifier(); break;
- }
-
- //
- // Rule 225: basic_direct_declarator ::= ( declarator )
- //
- case 225: { action. consumeDirectDeclaratorBracketed(); break;
- }
-
- //
- // Rule 226: declarator_id_name ::= identifier
- //
- case 226: { action. consumeIdentifierName(); break;
- }
-
- //
- // Rule 227: array_direct_declarator ::= basic_direct_declarator array_modifier
- //
- case 227: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
- }
-
- //
- // Rule 228: array_direct_declarator ::= array_direct_declarator array_modifier
- //
- case 228: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
- }
-
- //
- // Rule 230: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_type_list )
- //
- case 230: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
- }
-
- //
- // Rule 231: function_direct_declarator ::= basic_direct_declarator ( )
- //
- case 231: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
- }
-
- //
- // Rule 233: function_declarator ::= <openscope-ast> pointer_seq function_direct_declarator
- //
- case 233: { action. consumeDeclaratorWithPointer(true); break;
- }
-
- //
- // Rule 234: knr_direct_declarator ::= basic_direct_declarator ( <openscope-ast> identifier_list )
- //
- case 234: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break;
- }
-
- //
- // Rule 236: knr_function_declarator ::= <openscope-ast> pointer_seq knr_direct_declarator
- //
- case 236: { action. consumeDeclaratorWithPointer(true); break;
- }
-
- //
- // Rule 237: identifier_list ::= identifier
- //
- case 237: { action. consumeIdentifierKnR(); break;
- }
-
- //
- // Rule 238: identifier_list ::= identifier_list , identifier
- //
- case 238: { action. consumeIdentifierKnR(); break;
- }
-
- //
- // Rule 239: array_modifier ::= [ ]
- //
- case 239: { action. consumeDirectDeclaratorArrayModifier(false); break;
- }
-
- //
- // Rule 240: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ]
- //
- case 240: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break;
- }
-
- //
- // Rule 241: array_modifier ::= [ assignment_expression ]
- //
- case 241: { action. consumeDirectDeclaratorArrayModifier(true); break;
- }
-
- //
- // Rule 242: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
- //
- case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break;
- }
-
- //
- // Rule 243: array_modifier ::= [ static assignment_expression ]
- //
- case 243: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break;
- }
-
- //
- // Rule 244: array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
- //
- case 244: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break;
- }
-
- //
- // Rule 245: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ]
- //
- case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break;
- }
-
- //
- // Rule 246: array_modifier ::= [ * ]
- //
- case 246: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break;
- }
-
- //
- // Rule 247: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ]
- //
- case 247: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break;
- }
-
- //
- // Rule 249: pointer_seq ::= pointer_hook * pointer_hook
- //
- case 249: { action. consumePointer(); break;
- }
-
- //
- // Rule 250: pointer_seq ::= pointer_seq pointer_hook * pointer_hook
- //
- case 250: { action. consumePointer(); break;
- }
-
- //
- // Rule 251: pointer_seq ::= pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
- //
- case 251: { action. consumePointerTypeQualifierList(); break;
- }
-
- //
- // Rule 252: pointer_seq ::= pointer_seq pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
- //
- case 252: { action. consumePointerTypeQualifierList(); break;
- }
-
- //
- // Rule 256: parameter_type_list ::= parameter_list
- //
- case 256: { action. consumeEmpty(); break;
- }
-
- //
- // Rule 257: parameter_type_list ::= parameter_list , ...
- //
- case 257: { action. consumePlaceHolder(); break;
- }
-
- //
- // Rule 258: parameter_type_list ::= ...
- //
- case 258: { action. consumePlaceHolder(); break;
- }
-
- //
- // Rule 261: parameter_declaration ::= declaration_specifiers complete_parameter_declarator
- //
- case 261: { action. consumeParameterDeclaration(); break;
- }
-
- //
- // Rule 262: parameter_declaration ::= declaration_specifiers
- //
- case 262: { action. consumeParameterDeclarationWithoutDeclarator(); break;
- }
-
- //
- // Rule 265: type_id ::= specifier_qualifier_list
- //
- case 265: { action. consumeTypeId(false); break;
- }
-
- //
- // Rule 266: type_id ::= specifier_qualifier_list abstract_declarator
- //
- case 266: { action. consumeTypeId(true); break;
- }
-
- //
- // Rule 268: abstract_declarator ::= <openscope-ast> pointer_seq
- //
- case 268: { action. consumeDeclaratorWithPointer(false); break;
- }
-
- //
- // Rule 269: abstract_declarator ::= <openscope-ast> pointer_seq direct_abstract_declarator
- //
- case 269: { action. consumeDeclaratorWithPointer(true); break;
- }
-
- //
- // Rule 273: basic_direct_abstract_declarator ::= ( abstract_declarator )
- //
- case 273: { action. consumeDirectDeclaratorBracketed(); break;
- }
-
- //
- // Rule 274: array_direct_abstract_declarator ::= array_modifier
- //
- case 274: { action. consumeDirectDeclaratorArrayDeclarator(false); break;
- }
-
- //
- // Rule 275: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
- //
- case 275: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
- }
-
- //
- // Rule 276: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
- //
- case 276: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
- }
-
- //
- // Rule 277: function_direct_abstract_declarator ::= ( )
- //
- case 277: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break;
- }
-
- //
- // Rule 278: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( )
- //
- case 278: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
- }
-
- //
- // Rule 279: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list )
- //
- case 279: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break;
- }
-
- //
- // Rule 280: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list )
- //
- case 280: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
- }
-
- //
- // Rule 281: initializer ::= assignment_expression
- //
- case 281: { action. consumeInitializer(); break;
- }
-
- //
- // Rule 282: initializer ::= initializer_list
- //
- case 282: { action. consumeInitializer(); break;
- }
-
- //
- // Rule 283: initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq comma_opt } end_initializer_list
- //
- case 283: { action. consumeInitializerList(); break;
- }
-
- //
- // Rule 284: initializer_list ::= { <openscope-ast> }
- //
- case 284: { action. consumeInitializerList(); break;
- }
-
- //
- // Rule 285: start_initializer_list ::= $Empty
- //
- case 285: { action. initializerListStart(); break;
- }
-
- //
- // Rule 286: end_initializer_list ::= $Empty
- //
- case 286: { action. initializerListEnd(); break;
- }
-
- //
- // Rule 291: designated_initializer ::= <openscope-ast> designation = initializer
- //
- case 291: { action. consumeInitializerDesignated(); break;
- }
-
- //
- // Rule 295: designator_base ::= [ constant_expression ]
- //
- case 295: { action. consumeDesignatorArray(); break;
- }
-
- //
- // Rule 296: designator_base ::= . identifier_token
- //
- case 296: { action. consumeDesignatorField(); break;
- }
-
- //
- // Rule 297: designator ::= [ constant_expression ]
- //
- case 297: { action. consumeDesignatorArray(); break;
- }
-
- //
- // Rule 298: designator ::= . identifier_token
- //
- case 298: { action. consumeDesignatorField(); break;
- }
-
- //
- // Rule 299: translation_unit ::= external_declaration_list
- //
- case 299: { action. consumeTranslationUnit(); break;
- }
-
- //
- // Rule 300: translation_unit ::= $Empty
- //
- case 300: { action. consumeTranslationUnit(); break;
- }
-
- //
- // Rule 305: external_declaration ::= ;
- //
- case 305: { action. consumeDeclarationEmpty(); break;
- }
-
- //
- // Rule 306: external_declaration ::= ERROR_TOKEN
- //
- case 306: { action. consumeDeclarationProblem(); break;
- }
-
- //
- // Rule 310: function_definition ::= <openscope-ast> function_declarator function_body
- //
- case 310: { action. consumeFunctionDefinition(false); break;
- }
-
- //
- // Rule 311: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
- //
- case 311: { action. consumeFunctionDefinitionKnR(); break;
- }
-
- //
- // Rule 312: normal_function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
- //
- case 312: { action. consumeFunctionDefinition(true); break;
- }
-
- //
- // Rule 313: function_body ::= { }
- //
- case 313: { action. consumeStatementCompoundStatement(false); break;
- }
-
- //
- // Rule 314: function_body ::= { <openscope-ast> block_item_list }
- //
- case 314: { action. consumeStatementCompoundStatement(true); break;
- }
-
- //
- // Rule 316: no_cast_start ::= ERROR_TOKEN
- //
- case 316: { action. consumeEmpty(); break;
- }
-
- //
- // Rule 317: literal ::= MYTHREAD
- //
- case 317: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread); break;
- }
-
- //
- // Rule 318: literal ::= THREADS
- //
- case 318: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads); break;
- }
-
- //
- // Rule 319: literal ::= UPC_MAX_BLOCKSIZE
- //
- case 319: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size); break;
- }
-
- //
- // Rule 320: unary_expression ::= upc_localsizeof unary_expression
- //
- case 320: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_localsizeof); break;
- }
-
- //
- // Rule 321: unary_expression ::= upc_localsizeof ( type_id )
- //
- case 321: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_localsizeof); break;
- }
-
- //
- // Rule 322: unary_expression ::= upc_blocksizeof unary_expression
- //
- case 322: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_blocksizeof); break;
- }
-
- //
- // Rule 323: unary_expression ::= upc_blocksizeof ( type_id )
- //
- case 323: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_blocksizeof); break;
- }
-
- //
- // Rule 324: unary_expression ::= upc_elemsizeof unary_expression
- //
- case 324: { action. consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_elemsizeof); break;
- }
-
- //
- // Rule 325: unary_expression ::= upc_elemsizeof ( type_id )
- //
- case 325: { action. consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_elemsizeof); break;
- }
-
- //
- // Rule 329: shared_type_qualifier ::= shared
- //
- case 329: { action. consumeToken(); break;
- }
-
- //
- // Rule 330: reference_type_qualifier ::= relaxed
- //
- case 330: { action. consumeToken(); break;
- }
-
- //
- // Rule 331: reference_type_qualifier ::= strict
- //
- case 331: { action. consumeToken(); break;
- }
-
- //
- // Rule 332: layout_qualifier ::= [ constant_expression ]
- //
- case 332: { action. consumeLayoutQualifier(true, false); break;
- }
-
- //
- // Rule 333: layout_qualifier ::= [ * ]
- //
- case 333: { action. consumeLayoutQualifier(false, true); break;
- }
-
- //
- // Rule 334: layout_qualifier ::= [ ]
- //
- case 334: { action. consumeLayoutQualifier(false, false); break;
- }
-
- //
- // Rule 336: synchronization_statement ::= upc_notify expression ;
- //
- case 336: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true); break;
- }
-
- //
- // Rule 337: synchronization_statement ::= upc_notify ;
- //
- case 337: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false); break;
- }
-
- //
- // Rule 338: synchronization_statement ::= upc_wait expression ;
- //
- case 338: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true); break;
- }
-
- //
- // Rule 339: synchronization_statement ::= upc_wait ;
- //
- case 339: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false); break;
- }
-
- //
- // Rule 340: synchronization_statement ::= upc_barrier expression ;
- //
- case 340: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true); break;
- }
-
- //
- // Rule 341: synchronization_statement ::= upc_barrier ;
- //
- case 341: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false); break;
- }
-
- //
- // Rule 342: synchronization_statement ::= upc_fence ;
- //
- case 342: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false); break;
- }
-
- //
- // Rule 343: iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement
- //
- case 343: { action. consumeStatementUPCForallLoop(true, true, true, true); break;
- }
-
- //
- // Rule 344: iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement
- //
- case 344: { action. consumeStatementUPCForallLoop(true, true, true, false); break;
- }
-
- //
- // Rule 345: iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement
- //
- case 345: { action. consumeStatementUPCForallLoop(true, true, false, true); break;
- }
-
- //
- // Rule 346: iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement
- //
- case 346: { action. consumeStatementUPCForallLoop(true, true, false, false); break;
- }
-
- //
- // Rule 347: iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement
- //
- case 347: { action. consumeStatementUPCForallLoop(true, false, true, true); break;
- }
-
- //
- // Rule 348: iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement
- //
- case 348: { action. consumeStatementUPCForallLoop(true, false, true, false); break;
- }
-
- //
- // Rule 349: iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement
- //
- case 349: { action. consumeStatementUPCForallLoop(true, false, false, true); break;
- }
-
- //
- // Rule 350: iteration_statement ::= upc_forall ( expression ; ; ; ) statement
- //
- case 350: { action. consumeStatementUPCForallLoop(true, false, false, false); break;
- }
-
- //
- // Rule 351: iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement
- //
- case 351: { action. consumeStatementUPCForallLoop(false, true, true, true); break;
- }
-
- //
- // Rule 352: iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement
- //
- case 352: { action. consumeStatementUPCForallLoop(false, true, true, false); break;
- }
-
- //
- // Rule 353: iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement
- //
- case 353: { action. consumeStatementUPCForallLoop(false, true, false, true); break;
- }
-
- //
- // Rule 354: iteration_statement ::= upc_forall ( ; expression ; ; ) statement
- //
- case 354: { action. consumeStatementUPCForallLoop(false, true, false, false); break;
- }
-
- //
- // Rule 355: iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement
- //
- case 355: { action. consumeStatementUPCForallLoop(false, false, true, true); break;
- }
-
- //
- // Rule 356: iteration_statement ::= upc_forall ( ; ; expression ; ) statement
- //
- case 356: { action. consumeStatementUPCForallLoop(false, false, true, false); break;
- }
-
- //
- // Rule 357: iteration_statement ::= upc_forall ( ; ; ; affinity ) statement
- //
- case 357: { action. consumeStatementUPCForallLoop(false, false, false, true); break;
- }
-
- //
- // Rule 358: iteration_statement ::= upc_forall ( ; ; ; ) statement
- //
- case 358: { action. consumeStatementUPCForallLoop(false, false, false, false); break;
- }
-
- //
- // Rule 359: iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement
- //
- case 359: { action. consumeStatementUPCForallLoop(true, true, true, true); break;
- }
-
- //
- // Rule 360: iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement
- //
- case 360: { action. consumeStatementUPCForallLoop(true, true, true, false); break;
- }
-
- //
- // Rule 361: iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement
- //
- case 361: { action. consumeStatementUPCForallLoop(true, true, false, true); break;
- }
-
- //
- // Rule 362: iteration_statement ::= upc_forall ( declaration expression ; ; ) statement
- //
- case 362: { action. consumeStatementUPCForallLoop(true, true, false, false); break;
- }
-
- //
- // Rule 363: iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement
- //
- case 363: { action. consumeStatementUPCForallLoop(true, false, true, true); break;
- }
-
- //
- // Rule 364: iteration_statement ::= upc_forall ( declaration ; expression ; ) statement
- //
- case 364: { action. consumeStatementUPCForallLoop(true, false, true, false); break;
- }
-
- //
- // Rule 365: iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement
- //
- case 365: { action. consumeStatementUPCForallLoop(true, false, false, true); break;
- }
-
- //
- // Rule 366: iteration_statement ::= upc_forall ( declaration ; ; ) statement
- //
- case 366: { action. consumeStatementUPCForallLoop(true, false, false, false); break;
- }
-
- //
- // Rule 368: affinity ::= continue
- //
- case 368: { action. consumeToken(); break;
- }
-
-
- default:
- break;
- }
- return;
- }
-}
+ public void parser() {
+ parser(null, 0);
+ }
+ public void parser(Monitor monitor) {
+ parser(monitor, 0);
+ }
+
+ public void parser(int error_repair_count) {
+ parser(null, error_repair_count);
+ }
+
+ public void parser(Monitor monitor, int error_repair_count) {
+ try {
+ btParser = new FixedBacktrackingParser(monitor, this, prs, this);
+ } catch (NotBacktrackParseTableException e) {
+ throw new Error(new NotBacktrackParseTableException(
+ "Regenerate UPCNoCastExpressionParserprs.java with -BACKTRACK option"));
+ } catch (BadParseSymFileException e) {
+ throw new Error(
+ new BadParseSymFileException("Bad Parser Symbol File -- UPCNoCastExpressionParsersym.java"));
+ }
+
+ try {
+ btParser.parse(error_repair_count);
+ } catch (BadParseException e) {
+ reset(e.error_token); // point to error token
+ DiagnoseParser diagnoseParser = new DiagnoseParser(this, prs);
+ diagnoseParser.diagnose(e.error_token);
+ }
+ }
+
+ private UPCParserAction action;
+ private IASTCompletionNode compNode;
+
+ public UPCNoCastExpressionParser(IScanner scanner, IDOMTokenMap tokenMap,
+ IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Map<String, String> properties) {
+ initActions(properties);
+ action.initializeTranslationUnit(scanner, builtinBindingsProvider, index);
+ CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap);
+ }
+
+ private void initActions(Map<String, String> properties) {
+ ScopedStack<Object> astStack = new ScopedStack<Object>();
+
+ action = new UPCParserAction(this, astStack, new UPCASTNodeFactory(), UPCSecondaryParserFactory.getDefault());
+ action.setParserProperties(properties);
+
+ }
+
+ @Override
+ public void addToken(IToken token) {
+ token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called?
+ super.addToken(token);
+ }
+
+ @Override
+ public IASTExpression parse() {
+ // this has to be done, or... kaboom!
+ setStreamLength(getSize());
+
+ final int errorRepairCount = -1; // -1 means full error handling
+ parser(null, errorRepairCount); // do the actual parse
+ super.resetTokenStream(); // allow tokens to be garbage collected
+
+ compNode = action.getASTCompletionNode(); // the completion node may be null
+ return (IASTExpression) action.getParseResult();
+ }
+
+ @Override
+ public IASTCompletionNode getCompletionNode() {
+ return compNode;
+ }
+
+ // uncomment this method to use with backtracking parser
+ @Override
+ public List<IToken> getRuleTokens() {
+ return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
+ }
+
+ @Override
+ public String[] getOrderedTerminalSymbols() {
+ return UPCNoCastExpressionParsersym.orderedTerminalSymbols;
+ }
+
+ @Override
+ @SuppressWarnings("nls")
+ public String getName() {
+ return "UPCNoCastExpressionParser";
+ }
+
+ private ITokenMap tokenMap = null;
+
+ @Override
+ public void setTokens(List<IToken> tokens) {
+ resetTokenStream();
+ addToken(new Token(null, 0, 0, 0)); // dummy token
+ for (IToken token : tokens) {
+ token.setKind(tokenMap.mapKind(token.getKind()));
+ addToken(token);
+ }
+ addToken(new Token(null, 0, 0, UPCNoCastExpressionParsersym.TK_EOF_TOKEN));
+ }
+
+ public UPCNoCastExpressionParser(ITokenStream stream, Map<String, String> properties) { // constructor for creating secondary parser
+ initActions(properties);
+ tokenMap = new TokenMap(UPCNoCastExpressionParsersym.orderedTerminalSymbols,
+ stream.getOrderedTerminalSymbols());
+ }
+
+ @Override
+ public void ruleAction(int ruleNumber) {
+ switch (ruleNumber) {
+
+ //
+ // Rule 1: <openscope-ast> ::= $Empty
+ //
+ case 1: {
+ action.openASTScope();
+ break;
+ }
+
+ //
+ // Rule 2: <empty> ::= $Empty
+ //
+ case 2: {
+ action.consumeEmpty();
+ break;
+ }
+
+ //
+ // Rule 13: literal ::= integer
+ //
+ case 13: {
+ action.consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant);
+ break;
+ }
+
+ //
+ // Rule 14: literal ::= floating
+ //
+ case 14: {
+ action.consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant);
+ break;
+ }
+
+ //
+ // Rule 15: literal ::= charconst
+ //
+ case 15: {
+ action.consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant);
+ break;
+ }
+
+ //
+ // Rule 16: literal ::= stringlit
+ //
+ case 16: {
+ action.consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal);
+ break;
+ }
+
+ //
+ // Rule 18: primary_expression ::= primary_expression_id
+ //
+ case 18: {
+ action.consumeExpressionID();
+ break;
+ }
+
+ //
+ // Rule 19: primary_expression ::= ( expression )
+ //
+ case 19: {
+ action.consumeExpressionBracketed();
+ break;
+ }
+
+ //
+ // Rule 22: postfix_expression ::= postfix_expression [ expression ]
+ //
+ case 22: {
+ action.consumeExpressionArraySubscript();
+ break;
+ }
+
+ //
+ // Rule 23: postfix_expression ::= postfix_expression ( expression_list_opt )
+ //
+ case 23: {
+ action.consumeExpressionFunctionCall();
+ break;
+ }
+
+ //
+ // Rule 24: postfix_expression ::= postfix_expression . member_name
+ //
+ case 24: {
+ action.consumeExpressionFieldReference(false);
+ break;
+ }
+
+ //
+ // Rule 25: postfix_expression ::= postfix_expression -> member_name
+ //
+ case 25: {
+ action.consumeExpressionFieldReference(true);
+ break;
+ }
+
+ //
+ // Rule 26: postfix_expression ::= postfix_expression ++
+ //
+ case 26: {
+ action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr);
+ break;
+ }
+
+ //
+ // Rule 27: postfix_expression ::= postfix_expression --
+ //
+ case 27: {
+ action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr);
+ break;
+ }
+
+ //
+ // Rule 28: postfix_expression ::= ( type_id ) initializer_list
+ //
+ case 28: {
+ action.consumeExpressionTypeIdInitializer();
+ break;
+ }
+
+ //
+ // Rule 33: unary_expression ::= ++ unary_expression
+ //
+ case 33: {
+ action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr);
+ break;
+ }
+
+ //
+ // Rule 34: unary_expression ::= -- unary_expression
+ //
+ case 34: {
+ action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr);
+ break;
+ }
+
+ //
+ // Rule 35: unary_expression ::= & cast_expression
+ //
+ case 35: {
+ action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper);
+ break;
+ }
+
+ //
+ // Rule 36: unary_expression ::= * cast_expression
+ //
+ case 36: {
+ action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_star);
+ break;
+ }
+
+ //
+ // Rule 37: unary_expression ::= + cast_expression
+ //
+ case 37: {
+ action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus);
+ break;
+ }
+
+ //
+ // Rule 38: unary_expression ::= - cast_expression
+ //
+ case 38: {
+ action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus);
+ break;
+ }
+
+ //
+ // Rule 39: unary_expression ::= ~ cast_expression
+ //
+ case 39: {
+ action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde);
+ break;
+ }
+
+ //
+ // Rule 40: unary_expression ::= ! cast_expression
+ //
+ case 40: {
+ action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_not);
+ break;
+ }
+
+ //
+ // Rule 41: unary_expression ::= sizeof unary_expression
+ //
+ case 41: {
+ action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof);
+ break;
+ }
+
+ //
+ // Rule 42: unary_expression ::= sizeof ( type_id )
+ //
+ case 42: {
+ action.consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof);
+ break;
+ }
+
+ //
+ // Rule 45: multiplicative_expression ::= multiplicative_expression * cast_expression
+ //
+ case 45: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply);
+ break;
+ }
+
+ //
+ // Rule 46: multiplicative_expression ::= multiplicative_expression / cast_expression
+ //
+ case 46: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide);
+ break;
+ }
+
+ //
+ // Rule 47: multiplicative_expression ::= multiplicative_expression % cast_expression
+ //
+ case 47: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo);
+ break;
+ }
+
+ //
+ // Rule 49: additive_expression ::= additive_expression + multiplicative_expression
+ //
+ case 49: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus);
+ break;
+ }
+
+ //
+ // Rule 50: additive_expression ::= additive_expression - multiplicative_expression
+ //
+ case 50: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus);
+ break;
+ }
+
+ //
+ // Rule 52: shift_expression ::= shift_expression << additive_expression
+ //
+ case 52: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft);
+ break;
+ }
+
+ //
+ // Rule 53: shift_expression ::= shift_expression >> additive_expression
+ //
+ case 53: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight);
+ break;
+ }
+
+ //
+ // Rule 55: relational_expression ::= relational_expression < shift_expression
+ //
+ case 55: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan);
+ break;
+ }
+
+ //
+ // Rule 56: relational_expression ::= relational_expression > shift_expression
+ //
+ case 56: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan);
+ break;
+ }
+
+ //
+ // Rule 57: relational_expression ::= relational_expression <= shift_expression
+ //
+ case 57: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual);
+ break;
+ }
+
+ //
+ // Rule 58: relational_expression ::= relational_expression >= shift_expression
+ //
+ case 58: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual);
+ break;
+ }
+
+ //
+ // Rule 60: equality_expression ::= equality_expression == relational_expression
+ //
+ case 60: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals);
+ break;
+ }
+
+ //
+ // Rule 61: equality_expression ::= equality_expression != relational_expression
+ //
+ case 61: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals);
+ break;
+ }
+
+ //
+ // Rule 63: and_expression ::= and_expression & equality_expression
+ //
+ case 63: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd);
+ break;
+ }
+
+ //
+ // Rule 65: exclusive_or_expression ::= exclusive_or_expression ^ and_expression
+ //
+ case 65: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor);
+ break;
+ }
+
+ //
+ // Rule 67: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression
+ //
+ case 67: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr);
+ break;
+ }
+
+ //
+ // Rule 69: logical_and_expression ::= logical_and_expression && inclusive_or_expression
+ //
+ case 69: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd);
+ break;
+ }
+
+ //
+ // Rule 71: logical_or_expression ::= logical_or_expression || logical_and_expression
+ //
+ case 71: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr);
+ break;
+ }
+
+ //
+ // Rule 73: conditional_expression ::= logical_or_expression ? expression : assignment_expression
+ //
+ case 73: {
+ action.consumeExpressionConditional();
+ break;
+ }
+
+ //
+ // Rule 75: assignment_expression ::= unary_expression = assignment_expression
+ //
+ case 75: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign);
+ break;
+ }
+
+ //
+ // Rule 76: assignment_expression ::= unary_expression *= assignment_expression
+ //
+ case 76: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign);
+ break;
+ }
+
+ //
+ // Rule 77: assignment_expression ::= unary_expression /= assignment_expression
+ //
+ case 77: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign);
+ break;
+ }
+
+ //
+ // Rule 78: assignment_expression ::= unary_expression %= assignment_expression
+ //
+ case 78: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign);
+ break;
+ }
+
+ //
+ // Rule 79: assignment_expression ::= unary_expression += assignment_expression
+ //
+ case 79: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign);
+ break;
+ }
+
+ //
+ // Rule 80: assignment_expression ::= unary_expression -= assignment_expression
+ //
+ case 80: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign);
+ break;
+ }
+
+ //
+ // Rule 81: assignment_expression ::= unary_expression <<= assignment_expression
+ //
+ case 81: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign);
+ break;
+ }
+
+ //
+ // Rule 82: assignment_expression ::= unary_expression >>= assignment_expression
+ //
+ case 82: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign);
+ break;
+ }
+
+ //
+ // Rule 83: assignment_expression ::= unary_expression &= assignment_expression
+ //
+ case 83: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign);
+ break;
+ }
+
+ //
+ // Rule 84: assignment_expression ::= unary_expression ^= assignment_expression
+ //
+ case 84: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign);
+ break;
+ }
+
+ //
+ // Rule 85: assignment_expression ::= unary_expression |= assignment_expression
+ //
+ case 85: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign);
+ break;
+ }
+
+ //
+ // Rule 88: expression_list ::= <openscope-ast> expression_list_actual
+ //
+ case 88: {
+ action.consumeExpressionList();
+ break;
+ }
+
+ //
+ // Rule 90: expression_list_opt ::= $Empty
+ //
+ case 90: {
+ action.consumeEmpty();
+ break;
+ }
+
+ //
+ // Rule 100: statement ::= ERROR_TOKEN
+ //
+ case 100: {
+ action.consumeStatementProblem();
+ break;
+ }
+
+ //
+ // Rule 101: labeled_statement ::= identifier_token : statement
+ //
+ case 101: {
+ action.consumeStatementLabeled();
+ break;
+ }
+
+ //
+ // Rule 102: labeled_statement ::= case constant_expression : statement
+ //
+ case 102: {
+ action.consumeStatementCase();
+ break;
+ }
+
+ //
+ // Rule 103: labeled_statement ::= default : statement
+ //
+ case 103: {
+ action.consumeStatementDefault();
+ break;
+ }
+
+ //
+ // Rule 104: compound_statement ::= { }
+ //
+ case 104: {
+ action.consumeStatementCompoundStatement(false);
+ break;
+ }
+
+ //
+ // Rule 105: compound_statement ::= { <openscope-ast> block_item_list }
+ //
+ case 105: {
+ action.consumeStatementCompoundStatement(true);
+ break;
+ }
+
+ //
+ // Rule 109: block_item ::= declaration
+ //
+ case 109: {
+ action.consumeStatementDeclarationWithDisambiguation();
+ break;
+ }
+
+ //
+ // Rule 110: expression_statement ::= ;
+ //
+ case 110: {
+ action.consumeStatementNull();
+ break;
+ }
+
+ //
+ // Rule 111: expression_statement ::= expression_in_statement ;
+ //
+ case 111: {
+ action.consumeStatementExpression();
+ break;
+ }
+
+ //
+ // Rule 112: selection_statement ::= if ( expression ) statement
+ //
+ case 112: {
+ action.consumeStatementIf(false);
+ break;
+ }
+
+ //
+ // Rule 113: selection_statement ::= if ( expression ) statement else statement
+ //
+ case 113: {
+ action.consumeStatementIf(true);
+ break;
+ }
+
+ //
+ // Rule 114: selection_statement ::= switch ( expression ) statement
+ //
+ case 114: {
+ action.consumeStatementSwitch();
+ break;
+ }
+
+ //
+ // Rule 116: expression_opt ::= $Empty
+ //
+ case 116: {
+ action.consumeEmpty();
+ break;
+ }
+
+ //
+ // Rule 117: iteration_statement ::= do statement while ( expression ) ;
+ //
+ case 117: {
+ action.consumeStatementDoLoop(true);
+ break;
+ }
+
+ //
+ // Rule 118: iteration_statement ::= do statement
+ //
+ case 118: {
+ action.consumeStatementDoLoop(false);
+ break;
+ }
+
+ //
+ // Rule 119: iteration_statement ::= while ( expression ) statement
+ //
+ case 119: {
+ action.consumeStatementWhileLoop();
+ break;
+ }
+
+ //
+ // Rule 120: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement
+ //
+ case 120: {
+ action.consumeStatementForLoop();
+ break;
+ }
+
+ //
+ // Rule 121: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement
+ //
+ case 121: {
+ action.consumeStatementForLoop();
+ break;
+ }
+
+ //
+ // Rule 122: jump_statement ::= goto identifier_token ;
+ //
+ case 122: {
+ action.consumeStatementGoto();
+ break;
+ }
+
+ //
+ // Rule 123: jump_statement ::= continue ;
+ //
+ case 123: {
+ action.consumeStatementContinue();
+ break;
+ }
+
+ //
+ // Rule 124: jump_statement ::= break ;
+ //
+ case 124: {
+ action.consumeStatementBreak();
+ break;
+ }
+
+ //
+ // Rule 125: jump_statement ::= return ;
+ //
+ case 125: {
+ action.consumeStatementReturn(false);
+ break;
+ }
+
+ //
+ // Rule 126: jump_statement ::= return expression ;
+ //
+ case 126: {
+ action.consumeStatementReturn(true);
+ break;
+ }
+
+ //
+ // Rule 127: declaration ::= declaration_specifiers ;
+ //
+ case 127: {
+ action.consumeDeclarationSimple(false);
+ break;
+ }
+
+ //
+ // Rule 128: declaration ::= declaration_specifiers <openscope-ast> init_declarator_list ;
+ //
+ case 128: {
+ action.consumeDeclarationSimple(true);
+ break;
+ }
+
+ //
+ // Rule 129: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
+ //
+ case 129: {
+ action.consumeDeclarationSpecifiersSimple();
+ break;
+ }
+
+ //
+ // Rule 130: declaration_specifiers ::= <openscope-ast> struct_or_union_declaration_specifiers
+ //
+ case 130: {
+ action.consumeDeclarationSpecifiersStructUnionEnum();
+ break;
+ }
+
+ //
+ // Rule 131: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
+ //
+ case 131: {
+ action.consumeDeclarationSpecifiersStructUnionEnum();
+ break;
+ }
+
+ //
+ // Rule 132: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
+ //
+ case 132: {
+ action.consumeDeclarationSpecifiersStructUnionEnum();
+ break;
+ }
+
+ //
+ // Rule 133: declaration_specifiers ::= <openscope-ast> typdef_name_declaration_specifiers
+ //
+ case 133: {
+ action.consumeDeclarationSpecifiersTypedefName();
+ break;
+ }
+
+ //
+ // Rule 158: init_declarator ::= complete_declarator = initializer
+ //
+ case 158: {
+ action.consumeDeclaratorWithInitializer(true);
+ break;
+ }
+
+ //
+ // Rule 160: storage_class_specifier ::= storage_class_specifier_token
+ //
+ case 160: {
+ action.consumeToken();
+ break;
+ }
+
+ //
+ // Rule 166: simple_type_specifier ::= simple_type_specifier_token
+ //
+ case 166: {
+ action.consumeToken();
+ break;
+ }
+
+ //
+ // Rule 179: type_name_specifier ::= identifier_token
+ //
+ case 179: {
+ action.consumeToken();
+ break;
+ }
+
+ //
+ // Rule 180: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { <openscope-ast> struct_declaration_list_opt }
+ //
+ case 180: {
+ action.consumeTypeSpecifierComposite(false);
+ break;
+ }
+
+ //
+ // Rule 181: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { <openscope-ast> struct_declaration_list_opt }
+ //
+ case 181: {
+ action.consumeTypeSpecifierComposite(true);
+ break;
+ }
+
+ //
+ // Rule 186: elaborated_specifier ::= struct elaborated_specifier_hook identifier_token
+ //
+ case 186: {
+ action.consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct);
+ break;
+ }
+
+ //
+ // Rule 187: elaborated_specifier ::= union elaborated_specifier_hook identifier_token
+ //
+ case 187: {
+ action.consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union);
+ break;
+ }
+
+ //
+ // Rule 188: elaborated_specifier ::= enum elaborated_specifier_hook identifier_token
+ //
+ case 188: {
+ action.consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum);
+ break;
+ }
+
+ //
+ // Rule 194: struct_declaration ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ;
+ //
+ case 194: {
+ action.consumeStructDeclaration(true);
+ break;
+ }
+
+ //
+ // Rule 195: struct_declaration ::= specifier_qualifier_list ;
+ //
+ case 195: {
+ action.consumeStructDeclaration(false);
+ break;
+ }
+
+ //
+ // Rule 196: struct_declaration ::= ERROR_TOKEN
+ //
+ case 196: {
+ action.consumeDeclarationProblem();
+ break;
+ }
+
+ //
+ // Rule 202: struct_declarator ::= : constant_expression
+ //
+ case 202: {
+ action.consumeBitField(false);
+ break;
+ }
+
+ //
+ // Rule 203: struct_declarator ::= declarator : constant_expression
+ //
+ case 203: {
+ action.consumeBitField(true);
+ break;
+ }
+
+ //
+ // Rule 204: enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
+ //
+ case 204: {
+ action.consumeTypeSpecifierEnumeration(false);
+ break;
+ }
+
+ //
+ // Rule 205: enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
+ //
+ case 205: {
+ action.consumeTypeSpecifierEnumeration(true);
+ break;
+ }
+
+ //
+ // Rule 211: enumerator ::= identifier_token
+ //
+ case 211: {
+ action.consumeEnumerator(false);
+ break;
+ }
+
+ //
+ // Rule 212: enumerator ::= identifier_token = constant_expression
+ //
+ case 212: {
+ action.consumeEnumerator(true);
+ break;
+ }
+
+ //
+ // Rule 213: type_qualifier ::= type_qualifier_token
+ //
+ case 213: {
+ action.consumeToken();
+ break;
+ }
+
+ //
+ // Rule 217: function_specifier ::= inline
+ //
+ case 217: {
+ action.consumeToken();
+ break;
+ }
+
+ //
+ // Rule 219: declarator ::= <openscope-ast> pointer_seq direct_declarator
+ //
+ case 219: {
+ action.consumeDeclaratorWithPointer(true);
+ break;
+ }
+
+ //
+ // Rule 224: basic_direct_declarator ::= declarator_id_name
+ //
+ case 224: {
+ action.consumeDirectDeclaratorIdentifier();
+ break;
+ }
+
+ //
+ // Rule 225: basic_direct_declarator ::= ( declarator )
+ //
+ case 225: {
+ action.consumeDirectDeclaratorBracketed();
+ break;
+ }
+
+ //
+ // Rule 226: declarator_id_name ::= identifier
+ //
+ case 226: {
+ action.consumeIdentifierName();
+ break;
+ }
+
+ //
+ // Rule 227: array_direct_declarator ::= basic_direct_declarator array_modifier
+ //
+ case 227: {
+ action.consumeDirectDeclaratorArrayDeclarator(true);
+ break;
+ }
+
+ //
+ // Rule 228: array_direct_declarator ::= array_direct_declarator array_modifier
+ //
+ case 228: {
+ action.consumeDirectDeclaratorArrayDeclarator(true);
+ break;
+ }
+
+ //
+ // Rule 230: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_type_list )
+ //
+ case 230: {
+ action.consumeDirectDeclaratorFunctionDeclarator(true, true);
+ break;
+ }
+
+ //
+ // Rule 231: function_direct_declarator ::= basic_direct_declarator ( )
+ //
+ case 231: {
+ action.consumeDirectDeclaratorFunctionDeclarator(true, false);
+ break;
+ }
+
+ //
+ // Rule 233: function_declarator ::= <openscope-ast> pointer_seq function_direct_declarator
+ //
+ case 233: {
+ action.consumeDeclaratorWithPointer(true);
+ break;
+ }
+
+ //
+ // Rule 234: knr_direct_declarator ::= basic_direct_declarator ( <openscope-ast> identifier_list )
+ //
+ case 234: {
+ action.consumeDirectDeclaratorFunctionDeclaratorKnR();
+ break;
+ }
+
+ //
+ // Rule 236: knr_function_declarator ::= <openscope-ast> pointer_seq knr_direct_declarator
+ //
+ case 236: {
+ action.consumeDeclaratorWithPointer(true);
+ break;
+ }
+
+ //
+ // Rule 237: identifier_list ::= identifier
+ //
+ case 237: {
+ action.consumeIdentifierKnR();
+ break;
+ }
+
+ //
+ // Rule 238: identifier_list ::= identifier_list , identifier
+ //
+ case 238: {
+ action.consumeIdentifierKnR();
+ break;
+ }
+
+ //
+ // Rule 239: array_modifier ::= [ ]
+ //
+ case 239: {
+ action.consumeDirectDeclaratorArrayModifier(false);
+ break;
+ }
+
+ //
+ // Rule 240: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ]
+ //
+ case 240: {
+ action.consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false);
+ break;
+ }
+
+ //
+ // Rule 241: array_modifier ::= [ assignment_expression ]
+ //
+ case 241: {
+ action.consumeDirectDeclaratorArrayModifier(true);
+ break;
+ }
+
+ //
+ // Rule 242: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
+ //
+ case 242: {
+ action.consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true);
+ break;
+ }
+
+ //
+ // Rule 243: array_modifier ::= [ static assignment_expression ]
+ //
+ case 243: {
+ action.consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true);
+ break;
+ }
+
+ //
+ // Rule 244: array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
+ //
+ case 244: {
+ action.consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true);
+ break;
+ }
+
+ //
+ // Rule 245: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ]
+ //
+ case 245: {
+ action.consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true);
+ break;
+ }
+
+ //
+ // Rule 246: array_modifier ::= [ * ]
+ //
+ case 246: {
+ action.consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false);
+ break;
+ }
+
+ //
+ // Rule 247: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ]
+ //
+ case 247: {
+ action.consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false);
+ break;
+ }
+
+ //
+ // Rule 249: pointer_seq ::= pointer_hook * pointer_hook
+ //
+ case 249: {
+ action.consumePointer();
+ break;
+ }
+
+ //
+ // Rule 250: pointer_seq ::= pointer_seq pointer_hook * pointer_hook
+ //
+ case 250: {
+ action.consumePointer();
+ break;
+ }
+
+ //
+ // Rule 251: pointer_seq ::= pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
+ //
+ case 251: {
+ action.consumePointerTypeQualifierList();
+ break;
+ }
+
+ //
+ // Rule 252: pointer_seq ::= pointer_seq pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
+ //
+ case 252: {
+ action.consumePointerTypeQualifierList();
+ break;
+ }
+
+ //
+ // Rule 256: parameter_type_list ::= parameter_list
+ //
+ case 256: {
+ action.consumeEmpty();
+ break;
+ }
+
+ //
+ // Rule 257: parameter_type_list ::= parameter_list , ...
+ //
+ case 257: {
+ action.consumePlaceHolder();
+ break;
+ }
+
+ //
+ // Rule 258: parameter_type_list ::= ...
+ //
+ case 258: {
+ action.consumePlaceHolder();
+ break;
+ }
+
+ //
+ // Rule 261: parameter_declaration ::= declaration_specifiers complete_parameter_declarator
+ //
+ case 261: {
+ action.consumeParameterDeclaration();
+ break;
+ }
+
+ //
+ // Rule 262: parameter_declaration ::= declaration_specifiers
+ //
+ case 262: {
+ action.consumeParameterDeclarationWithoutDeclarator();
+ break;
+ }
+
+ //
+ // Rule 265: type_id ::= specifier_qualifier_list
+ //
+ case 265: {
+ action.consumeTypeId(false);
+ break;
+ }
+
+ //
+ // Rule 266: type_id ::= specifier_qualifier_list abstract_declarator
+ //
+ case 266: {
+ action.consumeTypeId(true);
+ break;
+ }
+
+ //
+ // Rule 268: abstract_declarator ::= <openscope-ast> pointer_seq
+ //
+ case 268: {
+ action.consumeDeclaratorWithPointer(false);
+ break;
+ }
+
+ //
+ // Rule 269: abstract_declarator ::= <openscope-ast> pointer_seq direct_abstract_declarator
+ //
+ case 269: {
+ action.consumeDeclaratorWithPointer(true);
+ break;
+ }
+
+ //
+ // Rule 273: basic_direct_abstract_declarator ::= ( abstract_declarator )
+ //
+ case 273: {
+ action.consumeDirectDeclaratorBracketed();
+ break;
+ }
+
+ //
+ // Rule 274: array_direct_abstract_declarator ::= array_modifier
+ //
+ case 274: {
+ action.consumeDirectDeclaratorArrayDeclarator(false);
+ break;
+ }
+
+ //
+ // Rule 275: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
+ //
+ case 275: {
+ action.consumeDirectDeclaratorArrayDeclarator(true);
+ break;
+ }
+
+ //
+ // Rule 276: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
+ //
+ case 276: {
+ action.consumeDirectDeclaratorArrayDeclarator(true);
+ break;
+ }
+
+ //
+ // Rule 277: function_direct_abstract_declarator ::= ( )
+ //
+ case 277: {
+ action.consumeDirectDeclaratorFunctionDeclarator(false, false);
+ break;
+ }
+
+ //
+ // Rule 278: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( )
+ //
+ case 278: {
+ action.consumeDirectDeclaratorFunctionDeclarator(true, false);
+ break;
+ }
+
+ //
+ // Rule 279: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list )
+ //
+ case 279: {
+ action.consumeDirectDeclaratorFunctionDeclarator(false, true);
+ break;
+ }
+
+ //
+ // Rule 280: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list )
+ //
+ case 280: {
+ action.consumeDirectDeclaratorFunctionDeclarator(true, true);
+ break;
+ }
+
+ //
+ // Rule 281: initializer ::= assignment_expression
+ //
+ case 281: {
+ action.consumeInitializer();
+ break;
+ }
+
+ //
+ // Rule 282: initializer ::= initializer_list
+ //
+ case 282: {
+ action.consumeInitializer();
+ break;
+ }
+
+ //
+ // Rule 283: initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq comma_opt } end_initializer_list
+ //
+ case 283: {
+ action.consumeInitializerList();
+ break;
+ }
+
+ //
+ // Rule 284: initializer_list ::= { <openscope-ast> }
+ //
+ case 284: {
+ action.consumeInitializerList();
+ break;
+ }
+
+ //
+ // Rule 285: start_initializer_list ::= $Empty
+ //
+ case 285: {
+ action.initializerListStart();
+ break;
+ }
+
+ //
+ // Rule 286: end_initializer_list ::= $Empty
+ //
+ case 286: {
+ action.initializerListEnd();
+ break;
+ }
+
+ //
+ // Rule 291: designated_initializer ::= <openscope-ast> designation = initializer
+ //
+ case 291: {
+ action.consumeInitializerDesignated();
+ break;
+ }
+
+ //
+ // Rule 295: designator_base ::= [ constant_expression ]
+ //
+ case 295: {
+ action.consumeDesignatorArray();
+ break;
+ }
+
+ //
+ // Rule 296: designator_base ::= . identifier_token
+ //
+ case 296: {
+ action.consumeDesignatorField();
+ break;
+ }
+
+ //
+ // Rule 297: designator ::= [ constant_expression ]
+ //
+ case 297: {
+ action.consumeDesignatorArray();
+ break;
+ }
+
+ //
+ // Rule 298: designator ::= . identifier_token
+ //
+ case 298: {
+ action.consumeDesignatorField();
+ break;
+ }
+
+ //
+ // Rule 299: translation_unit ::= external_declaration_list
+ //
+ case 299: {
+ action.consumeTranslationUnit();
+ break;
+ }
+
+ //
+ // Rule 300: translation_unit ::= $Empty
+ //
+ case 300: {
+ action.consumeTranslationUnit();
+ break;
+ }
+
+ //
+ // Rule 305: external_declaration ::= ;
+ //
+ case 305: {
+ action.consumeDeclarationEmpty();
+ break;
+ }
+
+ //
+ // Rule 306: external_declaration ::= ERROR_TOKEN
+ //
+ case 306: {
+ action.consumeDeclarationProblem();
+ break;
+ }
+
+ //
+ // Rule 310: function_definition ::= <openscope-ast> function_declarator function_body
+ //
+ case 310: {
+ action.consumeFunctionDefinition(false);
+ break;
+ }
+
+ //
+ // Rule 311: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
+ //
+ case 311: {
+ action.consumeFunctionDefinitionKnR();
+ break;
+ }
+
+ //
+ // Rule 312: normal_function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
+ //
+ case 312: {
+ action.consumeFunctionDefinition(true);
+ break;
+ }
+
+ //
+ // Rule 313: function_body ::= { }
+ //
+ case 313: {
+ action.consumeStatementCompoundStatement(false);
+ break;
+ }
+
+ //
+ // Rule 314: function_body ::= { <openscope-ast> block_item_list }
+ //
+ case 314: {
+ action.consumeStatementCompoundStatement(true);
+ break;
+ }
+
+ //
+ // Rule 316: no_cast_start ::= ERROR_TOKEN
+ //
+ case 316: {
+ action.consumeEmpty();
+ break;
+ }
+
+ //
+ // Rule 317: literal ::= MYTHREAD
+ //
+ case 317: {
+ action.consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread);
+ break;
+ }
+
+ //
+ // Rule 318: literal ::= THREADS
+ //
+ case 318: {
+ action.consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads);
+ break;
+ }
+
+ //
+ // Rule 319: literal ::= UPC_MAX_BLOCKSIZE
+ //
+ case 319: {
+ action.consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size);
+ break;
+ }
+
+ //
+ // Rule 320: unary_expression ::= upc_localsizeof unary_expression
+ //
+ case 320: {
+ action.consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_localsizeof);
+ break;
+ }
+
+ //
+ // Rule 321: unary_expression ::= upc_localsizeof ( type_id )
+ //
+ case 321: {
+ action.consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_localsizeof);
+ break;
+ }
+
+ //
+ // Rule 322: unary_expression ::= upc_blocksizeof unary_expression
+ //
+ case 322: {
+ action.consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_blocksizeof);
+ break;
+ }
+
+ //
+ // Rule 323: unary_expression ::= upc_blocksizeof ( type_id )
+ //
+ case 323: {
+ action.consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_blocksizeof);
+ break;
+ }
+
+ //
+ // Rule 324: unary_expression ::= upc_elemsizeof unary_expression
+ //
+ case 324: {
+ action.consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_elemsizeof);
+ break;
+ }
+
+ //
+ // Rule 325: unary_expression ::= upc_elemsizeof ( type_id )
+ //
+ case 325: {
+ action.consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_elemsizeof);
+ break;
+ }
+
+ //
+ // Rule 329: shared_type_qualifier ::= shared
+ //
+ case 329: {
+ action.consumeToken();
+ break;
+ }
+
+ //
+ // Rule 330: reference_type_qualifier ::= relaxed
+ //
+ case 330: {
+ action.consumeToken();
+ break;
+ }
+
+ //
+ // Rule 331: reference_type_qualifier ::= strict
+ //
+ case 331: {
+ action.consumeToken();
+ break;
+ }
+
+ //
+ // Rule 332: layout_qualifier ::= [ constant_expression ]
+ //
+ case 332: {
+ action.consumeLayoutQualifier(true, false);
+ break;
+ }
+
+ //
+ // Rule 333: layout_qualifier ::= [ * ]
+ //
+ case 333: {
+ action.consumeLayoutQualifier(false, true);
+ break;
+ }
+
+ //
+ // Rule 334: layout_qualifier ::= [ ]
+ //
+ case 334: {
+ action.consumeLayoutQualifier(false, false);
+ break;
+ }
+
+ //
+ // Rule 336: synchronization_statement ::= upc_notify expression ;
+ //
+ case 336: {
+ action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true);
+ break;
+ }
+
+ //
+ // Rule 337: synchronization_statement ::= upc_notify ;
+ //
+ case 337: {
+ action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false);
+ break;
+ }
+
+ //
+ // Rule 338: synchronization_statement ::= upc_wait expression ;
+ //
+ case 338: {
+ action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true);
+ break;
+ }
+
+ //
+ // Rule 339: synchronization_statement ::= upc_wait ;
+ //
+ case 339: {
+ action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false);
+ break;
+ }
+
+ //
+ // Rule 340: synchronization_statement ::= upc_barrier expression ;
+ //
+ case 340: {
+ action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true);
+ break;
+ }
+
+ //
+ // Rule 341: synchronization_statement ::= upc_barrier ;
+ //
+ case 341: {
+ action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false);
+ break;
+ }
+
+ //
+ // Rule 342: synchronization_statement ::= upc_fence ;
+ //
+ case 342: {
+ action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false);
+ break;
+ }
+
+ //
+ // Rule 343: iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement
+ //
+ case 343: {
+ action.consumeStatementUPCForallLoop(true, true, true, true);
+ break;
+ }
+
+ //
+ // Rule 344: iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement
+ //
+ case 344: {
+ action.consumeStatementUPCForallLoop(true, true, true, false);
+ break;
+ }
+
+ //
+ // Rule 345: iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement
+ //
+ case 345: {
+ action.consumeStatementUPCForallLoop(true, true, false, true);
+ break;
+ }
+
+ //
+ // Rule 346: iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement
+ //
+ case 346: {
+ action.consumeStatementUPCForallLoop(true, true, false, false);
+ break;
+ }
+
+ //
+ // Rule 347: iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement
+ //
+ case 347: {
+ action.consumeStatementUPCForallLoop(true, false, true, true);
+ break;
+ }
+
+ //
+ // Rule 348: iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement
+ //
+ case 348: {
+ action.consumeStatementUPCForallLoop(true, false, true, false);
+ break;
+ }
+
+ //
+ // Rule 349: iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement
+ //
+ case 349: {
+ action.consumeStatementUPCForallLoop(true, false, false, true);
+ break;
+ }
+
+ //
+ // Rule 350: iteration_statement ::= upc_forall ( expression ; ; ; ) statement
+ //
+ case 350: {
+ action.consumeStatementUPCForallLoop(true, false, false, false);
+ break;
+ }
+
+ //
+ // Rule 351: iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement
+ //
+ case 351: {
+ action.consumeStatementUPCForallLoop(false, true, true, true);
+ break;
+ }
+
+ //
+ // Rule 352: iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement
+ //
+ case 352: {
+ action.consumeStatementUPCForallLoop(false, true, true, false);
+ break;
+ }
+
+ //
+ // Rule 353: iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement
+ //
+ case 353: {
+ action.consumeStatementUPCForallLoop(false, true, false, true);
+ break;
+ }
+
+ //
+ // Rule 354: iteration_statement ::= upc_forall ( ; expression ; ; ) statement
+ //
+ case 354: {
+ action.consumeStatementUPCForallLoop(false, true, false, false);
+ break;
+ }
+
+ //
+ // Rule 355: iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement
+ //
+ case 355: {
+ action.consumeStatementUPCForallLoop(false, false, true, true);
+ break;
+ }
+
+ //
+ // Rule 356: iteration_statement ::= upc_forall ( ; ; expression ; ) statement
+ //
+ case 356: {
+ action.consumeStatementUPCForallLoop(false, false, true, false);
+ break;
+ }
+
+ //
+ // Rule 357: iteration_statement ::= upc_forall ( ; ; ; affinity ) statement
+ //
+ case 357: {
+ action.consumeStatementUPCForallLoop(false, false, false, true);
+ break;
+ }
+
+ //
+ // Rule 358: iteration_statement ::= upc_forall ( ; ; ; ) statement
+ //
+ case 358: {
+ action.consumeStatementUPCForallLoop(false, false, false, false);
+ break;
+ }
+
+ //
+ // Rule 359: iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement
+ //
+ case 359: {
+ action.consumeStatementUPCForallLoop(true, true, true, true);
+ break;
+ }
+
+ //
+ // Rule 360: iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement
+ //
+ case 360: {
+ action.consumeStatementUPCForallLoop(true, true, true, false);
+ break;
+ }
+
+ //
+ // Rule 361: iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement
+ //
+ case 361: {
+ action.consumeStatementUPCForallLoop(true, true, false, true);
+ break;
+ }
+
+ //
+ // Rule 362: iteration_statement ::= upc_forall ( declaration expression ; ; ) statement
+ //
+ case 362: {
+ action.consumeStatementUPCForallLoop(true, true, false, false);
+ break;
+ }
+
+ //
+ // Rule 363: iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement
+ //
+ case 363: {
+ action.consumeStatementUPCForallLoop(true, false, true, true);
+ break;
+ }
+
+ //
+ // Rule 364: iteration_statement ::= upc_forall ( declaration ; expression ; ) statement
+ //
+ case 364: {
+ action.consumeStatementUPCForallLoop(true, false, true, false);
+ break;
+ }
+
+ //
+ // Rule 365: iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement
+ //
+ case 365: {
+ action.consumeStatementUPCForallLoop(true, false, false, true);
+ break;
+ }
+
+ //
+ // Rule 366: iteration_statement ::= upc_forall ( declaration ; ; ) statement
+ //
+ case 366: {
+ action.consumeStatementUPCForallLoop(true, false, false, false);
+ break;
+ }
+
+ //
+ // Rule 368: affinity ::= continue
+ //
+ case 368: {
+ action.consumeToken();
+ break;
+ }
+
+ default:
+ break;
+ }
+ return;
+ }
+}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParserprs.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParserprs.java
index ae385df6d14..ec2e2b60f18 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
@@ -18,1270 +18,735 @@ package org.eclipse.cdt.internal.core.dom.parser.upc;
public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UPCNoCastExpressionParsersym {
- public interface IsKeyword {
- public final static byte isKeyword[] = {0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0
- };
- };
- public final static byte isKeyword[] = IsKeyword.isKeyword;
- public final boolean isKeyword(int index) { return isKeyword[index] != 0; }
-
- public interface BaseCheck {
- public final static short baseCheck[] = {0,
- 0,0,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,3,1,
- 1,4,4,3,3,2,2,4,1,0,
- 1,1,2,2,2,2,2,2,2,2,
- 2,4,1,1,3,3,3,1,3,3,
- 1,3,3,1,3,3,3,3,1,3,
- 3,1,3,1,3,1,3,1,3,1,
- 3,1,5,1,3,3,3,3,3,3,
- 3,3,3,3,3,1,1,2,1,0,
- 1,3,1,1,1,1,1,1,1,1,
- 3,4,3,2,4,1,2,1,1,1,
- 2,5,7,5,1,0,7,2,5,9,
- 8,3,2,2,2,3,2,4,2,2,
- 2,2,2,1,1,1,1,2,1,2,
- 2,2,1,2,2,1,2,2,1,2,
- 2,1,2,2,1,3,1,3,1,1,
- 1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,1,6,
- 8,0,0,1,1,3,3,3,0,1,
- 0,1,2,4,2,1,1,1,3,1,
- 1,2,3,7,8,0,1,0,1,3,
- 1,3,1,1,1,1,1,1,3,1,
- 1,1,1,1,3,1,2,2,1,5,
- 3,1,3,5,1,3,1,3,2,4,
- 3,5,4,6,6,3,5,1,3,4,
- 5,6,0,1,2,1,3,1,1,3,
- 2,1,1,1,1,2,1,2,3,1,
- 1,1,3,1,2,2,2,3,4,5,
- 1,1,7,3,0,0,1,1,3,3,
- 4,1,1,2,3,2,3,2,1,0,
- 1,2,1,1,1,1,1,2,1,3,
- 6,4,2,4,1,1,1,1,1,2,
- 4,2,4,2,4,1,1,2,1,1,
- 1,3,3,2,1,3,2,3,2,3,
- 2,2,11,10,10,9,10,9,9,8,
- 10,9,9,8,9,8,8,7,10,9,
- 9,8,9,8,8,7,1,1,-38,0,
- 0,0,0,0,0,0,0,0,0,-127,
- 0,0,0,0,0,0,0,0,0,-2,
- 0,0,0,0,0,-129,0,-77,-81,-138,
- 0,0,0,0,0,-60,0,0,0,0,
- 0,0,0,0,0,0,-179,0,0,0,
- 0,0,0,-172,0,0,0,0,0,0,
- -86,0,0,0,0,0,0,0,-39,0,
- -40,0,0,0,0,0,0,0,0,-154,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- -61,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-190,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-145,
- 0,0,-4,0,-88,-142,0,-18,-117,-180,
- 0,0,0,0,0,-135,0,-196,-35,0,
- -203,0,0,0,0,0,-36,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-194,0,-209,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-213,0,
- 0,0,0,0,0,0,0,0,0,0,
- -205,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,-57,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-82,0,-79,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,-89,-19,-84,0,0,0,-3,0,
- 0,0,0,0,0,0,0,0,0,-20,
- 0,0,0,0,0,0,0,0,0,-121,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- -128,0,0,0,0,0,0,0,0,0,
- 0,-96,0,0,0,0,0,0,0,0,
- -21,0,0,-43,0,0,0,0,0,0,
- 0,0,0,0,-130,0,-141,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-30,
- 0,0,0,0,0,0,0,0,0,0,
- -73,0,0,0,0,0,0,0,0,0,
- -62,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,-63,0,0,0,0,0,0,0,0,
- 0,0,-74,0,0,0,0,0,0,0,
- 0,0,-64,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-65,0,0,0,0,0,0,
- 0,0,0,0,-75,0,0,0,0,0,
- 0,0,0,0,-66,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-67,0,0,0,0,
- 0,0,0,0,0,0,-76,0,0,0,
- 0,0,0,0,0,0,-68,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-69,0,0,
- 0,0,0,0,0,0,0,0,-95,0,
- 0,0,0,0,0,0,0,0,-70,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-71,
- 0,0,0,0,0,0,0,0,0,0,
- -125,0,0,0,0,0,0,0,0,0,
- -72,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,-134,0,0,0,0,0,0,0,0,
- 0,0,-143,0,0,0,0,0,0,0,
- 0,0,-157,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-158,0,0,0,0,0,0,
- 0,0,0,0,-166,0,0,0,0,0,
- 0,0,0,0,-193,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-202,0,0,0,0,0,
- 0,0,0,0,0,-22,0,0,0,0,
- 0,0,0,0,-5,0,0,0,0,0,
- 0,0,-9,0,0,0,0,0,0,0,
- -208,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- -214,0,0,0,0,0,0,0,0,0,
- 0,-23,0,0,0,0,0,0,0,0,
- -6,0,0,0,0,0,0,0,-131,0,
- -132,0,-78,-93,0,-24,-222,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- -165,0,-150,-144,-133,0,0,0,0,0,
- -122,0,-25,-184,0,-10,0,0,0,0,
- 0,0,0,0,0,-26,0,0,-177,0,
- 0,0,0,-113,-83,-27,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,-161,-85,-155,0,0,-28,0,0,0,
- 0,0,0,-44,0,0,0,0,0,0,
- 0,0,0,0,-29,0,0,0,0,0,
- 0,0,0,-94,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-192,0,0,
- 0,0,0,-210,0,-7,0,0,0,0,
- 0,0,0,-58,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-54,0,
- 0,0,0,0,0,0,0,0,0,-199,
- 0,0,-11,0,0,0,0,0,0,0,
- 0,-55,0,0,0,0,0,0,0,0,
- 0,0,-91,0,-56,0,0,0,0,0,
- 0,0,0,0,0,-221,0,-136,0,0,
- 0,0,0,0,0,-97,0,-98,0,-114,
- -207,0,0,-48,0,0,0,0,0,0,
- 0,0,0,0,-52,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-99,-100,-101,0,0,-162,
- -102,0,0,-49,0,0,0,0,0,0,
- 0,0,0,0,-50,0,0,0,0,0,
- 0,0,0,0,0,-223,0,0,0,0,
- -51,0,0,0,0,0,0,0,0,0,
- 0,-53,0,0,0,0,0,0,0,0,
- 0,-216,-80,-87,0,-8,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,-103,-151,0,-153,-104,0,0,0,0,
- 0,-182,-90,0,-163,0,0,0,0,0,
- 0,0,0,0,0,0,0,-92,-156,-126,
- 0,0,0,0,0,0,0,0,0,0,
- 0,-105,0,0,-183,0,0,0,0,-171,
- 0,0,0,0,-106,0,0,0,0,-140,
- 0,0,0,0,-124,0,0,0,0,0,
- 0,0,-149,0,0,0,0,0,0,0,
- -169,0,-1,0,0,-107,0,0,-108,0,
- -109,0,-148,0,0,-160,0,0,0,0,
- 0,0,0,-12,0,0,0,0,0,0,
- 0,0,0,0,0,-110,0,0,-13,0,
- 0,0,0,0,0,0,-14,0,0,0,
- 0,0,0,0,-37,-45,0,0,0,0,
- 0,0,0,-186,-164,0,-46,0,0,0,
- 0,0,0,0,-47,0,0,0,0,0,
- 0,0,0,-178,-15,0,0,0,0,0,
- 0,0,-159,0,0,-16,0,0,0,0,
- 0,0,0,0,0,0,-174,-111,-173,-17,
- 0,-112,0,-181,0,0,-118,-31,0,0,
- 0,-189,-32,-200,0,0,-120,-137,0,0,
- 0,0,0,0,-170,0,0,0,0,0,
- 0,0,-119,0,0,-33,0,0,0,0,
- -146,-152,0,0,0,-123,0,-34,-204,0,
- -167,0,-168,-185,0,0,-201,0,0,0,
- 0,0,0,0,0,0,0,-139,0,0,
- 0,0,0,-187,0,0,-115,0,0,0,
- 0,0,0,0,0,-197,-198,0,-188,0,
- 0,0,0,0,-195,0,0,0,-116,0,
- -147,-212,0,-175,0,-41,-176,-206,0,0,
- 0,0,0,0,0,-217,0,0,0,0,
- 0,-191,0,0,0,0,0,0,0,0,
- 0,-42,0,0,0,0,0,-218,0,0,
- 0,-59,0,0,0,0,0,0,-215,-211,
- -220,-219,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0
- };
- };
- public final static short baseCheck[] = BaseCheck.baseCheck;
- @Override
- public final int baseCheck(int index) { return baseCheck[index]; }
- public final static short rhs[] = baseCheck;
- @Override
- public final int rhs(int index) { return rhs[index]; };
-
- public interface BaseAction {
- public final static char baseAction[] = {
- 89,11,105,22,22,21,21,46,46,72,
- 72,1,1,2,2,2,2,3,3,3,
- 4,5,5,5,5,5,5,5,5,62,
- 62,73,6,6,6,6,6,6,6,6,
- 6,6,6,7,8,8,8,8,9,9,
- 9,10,10,10,12,12,12,12,12,13,
- 13,13,14,14,15,15,16,16,17,17,
- 18,18,19,19,20,20,20,20,20,20,
- 20,20,20,20,20,20,106,31,30,90,
- 90,74,74,47,107,107,107,107,107,107,
- 107,108,108,108,109,109,114,114,115,115,
- 110,110,111,111,111,117,117,112,112,112,
- 112,112,113,113,113,113,113,116,116,27,
- 27,27,27,27,33,33,33,80,80,75,
- 75,75,75,76,76,76,77,77,77,78,
- 78,78,79,79,79,118,118,119,119,120,
- 34,36,36,36,36,36,56,57,57,57,
- 57,57,57,57,57,57,57,57,57,66,
- 63,63,91,92,68,68,64,64,64,69,
- 81,81,82,82,70,70,70,37,93,93,
- 83,84,84,84,65,65,94,85,85,86,
- 86,71,71,23,24,24,24,35,53,53,
- 39,39,39,39,42,42,44,40,40,41,
- 45,45,121,121,43,122,122,95,95,28,
- 28,28,28,28,28,28,28,28,87,54,
- 54,54,54,29,59,59,58,58,58,60,
- 60,55,55,96,96,52,52,61,61,61,
- 48,48,48,49,50,50,50,51,51,51,
- 51,67,67,32,32,38,98,97,97,97,
- 97,88,99,100,100,101,101,102,102,123,
- 123,124,124,125,125,125,125,127,127,126,
- 126,126,128,129,129,89,89,2,2,2,
- 6,6,6,6,6,6,23,23,25,25,
- 26,26,103,103,103,107,130,130,130,130,
- 130,130,130,112,112,112,112,112,112,112,
- 112,112,112,112,112,112,112,112,112,112,
- 112,112,112,112,112,112,112,131,131,1,
- 1304,17,21,18,518,1295,44,670,654,1106,
- 675,721,1186,1162,1236,1223,1277,1246,74,91,
- 450,1811,135,213,326,327,80,1213,582,588,
- 88,278,137,134,136,160,606,20,17,21,
- 18,518,43,44,670,654,1106,675,721,1186,
- 1162,1236,1223,1708,175,139,166,275,1796,1549,
- 28,119,143,146,149,152,1717,431,231,191,
- 31,191,31,513,1245,1273,1504,1533,1548,1184,
- 542,20,17,21,18,518,1295,44,670,654,
- 1106,424,721,1186,1162,1236,1223,1277,1246,74,
- 281,606,20,17,21,18,518,43,44,670,
- 654,1106,282,721,1186,1162,1236,1712,1717,351,
- 20,17,21,18,518,1295,44,670,654,1106,
- 424,721,1186,1162,1236,1223,1277,1246,74,281,
- 225,179,25,277,24,583,176,287,59,53,
- 815,282,396,1832,555,293,63,1717,915,443,
- 526,191,1784,135,213,326,327,443,288,255,
- 213,326,327,137,134,136,160,1570,274,1728,
- 398,255,213,326,327,914,289,926,19,219,
- 1450,221,1535,223,224,229,139,166,269,628,
- 399,272,284,143,146,149,152,290,431,326,
- 255,213,326,327,735,1245,1273,1504,1533,1548,
- 1184,574,20,17,21,18,518,1295,44,670,
- 654,1106,210,721,1186,1162,1236,1223,1277,1246,
- 74,281,606,20,17,21,18,518,43,44,
- 670,654,1106,282,721,1186,1162,1609,776,1717,
- 281,20,17,21,18,518,1295,44,670,654,
- 1106,1756,721,1186,1162,1236,1223,1277,1246,74,
- 1221,194,239,615,78,661,276,294,291,606,
- 20,17,21,18,518,1295,44,670,654,1106,
- 193,721,1186,1162,1236,1223,1277,1246,74,91,
- 766,20,17,21,18,518,1295,44,670,654,
- 1106,1778,721,1186,1162,1236,1223,1277,1246,74,
- 1580,470,20,17,21,18,518,43,44,670,
- 654,1106,743,721,1186,1162,1236,1223,1277,1246,
- 93,64,1179,334,606,20,17,21,18,518,
- 43,44,1406,513,22,191,187,316,20,17,
- 21,18,518,1295,44,670,654,1106,1613,721,
- 1186,1162,1236,1223,1277,1246,74,1693,328,240,
- 606,20,17,21,18,518,1295,44,670,654,
- 1106,443,721,1186,1162,1236,1223,1277,1246,74,
- 92,606,20,17,21,18,518,1295,44,670,
- 654,1106,1244,721,1186,1162,1236,1223,1277,1246,
- 74,85,606,20,17,21,18,518,1295,44,
- 670,654,1106,443,721,1186,1162,1236,1223,1277,
- 1246,74,84,606,20,17,21,18,518,1295,
- 44,670,654,1106,1410,721,1186,1162,1236,1223,
- 1277,1246,74,83,606,20,17,21,18,518,
- 1295,44,670,654,1106,443,721,1186,1162,1236,
- 1223,1277,1246,74,82,606,20,17,21,18,
- 518,1295,44,670,654,1106,1787,721,1186,1162,
- 1236,1223,1277,1246,74,81,606,20,17,21,
- 18,518,1295,44,670,654,1106,443,721,1186,
- 1162,1236,1223,1277,1246,74,80,606,20,17,
- 21,18,518,1295,44,670,654,1106,1809,721,
- 1186,1162,1236,1223,1277,1246,74,79,606,20,
- 17,21,18,518,1295,44,670,654,1106,443,
- 721,1186,1162,1236,1223,1277,1246,74,78,606,
- 20,17,21,18,518,1295,44,670,654,1106,
- 23,721,1186,1162,1236,1223,1277,1246,74,77,
- 606,20,17,21,18,518,1295,44,670,654,
- 1106,443,721,1186,1162,1236,1223,1277,1246,74,
- 76,606,20,17,21,18,518,1295,44,670,
- 654,1106,273,721,1186,1162,1236,1223,1277,1246,
- 74,75,606,20,17,21,18,518,1295,44,
- 670,654,1106,443,721,1186,1162,1236,1223,1277,
- 1246,74,73,606,20,17,21,18,518,1295,
- 44,670,654,1106,279,721,1186,1162,1236,1223,
- 1277,1246,74,1814,606,20,17,21,18,518,
- 1295,44,670,654,1106,443,721,1186,1162,1236,
- 1223,1277,1246,74,1817,606,20,17,21,18,
- 518,43,44,670,654,1106,280,721,1186,1162,
- 1236,1223,1277,1246,93,606,20,17,21,18,
- 518,43,44,670,654,1106,139,721,1186,1162,
- 1236,1223,1277,1246,93,638,20,17,21,18,
- 518,324,1818,606,20,17,21,18,518,43,
- 40,606,20,17,21,18,518,43,44,670,
- 654,1106,212,721,1186,1162,1236,1223,1277,1246,
- 93,606,20,17,21,18,518,43,44,670,
- 654,1106,349,721,1186,1162,1236,1223,1277,1246,
- 93,670,20,17,21,18,518,322,1862,191,
- 186,537,1752,88,225,179,16,606,20,17,
- 21,18,518,43,44,670,654,1106,202,721,
- 1186,1162,1236,1223,1277,1246,93,135,213,326,
- 327,712,1727,152,398,191,188,138,134,136,
- 160,743,510,6,113,1665,606,20,17,21,
- 18,518,43,39,203,510,24,1743,1214,443,
- 140,166,274,241,678,383,171,144,147,150,
- 153,197,431,218,1450,221,1535,223,224,229,
- 225,1565,267,628,399,272,260,263,135,213,
- 326,327,941,814,88,264,28,230,142,134,
- 136,160,1717,1684,606,20,17,21,18,518,
- 43,44,1408,277,193,325,135,213,326,327,
- 274,141,166,1709,798,1761,145,134,136,160,
- 261,218,1450,221,1535,223,224,229,191,296,
- 267,628,399,272,443,1239,702,20,17,21,
- 18,518,320,981,606,20,17,21,18,518,
- 43,44,670,654,1106,230,721,1186,1611,606,
- 20,17,21,18,518,43,44,670,654,1106,
- 72,721,1562,606,20,17,21,18,518,43,
- 38,1826,606,20,17,21,18,518,43,44,
- 670,654,1106,647,1575,606,20,17,21,18,
- 518,43,44,670,654,1106,72,1606,53,218,
- 1450,221,1535,223,224,229,227,1826,324,450,
- 742,191,298,1859,606,20,17,21,18,518,
- 43,44,670,654,1445,606,20,17,21,18,
- 518,43,44,670,1522,218,1450,221,1535,223,
- 224,229,28,198,200,151,458,804,1717,1859,
- 813,818,1215,579,606,20,17,21,18,518,
- 43,44,670,654,1446,606,20,17,21,18,
- 518,43,44,670,654,1447,554,1181,228,199,
- 200,606,20,17,21,18,518,43,44,670,
- 654,1451,606,20,17,21,18,518,43,44,
- 670,1526,502,291,844,1728,734,20,17,21,
- 18,518,41,1826,1550,219,1450,221,1535,223,
- 224,229,614,53,277,53,646,135,213,326,
- 327,274,63,855,1763,839,1735,148,134,136,
- 160,218,1450,221,1535,223,224,229,885,232,
- 385,267,628,399,272,1239,135,213,326,327,
- 1707,510,710,227,981,902,151,134,136,160,
- 679,135,213,326,327,77,1360,1214,180,1727,
- 743,154,134,136,160,435,20,17,21,18,
- 518,43,36,435,20,17,21,18,518,43,
- 36,53,243,505,1743,259,187,246,1023,350,
- 1751,467,1764,743,659,333,435,20,17,21,
- 18,518,43,36,606,20,17,21,18,518,
- 43,37,1722,87,315,332,483,195,247,606,
- 20,17,21,18,518,43,36,606,20,17,
- 21,18,518,43,35,361,606,20,17,21,
- 18,518,43,47,805,88,1183,606,20,17,
- 21,18,518,43,46,606,20,17,21,18,
- 518,43,45,274,385,606,20,17,21,18,
- 518,34,390,743,1727,510,606,20,17,21,
- 18,518,33,267,628,399,272,124,513,896,
- 53,1214,809,1727,53,242,266,930,53,520,
- 1805,369,63,53,805,1797,1767,243,707,369,
- 254,213,326,327,369,682,1784,197,520,259,
- 87,537,1023,445,1751,197,53,1655,87,537,
- 197,541,932,87,537,1655,124,369,53,180,
- 1655,933,529,57,682,1784,528,63,1759,369,
- 771,274,1728,197,510,813,87,537,124,254,
- 213,326,327,1655,550,197,1848,871,87,537,
- 197,269,628,399,272,1655,715,169,855,845,
- 1565,254,213,326,327,124,209,510,510,901,
- 897,329,63,204,743,516,480,743,743,28,
- 1664,1799,510,1214,197,1717,88,659,254,213,
- 326,327,842,192,1565,209,244,516,1214,245,
- 295,28,53,737,1532,1224,89,1717,63,1724,
- 1799,259,53,659,1324,1727,1751,283,181,884,
- 479,39,743,659,557,1033,259,192,1921,1065,
- 1921,1751,87,712,1921,1921,1921,1921,1812,1224,
- 1476,234,87,1636,297,1921,1921,1921,1921,1921,
- 1921,1860,1921,1921,205,1921,1921,1921,1921,1921,
- 1921,1921,1921,1921,1921,1921,939,1921,0,329,
- 701,0,20,179,0,1,2147,0,1,2158,
- 0
- };
- };
- public final static char baseAction[] = BaseAction.baseAction;
- @Override
- public final int baseAction(int index) { return baseAction[index]; }
- public final static char lhs[] = baseAction;
- @Override
- public final int lhs(int index) { return lhs[index]; };
-
- public interface TermCheck {
- public final static byte termCheck[] = {0,
- 0,1,2,3,4,0,6,7,8,9,
- 10,11,12,13,14,0,16,17,18,19,
- 20,21,22,0,24,25,26,27,28,29,
- 30,31,32,33,34,35,36,37,0,1,
- 40,41,42,43,44,45,46,47,48,49,
- 50,51,0,53,54,55,0,1,0,3,
- 2,5,0,0,8,9,10,5,12,13,
- 14,0,1,2,16,17,0,0,73,0,
- 1,23,3,6,7,70,71,0,32,33,
- 34,35,36,37,15,72,40,41,42,43,
- 44,45,46,47,48,49,50,51,52,53,
- 54,55,0,1,52,3,60,5,0,61,
- 8,9,10,0,12,13,14,64,65,66,
- 67,8,9,10,76,12,13,14,0,68,
- 64,65,66,67,32,33,34,35,36,37,
- 0,0,40,41,42,43,44,45,46,47,
- 48,49,50,51,52,53,54,55,0,1,
- 0,3,60,5,0,0,8,9,10,0,
- 12,13,14,8,9,10,0,12,13,14,
- 0,1,0,3,56,57,4,23,0,0,
- 32,33,34,35,36,37,56,57,40,41,
- 42,43,44,45,46,47,48,49,50,51,
- 52,53,54,55,0,1,0,3,60,0,
- 4,0,8,9,10,61,12,13,14,8,
- 9,10,0,12,13,14,4,77,78,0,
- 64,65,66,67,62,63,32,33,34,35,
- 36,37,0,0,40,41,42,43,44,45,
- 46,47,48,49,50,51,0,53,54,55,
- 0,1,2,3,4,5,6,7,62,63,
- 0,11,2,0,0,5,16,17,18,19,
- 20,21,22,74,24,25,26,27,28,29,
- 30,31,32,23,38,0,1,2,3,4,
- 5,6,7,0,0,0,11,4,0,39,
- 5,16,17,18,19,20,21,22,58,24,
- 25,26,27,28,29,30,31,32,0,0,
- 0,1,2,3,4,5,6,7,0,11,
- 0,11,2,38,4,15,16,17,18,19,
- 20,21,22,58,24,25,26,27,28,29,
- 30,31,0,23,0,62,63,59,4,0,
- 8,9,10,69,12,13,14,0,1,2,
- 75,4,52,79,80,81,82,83,84,85,
- 86,87,88,0,32,33,34,35,36,37,
- 23,72,40,41,42,43,44,45,46,47,
- 48,49,50,51,0,1,2,3,4,5,
- 6,7,0,59,0,11,2,5,4,0,
- 16,17,18,19,20,21,22,0,24,25,
- 26,27,28,29,30,31,0,23,0,0,
- 1,2,3,4,5,6,7,11,0,0,
- 11,39,0,5,5,16,17,18,19,20,
- 21,22,58,24,25,26,27,28,29,30,
- 31,0,1,2,0,1,2,3,4,0,
- 6,7,0,56,57,11,38,39,39,0,
- 16,17,18,19,20,21,22,58,24,25,
- 26,27,28,29,30,31,0,1,89,3,
- 0,0,1,2,3,4,0,6,7,0,
- 68,15,11,0,1,2,15,16,17,18,
- 19,20,21,22,60,24,25,26,27,28,
- 29,30,31,0,1,2,3,4,38,6,
- 7,0,0,1,11,3,74,0,15,16,
- 17,18,19,20,21,22,15,24,25,26,
- 27,28,29,30,31,0,1,2,3,4,
- 23,6,7,0,0,1,11,3,69,6,
- 7,16,17,18,19,20,21,22,0,24,
- 25,26,27,28,29,30,31,0,1,2,
- 3,4,0,6,7,0,0,1,11,3,
- 0,6,7,16,17,18,19,20,21,22,
- 0,24,25,26,27,28,29,30,31,0,
- 1,2,3,4,0,6,7,0,0,5,
- 11,0,1,23,3,16,17,18,19,20,
- 21,22,15,24,25,26,27,28,29,30,
- 31,0,1,2,3,4,0,6,7,0,
- 4,0,11,39,0,1,38,16,17,18,
- 19,20,21,22,0,24,25,26,27,28,
- 29,30,31,0,1,2,3,4,0,6,
- 7,0,0,0,11,0,1,5,3,16,
- 17,18,19,20,21,22,15,24,25,26,
- 27,28,29,30,31,0,1,2,3,4,
- 59,6,7,59,0,0,11,2,0,70,
- 71,16,17,18,19,20,21,22,0,24,
- 25,26,27,28,29,30,31,0,23,2,
- 58,4,5,0,0,8,9,10,0,12,
- 13,14,0,0,0,1,2,0,4,0,
- 23,8,9,10,5,12,13,14,0,32,
- 33,34,35,36,37,23,39,23,0,0,
- 2,0,38,0,0,32,33,34,35,36,
- 37,8,9,10,0,12,13,14,0,56,
- 57,23,8,9,10,0,12,13,14,0,
- 0,52,0,56,57,32,33,34,35,36,
- 37,73,38,0,0,15,32,33,34,35,
- 36,37,8,9,10,0,12,13,14,0,
- 0,0,0,8,9,10,5,12,13,14,
- 69,0,0,0,0,15,32,33,34,35,
- 36,37,8,9,10,0,12,13,14,0,
- 0,0,0,8,9,10,23,12,13,14,
- 0,1,2,0,15,5,15,15,0,0,
- 0,68,0,0,0,0,0,0,15,0,
- 0,0,0,23,15,15,0,0,0,0,
- 0,0,0,0,61,0,75,0,0,39,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0
- };
- };
- public final static byte termCheck[] = TermCheck.termCheck;
- @Override
- public final int termCheck(int index) { return termCheck[index]; }
-
- public interface TermAction {
- public final static char termAction[] = {0,
- 1921,1932,1710,1933,1639,68,1624,1363,2135,2136,
- 2137,1647,2251,655,2252,62,1696,1685,1506,1934,
- 1935,1936,1937,66,1226,1123,2238,2239,2240,1326,
- 1171,1115,2084,2085,2083,2138,2086,2082,1921,2159,
- 2089,2094,2093,2091,2092,2090,2095,2096,2088,2097,
- 2098,2099,1,1383,653,515,1921,1,32,1,
- 1816,191,1921,59,1,1,1,1929,1,1,
- 1,1,2147,1502,1947,1948,61,51,612,1921,
- 1932,1842,1933,1284,724,1385,1372,253,1,1,
- 1,1,1,1,1523,1334,1,1,1,1,
- 1,1,1,1,1,1,1,1,191,1,
- 1,1,1921,1,1928,1,2117,190,182,441,
- 1,1,1,1921,1,1,1,1481,1465,1454,
- 1414,2135,2136,2137,439,2251,655,2252,54,1151,
- 1481,1465,1454,1414,1,1,1,1,1,1,
- 58,183,1,1,1,1,1,1,1,1,
- 1,1,1,1,190,1,1,1,1921,1,
- 72,1,2117,191,1921,248,1,1,1,286,
- 1,1,1,2135,2136,2137,60,2251,655,2252,
- 1921,1932,48,1933,1425,1492,1675,1075,1921,1921,
- 1,1,1,1,1,1,1425,1492,1,1,
- 1,1,1,1,1,1,1,1,1,1,
- 191,1,1,1,1921,1932,50,1933,2117,70,
- 1675,249,2135,2136,2137,1318,2251,655,2252,1,
- 1,1,1921,1,1,1,400,406,1852,1921,
- 1481,1465,1454,1414,1667,1656,2084,2085,2083,2138,
- 2086,2082,1921,1921,2089,2094,2093,2091,2092,2090,
- 2095,2096,2088,2097,2098,2099,88,1383,653,515,
- 1,1932,1710,1933,1585,1925,1624,1363,1667,1656,
- 1,1647,1503,1921,1921,1927,1696,1685,1506,1934,
- 1935,1936,1937,471,1226,1123,2238,2239,2240,1326,
- 1171,1115,680,630,760,1921,1932,1710,1933,1616,
- 1925,1624,1363,49,43,1921,1647,1675,1,1926,
- 1931,1696,1685,1506,1934,1935,1936,1937,1924,1226,
- 1123,2238,2239,2240,1326,1171,1115,1054,64,67,
- 1,1932,1710,1933,1639,29,1624,1363,1921,1349,
- 265,1647,1503,1396,1,3109,1696,1685,1506,1934,
- 1935,1936,1937,1924,1226,1123,2238,2239,2240,1326,
- 1171,1115,129,630,1,1667,1656,2179,253,1921,
- 2135,2136,2137,991,2251,655,2252,262,2147,1272,
- 1930,1,29,970,949,928,907,886,844,865,
- 823,802,781,1921,2084,2085,2083,2138,2086,2082,
- 630,1334,2089,2094,2093,2091,2092,2090,2095,2096,
- 2088,2097,2098,2099,1921,1932,1710,1933,1639,1925,
- 1624,1363,1921,2179,268,1647,1503,1927,253,1921,
- 1696,1685,1506,1934,1935,1936,1937,57,1226,1123,
- 2238,2239,2240,1326,1171,1115,65,630,1921,1921,
- 1932,1710,1933,1593,1925,1624,1363,1349,1921,1,
- 1647,1926,1921,1927,90,1696,1685,1506,1934,1935,
- 1936,1937,1924,1226,1123,2238,2239,2240,1326,1171,
- 1115,1,2147,1502,1921,1,1,1,1,1921,
- 1,1,71,1425,1492,1,1861,1926,90,1921,
- 1,1,1,1,1,1,1,1924,1,1,
- 1,1,1,1,1,1,1921,1932,1908,1933,
- 256,1,1932,1710,1933,1639,1921,1624,1363,211,
- 1012,1525,1647,253,2147,1502,3109,1696,1685,1506,
- 1934,1935,1936,1937,2237,1226,1123,2238,2239,2240,
- 1326,1171,1115,1921,1932,1710,1933,1639,1211,1624,
- 1363,1921,185,3233,1647,3233,471,271,3109,1696,
- 1685,1506,1934,1935,1936,1937,3109,1226,1123,2238,
- 2239,2240,1326,1171,1115,1921,1932,1710,1933,1639,
- 630,1624,1363,53,184,3239,1647,3239,1095,1284,
- 724,1696,1685,1506,1934,1935,1936,1937,1921,1226,
- 1123,2238,2239,2240,1326,1171,1115,1921,1932,1718,
- 1933,1639,1921,1624,1363,52,206,3240,1647,3240,
- 1921,1284,724,1696,1685,1506,1934,1935,1936,1937,
- 329,1226,1123,2238,2239,2240,1326,1171,1115,1921,
- 1932,1723,1933,1639,1,1624,1363,325,30,1927,
- 1647,208,1932,1909,1933,1696,1685,1506,1934,1935,
- 1936,1937,3109,1226,1123,2238,2239,2240,1326,1171,
- 1115,1921,1932,1746,1933,1639,1921,1624,1363,63,
- 1274,1,1647,1926,1,1918,489,1696,1685,1506,
- 1934,1935,1936,1937,1921,1226,1123,2238,2239,2240,
- 1326,1171,1115,1921,1932,1758,1933,1639,1921,1624,
- 1363,323,1921,1921,1647,207,531,1925,531,1696,
- 1685,1506,1934,1935,1936,1937,3109,1226,1123,2238,
- 2239,2240,1326,1171,1115,1,1932,1710,1933,1639,
- 2178,1624,1363,2179,1921,270,1647,380,1921,1385,
- 1372,1696,1685,1506,1934,1935,1936,1937,1921,1226,
- 1123,2238,2239,2240,1326,1171,1115,20,630,1912,
- 1924,1912,1912,56,30,179,179,179,69,179,
- 179,179,220,130,268,2147,1272,55,253,285,
- 1912,2135,2136,2137,519,2251,655,2252,1921,179,
- 179,179,179,179,179,630,1912,630,222,1921,
- 417,1921,1950,131,207,2084,2085,2083,2138,2086,
- 2082,2135,2136,2137,132,2251,655,2252,1921,1425,
- 1492,630,2135,2136,2137,1921,2251,655,2252,1921,
- 321,519,1921,1425,1492,2084,2085,2083,2138,2086,
- 2082,612,3035,201,133,3109,2084,2085,2083,2138,
- 2086,2082,2135,2136,2137,250,2251,655,2252,1921,
- 42,1,1921,1,1,1,1931,1,1,1,
- 591,1921,1921,292,251,3109,2084,2085,2083,2138,
- 2086,2082,2135,2136,2137,252,2251,655,2252,1921,
- 1921,1921,1921,2135,2136,2137,1131,2251,655,2252,
- 1,1915,1272,189,1398,1927,1601,1714,1921,189,
- 189,1187,1921,1921,1921,1921,1921,1921,185,1921,
- 1921,1921,1921,630,184,206,1921,1921,1921,1921,
- 1921,1921,1921,1921,1411,1921,1930,1921,1921,1926
- };
- };
- public final static char termAction[] = TermAction.termAction;
- @Override
- public final int termAction(int index) { return termAction[index]; }
-
- public interface Asb {
- public final static char asb[] = {0,
- 443,1,89,69,89,89,89,89,89,89,
- 89,89,89,89,89,89,119,31,51,48,
- 55,53,61,59,63,62,65,64,37,89,
- 119,119,119,119,318,318,263,119,354,354,
- 472,89,89,89,89,89,89,89,89,89,
- 89,89,89,89,89,89,89,89,89,89,
- 89,89,89,89,89,89,89,89,89,89,
- 89,89,318,318,318,318,29,267,80,321,
- 316,315,235,112,247,27,247,27,27,247,
- 27,247,139,269,318,73,48,48,53,53,
- 53,53,51,51,59,55,55,62,61,402,
- 64,63,195,195,195,195,387,29,263,267,
- 83,73,162,170,318,404,324,170,27,354,
- 354,27,354,89,387,5,267,255,162,73,
- 169,80,318,261,139,317,326,73,170,29,
- 357,29,390,5,255,255,89,89,73,170,
- 321,397,396,267,326,318,29,357,390,390,
- 392,77,255,162,73,73,318,404,324,261,
- 357,387,436,357,390,392,467,392,387,3,
- 470,354,89,76,162,255,326,357,438,392,
- 387,89,354,31,7,73,354,89,255,318,
- 317,387,231,89,230,108,267,387,73,355,
- 438,89,108
- };
- };
- public final static char asb[] = Asb.asb;
- @Override
- public final int asb(int index) { return asb[index]; }
-
- public interface Asr {
- public final static byte asr[] = {0,
- 89,0,5,52,23,61,16,17,11,4,
- 6,7,24,25,18,29,30,31,2,19,
- 20,21,22,26,27,28,1,3,15,0,
- 23,2,61,76,16,17,69,79,80,81,
- 82,83,85,84,86,87,88,4,62,63,
- 6,7,57,56,64,65,66,67,70,71,
- 11,72,73,74,52,75,77,78,68,39,
- 89,38,58,5,0,69,23,61,0,58,
- 5,32,8,9,10,12,13,14,19,20,
- 21,22,26,27,28,3,16,17,11,6,
- 7,24,25,18,29,30,31,4,2,1,
- 0,5,68,38,58,39,75,23,18,19,
- 20,21,22,2,16,17,11,4,6,7,
- 24,25,26,27,28,29,30,31,1,3,
- 53,54,55,48,40,45,43,44,42,41,
- 46,47,49,50,51,37,34,32,33,36,
- 35,8,9,10,13,12,14,0,32,58,
- 5,16,17,11,4,6,7,24,25,18,
- 29,30,31,2,1,3,19,20,21,22,
- 26,27,28,0,11,4,6,7,62,63,
- 56,57,64,65,66,67,70,71,72,73,
- 74,77,78,69,79,80,81,82,83,84,
- 85,86,87,88,58,39,52,89,15,68,
- 75,5,38,0,48,40,45,43,44,42,
- 41,46,47,49,50,51,68,75,37,34,
- 32,33,36,35,8,9,10,12,13,14,
- 38,1,5,39,2,23,4,0,9,32,
- 37,10,36,35,34,8,33,12,13,14,
- 61,76,16,17,11,6,7,62,63,56,
- 57,64,65,66,67,70,71,72,73,74,
- 77,78,69,79,80,81,82,83,84,85,
- 86,87,88,4,2,23,38,39,5,0,
- 4,2,23,39,5,33,40,8,41,53,
- 34,42,35,43,44,36,9,45,46,32,
- 54,37,55,47,48,10,49,50,51,12,
- 13,14,59,3,1,0,33,40,8,41,
- 53,34,42,35,43,44,36,9,45,46,
- 32,54,37,55,47,48,10,49,50,51,
- 1,3,12,13,14,60,5,52,0,1,
- 3,5,52,38,0,2,5,38,39,75,
- 23,68,0,4,33,40,8,41,53,34,
- 42,35,43,44,36,9,45,46,32,54,
- 37,55,47,48,10,49,50,51,1,3,
- 12,13,14,59,0,75,5,4,1,2,
- 68,0,18,19,20,21,22,1,3,2,
- 16,17,11,4,6,7,24,25,26,27,
- 28,29,30,31,60,0,5,38,52,69,
- 0,5,39,18,19,20,21,22,1,3,
- 2,16,17,11,4,6,7,24,25,26,
- 27,28,29,30,31,0
- };
- };
- public final static byte asr[] = Asr.asr;
- @Override
- public final int asr(int index) { return asr[index]; }
-
- public interface Nasb {
- public final static byte nasb[] = {0,
- 99,35,26,35,26,26,26,26,26,26,
- 26,26,26,26,26,26,102,35,35,35,
- 35,35,35,35,35,35,35,35,35,26,
- 102,102,102,102,10,10,85,1,21,21,
- 122,103,26,26,26,26,26,26,26,26,
- 26,26,26,26,26,26,26,26,103,26,
- 26,26,26,26,26,26,26,26,26,26,
- 26,26,10,10,10,10,12,57,48,84,
- 15,15,65,52,66,19,66,82,82,66,
- 81,66,60,35,10,50,35,35,35,35,
- 35,35,35,35,35,35,35,35,35,35,
- 35,35,12,12,12,12,79,35,106,35,
- 54,50,110,49,10,89,9,49,7,7,
- 7,7,7,26,44,79,35,42,110,50,
- 49,36,10,75,28,35,91,50,49,68,
- 79,35,79,24,42,79,26,26,50,49,
- 74,15,15,57,91,10,35,114,79,7,
- 97,17,79,110,50,50,10,89,9,38,
- 79,44,94,70,7,97,35,35,44,23,
- 35,7,26,46,110,36,118,114,77,97,
- 44,26,7,112,25,50,7,26,36,10,
- 10,44,95,26,35,77,57,44,50,35,
- 77,26,40
- };
- };
- public final static byte nasb[] = Nasb.nasb;
- @Override
- public final int nasb(int index) { return nasb[index]; }
-
- public interface Nasr {
- public final static char nasr[] = {0,
- 80,78,77,68,76,75,1,0,11,21,
- 0,38,32,0,28,0,100,0,91,0,
- 73,0,88,11,38,5,0,80,79,78,
- 77,68,76,75,0,23,0,50,49,42,
- 40,29,0,46,0,102,0,11,5,22,
- 0,103,0,5,11,0,29,54,0,68,
- 63,64,65,66,56,33,0,92,0,11,
- 37,70,0,21,50,49,42,40,11,0,
- 94,69,0,21,49,50,11,0,29,54,
- 11,27,0,11,72,0,62,0,11,89,
- 0,37,11,31,0,50,49,29,0,59,
- 0,98,0,82,11,37,0,95,11,27,
- 0,11,90,0
- };
- };
- public final static char nasr[] = Nasr.nasr;
- @Override
- public final int nasr(int index) { return nasr[index]; }
-
- public interface TerminalIndex {
- public final static char terminalIndex[] = {0,
- 85,2,86,9,87,10,11,48,64,76,
- 8,96,97,98,3,6,7,68,81,82,
- 83,84,1,12,13,93,94,95,100,101,
- 102,69,44,55,60,63,72,42,90,47,
- 52,56,61,62,66,67,74,75,78,79,
- 80,91,54,70,73,16,17,89,30,107,
- 4,14,15,18,19,20,21,29,31,22,
- 23,24,25,26,92,5,27,28,32,33,
- 34,35,36,37,38,39,40,41,108,45,
- 46,49,50,51,53,57,58,59,65,71,
- 77,88,99,103,104,105,106
- };
- };
- public final static char terminalIndex[] = TerminalIndex.terminalIndex;
- @Override
- public final int terminalIndex(int index) { return terminalIndex[index]; }
-
- public interface NonterminalIndex {
- public final static char nonterminalIndex[] = {0,
- 114,0,0,0,116,120,121,122,123,124,
- 0,125,126,127,128,129,130,131,0,132,
- 111,110,142,0,0,0,135,163,0,0,
- 115,119,141,0,0,0,154,0,159,161,
- 0,162,0,0,0,112,134,172,173,174,
- 0,118,150,160,169,144,0,164,167,168,
- 171,0,145,146,147,148,149,151,0,153,
- 158,113,117,133,136,137,138,139,140,143,
- 0,152,156,0,0,157,166,176,109,0,
- 0,0,155,0,165,170,175,0,177,178,
- 0,179,180,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0
- };
- };
- public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
- @Override
- public final int nonterminalIndex(int index) { return nonterminalIndex[index]; }
-
- public interface ScopePrefix {
- public final static char scopePrefix[] = {
- 120,151,130,59,69,159,26,186,35,87,
- 105,75,6,12,16,40,83,52,141,202,
- 212,216,52,52,195,52,1,1,1,44,
- 47,92,115,47,220,20,145,206,177,137,
- 165,165,165,165,165,95,95,95
- };
- };
- public final static char scopePrefix[] = ScopePrefix.scopePrefix;
- @Override
- public final int scopePrefix(int index) { return scopePrefix[index]; }
-
- public interface ScopeSuffix {
- public final static char scopeSuffix[] = {
- 128,128,128,4,4,128,32,192,10,4,
- 10,80,10,10,10,10,4,4,139,10,
- 10,4,56,80,199,65,4,4,4,10,
- 50,4,10,118,10,23,148,209,180,139,
- 167,169,171,173,175,102,97,110
- };
- };
- public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
- @Override
- public final int scopeSuffix(int index) { return scopeSuffix[index]; }
-
- public interface ScopeLhs {
- public final static char scopeLhs[] = {
- 65,63,65,28,28,63,32,111,51,28,
- 45,28,6,6,6,51,28,28,70,6,
- 5,5,28,28,19,28,103,102,101,49,
- 61,28,42,53,3,88,70,5,112,70,
- 79,78,77,76,75,45,43,45
- };
- };
- public final static char scopeLhs[] = ScopeLhs.scopeLhs;
- @Override
- public final int scopeLhs(int index) { return scopeLhs[index]; }
-
- public interface ScopeLa {
- public final static byte scopeLa[] = {
- 52,52,52,58,58,52,52,95,39,58,
- 39,19,39,39,39,39,58,58,75,39,
- 39,58,4,19,68,32,58,58,58,39,
- 2,58,39,1,39,69,1,39,101,75,
- 1,53,54,54,48,2,2,2
- };
- };
- public final static byte scopeLa[] = ScopeLa.scopeLa;
- @Override
- public final int scopeLa(int index) { return scopeLa[index]; }
-
- public interface ScopeStateSet {
- public final static byte scopeStateSet[] = {
- 28,28,28,32,32,28,19,-1,36,32,
- 9,32,43,43,43,36,32,32,5,43,
- 43,43,32,32,76,32,17,1,3,36,
- 38,32,9,11,43,103,5,43,-1,5,
- 29,29,29,29,29,9,9,9
- };
- };
- public final static byte scopeStateSet[] = ScopeStateSet.scopeStateSet;
- @Override
- public final int scopeStateSet(int index) { return scopeStateSet[index]; }
-
- public interface ScopeRhs {
- public final static char scopeRhs[] = {0,
- 154,23,0,110,0,159,2,31,0,111,
- 0,159,2,30,0,159,2,29,0,206,
- 118,0,31,149,0,169,204,118,15,145,
- 0,112,0,0,165,118,2,156,0,165,
- 118,2,0,168,2,0,161,118,0,172,
- 0,194,118,23,0,9,110,0,127,32,
- 194,118,23,0,69,132,110,0,127,194,
- 118,32,23,0,194,118,32,23,0,132,
- 110,0,127,32,23,0,127,194,118,23,
- 0,127,23,0,149,0,2,0,165,111,
- 0,2,111,0,165,118,2,149,0,2,
- 0,164,111,0,160,2,0,159,0,169,
- 192,118,15,108,201,53,0,112,0,169,
- 192,118,15,201,53,0,144,0,113,0,
- 200,118,144,0,118,144,0,155,113,0,
- 188,118,15,199,108,198,175,0,188,118,
- 15,198,175,0,187,0,148,0,147,0,
- 146,0,145,0,144,0,214,94,0,77,
- 2,115,111,113,0,214,128,138,2,98,
- 0,53,0,0,138,78,125,0,29,132,
- 0,159,2,18,0,159,2,0,111,119,
- 0,197,2,112,0,138,23,112,0,138,
- 2,0
- };
- };
- public final static char scopeRhs[] = ScopeRhs.scopeRhs;
- @Override
- public final int scopeRhs(int index) { return scopeRhs[index]; }
-
- public interface ScopeState {
- public final static char scopeState[] = {0,
- 555,0,424,0,1797,1224,1763,0,1476,520,
- 1396,1502,1360,1272,1214,0,655,0,591,489,
- 450,1809,1787,1410,1244,398,0,1184,510,369,
- 0,1535,1450,628,399,520,1743,1272,1214,1503,
- 1655,0,1616,1593,1585,471,406,1334,612,1385,
- 1372,1349,1492,1425,1481,1465,1454,1414,1675,1667,
- 1656,1284,724,1696,1685,1647,1639,1624,1363,1226,
- 1123,1506,1326,1171,1115,1187,1151,1131,591,1095,
- 1075,1054,1033,737,1012,701,680,630,991,970,
- 949,928,907,886,865,844,823,802,781,369,
- 760,659,489,450,0
- };
- };
- public final static char scopeState[] = ScopeState.scopeState;
- @Override
- public final int scopeState(int index) { return scopeState[index]; }
-
- public interface InSymb {
- public final static char inSymb[] = {0,
- 0,196,118,181,31,30,29,18,25,24,
- 7,6,4,11,17,16,2,112,116,115,
- 119,117,121,120,123,122,125,124,113,38,
- 2,2,2,2,159,138,144,118,76,61,
- 2,23,7,6,63,62,4,67,66,65,
- 64,56,57,11,71,70,73,72,78,77,
- 74,88,87,86,84,85,83,82,81,80,
- 79,69,159,159,159,159,128,118,23,2,
- 157,156,182,13,183,175,184,55,54,185,
- 53,186,187,108,197,138,115,115,117,117,
- 117,117,116,116,120,119,119,122,121,138,
- 124,123,128,128,128,128,15,145,161,136,
- 32,127,118,4,168,118,2,23,198,176,
- 176,201,176,68,118,15,136,4,118,127,
- 194,166,165,134,118,167,118,154,4,108,
- 15,108,15,118,4,136,194,32,127,4,
- 2,147,149,118,38,165,199,118,15,118,
- 204,118,136,118,127,127,160,118,2,161,
- 15,188,144,189,118,192,108,193,169,38,
- 206,61,23,207,118,166,118,118,118,192,
- 169,69,38,153,69,154,61,23,166,165,
- 202,188,200,68,160,2,118,169,154,38,
- 38,68,161
- };
- };
- public final static char inSymb[] = InSymb.inSymb;
- @Override
- public final int inSymb(int index) { return inSymb[index]; }
-
- public interface Name {
- public final static String name[] = {
- "",
- "[",
- "(",
- "{",
- ".",
- "->",
- "++",
- "--",
- "&",
- "*",
- "+",
- "-",
- "~",
- "!",
- "/",
- "%",
- ">>",
- "<<",
- "<",
- ">",
- "<=",
- ">=",
- "==",
- "!=",
- "^",
- "|",
- "&&",
- "||",
- "?",
- ":",
- "...",
- "=",
- "*=",
- "/=",
- "%=",
- "+=",
- "-=",
- ">>=",
- "<<=",
- "&=",
- "^=",
- "|=",
- ",",
- "$empty",
- "auto",
- "break",
- "case",
- "char",
- "const",
- "continue",
- "default",
- "do",
- "double",
- "else",
- "enum",
- "extern",
- "float",
- "for",
- "goto",
- "if",
- "inline",
- "int",
- "long",
- "register",
- "restrict",
- "return",
- "short",
- "signed",
- "sizeof",
- "static",
- "struct",
- "switch",
- "typedef",
- "union",
- "unsigned",
- "void",
- "volatile",
- "while",
- "_Bool",
- "_Complex",
- "_Imaginary",
- "integer",
- "floating",
- "charconst",
- "stringlit",
- "identifier",
- "Completion",
- "EndOfCompletion",
- "Invalid",
- "RightBracket",
- "RightParen",
- "RightBrace",
- "SemiColon",
- "MYTHREAD",
- "THREADS",
- "UPC_MAX_BLOCKSIZE",
- "relaxed",
- "shared",
- "strict",
- "upc_barrier",
- "upc_localsizeof",
- "upc_blocksizeof",
- "upc_elemsizeof",
- "upc_notify",
- "upc_fence",
- "upc_wait",
- "upc_forall",
- "ERROR_TOKEN",
- "EOF_TOKEN",
- "no_cast_start",
- "]",
- ")",
- "}",
- ";",
- "identifier_token",
- "expression",
- "postfix_expression",
- "member_name",
- "type_id",
- "initializer_list",
- "unary_expression",
- "cast_expression",
- "multiplicative_expression",
- "additive_expression",
- "shift_expression",
- "relational_expression",
- "equality_expression",
- "and_expression",
- "exclusive_or_expression",
- "inclusive_or_expression",
- "logical_and_expression",
- "logical_or_expression",
- "assignment_expression",
- "expression_list_actual",
- "constant_expression",
- "declaration_specifiers",
- "simple_declaration_specifiers",
- "struct_or_union_declaration_sp" +
- "ecifiers",
- "elaborated_declaration_specifi" +
- "ers",
- "enum_declaration_specifiers",
- "typdef_name_declaration_specif" +
- "iers",
- "no_type_declaration_specifier",
- "type_qualifier",
- "no_type_declaration_specifiers",
- "simple_type_specifier",
- "struct_or_union_specifier",
- "elaborated_specifier",
- "enum_specifier",
- "type_name_specifier",
- "initializer",
- "declarator",
- "struct_or_union",
- "struct_declaration_list",
- "struct_declaration",
- "specifier_qualifier_list",
- "struct_declarator_list",
- "complete_struct_declarator",
- "enumerator_list",
- "enumerator",
- "direct_declarator",
- "pointer_seq",
- "array_direct_declarator",
- "basic_direct_declarator",
- "array_modifier",
- "parameter_type_list",
- "identifier_list",
- "array_modifier_type_qualifiers",
- "type_qualifier_list",
- "parameter_list",
- "parameter_declaration",
- "complete_parameter_declarator",
- "abstract_declarator",
- "direct_abstract_declarator",
- "basic_direct_abstract_declarat" +
- "or",
- "array_direct_abstract_declarat" +
- "or",
- "initializer_seq",
- "designated_initializer",
- "designation",
- "designator_list",
- "designator",
- "layout_qualifier"
- };
- };
- public final static String name[] = Name.name;
- @Override
- public final String name(int index) { return name[index]; }
-
- public final static int
- ERROR_SYMBOL = 60,
- SCOPE_UBOUND = 47,
- SCOPE_SIZE = 48,
- MAX_NAME_LENGTH = 38;
-
- @Override
- public final int getErrorSymbol() { return ERROR_SYMBOL; }
- @Override
- public final int getScopeUbound() { return SCOPE_UBOUND; }
- @Override
- public final int getScopeSize() { return SCOPE_SIZE; }
- @Override
- public final int getMaxNameLength() { return MAX_NAME_LENGTH; }
-
- public final static int
- NUM_STATES = 223,
- NT_OFFSET = 107,
- LA_STATE_OFFSET = 2289,
- MAX_LA = 2,
- NUM_RULES = 368,
- NUM_NONTERMINALS = 131,
- NUM_SYMBOLS = 238,
- SEGMENT_SIZE = 8192,
- START_STATE = 1603,
- IDENTIFIER_SYMBOL = 0,
- EOFT_SYMBOL = 89,
- EOLT_SYMBOL = 89,
- ACCEPT_ACTION = 1908,
- ERROR_ACTION = 1921;
-
- public final static boolean BACKTRACK = true;
-
- @Override
- public final int getNumStates() { return NUM_STATES; }
- @Override
- public final int getNtOffset() { return NT_OFFSET; }
- @Override
- public final int getLaStateOffset() { return LA_STATE_OFFSET; }
- @Override
- public final int getMaxLa() { return MAX_LA; }
- @Override
- public final int getNumRules() { return NUM_RULES; }
- @Override
- public final int getNumNonterminals() { return NUM_NONTERMINALS; }
- @Override
- public final int getNumSymbols() { return NUM_SYMBOLS; }
- @Override
- public final int getSegmentSize() { return SEGMENT_SIZE; }
- @Override
- public final int getStartState() { return START_STATE; }
- @Override
- public final int getStartSymbol() { return lhs[0]; }
- public final int getIdentifierSymbol() { return IDENTIFIER_SYMBOL; }
- @Override
- public final int getEoftSymbol() { return EOFT_SYMBOL; }
- @Override
- public final int getEoltSymbol() { return EOLT_SYMBOL; }
- @Override
- public final int getAcceptAction() { return ACCEPT_ACTION; }
- @Override
- public final int getErrorAction() { return ERROR_ACTION; }
- @Override
- public final boolean isValidForParser() { return isValidForParser; }
- @Override
- public final boolean getBacktrack() { return BACKTRACK; }
-
- @Override
+ public interface IsKeyword {
+ public final static byte isKeyword[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
+ };
+
+ public final static byte isKeyword[] = IsKeyword.isKeyword;
+
+ public final boolean isKeyword(int index) {
+ return isKeyword[index] != 0;
+ }
+
+ public interface BaseCheck {
+ public final static short baseCheck[] = { 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 4,
+ 4, 3, 3, 2, 2, 4, 1, 0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 1, 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 3, 3, 3,
+ 3, 1, 3, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 2, 1, 0, 1, 3,
+ 1, 1, 1, 1, 1, 1, 1, 1, 3, 4, 3, 2, 4, 1, 2, 1, 1, 1, 2, 5, 7, 5, 1, 0, 7, 2, 5, 9, 8, 3, 2, 2, 2, 3, 2,
+ 4, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 3, 1, 3, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6, 8, 0, 0, 1, 1, 3, 3, 3, 0, 1, 0, 1, 2, 4, 2, 1, 1,
+ 1, 3, 1, 1, 2, 3, 7, 8, 0, 1, 0, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 3, 1, 2, 2, 1, 5, 3, 1,
+ 3, 5, 1, 3, 1, 3, 2, 4, 3, 5, 4, 6, 6, 3, 5, 1, 3, 4, 5, 6, 0, 1, 2, 1, 3, 1, 1, 3, 2, 1, 1, 1, 1, 2, 1,
+ 2, 3, 1, 1, 1, 3, 1, 2, 2, 2, 3, 4, 5, 1, 1, 7, 3, 0, 0, 1, 1, 3, 3, 4, 1, 1, 2, 3, 2, 3, 2, 1, 0, 1, 2,
+ 1, 1, 1, 1, 1, 2, 1, 3, 6, 4, 2, 4, 1, 1, 1, 1, 1, 2, 4, 2, 4, 2, 4, 1, 1, 2, 1, 1, 1, 3, 3, 2, 1, 3, 2,
+ 3, 2, 3, 2, 2, 11, 10, 10, 9, 10, 9, 9, 8, 10, 9, 9, 8, 9, 8, 8, 7, 10, 9, 9, 8, 9, 8, 8, 7, 1, 1, -38,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -127, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, -129, 0, -77, -81,
+ -138, 0, 0, 0, 0, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -179, 0, 0, 0, 0, 0, 0, -172, 0, 0, 0, 0, 0, 0,
+ -86, 0, 0, 0, 0, 0, 0, 0, -39, 0, -40, 0, 0, 0, 0, 0, 0, 0, 0, -154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, -61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -190, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -145, 0, 0, -4, 0, -88, -142, 0, -18, -117, -180, 0, 0, 0, 0,
+ 0, -135, 0, -196, -35, 0, -203, 0, 0, 0, 0, 0, -36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ -194, 0, -209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -213, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, -205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -57, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, -82, 0, -79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ -89, -19, -84, 0, 0, 0, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -20, 0, 0, 0, 0, 0, 0, 0, 0, 0, -121, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -96, 0, 0, 0, 0,
+ 0, 0, 0, 0, -21, 0, 0, -43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -130, 0, -141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -73, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ -62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -74,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, -64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -65, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, -75, 0, 0, 0, 0, 0, 0, 0, 0, 0, -66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, -67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -76, 0, 0, 0, 0, 0, 0, 0, 0, 0, -68, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -95, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, -70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -71, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, -125, 0, 0, 0, 0, 0, 0, 0, 0, 0, -72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ -134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -143, 0, 0, 0, 0, 0, 0, 0, 0, 0, -157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -166, 0, 0, 0, 0, 0, 0, 0, 0, 0, -193,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -22, 0, 0,
+ 0, 0, 0, 0, 0, 0, -5, 0, 0, 0, 0, 0, 0, 0, -9, 0, 0, 0, 0, 0, 0, 0, -208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, -214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -23, 0, 0, 0, 0, 0, 0, 0, 0, -6, 0, 0, 0,
+ 0, 0, 0, 0, -131, 0, -132, 0, -78, -93, 0, -24, -222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, -165, 0, -150, -144, -133, 0, 0, 0, 0, 0, -122, 0, -25, -184, 0, -10, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, -26, 0, 0, -177, 0, 0, 0, 0, -113, -83, -27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, -161, -85, -155, 0, 0, -28, 0, 0, 0, 0, 0, 0, -44, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -29, 0, 0, 0, 0, 0, 0, 0, 0, -94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -192, 0, 0, 0, 0, 0, -210,
+ 0, -7, 0, 0, 0, 0, 0, 0, 0, -58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -54, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, -199, 0, 0, -11, 0, 0, 0, 0, 0, 0, 0, 0, -55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -91, 0, -56, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, -221, 0, -136, 0, 0, 0, 0, 0, 0, 0, -97, 0, -98, 0, -114, -207, 0, 0, -48, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, -52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -99, -100, -101, 0,
+ 0, -162, -102, 0, 0, -49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -223, 0, 0,
+ 0, 0, -51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -53, 0, 0, 0, 0, 0, 0, 0, 0, 0, -216, -80, -87, 0, -8, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -103, -151, 0, -153, -104, 0, 0, 0, 0, 0, -182, -90, 0, -163, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -92, -156, -126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -105, 0, 0, -183, 0, 0,
+ 0, 0, -171, 0, 0, 0, 0, -106, 0, 0, 0, 0, -140, 0, 0, 0, 0, -124, 0, 0, 0, 0, 0, 0, 0, -149, 0, 0, 0, 0,
+ 0, 0, 0, -169, 0, -1, 0, 0, -107, 0, 0, -108, 0, -109, 0, -148, 0, 0, -160, 0, 0, 0, 0, 0, 0, 0, -12, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -110, 0, 0, -13, 0, 0, 0, 0, 0, 0, 0, -14, 0, 0, 0, 0, 0, 0, 0, -37, -45,
+ 0, 0, 0, 0, 0, 0, 0, -186, -164, 0, -46, 0, 0, 0, 0, 0, 0, 0, -47, 0, 0, 0, 0, 0, 0, 0, 0, -178, -15, 0,
+ 0, 0, 0, 0, 0, 0, -159, 0, 0, -16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -174, -111, -173, -17, 0, -112, 0,
+ -181, 0, 0, -118, -31, 0, 0, 0, -189, -32, -200, 0, 0, -120, -137, 0, 0, 0, 0, 0, 0, -170, 0, 0, 0, 0,
+ 0, 0, 0, -119, 0, 0, -33, 0, 0, 0, 0, -146, -152, 0, 0, 0, -123, 0, -34, -204, 0, -167, 0, -168, -185,
+ 0, 0, -201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -139, 0, 0, 0, 0, 0, -187, 0, 0, -115, 0, 0, 0, 0, 0, 0, 0, 0,
+ -197, -198, 0, -188, 0, 0, 0, 0, 0, -195, 0, 0, 0, -116, 0, -147, -212, 0, -175, 0, -41, -176, -206, 0,
+ 0, 0, 0, 0, 0, 0, -217, 0, 0, 0, 0, 0, -191, 0, 0, 0, 0, 0, 0, 0, 0, 0, -42, 0, 0, 0, 0, 0, -218, 0, 0,
+ 0, -59, 0, 0, 0, 0, 0, 0, -215, -211, -220, -219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
+ };
+
+ public final static short baseCheck[] = BaseCheck.baseCheck;
+
+ @Override
+ public final int baseCheck(int index) {
+ return baseCheck[index];
+ }
+
+ public final static short rhs[] = baseCheck;
+
+ @Override
+ public final int rhs(int index) {
+ return rhs[index];
+ };
+
+ public interface BaseAction {
+ public final static char baseAction[] = { 89, 11, 105, 22, 22, 21, 21, 46, 46, 72, 72, 1, 1, 2, 2, 2, 2, 3, 3,
+ 3, 4, 5, 5, 5, 5, 5, 5, 5, 5, 62, 62, 73, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 8, 8, 8, 8, 9, 9, 9, 10,
+ 10, 10, 12, 12, 12, 12, 12, 13, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 20, 20,
+ 20, 20, 20, 20, 20, 20, 20, 20, 106, 31, 30, 90, 90, 74, 74, 47, 107, 107, 107, 107, 107, 107, 107, 108,
+ 108, 108, 109, 109, 114, 114, 115, 115, 110, 110, 111, 111, 111, 117, 117, 112, 112, 112, 112, 112, 113,
+ 113, 113, 113, 113, 116, 116, 27, 27, 27, 27, 27, 33, 33, 33, 80, 80, 75, 75, 75, 75, 76, 76, 76, 77,
+ 77, 77, 78, 78, 78, 79, 79, 79, 118, 118, 119, 119, 120, 34, 36, 36, 36, 36, 36, 56, 57, 57, 57, 57, 57,
+ 57, 57, 57, 57, 57, 57, 57, 66, 63, 63, 91, 92, 68, 68, 64, 64, 64, 69, 81, 81, 82, 82, 70, 70, 70, 37,
+ 93, 93, 83, 84, 84, 84, 65, 65, 94, 85, 85, 86, 86, 71, 71, 23, 24, 24, 24, 35, 53, 53, 39, 39, 39, 39,
+ 42, 42, 44, 40, 40, 41, 45, 45, 121, 121, 43, 122, 122, 95, 95, 28, 28, 28, 28, 28, 28, 28, 28, 28, 87,
+ 54, 54, 54, 54, 29, 59, 59, 58, 58, 58, 60, 60, 55, 55, 96, 96, 52, 52, 61, 61, 61, 48, 48, 48, 49, 50,
+ 50, 50, 51, 51, 51, 51, 67, 67, 32, 32, 38, 98, 97, 97, 97, 97, 88, 99, 100, 100, 101, 101, 102, 102,
+ 123, 123, 124, 124, 125, 125, 125, 125, 127, 127, 126, 126, 126, 128, 129, 129, 89, 89, 2, 2, 2, 6, 6,
+ 6, 6, 6, 6, 23, 23, 25, 25, 26, 26, 103, 103, 103, 107, 130, 130, 130, 130, 130, 130, 130, 112, 112,
+ 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
+ 112, 131, 131, 1, 1304, 17, 21, 18, 518, 1295, 44, 670, 654, 1106, 675, 721, 1186, 1162, 1236, 1223,
+ 1277, 1246, 74, 91, 450, 1811, 135, 213, 326, 327, 80, 1213, 582, 588, 88, 278, 137, 134, 136, 160, 606,
+ 20, 17, 21, 18, 518, 43, 44, 670, 654, 1106, 675, 721, 1186, 1162, 1236, 1223, 1708, 175, 139, 166, 275,
+ 1796, 1549, 28, 119, 143, 146, 149, 152, 1717, 431, 231, 191, 31, 191, 31, 513, 1245, 1273, 1504, 1533,
+ 1548, 1184, 542, 20, 17, 21, 18, 518, 1295, 44, 670, 654, 1106, 424, 721, 1186, 1162, 1236, 1223, 1277,
+ 1246, 74, 281, 606, 20, 17, 21, 18, 518, 43, 44, 670, 654, 1106, 282, 721, 1186, 1162, 1236, 1712, 1717,
+ 351, 20, 17, 21, 18, 518, 1295, 44, 670, 654, 1106, 424, 721, 1186, 1162, 1236, 1223, 1277, 1246, 74,
+ 281, 225, 179, 25, 277, 24, 583, 176, 287, 59, 53, 815, 282, 396, 1832, 555, 293, 63, 1717, 915, 443,
+ 526, 191, 1784, 135, 213, 326, 327, 443, 288, 255, 213, 326, 327, 137, 134, 136, 160, 1570, 274, 1728,
+ 398, 255, 213, 326, 327, 914, 289, 926, 19, 219, 1450, 221, 1535, 223, 224, 229, 139, 166, 269, 628,
+ 399, 272, 284, 143, 146, 149, 152, 290, 431, 326, 255, 213, 326, 327, 735, 1245, 1273, 1504, 1533, 1548,
+ 1184, 574, 20, 17, 21, 18, 518, 1295, 44, 670, 654, 1106, 210, 721, 1186, 1162, 1236, 1223, 1277, 1246,
+ 74, 281, 606, 20, 17, 21, 18, 518, 43, 44, 670, 654, 1106, 282, 721, 1186, 1162, 1609, 776, 1717, 281,
+ 20, 17, 21, 18, 518, 1295, 44, 670, 654, 1106, 1756, 721, 1186, 1162, 1236, 1223, 1277, 1246, 74, 1221,
+ 194, 239, 615, 78, 661, 276, 294, 291, 606, 20, 17, 21, 18, 518, 1295, 44, 670, 654, 1106, 193, 721,
+ 1186, 1162, 1236, 1223, 1277, 1246, 74, 91, 766, 20, 17, 21, 18, 518, 1295, 44, 670, 654, 1106, 1778,
+ 721, 1186, 1162, 1236, 1223, 1277, 1246, 74, 1580, 470, 20, 17, 21, 18, 518, 43, 44, 670, 654, 1106,
+ 743, 721, 1186, 1162, 1236, 1223, 1277, 1246, 93, 64, 1179, 334, 606, 20, 17, 21, 18, 518, 43, 44, 1406,
+ 513, 22, 191, 187, 316, 20, 17, 21, 18, 518, 1295, 44, 670, 654, 1106, 1613, 721, 1186, 1162, 1236,
+ 1223, 1277, 1246, 74, 1693, 328, 240, 606, 20, 17, 21, 18, 518, 1295, 44, 670, 654, 1106, 443, 721,
+ 1186, 1162, 1236, 1223, 1277, 1246, 74, 92, 606, 20, 17, 21, 18, 518, 1295, 44, 670, 654, 1106, 1244,
+ 721, 1186, 1162, 1236, 1223, 1277, 1246, 74, 85, 606, 20, 17, 21, 18, 518, 1295, 44, 670, 654, 1106,
+ 443, 721, 1186, 1162, 1236, 1223, 1277, 1246, 74, 84, 606, 20, 17, 21, 18, 518, 1295, 44, 670, 654,
+ 1106, 1410, 721, 1186, 1162, 1236, 1223, 1277, 1246, 74, 83, 606, 20, 17, 21, 18, 518, 1295, 44, 670,
+ 654, 1106, 443, 721, 1186, 1162, 1236, 1223, 1277, 1246, 74, 82, 606, 20, 17, 21, 18, 518, 1295, 44,
+ 670, 654, 1106, 1787, 721, 1186, 1162, 1236, 1223, 1277, 1246, 74, 81, 606, 20, 17, 21, 18, 518, 1295,
+ 44, 670, 654, 1106, 443, 721, 1186, 1162, 1236, 1223, 1277, 1246, 74, 80, 606, 20, 17, 21, 18, 518,
+ 1295, 44, 670, 654, 1106, 1809, 721, 1186, 1162, 1236, 1223, 1277, 1246, 74, 79, 606, 20, 17, 21, 18,
+ 518, 1295, 44, 670, 654, 1106, 443, 721, 1186, 1162, 1236, 1223, 1277, 1246, 74, 78, 606, 20, 17, 21,
+ 18, 518, 1295, 44, 670, 654, 1106, 23, 721, 1186, 1162, 1236, 1223, 1277, 1246, 74, 77, 606, 20, 17, 21,
+ 18, 518, 1295, 44, 670, 654, 1106, 443, 721, 1186, 1162, 1236, 1223, 1277, 1246, 74, 76, 606, 20, 17,
+ 21, 18, 518, 1295, 44, 670, 654, 1106, 273, 721, 1186, 1162, 1236, 1223, 1277, 1246, 74, 75, 606, 20,
+ 17, 21, 18, 518, 1295, 44, 670, 654, 1106, 443, 721, 1186, 1162, 1236, 1223, 1277, 1246, 74, 73, 606,
+ 20, 17, 21, 18, 518, 1295, 44, 670, 654, 1106, 279, 721, 1186, 1162, 1236, 1223, 1277, 1246, 74, 1814,
+ 606, 20, 17, 21, 18, 518, 1295, 44, 670, 654, 1106, 443, 721, 1186, 1162, 1236, 1223, 1277, 1246, 74,
+ 1817, 606, 20, 17, 21, 18, 518, 43, 44, 670, 654, 1106, 280, 721, 1186, 1162, 1236, 1223, 1277, 1246,
+ 93, 606, 20, 17, 21, 18, 518, 43, 44, 670, 654, 1106, 139, 721, 1186, 1162, 1236, 1223, 1277, 1246, 93,
+ 638, 20, 17, 21, 18, 518, 324, 1818, 606, 20, 17, 21, 18, 518, 43, 40, 606, 20, 17, 21, 18, 518, 43, 44,
+ 670, 654, 1106, 212, 721, 1186, 1162, 1236, 1223, 1277, 1246, 93, 606, 20, 17, 21, 18, 518, 43, 44, 670,
+ 654, 1106, 349, 721, 1186, 1162, 1236, 1223, 1277, 1246, 93, 670, 20, 17, 21, 18, 518, 322, 1862, 191,
+ 186, 537, 1752, 88, 225, 179, 16, 606, 20, 17, 21, 18, 518, 43, 44, 670, 654, 1106, 202, 721, 1186,
+ 1162, 1236, 1223, 1277, 1246, 93, 135, 213, 326, 327, 712, 1727, 152, 398, 191, 188, 138, 134, 136, 160,
+ 743, 510, 6, 113, 1665, 606, 20, 17, 21, 18, 518, 43, 39, 203, 510, 24, 1743, 1214, 443, 140, 166, 274,
+ 241, 678, 383, 171, 144, 147, 150, 153, 197, 431, 218, 1450, 221, 1535, 223, 224, 229, 225, 1565, 267,
+ 628, 399, 272, 260, 263, 135, 213, 326, 327, 941, 814, 88, 264, 28, 230, 142, 134, 136, 160, 1717, 1684,
+ 606, 20, 17, 21, 18, 518, 43, 44, 1408, 277, 193, 325, 135, 213, 326, 327, 274, 141, 166, 1709, 798,
+ 1761, 145, 134, 136, 160, 261, 218, 1450, 221, 1535, 223, 224, 229, 191, 296, 267, 628, 399, 272, 443,
+ 1239, 702, 20, 17, 21, 18, 518, 320, 981, 606, 20, 17, 21, 18, 518, 43, 44, 670, 654, 1106, 230, 721,
+ 1186, 1611, 606, 20, 17, 21, 18, 518, 43, 44, 670, 654, 1106, 72, 721, 1562, 606, 20, 17, 21, 18, 518,
+ 43, 38, 1826, 606, 20, 17, 21, 18, 518, 43, 44, 670, 654, 1106, 647, 1575, 606, 20, 17, 21, 18, 518, 43,
+ 44, 670, 654, 1106, 72, 1606, 53, 218, 1450, 221, 1535, 223, 224, 229, 227, 1826, 324, 450, 742, 191,
+ 298, 1859, 606, 20, 17, 21, 18, 518, 43, 44, 670, 654, 1445, 606, 20, 17, 21, 18, 518, 43, 44, 670,
+ 1522, 218, 1450, 221, 1535, 223, 224, 229, 28, 198, 200, 151, 458, 804, 1717, 1859, 813, 818, 1215, 579,
+ 606, 20, 17, 21, 18, 518, 43, 44, 670, 654, 1446, 606, 20, 17, 21, 18, 518, 43, 44, 670, 654, 1447, 554,
+ 1181, 228, 199, 200, 606, 20, 17, 21, 18, 518, 43, 44, 670, 654, 1451, 606, 20, 17, 21, 18, 518, 43, 44,
+ 670, 1526, 502, 291, 844, 1728, 734, 20, 17, 21, 18, 518, 41, 1826, 1550, 219, 1450, 221, 1535, 223,
+ 224, 229, 614, 53, 277, 53, 646, 135, 213, 326, 327, 274, 63, 855, 1763, 839, 1735, 148, 134, 136, 160,
+ 218, 1450, 221, 1535, 223, 224, 229, 885, 232, 385, 267, 628, 399, 272, 1239, 135, 213, 326, 327, 1707,
+ 510, 710, 227, 981, 902, 151, 134, 136, 160, 679, 135, 213, 326, 327, 77, 1360, 1214, 180, 1727, 743,
+ 154, 134, 136, 160, 435, 20, 17, 21, 18, 518, 43, 36, 435, 20, 17, 21, 18, 518, 43, 36, 53, 243, 505,
+ 1743, 259, 187, 246, 1023, 350, 1751, 467, 1764, 743, 659, 333, 435, 20, 17, 21, 18, 518, 43, 36, 606,
+ 20, 17, 21, 18, 518, 43, 37, 1722, 87, 315, 332, 483, 195, 247, 606, 20, 17, 21, 18, 518, 43, 36, 606,
+ 20, 17, 21, 18, 518, 43, 35, 361, 606, 20, 17, 21, 18, 518, 43, 47, 805, 88, 1183, 606, 20, 17, 21, 18,
+ 518, 43, 46, 606, 20, 17, 21, 18, 518, 43, 45, 274, 385, 606, 20, 17, 21, 18, 518, 34, 390, 743, 1727,
+ 510, 606, 20, 17, 21, 18, 518, 33, 267, 628, 399, 272, 124, 513, 896, 53, 1214, 809, 1727, 53, 242, 266,
+ 930, 53, 520, 1805, 369, 63, 53, 805, 1797, 1767, 243, 707, 369, 254, 213, 326, 327, 369, 682, 1784,
+ 197, 520, 259, 87, 537, 1023, 445, 1751, 197, 53, 1655, 87, 537, 197, 541, 932, 87, 537, 1655, 124, 369,
+ 53, 180, 1655, 933, 529, 57, 682, 1784, 528, 63, 1759, 369, 771, 274, 1728, 197, 510, 813, 87, 537, 124,
+ 254, 213, 326, 327, 1655, 550, 197, 1848, 871, 87, 537, 197, 269, 628, 399, 272, 1655, 715, 169, 855,
+ 845, 1565, 254, 213, 326, 327, 124, 209, 510, 510, 901, 897, 329, 63, 204, 743, 516, 480, 743, 743, 28,
+ 1664, 1799, 510, 1214, 197, 1717, 88, 659, 254, 213, 326, 327, 842, 192, 1565, 209, 244, 516, 1214, 245,
+ 295, 28, 53, 737, 1532, 1224, 89, 1717, 63, 1724, 1799, 259, 53, 659, 1324, 1727, 1751, 283, 181, 884,
+ 479, 39, 743, 659, 557, 1033, 259, 192, 1921, 1065, 1921, 1751, 87, 712, 1921, 1921, 1921, 1921, 1812,
+ 1224, 1476, 234, 87, 1636, 297, 1921, 1921, 1921, 1921, 1921, 1921, 1860, 1921, 1921, 205, 1921, 1921,
+ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 939, 1921, 0, 329, 701, 0, 20, 179, 0, 1, 2147, 0,
+ 1, 2158, 0 };
+ };
+
+ public final static char baseAction[] = BaseAction.baseAction;
+
+ @Override
+ public final int baseAction(int index) {
+ return baseAction[index];
+ }
+
+ public final static char lhs[] = baseAction;
+
+ @Override
+ public final int lhs(int index) {
+ return lhs[index];
+ };
+
+ public interface TermCheck {
+ public final static byte termCheck[] = { 0, 0, 1, 2, 3, 4, 0, 6, 7, 8, 9, 10, 11, 12, 13, 14, 0, 16, 17, 18, 19,
+ 20, 21, 22, 0, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 0, 1, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, 51, 0, 53, 54, 55, 0, 1, 0, 3, 2, 5, 0, 0, 8, 9, 10, 5, 12, 13, 14, 0, 1, 2, 16, 17, 0,
+ 0, 73, 0, 1, 23, 3, 6, 7, 70, 71, 0, 32, 33, 34, 35, 36, 37, 15, 72, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+ 49, 50, 51, 52, 53, 54, 55, 0, 1, 52, 3, 60, 5, 0, 61, 8, 9, 10, 0, 12, 13, 14, 64, 65, 66, 67, 8, 9,
+ 10, 76, 12, 13, 14, 0, 68, 64, 65, 66, 67, 32, 33, 34, 35, 36, 37, 0, 0, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, 0, 1, 0, 3, 60, 5, 0, 0, 8, 9, 10, 0, 12, 13, 14, 8, 9, 10, 0, 12, 13,
+ 14, 0, 1, 0, 3, 56, 57, 4, 23, 0, 0, 32, 33, 34, 35, 36, 37, 56, 57, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+ 49, 50, 51, 52, 53, 54, 55, 0, 1, 0, 3, 60, 0, 4, 0, 8, 9, 10, 61, 12, 13, 14, 8, 9, 10, 0, 12, 13, 14,
+ 4, 77, 78, 0, 64, 65, 66, 67, 62, 63, 32, 33, 34, 35, 36, 37, 0, 0, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+ 49, 50, 51, 0, 53, 54, 55, 0, 1, 2, 3, 4, 5, 6, 7, 62, 63, 0, 11, 2, 0, 0, 5, 16, 17, 18, 19, 20, 21,
+ 22, 74, 24, 25, 26, 27, 28, 29, 30, 31, 32, 23, 38, 0, 1, 2, 3, 4, 5, 6, 7, 0, 0, 0, 11, 4, 0, 39, 5,
+ 16, 17, 18, 19, 20, 21, 22, 58, 24, 25, 26, 27, 28, 29, 30, 31, 32, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 0, 11,
+ 0, 11, 2, 38, 4, 15, 16, 17, 18, 19, 20, 21, 22, 58, 24, 25, 26, 27, 28, 29, 30, 31, 0, 23, 0, 62, 63,
+ 59, 4, 0, 8, 9, 10, 69, 12, 13, 14, 0, 1, 2, 75, 4, 52, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 0, 32,
+ 33, 34, 35, 36, 37, 23, 72, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 0, 1, 2, 3, 4, 5, 6, 7, 0,
+ 59, 0, 11, 2, 5, 4, 0, 16, 17, 18, 19, 20, 21, 22, 0, 24, 25, 26, 27, 28, 29, 30, 31, 0, 23, 0, 0, 1, 2,
+ 3, 4, 5, 6, 7, 11, 0, 0, 11, 39, 0, 5, 5, 16, 17, 18, 19, 20, 21, 22, 58, 24, 25, 26, 27, 28, 29, 30,
+ 31, 0, 1, 2, 0, 1, 2, 3, 4, 0, 6, 7, 0, 56, 57, 11, 38, 39, 39, 0, 16, 17, 18, 19, 20, 21, 22, 58, 24,
+ 25, 26, 27, 28, 29, 30, 31, 0, 1, 89, 3, 0, 0, 1, 2, 3, 4, 0, 6, 7, 0, 68, 15, 11, 0, 1, 2, 15, 16, 17,
+ 18, 19, 20, 21, 22, 60, 24, 25, 26, 27, 28, 29, 30, 31, 0, 1, 2, 3, 4, 38, 6, 7, 0, 0, 1, 11, 3, 74, 0,
+ 15, 16, 17, 18, 19, 20, 21, 22, 15, 24, 25, 26, 27, 28, 29, 30, 31, 0, 1, 2, 3, 4, 23, 6, 7, 0, 0, 1,
+ 11, 3, 69, 6, 7, 16, 17, 18, 19, 20, 21, 22, 0, 24, 25, 26, 27, 28, 29, 30, 31, 0, 1, 2, 3, 4, 0, 6, 7,
+ 0, 0, 1, 11, 3, 0, 6, 7, 16, 17, 18, 19, 20, 21, 22, 0, 24, 25, 26, 27, 28, 29, 30, 31, 0, 1, 2, 3, 4,
+ 0, 6, 7, 0, 0, 5, 11, 0, 1, 23, 3, 16, 17, 18, 19, 20, 21, 22, 15, 24, 25, 26, 27, 28, 29, 30, 31, 0, 1,
+ 2, 3, 4, 0, 6, 7, 0, 4, 0, 11, 39, 0, 1, 38, 16, 17, 18, 19, 20, 21, 22, 0, 24, 25, 26, 27, 28, 29, 30,
+ 31, 0, 1, 2, 3, 4, 0, 6, 7, 0, 0, 0, 11, 0, 1, 5, 3, 16, 17, 18, 19, 20, 21, 22, 15, 24, 25, 26, 27, 28,
+ 29, 30, 31, 0, 1, 2, 3, 4, 59, 6, 7, 59, 0, 0, 11, 2, 0, 70, 71, 16, 17, 18, 19, 20, 21, 22, 0, 24, 25,
+ 26, 27, 28, 29, 30, 31, 0, 23, 2, 58, 4, 5, 0, 0, 8, 9, 10, 0, 12, 13, 14, 0, 0, 0, 1, 2, 0, 4, 0, 23,
+ 8, 9, 10, 5, 12, 13, 14, 0, 32, 33, 34, 35, 36, 37, 23, 39, 23, 0, 0, 2, 0, 38, 0, 0, 32, 33, 34, 35,
+ 36, 37, 8, 9, 10, 0, 12, 13, 14, 0, 56, 57, 23, 8, 9, 10, 0, 12, 13, 14, 0, 0, 52, 0, 56, 57, 32, 33,
+ 34, 35, 36, 37, 73, 38, 0, 0, 15, 32, 33, 34, 35, 36, 37, 8, 9, 10, 0, 12, 13, 14, 0, 0, 0, 0, 8, 9, 10,
+ 5, 12, 13, 14, 69, 0, 0, 0, 0, 15, 32, 33, 34, 35, 36, 37, 8, 9, 10, 0, 12, 13, 14, 0, 0, 0, 0, 8, 9,
+ 10, 23, 12, 13, 14, 0, 1, 2, 0, 15, 5, 15, 15, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 23, 15,
+ 15, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 75, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
+ };
+
+ public final static byte termCheck[] = TermCheck.termCheck;
+
+ @Override
+ public final int termCheck(int index) {
+ return termCheck[index];
+ }
+
+ public interface TermAction {
+ public final static char termAction[] = { 0, 1921, 1932, 1710, 1933, 1639, 68, 1624, 1363, 2135, 2136, 2137,
+ 1647, 2251, 655, 2252, 62, 1696, 1685, 1506, 1934, 1935, 1936, 1937, 66, 1226, 1123, 2238, 2239, 2240,
+ 1326, 1171, 1115, 2084, 2085, 2083, 2138, 2086, 2082, 1921, 2159, 2089, 2094, 2093, 2091, 2092, 2090,
+ 2095, 2096, 2088, 2097, 2098, 2099, 1, 1383, 653, 515, 1921, 1, 32, 1, 1816, 191, 1921, 59, 1, 1, 1,
+ 1929, 1, 1, 1, 1, 2147, 1502, 1947, 1948, 61, 51, 612, 1921, 1932, 1842, 1933, 1284, 724, 1385, 1372,
+ 253, 1, 1, 1, 1, 1, 1, 1523, 1334, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 191, 1, 1, 1, 1921, 1, 1928, 1,
+ 2117, 190, 182, 441, 1, 1, 1, 1921, 1, 1, 1, 1481, 1465, 1454, 1414, 2135, 2136, 2137, 439, 2251, 655,
+ 2252, 54, 1151, 1481, 1465, 1454, 1414, 1, 1, 1, 1, 1, 1, 58, 183, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 190, 1, 1, 1, 1921, 1, 72, 1, 2117, 191, 1921, 248, 1, 1, 1, 286, 1, 1, 1, 2135, 2136, 2137, 60, 2251,
+ 655, 2252, 1921, 1932, 48, 1933, 1425, 1492, 1675, 1075, 1921, 1921, 1, 1, 1, 1, 1, 1, 1425, 1492, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 191, 1, 1, 1, 1921, 1932, 50, 1933, 2117, 70, 1675, 249, 2135, 2136, 2137,
+ 1318, 2251, 655, 2252, 1, 1, 1, 1921, 1, 1, 1, 400, 406, 1852, 1921, 1481, 1465, 1454, 1414, 1667, 1656,
+ 2084, 2085, 2083, 2138, 2086, 2082, 1921, 1921, 2089, 2094, 2093, 2091, 2092, 2090, 2095, 2096, 2088,
+ 2097, 2098, 2099, 88, 1383, 653, 515, 1, 1932, 1710, 1933, 1585, 1925, 1624, 1363, 1667, 1656, 1, 1647,
+ 1503, 1921, 1921, 1927, 1696, 1685, 1506, 1934, 1935, 1936, 1937, 471, 1226, 1123, 2238, 2239, 2240,
+ 1326, 1171, 1115, 680, 630, 760, 1921, 1932, 1710, 1933, 1616, 1925, 1624, 1363, 49, 43, 1921, 1647,
+ 1675, 1, 1926, 1931, 1696, 1685, 1506, 1934, 1935, 1936, 1937, 1924, 1226, 1123, 2238, 2239, 2240, 1326,
+ 1171, 1115, 1054, 64, 67, 1, 1932, 1710, 1933, 1639, 29, 1624, 1363, 1921, 1349, 265, 1647, 1503, 1396,
+ 1, 3109, 1696, 1685, 1506, 1934, 1935, 1936, 1937, 1924, 1226, 1123, 2238, 2239, 2240, 1326, 1171, 1115,
+ 129, 630, 1, 1667, 1656, 2179, 253, 1921, 2135, 2136, 2137, 991, 2251, 655, 2252, 262, 2147, 1272, 1930,
+ 1, 29, 970, 949, 928, 907, 886, 844, 865, 823, 802, 781, 1921, 2084, 2085, 2083, 2138, 2086, 2082, 630,
+ 1334, 2089, 2094, 2093, 2091, 2092, 2090, 2095, 2096, 2088, 2097, 2098, 2099, 1921, 1932, 1710, 1933,
+ 1639, 1925, 1624, 1363, 1921, 2179, 268, 1647, 1503, 1927, 253, 1921, 1696, 1685, 1506, 1934, 1935,
+ 1936, 1937, 57, 1226, 1123, 2238, 2239, 2240, 1326, 1171, 1115, 65, 630, 1921, 1921, 1932, 1710, 1933,
+ 1593, 1925, 1624, 1363, 1349, 1921, 1, 1647, 1926, 1921, 1927, 90, 1696, 1685, 1506, 1934, 1935, 1936,
+ 1937, 1924, 1226, 1123, 2238, 2239, 2240, 1326, 1171, 1115, 1, 2147, 1502, 1921, 1, 1, 1, 1, 1921, 1, 1,
+ 71, 1425, 1492, 1, 1861, 1926, 90, 1921, 1, 1, 1, 1, 1, 1, 1, 1924, 1, 1, 1, 1, 1, 1, 1, 1, 1921, 1932,
+ 1908, 1933, 256, 1, 1932, 1710, 1933, 1639, 1921, 1624, 1363, 211, 1012, 1525, 1647, 253, 2147, 1502,
+ 3109, 1696, 1685, 1506, 1934, 1935, 1936, 1937, 2237, 1226, 1123, 2238, 2239, 2240, 1326, 1171, 1115,
+ 1921, 1932, 1710, 1933, 1639, 1211, 1624, 1363, 1921, 185, 3233, 1647, 3233, 471, 271, 3109, 1696, 1685,
+ 1506, 1934, 1935, 1936, 1937, 3109, 1226, 1123, 2238, 2239, 2240, 1326, 1171, 1115, 1921, 1932, 1710,
+ 1933, 1639, 630, 1624, 1363, 53, 184, 3239, 1647, 3239, 1095, 1284, 724, 1696, 1685, 1506, 1934, 1935,
+ 1936, 1937, 1921, 1226, 1123, 2238, 2239, 2240, 1326, 1171, 1115, 1921, 1932, 1718, 1933, 1639, 1921,
+ 1624, 1363, 52, 206, 3240, 1647, 3240, 1921, 1284, 724, 1696, 1685, 1506, 1934, 1935, 1936, 1937, 329,
+ 1226, 1123, 2238, 2239, 2240, 1326, 1171, 1115, 1921, 1932, 1723, 1933, 1639, 1, 1624, 1363, 325, 30,
+ 1927, 1647, 208, 1932, 1909, 1933, 1696, 1685, 1506, 1934, 1935, 1936, 1937, 3109, 1226, 1123, 2238,
+ 2239, 2240, 1326, 1171, 1115, 1921, 1932, 1746, 1933, 1639, 1921, 1624, 1363, 63, 1274, 1, 1647, 1926,
+ 1, 1918, 489, 1696, 1685, 1506, 1934, 1935, 1936, 1937, 1921, 1226, 1123, 2238, 2239, 2240, 1326, 1171,
+ 1115, 1921, 1932, 1758, 1933, 1639, 1921, 1624, 1363, 323, 1921, 1921, 1647, 207, 531, 1925, 531, 1696,
+ 1685, 1506, 1934, 1935, 1936, 1937, 3109, 1226, 1123, 2238, 2239, 2240, 1326, 1171, 1115, 1, 1932, 1710,
+ 1933, 1639, 2178, 1624, 1363, 2179, 1921, 270, 1647, 380, 1921, 1385, 1372, 1696, 1685, 1506, 1934,
+ 1935, 1936, 1937, 1921, 1226, 1123, 2238, 2239, 2240, 1326, 1171, 1115, 20, 630, 1912, 1924, 1912, 1912,
+ 56, 30, 179, 179, 179, 69, 179, 179, 179, 220, 130, 268, 2147, 1272, 55, 253, 285, 1912, 2135, 2136,
+ 2137, 519, 2251, 655, 2252, 1921, 179, 179, 179, 179, 179, 179, 630, 1912, 630, 222, 1921, 417, 1921,
+ 1950, 131, 207, 2084, 2085, 2083, 2138, 2086, 2082, 2135, 2136, 2137, 132, 2251, 655, 2252, 1921, 1425,
+ 1492, 630, 2135, 2136, 2137, 1921, 2251, 655, 2252, 1921, 321, 519, 1921, 1425, 1492, 2084, 2085, 2083,
+ 2138, 2086, 2082, 612, 3035, 201, 133, 3109, 2084, 2085, 2083, 2138, 2086, 2082, 2135, 2136, 2137, 250,
+ 2251, 655, 2252, 1921, 42, 1, 1921, 1, 1, 1, 1931, 1, 1, 1, 591, 1921, 1921, 292, 251, 3109, 2084, 2085,
+ 2083, 2138, 2086, 2082, 2135, 2136, 2137, 252, 2251, 655, 2252, 1921, 1921, 1921, 1921, 2135, 2136,
+ 2137, 1131, 2251, 655, 2252, 1, 1915, 1272, 189, 1398, 1927, 1601, 1714, 1921, 189, 189, 1187, 1921,
+ 1921, 1921, 1921, 1921, 1921, 185, 1921, 1921, 1921, 1921, 630, 184, 206, 1921, 1921, 1921, 1921, 1921,
+ 1921, 1921, 1921, 1411, 1921, 1930, 1921, 1921, 1926 };
+ };
+
+ public final static char termAction[] = TermAction.termAction;
+
+ @Override
+ public final int termAction(int index) {
+ return termAction[index];
+ }
+
+ public interface Asb {
+ public final static char asb[] = { 0, 443, 1, 89, 69, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 119, 31,
+ 51, 48, 55, 53, 61, 59, 63, 62, 65, 64, 37, 89, 119, 119, 119, 119, 318, 318, 263, 119, 354, 354, 472,
+ 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
+ 89, 89, 89, 89, 89, 318, 318, 318, 318, 29, 267, 80, 321, 316, 315, 235, 112, 247, 27, 247, 27, 27, 247,
+ 27, 247, 139, 269, 318, 73, 48, 48, 53, 53, 53, 53, 51, 51, 59, 55, 55, 62, 61, 402, 64, 63, 195, 195,
+ 195, 195, 387, 29, 263, 267, 83, 73, 162, 170, 318, 404, 324, 170, 27, 354, 354, 27, 354, 89, 387, 5,
+ 267, 255, 162, 73, 169, 80, 318, 261, 139, 317, 326, 73, 170, 29, 357, 29, 390, 5, 255, 255, 89, 89, 73,
+ 170, 321, 397, 396, 267, 326, 318, 29, 357, 390, 390, 392, 77, 255, 162, 73, 73, 318, 404, 324, 261,
+ 357, 387, 436, 357, 390, 392, 467, 392, 387, 3, 470, 354, 89, 76, 162, 255, 326, 357, 438, 392, 387, 89,
+ 354, 31, 7, 73, 354, 89, 255, 318, 317, 387, 231, 89, 230, 108, 267, 387, 73, 355, 438, 89, 108 };
+ };
+
+ public final static char asb[] = Asb.asb;
+
+ @Override
+ public final int asb(int index) {
+ return asb[index];
+ }
+
+ public interface Asr {
+ public final static byte asr[] = { 0, 89, 0, 5, 52, 23, 61, 16, 17, 11, 4, 6, 7, 24, 25, 18, 29, 30, 31, 2, 19,
+ 20, 21, 22, 26, 27, 28, 1, 3, 15, 0, 23, 2, 61, 76, 16, 17, 69, 79, 80, 81, 82, 83, 85, 84, 86, 87, 88,
+ 4, 62, 63, 6, 7, 57, 56, 64, 65, 66, 67, 70, 71, 11, 72, 73, 74, 52, 75, 77, 78, 68, 39, 89, 38, 58, 5,
+ 0, 69, 23, 61, 0, 58, 5, 32, 8, 9, 10, 12, 13, 14, 19, 20, 21, 22, 26, 27, 28, 3, 16, 17, 11, 6, 7, 24,
+ 25, 18, 29, 30, 31, 4, 2, 1, 0, 5, 68, 38, 58, 39, 75, 23, 18, 19, 20, 21, 22, 2, 16, 17, 11, 4, 6, 7,
+ 24, 25, 26, 27, 28, 29, 30, 31, 1, 3, 53, 54, 55, 48, 40, 45, 43, 44, 42, 41, 46, 47, 49, 50, 51, 37,
+ 34, 32, 33, 36, 35, 8, 9, 10, 13, 12, 14, 0, 32, 58, 5, 16, 17, 11, 4, 6, 7, 24, 25, 18, 29, 30, 31, 2,
+ 1, 3, 19, 20, 21, 22, 26, 27, 28, 0, 11, 4, 6, 7, 62, 63, 56, 57, 64, 65, 66, 67, 70, 71, 72, 73, 74,
+ 77, 78, 69, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 58, 39, 52, 89, 15, 68, 75, 5, 38, 0, 48, 40, 45,
+ 43, 44, 42, 41, 46, 47, 49, 50, 51, 68, 75, 37, 34, 32, 33, 36, 35, 8, 9, 10, 12, 13, 14, 38, 1, 5, 39,
+ 2, 23, 4, 0, 9, 32, 37, 10, 36, 35, 34, 8, 33, 12, 13, 14, 61, 76, 16, 17, 11, 6, 7, 62, 63, 56, 57, 64,
+ 65, 66, 67, 70, 71, 72, 73, 74, 77, 78, 69, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 4, 2, 23, 38, 39, 5,
+ 0, 4, 2, 23, 39, 5, 33, 40, 8, 41, 53, 34, 42, 35, 43, 44, 36, 9, 45, 46, 32, 54, 37, 55, 47, 48, 10,
+ 49, 50, 51, 12, 13, 14, 59, 3, 1, 0, 33, 40, 8, 41, 53, 34, 42, 35, 43, 44, 36, 9, 45, 46, 32, 54, 37,
+ 55, 47, 48, 10, 49, 50, 51, 1, 3, 12, 13, 14, 60, 5, 52, 0, 1, 3, 5, 52, 38, 0, 2, 5, 38, 39, 75, 23,
+ 68, 0, 4, 33, 40, 8, 41, 53, 34, 42, 35, 43, 44, 36, 9, 45, 46, 32, 54, 37, 55, 47, 48, 10, 49, 50, 51,
+ 1, 3, 12, 13, 14, 59, 0, 75, 5, 4, 1, 2, 68, 0, 18, 19, 20, 21, 22, 1, 3, 2, 16, 17, 11, 4, 6, 7, 24,
+ 25, 26, 27, 28, 29, 30, 31, 60, 0, 5, 38, 52, 69, 0, 5, 39, 18, 19, 20, 21, 22, 1, 3, 2, 16, 17, 11, 4,
+ 6, 7, 24, 25, 26, 27, 28, 29, 30, 31, 0 };
+ };
+
+ public final static byte asr[] = Asr.asr;
+
+ @Override
+ public final int asr(int index) {
+ return asr[index];
+ }
+
+ public interface Nasb {
+ public final static byte nasb[] = { 0, 99, 35, 26, 35, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 102, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 26, 102, 102, 102, 102, 10, 10, 85, 1, 21, 21, 122, 103, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 103, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 10, 10, 10, 10, 12, 57, 48, 84, 15, 15, 65, 52, 66, 19, 66, 82, 82, 66, 81, 66, 60, 35, 10,
+ 50, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 12, 12, 12, 12, 79, 35, 106, 35, 54,
+ 50, 110, 49, 10, 89, 9, 49, 7, 7, 7, 7, 7, 26, 44, 79, 35, 42, 110, 50, 49, 36, 10, 75, 28, 35, 91, 50,
+ 49, 68, 79, 35, 79, 24, 42, 79, 26, 26, 50, 49, 74, 15, 15, 57, 91, 10, 35, 114, 79, 7, 97, 17, 79, 110,
+ 50, 50, 10, 89, 9, 38, 79, 44, 94, 70, 7, 97, 35, 35, 44, 23, 35, 7, 26, 46, 110, 36, 118, 114, 77, 97,
+ 44, 26, 7, 112, 25, 50, 7, 26, 36, 10, 10, 44, 95, 26, 35, 77, 57, 44, 50, 35, 77, 26, 40 };
+ };
+
+ public final static byte nasb[] = Nasb.nasb;
+
+ @Override
+ public final int nasb(int index) {
+ return nasb[index];
+ }
+
+ public interface Nasr {
+ public final static char nasr[] = { 0, 80, 78, 77, 68, 76, 75, 1, 0, 11, 21, 0, 38, 32, 0, 28, 0, 100, 0, 91, 0,
+ 73, 0, 88, 11, 38, 5, 0, 80, 79, 78, 77, 68, 76, 75, 0, 23, 0, 50, 49, 42, 40, 29, 0, 46, 0, 102, 0, 11,
+ 5, 22, 0, 103, 0, 5, 11, 0, 29, 54, 0, 68, 63, 64, 65, 66, 56, 33, 0, 92, 0, 11, 37, 70, 0, 21, 50, 49,
+ 42, 40, 11, 0, 94, 69, 0, 21, 49, 50, 11, 0, 29, 54, 11, 27, 0, 11, 72, 0, 62, 0, 11, 89, 0, 37, 11, 31,
+ 0, 50, 49, 29, 0, 59, 0, 98, 0, 82, 11, 37, 0, 95, 11, 27, 0, 11, 90, 0 };
+ };
+
+ public final static char nasr[] = Nasr.nasr;
+
+ @Override
+ public final int nasr(int index) {
+ return nasr[index];
+ }
+
+ public interface TerminalIndex {
+ public final static char terminalIndex[] = { 0, 85, 2, 86, 9, 87, 10, 11, 48, 64, 76, 8, 96, 97, 98, 3, 6, 7,
+ 68, 81, 82, 83, 84, 1, 12, 13, 93, 94, 95, 100, 101, 102, 69, 44, 55, 60, 63, 72, 42, 90, 47, 52, 56,
+ 61, 62, 66, 67, 74, 75, 78, 79, 80, 91, 54, 70, 73, 16, 17, 89, 30, 107, 4, 14, 15, 18, 19, 20, 21, 29,
+ 31, 22, 23, 24, 25, 26, 92, 5, 27, 28, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 108, 45, 46, 49, 50, 51,
+ 53, 57, 58, 59, 65, 71, 77, 88, 99, 103, 104, 105, 106 };
+ };
+
+ public final static char terminalIndex[] = TerminalIndex.terminalIndex;
+
+ @Override
+ public final int terminalIndex(int index) {
+ return terminalIndex[index];
+ }
+
+ public interface NonterminalIndex {
+ public final static char nonterminalIndex[] = { 0, 114, 0, 0, 0, 116, 120, 121, 122, 123, 124, 0, 125, 126, 127,
+ 128, 129, 130, 131, 0, 132, 111, 110, 142, 0, 0, 0, 135, 163, 0, 0, 115, 119, 141, 0, 0, 0, 154, 0, 159,
+ 161, 0, 162, 0, 0, 0, 112, 134, 172, 173, 174, 0, 118, 150, 160, 169, 144, 0, 164, 167, 168, 171, 0,
+ 145, 146, 147, 148, 149, 151, 0, 153, 158, 113, 117, 133, 136, 137, 138, 139, 140, 143, 0, 152, 156, 0,
+ 0, 157, 166, 176, 109, 0, 0, 0, 155, 0, 165, 170, 175, 0, 177, 178, 0, 179, 180, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
+ };
+
+ public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
+
+ @Override
+ public final int nonterminalIndex(int index) {
+ return nonterminalIndex[index];
+ }
+
+ public interface ScopePrefix {
+ public final static char scopePrefix[] = { 120, 151, 130, 59, 69, 159, 26, 186, 35, 87, 105, 75, 6, 12, 16, 40,
+ 83, 52, 141, 202, 212, 216, 52, 52, 195, 52, 1, 1, 1, 44, 47, 92, 115, 47, 220, 20, 145, 206, 177, 137,
+ 165, 165, 165, 165, 165, 95, 95, 95 };
+ };
+
+ public final static char scopePrefix[] = ScopePrefix.scopePrefix;
+
+ @Override
+ public final int scopePrefix(int index) {
+ return scopePrefix[index];
+ }
+
+ public interface ScopeSuffix {
+ public final static char scopeSuffix[] = { 128, 128, 128, 4, 4, 128, 32, 192, 10, 4, 10, 80, 10, 10, 10, 10, 4,
+ 4, 139, 10, 10, 4, 56, 80, 199, 65, 4, 4, 4, 10, 50, 4, 10, 118, 10, 23, 148, 209, 180, 139, 167, 169,
+ 171, 173, 175, 102, 97, 110 };
+ };
+
+ public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
+
+ @Override
+ public final int scopeSuffix(int index) {
+ return scopeSuffix[index];
+ }
+
+ public interface ScopeLhs {
+ public final static char scopeLhs[] = { 65, 63, 65, 28, 28, 63, 32, 111, 51, 28, 45, 28, 6, 6, 6, 51, 28, 28,
+ 70, 6, 5, 5, 28, 28, 19, 28, 103, 102, 101, 49, 61, 28, 42, 53, 3, 88, 70, 5, 112, 70, 79, 78, 77, 76,
+ 75, 45, 43, 45 };
+ };
+
+ public final static char scopeLhs[] = ScopeLhs.scopeLhs;
+
+ @Override
+ public final int scopeLhs(int index) {
+ return scopeLhs[index];
+ }
+
+ public interface ScopeLa {
+ public final static byte scopeLa[] = { 52, 52, 52, 58, 58, 52, 52, 95, 39, 58, 39, 19, 39, 39, 39, 39, 58, 58,
+ 75, 39, 39, 58, 4, 19, 68, 32, 58, 58, 58, 39, 2, 58, 39, 1, 39, 69, 1, 39, 101, 75, 1, 53, 54, 54, 48,
+ 2, 2, 2 };
+ };
+
+ public final static byte scopeLa[] = ScopeLa.scopeLa;
+
+ @Override
+ public final int scopeLa(int index) {
+ return scopeLa[index];
+ }
+
+ public interface ScopeStateSet {
+ public final static byte scopeStateSet[] = { 28, 28, 28, 32, 32, 28, 19, -1, 36, 32, 9, 32, 43, 43, 43, 36, 32,
+ 32, 5, 43, 43, 43, 32, 32, 76, 32, 17, 1, 3, 36, 38, 32, 9, 11, 43, 103, 5, 43, -1, 5, 29, 29, 29, 29,
+ 29, 9, 9, 9 };
+ };
+
+ public final static byte scopeStateSet[] = ScopeStateSet.scopeStateSet;
+
+ @Override
+ public final int scopeStateSet(int index) {
+ return scopeStateSet[index];
+ }
+
+ public interface ScopeRhs {
+ public final static char scopeRhs[] = { 0, 154, 23, 0, 110, 0, 159, 2, 31, 0, 111, 0, 159, 2, 30, 0, 159, 2, 29,
+ 0, 206, 118, 0, 31, 149, 0, 169, 204, 118, 15, 145, 0, 112, 0, 0, 165, 118, 2, 156, 0, 165, 118, 2, 0,
+ 168, 2, 0, 161, 118, 0, 172, 0, 194, 118, 23, 0, 9, 110, 0, 127, 32, 194, 118, 23, 0, 69, 132, 110, 0,
+ 127, 194, 118, 32, 23, 0, 194, 118, 32, 23, 0, 132, 110, 0, 127, 32, 23, 0, 127, 194, 118, 23, 0, 127,
+ 23, 0, 149, 0, 2, 0, 165, 111, 0, 2, 111, 0, 165, 118, 2, 149, 0, 2, 0, 164, 111, 0, 160, 2, 0, 159, 0,
+ 169, 192, 118, 15, 108, 201, 53, 0, 112, 0, 169, 192, 118, 15, 201, 53, 0, 144, 0, 113, 0, 200, 118,
+ 144, 0, 118, 144, 0, 155, 113, 0, 188, 118, 15, 199, 108, 198, 175, 0, 188, 118, 15, 198, 175, 0, 187,
+ 0, 148, 0, 147, 0, 146, 0, 145, 0, 144, 0, 214, 94, 0, 77, 2, 115, 111, 113, 0, 214, 128, 138, 2, 98, 0,
+ 53, 0, 0, 138, 78, 125, 0, 29, 132, 0, 159, 2, 18, 0, 159, 2, 0, 111, 119, 0, 197, 2, 112, 0, 138, 23,
+ 112, 0, 138, 2, 0 };
+ };
+
+ public final static char scopeRhs[] = ScopeRhs.scopeRhs;
+
+ @Override
+ public final int scopeRhs(int index) {
+ return scopeRhs[index];
+ }
+
+ public interface ScopeState {
+ public final static char scopeState[] = { 0, 555, 0, 424, 0, 1797, 1224, 1763, 0, 1476, 520, 1396, 1502, 1360,
+ 1272, 1214, 0, 655, 0, 591, 489, 450, 1809, 1787, 1410, 1244, 398, 0, 1184, 510, 369, 0, 1535, 1450,
+ 628, 399, 520, 1743, 1272, 1214, 1503, 1655, 0, 1616, 1593, 1585, 471, 406, 1334, 612, 1385, 1372, 1349,
+ 1492, 1425, 1481, 1465, 1454, 1414, 1675, 1667, 1656, 1284, 724, 1696, 1685, 1647, 1639, 1624, 1363,
+ 1226, 1123, 1506, 1326, 1171, 1115, 1187, 1151, 1131, 591, 1095, 1075, 1054, 1033, 737, 1012, 701, 680,
+ 630, 991, 970, 949, 928, 907, 886, 865, 844, 823, 802, 781, 369, 760, 659, 489, 450, 0 };
+ };
+
+ public final static char scopeState[] = ScopeState.scopeState;
+
+ @Override
+ public final int scopeState(int index) {
+ return scopeState[index];
+ }
+
+ public interface InSymb {
+ public final static char inSymb[] = { 0, 0, 196, 118, 181, 31, 30, 29, 18, 25, 24, 7, 6, 4, 11, 17, 16, 2, 112,
+ 116, 115, 119, 117, 121, 120, 123, 122, 125, 124, 113, 38, 2, 2, 2, 2, 159, 138, 144, 118, 76, 61, 2,
+ 23, 7, 6, 63, 62, 4, 67, 66, 65, 64, 56, 57, 11, 71, 70, 73, 72, 78, 77, 74, 88, 87, 86, 84, 85, 83, 82,
+ 81, 80, 79, 69, 159, 159, 159, 159, 128, 118, 23, 2, 157, 156, 182, 13, 183, 175, 184, 55, 54, 185, 53,
+ 186, 187, 108, 197, 138, 115, 115, 117, 117, 117, 117, 116, 116, 120, 119, 119, 122, 121, 138, 124, 123,
+ 128, 128, 128, 128, 15, 145, 161, 136, 32, 127, 118, 4, 168, 118, 2, 23, 198, 176, 176, 201, 176, 68,
+ 118, 15, 136, 4, 118, 127, 194, 166, 165, 134, 118, 167, 118, 154, 4, 108, 15, 108, 15, 118, 4, 136,
+ 194, 32, 127, 4, 2, 147, 149, 118, 38, 165, 199, 118, 15, 118, 204, 118, 136, 118, 127, 127, 160, 118,
+ 2, 161, 15, 188, 144, 189, 118, 192, 108, 193, 169, 38, 206, 61, 23, 207, 118, 166, 118, 118, 118, 192,
+ 169, 69, 38, 153, 69, 154, 61, 23, 166, 165, 202, 188, 200, 68, 160, 2, 118, 169, 154, 38, 38, 68,
+ 161 };
+ };
+
+ public final static char inSymb[] = InSymb.inSymb;
+
+ @Override
+ public final int inSymb(int index) {
+ return inSymb[index];
+ }
+
+ public interface Name {
+ public final static String name[] = { "", "[", "(", "{", ".", "->", "++", "--", "&", "*", "+", "-", "~", "!",
+ "/", "%", ">>", "<<", "<", ">", "<=", ">=", "==", "!=", "^", "|", "&&", "||", "?", ":", "...", "=",
+ "*=", "/=", "%=", "+=", "-=", ">>=", "<<=", "&=", "^=", "|=", ",", "$empty", "auto", "break", "case",
+ "char", "const", "continue", "default", "do", "double", "else", "enum", "extern", "float", "for",
+ "goto", "if", "inline", "int", "long", "register", "restrict", "return", "short", "signed", "sizeof",
+ "static", "struct", "switch", "typedef", "union", "unsigned", "void", "volatile", "while", "_Bool",
+ "_Complex", "_Imaginary", "integer", "floating", "charconst", "stringlit", "identifier", "Completion",
+ "EndOfCompletion", "Invalid", "RightBracket", "RightParen", "RightBrace", "SemiColon", "MYTHREAD",
+ "THREADS", "UPC_MAX_BLOCKSIZE", "relaxed", "shared", "strict", "upc_barrier", "upc_localsizeof",
+ "upc_blocksizeof", "upc_elemsizeof", "upc_notify", "upc_fence", "upc_wait", "upc_forall", "ERROR_TOKEN",
+ "EOF_TOKEN", "no_cast_start", "]", ")", "}", ";", "identifier_token", "expression",
+ "postfix_expression", "member_name", "type_id", "initializer_list", "unary_expression",
+ "cast_expression", "multiplicative_expression", "additive_expression", "shift_expression",
+ "relational_expression", "equality_expression", "and_expression", "exclusive_or_expression",
+ "inclusive_or_expression", "logical_and_expression", "logical_or_expression", "assignment_expression",
+ "expression_list_actual", "constant_expression", "declaration_specifiers",
+ "simple_declaration_specifiers", "struct_or_union_declaration_sp" + "ecifiers",
+ "elaborated_declaration_specifi" + "ers", "enum_declaration_specifiers",
+ "typdef_name_declaration_specif" + "iers", "no_type_declaration_specifier", "type_qualifier",
+ "no_type_declaration_specifiers", "simple_type_specifier", "struct_or_union_specifier",
+ "elaborated_specifier", "enum_specifier", "type_name_specifier", "initializer", "declarator",
+ "struct_or_union", "struct_declaration_list", "struct_declaration", "specifier_qualifier_list",
+ "struct_declarator_list", "complete_struct_declarator", "enumerator_list", "enumerator",
+ "direct_declarator", "pointer_seq", "array_direct_declarator", "basic_direct_declarator",
+ "array_modifier", "parameter_type_list", "identifier_list", "array_modifier_type_qualifiers",
+ "type_qualifier_list", "parameter_list", "parameter_declaration", "complete_parameter_declarator",
+ "abstract_declarator", "direct_abstract_declarator", "basic_direct_abstract_declarat" + "or",
+ "array_direct_abstract_declarat" + "or", "initializer_seq", "designated_initializer", "designation",
+ "designator_list", "designator", "layout_qualifier" };
+ };
+
+ public final static String name[] = Name.name;
+
+ @Override
+ public final String name(int index) {
+ return name[index];
+ }
+
+ public final static int ERROR_SYMBOL = 60, SCOPE_UBOUND = 47, SCOPE_SIZE = 48, MAX_NAME_LENGTH = 38;
+
+ @Override
+ public final int getErrorSymbol() {
+ return ERROR_SYMBOL;
+ }
+
+ @Override
+ public final int getScopeUbound() {
+ return SCOPE_UBOUND;
+ }
+
+ @Override
+ public final int getScopeSize() {
+ return SCOPE_SIZE;
+ }
+
+ @Override
+ public final int getMaxNameLength() {
+ return MAX_NAME_LENGTH;
+ }
+
+ public final static int NUM_STATES = 223, NT_OFFSET = 107, LA_STATE_OFFSET = 2289, MAX_LA = 2, NUM_RULES = 368,
+ NUM_NONTERMINALS = 131, NUM_SYMBOLS = 238, SEGMENT_SIZE = 8192, START_STATE = 1603, IDENTIFIER_SYMBOL = 0,
+ EOFT_SYMBOL = 89, EOLT_SYMBOL = 89, ACCEPT_ACTION = 1908, ERROR_ACTION = 1921;
+
+ public final static boolean BACKTRACK = true;
+
+ @Override
+ public final int getNumStates() {
+ return NUM_STATES;
+ }
+
+ @Override
+ public final int getNtOffset() {
+ return NT_OFFSET;
+ }
+
+ @Override
+ public final int getLaStateOffset() {
+ return LA_STATE_OFFSET;
+ }
+
+ @Override
+ public final int getMaxLa() {
+ return MAX_LA;
+ }
+
+ @Override
+ public final int getNumRules() {
+ return NUM_RULES;
+ }
+
+ @Override
+ public final int getNumNonterminals() {
+ return NUM_NONTERMINALS;
+ }
+
+ @Override
+ public final int getNumSymbols() {
+ return NUM_SYMBOLS;
+ }
+
+ @Override
+ public final int getSegmentSize() {
+ return SEGMENT_SIZE;
+ }
+
+ @Override
+ public final int getStartState() {
+ return START_STATE;
+ }
+
+ @Override
+ public final int getStartSymbol() {
+ return lhs[0];
+ }
+
+ public final int getIdentifierSymbol() {
+ return IDENTIFIER_SYMBOL;
+ }
+
+ @Override
+ public final int getEoftSymbol() {
+ return EOFT_SYMBOL;
+ }
+
+ @Override
+ public final int getEoltSymbol() {
+ return EOLT_SYMBOL;
+ }
+
+ @Override
+ public final int getAcceptAction() {
+ return ACCEPT_ACTION;
+ }
+
+ @Override
+ public final int getErrorAction() {
+ return ERROR_ACTION;
+ }
+
+ @Override
+ public final boolean isValidForParser() {
+ return isValidForParser;
+ }
+
+ @Override
+ public final boolean getBacktrack() {
+ return BACKTRACK;
+ }
+
+ @Override
public final int originalState(int state) {
- return -baseCheck[state];
- }
- @Override
+ return -baseCheck[state];
+ }
+
+ @Override
public final int asi(int state) {
- return asb[originalState(state)];
- }
- @Override
+ return asb[originalState(state)];
+ }
+
+ @Override
public final int nasi(int state) {
- return nasb[originalState(state)];
- }
- @Override
+ return nasb[originalState(state)];
+ }
+
+ @Override
public final int inSymbol(int state) {
- return inSymb[originalState(state)];
- }
+ return inSymb[originalState(state)];
+ }
- @Override
+ @Override
public final int ntAction(int state, int sym) {
- return baseAction[state + sym];
- }
+ return baseAction[state + sym];
+ }
- @Override
+ @Override
public final int tAction(int state, int sym) {
- int i = baseAction[state],
- k = i + sym;
- return termAction[termCheck[k] == sym ? k : i];
- }
- @Override
+ int i = baseAction[state], k = i + sym;
+ return termAction[termCheck[k] == sym ? k : i];
+ }
+
+ @Override
public final int lookAhead(int la_state, int sym) {
- int k = la_state + sym;
- return termAction[termCheck[k] == sym ? k : la_state];
- }
+ int k = la_state + sym;
+ return termAction[termCheck[k] == sym ? k : la_state];
+ }
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParsersym.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParsersym.java
index 0524746e316..716b8fa1e2c 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
@@ -17,225 +17,39 @@
package org.eclipse.cdt.internal.core.dom.parser.upc;
public interface UPCNoCastExpressionParsersym {
- public final static int
- TK_auto = 33,
- TK_break = 90,
- TK_case = 91,
- TK_char = 40,
- TK_const = 8,
- TK_continue = 92,
- TK_default = 93,
- TK_do = 94,
- TK_double = 41,
- TK_else = 95,
- TK_enum = 53,
- TK_extern = 34,
- TK_float = 42,
- TK_for = 96,
- TK_goto = 97,
- TK_if = 98,
- TK_inline = 35,
- TK_int = 43,
- TK_long = 44,
- TK_register = 36,
- TK_restrict = 9,
- TK_return = 99,
- TK_short = 45,
- TK_signed = 46,
- TK_sizeof = 18,
- TK_static = 32,
- TK_struct = 54,
- TK_switch = 100,
- TK_typedef = 37,
- TK_union = 55,
- TK_unsigned = 47,
- TK_void = 48,
- TK_volatile = 10,
- TK_while = 101,
- TK__Bool = 49,
- TK__Complex = 50,
- TK__Imaginary = 51,
- TK_integer = 19,
- TK_floating = 20,
- TK_charconst = 21,
- TK_stringlit = 22,
- TK_identifier = 1,
- TK_Completion = 3,
- TK_EndOfCompletion = 5,
- TK_Invalid = 102,
- TK_LeftBracket = 23,
- TK_LeftParen = 2,
- TK_LeftBrace = 15,
- TK_Dot = 61,
- TK_Arrow = 76,
- TK_PlusPlus = 16,
- TK_MinusMinus = 17,
- TK_And = 11,
- TK_Star = 4,
- TK_Plus = 6,
- TK_Minus = 7,
- TK_Tilde = 24,
- TK_Bang = 25,
- TK_Slash = 62,
- TK_Percent = 63,
- TK_RightShift = 56,
- TK_LeftShift = 57,
- TK_LT = 64,
- TK_GT = 65,
- TK_LE = 66,
- TK_GE = 67,
- TK_EQ = 70,
- TK_NE = 71,
- TK_Caret = 72,
- TK_Or = 73,
- TK_AndAnd = 74,
- TK_OrOr = 77,
- TK_Question = 78,
- TK_Colon = 68,
- TK_DotDotDot = 59,
- TK_Assign = 69,
- TK_StarAssign = 79,
- TK_SlashAssign = 80,
- TK_PercentAssign = 81,
- TK_PlusAssign = 82,
- TK_MinusAssign = 83,
- TK_RightShiftAssign = 84,
- TK_LeftShiftAssign = 85,
- TK_AndAssign = 86,
- TK_CaretAssign = 87,
- TK_OrAssign = 88,
- TK_Comma = 38,
- TK_RightBracket = 58,
- TK_RightParen = 39,
- TK_RightBrace = 52,
- TK_SemiColon = 75,
- TK_MYTHREAD = 26,
- TK_THREADS = 27,
- TK_UPC_MAX_BLOCKSIZE = 28,
- TK_relaxed = 12,
- TK_shared = 13,
- TK_strict = 14,
- TK_upc_barrier = 103,
- TK_upc_localsizeof = 29,
- TK_upc_blocksizeof = 30,
- TK_upc_elemsizeof = 31,
- TK_upc_notify = 104,
- TK_upc_fence = 105,
- TK_upc_wait = 106,
- TK_upc_forall = 107,
- TK_ERROR_TOKEN = 60,
- TK_EOF_TOKEN = 89;
+ public final static int TK_auto = 33, TK_break = 90, TK_case = 91, TK_char = 40, TK_const = 8, TK_continue = 92,
+ TK_default = 93, TK_do = 94, TK_double = 41, TK_else = 95, TK_enum = 53, TK_extern = 34, TK_float = 42,
+ TK_for = 96, TK_goto = 97, TK_if = 98, TK_inline = 35, TK_int = 43, TK_long = 44, TK_register = 36,
+ TK_restrict = 9, TK_return = 99, TK_short = 45, TK_signed = 46, TK_sizeof = 18, TK_static = 32,
+ TK_struct = 54, TK_switch = 100, TK_typedef = 37, TK_union = 55, TK_unsigned = 47, TK_void = 48,
+ TK_volatile = 10, TK_while = 101, TK__Bool = 49, TK__Complex = 50, TK__Imaginary = 51, TK_integer = 19,
+ TK_floating = 20, TK_charconst = 21, TK_stringlit = 22, TK_identifier = 1, TK_Completion = 3,
+ TK_EndOfCompletion = 5, TK_Invalid = 102, TK_LeftBracket = 23, TK_LeftParen = 2, TK_LeftBrace = 15,
+ TK_Dot = 61, TK_Arrow = 76, TK_PlusPlus = 16, TK_MinusMinus = 17, TK_And = 11, TK_Star = 4, TK_Plus = 6,
+ TK_Minus = 7, TK_Tilde = 24, TK_Bang = 25, TK_Slash = 62, TK_Percent = 63, TK_RightShift = 56,
+ TK_LeftShift = 57, TK_LT = 64, TK_GT = 65, TK_LE = 66, TK_GE = 67, TK_EQ = 70, TK_NE = 71, TK_Caret = 72,
+ TK_Or = 73, TK_AndAnd = 74, TK_OrOr = 77, TK_Question = 78, TK_Colon = 68, TK_DotDotDot = 59,
+ TK_Assign = 69, TK_StarAssign = 79, TK_SlashAssign = 80, TK_PercentAssign = 81, TK_PlusAssign = 82,
+ TK_MinusAssign = 83, TK_RightShiftAssign = 84, TK_LeftShiftAssign = 85, TK_AndAssign = 86,
+ TK_CaretAssign = 87, TK_OrAssign = 88, TK_Comma = 38, TK_RightBracket = 58, TK_RightParen = 39,
+ TK_RightBrace = 52, TK_SemiColon = 75, TK_MYTHREAD = 26, TK_THREADS = 27, TK_UPC_MAX_BLOCKSIZE = 28,
+ TK_relaxed = 12, TK_shared = 13, TK_strict = 14, TK_upc_barrier = 103, TK_upc_localsizeof = 29,
+ TK_upc_blocksizeof = 30, TK_upc_elemsizeof = 31, TK_upc_notify = 104, TK_upc_fence = 105, TK_upc_wait = 106,
+ TK_upc_forall = 107, TK_ERROR_TOKEN = 60, TK_EOF_TOKEN = 89;
- public final static String orderedTerminalSymbols[] = {
- "",
- "identifier",
- "LeftParen",
- "Completion",
- "Star",
- "EndOfCompletion",
- "Plus",
- "Minus",
- "const",
- "restrict",
- "volatile",
- "And",
- "relaxed",
- "shared",
- "strict",
- "LeftBrace",
- "PlusPlus",
- "MinusMinus",
- "sizeof",
- "integer",
- "floating",
- "charconst",
- "stringlit",
- "LeftBracket",
- "Tilde",
- "Bang",
- "MYTHREAD",
- "THREADS",
- "UPC_MAX_BLOCKSIZE",
- "upc_localsizeof",
- "upc_blocksizeof",
- "upc_elemsizeof",
- "static",
- "auto",
- "extern",
- "inline",
- "register",
- "typedef",
- "Comma",
- "RightParen",
- "char",
- "double",
- "float",
- "int",
- "long",
- "short",
- "signed",
- "unsigned",
- "void",
- "_Bool",
- "_Complex",
- "_Imaginary",
- "RightBrace",
- "enum",
- "struct",
- "union",
- "RightShift",
- "LeftShift",
- "RightBracket",
- "DotDotDot",
- "ERROR_TOKEN",
- "Dot",
- "Slash",
- "Percent",
- "LT",
- "GT",
- "LE",
- "GE",
- "Colon",
- "Assign",
- "EQ",
- "NE",
- "Caret",
- "Or",
- "AndAnd",
- "SemiColon",
- "Arrow",
- "OrOr",
- "Question",
- "StarAssign",
- "SlashAssign",
- "PercentAssign",
- "PlusAssign",
- "MinusAssign",
- "RightShiftAssign",
- "LeftShiftAssign",
- "AndAssign",
- "CaretAssign",
- "OrAssign",
- "EOF_TOKEN",
- "break",
- "case",
- "continue",
- "default",
- "do",
- "else",
- "for",
- "goto",
- "if",
- "return",
- "switch",
- "while",
- "Invalid",
- "upc_barrier",
- "upc_notify",
- "upc_fence",
- "upc_wait",
- "upc_forall"
- };
+ public final static String orderedTerminalSymbols[] = { "", "identifier", "LeftParen", "Completion", "Star",
+ "EndOfCompletion", "Plus", "Minus", "const", "restrict", "volatile", "And", "relaxed", "shared", "strict",
+ "LeftBrace", "PlusPlus", "MinusMinus", "sizeof", "integer", "floating", "charconst", "stringlit",
+ "LeftBracket", "Tilde", "Bang", "MYTHREAD", "THREADS", "UPC_MAX_BLOCKSIZE", "upc_localsizeof",
+ "upc_blocksizeof", "upc_elemsizeof", "static", "auto", "extern", "inline", "register", "typedef", "Comma",
+ "RightParen", "char", "double", "float", "int", "long", "short", "signed", "unsigned", "void", "_Bool",
+ "_Complex", "_Imaginary", "RightBrace", "enum", "struct", "union", "RightShift", "LeftShift",
+ "RightBracket", "DotDotDot", "ERROR_TOKEN", "Dot", "Slash", "Percent", "LT", "GT", "LE", "GE", "Colon",
+ "Assign", "EQ", "NE", "Caret", "Or", "AndAnd", "SemiColon", "Arrow", "OrOr", "Question", "StarAssign",
+ "SlashAssign", "PercentAssign", "PlusAssign", "MinusAssign", "RightShiftAssign", "LeftShiftAssign",
+ "AndAssign", "CaretAssign", "OrAssign", "EOF_TOKEN", "break", "case", "continue", "default", "do", "else",
+ "for", "goto", "if", "return", "switch", "while", "Invalid", "upc_barrier", "upc_notify", "upc_fence",
+ "upc_wait", "upc_forall" };
- public final static boolean isValidForParser = true;
+ public final static boolean isValidForParser = true;
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParser.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParser.java
index e8ec5e9fae2..6dc2a134ed0 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
@@ -62,1529 +62,1971 @@ import org.eclipse.cdt.core.dom.upc.ast.IUPCASTUnarySizeofExpression;
import org.eclipse.cdt.core.index.IIndex;
import org.eclipse.cdt.core.parser.IScanner;
-public class UPCParser extends PrsStream implements RuleAction, ITokenStream,
- ITokenCollector, IParser< IASTTranslationUnit >
+public class UPCParser extends PrsStream
+ implements RuleAction, ITokenStream, ITokenCollector, IParser<IASTTranslationUnit>
{
- private static ParseTable prs = new UPCParserprs();
- private FixedBacktrackingParser btParser;
-
- public FixedBacktrackingParser getParser() { return btParser; }
- private void setResult(Object object) { btParser.setSym1(object); }
- public Object getRhsSym(int i) { return btParser.getSym(i); }
-
- public int getRhsTokenIndex(int i) { return btParser.getToken(i); }
- public IToken getRhsIToken(int i) { return super.getIToken(getRhsTokenIndex(i)); }
-
- public int getRhsFirstTokenIndex(int i) { return btParser.getFirstToken(i); }
- public IToken getRhsFirstIToken(int i) { return super.getIToken(getRhsFirstTokenIndex(i)); }
-
- public int getRhsLastTokenIndex(int i) { return btParser.getLastToken(i); }
- public IToken getRhsLastIToken(int i) { return super.getIToken(getRhsLastTokenIndex(i)); }
-
- public int getLeftSpan() { return btParser.getFirstToken(); }
- @Override
- public IToken getLeftIToken() { return super.getIToken(getLeftSpan()); }
-
- public int getRightSpan() { return btParser.getLastToken(); }
- @Override
- public IToken getRightIToken() { return super.getIToken(getRightSpan()); }
-
- public int getRhsErrorTokenIndex(int i)
- {
- int index = btParser.getToken(i);
- IToken err = super.getIToken(index);
- return (err instanceof ErrorToken ? index : 0);
- }
- public ErrorToken getRhsErrorIToken(int i)
- {
- int index = btParser.getToken(i);
- IToken err = super.getIToken(index);
- return (ErrorToken) (err instanceof ErrorToken ? err : null);
- }
-
- public UPCParser(LexStream lexStream)
- {
- super(lexStream);
-
- try
- {
- super.remapTerminalSymbols(orderedTerminalSymbols(), UPCParserprs.EOFT_SYMBOL);
- }
- catch(NullExportedSymbolsException e) {
- }
- catch(NullTerminalSymbolsException e) {
- }
- catch(UnimplementedTerminalsException e)
- {
- java.util.ArrayList unimplemented_symbols = e.getSymbols();
- System.out.println("The Lexer will not scan the following token(s):");
- for (int i = 0; i < unimplemented_symbols.size(); i++)
- {
- Integer id = (Integer) unimplemented_symbols.get(i);
- System.out.println(" " + UPCParsersym.orderedTerminalSymbols[id.intValue()]);
- }
- System.out.println();
- }
- catch(UndefinedEofSymbolException e)
- {
- throw new Error(new UndefinedEofSymbolException
- ("The Lexer does not implement the Eof symbol " +
- UPCParsersym.orderedTerminalSymbols[UPCParserprs.EOFT_SYMBOL]));
- }
- }
-
- @Override
- public String[] orderedTerminalSymbols() { return UPCParsersym.orderedTerminalSymbols; }
- public String getTokenKindName(int kind) { return UPCParsersym.orderedTerminalSymbols[kind]; }
- public int getEOFTokenKind() { return UPCParserprs.EOFT_SYMBOL; }
- public PrsStream getParseStream() { return this; }
-
- //
- // Report error message for given error_token.
- //
- public final void reportErrorTokenMessage(int error_token, String msg)
- {
- int firsttok = super.getFirstErrorToken(error_token),
- lasttok = super.getLastErrorToken(error_token);
- String location = super.getFileName() + ':' +
- (firsttok > lasttok
- ? (super.getEndLine(lasttok) + ":" + super.getEndColumn(lasttok))
- : (super.getLine(error_token) + ":" +
- super.getColumn(error_token) + ":" +
- super.getEndLine(error_token) + ":" +
- super.getEndColumn(error_token)))
- + ": ";
- super.reportError((firsttok > lasttok ? ParseErrorCodes.INSERTION_CODE : ParseErrorCodes.SUBSTITUTION_CODE), location, msg);
- }
-
- public void parser()
- {
- parser(null, 0);
- }
-
- public void parser(Monitor monitor)
- {
- parser(monitor, 0);
- }
-
- public void parser(int error_repair_count)
- {
- parser(null, error_repair_count);
- }
-
- public void parser(Monitor monitor, int error_repair_count)
- {
- try
- {
- btParser = new FixedBacktrackingParser(monitor, this, prs, this);
- }
- catch (NotBacktrackParseTableException e)
- {
- throw new Error(new NotBacktrackParseTableException
- ("Regenerate UPCParserprs.java with -BACKTRACK option"));
- }
- catch (BadParseSymFileException e)
- {
- throw new Error(new BadParseSymFileException("Bad Parser Symbol File -- UPCParsersym.java"));
- }
-
- try
- {
- btParser.parse(error_repair_count);
- }
- catch (BadParseException e)
- {
- reset(e.error_token); // point to error token
- DiagnoseParser diagnoseParser = new DiagnoseParser(this, prs);
- diagnoseParser.diagnose(e.error_token);
- }
- }
-
-
-private UPCParserAction action;
-private IASTCompletionNode compNode;
-
-
-public UPCParser(IScanner scanner, IDOMTokenMap tokenMap, IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Map<String,String> properties) {
- initActions(properties);
- action.initializeTranslationUnit(scanner, builtinBindingsProvider, index);
- CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap);
+ private static ParseTable prs = new UPCParserprs();
+ private FixedBacktrackingParser btParser;
+
+ public FixedBacktrackingParser getParser() {
+ return btParser;
+ }
+
+ private void setResult(Object object) {
+ btParser.setSym1(object);
+ }
+
+ public Object getRhsSym(int i) {
+ return btParser.getSym(i);
+ }
+
+ public int getRhsTokenIndex(int i) {
+ return btParser.getToken(i);
+ }
+
+ public IToken getRhsIToken(int i) {
+ return super.getIToken(getRhsTokenIndex(i));
+ }
+
+ public int getRhsFirstTokenIndex(int i) {
+ return btParser.getFirstToken(i);
+ }
+
+ public IToken getRhsFirstIToken(int i) {
+ return super.getIToken(getRhsFirstTokenIndex(i));
+ }
+
+ public int getRhsLastTokenIndex(int i) {
+ return btParser.getLastToken(i);
+ }
+
+ public IToken getRhsLastIToken(int i) {
+ return super.getIToken(getRhsLastTokenIndex(i));
+ }
+
+ public int getLeftSpan() {
+ return btParser.getFirstToken();
+ }
+
+ @Override
+ public IToken getLeftIToken() {
+ return super.getIToken(getLeftSpan());
+ }
+
+ public int getRightSpan() {
+ return btParser.getLastToken();
+ }
+
+ @Override
+ public IToken getRightIToken() {
+ return super.getIToken(getRightSpan());
+ }
+
+ public int getRhsErrorTokenIndex(int i) {
+ int index = btParser.getToken(i);
+ IToken err = super.getIToken(index);
+ return (err instanceof ErrorToken ? index : 0);
+ }
+
+ public ErrorToken getRhsErrorIToken(int i) {
+ int index = btParser.getToken(i);
+ IToken err = super.getIToken(index);
+ return (ErrorToken) (err instanceof ErrorToken ? err : null);
+ }
+
+ public UPCParser(LexStream lexStream) {
+ super(lexStream);
+
+ try {
+ super.remapTerminalSymbols(orderedTerminalSymbols(), UPCParserprs.EOFT_SYMBOL);
+ } catch (NullExportedSymbolsException e) {
+ } catch (NullTerminalSymbolsException e) {
+ } catch (UnimplementedTerminalsException e) {
+ java.util.ArrayList unimplemented_symbols = e.getSymbols();
+ System.out.println("The Lexer will not scan the following token(s):");
+ for (int i = 0; i < unimplemented_symbols.size(); i++) {
+ Integer id = (Integer) unimplemented_symbols.get(i);
+ System.out.println(" " + UPCParsersym.orderedTerminalSymbols[id.intValue()]);
+ }
+ System.out.println();
+ } catch (UndefinedEofSymbolException e) {
+ throw new Error(new UndefinedEofSymbolException("The Lexer does not implement the Eof symbol "
+ + UPCParsersym.orderedTerminalSymbols[UPCParserprs.EOFT_SYMBOL]));
+ }
+ }
+
+ @Override
+ public String[] orderedTerminalSymbols() {
+ return UPCParsersym.orderedTerminalSymbols;
+ }
+
+ public String getTokenKindName(int kind) {
+ return UPCParsersym.orderedTerminalSymbols[kind];
+ }
+
+ public int getEOFTokenKind() {
+ return UPCParserprs.EOFT_SYMBOL;
+ }
+
+ public PrsStream getParseStream() {
+ return this;
+ }
+
+ //
+ // Report error message for given error_token.
+ //
+ public final void reportErrorTokenMessage(int error_token, String msg) {
+ int firsttok = super.getFirstErrorToken(error_token), lasttok = super.getLastErrorToken(error_token);
+ String location = super.getFileName() + ':'
+ + (firsttok > lasttok ? (super.getEndLine(lasttok) + ":" + super.getEndColumn(lasttok))
+ : (super.getLine(error_token) + ":" + super.getColumn(error_token) + ":"
+ + super.getEndLine(error_token) + ":" + super.getEndColumn(error_token)))
+ + ": ";
+ super.reportError((firsttok > lasttok ? ParseErrorCodes.INSERTION_CODE : ParseErrorCodes.SUBSTITUTION_CODE),
+ location, msg);
+ }
+
+ public void parser() {
+ parser(null, 0);
+ }
+
+ public void parser(Monitor monitor) {
+ parser(monitor, 0);
+ }
+
+ public void parser(int error_repair_count) {
+ parser(null, error_repair_count);
+ }
+
+ public void parser(Monitor monitor, int error_repair_count) {
+ try {
+ btParser = new FixedBacktrackingParser(monitor, this, prs, this);
+ } catch (NotBacktrackParseTableException e) {
+ throw new Error(new NotBacktrackParseTableException("Regenerate UPCParserprs.java with -BACKTRACK option"));
+ } catch (BadParseSymFileException e) {
+ throw new Error(new BadParseSymFileException("Bad Parser Symbol File -- UPCParsersym.java"));
+ }
+
+ try {
+ btParser.parse(error_repair_count);
+ } catch (BadParseException e) {
+ reset(e.error_token); // point to error token
+ DiagnoseParser diagnoseParser = new DiagnoseParser(this, prs);
+ diagnoseParser.diagnose(e.error_token);
+ }
+ }
+
+ private UPCParserAction action;
+ private IASTCompletionNode compNode;
+
+ public UPCParser(IScanner scanner, IDOMTokenMap tokenMap, IBuiltinBindingsProvider builtinBindingsProvider,
+ IIndex index, Map<String, String> properties) {
+ initActions(properties);
+ action.initializeTranslationUnit(scanner, builtinBindingsProvider, index);
+ CPreprocessorAdapter.runCPreprocessor(scanner, this, tokenMap);
+ }
+
+ private void initActions(Map<String, String> properties) {
+ ScopedStack<Object> astStack = new ScopedStack<Object>();
+
+ action = new UPCParserAction(this, astStack, new UPCASTNodeFactory(), UPCSecondaryParserFactory.getDefault());
+ action.setParserProperties(properties);
+
+ }
+
+ @Override
+ public void addToken(IToken token) {
+ token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called?
+ super.addToken(token);
+ }
+
+ @Override
+ public IASTTranslationUnit parse() {
+ // this has to be done, or... kaboom!
+ setStreamLength(getSize());
+
+ final int errorRepairCount = -1; // -1 means full error handling
+ parser(null, errorRepairCount); // do the actual parse
+ super.resetTokenStream(); // allow tokens to be garbage collected
+
+ compNode = action.getASTCompletionNode(); // the completion node may be null
+ return (IASTTranslationUnit) action.getParseResult();
+ }
+
+ @Override
+ public IASTCompletionNode getCompletionNode() {
+ return compNode;
+ }
+
+ // uncomment this method to use with backtracking parser
+ @Override
+ public List<IToken> getRuleTokens() {
+ return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
+ }
+
+ @Override
+ public String[] getOrderedTerminalSymbols() {
+ return UPCParsersym.orderedTerminalSymbols;
+ }
+
+ @Override
+ @SuppressWarnings("nls")
+ public String getName() {
+ return "UPCParser";
+ }
+
+ @Override
+ public void ruleAction(int ruleNumber) {
+ switch (ruleNumber) {
+
+ //
+ // Rule 1: <openscope-ast> ::= $Empty
+ //
+ case 1: {
+ action.openASTScope();
+ break;
+ }
+
+ //
+ // Rule 2: <empty> ::= $Empty
+ //
+ case 2: {
+ action.consumeEmpty();
+ break;
+ }
+
+ //
+ // Rule 13: literal ::= integer
+ //
+ case 13: {
+ action.consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant);
+ break;
+ }
+
+ //
+ // Rule 14: literal ::= floating
+ //
+ case 14: {
+ action.consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant);
+ break;
+ }
+
+ //
+ // Rule 15: literal ::= charconst
+ //
+ case 15: {
+ action.consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant);
+ break;
+ }
+
+ //
+ // Rule 16: literal ::= stringlit
+ //
+ case 16: {
+ action.consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal);
+ break;
+ }
+
+ //
+ // Rule 18: primary_expression ::= primary_expression_id
+ //
+ case 18: {
+ action.consumeExpressionID();
+ break;
+ }
+
+ //
+ // Rule 19: primary_expression ::= ( expression )
+ //
+ case 19: {
+ action.consumeExpressionBracketed();
+ break;
+ }
+
+ //
+ // Rule 22: postfix_expression ::= postfix_expression [ expression ]
+ //
+ case 22: {
+ action.consumeExpressionArraySubscript();
+ break;
+ }
+
+ //
+ // Rule 23: postfix_expression ::= postfix_expression ( expression_list_opt )
+ //
+ case 23: {
+ action.consumeExpressionFunctionCall();
+ break;
+ }
+
+ //
+ // Rule 24: postfix_expression ::= postfix_expression . member_name
+ //
+ case 24: {
+ action.consumeExpressionFieldReference(false);
+ break;
+ }
+
+ //
+ // Rule 25: postfix_expression ::= postfix_expression -> member_name
+ //
+ case 25: {
+ action.consumeExpressionFieldReference(true);
+ break;
+ }
+
+ //
+ // Rule 26: postfix_expression ::= postfix_expression ++
+ //
+ case 26: {
+ action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr);
+ break;
+ }
+
+ //
+ // Rule 27: postfix_expression ::= postfix_expression --
+ //
+ case 27: {
+ action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr);
+ break;
+ }
+
+ //
+ // Rule 28: postfix_expression ::= ( type_id ) initializer_list
+ //
+ case 28: {
+ action.consumeExpressionTypeIdInitializer();
+ break;
+ }
+
+ //
+ // Rule 33: unary_expression ::= ++ unary_expression
+ //
+ case 33: {
+ action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr);
+ break;
+ }
+
+ //
+ // Rule 34: unary_expression ::= -- unary_expression
+ //
+ case 34: {
+ action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr);
+ break;
+ }
+
+ //
+ // Rule 35: unary_expression ::= & cast_expression
+ //
+ case 35: {
+ action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper);
+ break;
+ }
+
+ //
+ // Rule 36: unary_expression ::= * cast_expression
+ //
+ case 36: {
+ action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_star);
+ break;
+ }
+
+ //
+ // Rule 37: unary_expression ::= + cast_expression
+ //
+ case 37: {
+ action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus);
+ break;
+ }
+
+ //
+ // Rule 38: unary_expression ::= - cast_expression
+ //
+ case 38: {
+ action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus);
+ break;
+ }
+
+ //
+ // Rule 39: unary_expression ::= ~ cast_expression
+ //
+ case 39: {
+ action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde);
+ break;
+ }
+
+ //
+ // Rule 40: unary_expression ::= ! cast_expression
+ //
+ case 40: {
+ action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_not);
+ break;
+ }
+
+ //
+ // Rule 41: unary_expression ::= sizeof unary_expression
+ //
+ case 41: {
+ action.consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof);
+ break;
+ }
+
+ //
+ // Rule 42: unary_expression ::= sizeof ( type_id )
+ //
+ case 42: {
+ action.consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof);
+ break;
+ }
+
+ //
+ // Rule 44: cast_expression ::= ( type_id ) cast_expression
+ //
+ case 44: {
+ action.consumeExpressionCast(IASTCastExpression.op_cast);
+ break;
+ }
+
+ //
+ // Rule 46: multiplicative_expression ::= multiplicative_expression * cast_expression
+ //
+ case 46: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply);
+ break;
+ }
+
+ //
+ // Rule 47: multiplicative_expression ::= multiplicative_expression / cast_expression
+ //
+ case 47: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide);
+ break;
+ }
+
+ //
+ // Rule 48: multiplicative_expression ::= multiplicative_expression % cast_expression
+ //
+ case 48: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo);
+ break;
+ }
+
+ //
+ // Rule 50: additive_expression ::= additive_expression + multiplicative_expression
+ //
+ case 50: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus);
+ break;
+ }
+
+ //
+ // Rule 51: additive_expression ::= additive_expression - multiplicative_expression
+ //
+ case 51: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus);
+ break;
+ }
+
+ //
+ // Rule 53: shift_expression ::= shift_expression << additive_expression
+ //
+ case 53: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft);
+ break;
+ }
+
+ //
+ // Rule 54: shift_expression ::= shift_expression >> additive_expression
+ //
+ case 54: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight);
+ break;
+ }
+
+ //
+ // Rule 56: relational_expression ::= relational_expression < shift_expression
+ //
+ case 56: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan);
+ break;
+ }
+
+ //
+ // Rule 57: relational_expression ::= relational_expression > shift_expression
+ //
+ case 57: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan);
+ break;
+ }
+
+ //
+ // Rule 58: relational_expression ::= relational_expression <= shift_expression
+ //
+ case 58: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual);
+ break;
+ }
+
+ //
+ // Rule 59: relational_expression ::= relational_expression >= shift_expression
+ //
+ case 59: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual);
+ break;
+ }
+
+ //
+ // Rule 61: equality_expression ::= equality_expression == relational_expression
+ //
+ case 61: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals);
+ break;
+ }
+
+ //
+ // Rule 62: equality_expression ::= equality_expression != relational_expression
+ //
+ case 62: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals);
+ break;
+ }
+
+ //
+ // Rule 64: and_expression ::= and_expression & equality_expression
+ //
+ case 64: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd);
+ break;
+ }
+
+ //
+ // Rule 66: exclusive_or_expression ::= exclusive_or_expression ^ and_expression
+ //
+ case 66: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor);
+ break;
+ }
+
+ //
+ // Rule 68: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression
+ //
+ case 68: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr);
+ break;
+ }
+
+ //
+ // Rule 70: logical_and_expression ::= logical_and_expression && inclusive_or_expression
+ //
+ case 70: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd);
+ break;
+ }
+
+ //
+ // Rule 72: logical_or_expression ::= logical_or_expression || logical_and_expression
+ //
+ case 72: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr);
+ break;
+ }
+
+ //
+ // Rule 74: conditional_expression ::= logical_or_expression ? expression : assignment_expression
+ //
+ case 74: {
+ action.consumeExpressionConditional();
+ break;
+ }
+
+ //
+ // Rule 76: assignment_expression ::= unary_expression = assignment_expression
+ //
+ case 76: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign);
+ break;
+ }
+
+ //
+ // Rule 77: assignment_expression ::= unary_expression *= assignment_expression
+ //
+ case 77: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign);
+ break;
+ }
+
+ //
+ // Rule 78: assignment_expression ::= unary_expression /= assignment_expression
+ //
+ case 78: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign);
+ break;
+ }
+
+ //
+ // Rule 79: assignment_expression ::= unary_expression %= assignment_expression
+ //
+ case 79: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign);
+ break;
+ }
+
+ //
+ // Rule 80: assignment_expression ::= unary_expression += assignment_expression
+ //
+ case 80: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign);
+ break;
+ }
+
+ //
+ // Rule 81: assignment_expression ::= unary_expression -= assignment_expression
+ //
+ case 81: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign);
+ break;
+ }
+
+ //
+ // Rule 82: assignment_expression ::= unary_expression <<= assignment_expression
+ //
+ case 82: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign);
+ break;
+ }
+
+ //
+ // Rule 83: assignment_expression ::= unary_expression >>= assignment_expression
+ //
+ case 83: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign);
+ break;
+ }
+
+ //
+ // Rule 84: assignment_expression ::= unary_expression &= assignment_expression
+ //
+ case 84: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign);
+ break;
+ }
+
+ //
+ // Rule 85: assignment_expression ::= unary_expression ^= assignment_expression
+ //
+ case 85: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign);
+ break;
+ }
+
+ //
+ // Rule 86: assignment_expression ::= unary_expression |= assignment_expression
+ //
+ case 86: {
+ action.consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign);
+ break;
+ }
+
+ //
+ // Rule 89: expression_list ::= <openscope-ast> expression_list_actual
+ //
+ case 89: {
+ action.consumeExpressionList();
+ break;
+ }
+
+ //
+ // Rule 91: expression_list_opt ::= $Empty
+ //
+ case 91: {
+ action.consumeEmpty();
+ break;
+ }
+
+ //
+ // Rule 101: statement ::= ERROR_TOKEN
+ //
+ case 101: {
+ action.consumeStatementProblem();
+ break;
+ }
+
+ //
+ // Rule 102: labeled_statement ::= identifier_token : statement
+ //
+ case 102: {
+ action.consumeStatementLabeled();
+ break;
+ }
+
+ //
+ // Rule 103: labeled_statement ::= case constant_expression : statement
+ //
+ case 103: {
+ action.consumeStatementCase();
+ break;
+ }
+
+ //
+ // Rule 104: labeled_statement ::= default : statement
+ //
+ case 104: {
+ action.consumeStatementDefault();
+ break;
+ }
+
+ //
+ // Rule 105: compound_statement ::= { }
+ //
+ case 105: {
+ action.consumeStatementCompoundStatement(false);
+ break;
+ }
+
+ //
+ // Rule 106: compound_statement ::= { <openscope-ast> block_item_list }
+ //
+ case 106: {
+ action.consumeStatementCompoundStatement(true);
+ break;
+ }
+
+ //
+ // Rule 110: block_item ::= declaration
+ //
+ case 110: {
+ action.consumeStatementDeclarationWithDisambiguation();
+ break;
+ }
+
+ //
+ // Rule 111: expression_statement ::= ;
+ //
+ case 111: {
+ action.consumeStatementNull();
+ break;
+ }
+
+ //
+ // Rule 112: expression_statement ::= expression_in_statement ;
+ //
+ case 112: {
+ action.consumeStatementExpression();
+ break;
+ }
+
+ //
+ // Rule 113: selection_statement ::= if ( expression ) statement
+ //
+ case 113: {
+ action.consumeStatementIf(false);
+ break;
+ }
+
+ //
+ // Rule 114: selection_statement ::= if ( expression ) statement else statement
+ //
+ case 114: {
+ action.consumeStatementIf(true);
+ break;
+ }
+
+ //
+ // Rule 115: selection_statement ::= switch ( expression ) statement
+ //
+ case 115: {
+ action.consumeStatementSwitch();
+ break;
+ }
+
+ //
+ // Rule 117: expression_opt ::= $Empty
+ //
+ case 117: {
+ action.consumeEmpty();
+ break;
+ }
+
+ //
+ // Rule 118: iteration_statement ::= do statement while ( expression ) ;
+ //
+ case 118: {
+ action.consumeStatementDoLoop(true);
+ break;
+ }
+
+ //
+ // Rule 119: iteration_statement ::= do statement
+ //
+ case 119: {
+ action.consumeStatementDoLoop(false);
+ break;
+ }
+
+ //
+ // Rule 120: iteration_statement ::= while ( expression ) statement
+ //
+ case 120: {
+ action.consumeStatementWhileLoop();
+ break;
+ }
+
+ //
+ // Rule 121: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement
+ //
+ case 121: {
+ action.consumeStatementForLoop();
+ break;
+ }
+
+ //
+ // Rule 122: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement
+ //
+ case 122: {
+ action.consumeStatementForLoop();
+ break;
+ }
+
+ //
+ // Rule 123: jump_statement ::= goto identifier_token ;
+ //
+ case 123: {
+ action.consumeStatementGoto();
+ break;
+ }
+
+ //
+ // Rule 124: jump_statement ::= continue ;
+ //
+ case 124: {
+ action.consumeStatementContinue();
+ break;
+ }
+
+ //
+ // Rule 125: jump_statement ::= break ;
+ //
+ case 125: {
+ action.consumeStatementBreak();
+ break;
+ }
+
+ //
+ // Rule 126: jump_statement ::= return ;
+ //
+ case 126: {
+ action.consumeStatementReturn(false);
+ break;
+ }
+
+ //
+ // Rule 127: jump_statement ::= return expression ;
+ //
+ case 127: {
+ action.consumeStatementReturn(true);
+ break;
+ }
+
+ //
+ // Rule 128: declaration ::= declaration_specifiers ;
+ //
+ case 128: {
+ action.consumeDeclarationSimple(false);
+ break;
+ }
+
+ //
+ // Rule 129: declaration ::= declaration_specifiers <openscope-ast> init_declarator_list ;
+ //
+ case 129: {
+ action.consumeDeclarationSimple(true);
+ break;
+ }
+
+ //
+ // Rule 130: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
+ //
+ case 130: {
+ action.consumeDeclarationSpecifiersSimple();
+ break;
+ }
+
+ //
+ // Rule 131: declaration_specifiers ::= <openscope-ast> struct_or_union_declaration_specifiers
+ //
+ case 131: {
+ action.consumeDeclarationSpecifiersStructUnionEnum();
+ break;
+ }
+
+ //
+ // Rule 132: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
+ //
+ case 132: {
+ action.consumeDeclarationSpecifiersStructUnionEnum();
+ break;
+ }
+
+ //
+ // Rule 133: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
+ //
+ case 133: {
+ action.consumeDeclarationSpecifiersStructUnionEnum();
+ break;
+ }
+
+ //
+ // Rule 134: declaration_specifiers ::= <openscope-ast> typdef_name_declaration_specifiers
+ //
+ case 134: {
+ action.consumeDeclarationSpecifiersTypedefName();
+ break;
+ }
+
+ //
+ // Rule 159: init_declarator ::= complete_declarator = initializer
+ //
+ case 159: {
+ action.consumeDeclaratorWithInitializer(true);
+ break;
+ }
+
+ //
+ // Rule 161: storage_class_specifier ::= storage_class_specifier_token
+ //
+ case 161: {
+ action.consumeToken();
+ break;
+ }
+
+ //
+ // Rule 167: simple_type_specifier ::= simple_type_specifier_token
+ //
+ case 167: {
+ action.consumeToken();
+ break;
+ }
+
+ //
+ // Rule 180: type_name_specifier ::= identifier_token
+ //
+ case 180: {
+ action.consumeToken();
+ break;
+ }
+
+ //
+ // Rule 181: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { <openscope-ast> struct_declaration_list_opt }
+ //
+ case 181: {
+ action.consumeTypeSpecifierComposite(false);
+ break;
+ }
+
+ //
+ // Rule 182: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { <openscope-ast> struct_declaration_list_opt }
+ //
+ case 182: {
+ action.consumeTypeSpecifierComposite(true);
+ break;
+ }
+
+ //
+ // Rule 187: elaborated_specifier ::= struct elaborated_specifier_hook identifier_token
+ //
+ case 187: {
+ action.consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct);
+ break;
+ }
+
+ //
+ // Rule 188: elaborated_specifier ::= union elaborated_specifier_hook identifier_token
+ //
+ case 188: {
+ action.consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union);
+ break;
+ }
+
+ //
+ // Rule 189: elaborated_specifier ::= enum elaborated_specifier_hook identifier_token
+ //
+ case 189: {
+ action.consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum);
+ break;
+ }
+
+ //
+ // Rule 195: struct_declaration ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ;
+ //
+ case 195: {
+ action.consumeStructDeclaration(true);
+ break;
+ }
+
+ //
+ // Rule 196: struct_declaration ::= specifier_qualifier_list ;
+ //
+ case 196: {
+ action.consumeStructDeclaration(false);
+ break;
+ }
+
+ //
+ // Rule 197: struct_declaration ::= ERROR_TOKEN
+ //
+ case 197: {
+ action.consumeDeclarationProblem();
+ break;
+ }
+
+ //
+ // Rule 203: struct_declarator ::= : constant_expression
+ //
+ case 203: {
+ action.consumeBitField(false);
+ break;
+ }
+
+ //
+ // Rule 204: struct_declarator ::= declarator : constant_expression
+ //
+ case 204: {
+ action.consumeBitField(true);
+ break;
+ }
+
+ //
+ // Rule 205: enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
+ //
+ case 205: {
+ action.consumeTypeSpecifierEnumeration(false);
+ break;
+ }
+
+ //
+ // Rule 206: enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
+ //
+ case 206: {
+ action.consumeTypeSpecifierEnumeration(true);
+ break;
+ }
+
+ //
+ // Rule 212: enumerator ::= identifier_token
+ //
+ case 212: {
+ action.consumeEnumerator(false);
+ break;
+ }
+
+ //
+ // Rule 213: enumerator ::= identifier_token = constant_expression
+ //
+ case 213: {
+ action.consumeEnumerator(true);
+ break;
+ }
+
+ //
+ // Rule 214: type_qualifier ::= type_qualifier_token
+ //
+ case 214: {
+ action.consumeToken();
+ break;
+ }
+
+ //
+ // Rule 218: function_specifier ::= inline
+ //
+ case 218: {
+ action.consumeToken();
+ break;
+ }
+
+ //
+ // Rule 220: declarator ::= <openscope-ast> pointer_seq direct_declarator
+ //
+ case 220: {
+ action.consumeDeclaratorWithPointer(true);
+ break;
+ }
+
+ //
+ // Rule 225: basic_direct_declarator ::= declarator_id_name
+ //
+ case 225: {
+ action.consumeDirectDeclaratorIdentifier();
+ break;
+ }
+
+ //
+ // Rule 226: basic_direct_declarator ::= ( declarator )
+ //
+ case 226: {
+ action.consumeDirectDeclaratorBracketed();
+ break;
+ }
+
+ //
+ // Rule 227: declarator_id_name ::= identifier
+ //
+ case 227: {
+ action.consumeIdentifierName();
+ break;
+ }
+
+ //
+ // Rule 228: array_direct_declarator ::= basic_direct_declarator array_modifier
+ //
+ case 228: {
+ action.consumeDirectDeclaratorArrayDeclarator(true);
+ break;
+ }
+
+ //
+ // Rule 229: array_direct_declarator ::= array_direct_declarator array_modifier
+ //
+ case 229: {
+ action.consumeDirectDeclaratorArrayDeclarator(true);
+ break;
+ }
+
+ //
+ // Rule 231: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_type_list )
+ //
+ case 231: {
+ action.consumeDirectDeclaratorFunctionDeclarator(true, true);
+ break;
+ }
+
+ //
+ // Rule 232: function_direct_declarator ::= basic_direct_declarator ( )
+ //
+ case 232: {
+ action.consumeDirectDeclaratorFunctionDeclarator(true, false);
+ break;
+ }
+
+ //
+ // Rule 234: function_declarator ::= <openscope-ast> pointer_seq function_direct_declarator
+ //
+ case 234: {
+ action.consumeDeclaratorWithPointer(true);
+ break;
+ }
+
+ //
+ // Rule 235: knr_direct_declarator ::= basic_direct_declarator ( <openscope-ast> identifier_list )
+ //
+ case 235: {
+ action.consumeDirectDeclaratorFunctionDeclaratorKnR();
+ break;
+ }
+
+ //
+ // Rule 237: knr_function_declarator ::= <openscope-ast> pointer_seq knr_direct_declarator
+ //
+ case 237: {
+ action.consumeDeclaratorWithPointer(true);
+ break;
+ }
+
+ //
+ // Rule 238: identifier_list ::= identifier
+ //
+ case 238: {
+ action.consumeIdentifierKnR();
+ break;
+ }
+
+ //
+ // Rule 239: identifier_list ::= identifier_list , identifier
+ //
+ case 239: {
+ action.consumeIdentifierKnR();
+ break;
+ }
+
+ //
+ // Rule 240: array_modifier ::= [ ]
+ //
+ case 240: {
+ action.consumeDirectDeclaratorArrayModifier(false);
+ break;
+ }
+
+ //
+ // Rule 241: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ]
+ //
+ case 241: {
+ action.consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false);
+ break;
+ }
+
+ //
+ // Rule 242: array_modifier ::= [ assignment_expression ]
+ //
+ case 242: {
+ action.consumeDirectDeclaratorArrayModifier(true);
+ break;
+ }
+
+ //
+ // Rule 243: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
+ //
+ case 243: {
+ action.consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true);
+ break;
+ }
+
+ //
+ // Rule 244: array_modifier ::= [ static assignment_expression ]
+ //
+ case 244: {
+ action.consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true);
+ break;
+ }
+
+ //
+ // Rule 245: array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
+ //
+ case 245: {
+ action.consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true);
+ break;
+ }
+
+ //
+ // Rule 246: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ]
+ //
+ case 246: {
+ action.consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true);
+ break;
+ }
+
+ //
+ // Rule 247: array_modifier ::= [ * ]
+ //
+ case 247: {
+ action.consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false);
+ break;
+ }
+
+ //
+ // Rule 248: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ]
+ //
+ case 248: {
+ action.consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false);
+ break;
+ }
+
+ //
+ // Rule 250: pointer_seq ::= pointer_hook * pointer_hook
+ //
+ case 250: {
+ action.consumePointer();
+ break;
+ }
+
+ //
+ // Rule 251: pointer_seq ::= pointer_seq pointer_hook * pointer_hook
+ //
+ case 251: {
+ action.consumePointer();
+ break;
+ }
+
+ //
+ // Rule 252: pointer_seq ::= pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
+ //
+ case 252: {
+ action.consumePointerTypeQualifierList();
+ break;
+ }
+
+ //
+ // Rule 253: pointer_seq ::= pointer_seq pointer_hook * pointer_hook <openscope-ast> type_qualifier_list
+ //
+ case 253: {
+ action.consumePointerTypeQualifierList();
+ break;
+ }
+
+ //
+ // Rule 257: parameter_type_list ::= parameter_list
+ //
+ case 257: {
+ action.consumeEmpty();
+ break;
+ }
+
+ //
+ // Rule 258: parameter_type_list ::= parameter_list , ...
+ //
+ case 258: {
+ action.consumePlaceHolder();
+ break;
+ }
+
+ //
+ // Rule 259: parameter_type_list ::= ...
+ //
+ case 259: {
+ action.consumePlaceHolder();
+ break;
+ }
+
+ //
+ // Rule 262: parameter_declaration ::= declaration_specifiers complete_parameter_declarator
+ //
+ case 262: {
+ action.consumeParameterDeclaration();
+ break;
+ }
+
+ //
+ // Rule 263: parameter_declaration ::= declaration_specifiers
+ //
+ case 263: {
+ action.consumeParameterDeclarationWithoutDeclarator();
+ break;
+ }
+
+ //
+ // Rule 266: type_id ::= specifier_qualifier_list
+ //
+ case 266: {
+ action.consumeTypeId(false);
+ break;
+ }
+
+ //
+ // Rule 267: type_id ::= specifier_qualifier_list abstract_declarator
+ //
+ case 267: {
+ action.consumeTypeId(true);
+ break;
+ }
+
+ //
+ // Rule 269: abstract_declarator ::= <openscope-ast> pointer_seq
+ //
+ case 269: {
+ action.consumeDeclaratorWithPointer(false);
+ break;
+ }
+
+ //
+ // Rule 270: abstract_declarator ::= <openscope-ast> pointer_seq direct_abstract_declarator
+ //
+ case 270: {
+ action.consumeDeclaratorWithPointer(true);
+ break;
+ }
+
+ //
+ // Rule 274: basic_direct_abstract_declarator ::= ( abstract_declarator )
+ //
+ case 274: {
+ action.consumeDirectDeclaratorBracketed();
+ break;
+ }
+
+ //
+ // Rule 275: array_direct_abstract_declarator ::= array_modifier
+ //
+ case 275: {
+ action.consumeDirectDeclaratorArrayDeclarator(false);
+ break;
+ }
+
+ //
+ // Rule 276: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
+ //
+ case 276: {
+ action.consumeDirectDeclaratorArrayDeclarator(true);
+ break;
+ }
+
+ //
+ // Rule 277: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
+ //
+ case 277: {
+ action.consumeDirectDeclaratorArrayDeclarator(true);
+ break;
+ }
+
+ //
+ // Rule 278: function_direct_abstract_declarator ::= ( )
+ //
+ case 278: {
+ action.consumeDirectDeclaratorFunctionDeclarator(false, false);
+ break;
+ }
+
+ //
+ // Rule 279: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( )
+ //
+ case 279: {
+ action.consumeDirectDeclaratorFunctionDeclarator(true, false);
+ break;
+ }
+
+ //
+ // Rule 280: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list )
+ //
+ case 280: {
+ action.consumeDirectDeclaratorFunctionDeclarator(false, true);
+ break;
+ }
+
+ //
+ // Rule 281: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list )
+ //
+ case 281: {
+ action.consumeDirectDeclaratorFunctionDeclarator(true, true);
+ break;
+ }
+
+ //
+ // Rule 282: initializer ::= assignment_expression
+ //
+ case 282: {
+ action.consumeInitializer();
+ break;
+ }
+
+ //
+ // Rule 283: initializer ::= initializer_list
+ //
+ case 283: {
+ action.consumeInitializer();
+ break;
+ }
+
+ //
+ // Rule 284: initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq comma_opt } end_initializer_list
+ //
+ case 284: {
+ action.consumeInitializerList();
+ break;
+ }
+
+ //
+ // Rule 285: initializer_list ::= { <openscope-ast> }
+ //
+ case 285: {
+ action.consumeInitializerList();
+ break;
+ }
+
+ //
+ // Rule 286: start_initializer_list ::= $Empty
+ //
+ case 286: {
+ action.initializerListStart();
+ break;
+ }
+
+ //
+ // Rule 287: end_initializer_list ::= $Empty
+ //
+ case 287: {
+ action.initializerListEnd();
+ break;
+ }
+
+ //
+ // Rule 292: designated_initializer ::= <openscope-ast> designation = initializer
+ //
+ case 292: {
+ action.consumeInitializerDesignated();
+ break;
+ }
+
+ //
+ // Rule 296: designator_base ::= [ constant_expression ]
+ //
+ case 296: {
+ action.consumeDesignatorArray();
+ break;
+ }
+
+ //
+ // Rule 297: designator_base ::= . identifier_token
+ //
+ case 297: {
+ action.consumeDesignatorField();
+ break;
+ }
+
+ //
+ // Rule 298: designator ::= [ constant_expression ]
+ //
+ case 298: {
+ action.consumeDesignatorArray();
+ break;
+ }
+
+ //
+ // Rule 299: designator ::= . identifier_token
+ //
+ case 299: {
+ action.consumeDesignatorField();
+ break;
+ }
+
+ //
+ // Rule 300: translation_unit ::= external_declaration_list
+ //
+ case 300: {
+ action.consumeTranslationUnit();
+ break;
+ }
+
+ //
+ // Rule 301: translation_unit ::= $Empty
+ //
+ case 301: {
+ action.consumeTranslationUnit();
+ break;
+ }
+
+ //
+ // Rule 306: external_declaration ::= ;
+ //
+ case 306: {
+ action.consumeDeclarationEmpty();
+ break;
+ }
+
+ //
+ // Rule 307: external_declaration ::= ERROR_TOKEN
+ //
+ case 307: {
+ action.consumeDeclarationProblem();
+ break;
+ }
+
+ //
+ // Rule 311: function_definition ::= <openscope-ast> function_declarator function_body
+ //
+ case 311: {
+ action.consumeFunctionDefinition(false);
+ break;
+ }
+
+ //
+ // Rule 312: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
+ //
+ case 312: {
+ action.consumeFunctionDefinitionKnR();
+ break;
+ }
+
+ //
+ // Rule 313: normal_function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
+ //
+ case 313: {
+ action.consumeFunctionDefinition(true);
+ break;
+ }
+
+ //
+ // Rule 314: function_body ::= { }
+ //
+ case 314: {
+ action.consumeStatementCompoundStatement(false);
+ break;
+ }
+
+ //
+ // Rule 315: function_body ::= { <openscope-ast> block_item_list }
+ //
+ case 315: {
+ action.consumeStatementCompoundStatement(true);
+ break;
+ }
+
+ //
+ // Rule 316: literal ::= MYTHREAD
+ //
+ case 316: {
+ action.consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread);
+ break;
+ }
+
+ //
+ // Rule 317: literal ::= THREADS
+ //
+ case 317: {
+ action.consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads);
+ break;
+ }
+
+ //
+ // Rule 318: literal ::= UPC_MAX_BLOCKSIZE
+ //
+ case 318: {
+ action.consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size);
+ break;
+ }
+
+ //
+ // Rule 319: unary_expression ::= upc_localsizeof unary_expression
+ //
+ case 319: {
+ action.consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_localsizeof);
+ break;
+ }
+
+ //
+ // Rule 320: unary_expression ::= upc_localsizeof ( type_id )
+ //
+ case 320: {
+ action.consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_localsizeof);
+ break;
+ }
+
+ //
+ // Rule 321: unary_expression ::= upc_blocksizeof unary_expression
+ //
+ case 321: {
+ action.consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_blocksizeof);
+ break;
+ }
+
+ //
+ // Rule 322: unary_expression ::= upc_blocksizeof ( type_id )
+ //
+ case 322: {
+ action.consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_blocksizeof);
+ break;
+ }
+
+ //
+ // Rule 323: unary_expression ::= upc_elemsizeof unary_expression
+ //
+ case 323: {
+ action.consumeExpressionUnarySizeofOperator(IUPCASTUnarySizeofExpression.upc_elemsizeof);
+ break;
+ }
+
+ //
+ // Rule 324: unary_expression ::= upc_elemsizeof ( type_id )
+ //
+ case 324: {
+ action.consumeExpressionSizeofTypeId(IUPCASTUnarySizeofExpression.upc_elemsizeof);
+ break;
+ }
+
+ //
+ // Rule 328: shared_type_qualifier ::= shared
+ //
+ case 328: {
+ action.consumeToken();
+ break;
+ }
+
+ //
+ // Rule 329: reference_type_qualifier ::= relaxed
+ //
+ case 329: {
+ action.consumeToken();
+ break;
+ }
+
+ //
+ // Rule 330: reference_type_qualifier ::= strict
+ //
+ case 330: {
+ action.consumeToken();
+ break;
+ }
+
+ //
+ // Rule 331: layout_qualifier ::= [ constant_expression ]
+ //
+ case 331: {
+ action.consumeLayoutQualifier(true, false);
+ break;
+ }
+
+ //
+ // Rule 332: layout_qualifier ::= [ * ]
+ //
+ case 332: {
+ action.consumeLayoutQualifier(false, true);
+ break;
+ }
+
+ //
+ // Rule 333: layout_qualifier ::= [ ]
+ //
+ case 333: {
+ action.consumeLayoutQualifier(false, false);
+ break;
+ }
+
+ //
+ // Rule 335: synchronization_statement ::= upc_notify expression ;
+ //
+ case 335: {
+ action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true);
+ break;
+ }
+
+ //
+ // Rule 336: synchronization_statement ::= upc_notify ;
+ //
+ case 336: {
+ action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false);
+ break;
+ }
+
+ //
+ // Rule 337: synchronization_statement ::= upc_wait expression ;
+ //
+ case 337: {
+ action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true);
+ break;
+ }
+
+ //
+ // Rule 338: synchronization_statement ::= upc_wait ;
+ //
+ case 338: {
+ action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false);
+ break;
+ }
+
+ //
+ // Rule 339: synchronization_statement ::= upc_barrier expression ;
+ //
+ case 339: {
+ action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true);
+ break;
+ }
+
+ //
+ // Rule 340: synchronization_statement ::= upc_barrier ;
+ //
+ case 340: {
+ action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false);
+ break;
+ }
+
+ //
+ // Rule 341: synchronization_statement ::= upc_fence ;
+ //
+ case 341: {
+ action.consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false);
+ break;
+ }
+
+ //
+ // Rule 342: iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement
+ //
+ case 342: {
+ action.consumeStatementUPCForallLoop(true, true, true, true);
+ break;
+ }
+
+ //
+ // Rule 343: iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement
+ //
+ case 343: {
+ action.consumeStatementUPCForallLoop(true, true, true, false);
+ break;
+ }
+
+ //
+ // Rule 344: iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement
+ //
+ case 344: {
+ action.consumeStatementUPCForallLoop(true, true, false, true);
+ break;
+ }
+
+ //
+ // Rule 345: iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement
+ //
+ case 345: {
+ action.consumeStatementUPCForallLoop(true, true, false, false);
+ break;
+ }
+
+ //
+ // Rule 346: iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement
+ //
+ case 346: {
+ action.consumeStatementUPCForallLoop(true, false, true, true);
+ break;
+ }
+
+ //
+ // Rule 347: iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement
+ //
+ case 347: {
+ action.consumeStatementUPCForallLoop(true, false, true, false);
+ break;
+ }
+
+ //
+ // Rule 348: iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement
+ //
+ case 348: {
+ action.consumeStatementUPCForallLoop(true, false, false, true);
+ break;
+ }
+
+ //
+ // Rule 349: iteration_statement ::= upc_forall ( expression ; ; ; ) statement
+ //
+ case 349: {
+ action.consumeStatementUPCForallLoop(true, false, false, false);
+ break;
+ }
+
+ //
+ // Rule 350: iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement
+ //
+ case 350: {
+ action.consumeStatementUPCForallLoop(false, true, true, true);
+ break;
+ }
+
+ //
+ // Rule 351: iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement
+ //
+ case 351: {
+ action.consumeStatementUPCForallLoop(false, true, true, false);
+ break;
+ }
+
+ //
+ // Rule 352: iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement
+ //
+ case 352: {
+ action.consumeStatementUPCForallLoop(false, true, false, true);
+ break;
+ }
+
+ //
+ // Rule 353: iteration_statement ::= upc_forall ( ; expression ; ; ) statement
+ //
+ case 353: {
+ action.consumeStatementUPCForallLoop(false, true, false, false);
+ break;
+ }
+
+ //
+ // Rule 354: iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement
+ //
+ case 354: {
+ action.consumeStatementUPCForallLoop(false, false, true, true);
+ break;
+ }
+
+ //
+ // Rule 355: iteration_statement ::= upc_forall ( ; ; expression ; ) statement
+ //
+ case 355: {
+ action.consumeStatementUPCForallLoop(false, false, true, false);
+ break;
+ }
+
+ //
+ // Rule 356: iteration_statement ::= upc_forall ( ; ; ; affinity ) statement
+ //
+ case 356: {
+ action.consumeStatementUPCForallLoop(false, false, false, true);
+ break;
+ }
+
+ //
+ // Rule 357: iteration_statement ::= upc_forall ( ; ; ; ) statement
+ //
+ case 357: {
+ action.consumeStatementUPCForallLoop(false, false, false, false);
+ break;
+ }
+
+ //
+ // Rule 358: iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement
+ //
+ case 358: {
+ action.consumeStatementUPCForallLoop(true, true, true, true);
+ break;
+ }
+
+ //
+ // Rule 359: iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement
+ //
+ case 359: {
+ action.consumeStatementUPCForallLoop(true, true, true, false);
+ break;
+ }
+
+ //
+ // Rule 360: iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement
+ //
+ case 360: {
+ action.consumeStatementUPCForallLoop(true, true, false, true);
+ break;
+ }
+
+ //
+ // Rule 361: iteration_statement ::= upc_forall ( declaration expression ; ; ) statement
+ //
+ case 361: {
+ action.consumeStatementUPCForallLoop(true, true, false, false);
+ break;
+ }
+
+ //
+ // Rule 362: iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement
+ //
+ case 362: {
+ action.consumeStatementUPCForallLoop(true, false, true, true);
+ break;
+ }
+
+ //
+ // Rule 363: iteration_statement ::= upc_forall ( declaration ; expression ; ) statement
+ //
+ case 363: {
+ action.consumeStatementUPCForallLoop(true, false, true, false);
+ break;
+ }
+
+ //
+ // Rule 364: iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement
+ //
+ case 364: {
+ action.consumeStatementUPCForallLoop(true, false, false, true);
+ break;
+ }
+
+ //
+ // Rule 365: iteration_statement ::= upc_forall ( declaration ; ; ) statement
+ //
+ case 365: {
+ action.consumeStatementUPCForallLoop(true, false, false, false);
+ break;
+ }
+
+ //
+ // Rule 367: affinity ::= continue
+ //
+ case 367: {
+ action.consumeToken();
+ break;
+ }
+
+ default:
+ break;
+ }
+ return;
+ }
}
-
-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);
-
-
-}
-
-
-@Override
-public void addToken(IToken token) {
- token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called?
- super.addToken(token);
-}
-
-
-@Override
-public IASTTranslationUnit parse() {
- // this has to be done, or... kaboom!
- setStreamLength(getSize());
-
- final int errorRepairCount = -1; // -1 means full error handling
- parser(null, errorRepairCount); // do the actual parse
- super.resetTokenStream(); // allow tokens to be garbage collected
-
- compNode = action.getASTCompletionNode(); // the completion node may be null
- return ( IASTTranslationUnit ) action.getParseResult();
-}
-
-
-@Override
-public IASTCompletionNode getCompletionNode() {
- return compNode;
-}
-
-// uncomment this method to use with backtracking parser
-@Override
-public List<IToken> getRuleTokens() {
- return getTokens().subList(getLeftSpan(), getRightSpan() + 1);
-}
-
-@Override
-public String[] getOrderedTerminalSymbols() {
- return UPCParsersym.orderedTerminalSymbols;
-}
-
-@Override
-@SuppressWarnings("nls")
-public String getName() {
- return "UPCParser";
-}
-
-
- @Override
- public void ruleAction(int ruleNumber)
- {
- switch (ruleNumber)
- {
-
- //
- // Rule 1: <openscope-ast> ::= $Empty
- //
- case 1: { action. openASTScope(); break;
- }
-
- //
- // Rule 2: <empty> ::= $Empty
- //
- case 2: { action. consumeEmpty(); break;
- }
-
- //
- // Rule 13: literal ::= integer
- //
- case 13: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant); break;
- }
-
- //
- // Rule 14: literal ::= floating
- //
- case 14: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant); break;
- }
-
- //
- // Rule 15: literal ::= charconst
- //
- case 15: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant); break;
- }
-
- //
- // Rule 16: literal ::= stringlit
- //
- case 16: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal); break;
- }
-
- //
- // Rule 18: primary_expression ::= primary_expression_id
- //
- case 18: { action. consumeExpressionID(); break;
- }
-
- //
- // Rule 19: primary_expression ::= ( expression )
- //
- case 19: { action. consumeExpressionBracketed(); break;
- }
-
- //
- // Rule 22: postfix_expression ::= postfix_expression [ expression ]
- //
- case 22: { action. consumeExpressionArraySubscript(); break;
- }
-
- //
- // Rule 23: postfix_expression ::= postfix_expression ( expression_list_opt )
- //
- case 23: { action. consumeExpressionFunctionCall(); break;
- }
-
- //
- // Rule 24: postfix_expression ::= postfix_expression . member_name
- //
- case 24: { action. consumeExpressionFieldReference(false); break;
- }
-
- //
- // Rule 25: postfix_expression ::= postfix_expression -> member_name
- //
- case 25: { action. consumeExpressionFieldReference(true); break;
- }
-
- //
- // Rule 26: postfix_expression ::= postfix_expression ++
- //
- case 26: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break;
- }
-
- //
- // Rule 27: postfix_expression ::= postfix_expression --
- //
- case 27: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break;
- }
-
- //
- // Rule 28: postfix_expression ::= ( type_id ) initializer_list
- //
- case 28: { action. consumeExpressionTypeIdInitializer(); break;
- }
-
- //
- // Rule 33: unary_expression ::= ++ unary_expression
- //
- case 33: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break;
- }
-
- //
- // Rule 34: unary_expression ::= -- unary_expression
- //
- case 34: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break;
- }
-
- //
- // Rule 35: unary_expression ::= & cast_expression
- //
- case 35: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break;
- }
-
- //
- // Rule 36: unary_expression ::= * cast_expression
- //
- case 36: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break;
- }
-
- //
- // Rule 37: unary_expression ::= + cast_expression
- //
- case 37: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break;
- }
-
- //
- // Rule 38: unary_expression ::= - cast_expression
- //
- case 38: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break;
- }
-
- //
- // Rule 39: unary_expression ::= ~ cast_expression
- //
- case 39: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break;
- }
-
- //
- // Rule 40: unary_expression ::= ! cast_expression
- //
- case 40: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break;
- }
-
- //
- // Rule 41: unary_expression ::= sizeof unary_expression
- //
- case 41: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break;
- }
-
- //
- // Rule 42: unary_expression ::= sizeof ( type_id )
- //
- case 42: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof); break;
- }
-
- //
- // Rule 44: cast_expression ::= ( type_id ) cast_expression
- //
- case 44: { action. consumeExpressionCast(IASTCastExpression.op_cast); break;
- }
-
- //
- // Rule 46: multiplicative_expression ::= multiplicative_expression * cast_expression
- //
- case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break;
- }
-
- //
- // Rule 47: multiplicative_expression ::= multiplicative_expression / cast_expression
- //
- case 47: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break;
- }
-
- //
- // Rule 48: multiplicative_expression ::= multiplicative_expression % cast_expression
- //
- case 48: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break;
- }
-
- //
- // Rule 50: additive_expression ::= additive_expression + multiplicative_expression
- //
- case 50: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break;
- }
-
- //
- // Rule 51: additive_expression ::= additive_expression - multiplicative_expression
- //
- case 51: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break;
- }
-
- //
- // Rule 53: shift_expression ::= shift_expression << additive_expression
- //
- case 53: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break;
- }
-
- //
- // Rule 54: shift_expression ::= shift_expression >> additive_expression
- //
- case 54: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break;
- }
-
- //
- // Rule 56: relational_expression ::= relational_expression < shift_expression
- //
- case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break;
- }
-
- //
- // Rule 57: relational_expression ::= relational_expression > shift_expression
- //
- case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break;
- }
-
- //
- // Rule 58: relational_expression ::= relational_expression <= shift_expression
- //
- case 58: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break;
- }
-
- //
- // Rule 59: relational_expression ::= relational_expression >= shift_expression
- //
- case 59: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break;
- }
-
- //
- // Rule 61: equality_expression ::= equality_expression == relational_expression
- //
- case 61: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break;
- }
-
- //
- // Rule 62: equality_expression ::= equality_expression != relational_expression
- //
- case 62: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break;
- }
-
- //
- // Rule 64: and_expression ::= and_expression & equality_expression
- //
- case 64: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break;
- }
-
- //
- // Rule 66: exclusive_or_expression ::= exclusive_or_expression ^ and_expression
- //
- case 66: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break;
- }
-
- //
- // Rule 68: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression
- //
- case 68: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break;
- }
-
- //
- // Rule 70: logical_and_expression ::= logical_and_expression && inclusive_or_expression
- //
- case 70: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break;
- }
-
- //
- // Rule 72: logical_or_expression ::= logical_or_expression || logical_and_expression
- //
- case 72: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break;
- }
-
- //
- // Rule 74: conditional_expression ::= logical_or_expression ? expression : assignment_expression
- //
- case 74: { action. consumeExpressionConditional(); break;
- }
-
- //
- // Rule 76: assignment_expression ::= unary_expression = assignment_expression
- //
- case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break;
- }
-
- //
- // Rule 77: assignment_expression ::= unary_expression *= assignment_expression
- //
- case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break;
- }
-
- //
- // Rule 78: assignment_expression ::= unary_expression /= assignment_expression
- //
- case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break;
- }
-
- //
- // Rule 79: assignment_expression ::= unary_expression %= assignment_expression
- //
- case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break;
- }
-
- //
- // Rule 80: assignment_expression ::= unary_expression += assignment_expression
- //
- case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break;
- }
-
- //
- // Rule 81: assignment_expression ::= unary_expression -= assignment_expression
- //
- case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break;
- }
-
- //
- // Rule 82: assignment_expression ::= unary_expression <<= assignment_expression
- //
- case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break;
- }
-
- //
- // Rule 83: assignment_expression ::= unary_expression >>= assignment_expression
- //
- case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break;
- }
-
- //
- // Rule 84: assignment_expression ::= unary_expression &= assignment_expression
- //
- case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break;
- }
-
- //
- // Rule 85: assignment_expression ::= unary_expression ^= assignment_expression
- //
- case 85: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break;
- }
-
- //
- // Rule 86: assignment_expression ::= unary_expression |= assignment_expression
- //
- case 86: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break;
- }
-
- //
- // Rule 89: expression_list ::= <openscope-ast> expression_list_actual
- //
- case 89: { action. consumeExpressionList(); break;
- }
-
- //
- // Rule 91: expression_list_opt ::= $Empty
- //
- case 91: { action. consumeEmpty(); break;
- }
-
- //
- // Rule 101: statement ::= ERROR_TOKEN
- //
- case 101: { action. consumeStatementProblem(); break;
- }
-
- //
- // Rule 102: labeled_statement ::= identifier_token : statement
- //
- case 102: { action. consumeStatementLabeled(); break;
- }
-
- //
- // Rule 103: labeled_statement ::= case constant_expression : statement
- //
- case 103: { action. consumeStatementCase(); break;
- }
-
- //
- // Rule 104: labeled_statement ::= default : statement
- //
- case 104: { action. consumeStatementDefault(); break;
- }
-
- //
- // Rule 105: compound_statement ::= { }
- //
- case 105: { action. consumeStatementCompoundStatement(false); break;
- }
-
- //
- // Rule 106: compound_statement ::= { <openscope-ast> block_item_list }
- //
- case 106: { action. consumeStatementCompoundStatement(true); break;
- }
-
- //
- // Rule 110: block_item ::= declaration
- //
- case 110: { action. consumeStatementDeclarationWithDisambiguation(); break;
- }
-
- //
- // Rule 111: expression_statement ::= ;
- //
- case 111: { action. consumeStatementNull(); break;
- }
-
- //
- // Rule 112: expression_statement ::= expression_in_statement ;
- //
- case 112: { action. consumeStatementExpression(); break;
- }
-
- //
- // Rule 113: selection_statement ::= if ( expression ) statement
- //
- case 113: { action. consumeStatementIf(false); break;
- }
-
- //
- // Rule 114: selection_statement ::= if ( expression ) statement else statement
- //
- case 114: { action. consumeStatementIf(true); break;
- }
-
- //
- // Rule 115: selection_statement ::= switch ( expression ) statement
- //
- case 115: { action. consumeStatementSwitch(); break;
- }
-
- //
- // Rule 117: expression_opt ::= $Empty
- //
- case 117: { action. consumeEmpty(); break;
- }
-
- //
- // Rule 118: iteration_statement ::= do statement while ( expression ) ;
- //
- case 118: { action. consumeStatementDoLoop(true); break;
- }
-
- //
- // Rule 119: iteration_statement ::= do statement
- //
- case 119: { action. consumeStatementDoLoop(false); break;
- }
-
- //
- // Rule 120: iteration_statement ::= while ( expression ) statement
- //
- case 120: { action. consumeStatementWhileLoop(); break;
- }
-
- //
- // Rule 121: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement
- //
- case 121: { action. consumeStatementForLoop(); break;
- }
-
- //
- // Rule 122: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement
- //
- case 122: { action. consumeStatementForLoop(); break;
- }
-
- //
- // Rule 123: jump_statement ::= goto identifier_token ;
- //
- case 123: { action. consumeStatementGoto(); break;
- }
-
- //
- // Rule 124: jump_statement ::= continue ;
- //
- case 124: { action. consumeStatementContinue(); break;
- }
-
- //
- // Rule 125: jump_statement ::= break ;
- //
- case 125: { action. consumeStatementBreak(); break;
- }
-
- //
- // Rule 126: jump_statement ::= return ;
- //
- case 126: { action. consumeStatementReturn(false); break;
- }
-
- //
- // Rule 127: jump_statement ::= return expression ;
- //
- case 127: { action. consumeStatementReturn(true); break;
- }
-
- //
- // Rule 128: declaration ::= declaration_specifiers ;
- //
- case 128: { action. consumeDeclarationSimple(false); break;
- }
-
- //
- // Rule 129: declaration ::= declaration_specifiers <openscope-ast> init_declarator_list ;
- //
- case 129: { action. consumeDeclarationSimple(true); break;
- }
-
- //
- // Rule 130: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
- //
- case 130: { action. consumeDeclarationSpecifiersSimple(); break;
- }
-
- //
- // Rule 131: declaration_specifiers ::= <openscope-ast> struct_or_union_declaration_specifiers
- //
- case 131: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
- }
-
- //
- // Rule 132: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
- //
- case 132: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
- }
-
- //
- // Rule 133: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
- //
- case 133: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
- }
-
- //
- // Rule 134: declaration_specifiers ::= <openscope-ast> typdef_name_declaration_specifiers
- //
- case 134: { action. consumeDeclarationSpecifiersTypedefName(); break;
- }
-
- //
- // Rule 159: init_declarator ::= complete_declarator = initializer
- //
- case 159: { action. consumeDeclaratorWithInitializer(true); break;
- }
-
- //
- // Rule 161: storage_class_specifier ::= storage_class_specifier_token
- //
- case 161: { action. consumeToken(); break;
- }
-
- //
- // Rule 167: simple_type_specifier ::= simple_type_specifier_token
- //
- case 167: { action. consumeToken(); break;
- }
-
- //
- // Rule 180: type_name_specifier ::= identifier_token
- //
- case 180: { action. consumeToken(); break;
- }
-
- //
- // Rule 181: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook { <openscope-ast> struct_declaration_list_opt }
- //
- case 181: { action. consumeTypeSpecifierComposite(false); break;
- }
-
- //
- // Rule 182: struct_or_union_specifier ::= struct_or_union struct_or_union_specifier_hook identifier_token struct_or_union_specifier_suffix_hook { <openscope-ast> struct_declaration_list_opt }
- //
- case 182: { action. consumeTypeSpecifierComposite(true); break;
- }
-
- //
- // Rule 187: elaborated_specifier ::= struct elaborated_specifier_hook identifier_token
- //
- case 187: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break;
- }
-
- //
- // Rule 188: elaborated_specifier ::= union elaborated_specifier_hook identifier_token
- //
- case 188: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break;
- }
-
- //
- // Rule 189: elaborated_specifier ::= enum elaborated_specifier_hook identifier_token
- //
- case 189: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break;
- }
-
- //
- // Rule 195: struct_declaration ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ;
- //
- case 195: { action. consumeStructDeclaration(true); break;
- }
-
- //
- // Rule 196: struct_declaration ::= specifier_qualifier_list ;
- //
- case 196: { action. consumeStructDeclaration(false); break;
- }
-
- //
- // Rule 197: struct_declaration ::= ERROR_TOKEN
- //
- case 197: { action. consumeDeclarationProblem(); break;
- }
-
- //
- // Rule 203: struct_declarator ::= : constant_expression
- //
- case 203: { action. consumeBitField(false); break;
- }
-
- //
- // Rule 204: struct_declarator ::= declarator : constant_expression
- //
- case 204: { action. consumeBitField(true); break;
- }
-
- //
- // Rule 205: enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
- //
- case 205: { action. consumeTypeSpecifierEnumeration(false); break;
- }
-
- //
- // Rule 206: enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
- //
- case 206: { action. consumeTypeSpecifierEnumeration(true); break;
- }
-
- //
- // Rule 212: enumerator ::= identifier_token
- //
- case 212: { action. consumeEnumerator(false); break;
- }
-
- //
- // Rule 213: enumerator ::= identifier_token = constant_expression
- //
- case 213: { action. consumeEnumerator(true); break;
- }
-
- //
- // Rule 214: type_qualifier ::= type_qualifier_token
- //
- case 214: { action. consumeToken(); break;
- }
-
- //
- // Rule 218: function_specifier ::= inline
- //
- case 218: { action. consumeToken(); break;
- }
-
- //
- // Rule 220: declarator ::= <openscope-ast> pointer_seq direct_declarator
- //
- case 220: { action. consumeDeclaratorWithPointer(true); break;
- }
-
- //
- // Rule 225: basic_direct_declarator ::= declarator_id_name
- //
- case 225: { action. consumeDirectDeclaratorIdentifier(); break;
- }
-
- //
- // Rule 226: basic_direct_declarator ::= ( declarator )
- //
- case 226: { action. consumeDirectDeclaratorBracketed(); break;
- }
-
- //
- // Rule 227: declarator_id_name ::= identifier
- //
- case 227: { action. consumeIdentifierName(); break;
- }
-
- //
- // Rule 228: array_direct_declarator ::= basic_direct_declarator array_modifier
- //
- case 228: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
- }
-
- //
- // Rule 229: array_direct_declarator ::= array_direct_declarator array_modifier
- //
- case 229: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
- }
-
- //
- // Rule 231: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_type_list )
- //
- case 231: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
- }
-
- //
- // Rule 232: function_direct_declarator ::= basic_direct_declarator ( )
- //
- case 232: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
- }
-
- //
- // Rule 234: function_declarator ::= <openscope-ast> pointer_seq function_direct_declarator
- //
- case 234: { action. consumeDeclaratorWithPointer(true); break;
- }
-
- //
- // Rule 235: knr_direct_declarator ::= basic_direct_declarator ( <openscope-ast> identifier_list )
- //
- case 235: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break;
- }
-
- //
- // Rule 237: knr_function_declarator ::= <openscope-ast> pointer_seq knr_direct_declarator
- //
- case 237: { action. consumeDeclaratorWithPointer(true); break;
- }
-
- //
- // Rule 238: identifier_list ::= identifier
- //
- case 238: { action. consumeIdentifierKnR(); break;
- }
-
- //
- // Rule 239: identifier_list ::= identifier_list , identifier
- //
- case 239: { action. consumeIdentifierKnR(); break;
- }
-
- //
- // Rule 240: array_modifier ::= [ ]
- //
- case 240: { action. consumeDirectDeclaratorArrayModifier(false); break;
- }
-
- //