Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Kucera2008-04-07 22:45:08 +0000
committerMike Kucera2008-04-07 22:45:08 +0000
commit83cc247f9cf70834f9584bcfaf363545b985c57b (patch)
treec039835aa9ace13512cb4212fb24533de00ec85c
parent97a10ee586ea2b454c3617b26c121e7479b7e7fe (diff)
downloadorg.eclipse.cdt-83cc247f9cf70834f9584bcfaf363545b985c57b.tar.gz
org.eclipse.cdt-83cc247f9cf70834f9584bcfaf363545b985c57b.tar.xz
org.eclipse.cdt-83cc247f9cf70834f9584bcfaf363545b985c57b.zip
adapting the UPC plugin to the new LR parser (work in progress)
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser.tests/META-INF/MANIFEST.MF4
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/META-INF/MANIFEST.MF1
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/BaseExtensibleLanguage.java2
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/CPreprocessorAdapter.java19
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/IDOMTokenMap.java (renamed from upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCLexerFactory.java)22
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ITokenMap.java4
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99BuildASTParserAction.java23
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/c99/C99Language.java8
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/c99/DOMToC99TokenMap.java16
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/cpp/DOMToISOCPPTokenMap.java18
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/cpp/ISOCPPLanguage.java6
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/META-INF/MANIFEST.MF6
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99CommentTests.java4
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99CompleteParser2Tests.java4
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99CompletionBasicTest.java6
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99CompletionParseTest.java4
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99DOMLocationInclusionTests.java4
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99DOMLocationMacroTests.java4
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99DOMLocationTests.java4
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99DOMPreprocessorInformationTest.java4
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99DigraphTrigraphTests.java4
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99GCCTests.java4
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99KnRTests.java4
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99SelectionParseTest.java4
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99SpecTests.java4
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99TaskParserTest.java4
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99Tests.java4
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99UtilOldTests.java4
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCC99UtilTests.java4
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc.tests/src/org/eclipse/cdt/core/parser/upc/tests/UPCLanguageExtensionTests.java32
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/META-INF/MANIFEST.MF2
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/grammar/UPCParser.g (renamed from upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParser.g)0
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/DOMToUPCTokenMap.java153
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCASTNodeFactory.java56
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCKeyword.java69
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCKeywordMap.java106
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCParserAction.java146
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/UPCLanguage.java113
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTForallStatement.java12
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTTypeIdExpression.java12
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTUnaryExpression.java (renamed from upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTSizeofExpression.java)16
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCLexer.g30
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCLexer.java518
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCLexerprs.java580
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCLexersym.java222
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCPPTokenComparator.java153
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParser.java63
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCTokenCollector.java39
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTCompositeTypeSpecifier.java20
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTElaboratedTypeSpecifier.java19
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTEnumerationSpecifier.java19
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTForallStatement.java15
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTKeywordExpression.java9
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTSimpleDeclSpecifier.java15
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTSynchronizationStatement.java16
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTTypeIdExpression.java18
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTTypedefNameSpecifier.java15
-rw-r--r--upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTUnaryExpression.java (renamed from upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTSizeofExpression.java)28
58 files changed, 696 insertions, 1999 deletions
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/META-INF/MANIFEST.MF b/lrparser/org.eclipse.cdt.core.lrparser.tests/META-INF/MANIFEST.MF
index 7081dd0820a..cc7e403d766 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser.tests/META-INF/MANIFEST.MF
+++ b/lrparser/org.eclipse.cdt.core.lrparser.tests/META-INF/MANIFEST.MF
@@ -11,6 +11,8 @@ Require-Bundle: org.eclipse.core.runtime,
org.eclipse.core.resources,
org.eclipse.cdt.core.lrparser;bundle-version="4.0.1"
Eclipse-LazyStart: true
-Export-Package: org.eclipse.cdt.core.lrparser.tests.c99
+Export-Package: org.eclipse.cdt.core.lrparser.tests,
+ org.eclipse.cdt.core.lrparser.tests.c99,
+ org.eclipse.cdt.core.lrparser.tests.cpp
Bundle-Vendor: %Bundle-Vendor.0
Bundle-Localization: plugin
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/META-INF/MANIFEST.MF b/lrparser/org.eclipse.cdt.core.lrparser/META-INF/MANIFEST.MF
index 437fcd4d0bc..88b1935a825 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/META-INF/MANIFEST.MF
+++ b/lrparser/org.eclipse.cdt.core.lrparser/META-INF/MANIFEST.MF
@@ -9,6 +9,7 @@ Require-Bundle: org.eclipse.cdt.core,
org.eclipse.core.runtime
Export-Package: org.eclipse.cdt.core.dom.lrparser,
org.eclipse.cdt.core.dom.lrparser.action,
+ org.eclipse.cdt.core.dom.lrparser.action.c99,
org.eclipse.cdt.core.dom.lrparser.c99,
org.eclipse.cdt.core.dom.lrparser.cpp,
org.eclipse.cdt.internal.core.dom.lrparser.c99;x-internal:=true
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/BaseExtensibleLanguage.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/BaseExtensibleLanguage.java
index e0b3caed85d..04940c8de70 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/BaseExtensibleLanguage.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/BaseExtensibleLanguage.java
@@ -62,7 +62,7 @@ public abstract class BaseExtensibleLanguage extends AbstractLanguage implements
* A token map is used to map tokens from the DOM preprocessor
* to the tokens defined by an LPG parser.
*/
- protected abstract ITokenMap getTokenMap();
+ protected abstract IDOMTokenMap getTokenMap();
/**
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/CPreprocessorAdapter.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/CPreprocessorAdapter.java
index 8e71052a18f..59a97637df2 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/CPreprocessorAdapter.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/CPreprocessorAdapter.java
@@ -14,7 +14,6 @@ import lpg.lpgjavaruntime.IToken;
import lpg.lpgjavaruntime.Token;
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
import org.eclipse.cdt.core.parser.EndOfFileException;
import org.eclipse.cdt.core.parser.IScanner;
@@ -40,9 +39,7 @@ class CPreprocessorAdapter {
private static final int DUMMY_TOKEN_KIND = 0;
-
private static final int tCOMPLETION = org.eclipse.cdt.core.parser.IToken.tCOMPLETION;
- private static final int tEND_OF_INPUT = org.eclipse.cdt.core.parser.IToken.tEND_OF_INPUT;
private static final int tEOC = org.eclipse.cdt.core.parser.IToken.tEOC;
@@ -53,7 +50,7 @@ class CPreprocessorAdapter {
* TODO: should preprocessor.nextTokenRaw() be called instead?
*/
@SuppressWarnings("restriction")
- public static void runCPreprocessor(IScanner preprocessor, ITokenCollector tokenCollector, ITokenMap tokenMap, IASTTranslationUnit tu) {
+ public static void runCPreprocessor(IScanner preprocessor, ITokenCollector tokenCollector, IDOMTokenMap tokenMap, IASTTranslationUnit tu) {
// LPG requires that the token stream start with a dummy token
tokenCollector.addToken(createDummyToken());
@@ -62,12 +59,12 @@ class CPreprocessorAdapter {
try {
while(true) {
org.eclipse.cdt.core.parser.IToken domToken = preprocessor.nextToken(); // throws EndOfFileException
- int type = domToken.getType();
-
- int newKind = tokenMap.mapKind(type);
+
+ int newKind = tokenMap.mapKind(domToken);
IToken token = new LPGTokenAdapter(domToken, newKind);
tokenCollector.addToken(token);
+ int type = domToken.getType();
if(type == tCOMPLETION) {
// the token after the completion token must be an EOC token
org.eclipse.cdt.core.parser.IToken domEocToken = preprocessor.nextToken();
@@ -90,16 +87,16 @@ class CPreprocessorAdapter {
- private static IToken createEOCToken(org.eclipse.cdt.core.parser.IToken domEocToken, ITokenMap tokenMap) {
- return new LPGTokenAdapter(domEocToken, tokenMap.mapKind(domEocToken.getType()));
+ private static IToken createEOCToken(org.eclipse.cdt.core.parser.IToken domEocToken, IDOMTokenMap tokenMap) {
+ return new LPGTokenAdapter(domEocToken, tokenMap.mapKind(domEocToken));
}
private static IToken createDummyToken() {
return new Token(null, 0, 0, DUMMY_TOKEN_KIND);
}
- private static IToken createEOFToken(ITokenMap tokenMap) {
- return new Token(null, 0, 0, tokenMap.mapKind(tEND_OF_INPUT));
+ private static IToken createEOFToken(IDOMTokenMap tokenMap) {
+ return new Token(null, 0, 0, tokenMap.getEOFTokenKind());
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCLexerFactory.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/IDOMTokenMap.java
index c61d7d2c8d1..4a2691f4cb5 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCLexerFactory.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/IDOMTokenMap.java
@@ -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
@@ -8,19 +8,19 @@
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
-package org.eclipse.cdt.internal.core.dom.parser.upc;
+package org.eclipse.cdt.core.dom.lrparser;
-import org.eclipse.cdt.core.dom.c99.ILexer;
-import org.eclipse.cdt.core.dom.c99.ILexerFactory;
-import org.eclipse.cdt.core.parser.CodeReader;
+import org.eclipse.cdt.core.parser.IToken;
/**
- * Creates new lexers for tokenizing included files.
+ * Maps tokens returned by CPreprocessor to the corresponding
+ * token kind used by an LPG based parser.
+ *
+ * @author Mike Kucera
+ *
*/
-public class UPCLexerFactory implements ILexerFactory {
-
- public ILexer createLexer(CodeReader reader) {
- return new UPCLexer(reader);
- }
+public interface IDOMTokenMap {
+ int mapKind(IToken token);
+ int getEOFTokenKind();
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ITokenMap.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ITokenMap.java
index 57ff7245bf8..16fddd959b1 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ITokenMap.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/ITokenMap.java
@@ -16,10 +16,6 @@ package org.eclipse.cdt.core.dom.lrparser.action;
* Maps tokens defined in parser extensions back to the token kinds
* defined in the lr parsers.
*
- * When LPG is used to generate a parser extension it will
- * generate all-new token kinds. In order for the semantic actions to be able
- * to interpret these token kinds correctly they will be mapped back
- * to the token kinds defined in C99Parsersym.
*
* @author Mike Kucera
*/
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99BuildASTParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99BuildASTParserAction.java
index 177770231b1..876b203715c 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99BuildASTParserAction.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99BuildASTParserAction.java
@@ -217,13 +217,18 @@ public class C99BuildASTParserAction extends BuildASTParserAction {
/**
- * Sets a token specifier.
- * Needs to be overrideable for new decl spec keywords.
+ * Applies a specifier to a decl spec node.
*
- * @param token Allows subclasses to override this method and use any
- * object to determine how to set a specifier.
+ * In plain C99 specifiers are always just single tokens, but in language
+ * extensions specifiers may be more complex. Thats why this method takes
+ * Object as the type of the specifier, so that it may be overridden in subclasses
+ * and used with arbitray objects as the specifier.
*/
- protected void setSpecifier(ICASTDeclSpecifier node, IToken token) {
+ protected void setSpecifier(ICASTDeclSpecifier node, Object specifier) {
+ if(!(specifier instanceof IToken))
+ return;
+ IToken token = (IToken)specifier;
+
int kind = asC99Kind(token);
switch(kind){
case TK_typedef: node.setStorageClass(IASTDeclSpecifier.sc_typedef); return;
@@ -479,8 +484,8 @@ public class C99BuildASTParserAction extends BuildASTParserAction {
ICASTSimpleDeclSpecifier declSpec = nodeFactory.newCSimpleDeclSpecifier();
- for(Object token : astStack.closeScope())
- setSpecifier(declSpec, (IToken)token);
+ for(Object specifier : astStack.closeScope())
+ setSpecifier(declSpec, specifier);
setOffsetAndLength(declSpec);
astStack.push(declSpec);
@@ -500,8 +505,8 @@ public class C99BuildASTParserAction extends BuildASTParserAction {
ICASTDeclSpecifier declSpec = CollectionUtils.findFirstAndRemove(topScope, ICASTDeclSpecifier.class);
// now apply the rest of the specifiers
- for(Object token : topScope)
- setSpecifier(declSpec, (IToken)token);
+ for(Object specifier : topScope)
+ setSpecifier(declSpec, specifier);
setOffsetAndLength(declSpec);
astStack.push(declSpec);
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/c99/C99Language.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/c99/C99Language.java
index ceaf4831a9c..93cd22073d0 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/c99/C99Language.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/c99/C99Language.java
@@ -15,10 +15,9 @@ import org.eclipse.cdt.core.dom.ast.IASTName;
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
import org.eclipse.cdt.core.dom.ast.gnu.c.GCCLanguage;
import org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage;
+import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
import org.eclipse.cdt.core.dom.lrparser.IParser;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
import org.eclipse.cdt.core.dom.lrparser.action.c99.C99ASTNodeFactory;
-import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPASTNodeFactory;
import org.eclipse.cdt.core.index.IIndex;
import org.eclipse.cdt.core.model.IContributedModelBuilder;
import org.eclipse.cdt.core.model.ITranslationUnit;
@@ -26,7 +25,6 @@ import org.eclipse.cdt.core.parser.IScanner;
import org.eclipse.cdt.core.parser.ParserLanguage;
import org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parser;
import org.eclipse.cdt.internal.core.dom.parser.c.CASTTranslationUnit;
-import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTTranslationUnit;
/**
* ILanguage implementation for the C99 parser.
@@ -38,7 +36,7 @@ public class C99Language extends BaseExtensibleLanguage {
public static final String PLUGIN_ID = "org.eclipse.cdt.core.lrparser"; //$NON-NLS-1$
public static final String ID = PLUGIN_ID + ".c99"; //$NON-NLS-1$
- private static final ITokenMap TOKEN_MAP = DOMToC99TokenMap.DEFAULT_MAP;
+ private static final IDOMTokenMap TOKEN_MAP = DOMToC99TokenMap.DEFAULT_MAP;
private static GCCLanguage GCC_LANGUAGE = GCCLanguage.getDefault();
@@ -55,7 +53,7 @@ public class C99Language extends BaseExtensibleLanguage {
}
@Override
- protected ITokenMap getTokenMap() {
+ protected IDOMTokenMap getTokenMap() {
return TOKEN_MAP;
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/c99/DOMToC99TokenMap.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/c99/DOMToC99TokenMap.java
index 714a2d27c5e..02c07665e60 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/c99/DOMToC99TokenMap.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/c99/DOMToC99TokenMap.java
@@ -13,7 +13,8 @@ package org.eclipse.cdt.core.dom.lrparser.c99;
import static org.eclipse.cdt.core.parser.IToken.*;
import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.*;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
+import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
+import org.eclipse.cdt.core.parser.IToken;
/**
* Maps tokens types returned by CPreprocessor to token types
@@ -28,7 +29,7 @@ import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
* @author Mike Kucera
*
*/
-public final class DOMToC99TokenMap implements ITokenMap {
+public final class DOMToC99TokenMap implements IDOMTokenMap {
public static final DOMToC99TokenMap DEFAULT_MAP = new DOMToC99TokenMap();
@@ -37,9 +38,9 @@ public final class DOMToC99TokenMap implements ITokenMap {
// just a private constructor
}
- public int mapKind(int kind) {
+ public int mapKind(IToken token) {
- switch(kind) {
+ switch(token.getType()) {
case tIDENTIFIER : return TK_identifier;
case tINTEGER : return TK_integer;
case tCOLON : return TK_Colon;
@@ -137,9 +138,14 @@ public final class DOMToC99TokenMap implements ITokenMap {
case tEND_OF_INPUT : return TK_EOF_TOKEN;
default:
- assert false : "token not recognized by the C99 parser: " + kind; //$NON-NLS-1$
+ assert false : "token not recognized by the C99 parser: " + token.getType(); //$NON-NLS-1$
return TK_Invalid;
}
}
+
+ public int getEOFTokenKind() {
+ return TK_EOF_TOKEN;
+ }
+
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/cpp/DOMToISOCPPTokenMap.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/cpp/DOMToISOCPPTokenMap.java
index d540b0cb934..67d3fda5322 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/cpp/DOMToISOCPPTokenMap.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/cpp/DOMToISOCPPTokenMap.java
@@ -10,11 +10,12 @@
*******************************************************************************/
package org.eclipse.cdt.core.dom.lrparser.cpp;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
-
import static org.eclipse.cdt.core.parser.IToken.*;
import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.*;
+import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
+import org.eclipse.cdt.core.parser.IToken;
+
/**
* Maps tokens types returned by CPreprocessor to token types
* expected by the C++ parser.
@@ -27,7 +28,7 @@ import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.*;
* @author Mike Kucera
*
*/
-public class DOMToISOCPPTokenMap implements ITokenMap {
+public class DOMToISOCPPTokenMap implements IDOMTokenMap {
public static final DOMToISOCPPTokenMap DEFAULT_MAP = new DOMToISOCPPTokenMap();
@@ -36,9 +37,9 @@ public class DOMToISOCPPTokenMap implements ITokenMap {
// just a private constructor
}
- public int mapKind(int kind) {
+ public int mapKind(IToken token) {
- switch(kind) {
+ switch(token.getType()) {
case tIDENTIFIER : return TK_identifier;
case tINTEGER : return TK_integer;
case tCOLONCOLON : return TK_ColonColon;
@@ -166,9 +167,14 @@ public class DOMToISOCPPTokenMap implements ITokenMap {
case tEND_OF_INPUT : return TK_EOF_TOKEN;
default:
- assert false : "token not recognized by the ISO CPP parser: " + kind; //$NON-NLS-1$
+ assert false : "token not recognized by the ISO CPP parser: " + token.getType(); //$NON-NLS-1$
return TK_Invalid;
}
}
+
+ public int getEOFTokenKind() {
+ return TK_EOF_TOKEN;
+ }
+
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/cpp/ISOCPPLanguage.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/cpp/ISOCPPLanguage.java
index 39b943e2573..dc3dbf24f47 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/cpp/ISOCPPLanguage.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/cpp/ISOCPPLanguage.java
@@ -15,8 +15,8 @@ import org.eclipse.cdt.core.dom.ast.IASTName;
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
import org.eclipse.cdt.core.dom.ast.gnu.cpp.GPPLanguage;
import org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage;
+import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
import org.eclipse.cdt.core.dom.lrparser.IParser;
-import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap;
import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPASTNodeFactory;
import org.eclipse.cdt.core.index.IIndex;
import org.eclipse.cdt.core.model.IContributedModelBuilder;
@@ -36,7 +36,7 @@ public class ISOCPPLanguage extends BaseExtensibleLanguage {
public static final String PLUGIN_ID = "org.eclipse.cdt.core.lrparser"; //$NON-NLS-1$
public static final String ID = PLUGIN_ID + ".isocpp"; //$NON-NLS-1$
- private static final ITokenMap TOKEN_MAP = DOMToISOCPPTokenMap.DEFAULT_MAP;
+ private static final IDOMTokenMap TOKEN_MAP = DOMToISOCPPTokenMap.DEFAULT_MAP;
private static GPPLanguage GPP_LANGUAGE = GPPLanguage.getDefault();
@@ -53,7 +53,7 @@ public class ISOCPPLanguage extends BaseExtensibleLanguage {
}
@Override
- protected ITokenMap getTokenMap() {
+ protected IDOMTokenMap getTokenMap() {
return TOKEN_MAP;
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc.tests/META-INF/MANIFEST.MF b/upc/org.eclipse.cdt.core.parser.upc.tests/META-INF/MANIFEST.MF
index 08c8d4ec5a2..e24ddeeb9ed 100644
--- a/upc/org.eclipse.cdt.core.parser.upc.tests/META-INF/MANIFEST.MF
+++ b/upc/org.eclipse.cdt.core.parser.upc.tests/META-INF/MANIFEST.MF
@@ -5,12 +5,12 @@ Bundle-SymbolicName: org.eclipse.cdt.core.parser.upc.tests
Bundle-Version: 4.0.0.qualifier
Require-Bundle: org.eclipse.core.runtime,
org.junit,
- org.eclipse.cdt.core.parser.c99,
org.eclipse.cdt.core.tests,
org.eclipse.cdt.core,
org.eclipse.core.resources,
- org.eclipse.cdt.core.parser.c99.tests,
- org.eclipse.cdt.core.parser.upc
+ org.eclipse.cdt.core.parser.upc,
+ org.eclipse.cdt.core.lrparser;bundle-version="4.0.1",
+ org.eclipse.cdt.core.lrparser.tests;bundle-version="4.0.0"
Eclipse-LazyStart: false
Bundle-Vendor: %Bundle-Vendor.0
Bundle-Localization: plugin
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 0a2805b8daf..5c50b226a70 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
@@ -10,9 +10,9 @@
*******************************************************************************/
package org.eclipse.cdt.core.parser.upc.tests;
-import org.eclipse.cdt.core.dom.c99.BaseExtensibleLanguage;
+import org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage;
import org.eclipse.cdt.core.dom.upc.UPCLanguage;
-import org.eclipse.cdt.core.parser.c99.tests.C99CommentTests;
+import org.eclipse.cdt.core.lrparser.tests.c99.C99CommentTests;
public class UPCC99CommentTests extends C99CommentTests {
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 ac2577df7cc..015bc419a80 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
@@ -10,9 +10,9 @@
*******************************************************************************/
package org.eclipse.cdt.core.parser.upc.tests;
-import org.eclipse.cdt.core.dom.c99.BaseExtensibleLanguage;
+import org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage;
import org.eclipse.cdt.core.dom.upc.UPCLanguage;
-import org.eclipse.cdt.core.parser.c99.tests.C99CompleteParser2Tests;
+import org.eclipse.cdt.core.lrparser.tests.c99.C99CompleteParser2Tests;
public class UPCC99CompleteParser2Tests extends C99CompleteParser2Tests {
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 c05247bab9a..02824c7e266 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
@@ -10,9 +10,9 @@
*******************************************************************************/
package org.eclipse.cdt.core.parser.upc.tests;
-import org.eclipse.cdt.core.dom.c99.BaseExtensibleLanguage;
-import org.eclipse.cdt.core.dom.c99.C99Language;
-import org.eclipse.cdt.core.parser.c99.tests.C99CompletionBasicTest;
+import org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage;
+import org.eclipse.cdt.core.dom.lrparser.c99.C99Language;
+import org.eclipse.cdt.core.lrparser.tests.c99.C99CompletionBasicTest;
public class UPCC99CompletionBasicTest extends C99CompletionBasicTest {
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 f704f9647f8..383c2e17ee5 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
@@ -10,9 +10,9 @@
*******************************************************************************/
package org.eclipse.cdt.core.parser.upc.tests;
-import org.eclipse.cdt.core.dom.c99.BaseExtensibleLanguage;
+import org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage;
import org.eclipse.cdt.core.dom.upc.UPCLanguage;
-import org.eclipse.cdt.core.parser.c99.tests.C99CompletionParseTest;
+import org.eclipse.cdt.core.lrparser.tests.c99.C99CompletionParseTest;
public class UPCC99CompletionParseTest extends C99CompletionParseTest {
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 4214d2d3be9..9219c703a4d 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
@@ -10,9 +10,9 @@
*******************************************************************************/
package org.eclipse.cdt.core.parser.upc.tests;
-import org.eclipse.cdt.core.dom.c99.BaseExtensibleLanguage;
+import org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage;
import org.eclipse.cdt.core.dom.upc.UPCLanguage;
-import org.eclipse.cdt.core.parser.c99.tests.C99DOMLocationInclusionTests;
+import org.eclipse.cdt.core.lrparser.tests.c99.C99DOMLocationInclusionTests;
public class UPCC99DOMLocationInclusionTests extends C99DOMLocationInclusionTests {
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 b8eb51ea06a..a699f51e1e6 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
@@ -10,9 +10,9 @@
*******************************************************************************/
package org.eclipse.cdt.core.parser.upc.tests;
-import org.eclipse.cdt.core.dom.c99.BaseExtensibleLanguage;
+import org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage;
import org.eclipse.cdt.core.dom.upc.UPCLanguage;
-import org.eclipse.cdt.core.parser.c99.tests.C99DOMLocationMacroTests;
+import org.eclipse.cdt.core.lrparser.tests.c99.C99DOMLocationMacroTests;
public class UPCC99DOMLocationMacroTests extends C99DOMLocationMacroTests {
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 38417ae403e..151d2bd1464 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
@@ -10,9 +10,9 @@
*******************************************************************************/
package org.eclipse.cdt.core.parser.upc.tests;
-import org.eclipse.cdt.core.dom.c99.BaseExtensibleLanguage;
+import org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage;
import org.eclipse.cdt.core.dom.upc.UPCLanguage;
-import org.eclipse.cdt.core.parser.c99.tests.C99DOMLocationTests;
+import org.eclipse.cdt.core.lrparser.tests.c99.C99DOMLocationTests;
public class UPCC99DOMLocationTests extends C99DOMLocationTests {
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 b367fad8387..f73044f28fd 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
@@ -10,9 +10,9 @@
*******************************************************************************/
package org.eclipse.cdt.core.parser.upc.tests;
-import org.eclipse.cdt.core.dom.c99.BaseExtensibleLanguage;
+import org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage;
import org.eclipse.cdt.core.dom.upc.UPCLanguage;
-import org.eclipse.cdt.core.parser.c99.tests.C99DOMPreprocessorInformationTest;
+import org.eclipse.cdt.core.lrparser.tests.c99.C99DOMPreprocessorInformationTest;
public class UPCC99DOMPreprocessorInformationTest extends C99DOMPreprocessorInformationTest {
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 fad52a79592..b56681211ee 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
@@ -10,9 +10,9 @@
*******************************************************************************/
package org.eclipse.cdt.core.parser.upc.tests;
-import org.eclipse.cdt.core.dom.c99.BaseExtensibleLanguage;
+import org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage;
import org.eclipse.cdt.core.dom.upc.UPCLanguage;
-import org.eclipse.cdt.core.parser.c99.tests.C99DigraphTrigraphTests;
+import org.eclipse.cdt.core.lrparser.tests.c99.C99DigraphTrigraphTests;
public class UPCC99DigraphTrigraphTests extends C99DigraphTrigraphTests {
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 713ec1a80ae..ed393db1a33 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
@@ -10,9 +10,9 @@
*******************************************************************************/
package org.eclipse.cdt.core.parser.upc.tests;
-import org.eclipse.cdt.core.dom.c99.BaseExtensibleLanguage;
+import org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage;
import org.eclipse.cdt.core.dom.upc.UPCLanguage;
-import org.eclipse.cdt.core.parser.c99.tests.C99GCCTests;
+import org.eclipse.cdt.core.lrparser.tests.c99.C99GCCTests;
public class UPCC99GCCTests extends C99GCCTests {
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 3bd637ca4a4..2c3eb7b0052 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
@@ -10,9 +10,9 @@
*******************************************************************************/
package org.eclipse.cdt.core.parser.upc.tests;
-import org.eclipse.cdt.core.dom.c99.BaseExtensibleLanguage;
+import org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage;
import org.eclipse.cdt.core.dom.upc.UPCLanguage;
-import org.eclipse.cdt.core.parser.c99.tests.C99KnRTests;
+import org.eclipse.cdt.core.lrparser.tests.c99.C99KnRTests;
public class UPCC99KnRTests extends C99KnRTests {
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 829ed9c1bff..e1ec43ded76 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
@@ -10,9 +10,9 @@
*******************************************************************************/
package org.eclipse.cdt.core.parser.upc.tests;
-import org.eclipse.cdt.core.dom.c99.BaseExtensibleLanguage;
+import org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage;
import org.eclipse.cdt.core.dom.upc.UPCLanguage;
-import org.eclipse.cdt.core.parser.c99.tests.C99SelectionParseTest;
+import org.eclipse.cdt.core.lrparser.tests.c99.C99SelectionParseTest;
public class UPCC99SelectionParseTest extends C99SelectionParseTest {
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 0649e3c6bdc..fb04d3d9b8e 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
@@ -10,9 +10,9 @@
*******************************************************************************/
package org.eclipse.cdt.core.parser.upc.tests;
-import org.eclipse.cdt.core.dom.c99.BaseExtensibleLanguage;
+import org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage;
import org.eclipse.cdt.core.dom.upc.UPCLanguage;
-import org.eclipse.cdt.core.parser.c99.tests.C99SpecTests;
+import org.eclipse.cdt.core.lrparser.tests.c99.C99SpecTests;
public class UPCC99SpecTests extends C99SpecTests {
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 bce6d652516..1a16c4b4382 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
@@ -10,9 +10,9 @@
*******************************************************************************/
package org.eclipse.cdt.core.parser.upc.tests;
-import org.eclipse.cdt.core.dom.c99.BaseExtensibleLanguage;
+import org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage;
import org.eclipse.cdt.core.dom.upc.UPCLanguage;
-import org.eclipse.cdt.core.parser.c99.tests.C99TaskParserTest;
+import org.eclipse.cdt.core.lrparser.tests.c99.C99TaskParserTest;
public class UPCC99TaskParserTest extends C99TaskParserTest {
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 6869ea78f50..5e1f72f9621 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
@@ -12,9 +12,9 @@ package org.eclipse.cdt.core.parser.upc.tests;
import junit.framework.TestSuite;
-import org.eclipse.cdt.core.dom.c99.BaseExtensibleLanguage;
+import org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage;
import org.eclipse.cdt.core.dom.upc.UPCLanguage;
-import org.eclipse.cdt.core.parser.c99.tests.C99Tests;
+import org.eclipse.cdt.core.lrparser.tests.c99.C99Tests;
/**
* Run the C99 tests against the UPC parser
*
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 f4f9a9bbc68..cf119e6207e 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
@@ -10,9 +10,9 @@
*******************************************************************************/
package org.eclipse.cdt.core.parser.upc.tests;
-import org.eclipse.cdt.core.dom.c99.BaseExtensibleLanguage;
+import org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage;
import org.eclipse.cdt.core.dom.upc.UPCLanguage;
-import org.eclipse.cdt.core.parser.c99.tests.C99UtilOldTests;
+import org.eclipse.cdt.core.lrparser.tests.c99.C99UtilOldTests;
public class UPCC99UtilOldTests extends C99UtilOldTests {
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 ac174646d32..48cddb62260 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
@@ -10,9 +10,9 @@
*******************************************************************************/
package org.eclipse.cdt.core.parser.upc.tests;
-import org.eclipse.cdt.core.dom.c99.BaseExtensibleLanguage;
+import org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage;
import org.eclipse.cdt.core.dom.upc.UPCLanguage;
-import org.eclipse.cdt.core.parser.c99.tests.C99UtilTests;
+import org.eclipse.cdt.core.lrparser.tests.c99.C99UtilTests;
public class UPCC99UtilTests extends C99UtilTests {
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 e8f94745354..8e64939a23c 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
@@ -33,15 +33,15 @@ import org.eclipse.cdt.core.dom.ast.IASTTypeIdExpression;
import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression;
import org.eclipse.cdt.core.dom.ast.IScope;
import org.eclipse.cdt.core.dom.ast.IVariable;
-import org.eclipse.cdt.core.dom.c99.BaseExtensibleLanguage;
+import org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage;
import org.eclipse.cdt.core.dom.upc.UPCLanguage;
import org.eclipse.cdt.core.dom.upc.ast.IUPCASTDeclSpecifier;
import org.eclipse.cdt.core.dom.upc.ast.IUPCASTForallStatement;
import org.eclipse.cdt.core.dom.upc.ast.IUPCASTKeywordExpression;
import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSimpleDeclSpecifier;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSizeofExpression;
import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSynchronizationStatement;
-import org.eclipse.cdt.core.parser.c99.tests.ParseHelper;
+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 {
@@ -494,24 +494,24 @@ public class UPCLanguageExtensionTests extends TestCase {
IASTUnaryExpression cexpr = (IASTUnaryExpression)((IASTExpressionStatement)body[1]).getExpression();
assertEquals(IASTUnaryExpression.op_sizeof, cexpr.getOperator());
- IUPCASTSizeofExpression expr;
+ IUPCASTUnaryExpression expr;
- expr = (IUPCASTSizeofExpression)((IASTExpressionStatement)body[2]).getExpression();
- assertEquals(IUPCASTSizeofExpression.op_upc_localsizeof, expr.getUPCSizeofOperator());
+ expr = (IUPCASTUnaryExpression)((IASTExpressionStatement)body[2]).getExpression();
+ assertEquals(IUPCASTUnaryExpression.op_upc_localsizeof, expr.getOperator());
- expr = (IUPCASTSizeofExpression)((IASTExpressionStatement)body[3]).getExpression();
- assertEquals(IUPCASTSizeofExpression.op_upc_localsizeof, expr.getUPCSizeofOperator());
+ expr = (IUPCASTUnaryExpression)((IASTExpressionStatement)body[3]).getExpression();
+ assertEquals(IUPCASTUnaryExpression.op_upc_localsizeof, expr.getOperator());
- expr = (IUPCASTSizeofExpression)((IASTExpressionStatement)body[4]).getExpression();
- assertEquals(IUPCASTSizeofExpression.op_upc_blocksizeof, expr.getUPCSizeofOperator());
+ expr = (IUPCASTUnaryExpression)((IASTExpressionStatement)body[4]).getExpression();
+ assertEquals(IUPCASTUnaryExpression.op_upc_blocksizeof, expr.getOperator());
- expr = (IUPCASTSizeofExpression)((IASTExpressionStatement)body[5]).getExpression();
- assertEquals(IUPCASTSizeofExpression.op_upc_blocksizeof, expr.getUPCSizeofOperator());
+ expr = (IUPCASTUnaryExpression)((IASTExpressionStatement)body[5]).getExpression();
+ assertEquals(IUPCASTUnaryExpression.op_upc_blocksizeof, expr.getOperator());
- expr = (IUPCASTSizeofExpression)((IASTExpressionStatement)body[6]).getExpression();
- assertEquals(IUPCASTSizeofExpression.op_upc_elemsizeof, expr.getUPCSizeofOperator());
+ expr = (IUPCASTUnaryExpression)((IASTExpressionStatement)body[6]).getExpression();
+ assertEquals(IUPCASTUnaryExpression.op_upc_elemsizeof, expr.getOperator());
- expr = (IUPCASTSizeofExpression)((IASTExpressionStatement)body[7]).getExpression();
- assertEquals(IUPCASTSizeofExpression.op_upc_elemsizeof, expr.getUPCSizeofOperator());
+ expr = (IUPCASTUnaryExpression)((IASTExpressionStatement)body[7]).getExpression();
+ assertEquals(IUPCASTUnaryExpression.op_upc_elemsizeof, expr.getOperator());
}
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/META-INF/MANIFEST.MF b/upc/org.eclipse.cdt.core.parser.upc/META-INF/MANIFEST.MF
index 5453cbb90e4..86e2baf533a 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/META-INF/MANIFEST.MF
+++ b/upc/org.eclipse.cdt.core.parser.upc/META-INF/MANIFEST.MF
@@ -7,7 +7,7 @@ Bundle-ClassPath: .
Require-Bundle: org.eclipse.cdt.core,
net.sourceforge.lpg.lpgjavaruntime;bundle-version="1.1.0";visibility:=reexport,
org.eclipse.core.runtime,
- org.eclipse.cdt.core.parser.c99
+ org.eclipse.cdt.core.lrparser;bundle-version="4.0.1"
Export-Package: org.eclipse.cdt.core.dom.upc,
org.eclipse.cdt.core.dom.upc.ast,
org.eclipse.cdt.internal.core.dom.parser.upc;x-internal:=true,
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParser.g b/upc/org.eclipse.cdt.core.parser.upc/grammar/UPCParser.g
index 87a177ee9fc..87a177ee9fc 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCParser.g
+++ b/upc/org.eclipse.cdt.core.parser.upc/grammar/UPCParser.g
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/DOMToUPCTokenMap.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/DOMToUPCTokenMap.java
new file mode 100644
index 00000000000..3c19eb37ad4
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/DOMToUPCTokenMap.java
@@ -0,0 +1,153 @@
+/*******************************************************************************
+ * 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
+ *******************************************************************************/
+package org.eclipse.cdt.core.dom.parser.upc;
+
+
+import static org.eclipse.cdt.core.parser.IToken.*;
+import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.*;
+
+import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
+import org.eclipse.cdt.core.parser.IToken;
+import org.eclipse.cdt.core.parser.util.CharArrayMap;
+import org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym;
+
+
+/**
+ * Maps token kinds from CPreprocessor to the tokens kinds
+ * created by LPG.
+ *
+ * TODO UPC keywords need to be syntax highlighted
+ *
+ * @author Mike Kucera
+ */
+@SuppressWarnings("nls")
+public class DOMToUPCTokenMap implements IDOMTokenMap {
+
+
+ public int mapKind(IToken token) {
+
+ switch(token.getType()) {
+ case tIDENTIFIER :
+ Integer keywordKind = UPCKeyword.getTokenKind(token.getCharImage());
+ return keywordKind == null ? TK_identifier : keywordKind;
+
+ case tINTEGER : return TK_integer;
+ case tCOLON : return TK_Colon;
+ case tSEMI : return TK_SemiColon;
+ case tCOMMA : return TK_Comma;
+ case tQUESTION : return TK_Question;
+ case tLPAREN : return TK_LeftParen;
+ case tRPAREN : return TK_RightParen;
+ case tLBRACKET : return TK_LeftBracket;
+ case tRBRACKET : return TK_RightBracket;
+ case tLBRACE : return TK_LeftBrace;
+ case tRBRACE : return TK_RightBrace;
+ case tPLUSASSIGN : return TK_PlusAssign;
+ case tINCR : return TK_PlusPlus;
+ case tPLUS : return TK_Plus;
+ case tMINUSASSIGN : return TK_MinusAssign;
+ case tDECR : return TK_MinusMinus;
+ case tARROW : return TK_Arrow;
+ case tMINUS : return TK_Minus;
+ case tSTARASSIGN : return TK_StarAssign;
+ case tSTAR : return TK_Star;
+ case tMODASSIGN : return TK_PercentAssign;
+ case tMOD : return TK_Percent;
+ case tXORASSIGN : return TK_CaretAssign;
+ case tXOR : return TK_Caret;
+ case tAMPERASSIGN : return TK_AndAssign;
+ case tAND : return TK_AndAnd;
+ case tAMPER : return TK_And;
+ case tBITORASSIGN : return TK_OrAssign;
+ case tOR : return TK_OrOr;
+ case tBITOR : return TK_Or;
+ case tBITCOMPLEMENT: return TK_Tilde;
+ case tNOTEQUAL : return TK_NE;
+ case tNOT : return TK_Bang;
+ case tEQUAL : return TK_EQ;
+ case tASSIGN : return TK_Assign;
+ case tUNKNOWN_CHAR : return TK_Invalid;
+ case tSHIFTL : return TK_LeftShift;
+ case tLTEQUAL : return TK_LE;
+ case tLT : return TK_LT;
+ case tSHIFTRASSIGN : return TK_RightShiftAssign;
+ case tSHIFTR : return TK_RightShift;
+ case tGTEQUAL : return TK_GE;
+ case tGT : return TK_GT;
+ case tSHIFTLASSIGN : return TK_LeftShiftAssign;
+ case tELLIPSIS : return TK_DotDotDot;
+ case tDOT : return TK_Dot;
+ case tDIVASSIGN : return TK_SlashAssign;
+ case tDIV : return TK_Slash;
+
+ case t_auto : return TK_auto;
+ case t_break : return TK_break;
+ case t_case : return TK_case;
+ case t_char : return TK_char;
+ case t_const : return TK_const;
+ case t_continue : return TK_continue;
+ case t_default : return TK_default;
+ case t_do : return TK_do;
+ case t_double : return TK_double;
+ case t_else : return TK_else;
+ case t_enum : return TK_enum;
+ case t_extern : return TK_extern;
+ case t_float : return TK_float;
+ case t_for : return TK_for;
+ case t_goto : return TK_goto;
+ case t_if : return TK_if;
+ case t_inline : return TK_inline;
+ case t_int : return TK_int;
+ case t_long : return TK_long;
+ case t_register : return TK_register;
+ case t_return : return TK_return;
+ case t_short : return TK_short;
+ case t_sizeof : return TK_sizeof;
+ case t_static : return TK_static;
+ case t_signed : return TK_signed;
+ case t_struct : return TK_struct;
+ case t_switch : return TK_switch;
+ case t_typedef : return TK_typedef;
+ case t_union : return TK_union;
+ case t_unsigned : return TK_unsigned;
+ case t_void : return TK_void;
+ case t_volatile : return TK_volatile;
+ case t_while : return TK_while;
+ case tFLOATINGPT : return TK_floating;
+ case tSTRING : return TK_stringlit;
+ case tLSTRING : return TK_stringlit;
+ case tCHAR : return TK_charconst;
+ case tLCHAR : return TK_charconst;
+ case t__Bool : return TK__Bool;
+ case t__Complex : return TK__Complex;
+ case t__Imaginary : return TK__Imaginary;
+ case t_restrict : return TK_restrict;
+ case tCOMPLETION : return TK_Completion;
+ case tEOC : return TK_EndOfCompletion;
+ case tEND_OF_INPUT : return TK_EOF_TOKEN;
+
+ default:
+ assert false : "token not recognized by the UPC parser: " + token.getType();
+ return TK_Invalid;
+ }
+ }
+
+
+ protected String[] getOrderedTerminalSymbols() {
+ return UPCParsersym.orderedTerminalSymbols;
+ }
+
+ public int getEOFTokenKind() {
+ return TK_EOF_TOKEN;
+ }
+
+
+}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCASTNodeFactory.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCASTNodeFactory.java
index a68aa347e25..8002aefccb8 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCASTNodeFactory.java
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCASTNodeFactory.java
@@ -1,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
@@ -10,72 +10,90 @@
*******************************************************************************/
package org.eclipse.cdt.core.dom.parser.upc;
+import org.eclipse.cdt.core.dom.ast.IASTExpression;
+import org.eclipse.cdt.core.dom.ast.IASTName;
+import org.eclipse.cdt.core.dom.ast.IASTStatement;
+import org.eclipse.cdt.core.dom.ast.IASTTypeId;
+import org.eclipse.cdt.core.dom.ast.IASTTypeIdExpression;
import org.eclipse.cdt.core.dom.ast.c.ICASTCompositeTypeSpecifier;
import org.eclipse.cdt.core.dom.ast.c.ICASTElaboratedTypeSpecifier;
import org.eclipse.cdt.core.dom.ast.c.ICASTEnumerationSpecifier;
import org.eclipse.cdt.core.dom.ast.c.ICASTSimpleDeclSpecifier;
import org.eclipse.cdt.core.dom.ast.c.ICASTTypedefNameSpecifier;
-import org.eclipse.cdt.core.dom.parser.c99.C99ASTNodeFactory;
+import org.eclipse.cdt.core.dom.lrparser.action.c99.C99ASTNodeFactory;
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.IUPCASTSizeofExpression;
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.ast.UPCASTCompositeTypeSpecifier;
import org.eclipse.cdt.internal.core.dom.parser.upc.ast.UPCASTElaboratedTypeSpecifier;
import org.eclipse.cdt.internal.core.dom.parser.upc.ast.UPCASTEnumerationSpecifier;
import org.eclipse.cdt.internal.core.dom.parser.upc.ast.UPCASTForallStatement;
import org.eclipse.cdt.internal.core.dom.parser.upc.ast.UPCASTKeywordExpression;
import org.eclipse.cdt.internal.core.dom.parser.upc.ast.UPCASTSimpleDeclSpecifier;
-import org.eclipse.cdt.internal.core.dom.parser.upc.ast.UPCASTSizeofExpression;
import org.eclipse.cdt.internal.core.dom.parser.upc.ast.UPCASTSynchronizationStatement;
+import org.eclipse.cdt.internal.core.dom.parser.upc.ast.UPCASTTypeIdExpression;
import org.eclipse.cdt.internal.core.dom.parser.upc.ast.UPCASTTypedefNameSpecifier;
+import org.eclipse.cdt.internal.core.dom.parser.upc.ast.UPCASTUnaryExpression;
/**
* Creates AST nodes that are specific to the UPC parser.
*
* The methods in ASTNodeFactory that build nodes for declaration
- * specifiers are overridden here to replace thos nodes with the UPC nodes for
+ * specifiers are overridden here to replace those nodes with the UPC nodes for
* declaration specifiers. These UPC specific nodes add support
* for 'strict', 'relaxed' and 'shared'.
*/
public class UPCASTNodeFactory extends C99ASTNodeFactory {
- public IUPCASTKeywordExpression newKeywordExpression() {
- return new UPCASTKeywordExpression();
+ @Override
+ public IASTTypeIdExpression newTypeIdExpression(int operator, IASTTypeId typeId) {
+ return new UPCASTTypeIdExpression(operator, typeId);
+ }
+
+ public IUPCASTKeywordExpression newKeywordExpression(int keywordKind) {
+ return new UPCASTKeywordExpression(keywordKind);
}
- public IUPCASTSizeofExpression newSizeofExpression() {
- return new UPCASTSizeofExpression();
+ @Override
+ public IUPCASTUnaryExpression newUnaryExpression(int operator, IASTExpression operand) {
+ return new UPCASTUnaryExpression(operator, operand);
}
- public IUPCASTSynchronizationStatement newSyncronizationStatment() {
- return new UPCASTSynchronizationStatement();
+ public IUPCASTSynchronizationStatement newSyncronizationStatment(IASTExpression barrierExpression, int statmentKind) {
+ return new UPCASTSynchronizationStatement(barrierExpression, statmentKind);
}
- public IUPCASTForallStatement newForallStatement() {
- return new UPCASTForallStatement();
+ public IUPCASTForallStatement newForallStatement(IASTStatement init, IASTExpression condition,
+ IASTExpression iterationExpression, IASTStatement body, IASTExpression affinity) {
+ return new UPCASTForallStatement(init, condition, iterationExpression, body, affinity);
}
/**
* Override to return UPC version of decl specifier.
*/
+ @Override
public ICASTSimpleDeclSpecifier newCSimpleDeclSpecifier() {
return new UPCASTSimpleDeclSpecifier();
}
- public ICASTCompositeTypeSpecifier newCCompositeTypeSpecifier() {
- return new UPCASTCompositeTypeSpecifier();
+ @Override
+ public ICASTCompositeTypeSpecifier newCCompositeTypeSpecifier(int key, IASTName name) {
+ return new UPCASTCompositeTypeSpecifier(key, name);
}
- public ICASTElaboratedTypeSpecifier newCElaboratedTypeSpecifier() {
- return new UPCASTElaboratedTypeSpecifier();
+ @Override
+ public ICASTElaboratedTypeSpecifier newElaboratedTypeSpecifier(int kind, IASTName name) {
+ return new UPCASTElaboratedTypeSpecifier(kind, name);
}
- public ICASTEnumerationSpecifier newCEnumerationSpecifier() {
- return new UPCASTEnumerationSpecifier();
+ @Override
+ public ICASTEnumerationSpecifier newEnumerationSpecifier(IASTName name) {
+ return new UPCASTEnumerationSpecifier(name);
}
+ @Override
public ICASTTypedefNameSpecifier newCTypedefNameSpecifier() {
return new UPCASTTypedefNameSpecifier();
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCKeyword.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCKeyword.java
new file mode 100644
index 00000000000..30cd0d1d91b
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCKeyword.java
@@ -0,0 +1,69 @@
+package org.eclipse.cdt.core.dom.parser.upc;
+
+import static org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym.*;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.cdt.core.dom.lrparser.c99.C99Language;
+import org.eclipse.cdt.core.parser.util.CharArrayMap;
+
+/**
+ * Enumeration of keywords that UPC adds to C99.
+ *
+ * @author Mike Kucera
+ */
+public enum UPCKeyword {
+
+ MYTHREAD(TK_MYTHREAD),
+ THREADS(TK_THREADS),
+ UPC_MAX_BLOCKSIZE(TK_UPC_MAX_BLOCKSIZE),
+ relaxed(TK_relaxed),
+ shared(TK_shared),
+ strict(TK_strict),
+ upc_barrier(TK_upc_barrier),
+ upc_localsizeof(TK_upc_localsizeof),
+ upc_blocksizeof(TK_upc_blocksizeof),
+ upc_elemsizeof(TK_upc_elemsizeof),
+ upc_notify(TK_upc_notify),
+ upc_fence(TK_upc_fence),
+ upc_wait(TK_upc_wait),
+ upc_forall(TK_upc_forall);
+
+
+ private final int tokenKind;
+
+ private static List<String> names = new ArrayList<String>();
+ private static final CharArrayMap<Integer> tokenMap = new CharArrayMap<Integer>();
+
+ UPCKeyword(int tokenKind) {
+ this.tokenKind = tokenKind;
+ }
+
+ static { // cannot refer to static fields from constructor
+ for(UPCKeyword keyword : values()) {
+ String name = keyword.name();
+ names.add(name);
+ tokenMap.put(name.toCharArray(), keyword.tokenKind);
+ }
+ }
+
+ public int getTokenKind() {
+ return tokenKind;
+ }
+
+ public static String[] getUPCOnlyKeywords() {
+ return names.toArray(new String[names.size()]);
+ }
+
+ public static String[] getAllKeywords() {
+ List<String> allKeywords = new ArrayList<String>(names);
+ allKeywords.addAll(Arrays.asList(C99Language.getDefault().getKeywords()));
+ return allKeywords.toArray(new String[allKeywords.size()]);
+ }
+
+ public static Integer getTokenKind(char[] image) {
+ return tokenMap.get(image);
+ }
+}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCKeywordMap.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCKeywordMap.java
deleted file mode 100644
index 0795765572e..00000000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/parser/upc/UPCKeywordMap.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * 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
- *******************************************************************************/
-package org.eclipse.cdt.core.dom.parser.upc;
-
-import org.eclipse.cdt.core.dom.parser.c99.LPGKeywordMap;
-import org.eclipse.cdt.core.dom.parser.c99.C99KeywordMap;
-import org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym;
-
-
-/**
- * Provides UPC specific keywords in addition to the C99 keywords.
- *
- * Keyword token mappings from the superclass must be overridden.
- *
- * @author Mike Kucera
- */
-public class UPCKeywordMap extends LPGKeywordMap {
-
-
- public UPCKeywordMap() {
- putKeyword(UPCParsersym.TK_MYTHREAD);
- putKeyword(UPCParsersym.TK_THREADS);
- putKeyword(UPCParsersym.TK_UPC_MAX_BLOCKSIZE);
- putKeyword(UPCParsersym.TK_relaxed);
- putKeyword(UPCParsersym.TK_shared);
- putKeyword(UPCParsersym.TK_strict);
- putKeyword(UPCParsersym.TK_upc_barrier);
- putKeyword(UPCParsersym.TK_upc_localsizeof);
- putKeyword(UPCParsersym.TK_upc_blocksizeof);
- putKeyword(UPCParsersym.TK_upc_elemsizeof);
- putKeyword(UPCParsersym.TK_upc_notify);
- putKeyword(UPCParsersym.TK_upc_fence);
- putKeyword(UPCParsersym.TK_upc_wait);
- putKeyword(UPCParsersym.TK_upc_forall);
-
- // The keyword token mappings from the superclass must be overridden.
- // This is because LPG generates totally different values for token
- // kinds every time you generate a parser.
- putKeyword(UPCParsersym.TK_auto);
- putKeyword(UPCParsersym.TK_break);
- putKeyword(UPCParsersym.TK_case);
- putKeyword(UPCParsersym.TK_char);
- putKeyword(UPCParsersym.TK_const);
- putKeyword(UPCParsersym.TK_continue);
- putKeyword(UPCParsersym.TK_default);
- putKeyword(UPCParsersym.TK_do);
- putKeyword(UPCParsersym.TK_double);
- putKeyword(UPCParsersym.TK_else);
- putKeyword(UPCParsersym.TK_enum);
- putKeyword(UPCParsersym.TK_extern);
- putKeyword(UPCParsersym.TK_float);
- putKeyword(UPCParsersym.TK_for);
- putKeyword(UPCParsersym.TK_goto);
- putKeyword(UPCParsersym.TK_if);
- putKeyword(UPCParsersym.TK_inline);
- putKeyword(UPCParsersym.TK_int);
- putKeyword(UPCParsersym.TK_long);
- putKeyword(UPCParsersym.TK_register);
- putKeyword(UPCParsersym.TK_restrict);
- putKeyword(UPCParsersym.TK_return);
- putKeyword(UPCParsersym.TK_short);
- putKeyword(UPCParsersym.TK_signed);
- putKeyword(UPCParsersym.TK_sizeof);
- putKeyword(UPCParsersym.TK_static);
- putKeyword(UPCParsersym.TK_struct);
- putKeyword(UPCParsersym.TK_switch);
- putKeyword(UPCParsersym.TK_typedef);
- putKeyword(UPCParsersym.TK_union);
- putKeyword(UPCParsersym.TK_unsigned);
- putKeyword(UPCParsersym.TK_void);
- putKeyword(UPCParsersym.TK_volatile);
- putKeyword(UPCParsersym.TK_while);
- putKeyword(UPCParsersym.TK__Bool);
- putKeyword(UPCParsersym.TK__Complex);
- putKeyword(UPCParsersym.TK__Imaginary);
-
-
- addBuiltinType(UPCParsersym.TK_char);
- addBuiltinType(UPCParsersym.TK_double);
- addBuiltinType(UPCParsersym.TK_float);
- addBuiltinType(UPCParsersym.TK_int);
- addBuiltinType(UPCParsersym.TK_long);
- addBuiltinType(UPCParsersym.TK_short);
- addBuiltinType(UPCParsersym.TK_signed);
- addBuiltinType(UPCParsersym.TK_unsigned);
- addBuiltinType(UPCParsersym.TK_void);
- addBuiltinType(UPCParsersym.TK__Bool);
- addBuiltinType(UPCParsersym.TK__Complex);
- addBuiltinType(UPCParsersym.TK__Imaginary);
- }
-
-
- protected String[] getOrderedTerminalSymbols() {
- return UPCParsersym.orderedTerminalSymbols;
- }
-
-
-}
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 f0eeda88eac..26ee85e6c6f 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
@@ -18,19 +18,18 @@ import org.eclipse.cdt.core.dom.ast.IASTExpression;
import org.eclipse.cdt.core.dom.ast.IASTExpressionStatement;
import org.eclipse.cdt.core.dom.ast.IASTNode;
import org.eclipse.cdt.core.dom.ast.IASTStatement;
+import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
import org.eclipse.cdt.core.dom.ast.IASTTypeId;
import org.eclipse.cdt.core.dom.ast.IASTTypeIdExpression;
import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression;
import org.eclipse.cdt.core.dom.ast.c.ICASTDeclSpecifier;
-import org.eclipse.cdt.core.dom.c99.IASTNodeFactory;
-import org.eclipse.cdt.core.dom.c99.IParserActionTokenProvider;
-import org.eclipse.cdt.core.dom.parser.c99.ASTStack;
-import org.eclipse.cdt.core.dom.parser.c99.C99ParserAction;
-import org.eclipse.cdt.core.dom.parser.c99.ITokenMap;
+import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
+import org.eclipse.cdt.core.dom.lrparser.action.c99.C99BuildASTParserAction;
+import org.eclipse.cdt.core.dom.lrparser.action.c99.IC99ASTNodeFactory;
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.IUPCASTSizeofExpression;
+import org.eclipse.cdt.core.dom.upc.ast.IUPCASTUnaryExpression;
import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSynchronizationStatement;
import org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym;
@@ -39,25 +38,15 @@ import org.eclipse.cdt.internal.core.dom.parser.upc.UPCParsersym;
* Extension to the C99ParserAction that adds support fot building
* an AST with UPC specific nodes.
*/
-public class UPCParserAction extends C99ParserAction {
+public class UPCParserAction extends C99BuildASTParserAction {
private final UPCASTNodeFactory nodeFactory;
- public UPCParserAction(IParserActionTokenProvider parser) {
- super(parser);
+ public UPCParserAction(UPCASTNodeFactory nodeFactory, IParserActionTokenProvider parser, IASTTranslationUnit tu) {
+ super(nodeFactory, parser, tu);
super.setTokenMap(UPCParsersym.orderedTerminalSymbols);
- this.nodeFactory = (UPCASTNodeFactory) super.getNodeFactory();
- }
-
-
- /**
- * Adds support for UPC specific nodes.
- * Some of the methods in UPCASTNodeFactory are overrides
- * and are called up in C99ParserAction.
- */
- protected IASTNodeFactory createNodeFactory() {
- return new UPCASTNodeFactory();
+ this.nodeFactory = nodeFactory;
}
@@ -70,8 +59,7 @@ public class UPCParserAction extends C99ParserAction {
* constant ::= 'MYTHREAD' | 'THREADS' | 'UPC_MAX_BLOCKSIZE'
*/
public void consumeKeywordExpression(int keywordKind) {
- IUPCASTKeywordExpression expr = nodeFactory.newKeywordExpression();
- expr.setKeywordKind(keywordKind);
+ IUPCASTKeywordExpression expr = nodeFactory.newKeywordExpression(keywordKind);
setOffsetAndLength(expr);
astStack.push(expr);
}
@@ -83,14 +71,8 @@ public class UPCParserAction extends C99ParserAction {
* | 'upc_elemsizeof' unary_expression
*/
public void consumeExpressionUpcSizeofOperator(int sizeofOp) {
- IUPCASTSizeofExpression expr = nodeFactory.newSizeofExpression();
- expr.setUPCSizeofOperator(sizeofOp);
-
IASTExpression operand = (IASTExpression) astStack.pop();
- expr.setOperand(operand);
- operand.setParent(expr);
- operand.setPropertyInParent(IASTUnaryExpression.OPERAND);
-
+ IUPCASTUnaryExpression expr = nodeFactory.newUnaryExpression(sizeofOp, operand);
setOffsetAndLength(expr);
astStack.push(expr);
}
@@ -103,15 +85,9 @@ public class UPCParserAction extends C99ParserAction {
*/
public void consumeExpressionUpcSizeofTypeName(int sizeofOp) {
IASTTypeId typeId = (IASTTypeId) astStack.pop();
- IASTTypeIdExpression expr = nodeFactory.newTypeIdExpression();
-
- expr.setTypeId(typeId);
- typeId.setParent(expr);
- typeId.setPropertyInParent(IASTTypeIdExpression.TYPE_ID);
+ IASTTypeIdExpression expr = nodeFactory.newTypeIdExpression(sizeofOp, typeId);
setOffsetAndLength(expr);
-
astStack.push(expr);
- consumeExpressionUpcSizeofOperator(sizeofOp);
}
@@ -125,16 +101,8 @@ public class UPCParserAction extends C99ParserAction {
* | 'upc_fence' ';'
*/
public void consumeStatementSynchronizationStatement(int statementKind, boolean hasBarrierExpr) {
- IUPCASTSynchronizationStatement statement = nodeFactory.newSyncronizationStatment();
- statement.setStatementKind(statementKind);
-
- if(hasBarrierExpr) {
- IASTExpression barrierExpression = (IASTExpression) astStack.pop();
- statement.setBarrierExpression(barrierExpression);
- barrierExpression.setParent(statement);
- barrierExpression.setPropertyInParent(IUPCASTSynchronizationStatement.BARRIER_EXPRESSION);
- }
-
+ IASTExpression barrierExpression = hasBarrierExpr ? (IASTExpression) astStack.pop() : null;
+ IUPCASTSynchronizationStatement statement = nodeFactory.newSyncronizationStatment(barrierExpression, statementKind);
setOffsetAndLength(statement);
astStack.push(statement);
}
@@ -146,72 +114,32 @@ public class UPCParserAction extends C99ParserAction {
* | 'upc_forall' '(' declaration expression ';' expression ';' affinity ')' statement
*/
public void consumeStatementUPCForallLoop(boolean hasExpr1, boolean hasExpr2, boolean hasExpr3, boolean hasAffinity) {
- IUPCASTForallStatement forStat = nodeFactory.newForallStatement();
-
IASTStatement body = (IASTStatement) astStack.pop();
- forStat.setBody(body);
- body.setParent(forStat);
- body.setPropertyInParent(IUPCASTForallStatement.BODY);
+ boolean affinityContinue = false;
+ IASTExpression affinity = null;
if(hasAffinity) {
Object o = astStack.pop();
- if(o instanceof IASTExpression) {
- IASTExpression expr = (IASTExpression)o;
- forStat.setAffinityExpression(expr);
- expr.setParent(forStat);
- expr.setPropertyInParent(IUPCASTForallStatement.AFFINITY);
- }
- if(o instanceof IToken) {
- IToken token = (IToken) o;
- assert token.getKind() == UPCParsersym.TK_continue;
- forStat.setAffinityContinue(true);
- }
+ if(o instanceof IASTExpression)
+ affinity = (IASTExpression)o;
+ else if(o instanceof IToken)
+ affinityContinue = true;
}
- if(hasExpr3) {
- IASTExpression expr = (IASTExpression) astStack.pop();
- forStat.setIterationExpression(expr);
- expr.setParent(forStat);
- expr.setPropertyInParent(IUPCASTForallStatement.ITERATION);
- }
-
- if(hasExpr2) {
- IASTExpression expr = (IASTExpression) astStack.pop();
- forStat.setConditionExpression(expr);
- expr.setParent(forStat);
- expr.setPropertyInParent(IUPCASTForallStatement.CONDITION);
- }
+ IASTExpression expr3 = hasExpr3 ? (IASTExpression) astStack.pop() : null;
+ IASTExpression expr2 = hasExpr2 ? (IASTExpression) astStack.pop() : null;
+ IASTStatement initializer = nodeFactory.newNullStatement();
if(hasExpr1) { // may be an expression or a declaration
- IASTNode node = (IASTNode) astStack.pop();
-
- if(node instanceof IASTExpression) {
- IASTExpressionStatement stat = nodeFactory.newExpressionStatement();
- IASTExpression expr = (IASTExpression)node;
- stat.setExpression(expr);
- expr.setParent(stat);
- expr.setPropertyInParent(IASTExpressionStatement.EXPRESSION);
-
- forStat.setInitializerStatement(stat);
- stat.setParent(forStat);
- stat.setPropertyInParent(IUPCASTForallStatement.INITIALIZER);
- }
- else if(node instanceof IASTDeclaration) {
- IASTDeclarationStatement stat = nodeFactory.newDeclarationStatement();
- IASTDeclaration declaration = (IASTDeclaration)node;
- stat.setDeclaration(declaration);
- declaration.setParent(stat);
- declaration.setPropertyInParent(IASTDeclarationStatement.DECLARATION);
-
- forStat.setInitializerStatement(stat);
- stat.setParent(forStat);
- stat.setPropertyInParent(IUPCASTForallStatement.INITIALIZER);
- }
- }
- else {
- forStat.setInitializerStatement(nodeFactory.newNullStatement());
+ Object node = astStack.pop();
+ if(node instanceof IASTExpression)
+ initializer = nodeFactory.newExpressionStatement((IASTExpression)node);
+ else if(node instanceof IASTDeclaration)
+ initializer = nodeFactory.newDeclarationStatement((IASTDeclaration)node);
}
+ IUPCASTForallStatement forStat = nodeFactory.newForallStatement(initializer, expr2, expr3, body, affinity);
+ forStat.setAffinityContinue(affinityContinue);
setOffsetAndLength(forStat);
astStack.push(forStat);
}
@@ -249,11 +177,12 @@ public class UPCParserAction extends C99ParserAction {
/**
* Overrides setSpecifier to add support for temporary layout qualifier nodes.
*/
- protected void setSpecifier(ICASTDeclSpecifier declSpec, Object o) {
- if(o instanceof IToken)
- setTokenSpecifier((IUPCASTDeclSpecifier)declSpec, (IToken)o);
+ @Override
+ protected void setSpecifier(ICASTDeclSpecifier declSpec, Object specifier) {
+ if(specifier instanceof IToken)
+ setTokenSpecifier((IUPCASTDeclSpecifier)declSpec, (IToken)specifier);
else
- setLayoutQualifier((IUPCASTDeclSpecifier)declSpec, (UPCParserActionLayoutQualifier) o);
+ setLayoutQualifier((IUPCASTDeclSpecifier)declSpec, (UPCParserActionLayoutQualifier) specifier);
}
@@ -289,10 +218,7 @@ public class UPCParserAction extends C99ParserAction {
}
else if(layoutQualifier.expression != null) {
node.setSharedQualifier(IUPCASTDeclSpecifier.sh_shared_constant_expression);
- IASTExpression expr = layoutQualifier.expression;
- node.setBlockSizeExpression(expr);
- expr.setParent(node);
- expr.setPropertyInParent(IUPCASTDeclSpecifier.BLOCK_SIZE_EXPRESSION);
+ node.setBlockSizeExpression(layoutQualifier.expression);
}
else {
node.setSharedQualifier(IUPCASTDeclSpecifier.sh_shared_indefinite_allocation);
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/UPCLanguage.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/UPCLanguage.java
index cf8fd1e4255..ef94c1fc984 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
@@ -10,81 +10,112 @@
*******************************************************************************/
package org.eclipse.cdt.core.dom.upc;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
import org.eclipse.cdt.core.dom.ILinkage;
-import org.eclipse.cdt.core.dom.c99.BaseExtensibleLanguage;
-import org.eclipse.cdt.core.dom.c99.IC99TokenCollector;
-import org.eclipse.cdt.core.dom.c99.IKeywordMap;
-import org.eclipse.cdt.core.dom.c99.ILexerFactory;
-import org.eclipse.cdt.core.dom.c99.IPPTokenComparator;
-import org.eclipse.cdt.core.dom.c99.IParser;
-import org.eclipse.cdt.core.dom.c99.IPreprocessorExtensionConfiguration;
-import org.eclipse.cdt.core.dom.parser.c99.GCCPreprocessorExtensionConfiguration;
-import org.eclipse.cdt.core.dom.parser.upc.UPCKeywordMap;
-import org.eclipse.cdt.internal.core.dom.parser.upc.UPCLexerFactory;
-import org.eclipse.cdt.internal.core.dom.parser.upc.UPCPPTokenComparator;
-import org.eclipse.cdt.internal.core.dom.parser.upc.UPCParser;
-import org.eclipse.cdt.internal.core.dom.parser.upc.UPCTokenCollector;
+import org.eclipse.cdt.core.dom.ast.IASTName;
+import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
+import org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage;
+import org.eclipse.cdt.core.dom.lrparser.IDOMTokenMap;
+import org.eclipse.cdt.core.dom.lrparser.IParser;
+import org.eclipse.cdt.core.dom.lrparser.action.c99.C99ASTNodeFactory;
+import org.eclipse.cdt.core.dom.lrparser.c99.C99Language;
+import org.eclipse.cdt.core.dom.parser.upc.DOMToUPCTokenMap;
+import org.eclipse.cdt.core.dom.parser.upc.UPCKeyword;
+import org.eclipse.cdt.core.index.IIndex;
+import org.eclipse.cdt.core.model.IContributedModelBuilder;
+import org.eclipse.cdt.core.model.ITranslationUnit;
+import org.eclipse.cdt.core.parser.IScanner;
+import org.eclipse.cdt.core.parser.ParserLanguage;
+import org.eclipse.cdt.internal.core.dom.parser.c.CASTTranslationUnit;
/**
* Implementation of the ILanguage extension point, adds UPC as a language to CDT.
- *
- * Just hooks into C99Language and provides UPC specifier parser and keyword map.
- *
+ *
* @author Mike Kucera
*/
public class UPCLanguage extends BaseExtensibleLanguage {
- protected static final IPreprocessorExtensionConfiguration
- GCC_PREPROCESSOR_EXTENSION = new GCCPreprocessorExtensionConfiguration();
-
- // TODO: this should probably go somewhere else
public static final String PLUGIN_ID = "org.eclipse.cdt.core.parser.upc"; //$NON-NLS-1$
public static final String ID = PLUGIN_ID + ".upc"; //$NON-NLS-1$
- private static final UPCKeywordMap keywordMap = new UPCKeywordMap();
- private static final UPCLanguage myDefault = new UPCLanguage();
+ private static final IDOMTokenMap TOKEN_MAP = new DOMToUPCTokenMap();
+ private static final C99Language C99_LANGUAGE = C99Language.getDefault();
+ private static final UPCLanguage myDefault = new UPCLanguage();
+ private static final String[] keywords = UPCKeyword.getAllKeywords();
+
public static UPCLanguage getDefault() {
return myDefault;
}
+ @Override
+ protected IDOMTokenMap getTokenMap() {
+ return TOKEN_MAP;
+ }
+
+ @Override
+ public IParser getParser() {
+ //return new UPCParser();
+ return null;
+ }
+
+ public IContributedModelBuilder createModelBuilder(ITranslationUnit tu) {
+ return null;
+ }
+
public String getId() {
return ID;
}
-
+
public int getLinkageID() {
return ILinkage.C_LINKAGE_ID;
}
- public String getName() {
- // TODO: this has to be read from a message bundle
- return "UPC";//$NON-NLS-1$
+ public IASTName[] getSelectedNames(IASTTranslationUnit ast, int start, int length) {
+ return C99_LANGUAGE.getSelectedNames(ast, start, length);
}
-
-
- public IParser getParser() {
- return new UPCParser();
+
+ public String[] getBuiltinTypes() {
+ return C99_LANGUAGE.getBuiltinTypes();
}
- public IKeywordMap getKeywordMap() {
- return keywordMap;
+ public String[] getKeywords() {
+ return keywords;
}
- protected IPreprocessorExtensionConfiguration getPreprocessorExtensionConfiguration() {
- return GCC_PREPROCESSOR_EXTENSION;
+ public String[] getPreprocessorKeywords() {
+ return C99_LANGUAGE.getPreprocessorKeywords();
}
- protected ILexerFactory getLexerFactory() {
- return new UPCLexerFactory();
+ @Override
+ protected ParserLanguage getParserLanguageForPreprocessor() {
+ return ParserLanguage.C;
}
- protected IPPTokenComparator getTokenComparator() {
- return new UPCPPTokenComparator();
+ /**
+ * 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();
+ tu.setIndex(index);
+ if(tu instanceof CASTTranslationUnit) {
+ ((CASTTranslationUnit)tu).setLocationResolver(preprocessor.getLocationResolver());
+ }
+ return tu;
}
- protected IC99TokenCollector getTokenCollector() {
- return new UPCTokenCollector();
- }
+
+
+
+
+
}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTForallStatement.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTForallStatement.java
index 8254a93456f..2b10ba6f7b8 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTForallStatement.java
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTForallStatement.java
@@ -17,18 +17,6 @@ import org.eclipse.cdt.core.dom.ast.IASTStatement;
public interface IUPCASTForallStatement extends IASTForStatement {
- public static final ASTNodeProperty CONDITION = new ASTNodeProperty(
- "IUPCASTForallStatement.CONDITION - IASTExpression condition of IUPCASTForallStatement"); //$NON-NLS-1$
-
- public static final ASTNodeProperty ITERATION = new ASTNodeProperty(
- "IUPCASTForallStatement.ITERATION - IASTExpression iteration of IUPCASTForallStatement"); //$NON-NLS-1$
-
- public static final ASTNodeProperty BODY = new ASTNodeProperty(
- "IUPCASTForallStatement.BODY - IASTStatement body of IUPCASTForallStatement"); //$NON-NLS-1$
-
- public static final ASTNodeProperty INITIALIZER = new ASTNodeProperty(
- "IUPCASTForallStatement.INITIALIZER - initializer for IUPCASTForallStatement"); //$NON-NLS-1$
-
public static final ASTNodeProperty AFFINITY = new ASTNodeProperty(
"IUPCASTForallStatement.AFFINITY - IASTExpression affinity for IUPCASTForallStatement"); //$NON-NLS-1$
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTTypeIdExpression.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTTypeIdExpression.java
new file mode 100644
index 00000000000..a37f4cec52e
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTTypeIdExpression.java
@@ -0,0 +1,12 @@
+package org.eclipse.cdt.core.dom.upc.ast;
+
+import org.eclipse.cdt.core.dom.ast.IASTTypeIdExpression;
+
+public interface IUPCASTTypeIdExpression extends IASTTypeIdExpression {
+
+ public final int op_upc_localsizeof = op_last + 1;
+
+ public final int op_upc_blocksizeof = op_last + 2;
+
+ public final int op_upc_elemsizeof = op_last + 3;
+}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTSizeofExpression.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTUnaryExpression.java
index 3fb0902a29d..74fe10f5702 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTSizeofExpression.java
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc/ast/IUPCASTUnaryExpression.java
@@ -12,18 +12,12 @@ package org.eclipse.cdt.core.dom.upc.ast;
import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression;
-public interface IUPCASTSizeofExpression extends IASTUnaryExpression {
+public interface IUPCASTUnaryExpression extends IASTUnaryExpression {
- public final int op_sizeof = 0;
+ public final int op_upc_localsizeof = op_last + 1;
- public final int op_upc_localsizeof = 1;
+ public final int op_upc_blocksizeof = op_last + 2;
- public final int op_upc_blocksizeof = 2;
+ public final int op_upc_elemsizeof = op_last + 3;
- public final int op_upc_elemsizeof = 3;
-
- public void setUPCSizeofOperator(int upcSizeofOperator);
-
- public int getUPCSizeofOperator();
-
-}
+} \ No newline at end of file
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCLexer.g b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCLexer.g
deleted file mode 100644
index 1784dde04cd..00000000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCLexer.g
+++ /dev/null
@@ -1,30 +0,0 @@
------------------------------------------------------------------------------------
--- 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
------------------------------------------------------------------------------------
-
-%Options la=1
-%options package=org.eclipse.cdt.internal.core.dom.parser.upc
-%options template=LexerTemplateD.g
-%options export_terminals=("UPCLexerBaseexp.java", "TK_")
-%options verbose
-%Options list
-%options single_productions
-
-
-$Import
-C99Lexer.g
-$End
-
-
-$Globals
-/.
-import org.eclipse.cdt.internal.core.dom.parser.c99.preprocessor.Token;
-./
-$End \ No newline at end of file
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCLexer.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCLexer.java
deleted file mode 100644
index cdcfdb8318d..00000000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCLexer.java
+++ /dev/null
@@ -1,518 +0,0 @@
-/*******************************************************************************
-* 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
-*******************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.parser.upc;
-
-import lpg.lpgjavaruntime.*;
-
-import org.eclipse.cdt.core.parser.CodeReader;
-import org.eclipse.cdt.internal.core.dom.parser.c99.C99LexerKind;
-import org.eclipse.cdt.internal.core.dom.parser.c99.preprocessor.TokenList;
-import org.eclipse.cdt.internal.core.dom.parser.c99.preprocessor.Token;
-import org.eclipse.cdt.core.dom.c99.ILexer;
-
-import org.eclipse.cdt.internal.core.dom.parser.c99.preprocessor.Token;
-
-public class UPCLexer extends LpgLexStream implements UPCParsersym, UPCLexersym, RuleAction , ILexer
-{
- private static ParseTable prs = new UPCLexerprs();
- private PrsStream prsStream;
- private LexParser lexParser = new LexParser(this, prs, this);
-
- public PrsStream getPrsStream() { return prsStream; }
- public int getToken(int i) { return lexParser.getToken(i); }
- public int getRhsFirstTokenIndex(int i) { return lexParser.getFirstToken(i); }
- public int getRhsLastTokenIndex(int i) { return lexParser.getLastToken(i); }
-
- public int getLeftSpan() { return lexParser.getFirstToken(); }
- public int getRightSpan() { return lexParser.getLastToken(); }
-
- public UPCLexer(String filename, int tab) throws java.io.IOException
- {
- super(filename, tab);
- }
-
- public UPCLexer(char[] input_chars, String filename, int tab)
- {
- super(input_chars, filename, tab);
- }
-
- public UPCLexer(char[] input_chars, String filename)
- {
- this(input_chars, filename, 1);
- }
-
- public UPCLexer() {}
-
- public String[] orderedExportedSymbols() { return UPCParsersym.orderedTerminalSymbols; }
- public LexStream getLexStream() { return (LexStream) this; }
-
- public void lexer(PrsStream prsStream)
- {
- lexer(null, prsStream);
- }
-
- public void lexer(Monitor monitor, PrsStream prsStream)
- {
- if (getInputChars() == null)
- throw new NullPointerException("LexStream was not initialized");//$NON-NLS-1$
-
- this.prsStream = prsStream;
-
- prsStream.makeToken(0, 0, 0); // Token list must start with a bad token
-
- lexParser.parseCharacters(monitor); // Lex the input characters
-
- int i = getStreamIndex();
- prsStream.makeToken(i, i, TK_EOF_TOKEN); // and end with the end of file token
- prsStream.setStreamLength(prsStream.getSize());
-
- return;
- }
-
-private TokenList tokenList = null;
-private boolean returnCommentTokens = false;
-private char[] input = null; // the input character buffer
-
-public UPCLexer(CodeReader reader) {
- super(reader.buffer, new String(reader.filename));
-}
-
-// defined in interface ILexer
-public synchronized TokenList lex(int options) {
- if((OPTION_GENERATE_COMMENT_TOKENS & options) != 0)
- returnCommentTokens = true;
-
- tokenList = new TokenList();
- input = super.getInputChars();
-
- lexParser.parseCharacters(null); // Lex the input characters
-
- TokenList result = tokenList;
- tokenList = null;
- input = null;
- return result;
-}
-
-protected void makeToken(int kind) {
- // ignore comments if desired
- if(!returnCommentTokens && (kind == TK_MultiLineComment || kind == TK_SingleLineComment))
- return;
-
- int startOffset = lexParser.getFirstToken();
- int endOffset = lexParser.getLastToken();
-
- // an adjustment for trigraphs, commented out for optimization purposes
- //if(kind != C99Parsersym.TK_Question && startOffset == endOffset && input[startOffset] == '?') {
- // // The token starts with a '?' but its not a question token, then it must be a trigraph.
- // endOffset += 2; // make sure the toString() method of the token returns the entire trigraph sequence
- //}
-
- tokenList.add(new Token(startOffset, endOffset, kind, input));
-}
-
-public void reportError(int leftOffset, int rightOffset) {
- Token token = new Token(leftOffset, rightOffset, TK_Invalid, getInputChars());
- tokenList.add(token);
-}
-
-public int getKind(int i) {
- return C99LexerKind.getKind(this, i);
-}
-
-
- public void ruleAction( int ruleNumber)
- {
- switch(ruleNumber)
- {
-
- //
- // Rule 1: Token ::= identifier
- //
- case 1: { makeToken(TK_identifier); break;
- }
-
- //
- // Rule 2: Token ::= integer-constant
- //
- case 2: { makeToken(TK_integer); break;
- }
-
- //
- // Rule 3: Token ::= floating-constant
- //
- case 3: { makeToken(TK_floating); break;
- }
-
- //
- // Rule 4: Token ::= character-constant
- //
- case 4: { makeToken(TK_charconst); break;
- }
-
- //
- // Rule 5: Token ::= string-literal
- //
- case 5: { makeToken(TK_stringlit); break;
- }
-
- //
- // Rule 6: Token ::= [
- //
- case 6: { makeToken(TK_LeftBracket); break;
- }
-
- //
- // Rule 7: Token ::= ]
- //
- case 7: { makeToken(TK_RightBracket); break;
- }
-
- //
- // Rule 8: Token ::= (
- //
- case 8: { makeToken(TK_LeftParen); break;
- }
-
- //
- // Rule 9: Token ::= )
- //
- case 9: { makeToken(TK_RightParen); break;
- }
-
- //
- // Rule 10: Token ::= {
- //
- case 10: { makeToken(TK_LeftBrace); break;
- }
-
- //
- // Rule 11: Token ::= }
- //
- case 11: { makeToken(TK_RightBrace); break;
- }
-
- //
- // Rule 12: Token ::= .
- //
- case 12: { makeToken(TK_Dot); break;
- }
-
- //
- // Rule 13: Token ::= - >
- //
- case 13: { makeToken(TK_Arrow); break;
- }
-
- //
- // Rule 14: Token ::= + +
- //
- case 14: { makeToken(TK_PlusPlus); break;
- }
-
- //
- // Rule 15: Token ::= - -
- //
- case 15: { makeToken(TK_MinusMinus); break;
- }
-
- //
- // Rule 16: Token ::= &
- //
- case 16: { makeToken(TK_And); break;
- }
-
- //
- // Rule 17: Token ::= *
- //
- case 17: { makeToken(TK_Star); break;
- }
-
- //
- // Rule 18: Token ::= +
- //
- case 18: { makeToken(TK_Plus); break;
- }
-
- //
- // Rule 19: Token ::= -
- //
- case 19: { makeToken(TK_Minus); break;
- }
-
- //
- // Rule 20: Token ::= ~
- //
- case 20: { makeToken(TK_Tilde); break;
- }
-
- //
- // Rule 21: Token ::= !
- //
- case 21: { makeToken(TK_Bang); break;
- }
-
- //
- // Rule 22: Token ::= /
- //
- case 22: { makeToken(TK_Slash); break;
- }
-
- //
- // Rule 23: Token ::= %
- //
- case 23: { makeToken(TK_Percent); break;
- }
-
- //
- // Rule 24: Token ::= < <
- //
- case 24: { makeToken(TK_LeftShift); break;
- }
-
- //
- // Rule 25: Token ::= > >
- //
- case 25: { makeToken(TK_RightShift); break;
- }
-
- //
- // Rule 26: Token ::= <
- //
- case 26: { makeToken(TK_LT); break;
- }
-
- //
- // Rule 27: Token ::= >
- //
- case 27: { makeToken(TK_GT); break;
- }
-
- //
- // Rule 28: Token ::= < =
- //
- case 28: { makeToken(TK_LE); break;
- }
-
- //
- // Rule 29: Token ::= > =
- //
- case 29: { makeToken(TK_GE); break;
- }
-
- //
- // Rule 30: Token ::= = =
- //
- case 30: { makeToken(TK_EQ); break;
- }
-
- //
- // Rule 31: Token ::= ! =
- //
- case 31: { makeToken(TK_NE); break;
- }
-
- //
- // Rule 32: Token ::= ^
- //
- case 32: { makeToken(TK_Caret); break;
- }
-
- //
- // Rule 33: Token ::= |
- //
- case 33: { makeToken(TK_Or); break;
- }
-
- //
- // Rule 34: Token ::= & &
- //
- case 34: { makeToken(TK_AndAnd); break;
- }
-
- //
- // Rule 35: Token ::= | |
- //
- case 35: { makeToken(TK_OrOr); break;
- }
-
- //
- // Rule 36: Token ::= ?
- //
- case 36: { makeToken(TK_Question); break;
- }
-
- //
- // Rule 37: Token ::= :
- //
- case 37: { makeToken(TK_Colon); break;
- }
-
- //
- // Rule 38: Token ::= ;
- //
- case 38: { makeToken(TK_SemiColon); break;
- }
-
- //
- // Rule 39: Token ::= . . .
- //
- case 39: { makeToken(TK_DotDotDot); break;
- }
-
- //
- // Rule 40: Token ::= =
- //
- case 40: { makeToken(TK_Assign); break;
- }
-
- //
- // Rule 41: Token ::= * =
- //
- case 41: { makeToken(TK_StarAssign); break;
- }
-
- //
- // Rule 42: Token ::= / =
- //
- case 42: { makeToken(TK_SlashAssign); break;
- }
-
- //
- // Rule 43: Token ::= % =
- //
- case 43: { makeToken(TK_PercentAssign); break;
- }
-
- //
- // Rule 44: Token ::= + =
- //
- case 44: { makeToken(TK_PlusAssign); break;
- }
-
- //
- // Rule 45: Token ::= - =
- //
- case 45: { makeToken(TK_MinusAssign); break;
- }
-
- //
- // Rule 46: Token ::= < < =
- //
- case 46: { makeToken(TK_LeftShiftAssign); break;
- }
-
- //
- // Rule 47: Token ::= > > =
- //
- case 47: { makeToken(TK_RightShiftAssign); break;
- }
-
- //
- // Rule 48: Token ::= & =
- //
- case 48: { makeToken(TK_AndAssign); break;
- }
-
- //
- // Rule 49: Token ::= ^ =
- //
- case 49: { makeToken(TK_CaretAssign); break;
- }
-
- //
- // Rule 50: Token ::= | =
- //
- case 50: { makeToken(TK_OrAssign); break;
- }
-
- //
- // Rule 51: Token ::= ,
- //
- case 51: { makeToken(TK_Comma); break;
- }
-
- //
- // Rule 52: Token ::= #
- //
- case 52: { makeToken(TK_Hash); break;
- }
-
- //
- // Rule 53: Token ::= # #
- //
- case 53: { makeToken(TK_HashHash); break;
- }
-
- //
- // Rule 54: Token ::= < :
- //
- case 54: { makeToken(TK_LeftBracket); break;
- }
-
- //
- // Rule 55: Token ::= : >
- //
- case 55: { makeToken(TK_RightBracket); break;
- }
-
- //
- // Rule 56: Token ::= < %
- //
- case 56: { makeToken(TK_LeftBrace); break;
- }
-
- //
- // Rule 57: Token ::= % >
- //
- case 57: { makeToken(TK_RightBrace); break;
- }
-
- //
- // Rule 58: Token ::= % :
- //
- case 58: { makeToken(TK_Hash); break;
- }
-
- //
- // Rule 59: Token ::= % : % :
- //
- case 59: { makeToken(TK_HashHash); break;
- }
-
- //
- // Rule 217: Token ::= NewLine
- //
- case 217: { makeToken(TK_NewLine); break;
- }
-
- //
- // Rule 219: Token ::= SLC
- //
- case 219: { makeToken(TK_SingleLineComment); break;
- }
-
- //
- // Rule 220: Token ::= MLC
- //
- case 220: { makeToken(TK_MultiLineComment); break;
- }
-
-
- default:
- break;
- }
- return;
- }
-}
-
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCLexerprs.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCLexerprs.java
deleted file mode 100644
index 2c83ffbd56b..00000000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCLexerprs.java
+++ /dev/null
@@ -1,580 +0,0 @@
-/*******************************************************************************
-* 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
-*******************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.parser.upc;
-
-public class UPCLexerprs implements lpg.lpgjavaruntime.ParseTable, UPCLexersym {
-
- 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
- };
- };
- public final static byte isKeyword[] = IsKeyword.isKeyword;
- public final boolean isKeyword(int index) { return isKeyword[index] != 0; }
-
- public interface BaseCheck {
- public final static byte baseCheck[] = {0,
- 1,1,1,1,1,1,1,1,1,1,
- 1,1,2,2,2,1,1,1,1,1,
- 1,1,1,2,2,1,1,2,2,2,
- 2,1,1,2,2,1,1,1,3,1,
- 2,2,2,2,2,3,3,2,2,2,
- 1,1,2,2,2,2,2,2,4,1,
- 1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,1,1,
- 1,2,2,2,5,1,2,3,2,2,
- 0,1,2,2,1,1,3,4,4,1,
- 2,1,2,1,2,2,2,1,2,2,
- 1,2,1,2,1,1,1,1,2,2,
- 1,1,1,2,3,2,2,3,3,4,
- 3,4,1,2,2,2,3,3,2,3,
- 2,1,1,2,2,3,3,2,3,2,
- 1,2,1,1,1,1,3,4,1,2,
- 1,1,1,1,1,1,2,2,2,2,
- 2,2,2,2,2,2,2,2,3,2,
- 3,3,4,1,2,1,1
- };
- };
- public final static byte baseCheck[] = BaseCheck.baseCheck;
- public final int baseCheck(int index) { return baseCheck[index]; }
- public final static byte rhs[] = baseCheck;
- public final int rhs(int index) { return rhs[index]; };
-
- public interface BaseAction {
- public final static char baseAction[] = {
- 31,31,31,31,31,31,31,31,31,31,
- 31,31,31,31,31,31,31,31,31,31,
- 31,31,31,31,31,31,31,31,31,31,
- 31,31,31,31,31,31,31,31,31,31,
- 31,31,31,31,31,31,31,31,31,31,
- 31,31,31,31,31,31,31,31,31,31,
- 2,2,2,2,2,2,2,2,2,2,
- 2,2,2,2,2,2,2,2,2,2,
- 2,2,2,2,2,2,2,2,2,2,
- 2,2,2,2,2,2,2,2,2,2,
- 2,2,2,2,2,2,2,2,2,2,
- 2,2,23,23,23,1,1,1,1,1,
- 1,1,1,1,1,37,37,37,37,37,
- 37,37,37,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,4,4,4,4,
- 4,4,4,4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,4,4,4,
- 4,38,38,38,38,38,38,12,12,12,
- 12,12,12,12,12,12,12,13,13,13,
- 13,13,13,13,13,13,13,14,14,14,
- 14,39,39,39,39,39,39,39,24,24,
- 24,24,24,24,24,24,24,31,31,31,
- 31,40,40,41,41,42,44,44,43,43,
- 43,43,32,32,32,25,25,6,6,19,
- 33,33,33,33,45,46,47,47,26,26,
- 26,26,26,26,26,15,15,21,21,22,
- 22,34,34,48,48,48,48,48,48,49,
- 49,49,49,5,5,50,50,50,27,27,
- 27,27,16,16,51,51,51,28,28,28,
- 28,20,20,11,11,11,11,35,35,29,
- 29,17,17,7,7,7,7,8,8,8,
- 8,8,8,8,8,8,8,8,9,10,
- 36,36,36,36,30,30,18,18,201,578,
- 112,1422,365,357,236,1212,365,398,177,178,
- 1577,179,583,306,326,303,304,305,99,327,
- 199,235,1116,232,222,324,1088,1380,274,350,
- 501,2,3,4,5,1433,274,426,340,493,
- 220,1222,318,521,519,513,261,262,371,980,
- 187,188,266,189,437,306,301,303,304,305,
- 1170,486,302,689,177,178,299,179,404,306,
- 326,303,304,305,1391,327,1256,133,445,319,
- 1240,324,980,187,188,265,189,1276,306,301,
- 303,304,305,459,1613,302,495,177,178,299,
- 179,1573,306,326,303,304,305,1585,327,1324,
- 133,472,292,1601,325,592,187,188,268,189,
- 1616,306,301,303,304,305,1197,1617,302,786,
- 177,178,300,179,1590,306,326,303,304,305,
- 1614,327,883,187,188,270,189,325,306,301,
- 303,304,305,1372,464,302,1,208,209,300,
- 210,1451,626,301,201,202,626,171,254,1277,
- 211,1077,234,112,101,208,209,236,210,1607,
- 230,1473,274,1183,133,1580,291,1307,211,1270,
- 1400,1574,1409,511,235,1221,233,511,228,1228,
- 504,204,224,552,574,252,574,1596,593,1620,
- 520,483,520,483,1621,243,1203,241,272,1409,
- 624,1226,1150,133,624,292,1256,133,1164,291,
- 1256,133,1619,602,456,599,1256,133,1171,602,
- 1409,632,1409,634,1105,632,439,634,1572,589,
- 537,1296,133,1194,291,237,606,642,609,1256,
- 133,642,602,1462,628,249,250,642,628,1462,
- 630,612,1256,133,630,616,1462,636,238,1462,
- 638,636,1352,133,638,292,1256,133,642,620,
- 1256,133,642,239,1484,274,1495,274,1506,274,
- 1517,274,1528,274,1539,274,1550,274,1561,274,
- 642,642
- };
- };
- public final static char baseAction[] = BaseAction.baseAction;
- public final int baseAction(int index) { return baseAction[index]; }
- public final static char lhs[] = baseAction;
- public final int lhs(int index) { return lhs[index]; };
-
- public interface TermCheck {
- public final static byte termCheck[] = {0,
- 0,1,2,3,4,5,6,7,8,9,
- 10,11,12,13,14,15,16,17,18,19,
- 20,21,22,23,24,25,26,27,28,29,
- 30,31,32,33,34,35,36,37,38,39,
- 40,41,42,43,44,45,46,47,48,49,
- 50,51,52,53,54,55,56,57,58,59,
- 60,61,62,63,64,65,66,67,68,69,
- 70,71,72,73,74,75,76,77,78,79,
- 80,81,82,83,84,85,86,87,88,89,
- 90,91,92,93,94,95,96,97,0,99,
- 0,1,2,3,4,5,6,7,8,9,
- 10,11,12,13,14,15,16,17,18,19,
- 20,21,22,23,24,25,26,27,28,29,
- 30,31,32,33,34,35,36,37,38,39,
- 40,41,42,43,44,45,46,47,48,49,
- 50,51,52,53,54,55,56,57,58,59,
- 60,61,62,63,64,65,66,67,68,69,
- 70,71,72,73,74,75,76,77,78,79,
- 80,81,82,83,84,85,86,87,88,89,
- 90,91,92,93,94,95,96,97,0,99,
- 0,1,2,3,4,5,6,7,8,9,
- 10,11,12,13,14,15,16,17,18,19,
- 20,21,22,23,24,25,26,27,28,29,
- 30,31,32,33,34,35,36,37,38,39,
- 40,41,42,43,44,45,46,47,48,49,
- 50,51,52,53,54,55,56,57,58,59,
- 60,61,62,63,64,65,66,67,68,69,
- 70,71,72,73,74,75,76,77,78,79,
- 80,81,82,83,84,85,86,87,88,89,
- 90,91,92,93,94,95,98,97,0,99,
- 0,1,2,3,4,5,6,7,8,9,
- 10,11,12,13,14,15,16,17,18,19,
- 20,21,22,23,24,25,26,27,28,29,
- 30,31,32,33,34,35,36,37,38,39,
- 40,41,42,43,44,45,46,47,48,49,
- 50,51,52,53,54,55,56,57,58,59,
- 60,61,62,63,64,65,66,67,68,69,
- 70,71,72,73,74,75,76,77,78,79,
- 80,81,82,83,84,85,86,87,88,89,
- 90,91,92,93,94,95,96,0,1,2,
- 3,4,5,6,7,8,9,10,11,12,
- 13,14,15,16,17,18,19,20,21,22,
- 23,24,25,26,27,28,29,30,31,32,
- 33,34,35,36,37,38,39,40,41,42,
- 43,44,45,46,47,48,49,50,51,52,
- 53,54,55,56,57,58,59,60,61,62,
- 63,64,65,66,67,68,69,70,71,72,
- 73,74,75,76,77,78,79,80,81,82,
- 83,84,85,86,87,88,89,90,91,92,
- 93,94,95,96,0,1,2,3,4,5,
- 6,7,8,9,10,11,12,13,14,15,
- 16,17,18,19,20,21,22,23,24,25,
- 26,27,28,29,30,31,32,33,34,35,
- 36,37,38,39,40,41,42,43,44,45,
- 46,47,48,49,50,51,52,53,54,55,
- 56,57,58,59,60,61,62,63,64,65,
- 66,67,68,69,70,71,72,73,74,75,
- 76,77,78,79,80,81,82,83,84,85,
- 86,87,88,89,90,91,92,93,94,95,
- 96,0,1,2,3,4,5,6,7,8,
- 9,10,11,12,13,14,15,16,17,18,
- 19,20,21,22,23,24,25,26,27,28,
- 29,30,31,32,33,34,35,36,37,38,
- 39,40,41,42,43,44,45,46,47,48,
- 49,50,51,52,53,54,55,56,57,58,
- 59,60,61,62,63,64,65,66,67,68,
- 69,70,71,72,73,74,75,76,77,78,
- 79,80,81,82,83,84,85,86,87,88,
- 89,90,91,92,93,94,95,96,0,1,
- 2,3,4,5,6,7,8,9,10,11,
- 12,13,14,15,16,17,18,19,20,21,
- 22,23,24,25,26,27,28,29,30,31,
- 32,33,34,35,36,37,38,39,40,41,
- 42,43,44,45,46,47,48,49,50,51,
- 52,53,54,55,56,57,58,59,60,61,
- 62,63,64,65,66,67,68,69,70,71,
- 72,73,74,75,76,77,78,79,80,81,
- 82,83,84,85,86,87,88,89,90,91,
- 92,93,94,95,96,0,1,2,3,4,
- 5,6,7,8,9,10,11,12,13,14,
- 15,16,17,18,19,20,21,22,23,24,
- 25,26,27,28,29,30,31,32,33,34,
- 35,36,37,38,39,40,41,42,43,44,
- 45,46,47,48,49,50,51,52,53,54,
- 55,56,57,58,59,60,61,62,63,64,
- 65,66,67,68,69,70,71,72,73,74,
- 75,76,77,78,79,80,81,82,83,84,
- 85,86,87,88,89,90,91,92,93,94,
- 95,96,0,1,2,3,4,5,6,7,
- 8,9,10,11,12,13,14,15,16,17,
- 18,19,20,21,22,23,24,25,26,27,
- 28,29,30,31,32,33,34,35,36,37,
- 38,39,40,41,42,43,44,45,46,47,
- 48,49,50,51,52,53,54,55,56,57,
- 58,59,60,61,62,63,64,65,66,67,
- 68,69,70,71,72,73,74,75,76,77,
- 78,79,80,81,82,83,84,85,86,87,
- 88,89,90,91,92,93,94,95,96,0,
- 1,2,3,4,5,6,7,8,9,10,
- 11,12,13,14,15,16,17,18,19,20,
- 21,22,23,24,25,26,27,28,29,30,
- 31,32,33,34,35,36,37,38,39,40,
- 41,42,43,44,45,46,47,48,49,50,
- 51,52,53,54,55,56,57,58,59,60,
- 61,62,63,64,65,66,67,68,69,70,
- 71,72,73,74,75,76,77,78,79,80,
- 81,82,0,84,85,86,87,88,89,90,
- 91,92,93,94,95,96,0,1,2,3,
- 4,5,6,7,8,9,10,0,12,13,
- 14,15,16,17,18,19,20,21,22,23,
- 24,25,26,27,0,0,30,31,32,0,
- 34,35,36,37,38,0,29,41,14,15,
- 44,45,46,47,48,49,50,51,52,53,
- 54,55,56,57,58,59,60,61,62,63,
- 64,65,66,67,68,69,70,71,72,0,
- 1,2,3,4,5,6,7,8,9,10,
- 84,12,13,0,0,16,17,18,19,0,
- 0,22,23,24,25,26,27,28,15,30,
- 11,32,0,1,2,3,4,5,6,7,
- 8,9,10,0,12,13,0,82,16,17,
- 18,19,0,33,22,23,24,25,26,27,
- 28,0,1,2,3,4,5,6,7,8,
- 0,0,0,12,0,0,30,0,32,18,
- 19,20,21,12,13,14,15,16,17,0,
- 20,21,31,0,42,34,35,36,37,80,
- 11,0,41,28,43,0,1,2,3,4,
- 5,6,7,8,9,10,0,12,13,0,
- 43,16,17,18,19,0,0,22,23,24,
- 25,26,27,14,15,0,11,11,0,20,
- 21,98,81,0,83,0,1,2,3,4,
- 5,6,7,8,9,10,0,12,13,0,
- 83,16,17,18,19,39,0,22,23,24,
- 25,26,27,0,1,2,3,4,5,6,
- 7,8,9,10,0,12,13,31,0,16,
- 17,18,19,0,38,22,23,24,25,26,
- 27,0,1,2,3,4,5,6,7,8,
- 9,10,0,12,13,0,0,16,17,18,
- 19,0,0,22,23,24,25,26,27,0,
- 1,2,3,4,5,6,7,8,9,10,
- 0,20,21,0,0,16,17,0,0,0,
- 0,0,12,13,14,15,0,28,0,1,
- 2,3,4,5,6,7,8,9,10,20,
- 21,0,1,2,3,4,5,6,7,8,
- 9,10,0,1,2,3,4,5,6,7,
- 8,9,10,0,0,0,0,39,40,28,
- 0,1,2,3,4,5,6,7,8,9,
- 10,0,1,2,3,4,5,6,7,8,
- 9,10,0,1,2,3,4,5,6,7,
- 8,9,10,0,1,2,3,4,5,6,
- 7,8,9,10,0,1,2,3,4,5,
- 6,7,8,9,10,0,1,2,3,4,
- 5,6,7,8,9,10,0,1,2,3,
- 4,5,6,7,8,9,10,0,1,2,
- 3,4,5,6,7,8,9,10,0,1,
- 2,3,4,5,6,7,8,9,10,0,
- 1,2,3,4,5,6,7,8,9,10,
- 0,1,2,3,4,5,6,7,8,9,
- 10,0,0,0,0,0,0,0,0,0,
- 0,0,0,11,0,14,15,14,15,0,
- 11,20,21,20,21,0,12,13,14,15,
- 0,12,13,14,15,33,0,12,13,14,
- 15,11,0,0,42,0,0,11,0,0,
- 0,0,0,11,11,0,11,11,0,29,
- 11,11,14,33,0,29,0,0,0,0,
- 0,29,0,0,0,0,40,0,76,73,
- 74,75,0,0,0,0,77,78,0,0,
- 0,0,0,0,0,0,0,0,0,98,
- 0,0,0,97,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,79,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0
- };
- };
- 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,
- 642,757,758,759,760,761,762,763,764,765,
- 766,801,707,733,713,739,706,732,702,703,
- 722,748,704,705,728,729,730,731,797,802,
- 717,725,743,798,715,719,721,723,751,794,
- 796,857,790,856,708,709,710,711,712,714,
- 716,718,720,724,726,727,734,735,736,737,
- 738,740,741,742,744,745,746,747,749,750,
- 752,753,807,839,841,842,800,871,504,791,
- 809,803,789,855,812,792,793,804,805,808,
- 810,811,788,806,799,795,854,840,231,858,
- 642,757,758,759,760,761,762,763,764,765,
- 766,801,707,733,713,739,706,732,702,703,
- 722,748,704,705,728,729,730,731,797,802,
- 717,725,743,798,715,719,721,723,751,794,
- 796,857,790,856,708,709,710,711,712,714,
- 716,718,720,724,726,727,734,735,736,737,
- 738,740,741,742,744,745,746,747,749,750,
- 752,753,807,839,841,842,800,867,869,791,
- 809,803,789,855,812,792,793,804,805,808,
- 810,811,788,806,799,795,854,840,642,858,
- 642,517,758,759,760,761,762,763,764,765,
- 766,417,707,733,713,529,706,732,702,703,
- 722,748,704,705,728,729,730,731,331,424,
- 717,725,743,356,715,719,721,723,751,499,
- 509,525,443,337,708,709,710,711,712,714,
- 716,718,720,724,726,727,734,735,736,737,
- 738,740,741,742,744,745,746,747,749,750,
- 752,753,755,839,841,842,431,515,457,470,
- 390,678,352,379,756,650,651,648,649,652,
- 653,662,450,410,680,693,641,840,642,859,
- 219,757,758,759,760,761,762,763,764,765,
- 766,801,707,733,713,739,706,732,702,703,
- 722,748,704,705,728,729,730,731,797,802,
- 717,725,743,798,715,719,721,723,751,794,
- 796,816,790,815,708,709,710,711,712,714,
- 716,718,720,724,726,727,734,735,736,737,
- 738,740,741,742,744,745,746,747,749,750,
- 752,753,807,849,847,848,800,817,818,791,
- 809,803,789,814,812,792,793,804,805,808,
- 810,811,788,806,799,795,845,642,757,758,
- 759,760,761,762,763,764,765,766,801,707,
- 733,713,739,706,732,702,703,722,748,704,
- 705,728,729,730,731,797,802,717,725,743,
- 798,715,719,721,723,751,794,796,335,790,
- 962,708,709,710,711,712,714,716,718,720,
- 724,726,727,734,735,736,737,738,740,741,
- 742,744,745,746,747,749,750,752,753,807,
- 828,826,827,800,824,825,791,809,803,789,
- 823,812,792,793,804,805,808,810,811,788,
- 806,799,795,822,642,757,758,759,760,761,
- 762,763,764,765,766,801,707,733,713,739,
- 706,732,702,703,722,748,704,705,728,729,
- 730,731,797,802,717,725,743,798,715,719,
- 721,723,751,794,796,335,790,963,708,709,
- 710,711,712,714,716,718,720,724,726,727,
- 734,735,736,737,738,740,741,742,744,745,
- 746,747,749,750,752,753,807,828,826,827,
- 800,824,825,791,809,803,789,823,812,792,
- 793,804,805,808,810,811,788,806,799,795,
- 822,642,757,758,759,760,761,762,763,764,
- 765,766,801,707,733,713,739,706,732,702,
- 703,722,748,704,705,728,729,730,731,797,
- 802,717,725,743,798,715,719,721,723,751,
- 794,796,335,790,833,708,709,710,711,712,
- 714,716,718,720,724,726,727,734,735,736,
- 737,738,740,741,742,744,745,746,747,749,
- 750,752,753,807,838,836,837,800,834,835,
- 791,809,803,789,939,812,792,793,804,805,
- 808,810,811,788,806,799,795,832,642,757,
- 758,759,760,761,762,763,764,765,766,801,
- 707,733,713,739,706,732,702,703,722,748,
- 704,705,728,729,730,731,797,802,717,725,
- 743,798,715,719,721,723,751,794,796,335,
- 790,964,708,709,710,711,712,714,716,718,
- 720,724,726,727,734,735,736,737,738,740,
- 741,742,744,745,746,747,749,750,752,753,
- 807,828,826,827,800,824,825,791,809,803,
- 789,823,812,792,793,804,805,808,810,811,
- 788,806,799,795,822,642,757,758,759,760,
- 761,762,763,764,765,766,801,707,733,713,
- 739,706,732,702,703,722,748,704,705,728,
- 729,730,731,797,802,717,725,743,798,715,
- 719,721,723,751,794,796,335,790,965,708,
- 709,710,711,712,714,716,718,720,724,726,
- 727,734,735,736,737,738,740,741,742,744,
- 745,746,747,749,750,752,753,807,828,826,
- 827,800,824,825,791,809,803,789,823,812,
- 792,793,804,805,808,810,811,788,806,799,
- 795,822,642,757,758,759,760,761,762,763,
- 764,765,766,801,707,733,713,739,706,732,
- 702,703,722,748,704,705,728,729,730,731,
- 797,802,717,725,743,798,715,719,721,723,
- 751,794,796,335,790,833,708,709,710,711,
- 712,714,716,718,720,724,726,727,734,735,
- 736,737,738,740,741,742,744,745,746,747,
- 749,750,752,753,807,838,836,837,800,834,
- 835,791,809,803,789,940,812,792,793,804,
- 805,808,810,811,788,806,799,795,832,642,
- 757,758,759,760,761,762,763,764,765,766,
- 801,707,733,713,739,706,732,702,703,722,
- 748,704,705,728,729,730,731,797,802,717,
- 725,743,798,715,719,721,723,751,794,796,
- 335,790,833,708,709,710,711,712,714,716,
- 718,720,724,726,727,734,735,736,737,738,
- 740,741,742,744,745,746,747,749,750,752,
- 753,807,838,836,837,800,834,835,791,809,
- 803,789,642,812,792,793,804,805,808,810,
- 811,788,806,799,795,832,1,757,758,759,
- 760,761,762,763,764,765,766,37,707,733,
- 713,739,706,732,702,703,722,748,704,705,
- 728,729,730,731,248,642,717,725,743,642,
- 715,719,721,723,751,52,697,525,562,558,
- 708,709,710,711,712,714,716,718,720,724,
- 726,727,734,735,736,737,738,740,741,742,
- 744,745,746,747,749,750,752,753,755,245,
- 757,758,759,760,761,762,763,764,765,766,
- 756,781,787,258,642,780,786,776,777,33,
- 642,778,779,782,783,784,785,581,902,572,
- 692,570,642,757,758,759,760,761,762,763,
- 764,765,766,221,781,787,642,695,780,786,
- 776,777,58,701,778,779,782,783,784,785,
- 556,642,767,768,769,770,771,772,773,774,
- 642,263,642,955,642,642,572,97,570,953,
- 954,566,560,935,937,936,938,549,522,32,
- 566,560,406,642,568,956,957,958,959,677,
- 691,642,952,681,950,642,757,758,759,760,
- 761,762,763,764,765,766,642,781,787,242,
- 393,780,786,776,777,40,18,778,779,782,
- 783,784,785,562,558,642,672,686,642,897,
- 898,218,951,642,949,285,757,758,759,760,
- 761,762,763,764,765,766,115,781,787,642,
- 412,780,786,776,777,656,642,778,779,782,
- 783,784,785,284,757,758,759,760,761,762,
- 763,764,765,766,642,781,787,888,642,780,
- 786,776,777,642,889,778,779,782,783,784,
- 785,286,757,758,759,760,761,762,763,764,
- 765,766,642,781,787,642,642,780,786,776,
- 777,253,642,778,779,782,783,784,785,244,
- 757,758,759,760,761,762,763,764,765,766,
- 264,897,898,642,642,549,522,642,642,251,
- 642,642,935,937,936,938,642,491,642,757,
- 758,759,760,761,762,763,764,765,766,897,
- 898,12,757,758,759,760,761,762,763,764,
- 765,766,275,757,758,759,760,761,762,763,
- 764,765,766,642,642,642,642,924,925,551,
- 276,757,758,759,760,761,762,763,764,765,
- 766,642,757,758,759,760,761,762,763,764,
- 765,766,281,757,758,759,760,761,762,763,
- 764,765,766,279,757,758,759,760,761,762,
- 763,764,765,766,277,757,758,759,760,761,
- 762,763,764,765,766,280,757,758,759,760,
- 761,762,763,764,765,766,278,757,758,759,
- 760,761,762,763,764,765,766,290,757,758,
- 759,760,761,762,763,764,765,766,288,757,
- 758,759,760,761,762,763,764,765,766,289,
- 757,758,759,760,761,762,763,764,765,766,
- 287,757,758,759,760,761,762,763,764,765,
- 766,273,26,240,642,642,218,642,642,22,
- 642,642,642,670,267,244,244,562,558,269,
- 684,244,244,897,898,271,935,937,936,938,
- 23,935,937,936,938,696,19,935,937,936,
- 938,685,27,16,698,21,17,687,257,25,
- 24,642,642,671,690,642,673,683,642,699,
- 689,688,901,546,642,655,642,642,642,642,
- 642,539,642,642,642,642,657,642,544,839,
- 841,842,642,642,642,642,865,348,642,642,
- 642,642,642,642,642,642,642,642,642,244,
- 642,642,642,840,642,642,642,642,642,642,
- 642,642,642,642,642,642,642,642,642,642,
- 642,642,676
- };
- };
- public final static char termAction[] = TermAction.termAction;
- public final int termAction(int index) { return termAction[index]; }
- public final int asb(int index) { return 0; }
- public final int asr(int index) { return 0; }
- public final int nasb(int index) { return 0; }
- public final int nasr(int index) { return 0; }
- public final int terminalIndex(int index) { return 0; }
- public final int nonterminalIndex(int index) { return 0; }
- public final int scopePrefix(int index) { return 0;}
- public final int scopeSuffix(int index) { return 0;}
- public final int scopeLhs(int index) { return 0;}
- public final int scopeLa(int index) { return 0;}
- public final int scopeStateSet(int index) { return 0;}
- public final int scopeRhs(int index) { return 0;}
- public final int scopeState(int index) { return 0;}
- public final int inSymb(int index) { return 0;}
- public final String name(int index) { return null; }
- public final int getErrorSymbol() { return 0; }
- public final int getScopeUbound() { return 0; }
- public final int getScopeSize() { return 0; }
- public final int getMaxNameLength() { return 0; }
-
- public final static int
- NUM_STATES = 88,
- NT_OFFSET = 99,
- LA_STATE_OFFSET = 969,
- MAX_LA = 1,
- NUM_RULES = 327,
- NUM_NONTERMINALS = 52,
- NUM_SYMBOLS = 151,
- SEGMENT_SIZE = 8192,
- START_STATE = 328,
- IDENTIFIER_SYMBOL = 0,
- EOFT_SYMBOL = 98,
- EOLT_SYMBOL = 65,
- ACCEPT_ACTION = 641,
- ERROR_ACTION = 642;
-
- public final static boolean BACKTRACK = false;
-
- 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 0; }
- public final int asi(int state) { return 0; }
- public final int nasi(int state) { return 0; }
- public final int inSymbol(int state) { return 0; }
-
- 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/UPCLexersym.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCLexersym.java
deleted file mode 100644
index 76203ed601b..00000000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCLexersym.java
+++ /dev/null
@@ -1,222 +0,0 @@
-/*******************************************************************************
-* 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
-*******************************************************************************/
-
-// This file was generated by LPG
-
-package org.eclipse.cdt.internal.core.dom.parser.upc;
-
-public interface UPCLexersym {
- public final static int
- Char_a = 18,
- Char_b = 19,
- Char_c = 22,
- Char_d = 23,
- Char_e = 16,
- Char_f = 12,
- Char_g = 44,
- Char_h = 45,
- Char_i = 46,
- Char_j = 47,
- Char_k = 48,
- Char_l = 14,
- Char_m = 49,
- Char_n = 34,
- Char_o = 50,
- Char_p = 30,
- Char_q = 51,
- Char_r = 35,
- Char_s = 52,
- Char_t = 36,
- Char_u = 20,
- Char_v = 37,
- Char_w = 53,
- Char_x = 31,
- Char_y = 54,
- Char_z = 55,
- Char_A = 24,
- Char_B = 25,
- Char_C = 26,
- Char_D = 27,
- Char_E = 17,
- Char_F = 13,
- Char_G = 56,
- Char_H = 57,
- Char_I = 58,
- Char_J = 59,
- Char_K = 60,
- Char_L = 15,
- Char_M = 61,
- Char_N = 62,
- Char_O = 63,
- Char_P = 32,
- Char_Q = 64,
- Char_R = 65,
- Char_S = 66,
- Char_T = 67,
- Char_U = 21,
- Char_V = 68,
- Char_W = 69,
- Char_X = 38,
- Char_Y = 70,
- Char_Z = 71,
- Char__ = 72,
- Char_0 = 1,
- Char_1 = 2,
- Char_2 = 3,
- Char_3 = 4,
- Char_4 = 5,
- Char_5 = 6,
- Char_6 = 7,
- Char_7 = 8,
- Char_8 = 9,
- Char_9 = 10,
- Char_EOF = 98,
- Char_Space = 73,
- Char_Unused = 96,
- Char_LF = 99,
- Char_CR = 97,
- Char_HT = 74,
- Char_FF = 75,
- Char_Dot = 28,
- Char_LessThan = 76,
- Char_GreaterThan = 29,
- Char_Plus = 39,
- Char_Minus = 40,
- Char_Slash = 77,
- Char_BackSlash = 41,
- Char_Star = 78,
- Char_LeftParen = 85,
- Char_RightParen = 86,
- Char_Equal = 11,
- Char_LeftBracket = 87,
- Char_RightBracket = 88,
- Char_LeftBrace = 89,
- Char_RightBrace = 90,
- Char_Ampersand = 79,
- Char_Tilde = 91,
- Char_Bang = 92,
- Char_Percent = 42,
- Char_Caret = 93,
- Char_Bar = 80,
- Char_Question = 81,
- Char_Colon = 33,
- Char_SemiColon = 94,
- Char_Comma = 95,
- Char_Hash = 82,
- Char_SingleQuote = 83,
- Char_DoubleQuote = 43,
- Char_DollarSign = 84;
-
- public final static String orderedTerminalSymbols[] = {
- "",//$NON-NLS-1$
- "0",//$NON-NLS-1$
- "1",//$NON-NLS-1$
- "2",//$NON-NLS-1$
- "3",//$NON-NLS-1$
- "4",//$NON-NLS-1$
- "5",//$NON-NLS-1$
- "6",//$NON-NLS-1$
- "7",//$NON-NLS-1$
- "8",//$NON-NLS-1$
- "9",//$NON-NLS-1$
- "Equal",//$NON-NLS-1$
- "f",//$NON-NLS-1$
- "F",//$NON-NLS-1$
- "l",//$NON-NLS-1$
- "L",//$NON-NLS-1$
- "e",//$NON-NLS-1$
- "E",//$NON-NLS-1$
- "a",//$NON-NLS-1$
- "b",//$NON-NLS-1$
- "u",//$NON-NLS-1$
- "U",//$NON-NLS-1$
- "c",//$NON-NLS-1$
- "d",//$NON-NLS-1$
- "A",//$NON-NLS-1$
- "B",//$NON-NLS-1$
- "C",//$NON-NLS-1$
- "D",//$NON-NLS-1$
- "Dot",//$NON-NLS-1$
- "GreaterThan",//$NON-NLS-1$
- "p",//$NON-NLS-1$
- "x",//$NON-NLS-1$
- "P",//$NON-NLS-1$
- "Colon",//$NON-NLS-1$
- "n",//$NON-NLS-1$
- "r",//$NON-NLS-1$
- "t",//$NON-NLS-1$
- "v",//$NON-NLS-1$
- "X",//$NON-NLS-1$
- "Plus",//$NON-NLS-1$
- "Minus",//$NON-NLS-1$
- "BackSlash",//$NON-NLS-1$
- "Percent",//$NON-NLS-1$
- "DoubleQuote",//$NON-NLS-1$
- "g",//$NON-NLS-1$
- "h",//$NON-NLS-1$
- "i",//$NON-NLS-1$
- "j",//$NON-NLS-1$
- "k",//$NON-NLS-1$
- "m",//$NON-NLS-1$
- "o",//$NON-NLS-1$
- "q",//$NON-NLS-1$
- "s",//$NON-NLS-1$
- "w",//$NON-NLS-1$
- "y",//$NON-NLS-1$
- "z",//$NON-NLS-1$
- "G",//$NON-NLS-1$
- "H",//$NON-NLS-1$
- "I",//$NON-NLS-1$
- "J",//$NON-NLS-1$
- "K",//$NON-NLS-1$
- "M",//$NON-NLS-1$
- "N",//$NON-NLS-1$
- "O",//$NON-NLS-1$
- "Q",//$NON-NLS-1$
- "R",//$NON-NLS-1$
- "S",//$NON-NLS-1$
- "T",//$NON-NLS-1$
- "V",//$NON-NLS-1$
- "W",//$NON-NLS-1$
- "Y",//$NON-NLS-1$
- "Z",//$NON-NLS-1$
- "_",//$NON-NLS-1$
- "Space",//$NON-NLS-1$
- "HT",//$NON-NLS-1$
- "FF",//$NON-NLS-1$
- "LessThan",//$NON-NLS-1$
- "Slash",//$NON-NLS-1$
- "Star",//$NON-NLS-1$
- "Ampersand",//$NON-NLS-1$
- "Bar",//$NON-NLS-1$
- "Question",//$NON-NLS-1$
- "Hash",//$NON-NLS-1$
- "SingleQuote",//$NON-NLS-1$
- "DollarSign",//$NON-NLS-1$
- "LeftParen",//$NON-NLS-1$
- "RightParen",//$NON-NLS-1$
- "LeftBracket",//$NON-NLS-1$
- "RightBracket",//$NON-NLS-1$
- "LeftBrace",//$NON-NLS-1$
- "RightBrace",//$NON-NLS-1$
- "Tilde",//$NON-NLS-1$
- "Bang",//$NON-NLS-1$
- "Caret",//$NON-NLS-1$
- "SemiColon",//$NON-NLS-1$
- "Comma",//$NON-NLS-1$
- "Unused",//$NON-NLS-1$
- "CR",//$NON-NLS-1$
- "EOF",//$NON-NLS-1$
- "LF"//$NON-NLS-1$
- };
-
- 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/UPCPPTokenComparator.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCPPTokenComparator.java
deleted file mode 100644
index 4a69840e53e..00000000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCPPTokenComparator.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*******************************************************************************
-* 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
-*********************************************************************************/
-
-package org.eclipse.cdt.internal.core.dom.parser.upc;
-
-import static org.eclipse.cdt.core.dom.parser.c99.PPToken.AND;
-import static org.eclipse.cdt.core.dom.parser.c99.PPToken.ANDAND;
-import static org.eclipse.cdt.core.dom.parser.c99.PPToken.BANG;
-import static org.eclipse.cdt.core.dom.parser.c99.PPToken.CARET;
-import static org.eclipse.cdt.core.dom.parser.c99.PPToken.CHARCONST;
-import static org.eclipse.cdt.core.dom.parser.c99.PPToken.COLON;
-import static org.eclipse.cdt.core.dom.parser.c99.PPToken.COMMA;
-import static org.eclipse.cdt.core.dom.parser.c99.PPToken.DOTDOTDOT;
-import static org.eclipse.cdt.core.dom.parser.c99.PPToken.EOF;
-import static org.eclipse.cdt.core.dom.parser.c99.PPToken.EQ;
-import static org.eclipse.cdt.core.dom.parser.c99.PPToken.GE;
-import static org.eclipse.cdt.core.dom.parser.c99.PPToken.GT;
-import static org.eclipse.cdt.core.dom.parser.c99.PPToken.HASH;
-import static org.eclipse.cdt.core.dom.parser.c99.PPToken.HASHHASH;
-import static org.eclipse.cdt.core.dom.parser.c99.PPToken.IDENT;
-import static org.eclipse.cdt.core.dom.parser.c99.PPToken.INTEGER;
-import static org.eclipse.cdt.core.dom.parser.c99.PPToken.LE;
-import static org.eclipse.cdt.core.dom.parser.c99.PPToken.LEFTSHIFT;
-import static org.eclipse.cdt.core.dom.parser.c99.PPToken.LPAREN;
-import static org.eclipse.cdt.core.dom.parser.c99.PPToken.LT;
-import static org.eclipse.cdt.core.dom.parser.c99.PPToken.MINUS;
-import static org.eclipse.cdt.core.dom.parser.c99.PPToken.MULTI_LINE_COMMENT;
-import static org.eclipse.cdt.core.dom.parser.c99.PPToken.NE;
-import static org.eclipse.cdt.core.dom.parser.c99.PPToken.NEWLINE;
-import static org.eclipse.cdt.core.dom.parser.c99.PPToken.OR;
-import static org.eclipse.cdt.core.dom.parser.c99.PPToken.OROR;
-import static org.eclipse.cdt.core.dom.parser.c99.PPToken.PERCENT;
-import static org.eclipse.cdt.core.dom.parser.c99.PPToken.PLACEMARKER;
-import static org.eclipse.cdt.core.dom.parser.c99.PPToken.PLUS;
-import static org.eclipse.cdt.core.dom.parser.c99.PPToken.QUESTION;
-import static org.eclipse.cdt.core.dom.parser.c99.PPToken.RIGHTSHIFT;
-import static org.eclipse.cdt.core.dom.parser.c99.PPToken.RPAREN;
-import static org.eclipse.cdt.core.dom.parser.c99.PPToken.SINGLE_LINE_COMMENT;
-import static org.eclipse.cdt.core.dom.parser.c99.PPToken.SLASH;
-import static org.eclipse.cdt.core.dom.parser.c99.PPToken.STAR;
-import static org.eclipse.cdt.core.dom.parser.c99.PPToken.STRINGLIT;
-import static org.eclipse.cdt.core.dom.parser.c99.PPToken.TILDE;
-import lpg.lpgjavaruntime.IToken;
-
-import org.eclipse.cdt.core.dom.c99.IPPTokenComparator;
-import org.eclipse.cdt.core.dom.parser.c99.PPToken;
-import org.eclipse.cdt.internal.core.dom.parser.c99.preprocessor.SynthesizedToken;
-import org.eclipse.cdt.internal.core.dom.parser.c99.preprocessor.Token;
-
-public class UPCPPTokenComparator implements IPPTokenComparator<IToken> {
-
-private static final int PLACEMARKER_VALUE = Integer.MAX_VALUE;
-
-
- public PPToken getKind(IToken token) {
- if(token == null)
- return null;
-
- switch(token.getKind()) {
- case UPCParsersym.TK_Hash : return HASH;
- case UPCParsersym.TK_HashHash : return HASHHASH;
- case UPCParsersym.TK_LeftParen : return LPAREN;
- case UPCParsersym.TK_NewLine : return NEWLINE;
- case UPCParsersym.TK_Comma : return COMMA;
- case UPCParsersym.TK_RightParen : return RPAREN;
- case UPCParsersym.TK_DotDotDot : return DOTDOTDOT;
- case UPCParsersym.TK_EOF_TOKEN : return EOF;
- case UPCParsersym.TK_stringlit : return STRINGLIT;
- case UPCParsersym.TK_integer : return INTEGER;
- case UPCParsersym.TK_SingleLineComment : return SINGLE_LINE_COMMENT;
- case UPCParsersym.TK_MultiLineComment : return MULTI_LINE_COMMENT;
- case UPCParsersym.TK_identifier : return IDENT;
- case UPCParsersym.TK_charconst : return CHARCONST;
-
- case UPCParsersym.TK_And : return AND;
- case UPCParsersym.TK_Star : return STAR;
- case UPCParsersym.TK_Plus : return PLUS;
- case UPCParsersym.TK_Minus : return MINUS;
- case UPCParsersym.TK_Tilde : return TILDE;
- case UPCParsersym.TK_Bang : return BANG;
- case UPCParsersym.TK_Slash : return SLASH;
- case UPCParsersym.TK_Percent : return PERCENT;
- case UPCParsersym.TK_RightShift : return RIGHTSHIFT;
- case UPCParsersym.TK_LeftShift : return LEFTSHIFT;
- case UPCParsersym.TK_LT : return LT;
- case UPCParsersym.TK_GT : return GT;
- case UPCParsersym.TK_LE : return LE;
- case UPCParsersym.TK_GE : return GE;
- case UPCParsersym.TK_EQ : return EQ;
- case UPCParsersym.TK_NE : return NE;
- case UPCParsersym.TK_Caret : return CARET;
- case UPCParsersym.TK_Or : return OR;
- case UPCParsersym.TK_AndAnd : return ANDAND;
- case UPCParsersym.TK_OrOr : return OROR;
- case UPCParsersym.TK_Question : return QUESTION;
- case UPCParsersym.TK_Colon : return COLON;
-
- // TODO: will removing this case cause the switch to compile into a tableswitch bytecode?
- // tableswitch is faster than lookupswitch
- case PLACEMARKER_VALUE : return PLACEMARKER;
- }
- return null;
- }
-
-
- public IToken createToken(int tokenToMake, int startOffset, int endOffset, String image) {
- int kind;
- switch(tokenToMake) {
- case KIND_IDENTIFIER : kind = UPCParsersym.TK_identifier; break;
- case KIND_COMPLETION : kind = UPCParsersym.TK_Completion; break;
- case KIND_END_OF_COMPLETION : kind = UPCParsersym.TK_EndOfCompletion; break;
- case KIND_INTEGER : kind = UPCParsersym.TK_integer; break;
- case KIND_STRINGLIT : kind = UPCParsersym.TK_stringlit; break;
- case KIND_INVALID : kind = UPCParsersym.TK_Invalid; break;
- case KIND_PLACEMARKER : kind = PLACEMARKER_VALUE; break;
- default : kind = UPCParsersym.TK_Invalid; break;
- }
-
- return new SynthesizedToken(startOffset, endOffset, kind, image);
- }
-
- public IToken cloneToken(IToken token) {
- if(token instanceof Token) {
- return (IToken)((Token)token).clone();
- }
- throw new RuntimeException("don't know what kind of token that is"); //$NON-NLS-1$
- }
-
-
- public int getEndOffset(IToken token) {
- return token.getEndOffset();
- }
-
- public int getStartOffset(IToken token) {
- return token.getStartOffset();
- }
-
- public void setEndOffset(IToken token, int offset) {
- token.setEndOffset(offset);
- }
-
- public void setStartOffset(IToken token, int offset) {
- token.setStartOffset(offset);
- }
-}
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 5c2a487d38f..53944bae9b5 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
@@ -13,28 +13,43 @@
package org.eclipse.cdt.internal.core.dom.parser.upc;
-import lpg.lpgjavaruntime.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
-import java.util.*;
+import lpg.lpgjavaruntime.BacktrackingParser;
+import lpg.lpgjavaruntime.BadParseException;
+import lpg.lpgjavaruntime.BadParseSymFileException;
+import lpg.lpgjavaruntime.DiagnoseParser;
+import lpg.lpgjavaruntime.ErrorToken;
+import lpg.lpgjavaruntime.IToken;
+import lpg.lpgjavaruntime.LexStream;
+import lpg.lpgjavaruntime.Monitor;
+import lpg.lpgjavaruntime.NotBacktrackParseTableException;
+import lpg.lpgjavaruntime.NullExportedSymbolsException;
+import lpg.lpgjavaruntime.NullTerminalSymbolsException;
+import lpg.lpgjavaruntime.ParseErrorCodes;
+import lpg.lpgjavaruntime.ParseTable;
+import lpg.lpgjavaruntime.PrsStream;
+import lpg.lpgjavaruntime.RuleAction;
+import lpg.lpgjavaruntime.TokenStream;
+import lpg.lpgjavaruntime.UndefinedEofSymbolException;
+import lpg.lpgjavaruntime.UnimplementedTerminalsException;
-import org.eclipse.cdt.core.dom.ast.*;
-import org.eclipse.cdt.core.dom.c99.IParserActionTokenProvider;
-import org.eclipse.cdt.core.dom.c99.IParser;
-import org.eclipse.cdt.core.dom.c99.IParseResult;
-import org.eclipse.cdt.core.dom.c99.IPreprocessorTokenCollector;
-import org.eclipse.cdt.core.dom.parser.c99.C99ParseResult;
-import org.eclipse.cdt.core.dom.parser.c99.C99ParserAction;
+import org.eclipse.cdt.core.dom.ast.IASTBinaryExpression;
import org.eclipse.cdt.core.dom.ast.IASTCompletionNode;
-import org.eclipse.cdt.core.dom.c99.IKeywordMap;
-import org.eclipse.cdt.core.dom.parser.c99.C99KeywordMap;
-
+import org.eclipse.cdt.core.dom.ast.IASTCompositeTypeSpecifier;
+import org.eclipse.cdt.core.dom.ast.IASTElaboratedTypeSpecifier;
+import org.eclipse.cdt.core.dom.ast.IASTLiteralExpression;
+import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
+import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression;
+import org.eclipse.cdt.core.dom.lrparser.IParser;
+import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
+import org.eclipse.cdt.core.dom.parser.upc.DOMToUPCTokenMap;
+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.IUPCASTSizeofExpression;
import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSynchronizationStatement;
-import org.eclipse.cdt.internal.core.dom.parser.c99.C99Lexer;
-import org.eclipse.cdt.internal.core.dom.parser.c99.C99Parsersym;
-import org.eclipse.cdt.core.dom.parser.upc.UPCKeywordMap;
-import org.eclipse.cdt.core.dom.parser.upc.UPCParserAction;
+import org.eclipse.cdt.core.dom.upc.ast.IUPCASTUnaryExpression;
public class UPCParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser, IPreprocessorTokenCollector<IToken>
{
@@ -175,7 +190,7 @@ public class UPCParser extends PrsStream implements RuleAction , IParserActionTo
private UPCParserAction action = new UPCParserAction (this);
private List commentTokens = new ArrayList();
-private IKeywordMap keywordMap = new UPCKeywordMap ();
+private IKeywordMap keywordMap = new DOMToUPCTokenMap ();
public UPCParser() { // constructor
this(new UPCLexer ());
@@ -1455,37 +1470,37 @@ public List getRuleTokens() {
//
// Rule 295: unary_expression ::= upc_localsizeof unary_expression
//
- case 295: { action.beforeConsume(); action. consumeExpressionUpcSizeofOperator(IUPCASTSizeofExpression.op_upc_localsizeof); break;
+ case 295: { action.beforeConsume(); action. consumeExpressionUpcSizeofOperator(IUPCASTUnaryExpression.op_upc_localsizeof); break;
}
//
// Rule 296: unary_expression ::= upc_localsizeof ( type_name )
//
- case 296: { action.beforeConsume(); action. consumeExpressionUpcSizeofTypeName(IUPCASTSizeofExpression.op_upc_localsizeof); break;
+ case 296: { action.beforeConsume(); action. consumeExpressionUpcSizeofTypeName(IUPCASTUnaryExpression.op_upc_localsizeof); break;
}
//
// Rule 297: unary_expression ::= upc_blocksizeof unary_expression
//
- case 297: { action.beforeConsume(); action. consumeExpressionUpcSizeofOperator(IUPCASTSizeofExpression.op_upc_blocksizeof); break;
+ case 297: { action.beforeConsume(); action. consumeExpressionUpcSizeofOperator(IUPCASTUnaryExpression.op_upc_blocksizeof); break;
}
//
// Rule 298: unary_expression ::= upc_blocksizeof ( type_name )
//
- case 298: { action.beforeConsume(); action. consumeExpressionUpcSizeofTypeName(IUPCASTSizeofExpression.op_upc_blocksizeof); break;
+ case 298: { action.beforeConsume(); action. consumeExpressionUpcSizeofTypeName(IUPCASTUnaryExpression.op_upc_blocksizeof); break;
}
//
// Rule 299: unary_expression ::= upc_elemsizeof unary_expression
//
- case 299: { action.beforeConsume(); action. consumeExpressionUpcSizeofOperator(IUPCASTSizeofExpression.op_upc_elemsizeof); break;
+ case 299: { action.beforeConsume(); action. consumeExpressionUpcSizeofOperator(IUPCASTUnaryExpression.op_upc_elemsizeof); break;
}
//
// Rule 300: unary_expression ::= upc_elemsizeof ( type_name )
//
- case 300: { action.beforeConsume(); action. consumeExpressionUpcSizeofTypeName(IUPCASTSizeofExpression.op_upc_elemsizeof); break;
+ case 300: { action.beforeConsume(); action. consumeExpressionUpcSizeofTypeName(IUPCASTUnaryExpression.op_upc_elemsizeof); break;
}
//
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCTokenCollector.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCTokenCollector.java
deleted file mode 100644
index c8dd8ca474d..00000000000
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/UPCTokenCollector.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package org.eclipse.cdt.internal.core.dom.parser.upc;
-
-
-import lpg.lpgjavaruntime.IToken;
-
-import org.eclipse.cdt.core.dom.c99.IC99TokenCollector;
-import org.eclipse.cdt.core.dom.c99.IParser;
-import org.eclipse.cdt.core.dom.c99.IPreprocessorTokenCollector;
-import org.eclipse.cdt.internal.core.dom.parser.c99.C99Parser;
-import org.eclipse.cdt.internal.core.dom.parser.c99.preprocessor.SynthesizedToken;
-import org.eclipse.cdt.internal.core.dom.parser.c99.preprocessor.Token;
-
-/**
- * An LPG token stream must start with a dummy token and end with an EOF token.
- * @author Mike
- *
- */
-public class UPCTokenCollector implements IC99TokenCollector {
-
- private IPreprocessorTokenCollector<IToken> parser;
-
- public void setParser(IParser parser) {
- this.parser = (IPreprocessorTokenCollector<IToken>) parser; // Total HACK!
- this.parser.addToken(Token.DUMMY_TOKEN);
- }
-
- public void addCommentToken(IToken token) {
- parser.addCommentToken(token);
- }
-
- public void addToken(IToken token) {
- parser.addToken(token);
- }
-
- public void done(int translationUnitSize) {
- parser.addToken(new SynthesizedToken(translationUnitSize, translationUnitSize, UPCParsersym.TK_EOF_TOKEN, ""));
- }
-
-}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTCompositeTypeSpecifier.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTCompositeTypeSpecifier.java
index b8fcd023f0a..bab284dadd8 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTCompositeTypeSpecifier.java
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTCompositeTypeSpecifier.java
@@ -13,9 +13,11 @@ package org.eclipse.cdt.internal.core.dom.parser.upc.ast;
import org.eclipse.cdt.core.dom.ast.ASTVisitor;
import org.eclipse.cdt.core.dom.ast.IASTDeclaration;
import org.eclipse.cdt.core.dom.ast.IASTExpression;
+import org.eclipse.cdt.core.dom.ast.IASTName;
import org.eclipse.cdt.core.dom.upc.ast.IUPCASTCompositeTypeSpecifier;
import org.eclipse.cdt.internal.core.dom.parser.c.CASTCompositeTypeSpecifier;
+@SuppressWarnings("restriction")
public class UPCASTCompositeTypeSpecifier extends CASTCompositeTypeSpecifier implements
IUPCASTCompositeTypeSpecifier {
@@ -24,7 +26,18 @@ public class UPCASTCompositeTypeSpecifier extends CASTCompositeTypeSpecifier imp
private int sharedQualifier;
private IASTExpression blockSizeExpression;
+ public UPCASTCompositeTypeSpecifier() {
+ }
+
+ public UPCASTCompositeTypeSpecifier(int key, IASTName name) {
+ super(key, name);
+ }
+ public UPCASTCompositeTypeSpecifier(int key, IASTName name, IASTExpression blockSizeExpression) {
+ super(key, name);
+ setBlockSizeExpression(blockSizeExpression);
+ }
+
public IASTExpression getBlockSizeExpression() {
return blockSizeExpression;
}
@@ -39,6 +52,11 @@ public class UPCASTCompositeTypeSpecifier extends CASTCompositeTypeSpecifier imp
public void setBlockSizeExpression(IASTExpression expr) {
this.blockSizeExpression = expr;
+ if(expr != null) {
+ expr.setParent(this);
+ expr.setPropertyInParent(BLOCK_SIZE_EXPRESSION);
+ }
+
}
public void setReferenceType(int referenceType) {
@@ -50,7 +68,7 @@ public class UPCASTCompositeTypeSpecifier extends CASTCompositeTypeSpecifier imp
}
-
+ @Override
public boolean accept( ASTVisitor action ){
if( action.shouldVisitDeclSpecifiers ){
switch( action.visit( this ) ){
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTElaboratedTypeSpecifier.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTElaboratedTypeSpecifier.java
index 368d1fd0900..2c1fe06e17d 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTElaboratedTypeSpecifier.java
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTElaboratedTypeSpecifier.java
@@ -12,9 +12,11 @@ package org.eclipse.cdt.internal.core.dom.parser.upc.ast;
import org.eclipse.cdt.core.dom.ast.ASTVisitor;
import org.eclipse.cdt.core.dom.ast.IASTExpression;
+import org.eclipse.cdt.core.dom.ast.IASTName;
import org.eclipse.cdt.core.dom.upc.ast.IUPCASTElaboratedTypeSpecifier;
import org.eclipse.cdt.internal.core.dom.parser.c.CASTElaboratedTypeSpecifier;
+@SuppressWarnings("restriction")
public class UPCASTElaboratedTypeSpecifier extends CASTElaboratedTypeSpecifier implements IUPCASTElaboratedTypeSpecifier {
private int referenceType;
@@ -22,6 +24,18 @@ public class UPCASTElaboratedTypeSpecifier extends CASTElaboratedTypeSpecifier i
private IASTExpression blockSizeExpression;
+ public UPCASTElaboratedTypeSpecifier() {
+ }
+
+ public UPCASTElaboratedTypeSpecifier(int kind, IASTName name) {
+ super(kind, name);
+ }
+
+ public UPCASTElaboratedTypeSpecifier(int kind, IASTName name, IASTExpression blockSizeExpression) {
+ super(kind, name);
+ setBlockSizeExpression(blockSizeExpression);
+ }
+
public IASTExpression getBlockSizeExpression() {
return blockSizeExpression;
}
@@ -36,6 +50,10 @@ public class UPCASTElaboratedTypeSpecifier extends CASTElaboratedTypeSpecifier i
public void setBlockSizeExpression(IASTExpression expr) {
this.blockSizeExpression = expr;
+ if(expr != null) {
+ expr.setParent(this);
+ expr.setPropertyInParent(BLOCK_SIZE_EXPRESSION);
+ }
}
public void setReferenceType(int referenceType) {
@@ -47,6 +65,7 @@ public class UPCASTElaboratedTypeSpecifier extends CASTElaboratedTypeSpecifier i
}
+ @Override
public boolean accept( ASTVisitor action ){
if( action.shouldVisitDeclSpecifiers ){
switch( action.visit( this ) ){
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTEnumerationSpecifier.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTEnumerationSpecifier.java
index b1864064bdf..1e6893ac4e6 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTEnumerationSpecifier.java
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTEnumerationSpecifier.java
@@ -12,9 +12,11 @@ package org.eclipse.cdt.internal.core.dom.parser.upc.ast;
import org.eclipse.cdt.core.dom.ast.ASTVisitor;
import org.eclipse.cdt.core.dom.ast.IASTExpression;
+import org.eclipse.cdt.core.dom.ast.IASTName;
import org.eclipse.cdt.core.dom.upc.ast.IUPCASTEnumerationSpecifier;
import org.eclipse.cdt.internal.core.dom.parser.c.CASTEnumerationSpecifier;
+@SuppressWarnings("restriction")
public class UPCASTEnumerationSpecifier extends CASTEnumerationSpecifier
implements IUPCASTEnumerationSpecifier {
@@ -23,6 +25,18 @@ public class UPCASTEnumerationSpecifier extends CASTEnumerationSpecifier
private IASTExpression blockSizeExpression;
+ public UPCASTEnumerationSpecifier() {
+ }
+
+ public UPCASTEnumerationSpecifier(IASTName name) {
+ super(name);
+ }
+
+ public UPCASTEnumerationSpecifier(IASTName name, IASTExpression blockSizeExpression) {
+ super(name);
+ setBlockSizeExpression(blockSizeExpression);
+ }
+
public IASTExpression getBlockSizeExpression() {
return blockSizeExpression;
}
@@ -37,6 +51,10 @@ public class UPCASTEnumerationSpecifier extends CASTEnumerationSpecifier
public void setBlockSizeExpression(IASTExpression expr) {
this.blockSizeExpression = expr;
+ if(expr != null) {
+ expr.setParent(this);
+ expr.setPropertyInParent(BLOCK_SIZE_EXPRESSION);
+ }
}
public void setReferenceType(int referenceType) {
@@ -47,6 +65,7 @@ public class UPCASTEnumerationSpecifier extends CASTEnumerationSpecifier
this.sharedQualifier = shared;
}
+ @Override
public boolean accept( ASTVisitor action ){
if( action.shouldVisitDeclSpecifiers ){
switch( action.visit( this ) ){
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTForallStatement.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTForallStatement.java
index 9b6bd49f35b..55e29f94039 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTForallStatement.java
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTForallStatement.java
@@ -16,12 +16,22 @@ import org.eclipse.cdt.core.dom.ast.IASTStatement;
import org.eclipse.cdt.core.dom.upc.ast.IUPCASTForallStatement;
import org.eclipse.cdt.internal.core.dom.parser.c.CASTForStatement;
+@SuppressWarnings("restriction")
public class UPCASTForallStatement extends CASTForStatement implements IUPCASTForallStatement {
private IASTExpression affinity;
private boolean affinityContinue;
+ public UPCASTForallStatement() {
+ }
+
+ public UPCASTForallStatement(IASTStatement init, IASTExpression condition,
+ IASTExpression iterationExpression, IASTStatement body, IASTExpression affinity) {
+ super(init, condition, iterationExpression, body);
+ setAffinityExpression(affinity);
+ }
+
public boolean isAffinityContinue() {
return affinityContinue;
}
@@ -34,6 +44,10 @@ public class UPCASTForallStatement extends CASTForStatement implements IUPCASTFo
if(affinity != null)
this.affinityContinue = false;
this.affinity = affinity;
+ if(affinity != null) {
+ affinity.setParent(this);
+ affinity.setPropertyInParent(AFFINITY);
+ }
}
public void setAffinityContinue(boolean affinityContinue) {
@@ -43,6 +57,7 @@ public class UPCASTForallStatement extends CASTForStatement implements IUPCASTFo
}
+ @Override
public boolean accept(ASTVisitor visitor) {
if(visitor.shouldVisitStatements) {
switch(visitor.visit(this)){
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTKeywordExpression.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTKeywordExpression.java
index 5d2ed7e1102..3514a366db8 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTKeywordExpression.java
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTKeywordExpression.java
@@ -17,11 +17,19 @@ import org.eclipse.cdt.core.dom.upc.ast.IUPCASTKeywordExpression;
import org.eclipse.cdt.internal.core.dom.parser.c.CASTNode;
import org.eclipse.cdt.internal.core.dom.parser.c.CBasicType;
+@SuppressWarnings("restriction")
public class UPCASTKeywordExpression extends CASTNode implements IUPCASTKeywordExpression {
private int keywordKind;
+ public UPCASTKeywordExpression() {
+ }
+
+ public UPCASTKeywordExpression(int keywordKind) {
+ this.keywordKind = keywordKind;
+ }
+
public int getKeywordKind() {
return keywordKind;
}
@@ -36,6 +44,7 @@ public class UPCASTKeywordExpression extends CASTNode implements IUPCASTKeywordE
}
+ @Override
public boolean accept(ASTVisitor visitor) {
if(visitor.shouldVisitExpressions) {
switch(visitor.visit(this)) {
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTSimpleDeclSpecifier.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTSimpleDeclSpecifier.java
index 42f64d9db4e..cd9e135027d 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTSimpleDeclSpecifier.java
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTSimpleDeclSpecifier.java
@@ -15,6 +15,7 @@ import org.eclipse.cdt.core.dom.ast.IASTExpression;
import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSimpleDeclSpecifier;
import org.eclipse.cdt.internal.core.dom.parser.c.CASTSimpleDeclSpecifier;
+@SuppressWarnings("restriction")
public class UPCASTSimpleDeclSpecifier extends CASTSimpleDeclSpecifier
implements IUPCASTSimpleDeclSpecifier {
@@ -23,6 +24,13 @@ public class UPCASTSimpleDeclSpecifier extends CASTSimpleDeclSpecifier
private IASTExpression blockSizeExpression;
+ public UPCASTSimpleDeclSpecifier() {
+ }
+
+ public UPCASTSimpleDeclSpecifier(IASTExpression blockSizeExpression) {
+ setBlockSizeExpression(blockSizeExpression);
+ }
+
public IASTExpression getBlockSizeExpression() {
return blockSizeExpression;
}
@@ -37,6 +45,10 @@ public class UPCASTSimpleDeclSpecifier extends CASTSimpleDeclSpecifier
public void setBlockSizeExpression(IASTExpression expr) {
this.blockSizeExpression = expr;
+ if(expr != null) {
+ expr.setParent(this);
+ expr.setPropertyInParent(BLOCK_SIZE_EXPRESSION);
+ }
}
public void setReferenceType(int referenceType) {
@@ -48,7 +60,8 @@ public class UPCASTSimpleDeclSpecifier extends CASTSimpleDeclSpecifier
}
- public boolean accept( ASTVisitor action ){
+ @Override
+ public boolean accept(ASTVisitor action) {
if( action.shouldVisitDeclSpecifiers ){
switch( action.visit( this ) ){
case ASTVisitor.PROCESS_ABORT : return false;
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTSynchronizationStatement.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTSynchronizationStatement.java
index 7a7e945e5b7..4f8692543de 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTSynchronizationStatement.java
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTSynchronizationStatement.java
@@ -15,11 +15,21 @@ import org.eclipse.cdt.core.dom.ast.IASTExpression;
import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSynchronizationStatement;
import org.eclipse.cdt.internal.core.dom.parser.c.CASTNode;
+@SuppressWarnings("restriction")
public class UPCASTSynchronizationStatement extends CASTNode implements IUPCASTSynchronizationStatement {
private int statmentKind;
private IASTExpression barrierExpression = null;
+
+ public UPCASTSynchronizationStatement() {
+ }
+
+ public UPCASTSynchronizationStatement(IASTExpression barrierExpression, int statmentKind) {
+ setBarrierExpression(barrierExpression);
+ this.statmentKind = statmentKind;
+ }
+
public IASTExpression getBarrierExpression() {
return barrierExpression;
}
@@ -30,7 +40,10 @@ public class UPCASTSynchronizationStatement extends CASTNode implements IUPCASTS
public void setBarrierExpression(IASTExpression expr) {
this.barrierExpression = expr;
-
+ if(expr != null) {
+ expr.setParent(this);
+ expr.setPropertyInParent(BARRIER_EXPRESSION);
+ }
}
public void setStatementKind(int kind) {
@@ -38,6 +51,7 @@ public class UPCASTSynchronizationStatement extends CASTNode implements IUPCASTS
}
+ @Override
public boolean accept(ASTVisitor visitor) {
if(visitor.shouldVisitStatements) {
switch(visitor.visit(this)) {
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTTypeIdExpression.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTTypeIdExpression.java
new file mode 100644
index 00000000000..0ba86b14fd5
--- /dev/null
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTTypeIdExpression.java
@@ -0,0 +1,18 @@
+package org.eclipse.cdt.internal.core.dom.parser.upc.ast;
+
+import org.eclipse.cdt.core.dom.ast.IASTTypeId;
+import org.eclipse.cdt.core.dom.upc.ast.IUPCASTTypeIdExpression;
+import org.eclipse.cdt.internal.core.dom.parser.c.CASTTypeIdExpression;
+
+@SuppressWarnings("restriction")
+public class UPCASTTypeIdExpression extends CASTTypeIdExpression implements
+ IUPCASTTypeIdExpression {
+
+ public UPCASTTypeIdExpression() {
+ }
+
+ public UPCASTTypeIdExpression(int op, IASTTypeId typeId) {
+ super(op, typeId);
+ }
+
+}
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTTypedefNameSpecifier.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTTypedefNameSpecifier.java
index 5955bbcbc07..d50615945f6 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTTypedefNameSpecifier.java
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTTypedefNameSpecifier.java
@@ -12,9 +12,11 @@ package org.eclipse.cdt.internal.core.dom.parser.upc.ast;
import org.eclipse.cdt.core.dom.ast.ASTVisitor;
import org.eclipse.cdt.core.dom.ast.IASTExpression;
+import org.eclipse.cdt.core.dom.ast.IASTName;
import org.eclipse.cdt.core.dom.upc.ast.IUPCASTTypedefNameSpecifier;
import org.eclipse.cdt.internal.core.dom.parser.c.CASTTypedefNameSpecifier;
+@SuppressWarnings("restriction")
public class UPCASTTypedefNameSpecifier extends CASTTypedefNameSpecifier
implements IUPCASTTypedefNameSpecifier {
@@ -24,6 +26,14 @@ public class UPCASTTypedefNameSpecifier extends CASTTypedefNameSpecifier
private IASTExpression blockSizeExpression;
+ public UPCASTTypedefNameSpecifier() {
+ }
+
+ public UPCASTTypedefNameSpecifier(IASTName name, IASTExpression blockSizeExpression) {
+ super(name);
+ setBlockSizeExpression(blockSizeExpression);
+ }
+
public IASTExpression getBlockSizeExpression() {
return blockSizeExpression;
}
@@ -38,6 +48,10 @@ public class UPCASTTypedefNameSpecifier extends CASTTypedefNameSpecifier
public void setBlockSizeExpression(IASTExpression expr) {
this.blockSizeExpression = expr;
+ if(expr != null) {
+ expr.setParent(this);
+ expr.setPropertyInParent(BLOCK_SIZE_EXPRESSION);
+ }
}
public void setReferenceType(int referenceType) {
@@ -49,6 +63,7 @@ public class UPCASTTypedefNameSpecifier extends CASTTypedefNameSpecifier
}
+ @Override
public boolean accept( ASTVisitor action ){
if( action.shouldVisitDeclSpecifiers ){
switch( action.visit( this ) ){
diff --git a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTSizeofExpression.java b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTUnaryExpression.java
index 766a92db06b..89bbc938aba 100644
--- a/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTSizeofExpression.java
+++ b/upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/internal/core/dom/parser/upc/ast/UPCASTUnaryExpression.java
@@ -10,29 +10,17 @@
*******************************************************************************/
package org.eclipse.cdt.internal.core.dom.parser.upc.ast;
-import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression;
-import org.eclipse.cdt.core.dom.upc.ast.IUPCASTSizeofExpression;
+import org.eclipse.cdt.core.dom.ast.IASTExpression;
+import org.eclipse.cdt.core.dom.upc.ast.IUPCASTUnaryExpression;
import org.eclipse.cdt.internal.core.dom.parser.c.CASTUnaryExpression;
-public class UPCASTSizeofExpression extends CASTUnaryExpression implements IUPCASTSizeofExpression {
+@SuppressWarnings("restriction")
+public class UPCASTUnaryExpression extends CASTUnaryExpression implements IUPCASTUnaryExpression {
- // TODO: don't really know if extending CASTUnaryExpression is the right thing to do
- private int upcSizeofOperator;
-
-
- public int getOperator() {
- return IASTUnaryExpression.op_sizeof;
- }
-
-
- public void setUPCSizeofOperator(int upcSizeofOperator) {
- this.upcSizeofOperator = upcSizeofOperator;
- }
-
-
- public int getUPCSizeofOperator() {
- return upcSizeofOperator;
+ public UPCASTUnaryExpression() {
}
-
+ public UPCASTUnaryExpression(int operator, IASTExpression operand) {
+ super(operator, operand);
+ }
}

Back to the top