1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

Cosmetics.

This commit is contained in:
Sergey Prigogin 2011-11-14 17:56:59 -08:00
parent acd73fb7bc
commit 84cd2842eb
2 changed files with 13 additions and 42 deletions

View file

@ -8,7 +8,6 @@
* Contributors:
* Tomasz Wesolowski - initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.core.dom.rewrite;
import org.eclipse.cdt.core.dom.ast.IASTDeclSpecifier;
@ -18,8 +17,8 @@ import org.eclipse.cdt.core.dom.ast.IType;
import org.eclipse.cdt.internal.core.dom.rewrite.DeclarationGeneratorImpl;
/**
*
* This class handles the creation of {@link IASTDeclarator}s and {@link IASTDeclSpecifier}s basing on given type.
* This class handles the creation of {@link IASTDeclarator}s and {@link IASTDeclSpecifier}s
* for a given type.
*
* @author Tomasz Wesolowski
* @noextend This interface is not intended to be extended by clients.
@ -45,5 +44,4 @@ public abstract class DeclarationGenerator {
* @return the generated declarator
*/
public abstract IASTDeclarator createDeclaratorFromType(IType type, char[] name);
}

View file

@ -8,13 +8,13 @@
* Contributors:
* Tomasz Wesolowski - initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.internal.core.dom.rewrite;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.Map;
import org.eclipse.cdt.core.CCorePlugin;
import org.eclipse.cdt.core.dom.ast.ASTTypeUtil;
import org.eclipse.cdt.core.dom.ast.DOMException;
import org.eclipse.cdt.core.dom.ast.IASTArrayDeclarator;
@ -51,35 +51,23 @@ import org.eclipse.cdt.core.dom.rewrite.DeclarationGenerator;
import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPVisitor;
/**
*
* @author Tomasz Wesolowski
*
*/
public class DeclarationGeneratorImpl extends DeclarationGenerator {
private INodeFactory factory;
/**
* Creates a new generator using the given factory.
*
* @param factory
* a factory to use. If a C++ type is requested, it has to be an instance of
* @param factory The factory to use. If a C++ type is requested, it has to be an instance of
* {@link ICPPNodeFactory}.
*/
public DeclarationGeneratorImpl(INodeFactory factory) {
this.factory = factory;
}
/*
* (non-Javadoc)
*
* @see
* org.eclipse.cdt.core.dom.rewrite.IDeclarationGenerator#createDeclSpecFromType(org.eclipse.cdt.core.
* dom.ast.IType)
*/
@Override
public IASTDeclSpecifier createDeclSpecFromType(IType type) {
IASTDeclSpecifier returnedDeclSpec = null;
if (type instanceof IPointerType) {
@ -133,20 +121,11 @@ public class DeclarationGeneratorImpl extends DeclarationGenerator {
return returnedDeclSpec;
}
/*
* (non-Javadoc)
*
* @see
* org.eclipse.cdt.core.dom.rewrite.IDeclarationGenerator#createDeclaratorFromType(org.eclipse.cdt.core
* .dom.ast.IType, char[])
*/
@Override
public IASTDeclarator createDeclaratorFromType(IType type, char[] name) {
IASTDeclarator returnedDeclarator = null;
try {
// Addition of pointer operators has to be in reverse order, so it's deferred until the end
Map<IASTDeclarator, LinkedList<IASTPointerOperator>> pointerOperatorMap = new HashMap<IASTDeclarator, LinkedList<IASTPointerOperator>>();
@ -225,9 +204,8 @@ public class DeclarationGeneratorImpl extends DeclarationGenerator {
}
finalizePointerOperators(pointerOperatorMap);
} catch (DOMException e) {
e.printStackTrace();
CCorePlugin.log(e);
}
// Fallback
@ -273,7 +251,7 @@ public class DeclarationGeneratorImpl extends DeclarationGenerator {
if (type instanceof ICPPPointerToMemberType) {
String classStr = ASTTypeUtil.getType(((ICPPPointerToMemberType) type).getMemberOfClass());
IASTName newName = factory.newName((classStr + "::").toCharArray()); //$NON-NLS-1$
// any better way of getting class name from ICPPPointerToMemberType?
// Any better way of getting class name from ICPPPointerToMemberType?
ICPPASTPointerToMember member = ((ICPPNodeFactory) factory).newPointerToMember(newName);
member.setConst(((ICPPPointerToMemberType) type).isConst());
@ -286,8 +264,8 @@ public class DeclarationGeneratorImpl extends DeclarationGenerator {
return pointer;
} else {
ICPPReferenceType refType = (ICPPReferenceType) type;
ICPPASTReferenceOperator op = ((ICPPNodeFactory) factory).newReferenceOperator(refType
.isRValueReference());
ICPPASTReferenceOperator op =
((ICPPNodeFactory) factory).newReferenceOperator(refType.isRValueReference());
return op;
}
}
@ -303,14 +281,13 @@ public class DeclarationGeneratorImpl extends DeclarationGenerator {
private IASTDeclSpecifier getDeclSpecForTemplate(ICPPTemplateInstance type) {
IASTName name = getName(type);
if (factory instanceof ICPPNodeFactory) {
if (name instanceof ICPPASTQualifiedName) {
ICPPASTQualifiedName fullQualifiedName = (ICPPASTQualifiedName) name;
IASTName templateName = fullQualifiedName.getLastName();
ICPPASTTemplateId tempId = getTemplateId(type, templateName);
ICPPASTQualifiedName newQualifiedName = ((ICPPNodeFactory) factory)
.newQualifiedName();
ICPPASTQualifiedName newQualifiedName =
((ICPPNodeFactory) factory).newQualifiedName();
int nbQualifiedNames = fullQualifiedName.getNames().length;
if (nbQualifiedNames > 1) {
for (int i = 0; i < nbQualifiedNames - 1; i++) {
@ -320,7 +297,6 @@ public class DeclarationGeneratorImpl extends DeclarationGenerator {
newQualifiedName.addName(tempId);
return factory.newTypedefNameSpecifier(newQualifiedName);
} else {
IASTName templateName = getName(type);
ICPPASTTemplateId tempId = getTemplateId(type, templateName);
@ -352,12 +328,10 @@ public class DeclarationGeneratorImpl extends DeclarationGenerator {
char[][] qualifiedNameCharArray = CPPVisitor.getQualifiedNameCharArray(binding);
IASTName name;
if (qualifiedNameCharArray.length > 1) {
name = ((ICPPNodeFactory) factory).newQualifiedName();
for (char[] cs : qualifiedNameCharArray) {
((ICPPASTQualifiedName) name).addName(factory.newName(cs));
}
} else if (qualifiedNameCharArray.length == 1) {
name = factory.newName(qualifiedNameCharArray[0]);
} else {
@ -365,5 +339,4 @@ public class DeclarationGeneratorImpl extends DeclarationGenerator {
}
return name;
}
}