PageRenderTime 5ms CodeModel.GetById 1ms app.highlight 2ms RepoModel.GetById 1ms app.codeStats 0ms

/NRefactory/ICSharpCode.NRefactory.VB/Ast/Statements/ExitStatement.cs

http://github.com/icsharpcode/ILSpy
C# | 55 lines | 41 code | 9 blank | 5 comment | 3 complexity | d2c268654f902f75cbb64682194b6176 MD5 | raw file
 1// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
 2// This code is distributed under MIT X11 license (for details please see \doc\license.txt)
 3
 4using System;
 5using System.IO;
 6
 7namespace ICSharpCode.NRefactory.VB.Ast
 8{
 9	/// <summary>
10	/// Exit ( Do | For | While | Select | Sub | Function | Property | Try )
11	/// </summary>
12	public class ExitStatement : Statement
13	{
14		public static readonly Role<VBTokenNode> ExitKindTokenRole = new Role<VBTokenNode>("ExitKindToken");
15		
16		public ExitKind ExitKind { get; set; }
17		
18		public VBTokenNode ExitToken {
19			get { return GetChildByRole (Roles.Keyword); }
20		}
21		
22		public VBTokenNode ExitKindToken {
23			get { return GetChildByRole (ExitKindTokenRole); }
24		}
25		
26		public ExitStatement(ExitKind kind)
27		{
28			this.ExitKind = kind;
29		}
30		
31		public override S AcceptVisitor<T, S>(IAstVisitor<T, S> visitor, T data)
32		{
33			return visitor.VisitExitStatement(this, data);
34		}
35		
36		protected internal override bool DoMatch(AstNode other, PatternMatching.Match match)
37		{
38			ExitStatement o = other as ExitStatement;
39			return o != null && this.ExitKind == o.ExitKind;
40		}
41	}
42	
43	public enum ExitKind
44	{
45		None,
46		Sub,
47		Function,
48		Property,
49		Do,
50		For,
51		While,
52		Select,
53		Try
54	}
55}