Ejemplo n.º 1
0
		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);
	   }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
		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;
				}
			}
		}
Ejemplo n.º 4
0
 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);
 }
Ejemplo n.º 5
0
		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 ();
	   }
Ejemplo n.º 6
0
		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));
		}
Ejemplo n.º 7
0
 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;
                 }
             }
         }
     }
 }
Ejemplo n.º 8
0
		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);
	   }
Ejemplo n.º 9
0
		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);
		}
Ejemplo n.º 10
0
 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 ();
 }
Ejemplo n.º 11
0
 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 { }
     }
 }
Ejemplo n.º 12
0
 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));
 }
Ejemplo n.º 13
0
 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);
     }
 }