PageRenderTime 14ms CodeModel.GetById 1ms app.highlight 8ms RepoModel.GetById 1ms app.codeStats 0ms

/NRefactory/ICSharpCode.NRefactory.CSharp/Ast/ErrorNode.cs

http://github.com/icsharpcode/ILSpy
C# | 88 lines | 47 code | 11 blank | 30 comment | 1 complexity | a29fa2a7c705e7c7f0ab92f23df0095f MD5 | raw file
 1// 
 2// ErrorNode.cs
 3//
 4// Author:
 5//       Mike Kr├╝ger <mkrueger@novell.com>
 6// 
 7// Copyright (c) 2011 Xamarin (http://www.xamarin.com);
 8//
 9// Permission is hereby granted, free of charge, to any person obtaining a copy
10// of this software and associated documentation files (the "Software"), to deal
11// in the Software without restriction, including without limitation the rights
12// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13// copies of the Software, and to permit persons to whom the Software is
14// furnished to do so, subject to the following conditions:
15// 
16// The above copyright notice and this permission notice shall be included in
17// all copies or substantial portions of the Software.
18// 
19// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25// THE SOFTWARE.
26using System;
27
28namespace ICSharpCode.NRefactory.CSharp
29{
30	/// <summary>
31	/// Represents a parsing error in the ast. At the moment it only represents missing closing bracket.
32	/// This closing bracket is replaced by a node at the highest possible position.
33	/// (To make GetAstNodeAt (line, col) working).
34	/// </summary>
35	public class ErrorNode : AstNode
36	{
37		static TextLocation maxLoc = new TextLocation (int.MaxValue, int.MaxValue);
38		
39		public override NodeType NodeType {
40			get {
41				return NodeType.Unknown;
42			}
43		}
44				
45		public override TextLocation StartLocation {
46			get {
47				return maxLoc;
48			}
49		}
50		
51		public override TextLocation EndLocation {
52			get {
53				return maxLoc;
54			}
55		}
56		
57		public ErrorNode ()
58		{
59		}
60
61		public override void AcceptVisitor(IAstVisitor visitor)
62		{
63			visitor.VisitErrorNode(this);
64		}
65
66		public override T AcceptVisitor<T>(IAstVisitor<T> visitor)
67		{
68			return visitor.VisitErrorNode(this);
69		}
70
71		public override S AcceptVisitor<T, S>(IAstVisitor<T, S> visitor, T data)
72		{
73			return visitor.VisitErrorNode(this, data);
74		}
75
76		protected internal override bool DoMatch(AstNode other, PatternMatching.Match match)
77		{
78			var o = other as ErrorNode;
79			return o != null;
80		}
81
82		public override string ToString(CSharpFormattingOptions formattingOptions)
83		{
84			return "[ErrorNode]";
85		}
86	}
87}
88