mirror of https://github.com/icsharpcode/ILSpy.git
				
				
			
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							87 lines
						
					
					
						
							2.0 KiB
						
					
					
				
			
		
		
	
	
							87 lines
						
					
					
						
							2.0 KiB
						
					
					
				/* | 
						|
 * Created by SharpDevelop. | 
						|
 * User: Siegfried | 
						|
 * Date: 11.04.2011 | 
						|
 * Time: 20:44 | 
						|
 *  | 
						|
 * To change this template use Tools | Options | Coding | Edit Standard Headers. | 
						|
 */ | 
						|
using System; | 
						|
 | 
						|
namespace ICSharpCode.NRefactory.VB.Ast | 
						|
{ | 
						|
	/// <summary> | 
						|
	/// Description of VBTokenNode. | 
						|
	/// </summary> | 
						|
	public class VBTokenNode : AstNode | 
						|
	{ | 
						|
		public static new readonly VBTokenNode Null = new NullVBTokenNode(); | 
						|
		 | 
						|
		class NullVBTokenNode : VBTokenNode | 
						|
		{ | 
						|
			public override bool IsNull { | 
						|
				get { | 
						|
					return true; | 
						|
				} | 
						|
			} | 
						|
			 | 
						|
			public NullVBTokenNode() : base (TextLocation.Empty, 0) | 
						|
			{ | 
						|
			} | 
						|
			 | 
						|
			public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data) | 
						|
			{ | 
						|
				return default (S); | 
						|
			} | 
						|
			 | 
						|
			protected internal override bool DoMatch(AstNode other, PatternMatching.Match match) | 
						|
			{ | 
						|
				return other == null || other.IsNull; | 
						|
			} | 
						|
		} | 
						|
		 | 
						|
		TextLocation startLocation; | 
						|
		public override TextLocation StartLocation { | 
						|
			get { | 
						|
				return startLocation; | 
						|
			} | 
						|
		} | 
						|
		 | 
						|
		protected int tokenLength = -1; | 
						|
		 | 
						|
		TextLocation endLocation; | 
						|
		public override TextLocation EndLocation { | 
						|
			get { | 
						|
				return tokenLength < 0 ? endLocation : new TextLocation(startLocation.Line, startLocation.Column + tokenLength); | 
						|
			} | 
						|
		} | 
						|
		 | 
						|
		public VBTokenNode(TextLocation location, int tokenLength) | 
						|
		{ | 
						|
			this.startLocation = location; | 
						|
			this.tokenLength = tokenLength; | 
						|
		} | 
						|
		 | 
						|
		public VBTokenNode(TextLocation startLocation, TextLocation endLocation) | 
						|
		{ | 
						|
			this.startLocation = startLocation; | 
						|
			this.endLocation = endLocation; | 
						|
		} | 
						|
		 | 
						|
		public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data) | 
						|
		{ | 
						|
			return visitor.VisitVBTokenNode(this, data); | 
						|
		} | 
						|
		 | 
						|
		protected internal override bool DoMatch(AstNode other, PatternMatching.Match match) | 
						|
		{ | 
						|
			var node = other as VBTokenNode; | 
						|
			return node != null && !node.IsNull; | 
						|
		} | 
						|
		 | 
						|
		public override string ToString () | 
						|
		{ | 
						|
			return string.Format ("[VBTokenNode: StartLocation={0}, EndLocation={1}, Role={2}]", StartLocation, EndLocation, Role); | 
						|
		} | 
						|
	} | 
						|
}
 | 
						|
 |