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

« back to all changes in this revision

Viewing changes to contrib/NRefactory/Project/Src/Ast/General/Statement.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="Mike Krüger" email="mike@icsharpcode.net"/>
5
 
//     <version>$Revision: 4482 $</version>
6
 
// </file>
7
 
 
8
 
using System;
9
 
 
10
 
namespace ICSharpCode.OldNRefactory.Ast
11
 
{
12
 
        public abstract class Statement : AbstractNode, INullable
13
 
        {
14
 
                public static Statement Null {
15
 
                        get {
16
 
                                return NullStatement.Instance;
17
 
                        }
18
 
                }
19
 
                
20
 
                public virtual bool IsNull {
21
 
                        get {
22
 
                                return false;
23
 
                        }
24
 
                }
25
 
                
26
 
                public static Statement CheckNull(Statement statement)
27
 
                {
28
 
                        return statement ?? NullStatement.Instance;
29
 
                }
30
 
        }
31
 
        
32
 
        public abstract class StatementWithEmbeddedStatement : Statement
33
 
        {
34
 
                Statement embeddedStatement;
35
 
                
36
 
                public Statement EmbeddedStatement {
37
 
                        get {
38
 
                                return embeddedStatement;
39
 
                        }
40
 
                        set {
41
 
                                embeddedStatement = Statement.CheckNull(value);
42
 
                                if (value != null)
43
 
                                        value.Parent = this;
44
 
                        }
45
 
                }
46
 
        }
47
 
        
48
 
        internal sealed class NullStatement : Statement
49
 
        {
50
 
                public static readonly NullStatement Instance = new NullStatement();
51
 
                
52
 
                public override bool IsNull {
53
 
                        get { return true; }
54
 
                }
55
 
                
56
 
                public override object AcceptVisitor(IAstVisitor visitor, object data)
57
 
                {
58
 
                        return data;
59
 
                }
60
 
                
61
 
                public override string ToString()
62
 
                {
63
 
                        return String.Format("[NullStatement]");
64
 
                }
65
 
        }
66
 
}