2
// <copyright see="prj:///doc/copyright.txt"/>
3
// <license see="prj:///doc/license.txt"/>
4
// <owner name="Daniel Grunwald" email="daniel@danielgrunwald.de"/>
5
// <version>$Revision: 4482 $</version>
9
using ICSharpCode.OldNRefactory.Ast;
11
namespace ICSharpCode.OldNRefactory.Visitors
13
class RenameIdentifierVisitor : AbstractAstVisitor
15
protected StringComparer nameComparer;
16
protected string from, to;
18
public RenameIdentifierVisitor(string from, string to, StringComparer nameComparer)
20
this.nameComparer = nameComparer;
25
public override object VisitIdentifierExpression(IdentifierExpression identifierExpression, object data)
27
if (nameComparer.Equals(identifierExpression.Identifier, from)) {
28
identifierExpression.Identifier = to;
30
return base.VisitIdentifierExpression(identifierExpression, data);
34
sealed class RenameLocalVariableVisitor : RenameIdentifierVisitor
36
public RenameLocalVariableVisitor(string from, string to, StringComparer nameComparer)
37
: base(from, to, nameComparer)
41
public override object VisitVariableDeclaration(VariableDeclaration variableDeclaration, object data)
43
if (nameComparer.Equals(from, variableDeclaration.Name)) {
44
variableDeclaration.Name = to;
46
return base.VisitVariableDeclaration(variableDeclaration, data);
49
public override object VisitParameterDeclarationExpression(ParameterDeclarationExpression parameterDeclarationExpression, object data)
51
if (nameComparer.Equals(from, parameterDeclarationExpression.ParameterName)) {
52
parameterDeclarationExpression.ParameterName = to;
54
return base.VisitParameterDeclarationExpression(parameterDeclarationExpression, data);
57
public override object VisitForeachStatement(ForeachStatement foreachStatement, object data)
59
if (nameComparer.Equals(from, foreachStatement.VariableName)) {
60
foreachStatement.VariableName = to;
62
return base.VisitForeachStatement(foreachStatement, data);