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

« back to all changes in this revision

Viewing changes to contrib/NRefactory/Project/Src/Ast/General/LocalVariableDeclaration.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="none" email=""/>
5
 
//     <version>$Revision: 4482 $</version>
6
 
// </file>
7
 
 
8
 
using System;
9
 
using System.Collections.Generic;
10
 
 
11
 
namespace ICSharpCode.OldNRefactory.Ast
12
 
{
13
 
        public class LocalVariableDeclaration : Statement
14
 
        {
15
 
                TypeReference             typeReference;
16
 
                Modifiers                  modifier = Modifiers.None;
17
 
                List<VariableDeclaration> variables = new List<VariableDeclaration>();
18
 
                
19
 
                public TypeReference TypeReference {
20
 
                        get {
21
 
                                return typeReference;
22
 
                        }
23
 
                        set {
24
 
                                typeReference = TypeReference.CheckNull(value);
25
 
                                if (!typeReference.IsNull) typeReference.Parent = this;
26
 
                        }
27
 
                }
28
 
                
29
 
                public Modifiers Modifier {
30
 
                        get {
31
 
                                return modifier;
32
 
                        }
33
 
                        set {
34
 
                                modifier = value;
35
 
                        }
36
 
                }
37
 
                
38
 
                public Location SemicolonPosition {
39
 
                        get;
40
 
                        set;
41
 
                }
42
 
                
43
 
                public List<VariableDeclaration> Variables {
44
 
                        get {
45
 
                                return variables;
46
 
                        }
47
 
                }
48
 
                
49
 
                public TypeReference GetTypeForVariable(int variableIndex)
50
 
                {
51
 
                        if (!typeReference.IsNull) {
52
 
                                return typeReference;
53
 
                        }
54
 
                        
55
 
                        for (int i = variableIndex; i < Variables.Count;++i) {
56
 
                                if (!((VariableDeclaration)Variables[i]).TypeReference.IsNull) {
57
 
                                        return ((VariableDeclaration)Variables[i]).TypeReference;
58
 
                                }
59
 
                        }
60
 
                        return null;
61
 
                }
62
 
                
63
 
                public LocalVariableDeclaration(VariableDeclaration declaration) : this(TypeReference.Null)
64
 
                {
65
 
                        Variables.Add(declaration);
66
 
                }
67
 
                
68
 
                public LocalVariableDeclaration(TypeReference typeReference)
69
 
                {
70
 
                        this.TypeReference = typeReference;
71
 
                }
72
 
                
73
 
                public LocalVariableDeclaration(TypeReference typeReference, Modifiers modifier)
74
 
                {
75
 
                        this.TypeReference = typeReference;
76
 
                        this.modifier      = modifier;
77
 
                }
78
 
                
79
 
                public LocalVariableDeclaration(Modifiers modifier)
80
 
                {
81
 
                        this.typeReference = TypeReference.Null;
82
 
                        this.modifier      = modifier;
83
 
                }
84
 
                
85
 
                public VariableDeclaration GetVariableDeclaration(string variableName)
86
 
                {
87
 
                        foreach (VariableDeclaration variableDeclaration in variables) {
88
 
                                if (variableDeclaration.Name == variableName) {
89
 
                                        return variableDeclaration;
90
 
                                }
91
 
                        }
92
 
                        return null;
93
 
                }
94
 
                                
95
 
                public override object AcceptVisitor(IAstVisitor visitor, object data)
96
 
                {
97
 
                        return visitor.VisitLocalVariableDeclaration(this, data);
98
 
                }
99
 
                
100
 
                public override string ToString()
101
 
                {
102
 
                        return String.Format("[LocalVariableDeclaration: Type={0}, Modifier ={1} Variables={2}]", 
103
 
                                             typeReference, 
104
 
                                             modifier, 
105
 
                                             GetCollectionString(variables));
106
 
                }
107
 
        }
108
 
}