mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
Cosmetics.
This commit is contained in:
parent
d8d335dbf8
commit
0177053e2b
9 changed files with 107 additions and 158 deletions
|
@ -26,7 +26,6 @@ import org.eclipse.cdt.internal.core.dom.rewrite.commenthandler.NodeCommentMap;
|
|||
* @author Emanuel Graf
|
||||
*/
|
||||
public class ASTWriter {
|
||||
private ChangeGeneratorWriterVisitor transformationVisitor;
|
||||
private ASTModificationStore modificationStore = new ASTModificationStore();
|
||||
private String givenIndentation = ""; //$NON-NLS-1$
|
||||
|
||||
|
@ -76,14 +75,12 @@ public class ASTWriter {
|
|||
*/
|
||||
public String write(IASTNode rootNode, String fileScope, NodeCommentMap commentMap)
|
||||
throws ProblemRuntimeException {
|
||||
transformationVisitor = new ChangeGeneratorWriterVisitor(modificationStore, givenIndentation,
|
||||
fileScope, commentMap);
|
||||
ChangeGeneratorWriterVisitor transformationVisitor = new ChangeGeneratorWriterVisitor(
|
||||
modificationStore, givenIndentation, fileScope, commentMap);
|
||||
if (rootNode != null) {
|
||||
rootNode.accept(transformationVisitor);
|
||||
}
|
||||
String str = transformationVisitor.toString();
|
||||
transformationVisitor.cleanCache();
|
||||
return str;
|
||||
return transformationVisitor.toString();
|
||||
}
|
||||
|
||||
public void setModificationStore(ASTModificationStore modificationStore) {
|
||||
|
|
|
@ -217,14 +217,13 @@ public class DeclSpecWriter extends NodeWriter {
|
|||
scribe.print('{');
|
||||
scribe.printSpace();
|
||||
IASTEnumerator[] enums = enumSpec.getEnumerators();
|
||||
for (int i = 0; i< enums.length;++i) {
|
||||
for (int i = 0; i < enums.length; ++i) {
|
||||
writeEnumerator(enums[i]);
|
||||
if (i+1< enums.length) {
|
||||
if (i + 1 < enums.length) {
|
||||
scribe.print(NodeWriter.COMMA_SPACE);
|
||||
}
|
||||
}
|
||||
scribe.print('}');
|
||||
|
||||
}
|
||||
|
||||
private void writeEnumerator(IASTEnumerator enumerator) {
|
||||
|
@ -246,9 +245,9 @@ public class DeclSpecWriter extends NodeWriter {
|
|||
ICPPASTBaseSpecifier[] baseSpecifiers = cppComp.getBaseSpecifiers();
|
||||
if (baseSpecifiers.length > 0) {
|
||||
scribe.print(SPACE_COLON_SPACE);
|
||||
for (int i = 0; i < baseSpecifiers.length;++i) {
|
||||
for (int i = 0; i < baseSpecifiers.length; ++i) {
|
||||
writeBaseSpecifiers(baseSpecifiers[i]);
|
||||
if (i+1 < baseSpecifiers.length) {
|
||||
if (i + 1 < baseSpecifiers.length) {
|
||||
scribe.print(COMMA_SPACE);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,8 +7,8 @@
|
|||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Institute for Software - initial API and implementation
|
||||
* Markus Schorn (Wind River Systems)
|
||||
* Institute for Software - initial API and implementation
|
||||
* Markus Schorn (Wind River Systems)
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.internal.core.dom.rewrite.astwriter;
|
||||
|
||||
|
@ -32,23 +32,18 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTReferenceOperator;
|
|||
import org.eclipse.cdt.core.dom.ast.gnu.c.ICASTKnRFunctionDeclarator;
|
||||
import org.eclipse.cdt.internal.core.dom.rewrite.commenthandler.NodeCommentMap;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* Generates source code of declarator nodes. The actual string operations are delegated
|
||||
* to the <code>Scribe</code> class.
|
||||
* to the {@link Scribe} class.
|
||||
*
|
||||
* @see Scribe
|
||||
* @see IASTDeclarator
|
||||
* @author Emanuel Graf IFS
|
||||
*
|
||||
*/
|
||||
public class DeclaratorWriter extends NodeWriter {
|
||||
|
||||
private static final String AMPERSAND_SPACE = "& "; //$NON-NLS-1$
|
||||
private static final String AMPERSAND__AMPERSAND_SPACE = "&& "; //$NON-NLS-1$
|
||||
private static final String STAR_SPACE = "* "; //$NON-NLS-1$
|
||||
private static final String PURE_VIRTUAL = " =0"; //$NON-NLS-1$
|
||||
private static final String PURE_VIRTUAL = " = 0"; //$NON-NLS-1$
|
||||
private static final String MUTABLE = "mutable"; //$NON-NLS-1$
|
||||
private static final String ARROW_OPERATOR = "->"; //$NON-NLS-1$
|
||||
|
||||
|
@ -59,17 +54,17 @@ public class DeclaratorWriter extends NodeWriter {
|
|||
protected void writeDeclarator(IASTDeclarator declarator) {
|
||||
if (declarator instanceof IASTStandardFunctionDeclarator) {
|
||||
writeFunctionDeclarator((IASTStandardFunctionDeclarator) declarator);
|
||||
}else if (declarator instanceof IASTArrayDeclarator) {
|
||||
} else if (declarator instanceof IASTArrayDeclarator) {
|
||||
writeArrayDeclarator((IASTArrayDeclarator) declarator);
|
||||
}else if (declarator instanceof IASTFieldDeclarator) {
|
||||
} else if (declarator instanceof IASTFieldDeclarator) {
|
||||
writeFieldDeclarator((IASTFieldDeclarator) declarator);
|
||||
}else if (declarator instanceof ICASTKnRFunctionDeclarator) {
|
||||
} else if (declarator instanceof ICASTKnRFunctionDeclarator) {
|
||||
writeCKnRFunctionDeclarator((ICASTKnRFunctionDeclarator) declarator);
|
||||
}else{
|
||||
} else {
|
||||
writeDefaultDeclarator(declarator);
|
||||
}
|
||||
|
||||
if(hasTrailingComments(declarator)) {
|
||||
if (hasTrailingComments(declarator)) {
|
||||
writeTrailingComments(declarator, false);
|
||||
}
|
||||
}
|
||||
|
@ -81,7 +76,7 @@ public class DeclaratorWriter extends NodeWriter {
|
|||
name.accept(visitor);
|
||||
writeNestedDeclarator(declarator);
|
||||
IASTInitializer init = getInitializer(declarator);
|
||||
if(init!= null) {
|
||||
if (init != null) {
|
||||
init.accept(visitor);
|
||||
}
|
||||
}
|
||||
|
@ -109,7 +104,7 @@ public class DeclaratorWriter extends NodeWriter {
|
|||
|
||||
private void writeInitializer(IASTStandardFunctionDeclarator funcDec) {
|
||||
IASTInitializer init = getInitializer(funcDec);
|
||||
if(init != null) {
|
||||
if (init != null) {
|
||||
init.accept(visitor);
|
||||
}
|
||||
}
|
||||
|
@ -123,7 +118,7 @@ public class DeclaratorWriter extends NodeWriter {
|
|||
|
||||
private void writeNestedDeclarator(IASTDeclarator funcDec) {
|
||||
IASTDeclarator nestedDeclarator = funcDec.getNestedDeclarator();
|
||||
if(nestedDeclarator != null) {
|
||||
if (nestedDeclarator != null) {
|
||||
scribe.print('(');
|
||||
nestedDeclarator.accept(visitor);
|
||||
scribe.print(')');
|
||||
|
@ -143,7 +138,7 @@ public class DeclaratorWriter extends NodeWriter {
|
|||
scribe.printSpace();
|
||||
scribe.print(MUTABLE);
|
||||
}
|
||||
if(funcDec.isPureVirtual()) {
|
||||
if (funcDec.isPureVirtual()) {
|
||||
scribe.print(PURE_VIRTUAL);
|
||||
}
|
||||
writeExceptionSpecification(funcDec, funcDec.getExceptionSpecification());
|
||||
|
@ -167,8 +162,8 @@ public class DeclaratorWriter extends NodeWriter {
|
|||
|
||||
protected void writeParameterDeclarations(IASTStandardFunctionDeclarator funcDec, IASTParameterDeclaration[] paraDecls) {
|
||||
writeNodeList(paraDecls);
|
||||
if(funcDec.takesVarArgs()){
|
||||
if(paraDecls.length > 0){
|
||||
if (funcDec.takesVarArgs()) {
|
||||
if (paraDecls.length > 0) {
|
||||
scribe.print(COMMA_SPACE);
|
||||
}
|
||||
scribe.print(VAR_ARGS);
|
||||
|
@ -178,7 +173,7 @@ public class DeclaratorWriter extends NodeWriter {
|
|||
private void writePointer(IASTPointer operator) {
|
||||
if (operator instanceof ICPPASTPointerToMember) {
|
||||
ICPPASTPointerToMember pointerToMemberOp = (ICPPASTPointerToMember) operator;
|
||||
if(pointerToMemberOp.getName() != null){
|
||||
if (pointerToMemberOp.getName() != null) {
|
||||
pointerToMemberOp.getName().accept(visitor);
|
||||
scribe.print(STAR_SPACE);
|
||||
}
|
||||
|
@ -186,7 +181,6 @@ public class DeclaratorWriter extends NodeWriter {
|
|||
scribe.print('*');
|
||||
}
|
||||
|
||||
|
||||
if (operator.isConst()) {
|
||||
scribe.printStringSpace(CONST);
|
||||
}
|
||||
|
@ -222,7 +216,7 @@ public class DeclaratorWriter extends NodeWriter {
|
|||
IASTArrayModifier[] arrMods = arrDecl.getArrayModifiers();
|
||||
writeArrayModifiers(arrDecl, arrMods);
|
||||
IASTInitializer initializer = getInitializer(arrDecl);
|
||||
if(initializer != null) {
|
||||
if (initializer != null) {
|
||||
initializer.accept(visitor);
|
||||
}
|
||||
}
|
||||
|
@ -255,7 +249,7 @@ public class DeclaratorWriter extends NodeWriter {
|
|||
scribe.printSpace();
|
||||
fieldDecl.getBitFieldSize().accept(visitor);
|
||||
IASTInitializer initializer = getInitializer(fieldDecl);
|
||||
if(initializer != null) {
|
||||
if (initializer != null) {
|
||||
initializer.accept(visitor);
|
||||
}
|
||||
}
|
||||
|
@ -267,17 +261,15 @@ public class DeclaratorWriter extends NodeWriter {
|
|||
scribe.print(')');
|
||||
scribe.newLine();
|
||||
writeKnRParameterDeclarations(knrFunct, knrFunct.getParameterDeclarations());
|
||||
|
||||
|
||||
}
|
||||
|
||||
protected void writeKnRParameterDeclarations(
|
||||
ICASTKnRFunctionDeclarator knrFunct, IASTDeclaration[] knrDeclarations) {
|
||||
protected void writeKnRParameterDeclarations(ICASTKnRFunctionDeclarator knrFunct,
|
||||
IASTDeclaration[] knrDeclarations) {
|
||||
for (int i = 0; i < knrDeclarations.length; ++i) {
|
||||
scribe.noNewLines();
|
||||
knrDeclarations[i].accept(visitor);
|
||||
scribe.newLines();
|
||||
if(i + 1 < knrDeclarations.length) {
|
||||
if (i + 1 < knrDeclarations.length) {
|
||||
scribe.newLine();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Institute for Software - initial API and implementation
|
||||
* Institute for Software - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.internal.core.dom.rewrite.astwriter;
|
||||
|
||||
|
@ -21,15 +21,12 @@ import org.eclipse.cdt.core.dom.ast.IASTNodeLocation;
|
|||
import org.eclipse.cdt.internal.core.dom.rewrite.commenthandler.NodeCommentMap;
|
||||
|
||||
/**
|
||||
*
|
||||
* Base class for node writers. This class contains methods and string constants
|
||||
* used by multiple node writers.
|
||||
*
|
||||
* @author Emanuel Graf IFS
|
||||
*
|
||||
*/
|
||||
public class NodeWriter {
|
||||
|
||||
protected Scribe scribe;
|
||||
protected ASTVisitor visitor;
|
||||
protected NodeCommentMap commentMap;
|
||||
|
@ -72,31 +69,37 @@ public class NodeWriter {
|
|||
}
|
||||
|
||||
protected void writeNodeList(IASTNode[] nodes) {
|
||||
for(int i = 0; i < nodes.length; ++i) {
|
||||
for (int i = 0; i < nodes.length; ++i) {
|
||||
nodes[i].accept(visitor);
|
||||
if(i + 1 < nodes.length) {
|
||||
if (i + 1 < nodes.length) {
|
||||
scribe.print(COMMA_SPACE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected void visitNodeIfNotNull(IASTNode node){
|
||||
if(node != null){
|
||||
protected void visitNodeIfNotNull(IASTNode node) {
|
||||
if (node != null) {
|
||||
node.accept(visitor);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
protected void writeTrailingComments(IASTNode node) {
|
||||
//default write newLine
|
||||
// Default is to write a new line after trailing comments.
|
||||
writeTrailingComments(node, true);
|
||||
}
|
||||
|
||||
protected boolean hasTrailingComments(IASTNode node){
|
||||
if(getTrailingComments(node).size()>0) {
|
||||
return true;
|
||||
protected void writeTrailingComments(IASTNode node, boolean newLine) {
|
||||
for (IASTComment comment : getTrailingComments(node)) {
|
||||
scribe.printSpace();
|
||||
scribe.print(comment.getComment());
|
||||
if (newLine) {
|
||||
scribe.newLine();
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
protected boolean hasTrailingComments(IASTNode node) {
|
||||
return !getTrailingComments(node).isEmpty();
|
||||
}
|
||||
|
||||
private ArrayList<IASTComment> getTrailingComments(IASTNode node) {
|
||||
|
@ -109,21 +112,8 @@ public class NodeWriter {
|
|||
return trailingComments;
|
||||
}
|
||||
|
||||
protected void writeTrailingComments(IASTNode node, boolean newLine) {
|
||||
for(IASTComment comment : getTrailingComments(node)) {
|
||||
scribe.printSpace();
|
||||
scribe.print(comment.getComment());
|
||||
if(newLine) {
|
||||
scribe.newLine();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected boolean hasFreestandingComments(IASTNode node){
|
||||
if(getFreestandingComments(node).size()>0) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
protected boolean hasFreestandingComments(IASTNode node) {
|
||||
return !getFreestandingComments(node).isEmpty();
|
||||
}
|
||||
|
||||
private ArrayList<IASTComment> getFreestandingComments(IASTNode node) {
|
||||
|
@ -137,7 +127,7 @@ public class NodeWriter {
|
|||
}
|
||||
|
||||
protected void writeFreeStandingComments(IASTNode node) {
|
||||
for(IASTComment comment : getFreestandingComments(node)) {
|
||||
for (IASTComment comment : getFreestandingComments(node)) {
|
||||
scribe.print(comment.getComment());
|
||||
scribe.newLine();
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Institute for Software - initial API and implementation
|
||||
* Institute for Software - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.internal.core.dom.rewrite.astwriter;
|
||||
|
||||
|
@ -46,17 +46,14 @@ import org.eclipse.cdt.internal.core.dom.rewrite.util.FileHelper;
|
|||
import org.eclipse.core.resources.IFile;
|
||||
|
||||
/**
|
||||
*
|
||||
* Generates source code of statement nodes. The actual string operations are delegated
|
||||
* to the <code>Scribe</code> class.
|
||||
*
|
||||
* @see Scribe
|
||||
* @see IASTStatement
|
||||
* @author Emanuel Graf IFS
|
||||
*
|
||||
*/
|
||||
public class StatementWriter extends NodeWriter{
|
||||
|
||||
public class StatementWriter extends NodeWriter {
|
||||
private static final String DEFAULT = "default:"; //$NON-NLS-1$
|
||||
private static final String CASE = "case "; //$NON-NLS-1$
|
||||
private static final String WHILE = "while("; //$NON-NLS-1$
|
||||
|
@ -85,7 +82,7 @@ public class StatementWriter extends NodeWriter{
|
|||
/**
|
||||
*
|
||||
* @param statement
|
||||
* @param newLine if true print a newline if statment usually have one.
|
||||
* @param newLine if true print a newline if statement usually have one.
|
||||
* @return {@link ASTVisitor#PROCESS_SKIP}
|
||||
*/
|
||||
protected int writeStatement(IASTStatement statement, boolean newLine) {
|
||||
|
@ -114,14 +111,14 @@ public class StatementWriter extends NodeWriter{
|
|||
} else if (statement instanceof IASTCaseStatement) {
|
||||
writeCaseStatement((IASTCaseStatement) statement);
|
||||
// usually newLine
|
||||
}else if (statement instanceof IASTDefaultStatement) {
|
||||
} else if (statement instanceof IASTDefaultStatement) {
|
||||
writeDefaultStatement((IASTDefaultStatement)statement);
|
||||
} else if (statement instanceof IASTContinueStatement){
|
||||
} else if (statement instanceof IASTContinueStatement) {
|
||||
writeContinueStatement((IASTContinueStatement)statement);
|
||||
// usually newLine
|
||||
} else if (statement instanceof IASTCompoundStatement) {
|
||||
writeCompoundStatement((IASTCompoundStatement) statement);
|
||||
if(compoundNoNewLine){
|
||||
if (compoundNoNewLine) {
|
||||
newLine = false;
|
||||
compoundNoNewLine = false;
|
||||
}
|
||||
|
@ -156,13 +153,10 @@ public class StatementWriter extends NodeWriter{
|
|||
throw new ProblemRuntimeException((IASTProblemStatement)statement);
|
||||
}
|
||||
|
||||
if(hasTrailingComments(statement)) {
|
||||
if (hasTrailingComments(statement)) {
|
||||
writeTrailingComments(statement, newLine);
|
||||
}
|
||||
else{
|
||||
if(newLine){
|
||||
scribe.newLine();
|
||||
}
|
||||
} else if (newLine) {
|
||||
scribe.newLine();
|
||||
}
|
||||
|
||||
return ASTVisitor.PROCESS_SKIP;
|
||||
|
@ -186,15 +180,14 @@ public class StatementWriter extends NodeWriter{
|
|||
if (forStatment instanceof ICPPASTForStatement) {
|
||||
ICPPASTForStatement cppForStatment = (ICPPASTForStatement) forStatment;
|
||||
IASTDeclaration cppConditionDeclaration = cppForStatment.getConditionDeclaration();
|
||||
if(cppConditionDeclaration == null) {
|
||||
if (cppConditionDeclaration == null) {
|
||||
visitNodeIfNotNull(cppForStatment.getConditionExpression());
|
||||
scribe.printSemicolon();
|
||||
} else {
|
||||
cppConditionDeclaration.accept(visitor);
|
||||
}
|
||||
|
||||
} else {
|
||||
if(forStatment.getConditionExpression() != null) {
|
||||
if (forStatment.getConditionExpression() != null) {
|
||||
forStatment.getConditionExpression().accept(visitor);
|
||||
scribe.printSemicolon();
|
||||
}
|
||||
|
@ -225,7 +218,7 @@ public class StatementWriter extends NodeWriter{
|
|||
if (ifStatement instanceof ICPPASTIfStatement) {
|
||||
ICPPASTIfStatement cppIfStatment = (ICPPASTIfStatement) ifStatement;
|
||||
|
||||
if(cppIfStatment.getConditionDeclaration() == null) {
|
||||
if (cppIfStatment.getConditionDeclaration() == null) {
|
||||
cppIfStatment.getConditionExpression().accept(visitor);
|
||||
} else {
|
||||
writeDeclarationWithoutSemicolon(cppIfStatment.getConditionDeclaration());
|
||||
|
@ -238,17 +231,16 @@ public class StatementWriter extends NodeWriter{
|
|||
scribe.newLines();
|
||||
nextCompoundNoNewLine();
|
||||
IASTStatement elseClause = ifStatement.getElseClause();
|
||||
writeBodyStatement(ifStatement.getThenClause(), elseClause != null ? true : false);
|
||||
writeBodyStatement(ifStatement.getThenClause(), elseClause != null);
|
||||
|
||||
if(elseClause != null){
|
||||
if (elseClause != null) {
|
||||
scribe.print(ELSE);
|
||||
nextCompoundNoNewLine();
|
||||
writeBodyStatement(elseClause, false);
|
||||
}
|
||||
}
|
||||
|
||||
protected void writeDeclarationWithoutSemicolon(
|
||||
IASTDeclaration declaration) {
|
||||
protected void writeDeclarationWithoutSemicolon(IASTDeclaration declaration) {
|
||||
declWriter.writeDeclaration(declaration, false);
|
||||
}
|
||||
|
||||
|
@ -279,7 +271,7 @@ public class StatementWriter extends NodeWriter{
|
|||
scribe.noNewLines();
|
||||
scribe.print(RETURN);
|
||||
IASTExpression returnValue = returnStatement.getReturnValue();
|
||||
if(returnValue != null){
|
||||
if (returnValue != null) {
|
||||
scribe.printSpaces(1);
|
||||
returnValue.accept(visitor);
|
||||
}
|
||||
|
@ -327,7 +319,7 @@ public class StatementWriter extends NodeWriter{
|
|||
scribe.noNewLines();
|
||||
if (whileStatment instanceof ICPPASTWhileStatement) {
|
||||
ICPPASTWhileStatement cppWhileStatment = (ICPPASTWhileStatement) whileStatment;
|
||||
if(cppWhileStatment.getConditionDeclaration() == null) {
|
||||
if (cppWhileStatment.getConditionDeclaration() == null) {
|
||||
cppWhileStatment.getCondition().accept(visitor);
|
||||
} else {
|
||||
writeDeclarationWithoutSemicolon(cppWhileStatment.getConditionDeclaration());
|
||||
|
@ -344,7 +336,7 @@ public class StatementWriter extends NodeWriter{
|
|||
private void writeCaseStatement(IASTCaseStatement caseStatement) {
|
||||
nextCompoundIndentationLevelOneMore();
|
||||
|
||||
if(!switchIsNew){
|
||||
if (!switchIsNew) {
|
||||
scribe.decrementIndentationLevel();
|
||||
}
|
||||
scribe.print(CASE);
|
||||
|
@ -361,7 +353,7 @@ public class StatementWriter extends NodeWriter{
|
|||
scribe.noNewLines();
|
||||
if (switchStatement instanceof ICPPASTSwitchStatement) {
|
||||
ICPPASTSwitchStatement cppSwitchStatement = (ICPPASTSwitchStatement) switchStatement;
|
||||
if(cppSwitchStatement.getControllerDeclaration() == null) {
|
||||
if (cppSwitchStatement.getControllerDeclaration() == null) {
|
||||
cppSwitchStatement.getControllerExpression().accept(visitor);
|
||||
} else {
|
||||
declWriter.writeDeclaration(cppSwitchStatement.getControllerDeclaration(), false);
|
||||
|
@ -380,7 +372,7 @@ public class StatementWriter extends NodeWriter{
|
|||
private void writeDefaultStatement(IASTDefaultStatement defaultStatement) {
|
||||
nextCompoundIndentationLevelOneMore();
|
||||
|
||||
if(!switchIsNew){
|
||||
if (!switchIsNew) {
|
||||
scribe.decrementIndentationLevel();
|
||||
}
|
||||
scribe.print(DEFAULT);
|
||||
|
@ -395,11 +387,11 @@ public class StatementWriter extends NodeWriter{
|
|||
statements.accept(visitor);
|
||||
}
|
||||
|
||||
if(hasFreestandingComments(compoundStatement)) {
|
||||
if (hasFreestandingComments(compoundStatement)) {
|
||||
writeFreeStandingComments(compoundStatement);
|
||||
}
|
||||
|
||||
if(decrementIndentationLevelOneMore){
|
||||
if (decrementIndentationLevelOneMore) {
|
||||
scribe.decrementIndentationLevel();
|
||||
decrementIndentationLevelOneMore = false;
|
||||
}
|
||||
|
@ -411,14 +403,14 @@ public class StatementWriter extends NodeWriter{
|
|||
}
|
||||
|
||||
protected void writeBodyStatement(IASTStatement statement, boolean isDoStatement) {
|
||||
if (statement instanceof IASTCompoundStatement){
|
||||
if (statement instanceof IASTCompoundStatement) {
|
||||
//TODO hsr existiert noch eine methode
|
||||
statement.accept(visitor);
|
||||
if(!isDoStatement){
|
||||
if (!isDoStatement) {
|
||||
scribe.newLine();
|
||||
}
|
||||
compoundNoNewLine = false;
|
||||
} else if (statement instanceof IASTNullStatement){
|
||||
} else if (statement instanceof IASTNullStatement) {
|
||||
statement.accept(visitor);
|
||||
scribe.newLine();
|
||||
} else {
|
||||
|
@ -432,18 +424,16 @@ public class StatementWriter extends NodeWriter{
|
|||
|
||||
/**
|
||||
* Write no new Line after the next Compound-Statement
|
||||
*
|
||||
*/
|
||||
protected void nextCompoundNoNewLine(){
|
||||
protected void nextCompoundNoNewLine() {
|
||||
compoundNoNewLine = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Indent one time more at the end (before the closing Brackets)
|
||||
* of a Compound-Statement
|
||||
*
|
||||
*/
|
||||
protected void nextCompoundIndentationLevelOneMore(){
|
||||
protected void nextCompoundIndentationLevelOneMore() {
|
||||
decrementIndentationLevelOneMore = true;
|
||||
}
|
||||
|
||||
|
@ -451,7 +441,7 @@ public class StatementWriter extends NodeWriter{
|
|||
IFile file = FileHelper.getFileFromNode(statement);
|
||||
int offset = statement.getFileLocation().getNodeOffset();
|
||||
int length = statement.getFileLocation().getNodeLength();
|
||||
String code =FileContentHelper.getContent(file, offset, length);
|
||||
String code = FileContentHelper.getContent(file, offset, length);
|
||||
|
||||
scribe.println(code);
|
||||
return ASTVisitor.PROCESS_SKIP;
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Institute for Software - initial API and implementation
|
||||
* Institute for Software - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.internal.core.dom.rewrite.changegenerator;
|
||||
|
||||
|
@ -28,30 +28,28 @@ import org.eclipse.cdt.internal.core.dom.rewrite.astwriter.ContainerNode;
|
|||
import org.eclipse.cdt.internal.core.dom.rewrite.commenthandler.NodeCommentMap;
|
||||
|
||||
public class ASTModificationHelper {
|
||||
|
||||
private final ModificationScopeStack modificationStore;
|
||||
|
||||
public ASTModificationHelper(ModificationScopeStack stack) {
|
||||
this.modificationStore = stack;
|
||||
}
|
||||
|
||||
|
||||
public <T extends IASTNode> T[] createModifiedChildArray(IASTNode parent, T[] unmodifiedChildren, Class<T> clazz, NodeCommentMap commentMap){
|
||||
public <T extends IASTNode> T[] createModifiedChildArray(IASTNode parent, T[] unmodifiedChildren, Class<T> clazz, NodeCommentMap commentMap) {
|
||||
ArrayList<T> modifiedChildren = new ArrayList<T>(Arrays.asList(unmodifiedChildren));
|
||||
|
||||
for(ASTModification parentModification : modificationsForNode(parent)){
|
||||
switch(parentModification.getKind()){
|
||||
for (ASTModification parentModification : modificationsForNode(parent)) {
|
||||
switch (parentModification.getKind()) {
|
||||
case APPEND_CHILD:
|
||||
IASTNode newNode = parentModification.getNewNode();
|
||||
T appendedTNode = cast(newNode, clazz);
|
||||
if (appendedTNode != null) {
|
||||
modifiedChildren.add(appendedTNode);
|
||||
}
|
||||
else if (newNode instanceof ContainerNode){
|
||||
else if (newNode instanceof ContainerNode) {
|
||||
ContainerNode nodeContainer = (ContainerNode) newNode;
|
||||
for(IASTNode currentNode : nodeContainer.getNodes()){
|
||||
for (IASTNode currentNode : nodeContainer.getNodes()) {
|
||||
T tnode= cast(currentNode, clazz);
|
||||
if(tnode != null){
|
||||
if (tnode != null) {
|
||||
modifiedChildren.add(tnode);
|
||||
}
|
||||
}
|
||||
|
@ -145,42 +143,35 @@ public class ASTModificationHelper {
|
|||
|
||||
@SuppressWarnings("unchecked")
|
||||
private <T> T cast(IASTNode node, Class<T> clazz) {
|
||||
if (clazz.isInstance(node)){
|
||||
if (clazz.isInstance(node)) {
|
||||
return (T) node;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public List<ASTModification> modificationsForNode(
|
||||
IASTNode targetNode) {
|
||||
public List<ASTModification> modificationsForNode(IASTNode targetNode) {
|
||||
List<ASTModification> modificationsForNode;
|
||||
if(modificationStore.getModifiedNodes().contains(targetNode)){
|
||||
if (modificationStore.getModifiedNodes().contains(targetNode)) {
|
||||
modificationsForNode = modificationStore.getModificationsForNode(targetNode);
|
||||
}
|
||||
else{
|
||||
} else {
|
||||
modificationsForNode = Collections.emptyList();
|
||||
}
|
||||
return modificationsForNode;
|
||||
|
||||
return modificationsForNode;
|
||||
}
|
||||
|
||||
|
||||
public IASTInitializer getInitializer(IASTDeclarator decl) {
|
||||
IASTInitializer initializer = decl.getInitializer();
|
||||
|
||||
if(initializer != null){
|
||||
for(ASTModification childModification : modificationsForNode(initializer)){
|
||||
switch(childModification.getKind()){
|
||||
if (initializer != null) {
|
||||
for (ASTModification childModification : modificationsForNode(initializer)) {
|
||||
switch (childModification.getKind()) {
|
||||
case REPLACE:
|
||||
if(childModification.getNewNode() instanceof IASTInitializer){
|
||||
if (childModification.getNewNode() instanceof IASTInitializer) {
|
||||
return (IASTInitializer)childModification.getNewNode();
|
||||
} else if (childModification.getNewNode() == null) {
|
||||
return null;
|
||||
}
|
||||
throw new UnhandledASTModificationException(childModification);
|
||||
|
||||
|
||||
case INSERT_BEFORE:
|
||||
throw new UnhandledASTModificationException(childModification);
|
||||
|
||||
|
@ -188,13 +179,11 @@ public class ASTModificationHelper {
|
|||
throw new UnhandledASTModificationException(childModification);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for(ASTModification parentModification : modificationsForNode(decl)){
|
||||
if(parentModification.getKind() == ModificationKind.APPEND_CHILD){
|
||||
} else {
|
||||
for (ASTModification parentModification : modificationsForNode(decl)) {
|
||||
if (parentModification.getKind() == ModificationKind.APPEND_CHILD) {
|
||||
IASTNode newNode = parentModification.getNewNode();
|
||||
if(newNode instanceof IASTInitializer){
|
||||
if (newNode instanceof IASTInitializer) {
|
||||
return (IASTInitializer) newNode;
|
||||
}
|
||||
}
|
||||
|
@ -203,17 +192,15 @@ public class ASTModificationHelper {
|
|||
return initializer;
|
||||
}
|
||||
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public <T extends IASTNode> T getNodeAfterReplacement(T replacedNode) {
|
||||
List<ASTModification> modifications = modificationsForNode(replacedNode);
|
||||
for(ASTModification currentModification : modifications){
|
||||
try{
|
||||
if(currentModification.getKind() == ModificationKind.REPLACE){
|
||||
for (ASTModification currentModification : modifications) {
|
||||
try {
|
||||
if (currentModification.getKind() == ModificationKind.REPLACE) {
|
||||
return (T) currentModification.getNewNode();
|
||||
}
|
||||
}
|
||||
catch(ClassCastException e){
|
||||
} catch (ClassCastException e) {
|
||||
throw new UnhandledASTModificationException(currentModification);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -84,10 +84,8 @@ public class ChangeGeneratorWriterVisitor extends ASTWriterVisitor {
|
|||
this.fileScope = fileScope;
|
||||
this.shouldVisitTranslationUnit = true;
|
||||
this.stack = new ModificationScopeStack(modificationStore);
|
||||
declaratorWriter = new ModifiedASTDeclaratorWriter(scribe, this,
|
||||
stack, commentMap);
|
||||
expWriter = new ModifiedASTExpressionWriter(scribe, this, macroHandler,
|
||||
stack, commentMap);
|
||||
declaratorWriter = new ModifiedASTDeclaratorWriter(scribe, this, stack, commentMap);
|
||||
expWriter = new ModifiedASTExpressionWriter(scribe, this, macroHandler, stack, commentMap);
|
||||
statementWriter = new ModifiedASTStatementWriter(scribe, this, stack, commentMap);
|
||||
declSpecWriter = new ModifiedASTDeclSpecWriter(scribe, this, stack, commentMap);
|
||||
declarationWriter = new ModifiedASTDeclarationWriter(scribe, this, stack, commentMap);
|
||||
|
|
|
@ -7,8 +7,8 @@
|
|||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Institute for Software - initial API and implementation
|
||||
* Tom Ball (Google)
|
||||
* Institute for Software - initial API and implementation
|
||||
* Tom Ball (Google)
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.ui.tests.refactoring;
|
||||
|
||||
|
|
|
@ -41,10 +41,6 @@ public class ExtractFunctionRefactoringTest extends RefactoringTest {
|
|||
private boolean virtual;
|
||||
private static int nr = 1;
|
||||
|
||||
/**
|
||||
* @param name
|
||||
* @param files
|
||||
*/
|
||||
public ExtractFunctionRefactoringTest(String name, Collection<TestSourceFile> files) {
|
||||
super(name, files);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue