~ubuntu-branches/ubuntu/feisty/monodevelop/feisty

« back to all changes in this revision

Viewing changes to Core/src/NRefactory/Project/Src/Parser/AST/General/LocalVariableDeclaration.cs

  • Committer: Bazaar Package Importer
  • Author(s): Sebastian Dröge
  • Date: 2006-08-18 00:51:23 UTC
  • mfrom: (1.1.3 upstream)
  • Revision ID: james.westby@ubuntu.com-20060818005123-5iit07y0j7wjg55f
Tags: 0.11+svn20060818-0ubuntu1
* New SVN snapshot
  + Works with Gtk# 2.9.0
* debian/control:
  + Updated Build-Depends
* debian/patches/use_nunit2.2.dpatch,
  debian/patches/use_real_libs.dpatch:
  + Updated
* debian/patches/versioncontrol_buildfix.dpatch:
  + Fix build failure in the version control addin

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