2
// <copyright see="prj:///doc/copyright.txt"/>
3
// <license see="prj:///doc/license.txt"/>
4
// <owner name="Daniel Grunwald" email="daniel@danielgrunwald.de"/>
5
// <version>$Revision: 1388 $</version>
9
using System.Collections.Generic;
11
namespace NRefactoryASTGenerator.AST
13
[CustomImplementation, HasChildren]
14
class CompilationUnit : AbstractNode {}
17
class NamespaceDeclaration : AbstractNode
21
public NamespaceDeclaration(string name) {}
24
class TemplateDefinition : AttributedNode
28
List<TypeReference> bases;
30
public TemplateDefinition(string name, List<AttributeSection> attributes) : base(attributes) {}
33
class DelegateDeclaration : AttributedNode
37
TypeReference returnType;
38
List<ParameterDeclarationExpression> parameters;
39
List<TemplateDefinition> templates;
41
public DelegateDeclaration(Modifier modifier, List<AttributeSection> attributes) : base(modifier, attributes) {}
44
enum ClassType { Class }
47
class TypeDeclaration : AttributedNode
49
// Children of Struct: FieldDeclaration, MethodDeclaration, EventDeclaration, ConstructorDeclaration,
50
// OperatorDeclaration, TypeDeclaration, IndexerDeclaration, PropertyDeclaration, in VB: DeclareDeclaration
51
// Childrean of class: children of struct, DestructorDeclaration
52
// Children of Interface: MethodDeclaration, PropertyDeclaration, IndexerDeclaration, EventDeclaration, in VB: TypeDeclaration(Enum) too
53
// Children of Enum: FieldDeclaration
56
List<TypeReference> baseTypes;
57
List<TemplateDefinition> templates;
58
Point bodyStartLocation;
60
public TypeDeclaration(Modifier modifier, List<AttributeSection> attributes) : base(modifier, attributes) {}
63
[IncludeBoolProperty("IsAlias", "return !alias.IsNull;")]
64
class Using : AbstractNode
70
public Using(string name) {}
71
public Using(string name, TypeReference alias) {}
74
[IncludeMember("public UsingDeclaration(string nameSpace) : this(nameSpace, null) {}")]
75
[IncludeMember("public UsingDeclaration(string nameSpace, TypeReference alias) {" +
76
" usings = new List<Using>(1);" +
77
" usings.Add(new Using(nameSpace, alias)); " +
79
class UsingDeclaration : AbstractNode
83
public UsingDeclaration(List<Using> usings) {}
86
enum OptionType { None }
88
class OptionDeclaration : AbstractNode
90
OptionType optionType;
93
public OptionDeclaration(OptionType optionType, bool optionValue) {}