From 6af575f2240e1c94166aadec6a8eb13797f50ea9 Mon Sep 17 00:00:00 2001 From: Mike Kucera Date: Thu, 22 Oct 2009 21:36:05 +0000 Subject: [PATCH] Bug 292949 - XL C++ parser using wrong scanner config - updating keywords --- .../eclipse/cdt/core/lrparser/xlc/XlcKeywords.java | 11 +++++++++-- 1 file changed, 9 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 86e4acca281..ebe6c2f1a95 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.parser.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,7 @@ public class XlcKeywords extends CLanguageKeywords { @Override public synchronized String[] getKeywords() { if(allKeywords == null) { - ICLanguageKeywords base = new CLanguageKeywords(language, XlcCScannerExtensionConfiguration.getInstance()); + ICLanguageKeywords base = new CLanguageKeywords(language, getConfig(language)); String[] baseKeywords = base.getKeywords(); List keywords = new ArrayList();