// // // // // $Revision$ // using System; using System.Collections.Generic; namespace NRefactoryASTGenerator.Ast { [CustomImplementation, HasChildren] class CompilationUnit : AbstractNode {} [HasChildren] class NamespaceDeclaration : AbstractNode { string name; public NamespaceDeclaration(string name) {} } class TemplateDefinition : AttributedNode { [QuestionMarkDefault] string name; List bases; public TemplateDefinition(string name, List attributes) : base(attributes) {} } class DelegateDeclaration : AttributedNode { [QuestionMarkDefault] string name; TypeReference returnType; List parameters; List templates; public DelegateDeclaration(Modifiers modifier, List attributes) : base(modifier, attributes) {} } enum ClassType { Class } [HasChildren] class TypeDeclaration : AttributedNode { // Children of Struct: FieldDeclaration, MethodDeclaration, EventDeclaration, ConstructorDeclaration, // OperatorDeclaration, TypeDeclaration, IndexerDeclaration, PropertyDeclaration, in VB: DeclareDeclaration // Childrean of class: children of struct, DestructorDeclaration // Children of Interface: MethodDeclaration, PropertyDeclaration, IndexerDeclaration, EventDeclaration, in VB: TypeDeclaration(Enum) too // Children of Enum: FieldDeclaration string name; ClassType type; List baseTypes; List templates; Location bodyStartLocation; public TypeDeclaration(Modifiers modifier, List attributes) : base(modifier, attributes) {} } [IncludeBoolProperty("IsAlias", "return !alias.IsNull;")] class Using : AbstractNode { [QuestionMarkDefault] string name; TypeReference alias; public Using(string name) {} public Using(string name, TypeReference alias) {} } [IncludeMember("public UsingDeclaration(string @namespace) : this(@namespace, null) {}")] [IncludeMember("public UsingDeclaration(string @namespace, TypeReference alias) {" + " usings = new List(1);" + " usings.Add(new Using(@namespace, alias)); " + "}")] class UsingDeclaration : AbstractNode { List usings; public UsingDeclaration(List usings) {} } enum OptionType { None } class OptionDeclaration : AbstractNode { OptionType optionType; bool optionValue; public OptionDeclaration(OptionType optionType, bool optionValue) {} } }