mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
Cosmetics.
This commit is contained in:
parent
acd73fb7bc
commit
84cd2842eb
2 changed files with 13 additions and 42 deletions
|
@ -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);
|
||||||
|
|
||||||
}
|
}
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
Loading…
Add table
Reference in a new issue