public static TypeAttributes TypeAttr (Modifiers mod_flags, bool is_toplevel)
{
TypeAttributes t = 0;
if (is_toplevel){
if ((mod_flags & Modifiers.PUBLIC) != 0)
t = TypeAttributes.Public;
else if ((mod_flags & Modifiers.PRIVATE) != 0)
t = TypeAttributes.NotPublic;
} else {
if ((mod_flags & Modifiers.PUBLIC) != 0)
t = TypeAttributes.NestedPublic;
else if ((mod_flags & Modifiers.PRIVATE) != 0)
t = TypeAttributes.NestedPrivate;
else if ((mod_flags & (Modifiers.PROTECTED | Modifiers.INTERNAL)) == (Modifiers.PROTECTED | Modifiers.INTERNAL))
t = TypeAttributes.NestedFamORAssem;
else if ((mod_flags & Modifiers.PROTECTED) != 0)
t = TypeAttributes.NestedFamily;
else if ((mod_flags & Modifiers.INTERNAL) != 0)
t = TypeAttributes.NestedAssembly;
}
if ((mod_flags & Modifiers.SEALED) != 0)
t |= TypeAttributes.Sealed;
if ((mod_flags & Modifiers.ABSTRACT) != 0)
t |= TypeAttributes.Abstract;
return t;
}