// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) // This code is distributed under MIT X11 license (for details please see \doc\license.txt) using System; namespace ICSharpCode.NRefactory.CSharp.PatternMatching { /// /// Base class for all patterns. /// public abstract class Pattern : AstNode { public override NodeType NodeType { get { return NodeType.Pattern; } } protected internal virtual bool DoMatchCollection(Role role, ref AstNode other, Match match) { bool result = DoMatch(other, match); other = other.NextSibling; return result; } public override S AcceptVisitor(IAstVisitor visitor, T data) { return default(S); } public AstType ToType() { return new TypePlaceholder(this); } public Expression ToExpression() { return new ExpressionPlaceholder(this); } public Statement ToStatement() { return new StatementPlaceholder(this); } public BlockStatement ToBlock() { return new BlockStatementPlaceholder(this); } public VariableInitializer ToVariable() { return new VariablePlaceholder(this); } } }