Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'upc/org.eclipse.cdt.core.parser.upc/src/org/eclipse/cdt/core/dom/upc')
-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
4 files changed, 89 insertions, 64 deletions
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

Back to the top