~ubuntu-branches/ubuntu/trusty/monodevelop/trusty-proposed

« back to all changes in this revision

Viewing changes to contrib/NRefactory/Project/Src/Visitors/RenameIdentifierVisitor.cs

  • Committer: Package Import Robot
  • Author(s): Jo Shields
  • Date: 2013-05-12 09:46:03 UTC
  • mto: This revision was merged to the branch mainline in revision 29.
  • Revision ID: package-import@ubuntu.com-20130512094603-mad323bzcxvmcam0
Tags: upstream-4.0.5+dfsg
ImportĀ upstreamĀ versionĀ 4.0.5+dfsg

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
// <file>
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>
6
 
// </file>
7
 
 
8
 
using System;
9
 
using ICSharpCode.OldNRefactory.Ast;
10
 
 
11
 
namespace ICSharpCode.OldNRefactory.Visitors
12
 
{
13
 
        class RenameIdentifierVisitor : AbstractAstVisitor
14
 
        {
15
 
                protected StringComparer nameComparer;
16
 
                protected string from, to;
17
 
                
18
 
                public RenameIdentifierVisitor(string from, string to, StringComparer nameComparer)
19
 
                {
20
 
                        this.nameComparer = nameComparer;
21
 
                        this.from = from;
22
 
                        this.to = to;
23
 
                }
24
 
                
25
 
                public override object VisitIdentifierExpression(IdentifierExpression identifierExpression, object data)
26
 
                {
27
 
                        if (nameComparer.Equals(identifierExpression.Identifier, from)) {
28
 
                                identifierExpression.Identifier = to;
29
 
                        }
30
 
                        return base.VisitIdentifierExpression(identifierExpression, data);
31
 
                }
32
 
        }
33
 
        
34
 
        sealed class RenameLocalVariableVisitor : RenameIdentifierVisitor
35
 
        {
36
 
                public RenameLocalVariableVisitor(string from, string to, StringComparer nameComparer)
37
 
                        : base(from, to, nameComparer)
38
 
                {
39
 
                }
40
 
                
41
 
                public override object VisitVariableDeclaration(VariableDeclaration variableDeclaration, object data)
42
 
                {
43
 
                        if (nameComparer.Equals(from, variableDeclaration.Name)) {
44
 
                                variableDeclaration.Name = to;
45
 
                        }
46
 
                        return base.VisitVariableDeclaration(variableDeclaration, data);
47
 
                }
48
 
                
49
 
                public override object VisitParameterDeclarationExpression(ParameterDeclarationExpression parameterDeclarationExpression, object data)
50
 
                {
51
 
                        if (nameComparer.Equals(from, parameterDeclarationExpression.ParameterName)) {
52
 
                                parameterDeclarationExpression.ParameterName = to;
53
 
                        }
54
 
                        return base.VisitParameterDeclarationExpression(parameterDeclarationExpression, data);
55
 
                }
56
 
                
57
 
                public override object VisitForeachStatement(ForeachStatement foreachStatement, object data)
58
 
                {
59
 
                        if (nameComparer.Equals(from, foreachStatement.VariableName)) {
60
 
                                foreachStatement.VariableName = to;
61
 
                        }
62
 
                        return base.VisitForeachStatement(foreachStatement, data);
63
 
                }
64
 
        }
65
 
}