[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[cdt-patch] CDT/UI rewrite of the Structure Comparator using ISourceElementRequestor
|
Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/ChangeLog,v
retrieving revision 1.149
diff -u -r1.149 ChangeLog
--- ChangeLog 28 Aug 2003 19:49:33 -0000 1.149
+++ ChangeLog 30 Aug 2003 05:19:47 -0000
@@ -1,3 +1,17 @@
+2003-08-30 Alain Magloire
+
+ Remove completely the Old C Parser references and the ComparatorBuilder class.
+ The Struture comparator is now base entirely on ISourceElemenRequestor.
+ Making things more stable: Fix part of 39090, Fix 39725, 41006
+
+ * src/org/eclipse/cdt/internal/ui/compare.CNode.java
+ * src/org/eclipse/cdt/internal/ui/compare.CParseTreeBuilder.java
+ * src/org/eclipse/cdt/internal/ui/compare.CStructureCreator.java
+ * src/org/eclipse/cdt/internal/ui/compare.SourceElementRequestorAdaptor.java
+
+ * src/org/eclipse/cdt/internal/ui/compare.ComparatorModelBuilder.java
+ Removed.
+
2003-08-28 Hoda Amer
Solution to Bug #39968:
-Template Union missing an icon
Index: src/org/eclipse/cdt/internal/ui/CElementImageProvider.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/CElementImageProvider.java,v
retrieving revision 1.17
diff -u -r1.17 CElementImageProvider.java
--- src/org/eclipse/cdt/internal/ui/CElementImageProvider.java 28 Aug 2003 19:49:33 -0000 1.17
+++ src/org/eclipse/cdt/internal/ui/CElementImageProvider.java 30 Aug 2003 05:19:48 -0000
@@ -106,7 +106,87 @@
}
return null;
}
+
+ /**
+ *
+ * @param type
+ * @return
+ */
+ public static ImageDescriptor getImageDescriptor(int type) {
+ switch (type) {
+ case ICElement.C_VCONTAINER:
+ return CPluginImages.DESC_OBJS_CONTAINER;
+
+ case ICElement.C_BINARY:
+ return CPluginImages.DESC_OBJS_BINARY;
+ case ICElement.C_ARCHIVE:
+ return CPluginImages.DESC_OBJS_ARCHIVE;
+
+ case ICElement.C_UNIT:
+ return CPluginImages.DESC_OBJS_TUNIT;
+
+ case ICElement.C_CCONTAINER:
+ return DESC_OBJ_FOLDER;
+
+ case ICElement.C_PROJECT:
+ return DESC_OBJ_PROJECT;
+
+ case ICElement.C_STRUCT:
+ case ICElement.C_TEMPLATE_STRUCT:
+ return CPluginImages.DESC_OBJS_STRUCT;
+
+ case ICElement.C_CLASS:
+ case ICElement.C_TEMPLATE_CLASS:
+ return CPluginImages.DESC_OBJS_CLASS;
+
+ case ICElement.C_UNION:
+ case ICElement.C_TEMPLATE_UNION:
+ return CPluginImages.DESC_OBJS_UNION;
+
+ case ICElement.C_TYPEDEF:
+ return CPluginImages.DESC_OBJS_TYPEDEF;
+
+ case ICElement.C_ENUMERATION:
+ return CPluginImages.DESC_OBJS_ENUMERATION;
+
+ case ICElement.C_ENUMERATOR:
+ return CPluginImages.DESC_OBJS_ENUMERATOR;
+
+ case ICElement.C_FIELD:
+ return CPluginImages.DESC_OBJS_PUBLIC_FIELD;
+
+ case ICElement.C_VARIABLE:
+ case ICElement.C_TEMPLATE_VARIABLE:
+ return CPluginImages.DESC_OBJS_FIELD;
+
+ case ICElement.C_METHOD:
+ case ICElement.C_METHOD_DECLARATION:
+ case ICElement.C_TEMPLATE_METHOD:
+ return CPluginImages.DESC_OBJS_PUBLIC_METHOD;
+
+ case ICElement.C_FUNCTION:
+ return CPluginImages.DESC_OBJS_FUNCTION;
+
+ case ICElement.C_VARIABLE_DECLARATION:
+ return CPluginImages.DESC_OBJS_VAR_DECLARARION;
+
+ case ICElement.C_FUNCTION_DECLARATION:
+ case ICElement.C_TEMPLATE_FUNCTION:
+ return CPluginImages.DESC_OBJS_DECLARARION;
+
+ case ICElement.C_INCLUDE:
+ return CPluginImages.DESC_OBJS_INCLUDE;
+
+ case ICElement.C_MACRO:
+ return CPluginImages.DESC_OBJS_MACRO;
+
+ case ICElement.C_NAMESPACE:
+ return CPluginImages.DESC_OBJS_CONTAINER;
+ }
+ return null;
+ }
+
private boolean showOverlayIcons(int flags) {
return (flags & OVERLAY_ICONS) != 0;
}
Index: src/org/eclipse/cdt/internal/ui/compare/CNode.java
===================================================================
RCS file: src/org/eclipse/cdt/internal/ui/compare/CNode.java
diff -N src/org/eclipse/cdt/internal/ui/compare/CNode.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ src/org/eclipse/cdt/internal/ui/compare/CNode.java 30 Aug 2003 05:19:48 -0000
@@ -0,0 +1,56 @@
+package org.eclipse.cdt.internal.ui.compare;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved.
+ */
+
+import org.eclipse.cdt.internal.ui.CElementImageProvider;
+import org.eclipse.cdt.ui.CUIPlugin;
+import org.eclipse.compare.ITypedElement;
+import org.eclipse.compare.structuremergeviewer.DocumentRangeNode;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.swt.graphics.Image;
+/**
+ *
+ */
+
+class CNode extends DocumentRangeNode implements ITypedElement {
+
+ private CNode fParent;
+
+ public CNode(CNode parent, int type, String id, IDocument doc, int start, int length) {
+ super(type, id, doc, start, length);
+ fParent= parent;
+ if (parent != null) {
+ parent.addChild(this);
+ }
+ }
+
+ public CNode(CNode parent, int type, String id, int start, int length) {
+ this(parent, type, id, parent.getDocument(), start, length);
+ }
+
+ /**
+ * @see ITypedInput#getName
+ */
+ public String getName() {
+ return getId();
+ }
+
+ /**
+ * @see ITypedInput#getType
+ */
+ public String getType() {
+ return "c2"; //$NON-NLS-1$
+ }
+
+ /**
+ * @see ITypedInput#getImage
+ */
+ public Image getImage() {
+ ImageDescriptor descriptor = CElementImageProvider.getImageDescriptor(getTypeCode());
+ return CUIPlugin.getImageDescriptorRegistry().get(descriptor);
+ }
+}
Index: src/org/eclipse/cdt/internal/ui/compare/CParseTreeBuilder.java
===================================================================
RCS file: src/org/eclipse/cdt/internal/ui/compare/CParseTreeBuilder.java
diff -N src/org/eclipse/cdt/internal/ui/compare/CParseTreeBuilder.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ src/org/eclipse/cdt/internal/ui/compare/CParseTreeBuilder.java 30 Aug 2003 05:19:48 -0000
@@ -0,0 +1,309 @@
+package org.eclipse.cdt.internal.ui.compare;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved.
+ */
+
+import java.util.Stack;
+
+import org.eclipse.cdt.core.model.ICElement;
+import org.eclipse.cdt.core.parser.IProblem;
+import org.eclipse.cdt.core.parser.ast.ASTClassKind;
+import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier;
+import org.eclipse.cdt.core.parser.ast.IASTCompilationUnit;
+import org.eclipse.cdt.core.parser.ast.IASTEnumerationSpecifier;
+import org.eclipse.cdt.core.parser.ast.IASTField;
+import org.eclipse.cdt.core.parser.ast.IASTFunction;
+import org.eclipse.cdt.core.parser.ast.IASTInclusion;
+import org.eclipse.cdt.core.parser.ast.IASTLinkageSpecification;
+import org.eclipse.cdt.core.parser.ast.IASTMacro;
+import org.eclipse.cdt.core.parser.ast.IASTMethod;
+import org.eclipse.cdt.core.parser.ast.IASTNamespaceDefinition;
+import org.eclipse.cdt.core.parser.ast.IASTTemplateDeclaration;
+import org.eclipse.cdt.core.parser.ast.IASTTemplateInstantiation;
+import org.eclipse.cdt.core.parser.ast.IASTTemplateSpecialization;
+import org.eclipse.cdt.core.parser.ast.IASTTypedefDeclaration;
+import org.eclipse.cdt.core.parser.ast.IASTUsingDeclaration;
+import org.eclipse.cdt.core.parser.ast.IASTUsingDirective;
+import org.eclipse.cdt.core.parser.ast.IASTVariable;
+import org.eclipse.jface.text.IDocument;
+
+/**
+ *
+ */
+public class CParseTreeBuilder extends SourceElementRequestorAdapter {
+
+ private Stack fStack = new Stack();
+ private IDocument fDocument;
+
+ /**
+ * Syntax Error.
+ */
+ public class ParseError extends Error {
+ }
+
+ public CParseTreeBuilder(CNode root, IDocument doc) {
+ fDocument = doc;
+ fStack.clear();
+ fStack.push(root);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#enterClassSpecifier(org.eclipse.cdt.core.parser.ast.IASTClassSpecifier)
+ */
+ public void enterClassSpecifier(IASTClassSpecifier classSpecification) {
+ String name = classSpecification.getName();
+ int start = classSpecification.getStartingOffset();
+ if (classSpecification.getClassKind().equals(ASTClassKind.CLASS)) {
+ push(ICElement.C_CLASS, name, start);
+ } else if (classSpecification.getClassKind().equals(ASTClassKind.STRUCT)) {
+ push(ICElement.C_STRUCT, name, start);
+ } else if (classSpecification.getClassKind().equals(ASTClassKind.UNION)) {
+ push(ICElement.C_UNION, name, start);
+ } else if (classSpecification.getClassKind().equals(ASTClassKind.ENUM)) {
+ push(ICElement.C_ENUMERATION, name, start);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#enterCompilationUnit(org.eclipse.cdt.core.parser.ast.IASTCompilationUnit)
+ */
+ public void enterCompilationUnit(IASTCompilationUnit compilationUnit) {
+ push(ICElement.C_UNIT, "Translation Unit", 0);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#enterFunctionBody(org.eclipse.cdt.core.parser.ast.IASTFunction)
+ */
+ public void enterFunctionBody(IASTFunction function) {
+ push(ICElement.C_FUNCTION, function.getName(), function.getStartingOffset());
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#enterInclusion(org.eclipse.cdt.core.parser.ast.IASTInclusion)
+ */
+ public void enterInclusion(IASTInclusion inclusion) {
+ push(ICElement.C_INCLUDE, inclusion.getName(), inclusion.getStartingOffset());
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#enterLinkageSpecification(org.eclipse.cdt.core.parser.ast.IASTLinkageSpecification)
+ */
+ public void enterLinkageSpecification(IASTLinkageSpecification linkageSpec) {
+ push(ICElement.C_STORAGE_EXTERN, linkageSpec.getLinkageString(), linkageSpec.getStartingOffset());
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#enterMethodBody(org.eclipse.cdt.core.parser.ast.IASTMethod)
+ */
+ public void enterMethodBody(IASTMethod method) {
+ push(ICElement.C_METHOD, method.getName(), method.getStartingOffset());
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#enterNamespaceDefinition(org.eclipse.cdt.core.parser.ast.IASTNamespaceDefinition)
+ */
+ public void enterNamespaceDefinition(IASTNamespaceDefinition namespaceDefinition) {
+ push(ICElement.C_NAMESPACE, namespaceDefinition.getName(), namespaceDefinition.getStartingOffset());;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#enterTemplateDeclaration(org.eclipse.cdt.core.parser.ast.IASTTemplateDeclaration)
+ */
+ public void enterTemplateDeclaration(IASTTemplateDeclaration declaration) {
+ push(ICElement.C_TEMPLATE_VARIABLE, "export", declaration.getStartingOffset());
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#enterTemplateInstantiation(org.eclipse.cdt.core.parser.ast.IASTTemplateInstantiation)
+ */
+ public void enterTemplateInstantiation(IASTTemplateInstantiation instantiation) {
+ push(ICElement.C_TEMPLATE_VARIABLE, "template instanciation", instantiation.getStartingOffset());
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#enterTemplateSpecialization(org.eclipse.cdt.core.parser.ast.IASTTemplateSpecialization)
+ */
+ public void enterTemplateSpecialization(IASTTemplateSpecialization specialization) {
+ push(ICElement.C_TEMPLATE_VARIABLE, "template specialization", specialization.getStartingOffset());
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#exitClassSpecifier(org.eclipse.cdt.core.parser.ast.IASTClassSpecifier)
+ */
+ public void exitClassSpecifier(IASTClassSpecifier classSpecification) {
+ pop(classSpecification.getEndingOffset());
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#exitCompilationUnit(org.eclipse.cdt.core.parser.ast.IASTCompilationUnit)
+ */
+ public void exitCompilationUnit(IASTCompilationUnit translationUnit) {
+ pop(fDocument.getLength());
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#exitFunctionBody(org.eclipse.cdt.core.parser.ast.IASTFunction)
+ */
+ public void exitFunctionBody(IASTFunction function) {
+ pop(function.getEndingOffset());
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#exitInclusion(org.eclipse.cdt.core.parser.ast.IASTInclusion)
+ */
+ public void exitInclusion(IASTInclusion inclusion) {
+ pop(inclusion.getEndingOffset());
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#exitLinkageSpecification(org.eclipse.cdt.core.parser.ast.IASTLinkageSpecification)
+ */
+ public void exitLinkageSpecification(IASTLinkageSpecification linkageSpec) {
+ pop(linkageSpec.getEndingOffset());
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#exitMethodBody(org.eclipse.cdt.core.parser.ast.IASTMethod)
+ */
+ public void exitMethodBody(IASTMethod method) {
+ pop(method.getEndingOffset());
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#exitNamespaceDefinition(org.eclipse.cdt.core.parser.ast.IASTNamespaceDefinition)
+ */
+ public void exitNamespaceDefinition(IASTNamespaceDefinition namespaceDefinition) {
+ pop(namespaceDefinition.getEndingOffset());
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#exitTemplateDeclaration(org.eclipse.cdt.core.parser.ast.IASTTemplateDeclaration)
+ */
+ public void exitTemplateDeclaration(IASTTemplateDeclaration declaration) {
+ pop(declaration.getEndingOffset());
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#exitTemplateExplicitInstantiation(org.eclipse.cdt.core.parser.ast.IASTTemplateInstantiation)
+ */
+ public void exitTemplateExplicitInstantiation(IASTTemplateInstantiation instantiation) {
+ pop(instantiation.getEndingOffset());
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#exitTemplateSpecialization(org.eclipse.cdt.core.parser.ast.IASTTemplateSpecialization)
+ */
+ public void exitTemplateSpecialization(IASTTemplateSpecialization specialization) {
+ pop(specialization.getEndingOffset());
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#acceptEnumerationSpecifier(org.eclipse.cdt.core.parser.ast.IASTEnumerationSpecifier)
+ */
+ public void acceptEnumerationSpecifier(IASTEnumerationSpecifier enumeration) {
+ push(ICElement.C_ENUMERATION, enumeration.getName(), enumeration.getStartingOffset());
+ pop(enumeration.getEndingOffset());
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#acceptFunctionDeclaration(org.eclipse.cdt.core.parser.ast.IASTFunction)
+ */
+ public void acceptFunctionDeclaration(IASTFunction function) {
+ push(ICElement.C_FUNCTION_DECLARATION, function.getName(), function.getStartingOffset());
+ pop(function.getEndingOffset());
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#acceptMacro(org.eclipse.cdt.core.parser.ast.IASTMacro)
+ */
+ public void acceptMacro(IASTMacro macro) {
+ push(ICElement.C_MACRO, macro.getName(), macro.getStartingOffset());
+ pop(macro.getEndingOffset());
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#acceptMethodDeclaration(org.eclipse.cdt.core.parser.ast.IASTMethod)
+ */
+ public void acceptMethodDeclaration(IASTMethod method) {
+ push(ICElement.C_METHOD_DECLARATION, method.getName(), method.getStartingOffset());
+ pop(method.getEndingOffset());
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#acceptProblem(org.eclipse.cdt.core.parser.IProblem)
+ */
+ public void acceptProblem(IProblem problem) {
+ int problemId = problem.getID();
+ if (problem.isError() && ((problemId & IProblem.Syntax) != 0)) {
+ throw new ParseError();
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#acceptTypedefDeclaration(org.eclipse.cdt.core.parser.ast.IASTTypedefDeclaration)
+ */
+ public void acceptTypedefDeclaration(IASTTypedefDeclaration typedef) {
+ push(ICElement.C_TYPEDEF, typedef.getName(), typedef.getStartingOffset());
+ pop(typedef.getEndingOffset());
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#acceptUsingDeclaration(org.eclipse.cdt.core.parser.ast.IASTUsingDeclaration)
+ */
+ public void acceptUsingDeclaration(IASTUsingDeclaration usageDeclaration) {
+ push(ICElement.C_USING, usageDeclaration.usingTypeName(), usageDeclaration.getStartingOffset());
+ pop(usageDeclaration.getEndingOffset());
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#acceptUsingDirective(org.eclipse.cdt.core.parser.ast.IASTUsingDirective)
+ */
+ public void acceptUsingDirective(IASTUsingDirective usageDirective) {
+ push(ICElement.C_USING, usageDirective.getNamespaceName(), usageDirective.getStartingOffset());
+ pop(usageDirective.getEndingOffset());
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#acceptVariable(org.eclipse.cdt.core.parser.ast.IASTVariable)
+ */
+ public void acceptVariable(IASTVariable variable) {
+ push(ICElement.C_VARIABLE, variable.getName(), variable.getStartingOffset());
+ pop(variable.getEndingOffset());
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#acceptField(org.eclipse.cdt.core.parser.ast.IASTField)
+ */
+ public void acceptField(IASTField field) {
+ push(ICElement.C_FIELD, field.getName(), field.getStartingOffset());
+ pop(field.getEndingOffset());
+ }
+
+ private CNode getCurrentContainer() {
+ return (CNode) fStack.peek();
+ }
+
+ /**
+ * Adds a new JavaNode with the given type and name to the current container.
+ */
+ private void push(int type, String name, int declarationStart) {
+ fStack.push(new CNode(getCurrentContainer(), type, name, declarationStart, 0));
+ }
+
+ /**
+ * Closes the current Java node by setting its end position
+ * and pops it off the stack.
+ */
+ private void pop(int declarationEnd) {
+ CNode current = getCurrentContainer();
+ if (current.getTypeCode() == ICElement.C_UNIT) {
+ current.setAppendPosition(declarationEnd + 1);
+ } else {
+ current.setAppendPosition(declarationEnd);
+ }
+ current.setLength(declarationEnd - current.getRange().getOffset() + 1);
+ fStack.pop();
+ }
+}
Index: src/org/eclipse/cdt/internal/ui/compare/CStructureCreator.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/compare/CStructureCreator.java,v
retrieving revision 1.5
diff -u -r1.5 CStructureCreator.java
--- src/org/eclipse/cdt/internal/ui/compare/CStructureCreator.java 14 Apr 2003 17:31:25 -0000 1.5
+++ src/org/eclipse/cdt/internal/ui/compare/CStructureCreator.java 30 Aug 2003 05:19:48 -0000
@@ -4,134 +4,127 @@
* (c) Copyright IBM Corp. 2000, 2001.
* All Rights Reserved.
*/
-
+
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
+import java.io.StringReader;
-import org.eclipse.swt.graphics.Image;
-
+import org.eclipse.cdt.core.model.ICElement;
+import org.eclipse.cdt.core.parser.IParser;
+import org.eclipse.cdt.core.parser.IScanner;
+import org.eclipse.cdt.core.parser.ISourceElementRequestor;
+import org.eclipse.cdt.core.parser.ParserFactory;
+import org.eclipse.cdt.core.parser.ParserMode;
+import org.eclipse.cdt.internal.core.parser.ScannerInfo;
+import org.eclipse.cdt.ui.CUIPlugin;
import org.eclipse.compare.IEditableContent;
import org.eclipse.compare.IStreamContentAccessor;
-import org.eclipse.compare.ITypedElement;
import org.eclipse.compare.structuremergeviewer.Differencer;
-import org.eclipse.compare.structuremergeviewer.DocumentRangeNode;
import org.eclipse.compare.structuremergeviewer.IDiffContainer;
import org.eclipse.compare.structuremergeviewer.IStructureComparator;
import org.eclipse.compare.structuremergeviewer.IStructureCreator;
import org.eclipse.core.runtime.CoreException;
-
import org.eclipse.jface.text.Document;
import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.Position;
-
-import org.eclipse.cdt.core.CCorePlugin;
-import org.eclipse.cdt.core.model.ICElement;
-import org.eclipse.cdt.internal.parser.CStructurizer;
-import org.eclipse.cdt.internal.parser.IStructurizerCallback;
-import org.eclipse.cdt.internal.ui.CPluginImages;
-import org.eclipse.cdt.internal.ui.DocumentInputStream;
-import org.eclipse.cdt.ui.CUIPlugin;
/**
*
*/
-public class CStructureCreator implements IStructureCreator {
+public class CStructureCreator implements IStructureCreator {
- private static final String NAME= "CStructureCreator.name";
+ private static final String NAME = "CStructureCreator.name";
public CStructureCreator() {
}
/**
* @see IStructureCreator#getTitle
- */
+ */
public String getName() {
return CUIPlugin.getResourceString(NAME);
}
-
+
/**
* @see IStructureCreator#getStructure
- */
+ */
public IStructureComparator getStructure(Object input) {
-
- String s= null;
+
+ String s = null;
if (input instanceof IStreamContentAccessor) {
try {
- s= readString(((IStreamContentAccessor) input).getContents());
- } catch(CoreException ex) {
+ s = readString(((IStreamContentAccessor) input).getContents());
+ } catch (CoreException ex) {
}
}
-
- Document doc= new Document(s != null ? s : "");
-
- CNode root= new CNode(null, ICElement.C_UNIT, "root", doc, 0, 0);
-
- DocumentInputStream is= new DocumentInputStream(doc);
- IStructurizerCallback callback= new CNodeTreeConstructor(root, doc);
+
+ if (s == null) {
+ s = new String();
+ }
+ Document doc = new Document(s);
+
+ CNode root = new CNode(null, ICElement.C_UNIT, "root", doc, 0, 0);
+
+ ISourceElementRequestor builder = new CParseTreeBuilder(root, doc);
try {
- if (CCorePlugin.getDefault().useNewParser()) {
- // new parser
- ComparatorModelBuilder modelBuilder = new ComparatorModelBuilder(callback, (s != null ? s : ""));
- modelBuilder.parse();
- } else {
- CStructurizer.getCStructurizer().parse(callback, is);
- }
- } catch (NodeConstructorError e) {
- System.out.println("Parse error: " + e);
- return null;
- } catch (IOException e) {
- return null;
+ IScanner scanner =
+ ParserFactory.createScanner(new StringReader(s), "code", new ScannerInfo(), ParserMode.QUICK_PARSE, builder);
+ IParser parser = ParserFactory.createParser(scanner, builder, ParserMode.QUICK_PARSE);
+ parser.parse();
+ } catch (Exception e) {
+ // What to do when error ?
+ // The CParseTreeBuilder will throw CParseTreeBuilder.ParseError
+ // for acceptProblem.
}
return root;
- }
+ }
/**
* @see IStructureCreator#canSave
- */
+ */
public boolean canSave() {
return true;
}
/**
* @see IStructureCreator#locate
- */
+ */
public IStructureComparator locate(Object path, Object source) {
return null;
}
/**
* @see IStructureCreator#canRewriteTree
- */
+ */
public boolean canRewriteTree() {
return false;
}
/**
* @see IStructureCreator#rewriteTree
- */
+ */
public void rewriteTree(Differencer differencer, IDiffContainer root) {
- }
+ }
/**
* @see IStructureCreator#save
- */
+ */
public void save(IStructureComparator structure, Object input) {
if (input instanceof IEditableContent && structure instanceof CNode) {
- IDocument doc= ((CNode)structure).getDocument();
- IEditableContent bca= (IEditableContent) input;
- String c= doc.get();
+ IDocument doc = ((CNode) structure).getDocument();
+ IEditableContent bca = (IEditableContent) input;
+ String c = doc.get();
bca.setContent(c.getBytes());
}
}
-
+
/**
* @see IStructureCreator#getContents
*/
public String getContents(Object node, boolean ignoreWhitespace) {
if (node instanceof IStreamContentAccessor) {
- IStreamContentAccessor sca= (IStreamContentAccessor) node;
+ IStreamContentAccessor sca = (IStreamContentAccessor) node;
try {
return readString(sca.getContents());
} catch (CoreException ex) {
@@ -140,166 +133,24 @@
return null;
}
- private static class CNode extends DocumentRangeNode implements ITypedElement {
-
- private String fImageKey;
- private CNode fParent;
- private int fCode;
-
- public CNode(CNode parent, int type, String id, IDocument doc, int start, int length) {
- super(type, id, doc, start, length);
- fCode = type;
- fImageKey= CPluginImages.IMG_OBJS_STRUCT;
- fParent= parent;
- }
-
- /**
- * Returns the type code of this node.
- * The type code is uninterpreted client data which can be set in the constructor.
- *
- * @return the type code of this node
- */
- public int getTypeCode() {
- return fCode;
- }
-
- public void setTypeCode(int code) {
- fCode = code;
- }
-
- public CNode getParent() {
- return fParent;
- }
-
- /**
- * @see ITypedInput#getName
- */
- public String getName() {
- return getId();
- }
-
- /**
- * @see ITypedInput#getType
- */
- public String getType() {
- return "c2";
- }
-
- /**
- * @see ITypedInput#getImage
- */
- public Image getImage() {
- if (fImageKey != null) {
- return CPluginImages.get(fImageKey);
- }
- return null;
- }
- };
-
- private static class NodeConstructorError extends Error {
- }
-
- private static class CNodeTreeConstructor implements IStructurizerCallback {
-
- private CNode fRoot;
- private CNode fCurrent;
-
- private IDocument fDocument;
-
- public CNodeTreeConstructor(CNode root, IDocument doc) {
- fRoot= root;
- fCurrent= root;
- fDocument= doc;
- }
-
- private CNode getParent(CNode node) {
- CNode parent= node.getParent();
- if (parent == null) {
- throw new NodeConstructorError();
- }
- return parent;
- }
-
- private final int fixLength(int startPos, int endPos) {
- if (endPos < startPos) {
- return 0;
- } else {
- return endPos - startPos + 1;
- }
- }
-
-
- public void includeDecl(String name, int startPos, int endPos, int startLine, int endLine) {
- CNode node= new CNode(fRoot, ICElement.C_INCLUDE, name, fDocument, startPos, fixLength(startPos, endPos));
- fRoot.addChild(node);
- }
-
- public void defineDecl(String name, int startPos, int endPos, int startLine, int endLine) {
- CNode node= new CNode(fRoot, ICElement.C_MACRO, name, fDocument, startPos, fixLength(startPos, endPos));
- fRoot.addChild(node);
- }
-
- public void functionDeclBegin(String name, int nameStartPos, int nameEndPos,
- int declStartPos, int startLine, int type, int modifiers) {
- CNode node= new CNode(fCurrent, ICElement.C_FUNCTION, name, fDocument, declStartPos, 0);
- fCurrent.addChild(node);
- fCurrent= node;
- }
-
- public void functionDeclEnd(int declEndPos, int endLine, boolean prototype) {
- if(prototype) {
- fCurrent.setTypeCode(ICElement.C_FUNCTION_DECLARATION);
- }
- Position p= fCurrent.getRange();
- fCurrent.setLength(fixLength(p.getOffset(), declEndPos));
- fCurrent= getParent(fCurrent);
- }
-
- public void fieldDecl(String name, int nameStartPos, int nameEndPos, int declStartPos,
- int declEndPos, int startLine, int endLine, int modifiers) {
- CNode node= new CNode(fCurrent, ICElement.C_FIELD, name, fDocument, declStartPos, fixLength(declStartPos, declEndPos));
- fCurrent.addChild(node);
- }
-
- public void structDeclBegin(String name, int kind, int nameStartPos, int nameEndPos,
- int declStartPos, int startLine, int modifiers) {
- CNode node= new CNode(fCurrent, kind, name, fDocument, declStartPos, 0);
- fCurrent.addChild(node);
- fCurrent= node;
- }
-
- public void structDeclEnd(int declEndPos, int endLine) {
- Position p= fCurrent.getRange();
- fCurrent.setLength(fixLength(p.getOffset(), declEndPos));
- fCurrent= getParent(fCurrent);
- }
-
- public void superDecl(String name) {
- }
-
- public void reportError(Throwable throwable) {
- throw new NodeConstructorError();
- }
- }
-
/**
* Returns null if an error occurred.
*/
private static String readString(InputStream is) {
if (is == null)
return null;
- BufferedReader reader= null;
+ BufferedReader reader = null;
try {
- StringBuffer buffer= new StringBuffer();
- char[] part= new char[2048];
- int read= 0;
- reader= new BufferedReader(new InputStreamReader(is));
+ StringBuffer buffer = new StringBuffer();
+ char[] part = new char[2048];
+ int read = 0;
+ reader = new BufferedReader(new InputStreamReader(is));
- while ((read= reader.read(part)) != -1)
+ while ((read = reader.read(part)) != -1)
buffer.append(part, 0, read);
-
+
return buffer.toString();
-
+
} catch (IOException ex) {
} finally {
if (reader != null) {
@@ -311,5 +162,5 @@
}
return null;
}
-
+
}
Index: src/org/eclipse/cdt/internal/ui/compare/ComparatorModelBuilder.java
===================================================================
RCS file: src/org/eclipse/cdt/internal/ui/compare/ComparatorModelBuilder.java
diff -N src/org/eclipse/cdt/internal/ui/compare/ComparatorModelBuilder.java
--- src/org/eclipse/cdt/internal/ui/compare/ComparatorModelBuilder.java 18 Jul 2003 16:39:26 -0000 1.8
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,300 +0,0 @@
-/*******************************************************************************
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v0.5
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v05.html
- *
- * Contributors:
- * QnX Software Systems - initial implementation base on code from rational/IBM
- ******************************************************************************/
-
-package org.eclipse.cdt.internal.ui.compare;
-
-import java.io.StringReader;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.cdt.core.model.ICElement;
-import org.eclipse.cdt.core.parser.IParser;
-import org.eclipse.cdt.core.parser.ParserFactory;
-import org.eclipse.cdt.core.parser.ParserMode;
-import org.eclipse.cdt.internal.core.dom.ClassKey;
-import org.eclipse.cdt.internal.core.dom.ClassSpecifier;
-import org.eclipse.cdt.internal.core.dom.DOMBuilder;
-import org.eclipse.cdt.internal.core.dom.Declaration;
-import org.eclipse.cdt.internal.core.dom.Declarator;
-import org.eclipse.cdt.internal.core.dom.EnumerationSpecifier;
-import org.eclipse.cdt.internal.core.dom.IOffsetable;
-import org.eclipse.cdt.internal.core.dom.Inclusion;
-import org.eclipse.cdt.internal.core.dom.Macro;
-import org.eclipse.cdt.internal.core.dom.NamespaceDefinition;
-import org.eclipse.cdt.internal.core.dom.ParameterDeclarationClause;
-import org.eclipse.cdt.internal.core.dom.SimpleDeclaration;
-import org.eclipse.cdt.internal.core.dom.TemplateDeclaration;
-import org.eclipse.cdt.internal.core.dom.TranslationUnit;
-import org.eclipse.cdt.internal.core.dom.TypeSpecifier;
-import org.eclipse.cdt.internal.core.parser.ScannerInfo;
-import org.eclipse.cdt.internal.parser.IStructurizerCallback;
-
-/**
- * @author alain
- * TODO: this should be remove when the new parser provides proper callbacks.
- *
- */
-public class ComparatorModelBuilder {
-
- IStructurizerCallback callback;
- String code;
-
- /**
- */
- public ComparatorModelBuilder(IStructurizerCallback cb, String buffer) {
- callback = cb;
- code = buffer;
- }
-
- public void parse() {
- DOMBuilder domBuilder = new DOMBuilder();
- try {
- IParser parser = ParserFactory.createParser(ParserFactory.createScanner( new StringReader( code ), "junk", new ScannerInfo(), ParserMode.QUICK_PARSE, domBuilder ), domBuilder, ParserMode.QUICK_PARSE);
- parser.parse();
- } catch (Exception e) {
- callback.reportError(e);
- }
- generateModelElements(domBuilder.getTranslationUnit());
- }
-
- protected void generateModelElements(TranslationUnit tu) {
- Iterator i = tu.iterateOffsetableElements();
- while (i.hasNext()) {
- IOffsetable offsetable = (IOffsetable) i.next();
- if (offsetable instanceof Inclusion) {
- createInclusion((Inclusion) offsetable);
- } else if (offsetable instanceof Macro) {
- createMacro((Macro) offsetable);
- } else if (offsetable instanceof Declaration) {
- generateModelElements((Declaration) offsetable);
- }
- }
- }
-
- protected void generateModelElements(Declaration declaration) {
- // Namespace Definition
- if (declaration instanceof NamespaceDefinition) {
- NamespaceDefinition nsDef = (NamespaceDefinition) declaration;
- createNamespace(nsDef);
- List nsDeclarations = nsDef.getDeclarations();
- Iterator nsDecls = nsDeclarations.iterator();
- while (nsDecls.hasNext()) {
- Declaration subNsDeclaration = (Declaration) nsDecls.next();
- generateModelElements(subNsDeclaration);
- }
- } // end Namespace Definition
-
- // Simple Declaration
- if (declaration instanceof SimpleDeclaration) {
- SimpleDeclaration simpleDeclaration = (SimpleDeclaration) declaration;
-
- /*-------------------------------------------
- * Checking the type if it is a composite one
- *-------------------------------------------*/
- TypeSpecifier typeSpec = simpleDeclaration.getTypeSpecifier();
- // Enumeration
- if (typeSpec instanceof EnumerationSpecifier) {
- EnumerationSpecifier enumSpecifier = (EnumerationSpecifier) typeSpec;
- createEnumeration(enumSpecifier);
- } else if (typeSpec instanceof ClassSpecifier) { // Structure
- ClassSpecifier classSpecifier = (ClassSpecifier) typeSpec;
- createClass(simpleDeclaration, classSpecifier, false);
- // create the sub declarations
- List declarations = classSpecifier.getDeclarations();
- Iterator j = declarations.iterator();
- while (j.hasNext()) {
- Declaration subDeclaration = (Declaration) j.next();
- generateModelElements(subDeclaration);
- } // end while j
- }
- /*-----------------------------------------
- * Create declarators of simple declaration
- * ----------------------------------------*/
- List declarators = simpleDeclaration.getDeclarators();
- Iterator d = declarators.iterator();
- while (d.hasNext()) {
- Declarator declarator = (Declarator) d.next();
- createElement(simpleDeclaration, declarator);
- } // end while d
- } // end if SimpleDeclaration
-
- // Template Declaration
- if (declaration instanceof TemplateDeclaration) {
- TemplateDeclaration templateDeclaration = (TemplateDeclaration) declaration;
- SimpleDeclaration simpleDeclaration = (SimpleDeclaration) templateDeclaration.getDeclarations().get(0);
- TypeSpecifier typeSpec = simpleDeclaration.getTypeSpecifier();
- if (typeSpec instanceof ClassSpecifier) {
- ClassSpecifier classSpecifier = (ClassSpecifier) typeSpec;
- createClass(simpleDeclaration, classSpecifier, true);
- // create the sub declarations
- List declarations = classSpecifier.getDeclarations();
- Iterator j = declarations.iterator();
- while (j.hasNext()) {
- Declaration subDeclaration = (Declaration) j.next();
- generateModelElements(subDeclaration);
- } // end while j
- }
- List declarators = simpleDeclaration.getDeclarators();
- Iterator d = declarators.iterator();
- while (d.hasNext()) {
- Declarator declarator = (Declarator) d.next();
- createTemplateElement(templateDeclaration, simpleDeclaration, declarator);
- } // end while d
-
- } // end Template Declaration
-
- }
-
- private void createElement(SimpleDeclaration simpleDeclaration, Declarator declarator) {
- // typedef
- if (simpleDeclaration.getDeclSpecifier().isTypedef()) {
- createTypeDef(declarator, simpleDeclaration);
- } else {
- ParameterDeclarationClause pdc = declarator.getParms();
- if (pdc == null) {
- createVariableSpecification(simpleDeclaration, declarator);
- } else {
- createFunctionSpecification(simpleDeclaration, declarator, pdc, false);
- }
- }
- }
-
- private void createTemplateElement(
- TemplateDeclaration templateDeclaration,
- SimpleDeclaration simpleDeclaration,
- Declarator declarator) {
- // TODO: no template in the old parser
- ParameterDeclarationClause pdc = declarator.getParms();
- if (pdc != null) {
- createFunctionSpecification(simpleDeclaration, declarator, pdc, true);
- }
- }
-
- private void createInclusion(Inclusion inclusion) {
- callback.includeDecl(inclusion.getName(), inclusion.getStartingOffset(), inclusion.getTotalLength(), 0, 0);
- }
-
- private void createMacro(Macro macro) {
- callback.defineDecl(macro.getName(), macro.getStartingOffset(), macro.getTotalLength(), 0, 0);
- }
-
- private void createNamespace(NamespaceDefinition nsDef) {
- // TODO: the old parser callback does not know about namespace.
- }
-
- private void createEnumeration(EnumerationSpecifier enumSpecifier) {
- callback.structDeclBegin(
- enumSpecifier.getName().toString(),
- ICElement.C_ENUMERATION,
- enumSpecifier.getNameOffset(),
- enumSpecifier.getName().length(),
- enumSpecifier.getStartingOffset(),
- 0,
- 0);
- callback.structDeclEnd(enumSpecifier.getTotalLength(), 0);
- }
-
- private void createClass(SimpleDeclaration simpleDeclaration, ClassSpecifier classSpecifier, boolean isTemplate) {
- // create element
- String className = (classSpecifier.getName() == null) ? "" : classSpecifier.getName().toString();
- int kind;
- switch (classSpecifier.getClassKey()) {
- case ClassKey.t_class :
- kind = ICElement.C_CLASS;
- break;
- case ClassKey.t_struct :
- kind = ICElement.C_STRUCT;
- break;
- default :
- kind = ICElement.C_UNION;
- break;
- }
-
- // set element position
- if (classSpecifier.getName() != null) {
- callback.structDeclBegin(
- className,
- kind,
- classSpecifier.getNameOffset(),
- classSpecifier.getName().length(),
- classSpecifier.getStartingOffset(),
- 0,
- 0);
- } else {
- callback.structDeclBegin(
- className,
- kind,
- classSpecifier.getStartingOffset(),
- classSpecifier.getClassKeyImage().length(),
- classSpecifier.getStartingOffset(),
- 0,
- 0);
-
- }
- callback.structDeclBegin(
- className,
- kind,
- classSpecifier.getStartingOffset(),
- classSpecifier.getClassKeyEndOffset(),
- classSpecifier.getStartingOffset(),
- 0,
- 0);
- callback.structDeclEnd(classSpecifier.getTotalLength(), 0);
- }
-
- private void createTypeDef(Declarator declarator, SimpleDeclaration simpleDeclaration) {
- // TODO:No typedef in the old callback
- String domName = (declarator.getDeclarator() != null) ? declarator.getDeclarator().getName() : declarator.getName();
- String declaratorName = domName.toString();
- callback.fieldDecl(
- declaratorName,
- declarator.getNameOffset(),
- domName.length(),
- simpleDeclaration.getStartingOffset(),
- simpleDeclaration.getTotalLength(),
- 0,
- 0,
- 0);
- }
-
- private void createVariableSpecification(SimpleDeclaration simpleDeclaration, Declarator declarator) {
- String domName = (declarator.getDeclarator() != null) ? declarator.getDeclarator().getName() : declarator.getName();
- String declaratorName = domName.toString();
- callback.fieldDecl(
- declaratorName,
- declarator.getNameOffset(),
- domName.length(),
- simpleDeclaration.getStartingOffset(),
- simpleDeclaration.getTotalLength(),
- 0,
- 0,
- 0);
- }
-
- private void createFunctionSpecification(
- SimpleDeclaration simpleDeclaration,
- Declarator declarator,
- ParameterDeclarationClause pdc,
- boolean isTemplate) {
- String domName = (declarator.getDeclarator() != null) ? declarator.getDeclarator().getName() : declarator.getName();
- String declaratorName = domName.toString();
- callback.functionDeclBegin(
- declaratorName,
- declarator.getNameOffset(),
- domName.length(),
- simpleDeclaration.getStartingOffset(),
- 0,
- 0,
- 0);
- callback.functionDeclEnd(simpleDeclaration.getTotalLength(), 0, simpleDeclaration.isFunctionDefinition());
- }
-
-}
Index: src/org/eclipse/cdt/internal/ui/compare/SourceElementRequestorAdapter.java
===================================================================
RCS file: src/org/eclipse/cdt/internal/ui/compare/SourceElementRequestorAdapter.java
diff -N src/org/eclipse/cdt/internal/ui/compare/SourceElementRequestorAdapter.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ src/org/eclipse/cdt/internal/ui/compare/SourceElementRequestorAdapter.java 30 Aug 2003 05:19:48 -0000
@@ -0,0 +1,295 @@
+/*******************************************************************************
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v0.5
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v05.html
+ *
+ * Contributors:
+ * QnX Software Systems - initial implementation base on code from rational/IBM
+ ******************************************************************************/
+
+package org.eclipse.cdt.internal.ui.compare;
+
+import org.eclipse.cdt.core.parser.IProblem;
+import org.eclipse.cdt.core.parser.ISourceElementRequestor;
+import org.eclipse.cdt.core.parser.ast.IASTASMDefinition;
+import org.eclipse.cdt.core.parser.ast.IASTAbstractTypeSpecifierDeclaration;
+import org.eclipse.cdt.core.parser.ast.IASTClassReference;
+import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier;
+import org.eclipse.cdt.core.parser.ast.IASTCompilationUnit;
+import org.eclipse.cdt.core.parser.ast.IASTElaboratedTypeSpecifier;
+import org.eclipse.cdt.core.parser.ast.IASTEnumerationReference;
+import org.eclipse.cdt.core.parser.ast.IASTEnumerationSpecifier;
+import org.eclipse.cdt.core.parser.ast.IASTField;
+import org.eclipse.cdt.core.parser.ast.IASTFieldReference;
+import org.eclipse.cdt.core.parser.ast.IASTFunction;
+import org.eclipse.cdt.core.parser.ast.IASTFunctionReference;
+import org.eclipse.cdt.core.parser.ast.IASTInclusion;
+import org.eclipse.cdt.core.parser.ast.IASTLinkageSpecification;
+import org.eclipse.cdt.core.parser.ast.IASTMacro;
+import org.eclipse.cdt.core.parser.ast.IASTMethod;
+import org.eclipse.cdt.core.parser.ast.IASTMethodReference;
+import org.eclipse.cdt.core.parser.ast.IASTNamespaceDefinition;
+import org.eclipse.cdt.core.parser.ast.IASTNamespaceReference;
+import org.eclipse.cdt.core.parser.ast.IASTTemplateDeclaration;
+import org.eclipse.cdt.core.parser.ast.IASTTemplateInstantiation;
+import org.eclipse.cdt.core.parser.ast.IASTTemplateSpecialization;
+import org.eclipse.cdt.core.parser.ast.IASTTypedefDeclaration;
+import org.eclipse.cdt.core.parser.ast.IASTTypedefReference;
+import org.eclipse.cdt.core.parser.ast.IASTUsingDeclaration;
+import org.eclipse.cdt.core.parser.ast.IASTUsingDirective;
+import org.eclipse.cdt.core.parser.ast.IASTVariable;
+import org.eclipse.cdt.core.parser.ast.IASTVariableReference;
+
+/**
+ *
+ */
+public class SourceElementRequestorAdapter implements ISourceElementRequestor {
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#acceptAbstractTypeSpecDeclaration(org.eclipse.cdt.core.parser.ast.IASTAbstractTypeSpecifierDeclaration)
+ */
+ public void acceptAbstractTypeSpecDeclaration(IASTAbstractTypeSpecifierDeclaration abstractDeclaration) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#acceptASMDefinition(org.eclipse.cdt.core.parser.ast.IASTASMDefinition)
+ */
+ public void acceptASMDefinition(IASTASMDefinition asmDefinition) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#acceptClassReference(org.eclipse.cdt.core.parser.ast.IASTClassReference)
+ */
+ public void acceptClassReference(IASTClassReference reference) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#acceptElaboratedForewardDeclaration(org.eclipse.cdt.core.parser.ast.IASTElaboratedTypeSpecifier)
+ */
+ public void acceptElaboratedForewardDeclaration(IASTElaboratedTypeSpecifier elaboratedType) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#acceptEnumerationReference(org.eclipse.cdt.core.parser.ast.IASTEnumerationReference)
+ */
+ public void acceptEnumerationReference(IASTEnumerationReference reference) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#acceptEnumerationSpecifier(org.eclipse.cdt.core.parser.ast.IASTEnumerationSpecifier)
+ */
+ public void acceptEnumerationSpecifier(IASTEnumerationSpecifier enumeration) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#acceptField(org.eclipse.cdt.core.parser.ast.IASTField)
+ */
+ public void acceptField(IASTField field) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#acceptFieldReference(org.eclipse.cdt.core.parser.ast.IASTFieldReference)
+ */
+ public void acceptFieldReference(IASTFieldReference reference) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#acceptFunctionDeclaration(org.eclipse.cdt.core.parser.ast.IASTFunction)
+ */
+ public void acceptFunctionDeclaration(IASTFunction function) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#acceptFunctionReference(org.eclipse.cdt.core.parser.ast.IASTFunctionReference)
+ */
+ public void acceptFunctionReference(IASTFunctionReference reference) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#acceptMacro(org.eclipse.cdt.core.parser.ast.IASTMacro)
+ */
+ public void acceptMacro(IASTMacro macro) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#acceptMethodDeclaration(org.eclipse.cdt.core.parser.ast.IASTMethod)
+ */
+ public void acceptMethodDeclaration(IASTMethod method) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#acceptMethodReference(org.eclipse.cdt.core.parser.ast.IASTMethodReference)
+ */
+ public void acceptMethodReference(IASTMethodReference reference) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#acceptNamespaceReference(org.eclipse.cdt.core.parser.ast.IASTNamespaceReference)
+ */
+ public void acceptNamespaceReference(IASTNamespaceReference reference) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#acceptProblem(org.eclipse.cdt.core.parser.IProblem)
+ */
+ public void acceptProblem(IProblem problem) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#acceptTypedefDeclaration(org.eclipse.cdt.core.parser.ast.IASTTypedefDeclaration)
+ */
+ public void acceptTypedefDeclaration(IASTTypedefDeclaration typedef) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#acceptTypedefReference(org.eclipse.cdt.core.parser.ast.IASTTypedefReference)
+ */
+ public void acceptTypedefReference(IASTTypedefReference reference) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#acceptUsingDeclaration(org.eclipse.cdt.core.parser.ast.IASTUsingDeclaration)
+ */
+ public void acceptUsingDeclaration(IASTUsingDeclaration usageDeclaration) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#acceptUsingDirective(org.eclipse.cdt.core.parser.ast.IASTUsingDirective)
+ */
+ public void acceptUsingDirective(IASTUsingDirective usageDirective) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#acceptVariable(org.eclipse.cdt.core.parser.ast.IASTVariable)
+ */
+ public void acceptVariable(IASTVariable variable) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#acceptVariableReference(org.eclipse.cdt.core.parser.ast.IASTVariableReference)
+ */
+ public void acceptVariableReference(IASTVariableReference reference) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#enterClassSpecifier(org.eclipse.cdt.core.parser.ast.IASTClassSpecifier)
+ */
+ public void enterClassSpecifier(IASTClassSpecifier classSpecification) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#enterCompilationUnit(org.eclipse.cdt.core.parser.ast.IASTCompilationUnit)
+ */
+ public void enterCompilationUnit(IASTCompilationUnit compilationUnit) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#enterFunctionBody(org.eclipse.cdt.core.parser.ast.IASTFunction)
+ */
+ public void enterFunctionBody(IASTFunction function) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#enterInclusion(org.eclipse.cdt.core.parser.ast.IASTInclusion)
+ */
+ public void enterInclusion(IASTInclusion inclusion) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#enterLinkageSpecification(org.eclipse.cdt.core.parser.ast.IASTLinkageSpecification)
+ */
+ public void enterLinkageSpecification(IASTLinkageSpecification linkageSpec) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#enterMethodBody(org.eclipse.cdt.core.parser.ast.IASTMethod)
+ */
+ public void enterMethodBody(IASTMethod method) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#enterNamespaceDefinition(org.eclipse.cdt.core.parser.ast.IASTNamespaceDefinition)
+ */
+ public void enterNamespaceDefinition(IASTNamespaceDefinition namespaceDefinition) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#enterTemplateDeclaration(org.eclipse.cdt.core.parser.ast.IASTTemplateDeclaration)
+ */
+ public void enterTemplateDeclaration(IASTTemplateDeclaration declaration) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#enterTemplateInstantiation(org.eclipse.cdt.core.parser.ast.IASTTemplateInstantiation)
+ */
+ public void enterTemplateInstantiation(IASTTemplateInstantiation instantiation) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#enterTemplateSpecialization(org.eclipse.cdt.core.parser.ast.IASTTemplateSpecialization)
+ */
+ public void enterTemplateSpecialization(IASTTemplateSpecialization specialization) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#exitClassSpecifier(org.eclipse.cdt.core.parser.ast.IASTClassSpecifier)
+ */
+ public void exitClassSpecifier(IASTClassSpecifier classSpecification) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#exitCompilationUnit(org.eclipse.cdt.core.parser.ast.IASTCompilationUnit)
+ */
+ public void exitCompilationUnit(IASTCompilationUnit compilationUnit) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#exitFunctionBody(org.eclipse.cdt.core.parser.ast.IASTFunction)
+ */
+ public void exitFunctionBody(IASTFunction function) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#exitInclusion(org.eclipse.cdt.core.parser.ast.IASTInclusion)
+ */
+ public void exitInclusion(IASTInclusion inclusion) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#exitLinkageSpecification(org.eclipse.cdt.core.parser.ast.IASTLinkageSpecification)
+ */
+ public void exitLinkageSpecification(IASTLinkageSpecification linkageSpec) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#exitMethodBody(org.eclipse.cdt.core.parser.ast.IASTMethod)
+ */
+ public void exitMethodBody(IASTMethod method) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#exitNamespaceDefinition(org.eclipse.cdt.core.parser.ast.IASTNamespaceDefinition)
+ */
+ public void exitNamespaceDefinition(IASTNamespaceDefinition namespaceDefinition) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#exitTemplateDeclaration(org.eclipse.cdt.core.parser.ast.IASTTemplateDeclaration)
+ */
+ public void exitTemplateDeclaration(IASTTemplateDeclaration declaration) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#exitTemplateExplicitInstantiation(org.eclipse.cdt.core.parser.ast.IASTTemplateInstantiation)
+ */
+ public void exitTemplateExplicitInstantiation(IASTTemplateInstantiation instantiation) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#exitTemplateSpecialization(org.eclipse.cdt.core.parser.ast.IASTTemplateSpecialization)
+ */
+ public void exitTemplateSpecialization(IASTTemplateSpecialization specialization) {
+ }
+
+}