diff options
Diffstat (limited to 'core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/rewrite/changegenerator/remove/PointerInParameterTest.java')
-rw-r--r-- | core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/rewrite/changegenerator/remove/PointerInParameterTest.java | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/rewrite/changegenerator/remove/PointerInParameterTest.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/rewrite/changegenerator/remove/PointerInParameterTest.java new file mode 100644 index 00000000000..4ba51c164c9 --- /dev/null +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/rewrite/changegenerator/remove/PointerInParameterTest.java @@ -0,0 +1,74 @@ +/******************************************************************************* + * Copyright (c) 2008 Institute for Software, HSR Hochschule fuer Technik + * Rapperswil, University of applied sciences and others + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Institute for Software - initial API and implementation + *******************************************************************************/ +package org.eclipse.cdt.core.parser.tests.rewrite.changegenerator.remove; + +import junit.framework.Test; + +import org.eclipse.cdt.core.dom.ast.IASTDeclarator; +import org.eclipse.cdt.core.dom.ast.IASTParameterDeclaration; +import org.eclipse.cdt.core.dom.ast.IASTPointerOperator; +import org.eclipse.cdt.core.dom.ast.cpp.CPPASTVisitor; +import org.eclipse.cdt.core.parser.tests.rewrite.changegenerator.ChangeGeneratorTest; +import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTFunctionDeclarator; +import org.eclipse.cdt.internal.core.dom.rewrite.ASTModification; +import org.eclipse.cdt.internal.core.dom.rewrite.ASTModificationStore; +import org.eclipse.cdt.internal.core.dom.rewrite.ASTModification.ModificationKind; + +public class PointerInParameterTest extends ChangeGeneratorTest { + + public PointerInParameterTest(){ + super("Remove Pointer in Parameter"); //$NON-NLS-1$ + } + + @Override + protected void setUp() throws Exception { + source = "void foo(int *parameter){\n}\n\n"; //$NON-NLS-1$ + expectedSource = "void foo(int parameter){\n}\n\n"; //$NON-NLS-1$ + super.setUp(); + } + + + public static Test suite() { + return new PointerInParameterTest(); + } + + @Override + protected CPPASTVisitor createModificator( + final ASTModificationStore modStore) { + return new CPPASTVisitor() { + { + shouldVisitDeclarators = true; + } + + @Override + public int visit(IASTDeclarator declarator) { + if (declarator instanceof CPPASTFunctionDeclarator) { + CPPASTFunctionDeclarator functionDeclarator = (CPPASTFunctionDeclarator)declarator; + IASTParameterDeclaration[] parameters = functionDeclarator.getParameters(); + for(IASTParameterDeclaration curParam : parameters){ + if(String.valueOf(curParam.getDeclarator().getName().toCharArray()).equals("parameter")){ //$NON-NLS-1$ + IASTPointerOperator pointer = curParam.getDeclarator().getPointerOperators()[0]; + ASTModification modification = new ASTModification(ModificationKind.REPLACE, pointer, null, null); + modStore.storeModification(null, modification); + } + } + } + + + return PROCESS_CONTINUE; + } + + }; + } + + +} |