diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/model/ICLanguageKeywords.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/model/ICLanguageKeywords.java new file mode 100644 index 00000000000..9845990712b --- /dev/null +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/model/ICLanguageKeywords.java @@ -0,0 +1,49 @@ +/******************************************************************************* + * Copyright (c) 2007 Wind River Systems, Inc. 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: + * Anton Leherbauer (Wind River Systems) - initial API and implementation + *******************************************************************************/ +package org.eclipse.cdt.core.model; + +/** + * This is an optional extension interface to {@link ILanguage} which allows + * a C/C++ language variant to expose the set of keywords it defines. + * + *
+ * EXPERIMENTAL. This class or interface has been added as + * part of a work in progress. There is no guarantee that this API will work or + * that it will remain the same. Please do not use this API without consulting + * with the CDT team. + *
+ * + * @since 4.0 + */ +public interface ICLanguageKeywords { + + /** + * Get the keywords defined for this language, excluding bult-in types. + * + * @return an array of keywords, nevernull
+ */
+ public abstract String[] getKeywords();
+
+ /**
+ * Get the built-in type names defined for this language.
+ *
+ * @return an array of names, never null
+ */
+ public abstract String[] getBuiltinTypes();
+
+ /**
+ * Get the preprocessor keywords (directives) defined for this language.
+ *
+ * @return an array of keywords, never null
+ */
+ public abstract String[] getPreprocessorKeywords();
+
+}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/parser/c/AbstractCLanguage.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/parser/c/AbstractCLanguage.java
index 5557b4b69cc..55a85168011 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/parser/c/AbstractCLanguage.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/parser/c/AbstractCLanguage.java
@@ -11,7 +11,10 @@
package org.eclipse.cdt.core.dom.parser.c;
import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.Iterator;
import java.util.List;
+import java.util.Set;
import org.eclipse.cdt.core.dom.ICodeReaderFactory;
import org.eclipse.cdt.core.dom.ast.ASTCompletionNode;
@@ -25,15 +28,18 @@ import org.eclipse.cdt.core.dom.parser.ISourceCodeParser;
import org.eclipse.cdt.core.index.IIndex;
import org.eclipse.cdt.core.model.AbstractLanguage;
import org.eclipse.cdt.core.model.IContributedModelBuilder;
+import org.eclipse.cdt.core.model.ICLanguageKeywords;
import org.eclipse.cdt.core.model.ITranslationUnit;
import org.eclipse.cdt.core.parser.CodeReader;
import org.eclipse.cdt.core.parser.IParserLogService;
import org.eclipse.cdt.core.parser.IScanner;
import org.eclipse.cdt.core.parser.IScannerInfo;
+import org.eclipse.cdt.core.parser.KeywordSetKey;
import org.eclipse.cdt.core.parser.ParserLanguage;
import org.eclipse.cdt.core.parser.ParserMode;
import org.eclipse.cdt.internal.core.dom.parser.c.GNUCSourceParser;
import org.eclipse.cdt.internal.core.parser.scanner2.DOMScanner;
+import org.eclipse.cdt.internal.core.parser.token.KeywordSets;
import org.eclipse.cdt.internal.core.pdom.dom.IPDOMLinkageFactory;
import org.eclipse.cdt.internal.core.pdom.dom.c.PDOMCLinkageFactory;
import org.eclipse.core.runtime.CoreException;
@@ -55,7 +61,7 @@ import org.eclipse.core.runtime.CoreException;
*
* @since 4.0
*/
-public abstract class AbstractCLanguage extends AbstractLanguage {
+public abstract class AbstractCLanguage extends AbstractLanguage implements ICLanguageKeywords {
protected static class NameCollector extends CASTVisitor {
{
@@ -75,10 +81,10 @@ public abstract class AbstractCLanguage extends AbstractLanguage {
}
public Object getAdapter(Class adapter) {
- if (adapter == IPDOMLinkageFactory.class)
+ if (adapter == IPDOMLinkageFactory.class) {
return new PDOMCLinkageFactory();
- else
- return super.getAdapter(adapter);
+ }
+ return super.getAdapter(adapter);
}
public IASTTranslationUnit getASTTranslationUnit(CodeReader reader, IScannerInfo scanInfo,
@@ -169,4 +175,39 @@ public abstract class AbstractCLanguage extends AbstractLanguage {
*/
protected abstract ICParserExtensionConfiguration getParserExtensionConfiguration();
+ /*
+ * @see org.eclipse.cdt.core.model.ICLanguageKeywords#getKeywords()
+ */
+ public String[] getKeywords() {
+ Set keywords= KeywordSets.getKeywords(KeywordSetKey.KEYWORDS, ParserLanguage.C);
+ keywords= new HashSet(keywords);
+ List additionalKeywords= getScannerExtensionConfiguration().getAdditionalKeywords().toList();
+ for (Iterator iterator = additionalKeywords.iterator(); iterator.hasNext(); ) {
+ char[] name = (char[]) iterator.next();
+ keywords.add(new String(name));
+ }
+ return (String[]) keywords.toArray(new String[keywords.size()]);
+ }
+
+ /*
+ * @see org.eclipse.cdt.core.model.ICLanguageKeywords#getBuiltinTypes()
+ */
+ public String[] getBuiltinTypes() {
+ Set types= KeywordSets.getKeywords(KeywordSetKey.TYPES, ParserLanguage.C);
+ return (String[]) types.toArray(new String[types.size()]);
+ }
+
+ /*
+ * @see org.eclipse.cdt.core.model.ICLanguageKeywords#getPreprocessorKeywords()
+ */
+ public String[] getPreprocessorKeywords() {
+ Set keywords= KeywordSets.getKeywords(KeywordSetKey.PP_DIRECTIVE, ParserLanguage.C);
+ keywords= new HashSet(keywords);
+ List additionalKeywords= getScannerExtensionConfiguration().getAdditionalPreprocessorKeywords().toList();
+ for (Iterator iterator = additionalKeywords.iterator(); iterator.hasNext(); ) {
+ char[] name = (char[]) iterator.next();
+ keywords.add(new String(name));
+ }
+ return (String[]) keywords.toArray(new String[keywords.size()]);
+ }
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/parser/cpp/AbstractCPPLanguage.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/parser/cpp/AbstractCPPLanguage.java
index b8e57dd2564..766d3410972 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/parser/cpp/AbstractCPPLanguage.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/parser/cpp/AbstractCPPLanguage.java
@@ -11,7 +11,10 @@
package org.eclipse.cdt.core.dom.parser.cpp;
import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.Iterator;
import java.util.List;
+import java.util.Set;
import org.eclipse.cdt.core.dom.ICodeReaderFactory;
import org.eclipse.cdt.core.dom.ast.ASTCompletionNode;
@@ -23,16 +26,19 @@ import org.eclipse.cdt.core.dom.parser.IScannerExtensionConfiguration;
import org.eclipse.cdt.core.dom.parser.ISourceCodeParser;
import org.eclipse.cdt.core.index.IIndex;
import org.eclipse.cdt.core.model.AbstractLanguage;
+import org.eclipse.cdt.core.model.ICLanguageKeywords;
import org.eclipse.cdt.core.model.IContributedModelBuilder;
import org.eclipse.cdt.core.model.ITranslationUnit;
import org.eclipse.cdt.core.parser.CodeReader;
import org.eclipse.cdt.core.parser.IParserLogService;
import org.eclipse.cdt.core.parser.IScanner;
import org.eclipse.cdt.core.parser.IScannerInfo;
+import org.eclipse.cdt.core.parser.KeywordSetKey;
import org.eclipse.cdt.core.parser.ParserLanguage;
import org.eclipse.cdt.core.parser.ParserMode;
import org.eclipse.cdt.internal.core.dom.parser.cpp.GNUCPPSourceParser;
import org.eclipse.cdt.internal.core.parser.scanner2.DOMScanner;
+import org.eclipse.cdt.internal.core.parser.token.KeywordSets;
import org.eclipse.cdt.internal.core.pdom.dom.IPDOMLinkageFactory;
import org.eclipse.cdt.internal.core.pdom.dom.cpp.PDOMCPPLinkageFactory;
import org.eclipse.core.runtime.CoreException;
@@ -54,7 +60,7 @@ import org.eclipse.core.runtime.CoreException;
*
* @since 4.0
*/
-public abstract class AbstractCPPLanguage extends AbstractLanguage {
+public abstract class AbstractCPPLanguage extends AbstractLanguage implements ICLanguageKeywords {
protected static class NameCollector extends CPPASTVisitor {
{
@@ -74,10 +80,10 @@ public abstract class AbstractCPPLanguage extends AbstractLanguage {
}
public Object getAdapter(Class adapter) {
- if (adapter == IPDOMLinkageFactory.class)
+ if (adapter == IPDOMLinkageFactory.class) {
return new PDOMCPPLinkageFactory();
- else
- return super.getAdapter(adapter);
+ }
+ return super.getAdapter(adapter);
}
public IASTTranslationUnit getASTTranslationUnit(CodeReader reader, IScannerInfo scanInfo,
@@ -166,4 +172,39 @@ public abstract class AbstractCPPLanguage extends AbstractLanguage {
*/
protected abstract AbstractCPPParserExtensionConfiguration getParserExtensionConfiguration();
+ /*
+ * @see org.eclipse.cdt.core.model.ICLanguageKeywords#getKeywords()
+ */
+ public String[] getKeywords() {
+ Set keywords= KeywordSets.getKeywords(KeywordSetKey.KEYWORDS, ParserLanguage.CPP);
+ keywords= new HashSet(keywords);
+ List additionalKeywords= getScannerExtensionConfiguration().getAdditionalKeywords().toList();
+ for (Iterator iterator = additionalKeywords.iterator(); iterator.hasNext(); ) {
+ char[] name = (char[]) iterator.next();
+ keywords.add(new String(name));
+ }
+ return (String[]) keywords.toArray(new String[keywords.size()]);
+ }
+
+ /*
+ * @see org.eclipse.cdt.core.model.ICLanguageKeywords#getBuiltinTypes()
+ */
+ public String[] getBuiltinTypes() {
+ Set types= KeywordSets.getKeywords(KeywordSetKey.TYPES, ParserLanguage.CPP);
+ return (String[]) types.toArray(new String[types.size()]);
+ }
+
+ /*
+ * @see org.eclipse.cdt.core.model.ICLanguageKeywords#getPreprocessorKeywords()
+ */
+ public String[] getPreprocessorKeywords() {
+ Set keywords= KeywordSets.getKeywords(KeywordSetKey.PP_DIRECTIVE, ParserLanguage.CPP);
+ keywords= new HashSet(keywords);
+ List additionalKeywords= getScannerExtensionConfiguration().getAdditionalPreprocessorKeywords().toList();
+ for (Iterator iterator = additionalKeywords.iterator(); iterator.hasNext(); ) {
+ char[] name = (char[]) iterator.next();
+ keywords.add(new String(name));
+ }
+ return (String[]) keywords.toArray(new String[keywords.size()]);
+ }
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/parser/cpp/GPPScannerExtensionConfiguration.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/parser/cpp/GPPScannerExtensionConfiguration.java
index 2984be5df35..23e9edeaa23 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/parser/cpp/GPPScannerExtensionConfiguration.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/parser/cpp/GPPScannerExtensionConfiguration.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
+ * Copyright (c) 2004, 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
@@ -8,11 +8,11 @@
* Contributors:
* IBM - Initial API and implementation
* Ed Swartz (Nokia)
+ * Anton Leherbauer (Wind River Systems)
*******************************************************************************/
package org.eclipse.cdt.core.dom.parser.cpp;
import org.eclipse.cdt.core.dom.parser.GNUScannerExtensionConfiguration;
-import org.eclipse.cdt.core.dom.parser.IScannerExtensionConfiguration;
import org.eclipse.cdt.core.parser.GCCKeywords;
import org.eclipse.cdt.core.parser.IGCCToken;
import org.eclipse.cdt.core.parser.IToken;
@@ -22,8 +22,7 @@ import org.eclipse.cdt.core.parser.util.CharArrayIntMap;
/**
* @author jcamelon
*/
-public class GPPScannerExtensionConfiguration extends GNUScannerExtensionConfiguration implements
- IScannerExtensionConfiguration {
+public class GPPScannerExtensionConfiguration extends GNUScannerExtensionConfiguration {
/* (non-Javadoc)
* @see org.eclipse.cdt.internal.core.parser.scanner2.IScannerConfiguration#supportMinAndMaxOperators()
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CCodeScanner.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CCodeScanner.java
index 7a01b06ce2a..4820b3627e3 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CCodeScanner.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CCodeScanner.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
+ * Copyright (c) 2000, 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
@@ -13,34 +13,25 @@
package org.eclipse.cdt.internal.ui.text;
import java.util.ArrayList;
-import java.util.Iterator;
import java.util.List;
import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.text.rules.IRule;
import org.eclipse.jface.text.rules.Token;
import org.eclipse.jface.text.rules.WhitespaceRule;
import org.eclipse.jface.text.rules.WordRule;
import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.cdt.core.parser.KeywordSetKey;
-import org.eclipse.cdt.core.parser.ParserFactory;
-import org.eclipse.cdt.core.parser.ParserLanguage;
+import org.eclipse.cdt.core.model.ICLanguageKeywords;
import org.eclipse.cdt.internal.ui.text.util.CWhitespaceDetector;
import org.eclipse.cdt.internal.ui.text.util.CWordDetector;
/**
- * A C code scanner.
+ * A C/C++ code scanner.
*/
public final class CCodeScanner extends AbstractCScanner {
- /** Constants which are additionally colored. */
- private static String[] fgConstants= { "NULL", "__DATE__", "__LINE__", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- "__TIME__", "__FILE__", "__STDC__", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- "bool", "TRUE", "FALSE", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- "EXT_TEXT"}; //$NON-NLS-1$
/** Properties for tokens. */
private static String[] fgTokenProperties= {
ICColorConstants.C_KEYWORD,
@@ -50,26 +41,29 @@ public final class CCodeScanner extends AbstractCScanner {
ICColorConstants.C_NUMBER,
ICColorConstants.C_DEFAULT,
};
-
+ private ICLanguageKeywords fKeywords;
/**
- * Creates a C code scanner.
- * @param manager Color manager.
- * @param store Preference store.
+ * Creates a C/C++ code scanner.
+ *
+ * @param manager the color manager
+ * @param store the reference store
+ * @param keywords the keywords defined by the language dialect
*/
- public CCodeScanner(IColorManager manager, IPreferenceStore store) {
+ public CCodeScanner(IColorManager manager, IPreferenceStore store, ICLanguageKeywords keywords) {
super(manager, store);
+ fKeywords= keywords;
initialize();
}
-
- /**
+
+ /*
* @see AbstractCScanner#getTokenProperties()
*/
protected String[] getTokenProperties() {
return fgTokenProperties;
}
- /**
+ /*
* @see AbstractCScanner#createRules()
*/
protected List createRules() {
@@ -85,17 +79,15 @@ public final class CCodeScanner extends AbstractCScanner {
WordRule wordRule= new WordRule(new CWordDetector(), token);
token= getToken(ICColorConstants.C_KEYWORD);
- Iterator i = ParserFactory.getKeywordSet( KeywordSetKey.KEYWORDS, ParserLanguage.C ).iterator();
- while( i.hasNext() )
- wordRule.addWord((String) i.next(), token);
+ String[] keywords= fKeywords.getKeywords();
+ for (int i = 0; i < keywords.length; i++) {
+ wordRule.addWord(keywords[i], token);
+ }
token= getToken(ICColorConstants.C_TYPE);
- i = ParserFactory.getKeywordSet( KeywordSetKey.TYPES, ParserLanguage.C ).iterator();
- while( i.hasNext() )
- wordRule.addWord((String) i.next(), token);
-
- for (int j=0; jtrue
if event causes a behavioral change
*/
public boolean affectsTextPresentation(PropertyChangeEvent event) {
- return fCppCodeScanner.affectsBehavior(event)
- || fCCodeScanner.affectsBehavior(event)
- || fMultilineCommentScanner.affectsBehavior(event)
- || fSinglelineCommentScanner.affectsBehavior(event)
- || fStringScanner.affectsBehavior(event)
- || fCppPreprocessorScanner.affectsBehavior(event);
+ return affectsBehavior(event);
}
/**
@@ -694,20 +708,16 @@ public class CSourceViewerConfiguration extends TextSourceViewerConfiguration {
*/
public void handlePropertyChangeEvent(PropertyChangeEvent event) {
Assert.isTrue(isNewSetup());
- if (fCppCodeScanner.affectsBehavior(event))
- fCppCodeScanner.adaptToPreferenceChange(event);
- if (fCCodeScanner.affectsBehavior(event))
- fCCodeScanner.adaptToPreferenceChange(event);
+ if (fCodeScanner != null && fCodeScanner.affectsBehavior(event))
+ fCodeScanner.adaptToPreferenceChange(event);
if (fMultilineCommentScanner.affectsBehavior(event))
fMultilineCommentScanner.adaptToPreferenceChange(event);
if (fSinglelineCommentScanner.affectsBehavior(event))
fSinglelineCommentScanner.adaptToPreferenceChange(event);
if (fStringScanner.affectsBehavior(event))
fStringScanner.adaptToPreferenceChange(event);
- if (fCppPreprocessorScanner.affectsBehavior(event))
- fCppPreprocessorScanner.adaptToPreferenceChange(event);
- if (fCPreprocessorScanner.affectsBehavior(event))
- fCPreprocessorScanner.adaptToPreferenceChange(event);
+ if (fPreprocessorScanner != null && fPreprocessorScanner.affectsBehavior(event))
+ fPreprocessorScanner.adaptToPreferenceChange(event);
}
/*
@@ -780,7 +790,7 @@ public class CSourceViewerConfiguration extends TextSourceViewerConfiguration {
protected ILanguage getLanguage() {
if (fTextEditor == null) {
- return null;
+ return GPPLanguage.getDefault();
}
ICElement element = CUIPlugin.getDefault().getWorkingCopyManager().getWorkingCopy(fTextEditor.getEditorInput());
if (element instanceof ITranslationUnit) {
@@ -810,6 +820,7 @@ public class CSourceViewerConfiguration extends TextSourceViewerConfiguration {
return LanguageManager.getInstance().getLanguage(contentType);
}
}
- return null;
+ // fallback
+ return GPPLanguage.getDefault();
}
}
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CTextTools.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CTextTools.java
index b9f6c44333c..0ee1700ed70 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CTextTools.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CTextTools.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005, 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
@@ -23,6 +23,8 @@ import org.eclipse.jface.text.rules.RuleBasedScanner;
import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.cdt.core.dom.ast.gnu.c.GCCLanguage;
+import org.eclipse.cdt.core.dom.ast.gnu.cpp.GPPLanguage;
import org.eclipse.cdt.ui.CUIPlugin;
import org.eclipse.cdt.ui.text.ICPartitions;
@@ -49,7 +51,7 @@ public class CTextTools {
/** The C source code scanner */
private CCodeScanner fCodeScanner;
/** The C++ source code scanner */
- private CppCodeScanner fCppCodeScanner;
+ private CCodeScanner fCppCodeScanner;
/** The C partitions scanner */
private FastCPartitionScanner fPartitionScanner;
/** The C multiline comment scanner */
@@ -97,15 +99,15 @@ public class CTextTools {
store = CUIPlugin.getDefault().getPreferenceStore();
}
fColorManager= new CColorManager(autoDisposeOnDisplayDispose);
- fCodeScanner= new CCodeScanner(fColorManager, store);
- fCppCodeScanner= new CppCodeScanner(fColorManager, store);
+ fCodeScanner= new CCodeScanner(fColorManager, store, GCCLanguage.getDefault());
+ fCppCodeScanner= new CCodeScanner(fColorManager, store, GPPLanguage.getDefault());
fPartitionScanner= new FastCPartitionScanner();
fMultilineCommentScanner= new CCommentScanner(fColorManager, store, coreStore, ICColorConstants.C_MULTI_LINE_COMMENT);
fSinglelineCommentScanner= new CCommentScanner(fColorManager, store, coreStore, ICColorConstants.C_SINGLE_LINE_COMMENT);
fStringScanner= new SingleTokenCScanner(fColorManager, store, ICColorConstants.C_STRING);
- fCPreprocessorScanner= new CPreprocessorScanner(fColorManager, store, false);
- fCppPreprocessorScanner= new CPreprocessorScanner(fColorManager, store, true);
+ fCPreprocessorScanner= new CPreprocessorScanner(fColorManager, store, GCCLanguage.getDefault());
+ fCppPreprocessorScanner= new CPreprocessorScanner(fColorManager, store, GPPLanguage.getDefault());
fPreferenceStore = store;
fPreferenceStore.addPropertyChangeListener(fPreferenceListener);
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CppCodeScanner.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CppCodeScanner.java
deleted file mode 100644
index 5c153bbd80e..00000000000
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CppCodeScanner.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 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
- * QNX Software System
- * Anton Leherbauer (Wind River Systems)
- *******************************************************************************/
-package org.eclipse.cdt.internal.ui.text;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.text.rules.IRule;
-import org.eclipse.jface.text.rules.Token;
-import org.eclipse.jface.text.rules.WhitespaceRule;
-import org.eclipse.jface.text.rules.WordRule;
-import org.eclipse.jface.util.PropertyChangeEvent;
-
-import org.eclipse.cdt.core.parser.KeywordSetKey;
-import org.eclipse.cdt.core.parser.ParserFactory;
-import org.eclipse.cdt.core.parser.ParserLanguage;
-
-import org.eclipse.cdt.internal.ui.text.util.CWhitespaceDetector;
-import org.eclipse.cdt.internal.ui.text.util.CWordDetector;
-
-
-/**
- * A C code scanner.
- */
-public final class CppCodeScanner extends AbstractCScanner {
-
- private static String[] fgConstants= { "NULL", //$NON-NLS-1$
- "__DATE__", "__LINE__", "__TIME__", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- "__FILE__", "__STDC__"}; //$NON-NLS-1$ //$NON-NLS-2$
-
- private static String[] fgTokenProperties= {
- ICColorConstants.C_KEYWORD,
- ICColorConstants.C_TYPE,
- ICColorConstants.C_OPERATOR,
- ICColorConstants.C_BRACES,
- ICColorConstants.C_NUMBER,
- ICColorConstants.C_DEFAULT
- };
-
-
- /**
- * Creates a C++ code scanner
- */
- public CppCodeScanner(IColorManager manager, IPreferenceStore store) {
- super(manager, store);
- initialize();
- }
-
- /*
- * @see AbstractCScanner#getTokenProperties()
- */
- protected String[] getTokenProperties() {
- return fgTokenProperties;
- }
-
- /*
- * @see AbstractCScanner#createRules()
- */
- protected List createRules() {
-
- List rules= new ArrayList();
- Token token;
-
- // Add generic whitespace rule.
- rules.add(new WhitespaceRule(new CWhitespaceDetector()));
-
- // Add word rule for keywords, types, and constants.
- token= getToken(ICColorConstants.C_DEFAULT);
- WordRule wordRule= new WordRule(new CWordDetector(), token);
-
- token= getToken(ICColorConstants.C_KEYWORD);
- Iterator iter = ParserFactory.getKeywordSet( KeywordSetKey.KEYWORDS, ParserLanguage.CPP ).iterator();
- while( iter.hasNext() )
- wordRule.addWord((String)iter.next(), token);
- token= getToken(ICColorConstants.C_TYPE);
- iter = ParserFactory.getKeywordSet( KeywordSetKey.TYPES, ParserLanguage.CPP ).iterator();
- while( iter.hasNext() )
- wordRule.addWord((String) iter.next(), token);
- for (int i=0; i