mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-22 22:22:11 +02:00
bug 233561, NPE when instantiating UPCLanguage
This commit is contained in:
parent
6540729131
commit
d39f018db6
4 changed files with 16 additions and 34 deletions
|
@ -12,7 +12,9 @@ package org.eclipse.cdt.core.dom.lrparser;
|
|||
|
||||
import org.eclipse.cdt.core.dom.ICodeReaderFactory;
|
||||
import org.eclipse.cdt.core.dom.ast.IASTCompletionNode;
|
||||
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.ast.gnu.cpp.GPPLanguage;
|
||||
import org.eclipse.cdt.core.dom.parser.IScannerExtensionConfiguration;
|
||||
import org.eclipse.cdt.core.index.IIndex;
|
||||
|
@ -44,7 +46,7 @@ public abstract class BaseExtensibleLanguage extends AbstractLanguage implements
|
|||
private static final boolean DEBUG_PRINT_GCC_AST = false;
|
||||
private static final boolean DEBUG_PRINT_AST = false;
|
||||
|
||||
private final ICLanguageKeywords keywords;
|
||||
private ICLanguageKeywords keywords = null;
|
||||
|
||||
|
||||
/**
|
||||
|
@ -91,7 +93,7 @@ public abstract class BaseExtensibleLanguage extends AbstractLanguage implements
|
|||
|
||||
|
||||
|
||||
public BaseExtensibleLanguage() {
|
||||
private void getCLanguageKeywords() {
|
||||
ParserLanguage lang = getParserLanguage();
|
||||
IScannerExtensionConfiguration config = getScannerExtensionConfiguration();
|
||||
keywords = new CLanguageKeywords(lang, config);
|
||||
|
@ -203,17 +205,28 @@ public abstract class BaseExtensibleLanguage extends AbstractLanguage implements
|
|||
}
|
||||
|
||||
|
||||
|
||||
public IASTName[] getSelectedNames(IASTTranslationUnit ast, int start, int length) {
|
||||
return GCCLanguage.getDefault().getSelectedNames(ast, start, length);
|
||||
}
|
||||
|
||||
public String[] getBuiltinTypes() {
|
||||
if(keywords == null)
|
||||
getCLanguageKeywords();
|
||||
|
||||
return keywords.getBuiltinTypes();
|
||||
}
|
||||
|
||||
public String[] getKeywords() {
|
||||
if(keywords == null)
|
||||
getCLanguageKeywords();
|
||||
|
||||
return keywords.getKeywords();
|
||||
}
|
||||
|
||||
public String[] getPreprocessorKeywords() {
|
||||
if(keywords == null)
|
||||
getCLanguageKeywords();
|
||||
|
||||
return keywords.getPreprocessorKeywords();
|
||||
}
|
||||
|
||||
|
|
|
@ -11,9 +11,7 @@
|
|||
package org.eclipse.cdt.core.dom.lrparser.c99;
|
||||
|
||||
import org.eclipse.cdt.core.dom.ILinkage;
|
||||
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;
|
||||
|
@ -76,10 +74,6 @@ public class C99Language extends BaseExtensibleLanguage {
|
|||
return ILinkage.C_LINKAGE_ID;
|
||||
}
|
||||
|
||||
public IASTName[] getSelectedNames(IASTTranslationUnit ast, int start, int length) {
|
||||
return GCCLanguage.getDefault().getSelectedNames(ast, start, length);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ParserLanguage getParserLanguage() {
|
||||
return ParserLanguage.C;
|
||||
|
|
|
@ -11,9 +11,7 @@
|
|||
package org.eclipse.cdt.core.dom.lrparser.cpp;
|
||||
|
||||
import org.eclipse.cdt.core.dom.ILinkage;
|
||||
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;
|
||||
|
@ -78,11 +76,6 @@ public class ISOCPPLanguage extends BaseExtensibleLanguage {
|
|||
return ILinkage.CPP_LINKAGE_ID;
|
||||
}
|
||||
|
||||
public IASTName[] getSelectedNames(IASTTranslationUnit ast, int start, int length) {
|
||||
return GPPLanguage.getDefault().getSelectedNames(ast, start, length);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected ParserLanguage getParserLanguage() {
|
||||
return ParserLanguage.CPP;
|
||||
|
|
|
@ -11,14 +11,12 @@
|
|||
package org.eclipse.cdt.core.dom.upc;
|
||||
|
||||
import org.eclipse.cdt.core.dom.ILinkage;
|
||||
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.ScannerExtensionConfiguration;
|
||||
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.IScannerExtensionConfiguration;
|
||||
import org.eclipse.cdt.core.dom.parser.upc.DOMToUPCTokenMap;
|
||||
import org.eclipse.cdt.core.dom.parser.upc.UPCKeyword;
|
||||
|
@ -43,7 +41,6 @@ public class UPCLanguage extends BaseExtensibleLanguage {
|
|||
public static final String ID = PLUGIN_ID + ".upc"; //$NON-NLS-1$
|
||||
|
||||
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[] upcKeywords = UPCKeyword.getAllKeywords();
|
||||
|
@ -51,7 +48,6 @@ public class UPCLanguage extends BaseExtensibleLanguage {
|
|||
private static final IScannerExtensionConfiguration SCANNER_CONFIGURATION = new ScannerExtensionConfiguration();
|
||||
|
||||
|
||||
|
||||
public static UPCLanguage getDefault() {
|
||||
return myDefault;
|
||||
}
|
||||
|
@ -80,26 +76,12 @@ public class UPCLanguage extends BaseExtensibleLanguage {
|
|||
public int getLinkageID() {
|
||||
return ILinkage.C_LINKAGE_ID;
|
||||
}
|
||||
|
||||
public IASTName[] getSelectedNames(IASTTranslationUnit ast, int start, int length) {
|
||||
return C99_LANGUAGE.getSelectedNames(ast, start, length);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getBuiltinTypes() {
|
||||
return C99_LANGUAGE.getBuiltinTypes();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getKeywords() {
|
||||
return upcKeywords;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getPreprocessorKeywords() {
|
||||
return C99_LANGUAGE.getPreprocessorKeywords();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ParserLanguage getParserLanguage() {
|
||||
return ParserLanguage.C;
|
||||
|
|
Loading…
Add table
Reference in a new issue