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)
4
using System.Collections.Generic;
6
namespace ICSharpCode.NRefactory.VB.Ast
8
public abstract class ImportsClause : AstNode
10
public new static readonly ImportsClause Null = new NullImportsClause();
12
class NullImportsClause : ImportsClause
14
public override bool IsNull {
18
protected internal override bool DoMatch(AstNode other, ICSharpCode.NRefactory.PatternMatching.Match match)
20
return other != null && other.IsNull;
23
public override S AcceptVisitor<T, S>(IAstVisitor<T, S> visitor, T data)
30
public class AliasImportsClause : ImportsClause
32
public Identifier Name {
33
get { return GetChildByRole(Roles.Identifier); }
34
set { SetChildByRole(Roles.Identifier, value); }
37
public AstType Alias {
38
get { return GetChildByRole(Roles.Type); }
39
set { SetChildByRole(Roles.Type, value); }
42
protected internal override bool DoMatch(AstNode other, ICSharpCode.NRefactory.PatternMatching.Match match)
44
var clause = other as AliasImportsClause;
46
&& Name.DoMatch(clause.Name, match)
47
&& Alias.DoMatch(clause.Alias, match);
50
public override S AcceptVisitor<T, S>(IAstVisitor<T, S> visitor, T data)
52
return visitor.VisitAliasImportsClause(this, data);
55
public override string ToString() {
56
return string.Format("[AliasImportsClause Name={0} Alias={1}]", Name, Alias);
60
public class MemberImportsClause : ImportsClause
62
public AstType Member {
63
get { return GetChildByRole(Roles.Type); }
64
set { SetChildByRole(Roles.Type, value); }
67
protected internal override bool DoMatch(AstNode other, ICSharpCode.NRefactory.PatternMatching.Match match)
69
var node = other as MemberImportsClause;
71
&& Member.DoMatch(node.Member, match);
74
public override S AcceptVisitor<T, S>(IAstVisitor<T, S> visitor, T data)
76
return visitor.VisitMemberImportsClause(this, data);
79
public override string ToString()
81
return string.Format("[MemberImportsClause Member={0}]", Member);
85
public class XmlNamespaceImportsClause : ImportsClause
87
public XmlIdentifier Prefix {
88
get { return GetChildByRole(Roles.XmlIdentifier); }
89
set { SetChildByRole(Roles.XmlIdentifier, value); }
92
public XmlLiteralString Namespace {
93
get { return GetChildByRole(Roles.XmlLiteralString); }
94
set { SetChildByRole(Roles.XmlLiteralString, value); }
97
protected internal override bool DoMatch(AstNode other, ICSharpCode.NRefactory.PatternMatching.Match match)
99
var clause = other as XmlNamespaceImportsClause;
100
return clause != null && Namespace.DoMatch(clause.Namespace, match) && Prefix.DoMatch(clause.Prefix, match);
103
public override S AcceptVisitor<T, S>(IAstVisitor<T, S> visitor, T data)
105
return visitor.VisitXmlNamespaceImportsClause(this, data);
108
public override string ToString()
110
return string.Format("[XmlNamespaceImportsClause Prefix={0}, Namespace={1}]", Prefix, Namespace);