diff options
-rw-r--r-- | xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/XlcKeywords.java | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/XlcKeywords.java b/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/XlcKeywords.java index 38d5b54e778..a838e9a64e2 100644 --- a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/XlcKeywords.java +++ b/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/core/lrparser/xlc/XlcKeywords.java @@ -15,6 +15,7 @@ import java.util.Arrays; import java.util.List; import org.eclipse.cdt.core.dom.lrparser.CLanguageKeywords; +import org.eclipse.cdt.core.dom.parser.IScannerExtensionConfiguration; import org.eclipse.cdt.core.model.ICLanguageKeywords; import org.eclipse.cdt.core.parser.ParserLanguage; import org.eclipse.cdt.core.parser.util.CharArrayMap; @@ -78,10 +79,16 @@ public class XlcKeywords extends CLanguageKeywords { private XlcKeywords(ParserLanguage language) { - super(language, XlcCScannerExtensionConfiguration.getInstance()); + super(language, getConfig(language)); this.language = language; } + private static IScannerExtensionConfiguration getConfig(ParserLanguage lang) { + return lang.isCPP() + ? XlcCPPScannerExtensionConfiguration.getInstance() + : XlcCScannerExtensionConfiguration.getInstance(); + } + /** * Returns the LPG token kind for additional keywords defined by * the XLC extensions, null otherwise. @@ -93,7 +100,8 @@ public class XlcKeywords extends CLanguageKeywords { @Override public synchronized String[] getKeywords() { if(allKeywords == null) { - ICLanguageKeywords base = new CLanguageKeywords(language, XlcCScannerExtensionConfiguration.getInstance()); + IScannerExtensionConfiguration config = getConfig(language); + ICLanguageKeywords base = new CLanguageKeywords(language, config); String[] baseKeywords = base.getKeywords(); List<String> keywords = new ArrayList<String>(); |