Beispiel #1
0
        public static int GetGlyph(TopDeclaration decl)
        {
            if (decl == null)
            {
                return(-1);
            }

            NemerleModifiers attrs = decl.Attributes;

            GlyphType kind =
                decl is TopDeclaration.Delegate ? GlyphType.Delegate :
                decl is TopDeclaration.Enum ? GlyphType.Enum :
                decl is TopDeclaration.Interface ? GlyphType.Interface :
                decl is TopDeclaration.Macro ? GlyphType.Macro :
                decl is TopDeclaration.Variant ? GlyphType.Variant :
                decl is TopDeclaration.VariantOption ? GlyphType.VariantOption :
                Has(attrs, NemerleModifiers.Struct) ? GlyphType.Struct :
                GlyphType.Class;

            GlyphSubtype modifier =
                Has(attrs, NemerleModifiers.Internal | NemerleModifiers.Protected) ?
                GlyphSubtype.ProtectedInternal :
                Has(attrs, NemerleModifiers.Internal) ? GlyphSubtype.Internal :
                Has(attrs, NemerleModifiers.Protected) ? GlyphSubtype.Protected :
                Has(attrs, NemerleModifiers.Public) ? GlyphSubtype.Public :
                Has(attrs, NemerleModifiers.Private) ? GlyphSubtype.Private :
                decl is TopDeclaration.VariantOption ? GlyphSubtype.Public :
                GlyphSubtype.Private;

            return((int)kind + (int)modifier);
        }
Beispiel #2
0
        public static int GetGlyph(ClassMember member)
        {
            if (member == null)
            {
                return(-1);
            }

            int kind     = 0;
            int modifier = 0;

            if (member is ClassMember.Field)
            {
                kind = 7;
            }
            else if (member is ClassMember.Property)
            {
                kind = 17;
            }
            else if (member is ClassMember.Function)
            {
                kind = 12;
            }
            else if (member is ClassMember.Event)
            {
                kind = 5;
            }

            NemerleModifiers attrs = member.Attributes;

            modifier =
                Has(attrs, NemerleModifiers.Internal) ? 1 :
                Has(attrs, NemerleModifiers.Protected) ? 3 :
                Has(attrs, NemerleModifiers.Public) ? 0 :
                member.DefinedIn is TopDeclaration.VariantOption ? 0 :
                4;
            return(kind * 6 + modifier);
        }
Beispiel #3
0
 private static bool Has(NemerleModifiers attrs, NemerleModifiers value)
 {
     return((attrs & value) == value);
 }