From 9508bc314e35c30e012c5257b6d1c0c1354f85ba Mon Sep 17 00:00:00 2001 From: John Camelon Date: Fri, 10 Dec 2004 03:42:44 +0000 Subject: [PATCH] Some further DOM updates. --- .../src/org/eclipse/cdt/core/CCorePlugin.java | 6 ++ .../src/org/eclipse/cdt/core/dom/CDOM.java | 10 ++-- .../cdt/core/dom/EclipseLocationFactory.java | 56 +++++++++++++++++++ .../cdt/core/dom/ast/IASTLocationFactory.java | 24 ++++++++ .../core/dom/InternalASTServiceProvider.java | 22 ++++---- 5 files changed, 103 insertions(+), 15 deletions(-) create mode 100644 core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/dom/EclipseLocationFactory.java create mode 100644 core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/dom/ast/IASTLocationFactory.java diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CCorePlugin.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CCorePlugin.java index 6fbfd7bcc67..1b13e0b9853 100644 --- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CCorePlugin.java +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CCorePlugin.java @@ -16,6 +16,7 @@ import java.util.Map; import java.util.MissingResourceException; import java.util.ResourceBundle; +import org.eclipse.cdt.core.dom.CDOM; import org.eclipse.cdt.core.filetype.ICFileType; import org.eclipse.cdt.core.filetype.ICFileTypeResolver; import org.eclipse.cdt.core.filetype.IResolverModel; @@ -901,6 +902,11 @@ public class CCorePlugin extends Plugin { public boolean useStructuralParseMode() { return getPluginPreferences().getBoolean(PREF_USE_STRUCTURAL_PARSE_MODE); } + + public CDOM getDOM() + { + return CDOM.getInstance(); + } } \ No newline at end of file diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/dom/CDOM.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/dom/CDOM.java index cca0eb49eb7..ff877bb7eb3 100644 --- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/dom/CDOM.java +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/dom/CDOM.java @@ -9,8 +9,7 @@ * IBM - Initial API and implementation **********************************************************************/ package org.eclipse.cdt.core.dom; -import org.eclipse.cdt.core.dom.IASTServiceProvider; -import org.eclipse.cdt.core.dom.ICodeReaderFactory; +import org.eclipse.cdt.core.dom.ast.IASTLocationFactory; import org.eclipse.cdt.internal.core.dom.InternalASTServiceProvider; import org.eclipse.cdt.internal.core.dom.SavedCodeReaderFactory; @@ -22,8 +21,6 @@ import org.eclipse.cdt.internal.core.dom.SavedCodeReaderFactory; */ public class CDOM { - - private CDOM() { } @@ -90,5 +87,10 @@ public class CDOM { } return null; } + + public IASTLocationFactory getLocationFactory() + { + return new EclipseLocationFactory(); + } } diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/dom/EclipseLocationFactory.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/dom/EclipseLocationFactory.java new file mode 100644 index 00000000000..b457bbe6425 --- /dev/null +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/dom/EclipseLocationFactory.java @@ -0,0 +1,56 @@ +/********************************************************************** + * Copyright (c) 2004 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM - Initial API and implementation + **********************************************************************/ +package org.eclipse.cdt.core.dom; + +import org.eclipse.cdt.core.dom.ast.IASTFileLocation; +import org.eclipse.cdt.core.dom.ast.IASTLocationFactory; +import org.eclipse.cdt.core.dom.ast.IASTResourceLocation; +import org.eclipse.cdt.core.model.IWorkingCopy; +import org.eclipse.cdt.internal.core.dom.parser.location.ASTFileLocation; +import org.eclipse.core.resources.IResource; + +/** + * @author jcamelon + */ +public class EclipseLocationFactory implements IASTLocationFactory { + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.dom.ast.IASTLocationFactory#createUnresolvedFileLocation(java.lang.String, int, int) + */ + public IASTFileLocation createUnresolvedFileLocation(String path, + int offset, int length) { + IASTFileLocation result = new ASTFileLocation(); + result.setResolved(false); + result.setNodeOffset( offset ); + result.setNodeLength( length ); + result.setFileName( path ); + return result; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.dom.ast.IASTLocationFactory#createUnresolvedResourceLocation(org.eclipse.core.resources.IResource, int, int) + */ + public IASTResourceLocation createUnresolvedResourceLocation( + IResource resource, int offset, int length) { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.dom.ast.IASTLocationFactory#createUnresolvedWorkingCopyLocation(org.eclipse.cdt.core.model.IWorkingCopy, int, int) + */ + public IASTResourceLocation createUnresolvedWorkingCopyLocation( + IWorkingCopy workingCopy, int offset, int length) { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/dom/ast/IASTLocationFactory.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/dom/ast/IASTLocationFactory.java new file mode 100644 index 00000000000..25f3c261881 --- /dev/null +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/dom/ast/IASTLocationFactory.java @@ -0,0 +1,24 @@ +/********************************************************************** + * Copyright (c) 2004 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM - Initial API and implementation + **********************************************************************/ +package org.eclipse.cdt.core.dom.ast; + +import org.eclipse.cdt.core.model.IWorkingCopy; +import org.eclipse.core.resources.IResource; + +/** + * @author jcamelon + */ +public interface IASTLocationFactory { + + public IASTFileLocation createUnresolvedFileLocation( String path, int offset, int length ); + public IASTResourceLocation createUnresolvedResourceLocation( IResource resource, int offset, int length ); + public IASTResourceLocation createUnresolvedWorkingCopyLocation( IWorkingCopy workingCopy, int offset, int length ); +} diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/dom/InternalASTServiceProvider.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/dom/InternalASTServiceProvider.java index f282ac8840a..c5860b89415 100644 --- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/dom/InternalASTServiceProvider.java +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/dom/InternalASTServiceProvider.java @@ -32,17 +32,17 @@ import org.eclipse.cdt.core.parser.ParserLanguage; import org.eclipse.cdt.core.parser.ParserMode; import org.eclipse.cdt.core.parser.ParserUtil; import org.eclipse.cdt.core.parser.ScannerInfo; -import org.eclipse.cdt.internal.core.parser2.IProblemRequestor; -import org.eclipse.cdt.internal.core.parser2.IRequiresLocationInformation; -import org.eclipse.cdt.internal.core.parser2.ISourceCodeParser; -import org.eclipse.cdt.internal.core.parser2.c.ANSICParserExtensionConfiguration; -import org.eclipse.cdt.internal.core.parser2.c.GCCParserExtensionConfiguration; -import org.eclipse.cdt.internal.core.parser2.c.GNUCSourceParser; -import org.eclipse.cdt.internal.core.parser2.c.ICParserExtensionConfiguration; -import org.eclipse.cdt.internal.core.parser2.cpp.ANSICPPParserExtensionConfiguration; -import org.eclipse.cdt.internal.core.parser2.cpp.GNUCPPParserExtensionConfiguration; -import org.eclipse.cdt.internal.core.parser2.cpp.GNUCPPSourceParser; -import org.eclipse.cdt.internal.core.parser2.cpp.ICPPParserExtensionConfiguration; +import org.eclipse.cdt.internal.core.dom.parser.IProblemRequestor; +import org.eclipse.cdt.internal.core.dom.parser.IRequiresLocationInformation; +import org.eclipse.cdt.internal.core.dom.parser.ISourceCodeParser; +import org.eclipse.cdt.internal.core.dom.parser.c.ANSICParserExtensionConfiguration; +import org.eclipse.cdt.internal.core.dom.parser.c.GCCParserExtensionConfiguration; +import org.eclipse.cdt.internal.core.dom.parser.c.GNUCSourceParser; +import org.eclipse.cdt.internal.core.dom.parser.c.ICParserExtensionConfiguration; +import org.eclipse.cdt.internal.core.dom.parser.cpp.ANSICPPParserExtensionConfiguration; +import org.eclipse.cdt.internal.core.dom.parser.cpp.GNUCPPParserExtensionConfiguration; +import org.eclipse.cdt.internal.core.dom.parser.cpp.GNUCPPSourceParser; +import org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPParserExtensionConfiguration; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource;