1
0
Fork 0
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:
Mike Kucera 2008-05-22 20:13:25 +00:00
parent 6540729131
commit d39f018db6
4 changed files with 16 additions and 34 deletions

View file

@ -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();
}

View file

@ -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;

View file

@ -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;

View file

@ -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;