2
// <copyright see="prj:///doc/copyright.txt"/>
3
// <license see="prj:///doc/license.txt"/>
4
// <owner name="none" email=""/>
5
// <version>$Revision: 4482 $</version>
9
using System.Collections.Generic;
11
namespace ICSharpCode.OldNRefactory.Ast
13
public class LocalVariableDeclaration : Statement
15
TypeReference typeReference;
16
Modifiers modifier = Modifiers.None;
17
List<VariableDeclaration> variables = new List<VariableDeclaration>();
19
public TypeReference TypeReference {
24
typeReference = TypeReference.CheckNull(value);
25
if (!typeReference.IsNull) typeReference.Parent = this;
29
public Modifiers Modifier {
38
public Location SemicolonPosition {
43
public List<VariableDeclaration> Variables {
49
public TypeReference GetTypeForVariable(int variableIndex)
51
if (!typeReference.IsNull) {
55
for (int i = variableIndex; i < Variables.Count;++i) {
56
if (!((VariableDeclaration)Variables[i]).TypeReference.IsNull) {
57
return ((VariableDeclaration)Variables[i]).TypeReference;
63
public LocalVariableDeclaration(VariableDeclaration declaration) : this(TypeReference.Null)
65
Variables.Add(declaration);
68
public LocalVariableDeclaration(TypeReference typeReference)
70
this.TypeReference = typeReference;
73
public LocalVariableDeclaration(TypeReference typeReference, Modifiers modifier)
75
this.TypeReference = typeReference;
76
this.modifier = modifier;
79
public LocalVariableDeclaration(Modifiers modifier)
81
this.typeReference = TypeReference.Null;
82
this.modifier = modifier;
85
public VariableDeclaration GetVariableDeclaration(string variableName)
87
foreach (VariableDeclaration variableDeclaration in variables) {
88
if (variableDeclaration.Name == variableName) {
89
return variableDeclaration;
95
public override object AcceptVisitor(IAstVisitor visitor, object data)
97
return visitor.VisitLocalVariableDeclaration(this, data);
100
public override string ToString()
102
return String.Format("[LocalVariableDeclaration: Type={0}, Modifier ={1} Variables={2}]",
105
GetCollectionString(variables));