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

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

View file

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