Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Kucera2008-04-09 19:42:34 +0000
committerMike Kucera2008-04-09 19:42:34 +0000
commit4023986654b2b9a9dbeef28c90daba5b7e0df5b6 (patch)
treedbf091a717ecdcf36854f8b51ae2a9566255e0c1
parentfe4712050093d461ee2899732be79a6bf6b9158b (diff)
downloadorg.eclipse.cdt-4023986654b2b9a9dbeef28c90daba5b7e0df5b6.tar.gz
org.eclipse.cdt-4023986654b2b9a9dbeef28c90daba5b7e0df5b6.tar.xz
org.eclipse.cdt-4023986654b2b9a9dbeef28c90daba5b7e0df5b6.zip
added disambiguation parsers for UPC
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99CommentTests.java3
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99CompleteParser2Tests.java3
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99CompletionBasicTest.java3
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99CompletionParseTest.java2
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99DOMLocationInclusionTests.java7
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99DOMLocationMacroTests.java3
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99DOMLocationTests.java3
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99DOMPreprocessorInformationTest.java3
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99DigraphTrigraphTests.java1
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99GCCTests.java3
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99KnRTests.java3
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99SelectionParseTest.java3
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99SpecTests.java3
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99TaskParserTest.java3
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99Tests.java3
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99UtilOldTests.java3
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99UtilTests.java3
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCLanguageExtensionTests.java12
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/grammar/build.xml12
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCExpressionStatementParser.g23
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCGrammarExtensions.g218
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCNoCastExpressionParser.g23
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCParser.g231
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCSizeofExpressionParser.g30
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCParserAction.java29
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/UPCLanguage.java5
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTDeclSpecifier.java2
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionStatementParser.java1552
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionStatementParserprs.java1279
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionStatementParsersym.java238
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParser.java1545
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParserprs.java1246
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParsersym.java238
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParser.java12
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParser.java1527
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParserprs.java1217
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParsersym.java238
37 files changed, 9432 insertions, 297 deletions
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99CommentTests.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99CommentTests.java
index 5c50b226a70..376f0418128 100644
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99CommentTests.java
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99CommentTests.java
@@ -16,7 +16,8 @@ import org.eclipse.cdt.core.lrparser.tests.c99.C99CommentTests;
public class UPCC99CommentTests extends C99CommentTests {
- protected BaseExtensibleLanguage getLanguage() {
+ @Override
+ protected BaseExtensibleLanguage getC99Language() {
return UPCLanguage.getDefault();
}
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99CompleteParser2Tests.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99CompleteParser2Tests.java
index 015bc419a80..d5d9fba2361 100644
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99CompleteParser2Tests.java
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99CompleteParser2Tests.java
@@ -16,7 +16,8 @@ import org.eclipse.cdt.core.lrparser.tests.c99.C99CompleteParser2Tests;
public class UPCC99CompleteParser2Tests extends C99CompleteParser2Tests {
- protected BaseExtensibleLanguage getLanguage() {
+ @Override
+ protected BaseExtensibleLanguage getC99Language() {
return UPCLanguage.getDefault();
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99CompletionBasicTest.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99CompletionBasicTest.java
index 02824c7e266..287c7d6fdee 100644
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99CompletionBasicTest.java
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99CompletionBasicTest.java
@@ -18,7 +18,8 @@ public class UPCC99CompletionBasicTest extends C99CompletionBasicTest {
public UPCC99CompletionBasicTest() { }
- protected BaseExtensibleLanguage getLanguage() {
+ @Override
+ protected BaseExtensibleLanguage getC99Language() {
return C99Language.getDefault();
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99CompletionParseTest.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99CompletionParseTest.java
index 383c2e17ee5..560d604adb3 100644
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99CompletionParseTest.java
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99CompletionParseTest.java
@@ -19,7 +19,7 @@ public class UPCC99CompletionParseTest extends C99CompletionParseTest {
public UPCC99CompletionParseTest() { }
public UPCC99CompletionParseTest(String name) { super(name); }
-
+ @Override
protected BaseExtensibleLanguage getLanguage() {
return UPCLanguage.getDefault();
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99DOMLocationInclusionTests.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99DOMLocationInclusionTests.java
index 9219c703a4d..c236bf00c93 100644
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99DOMLocationInclusionTests.java
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99DOMLocationInclusionTests.java
@@ -19,15 +19,12 @@ public class UPCC99DOMLocationInclusionTests extends C99DOMLocationInclusionTest
public UPCC99DOMLocationInclusionTests() {
}
- public UPCC99DOMLocationInclusionTests(String name, Class className) {
- super(name, className);
- }
-
public UPCC99DOMLocationInclusionTests(String name) {
super(name);
}
- protected BaseExtensibleLanguage getLanguage() {
+ @Override
+ protected BaseExtensibleLanguage getC99Language() {
return UPCLanguage.getDefault();
}
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99DOMLocationMacroTests.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99DOMLocationMacroTests.java
index a699f51e1e6..4e14043177a 100644
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99DOMLocationMacroTests.java
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99DOMLocationMacroTests.java
@@ -19,7 +19,8 @@ public class UPCC99DOMLocationMacroTests extends C99DOMLocationMacroTests {
public UPCC99DOMLocationMacroTests() {
}
- protected BaseExtensibleLanguage getLanguage() {
+ @Override
+ protected BaseExtensibleLanguage getC99Language() {
return UPCLanguage.getDefault();
}
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99DOMLocationTests.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99DOMLocationTests.java
index 151d2bd1464..90005c24cb2 100644
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99DOMLocationTests.java
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99DOMLocationTests.java
@@ -23,7 +23,8 @@ public class UPCC99DOMLocationTests extends C99DOMLocationTests {
super(name);
}
- protected BaseExtensibleLanguage getLanguage() {
+ @Override
+ protected BaseExtensibleLanguage getC99Language() {
return UPCLanguage.getDefault();
}
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99DOMPreprocessorInformationTest.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99DOMPreprocessorInformationTest.java
index f73044f28fd..d46398babce 100644
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99DOMPreprocessorInformationTest.java
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99DOMPreprocessorInformationTest.java
@@ -16,7 +16,8 @@ import org.eclipse.cdt.core.lrparser.tests.c99.C99DOMPreprocessorInformationTest
public class UPCC99DOMPreprocessorInformationTest extends C99DOMPreprocessorInformationTest {
- protected BaseExtensibleLanguage getLanguage() {
+ @Override
+ protected BaseExtensibleLanguage getC99Language() {
return UPCLanguage.getDefault();
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99DigraphTrigraphTests.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99DigraphTrigraphTests.java
index b56681211ee..9aaaf2a61c7 100644
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99DigraphTrigraphTests.java
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99DigraphTrigraphTests.java
@@ -20,6 +20,7 @@ public class UPCC99DigraphTrigraphTests extends C99DigraphTrigraphTests {
public UPCC99DigraphTrigraphTests() { }
public UPCC99DigraphTrigraphTests(String name) { super(name); }
+ @Override
protected BaseExtensibleLanguage getLanguage() {
return UPCLanguage.getDefault();
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99GCCTests.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99GCCTests.java
index ed393db1a33..2debeefe409 100644
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99GCCTests.java
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99GCCTests.java
@@ -23,7 +23,8 @@ public class UPCC99GCCTests extends C99GCCTests {
super(message);
}
- protected BaseExtensibleLanguage getLanguage() {
+ @Override
+ protected BaseExtensibleLanguage getC99Language() {
return UPCLanguage.getDefault();
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99KnRTests.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99KnRTests.java
index 2c3eb7b0052..b5b254088a8 100644
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99KnRTests.java
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99KnRTests.java
@@ -19,7 +19,8 @@ public class UPCC99KnRTests extends C99KnRTests {
public UPCC99KnRTests() {
}
- protected BaseExtensibleLanguage getLanguage() {
+ @Override
+ protected BaseExtensibleLanguage getC99Language() {
return UPCLanguage.getDefault();
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99SelectionParseTest.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99SelectionParseTest.java
index e1ec43ded76..72eb13f5081 100644
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99SelectionParseTest.java
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99SelectionParseTest.java
@@ -20,7 +20,8 @@ public class UPCC99SelectionParseTest extends C99SelectionParseTest {
public UPCC99SelectionParseTest(String name) { super(name); }
- protected BaseExtensibleLanguage getLanguage() {
+ @Override
+ protected BaseExtensibleLanguage getC99Language() {
return UPCLanguage.getDefault();
}
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99SpecTests.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99SpecTests.java
index fb04d3d9b8e..c342ab82120 100644
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99SpecTests.java
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99SpecTests.java
@@ -23,7 +23,8 @@ public class UPCC99SpecTests extends C99SpecTests {
super(name);
}
- protected BaseExtensibleLanguage getLanguage() {
+ @Override
+ protected BaseExtensibleLanguage getCLanguage() {
return UPCLanguage.getDefault();
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99TaskParserTest.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99TaskParserTest.java
index 1a16c4b4382..5231b3ecd13 100644
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99TaskParserTest.java
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99TaskParserTest.java
@@ -16,7 +16,8 @@ import org.eclipse.cdt.core.lrparser.tests.c99.C99TaskParserTest;
public class UPCC99TaskParserTest extends C99TaskParserTest {
- protected BaseExtensibleLanguage getLanguage() {
+ @Override
+ protected BaseExtensibleLanguage getC99Language() {
return UPCLanguage.getDefault();
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99Tests.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99Tests.java
index 5e1f72f9621..9cf08d3f375 100644
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99Tests.java
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99Tests.java
@@ -29,7 +29,8 @@ public class UPCC99Tests extends C99Tests {
super(name);
}
- protected BaseExtensibleLanguage getLanguage() {
+ @Override
+ protected BaseExtensibleLanguage getC99Language() {
return UPCLanguage.getDefault();
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99UtilOldTests.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99UtilOldTests.java
index cf119e6207e..9d3aee00671 100644
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99UtilOldTests.java
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99UtilOldTests.java
@@ -16,7 +16,8 @@ import org.eclipse.cdt.core.lrparser.tests.c99.C99UtilOldTests;
public class UPCC99UtilOldTests extends C99UtilOldTests {
- protected BaseExtensibleLanguage getLanguage() {
+ @Override
+ protected BaseExtensibleLanguage getC99Language() {
return UPCLanguage.getDefault();
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99UtilTests.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99UtilTests.java
index 48cddb62260..c167045cdaf 100644
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99UtilTests.java
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99UtilTests.java
@@ -16,7 +16,8 @@ import org.eclipse.cdt.core.lrparser.tests.c99.C99UtilTests;
public class UPCC99UtilTests extends C99UtilTests {
- protected BaseExtensibleLanguage getLanguage() {
+ @Override
+ protected BaseExtensibleLanguage getC99Language() {
return UPCLanguage.getDefault();
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCLanguageExtensionTests.java b/upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCLanguageExtensionTests.java
index 8e64939a23c..a3245777355 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
@@ -42,7 +42,7 @@ import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSimpleDeclSpecifier;
import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSynchronizationStatement;
import org.eclipse.cdt.core.dom.upc.ast.IUPCASTUnaryExpression;
import org.eclipse.cdt.core.lrparser.tests.ParseHelper;
-import org.eclipse.cdt.internal.core.parser.ParserException;
+
public class UPCLanguageExtensionTests extends TestCase {
@@ -62,12 +62,12 @@ public class UPCLanguageExtensionTests extends TestCase {
// test the AST is correct
// test that binding resolution works
- private IASTTranslationUnit parseAndCheckBindings(String code) throws ParserException {
+ private IASTTranslationUnit parseAndCheckBindings(String code) {
return ParseHelper.parse(code, getLanguage(), true, true, 0 );
}
- private IASTTranslationUnit parse(String code) throws ParserException {
+ private IASTTranslationUnit parse(String code) {
return ParseHelper.parse(code, getLanguage(), true, false, 0 );
}
@@ -135,6 +135,7 @@ public class UPCLanguageExtensionTests extends TestCase {
assertEquals(IUPCASTDeclSpecifier.rt_unspecified, declspec_c.getReferenceType());
assertEquals(IUPCASTDeclSpecifier.sh_shared_constant_expression, declspec_c.getSharedQualifier());
assertEquals(IASTSimpleDeclSpecifier.t_int, declspec_c.getType());
+ @SuppressWarnings("unused")
IASTLiteralExpression literalExpr = (IASTLiteralExpression) declspec_c.getBlockSizeExpression();
declarators = decl_c.getDeclarators();
assertNotNull(declarators);
@@ -167,11 +168,11 @@ public class UPCLanguageExtensionTests extends TestCase {
IASTSimpleDeclaration decl_x = (IASTSimpleDeclaration) declarations[4];
IUPCASTSimpleDeclSpecifier declspec_x = (IUPCASTSimpleDeclSpecifier) decl_x.getDeclSpecifier();
- assertEquals(IUPCASTSimpleDeclSpecifier.rt_relaxed, declspec_x.getReferenceType());
+ assertEquals(IUPCASTDeclSpecifier.rt_relaxed, declspec_x.getReferenceType());
IASTSimpleDeclaration decl_y = (IASTSimpleDeclaration) declarations[5];
IUPCASTSimpleDeclSpecifier declspec_y = (IUPCASTSimpleDeclSpecifier) decl_y.getDeclSpecifier();
- assertEquals(IUPCASTSimpleDeclSpecifier.rt_strict, declspec_y.getReferenceType());
+ assertEquals(IUPCASTDeclSpecifier.rt_strict, declspec_y.getReferenceType());
IVariable binding_a = (IVariable) name_a.resolveBinding();
@@ -489,6 +490,7 @@ public class UPCLanguageExtensionTests extends TestCase {
+ @SuppressWarnings("unused")
IASTTypeIdExpression idexpr = (IASTTypeIdExpression)((IASTExpressionStatement)body[0]).getExpression();
IASTUnaryExpression cexpr = (IASTUnaryExpression)((IASTExpressionStatement)body[1]).getExpression();
diff --git a/upc/org.eclipse.cdt.core.parser.upc/grammar/build.xml b/upc/org.eclipse.cdt.core.parser.upc/grammar/build.xml
index d60df92d2c7..0b39b1f8bab 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/grammar/build.xml
+++ b/upc/org.eclipse.cdt.core.parser.upc/grammar/build.xml
@@ -31,23 +31,17 @@
<param name="grammar_name" value="UPCParser"/>
</antcall>
<!-- Generate parser for disambiguating declarations vs expression statements -->
- <!--
<antcall target="generate_upc">
- <param name="grammar_name" value="C99ExpressionStatementParser"/>
+ <param name="grammar_name" value="UPCExpressionStatementParser"/>
</antcall>
- -->
<!-- Generate parser for disambiguating cast expressions vs binary expressions-->
- <!--
<antcall target="generate_upc">
- <param name="grammar_name" value="C99NoCastExpressionParser"/>
+ <param name="grammar_name" value="UPCNoCastExpressionParser"/>
</antcall>
- -->
<!-- Generate parser for disambiguating sizeof expressions -->
- <!--
<antcall target="generate_upc">
- <param name="grammar_name" value="C99SizeofExpressionParser"/>
+ <param name="grammar_name" value="UPCSizeofExpressionParser"/>
</antcall>
- -->
</target>
diff --git a/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCExpressionStatementParser.g b/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCExpressionStatementParser.g
new file mode 100644
index 00000000000..ea3e51ec175
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCExpressionStatementParser.g
@@ -0,0 +1,23 @@
+-----------------------------------------------------------------------------------
+-- Copyright (c) 2006, 2008 IBM Corporation and others.
+-- All rights reserved. This program and the accompanying materials
+-- are made available under the terms of the Eclipse Public License v1.0
+-- which accompanies this distribution, and is available at
+-- http://www.eclipse.org/legal/epl-v10.html
+--
+-- Contributors:
+-- IBM Corporation - initial API and implementation
+-----------------------------------------------------------------------------------
+
+%options la=2
+%options package=org.eclipse.cdt.internal.core.dom.parser.upc
+%options template=btParserTemplateD.g
+
+
+$Import
+ C99ExpressionStatementParser.g
+$End
+
+$Import
+ UPCGrammarExtensions.g
+$End
diff --git a/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCGrammarExtensions.g b/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCGrammarExtensions.g
new file mode 100644
index 00000000000..ec7d2d0f59b
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCGrammarExtensions.g
@@ -0,0 +1,218 @@
+-----------------------------------------------------------------------------------
+-- Copyright (c) 2006, 2007 IBM Corporation and others.
+-- All rights reserved. This program and the accompanying materials
+-- are made available under the terms of the Eclipse Public License v1.0
+-- which accompanies this distribution, and is available at
+-- http://www.eclipse.org/legal/epl-v10.html
+--
+-- Contributors:
+-- IBM Corporation - initial API and implementation
+-----------------------------------------------------------------------------------
+
+
+$Define
+ $build_action_class /. UPCParserAction ./
+ $node_factory_create_expression /. UPCASTNodeFactory.DEFAULT_INSTANCE ./
+$End
+
+
+$Globals
+/.
+import org.eclipse.cdt.core.dom.parser.upc.UPCASTNodeFactory;
+import org.eclipse.cdt.core.dom.parser.upc.UPCParserAction;
+import org.eclipse.cdt.core.dom.upc.ast.IUPCASTKeywordExpression;
+import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSynchronizationStatement;
+import org.eclipse.cdt.core.dom.upc.ast.IUPCASTUnaryExpression;
+./
+$End
+
+
+$Terminals -- Additional keywords defined by UPC
+ MYTHREAD
+ THREADS
+ UPC_MAX_BLOCKSIZE
+ relaxed
+ shared
+ strict
+ upc_barrier
+ upc_localsizeof
+ upc_blocksizeof
+ upc_elemsizeof
+ upc_notify
+ upc_fence
+ upc_wait
+ upc_forall
+$End
+
+
+
+$Rules -- UPC grammar extensions to C99
+
+-----------------------------------------------------------------------------------
+-- Expressions
+-----------------------------------------------------------------------------------
+
+
+literal
+ ::= 'MYTHREAD'
+ /. $Build consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread); $EndBuild ./
+ | 'THREADS'
+ /. $Build consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads); $EndBuild ./
+ | 'UPC_MAX_BLOCKSIZE'
+ /. $Build consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size); $EndBuild ./
+
+
+-- causes ambiguities because of no type information, solution is SGLR
+unary_expression
+ ::= 'upc_localsizeof' unary_expression
+ /. $Build consumeExpressionUnaryOperator(IUPCASTUnaryExpression.op_upc_localsizeof); $EndBuild ./
+ | 'upc_localsizeof' '(' type_name ')'
+ /. $Build consumeExpressionTypeId(IUPCASTUnaryExpression.op_upc_localsizeof); $EndBuild ./
+ | 'upc_blocksizeof' unary_expression
+ /. $Build consumeExpressionUnaryOperator(IUPCASTUnaryExpression.op_upc_blocksizeof); $EndBuild ./
+ | 'upc_blocksizeof' '(' type_name ')'
+ /. $Build consumeExpressionTypeId(IUPCASTUnaryExpression.op_upc_blocksizeof); $EndBuild ./
+ | 'upc_elemsizeof' unary_expression
+ /. $Build consumeExpressionUnaryOperator(IUPCASTUnaryExpression.op_upc_elemsizeof); $EndBuild ./
+ | 'upc_elemsizeof' '(' type_name ')'
+ /. $Build consumeExpressionTypeId(IUPCASTUnaryExpression.op_upc_elemsizeof); $EndBuild ./
+
+
+-----------------------------------------------------------------------------------
+-- Declarations
+-----------------------------------------------------------------------------------
+
+
+type_qualifier
+ ::= shared_type_qualifier
+ | reference_type_qualifier
+
+-- causes ambiguities in parameter declarations, inherant in grammar
+-- for example: int foo(int shared []);
+-- does the [] bind to shared or is it shared with infinite block size array?
+-- TODO: probably just resolved in the same way as dangling else
+
+shared_type_qualifier
+ ::= 'shared' layout_qualifier -- don't consume anything, the presense of the
+ -- layout_qualifier will determine that 'shared' token was encountered
+ | 'shared' /. $Build consumeToken(); $EndBuild ./
+
+reference_type_qualifier
+ ::= 'relaxed' /. $Build consumeToken(); $EndBuild ./
+ | 'strict' /. $Build consumeToken(); $EndBuild ./
+
+layout_qualifier
+ ::= '[' constant_expression ']'
+ /. $Build consumeLayoutQualifier(true, false); $EndBuild ./
+ | '[' '*' ']'
+ /. $Build consumeLayoutQualifier(false, true); $EndBuild ./
+ | '[' ']'
+ /. $Build consumeLayoutQualifier(false, false); $EndBuild ./
+
+
+
+-----------------------------------------------------------------------------------
+-- Statements
+-----------------------------------------------------------------------------------
+
+statement
+ ::= synchronization_statement
+
+synchronization_statement
+ ::= 'upc_notify' expression ';'
+ /. $Build consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true); $EndBuild ./
+ | 'upc_notify' ';'
+ /. $Build consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false); $EndBuild ./
+ | 'upc_wait' expression ';'
+ /. $Build consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true); $EndBuild ./
+ | 'upc_wait' ';'
+ /. $Build consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false); $EndBuild ./
+ | 'upc_barrier' expression ';'
+ /. $Build consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true); $EndBuild ./
+ | 'upc_barrier' ';'
+ /. $Build consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false); $EndBuild ./
+ | 'upc_fence' ';'
+ /. $Build consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false); $EndBuild ./
+
+
+iteration_statement
+ ::= 'upc_forall' '(' expression ';' expression ';' expression ';' affinity ')' statement
+ /. $Build consumeStatementUPCForallLoop(true, true, true, true); $EndBuild ./
+
+ | 'upc_forall' '(' expression ';' expression ';' expression ';' ')' statement
+ /. $Build consumeStatementUPCForallLoop(true, true, true, false); $EndBuild ./
+
+ | 'upc_forall' '(' expression ';' expression ';' ';' affinity ')' statement
+ /. $Build consumeStatementUPCForallLoop(true, true, false, true); $EndBuild ./
+
+ | 'upc_forall' '(' expression ';' expression ';' ';' ')' statement
+ /. $Build consumeStatementUPCForallLoop(true, true, false, false); $EndBuild ./
+
+ | 'upc_forall' '(' expression ';' ';' expression ';' affinity ')' statement
+ /. $Build consumeStatementUPCForallLoop(true, false, true, true); $EndBuild ./
+
+ | 'upc_forall' '(' expression ';' ';' expression ';' ')' statement
+ /. $Build consumeStatementUPCForallLoop(true, false, true, false); $EndBuild ./
+
+ | 'upc_forall' '(' expression ';' ';' ';' affinity ')' statement
+ /. $Build consumeStatementUPCForallLoop(true, false, false, true); $EndBuild ./
+
+ | 'upc_forall' '(' expression ';' ';' ';' ')' statement
+ /. $Build consumeStatementUPCForallLoop(true, false, false, false); $EndBuild ./
+
+ | 'upc_forall' '(' ';' expression ';' expression ';' affinity ')' statement
+ /. $Build consumeStatementUPCForallLoop(false, true, true, true); $EndBuild ./
+
+ | 'upc_forall' '(' ';' expression ';' expression ';' ')' statement
+ /. $Build consumeStatementUPCForallLoop(false, true, true, false); $EndBuild ./
+
+ | 'upc_forall' '(' ';' expression ';' ';' affinity ')' statement
+ /. $Build consumeStatementUPCForallLoop(false, true, false, true); $EndBuild ./
+
+ | 'upc_forall' '(' ';' expression ';' ';' ')' statement
+ /. $Build consumeStatementUPCForallLoop(false, true, false, false); $EndBuild ./
+
+ | 'upc_forall' '(' ';' ';' expression ';' affinity ')' statement
+ /. $Build consumeStatementUPCForallLoop(false, false, true, true); $EndBuild ./
+
+ | 'upc_forall' '(' ';' ';' expression ';' ')' statement
+ /. $Build consumeStatementUPCForallLoop(false, false, true, false); $EndBuild ./
+
+ | 'upc_forall' '(' ';' ';' ';' affinity ')' statement
+ /. $Build consumeStatementUPCForallLoop(false, false, false, true); $EndBuild ./
+
+ | 'upc_forall' '(' ';' ';' ';' ')' statement
+ /. $Build consumeStatementUPCForallLoop(false, false, false, false); $EndBuild ./
+
+ | 'upc_forall' '(' declaration expression ';' expression ';' affinity ')' statement
+ /. $Build consumeStatementUPCForallLoop(true, true, true, true); $EndBuild ./
+
+ | 'upc_forall' '(' declaration expression ';' expression ';' ')' statement
+ /. $Build consumeStatementUPCForallLoop(true, true, true, false); $EndBuild ./
+
+ | 'upc_forall' '(' declaration expression ';' ';' affinity ')' statement
+ /. $Build consumeStatementUPCForallLoop(true, true, false, true); $EndBuild ./
+
+ | 'upc_forall' '(' declaration expression ';' ';' ')' statement
+ /. $Build consumeStatementUPCForallLoop(true, true, false, false); $EndBuild ./
+
+ | 'upc_forall' '(' declaration ';' expression ';' affinity ')' statement
+ /. $Build consumeStatementUPCForallLoop(true, false, true, true); $EndBuild ./
+
+ | 'upc_forall' '(' declaration ';' expression ';' ')' statement
+ /. $Build consumeStatementUPCForallLoop(true, false, true, false); $EndBuild ./
+
+ | 'upc_forall' '(' declaration ';' ';' affinity ')' statement
+ /. $Build consumeStatementUPCForallLoop(true, false, false, true); $EndBuild ./
+
+ | 'upc_forall' '(' declaration ';' ';' ')' statement
+ /. $Build consumeStatementUPCForallLoop(true, false, false, false); $EndBuild ./
+
+affinity
+ ::= expression
+ | 'continue'
+ /. $Build consumeToken(); $EndBuild ./
+
+$End
+
+
diff --git a/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCNoCastExpressionParser.g b/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCNoCastExpressionParser.g
new file mode 100644
index 00000000000..1fd0c35040c
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCNoCastExpressionParser.g
@@ -0,0 +1,23 @@
+-----------------------------------------------------------------------------------
+-- Copyright (c) 2006, 2008 IBM Corporation and others.
+-- All rights reserved. This program and the accompanying materials
+-- are made available under the terms of the Eclipse Public License v1.0
+-- which accompanies this distribution, and is available at
+-- http://www.eclipse.org/legal/epl-v10.html
+--
+-- Contributors:
+-- IBM Corporation - initial API and implementation
+-----------------------------------------------------------------------------------
+
+%options la=2
+%options package=org.eclipse.cdt.internal.core.dom.parser.upc
+%options template=btParserTemplateD.g
+
+
+$Import
+ C99NoCastExpressionParser.g
+$End
+
+$Import
+ UPCGrammarExtensions.g
+$End \ No newline at end of file
diff --git a/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCParser.g b/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCParser.g
index 7fe27275f51..1106a78d9e1 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCParser.g
+++ b/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCParser.g
@@ -1,5 +1,5 @@
-----------------------------------------------------------------------------------
--- Copyright (c) 2006, 2007 IBM Corporation and others.
+-- Copyright (c) 2006, 2008 IBM Corporation and others.
-- All rights reserved. This program and the accompanying materials
-- are made available under the terms of the Eclipse Public License v1.0
-- which accompanies this distribution, and is available at
@@ -14,232 +14,11 @@
%options template=btParserTemplateD.g
--- Unified Parallel C (UPC) is an extension of C99.
--- Must set LPG_INCLUDE environment variable to the location of C99Parser.g
$Import
- C99Grammar.g
+ C99Parser.g
$End
-$Start
- translation_unit
-$End
-
-
-$Define
- $build_action_class /. UPCParserAction ./
- $node_factory_create_expression /. UPCASTNodeFactory.DEFAULT_INSTANCE ./
-$End
-
-$Globals
-/.
-import org.eclipse.cdt.core.dom.parser.upc.UPCASTNodeFactory;
-import org.eclipse.cdt.core.dom.parser.upc.UPCParserAction;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTKeywordExpression;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSynchronizationStatement;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTUnaryExpression;
-./
-$End
-
-
-$Terminals -- Additional keywords defined by UPC
- MYTHREAD
- THREADS
- UPC_MAX_BLOCKSIZE
- relaxed
- shared
- strict
- upc_barrier
- upc_localsizeof
- upc_blocksizeof
- upc_elemsizeof
- upc_notify
- upc_fence
- upc_wait
- upc_forall
-$End
-
-
-
-$Rules -- UPC grammar extensions to C99
-
------------------------------------------------------------------------------------
--- Expressions
------------------------------------------------------------------------------------
-
-
-literal
- ::= 'MYTHREAD'
- /. $Build consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread); $EndBuild ./
- | 'THREADS'
- /. $Build consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads); $EndBuild ./
- | 'UPC_MAX_BLOCKSIZE'
- /. $Build consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size); $EndBuild ./
-
-
--- causes ambiguities because of no type information, solution is SGLR
-unary_expression
- ::= 'upc_localsizeof' unary_expression
- /. $Build consumeExpressionUpcSizeofOperator(IUPCASTUnaryExpression.op_upc_localsizeof); $EndBuild ./
- | 'upc_localsizeof' '(' type_name ')'
- /. $Build consumeExpressionUpcSizeofTypeName(IUPCASTUnaryExpression.op_upc_localsizeof); $EndBuild ./
- | 'upc_blocksizeof' unary_expression
- /. $Build consumeExpressionUpcSizeofOperator(IUPCASTUnaryExpression.op_upc_blocksizeof); $EndBuild ./
- | 'upc_blocksizeof' '(' type_name ')'
- /. $Build consumeExpressionUpcSizeofTypeName(IUPCASTUnaryExpression.op_upc_blocksizeof); $EndBuild ./
- | 'upc_elemsizeof' unary_expression
- /. $Build consumeExpressionUpcSizeofOperator(IUPCASTUnaryExpression.op_upc_elemsizeof); $EndBuild ./
- | 'upc_elemsizeof' '(' type_name ')'
- /. $Build consumeExpressionUpcSizeofTypeName(IUPCASTUnaryExpression.op_upc_elemsizeof); $EndBuild ./
-
-
------------------------------------------------------------------------------------
--- Declarations
------------------------------------------------------------------------------------
-
-
-type_qualifier
- ::= shared_type_qualifier
- | reference_type_qualifier
-
--- causes ambiguities in parameter declarations, inherant in grammar
--- for example: int foo(int shared []);
--- does the [] bind to shared or is it shared with infinite block size array?
--- TODO: probably just resolved in the same way as dangling else
-
-shared_type_qualifier
- ::= 'shared' layout_qualifier -- don't consume anything, the presense of the
- -- layout_qualifier will determine that 'shared' token was encountered
- | 'shared' /. $Build consumeToken(); $EndBuild ./
-
-reference_type_qualifier
- ::= 'relaxed' /. $Build consumeToken(); $EndBuild ./
- | 'strict' /. $Build consumeToken(); $EndBuild ./
-
-layout_qualifier
- ::= '[' constant_expression ']'
- /. $Build consumeLayoutQualifier(true, false); $EndBuild ./
- | '[' '*' ']'
- /. $Build consumeLayoutQualifier(false, true); $EndBuild ./
- | '[' ']'
- /. $Build consumeLayoutQualifier(false, false); $EndBuild ./
-
-
-
------------------------------------------------------------------------------------
--- Statements
------------------------------------------------------------------------------------
-
-statement
- ::= synchronization_statement
-
-synchronization_statement
- ::= 'upc_notify' expression ';'
- /. $Build consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true); $EndBuild ./
- | 'upc_notify' ';'
- /. $Build consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false); $EndBuild ./
- | 'upc_wait' expression ';'
- /. $Build consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true); $EndBuild ./
- | 'upc_wait' ';'
- /. $Build consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false); $EndBuild ./
- | 'upc_barrier' expression ';'
- /. $Build consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true); $EndBuild ./
- | 'upc_barrier' ';'
- /. $Build consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false); $EndBuild ./
- | 'upc_fence' ';'
- /. $Build consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false); $EndBuild ./
-
-
-iteration_statement
- ::= 'upc_forall' '(' expression ';' expression ';' expression ';' affinity ')' statement
- /. $Build consumeStatementUPCForallLoop(true, true, true, true); $EndBuild ./
-
- | 'upc_forall' '(' expression ';' expression ';' expression ';' ')' statement
- /. $Build consumeStatementUPCForallLoop(true, true, true, false); $EndBuild ./
-
- | 'upc_forall' '(' expression ';' expression ';' ';' affinity ')' statement
- /. $Build consumeStatementUPCForallLoop(true, true, false, true); $EndBuild ./
-
- | 'upc_forall' '(' expression ';' expression ';' ';' ')' statement
- /. $Build consumeStatementUPCForallLoop(true, true, false, false); $EndBuild ./
-
- | 'upc_forall' '(' expression ';' ';' expression ';' affinity ')' statement
- /. $Build consumeStatementUPCForallLoop(true, false, true, true); $EndBuild ./
-
- | 'upc_forall' '(' expression ';' ';' expression ';' ')' statement
- /. $Build consumeStatementUPCForallLoop(true, false, true, false); $EndBuild ./
-
- | 'upc_forall' '(' expression ';' ';' ';' affinity ')' statement
- /. $Build consumeStatementUPCForallLoop(true, false, false, true); $EndBuild ./
-
- | 'upc_forall' '(' expression ';' ';' ';' ')' statement
- /. $Build consumeStatementUPCForallLoop(true, false, false, false); $EndBuild ./
-
- | 'upc_forall' '(' ';' expression ';' expression ';' affinity ')' statement
- /. $Build consumeStatementUPCForallLoop(false, true, true, true); $EndBuild ./
-
- | 'upc_forall' '(' ';' expression ';' expression ';' ')' statement
- /. $Build consumeStatementUPCForallLoop(false, true, true, false); $EndBuild ./
-
- | 'upc_forall' '(' ';' expression ';' ';' affinity ')' statement
- /. $Build consumeStatementUPCForallLoop(false, true, false, true); $EndBuild ./
-
- | 'upc_forall' '(' ';' expression ';' ';' ')' statement
- /. $Build consumeStatementUPCForallLoop(false, true, false, false); $EndBuild ./
-
- | 'upc_forall' '(' ';' ';' expression ';' affinity ')' statement
- /. $Build consumeStatementUPCForallLoop(false, false, true, true); $EndBuild ./
-
- | 'upc_forall' '(' ';' ';' expression ';' ')' statement
- /. $Build consumeStatementUPCForallLoop(false, false, true, false); $EndBuild ./
-
- | 'upc_forall' '(' ';' ';' ';' affinity ')' statement
- /. $Build consumeStatementUPCForallLoop(false, false, false, true); $EndBuild ./
-
- | 'upc_forall' '(' ';' ';' ';' ')' statement
- /. $Build consumeStatementUPCForallLoop(false, false, false, false); $EndBuild ./
-
- | 'upc_forall' '(' declaration expression ';' expression ';' affinity ')' statement
- /. $Build consumeStatementUPCForallLoop(true, true, true, true); $EndBuild ./
-
- | 'upc_forall' '(' declaration expression ';' expression ';' ')' statement
- /. $Build consumeStatementUPCForallLoop(true, true, true, false); $EndBuild ./
-
- | 'upc_forall' '(' declaration expression ';' ';' affinity ')' statement
- /. $Build consumeStatementUPCForallLoop(true, true, false, true); $EndBuild ./
-
- | 'upc_forall' '(' declaration expression ';' ';' ')' statement
- /. $Build consumeStatementUPCForallLoop(true, true, false, false); $EndBuild ./
-
- | 'upc_forall' '(' declaration ';' expression ';' affinity ')' statement
- /. $Build consumeStatementUPCForallLoop(true, false, true, true); $EndBuild ./
-
- | 'upc_forall' '(' declaration ';' expression ';' ')' statement
- /. $Build consumeStatementUPCForallLoop(true, false, true, false); $EndBuild ./
-
- | 'upc_forall' '(' declaration ';' ';' affinity ')' statement
- /. $Build consumeStatementUPCForallLoop(true, false, false, true); $EndBuild ./
-
- | 'upc_forall' '(' declaration ';' ';' ')' statement
- /. $Build consumeStatementUPCForallLoop(true, false, false, false); $EndBuild ./
-
-affinity
- ::= expression
- | 'continue'
- /. $Build consumeToken(); $EndBuild ./
-
-$End
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+$Import
+ UPCGrammarExtensions.g
+$End
diff --git a/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCSizeofExpressionParser.g b/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCSizeofExpressionParser.g
new file mode 100644
index 00000000000..20f5216d458
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc/grammar/upc/UPCSizeofExpressionParser.g
@@ -0,0 +1,30 @@
+-----------------------------------------------------------------------------------
+-- Copyright (c) 2006, 2008 IBM Corporation and others.
+-- All rights reserved. This program and the accompanying materials
+-- are made available under the terms of the Eclipse Public License v1.0
+-- which accompanies this distribution, and is available at
+-- http://www.eclipse.org/legal/epl-v10.html
+--
+-- Contributors:
+-- IBM Corporation - initial API and implementation
+-----------------------------------------------------------------------------------
+
+%options la=2
+%options package=org.eclipse.cdt.internal.core.dom.parser.upc
+%options template=btParserTemplateD.g
+
+
+$Import
+ C99SizeofExpressionParser.g
+$End
+
+$Import
+ UPCGrammarExtensions.g
+$DropRules
+
+unary_expression
+ ::= 'upc_localsizeof' '(' type_name ')'
+ | 'upc_blocksizeof' '(' type_name ')'
+ | 'upc_elemsizeof' '(' type_name ')'
+
+$End \ No newline at end of file
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 b468ae76b7a..a5c51f33c27 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
@@ -17,8 +17,6 @@ import org.eclipse.cdt.core.dom.ast.IASTDeclaration;
import org.eclipse.cdt.core.dom.ast.IASTExpression;
import org.eclipse.cdt.core.dom.ast.IASTStatement;
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.ast.IASTTypeId;
-import org.eclipse.cdt.core.dom.ast.IASTTypeIdExpression;
import org.eclipse.cdt.core.dom.ast.c.ICASTDeclSpecifier;
import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
import org.eclipse.cdt.core.dom.lrparser.action.c99.C99BuildASTParserAction;
@@ -26,7 +24,6 @@ import org.eclipse.cdt.core.dom.upc.ast.IUPCASTDeclSpecifier;
import org.eclipse.cdt.core.dom.upc.ast.IUPCASTForallStatement;
import org.eclipse.cdt.core.dom.upc.ast.IUPCASTKeywordExpression;
import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSynchronizationStatement;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTUnaryExpression;
import org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym;
@@ -66,32 +63,6 @@ public class UPCParserAction extends C99BuildASTParserAction {
/**
- * unary_expression ::= 'upc_localsizeof' unary_expression
- * | 'upc_blocksizeof' unary_expression
- * | 'upc_elemsizeof' unary_expression
- */
- public void consumeExpressionUpcSizeofOperator(int sizeofOp) {
- IASTExpression operand = (IASTExpression) astStack.pop();
- IUPCASTUnaryExpression expr = nodeFactory.newUnaryExpression(sizeofOp, operand);
- setOffsetAndLength(expr);
- astStack.push(expr);
- }
-
-
- /**
- * unary_expression ::= 'upc_localsizeof' '(' type_name ')'
- * | 'upc_blocksizeof' '(' type_name ')'
- * | 'upc_elemsizeof' '(' type_name ')'
- */
- public void consumeExpressionUpcSizeofTypeName(int sizeofOp) {
- IASTTypeId typeId = (IASTTypeId) astStack.pop();
- IASTTypeIdExpression expr = nodeFactory.newTypeIdExpression(sizeofOp, typeId);
- setOffsetAndLength(expr);
- astStack.push(expr);
- }
-
-
- /**
* synchronization_statement ::= 'upc_notify' expression ';'
* | 'upc_notify' ';'
* | 'upc_wait' expression ';'
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 bdfe8149b8d..73baaef7ec3 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
@@ -33,6 +33,7 @@ import org.eclipse.cdt.internal.core.dom.parser.c.CASTTranslationUnit;
*
* @author Mike Kucera
*/
+@SuppressWarnings("restriction")
public class UPCLanguage extends BaseExtensibleLanguage {
public static final String PLUGIN_ID = "org.eclipse.cdt.core.parser.upc"; //$NON-NLS-1$
@@ -60,6 +61,9 @@ public class UPCLanguage extends BaseExtensibleLanguage {
return null;
}
+ /**
+ * @param tu Not used, default model builder used.
+ */
public IContributedModelBuilder createModelBuilder(ITranslationUnit tu) {
return null;
}
@@ -96,7 +100,6 @@ public class UPCLanguage extends BaseExtensibleLanguage {
/**
* Gets the translation unit object and sets the index and the location resolver.
*/
- @SuppressWarnings("restriction")
@Override
protected IASTTranslationUnit createASTTranslationUnit(IIndex index, IScanner preprocessor) {
IASTTranslationUnit tu = C99ASTNodeFactory.DEFAULT_INSTANCE.newTranslationUnit();
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 f93a2af328b..c49fd6665d5 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
@@ -17,7 +17,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;
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionStatementParser.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionStatementParser.java
new file mode 100644
index 00000000000..d5f5af03bef
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionStatementParser.java
@@ -0,0 +1,1552 @@
+/*******************************************************************************
+* Copyright (c) 2006, 2008 IBM Corporation and others.
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+*
+* Contributors:
+* IBM Corporation - initial API and implementation
+*********************************************************************************/
+
+// This file was generated by LPG
+
+package org.eclipse.cdt.internal.core.dom.parser.upc;
+
+import lpg.lpgjavaruntime.*;
+
+import java.util.*;
+import org.eclipse.cdt.core.dom.ast.*;
+import org.eclipse.cdt.core.dom.lrparser.IParser;
+import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
+
+import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
+import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
+
+import org.eclipse.cdt.core.dom.lrparser.action.c99.C99ASTNodeFactory;
+import org.eclipse.cdt.core.dom.lrparser.action.c99.C99BuildASTParserAction;
+
+import org.eclipse.cdt.core.dom.parser.upc.UPCASTNodeFactory;
+import org.eclipse.cdt.core.dom.parser.upc.UPCParserAction;
+import org.eclipse.cdt.core.dom.upc.ast.IUPCASTKeywordExpression;
+import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSynchronizationStatement;
+import org.eclipse.cdt.core.dom.upc.ast.IUPCASTUnaryExpression;
+
+@SuppressWarnings("all")
+public class UPCExpressionStatementParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser
+{
+ private static ParseTable prs = new UPCExpressionStatementParserprs();
+ private BacktrackingParser btParser;
+
+ public BacktrackingParser getParser() { return btParser; }
+ private void setResult(Object object) { btParser.setSym1(object); }
+ public Object getRhsSym(int i) { return btParser.getSym(i); }
+
+ public int getRhsTokenIndex(int i) { return btParser.getToken(i); }
+ public IToken getRhsIToken(int i) { return super.getIToken(getRhsTokenIndex(i)); }
+
+ public int getRhsFirstTokenIndex(int i) { return btParser.getFirstToken(i); }
+ public IToken getRhsFirstIToken(int i) { return super.getIToken(getRhsFirstTokenIndex(i)); }
+
+ public int getRhsLastTokenIndex(int i) { return btParser.getLastToken(i); }
+ public IToken getRhsLastIToken(int i) { return super.getIToken(getRhsLastTokenIndex(i)); }
+
+ public int getLeftSpan() { return btParser.getFirstToken(); }
+ public IToken getLeftIToken() { return super.getIToken(getLeftSpan()); }
+
+ public int getRightSpan() { return btParser.getLastToken(); }
+ public IToken getRightIToken() { return super.getIToken(getRightSpan()); }
+
+ public int getRhsErrorTokenIndex(int i)
+ {
+ int index = btParser.getToken(i);
+ IToken err = super.getIToken(index);
+ return (err instanceof ErrorToken ? index : 0);
+ }
+ public ErrorToken getRhsErrorIToken(int i)
+ {
+ int index = btParser.getToken(i);
+ IToken err = super.getIToken(index);
+ return (ErrorToken) (err instanceof ErrorToken ? err : null);
+ }
+
+ public UPCExpressionStatementParser(LexStream lexStream)
+ {
+ super(lexStream);
+
+ try
+ {
+ super.remapTerminalSymbols(orderedTerminalSymbols(), UPCExpressionStatementParserprs.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(" " + UPCExpressionStatementParsersym.orderedTerminalSymbols[id.intValue()]);
+ }
+ System.out.println();
+ }
+ catch(UndefinedEofSymbolException e)
+ {
+ throw new Error(new UndefinedEofSymbolException
+ ("The Lexer does not implement the Eof symbol " +
+ UPCExpressionStatementParsersym.orderedTerminalSymbols[UPCExpressionStatementParserprs.EOFT_SYMBOL]));
+ }
+ }
+
+ public String[] orderedTerminalSymbols() { return UPCExpressionStatementParsersym.orderedTerminalSymbols; }
+ public String getTokenKindName(int kind) { return UPCExpressionStatementParsersym.orderedTerminalSymbols[kind]; }
+ public int getEOFTokenKind() { return UPCExpressionStatementParserprs.EOFT_SYMBOL; }
+ public PrsStream getParseStream() { return (PrsStream) this; }
+
+ //
+ // Report error message for given error_token.
+ //
+ public final void reportErrorTokenMessage(int error_token, String msg)
+ {
+ int firsttok = super.getFirstErrorToken(error_token),
+ lasttok = super.getLastErrorToken(error_token);
+ String location = super.getFileName() + ':' +
+ (firsttok > lasttok
+ ? (super.getEndLine(lasttok) + ":" + super.getEndColumn(lasttok))
+ : (super.getLine(error_token) + ":" +
+ super.getColumn(error_token) + ":" +
+ super.getEndLine(error_token) + ":" +
+ super.getEndColumn(error_token)))
+ + ": ";
+ super.reportError((firsttok > lasttok ? ParseErrorCodes.INSERTION_CODE : ParseErrorCodes.SUBSTITUTION_CODE), location, msg);
+ }
+
+ public Object parser()
+ {
+ return parser(null, 0);
+ }
+
+ public Object parser(Monitor monitor)
+ {
+ return parser(monitor, 0);
+ }
+
+ public Object parser(int error_repair_count)
+ {
+ return parser(null, error_repair_count);
+ }
+
+ public Object parser(Monitor monitor, int error_repair_count)
+ {
+ try
+ {
+ btParser = new BacktrackingParser(monitor, (TokenStream) this, prs, (RuleAction) this);
+ }
+ catch (NotBacktrackParseTableException e)
+ {
+ throw new Error(new NotBacktrackParseTableException
+ ("Regenerate UPCExpressionStatementParserprs.java with -BACKTRACK option"));
+ }
+ catch (BadParseSymFileException e)
+ {
+ throw new Error(new BadParseSymFileException("Bad Parser Symbol File -- UPCExpressionStatementParsersym.java"));
+ }
+
+ try
+ {
+ return (Object) 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);
+ }
+
+ return null;
+ }
+
+
+private UPCParserAction action;
+
+public UPCExpressionStatementParser() { // constructor
+}
+
+private void initActions(IASTTranslationUnit tu) {
+ action = new UPCParserAction ( UPCASTNodeFactory.DEFAULT_INSTANCE , this, tu);
+}
+
+
+public void addToken(IToken token) {
+ token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called?
+ super.addToken(token);
+}
+
+
+public IASTCompletionNode parse(IASTTranslationUnit tu) {
+ // this has to be done, or... kaboom!
+ setStreamLength(getSize());
+ initActions(tu);
+
+ final int errorRepairCount = -1; // -1 means full error handling
+ parser(null, errorRepairCount); // do the actual parse
+ super.resetTokenStream(); // allow tokens to be garbage collected
+
+ // the completion node may be null
+ IASTCompletionNode compNode = action.getASTCompletionNode();
+
+ //action = null;
+ //parserAction = null;
+ return compNode;
+}
+
+// uncomment this method to use with backtracking parser
+public List getRuleTokens() {
+ return Collections.unmodifiableList(getTokens().subList(getLeftSpan(), getRightSpan() + 1));
+}
+
+
+public IASTNode getSecondaryParseResult() {
+ return action.getSecondaryParseResult();
+}
+
+public String[] getOrderedTerminalSymbols() {
+ return UPCExpressionStatementParsersym.orderedTerminalSymbols;
+}
+
+public String getName() {
+ return "UPCExpressionStatementParser"; //$NON-NLS-1$
+}
+
+
+
+private ITokenMap tokenMap = null;
+
+public void setTokens(List<IToken> tokens) {
+ resetTokenStream();
+ addToken(new Token(null, 0, 0, 0)); // dummy token
+ for(IToken token : tokens) {
+ token.setKind(tokenMap.mapKind(token.getKind()));
+ addToken(token);
+ }
+ addToken(new Token(null, 0, 0, UPCExpressionStatementParsersym.TK_EOF_TOKEN));
+}
+
+public UPCExpressionStatementParser(String[] mapFrom) { // constructor
+ tokenMap = new TokenMap(UPCExpressionStatementParsersym.orderedTerminalSymbols, mapFrom);
+}
+
+
+
+ public void ruleAction(int ruleNumber)
+ {
+ switch (ruleNumber)
+ {
+
+ //
+ // Rule 1: <openscope-ast> ::= $Empty
+ //
+ case 1: { action. openASTScope(); break;
+ }
+
+ //
+ // Rule 10: literal ::= integer
+ //
+ case 10: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant); break;
+ }
+
+ //
+ // Rule 11: literal ::= floating
+ //
+ case 11: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant); break;
+ }
+
+ //
+ // Rule 12: literal ::= charconst
+ //
+ case 12: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant); break;
+ }
+
+ //
+ // Rule 13: literal ::= stringlit
+ //
+ case 13: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal); break;
+ }
+
+ //
+ // Rule 15: primary_expression ::= primary_expression_id
+ //
+ case 15: { action. consumeExpressionID(); break;
+ }
+
+ //
+ // Rule 16: primary_expression ::= ( expression )
+ //
+ case 16: { action. consumeExpressionBracketed(); break;
+ }
+
+ //
+ // Rule 20: postfix_expression ::= postfix_expression [ expression ]
+ //
+ case 20: { action. consumeExpressionArraySubscript(); break;
+ }
+
+ //
+ // Rule 21: postfix_expression ::= postfix_expression ( expression_list_opt )
+ //
+ case 21: { action. consumeExpressionFunctionCall(); break;
+ }
+
+ //
+ // Rule 22: postfix_expression ::= postfix_expression . member_name
+ //
+ case 22: { action. consumeExpressionFieldReference(false); break;
+ }
+
+ //
+ // Rule 23: postfix_expression ::= postfix_expression -> member_name
+ //
+ case 23: { action. consumeExpressionFieldReference(true); break;
+ }
+
+ //
+ // Rule 24: postfix_expression ::= postfix_expression ++
+ //
+ case 24: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break;
+ }
+
+ //
+ // Rule 25: postfix_expression ::= postfix_expression --
+ //
+ case 25: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break;
+ }
+
+ //
+ // Rule 26: postfix_expression ::= ( type_name ) { <openscope-ast> initializer_list comma_opt }
+ //
+ case 26: { action. consumeExpressionTypeIdInitializer(); break;
+ }
+
+ //
+ // Rule 32: unary_expression ::= ++ unary_expression
+ //
+ case 32: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break;
+ }
+
+ //
+ // Rule 33: unary_expression ::= -- unary_expression
+ //
+ case 33: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break;
+ }
+
+ //
+ // Rule 34: unary_expression ::= & cast_expression
+ //
+ case 34: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break;
+ }
+
+ //
+ // Rule 35: unary_expression ::= * cast_expression
+ //
+ case 35: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break;
+ }
+
+ //
+ // Rule 36: unary_expression ::= + cast_expression
+ //
+ case 36: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break;
+ }
+
+ //
+ // Rule 37: unary_expression ::= - cast_expression
+ //
+ case 37: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break;
+ }
+
+ //
+ // Rule 38: unary_expression ::= ~ cast_expression
+ //
+ case 38: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break;
+ }
+
+ //
+ // Rule 39: unary_expression ::= ! cast_expression
+ //
+ case 39: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break;
+ }
+
+ //
+ // Rule 40: unary_expression ::= sizeof unary_expression
+ //
+ case 40: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break;
+ }
+
+ //
+ // Rule 41: unary_expression ::= sizeof ( type_name )
+ //
+ case 41: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof); break;
+ }
+
+ //
+ // Rule 43: cast_expression ::= ( type_name ) cast_expression
+ //
+ case 43: { action. consumeExpressionCast(IASTCastExpression.op_cast); break;
+ }
+
+ //
+ // Rule 45: multiplicative_expression ::= multiplicative_expression * cast_expression
+ //
+ case 45: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break;
+ }
+
+ //
+ // Rule 46: multiplicative_expression ::= multiplicative_expression / cast_expression
+ //
+ case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break;
+ }
+
+ //
+ // Rule 47: multiplicative_expression ::= multiplicative_expression % cast_expression
+ //
+ case 47: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break;
+ }
+
+ //
+ // Rule 49: additive_expression ::= additive_expression + multiplicative_expression
+ //
+ case 49: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break;
+ }
+
+ //
+ // Rule 50: additive_expression ::= additive_expression - multiplicative_expression
+ //
+ case 50: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break;
+ }
+
+ //
+ // Rule 52: shift_expression ::= shift_expression << additive_expression
+ //
+ case 52: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break;
+ }
+
+ //
+ // Rule 53: shift_expression ::= shift_expression >> additive_expression
+ //
+ case 53: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break;
+ }
+
+ //
+ // Rule 55: relational_expression ::= relational_expression < shift_expression
+ //
+ case 55: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break;
+ }
+
+ //
+ // Rule 56: relational_expression ::= relational_expression > shift_expression
+ //
+ case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break;
+ }
+
+ //
+ // Rule 57: relational_expression ::= relational_expression <= shift_expression
+ //
+ case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break;
+ }
+
+ //
+ // Rule 58: relational_expression ::= relational_expression >= shift_expression
+ //
+ case 58: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break;
+ }
+
+ //
+ // Rule 60: equality_expression ::= equality_expression == relational_expression
+ //
+ case 60: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break;
+ }
+
+ //
+ // Rule 61: equality_expression ::= equality_expression != relational_expression
+ //
+ case 61: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break;
+ }
+
+ //
+ // Rule 63: AND_expression ::= AND_expression & equality_expression
+ //
+ case 63: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break;
+ }
+
+ //
+ // Rule 65: exclusive_OR_expression ::= exclusive_OR_expression ^ AND_expression
+ //
+ case 65: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break;
+ }
+
+ //
+ // Rule 67: inclusive_OR_expression ::= inclusive_OR_expression | exclusive_OR_expression
+ //
+ case 67: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break;
+ }
+
+ //
+ // Rule 69: logical_AND_expression ::= logical_AND_expression && inclusive_OR_expression
+ //
+ case 69: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break;
+ }
+
+ //
+ // Rule 71: logical_OR_expression ::= logical_OR_expression || logical_AND_expression
+ //
+ case 71: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break;
+ }
+
+ //
+ // Rule 73: conditional_expression ::= logical_OR_expression ? expression : conditional_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_or_typedefname : statement
+ //
+ case 101: { action. consumeStatementLabeled(); break;
+ }
+
+ //
+ // Rule 102: labeled_statement ::= case constant_expression :
+ //
+ case 102: { action. consumeStatementCase(); break;
+ }
+
+ //
+ // Rule 103: labeled_statement ::= default :
+ //
+ 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(); break;
+ }
+
+ //
+ // Rule 118: iteration_statement ::= while ( expression ) statement
+ //
+ case 118: { action. consumeStatementWhileLoop(); break;
+ }
+
+ //
+ // Rule 119: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement
+ //
+ case 119: { action. consumeStatementForLoop(); break;
+ }
+
+ //
+ // Rule 120: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement
+ //
+ case 120: { action. consumeStatementForLoop(); break;
+ }
+
+ //
+ // Rule 121: jump_statement ::= goto identifier_or_typedefname ;
+ //
+ case 121: { action. consumeStatementGoto(); break;
+ }
+
+ //
+ // Rule 122: jump_statement ::= continue ;
+ //
+ case 122: { action. consumeStatementContinue(); break;
+ }
+
+ //
+ // Rule 123: jump_statement ::= break ;
+ //
+ case 123: { action. consumeStatementBreak(); break;
+ }
+
+ //
+ // Rule 124: jump_statement ::= return ;
+ //
+ case 124: { action. consumeStatementReturn(false); break;
+ }
+
+ //
+ // Rule 125: jump_statement ::= return expression ;
+ //
+ case 125: { action. consumeStatementReturn(true); break;
+ }
+
+ //
+ // Rule 126: declaration ::= declaration_specifiers ;
+ //
+ case 126: { action. consumeDeclarationSimple(false); break;
+ }
+
+ //
+ // Rule 127: declaration ::= declaration_specifiers <openscope-ast> init_declarator_list ;
+ //
+ case 127: { action. consumeDeclarationSimple(true); break;
+ }
+
+ //
+ // Rule 128: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
+ //
+ case 128: { action. consumeDeclarationSpecifiersSimple(); break;
+ }
+
+ //
+ // Rule 129: declaration_specifiers ::= <openscope-ast> struct_or_union_declaration_specifiers
+ //
+ case 129: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
+ }
+
+ //
+ // Rule 130: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
+ //
+ case 130: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
+ }
+
+ //
+ // Rule 131: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
+ //
+ case 131: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
+ }
+
+ //
+ // Rule 132: declaration_specifiers ::= <openscope-ast> typdef_name_declaration_specifiers
+ //
+ case 132: { action. consumeDeclarationSpecifiersTypedefName(); break;
+ }
+
+ //
+ // Rule 157: init_declarator ::= complete_declarator = initializer
+ //
+ case 157: { action. consumeDeclaratorWithInitializer(true); break;
+ }
+
+ //
+ // Rule 159: storage_class_specifier ::= storage_class_specifier_token
+ //
+ case 159: { action. consumeDeclSpecToken(); break;
+ }
+
+ //
+ // Rule 165: simple_type_specifier ::= simple_type_specifier_token
+ //
+ case 165: { action. consumeDeclSpecToken(); break;
+ }
+
+ //
+ // Rule 178: typedef_name_in_declspec ::= Completion
+ //
+ case 178: { action. consumeDeclSpecToken(); break;
+ }
+
+ //
+ // Rule 179: typedef_name_in_declspec ::= identifier
+ //
+ case 179: { action. consumeDeclSpecToken(); break;
+ }
+
+ //
+ // Rule 182: struct_or_union_specifier ::= struct { <openscope-ast> struct_declaration_list_opt }
+ //
+ case 182: { action. consumeTypeSpecifierComposite(false, IASTCompositeTypeSpecifier.k_struct); break;
+ }
+
+ //
+ // Rule 183: struct_or_union_specifier ::= union { <openscope-ast> struct_declaration_list_opt }
+ //
+ case 183: { action. consumeTypeSpecifierComposite(false, IASTCompositeTypeSpecifier.k_union); break;
+ }
+
+ //
+ // Rule 184: struct_or_union_specifier ::= struct identifier_or_typedefname { <openscope-ast> struct_declaration_list_opt }
+ //
+ case 184: { action. consumeTypeSpecifierComposite(true, IASTCompositeTypeSpecifier.k_struct); break;
+ }
+
+ //
+ // Rule 185: struct_or_union_specifier ::= union identifier_or_typedefname { <openscope-ast> struct_declaration_list_opt }
+ //
+ case 185: { action. consumeTypeSpecifierComposite(true, IASTCompositeTypeSpecifier.k_union); break;
+ }
+
+ //
+ // Rule 186: elaborated_specifier ::= struct identifier_or_typedefname
+ //
+ case 186: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break;
+ }
+
+ //
+ // Rule 187: elaborated_specifier ::= union identifier_or_typedefname
+ //
+ case 187: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break;
+ }
+
+ //
+ // Rule 188: elaborated_specifier ::= enum identifier_or_typedefname
+ //
+ case 188: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break;
+ }
+
+ //
+ // Rule 193: struct_declaration ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ;
+ //
+ case 193: { action. consumeStructDeclaration(true); break;
+ }
+
+ //
+ // Rule 194: struct_declaration ::= specifier_qualifier_list ;
+ //
+ case 194: { action. consumeStructDeclaration(false); break;
+ }
+
+ //
+ // Rule 195: struct_declaration ::= ERROR_TOKEN
+ //
+ case 195: { action. consumeDeclarationProblem(); break;
+ }
+
+ //
+ // Rule 201: struct_declarator ::= : constant_expression
+ //
+ case 201: { action. consumeBitField(false); break;
+ }
+
+ //
+ // Rule 202: struct_declarator ::= declarator : constant_expression
+ //
+ case 202: { action. consumeBitField(true); break;
+ }
+
+ //
+ // Rule 203: enum_specifier ::= enum { <openscope-ast> enumerator_list_opt comma_opt }
+ //
+ case 203: { action. consumeTypeSpecifierEnumeration(false); break;
+ }
+
+ //
+ // Rule 204: enum_specifier ::= enum identifier_or_typedefname { <openscope-ast> enumerator_list_opt comma_opt }
+ //
+ case 204: { action. consumeTypeSpecifierEnumeration(true); break;
+ }
+
+ //
+ // Rule 209: enumerator ::= identifier_or_typedefname
+ //
+ case 209: { action. consumeEnumerator(false); break;
+ }
+
+ //
+ // Rule 210: enumerator ::= identifier_or_typedefname = constant_expression
+ //
+ case 210: { action. consumeEnumerator(true); break;
+ }
+
+ //
+ // Rule 211: type_qualifier ::= type_qualifier_token
+ //
+ case 211: { action. consumeDeclSpecToken(); break;
+ }
+
+ //
+ // Rule 215: function_specifier ::= inline
+ //
+ case 215: { action. consumeDeclSpecToken(); break;
+ }
+
+ //
+ // Rule 217: declarator ::= <openscope-ast> pointer_seq direct_declarator
+ //
+ case 217: { action. consumeDeclaratorWithPointer(true); break;
+ }
+
+ //
+ // Rule 222: basic_direct_declarator ::= declarator_id_name
+ //
+ case 222: { action. consumeDirectDeclaratorIdentifier(); break;
+ }
+
+ //
+ // Rule 223: basic_direct_declarator ::= ( declarator )
+ //
+ case 223: { action. consumeDirectDeclaratorBracketed(); break;
+ }
+
+ //
+ // Rule 224: declarator_id_name ::= identifier
+ //
+ case 224: { action. consumeIdentifierName(); break;
+ }
+
+ //
+ // Rule 225: array_direct_declarator ::= basic_direct_declarator array_modifier
+ //
+ case 225: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ }
+
+ //
+ // Rule 226: array_direct_declarator ::= array_direct_declarator array_modifier
+ //
+ case 226: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ }
+
+ //
+ // Rule 228: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_type_list )
+ //
+ case 228: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
+ }
+
+ //
+ // Rule 229: function_direct_declarator ::= basic_direct_declarator ( )
+ //
+ case 229: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
+ }
+
+ //
+ // Rule 231: function_declarator ::= <openscope-ast> pointer_seq function_direct_declarator
+ //
+ case 231: { action. consumeDeclaratorWithPointer(true); break;
+ }
+
+ //
+ // Rule 232: knr_direct_declarator ::= basic_direct_declarator ( <openscope-ast> identifier_list )
+ //
+ case 232: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break;
+ }
+
+ //
+ // Rule 234: knr_function_declarator ::= <openscope-ast> pointer_seq knr_direct_declarator
+ //
+ case 234: { action. consumeDeclaratorWithPointer(true); break;
+ }
+
+ //
+ // Rule 235: identifier_list ::= identifier
+ //
+ case 235: { action. consumeIdentifierKnR(); break;
+ }
+
+ //
+ // Rule 236: identifier_list ::= identifier_list , identifier
+ //
+ case 236: { action. consumeIdentifierKnR(); break;
+ }
+
+ //
+ // Rule 237: array_modifier ::= [ ]
+ //
+ case 237: { action. consumeDirectDeclaratorArrayModifier(false); break;
+ }
+
+ //
+ // Rule 238: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ]
+ //
+ case 238: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break;
+ }
+
+ //
+ // Rule 239: array_modifier ::= [ assignment_expression ]
+ //
+ case 239: { action. consumeDirectDeclaratorArrayModifier(true); break;
+ }
+
+ //
+ // Rule 240: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
+ //
+ case 240: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break;
+ }
+
+ //
+ // Rule 241: array_modifier ::= [ static assignment_expression ]
+ //
+ case 241: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break;
+ }
+
+ //
+ // Rule 242: array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
+ //
+ case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break;
+ }
+
+ //
+ // Rule 243: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ]
+ //
+ case 243: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break;
+ }
+
+ //
+ // Rule 244: array_modifier ::= [ * ]
+ //
+ case 244: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break;
+ }
+
+ //
+ // Rule 245: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ]
+ //
+ case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break;
+ }
+
+ //
+ // Rule 247: pointer_seq ::= *
+ //
+ case 247: { action. consumePointer(); break;
+ }
+
+ //
+ // Rule 248: pointer_seq ::= pointer_seq *
+ //
+ case 248: { action. consumePointer(); break;
+ }
+
+ //
+ // Rule 249: pointer_seq ::= * <openscope-ast> type_qualifier_list
+ //
+ case 249: { action. consumePointerTypeQualifierList(); break;
+ }
+
+ //
+ // Rule 250: pointer_seq ::= pointer_seq * <openscope-ast> type_qualifier_list
+ //
+ case 250: { action. consumePointerTypeQualifierList(); break;
+ }
+
+ //
+ // Rule 253: parameter_type_list ::= parameter_list
+ //
+ case 253: { action. consumeEmpty(); break;
+ }
+
+ //
+ // Rule 254: parameter_type_list ::= parameter_list , ...
+ //
+ case 254: { action. consumePlaceHolder(); break;
+ }
+
+ //
+ // Rule 255: parameter_type_list ::= ...
+ //
+ case 255: { action. consumePlaceHolder(); break;
+ }
+
+ //
+ // Rule 258: parameter_declaration ::= declaration_specifiers complete_parameter_declarator
+ //
+ case 258: { action. consumeParameterDeclaration(); break;
+ }
+
+ //
+ // Rule 259: parameter_declaration ::= declaration_specifiers
+ //
+ case 259: { action. consumeParameterDeclarationWithoutDeclarator(); break;
+ }
+
+ //
+ // Rule 262: type_name ::= specifier_qualifier_list
+ //
+ case 262: { action. consumeTypeId(false); break;
+ }
+
+ //
+ // Rule 263: type_name ::= specifier_qualifier_list abstract_declarator
+ //
+ case 263: { action. consumeTypeId(true); break;
+ }
+
+ //
+ // Rule 265: abstract_declarator ::= <openscope-ast> pointer_seq
+ //
+ case 265: { action. consumeDeclaratorWithPointer(false); break;
+ }
+
+ //
+ // Rule 266: abstract_declarator ::= <openscope-ast> pointer_seq direct_abstract_declarator
+ //
+ case 266: { action. consumeDeclaratorWithPointer(false); break;
+ }
+
+ //
+ // Rule 270: basic_direct_abstract_declarator ::= ( abstract_declarator )
+ //
+ case 270: { action. consumeDirectDeclaratorBracketed(); break;
+ }
+
+ //
+ // Rule 271: array_direct_abstract_declarator ::= array_modifier
+ //
+ case 271: { action. consumeDirectDeclaratorArrayDeclarator(false); break;
+ }
+
+ //
+ // Rule 272: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
+ //
+ case 272: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ }
+
+ //
+ // Rule 273: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
+ //
+ case 273: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ }
+
+ //
+ // Rule 274: function_direct_abstract_declarator ::= ( )
+ //
+ case 274: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break;
+ }
+
+ //
+ // Rule 275: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( )
+ //
+ case 275: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
+ }
+
+ //
+ // Rule 276: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list )
+ //
+ case 276: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break;
+ }
+
+ //
+ // Rule 277: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list )
+ //
+ case 277: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
+ }
+
+ //
+ // Rule 278: initializer ::= assignment_expression
+ //
+ case 278: { action. consumeInitializer(); break;
+ }
+
+ //
+ // Rule 279: initializer ::= { <openscope-ast> initializer_list comma_opt }
+ //
+ case 279: { action. consumeInitializerList(); break;
+ }
+
+ //
+ // Rule 284: designated_initializer ::= <openscope-ast> designation = initializer
+ //
+ case 284: { action. consumeInitializerDesignated(); break;
+ }
+
+ //
+ // Rule 288: designator_base ::= [ constant_expression ]
+ //
+ case 288: { action. consumeDesignatorArray(); break;
+ }
+
+ //
+ // Rule 289: designator_base ::= . identifier_or_typedefname
+ //
+ case 289: { action. consumeDesignatorField(); break;
+ }
+
+ //
+ // Rule 290: designator ::= [ constant_expression ]
+ //
+ case 290: { action. consumeDesignatorArray(); break;
+ }
+
+ //
+ // Rule 291: designator ::= . identifier_or_typedefname
+ //
+ case 291: { action. consumeDesignatorField(); break;
+ }
+
+ //
+ // Rule 292: translation_unit ::= external_declaration_list
+ //
+ case 292: { action. consumeTranslationUnit(); break;
+ }
+
+ //
+ // Rule 293: translation_unit ::= $Empty
+ //
+ case 293: { action. consumeTranslationUnit(); break;
+ }
+
+ //
+ // Rule 298: external_declaration ::= ;
+ //
+ case 298: { action. consumeDeclarationEmpty(); break;
+ }
+
+ //
+ // Rule 299: external_declaration ::= ERROR_TOKEN
+ //
+ case 299: { action. consumeDeclarationProblem(); break;
+ }
+
+ //
+ // Rule 302: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
+ //
+ case 302: { action. consumeFunctionDefinition(true); break;
+ }
+
+ //
+ // Rule 303: function_definition ::= <openscope-ast> function_declarator function_body
+ //
+ case 303: { action. consumeFunctionDefinition(false); break;
+ }
+
+ //
+ // Rule 304: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
+ //
+ case 304: { action. consumeFunctionDefinitionKnR(); break;
+ }
+
+ //
+ // Rule 305: function_body ::= { }
+ //
+ case 305: { action. consumeStatementCompoundStatement(false); break;
+ }
+
+ //
+ // Rule 306: function_body ::= { <openscope-ast> block_item_list }
+ //
+ case 306: { action. consumeStatementCompoundStatement(true); break;
+ }
+
+ //
+ // Rule 308: expression_parser_start ::= ERROR_TOKEN
+ //
+ case 308: { action. consumeExpressionProblem(); break;
+ }
+
+ //
+ // Rule 309: literal ::= MYTHREAD
+ //
+ case 309: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread); break;
+ }
+
+ //
+ // Rule 310: literal ::= THREADS
+ //
+ case 310: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads); break;
+ }
+
+ //
+ // Rule 311: literal ::= UPC_MAX_BLOCKSIZE
+ //
+ case 311: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size); break;
+ }
+
+ //
+ // Rule 312: unary_expression ::= upc_localsizeof unary_expression
+ //
+ case 312: { action. consumeExpressionUnaryOperator(IUPCASTUnaryExpression.op_upc_localsizeof); break;
+ }
+
+ //
+ // Rule 313: unary_expression ::= upc_localsizeof ( type_name )
+ //
+ case 313: { action. consumeExpressionTypeId(IUPCASTUnaryExpression.op_upc_localsizeof); break;
+ }
+
+ //
+ // Rule 314: unary_expression ::= upc_blocksizeof unary_expression
+ //
+ case 314: { action. consumeExpressionUnaryOperator(IUPCASTUnaryExpression.op_upc_blocksizeof); break;
+ }
+
+ //
+ // Rule 315: unary_expression ::= upc_blocksizeof ( type_name )
+ //
+ case 315: { action. consumeExpressionTypeId(IUPCASTUnaryExpression.op_upc_blocksizeof); break;
+ }
+
+ //
+ // Rule 316: unary_expression ::= upc_elemsizeof unary_expression
+ //
+ case 316: { action. consumeExpressionUnaryOperator(IUPCASTUnaryExpression.op_upc_elemsizeof); break;
+ }
+
+ //
+ // Rule 317: unary_expression ::= upc_elemsizeof ( type_name )
+ //
+ case 317: { action. consumeExpressionTypeId(IUPCASTUnaryExpression.op_upc_elemsizeof); break;
+ }
+
+ //
+ // Rule 321: shared_type_qualifier ::= shared
+ //
+ case 321: { action. consumeToken(); break;
+ }
+
+ //
+ // Rule 322: reference_type_qualifier ::= relaxed
+ //
+ case 322: { action. consumeToken(); break;
+ }
+
+ //
+ // Rule 323: reference_type_qualifier ::= strict
+ //
+ case 323: { action. consumeToken(); break;
+ }
+
+ //
+ // Rule 324: layout_qualifier ::= [ constant_expression ]
+ //
+ case 324: { action. consumeLayoutQualifier(true, false); break;
+ }
+
+ //
+ // Rule 325: layout_qualifier ::= [ * ]
+ //
+ case 325: { action. consumeLayoutQualifier(false, true); break;
+ }
+
+ //
+ // Rule 326: layout_qualifier ::= [ ]
+ //
+ case 326: { action. consumeLayoutQualifier(false, false); break;
+ }
+
+ //
+ // Rule 328: synchronization_statement ::= upc_notify expression ;
+ //
+ case 328: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true); break;
+ }
+
+ //
+ // Rule 329: synchronization_statement ::= upc_notify ;
+ //
+ case 329: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false); break;
+ }
+
+ //
+ // Rule 330: synchronization_statement ::= upc_wait expression ;
+ //
+ case 330: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true); break;
+ }
+
+ //
+ // Rule 331: synchronization_statement ::= upc_wait ;
+ //
+ case 331: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false); break;
+ }
+
+ //
+ // Rule 332: synchronization_statement ::= upc_barrier expression ;
+ //
+ case 332: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true); break;
+ }
+
+ //
+ // Rule 333: synchronization_statement ::= upc_barrier ;
+ //
+ case 333: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false); break;
+ }
+
+ //
+ // Rule 334: synchronization_statement ::= upc_fence ;
+ //
+ case 334: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false); break;
+ }
+
+ //
+ // Rule 335: iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement
+ //
+ case 335: { action. consumeStatementUPCForallLoop(true, true, true, true); break;
+ }
+
+ //
+ // Rule 336: iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement
+ //
+ case 336: { action. consumeStatementUPCForallLoop(true, true, true, false); break;
+ }
+
+ //
+ // Rule 337: iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement
+ //
+ case 337: { action. consumeStatementUPCForallLoop(true, true, false, true); break;
+ }
+
+ //
+ // Rule 338: iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement
+ //
+ case 338: { action. consumeStatementUPCForallLoop(true, true, false, false); break;
+ }
+
+ //
+ // Rule 339: iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement
+ //
+ case 339: { action. consumeStatementUPCForallLoop(true, false, true, true); break;
+ }
+
+ //
+ // Rule 340: iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement
+ //
+ case 340: { action. consumeStatementUPCForallLoop(true, false, true, false); break;
+ }
+
+ //
+ // Rule 341: iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement
+ //
+ case 341: { action. consumeStatementUPCForallLoop(true, false, false, true); break;
+ }
+
+ //
+ // Rule 342: iteration_statement ::= upc_forall ( expression ; ; ; ) statement
+ //
+ case 342: { action. consumeStatementUPCForallLoop(true, false, false, false); break;
+ }
+
+ //
+ // Rule 343: iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement
+ //
+ case 343: { action. consumeStatementUPCForallLoop(false, true, true, true); break;
+ }
+
+ //
+ // Rule 344: iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement
+ //
+ case 344: { action. consumeStatementUPCForallLoop(false, true, true, false); break;
+ }
+
+ //
+ // Rule 345: iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement
+ //
+ case 345: { action. consumeStatementUPCForallLoop(false, true, false, true); break;
+ }
+
+ //
+ // Rule 346: iteration_statement ::= upc_forall ( ; expression ; ; ) statement
+ //
+ case 346: { action. consumeStatementUPCForallLoop(false, true, false, false); break;
+ }
+
+ //
+ // Rule 347: iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement
+ //
+ case 347: { action. consumeStatementUPCForallLoop(false, false, true, true); break;
+ }
+
+ //
+ // Rule 348: iteration_statement ::= upc_forall ( ; ; expression ; ) statement
+ //
+ case 348: { action. consumeStatementUPCForallLoop(false, false, true, false); break;
+ }
+
+ //
+ // Rule 349: iteration_statement ::= upc_forall ( ; ; ; affinity ) statement
+ //
+ case 349: { action. consumeStatementUPCForallLoop(false, false, false, true); break;
+ }
+
+ //
+ // Rule 350: iteration_statement ::= upc_forall ( ; ; ; ) statement
+ //
+ case 350: { action. consumeStatementUPCForallLoop(false, false, false, false); break;
+ }
+
+ //
+ // Rule 351: iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement
+ //
+ case 351: { action. consumeStatementUPCForallLoop(true, true, true, true); break;
+ }
+
+ //
+ // Rule 352: iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement
+ //
+ case 352: { action. consumeStatementUPCForallLoop(true, true, true, false); break;
+ }
+
+ //
+ // Rule 353: iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement
+ //
+ case 353: { action. consumeStatementUPCForallLoop(true, true, false, true); break;
+ }
+
+ //
+ // Rule 354: iteration_statement ::= upc_forall ( declaration expression ; ; ) statement
+ //
+ case 354: { action. consumeStatementUPCForallLoop(true, true, false, false); break;
+ }
+
+ //
+ // Rule 355: iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement
+ //
+ case 355: { action. consumeStatementUPCForallLoop(true, false, true, true); break;
+ }
+
+ //
+ // Rule 356: iteration_statement ::= upc_forall ( declaration ; expression ; ) statement
+ //
+ case 356: { action. consumeStatementUPCForallLoop(true, false, true, false); break;
+ }
+
+ //
+ // Rule 357: iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement
+ //
+ case 357: { action. consumeStatementUPCForallLoop(true, false, false, true); break;
+ }
+
+ //
+ // Rule 358: iteration_statement ::= upc_forall ( declaration ; ; ) statement
+ //
+ case 358: { action. consumeStatementUPCForallLoop(true, false, false, false); break;
+ }
+
+ //
+ // Rule 360: affinity ::= continue
+ //
+ case 360: { 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/UPCExpressionStatementParserprs.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionStatementParserprs.java
new file mode 100644
index 00000000000..bb0aa834240
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionStatementParserprs.java
@@ -0,0 +1,1279 @@
+/*******************************************************************************
+* Copyright (c) 2006, 2008 IBM Corporation and others.
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+*
+* Contributors:
+* IBM Corporation - initial API and implementation
+*********************************************************************************/
+
+// This file was generated by LPG
+
+package org.eclipse.cdt.internal.core.dom.parser.upc;
+
+public class UPCExpressionStatementParserprs implements lpg.lpgjavaruntime.ParseTable, UPCExpressionStatementParsersym {
+
+ 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,1,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,3,1,1,1,4,
+ 4,3,3,2,2,8,1,0,1,1,
+ 1,2,2,2,2,2,2,2,2,2,
+ 4,1,4,1,3,3,3,1,3,3,
+ 1,3,3,1,3,3,3,3,1,3,
+ 3,1,3,1,3,1,3,1,3,1,
+ 3,1,5,1,3,3,3,3,3,3,
+ 3,3,3,3,3,1,1,2,1,0,
+ 1,3,1,1,1,1,1,1,1,1,
+ 3,3,2,2,4,1,2,1,1,1,
+ 2,5,7,5,1,0,7,5,9,8,
+ 3,2,2,2,3,2,4,2,2,2,
+ 2,2,1,1,1,1,2,1,2,2,
+ 2,1,2,2,1,2,2,1,2,2,
+ 1,2,2,1,3,1,3,1,1,1,
+ 1,1,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,1,1,
+ 1,5,5,6,6,2,2,2,1,0,
+ 1,2,4,2,1,1,1,3,1,1,
+ 2,3,6,7,1,0,1,3,1,3,
+ 1,1,1,1,1,1,3,1,1,1,
+ 1,1,3,1,2,2,1,5,3,1,
+ 3,5,1,3,1,3,2,4,3,5,
+ 4,6,6,3,5,1,1,2,3,4,
+ 1,2,1,3,1,1,3,2,1,1,
+ 1,1,2,1,2,3,1,1,1,3,
+ 1,2,2,2,3,4,5,1,5,1,
+ 1,3,3,4,1,1,2,3,2,3,
+ 2,1,0,1,2,1,1,1,1,1,
+ 2,4,3,6,2,4,2,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,
+ -44,0,0,0,0,0,0,-41,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ -83,-214,-81,0,0,0,0,0,0,-2,
+ -5,-18,-125,0,0,0,0,-62,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-20,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-21,
+ -89,0,0,0,0,0,0,0,0,0,
+ -139,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ -190,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ -197,-10,0,0,0,0,0,0,-22,-144,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-23,-24,-25,0,0,0,0,
+ 0,0,0,0,0,-26,0,0,0,0,
+ 0,-37,0,-185,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-84,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-148,-38,0,-6,0,0,0,
+ 0,0,-60,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ -86,-27,0,0,-28,-143,0,0,0,0,
+ -63,0,0,0,0,0,0,-87,0,0,
+ 0,0,0,0,0,0,-160,0,0,0,
+ 0,-11,0,0,0,0,0,0,0,0,
+ 0,0,-29,-30,-98,0,0,0,0,0,
+ 0,0,0,-4,0,0,0,0,0,0,
+ -171,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,-131,0,0,0,0,0,0,
+ -99,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-100,-3,0,0,0,0,-57,
+ 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,-31,0,0,0,0,0,0,-101,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,-45,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,
+ -65,0,0,0,0,0,0,-42,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ -66,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ -67,0,0,0,0,0,0,-75,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ -68,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ -69,0,0,0,0,0,0,-76,0,0,
+ 0,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,
+ -71,0,0,0,0,0,0,-77,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ -72,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ -73,0,0,0,0,0,0,-78,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ -74,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ -164,0,0,0,0,0,0,-79,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ -165,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ -188,0,0,0,0,0,0,-102,0,0,
+ 0,0,0,0,0,0,0,0,0,-202,
+ 0,0,0,0,0,0,-189,0,0,0,
+ 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,-212,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-222,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-138,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-103,-147,-104,-105,-106,0,
+ -107,0,0,-59,0,0,0,0,0,0,
+ -108,0,0,0,0,0,0,0,-7,0,
+ 0,0,0,0,0,-12,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-168,
+ -80,0,0,0,0,0,0,-50,0,0,
+ 0,0,0,0,-128,0,0,0,0,0,
+ 0,-46,0,0,0,0,0,0,0,0,
+ -97,-169,-159,-109,0,-151,0,0,0,0,
+ 0,0,0,-121,0,0,0,0,0,0,
+ 0,-199,-1,0,0,0,0,0,0,0,
+ 0,-166,0,0,0,0,0,-56,0,0,
+ 0,0,0,0,-221,0,0,0,0,0,
+ 0,0,0,0,-110,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-215,
+ -111,0,-92,-127,0,0,0,0,0,0,
+ -146,0,0,0,0,0,0,0,-8,0,
+ 0,0,0,0,0,0,-112,-113,-123,-133,
+ 0,0,0,-88,0,0,0,0,0,-58,
+ 0,0,0,0,0,0,-135,0,0,0,
+ 0,0,-114,0,0,0,0,0,0,0,
+ -9,0,0,0,0,0,0,0,0,0,
+ -51,0,0,0,0,0,0,-93,0,0,
+ 0,-13,0,0,0,0,0,0,0,-115,
+ 0,-52,0,0,0,0,0,0,-180,0,
+ 0,0,-53,0,0,0,0,0,0,0,
+ 0,0,0,-54,0,0,0,0,0,0,
+ -90,0,0,-55,0,0,0,0,0,0,
+ -85,0,0,-211,-95,-136,-116,0,-91,-117,
+ -40,-140,0,0,0,0,0,0,0,-173,
+ 0,-153,0,0,0,0,0,-118,0,0,
+ -155,0,0,0,0,-94,0,0,0,0,
+ 0,0,0,0,0,-187,0,0,0,0,
+ -96,-14,0,0,0,0,0,0,0,0,
+ 0,0,-194,0,-119,-43,-120,0,0,0,
+ 0,0,0,0,0,0,0,0,-203,-132,
+ -134,-223,0,0,0,0,0,-152,0,0,
+ 0,0,0,0,0,-167,0,0,0,0,
+ 0,0,-15,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-137,-170,0,0,0,
+ 0,0,0,0,0,-19,-149,-172,0,-32,
+ -181,-130,0,-33,0,-158,0,-34,0,-175,
+ 0,-182,0,-179,0,0,0,0,0,-186,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,-157,0,0,0,-213,0,-35,0,
+ 0,-196,-36,0,0,0,-224,0,0,0,
+ 0,0,-47,0,0,0,0,0,0,0,
+ -129,0,0,0,0,0,0,0,0,0,
+ 0,-184,0,-48,0,0,0,0,0,0,
+ -126,0,0,0,-142,0,0,-49,0,0,
+ 0,0,0,0,-82,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,-154,0,0,0,0,-156,-161,0,0,
+ 0,-174,0,0,0,0,-178,-192,0,-195,
+ -193,-207,0,0,-198,0,0,0,0,-210,
+ -200,0,0,0,0,0,0,0,0,0,
+ 0,-204,0,0,-16,0,0,0,0,0,
+ 0,-122,0,0,0,0,-150,0,0,0,
+ 0,0,0,0,0,0,0,0,-206,0,
+ 0,0,0,-209,0,0,-183,0,-141,0,
+ 0,0,0,-17,0,0,0,0,0,0,
+ 0,0,-201,-217,-219,0,-162,0,0,0,
+ 0,0,0,0,0,-145,-176,-216,0,0,
+ -163,-218,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-191,-177,0,0,0,0,
+ 0,0,0,0,0,0,0,-39,0,0,
+ 0,-220,0,0,0,0,0,0,0,0,
+ 0,0,0,-61,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0
+ };
+ };
+ public final static short baseCheck[] = BaseCheck.baseCheck;
+ public final int baseCheck(int index) { return baseCheck[index]; }
+ public final static short rhs[] = baseCheck;
+ public final int rhs(int index) { return rhs[index]; };
+
+ public interface BaseAction {
+ public final static char baseAction[] = {
+ 85,7,22,22,20,20,31,31,64,64,
+ 1,1,1,1,2,2,2,3,3,4,
+ 4,4,4,4,4,4,4,54,54,71,
+ 71,5,5,5,5,5,5,5,5,5,
+ 5,5,6,6,8,8,8,8,9,9,
+ 9,10,10,10,11,11,11,11,11,12,
+ 12,12,13,13,14,14,15,15,16,16,
+ 17,17,18,18,19,19,19,19,19,19,
+ 19,19,19,19,19,19,96,30,28,86,
+ 86,73,73,45,97,97,97,97,97,97,
+ 97,98,98,98,99,99,104,104,105,105,
+ 100,100,101,101,101,107,107,102,102,102,
+ 102,103,103,103,103,103,106,106,21,21,
+ 21,21,21,33,33,33,79,79,74,74,
+ 74,74,75,75,75,76,76,76,77,77,
+ 77,78,78,78,108,108,109,109,110,34,
+ 36,36,36,36,36,55,57,57,57,57,
+ 57,57,57,57,57,57,57,57,68,68,
+ 32,32,65,65,65,65,66,66,66,58,
+ 58,59,59,51,51,51,27,87,87,80,
+ 81,81,81,67,67,82,82,83,83,69,
+ 69,23,24,24,24,35,50,50,37,37,
+ 37,37,40,40,42,38,38,39,43,43,
+ 111,111,41,112,112,88,88,29,29,29,
+ 29,29,29,29,29,29,84,52,52,52,
+ 52,61,61,60,60,60,62,62,53,53,
+ 89,89,44,44,63,63,63,46,46,46,
+ 47,48,48,48,49,49,49,49,56,56,
+ 72,72,72,72,70,90,91,91,92,92,
+ 93,93,113,113,114,114,115,115,115,115,
+ 117,117,116,116,116,118,118,85,85,1,
+ 1,1,5,5,5,5,5,5,23,23,
+ 25,25,26,26,94,94,94,97,119,119,
+ 119,119,119,119,119,102,102,102,102,102,
+ 102,102,102,102,102,102,102,102,102,102,
+ 102,102,102,102,102,102,102,102,102,120,
+ 120,1,14,19,15,392,644,44,573,430,
+ 417,514,489,516,515,602,526,643,605,74,
+ 91,333,446,476,134,211,318,319,1655,1300,
+ 33,51,1149,476,136,133,135,159,800,14,
+ 19,15,392,42,44,20,430,417,514,489,
+ 516,515,602,526,1353,239,138,245,165,216,
+ 1232,219,1547,221,222,227,142,145,148,151,
+ 430,494,1493,1722,391,1334,1421,1439,1466,1481,
+ 1231,734,14,19,15,392,644,44,627,430,
+ 417,514,489,516,515,602,526,643,605,74,
+ 278,734,14,19,15,392,644,44,627,430,
+ 417,514,489,516,515,602,526,643,605,74,
+ 278,1033,800,14,19,15,392,42,39,186,
+ 440,14,19,15,392,644,44,280,430,417,
+ 514,489,516,515,602,526,643,605,74,1262,
+ 271,281,238,1233,73,173,287,280,217,1232,
+ 219,1547,221,222,227,320,162,266,618,601,
+ 269,281,426,1744,486,14,19,15,392,644,
+ 44,627,430,417,514,489,516,515,602,526,
+ 643,605,74,278,394,14,19,15,392,644,
+ 44,1641,430,417,514,489,516,515,602,526,
+ 643,605,74,393,340,426,237,830,14,19,
+ 15,392,316,800,14,19,15,392,42,44,
+ 282,430,417,514,489,516,1327,134,211,318,
+ 319,314,65,23,283,6,476,136,133,135,
+ 159,800,14,19,15,392,42,44,369,430,
+ 417,514,489,516,515,602,1390,780,241,138,
+ 272,165,800,14,19,15,392,42,38,142,
+ 145,148,151,201,109,1010,22,273,1334,1421,
+ 1439,1466,1481,1231,800,14,19,15,392,644,
+ 44,333,430,417,514,489,516,515,602,526,
+ 643,605,74,91,980,14,19,15,392,644,
+ 44,1645,430,417,514,489,516,515,602,526,
+ 643,605,74,606,612,14,19,15,392,42,
+ 44,1050,430,417,514,489,516,515,602,526,
+ 643,605,93,481,435,69,326,1580,1067,286,
+ 800,14,19,15,392,42,44,391,430,417,
+ 514,1234,767,14,19,15,392,644,44,1236,
+ 430,417,514,489,516,515,602,526,643,605,
+ 74,278,800,14,19,15,392,644,44,471,
+ 430,417,514,489,516,515,602,526,643,605,
+ 74,92,800,14,19,15,392,42,44,307,
+ 714,800,14,19,15,392,644,44,284,430,
+ 417,514,489,516,515,602,526,643,605,74,
+ 85,800,14,19,15,392,644,44,573,430,
+ 417,514,489,516,515,602,526,643,605,74,
+ 84,800,14,19,15,392,644,44,16,430,
+ 417,514,489,516,515,602,526,643,605,74,
+ 83,800,14,19,15,392,644,44,573,430,
+ 417,514,489,516,515,602,526,643,605,74,
+ 82,800,14,19,15,392,644,44,1437,430,
+ 417,514,489,516,515,602,526,643,605,74,
+ 81,800,14,19,15,392,644,44,573,430,
+ 417,514,489,516,515,602,526,643,605,74,
+ 80,800,14,19,15,392,644,44,1440,430,
+ 417,514,489,516,515,602,526,643,605,74,
+ 79,800,14,19,15,392,644,44,573,430,
+ 417,514,489,516,515,602,526,643,605,74,
+ 78,800,14,19,15,392,644,44,1458,430,
+ 417,514,489,516,515,602,526,643,605,74,
+ 77,800,14,19,15,392,644,44,573,430,
+ 417,514,489,516,515,602,526,643,605,74,
+ 76,800,14,19,15,392,644,44,1495,430,
+ 417,514,489,516,515,602,526,643,605,74,
+ 75,800,14,19,15,392,644,44,573,430,
+ 417,514,489,516,515,602,526,643,605,74,
+ 1688,800,14,19,15,392,644,44,1497,430,
+ 417,514,489,516,515,602,526,643,605,74,
+ 1691,800,14,19,15,392,42,44,86,430,
+ 417,514,489,516,515,602,526,643,605,93,
+ 800,14,19,15,392,42,44,812,430,417,
+ 514,489,516,515,602,526,643,605,93,800,
+ 14,19,15,392,42,44,1739,430,417,514,
+ 489,516,515,602,526,643,605,93,800,14,
+ 19,15,392,42,44,210,430,417,514,489,
+ 516,515,602,526,643,605,93,800,14,19,
+ 15,392,42,44,1764,430,417,514,489,516,
+ 515,602,526,643,605,93,800,14,19,15,
+ 392,42,44,201,430,417,514,489,516,515,
+ 602,526,643,605,73,126,543,200,249,354,
+ 287,474,202,661,800,14,19,15,392,42,
+ 44,531,430,417,514,489,516,515,1301,860,
+ 14,19,15,392,314,271,800,14,19,15,
+ 392,42,37,216,1232,219,1547,221,222,227,
+ 135,573,264,618,601,269,260,1690,800,14,
+ 19,15,392,42,44,573,430,417,1048,261,
+ 274,21,800,14,19,15,392,42,44,271,
+ 759,340,708,644,244,270,476,216,1232,219,
+ 1547,221,222,227,32,258,264,618,601,269,
+ 1493,441,405,658,134,211,318,319,324,1300,
+ 654,226,476,1215,137,133,135,159,800,14,
+ 19,15,392,42,44,405,430,417,514,489,
+ 1171,87,1300,715,240,301,139,1632,165,216,
+ 1232,219,1547,221,222,227,143,146,149,152,
+ 333,618,1597,663,566,14,19,15,392,42,
+ 35,573,216,1232,219,1547,221,222,227,890,
+ 14,19,15,392,312,1597,244,610,452,64,
+ 32,276,197,199,516,1510,1749,1672,390,1434,
+ 800,14,19,15,392,42,44,32,430,417,
+ 514,1285,1512,240,1677,198,199,134,211,318,
+ 319,920,14,19,15,392,40,141,133,135,
+ 159,800,14,19,15,392,42,44,805,430,
+ 417,1155,800,14,19,15,392,42,36,140,
+ 619,165,800,14,19,15,392,42,44,692,
+ 430,417,1157,800,14,19,15,392,42,44,
+ 1511,430,417,1158,800,14,19,15,392,42,
+ 44,1059,430,1159,800,14,19,15,392,42,
+ 44,1148,430,1161,472,835,32,198,1621,1091,
+ 280,32,235,1593,134,211,318,319,654,1767,
+ 573,274,32,1763,144,133,135,159,540,1682,
+ 271,32,134,211,318,319,1101,1546,1687,87,
+ 277,383,147,133,135,159,606,264,618,601,
+ 269,1133,800,14,19,15,392,42,35,134,
+ 211,318,319,573,1215,620,517,656,193,150,
+ 133,135,159,381,134,211,318,319,289,606,
+ 665,699,78,223,153,133,135,159,566,14,
+ 19,15,392,42,35,271,566,14,19,15,
+ 392,42,35,800,14,19,15,392,42,34,
+ 325,1561,264,618,601,269,700,577,245,217,
+ 1232,219,1547,221,222,227,32,87,647,263,
+ 32,696,599,361,32,574,32,361,32,1727,
+ 600,361,842,1747,600,361,225,196,208,1156,
+ 706,196,275,1496,87,196,808,1496,87,196,
+ 808,1496,87,536,808,1496,87,745,808,32,
+ 368,183,599,32,848,182,361,653,888,1700,
+ 361,257,928,800,14,19,15,392,42,47,
+ 196,478,229,1912,196,1561,1496,87,574,808,
+ 1496,87,600,808,800,14,19,15,392,42,
+ 46,121,1156,968,1912,121,1912,1008,800,14,
+ 19,15,392,42,45,701,14,19,15,392,
+ 42,43,207,26,251,211,318,319,251,211,
+ 318,319,55,1722,256,1399,1572,112,32,574,
+ 1912,1311,169,1557,574,461,1912,283,476,574,
+ 478,476,606,196,574,600,1912,574,196,1777,
+ 597,600,1776,196,1777,1912,1776,574,196,1777,
+ 242,1156,692,243,1777,950,14,19,15,392,
+ 33,1156,1074,191,291,490,185,342,191,1001,
+ 1570,1796,184,191,574,1574,1796,1912,191,476,
+ 1695,1796,481,256,644,1701,1796,536,1156,121,
+ 1311,271,1557,256,950,14,19,15,392,32,
+ 1765,288,1557,600,476,573,1778,121,266,618,
+ 601,269,251,211,318,319,292,223,600,1561,
+ 256,349,600,1912,1252,228,290,1450,1812,1557,
+ 251,211,318,319,203,425,226,1912,1782,252,
+ 211,318,319,574,252,211,318,319,480,204,
+ 1781,1912,596,279,1912,654,207,196,252,211,
+ 318,319,1912,1777,32,1912,1912,1912,1795,1712,
+ 1572,654,232,1912,1912,1912,89,1912,1912,1912,
+ 1912,194,1912,1912,1912,1912,1912,192,1912,1912,
+ 1912,1912,87,1912,1328,1912,1912,1912,1912,1912,
+ 1912,1912,1912,1912,1912,1912,1912,1912,1912,1912,
+ 1912,1912,1912,1912,1912,1912,1912,1912,1912,1912,
+ 1912,1912,1912,1912,1912,1912,1912,1912,1912,1912,
+ 1912,1912,1912,1912,1201,1912,0,321,694,0,
+ 17,179,0,18,178,0,1,2136,0,1,
+ 2147,0
+ };
+ };
+ public final static char baseAction[] = BaseAction.baseAction;
+ public final int baseAction(int index) { return baseAction[index]; }
+ public final static char lhs[] = baseAction;
+ public final int lhs(int index) { return lhs[index]; };
+
+ public interface TermCheck {
+ public final static byte termCheck[] = {0,
+ 0,1,2,3,4,0,6,7,8,9,
+ 10,11,12,13,14,15,16,17,18,19,
+ 20,21,22,23,24,25,26,27,28,29,
+ 30,0,0,33,34,35,36,37,38,39,
+ 40,41,42,43,44,45,46,47,48,49,
+ 0,51,52,53,0,1,0,3,0,5,
+ 6,7,8,0,0,11,12,13,0,6,
+ 7,8,0,5,11,12,13,0,1,2,
+ 0,4,77,78,30,0,0,33,34,35,
+ 36,37,38,39,40,41,42,43,44,45,
+ 46,47,48,49,54,51,52,53,0,55,
+ 56,0,1,0,3,0,5,6,7,8,
+ 0,89,11,12,13,0,6,7,8,57,
+ 58,11,12,13,0,1,2,73,70,5,
+ 54,30,57,58,33,34,35,36,37,38,
+ 39,40,41,42,43,44,45,46,47,48,
+ 49,0,51,52,53,31,55,56,0,1,
+ 0,3,0,5,6,7,8,69,0,11,
+ 12,13,57,58,50,0,14,79,80,81,
+ 82,83,84,85,86,87,88,0,30,0,
+ 0,33,34,35,36,37,38,39,40,41,
+ 42,43,44,45,46,47,48,49,0,51,
+ 52,53,0,55,56,0,1,5,3,32,
+ 5,6,7,8,0,74,11,12,13,0,
+ 6,7,8,0,0,11,12,13,0,64,
+ 65,66,67,9,10,30,57,58,33,34,
+ 35,36,37,38,39,40,41,42,43,44,
+ 45,46,47,48,49,75,51,52,53,0,
+ 55,56,0,1,0,3,0,5,6,7,
+ 8,0,70,11,12,13,0,6,7,8,
+ 0,0,11,12,13,57,58,64,65,66,
+ 67,32,30,0,75,33,34,35,36,37,
+ 38,39,40,41,42,43,44,45,46,47,
+ 48,49,0,51,52,53,4,55,56,0,
+ 1,0,3,0,31,6,7,8,0,0,
+ 11,12,13,0,6,7,8,71,72,11,
+ 12,13,9,10,64,65,66,67,0,30,
+ 2,0,33,34,35,36,37,38,39,40,
+ 41,42,43,44,45,46,47,48,49,0,
+ 51,52,53,0,1,2,3,4,5,31,
+ 0,60,9,10,0,1,2,14,15,16,
+ 17,18,19,20,21,22,23,24,25,26,
+ 27,28,29,30,0,0,1,0,3,0,
+ 6,7,8,4,0,11,12,13,4,0,
+ 1,2,3,4,5,0,1,2,9,10,
+ 0,0,59,14,15,16,17,18,19,20,
+ 21,22,23,24,25,26,27,28,29,30,
+ 0,0,68,0,4,0,5,0,0,0,
+ 5,4,9,10,5,0,1,2,3,4,
+ 5,62,63,0,9,10,62,63,59,14,
+ 15,16,17,18,19,20,21,22,23,24,
+ 25,26,27,28,29,0,0,32,2,68,
+ 4,6,7,8,31,54,11,12,13,50,
+ 0,0,62,63,59,0,1,60,3,0,
+ 55,70,0,1,2,30,4,31,33,34,
+ 35,36,37,38,39,40,41,42,43,44,
+ 45,46,47,48,49,0,1,2,3,4,
+ 5,32,0,31,9,10,0,5,2,14,
+ 15,16,17,18,19,20,21,22,23,24,
+ 25,26,27,28,29,0,0,1,0,0,
+ 5,71,72,5,5,0,1,31,3,0,
+ 0,0,1,2,3,4,5,0,0,0,
+ 9,10,50,14,59,14,15,16,17,18,
+ 19,20,21,22,23,24,25,26,27,28,
+ 29,0,1,0,3,50,0,0,50,54,
+ 0,32,0,1,55,0,60,0,1,2,
+ 3,4,0,1,0,3,9,10,0,0,
+ 59,14,15,16,17,18,19,20,21,22,
+ 23,24,25,26,27,28,29,32,0,0,
+ 73,0,74,0,32,0,32,54,0,0,
+ 0,1,2,3,4,0,60,0,0,9,
+ 10,0,0,56,14,15,16,17,18,19,
+ 20,21,22,23,24,25,26,27,28,29,
+ 32,32,32,0,1,2,3,4,31,0,
+ 0,0,9,10,0,54,0,14,15,16,
+ 17,18,19,20,21,22,23,24,25,26,
+ 27,28,29,0,69,32,0,1,2,3,
+ 4,0,0,0,69,9,10,0,0,0,
+ 14,15,16,17,18,19,20,21,22,23,
+ 24,25,26,27,28,29,0,0,32,0,
+ 1,2,3,4,0,1,0,3,9,10,
+ 31,0,68,14,15,16,17,18,19,20,
+ 21,22,23,24,25,26,27,28,29,0,
+ 1,2,3,4,0,1,32,3,9,10,
+ 61,0,31,14,15,16,17,18,19,20,
+ 21,22,23,24,25,26,27,28,29,0,
+ 1,2,3,4,0,0,32,0,9,10,
+ 0,0,61,14,15,16,17,18,19,20,
+ 21,22,23,24,25,26,27,28,29,0,
+ 1,2,3,4,0,54,0,0,9,10,
+ 0,0,0,14,15,16,17,18,19,20,
+ 21,22,23,24,25,26,27,28,29,0,
+ 1,2,3,4,0,0,0,0,9,10,
+ 0,0,0,14,15,16,17,18,19,20,
+ 21,22,23,24,25,26,27,28,29,0,
+ 1,2,3,4,0,0,0,0,9,10,
+ 0,0,0,14,15,16,17,18,19,20,
+ 21,22,23,24,25,26,27,28,29,0,
+ 1,2,3,4,0,0,0,0,9,10,
+ 0,0,0,14,15,16,17,18,19,20,
+ 21,22,23,24,25,26,27,28,29,0,
+ 0,2,0,4,5,6,7,8,0,0,
+ 11,12,13,0,0,0,0,0,0,0,
+ 0,0,0,1,2,0,4,0,0,30,
+ 31,0,33,34,35,36,37,0,0,0,
+ 0,2,0,4,5,6,7,8,0,50,
+ 11,12,13,31,6,7,8,0,0,11,
+ 12,13,0,0,0,2,0,4,0,30,
+ 31,0,33,34,35,36,37,0,30,0,
+ 0,33,34,35,36,37,6,7,8,50,
+ 0,11,12,13,31,0,6,7,8,0,
+ 0,11,12,13,0,0,0,0,0,0,
+ 30,0,0,33,34,35,36,37,0,0,
+ 30,0,0,33,34,35,36,37,6,7,
+ 8,0,0,11,12,13,0,0,0,2,
+ 2,0,5,0,0,0,0,0,0,0,
+ 0,0,30,15,16,33,34,35,36,37,
+ 0,0,0,0,0,0,0,0,31,31,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,50,0,0,
+ 0,0,0,0,0,0,0,0,0,61,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,76,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0
+ };
+ };
+ public final static byte termCheck[] = TermCheck.termCheck;
+ public final int termCheck(int index) { return termCheck[index]; }
+
+ public interface TermAction {
+ public final static char termAction[] = {0,
+ 1912,645,1556,701,1482,72,2124,2125,2126,1382,
+ 1186,2234,431,2235,1533,1754,1715,1361,1922,1923,
+ 1924,1925,632,482,2221,2222,2223,1319,1179,577,
+ 2074,1,1912,2075,2073,2127,2076,2072,2079,2084,
+ 2083,2081,2082,2080,2085,2086,2078,2087,2088,2089,
+ 88,1435,1378,1303,1912,1,1912,1,1912,190,
+ 1,1,1,247,66,1,1,1,1912,1,
+ 1,1,54,1921,1,1,1,1912,2136,382,
+ 1912,1442,398,1824,1,58,253,1,1,1,
+ 1,1,1,1,1,1,1,1,1,1,
+ 1,1,1,1,752,1,1,1,42,190,
+ 2107,1912,1,1912,1,1912,190,1,1,1,
+ 1912,1896,1,1,1,57,2124,2125,2126,1414,
+ 1424,2234,431,2235,1,1906,1200,583,1920,1917,
+ 1558,1,1414,1424,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,1,1,
+ 1,68,1,1,1,554,190,2107,1912,1,
+ 1912,1,64,190,1,1,1,981,1912,1,
+ 1,1,1414,1424,1916,59,1268,961,941,921,
+ 901,881,841,861,821,801,781,317,1,56,
+ 70,1,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,1912,1,
+ 1,1,1,190,2107,1912,1,1921,1,1244,
+ 189,1,1,1,248,1164,1,1,1,71,
+ 1,1,1,61,51,1,1,1,55,1403,
+ 1392,1371,1208,1222,772,1,1414,1424,1,1,
+ 1,1,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,611,1,1,1,315,
+ 189,2107,1912,1,1912,1,62,190,1,1,
+ 1,246,1920,1,1,1,1912,2124,2125,2126,
+ 60,1912,2234,431,2235,1414,1424,1403,1392,1371,
+ 1208,1244,1,268,611,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,1,1,
+ 1,1,1912,1,1,1,1329,190,2107,1912,
+ 2091,1,2090,1912,554,2124,2125,2126,249,1912,
+ 2234,431,2235,53,2124,2125,2126,1340,720,2234,
+ 431,2235,1222,772,1403,1392,1371,1208,267,2074,
+ 1562,1912,2075,2073,2127,2076,2072,2079,2084,2083,
+ 2081,2082,2080,2085,2086,2078,2087,2088,2089,1912,
+ 1435,1378,1303,1,1929,1556,1930,1304,1915,554,
+ 1912,2167,1382,1186,1,2136,382,1533,1754,1715,
+ 1361,1922,1923,1924,1925,632,482,2221,2222,2223,
+ 1319,1179,577,674,250,1912,1941,1912,1942,48,
+ 2124,2125,2126,1648,50,2234,431,2235,1648,1912,
+ 1929,1556,1930,1526,1915,1,2136,382,1382,1186,
+ 1912,1912,1914,1533,1754,1715,1361,1922,1923,1924,
+ 1925,632,482,2221,2222,2223,1319,1179,577,1021,
+ 49,1912,1098,52,1648,1912,1921,1,1912,1,
+ 1915,1329,1222,772,90,1,1929,1556,1930,1482,
+ 27,1634,1613,321,1382,1186,1634,1613,1914,1533,
+ 1754,1715,1361,1922,1923,1924,1925,632,482,2221,
+ 2222,2223,1319,1179,577,128,262,1678,1431,1136,
+ 1,2124,2125,2126,1897,1275,2234,431,2235,90,
+ 63,1912,1634,1613,1914,206,2092,2167,2093,313,
+ 27,1920,259,2136,1200,2074,1,554,2075,2073,
+ 2127,2076,2072,2079,2084,2083,2081,2082,2080,2085,
+ 2086,2078,2087,2088,2089,1912,1929,1556,1930,1482,
+ 1915,1244,1912,554,1382,1186,220,1917,1602,1533,
+ 1754,1715,1361,1922,1923,1924,1925,632,482,2221,
+ 2222,2223,1319,1179,577,1912,1,1909,1,1912,
+ 1917,1340,720,1917,1919,1912,2092,554,2093,65,
+ 1912,1912,1929,1556,1930,1518,1915,67,69,41,
+ 1382,1186,1916,1268,1914,1533,1754,1715,1361,1922,
+ 1923,1924,1925,632,482,2221,2222,2223,1319,1179,
+ 577,205,1509,28,1509,1916,1,1912,1916,1607,
+ 1912,1244,1912,2148,1918,1912,2167,1912,1,1,
+ 1,1,1912,2092,187,2093,1,1,1912,1912,
+ 1914,1,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1244,1912,1912,
+ 583,28,1164,1912,1330,209,1452,534,186,188,
+ 1912,1929,1556,1930,1482,1912,2166,218,1912,1382,
+ 1186,1912,1912,2220,1533,1754,1715,1361,1922,1923,
+ 1924,1925,632,482,2221,2222,2223,1319,1179,577,
+ 1461,1566,1244,1,1929,1556,1930,1482,554,1912,
+ 1912,1912,1382,1186,200,1939,1912,1533,1754,1715,
+ 1361,1922,1923,1924,1925,632,482,2221,2222,2223,
+ 1319,1179,577,1912,1060,1678,1912,1929,1556,1930,
+ 1482,1912,1912,1912,732,1382,1186,1912,1912,1912,
+ 1533,1754,1715,1361,1922,1923,1924,1925,632,482,
+ 2221,2222,2223,1319,1179,577,1912,1912,1678,1912,
+ 1929,1556,1930,1482,1912,2092,1912,2093,1382,1186,
+ 1041,285,1117,1533,1754,1715,1361,1922,1923,1924,
+ 1925,632,482,2221,2222,2223,1319,1179,577,1912,
+ 1929,1560,1930,1482,1912,2092,1347,2093,1382,1186,
+ 1476,205,1079,1533,1754,1715,1361,1922,1923,1924,
+ 1925,632,482,2221,2222,2223,1319,1179,577,1912,
+ 1929,1564,1930,1482,1912,1912,1436,1912,1382,1186,
+ 1912,1912,1692,1533,1754,1715,1361,1922,1923,1924,
+ 1925,632,482,2221,2222,2223,1319,1179,577,1912,
+ 1929,1568,1930,1482,1912,2914,1912,1912,1382,1186,
+ 1912,1912,1912,1533,1754,1715,1361,1922,1923,1924,
+ 1925,632,482,2221,2222,2223,1319,1179,577,1912,
+ 1929,1599,1930,1482,1912,1912,1912,1912,1382,1186,
+ 1912,1912,1912,1533,1754,1715,1361,1922,1923,1924,
+ 1925,632,482,2221,2222,2223,1319,1179,577,1912,
+ 1929,1603,1930,1482,1912,1912,1912,1912,1382,1186,
+ 1912,1912,1912,1533,1754,1715,1361,1922,1923,1924,
+ 1925,632,482,2221,2222,2223,1319,1179,577,1,
+ 1929,1556,1930,1482,1912,1912,1912,1912,1382,1186,
+ 1912,1912,1912,1533,1754,1715,1361,1922,1923,1924,
+ 1925,632,482,2221,2222,2223,1319,1179,577,17,
+ 1912,1900,1912,1900,1900,179,179,179,1912,1912,
+ 179,179,179,1912,1912,1912,1912,1912,1912,1912,
+ 1912,1912,265,2136,1200,1912,1442,1912,1912,179,
+ 1900,1912,179,179,179,179,179,1912,1912,18,
+ 1912,1903,1912,1903,1903,178,178,178,129,1900,
+ 178,178,178,554,2124,2125,2126,1912,1912,2234,
+ 431,2235,1912,265,1912,1431,1912,1442,1912,178,
+ 1903,1912,178,178,178,178,178,1912,2074,1912,
+ 130,2075,2073,2127,2076,2072,2124,2125,2126,1903,
+ 131,2234,431,2235,554,1912,2124,2125,2126,1912,
+ 1912,2234,431,2235,1912,1912,1912,1912,1912,1912,
+ 2074,1912,1912,2075,2073,2127,2076,2072,1912,1912,
+ 2074,1912,132,2075,2073,2127,2076,2072,2124,2125,
+ 2126,1912,1912,2234,431,2235,1912,1,31,1431,
+ 1808,1912,1917,1912,1912,1912,1912,1912,1912,1912,
+ 1912,1912,2074,1936,1937,2075,2073,2127,2076,2072,
+ 1912,1912,1912,1912,1912,1912,1912,1912,554,1441,
+ 1912,1912,1912,1912,1912,1912,1912,1912,1912,1912,
+ 1912,1912,1912,1912,1912,1912,1912,1916,1912,1912,
+ 1912,1912,1912,1912,1912,1912,1912,1912,1912,575,
+ 1912,1912,1912,1912,1912,1912,1912,1912,1912,1912,
+ 1912,1912,1912,1912,532
+ };
+ };
+ public final static char termAction[] = TermAction.termAction;
+ public final int termAction(int index) { return termAction[index]; }
+
+ public interface Asb {
+ public final static char asb[] = {0,
+ 246,1,44,167,40,167,167,167,167,167,
+ 167,167,167,167,167,167,167,3,54,23,
+ 20,27,25,33,31,35,34,37,36,9,
+ 167,54,54,54,54,54,370,370,482,167,
+ 239,239,331,54,167,167,167,167,167,167,
+ 167,167,167,167,167,167,167,167,167,167,
+ 167,167,167,167,167,167,167,167,167,167,
+ 167,167,167,167,239,239,239,239,239,239,
+ 127,134,335,158,337,237,236,303,47,315,
+ 315,154,154,315,154,315,74,190,190,20,
+ 20,25,25,25,25,23,23,31,27,27,
+ 34,33,439,36,35,379,379,379,379,156,
+ 132,331,323,161,127,97,105,239,443,340,
+ 105,418,270,418,270,373,418,167,132,323,
+ 97,97,127,104,158,239,329,74,238,342,
+ 127,105,270,270,270,270,373,373,414,243,
+ 132,97,323,167,167,127,105,337,434,433,
+ 335,342,239,270,415,475,270,270,415,414,
+ 413,414,373,415,130,441,370,167,242,132,
+ 323,127,127,239,443,340,329,415,477,415,
+ 415,167,370,414,134,127,370,167,414,342,
+ 43,167,42,186,335,415,127,415,239,238,
+ 477,167,186,371
+ };
+ };
+ public final static char asb[] = Asb.asb;
+ public final int asb(int index) { return asb[index]; }
+
+ public interface Asr {
+ public final static byte asr[] = {0,
+ 89,0,31,2,61,76,15,16,69,79,
+ 80,81,82,83,85,84,86,87,88,4,
+ 62,63,9,10,58,57,64,65,66,67,
+ 71,72,14,73,74,75,55,77,78,59,
+ 50,68,54,70,5,0,5,68,54,59,
+ 50,70,31,17,18,19,20,21,2,15,
+ 16,14,4,9,10,22,23,24,25,26,
+ 27,28,29,3,1,51,52,53,46,38,
+ 43,41,42,40,39,44,45,47,48,49,
+ 37,34,30,33,36,35,6,7,8,12,
+ 11,13,0,30,15,16,14,4,9,10,
+ 22,23,17,27,28,29,2,1,3,18,
+ 19,20,21,24,25,26,59,5,0,5,
+ 55,31,61,15,16,14,4,9,10,22,
+ 23,17,27,28,29,2,18,19,20,21,
+ 24,25,26,1,3,32,0,59,5,30,
+ 6,7,8,11,12,13,18,19,20,21,
+ 24,25,26,3,15,16,14,9,10,22,
+ 23,17,27,28,29,4,2,1,0,7,
+ 30,37,8,36,35,34,6,33,11,12,
+ 13,61,76,15,16,14,9,10,62,63,
+ 57,58,64,65,66,67,71,72,73,74,
+ 75,77,78,69,79,80,81,82,83,84,
+ 85,86,87,88,4,2,31,54,50,5,
+ 0,69,31,61,0,17,18,19,20,21,
+ 1,3,2,15,16,14,4,9,10,22,
+ 23,24,25,26,27,28,29,56,0,33,
+ 38,6,39,51,34,40,35,41,42,36,
+ 7,43,44,30,52,37,53,45,46,8,
+ 47,48,49,1,3,5,55,11,12,13,
+ 56,0,46,38,43,41,42,40,39,44,
+ 45,47,48,49,68,70,37,34,30,33,
+ 36,35,6,7,8,11,12,13,54,1,
+ 5,50,2,31,4,0,4,2,31,50,
+ 5,33,38,6,39,51,34,40,35,41,
+ 42,36,7,43,44,30,52,37,53,45,
+ 46,8,47,48,49,11,12,13,60,3,
+ 1,0,1,3,5,54,55,0,14,4,
+ 9,10,62,63,57,58,64,65,66,67,
+ 71,72,73,74,75,77,78,68,79,80,
+ 81,82,83,84,85,86,87,88,59,50,
+ 70,32,69,54,55,5,0,33,6,34,
+ 35,36,7,30,37,8,1,4,11,12,
+ 13,32,2,5,54,50,70,31,68,0,
+ 69,0,33,38,6,39,51,34,40,35,
+ 41,42,36,7,43,44,30,52,37,53,
+ 45,46,8,47,48,49,1,3,11,12,
+ 13,60,4,0,70,5,4,1,2,68,
+ 0,5,50,17,18,19,20,21,1,3,
+ 2,15,16,14,4,9,10,22,23,24,
+ 25,26,27,28,29,0
+ };
+ };
+ public final static byte asr[] = Asr.asr;
+ public final int asr(int index) { return asr[index]; }
+
+ public interface Nasb {
+ public final static byte nasb[] = {0,
+ 47,8,84,15,8,15,15,15,15,15,
+ 15,15,15,15,15,15,15,8,58,8,
+ 8,8,8,8,8,8,8,8,8,8,
+ 15,58,58,58,58,58,11,11,90,59,
+ 63,63,54,1,15,15,15,15,15,15,
+ 15,15,15,15,15,15,15,15,15,15,
+ 59,15,15,15,15,15,15,15,15,15,
+ 15,15,15,15,63,63,63,63,63,63,
+ 19,15,69,17,53,21,21,38,9,39,
+ 39,51,51,39,51,39,34,8,8,8,
+ 8,8,8,8,8,8,8,8,8,8,
+ 8,8,8,8,8,8,8,8,8,8,
+ 79,55,79,14,19,71,18,63,67,62,
+ 18,8,79,8,79,79,8,15,14,79,
+ 71,71,19,18,81,63,28,2,8,78,
+ 19,18,79,73,79,73,51,79,41,23,
+ 79,71,81,15,15,19,18,27,21,21,
+ 69,78,63,73,65,83,86,73,65,41,
+ 8,8,51,65,13,8,51,15,25,14,
+ 81,19,19,63,67,62,29,65,43,65,
+ 65,15,51,41,15,19,51,15,41,77,
+ 84,15,8,43,69,65,19,65,63,63,
+ 43,15,31,8
+ };
+ };
+ public final static byte nasb[] = Nasb.nasb;
+ public final int nasb(int index) { return nasb[index]; }
+
+ public interface Nasr {
+ public final static char nasr[] = {0,
+ 4,79,78,77,76,75,74,0,94,0,
+ 71,0,70,7,4,0,7,4,22,0,
+ 29,0,91,0,93,0,20,7,48,47,
+ 40,38,0,65,66,67,68,55,33,0,
+ 54,0,7,40,38,0,7,30,85,0,
+ 32,0,20,7,48,47,0,27,7,30,
+ 0,7,20,0,31,0,7,21,52,0,
+ 61,0,59,7,27,0,88,21,7,0,
+ 23,0,7,64,0,7,27,51,0,7,
+ 86,0
+ };
+ };
+ public final static char nasr[] = Nasr.nasr;
+ public final int nasr(int index) { return nasr[index]; }
+
+ public interface TerminalIndex {
+ public final static char terminalIndex[] = {0,
+ 85,2,86,9,87,48,64,76,10,11,
+ 96,97,98,8,6,7,68,81,82,83,
+ 84,12,13,93,94,95,100,101,102,69,
+ 1,3,44,55,60,63,72,47,52,56,
+ 61,62,66,67,74,75,78,79,80,90,
+ 54,70,73,42,91,107,16,17,89,30,
+ 4,14,15,18,19,20,21,29,31,92,
+ 22,23,24,25,26,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;
+ public final int terminalIndex(int index) { return terminalIndex[index]; }
+
+ public interface NonterminalIndex {
+ public final static char nonterminalIndex[] = {0,
+ 0,0,0,115,119,120,0,121,122,123,
+ 124,125,126,127,128,129,130,131,132,111,
+ 136,110,143,0,0,0,154,0,163,114,
+ 112,135,142,0,0,0,159,161,0,162,
+ 0,0,0,117,134,172,173,174,0,151,
+ 153,160,169,0,145,150,0,0,152,164,
+ 167,168,171,113,146,147,148,149,158,175,
+ 116,118,133,137,138,139,140,141,144,156,
+ 0,0,157,166,109,0,155,165,170,176,
+ 177,0,178,179,0,0,0,0,0,0,
+ 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;
+ public final int nonterminalIndex(int index) { return nonterminalIndex[index]; }
+
+ public interface ScopePrefix {
+ public final static char scopePrefix[] = {
+ 214,118,57,67,125,145,151,188,26,33,
+ 85,103,157,162,73,6,12,16,38,81,
+ 50,135,210,229,233,50,50,197,50,1,
+ 1,1,42,45,90,113,45,237,20,139,
+ 204,179,204,131,167,167,167,167,167,93,
+ 93,93
+ };
+ };
+ public final static char scopePrefix[] = ScopePrefix.scopePrefix;
+ public final int scopePrefix(int index) { return scopePrefix[index]; }
+
+ public interface ScopeSuffix {
+ public final static char scopeSuffix[] = {
+ 31,31,4,4,31,31,31,194,31,10,
+ 4,10,31,31,78,10,10,10,10,4,
+ 4,133,10,10,4,54,78,201,63,4,
+ 4,4,10,48,4,10,116,10,23,142,
+ 207,182,222,133,169,171,173,175,177,100,
+ 95,108
+ };
+ };
+ public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
+ public final int scopeSuffix(int index) { return scopeSuffix[index]; }
+
+ public interface ScopeLhs {
+ public final static char scopeLhs[] = {
+ 4,67,29,29,67,65,65,101,56,49,
+ 29,43,65,65,29,5,5,5,49,29,
+ 29,51,5,4,4,29,29,18,29,94,
+ 93,92,47,63,29,40,50,2,70,51,
+ 6,102,4,51,78,77,76,75,74,43,
+ 41,43
+ };
+ };
+ public final static char scopeLhs[] = ScopeLhs.scopeLhs;
+ public final int scopeLhs(int index) { return scopeLhs[index]; }
+
+ public interface ScopeLa {
+ public final static byte scopeLa[] = {
+ 55,55,59,59,55,55,55,95,55,50,
+ 59,50,55,55,18,50,50,50,50,59,
+ 59,70,50,50,59,4,18,68,30,59,
+ 59,59,50,2,59,50,1,50,69,1,
+ 50,101,50,70,3,51,52,52,46,2,
+ 2,2
+ };
+ };
+ public final static byte scopeLa[] = ScopeLa.scopeLa;
+ public final int scopeLa(int index) { return scopeLa[index]; }
+
+ public interface ScopeStateSet {
+ public final static byte scopeStateSet[] = {
+ 36,21,25,25,21,21,21,-1,96,29,
+ 25,11,21,21,25,36,36,36,29,25,
+ 25,5,36,36,36,25,25,70,25,19,
+ 1,3,29,31,25,11,13,36,97,5,
+ 42,-1,36,5,22,22,22,22,22,11,
+ 11,11
+ };
+ };
+ public final static byte scopeStateSet[] = ScopeStateSet.scopeStateSet;
+ public final int scopeStateSet(int index) { return scopeStateSet[index]; }
+
+ public interface ScopeRhs {
+ public final static char scopeRhs[] = {0,
+ 152,31,0,110,0,151,2,29,0,111,
+ 0,151,2,28,0,151,2,27,0,197,
+ 114,0,31,150,0,161,179,114,32,0,
+ 112,0,167,114,2,154,0,167,114,2,
+ 0,170,2,0,159,114,0,172,0,191,
+ 114,31,0,9,110,0,126,30,191,114,
+ 31,0,69,132,110,0,126,191,114,30,
+ 31,0,191,114,30,31,0,132,110,0,
+ 126,30,31,0,126,191,114,31,0,126,
+ 31,0,147,0,2,0,165,111,0,2,
+ 111,0,167,114,2,147,0,2,0,164,
+ 111,0,157,2,0,159,0,161,189,114,
+ 32,139,51,0,161,189,114,32,51,0,
+ 134,0,113,0,194,114,134,0,114,134,
+ 0,155,113,0,165,114,32,139,53,0,
+ 165,114,32,139,52,0,165,114,32,53,
+ 0,165,114,32,52,0,186,0,149,0,
+ 148,0,147,0,146,0,145,0,204,94,
+ 0,77,2,114,111,113,0,204,127,137,
+ 2,98,0,53,0,0,137,78,124,0,
+ 29,131,0,151,2,0,111,120,0,151,
+ 2,17,0,161,179,114,32,127,151,2,
+ 0,111,3,0,118,0,112,0,193,2,
+ 111,0,137,31,111,0,137,2,0
+ };
+ };
+ public final static char scopeRhs[] = ScopeRhs.scopeRhs;
+ public final int scopeRhs(int index) { return scopeRhs[index]; }
+
+ public interface ScopeState {
+ public final static char scopeState[] = {0,
+ 1067,0,627,0,1687,1796,1682,1677,1672,0,
+ 1512,481,1275,382,1252,1200,1156,0,431,0,
+ 1231,574,361,0,1547,1232,618,601,481,1722,
+ 1200,1156,1431,1496,0,1754,1715,1361,1319,1179,
+ 577,1526,1518,1304,1655,611,398,583,1164,1340,
+ 720,1268,1424,1414,1403,1392,1371,1208,1648,1634,
+ 1613,1222,772,1533,1482,1382,1186,632,482,1117,
+ 1098,1079,1060,1041,1021,1001,490,1136,694,674,
+ 554,981,961,941,921,901,881,861,841,821,
+ 801,781,361,752,654,732,461,534,441,0
+ };
+ };
+ public final static char scopeState[] = ScopeState.scopeState;
+ public final int scopeState(int index) { return scopeState[index]; }
+
+ public interface InSymb {
+ public final static char inSymb[] = {0,
+ 0,192,137,114,180,29,28,27,17,23,
+ 22,10,9,4,14,16,15,111,2,116,
+ 115,118,117,120,119,122,121,124,123,112,
+ 54,2,2,2,2,2,76,61,2,31,
+ 151,137,134,114,10,9,63,62,4,67,
+ 66,65,64,57,58,14,72,71,74,73,
+ 78,77,75,88,87,86,84,85,83,82,
+ 81,80,79,69,151,151,151,151,151,193,
+ 137,127,114,31,2,155,154,181,12,182,
+ 183,53,52,184,51,185,186,1,3,115,
+ 115,117,117,117,117,116,116,119,118,118,
+ 121,120,137,123,122,127,127,127,127,127,
+ 32,159,4,30,126,114,4,170,114,2,
+ 31,139,32,139,32,32,139,68,114,4,
+ 114,114,126,191,168,167,128,114,169,114,
+ 152,4,32,114,32,114,114,32,179,114,
+ 32,114,168,191,30,126,4,2,145,147,
+ 114,54,167,114,165,134,166,114,165,189,
+ 139,190,114,161,54,197,61,31,198,114,
+ 168,126,126,157,114,2,159,165,114,165,
+ 161,69,54,189,69,152,61,31,179,114,
+ 194,68,157,2,114,161,152,161,167,195,
+ 54,68,159,54
+ };
+ };
+ public final static char inSymb[] = InSymb.inSymb;
+ public final int inSymb(int index) { return inSymb[index]; }
+
+ public interface Name {
+ public final static String name[] = {
+ "",
+ "[",
+ "(",
+ "{",
+ ".",
+ "->",
+ "++",
+ "--",
+ "&",
+ "*",
+ "+",
+ "-",
+ "~",
+ "!",
+ "/",
+ "%",
+ ">>",
+ "<<",
+ "<",
+ ">",
+ "<=",
+ ">=",
+ "==",
+ "!=",
+ "^",
+ "|",
+ "&&",
+ "||",
+ "?",
+ ":",
+ "...",
+ "=",
+ "*=",
+ "/=",
+ "%=",
+ "+=",
+ "-=",
+ ">>=",
+ "<<=",
+ "&=",
+ "^=",
+ "|=",
+ ",",
+ "$empty",
+ "auto",
+ "break",
+ "case",
+ "char",
+ "const",
+ "continue",
+ "default",
+ "do",
+ "double",
+ "else",
+ "enum",
+ "extern",
+ "float",
+ "for",
+ "goto",
+ "if",
+ "inline",
+ "int",
+ "long",
+ "register",
+ "restrict",
+ "return",
+ "short",
+ "signed",
+ "sizeof",
+ "static",
+ "struct",
+ "switch",
+ "typedef",
+ "union",
+ "unsigned",
+ "void",
+ "volatile",
+ "while",
+ "_Bool",
+ "_Complex",
+ "_Imaginary",
+ "integer",
+ "floating",
+ "charconst",
+ "stringlit",
+ "identifier",
+ "Completion",
+ "EndOfCompletion",
+ "Invalid",
+ "RightBracket",
+ "RightParen",
+ "RightBrace",
+ "SemiColon",
+ "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",
+ "]",
+ ")",
+ "}",
+ ";",
+ "expression",
+ "postfix_expression",
+ "member_name",
+ "type_name",
+ "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",
+ "conditional_expression",
+ "assignment_expression",
+ "expression_list_actual",
+ "constant_expression",
+ "identifier_or_typedefname",
+ "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",
+ "typedef_name_in_declspec",
+ "initializer",
+ "declarator",
+ "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",
+ "designated_initializer",
+ "designation",
+ "designator_list",
+ "designator",
+ "layout_qualifier"
+ };
+ };
+ public final static String name[] = Name.name;
+ public final String name(int index) { return name[index]; }
+
+ public final static int
+ ERROR_SYMBOL = 56,
+ SCOPE_UBOUND = 51,
+ SCOPE_SIZE = 52,
+ MAX_NAME_LENGTH = 38;
+
+ public final int getErrorSymbol() { return ERROR_SYMBOL; }
+ public final int getScopeUbound() { return SCOPE_UBOUND; }
+ public final int getScopeSize() { return SCOPE_SIZE; }
+ public final int getMaxNameLength() { return MAX_NAME_LENGTH; }
+
+ public final static int
+ NUM_STATES = 224,
+ NT_OFFSET = 107,
+ LA_STATE_OFFSET = 2272,
+ MAX_LA = 2,
+ NUM_RULES = 360,
+ NUM_NONTERMINALS = 120,
+ NUM_SYMBOLS = 227,
+ SEGMENT_SIZE = 8192,
+ START_STATE = 1253,
+ IDENTIFIER_SYMBOL = 0,
+ EOFT_SYMBOL = 89,
+ EOLT_SYMBOL = 89,
+ ACCEPT_ACTION = 1896,
+ ERROR_ACTION = 1912;
+
+ public final static boolean BACKTRACK = true;
+
+ public final int getNumStates() { return NUM_STATES; }
+ public final int getNtOffset() { return NT_OFFSET; }
+ public final int getLaStateOffset() { return LA_STATE_OFFSET; }
+ public final int getMaxLa() { return MAX_LA; }
+ public final int getNumRules() { return NUM_RULES; }
+ public final int getNumNonterminals() { return NUM_NONTERMINALS; }
+ public final int getNumSymbols() { return NUM_SYMBOLS; }
+ public final int getSegmentSize() { return SEGMENT_SIZE; }
+ public final int getStartState() { return START_STATE; }
+ public final int getStartSymbol() { return lhs[0]; }
+ public final int getIdentifierSymbol() { return IDENTIFIER_SYMBOL; }
+ public final int getEoftSymbol() { return EOFT_SYMBOL; }
+ public final int getEoltSymbol() { return EOLT_SYMBOL; }
+ public final int getAcceptAction() { return ACCEPT_ACTION; }
+ public final int getErrorAction() { return ERROR_ACTION; }
+ public final boolean isValidForParser() { return isValidForParser; }
+ public final boolean getBacktrack() { return BACKTRACK; }
+
+ public final int originalState(int state) {
+ return -baseCheck[state];
+ }
+ public final int asi(int state) {
+ return asb[originalState(state)];
+ }
+ public final int nasi(int state) {
+ return nasb[originalState(state)];
+ }
+ public final int inSymbol(int state) {
+ return inSymb[originalState(state)];
+ }
+
+ public final int ntAction(int state, int sym) {
+ return baseAction[state + sym];
+ }
+
+ public final int tAction(int state, int sym) {
+ int i = baseAction[state],
+ k = i + sym;
+ return termAction[termCheck[k] == sym ? k : i];
+ }
+ public final int lookAhead(int la_state, int sym) {
+ int k = la_state + sym;
+ return termAction[termCheck[k] == sym ? k : la_state];
+ }
+}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionStatementParsersym.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionStatementParsersym.java
new file mode 100644
index 00000000000..c58882d7641
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCExpressionStatementParsersym.java
@@ -0,0 +1,238 @@
+/*******************************************************************************
+* Copyright (c) 2006, 2008 IBM Corporation and others.
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+*
+* Contributors:
+* IBM Corporation - initial API and implementation
+*********************************************************************************/
+
+// This file was generated by LPG
+
+package org.eclipse.cdt.internal.core.dom.parser.upc;
+
+public interface UPCExpressionStatementParsersym {
+ public final static int
+ TK_auto = 33,
+ TK_break = 90,
+ TK_case = 91,
+ TK_char = 38,
+ TK_const = 6,
+ TK_continue = 92,
+ TK_default = 93,
+ TK_do = 94,
+ TK_double = 39,
+ TK_else = 95,
+ TK_enum = 51,
+ TK_extern = 34,
+ TK_float = 40,
+ TK_for = 96,
+ TK_goto = 97,
+ TK_if = 98,
+ TK_inline = 35,
+ TK_int = 41,
+ TK_long = 42,
+ TK_register = 36,
+ TK_restrict = 7,
+ TK_return = 99,
+ TK_short = 43,
+ TK_signed = 44,
+ TK_sizeof = 17,
+ TK_static = 30,
+ TK_struct = 52,
+ TK_switch = 100,
+ TK_typedef = 37,
+ TK_union = 53,
+ TK_unsigned = 45,
+ TK_void = 46,
+ TK_volatile = 8,
+ TK_while = 101,
+ TK__Bool = 47,
+ TK__Complex = 48,
+ TK__Imaginary = 49,
+ TK_integer = 18,
+ TK_floating = 19,
+ TK_charconst = 20,
+ TK_stringlit = 21,
+ TK_identifier = 1,
+ TK_Completion = 3,
+ TK_EndOfCompletion = 5,
+ TK_Invalid = 102,
+ TK_LeftBracket = 31,
+ TK_LeftParen = 2,
+ TK_LeftBrace = 32,
+ TK_Dot = 61,
+ TK_Arrow = 76,
+ TK_PlusPlus = 15,
+ TK_MinusMinus = 16,
+ TK_And = 14,
+ TK_Star = 4,
+ TK_Plus = 9,
+ TK_Minus = 10,
+ TK_Tilde = 22,
+ TK_Bang = 23,
+ TK_Slash = 62,
+ TK_Percent = 63,
+ TK_RightShift = 57,
+ TK_LeftShift = 58,
+ TK_LT = 64,
+ TK_GT = 65,
+ TK_LE = 66,
+ TK_GE = 67,
+ TK_EQ = 71,
+ TK_NE = 72,
+ TK_Caret = 73,
+ TK_Or = 74,
+ TK_AndAnd = 75,
+ TK_OrOr = 77,
+ TK_Question = 78,
+ TK_Colon = 68,
+ TK_DotDotDot = 60,
+ 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 = 54,
+ TK_RightBracket = 59,
+ TK_RightParen = 50,
+ TK_RightBrace = 55,
+ TK_SemiColon = 70,
+ TK_MYTHREAD = 24,
+ TK_THREADS = 25,
+ TK_UPC_MAX_BLOCKSIZE = 26,
+ TK_relaxed = 11,
+ TK_shared = 12,
+ TK_strict = 13,
+ TK_upc_barrier = 103,
+ TK_upc_localsizeof = 27,
+ TK_upc_blocksizeof = 28,
+ TK_upc_elemsizeof = 29,
+ TK_upc_notify = 104,
+ TK_upc_fence = 105,
+ TK_upc_wait = 106,
+ TK_upc_forall = 107,
+ TK_ERROR_TOKEN = 56,
+ TK_EOF_TOKEN = 89;
+
+ public final static String orderedTerminalSymbols[] = {
+ "",
+ "identifier",
+ "LeftParen",
+ "Completion",
+ "Star",
+ "EndOfCompletion",
+ "const",
+ "restrict",
+ "volatile",
+ "Plus",
+ "Minus",
+ "relaxed",
+ "shared",
+ "strict",
+ "And",
+ "PlusPlus",
+ "MinusMinus",
+ "sizeof",
+ "integer",
+ "floating",
+ "charconst",
+ "stringlit",
+ "Tilde",
+ "Bang",
+ "MYTHREAD",
+ "THREADS",
+ "UPC_MAX_BLOCKSIZE",
+ "upc_localsizeof",
+ "upc_blocksizeof",
+ "upc_elemsizeof",
+ "static",
+ "LeftBracket",
+ "LeftBrace",
+ "auto",
+ "extern",
+ "inline",
+ "register",
+ "typedef",
+ "char",
+ "double",
+ "float",
+ "int",
+ "long",
+ "short",
+ "signed",
+ "unsigned",
+ "void",
+ "_Bool",
+ "_Complex",
+ "_Imaginary",
+ "RightParen",
+ "enum",
+ "struct",
+ "union",
+ "Comma",
+ "RightBrace",
+ "ERROR_TOKEN",
+ "RightShift",
+ "LeftShift",
+ "RightBracket",
+ "DotDotDot",
+ "Dot",
+ "Slash",
+ "Percent",
+ "LT",
+ "GT",
+ "LE",
+ "GE",
+ "Colon",
+ "Assign",
+ "SemiColon",
+ "EQ",
+ "NE",
+ "Caret",
+ "Or",
+ "AndAnd",
+ "Arrow",
+ "OrOr",
+ "Question",
+ "StarAssign",
+ "SlashAssign",
+ "PercentAssign",
+ "PlusAssign",
+ "MinusAssign",
+ "RightShiftAssign",
+ "LeftShiftAssign",
+ "AndAssign",
+ "CaretAssign",
+ "OrAssign",
+ "EOF_TOKEN",
+ "break",
+ "case",
+ "continue",
+ "default",
+ "do",
+ "else",
+ "for",
+ "goto",
+ "if",
+ "return",
+ "switch",
+ "while",
+ "Invalid",
+ "upc_barrier",
+ "upc_notify",
+ "upc_fence",
+ "upc_wait",
+ "upc_forall"
+ };
+
+ public final static boolean isValidForParser = true;
+}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParser.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParser.java
new file mode 100644
index 00000000000..148e05b67b6
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParser.java
@@ -0,0 +1,1545 @@
+/*******************************************************************************
+* Copyright (c) 2006, 2008 IBM Corporation and others.
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+*
+* Contributors:
+* IBM Corporation - initial API and implementation
+*********************************************************************************/
+
+// This file was generated by LPG
+
+package org.eclipse.cdt.internal.core.dom.parser.upc;
+
+import lpg.lpgjavaruntime.*;
+
+import java.util.*;
+import org.eclipse.cdt.core.dom.ast.*;
+import org.eclipse.cdt.core.dom.lrparser.IParser;
+import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
+
+import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
+import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
+
+import org.eclipse.cdt.core.dom.lrparser.action.c99.C99ASTNodeFactory;
+import org.eclipse.cdt.core.dom.lrparser.action.c99.C99BuildASTParserAction;
+
+import org.eclipse.cdt.core.dom.parser.upc.UPCASTNodeFactory;
+import org.eclipse.cdt.core.dom.parser.upc.UPCParserAction;
+import org.eclipse.cdt.core.dom.upc.ast.IUPCASTKeywordExpression;
+import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSynchronizationStatement;
+import org.eclipse.cdt.core.dom.upc.ast.IUPCASTUnaryExpression;
+
+public class UPCNoCastExpressionParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser
+{
+ private static ParseTable prs = new UPCNoCastExpressionParserprs();
+ private BacktrackingParser btParser;
+
+ public BacktrackingParser getParser() { return btParser; }
+ private void setResult(Object object) { btParser.setSym1(object); }
+ public Object getRhsSym(int i) { return btParser.getSym(i); }
+
+ public int getRhsTokenIndex(int i) { return btParser.getToken(i); }
+ public IToken getRhsIToken(int i) { return super.getIToken(getRhsTokenIndex(i)); }
+
+ public int getRhsFirstTokenIndex(int i) { return btParser.getFirstToken(i); }
+ public IToken getRhsFirstIToken(int i) { return super.getIToken(getRhsFirstTokenIndex(i)); }
+
+ public int getRhsLastTokenIndex(int i) { return btParser.getLastToken(i); }
+ public IToken getRhsLastIToken(int i) { return super.getIToken(getRhsLastTokenIndex(i)); }
+
+ public int getLeftSpan() { return btParser.getFirstToken(); }
+ public IToken getLeftIToken() { return super.getIToken(getLeftSpan()); }
+
+ public int getRightSpan() { return btParser.getLastToken(); }
+ public IToken getRightIToken() { return super.getIToken(getRightSpan()); }
+
+ public int getRhsErrorTokenIndex(int i)
+ {
+ int index = btParser.getToken(i);
+ IToken err = super.getIToken(index);
+ return (err instanceof ErrorToken ? index : 0);
+ }
+ public ErrorToken getRhsErrorIToken(int i)
+ {
+ int index = btParser.getToken(i);
+ IToken err = super.getIToken(index);
+ return (ErrorToken) (err instanceof ErrorToken ? err : null);
+ }
+
+ public 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]));
+ }
+ }
+
+ 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 (PrsStream) this; }
+
+ //
+ // Report error message for given error_token.
+ //
+ public final void reportErrorTokenMessage(int error_token, String msg)
+ {
+ int firsttok = super.getFirstErrorToken(error_token),
+ lasttok = super.getLastErrorToken(error_token);
+ String location = super.getFileName() + ':' +
+ (firsttok > lasttok
+ ? (super.getEndLine(lasttok) + ":" + super.getEndColumn(lasttok))
+ : (super.getLine(error_token) + ":" +
+ super.getColumn(error_token) + ":" +
+ super.getEndLine(error_token) + ":" +
+ super.getEndColumn(error_token)))
+ + ": ";
+ super.reportError((firsttok > lasttok ? ParseErrorCodes.INSERTION_CODE : ParseErrorCodes.SUBSTITUTION_CODE), location, msg);
+ }
+
+ public Object parser()
+ {
+ return parser(null, 0);
+ }
+
+ public Object parser(Monitor monitor)
+ {
+ return parser(monitor, 0);
+ }
+
+ public Object parser(int error_repair_count)
+ {
+ return parser(null, error_repair_count);
+ }
+
+ public Object parser(Monitor monitor, int error_repair_count)
+ {
+ try
+ {
+ btParser = new BacktrackingParser(monitor, (TokenStream) this, prs, (RuleAction) 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
+ {
+ return (Object) 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);
+ }
+
+ return null;
+ }
+
+
+private UPCParserAction action;
+
+public UPCNoCastExpressionParser() { // constructor
+}
+
+private void initActions(IASTTranslationUnit tu) {
+ action = new UPCParserAction ( UPCASTNodeFactory.DEFAULT_INSTANCE , this, tu);
+}
+
+
+public void addToken(IToken token) {
+ token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called?
+ super.addToken(token);
+}
+
+
+public IASTCompletionNode parse(IASTTranslationUnit tu) {
+ // this has to be done, or... kaboom!
+ setStreamLength(getSize());
+ initActions(tu);
+
+ final int errorRepairCount = -1; // -1 means full error handling
+ parser(null, errorRepairCount); // do the actual parse
+ super.resetTokenStream(); // allow tokens to be garbage collected
+
+ // the completion node may be null
+ IASTCompletionNode compNode = action.getASTCompletionNode();
+
+ //action = null;
+ //parserAction = null;
+ return compNode;
+}
+
+// uncomment this method to use with backtracking parser
+public List getRuleTokens() {
+ return Collections.unmodifiableList(getTokens().subList(getLeftSpan(), getRightSpan() + 1));
+}
+
+
+public IASTNode getSecondaryParseResult() {
+ return action.getSecondaryParseResult();
+}
+
+public String[] getOrderedTerminalSymbols() {
+ return UPCNoCastExpressionParsersym.orderedTerminalSymbols;
+}
+
+public String getName() {
+ return "UPCNoCastExpressionParser"; //$NON-NLS-1$
+}
+
+
+
+private ITokenMap tokenMap = null;
+
+public void setTokens(List<IToken> tokens) {
+ resetTokenStream();
+ addToken(new Token(null, 0, 0, 0)); // dummy token
+ for(IToken token : tokens) {
+ token.setKind(tokenMap.mapKind(token.getKind()));
+ addToken(token);
+ }
+ addToken(new Token(null, 0, 0, UPCNoCastExpressionParsersym.TK_EOF_TOKEN));
+}
+
+public UPCNoCastExpressionParser(String[] mapFrom) { // constructor
+ tokenMap = new TokenMap(UPCNoCastExpressionParsersym.orderedTerminalSymbols, mapFrom);
+}
+
+
+
+ public void ruleAction(int ruleNumber)
+ {
+ switch (ruleNumber)
+ {
+
+ //
+ // Rule 1: <openscope-ast> ::= $Empty
+ //
+ case 1: { action. openASTScope(); break;
+ }
+
+ //
+ // Rule 10: literal ::= integer
+ //
+ case 10: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant); break;
+ }
+
+ //
+ // Rule 11: literal ::= floating
+ //
+ case 11: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant); break;
+ }
+
+ //
+ // Rule 12: literal ::= charconst
+ //
+ case 12: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant); break;
+ }
+
+ //
+ // Rule 13: literal ::= stringlit
+ //
+ case 13: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal); break;
+ }
+
+ //
+ // Rule 15: primary_expression ::= primary_expression_id
+ //
+ case 15: { action. consumeExpressionID(); break;
+ }
+
+ //
+ // Rule 16: primary_expression ::= ( expression )
+ //
+ case 16: { action. consumeExpressionBracketed(); break;
+ }
+
+ //
+ // Rule 20: postfix_expression ::= postfix_expression [ expression ]
+ //
+ case 20: { action. consumeExpressionArraySubscript(); break;
+ }
+
+ //
+ // Rule 21: postfix_expression ::= postfix_expression ( expression_list_opt )
+ //
+ case 21: { action. consumeExpressionFunctionCall(); break;
+ }
+
+ //
+ // Rule 22: postfix_expression ::= postfix_expression . member_name
+ //
+ case 22: { action. consumeExpressionFieldReference(false); break;
+ }
+
+ //
+ // Rule 23: postfix_expression ::= postfix_expression -> member_name
+ //
+ case 23: { action. consumeExpressionFieldReference(true); break;
+ }
+
+ //
+ // Rule 24: postfix_expression ::= postfix_expression ++
+ //
+ case 24: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break;
+ }
+
+ //
+ // Rule 25: postfix_expression ::= postfix_expression --
+ //
+ case 25: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break;
+ }
+
+ //
+ // Rule 26: postfix_expression ::= ( type_name ) { <openscope-ast> initializer_list comma_opt }
+ //
+ case 26: { action. consumeExpressionTypeIdInitializer(); break;
+ }
+
+ //
+ // Rule 32: unary_expression ::= ++ unary_expression
+ //
+ case 32: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break;
+ }
+
+ //
+ // Rule 33: unary_expression ::= -- unary_expression
+ //
+ case 33: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break;
+ }
+
+ //
+ // Rule 34: unary_expression ::= & cast_expression
+ //
+ case 34: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break;
+ }
+
+ //
+ // Rule 35: unary_expression ::= * cast_expression
+ //
+ case 35: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break;
+ }
+
+ //
+ // Rule 36: unary_expression ::= + cast_expression
+ //
+ case 36: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break;
+ }
+
+ //
+ // Rule 37: unary_expression ::= - cast_expression
+ //
+ case 37: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break;
+ }
+
+ //
+ // Rule 38: unary_expression ::= ~ cast_expression
+ //
+ case 38: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break;
+ }
+
+ //
+ // Rule 39: unary_expression ::= ! cast_expression
+ //
+ case 39: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break;
+ }
+
+ //
+ // Rule 40: unary_expression ::= sizeof unary_expression
+ //
+ case 40: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break;
+ }
+
+ //
+ // Rule 41: unary_expression ::= sizeof ( type_name )
+ //
+ case 41: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof); break;
+ }
+
+ //
+ // Rule 44: multiplicative_expression ::= multiplicative_expression * cast_expression
+ //
+ case 44: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break;
+ }
+
+ //
+ // Rule 45: multiplicative_expression ::= multiplicative_expression / cast_expression
+ //
+ case 45: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break;
+ }
+
+ //
+ // Rule 46: multiplicative_expression ::= multiplicative_expression % cast_expression
+ //
+ case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break;
+ }
+
+ //
+ // Rule 48: additive_expression ::= additive_expression + multiplicative_expression
+ //
+ case 48: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break;
+ }
+
+ //
+ // Rule 49: additive_expression ::= additive_expression - multiplicative_expression
+ //
+ case 49: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break;
+ }
+
+ //
+ // Rule 51: shift_expression ::= shift_expression << additive_expression
+ //
+ case 51: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break;
+ }
+
+ //
+ // Rule 52: shift_expression ::= shift_expression >> additive_expression
+ //
+ case 52: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break;
+ }
+
+ //
+ // Rule 54: relational_expression ::= relational_expression < shift_expression
+ //
+ case 54: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break;
+ }
+
+ //
+ // Rule 55: relational_expression ::= relational_expression > shift_expression
+ //
+ case 55: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break;
+ }
+
+ //
+ // Rule 56: relational_expression ::= relational_expression <= shift_expression
+ //
+ case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break;
+ }
+
+ //
+ // Rule 57: relational_expression ::= relational_expression >= shift_expression
+ //
+ case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break;
+ }
+
+ //
+ // Rule 59: equality_expression ::= equality_expression == relational_expression
+ //
+ case 59: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break;
+ }
+
+ //
+ // Rule 60: equality_expression ::= equality_expression != relational_expression
+ //
+ case 60: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break;
+ }
+
+ //
+ // Rule 62: AND_expression ::= AND_expression & equality_expression
+ //
+ case 62: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break;
+ }
+
+ //
+ // Rule 64: exclusive_OR_expression ::= exclusive_OR_expression ^ AND_expression
+ //
+ case 64: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break;
+ }
+
+ //
+ // Rule 66: inclusive_OR_expression ::= inclusive_OR_expression | exclusive_OR_expression
+ //
+ case 66: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break;
+ }
+
+ //
+ // Rule 68: logical_AND_expression ::= logical_AND_expression && inclusive_OR_expression
+ //
+ case 68: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break;
+ }
+
+ //
+ // Rule 70: logical_OR_expression ::= logical_OR_expression || logical_AND_expression
+ //
+ case 70: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break;
+ }
+
+ //
+ // Rule 72: conditional_expression ::= logical_OR_expression ? expression : conditional_expression
+ //
+ case 72: { action. consumeExpressionConditional(); break;
+ }
+
+ //
+ // Rule 74: assignment_expression ::= unary_expression = assignment_expression
+ //
+ case 74: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break;
+ }
+
+ //
+ // Rule 75: assignment_expression ::= unary_expression *= assignment_expression
+ //
+ case 75: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break;
+ }
+
+ //
+ // Rule 76: assignment_expression ::= unary_expression /= assignment_expression
+ //
+ case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break;
+ }
+
+ //
+ // Rule 77: assignment_expression ::= unary_expression %= assignment_expression
+ //
+ case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break;
+ }
+
+ //
+ // Rule 78: assignment_expression ::= unary_expression += assignment_expression
+ //
+ case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break;
+ }
+
+ //
+ // Rule 79: assignment_expression ::= unary_expression -= assignment_expression
+ //
+ case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break;
+ }
+
+ //
+ // Rule 80: assignment_expression ::= unary_expression <<= assignment_expression
+ //
+ case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break;
+ }
+
+ //
+ // Rule 81: assignment_expression ::= unary_expression >>= assignment_expression
+ //
+ case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break;
+ }
+
+ //
+ // Rule 82: assignment_expression ::= unary_expression &= assignment_expression
+ //
+ case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break;
+ }
+
+ //
+ // Rule 83: assignment_expression ::= unary_expression ^= assignment_expression
+ //
+ case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break;
+ }
+
+ //
+ // Rule 84: assignment_expression ::= unary_expression |= assignment_expression
+ //
+ case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break;
+ }
+
+ //
+ // Rule 87: expression_list ::= <openscope-ast> expression_list_actual
+ //
+ case 87: { action. consumeExpressionList(); break;
+ }
+
+ //
+ // Rule 89: expression_list_opt ::= $Empty
+ //
+ case 89: { action. consumeEmpty(); break;
+ }
+
+ //
+ // Rule 99: statement ::= ERROR_TOKEN
+ //
+ case 99: { action. consumeStatementProblem(); break;
+ }
+
+ //
+ // Rule 100: labeled_statement ::= identifier_or_typedefname : statement
+ //
+ case 100: { action. consumeStatementLabeled(); break;
+ }
+
+ //
+ // Rule 101: labeled_statement ::= case constant_expression :
+ //
+ case 101: { action. consumeStatementCase(); break;
+ }
+
+ //
+ // Rule 102: labeled_statement ::= default :
+ //
+ case 102: { action. consumeStatementDefault(); break;
+ }
+
+ //
+ // Rule 103: compound_statement ::= { }
+ //
+ case 103: { action. consumeStatementCompoundStatement(false); break;
+ }
+
+ //
+ // Rule 104: compound_statement ::= { <openscope-ast> block_item_list }
+ //
+ case 104: { action. consumeStatementCompoundStatement(true); break;
+ }
+
+ //
+ // Rule 108: block_item ::= declaration
+ //
+ case 108: { action. consumeStatementDeclarationWithDisambiguation(); break;
+ }
+
+ //
+ // Rule 109: expression_statement ::= ;
+ //
+ case 109: { action. consumeStatementNull(); break;
+ }
+
+ //
+ // Rule 110: expression_statement ::= expression_in_statement ;
+ //
+ case 110: { action. consumeStatementExpression(); break;
+ }
+
+ //
+ // Rule 111: selection_statement ::= if ( expression ) statement
+ //
+ case 111: { action. consumeStatementIf(false); break;
+ }
+
+ //
+ // Rule 112: selection_statement ::= if ( expression ) statement else statement
+ //
+ case 112: { action. consumeStatementIf(true); break;
+ }
+
+ //
+ // Rule 113: selection_statement ::= switch ( expression ) statement
+ //
+ case 113: { action. consumeStatementSwitch(); break;
+ }
+
+ //
+ // Rule 115: expression_opt ::= $Empty
+ //
+ case 115: { action. consumeEmpty(); break;
+ }
+
+ //
+ // Rule 116: iteration_statement ::= do statement while ( expression ) ;
+ //
+ case 116: { action. consumeStatementDoLoop(); break;
+ }
+
+ //
+ // Rule 117: iteration_statement ::= while ( expression ) statement
+ //
+ case 117: { action. consumeStatementWhileLoop(); break;
+ }
+
+ //
+ // Rule 118: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement
+ //
+ case 118: { action. consumeStatementForLoop(); break;
+ }
+
+ //
+ // Rule 119: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement
+ //
+ case 119: { action. consumeStatementForLoop(); break;
+ }
+
+ //
+ // Rule 120: jump_statement ::= goto identifier_or_typedefname ;
+ //
+ case 120: { action. consumeStatementGoto(); break;
+ }
+
+ //
+ // Rule 121: jump_statement ::= continue ;
+ //
+ case 121: { action. consumeStatementContinue(); break;
+ }
+
+ //
+ // Rule 122: jump_statement ::= break ;
+ //
+ case 122: { action. consumeStatementBreak(); break;
+ }
+
+ //
+ // Rule 123: jump_statement ::= return ;
+ //
+ case 123: { action. consumeStatementReturn(false); break;
+ }
+
+ //
+ // Rule 124: jump_statement ::= return expression ;
+ //
+ case 124: { action. consumeStatementReturn(true); break;
+ }
+
+ //
+ // Rule 125: declaration ::= declaration_specifiers ;
+ //
+ case 125: { action. consumeDeclarationSimple(false); break;
+ }
+
+ //
+ // Rule 126: declaration ::= declaration_specifiers <openscope-ast> init_declarator_list ;
+ //
+ case 126: { action. consumeDeclarationSimple(true); break;
+ }
+
+ //
+ // Rule 127: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
+ //
+ case 127: { action. consumeDeclarationSpecifiersSimple(); break;
+ }
+
+ //
+ // Rule 128: declaration_specifiers ::= <openscope-ast> struct_or_union_declaration_specifiers
+ //
+ case 128: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
+ }
+
+ //
+ // Rule 129: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
+ //
+ case 129: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
+ }
+
+ //
+ // Rule 130: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
+ //
+ case 130: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
+ }
+
+ //
+ // Rule 131: declaration_specifiers ::= <openscope-ast> typdef_name_declaration_specifiers
+ //
+ case 131: { action. consumeDeclarationSpecifiersTypedefName(); break;
+ }
+
+ //
+ // Rule 156: init_declarator ::= complete_declarator = initializer
+ //
+ case 156: { action. consumeDeclaratorWithInitializer(true); break;
+ }
+
+ //
+ // Rule 158: storage_class_specifier ::= storage_class_specifier_token
+ //
+ case 158: { action. consumeDeclSpecToken(); break;
+ }
+
+ //
+ // Rule 164: simple_type_specifier ::= simple_type_specifier_token
+ //
+ case 164: { action. consumeDeclSpecToken(); break;
+ }
+
+ //
+ // Rule 177: typedef_name_in_declspec ::= Completion
+ //
+ case 177: { action. consumeDeclSpecToken(); break;
+ }
+
+ //
+ // Rule 178: typedef_name_in_declspec ::= identifier
+ //
+ case 178: { action. consumeDeclSpecToken(); break;
+ }
+
+ //
+ // Rule 181: struct_or_union_specifier ::= struct { <openscope-ast> struct_declaration_list_opt }
+ //
+ case 181: { action. consumeTypeSpecifierComposite(false, IASTCompositeTypeSpecifier.k_struct); break;
+ }
+
+ //
+ // Rule 182: struct_or_union_specifier ::= union { <openscope-ast> struct_declaration_list_opt }
+ //
+ case 182: { action. consumeTypeSpecifierComposite(false, IASTCompositeTypeSpecifier.k_union); break;
+ }
+
+ //
+ // Rule 183: struct_or_union_specifier ::= struct identifier_or_typedefname { <openscope-ast> struct_declaration_list_opt }
+ //
+ case 183: { action. consumeTypeSpecifierComposite(true, IASTCompositeTypeSpecifier.k_struct); break;
+ }
+
+ //
+ // Rule 184: struct_or_union_specifier ::= union identifier_or_typedefname { <openscope-ast> struct_declaration_list_opt }
+ //
+ case 184: { action. consumeTypeSpecifierComposite(true, IASTCompositeTypeSpecifier.k_union); break;
+ }
+
+ //
+ // Rule 185: elaborated_specifier ::= struct identifier_or_typedefname
+ //
+ case 185: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break;
+ }
+
+ //
+ // Rule 186: elaborated_specifier ::= union identifier_or_typedefname
+ //
+ case 186: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break;
+ }
+
+ //
+ // Rule 187: elaborated_specifier ::= enum identifier_or_typedefname
+ //
+ case 187: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break;
+ }
+
+ //
+ // Rule 192: struct_declaration ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ;
+ //
+ case 192: { action. consumeStructDeclaration(true); break;
+ }
+
+ //
+ // Rule 193: struct_declaration ::= specifier_qualifier_list ;
+ //
+ case 193: { action. consumeStructDeclaration(false); break;
+ }
+
+ //
+ // Rule 194: struct_declaration ::= ERROR_TOKEN
+ //
+ case 194: { action. consumeDeclarationProblem(); break;
+ }
+
+ //
+ // Rule 200: struct_declarator ::= : constant_expression
+ //
+ case 200: { action. consumeBitField(false); break;
+ }
+
+ //
+ // Rule 201: struct_declarator ::= declarator : constant_expression
+ //
+ case 201: { action. consumeBitField(true); break;
+ }
+
+ //
+ // Rule 202: enum_specifier ::= enum { <openscope-ast> enumerator_list_opt comma_opt }
+ //
+ case 202: { action. consumeTypeSpecifierEnumeration(false); break;
+ }
+
+ //
+ // Rule 203: enum_specifier ::= enum identifier_or_typedefname { <openscope-ast> enumerator_list_opt comma_opt }
+ //
+ case 203: { action. consumeTypeSpecifierEnumeration(true); break;
+ }
+
+ //
+ // Rule 208: enumerator ::= identifier_or_typedefname
+ //
+ case 208: { action. consumeEnumerator(false); break;
+ }
+
+ //
+ // Rule 209: enumerator ::= identifier_or_typedefname = constant_expression
+ //
+ case 209: { action. consumeEnumerator(true); break;
+ }
+
+ //
+ // Rule 210: type_qualifier ::= type_qualifier_token
+ //
+ case 210: { action. consumeDeclSpecToken(); break;
+ }
+
+ //
+ // Rule 214: function_specifier ::= inline
+ //
+ case 214: { action. consumeDeclSpecToken(); break;
+ }
+
+ //
+ // Rule 216: declarator ::= <openscope-ast> pointer_seq direct_declarator
+ //
+ case 216: { action. consumeDeclaratorWithPointer(true); break;
+ }
+
+ //
+ // Rule 221: basic_direct_declarator ::= declarator_id_name
+ //
+ case 221: { action. consumeDirectDeclaratorIdentifier(); break;
+ }
+
+ //
+ // Rule 222: basic_direct_declarator ::= ( declarator )
+ //
+ case 222: { action. consumeDirectDeclaratorBracketed(); break;
+ }
+
+ //
+ // Rule 223: declarator_id_name ::= identifier
+ //
+ case 223: { action. consumeIdentifierName(); break;
+ }
+
+ //
+ // Rule 224: array_direct_declarator ::= basic_direct_declarator array_modifier
+ //
+ case 224: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ }
+
+ //
+ // Rule 225: array_direct_declarator ::= array_direct_declarator array_modifier
+ //
+ case 225: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ }
+
+ //
+ // Rule 227: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_type_list )
+ //
+ case 227: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
+ }
+
+ //
+ // Rule 228: function_direct_declarator ::= basic_direct_declarator ( )
+ //
+ case 228: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
+ }
+
+ //
+ // Rule 230: function_declarator ::= <openscope-ast> pointer_seq function_direct_declarator
+ //
+ case 230: { action. consumeDeclaratorWithPointer(true); break;
+ }
+
+ //
+ // Rule 231: knr_direct_declarator ::= basic_direct_declarator ( <openscope-ast> identifier_list )
+ //
+ case 231: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break;
+ }
+
+ //
+ // Rule 233: knr_function_declarator ::= <openscope-ast> pointer_seq knr_direct_declarator
+ //
+ case 233: { action. consumeDeclaratorWithPointer(true); break;
+ }
+
+ //
+ // Rule 234: identifier_list ::= identifier
+ //
+ case 234: { action. consumeIdentifierKnR(); break;
+ }
+
+ //
+ // Rule 235: identifier_list ::= identifier_list , identifier
+ //
+ case 235: { action. consumeIdentifierKnR(); break;
+ }
+
+ //
+ // Rule 236: array_modifier ::= [ ]
+ //
+ case 236: { action. consumeDirectDeclaratorArrayModifier(false); break;
+ }
+
+ //
+ // Rule 237: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ]
+ //
+ case 237: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break;
+ }
+
+ //
+ // Rule 238: array_modifier ::= [ assignment_expression ]
+ //
+ case 238: { action. consumeDirectDeclaratorArrayModifier(true); break;
+ }
+
+ //
+ // Rule 239: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
+ //
+ case 239: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break;
+ }
+
+ //
+ // Rule 240: array_modifier ::= [ static assignment_expression ]
+ //
+ case 240: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break;
+ }
+
+ //
+ // Rule 241: array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
+ //
+ case 241: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break;
+ }
+
+ //
+ // Rule 242: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ]
+ //
+ case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break;
+ }
+
+ //
+ // Rule 243: array_modifier ::= [ * ]
+ //
+ case 243: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break;
+ }
+
+ //
+ // Rule 244: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ]
+ //
+ case 244: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break;
+ }
+
+ //
+ // Rule 246: pointer_seq ::= *
+ //
+ case 246: { action. consumePointer(); break;
+ }
+
+ //
+ // Rule 247: pointer_seq ::= pointer_seq *
+ //
+ case 247: { action. consumePointer(); break;
+ }
+
+ //
+ // Rule 248: pointer_seq ::= * <openscope-ast> type_qualifier_list
+ //
+ case 248: { action. consumePointerTypeQualifierList(); break;
+ }
+
+ //
+ // Rule 249: pointer_seq ::= pointer_seq * <openscope-ast> type_qualifier_list
+ //
+ case 249: { action. consumePointerTypeQualifierList(); break;
+ }
+
+ //
+ // Rule 252: parameter_type_list ::= parameter_list
+ //
+ case 252: { action. consumeEmpty(); break;
+ }
+
+ //
+ // Rule 253: parameter_type_list ::= parameter_list , ...
+ //
+ case 253: { action. consumePlaceHolder(); break;
+ }
+
+ //
+ // Rule 254: parameter_type_list ::= ...
+ //
+ case 254: { action. consumePlaceHolder(); break;
+ }
+
+ //
+ // Rule 257: parameter_declaration ::= declaration_specifiers complete_parameter_declarator
+ //
+ case 257: { action. consumeParameterDeclaration(); break;
+ }
+
+ //
+ // Rule 258: parameter_declaration ::= declaration_specifiers
+ //
+ case 258: { action. consumeParameterDeclarationWithoutDeclarator(); break;
+ }
+
+ //
+ // Rule 261: type_name ::= specifier_qualifier_list
+ //
+ case 261: { action. consumeTypeId(false); break;
+ }
+
+ //
+ // Rule 262: type_name ::= specifier_qualifier_list abstract_declarator
+ //
+ case 262: { action. consumeTypeId(true); break;
+ }
+
+ //
+ // Rule 264: abstract_declarator ::= <openscope-ast> pointer_seq
+ //
+ case 264: { action. consumeDeclaratorWithPointer(false); break;
+ }
+
+ //
+ // Rule 265: abstract_declarator ::= <openscope-ast> pointer_seq direct_abstract_declarator
+ //
+ case 265: { action. consumeDeclaratorWithPointer(false); break;
+ }
+
+ //
+ // Rule 269: basic_direct_abstract_declarator ::= ( abstract_declarator )
+ //
+ case 269: { action. consumeDirectDeclaratorBracketed(); break;
+ }
+
+ //
+ // Rule 270: array_direct_abstract_declarator ::= array_modifier
+ //
+ case 270: { action. consumeDirectDeclaratorArrayDeclarator(false); break;
+ }
+
+ //
+ // Rule 271: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
+ //
+ case 271: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ }
+
+ //
+ // Rule 272: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
+ //
+ case 272: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ }
+
+ //
+ // Rule 273: function_direct_abstract_declarator ::= ( )
+ //
+ case 273: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break;
+ }
+
+ //
+ // Rule 274: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( )
+ //
+ case 274: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
+ }
+
+ //
+ // Rule 275: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list )
+ //
+ case 275: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break;
+ }
+
+ //
+ // Rule 276: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list )
+ //
+ case 276: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
+ }
+
+ //
+ // Rule 277: initializer ::= assignment_expression
+ //
+ case 277: { action. consumeInitializer(); break;
+ }
+
+ //
+ // Rule 278: initializer ::= { <openscope-ast> initializer_list comma_opt }
+ //
+ case 278: { action. consumeInitializerList(); break;
+ }
+
+ //
+ // Rule 283: designated_initializer ::= <openscope-ast> designation = initializer
+ //
+ case 283: { action. consumeInitializerDesignated(); break;
+ }
+
+ //
+ // Rule 287: designator_base ::= [ constant_expression ]
+ //
+ case 287: { action. consumeDesignatorArray(); break;
+ }
+
+ //
+ // Rule 288: designator_base ::= . identifier_or_typedefname
+ //
+ case 288: { action. consumeDesignatorField(); break;
+ }
+
+ //
+ // Rule 289: designator ::= [ constant_expression ]
+ //
+ case 289: { action. consumeDesignatorArray(); break;
+ }
+
+ //
+ // Rule 290: designator ::= . identifier_or_typedefname
+ //
+ case 290: { action. consumeDesignatorField(); break;
+ }
+
+ //
+ // Rule 291: translation_unit ::= external_declaration_list
+ //
+ case 291: { action. consumeTranslationUnit(); break;
+ }
+
+ //
+ // Rule 292: translation_unit ::= $Empty
+ //
+ case 292: { action. consumeTranslationUnit(); break;
+ }
+
+ //
+ // Rule 297: external_declaration ::= ;
+ //
+ case 297: { action. consumeDeclarationEmpty(); break;
+ }
+
+ //
+ // Rule 298: external_declaration ::= ERROR_TOKEN
+ //
+ case 298: { action. consumeDeclarationProblem(); break;
+ }
+
+ //
+ // Rule 301: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
+ //
+ case 301: { action. consumeFunctionDefinition(true); break;
+ }
+
+ //
+ // Rule 302: function_definition ::= <openscope-ast> function_declarator function_body
+ //
+ case 302: { action. consumeFunctionDefinition(false); break;
+ }
+
+ //
+ // Rule 303: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
+ //
+ case 303: { action. consumeFunctionDefinitionKnR(); break;
+ }
+
+ //
+ // Rule 304: function_body ::= { }
+ //
+ case 304: { action. consumeStatementCompoundStatement(false); break;
+ }
+
+ //
+ // Rule 305: function_body ::= { <openscope-ast> block_item_list }
+ //
+ case 305: { action. consumeStatementCompoundStatement(true); break;
+ }
+
+ //
+ // Rule 307: no_cast_start ::= ERROR_TOKEN
+ //
+ case 307: { action. consumeExpressionProblem(); break;
+ }
+
+ //
+ // Rule 308: literal ::= MYTHREAD
+ //
+ case 308: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread); break;
+ }
+
+ //
+ // Rule 309: literal ::= THREADS
+ //
+ case 309: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads); break;
+ }
+
+ //
+ // Rule 310: literal ::= UPC_MAX_BLOCKSIZE
+ //
+ case 310: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size); break;
+ }
+
+ //
+ // Rule 311: unary_expression ::= upc_localsizeof unary_expression
+ //
+ case 311: { action. consumeExpressionUnaryOperator(IUPCASTUnaryExpression.op_upc_localsizeof); break;
+ }
+
+ //
+ // Rule 312: unary_expression ::= upc_localsizeof ( type_name )
+ //
+ case 312: { action. consumeExpressionTypeId(IUPCASTUnaryExpression.op_upc_localsizeof); break;
+ }
+
+ //
+ // Rule 313: unary_expression ::= upc_blocksizeof unary_expression
+ //
+ case 313: { action. consumeExpressionUnaryOperator(IUPCASTUnaryExpression.op_upc_blocksizeof); break;
+ }
+
+ //
+ // Rule 314: unary_expression ::= upc_blocksizeof ( type_name )
+ //
+ case 314: { action. consumeExpressionTypeId(IUPCASTUnaryExpression.op_upc_blocksizeof); break;
+ }
+
+ //
+ // Rule 315: unary_expression ::= upc_elemsizeof unary_expression
+ //
+ case 315: { action. consumeExpressionUnaryOperator(IUPCASTUnaryExpression.op_upc_elemsizeof); break;
+ }
+
+ //
+ // Rule 316: unary_expression ::= upc_elemsizeof ( type_name )
+ //
+ case 316: { action. consumeExpressionTypeId(IUPCASTUnaryExpression.op_upc_elemsizeof); break;
+ }
+
+ //
+ // Rule 320: shared_type_qualifier ::= shared
+ //
+ case 320: { action. consumeToken(); break;
+ }
+
+ //
+ // Rule 321: reference_type_qualifier ::= relaxed
+ //
+ case 321: { action. consumeToken(); break;
+ }
+
+ //
+ // Rule 322: reference_type_qualifier ::= strict
+ //
+ case 322: { action. consumeToken(); break;
+ }
+
+ //
+ // Rule 323: layout_qualifier ::= [ constant_expression ]
+ //
+ case 323: { action. consumeLayoutQualifier(true, false); break;
+ }
+
+ //
+ // Rule 324: layout_qualifier ::= [ * ]
+ //
+ case 324: { action. consumeLayoutQualifier(false, true); break;
+ }
+
+ //
+ // Rule 325: layout_qualifier ::= [ ]
+ //
+ case 325: { action. consumeLayoutQualifier(false, false); break;
+ }
+
+ //
+ // Rule 327: synchronization_statement ::= upc_notify expression ;
+ //
+ case 327: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true); break;
+ }
+
+ //
+ // Rule 328: synchronization_statement ::= upc_notify ;
+ //
+ case 328: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false); break;
+ }
+
+ //
+ // Rule 329: synchronization_statement ::= upc_wait expression ;
+ //
+ case 329: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true); break;
+ }
+
+ //
+ // Rule 330: synchronization_statement ::= upc_wait ;
+ //
+ case 330: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false); break;
+ }
+
+ //
+ // Rule 331: synchronization_statement ::= upc_barrier expression ;
+ //
+ case 331: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true); break;
+ }
+
+ //
+ // Rule 332: synchronization_statement ::= upc_barrier ;
+ //
+ case 332: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false); break;
+ }
+
+ //
+ // Rule 333: synchronization_statement ::= upc_fence ;
+ //
+ case 333: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false); break;
+ }
+
+ //
+ // Rule 334: iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement
+ //
+ case 334: { action. consumeStatementUPCForallLoop(true, true, true, true); break;
+ }
+
+ //
+ // Rule 335: iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement
+ //
+ case 335: { action. consumeStatementUPCForallLoop(true, true, true, false); break;
+ }
+
+ //
+ // Rule 336: iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement
+ //
+ case 336: { action. consumeStatementUPCForallLoop(true, true, false, true); break;
+ }
+
+ //
+ // Rule 337: iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement
+ //
+ case 337: { action. consumeStatementUPCForallLoop(true, true, false, false); break;
+ }
+
+ //
+ // Rule 338: iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement
+ //
+ case 338: { action. consumeStatementUPCForallLoop(true, false, true, true); break;
+ }
+
+ //
+ // Rule 339: iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement
+ //
+ case 339: { action. consumeStatementUPCForallLoop(true, false, true, false); break;
+ }
+
+ //
+ // Rule 340: iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement
+ //
+ case 340: { action. consumeStatementUPCForallLoop(true, false, false, true); break;
+ }
+
+ //
+ // Rule 341: iteration_statement ::= upc_forall ( expression ; ; ; ) statement
+ //
+ case 341: { action. consumeStatementUPCForallLoop(true, false, false, false); break;
+ }
+
+ //
+ // Rule 342: iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement
+ //
+ case 342: { action. consumeStatementUPCForallLoop(false, true, true, true); break;
+ }
+
+ //
+ // Rule 343: iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement
+ //
+ case 343: { action. consumeStatementUPCForallLoop(false, true, true, false); break;
+ }
+
+ //
+ // Rule 344: iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement
+ //
+ case 344: { action. consumeStatementUPCForallLoop(false, true, false, true); break;
+ }
+
+ //
+ // Rule 345: iteration_statement ::= upc_forall ( ; expression ; ; ) statement
+ //
+ case 345: { action. consumeStatementUPCForallLoop(false, true, false, false); break;
+ }
+
+ //
+ // Rule 346: iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement
+ //
+ case 346: { action. consumeStatementUPCForallLoop(false, false, true, true); break;
+ }
+
+ //
+ // Rule 347: iteration_statement ::= upc_forall ( ; ; expression ; ) statement
+ //
+ case 347: { action. consumeStatementUPCForallLoop(false, false, true, false); break;
+ }
+
+ //
+ // Rule 348: iteration_statement ::= upc_forall ( ; ; ; affinity ) statement
+ //
+ case 348: { action. consumeStatementUPCForallLoop(false, false, false, true); break;
+ }
+
+ //
+ // Rule 349: iteration_statement ::= upc_forall ( ; ; ; ) statement
+ //
+ case 349: { action. consumeStatementUPCForallLoop(false, false, false, false); break;
+ }
+
+ //
+ // Rule 350: iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement
+ //
+ case 350: { action. consumeStatementUPCForallLoop(true, true, true, true); break;
+ }
+
+ //
+ // Rule 351: iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement
+ //
+ case 351: { action. consumeStatementUPCForallLoop(true, true, true, false); break;
+ }
+
+ //
+ // Rule 352: iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement
+ //
+ case 352: { action. consumeStatementUPCForallLoop(true, true, false, true); break;
+ }
+
+ //
+ // Rule 353: iteration_statement ::= upc_forall ( declaration expression ; ; ) statement
+ //
+ case 353: { action. consumeStatementUPCForallLoop(true, true, false, false); break;
+ }
+
+ //
+ // Rule 354: iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement
+ //
+ case 354: { action. consumeStatementUPCForallLoop(true, false, true, true); break;
+ }
+
+ //
+ // Rule 355: iteration_statement ::= upc_forall ( declaration ; expression ; ) statement
+ //
+ case 355: { action. consumeStatementUPCForallLoop(true, false, true, false); break;
+ }
+
+ //
+ // Rule 356: iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement
+ //
+ case 356: { action. consumeStatementUPCForallLoop(true, false, false, true); break;
+ }
+
+ //
+ // Rule 357: iteration_statement ::= upc_forall ( declaration ; ; ) statement
+ //
+ case 357: { action. consumeStatementUPCForallLoop(true, false, false, false); break;
+ }
+
+ //
+ // Rule 359: affinity ::= continue
+ //
+ case 359: { 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
new file mode 100644
index 00000000000..c919965ad79
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParserprs.java
@@ -0,0 +1,1246 @@
+/*******************************************************************************
+* Copyright (c) 2006, 2008 IBM Corporation and others.
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+*
+* Contributors:
+* IBM Corporation - initial API and implementation
+*********************************************************************************/
+
+// This file was generated by LPG
+
+package org.eclipse.cdt.internal.core.dom.parser.upc;
+
+public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UPCNoCastExpressionParsersym {
+
+ public interface IsKeyword {
+ public final static byte isKeyword[] = {0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0
+ };
+ };
+ public final static byte isKeyword[] = IsKeyword.isKeyword;
+ public final boolean isKeyword(int index) { return isKeyword[index] != 0; }
+
+ public interface BaseCheck {
+ public final static short baseCheck[] = {0,
+ 0,1,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,3,1,1,1,4,
+ 4,3,3,2,2,8,1,0,1,1,
+ 1,2,2,2,2,2,2,2,2,2,
+ 4,1,1,3,3,3,1,3,3,1,
+ 3,3,1,3,3,3,3,1,3,3,
+ 1,3,1,3,1,3,1,3,1,3,
+ 1,5,1,3,3,3,3,3,3,3,
+ 3,3,3,3,1,1,2,1,0,1,
+ 3,1,1,1,1,1,1,1,1,3,
+ 3,2,2,4,1,2,1,1,1,2,
+ 5,7,5,1,0,7,5,9,8,3,
+ 2,2,2,3,2,4,2,2,2,2,
+ 2,1,1,1,1,2,1,2,2,2,
+ 1,2,2,1,2,2,1,2,2,1,
+ 2,2,1,3,1,3,1,1,1,1,
+ 1,1,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,1,1,
+ 5,5,6,6,2,2,2,1,0,1,
+ 2,4,2,1,1,1,3,1,1,2,
+ 3,6,7,1,0,1,3,1,3,1,
+ 1,1,1,1,1,3,1,1,1,1,
+ 1,3,1,2,2,1,5,3,1,3,
+ 5,1,3,1,3,2,4,3,5,4,
+ 6,6,3,5,1,1,2,3,4,1,
+ 2,1,3,1,1,3,2,1,1,1,
+ 1,2,1,2,3,1,1,1,3,1,
+ 2,2,2,3,4,5,1,5,1,1,
+ 3,3,4,1,1,2,3,2,3,2,
+ 1,0,1,2,1,1,1,1,1,2,
+ 4,3,6,2,4,1,1,1,1,1,
+ 2,4,2,4,2,4,1,1,2,1,
+ 1,1,3,3,2,1,3,2,3,2,
+ 3,2,2,11,10,10,9,10,9,9,
+ 8,10,9,9,8,9,8,8,7,10,
+ 9,9,8,9,8,8,7,1,1,-38,
+ 0,0,0,0,0,0,0,-2,0,0,
+ 0,0,0,0,0,0,0,0,0,-78,
+ -4,-87,0,0,0,0,-5,0,0,0,
+ 0,0,0,0,0,0,-60,0,0,0,
+ 0,0,0,0,-141,0,0,0,0,0,
+ 0,0,0,0,0,-18,0,-6,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-135,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-186,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-193,
+ -9,0,0,0,0,0,0,-30,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-35,
+ -36,0,-156,-19,-20,0,0,0,0,0,
+ 0,0,0,-84,0,0,0,0,0,0,
+ 0,0,-181,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,-79,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,-144,0,-7,0,0,0,0,0,
+ -57,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-21,
+ -81,0,0,0,0,0,0,0,0,-61,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-22,-23,0,0,0,
+ -8,0,0,0,0,0,0,0,0,0,
+ -15,0,0,0,0,0,0,0,0,0,
+ 0,0,-3,0,0,0,0,0,0,0,
+ -167,0,0,0,0,0,0,0,0,0,
+ 0,0,-120,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,-127,0,0,0,0,0,0,0,
+ -24,0,0,0,0,0,0,0,0,0,
+ 0,-25,0,0,-48,0,0,0,0,0,
+ 0,0,-26,0,0,0,-27,-96,-140,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ -201,0,0,0,0,0,0,0,-73,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ -62,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ -43,0,0,0,0,0,0,0,-63,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-64,0,
+ 0,0,0,0,0,0,-74,0,0,0,
+ 0,0,0,0,0,0,0,0,-65,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-66,0,
+ 0,0,0,0,0,0,-75,0,0,0,
+ 0,0,0,0,0,0,0,0,-67,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-68,0,
+ 0,0,0,0,0,0,-76,0,0,0,
+ 0,0,0,0,0,0,0,0,-69,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-70,0,
+ 0,0,0,0,0,0,-95,0,0,0,
+ 0,0,0,0,0,0,0,0,-71,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-72,0,
+ 0,0,0,0,0,0,-124,0,0,0,
+ 0,0,0,0,0,0,0,0,-160,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-161,0,
+ 0,0,0,0,0,0,-142,0,0,0,
+ 0,0,0,0,0,0,0,0,-184,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-198,0,0,
+ 0,0,0,0,0,-39,0,0,0,0,
+ 0,0,0,0,0,0,-16,0,0,0,
+ 0,0,0,-52,0,0,0,0,0,0,
+ 0,-28,0,-204,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,-208,0,0,0,0,0,0,0,
+ -40,0,0,0,0,0,0,0,0,0,
+ 0,-29,-77,-93,-94,-155,0,0,-53,0,
+ 0,0,0,0,0,0,-97,0,-218,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-134,0,0,
+ 0,0,0,0,0,-82,0,0,0,0,
+ 0,0,0,0,0,0,-143,-122,-88,0,
+ -98,0,0,-159,0,-58,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-165,
+ 0,0,0,0,0,-187,0,0,0,0,
+ 0,-85,-164,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-99,0,0,0,0,
+ 0,0,0,-172,0,0,0,0,0,0,
+ 0,0,-171,-92,0,0,0,0,-90,0,
+ 0,0,0,0,0,0,-117,0,0,0,
+ 0,0,0,-119,0,0,0,0,0,0,
+ -199,0,0,-37,-195,0,0,0,0,0,
+ 0,0,0,-54,0,0,0,0,0,0,
+ 0,-217,0,0,0,0,-1,-100,0,0,
+ 0,0,0,0,0,-121,-101,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,-102,-185,0,0,0,0,0,0,
+ 0,0,0,0,0,-139,0,-169,0,-147,
+ -176,0,-55,0,0,0,0,0,0,0,
+ -129,0,0,0,0,0,0,0,0,-175,
+ 0,0,-83,-44,0,0,0,0,0,0,
+ 0,0,0,-56,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ -162,-188,-189,-202,0,0,0,0,0,-49,
+ 0,0,0,0,0,0,0,-210,0,0,
+ -41,0,0,0,0,0,0,0,0,0,
+ -50,0,0,0,0,0,0,0,-211,0,
+ 0,-51,0,0,0,0,0,0,0,0,
+ 0,0,-86,-80,0,0,0,0,0,0,
+ 0,0,-126,-192,-131,-183,-132,0,-166,-89,
+ 0,0,0,0,0,0,0,0,0,-103,
+ -104,0,0,0,-91,0,0,0,0,-137,
+ 0,-190,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,-123,0,0,0,0,0,0,-148,0,
+ 0,0,0,0,0,-163,0,0,0,0,
+ 0,0,0,-219,-136,-149,-151,-154,-180,0,
+ 0,-200,0,0,0,0,0,-10,0,0,
+ 0,0,0,0,-11,0,0,0,0,0,
+ 0,-12,0,0,0,0,0,0,0,-105,
+ 0,0,0,0,0,0,0,-13,0,0,
+ 0,0,0,0,-14,0,0,0,0,0,
+ 0,-17,-31,-157,-213,0,-106,-215,-107,0,
+ 0,0,-32,-33,-168,-207,-203,-108,-42,-109,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-34,-125,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,-45,0,0,0,0,0,0,0,
+ 0,0,0,-194,0,-196,0,0,0,-46,
+ 0,0,0,0,0,0,-47,0,0,0,
+ 0,0,0,-138,-197,0,0,-205,-150,-110,
+ 0,0,-212,0,-152,0,0,-170,0,-111,
+ 0,-112,0,-174,-113,0,0,0,0,0,
+ 0,0,-191,-214,0,0,0,-114,-206,0,
+ 0,0,0,-115,0,0,0,-153,-146,-59,
+ 0,-179,-116,-128,0,-130,0,0,-118,0,
+ 0,0,-133,0,0,0,0,0,0,-216,
+ 0,-145,0,0,0,0,0,-177,0,0,
+ 0,0,0,0,0,0,0,0,-158,0,
+ -178,0,0,-182,0,-209,-220,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-173,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0
+ };
+ };
+ public final static short baseCheck[] = BaseCheck.baseCheck;
+ public final int baseCheck(int index) { return baseCheck[index]; }
+ public final static short rhs[] = baseCheck;
+ public final int rhs(int index) { return rhs[index]; };
+
+ public interface BaseAction {
+ public final static char baseAction[] = {
+ 85,8,21,21,20,20,30,30,70,70,
+ 1,1,1,1,2,2,2,3,3,4,
+ 4,4,4,4,4,4,4,54,54,71,
+ 71,5,5,5,5,5,5,5,5,5,
+ 5,5,6,7,7,7,7,9,9,9,
+ 10,10,10,11,11,11,11,11,12,12,
+ 12,13,13,14,14,15,15,16,16,17,
+ 17,18,18,19,19,19,19,19,19,19,
+ 19,19,19,19,19,96,31,29,86,86,
+ 73,73,44,97,97,97,97,97,97,97,
+ 98,98,98,99,99,104,104,105,105,100,
+ 100,101,101,101,107,107,102,102,102,102,
+ 103,103,103,103,103,106,106,22,22,22,
+ 22,22,33,33,33,79,79,74,74,74,
+ 74,75,75,75,76,76,76,77,77,77,
+ 78,78,78,108,108,109,109,110,34,36,
+ 36,36,36,36,55,57,57,57,57,57,
+ 57,57,57,57,57,57,57,67,67,32,
+ 32,64,64,64,64,65,65,65,58,58,
+ 59,59,51,51,51,27,87,87,80,81,
+ 81,81,66,66,82,82,83,83,68,68,
+ 23,24,24,24,35,50,50,37,37,37,
+ 37,40,40,42,38,38,39,43,43,111,
+ 111,41,112,112,88,88,28,28,28,28,
+ 28,28,28,28,28,84,52,52,52,52,
+ 61,61,60,60,60,62,62,53,53,89,
+ 89,49,49,63,63,63,45,45,45,46,
+ 47,47,47,48,48,48,48,56,56,72,
+ 72,72,72,69,90,91,91,92,92,93,
+ 93,113,113,114,114,115,115,115,115,117,
+ 117,116,116,116,118,118,85,85,1,1,
+ 1,5,5,5,5,5,5,23,23,25,
+ 25,26,26,94,94,94,97,119,119,119,
+ 119,119,119,119,102,102,102,102,102,102,
+ 102,102,102,102,102,102,102,102,102,102,
+ 102,102,102,102,102,102,102,102,120,120,
+ 1,14,19,15,416,1132,43,515,314,514,
+ 626,600,701,627,723,712,1092,727,73,90,
+ 105,38,182,133,210,317,318,784,14,19,
+ 15,416,315,135,132,134,158,752,14,19,
+ 15,416,42,43,515,238,514,626,600,701,
+ 627,723,712,1700,1734,137,67,164,816,14,
+ 19,15,416,313,141,144,147,150,251,210,
+ 317,318,1739,381,1373,1222,1453,1470,1485,1254,
+ 688,14,19,15,416,1132,43,515,513,514,
+ 626,600,701,627,723,712,1092,727,73,277,
+ 688,14,19,15,416,1132,43,515,513,514,
+ 626,600,701,627,723,712,1092,727,73,277,
+ 595,752,14,19,15,416,42,39,752,14,
+ 19,15,416,1132,43,515,279,514,626,600,
+ 701,627,723,712,1092,727,73,91,270,280,
+ 528,528,1136,516,243,307,279,216,1210,218,
+ 1469,220,221,226,525,265,1176,601,268,280,
+ 1133,16,1688,480,14,19,15,416,1132,43,
+ 515,513,514,626,600,701,627,723,712,1092,
+ 727,73,277,394,14,19,15,416,1132,43,
+ 515,1188,514,626,600,701,627,723,712,1092,
+ 727,73,1316,340,236,848,14,19,15,416,
+ 311,752,14,19,15,416,42,43,515,281,
+ 514,626,600,701,627,1618,133,210,317,318,
+ 72,514,282,1774,1334,285,135,132,134,158,
+ 752,14,19,15,416,42,43,515,319,514,
+ 626,600,701,627,723,1702,140,357,137,271,
+ 164,880,14,19,15,416,40,141,144,147,
+ 150,752,14,19,15,416,33,1373,1222,1453,
+ 1470,1485,1254,752,14,19,15,416,1132,43,
+ 515,105,514,626,600,701,627,723,712,1092,
+ 727,73,90,912,14,19,15,416,1132,43,
+ 515,1684,514,626,600,701,627,723,712,1092,
+ 727,73,1346,605,14,19,15,416,42,43,
+ 515,71,514,626,600,701,627,723,712,1092,
+ 727,92,126,480,325,752,14,19,15,416,
+ 42,43,515,228,514,1236,381,287,598,437,
+ 14,19,15,416,1132,43,515,1350,514,626,
+ 600,701,627,723,712,1092,727,73,1401,20,
+ 237,720,14,19,15,416,1132,43,515,528,
+ 514,626,600,701,627,723,712,1092,727,73,
+ 277,752,14,19,15,416,1132,43,515,1705,
+ 514,626,600,701,627,723,712,1092,727,73,
+ 84,752,14,19,15,416,42,43,1147,752,
+ 14,19,15,416,1132,43,515,283,514,626,
+ 600,701,627,723,712,1092,727,73,83,752,
+ 14,19,15,416,1132,43,515,528,514,626,
+ 600,701,627,723,712,1092,727,73,82,752,
+ 14,19,15,416,1132,43,515,1718,514,626,
+ 600,701,627,723,712,1092,727,73,81,752,
+ 14,19,15,416,1132,43,515,528,514,626,
+ 600,701,627,723,712,1092,727,73,80,752,
+ 14,19,15,416,1132,43,515,1724,514,626,
+ 600,701,627,723,712,1092,727,73,79,752,
+ 14,19,15,416,1132,43,515,528,514,626,
+ 600,701,627,723,712,1092,727,73,78,752,
+ 14,19,15,416,1132,43,515,1733,514,626,
+ 600,701,627,723,712,1092,727,73,77,752,
+ 14,19,15,416,1132,43,515,528,514,626,
+ 600,701,627,723,712,1092,727,73,76,752,
+ 14,19,15,416,1132,43,515,21,514,626,
+ 600,701,627,723,712,1092,727,73,75,752,
+ 14,19,15,416,1132,43,515,528,514,626,
+ 600,701,627,723,712,1092,727,73,74,752,
+ 14,19,15,416,1132,43,515,269,514,626,
+ 600,701,627,723,712,1092,727,73,1402,752,
+ 14,19,15,416,1132,43,515,528,514,626,
+ 600,701,627,723,712,1092,727,73,1403,752,
+ 14,19,15,416,42,43,515,275,514,626,
+ 600,701,627,723,712,1092,727,92,752,14,
+ 19,15,416,42,43,515,353,514,626,600,
+ 701,627,723,712,1092,727,92,752,14,19,
+ 15,416,32,1404,752,14,19,15,416,42,
+ 43,515,51,1480,752,14,19,15,416,42,
+ 43,515,209,514,626,600,701,627,723,712,
+ 1092,727,92,752,14,19,15,416,42,43,
+ 515,353,514,626,600,701,627,723,712,1092,
+ 727,92,887,531,944,981,495,23,1605,752,
+ 14,19,15,416,42,43,515,426,1481,752,
+ 14,19,15,416,42,43,515,200,514,626,
+ 600,701,627,723,712,1092,727,92,752,14,
+ 19,15,416,42,43,515,57,514,626,600,
+ 701,627,723,712,1092,727,72,471,124,239,
+ 1549,538,22,201,295,661,752,14,19,15,
+ 416,42,43,515,272,514,626,600,701,1620,
+ 1006,250,210,317,318,270,352,251,210,317,
+ 318,1736,993,427,215,1210,218,1469,220,221,
+ 226,1713,263,1176,601,268,344,259,225,251,
+ 210,317,318,273,529,133,210,317,318,405,
+ 260,270,1285,1005,340,143,132,134,158,296,
+ 215,1210,218,1469,220,221,226,6,263,1176,
+ 601,268,729,1492,68,440,257,133,210,317,
+ 318,726,1490,182,431,366,987,136,132,134,
+ 158,1743,380,1439,752,14,19,15,416,42,
+ 43,515,366,514,626,600,1580,648,513,138,
+ 1439,164,270,1758,193,653,598,515,142,145,
+ 148,151,215,1210,218,1469,220,221,226,263,
+ 1176,601,268,638,982,1776,86,238,306,215,
+ 1210,218,1469,220,221,226,598,262,528,207,
+ 598,640,1776,752,14,19,15,416,42,43,
+ 515,6,514,626,1607,196,198,240,276,1689,
+ 1005,323,1616,512,752,14,19,15,416,42,
+ 43,1191,197,198,752,14,19,15,416,42,
+ 43,515,368,514,626,1609,133,210,317,318,
+ 181,598,598,598,598,1685,140,132,134,158,
+ 752,14,19,15,416,42,43,515,80,514,
+ 1308,680,239,241,242,287,1439,286,139,653,
+ 164,752,14,19,15,416,42,43,515,105,
+ 514,1317,752,14,19,15,416,42,43,515,
+ 88,514,1333,1030,474,215,1210,218,1469,220,
+ 221,226,1639,681,681,6,726,6,1492,945,
+ 1042,1729,1719,1695,273,1728,133,210,317,318,
+ 602,642,270,274,228,1073,146,132,134,158,
+ 124,1544,528,133,210,317,318,224,288,263,
+ 1176,601,268,149,132,134,158,947,133,210,
+ 317,318,222,250,210,317,318,987,152,132,
+ 134,158,562,14,19,15,416,42,35,562,
+ 14,19,15,416,42,35,562,14,19,15,
+ 416,42,35,243,308,181,6,6,6,1005,
+ 324,1194,640,1769,1698,1704,1732,244,752,14,
+ 19,15,416,42,38,752,14,19,15,416,
+ 42,37,752,14,19,15,416,42,36,26,
+ 612,216,1210,218,1469,220,221,226,752,14,
+ 19,15,416,42,35,752,14,19,15,416,
+ 42,34,6,6,6,598,1693,129,528,186,
+ 360,360,460,6,6,793,957,726,656,6,
+ 390,360,360,573,195,195,289,653,227,1284,
+ 1284,86,86,511,511,195,195,1187,6,643,
+ 1284,1284,86,86,511,511,360,573,86,290,
+ 728,510,759,752,14,19,15,416,42,46,
+ 195,1187,827,867,1005,1284,1005,86,256,511,
+ 752,14,19,15,416,42,45,752,14,19,
+ 15,416,42,44,124,1005,192,907,495,55,
+ 162,1739,255,1005,184,112,183,573,169,1027,
+ 149,1752,337,573,283,763,573,250,210,317,
+ 318,195,573,643,1005,202,1244,195,789,698,
+ 195,573,1244,203,790,1244,195,573,445,285,
+ 6,1244,445,794,795,1187,821,573,653,637,
+ 190,1187,1714,822,278,405,190,1253,1790,190,
+ 486,1187,200,1370,1790,190,1664,1790,17,86,
+ 1758,1690,1666,1790,1758,480,255,270,999,124,
+ 231,863,255,1027,400,1752,526,644,1859,1608,
+ 1859,1752,255,1859,265,1176,601,268,1859,1348,
+ 226,1752,250,210,317,318,206,1859,573,1859,
+ 206,1859,1859,1859,1859,1859,1859,1750,1859,1859,
+ 1351,1771,195,1859,1552,1771,1859,1244,1859,1859,
+ 1859,1859,1859,1859,1859,1859,1859,1859,1859,1859,
+ 1216,1859,1859,1859,1859,1859,1859,1859,1859,1859,
+ 1859,191,1859,0,320,693,0,17,178,0,
+ 18,177,0,1,2082,0,1,2093,0
+ };
+ };
+ public final static char baseAction[] = BaseAction.baseAction;
+ public final int baseAction(int index) { return baseAction[index]; }
+ public final static char lhs[] = baseAction;
+ public final int lhs(int index) { return lhs[index]; };
+
+ public interface TermCheck {
+ public final static byte termCheck[] = {0,
+ 0,1,2,3,4,0,6,7,8,9,
+ 10,11,12,13,14,15,0,17,18,19,
+ 20,21,22,23,24,25,26,27,28,29,
+ 30,31,32,33,34,35,36,0,38,39,
+ 40,41,42,43,44,45,46,47,48,49,
+ 0,51,52,53,0,1,0,3,2,5,
+ 6,7,8,9,10,11,0,0,2,15,
+ 0,0,16,6,7,8,9,10,11,0,
+ 1,2,16,17,18,69,32,33,34,35,
+ 36,54,38,39,40,41,42,43,44,45,
+ 46,47,48,49,0,51,52,53,4,55,
+ 56,0,1,0,3,0,5,6,7,8,
+ 9,10,11,0,74,0,15,61,0,6,
+ 7,8,9,10,11,64,65,66,67,0,
+ 70,71,76,32,33,34,35,36,0,38,
+ 39,40,41,42,43,44,45,46,47,48,
+ 49,0,51,52,53,0,55,56,0,1,
+ 0,3,0,5,6,7,8,9,10,11,
+ 0,0,1,15,3,0,6,7,8,9,
+ 10,11,64,65,66,67,57,58,73,0,
+ 32,33,34,35,36,0,38,39,40,41,
+ 42,43,44,45,46,47,48,49,37,51,
+ 52,53,74,55,56,0,1,0,3,68,
+ 5,6,7,8,9,10,11,0,0,1,
+ 15,3,0,6,7,8,9,10,11,64,
+ 65,66,67,54,12,13,0,32,33,34,
+ 35,36,0,38,39,40,41,42,43,44,
+ 45,46,47,48,49,37,51,52,53,0,
+ 55,56,0,1,0,3,0,5,6,7,
+ 8,9,10,11,0,0,1,15,3,72,
+ 6,7,8,9,10,11,0,0,1,2,
+ 4,4,0,0,32,33,34,35,36,0,
+ 38,39,40,41,42,43,44,45,46,47,
+ 48,49,37,51,52,53,0,55,56,0,
+ 1,0,3,0,60,6,7,8,9,10,
+ 11,0,0,1,15,3,0,6,7,8,
+ 9,10,11,77,78,0,1,2,62,63,
+ 14,32,33,34,35,36,0,38,39,40,
+ 41,42,43,44,45,46,47,48,49,0,
+ 51,52,53,0,1,2,3,4,5,0,
+ 57,58,89,14,0,12,13,14,15,73,
+ 17,18,19,20,21,22,23,24,25,26,
+ 27,28,29,30,31,0,0,1,2,4,
+ 0,5,2,68,4,0,0,1,2,3,
+ 4,5,16,0,0,1,16,3,12,13,
+ 14,15,59,17,18,19,20,21,22,23,
+ 24,25,26,27,28,29,30,31,69,0,
+ 0,1,2,0,4,2,50,0,5,0,
+ 1,2,3,4,5,0,16,62,63,16,
+ 5,12,13,14,0,59,17,18,19,20,
+ 21,22,23,24,25,26,27,28,29,30,
+ 31,0,0,0,0,0,37,6,7,8,
+ 9,10,11,50,0,0,15,0,0,16,
+ 0,16,5,5,55,50,0,0,0,54,
+ 16,4,0,32,33,34,35,36,54,38,
+ 39,40,41,42,43,44,45,46,47,48,
+ 49,0,1,2,3,4,5,37,0,57,
+ 58,57,58,12,13,14,61,50,17,18,
+ 19,20,21,22,23,24,25,26,27,28,
+ 29,30,31,68,0,1,2,0,4,62,
+ 63,0,5,75,0,1,2,3,4,5,
+ 16,0,0,12,13,0,12,13,14,0,
+ 59,17,18,19,20,21,22,23,24,25,
+ 26,27,28,29,30,31,0,0,2,0,
+ 4,0,0,0,1,0,4,0,1,2,
+ 3,4,16,12,13,0,59,0,0,12,
+ 13,14,0,59,17,18,19,20,21,22,
+ 23,24,25,26,27,28,29,30,31,0,
+ 0,70,71,0,5,5,0,0,1,2,
+ 3,4,0,54,57,58,0,0,1,12,
+ 13,14,60,56,17,18,19,20,21,22,
+ 23,24,25,26,27,28,29,30,31,0,
+ 1,2,3,4,37,0,1,72,3,50,
+ 50,12,13,14,0,0,17,18,19,20,
+ 21,22,23,24,25,26,27,28,29,30,
+ 31,0,1,2,3,4,37,60,0,1,
+ 0,3,0,12,13,14,0,0,17,18,
+ 19,20,21,22,23,24,25,26,27,28,
+ 29,30,31,0,1,2,3,4,0,0,
+ 0,0,0,0,0,12,13,14,0,37,
+ 17,18,19,20,21,22,23,24,25,26,
+ 27,28,29,30,31,0,1,2,3,4,
+ 0,0,0,0,0,37,37,12,13,14,
+ 37,37,17,18,19,20,21,22,23,24,
+ 25,26,27,28,29,30,31,0,1,2,
+ 3,4,60,0,0,0,0,37,37,12,
+ 13,14,0,0,17,18,19,20,21,22,
+ 23,24,25,26,27,28,29,30,31,0,
+ 1,2,3,4,0,0,0,0,0,0,
+ 0,12,13,14,0,0,17,18,19,20,
+ 21,22,23,24,25,26,27,28,29,30,
+ 31,0,1,2,3,4,54,0,0,0,
+ 0,0,0,12,13,14,0,0,17,18,
+ 19,20,21,22,23,24,25,26,27,28,
+ 29,30,31,0,0,2,2,4,5,6,
+ 7,8,9,10,11,69,0,0,15,16,
+ 16,5,0,0,0,79,80,81,82,83,
+ 84,85,86,87,88,32,33,34,35,36,
+ 0,0,2,0,4,5,6,7,8,9,
+ 10,11,0,50,0,15,16,16,6,7,
+ 8,9,10,11,0,0,0,15,0,5,
+ 54,0,32,33,34,35,36,0,0,0,
+ 0,16,0,0,32,33,34,35,36,0,
+ 50,75,0,0,0,6,7,8,9,10,
+ 11,0,61,0,15,0,0,6,7,8,
+ 9,10,11,0,0,0,15,0,0,55,
+ 0,32,33,34,35,36,0,0,0,0,
+ 0,0,0,32,33,34,35,36,6,7,
+ 8,9,10,11,0,0,0,15,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,32,33,34,35,36,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0
+ };
+ };
+ public final static byte termCheck[] = TermCheck.termCheck;
+ public final int termCheck(int index) { return termCheck[index]; }
+
+ public interface TermAction {
+ public final static char termAction[] = {0,
+ 1859,1134,1602,1135,1588,1,2070,2071,2072,2180,
+ 524,2181,1572,1565,1595,2020,208,1077,641,631,
+ 1869,1870,1871,1872,1558,481,2167,2168,2169,575,
+ 418,387,2021,2019,2073,2022,2018,87,2025,2030,
+ 2029,2027,2028,2026,2031,2032,2024,2033,2034,2035,
+ 69,1259,1189,382,1859,1,266,1,1463,189,
+ 1,1,1,1,1,1,31,246,1421,1,
+ 61,58,553,1,1,1,1,1,1,1,
+ 2082,1418,1619,1883,1884,1058,1,1,1,1,
+ 1,488,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1859,1,1,1,1274,189,
+ 2053,1859,1,1859,1,1859,189,1,1,1,
+ 1,1,1,1859,610,67,1,1121,60,2070,
+ 2071,2072,2180,524,2181,1442,1431,1410,715,53,
+ 1384,1353,1066,1,1,1,1,1,70,1,
+ 1,1,1,1,1,1,1,1,1,1,
+ 1,1859,1,1,1,1859,189,2053,1859,1,
+ 1859,1,1859,189,1,1,1,1,1,1,
+ 247,1859,2038,1,2039,59,1,1,1,1,
+ 1,1,1442,1431,1410,715,1084,1139,581,252,
+ 1,1,1,1,1,1859,1,1,1,1,
+ 1,1,1,1,1,1,1,1,1361,1,
+ 1,1,610,189,2053,1859,1,65,1,1168,
+ 188,1,1,1,1,1,1,245,1859,2038,
+ 1,2039,50,2070,2071,2072,2180,524,2181,1442,
+ 1431,1410,715,1615,1374,791,1859,1,1,1,
+ 1,1,1859,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1465,1,1,1,1859,
+ 188,2053,1859,1,1,1,71,189,1,1,
+ 1,1,1,1,248,1859,2038,1,2039,1196,
+ 2070,2071,2072,2180,524,2181,47,1859,2082,1418,
+ 1677,1545,1859,1859,1,1,1,1,1,1859,
+ 1,1,1,1,1,1,1,1,1,1,
+ 1,1,1467,1,1,1,68,189,2053,1859,
+ 2037,1859,2036,57,2113,2070,2071,2072,2180,524,
+ 2181,249,1859,1888,2020,1889,63,2070,2071,2072,
+ 2180,524,2181,397,1730,1,2082,1418,1670,1653,
+ 1294,2021,2019,2073,2022,2018,1859,2025,2030,2029,
+ 2027,2028,2026,2031,2032,2024,2033,2034,2035,64,
+ 1259,1189,382,1,1876,1602,1877,1522,1862,1859,
+ 1084,1139,1843,1294,1859,1572,1565,1595,673,581,
+ 1077,641,631,1869,1870,1871,1872,1558,481,2167,
+ 2168,2169,575,418,387,49,1,1853,1223,1677,
+ 261,1864,1454,1113,1,1859,1859,1876,1602,1877,
+ 1536,1862,553,1859,205,2038,553,2039,1572,1565,
+ 1595,1019,1861,1077,641,631,1869,1870,1871,1872,
+ 1558,481,2167,2168,2169,575,418,387,751,1859,
+ 258,2082,1223,1,1,1454,1863,1859,1864,1,
+ 1876,1602,1877,1588,27,1859,553,1670,1653,553,
+ 1864,1572,1565,1595,28,1861,1077,641,631,1869,
+ 1870,1871,1872,1558,481,2167,2168,2169,575,418,
+ 387,127,56,267,55,1859,1604,2070,2071,2072,
+ 2180,524,2181,1863,320,199,2020,1859,1,553,
+ 1859,1039,1864,1868,27,1863,1859,48,1859,1777,
+ 1844,1677,1859,2021,2019,2073,2022,2018,533,2025,
+ 2030,2029,2027,2028,2026,2031,2032,2024,2033,2034,
+ 2035,1859,1876,1602,1877,1588,1862,1267,1859,1084,
+ 1139,1084,1139,1572,1565,1595,1466,1863,1077,641,
+ 631,1869,1870,1871,1872,1558,481,2167,2168,2169,
+ 575,418,387,1149,264,2082,1223,1859,1545,1670,
+ 1653,52,1862,1867,1859,1876,1602,1877,1529,1862,
+ 553,62,1859,1374,791,1859,1572,1565,1595,1859,
+ 1861,1077,641,631,1869,1870,1871,1872,1558,481,
+ 2167,2168,2169,575,418,387,264,54,1454,28,
+ 1545,51,1,1859,2094,1859,1274,1859,1,1,
+ 1,1,553,1374,791,66,1861,1859,1859,1,
+ 1,1,1859,1861,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,1,1,
+ 1,1384,1353,1859,89,1864,1859,1,1876,1602,
+ 1877,1588,1859,1886,1084,1139,1859,1,1856,1572,
+ 1565,1595,2113,2166,1077,641,631,1869,1870,1871,
+ 1872,1558,481,2167,2168,2169,575,418,387,1859,
+ 1876,1602,1877,1588,1604,1859,2038,1196,2039,89,
+ 1863,1572,1565,1595,1859,1859,1077,641,631,1869,
+ 1870,1871,1872,1558,481,2167,2168,2169,575,418,
+ 387,1859,1876,1602,1877,1588,1604,2113,204,1281,
+ 1859,1281,316,1572,1565,1595,1859,1859,1077,641,
+ 631,1869,1870,1871,1872,1558,481,2167,2168,2169,
+ 575,418,387,1859,1876,1603,1877,1588,314,312,
+ 1859,1859,1,41,186,1572,1565,1595,1859,1267,
+ 1077,641,631,1869,1870,1871,1872,1558,481,2167,
+ 2168,2169,575,418,387,1859,1876,1613,1877,1588,
+ 185,187,1859,1859,1859,1267,1267,1572,1565,1595,
+ 1267,1546,1077,641,631,1869,1870,1871,1872,1558,
+ 481,2167,2168,2169,575,418,387,1859,1876,1614,
+ 1877,1588,2112,1859,1859,1859,1859,1547,1548,1572,
+ 1565,1595,204,1859,1077,641,631,1869,1870,1871,
+ 1872,1558,481,2167,2168,2169,575,418,387,1859,
+ 1876,1638,1877,1588,1859,1859,42,1859,1859,1859,
+ 1859,1572,1565,1595,1859,1859,1077,641,631,1869,
+ 1870,1871,1872,1558,481,2167,2168,2169,575,418,
+ 387,1,1876,1602,1877,1588,2977,1859,1859,1859,
+ 1859,1859,1859,1572,1565,1595,1859,1859,1077,641,
+ 631,1869,1870,1871,1872,1558,481,2167,2168,2169,
+ 575,418,387,17,219,1847,1464,1847,1847,178,
+ 178,178,178,178,178,979,1859,1859,178,1847,
+ 553,1868,1859,1859,1859,959,939,919,899,879,
+ 839,859,819,799,771,178,178,178,178,178,
+ 18,284,1850,1859,1850,1850,177,177,177,177,
+ 177,177,128,1847,1859,177,1850,1094,2070,2071,
+ 2072,2180,524,2181,1859,217,1859,2020,1859,1866,
+ 1302,1859,177,177,177,177,177,1859,1859,1859,
+ 1859,553,1859,1859,2021,2019,2073,2022,2018,129,
+ 1850,1867,1859,1859,1859,2070,2071,2072,2180,524,
+ 2181,130,1617,1859,2020,1859,1859,2070,2071,2072,
+ 2180,524,2181,1859,1859,1859,2020,1859,1859,1865,
+ 1859,2021,2019,2073,2022,2018,1859,1859,1859,1859,
+ 1859,1859,131,2021,2019,2073,2022,2018,2070,2071,
+ 2072,2180,524,2181,1859,1859,1859,2020,1859,1859,
+ 1859,1859,1859,1859,1859,1859,1859,1859,1859,1859,
+ 1859,1859,1859,1859,2021,2019,2073,2022,2018
+ };
+ };
+ public final static char termAction[] = TermAction.termAction;
+ public final int termAction(int index) { return termAction[index]; }
+
+ public interface Asb {
+ public final static char asb[] = {0,
+ 250,1,142,41,142,142,142,142,142,142,
+ 142,142,142,142,142,142,55,3,459,456,
+ 463,461,469,467,471,470,473,472,10,142,
+ 55,55,55,55,240,240,339,55,403,403,
+ 345,142,142,142,142,142,142,142,142,142,
+ 142,142,142,142,142,142,142,142,142,142,
+ 142,142,142,142,142,142,142,142,142,142,
+ 142,142,240,240,240,240,131,343,133,370,
+ 238,237,311,48,323,323,129,129,323,129,
+ 323,75,191,191,240,45,456,456,461,461,
+ 461,461,459,459,467,463,463,470,469,505,
+ 472,471,444,444,444,444,107,339,331,136,
+ 45,98,166,240,412,373,166,484,278,484,
+ 278,406,484,142,107,331,98,98,45,165,
+ 133,240,337,75,239,375,45,166,278,278,
+ 278,278,406,406,408,275,107,98,331,142,
+ 142,45,166,370,500,499,343,375,240,278,
+ 308,243,278,278,308,408,507,408,406,308,
+ 105,510,403,142,274,107,331,45,45,240,
+ 412,373,337,308,245,308,308,142,403,408,
+ 109,45,403,142,408,375,480,142,479,161,
+ 343,308,45,308,240,239,245,142,161,404
+ };
+ };
+ public final static char asb[] = Asb.asb;
+ public final int asb(int index) { return asb[index]; }
+
+ public interface Asr {
+ public final static byte asr[] = {0,
+ 89,0,75,16,2,61,76,17,18,14,
+ 4,12,13,62,63,57,58,64,65,66,
+ 67,70,71,72,73,74,77,78,55,69,
+ 79,80,81,82,83,85,84,86,87,88,
+ 68,50,89,54,59,5,0,5,68,54,
+ 59,50,75,16,19,20,21,22,23,2,
+ 17,18,14,4,12,13,24,25,26,27,
+ 28,29,30,31,3,1,51,52,53,46,
+ 38,43,41,42,40,39,44,45,47,48,
+ 49,36,33,15,32,35,34,6,7,8,
+ 10,9,11,0,5,55,16,61,17,18,
+ 14,4,12,13,24,25,19,29,30,31,
+ 2,20,21,22,23,26,27,28,1,3,
+ 37,0,59,5,15,6,7,8,9,10,
+ 11,20,21,22,23,26,27,28,3,17,
+ 18,14,12,13,24,25,19,29,30,31,
+ 4,2,1,0,15,59,5,17,18,14,
+ 4,12,13,24,25,19,29,30,31,2,
+ 1,3,20,21,22,23,26,27,28,0,
+ 7,15,36,8,35,34,33,6,32,9,
+ 10,11,61,76,17,18,14,12,13,62,
+ 63,57,58,64,65,66,67,70,71,72,
+ 73,74,77,78,69,79,80,81,82,83,
+ 84,85,86,87,88,4,2,16,54,50,
+ 5,0,75,5,4,1,2,68,0,19,
+ 20,21,22,23,1,3,2,17,18,14,
+ 4,12,13,24,25,26,27,28,29,30,
+ 31,56,0,69,16,61,0,32,38,6,
+ 39,51,33,40,34,41,42,35,7,43,
+ 44,15,52,36,53,45,46,8,47,48,
+ 49,1,3,9,10,11,56,55,5,0,
+ 46,38,43,41,42,40,39,44,45,47,
+ 48,49,68,75,36,33,15,32,35,34,
+ 6,7,8,9,10,11,54,1,5,50,
+ 2,16,4,0,5,50,19,20,21,22,
+ 23,1,3,2,17,18,14,4,12,13,
+ 24,25,26,27,28,29,30,31,0,4,
+ 2,16,50,5,32,38,6,39,51,33,
+ 40,34,41,42,35,7,43,44,15,52,
+ 36,53,45,46,8,47,48,49,9,10,
+ 11,60,3,1,0,1,3,5,55,54,
+ 0,32,38,6,39,51,33,40,34,41,
+ 42,35,7,43,44,15,52,36,53,45,
+ 46,8,47,48,49,1,3,9,10,11,
+ 60,4,0,69,79,80,81,82,83,84,
+ 85,86,87,88,37,4,62,63,12,13,
+ 58,57,64,65,66,67,70,71,14,72,
+ 73,74,59,50,55,89,77,78,68,75,
+ 5,54,0,32,6,33,34,35,7,15,
+ 36,8,1,4,9,10,11,37,2,5,
+ 54,50,75,16,68,0,5,54,55,69,
+ 0
+ };
+ };
+ public final static byte asr[] = Asr.asr;
+ public final int asr(int index) { return asr[index]; }
+
+ public interface Nasb {
+ public final static byte nasb[] = {0,
+ 56,8,19,8,19,19,19,19,19,19,
+ 19,19,19,19,19,19,72,8,8,8,
+ 8,8,8,8,8,8,8,8,8,19,
+ 72,72,72,72,70,70,65,1,27,27,
+ 61,73,19,19,19,19,19,19,19,19,
+ 19,19,19,19,19,19,19,19,73,19,
+ 19,19,19,19,19,19,19,19,19,19,
+ 19,19,70,70,70,70,8,78,21,64,
+ 25,25,49,15,50,50,9,9,50,9,
+ 50,45,8,8,70,23,8,8,8,8,
+ 8,8,8,8,8,8,8,8,8,8,
+ 8,8,8,8,8,8,86,66,86,18,
+ 23,31,22,70,76,69,22,8,86,8,
+ 86,86,8,19,18,86,31,31,23,22,
+ 11,70,34,2,8,85,23,22,86,80,
+ 86,80,9,86,29,13,86,31,11,19,
+ 19,23,22,33,25,25,78,85,70,80,
+ 43,40,88,80,43,29,8,8,9,43,
+ 17,8,9,19,59,18,11,23,23,70,
+ 76,69,35,43,52,43,43,19,9,29,
+ 19,23,9,19,29,84,41,19,8,52,
+ 78,43,23,43,70,70,52,19,37,8
+ };
+ };
+ public final static byte nasb[] = Nasb.nasb;
+ public final int nasb(int index) { return nasb[index]; }
+
+ public interface Nasr {
+ public final static char nasr[] = {0,
+ 4,79,78,77,76,75,74,0,32,0,
+ 23,0,91,0,94,0,69,8,4,0,
+ 8,4,21,0,28,0,71,0,54,0,
+ 61,0,20,8,47,46,40,38,0,8,
+ 70,0,30,0,64,65,66,67,55,33,
+ 0,8,40,38,0,8,85,0,93,0,
+ 8,86,0,20,8,47,46,0,8,20,
+ 0,27,8,31,0,8,22,52,0,59,
+ 8,27,0,88,22,8,0,8,27,51,
+ 0
+ };
+ };
+ public final static char nasr[] = Nasr.nasr;
+ public final int nasr(int index) { return nasr[index]; }
+
+ public interface TerminalIndex {
+ public final static char terminalIndex[] = {0,
+ 85,2,86,9,87,48,64,76,96,97,
+ 98,10,11,8,69,1,6,7,68,81,
+ 82,83,84,12,13,93,94,95,100,101,
+ 102,44,55,60,63,72,3,47,52,56,
+ 61,62,66,67,74,75,78,79,80,90,
+ 54,70,73,42,91,107,16,17,89,30,
+ 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;
+ public final int terminalIndex(int index) { return terminalIndex[index]; }
+
+ public interface NonterminalIndex {
+ public final static char nonterminalIndex[] = {0,
+ 0,0,0,115,119,120,121,0,122,123,
+ 124,125,126,127,128,129,130,131,132,111,
+ 110,136,143,0,0,0,154,163,0,112,
+ 114,135,142,0,0,0,159,161,0,162,
+ 0,0,0,134,172,173,174,0,117,151,
+ 153,160,169,0,145,150,0,0,152,164,
+ 167,168,171,146,147,148,149,158,175,113,
+ 116,118,133,137,138,139,140,141,144,156,
+ 0,0,157,166,109,0,155,165,170,176,
+ 177,0,178,179,0,0,0,0,0,0,
+ 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;
+ public final int nonterminalIndex(int index) { return nonterminalIndex[index]; }
+
+ public interface ScopePrefix {
+ public final static char scopePrefix[] = {
+ 208,118,57,67,125,145,151,188,26,33,
+ 85,103,157,162,73,6,12,16,38,81,
+ 50,135,204,226,230,50,50,197,50,1,
+ 1,1,42,45,90,113,45,234,20,139,
+ 179,216,131,167,167,167,167,167,93,93,
+ 93
+ };
+ };
+ public final static char scopePrefix[] = ScopePrefix.scopePrefix;
+ public final int scopePrefix(int index) { return scopePrefix[index]; }
+
+ public interface ScopeSuffix {
+ public final static char scopeSuffix[] = {
+ 31,31,4,4,31,31,31,194,31,10,
+ 4,10,31,31,78,10,10,10,10,4,
+ 4,133,10,10,4,54,78,201,63,4,
+ 4,4,10,48,4,10,116,10,23,142,
+ 182,219,133,169,171,173,175,177,100,95,
+ 108
+ };
+ };
+ public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
+ public final int scopeSuffix(int index) { return scopeSuffix[index]; }
+
+ public interface ScopeLhs {
+ public final static char scopeLhs[] = {
+ 4,66,28,28,66,64,64,101,56,48,
+ 28,43,64,64,28,5,5,5,48,28,
+ 28,51,5,4,4,28,28,18,28,94,
+ 93,92,46,63,28,40,50,2,69,51,
+ 102,4,51,78,77,76,75,74,43,41,
+ 43
+ };
+ };
+ public final static char scopeLhs[] = ScopeLhs.scopeLhs;
+ public final int scopeLhs(int index) { return scopeLhs[index]; }
+
+ public interface ScopeLa {
+ public final static byte scopeLa[] = {
+ 55,55,59,59,55,55,55,95,55,50,
+ 59,50,55,55,20,50,50,50,50,59,
+ 59,75,50,50,59,4,20,68,15,59,
+ 59,59,50,2,59,50,1,50,69,1,
+ 101,50,75,3,51,52,52,46,2,2,
+ 2
+ };
+ };
+ public final static byte scopeLa[] = ScopeLa.scopeLa;
+ public final int scopeLa(int index) { return scopeLa[index]; }
+
+ public interface ScopeStateSet {
+ public final static byte scopeStateSet[] = {
+ 36,21,25,25,21,21,21,-1,95,29,
+ 25,11,21,21,25,36,36,36,29,25,
+ 25,5,36,36,36,25,25,69,25,19,
+ 1,3,29,31,25,11,13,36,96,5,
+ -1,36,5,22,22,22,22,22,11,11,
+ 11
+ };
+ };
+ public final static byte scopeStateSet[] = ScopeStateSet.scopeStateSet;
+ public final int scopeStateSet(int index) { return scopeStateSet[index]; }
+
+ public interface ScopeRhs {
+ public final static char scopeRhs[] = {0,
+ 151,16,0,110,0,156,2,31,0,111,
+ 0,156,2,30,0,156,2,29,0,197,
+ 115,0,31,150,0,161,179,115,37,0,
+ 112,0,167,115,2,153,0,167,115,2,
+ 0,170,2,0,159,115,0,172,0,191,
+ 115,16,0,9,110,0,126,15,191,115,
+ 16,0,69,132,110,0,126,191,115,15,
+ 16,0,191,115,15,16,0,132,110,0,
+ 126,15,16,0,126,191,115,16,0,126,
+ 16,0,147,0,2,0,165,111,0,2,
+ 111,0,167,115,2,147,0,2,0,164,
+ 111,0,157,2,0,159,0,161,189,115,
+ 37,139,51,0,161,189,115,37,51,0,
+ 134,0,113,0,194,115,134,0,115,134,
+ 0,155,113,0,165,115,37,139,53,0,
+ 165,115,37,139,52,0,165,115,37,53,
+ 0,165,115,37,52,0,186,0,149,0,
+ 148,0,147,0,146,0,145,0,204,94,
+ 0,77,2,114,111,113,0,204,127,138,
+ 2,98,0,53,0,0,138,78,124,0,
+ 29,131,0,156,2,19,0,161,179,115,
+ 37,127,156,2,0,156,2,0,111,3,
+ 0,118,0,112,0,193,2,111,0,138,
+ 16,111,0,138,2,0
+ };
+ };
+ public final static char scopeRhs[] = ScopeRhs.scopeRhs;
+ public final int scopeRhs(int index) { return scopeRhs[index]; }
+
+ public interface ScopeState {
+ public final static char scopeState[] = {0,
+ 1334,0,513,0,1704,1790,1698,1695,1689,0,
+ 1544,480,1302,1418,1285,1223,1187,0,524,0,
+ 1254,573,360,0,1469,1210,1176,601,480,1739,
+ 1223,1187,1454,1284,0,1536,1529,1522,610,397,
+ 1196,581,1384,1353,1294,1139,1084,1442,1431,1410,
+ 715,1677,1670,1653,1374,791,1077,641,1595,1588,
+ 1572,1565,1558,481,631,575,418,387,1149,1113,
+ 1094,1058,1039,1019,999,729,1168,693,673,553,
+ 979,959,939,919,899,879,859,839,819,799,
+ 771,360,488,653,751,460,533,440,0
+ };
+ };
+ public final static char scopeState[] = ScopeState.scopeState;
+ public final int scopeState(int index) { return scopeState[index]; }
+
+ public interface InSymb {
+ public final static char inSymb[] = {0,
+ 0,192,115,180,31,30,29,19,25,24,
+ 13,12,4,14,18,17,2,111,116,114,
+ 118,117,120,119,122,121,124,123,112,54,
+ 2,2,2,2,156,138,134,115,76,61,
+ 2,16,13,12,63,62,4,67,66,65,
+ 64,57,58,14,71,70,73,72,78,77,
+ 74,88,87,86,84,85,83,82,81,80,
+ 79,69,156,156,156,156,127,115,16,2,
+ 154,153,181,10,182,183,53,52,184,51,
+ 185,186,1,3,193,138,114,114,117,117,
+ 117,117,116,116,119,118,118,121,120,138,
+ 123,122,127,127,127,127,37,159,4,15,
+ 126,115,4,170,115,2,16,139,37,139,
+ 37,37,139,68,115,4,115,115,126,191,
+ 168,167,129,115,169,115,151,4,37,115,
+ 37,115,115,37,179,115,37,115,168,191,
+ 15,126,4,2,145,147,115,54,167,115,
+ 165,134,166,115,165,189,139,190,115,161,
+ 54,197,61,16,198,115,168,126,126,157,
+ 115,2,159,165,115,165,161,69,54,189,
+ 69,151,61,16,179,115,194,68,157,2,
+ 115,161,151,161,167,195,54,68,159,54
+ };
+ };
+ public final static char inSymb[] = InSymb.inSymb;
+ public final int inSymb(int index) { return inSymb[index]; }
+
+ public interface Name {
+ public final static String name[] = {
+ "",
+ "[",
+ "(",
+ "{",
+ ".",
+ "->",
+ "++",
+ "--",
+ "&",
+ "*",
+ "+",
+ "-",
+ "~",
+ "!",
+ "/",
+ "%",
+ ">>",
+ "<<",
+ "<",
+ ">",
+ "<=",
+ ">=",
+ "==",
+ "!=",
+ "^",
+ "|",
+ "&&",
+ "||",
+ "?",
+ ":",
+ "...",
+ "=",
+ "*=",
+ "/=",
+ "%=",
+ "+=",
+ "-=",
+ ">>=",
+ "<<=",
+ "&=",
+ "^=",
+ "|=",
+ ",",
+ "$empty",
+ "auto",
+ "break",
+ "case",
+ "char",
+ "const",
+ "continue",
+ "default",
+ "do",
+ "double",
+ "else",
+ "enum",
+ "extern",
+ "float",
+ "for",
+ "goto",
+ "if",
+ "inline",
+ "int",
+ "long",
+ "register",
+ "restrict",
+ "return",
+ "short",
+ "signed",
+ "sizeof",
+ "static",
+ "struct",
+ "switch",
+ "typedef",
+ "union",
+ "unsigned",
+ "void",
+ "volatile",
+ "while",
+ "_Bool",
+ "_Complex",
+ "_Imaginary",
+ "integer",
+ "floating",
+ "charconst",
+ "stringlit",
+ "identifier",
+ "Completion",
+ "EndOfCompletion",
+ "Invalid",
+ "RightBracket",
+ "RightParen",
+ "RightBrace",
+ "SemiColon",
+ "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",
+ "]",
+ ")",
+ "}",
+ ";",
+ "expression",
+ "postfix_expression",
+ "member_name",
+ "type_name",
+ "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",
+ "conditional_expression",
+ "assignment_expression",
+ "expression_list_actual",
+ "constant_expression",
+ "identifier_or_typedefname",
+ "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",
+ "typedef_name_in_declspec",
+ "initializer",
+ "declarator",
+ "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",
+ "designated_initializer",
+ "designation",
+ "designator_list",
+ "designator",
+ "layout_qualifier"
+ };
+ };
+ public final static String name[] = Name.name;
+ public final String name(int index) { return name[index]; }
+
+ public final static int
+ ERROR_SYMBOL = 56,
+ SCOPE_UBOUND = 50,
+ SCOPE_SIZE = 51,
+ MAX_NAME_LENGTH = 38;
+
+ public final int getErrorSymbol() { return ERROR_SYMBOL; }
+ public final int getScopeUbound() { return SCOPE_UBOUND; }
+ public final int getScopeSize() { return SCOPE_SIZE; }
+ public final int getMaxNameLength() { return MAX_NAME_LENGTH; }
+
+ public final static int
+ NUM_STATES = 220,
+ NT_OFFSET = 107,
+ LA_STATE_OFFSET = 2218,
+ MAX_LA = 2,
+ NUM_RULES = 359,
+ NUM_NONTERMINALS = 120,
+ NUM_SYMBOLS = 227,
+ SEGMENT_SIZE = 8192,
+ START_STATE = 1307,
+ IDENTIFIER_SYMBOL = 0,
+ EOFT_SYMBOL = 89,
+ EOLT_SYMBOL = 89,
+ ACCEPT_ACTION = 1843,
+ ERROR_ACTION = 1859;
+
+ public final static boolean BACKTRACK = true;
+
+ public final int getNumStates() { return NUM_STATES; }
+ public final int getNtOffset() { return NT_OFFSET; }
+ public final int getLaStateOffset() { return LA_STATE_OFFSET; }
+ public final int getMaxLa() { return MAX_LA; }
+ public final int getNumRules() { return NUM_RULES; }
+ public final int getNumNonterminals() { return NUM_NONTERMINALS; }
+ public final int getNumSymbols() { return NUM_SYMBOLS; }
+ public final int getSegmentSize() { return SEGMENT_SIZE; }
+ public final int getStartState() { return START_STATE; }
+ public final int getStartSymbol() { return lhs[0]; }
+ public final int getIdentifierSymbol() { return IDENTIFIER_SYMBOL; }
+ public final int getEoftSymbol() { return EOFT_SYMBOL; }
+ public final int getEoltSymbol() { return EOLT_SYMBOL; }
+ public final int getAcceptAction() { return ACCEPT_ACTION; }
+ public final int getErrorAction() { return ERROR_ACTION; }
+ public final boolean isValidForParser() { return isValidForParser; }
+ public final boolean getBacktrack() { return BACKTRACK; }
+
+ public final int originalState(int state) {
+ return -baseCheck[state];
+ }
+ public final int asi(int state) {
+ return asb[originalState(state)];
+ }
+ public final int nasi(int state) {
+ return nasb[originalState(state)];
+ }
+ public final int inSymbol(int state) {
+ return inSymb[originalState(state)];
+ }
+
+ public final int ntAction(int state, int sym) {
+ return baseAction[state + sym];
+ }
+
+ public final int tAction(int state, int sym) {
+ int i = baseAction[state],
+ k = i + sym;
+ return termAction[termCheck[k] == sym ? k : i];
+ }
+ public final int lookAhead(int la_state, int sym) {
+ int k = la_state + sym;
+ return termAction[termCheck[k] == sym ? k : la_state];
+ }
+}
diff --git a/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
new file mode 100644
index 00000000000..7ff98639ba5
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCNoCastExpressionParsersym.java
@@ -0,0 +1,238 @@
+/*******************************************************************************
+* Copyright (c) 2006, 2008 IBM Corporation and others.
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+*
+* Contributors:
+* IBM Corporation - initial API and implementation
+*********************************************************************************/
+
+// This file was generated by LPG
+
+package org.eclipse.cdt.internal.core.dom.parser.upc;
+
+public interface UPCNoCastExpressionParsersym {
+ public final static int
+ TK_auto = 32,
+ TK_break = 90,
+ TK_case = 91,
+ TK_char = 38,
+ TK_const = 6,
+ TK_continue = 92,
+ TK_default = 93,
+ TK_do = 94,
+ TK_double = 39,
+ TK_else = 95,
+ TK_enum = 51,
+ TK_extern = 33,
+ TK_float = 40,
+ TK_for = 96,
+ TK_goto = 97,
+ TK_if = 98,
+ TK_inline = 34,
+ TK_int = 41,
+ TK_long = 42,
+ TK_register = 35,
+ TK_restrict = 7,
+ TK_return = 99,
+ TK_short = 43,
+ TK_signed = 44,
+ TK_sizeof = 19,
+ TK_static = 15,
+ TK_struct = 52,
+ TK_switch = 100,
+ TK_typedef = 36,
+ TK_union = 53,
+ TK_unsigned = 45,
+ TK_void = 46,
+ TK_volatile = 8,
+ TK_while = 101,
+ TK__Bool = 47,
+ TK__Complex = 48,
+ TK__Imaginary = 49,
+ TK_integer = 20,
+ TK_floating = 21,
+ TK_charconst = 22,
+ TK_stringlit = 23,
+ TK_identifier = 1,
+ TK_Completion = 3,
+ TK_EndOfCompletion = 5,
+ TK_Invalid = 102,
+ TK_LeftBracket = 16,
+ TK_LeftParen = 2,
+ TK_LeftBrace = 37,
+ TK_Dot = 61,
+ TK_Arrow = 76,
+ TK_PlusPlus = 17,
+ TK_MinusMinus = 18,
+ TK_And = 14,
+ TK_Star = 4,
+ TK_Plus = 12,
+ TK_Minus = 13,
+ TK_Tilde = 24,
+ TK_Bang = 25,
+ TK_Slash = 62,
+ TK_Percent = 63,
+ TK_RightShift = 57,
+ TK_LeftShift = 58,
+ 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 = 60,
+ 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 = 54,
+ TK_RightBracket = 59,
+ TK_RightParen = 50,
+ TK_RightBrace = 55,
+ TK_SemiColon = 75,
+ TK_MYTHREAD = 26,
+ TK_THREADS = 27,
+ TK_UPC_MAX_BLOCKSIZE = 28,
+ TK_relaxed = 9,
+ TK_shared = 10,
+ TK_strict = 11,
+ 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 = 56,
+ TK_EOF_TOKEN = 89;
+
+ public final static String orderedTerminalSymbols[] = {
+ "",
+ "identifier",
+ "LeftParen",
+ "Completion",
+ "Star",
+ "EndOfCompletion",
+ "const",
+ "restrict",
+ "volatile",
+ "relaxed",
+ "shared",
+ "strict",
+ "Plus",
+ "Minus",
+ "And",
+ "static",
+ "LeftBracket",
+ "PlusPlus",
+ "MinusMinus",
+ "sizeof",
+ "integer",
+ "floating",
+ "charconst",
+ "stringlit",
+ "Tilde",
+ "Bang",
+ "MYTHREAD",
+ "THREADS",
+ "UPC_MAX_BLOCKSIZE",
+ "upc_localsizeof",
+ "upc_blocksizeof",
+ "upc_elemsizeof",
+ "auto",
+ "extern",
+ "inline",
+ "register",
+ "typedef",
+ "LeftBrace",
+ "char",
+ "double",
+ "float",
+ "int",
+ "long",
+ "short",
+ "signed",
+ "unsigned",
+ "void",
+ "_Bool",
+ "_Complex",
+ "_Imaginary",
+ "RightParen",
+ "enum",
+ "struct",
+ "union",
+ "Comma",
+ "RightBrace",
+ "ERROR_TOKEN",
+ "RightShift",
+ "LeftShift",
+ "RightBracket",
+ "DotDotDot",
+ "Dot",
+ "Slash",
+ "Percent",
+ "LT",
+ "GT",
+ "LE",
+ "GE",
+ "Colon",
+ "Assign",
+ "EQ",
+ "NE",
+ "Caret",
+ "Or",
+ "AndAnd",
+ "SemiColon",
+ "Arrow",
+ "OrOr",
+ "Question",
+ "StarAssign",
+ "SlashAssign",
+ "PercentAssign",
+ "PlusAssign",
+ "MinusAssign",
+ "RightShiftAssign",
+ "LeftShiftAssign",
+ "AndAssign",
+ "CaretAssign",
+ "OrAssign",
+ "EOF_TOKEN",
+ "break",
+ "case",
+ "continue",
+ "default",
+ "do",
+ "else",
+ "for",
+ "goto",
+ "if",
+ "return",
+ "switch",
+ "while",
+ "Invalid",
+ "upc_barrier",
+ "upc_notify",
+ "upc_fence",
+ "upc_wait",
+ "upc_forall"
+ };
+
+ public final static boolean isValidForParser = true;
+}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParser.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParser.java
index 928741d83bd..a90179442aa 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
@@ -1274,37 +1274,37 @@ public UPCParser(String[] mapFrom) { // constructor
//
// Rule 310: unary_expression ::= upc_localsizeof unary_expression
//
- case 310: { action. consumeExpressionUpcSizeofOperator(IUPCASTUnaryExpression.op_upc_localsizeof); break;
+ case 310: { action. consumeExpressionUnaryOperator(IUPCASTUnaryExpression.op_upc_localsizeof); break;
}
//
// Rule 311: unary_expression ::= upc_localsizeof ( type_name )
//
- case 311: { action. consumeExpressionUpcSizeofTypeName(IUPCASTUnaryExpression.op_upc_localsizeof); break;
+ case 311: { action. consumeExpressionTypeId(IUPCASTUnaryExpression.op_upc_localsizeof); break;
}
//
// Rule 312: unary_expression ::= upc_blocksizeof unary_expression
//
- case 312: { action. consumeExpressionUpcSizeofOperator(IUPCASTUnaryExpression.op_upc_blocksizeof); break;
+ case 312: { action. consumeExpressionUnaryOperator(IUPCASTUnaryExpression.op_upc_blocksizeof); break;
}
//
// Rule 313: unary_expression ::= upc_blocksizeof ( type_name )
//
- case 313: { action. consumeExpressionUpcSizeofTypeName(IUPCASTUnaryExpression.op_upc_blocksizeof); break;
+ case 313: { action. consumeExpressionTypeId(IUPCASTUnaryExpression.op_upc_blocksizeof); break;
}
//
// Rule 314: unary_expression ::= upc_elemsizeof unary_expression
//
- case 314: { action. consumeExpressionUpcSizeofOperator(IUPCASTUnaryExpression.op_upc_elemsizeof); break;
+ case 314: { action. consumeExpressionUnaryOperator(IUPCASTUnaryExpression.op_upc_elemsizeof); break;
}
//
// Rule 315: unary_expression ::= upc_elemsizeof ( type_name )
//
- case 315: { action. consumeExpressionUpcSizeofTypeName(IUPCASTUnaryExpression.op_upc_elemsizeof); break;
+ case 315: { action. consumeExpressionTypeId(IUPCASTUnaryExpression.op_upc_elemsizeof); break;
}
//
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParser.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParser.java
new file mode 100644
index 00000000000..5bc540cc2aa
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParser.java
@@ -0,0 +1,1527 @@
+/*******************************************************************************
+* Copyright (c) 2006, 2008 IBM Corporation and others.
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+*
+* Contributors:
+* IBM Corporation - initial API and implementation
+*********************************************************************************/
+
+// This file was generated by LPG
+
+package org.eclipse.cdt.internal.core.dom.parser.upc;
+
+import lpg.lpgjavaruntime.*;
+
+import java.util.*;
+import org.eclipse.cdt.core.dom.ast.*;
+import org.eclipse.cdt.core.dom.lrparser.IParser;
+import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
+
+import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
+import org.eclipse.cdt.core.dom.lrparser.action.TokenMap;
+
+import org.eclipse.cdt.core.dom.lrparser.action.c99.C99ASTNodeFactory;
+import org.eclipse.cdt.core.dom.lrparser.action.c99.C99BuildASTParserAction;
+
+import org.eclipse.cdt.core.dom.parser.upc.UPCASTNodeFactory;
+import org.eclipse.cdt.core.dom.parser.upc.UPCParserAction;
+import org.eclipse.cdt.core.dom.upc.ast.IUPCASTKeywordExpression;
+import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSynchronizationStatement;
+import org.eclipse.cdt.core.dom.upc.ast.IUPCASTUnaryExpression;
+
+public class UPCSizeofExpressionParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser
+{
+ private static ParseTable prs = new UPCSizeofExpressionParserprs();
+ private BacktrackingParser btParser;
+
+ public BacktrackingParser getParser() { return btParser; }
+ private void setResult(Object object) { btParser.setSym1(object); }
+ public Object getRhsSym(int i) { return btParser.getSym(i); }
+
+ public int getRhsTokenIndex(int i) { return btParser.getToken(i); }
+ public IToken getRhsIToken(int i) { return super.getIToken(getRhsTokenIndex(i)); }
+
+ public int getRhsFirstTokenIndex(int i) { return btParser.getFirstToken(i); }
+ public IToken getRhsFirstIToken(int i) { return super.getIToken(getRhsFirstTokenIndex(i)); }
+
+ public int getRhsLastTokenIndex(int i) { return btParser.getLastToken(i); }
+ public IToken getRhsLastIToken(int i) { return super.getIToken(getRhsLastTokenIndex(i)); }
+
+ public int getLeftSpan() { return btParser.getFirstToken(); }
+ public IToken getLeftIToken() { return super.getIToken(getLeftSpan()); }
+
+ public int getRightSpan() { return btParser.getLastToken(); }
+ public IToken getRightIToken() { return super.getIToken(getRightSpan()); }
+
+ public int getRhsErrorTokenIndex(int i)
+ {
+ int index = btParser.getToken(i);
+ IToken err = super.getIToken(index);
+ return (err instanceof ErrorToken ? index : 0);
+ }
+ public ErrorToken getRhsErrorIToken(int i)
+ {
+ int index = btParser.getToken(i);
+ IToken err = super.getIToken(index);
+ return (ErrorToken) (err instanceof ErrorToken ? err : null);
+ }
+
+ public UPCSizeofExpressionParser(LexStream lexStream)
+ {
+ super(lexStream);
+
+ try
+ {
+ super.remapTerminalSymbols(orderedTerminalSymbols(), UPCSizeofExpressionParserprs.EOFT_SYMBOL);
+ }
+ catch(NullExportedSymbolsException e) {
+ }
+ catch(NullTerminalSymbolsException e) {
+ }
+ catch(UnimplementedTerminalsException e)
+ {
+ java.util.ArrayList unimplemented_symbols = e.getSymbols();
+ System.out.println("The Lexer will not scan the following token(s):");
+ for (int i = 0; i < unimplemented_symbols.size(); i++)
+ {
+ Integer id = (Integer) unimplemented_symbols.get(i);
+ System.out.println(" " + UPCSizeofExpressionParsersym.orderedTerminalSymbols[id.intValue()]);
+ }
+ System.out.println();
+ }
+ catch(UndefinedEofSymbolException e)
+ {
+ throw new Error(new UndefinedEofSymbolException
+ ("The Lexer does not implement the Eof symbol " +
+ UPCSizeofExpressionParsersym.orderedTerminalSymbols[UPCSizeofExpressionParserprs.EOFT_SYMBOL]));
+ }
+ }
+
+ public String[] orderedTerminalSymbols() { return UPCSizeofExpressionParsersym.orderedTerminalSymbols; }
+ public String getTokenKindName(int kind) { return UPCSizeofExpressionParsersym.orderedTerminalSymbols[kind]; }
+ public int getEOFTokenKind() { return UPCSizeofExpressionParserprs.EOFT_SYMBOL; }
+ public PrsStream getParseStream() { return (PrsStream) this; }
+
+ //
+ // Report error message for given error_token.
+ //
+ public final void reportErrorTokenMessage(int error_token, String msg)
+ {
+ int firsttok = super.getFirstErrorToken(error_token),
+ lasttok = super.getLastErrorToken(error_token);
+ String location = super.getFileName() + ':' +
+ (firsttok > lasttok
+ ? (super.getEndLine(lasttok) + ":" + super.getEndColumn(lasttok))
+ : (super.getLine(error_token) + ":" +
+ super.getColumn(error_token) + ":" +
+ super.getEndLine(error_token) + ":" +
+ super.getEndColumn(error_token)))
+ + ": ";
+ super.reportError((firsttok > lasttok ? ParseErrorCodes.INSERTION_CODE : ParseErrorCodes.SUBSTITUTION_CODE), location, msg);
+ }
+
+ public Object parser()
+ {
+ return parser(null, 0);
+ }
+
+ public Object parser(Monitor monitor)
+ {
+ return parser(monitor, 0);
+ }
+
+ public Object parser(int error_repair_count)
+ {
+ return parser(null, error_repair_count);
+ }
+
+ public Object parser(Monitor monitor, int error_repair_count)
+ {
+ try
+ {
+ btParser = new BacktrackingParser(monitor, (TokenStream) this, prs, (RuleAction) this);
+ }
+ catch (NotBacktrackParseTableException e)
+ {
+ throw new Error(new NotBacktrackParseTableException
+ ("Regenerate UPCSizeofExpressionParserprs.java with -BACKTRACK option"));
+ }
+ catch (BadParseSymFileException e)
+ {
+ throw new Error(new BadParseSymFileException("Bad Parser Symbol File -- UPCSizeofExpressionParsersym.java"));
+ }
+
+ try
+ {
+ return (Object) 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);
+ }
+
+ return null;
+ }
+
+
+private UPCParserAction action;
+
+public UPCSizeofExpressionParser() { // constructor
+}
+
+private void initActions(IASTTranslationUnit tu) {
+ action = new UPCParserAction ( UPCASTNodeFactory.DEFAULT_INSTANCE , this, tu);
+}
+
+
+public void addToken(IToken token) {
+ token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called?
+ super.addToken(token);
+}
+
+
+public IASTCompletionNode parse(IASTTranslationUnit tu) {
+ // this has to be done, or... kaboom!
+ setStreamLength(getSize());
+ initActions(tu);
+
+ final int errorRepairCount = -1; // -1 means full error handling
+ parser(null, errorRepairCount); // do the actual parse
+ super.resetTokenStream(); // allow tokens to be garbage collected
+
+ // the completion node may be null
+ IASTCompletionNode compNode = action.getASTCompletionNode();
+
+ //action = null;
+ //parserAction = null;
+ return compNode;
+}
+
+// uncomment this method to use with backtracking parser
+public List getRuleTokens() {
+ return Collections.unmodifiableList(getTokens().subList(getLeftSpan(), getRightSpan() + 1));
+}
+
+
+public IASTNode getSecondaryParseResult() {
+ return action.getSecondaryParseResult();
+}
+
+public String[] getOrderedTerminalSymbols() {
+ return UPCSizeofExpressionParsersym.orderedTerminalSymbols;
+}
+
+public String getName() {
+ return "UPCSizeofExpressionParser"; //$NON-NLS-1$
+}
+
+
+
+private ITokenMap tokenMap = null;
+
+public void setTokens(List<IToken> tokens) {
+ resetTokenStream();
+ addToken(new Token(null, 0, 0, 0)); // dummy token
+ for(IToken token : tokens) {
+ token.setKind(tokenMap.mapKind(token.getKind()));
+ addToken(token);
+ }
+ addToken(new Token(null, 0, 0, UPCSizeofExpressionParsersym.TK_EOF_TOKEN));
+}
+
+public UPCSizeofExpressionParser(String[] mapFrom) { // constructor
+ tokenMap = new TokenMap(UPCSizeofExpressionParsersym.orderedTerminalSymbols, mapFrom);
+}
+
+
+
+ public void ruleAction(int ruleNumber)
+ {
+ switch (ruleNumber)
+ {
+
+ //
+ // Rule 1: <openscope-ast> ::= $Empty
+ //
+ case 1: { action. openASTScope(); break;
+ }
+
+ //
+ // Rule 10: literal ::= integer
+ //
+ case 10: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant); break;
+ }
+
+ //
+ // Rule 11: literal ::= floating
+ //
+ case 11: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant); break;
+ }
+
+ //
+ // Rule 12: literal ::= charconst
+ //
+ case 12: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant); break;
+ }
+
+ //
+ // Rule 13: literal ::= stringlit
+ //
+ case 13: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal); break;
+ }
+
+ //
+ // Rule 15: primary_expression ::= primary_expression_id
+ //
+ case 15: { action. consumeExpressionID(); break;
+ }
+
+ //
+ // Rule 16: primary_expression ::= ( expression )
+ //
+ case 16: { action. consumeExpressionBracketed(); break;
+ }
+
+ //
+ // Rule 20: postfix_expression ::= postfix_expression [ expression ]
+ //
+ case 20: { action. consumeExpressionArraySubscript(); break;
+ }
+
+ //
+ // Rule 21: postfix_expression ::= postfix_expression ( expression_list_opt )
+ //
+ case 21: { action. consumeExpressionFunctionCall(); break;
+ }
+
+ //
+ // Rule 22: postfix_expression ::= postfix_expression . member_name
+ //
+ case 22: { action. consumeExpressionFieldReference(false); break;
+ }
+
+ //
+ // Rule 23: postfix_expression ::= postfix_expression -> member_name
+ //
+ case 23: { action. consumeExpressionFieldReference(true); break;
+ }
+
+ //
+ // Rule 24: postfix_expression ::= postfix_expression ++
+ //
+ case 24: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break;
+ }
+
+ //
+ // Rule 25: postfix_expression ::= postfix_expression --
+ //
+ case 25: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break;
+ }
+
+ //
+ // Rule 26: postfix_expression ::= ( type_name ) { <openscope-ast> initializer_list comma_opt }
+ //
+ case 26: { action. consumeExpressionTypeIdInitializer(); break;
+ }
+
+ //
+ // Rule 32: unary_expression ::= ++ unary_expression
+ //
+ case 32: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break;
+ }
+
+ //
+ // Rule 33: unary_expression ::= -- unary_expression
+ //
+ case 33: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break;
+ }
+
+ //
+ // Rule 34: unary_expression ::= & cast_expression
+ //
+ case 34: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break;
+ }
+
+ //
+ // Rule 35: unary_expression ::= * cast_expression
+ //
+ case 35: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break;
+ }
+
+ //
+ // Rule 36: unary_expression ::= + cast_expression
+ //
+ case 36: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break;
+ }
+
+ //
+ // Rule 37: unary_expression ::= - cast_expression
+ //
+ case 37: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break;
+ }
+
+ //
+ // Rule 38: unary_expression ::= ~ cast_expression
+ //
+ case 38: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break;
+ }
+
+ //
+ // Rule 39: unary_expression ::= ! cast_expression
+ //
+ case 39: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break;
+ }
+
+ //
+ // Rule 40: unary_expression ::= sizeof unary_expression
+ //
+ case 40: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break;
+ }
+
+ //
+ // Rule 42: cast_expression ::= ( type_name ) cast_expression
+ //
+ case 42: { action. consumeExpressionCast(IASTCastExpression.op_cast); break;
+ }
+
+ //
+ // Rule 44: multiplicative_expression ::= multiplicative_expression * cast_expression
+ //
+ case 44: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break;
+ }
+
+ //
+ // Rule 45: multiplicative_expression ::= multiplicative_expression / cast_expression
+ //
+ case 45: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break;
+ }
+
+ //
+ // Rule 46: multiplicative_expression ::= multiplicative_expression % cast_expression
+ //
+ case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break;
+ }
+
+ //
+ // Rule 48: additive_expression ::= additive_expression + multiplicative_expression
+ //
+ case 48: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break;
+ }
+
+ //
+ // Rule 49: additive_expression ::= additive_expression - multiplicative_expression
+ //
+ case 49: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break;
+ }
+
+ //
+ // Rule 51: shift_expression ::= shift_expression << additive_expression
+ //
+ case 51: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break;
+ }
+
+ //
+ // Rule 52: shift_expression ::= shift_expression >> additive_expression
+ //
+ case 52: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break;
+ }
+
+ //
+ // Rule 54: relational_expression ::= relational_expression < shift_expression
+ //
+ case 54: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break;
+ }
+
+ //
+ // Rule 55: relational_expression ::= relational_expression > shift_expression
+ //
+ case 55: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break;
+ }
+
+ //
+ // Rule 56: relational_expression ::= relational_expression <= shift_expression
+ //
+ case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break;
+ }
+
+ //
+ // Rule 57: relational_expression ::= relational_expression >= shift_expression
+ //
+ case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break;
+ }
+
+ //
+ // Rule 59: equality_expression ::= equality_expression == relational_expression
+ //
+ case 59: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break;
+ }
+
+ //
+ // Rule 60: equality_expression ::= equality_expression != relational_expression
+ //
+ case 60: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break;
+ }
+
+ //
+ // Rule 62: AND_expression ::= AND_expression & equality_expression
+ //
+ case 62: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break;
+ }
+
+ //
+ // Rule 64: exclusive_OR_expression ::= exclusive_OR_expression ^ AND_expression
+ //
+ case 64: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break;
+ }
+
+ //
+ // Rule 66: inclusive_OR_expression ::= inclusive_OR_expression | exclusive_OR_expression
+ //
+ case 66: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break;
+ }
+
+ //
+ // Rule 68: logical_AND_expression ::= logical_AND_expression && inclusive_OR_expression
+ //
+ case 68: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break;
+ }
+
+ //
+ // Rule 70: logical_OR_expression ::= logical_OR_expression || logical_AND_expression
+ //
+ case 70: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break;
+ }
+
+ //
+ // Rule 72: conditional_expression ::= logical_OR_expression ? expression : conditional_expression
+ //
+ case 72: { action. consumeExpressionConditional(); break;
+ }
+
+ //
+ // Rule 74: assignment_expression ::= unary_expression = assignment_expression
+ //
+ case 74: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break;
+ }
+
+ //
+ // Rule 75: assignment_expression ::= unary_expression *= assignment_expression
+ //
+ case 75: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break;
+ }
+
+ //
+ // Rule 76: assignment_expression ::= unary_expression /= assignment_expression
+ //
+ case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break;
+ }
+
+ //
+ // Rule 77: assignment_expression ::= unary_expression %= assignment_expression
+ //
+ case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break;
+ }
+
+ //
+ // Rule 78: assignment_expression ::= unary_expression += assignment_expression
+ //
+ case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break;
+ }
+
+ //
+ // Rule 79: assignment_expression ::= unary_expression -= assignment_expression
+ //
+ case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break;
+ }
+
+ //
+ // Rule 80: assignment_expression ::= unary_expression <<= assignment_expression
+ //
+ case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break;
+ }
+
+ //
+ // Rule 81: assignment_expression ::= unary_expression >>= assignment_expression
+ //
+ case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break;
+ }
+
+ //
+ // Rule 82: assignment_expression ::= unary_expression &= assignment_expression
+ //
+ case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break;
+ }
+
+ //
+ // Rule 83: assignment_expression ::= unary_expression ^= assignment_expression
+ //
+ case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break;
+ }
+
+ //
+ // Rule 84: assignment_expression ::= unary_expression |= assignment_expression
+ //
+ case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break;
+ }
+
+ //
+ // Rule 87: expression_list ::= <openscope-ast> expression_list_actual
+ //
+ case 87: { action. consumeExpressionList(); break;
+ }
+
+ //
+ // Rule 89: expression_list_opt ::= $Empty
+ //
+ case 89: { action. consumeEmpty(); break;
+ }
+
+ //
+ // Rule 99: statement ::= ERROR_TOKEN
+ //
+ case 99: { action. consumeStatementProblem(); break;
+ }
+
+ //
+ // Rule 100: labeled_statement ::= identifier_or_typedefname : statement
+ //
+ case 100: { action. consumeStatementLabeled(); break;
+ }
+
+ //
+ // Rule 101: labeled_statement ::= case constant_expression :
+ //
+ case 101: { action. consumeStatementCase(); break;
+ }
+
+ //
+ // Rule 102: labeled_statement ::= default :
+ //
+ case 102: { action. consumeStatementDefault(); break;
+ }
+
+ //
+ // Rule 103: compound_statement ::= { }
+ //
+ case 103: { action. consumeStatementCompoundStatement(false); break;
+ }
+
+ //
+ // Rule 104: compound_statement ::= { <openscope-ast> block_item_list }
+ //
+ case 104: { action. consumeStatementCompoundStatement(true); break;
+ }
+
+ //
+ // Rule 108: block_item ::= declaration
+ //
+ case 108: { action. consumeStatementDeclarationWithDisambiguation(); break;
+ }
+
+ //
+ // Rule 109: expression_statement ::= ;
+ //
+ case 109: { action. consumeStatementNull(); break;
+ }
+
+ //
+ // Rule 110: expression_statement ::= expression_in_statement ;
+ //
+ case 110: { action. consumeStatementExpression(); break;
+ }
+
+ //
+ // Rule 111: selection_statement ::= if ( expression ) statement
+ //
+ case 111: { action. consumeStatementIf(false); break;
+ }
+
+ //
+ // Rule 112: selection_statement ::= if ( expression ) statement else statement
+ //
+ case 112: { action. consumeStatementIf(true); break;
+ }
+
+ //
+ // Rule 113: selection_statement ::= switch ( expression ) statement
+ //
+ case 113: { action. consumeStatementSwitch(); break;
+ }
+
+ //
+ // Rule 115: expression_opt ::= $Empty
+ //
+ case 115: { action. consumeEmpty(); break;
+ }
+
+ //
+ // Rule 116: iteration_statement ::= do statement while ( expression ) ;
+ //
+ case 116: { action. consumeStatementDoLoop(); break;
+ }
+
+ //
+ // Rule 117: iteration_statement ::= while ( expression ) statement
+ //
+ case 117: { action. consumeStatementWhileLoop(); break;
+ }
+
+ //
+ // Rule 118: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement
+ //
+ case 118: { action. consumeStatementForLoop(); break;
+ }
+
+ //
+ // Rule 119: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement
+ //
+ case 119: { action. consumeStatementForLoop(); break;
+ }
+
+ //
+ // Rule 120: jump_statement ::= goto identifier_or_typedefname ;
+ //
+ case 120: { action. consumeStatementGoto(); break;
+ }
+
+ //
+ // Rule 121: jump_statement ::= continue ;
+ //
+ case 121: { action. consumeStatementContinue(); break;
+ }
+
+ //
+ // Rule 122: jump_statement ::= break ;
+ //
+ case 122: { action. consumeStatementBreak(); break;
+ }
+
+ //
+ // Rule 123: jump_statement ::= return ;
+ //
+ case 123: { action. consumeStatementReturn(false); break;
+ }
+
+ //
+ // Rule 124: jump_statement ::= return expression ;
+ //
+ case 124: { action. consumeStatementReturn(true); break;
+ }
+
+ //
+ // Rule 125: declaration ::= declaration_specifiers ;
+ //
+ case 125: { action. consumeDeclarationSimple(false); break;
+ }
+
+ //
+ // Rule 126: declaration ::= declaration_specifiers <openscope-ast> init_declarator_list ;
+ //
+ case 126: { action. consumeDeclarationSimple(true); break;
+ }
+
+ //
+ // Rule 127: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
+ //
+ case 127: { action. consumeDeclarationSpecifiersSimple(); break;
+ }
+
+ //
+ // Rule 128: declaration_specifiers ::= <openscope-ast> struct_or_union_declaration_specifiers
+ //
+ case 128: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
+ }
+
+ //
+ // Rule 129: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
+ //
+ case 129: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
+ }
+
+ //
+ // Rule 130: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
+ //
+ case 130: { action. consumeDeclarationSpecifiersStructUnionEnum(); break;
+ }
+
+ //
+ // Rule 131: declaration_specifiers ::= <openscope-ast> typdef_name_declaration_specifiers
+ //
+ case 131: { action. consumeDeclarationSpecifiersTypedefName(); break;
+ }
+
+ //
+ // Rule 156: init_declarator ::= complete_declarator = initializer
+ //
+ case 156: { action. consumeDeclaratorWithInitializer(true); break;
+ }
+
+ //
+ // Rule 158: storage_class_specifier ::= storage_class_specifier_token
+ //
+ case 158: { action. consumeDeclSpecToken(); break;
+ }
+
+ //
+ // Rule 164: simple_type_specifier ::= simple_type_specifier_token
+ //
+ case 164: { action. consumeDeclSpecToken(); break;
+ }
+
+ //
+ // Rule 177: typedef_name_in_declspec ::= Completion
+ //
+ case 177: { action. consumeDeclSpecToken(); break;
+ }
+
+ //
+ // Rule 178: typedef_name_in_declspec ::= identifier
+ //
+ case 178: { action. consumeDeclSpecToken(); break;
+ }
+
+ //
+ // Rule 181: struct_or_union_specifier ::= struct { <openscope-ast> struct_declaration_list_opt }
+ //
+ case 181: { action. consumeTypeSpecifierComposite(false, IASTCompositeTypeSpecifier.k_struct); break;
+ }
+
+ //
+ // Rule 182: struct_or_union_specifier ::= union { <openscope-ast> struct_declaration_list_opt }
+ //
+ case 182: { action. consumeTypeSpecifierComposite(false, IASTCompositeTypeSpecifier.k_union); break;
+ }
+
+ //
+ // Rule 183: struct_or_union_specifier ::= struct identifier_or_typedefname { <openscope-ast> struct_declaration_list_opt }
+ //
+ case 183: { action. consumeTypeSpecifierComposite(true, IASTCompositeTypeSpecifier.k_struct); break;
+ }
+
+ //
+ // Rule 184: struct_or_union_specifier ::= union identifier_or_typedefname { <openscope-ast> struct_declaration_list_opt }
+ //
+ case 184: { action. consumeTypeSpecifierComposite(true, IASTCompositeTypeSpecifier.k_union); break;
+ }
+
+ //
+ // Rule 185: elaborated_specifier ::= struct identifier_or_typedefname
+ //
+ case 185: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break;
+ }
+
+ //
+ // Rule 186: elaborated_specifier ::= union identifier_or_typedefname
+ //
+ case 186: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break;
+ }
+
+ //
+ // Rule 187: elaborated_specifier ::= enum identifier_or_typedefname
+ //
+ case 187: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break;
+ }
+
+ //
+ // Rule 192: struct_declaration ::= specifier_qualifier_list <openscope-ast> struct_declarator_list ;
+ //
+ case 192: { action. consumeStructDeclaration(true); break;
+ }
+
+ //
+ // Rule 193: struct_declaration ::= specifier_qualifier_list ;
+ //
+ case 193: { action. consumeStructDeclaration(false); break;
+ }
+
+ //
+ // Rule 194: struct_declaration ::= ERROR_TOKEN
+ //
+ case 194: { action. consumeDeclarationProblem(); break;
+ }
+
+ //
+ // Rule 200: struct_declarator ::= : constant_expression
+ //
+ case 200: { action. consumeBitField(false); break;
+ }
+
+ //
+ // Rule 201: struct_declarator ::= declarator : constant_expression
+ //
+ case 201: { action. consumeBitField(true); break;
+ }
+
+ //
+ // Rule 202: enum_specifier ::= enum { <openscope-ast> enumerator_list_opt comma_opt }
+ //
+ case 202: { action. consumeTypeSpecifierEnumeration(false); break;
+ }
+
+ //
+ // Rule 203: enum_specifier ::= enum identifier_or_typedefname { <openscope-ast> enumerator_list_opt comma_opt }
+ //
+ case 203: { action. consumeTypeSpecifierEnumeration(true); break;
+ }
+
+ //
+ // Rule 208: enumerator ::= identifier_or_typedefname
+ //
+ case 208: { action. consumeEnumerator(false); break;
+ }
+
+ //
+ // Rule 209: enumerator ::= identifier_or_typedefname = constant_expression
+ //
+ case 209: { action. consumeEnumerator(true); break;
+ }
+
+ //
+ // Rule 210: type_qualifier ::= type_qualifier_token
+ //
+ case 210: { action. consumeDeclSpecToken(); break;
+ }
+
+ //
+ // Rule 214: function_specifier ::= inline
+ //
+ case 214: { action. consumeDeclSpecToken(); break;
+ }
+
+ //
+ // Rule 216: declarator ::= <openscope-ast> pointer_seq direct_declarator
+ //
+ case 216: { action. consumeDeclaratorWithPointer(true); break;
+ }
+
+ //
+ // Rule 221: basic_direct_declarator ::= declarator_id_name
+ //
+ case 221: { action. consumeDirectDeclaratorIdentifier(); break;
+ }
+
+ //
+ // Rule 222: basic_direct_declarator ::= ( declarator )
+ //
+ case 222: { action. consumeDirectDeclaratorBracketed(); break;
+ }
+
+ //
+ // Rule 223: declarator_id_name ::= identifier
+ //
+ case 223: { action. consumeIdentifierName(); break;
+ }
+
+ //
+ // Rule 224: array_direct_declarator ::= basic_direct_declarator array_modifier
+ //
+ case 224: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ }
+
+ //
+ // Rule 225: array_direct_declarator ::= array_direct_declarator array_modifier
+ //
+ case 225: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ }
+
+ //
+ // Rule 227: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_type_list )
+ //
+ case 227: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
+ }
+
+ //
+ // Rule 228: function_direct_declarator ::= basic_direct_declarator ( )
+ //
+ case 228: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
+ }
+
+ //
+ // Rule 230: function_declarator ::= <openscope-ast> pointer_seq function_direct_declarator
+ //
+ case 230: { action. consumeDeclaratorWithPointer(true); break;
+ }
+
+ //
+ // Rule 231: knr_direct_declarator ::= basic_direct_declarator ( <openscope-ast> identifier_list )
+ //
+ case 231: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break;
+ }
+
+ //
+ // Rule 233: knr_function_declarator ::= <openscope-ast> pointer_seq knr_direct_declarator
+ //
+ case 233: { action. consumeDeclaratorWithPointer(true); break;
+ }
+
+ //
+ // Rule 234: identifier_list ::= identifier
+ //
+ case 234: { action. consumeIdentifierKnR(); break;
+ }
+
+ //
+ // Rule 235: identifier_list ::= identifier_list , identifier
+ //
+ case 235: { action. consumeIdentifierKnR(); break;
+ }
+
+ //
+ // Rule 236: array_modifier ::= [ ]
+ //
+ case 236: { action. consumeDirectDeclaratorArrayModifier(false); break;
+ }
+
+ //
+ // Rule 237: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ]
+ //
+ case 237: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break;
+ }
+
+ //
+ // Rule 238: array_modifier ::= [ assignment_expression ]
+ //
+ case 238: { action. consumeDirectDeclaratorArrayModifier(true); break;
+ }
+
+ //
+ // Rule 239: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
+ //
+ case 239: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break;
+ }
+
+ //
+ // Rule 240: array_modifier ::= [ static assignment_expression ]
+ //
+ case 240: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break;
+ }
+
+ //
+ // Rule 241: array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ]
+ //
+ case 241: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break;
+ }
+
+ //
+ // Rule 242: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ]
+ //
+ case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break;
+ }
+
+ //
+ // Rule 243: array_modifier ::= [ * ]
+ //
+ case 243: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break;
+ }
+
+ //
+ // Rule 244: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ]
+ //
+ case 244: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break;
+ }
+
+ //
+ // Rule 246: pointer_seq ::= *
+ //
+ case 246: { action. consumePointer(); break;
+ }
+
+ //
+ // Rule 247: pointer_seq ::= pointer_seq *
+ //
+ case 247: { action. consumePointer(); break;
+ }
+
+ //
+ // Rule 248: pointer_seq ::= * <openscope-ast> type_qualifier_list
+ //
+ case 248: { action. consumePointerTypeQualifierList(); break;
+ }
+
+ //
+ // Rule 249: pointer_seq ::= pointer_seq * <openscope-ast> type_qualifier_list
+ //
+ case 249: { action. consumePointerTypeQualifierList(); break;
+ }
+
+ //
+ // Rule 252: parameter_type_list ::= parameter_list
+ //
+ case 252: { action. consumeEmpty(); break;
+ }
+
+ //
+ // Rule 253: parameter_type_list ::= parameter_list , ...
+ //
+ case 253: { action. consumePlaceHolder(); break;
+ }
+
+ //
+ // Rule 254: parameter_type_list ::= ...
+ //
+ case 254: { action. consumePlaceHolder(); break;
+ }
+
+ //
+ // Rule 257: parameter_declaration ::= declaration_specifiers complete_parameter_declarator
+ //
+ case 257: { action. consumeParameterDeclaration(); break;
+ }
+
+ //
+ // Rule 258: parameter_declaration ::= declaration_specifiers
+ //
+ case 258: { action. consumeParameterDeclarationWithoutDeclarator(); break;
+ }
+
+ //
+ // Rule 261: type_name ::= specifier_qualifier_list
+ //
+ case 261: { action. consumeTypeId(false); break;
+ }
+
+ //
+ // Rule 262: type_name ::= specifier_qualifier_list abstract_declarator
+ //
+ case 262: { action. consumeTypeId(true); break;
+ }
+
+ //
+ // Rule 264: abstract_declarator ::= <openscope-ast> pointer_seq
+ //
+ case 264: { action. consumeDeclaratorWithPointer(false); break;
+ }
+
+ //
+ // Rule 265: abstract_declarator ::= <openscope-ast> pointer_seq direct_abstract_declarator
+ //
+ case 265: { action. consumeDeclaratorWithPointer(false); break;
+ }
+
+ //
+ // Rule 269: basic_direct_abstract_declarator ::= ( abstract_declarator )
+ //
+ case 269: { action. consumeDirectDeclaratorBracketed(); break;
+ }
+
+ //
+ // Rule 270: array_direct_abstract_declarator ::= array_modifier
+ //
+ case 270: { action. consumeDirectDeclaratorArrayDeclarator(false); break;
+ }
+
+ //
+ // Rule 271: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
+ //
+ case 271: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ }
+
+ //
+ // Rule 272: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
+ //
+ case 272: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ }
+
+ //
+ // Rule 273: function_direct_abstract_declarator ::= ( )
+ //
+ case 273: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break;
+ }
+
+ //
+ // Rule 274: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( )
+ //
+ case 274: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break;
+ }
+
+ //
+ // Rule 275: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_type_list )
+ //
+ case 275: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break;
+ }
+
+ //
+ // Rule 276: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_type_list )
+ //
+ case 276: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break;
+ }
+
+ //
+ // Rule 277: initializer ::= assignment_expression
+ //
+ case 277: { action. consumeInitializer(); break;
+ }
+
+ //
+ // Rule 278: initializer ::= { <openscope-ast> initializer_list comma_opt }
+ //
+ case 278: { action. consumeInitializerList(); break;
+ }
+
+ //
+ // Rule 283: designated_initializer ::= <openscope-ast> designation = initializer
+ //
+ case 283: { action. consumeInitializerDesignated(); break;
+ }
+
+ //
+ // Rule 287: designator_base ::= [ constant_expression ]
+ //
+ case 287: { action. consumeDesignatorArray(); break;
+ }
+
+ //
+ // Rule 288: designator_base ::= . identifier_or_typedefname
+ //
+ case 288: { action. consumeDesignatorField(); break;
+ }
+
+ //
+ // Rule 289: designator ::= [ constant_expression ]
+ //
+ case 289: { action. consumeDesignatorArray(); break;
+ }
+
+ //
+ // Rule 290: designator ::= . identifier_or_typedefname
+ //
+ case 290: { action. consumeDesignatorField(); break;
+ }
+
+ //
+ // Rule 291: translation_unit ::= external_declaration_list
+ //
+ case 291: { action. consumeTranslationUnit(); break;
+ }
+
+ //
+ // Rule 292: translation_unit ::= $Empty
+ //
+ case 292: { action. consumeTranslationUnit(); break;
+ }
+
+ //
+ // Rule 297: external_declaration ::= ;
+ //
+ case 297: { action. consumeDeclarationEmpty(); break;
+ }
+
+ //
+ // Rule 298: external_declaration ::= ERROR_TOKEN
+ //
+ case 298: { action. consumeDeclarationProblem(); break;
+ }
+
+ //
+ // Rule 301: function_definition ::= declaration_specifiers <openscope-ast> function_declarator function_body
+ //
+ case 301: { action. consumeFunctionDefinition(true); break;
+ }
+
+ //
+ // Rule 302: function_definition ::= <openscope-ast> function_declarator function_body
+ //
+ case 302: { action. consumeFunctionDefinition(false); break;
+ }
+
+ //
+ // Rule 303: function_definition ::= declaration_specifiers <openscope-ast> knr_function_declarator <openscope-ast> declaration_list compound_statement
+ //
+ case 303: { action. consumeFunctionDefinitionKnR(); break;
+ }
+
+ //
+ // Rule 304: function_body ::= { }
+ //
+ case 304: { action. consumeStatementCompoundStatement(false); break;
+ }
+
+ //
+ // Rule 305: function_body ::= { <openscope-ast> block_item_list }
+ //
+ case 305: { action. consumeStatementCompoundStatement(true); break;
+ }
+
+ //
+ // Rule 307: no_sizeof_type_name_start ::= ERROR_TOKEN
+ //
+ case 307: { action. consumeExpressionProblem(); break;
+ }
+
+ //
+ // Rule 308: literal ::= MYTHREAD
+ //
+ case 308: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_mythread); break;
+ }
+
+ //
+ // Rule 309: literal ::= THREADS
+ //
+ case 309: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_threads); break;
+ }
+
+ //
+ // Rule 310: literal ::= UPC_MAX_BLOCKSIZE
+ //
+ case 310: { action. consumeKeywordExpression(IUPCASTKeywordExpression.kw_upc_max_block_size); break;
+ }
+
+ //
+ // Rule 311: unary_expression ::= upc_localsizeof unary_expression
+ //
+ case 311: { action. consumeExpressionUnaryOperator(IUPCASTUnaryExpression.op_upc_localsizeof); break;
+ }
+
+ //
+ // Rule 312: unary_expression ::= upc_blocksizeof unary_expression
+ //
+ case 312: { action. consumeExpressionUnaryOperator(IUPCASTUnaryExpression.op_upc_blocksizeof); break;
+ }
+
+ //
+ // Rule 313: unary_expression ::= upc_elemsizeof unary_expression
+ //
+ case 313: { action. consumeExpressionUnaryOperator(IUPCASTUnaryExpression.op_upc_elemsizeof); break;
+ }
+
+ //
+ // Rule 317: shared_type_qualifier ::= shared
+ //
+ case 317: { action. consumeToken(); break;
+ }
+
+ //
+ // Rule 318: reference_type_qualifier ::= relaxed
+ //
+ case 318: { action. consumeToken(); break;
+ }
+
+ //
+ // Rule 319: reference_type_qualifier ::= strict
+ //
+ case 319: { action. consumeToken(); break;
+ }
+
+ //
+ // Rule 320: layout_qualifier ::= [ constant_expression ]
+ //
+ case 320: { action. consumeLayoutQualifier(true, false); break;
+ }
+
+ //
+ // Rule 321: layout_qualifier ::= [ * ]
+ //
+ case 321: { action. consumeLayoutQualifier(false, true); break;
+ }
+
+ //
+ // Rule 322: layout_qualifier ::= [ ]
+ //
+ case 322: { action. consumeLayoutQualifier(false, false); break;
+ }
+
+ //
+ // Rule 324: synchronization_statement ::= upc_notify expression ;
+ //
+ case 324: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, true); break;
+ }
+
+ //
+ // Rule 325: synchronization_statement ::= upc_notify ;
+ //
+ case 325: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_notify, false); break;
+ }
+
+ //
+ // Rule 326: synchronization_statement ::= upc_wait expression ;
+ //
+ case 326: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, true); break;
+ }
+
+ //
+ // Rule 327: synchronization_statement ::= upc_wait ;
+ //
+ case 327: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_wait, false); break;
+ }
+
+ //
+ // Rule 328: synchronization_statement ::= upc_barrier expression ;
+ //
+ case 328: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, true); break;
+ }
+
+ //
+ // Rule 329: synchronization_statement ::= upc_barrier ;
+ //
+ case 329: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_barrier, false); break;
+ }
+
+ //
+ // Rule 330: synchronization_statement ::= upc_fence ;
+ //
+ case 330: { action. consumeStatementSynchronizationStatement(IUPCASTSynchronizationStatement.st_upc_fence, false); break;
+ }
+
+ //
+ // Rule 331: iteration_statement ::= upc_forall ( expression ; expression ; expression ; affinity ) statement
+ //
+ case 331: { action. consumeStatementUPCForallLoop(true, true, true, true); break;
+ }
+
+ //
+ // Rule 332: iteration_statement ::= upc_forall ( expression ; expression ; expression ; ) statement
+ //
+ case 332: { action. consumeStatementUPCForallLoop(true, true, true, false); break;
+ }
+
+ //
+ // Rule 333: iteration_statement ::= upc_forall ( expression ; expression ; ; affinity ) statement
+ //
+ case 333: { action. consumeStatementUPCForallLoop(true, true, false, true); break;
+ }
+
+ //
+ // Rule 334: iteration_statement ::= upc_forall ( expression ; expression ; ; ) statement
+ //
+ case 334: { action. consumeStatementUPCForallLoop(true, true, false, false); break;
+ }
+
+ //
+ // Rule 335: iteration_statement ::= upc_forall ( expression ; ; expression ; affinity ) statement
+ //
+ case 335: { action. consumeStatementUPCForallLoop(true, false, true, true); break;
+ }
+
+ //
+ // Rule 336: iteration_statement ::= upc_forall ( expression ; ; expression ; ) statement
+ //
+ case 336: { action. consumeStatementUPCForallLoop(true, false, true, false); break;
+ }
+
+ //
+ // Rule 337: iteration_statement ::= upc_forall ( expression ; ; ; affinity ) statement
+ //
+ case 337: { action. consumeStatementUPCForallLoop(true, false, false, true); break;
+ }
+
+ //
+ // Rule 338: iteration_statement ::= upc_forall ( expression ; ; ; ) statement
+ //
+ case 338: { action. consumeStatementUPCForallLoop(true, false, false, false); break;
+ }
+
+ //
+ // Rule 339: iteration_statement ::= upc_forall ( ; expression ; expression ; affinity ) statement
+ //
+ case 339: { action. consumeStatementUPCForallLoop(false, true, true, true); break;
+ }
+
+ //
+ // Rule 340: iteration_statement ::= upc_forall ( ; expression ; expression ; ) statement
+ //
+ case 340: { action. consumeStatementUPCForallLoop(false, true, true, false); break;
+ }
+
+ //
+ // Rule 341: iteration_statement ::= upc_forall ( ; expression ; ; affinity ) statement
+ //
+ case 341: { action. consumeStatementUPCForallLoop(false, true, false, true); break;
+ }
+
+ //
+ // Rule 342: iteration_statement ::= upc_forall ( ; expression ; ; ) statement
+ //
+ case 342: { action. consumeStatementUPCForallLoop(false, true, false, false); break;
+ }
+
+ //
+ // Rule 343: iteration_statement ::= upc_forall ( ; ; expression ; affinity ) statement
+ //
+ case 343: { action. consumeStatementUPCForallLoop(false, false, true, true); break;
+ }
+
+ //
+ // Rule 344: iteration_statement ::= upc_forall ( ; ; expression ; ) statement
+ //
+ case 344: { action. consumeStatementUPCForallLoop(false, false, true, false); break;
+ }
+
+ //
+ // Rule 345: iteration_statement ::= upc_forall ( ; ; ; affinity ) statement
+ //
+ case 345: { action. consumeStatementUPCForallLoop(false, false, false, true); break;
+ }
+
+ //
+ // Rule 346: iteration_statement ::= upc_forall ( ; ; ; ) statement
+ //
+ case 346: { action. consumeStatementUPCForallLoop(false, false, false, false); break;
+ }
+
+ //
+ // Rule 347: iteration_statement ::= upc_forall ( declaration expression ; expression ; affinity ) statement
+ //
+ case 347: { action. consumeStatementUPCForallLoop(true, true, true, true); break;
+ }
+
+ //
+ // Rule 348: iteration_statement ::= upc_forall ( declaration expression ; expression ; ) statement
+ //
+ case 348: { action. consumeStatementUPCForallLoop(true, true, true, false); break;
+ }
+
+ //
+ // Rule 349: iteration_statement ::= upc_forall ( declaration expression ; ; affinity ) statement
+ //
+ case 349: { action. consumeStatementUPCForallLoop(true, true, false, true); break;
+ }
+
+ //
+ // Rule 350: iteration_statement ::= upc_forall ( declaration expression ; ; ) statement
+ //
+ case 350: { action. consumeStatementUPCForallLoop(true, true, false, false); break;
+ }
+
+ //
+ // Rule 351: iteration_statement ::= upc_forall ( declaration ; expression ; affinity ) statement
+ //
+ case 351: { action. consumeStatementUPCForallLoop(true, false, true, true); break;
+ }
+
+ //
+ // Rule 352: iteration_statement ::= upc_forall ( declaration ; expression ; ) statement
+ //
+ case 352: { action. consumeStatementUPCForallLoop(true, false, true, false); break;
+ }
+
+ //
+ // Rule 353: iteration_statement ::= upc_forall ( declaration ; ; affinity ) statement
+ //
+ case 353: { action. consumeStatementUPCForallLoop(true, false, false, true); break;
+ }
+
+ //
+ // Rule 354: iteration_statement ::= upc_forall ( declaration ; ; ) statement
+ //
+ case 354: { action. consumeStatementUPCForallLoop(true, false, false, false); break;
+ }
+
+ //
+ // Rule 356: affinity ::= continue
+ //
+ case 356: { action. consumeToken(); break;
+ }
+
+
+ default:
+ break;
+ }
+ return;
+ }
+}
+
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParserprs.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParserprs.java
new file mode 100644
index 00000000000..06762d0bdf5
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParserprs.java
@@ -0,0 +1,1217 @@
+/*******************************************************************************
+* Copyright (c) 2006, 2008 IBM Corporation and others.
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+*
+* Contributors:
+* IBM Corporation - initial API and implementation
+*********************************************************************************/
+
+// This file was generated by LPG
+
+package org.eclipse.cdt.internal.core.dom.parser.upc;
+
+public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UPCSizeofExpressionParsersym {
+
+ public interface IsKeyword {
+ public final static byte isKeyword[] = {0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0
+ };
+ };
+ public final static byte isKeyword[] = IsKeyword.isKeyword;
+ public final boolean isKeyword(int index) { return isKeyword[index] != 0; }
+
+ public interface BaseCheck {
+ public final static short baseCheck[] = {0,
+ 0,1,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,3,1,1,1,4,
+ 4,3,3,2,2,8,1,0,1,1,
+ 1,2,2,2,2,2,2,2,2,2,
+ 1,4,1,3,3,3,1,3,3,1,
+ 3,3,1,3,3,3,3,1,3,3,
+ 1,3,1,3,1,3,1,3,1,3,
+ 1,5,1,3,3,3,3,3,3,3,
+ 3,3,3,3,1,1,2,1,0,1,
+ 3,1,1,1,1,1,1,1,1,3,
+ 3,2,2,4,1,2,1,1,1,2,
+ 5,7,5,1,0,7,5,9,8,3,
+ 2,2,2,3,2,4,2,2,2,2,
+ 2,1,1,1,1,2,1,2,2,2,
+ 1,2,2,1,2,2,1,2,2,1,
+ 2,2,1,3,1,3,1,1,1,1,
+ 1,1,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,1,1,
+ 5,5,6,6,2,2,2,1,0,1,
+ 2,4,2,1,1,1,3,1,1,2,
+ 3,6,7,1,0,1,3,1,3,1,
+ 1,1,1,1,1,3,1,1,1,1,
+ 1,3,1,2,2,1,5,3,1,3,
+ 5,1,3,1,3,2,4,3,5,4,
+ 6,6,3,5,1,1,2,3,4,1,
+ 2,1,3,1,1,3,2,1,1,1,
+ 1,2,1,2,3,1,1,1,3,1,
+ 2,2,2,3,4,5,1,5,1,1,
+ 3,3,4,1,1,2,3,2,3,2,
+ 1,0,1,2,1,1,1,1,1,2,
+ 4,3,6,2,4,1,1,1,1,1,
+ 2,2,2,1,1,2,1,1,1,3,
+ 3,2,1,3,2,3,2,3,2,2,
+ 11,10,10,9,10,9,9,8,10,9,
+ 9,8,9,8,8,7,10,9,9,8,
+ 9,8,8,7,1,1,-39,0,0,0,
+ 0,0,0,0,0,-72,0,0,0,0,
+ 0,0,0,0,0,0,-2,0,0,0,
+ 0,-4,-17,-19,-77,0,0,0,0,0,
+ -126,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-5,0,0,0,0,0,0,
+ 0,0,0,-6,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-3,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-20,-21,0,-22,
+ -23,-24,0,-177,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-172,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-7,0,0,0,0,0,0,
+ -40,0,0,0,0,0,0,0,0,-25,
+ -26,-27,-51,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-28,-29,0,-52,
+ 0,0,0,0,0,0,0,0,-74,0,
+ 0,0,-75,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-135,-111,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-89,0,
+ -90,-78,-32,0,0,0,0,-192,0,0,
+ 0,0,0,0,0,0,-91,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ -8,0,0,0,0,0,0,0,0,0,
+ -9,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-118,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,-92,0,0,0,0,0,0,
+ 0,0,0,0,0,-93,0,-30,0,0,
+ 0,0,0,0,0,0,-112,0,0,0,
+ 0,0,0,0,0,0,0,-59,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-60,0,0,
+ 0,0,0,0,0,0,-130,0,0,0,
+ 0,0,0,0,0,0,0,-61,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-62,0,0,
+ 0,0,0,0,0,0,-138,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,-64,0,0,
+ 0,0,0,0,0,0,-153,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,-66,0,0,
+ 0,0,0,0,0,0,-179,0,0,0,
+ 0,0,0,0,0,0,0,-67,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-68,0,0,
+ 0,0,0,0,0,0,-94,0,0,0,
+ 0,0,0,0,0,0,0,-69,0,0,
+ 0,0,0,0,0,0,-147,0,0,0,
+ 0,0,0,0,0,0,0,-151,0,0,
+ 0,0,0,0,0,0,-95,0,0,0,
+ 0,0,0,0,0,0,0,-152,0,0,
+ 0,0,0,0,0,0,-146,0,0,0,
+ 0,0,0,0,0,0,0,-175,0,0,
+ 0,0,0,0,0,0,-83,0,0,0,
+ 0,0,0,0,0,0,-189,0,0,0,
+ 0,0,0,0,0,-167,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,-49,0,0,0,0,0,0,0,0,
+ -195,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-199,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-96,-97,
+ -33,-158,-191,0,-50,0,0,0,0,0,
+ 0,0,0,-209,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,-125,0,0,0,0,0,0,0,
+ 0,-98,0,0,0,0,0,0,0,0,
+ 0,-134,0,-99,-84,0,0,-100,-128,-101,
+ 0,-57,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-155,-117,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-162,
+ 0,-41,0,0,0,0,0,0,0,0,
+ 0,0,-180,0,-196,-86,-36,-159,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-15,0,0,0,0,0,
+ 0,0,-88,0,0,-37,0,-58,0,0,
+ 0,0,0,0,0,0,-174,0,0,0,
+ 0,0,0,0,0,0,0,0,-194,0,
+ 0,-81,0,0,0,0,-54,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,-184,0,0,0,0,0,0,0,-102,
+ -103,0,0,0,0,0,0,0,0,-55,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-82,-186,-76,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-208,
+ -108,-70,-183,-71,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-115,-133,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,-104,0,0,-190,-79,-166,0,0,-53,
+ 0,0,0,0,0,0,0,0,-105,0,
+ 0,-110,-106,-120,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,-45,0,0,0,0,0,0,0,0,
+ -80,0,-10,0,0,0,0,0,0,0,
+ -210,0,-46,0,0,0,0,0,0,0,
+ 0,0,0,-47,0,0,0,0,0,0,
+ 0,0,-85,0,-48,0,0,0,0,0,
+ 0,0,0,-201,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-107,-38,-122,
+ -123,-127,0,0,0,0,-87,0,0,0,
+ 0,-114,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-140,0,0,0,
+ 0,0,0,-119,0,0,0,0,0,0,
+ -132,-121,0,0,0,0,-139,0,0,0,
+ 0,0,0,-154,0,0,0,0,0,0,
+ 0,0,0,0,0,-124,0,-16,0,0,
+ 0,0,0,0,-11,0,0,0,0,0,
+ 0,-12,0,0,0,0,0,0,-13,0,
+ 0,0,0,0,0,-14,0,0,0,0,
+ 0,0,-18,-31,-42,0,0,0,0,0,
+ 0,0,0,-43,0,0,0,0,0,0,
+ -44,0,0,0,0,0,0,-193,0,0,
+ -142,-176,-145,-148,-163,-136,0,0,-113,0,
+ -116,0,0,0,0,0,-129,0,-168,0,
+ 0,0,-73,0,0,0,0,0,0,0,
+ 0,0,0,-141,-169,-171,0,0,0,0,
+ 0,-160,0,0,0,-34,-143,-1,-161,-173,
+ -204,-165,-156,-181,0,0,0,0,-200,0,
+ 0,0,0,0,-211,0,0,0,0,0,
+ 0,0,0,0,0,-109,0,0,0,0,
+ 0,0,0,0,-182,0,-157,0,-197,0,
+ 0,0,0,0,0,0,0,0,0,-185,
+ 0,0,0,0,0,0,0,-137,0,0,
+ 0,-187,-144,0,0,-170,0,-198,-188,0,
+ 0,0,0,0,-202,0,0,0,-164,-149,
+ 0,0,0,0,-150,0,0,0,0,0,
+ 0,0,-206,0,0,0,0,0,-178,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ -203,0,0,-205,-35,-56,0,0,0,0,
+ 0,0,0,0,0,0,0,-207,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0
+ };
+ };
+ public final static short baseCheck[] = BaseCheck.baseCheck;
+ public final int baseCheck(int index) { return baseCheck[index]; }
+ public final static short rhs[] = baseCheck;
+ public final int rhs(int index) { return rhs[index]; };
+
+ public interface BaseAction {
+ public final static char baseAction[] = {
+ 85,9,20,20,25,25,28,28,69,69,
+ 1,1,1,1,2,2,2,3,3,4,
+ 4,4,4,4,4,4,4,53,53,70,
+ 70,5,5,5,5,5,5,5,5,5,
+ 5,6,6,7,7,7,7,8,8,8,
+ 10,10,10,11,11,11,11,11,12,12,
+ 12,13,13,14,14,15,15,16,16,17,
+ 17,18,18,19,19,19,19,19,19,19,
+ 19,19,19,19,19,96,48,42,86,86,
+ 73,73,43,97,97,97,97,97,97,97,
+ 98,98,98,99,99,104,104,105,105,100,
+ 100,101,101,101,107,107,102,102,102,102,
+ 103,103,103,103,103,106,106,26,26,26,
+ 26,26,30,30,30,79,79,74,74,74,
+ 74,75,75,75,76,76,76,77,77,77,
+ 78,78,78,108,108,109,109,110,31,33,
+ 33,33,33,33,54,56,56,56,56,56,
+ 56,56,56,56,56,56,56,66,66,29,
+ 29,63,63,63,63,64,64,64,57,57,
+ 58,58,50,50,50,34,87,87,80,81,
+ 81,81,65,65,82,82,83,83,67,67,
+ 21,22,22,22,32,49,49,35,35,35,
+ 35,38,38,40,36,36,37,41,41,111,
+ 111,39,112,112,88,88,27,27,27,27,
+ 27,27,27,27,27,84,51,51,51,51,
+ 60,60,59,59,59,61,61,52,52,89,
+ 89,71,71,62,62,62,44,44,44,45,
+ 46,46,46,47,47,47,47,55,55,72,
+ 72,72,72,68,90,91,91,92,92,93,
+ 93,113,113,114,114,115,115,115,115,117,
+ 117,116,116,116,118,118,85,85,1,1,
+ 1,5,5,5,21,21,23,23,24,24,
+ 94,94,94,97,119,119,119,119,119,119,
+ 119,102,102,102,102,102,102,102,102,102,
+ 102,102,102,102,102,102,102,102,102,102,
+ 102,102,102,102,102,120,120,1,14,19,
+ 15,383,538,43,457,384,982,460,458,462,
+ 461,521,520,537,522,73,90,230,133,210,
+ 314,315,353,920,70,38,20,135,132,134,
+ 158,710,14,19,15,383,538,43,457,384,
+ 927,460,458,462,461,521,520,537,522,73,
+ 277,137,271,164,823,14,19,15,383,313,
+ 141,144,147,150,823,14,19,15,383,312,
+ 382,1356,1242,1294,1433,1467,1213,786,14,19,
+ 15,383,538,43,457,384,279,460,458,462,
+ 461,521,520,537,522,73,90,483,305,280,
+ 68,223,333,967,710,14,19,15,383,538,
+ 43,457,384,927,460,458,462,461,521,520,
+ 537,522,73,277,470,14,19,15,383,538,
+ 43,457,384,927,460,458,462,461,521,520,
+ 537,522,73,277,823,14,19,15,383,311,
+ 382,786,14,19,15,383,41,43,617,279,
+ 14,296,105,786,14,19,15,383,41,43,
+ 457,384,280,460,458,1124,1185,166,228,281,
+ 786,14,19,15,383,41,43,457,384,441,
+ 460,1128,282,394,14,19,15,383,538,43,
+ 457,384,1599,460,458,462,461,521,520,537,
+ 522,73,707,236,340,860,14,19,15,383,
+ 538,43,457,384,1607,460,458,462,461,521,
+ 520,537,522,73,747,133,210,314,315,897,
+ 1666,919,114,141,135,132,134,158,748,14,
+ 19,15,383,538,43,457,384,803,460,458,
+ 462,461,521,520,537,522,73,277,137,272,
+ 164,823,14,19,15,383,40,141,144,147,
+ 150,786,14,19,15,383,41,39,1356,1242,
+ 1294,1433,1467,1213,597,14,19,15,383,41,
+ 43,457,384,283,460,458,462,461,521,520,
+ 537,522,92,23,322,432,14,19,15,383,
+ 538,43,457,384,941,460,458,462,461,521,
+ 520,537,522,73,827,237,143,787,786,14,
+ 19,15,383,538,43,457,384,982,460,458,
+ 462,461,521,520,537,522,73,91,786,14,
+ 19,15,383,538,43,457,384,238,460,458,
+ 462,461,521,520,537,522,73,84,786,14,
+ 19,15,383,538,43,457,384,982,460,458,
+ 462,461,521,520,537,522,73,83,786,14,
+ 19,15,383,538,43,457,384,240,460,458,
+ 462,461,521,520,537,522,73,82,786,14,
+ 19,15,383,538,43,457,384,982,460,458,
+ 462,461,521,520,537,522,73,81,786,14,
+ 19,15,383,538,43,457,384,320,460,458,
+ 462,461,521,520,537,522,73,80,786,14,
+ 19,15,383,538,43,457,384,982,460,458,
+ 462,461,521,520,537,522,73,79,786,14,
+ 19,15,383,538,43,457,384,239,460,458,
+ 462,461,521,520,537,522,73,78,786,14,
+ 19,15,383,538,43,457,384,982,460,458,
+ 462,461,521,520,537,522,73,77,786,14,
+ 19,15,383,538,43,457,384,241,460,458,
+ 462,461,521,520,537,522,73,76,786,14,
+ 19,15,383,538,43,457,384,198,460,458,
+ 462,461,521,520,537,522,73,75,786,14,
+ 19,15,383,538,43,457,384,898,460,458,
+ 462,461,521,520,537,522,73,74,786,14,
+ 19,15,383,538,43,457,384,241,460,458,
+ 462,461,521,520,537,522,73,867,786,14,
+ 19,15,383,538,43,457,384,880,460,458,
+ 462,461,521,520,537,522,73,1183,786,14,
+ 19,15,383,41,43,457,384,317,460,458,
+ 462,461,521,520,537,522,92,786,14,19,
+ 15,383,41,43,457,384,946,460,458,462,
+ 461,521,520,537,522,92,1494,1640,1592,285,
+ 1626,1588,786,14,19,15,383,41,43,457,
+ 1070,786,14,19,15,383,41,43,457,384,
+ 209,460,458,462,461,521,520,537,522,92,
+ 786,14,19,15,383,41,43,457,384,1709,
+ 460,458,462,461,521,520,537,522,92,287,
+ 753,141,441,946,1641,786,14,19,15,383,
+ 41,43,457,1112,786,14,19,15,383,41,
+ 43,457,384,200,460,458,462,461,521,520,
+ 537,522,92,786,14,19,15,383,41,43,
+ 457,384,791,460,458,462,461,521,520,537,
+ 522,72,510,1262,544,374,1751,201,412,531,
+ 469,1072,786,14,19,15,383,41,43,457,
+ 384,22,460,458,462,461,521,520,1369,270,
+ 250,210,314,315,1502,400,754,215,1643,218,
+ 1677,220,221,226,1675,1698,263,602,385,268,
+ 983,259,786,14,19,15,383,41,43,684,
+ 273,274,270,982,260,880,652,716,935,1725,
+ 215,1643,218,1677,220,221,226,574,182,263,
+ 602,385,268,242,1644,823,14,19,15,383,
+ 33,257,1613,340,1122,1526,716,1328,786,14,
+ 19,15,383,41,43,457,384,755,460,458,
+ 462,461,521,1373,133,210,314,315,1754,755,
+ 256,16,71,136,132,134,158,786,14,19,
+ 15,383,41,43,457,384,288,460,458,462,
+ 461,1270,565,133,210,314,315,138,290,164,
+ 342,415,143,132,134,158,142,145,148,151,
+ 786,14,19,15,383,41,43,457,384,270,
+ 460,458,462,1271,128,727,438,216,1643,218,
+ 1677,220,221,226,1715,1601,265,602,385,268,
+ 727,6,716,754,716,133,210,314,315,1715,
+ 391,273,1679,270,146,132,134,158,716,716,
+ 215,1643,218,1677,220,221,226,1458,228,21,
+ 263,602,385,268,1649,215,1643,218,1677,220,
+ 221,226,580,269,275,755,509,983,1328,1649,
+ 786,14,19,15,383,41,43,457,384,522,
+ 460,1130,356,376,6,196,198,133,210,314,
+ 315,1129,1708,1624,1609,181,140,132,134,158,
+ 197,198,786,14,19,15,383,41,43,457,
+ 384,439,696,786,14,19,15,383,41,38,
+ 139,677,164,786,14,19,15,383,41,43,
+ 457,384,207,907,786,14,19,15,383,41,
+ 43,457,384,185,947,786,14,19,15,383,
+ 41,43,457,384,480,1069,216,1643,218,1677,
+ 220,221,226,1715,133,210,314,315,162,603,
+ 6,6,634,149,132,134,158,242,549,1637,
+ 1703,1720,559,14,19,15,383,41,35,215,
+ 1643,218,1677,220,221,226,270,6,133,210,
+ 314,315,243,1644,572,316,1639,152,132,134,
+ 158,944,610,263,602,385,268,559,14,19,
+ 15,383,41,35,559,14,19,15,383,41,
+ 35,262,251,210,314,315,646,321,823,14,
+ 19,15,383,32,244,786,14,19,15,383,
+ 41,37,786,14,19,15,383,41,36,786,
+ 14,19,15,383,41,35,786,14,19,15,
+ 383,41,34,6,6,786,14,19,15,383,
+ 41,46,357,357,786,14,19,15,383,41,
+ 45,786,14,19,15,383,41,44,982,195,
+ 195,6,948,6,6,280,489,1459,1459,531,
+ 1642,840,1706,464,1295,86,86,531,287,373,
+ 574,1216,1216,672,14,19,15,383,41,42,
+ 250,210,314,315,55,957,983,1122,250,210,
+ 314,315,716,574,1187,1312,680,112,635,169,
+ 654,982,283,718,716,437,574,437,574,692,
+ 195,574,1666,255,26,257,1822,276,1595,1501,
+ 1329,289,1596,195,193,195,604,1501,195,222,
+ 225,1595,1822,1595,190,840,1595,171,88,912,
+ 86,1170,1719,675,574,286,306,190,574,190,
+ 983,938,190,270,1357,1719,1690,1719,508,1702,
+ 1719,1122,983,576,224,1122,576,574,980,983,
+ 265,602,385,268,1822,441,1822,1822,184,226,
+ 531,1822,1314,377,1122,956,1262,255,574,1822,
+ 183,255,1609,716,1329,1609,1596,202,1733,968,
+ 1596,250,210,314,315,195,251,210,314,315,
+ 255,983,1822,1595,983,6,6,1632,227,1596,
+ 251,210,314,315,437,437,1411,1768,715,191,
+ 206,1822,1822,206,1822,1822,1822,192,1822,203,
+ 1739,1822,278,1822,1822,1006,1625,1822,1073,1625,
+ 1822,1822,1822,231,1822,1822,1822,86,86,1822,
+ 1822,1822,1822,366,1352,1822,0,317,654,0,
+ 17,178,0,18,177,0,1,2045,0,1,
+ 2056,0
+ };
+ };
+ public final static char baseAction[] = BaseAction.baseAction;
+ public final int baseAction(int index) { return baseAction[index]; }
+ public final static char lhs[] = baseAction;
+ public final int lhs(int index) { return lhs[index]; };
+
+ public interface TermCheck {
+ public final static byte termCheck[] = {0,
+ 0,1,2,3,4,0,6,7,8,9,
+ 10,11,12,0,14,15,16,17,18,19,
+ 20,21,22,23,24,25,26,27,28,29,
+ 30,31,32,33,34,35,36,0,38,39,
+ 40,41,42,43,44,45,46,47,48,49,
+ 13,51,52,53,0,1,0,3,0,5,
+ 6,7,8,9,10,11,12,0,0,0,
+ 0,17,18,19,20,21,6,7,8,9,
+ 10,11,12,14,15,0,73,17,18,19,
+ 20,21,38,39,40,41,42,43,44,45,
+ 46,47,48,49,0,51,52,53,0,55,
+ 56,0,1,0,3,2,5,6,7,8,
+ 9,10,11,12,57,58,13,0,17,18,
+ 19,20,21,6,7,8,9,10,11,12,
+ 0,1,0,3,17,18,19,20,21,38,
+ 39,40,41,42,43,44,45,46,47,48,
+ 49,0,51,52,53,0,55,56,0,1,
+ 0,3,2,5,6,7,8,9,10,11,
+ 12,77,78,13,0,17,18,19,20,21,
+ 6,7,8,9,10,11,12,0,37,57,
+ 58,17,18,19,20,21,38,39,40,41,
+ 42,43,44,45,46,47,48,49,0,51,
+ 52,53,0,55,56,0,1,0,3,0,
+ 5,6,7,8,9,10,11,12,16,74,
+ 0,0,17,18,19,20,21,6,7,8,
+ 9,10,11,12,57,58,0,1,17,18,
+ 19,20,21,38,39,40,41,42,43,44,
+ 45,46,47,48,49,0,51,52,53,0,
+ 55,56,0,1,5,3,0,5,6,7,
+ 8,9,10,11,12,0,69,57,58,17,
+ 18,19,20,21,0,0,79,80,81,82,
+ 83,84,85,86,87,88,0,1,89,3,
+ 38,39,40,41,42,43,44,45,46,47,
+ 48,49,0,51,52,53,0,55,56,0,
+ 1,0,3,57,58,6,7,8,9,10,
+ 11,12,0,37,75,0,17,18,19,20,
+ 21,6,7,8,9,10,11,72,64,65,
+ 66,67,0,0,1,0,3,38,39,40,
+ 41,42,43,44,45,46,47,48,49,0,
+ 51,52,53,0,1,2,3,4,5,0,
+ 1,2,70,71,5,12,54,14,15,16,
+ 37,0,13,72,0,22,23,24,25,26,
+ 27,28,29,30,31,32,33,34,35,36,
+ 16,0,1,2,3,4,5,0,0,2,
+ 0,69,5,12,4,14,15,16,73,50,
+ 13,13,59,22,23,24,25,26,27,28,
+ 29,30,31,32,33,34,35,36,0,0,
+ 1,2,3,4,5,64,65,66,67,0,
+ 1,2,0,14,15,16,4,50,0,0,
+ 59,22,23,24,25,26,27,28,29,30,
+ 31,32,33,34,35,36,37,0,0,0,
+ 1,2,0,4,6,7,8,9,10,11,
+ 12,0,13,0,55,17,18,19,20,21,
+ 0,0,64,65,66,67,6,7,8,9,
+ 10,11,54,0,62,63,38,39,40,41,
+ 42,43,44,45,46,47,48,49,0,1,
+ 2,3,4,5,0,1,2,60,4,0,
+ 0,0,14,15,16,0,1,13,3,0,
+ 22,23,24,25,26,27,28,29,30,31,
+ 32,33,34,35,36,74,0,1,2,3,
+ 4,5,0,0,2,2,4,4,37,0,
+ 14,15,16,70,71,13,13,59,22,23,
+ 24,25,26,27,28,29,30,31,32,33,
+ 34,35,36,0,0,1,2,3,4,6,
+ 7,8,9,10,11,0,37,68,14,15,
+ 16,0,1,0,3,59,22,23,24,25,
+ 26,27,28,29,30,31,32,33,34,35,
+ 36,0,1,2,3,4,0,1,2,0,
+ 4,0,37,0,5,14,15,16,37,0,
+ 56,0,0,22,23,24,25,26,27,28,
+ 29,30,31,32,33,34,35,36,37,0,
+ 1,2,3,4,0,0,0,0,0,5,
+ 5,0,69,14,15,16,0,1,2,50,
+ 13,22,23,24,25,26,27,28,29,30,
+ 31,32,33,34,35,36,37,0,1,2,
+ 3,4,0,0,0,1,0,3,5,68,
+ 0,14,15,16,50,50,14,15,54,22,
+ 23,24,25,26,27,28,29,30,31,32,
+ 33,34,35,36,37,0,1,2,3,4,
+ 0,0,0,1,68,3,0,0,0,14,
+ 15,16,0,50,14,15,4,22,23,24,
+ 25,26,27,28,29,30,31,32,33,34,
+ 35,36,0,1,2,3,4,0,0,0,
+ 0,0,0,0,0,0,14,15,16,0,
+ 0,0,0,4,22,23,24,25,26,27,
+ 28,29,30,31,32,33,34,35,36,0,
+ 1,2,3,4,62,63,0,0,0,0,
+ 0,0,0,14,15,16,0,0,0,0,
+ 0,22,23,24,25,26,27,28,29,30,
+ 31,32,33,34,35,36,0,0,2,60,
+ 4,5,6,7,8,9,10,11,12,13,
+ 13,0,1,17,18,19,20,21,0,0,
+ 2,2,4,5,6,7,8,9,10,11,
+ 12,13,13,54,0,17,18,19,20,21,
+ 0,22,23,0,4,0,50,0,0,6,
+ 7,8,9,10,11,0,0,0,61,0,
+ 13,6,7,8,9,10,11,0,50,0,
+ 0,60,0,6,7,8,9,10,11,0,
+ 61,0,0,0,5,0,5,5,0,0,
+ 0,0,0,0,60,76,0,0,0,54,
+ 0,0,62,63,0,0,0,0,61,0,
+ 54,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,54,0,0,0,55,0,0,
+ 59,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
+ };
+ };
+ public final static byte termCheck[] = TermCheck.termCheck;
+ public final int termCheck(int index) { return termCheck[index]; }
+
+ public interface TermAction {
+ public final static char termAction[] = {0,
+ 1822,599,1563,601,1549,1,2033,2034,2035,2140,
+ 1401,2141,1983,67,1542,1535,1556,1984,1982,2036,
+ 1985,1981,1528,1205,631,1832,1833,1834,1835,1403,
+ 641,2130,2131,2132,504,424,414,267,1988,1993,
+ 1992,1990,1991,1989,1994,1995,1987,1996,1997,1998,
+ 553,1186,1125,987,1822,1,1822,1,1822,189,
+ 1,1,1,1,1,1,1,53,1822,50,
+ 128,1,1,1,1,1,2033,2034,2035,2140,
+ 1401,2141,1983,1172,511,1822,1247,1984,1982,2036,
+ 1985,1981,1,1,1,1,1,1,1,1,
+ 1,1,1,1,71,1,1,1,1822,189,
+ 2016,1822,1,266,1,1156,189,1,1,1,
+ 1,1,1,1,1022,1075,553,129,1,1,
+ 1,1,1,2033,2034,2035,2140,1401,2141,1983,
+ 1822,1851,57,1852,1984,1982,2036,1985,1981,1,
+ 1,1,1,1,1,1,1,1,1,1,
+ 1,1822,1,1,1,69,189,2016,1822,1,
+ 219,1,1313,189,1,1,1,1,1,1,
+ 1,1132,1756,553,130,1,1,1,1,1,
+ 2033,2034,2035,2140,1401,2141,1983,56,1311,1022,
+ 1075,1984,1982,2036,1985,1981,1,1,1,1,
+ 1,1,1,1,1,1,1,1,1822,1,
+ 1,1,63,189,2016,1822,1,41,1,1822,
+ 188,1,1,1,1,1,1,1,523,1218,
+ 55,131,1,1,1,1,1,2033,2034,2035,
+ 2140,1401,2141,1983,1022,1075,1822,2057,1984,1982,
+ 2036,1985,1981,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1822,1,1,1,1,
+ 188,2016,1822,1,1831,1,54,189,1,1,
+ 1,1,1,1,1,65,918,1022,1075,1,
+ 1,1,1,1,58,1822,898,878,858,838,
+ 818,778,798,758,738,718,1822,2001,1806,2002,
+ 1,1,1,1,1,1,1,1,1,1,
+ 1,1,61,1,1,1,1822,189,2016,1822,
+ 2000,66,1999,1022,1075,2033,2034,2035,2140,1401,
+ 2141,1983,87,1374,1830,246,1984,1982,2036,1985,
+ 1981,1,1,1,1,1,1,1280,1435,1424,
+ 1413,1392,208,1822,2001,68,2002,1988,1993,1992,
+ 1990,1991,1989,1994,1995,1987,1996,1997,1998,1822,
+ 1186,1125,987,1,1839,1563,1840,1472,1825,1,
+ 1816,1155,1360,540,1827,575,698,1542,1535,1556,
+ 1460,60,553,1280,64,1528,1205,631,1832,1833,
+ 1834,1835,1403,641,2130,2131,2132,504,424,414,
+ 523,1822,1839,1563,1840,1514,1825,1,317,1296,
+ 1822,997,1827,958,1372,1542,1535,1556,1247,1826,
+ 553,1807,1824,1528,1205,631,1832,1833,1834,1835,
+ 1403,641,2130,2131,2132,504,424,414,59,1,
+ 1839,1563,1840,1549,27,1435,1424,1413,1392,1,
+ 2045,1444,47,1542,1535,1556,1581,1826,252,1822,
+ 1824,1528,1205,631,1832,1833,1834,1835,1403,641,
+ 2130,2131,2132,504,424,414,1594,1,127,258,
+ 2045,1155,1822,1,2033,2034,2035,2140,1401,2141,
+ 1983,70,553,1822,27,1984,1982,2036,1985,1981,
+ 1822,1822,1435,1424,1413,1392,2033,2034,2035,2140,
+ 1401,2141,1188,62,1574,1565,1988,1993,1992,1990,
+ 1991,1989,1994,1995,1987,1996,1997,1998,1822,1839,
+ 1563,1840,1549,1825,264,2045,1155,2076,1462,1822,
+ 1822,186,1542,1535,1556,205,2001,553,2002,1822,
+ 1528,1205,631,1832,1833,1834,1835,1403,641,2130,
+ 2131,2132,504,424,414,1218,1822,1839,1563,1840,
+ 1507,1825,261,264,1296,1296,1,1462,1487,185,
+ 1542,1535,1556,1360,540,553,553,1824,1528,1205,
+ 631,1832,1833,1834,1835,1403,641,2130,2131,2132,
+ 504,424,414,247,1822,1,1,1,1,1,
+ 1,1,1,1,1,187,1591,1103,1,1,
+ 1,1822,2001,1822,2002,1824,1,1,1,1,
+ 1,1,1,1,1,1,1,1,1,1,
+ 1,1822,1839,1563,1840,1549,1822,2045,1444,1,
+ 1462,1822,1593,1822,89,1542,1535,1556,1461,1822,
+ 2129,199,1822,1528,1205,631,1832,1833,1834,1835,
+ 1403,641,2130,2131,2132,504,424,414,1311,1,
+ 1839,1563,1840,1549,1822,1822,1822,217,1822,1827,
+ 1827,1822,608,1542,1535,1556,1,2045,1444,89,
+ 553,1528,1205,631,1832,1833,1834,1835,1403,641,
+ 2130,2131,2132,504,424,414,1594,1822,1839,1563,
+ 1840,1549,52,1,1822,2001,1822,2002,1827,1084,
+ 1822,1542,1535,1556,1826,1826,1172,511,1655,1528,
+ 1205,631,1832,1833,1834,1835,1403,641,2130,2131,
+ 2132,504,424,414,1594,1822,1839,1563,1840,1549,
+ 51,1822,204,1355,1050,1355,1822,1822,1822,1542,
+ 1535,1556,49,1826,1172,511,1581,1528,1205,631,
+ 1832,1833,1834,1835,1403,641,2130,2131,2132,504,
+ 424,414,1822,1839,1564,1840,1549,1822,1822,1822,
+ 1822,1822,1822,1822,1822,1822,1542,1535,1556,1,
+ 1822,1822,1822,1372,1528,1205,631,1832,1833,1834,
+ 1835,1403,641,2130,2131,2132,504,424,414,1,
+ 1839,1563,1840,1549,1574,1565,1822,1822,1822,1822,
+ 1822,1822,1822,1542,1535,1556,1822,1822,1822,28,
+ 1822,1528,1205,631,1832,1833,1834,1835,1403,641,
+ 2130,2131,2132,504,424,414,17,1822,1810,2076,
+ 1810,1810,178,178,178,178,178,178,178,1810,
+ 978,1,1819,178,178,178,178,178,18,31,
+ 1813,1636,1813,1813,177,177,177,177,177,177,
+ 177,1813,1755,484,1,177,177,177,177,177,
+ 48,1846,1847,245,1581,28,1810,284,1822,2033,
+ 2034,2035,2140,1401,2141,248,204,1822,1227,1822,
+ 1031,2033,2034,2035,2140,1401,2141,249,1813,1822,
+ 1822,2076,1822,2033,2034,2035,2140,1401,2141,1822,
+ 1071,1822,1822,1822,1831,1822,1825,1829,1822,1822,
+ 1822,1822,1822,1822,2075,603,1822,1822,1822,1849,
+ 1822,1822,1574,1565,1822,1822,1822,1822,1239,1822,
+ 2971,1822,1822,1822,1822,1822,1822,1822,1822,1822,
+ 1822,1822,1822,1822,1822,1822,1822,1822,1822,1822,
+ 1822,1822,1822,1310,1822,1822,1822,1828,1822,1822,
+ 1824,1822,1822,1822,1822,1822,1822,1822,1822,1822,
+ 1822,1822,1822,1822,1830
+ };
+ };
+ public final static char termAction[] = TermAction.termAction;
+ public final int termAction(int index) { return termAction[index]; }
+
+ public interface Asb {
+ public final static char asb[] = {0,
+ 476,1,113,41,113,113,113,113,113,113,
+ 113,113,113,113,113,113,3,324,51,48,
+ 55,53,61,59,63,62,65,64,10,113,
+ 324,247,247,451,113,185,185,278,324,113,
+ 113,113,113,113,113,113,113,113,113,113,
+ 113,113,113,113,113,113,113,113,113,113,
+ 113,113,113,113,113,113,113,113,113,185,
+ 185,45,80,282,104,214,183,182,250,317,
+ 262,262,100,100,262,100,262,344,136,136,
+ 48,48,53,53,53,53,51,51,59,55,
+ 55,62,61,401,64,63,102,78,278,270,
+ 107,45,367,189,185,414,217,189,380,284,
+ 380,284,374,380,113,78,270,367,367,45,
+ 188,104,185,276,344,184,219,45,189,284,
+ 284,284,284,374,374,376,404,78,367,270,
+ 113,113,45,189,214,396,395,282,219,185,
+ 284,314,407,284,284,314,376,446,376,374,
+ 314,76,449,247,113,403,78,270,45,45,
+ 185,414,217,276,314,409,314,314,113,247,
+ 376,80,45,247,113,376,219,72,113,71,
+ 132,282,314,45,314,185,184,409,113,132,
+ 248
+ };
+ };
+ public final static char asb[] = Asb.asb;
+ public final int asb(int index) { return asb[index]; }
+
+ public interface Asr {
+ public final static byte asr[] = {0,
+ 89,0,75,13,2,61,76,22,23,16,
+ 4,14,15,62,63,57,58,64,65,66,
+ 67,70,71,72,73,74,77,78,55,69,
+ 79,80,81,82,83,85,84,86,87,88,
+ 68,50,89,54,59,5,0,4,62,63,
+ 14,15,58,57,64,65,66,67,70,71,
+ 16,72,73,74,59,50,55,89,77,78,
+ 68,75,5,54,0,5,55,13,61,22,
+ 23,16,4,14,15,29,30,24,34,35,
+ 36,2,25,26,27,28,31,32,33,1,
+ 3,37,0,59,5,12,6,7,8,9,
+ 10,11,25,26,27,28,31,32,33,3,
+ 22,23,16,14,15,29,30,24,34,35,
+ 36,4,2,1,0,7,12,21,8,20,
+ 19,18,6,17,9,10,11,61,76,22,
+ 23,16,14,15,62,63,57,58,64,65,
+ 66,67,70,71,72,73,74,77,78,69,
+ 79,80,81,82,83,84,85,86,87,88,
+ 4,2,13,54,50,5,0,12,59,5,
+ 22,23,16,4,14,15,29,30,24,34,
+ 35,36,2,1,3,25,26,27,28,31,
+ 32,33,0,4,2,13,50,5,17,38,
+ 6,39,51,18,40,19,41,42,20,7,
+ 43,44,12,52,21,53,45,46,8,47,
+ 48,49,9,10,11,60,3,1,0,46,
+ 38,43,41,42,40,39,44,45,47,48,
+ 49,68,75,21,18,12,17,20,19,6,
+ 7,8,9,10,11,54,1,5,50,2,
+ 13,4,0,17,38,6,39,51,18,40,
+ 19,41,42,20,7,43,44,12,52,21,
+ 53,45,46,8,47,48,49,1,3,9,
+ 10,11,56,55,5,0,5,68,54,59,
+ 50,75,13,24,25,26,27,28,2,22,
+ 23,16,4,14,15,29,30,31,32,33,
+ 34,35,36,3,1,51,52,53,46,38,
+ 43,41,42,40,39,44,45,47,48,49,
+ 21,18,12,17,20,19,6,7,8,10,
+ 9,11,0,1,3,5,55,54,0,17,
+ 6,18,19,20,7,12,21,8,1,4,
+ 9,10,11,37,2,5,54,50,75,13,
+ 68,0,69,13,61,0,75,5,4,1,
+ 2,68,0,17,38,6,39,51,18,40,
+ 19,41,42,20,7,43,44,12,52,21,
+ 53,45,46,8,47,48,49,1,3,9,
+ 10,11,60,4,0,5,54,55,69,0,
+ 5,50,24,25,26,27,28,1,3,2,
+ 22,23,16,4,14,15,29,30,31,32,
+ 33,34,35,36,0,24,25,26,27,28,
+ 1,3,2,22,23,16,4,14,15,29,
+ 30,31,32,33,34,35,36,56,0
+ };
+ };
+ public final static byte asr[] = Asr.asr;
+ public final int asr(int index) { return asr[index]; }
+
+ public interface Nasb {
+ public final static byte nasb[] = {0,
+ 81,8,13,8,13,13,13,13,13,13,
+ 13,13,13,13,13,13,8,59,8,8,
+ 8,8,8,8,8,8,8,8,8,13,
+ 59,19,19,78,60,35,35,51,1,13,
+ 13,13,13,13,13,13,13,13,13,13,
+ 13,13,13,13,13,60,13,13,13,13,
+ 13,13,13,13,13,13,13,13,13,35,
+ 35,17,13,72,15,50,9,9,43,55,
+ 44,44,25,25,44,25,44,39,8,8,
+ 8,8,8,8,8,8,8,8,8,8,
+ 8,8,8,8,8,8,8,86,52,86,
+ 12,17,68,16,35,70,34,16,8,86,
+ 8,86,86,8,13,12,86,68,68,17,
+ 16,57,35,28,2,8,85,17,16,86,
+ 74,86,74,25,86,23,21,86,68,57,
+ 13,13,17,16,27,9,9,72,85,35,
+ 74,37,65,88,74,37,23,8,8,25,
+ 37,11,8,25,13,63,12,57,17,17,
+ 35,70,34,29,37,46,37,37,13,25,
+ 23,13,17,25,13,23,84,66,13,8,
+ 46,72,37,17,37,35,35,46,13,31,
+ 8
+ };
+ };
+ public final static byte nasb[] = Nasb.nasb;
+ public final int nasb(int index) { return nasb[index]; }
+
+ public interface Nasr {
+ public final static char nasr[] = {0,
+ 4,79,78,77,76,75,74,0,27,0,
+ 68,9,4,0,9,4,20,0,70,0,
+ 91,0,53,0,29,0,25,9,46,45,
+ 38,36,0,9,25,0,28,0,63,64,
+ 65,66,54,30,0,9,38,36,0,25,
+ 9,46,45,0,94,0,21,0,34,9,
+ 48,0,93,0,9,69,0,60,0,9,
+ 26,51,0,58,9,34,0,9,86,0,
+ 9,85,0,88,26,9,0,9,34,50,
+ 0
+ };
+ };
+ public final static char nasr[] = Nasr.nasr;
+ public final int nasr(int index) { return nasr[index]; }
+
+ public interface TerminalIndex {
+ public final static char terminalIndex[] = {0,
+ 85,2,86,9,87,48,64,76,96,97,
+ 98,69,1,10,11,8,44,55,60,63,
+ 72,6,7,68,81,82,83,84,12,13,
+ 93,94,95,100,101,102,3,47,52,56,
+ 61,62,66,67,74,75,78,79,80,90,
+ 54,70,73,42,91,107,16,17,89,30,
+ 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;
+ public final int terminalIndex(int index) { return terminalIndex[index]; }
+
+ public interface NonterminalIndex {
+ public final static char nonterminalIndex[] = {0,
+ 0,0,0,115,119,120,121,122,0,123,
+ 124,125,126,127,128,129,130,131,132,110,
+ 143,0,0,0,111,136,163,112,135,142,
+ 0,0,0,154,159,161,0,162,0,0,
+ 0,0,134,172,173,174,0,114,151,153,
+ 160,169,0,145,150,0,0,152,164,167,
+ 168,171,146,147,148,149,158,175,113,116,
+ 117,118,133,137,138,139,140,141,144,156,
+ 0,0,157,166,109,0,155,165,170,176,
+ 177,0,178,179,0,0,0,0,0,0,
+ 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;
+ public final int nonterminalIndex(int index) { return nonterminalIndex[index]; }
+
+ public interface ScopePrefix {
+ public final static char scopePrefix[] = {
+ 198,106,45,55,113,133,139,176,12,19,
+ 73,91,145,150,61,26,69,38,123,213,
+ 217,38,38,185,38,1,1,1,30,33,
+ 78,101,33,221,6,127,192,167,192,119,
+ 155,155,155,155,155,81,81,81
+ };
+ };
+ public final static char scopePrefix[] = ScopePrefix.scopePrefix;
+ public final int scopePrefix(int index) { return scopePrefix[index]; }
+
+ public interface ScopeSuffix {
+ public final static char scopeSuffix[] = {
+ 17,17,4,4,17,17,17,182,17,24,
+ 4,24,17,17,66,24,4,4,121,24,
+ 4,42,66,189,51,4,4,4,24,36,
+ 4,24,104,24,9,130,195,170,206,121,
+ 157,159,161,163,165,88,83,96
+ };
+ };
+ public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
+ public final int scopeSuffix(int index) { return scopeSuffix[index]; }
+
+ public interface ScopeLhs {
+ public final static char scopeLhs[] = {
+ 4,65,27,27,65,63,63,101,55,47,
+ 27,41,63,63,27,47,27,27,50,4,
+ 4,27,27,18,27,94,93,92,45,62,
+ 27,38,49,2,68,50,6,102,4,50,
+ 78,77,76,75,74,41,39,41
+ };
+ };
+ public final static char scopeLhs[] = ScopeLhs.scopeLhs;
+ public final int scopeLhs(int index) { return scopeLhs[index]; }
+
+ public interface ScopeLa {
+ public final static byte scopeLa[] = {
+ 55,55,59,59,55,55,55,95,55,50,
+ 59,50,55,55,25,50,59,59,75,50,
+ 59,4,25,68,12,59,59,59,50,2,
+ 59,50,1,50,69,1,50,101,50,75,
+ 3,51,52,52,46,2,2,2
+ };
+ };
+ public final static byte scopeLa[] = ScopeLa.scopeLa;
+ public final int scopeLa(int index) { return scopeLa[index]; }
+
+ public interface ScopeStateSet {
+ public final static byte scopeStateSet[] = {
+ 36,21,25,25,21,21,21,-1,96,29,
+ 25,11,21,21,25,29,25,25,5,36,
+ 36,25,25,70,25,19,1,3,29,31,
+ 25,11,13,36,97,5,42,-1,36,5,
+ 22,22,22,22,22,11,11,11
+ };
+ };
+ public final static byte scopeStateSet[] = ScopeStateSet.scopeStateSet;
+ public final int scopeStateSet(int index) { return scopeStateSet[index]; }
+
+ public interface ScopeRhs {
+ public final static char scopeRhs[] = {0,
+ 150,13,0,110,0,197,116,0,31,150,
+ 0,160,179,116,37,0,112,0,166,116,
+ 2,152,0,111,0,166,116,2,0,169,
+ 2,0,158,116,0,172,0,191,116,13,
+ 0,9,110,0,126,12,191,116,13,0,
+ 69,132,110,0,126,191,116,12,13,0,
+ 191,116,12,13,0,132,110,0,126,12,
+ 13,0,126,191,116,13,0,126,13,0,
+ 145,0,2,0,165,111,0,2,111,0,
+ 166,116,2,145,0,2,0,164,111,0,
+ 156,2,0,159,0,160,189,116,37,136,
+ 51,0,160,189,116,37,51,0,141,0,
+ 113,0,194,116,141,0,116,141,0,155,
+ 113,0,164,116,37,136,53,0,164,116,
+ 37,136,52,0,164,116,37,53,0,164,
+ 116,37,52,0,186,0,149,0,148,0,
+ 147,0,146,0,145,0,204,94,0,77,
+ 2,114,111,113,0,204,132,155,2,98,
+ 0,53,0,0,155,78,124,0,29,131,
+ 0,178,2,0,111,120,0,160,179,116,
+ 37,132,178,2,0,111,3,0,118,0,
+ 112,0,193,2,111,0,155,13,111,0,
+ 155,2,0
+ };
+ };
+ public final static char scopeRhs[] = ScopeRhs.scopeRhs;
+ public final int scopeRhs(int index) { return scopeRhs[index]; }
+
+ public interface ScopeState {
+ public final static char scopeState[] = {0,
+ 1592,0,927,0,1642,1719,1639,1637,1624,0,
+ 1411,1262,1310,1444,1295,1155,1122,0,1401,0,
+ 1213,574,357,0,1677,1643,602,385,1262,1666,
+ 1155,1122,1296,1459,0,1528,1205,631,504,424,
+ 414,1514,1507,1472,1613,1218,1132,1280,1247,1360,
+ 540,523,1075,1022,1435,1424,1413,1392,1581,1574,
+ 1565,1172,511,1556,1549,1542,1535,1403,641,1084,
+ 1050,1031,997,978,958,938,675,1103,654,575,
+ 553,918,898,878,858,838,818,798,778,758,
+ 738,718,357,698,437,608,464,484,391,0
+ };
+ };
+ public final static char scopeState[] = ScopeState.scopeState;
+ public final int scopeState(int index) { return scopeState[index]; }
+
+ public interface InSymb {
+ public final static char inSymb[] = {0,
+ 0,192,116,180,36,35,34,24,30,29,
+ 15,14,4,16,23,22,111,2,115,114,
+ 118,117,120,119,122,121,124,123,112,54,
+ 2,76,61,2,13,178,155,141,116,15,
+ 14,63,62,4,67,66,65,64,57,58,
+ 16,71,70,73,72,78,77,74,88,87,
+ 86,84,85,83,82,81,80,79,69,178,
+ 193,155,132,116,13,2,153,152,181,10,
+ 182,183,53,52,184,51,185,186,1,3,
+ 114,114,117,117,117,117,115,115,119,118,
+ 118,121,120,155,123,122,132,37,158,4,
+ 12,126,116,4,169,116,2,13,136,37,
+ 136,37,37,136,68,116,4,116,116,126,
+ 191,167,166,133,116,168,116,150,4,37,
+ 116,37,116,116,37,179,116,37,116,167,
+ 191,12,126,4,2,143,145,116,54,166,
+ 116,164,141,165,116,164,189,136,190,116,
+ 160,54,197,61,13,198,116,167,126,126,
+ 156,116,2,158,164,116,164,160,69,54,
+ 189,69,150,61,13,179,116,194,68,156,
+ 2,116,160,150,160,166,195,54,68,158,
+ 54
+ };
+ };
+ public final static char inSymb[] = InSymb.inSymb;
+ public final int inSymb(int index) { return inSymb[index]; }
+
+ public interface Name {
+ public final static String name[] = {
+ "",
+ "[",
+ "(",
+ "{",
+ ".",
+ "->",
+ "++",
+ "--",
+ "&",
+ "*",
+ "+",
+ "-",
+ "~",
+ "!",
+ "/",
+ "%",
+ ">>",
+ "<<",
+ "<",
+ ">",
+ "<=",
+ ">=",
+ "==",
+ "!=",
+ "^",
+ "|",
+ "&&",
+ "||",
+ "?",
+ ":",
+ "...",
+ "=",
+ "*=",
+ "/=",
+ "%=",
+ "+=",
+ "-=",
+ ">>=",
+ "<<=",
+ "&=",
+ "^=",
+ "|=",
+ ",",
+ "$empty",
+ "auto",
+ "break",
+ "case",
+ "char",
+ "const",
+ "continue",
+ "default",
+ "do",
+ "double",
+ "else",
+ "enum",
+ "extern",
+ "float",
+ "for",
+ "goto",
+ "if",
+ "inline",
+ "int",
+ "long",
+ "register",
+ "restrict",
+ "return",
+ "short",
+ "signed",
+ "sizeof",
+ "static",
+ "struct",
+ "switch",
+ "typedef",
+ "union",
+ "unsigned",
+ "void",
+ "volatile",
+ "while",
+ "_Bool",
+ "_Complex",
+ "_Imaginary",
+ "integer",
+ "floating",
+ "charconst",
+ "stringlit",
+ "identifier",
+ "Completion",
+ "EndOfCompletion",
+ "Invalid",
+ "RightBracket",
+ "RightParen",
+ "RightBrace",
+ "SemiColon",
+ "MYTHREAD",
+ "THREADS",
+ "UPC_MAX_BLOCKSIZE",
+ "relaxed",
+ "shared",
+ "strict",
+ "upc_barrier",
+ "upc_localsizeof",
+ "upc_blocksizeof",
+ "upc_elemsizeof",
+ "upc_notify",
+ "upc_fence",
+ "upc_wait",
+ "upc_forall",
+ "ERROR_TOKEN",
+ "EOF_TOKEN",
+ "no_sizeof_type_name_start",
+ "]",
+ ")",
+ "}",
+ ";",
+ "expression",
+ "postfix_expression",
+ "member_name",
+ "type_name",
+ "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",
+ "conditional_expression",
+ "assignment_expression",
+ "expression_list_actual",
+ "constant_expression",
+ "identifier_or_typedefname",
+ "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",
+ "typedef_name_in_declspec",
+ "initializer",
+ "declarator",
+ "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",
+ "designated_initializer",
+ "designation",
+ "designator_list",
+ "designator",
+ "layout_qualifier"
+ };
+ };
+ public final static String name[] = Name.name;
+ public final String name(int index) { return name[index]; }
+
+ public final static int
+ ERROR_SYMBOL = 56,
+ SCOPE_UBOUND = 47,
+ SCOPE_SIZE = 48,
+ MAX_NAME_LENGTH = 38;
+
+ public final int getErrorSymbol() { return ERROR_SYMBOL; }
+ public final int getScopeUbound() { return SCOPE_UBOUND; }
+ public final int getScopeSize() { return SCOPE_SIZE; }
+ public final int getMaxNameLength() { return MAX_NAME_LENGTH; }
+
+ public final static int
+ NUM_STATES = 211,
+ NT_OFFSET = 107,
+ LA_STATE_OFFSET = 2178,
+ MAX_LA = 2,
+ NUM_RULES = 356,
+ NUM_NONTERMINALS = 120,
+ NUM_SYMBOLS = 227,
+ SEGMENT_SIZE = 8192,
+ START_STATE = 1638,
+ IDENTIFIER_SYMBOL = 0,
+ EOFT_SYMBOL = 89,
+ EOLT_SYMBOL = 89,
+ ACCEPT_ACTION = 1806,
+ ERROR_ACTION = 1822;
+
+ public final static boolean BACKTRACK = true;
+
+ public final int getNumStates() { return NUM_STATES; }
+ public final int getNtOffset() { return NT_OFFSET; }
+ public final int getLaStateOffset() { return LA_STATE_OFFSET; }
+ public final int getMaxLa() { return MAX_LA; }
+ public final int getNumRules() { return NUM_RULES; }
+ public final int getNumNonterminals() { return NUM_NONTERMINALS; }
+ public final int getNumSymbols() { return NUM_SYMBOLS; }
+ public final int getSegmentSize() { return SEGMENT_SIZE; }
+ public final int getStartState() { return START_STATE; }
+ public final int getStartSymbol() { return lhs[0]; }
+ public final int getIdentifierSymbol() { return IDENTIFIER_SYMBOL; }
+ public final int getEoftSymbol() { return EOFT_SYMBOL; }
+ public final int getEoltSymbol() { return EOLT_SYMBOL; }
+ public final int getAcceptAction() { return ACCEPT_ACTION; }
+ public final int getErrorAction() { return ERROR_ACTION; }
+ public final boolean isValidForParser() { return isValidForParser; }
+ public final boolean getBacktrack() { return BACKTRACK; }
+
+ public final int originalState(int state) {
+ return -baseCheck[state];
+ }
+ public final int asi(int state) {
+ return asb[originalState(state)];
+ }
+ public final int nasi(int state) {
+ return nasb[originalState(state)];
+ }
+ public final int inSymbol(int state) {
+ return inSymb[originalState(state)];
+ }
+
+ public final int ntAction(int state, int sym) {
+ return baseAction[state + sym];
+ }
+
+ public final int tAction(int state, int sym) {
+ int i = baseAction[state],
+ k = i + sym;
+ return termAction[termCheck[k] == sym ? k : i];
+ }
+ public final int lookAhead(int la_state, int sym) {
+ int k = la_state + sym;
+ return termAction[termCheck[k] == sym ? k : la_state];
+ }
+}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParsersym.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParsersym.java
new file mode 100644
index 00000000000..62f3c15c294
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCSizeofExpressionParsersym.java
@@ -0,0 +1,238 @@
+/*******************************************************************************
+* Copyright (c) 2006, 2008 IBM Corporation and others.
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+*
+* Contributors:
+* IBM Corporation - initial API and implementation
+*********************************************************************************/
+
+// This file was generated by LPG
+
+package org.eclipse.cdt.internal.core.dom.parser.upc;
+
+public interface UPCSizeofExpressionParsersym {
+ public final static int
+ TK_auto = 17,
+ TK_break = 90,
+ TK_case = 91,
+ TK_char = 38,
+ TK_const = 6,
+ TK_continue = 92,
+ TK_default = 93,
+ TK_do = 94,
+ TK_double = 39,
+ TK_else = 95,
+ TK_enum = 51,
+ TK_extern = 18,
+ TK_float = 40,
+ TK_for = 96,
+ TK_goto = 97,
+ TK_if = 98,
+ TK_inline = 19,
+ TK_int = 41,
+ TK_long = 42,
+ TK_register = 20,
+ TK_restrict = 7,
+ TK_return = 99,
+ TK_short = 43,
+ TK_signed = 44,
+ TK_sizeof = 24,
+ TK_static = 12,
+ TK_struct = 52,
+ TK_switch = 100,
+ TK_typedef = 21,
+ TK_union = 53,
+ TK_unsigned = 45,
+ TK_void = 46,
+ TK_volatile = 8,
+ TK_while = 101,
+ TK__Bool = 47,
+ TK__Complex = 48,
+ TK__Imaginary = 49,
+ TK_integer = 25,
+ TK_floating = 26,
+ TK_charconst = 27,
+ TK_stringlit = 28,
+ TK_identifier = 1,
+ TK_Completion = 3,
+ TK_EndOfCompletion = 5,
+ TK_Invalid = 102,
+ TK_LeftBracket = 13,
+ TK_LeftParen = 2,
+ TK_LeftBrace = 37,
+ TK_Dot = 61,
+ TK_Arrow = 76,
+ TK_PlusPlus = 22,
+ TK_MinusMinus = 23,
+ TK_And = 16,
+ TK_Star = 4,
+ TK_Plus = 14,
+ TK_Minus = 15,
+ TK_Tilde = 29,
+ TK_Bang = 30,
+ TK_Slash = 62,
+ TK_Percent = 63,
+ TK_RightShift = 57,
+ TK_LeftShift = 58,
+ 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 = 60,
+ 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 = 54,
+ TK_RightBracket = 59,
+ TK_RightParen = 50,
+ TK_RightBrace = 55,
+ TK_SemiColon = 75,
+ TK_MYTHREAD = 31,
+ TK_THREADS = 32,
+ TK_UPC_MAX_BLOCKSIZE = 33,
+ TK_relaxed = 9,
+ TK_shared = 10,
+ TK_strict = 11,
+ TK_upc_barrier = 103,
+ TK_upc_localsizeof = 34,
+ TK_upc_blocksizeof = 35,
+ TK_upc_elemsizeof = 36,
+ TK_upc_notify = 104,
+ TK_upc_fence = 105,
+ TK_upc_wait = 106,
+ TK_upc_forall = 107,
+ TK_ERROR_TOKEN = 56,
+ TK_EOF_TOKEN = 89;
+
+ public final static String orderedTerminalSymbols[] = {
+ "",
+ "identifier",
+ "LeftParen",
+ "Completion",
+ "Star",
+ "EndOfCompletion",
+ "const",
+ "restrict",
+ "volatile",
+ "relaxed",
+ "shared",
+ "strict",
+ "static",
+ "LeftBracket",
+ "Plus",
+ "Minus",
+ "And",
+ "auto",
+ "extern",
+ "inline",
+ "register",
+ "typedef",
+ "PlusPlus",
+ "MinusMinus",
+ "sizeof",
+ "integer",
+ "floating",
+ "charconst",
+ "stringlit",
+ "Tilde",
+ "Bang",
+ "MYTHREAD",
+ "THREADS",
+ "UPC_MAX_BLOCKSIZE",
+ "upc_localsizeof",
+ "upc_blocksizeof",
+ "upc_elemsizeof",
+ "LeftBrace",
+ "char",
+ "double",
+ "float",
+ "int",
+ "long",
+ "short",
+ "signed",
+ "unsigned",
+ "void",
+ "_Bool",
+ "_Complex",
+ "_Imaginary",
+ "RightParen",
+ "enum",
+ "struct",
+ "union",
+ "Comma",
+ "RightBrace",
+ "ERROR_TOKEN",
+ "RightShift",
+ "LeftShift",
+ "RightBracket",
+ "DotDotDot",
+ "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;
+}

Back to the top