public Field (Class declaringType, SR.FieldInfo tinfo) { this.declaringType = declaringType; ModifierEnum mod = (ModifierEnum)0; if (tinfo.IsPrivate) mod |= ModifierEnum.Private; if (tinfo.IsAssembly) mod |= ModifierEnum.Internal; if (tinfo.IsFamily) mod |= ModifierEnum.Protected; if (tinfo.IsPublic) mod |= ModifierEnum.Public; if (tinfo.IsStatic) mod |= ModifierEnum.Static; if (tinfo.IsLiteral) mod |= ModifierEnum.Const; modifiers = mod; this.FullyQualifiedName = tinfo.Name; returnType = new ReturnType(tinfo.FieldType); this.region = Class.GetRegion(); LoadXml (declaringType); }
public Property (Class declaringType, NCC.IProperty tinfo) { this.declaringType = declaringType; ModifierEnum mod = (ModifierEnum)0; if ((tinfo.Attributes & NCC.NemerleAttributes.Private) != 0) mod |= ModifierEnum.Private; if ((tinfo.Attributes & NCC.NemerleAttributes.Internal) != 0) mod |= ModifierEnum.Internal; if ((tinfo.Attributes & NCC.NemerleAttributes.Protected) != 0) mod |= ModifierEnum.Protected; if ((tinfo.Attributes & NCC.NemerleAttributes.Public) != 0) mod |= ModifierEnum.Public; if ((tinfo.Attributes & NCC.NemerleAttributes.Abstract) != 0) mod |= ModifierEnum.Abstract; if ((tinfo.Attributes & NCC.NemerleAttributes.Sealed) != 0) mod |= ModifierEnum.Sealed; if ((tinfo.Attributes & NCC.NemerleAttributes.Static) != 0) mod |= ModifierEnum.Static; if ((tinfo.Attributes & NCC.NemerleAttributes.Override) != 0) mod |= ModifierEnum.Override; if ((tinfo.Attributes & NCC.NemerleAttributes.Virtual) != 0) mod |= ModifierEnum.Virtual; if ((tinfo.Attributes & NCC.NemerleAttributes.New) != 0) mod |= ModifierEnum.New; if ((tinfo.Attributes & NCC.NemerleAttributes.Extern) != 0) mod |= ModifierEnum.Extern; modifiers = mod; this.FullyQualifiedName = tinfo.Name; returnType = new ReturnType (tinfo.GetMemType ()); this.region = Class.GetRegion (tinfo.Location); if (tinfo is NCC.MemberBuilder) this.bodyRegion = Class.GetRegion (((NCC.MemberBuilder)tinfo).BodyLocation); else this.bodyRegion = Class.GetRegion (tinfo.Location); NCC.IMethod getter = tinfo.GetGetter (); NCC.IMethod setter = tinfo.GetSetter (); if (getter != null) { this.Getter = new Method(declaringType, getter); if (getter is NCC.MemberBuilder) getterRegion = Class.GetRegion (((NCC.MemberBuilder)getter).BodyLocation); else getterRegion = Class.GetRegion(getter.Location); } if (setter != null) { this.Setter = new Method(declaringType, setter); if (setter is NCC.MemberBuilder) setterRegion = Class.GetRegion (((NCC.MemberBuilder)setter).BodyLocation); else setterRegion = Class.GetRegion(setter.Location); } LoadXml (declaringType); }
void LoadXml (Class declaring) { if (declaring.xmlHelp != null) { XmlNode node = declaring.xmlHelp.SelectSingleNode ("/Type/Members/Member[@MemberName='" + FullyQualifiedName + "']/Docs/summary"); if (node != null) { Documentation = node.InnerXml; } } }
public Property (Class declaringType, SR.PropertyInfo tinfo) { this.declaringType = declaringType; ModifierEnum mod = (ModifierEnum)0; modifiers = mod; this.FullyQualifiedName = tinfo.Name; returnType = new ReturnType(tinfo.PropertyType); this.region = Class.GetRegion(); this.bodyRegion = Class.GetRegion(); LoadXml (declaringType); }
public Local (Class declaringType, NCC.LocalValue tinfo) { this.declaringType = declaringType; ModifierEnum mod = ModifierEnum.Public; if (!tinfo.IsMutable) mod |= ModifierEnum.Readonly; modifiers = mod; this.FullyQualifiedName = tinfo.Name; returnType = new ReturnType (tinfo.Type.Fix ()); this.region = Class.GetRegion (); }
public Indexer (Class declaringType, SR.PropertyInfo tinfo) { this.declaringType = declaringType; ModifierEnum mod = (ModifierEnum)0; modifiers = mod; this.FullyQualifiedName = tinfo.Name; returnType = new ReturnType(tinfo.PropertyType); this.region = Class.GetRegion(); this.bodyRegion = Class.GetRegion(); LoadXml (declaringType); // Add parameters foreach (SR.ParameterInfo pinfo in tinfo.GetIndexParameters()) parameters.Add(new Parameter(this, pinfo, node)); }
void LoadXml (Class declaring, NCC.IMethod methodBase) { if (declaring.xmlHelp != null) { XmlNodeList nodes = declaring.xmlHelp.SelectNodes ("/Type/Members/Member[@MemberName='" + methodBase.Name.ToString () + "']"); if (nodes != null && nodes.Count > 0) { if (nodes.Count == 1) { node = nodes[0]; } else { node = FindMatch (nodes, methodBase); } if (node != null) { XmlNode docNode = node.SelectSingleNode ("Docs/summary"); if (docNode != null) { Documentation = docNode.InnerXml; } } } } }
public Field (Class declaringType, NCC.IField tinfo) { this.declaringType = declaringType; ModifierEnum mod = (ModifierEnum)0; if ((tinfo.Attributes & NCC.NemerleAttributes.Private) != 0) mod |= ModifierEnum.Private; if ((tinfo.Attributes & NCC.NemerleAttributes.Internal) != 0) mod |= ModifierEnum.Internal; if ((tinfo.Attributes & NCC.NemerleAttributes.Protected) != 0) mod |= ModifierEnum.Protected; if ((tinfo.Attributes & NCC.NemerleAttributes.Public) != 0) mod |= ModifierEnum.Public; if ((tinfo.Attributes & NCC.NemerleAttributes.Abstract) != 0) mod |= ModifierEnum.Abstract; if ((tinfo.Attributes & NCC.NemerleAttributes.Sealed) != 0) mod |= ModifierEnum.Sealed; if ((tinfo.Attributes & NCC.NemerleAttributes.Static) != 0) mod |= ModifierEnum.Static; if ((tinfo.Attributes & NCC.NemerleAttributes.Override) != 0) mod |= ModifierEnum.Override; if ((tinfo.Attributes & NCC.NemerleAttributes.Virtual) != 0) mod |= ModifierEnum.Virtual; if ((tinfo.Attributes & NCC.NemerleAttributes.New) != 0) mod |= ModifierEnum.New; if ((tinfo.Attributes & NCC.NemerleAttributes.Extern) != 0) mod |= ModifierEnum.Extern; if (!tinfo.IsMutable) mod |= ModifierEnum.Readonly; if (tinfo.IsVolatile) mod |= ModifierEnum.Volatile; if (tinfo.IsLiteral) mod |= ModifierEnum.Const; modifiers = mod; this.FullyQualifiedName = tinfo.Name; returnType = new ReturnType (tinfo.GetMemType ()); this.region = Class.GetRegion (tinfo.Location); LoadXml (declaringType); }
public Event (Class declaringType, NCC.IEvent tinfo) { this.declaringType = declaringType; ModifierEnum mod = (ModifierEnum)0; if ((tinfo.Attributes & NCC.NemerleAttributes.Private) != 0) mod |= ModifierEnum.Private; if ((tinfo.Attributes & NCC.NemerleAttributes.Internal) != 0) mod |= ModifierEnum.Internal; if ((tinfo.Attributes & NCC.NemerleAttributes.Protected) != 0) mod |= ModifierEnum.Protected; if ((tinfo.Attributes & NCC.NemerleAttributes.Public) != 0) mod |= ModifierEnum.Public; if ((tinfo.Attributes & NCC.NemerleAttributes.Abstract) != 0) mod |= ModifierEnum.Abstract; if ((tinfo.Attributes & NCC.NemerleAttributes.Sealed) != 0) mod |= ModifierEnum.Sealed; if ((tinfo.Attributes & NCC.NemerleAttributes.Static) != 0) mod |= ModifierEnum.Static; if ((tinfo.Attributes & NCC.NemerleAttributes.Override) != 0) mod |= ModifierEnum.Override; if ((tinfo.Attributes & NCC.NemerleAttributes.Virtual) != 0) mod |= ModifierEnum.Virtual; if ((tinfo.Attributes & NCC.NemerleAttributes.New) != 0) mod |= ModifierEnum.New; if ((tinfo.Attributes & NCC.NemerleAttributes.Extern) != 0) mod |= ModifierEnum.Extern; modifiers = mod; this.FullyQualifiedName = tinfo.Name; returnType = new ReturnType (tinfo.GetMemType ()); this.region = Class.GetRegion (tinfo.Location); if (tinfo is NCC.MemberBuilder) this.bodyRegion = Class.GetRegion (((NCC.MemberBuilder)tinfo).BodyLocation); else this.bodyRegion = Class.GetRegion (tinfo.Location); LoadXml (declaringType); }
public Class(System.Type tinfo, DefaultCompilationUnit cu): base (cu) { this.tinfo = null; this.FullyQualifiedName = tinfo.FullName.TrimEnd('*'); if (this.FullyQualifiedName.Contains("`")) this.FullyQualifiedName = this.FullyQualifiedName.TrimEnd ('1', '2', '3', '4').TrimEnd('`'); if (tinfo.IsEnum) classType = ClassType.Enum; else if (tinfo.IsInterface) classType = ClassType.Interface; else if (tinfo.IsValueType) classType = ClassType.Struct; else if (tinfo.IsSubclassOf(typeof(System.Delegate)) || tinfo.IsSubclassOf(typeof(System.MulticastDelegate))) classType = ClassType.Delegate; else classType = ClassType.Class; this.region = GetRegion (); this.bodyRegion = GetRegion (); ModifierEnum mod = (ModifierEnum)0; if (tinfo.IsNotPublic) mod |= ModifierEnum.Private; if (tinfo.IsPublic) mod |= ModifierEnum.Public; if (tinfo.IsAbstract) mod |= ModifierEnum.Abstract; if (tinfo.IsSealed) mod |= ModifierEnum.Sealed; modifiers = mod; if (tinfo.IsEnum) { foreach (SR.FieldInfo field in tinfo.GetFields()) { if (field.Name != "value__" && !field.Name.StartsWith("_N")) fields.Add (new Field (this, field)); } } else { foreach (SR.FieldInfo field in tinfo.GetFields()) { if (!field.Name.StartsWith("_N")) fields.Add (new Field (this, field)); } } foreach (SR.MethodInfo method in tinfo.GetMethods()) { if (method.Name.StartsWith("_N") || method.Name.StartsWith("get_") || method.Name.StartsWith("set_") || method.Name.StartsWith("add_") || method.Name.StartsWith("remove_")) continue; if (method.IsConstructor) continue; //methods.Add (new Constructor (this, method)); else methods.Add (new Method (this, method)); } foreach (SR.PropertyInfo prop in tinfo.GetProperties()) { properties.Add (new Property (this, prop)); } foreach (SR.EventInfo ev in tinfo.GetEvents()) { events.Add (new Event (this, ev)); } foreach (System.Type i in tinfo.GetNestedTypes()) { Class nested = new Class (i, cu); innerClasses.Add (nested); } LoadXml (); }
public Method (Class declaringType, NCC.IMethod tinfo) { this.declaringType = declaringType; ModifierEnum mod = (ModifierEnum)0; if ((tinfo.Attributes & NCC.NemerleAttributes.Private) != 0) mod |= ModifierEnum.Private; if ((tinfo.Attributes & NCC.NemerleAttributes.Internal) != 0) mod |= ModifierEnum.Internal; if ((tinfo.Attributes & NCC.NemerleAttributes.Protected) != 0) mod |= ModifierEnum.Protected; if ((tinfo.Attributes & NCC.NemerleAttributes.Public) != 0) mod |= ModifierEnum.Public; if ((tinfo.Attributes & NCC.NemerleAttributes.Abstract) != 0) mod |= ModifierEnum.Abstract; if ((tinfo.Attributes & NCC.NemerleAttributes.Sealed) != 0) mod |= ModifierEnum.Sealed; if ((tinfo.Attributes & NCC.NemerleAttributes.Static) != 0) mod |= ModifierEnum.Static; if ((tinfo.Attributes & NCC.NemerleAttributes.Override) != 0) mod |= ModifierEnum.Override; if ((tinfo.Attributes & NCC.NemerleAttributes.Virtual) != 0) mod |= ModifierEnum.Virtual; if ((tinfo.Attributes & NCC.NemerleAttributes.New) != 0) mod |= ModifierEnum.New; if ((tinfo.Attributes & NCC.NemerleAttributes.Extern) != 0) mod |= ModifierEnum.Extern; modifiers = mod; this.FullyQualifiedName = tinfo.Name; if (tinfo.GetHeader().typarms.Length > 0) { this.genericParameters = new GenericParameterList (); foreach (NCC.StaticTyVar typarm in tinfo.GetHeader().typarms) { genericParameters.Add (Class.GetGenericParameter (typarm)); } } if (tinfo.Name == "op_Addition") this.FullyQualifiedName = "@+"; else if (tinfo.Name == "op_Subtraction") this.FullyQualifiedName = "@-"; else if (tinfo.Name == "op_Multiply") this.FullyQualifiedName = "@*"; else if (tinfo.Name == "op_Division") this.FullyQualifiedName = "@/"; else if (tinfo.Name == "op_Modulus") this.FullyQualifiedName = "@%"; else if (tinfo.Name == "op_ExclusiveOr") this.FullyQualifiedName = "@^"; else if (tinfo.Name == "op_BitwiseAnd") this.FullyQualifiedName = "@&"; else if (tinfo.Name == "op_BitwiseOr") this.FullyQualifiedName = "@|"; else if (tinfo.Name == "op_LogicalAnd") this.FullyQualifiedName = "@&&"; else if (tinfo.Name == "op_LogicalOr") this.FullyQualifiedName = "@||"; else if (tinfo.Name == "op_Assign") this.FullyQualifiedName = "@="; else if (tinfo.Name == "op_LeftShift") this.FullyQualifiedName = "@<<"; else if (tinfo.Name == "op_RightShift") this.FullyQualifiedName = "@>>"; else if (tinfo.Name == "op_Equality") this.FullyQualifiedName = "@=="; else if (tinfo.Name == "op_GreaterThan") this.FullyQualifiedName = "@>"; else if (tinfo.Name == "op_LessThan") this.FullyQualifiedName = "@<"; else if (tinfo.Name == "op_Inequality") this.FullyQualifiedName = "@!="; else if (tinfo.Name == "op_GreaterThanOrEqual") this.FullyQualifiedName = "@>="; else if (tinfo.Name == "op_LessThanOrEqual") this.FullyQualifiedName = "@<="; else if (tinfo.Name == "op_MultiplicationAssignment") this.FullyQualifiedName = "@*="; else if (tinfo.Name == "op_SubtractionAssignment") this.FullyQualifiedName = "@-="; else if (tinfo.Name == "op_ExclusiveOrAssignment") this.FullyQualifiedName = "@^="; else if (tinfo.Name == "op_LeftShiftAssignment") this.FullyQualifiedName = "@<<="; else if (tinfo.Name == "op_ModulusAssignment") this.FullyQualifiedName = "@%="; else if (tinfo.Name == "op_AdditionAssignment") this.FullyQualifiedName = "@+="; else if (tinfo.Name == "op_BitwiseAndAssignment") this.FullyQualifiedName = "@&="; else if (tinfo.Name == "op_BitwiseOrAssignment") this.FullyQualifiedName = "@|="; else if (tinfo.Name == "op_Comma") this.FullyQualifiedName = "@,"; else if (tinfo.Name == "op_DivisionAssignment") this.FullyQualifiedName = "@/="; else if (tinfo.Name == "op_Implicit") this.FullyQualifiedName = "@:"; else if (tinfo.Name == "op_Explicit") this.FullyQualifiedName = "@:>"; else if (tinfo.Name == "op_UnaryPlus") this.FullyQualifiedName = "@+"; else if (tinfo.Name == "op_UnaryNegation") this.FullyQualifiedName = "@-"; else if (tinfo.Name == "op_Decrement") this.FullyQualifiedName = "@--"; else if (tinfo.Name == "op_Increment") this.FullyQualifiedName = "@++"; else if (tinfo.Name == "op_OnesComplement") this.FullyQualifiedName = "@~"; else if (tinfo.Name == "op_LogicalNot") this.FullyQualifiedName = "@!"; returnType = new ReturnType ((NCC.MType)tinfo.ReturnType); this.region = Class.GetRegion (tinfo.Location); if (tinfo is NCC.MemberBuilder) this.bodyRegion = Class.GetRegion (((NCC.MemberBuilder)tinfo).BodyLocation); else this.bodyRegion = Class.GetRegion (tinfo.Location); this._member = tinfo; LoadXml (declaringType, tinfo); // Add parameters foreach (Fun_parm pinfo in tinfo.GetParameters ()) { try { parameters.Add(new Parameter(this, pinfo, node)); } catch { } } }
public Method (Class declaringType, SR.MethodInfo tinfo) { this.declaringType = declaringType; ModifierEnum mod = (ModifierEnum)0; if (tinfo.IsPrivate) mod |= ModifierEnum.Private; if (tinfo.IsAssembly) mod |= ModifierEnum.Internal; if (tinfo.IsFamily) mod |= ModifierEnum.Protected; if (tinfo.IsPublic) mod |= ModifierEnum.Public; if (tinfo.IsAbstract) mod |= ModifierEnum.Abstract; if (tinfo.IsFinal) mod |= ModifierEnum.Sealed; if (tinfo.IsStatic) mod |= ModifierEnum.Static; if (tinfo.IsVirtual) mod |= ModifierEnum.Virtual; modifiers = mod; this.FullyQualifiedName = tinfo.Name; if (tinfo.Name == "op_Addition") this.FullyQualifiedName = "@+"; else if (tinfo.Name == "op_Subtraction") this.FullyQualifiedName = "@-"; else if (tinfo.Name == "op_Multiply") this.FullyQualifiedName = "@*"; else if (tinfo.Name == "op_Division") this.FullyQualifiedName = "@/"; else if (tinfo.Name == "op_Modulus") this.FullyQualifiedName = "@%"; else if (tinfo.Name == "op_ExclusiveOr") this.FullyQualifiedName = "@^"; else if (tinfo.Name == "op_BitwiseAnd") this.FullyQualifiedName = "@&"; else if (tinfo.Name == "op_BitwiseOr") this.FullyQualifiedName = "@|"; else if (tinfo.Name == "op_LogicalAnd") this.FullyQualifiedName = "@&&"; else if (tinfo.Name == "op_LogicalOr") this.FullyQualifiedName = "@||"; else if (tinfo.Name == "op_Assign") this.FullyQualifiedName = "@="; else if (tinfo.Name == "op_LeftShift") this.FullyQualifiedName = "@<<"; else if (tinfo.Name == "op_RightShift") this.FullyQualifiedName = "@>>"; else if (tinfo.Name == "op_Equality") this.FullyQualifiedName = "@=="; else if (tinfo.Name == "op_GreaterThan") this.FullyQualifiedName = "@>"; else if (tinfo.Name == "op_LessThan") this.FullyQualifiedName = "@<"; else if (tinfo.Name == "op_Inequality") this.FullyQualifiedName = "@!="; else if (tinfo.Name == "op_GreaterThanOrEqual") this.FullyQualifiedName = "@>="; else if (tinfo.Name == "op_LessThanOrEqual") this.FullyQualifiedName = "@<="; else if (tinfo.Name == "op_MultiplicationAssignment") this.FullyQualifiedName = "@*="; else if (tinfo.Name == "op_SubtractionAssignment") this.FullyQualifiedName = "@-="; else if (tinfo.Name == "op_ExclusiveOrAssignment") this.FullyQualifiedName = "@^="; else if (tinfo.Name == "op_LeftShiftAssignment") this.FullyQualifiedName = "@<<="; else if (tinfo.Name == "op_ModulusAssignment") this.FullyQualifiedName = "@%="; else if (tinfo.Name == "op_AdditionAssignment") this.FullyQualifiedName = "@+="; else if (tinfo.Name == "op_BitwiseAndAssignment") this.FullyQualifiedName = "@&="; else if (tinfo.Name == "op_BitwiseOrAssignment") this.FullyQualifiedName = "@|="; else if (tinfo.Name == "op_Comma") this.FullyQualifiedName = "@,"; else if (tinfo.Name == "op_DivisionAssignment") this.FullyQualifiedName = "@/="; else if (tinfo.Name == "op_Implicit") this.FullyQualifiedName = "@:"; else if (tinfo.Name == "op_Explicit") this.FullyQualifiedName = "@:>"; else if (tinfo.Name == "op_UnaryPlus") this.FullyQualifiedName = "@+"; else if (tinfo.Name == "op_UnaryNegation") this.FullyQualifiedName = "@-"; else if (tinfo.Name == "op_Decrement") this.FullyQualifiedName = "@--"; else if (tinfo.Name == "op_Increment") this.FullyQualifiedName = "@++"; else if (tinfo.Name == "op_OnesComplement") this.FullyQualifiedName = "@~"; else if (tinfo.Name == "op_LogicalNot") this.FullyQualifiedName = "@!"; returnType = new ReturnType(tinfo.ReturnType); this.region = Class.GetRegion(); this.bodyRegion = Class.GetRegion(); this._member = null; LoadXml (declaringType, tinfo); // Add parameters foreach (SR.ParameterInfo pinfo in tinfo.GetParameters()) parameters.Add(new Parameter(this, pinfo, node)); }
private void AddMember (Class declaring, LanguageItemCollection lang, NCC.IMember member) { // Do not add property getters and setters, not events adders and removers, // nor overloaded operators, nor enum value__, not Nemerle internal methods if (member.Name.StartsWith("_N") || member.Name.StartsWith("get_") || member.Name.StartsWith("set_") || member.Name == "value__" || member.Name.StartsWith("op_") || member.Name.StartsWith("add_") || member.Name.StartsWith("remove_")) return; try { if (member is NCC.IField) lang.Add (new NemerleBinding.Parser.SharpDevelopTree.Field (declaring, (NCC.IField)member)); else if (member is NCC.IMethod) lang.Add (new Method (declaring, (NCC.IMethod)member)); else if (member is NCC.IProperty) { NCC.IProperty prop = (NCC.IProperty)member; if (prop.IsIndexer) lang.Add (new Indexer (declaring, prop)); else lang.Add (new Property (declaring, prop)); } else if (member is NCC.IEvent) lang.Add (new Event (declaring, (NCC.IEvent)member)); } catch (Exception e) { System.Console.WriteLine (e.Message); } }