-- Autogenerated by MSIL2Ada v. 2
-- By: Martin C. Carlisle
--     Department of Computer Science
--     US Air Force Academy
--     carlislem@acm.org
pragma Extensions_Allowed(On);
with MSSyst.Object;
with MSIL_Types;
use MSIL_Types;
with type MSSyst.Runtime.InteropServices.uMemberInfo.Ref is access;
with type MSSyst.Reflection.ICustomAttributeProvider.Ref is access;
with type MSSyst.Runtime.InteropServices.uType.Ref is access;
with type MSSyst.Reflection.IReflect.Ref is access;
with type MSSyst.Runtime.InteropServices.uEnumBuilder.Ref is access;
with type MSSyst.Type_k.Ref is access;
with type MSSyst.Reflection.Emit.FieldBuilder.Ref is access;
with type MSSyst.String.Ref is access;
with type MSSyst.Object.Ref is access;
with type MSSyst.Type_k.Ref_array is access;
with type MSSyst.Reflection.TypeFilter.Ref is access;
with type MSSyst.Reflection.MemberInfo.Ref_array is access;
with MSSyst.Reflection.MemberTypes;
with MSSyst.Reflection.BindingFlags;
with type MSSyst.Reflection.MemberFilter.Ref is access;
with type MSSyst.Reflection.Assembly.Ref is access;
with MSSyst.Reflection.TypeAttributes;
with type MSSyst.Guid.Valuetype is tagged;
with type MSSyst.Reflection.Module.Ref is access;
with type MSSyst.RuntimeTypeHandle.Valuetype is tagged;
with type MSSyst.Reflection.ConstructorInfo.Ref is access;
with type MSSyst.Reflection.Emit.TypeToken.Valuetype is tagged;
with type MSSyst.Reflection.Binder.Ref is access;
with MSSyst.Reflection.CallingConventions;
with MSSyst.Reflection.ParameterModifier;
with type MSSyst.Reflection.ConstructorInfo.Ref_array is access;
with type MSSyst.Object.Ref_array is access;
with type MSSyst.Reflection.EventInfo.Ref is access;
with type MSSyst.Reflection.EventInfo.Ref_array is access;
with type MSSyst.Reflection.FieldInfo.Ref is access;
with type MSSyst.Reflection.FieldInfo.Ref_array is access;
with type MSSyst.Reflection.InterfaceMapping.Valuetype is tagged;
with type MSSyst.Reflection.MethodInfo.Ref is access;
with type MSSyst.Reflection.MethodInfo.Ref_array is access;
with type MSSyst.Reflection.PropertyInfo.Ref_array is access;
with type MSSyst.Reflection.PropertyInfo.Ref is access;
with type MSSyst.Globalization.CultureInfo.Ref is access;
with type MSSyst.String.Ref_array is access;
with type MSSyst.Reflection.Emit.CustomAttributeBuilder.Ref is access;
with MSSyst.Type_k;
package MSSyst.Reflection.Emit.EnumBuilder is
   type Typ;
   type Ref is access all Typ'Class;
   type Ref_addrof is access all Ref;
   type Ref_Arr is array(Natural range <>) of Ref;
   type Ref_Array is access all Ref_Arr;
   type Ref_Array_addrof is access all Ref_Array;
   type Typ(
         I_uMemberInfo : MSSyst.Runtime.InteropServices.uMemberInfo.Ref;
         I_ICustomAttributeProvider : MSSyst.Reflection.ICustomAttributeProvider.Ref;
         I_uType : MSSyst.Runtime.InteropServices.uType.Ref;
         I_IReflect : MSSyst.Reflection.IReflect.Ref;
         I_uEnumBuilder : MSSyst.Runtime.InteropServices.uEnumBuilder.Ref
      ) is new MSSyst.Type_k.Typ(
         I_uMemberInfo => I_uMemberInfo,
         I_ICustomAttributeProvider => I_ICustomAttributeProvider,
         I_uType => I_uType,
         I_IReflect => I_IReflect
      ) with record
      null;
   end record;
   function CreateType(
      This : access Typ) return MSSyst.Type_k.Ref;
   function DefineLiteral(
      This : access Typ;
      literalName : MSSyst.String.Ref;
      literalValue : MSSyst.Object.Ref) return MSSyst.Reflection.Emit.FieldBuilder.Ref;
   function get_Assembly(
      This : access Typ) return MSSyst.Reflection.Assembly.Ref;
   function get_AssemblyQualifiedName(
      This : access Typ) return MSSyst.String.Ref;
   function get_BaseType(
      This : access Typ) return MSSyst.Type_k.Ref;
   function get_DeclaringType(
      This : access Typ) return MSSyst.Type_k.Ref;
   function get_FullName(
      This : access Typ) return MSSyst.String.Ref;
   function get_GUID(
      This : access Typ) return MSSyst.Guid.Valuetype;
   function get_Module(
      This : access Typ) return MSSyst.Reflection.Module.Ref;
   function get_Name(
      This : access Typ) return MSSyst.String.Ref;
   function get_Namespace(
      This : access Typ) return MSSyst.String.Ref;
   function get_ReflectedType(
      This : access Typ) return MSSyst.Type_k.Ref;
   function get_TypeHandle(
      This : access Typ) return MSSyst.RuntimeTypeHandle.Valuetype;
   function get_TypeToken(
      This : access Typ) return MSSyst.Reflection.Emit.TypeToken.Valuetype;
   function get_UnderlyingField(
      This : access Typ) return MSSyst.Reflection.Emit.FieldBuilder.Ref;
   function get_UnderlyingSystemType(
      This : access Typ) return MSSyst.Type_k.Ref;
   function GetConstructors(
      This : access Typ;
      bindingAttr : MSSyst.Reflection.BindingFlags.Valuetype) return MSSyst.Reflection.ConstructorInfo.Ref_array;
   function GetCustomAttributes(
      This : access Typ;
      attributeType : MSSyst.Type_k.Ref;
      inherit : Standard.Boolean) return MSSyst.Object.Ref_array;
   function GetCustomAttributes(
      This : access Typ;
      inherit : Standard.Boolean) return MSSyst.Object.Ref_array;
   function GetElementType(
      This : access Typ) return MSSyst.Type_k.Ref;
   function GetEvent(
      This : access Typ;
      name : MSSyst.String.Ref;
      bindingAttr : MSSyst.Reflection.BindingFlags.Valuetype) return MSSyst.Reflection.EventInfo.Ref;
   function GetEvents(
      This : access Typ) return MSSyst.Reflection.EventInfo.Ref_array;
   function GetEvents(
      This : access Typ;
      bindingAttr : MSSyst.Reflection.BindingFlags.Valuetype) return MSSyst.Reflection.EventInfo.Ref_array;
   function GetField(
      This : access Typ;
      name : MSSyst.String.Ref;
      bindingAttr : MSSyst.Reflection.BindingFlags.Valuetype) return MSSyst.Reflection.FieldInfo.Ref;
   function GetFields(
      This : access Typ;
      bindingAttr : MSSyst.Reflection.BindingFlags.Valuetype) return MSSyst.Reflection.FieldInfo.Ref_array;
   function GetInterface(
      This : access Typ;
      name : MSSyst.String.Ref;
      ignoreCase : Standard.Boolean) return MSSyst.Type_k.Ref;
   function GetInterfaceMap(
      This : access Typ;
      interfaceType : MSSyst.Type_k.Ref) return MSSyst.Reflection.InterfaceMapping.Valuetype;
   function GetInterfaces(
      This : access Typ) return MSSyst.Type_k.Ref_array;
   function GetMember(
      This : access Typ;
      name : MSSyst.String.Ref;
      type_k : MSSyst.Reflection.MemberTypes.Valuetype;
      bindingAttr : MSSyst.Reflection.BindingFlags.Valuetype) return MSSyst.Reflection.MemberInfo.Ref_array;
   function GetMembers(
      This : access Typ;
      bindingAttr : MSSyst.Reflection.BindingFlags.Valuetype) return MSSyst.Reflection.MemberInfo.Ref_array;
   function GetMethods(
      This : access Typ;
      bindingAttr : MSSyst.Reflection.BindingFlags.Valuetype) return MSSyst.Reflection.MethodInfo.Ref_array;
   function GetNestedType(
      This : access Typ;
      name : MSSyst.String.Ref;
      bindingAttr : MSSyst.Reflection.BindingFlags.Valuetype) return MSSyst.Type_k.Ref;
   function GetNestedTypes(
      This : access Typ;
      bindingAttr : MSSyst.Reflection.BindingFlags.Valuetype) return MSSyst.Type_k.Ref_array;
   function GetProperties(
      This : access Typ;
      bindingAttr : MSSyst.Reflection.BindingFlags.Valuetype) return MSSyst.Reflection.PropertyInfo.Ref_array;
   function InvokeMember(
      This : access Typ;
      name : MSSyst.String.Ref;
      invokeAttr : MSSyst.Reflection.BindingFlags.Valuetype;
      binder : MSSyst.Reflection.Binder.Ref;
      target : MSSyst.Object.Ref;
      args : MSSyst.Object.Ref_array;
      modifiers : MSSyst.Reflection.ParameterModifier.Valuetype_array;
      culture : MSSyst.Globalization.CultureInfo.Ref;
      namedParameters : MSSyst.String.Ref_array) return MSSyst.Object.Ref;
   function IsDefined(
      This : access Typ;
      attributeType : MSSyst.Type_k.Ref;
      inherit : Standard.Boolean) return Standard.Boolean;
   procedure SetCustomAttribute(
      This : access Typ;
      customBuilder : MSSyst.Reflection.Emit.CustomAttributeBuilder.Ref);
   procedure SetCustomAttribute(
      This : access Typ;
      con : MSSyst.Reflection.ConstructorInfo.Ref;
      binaryAttribute : MSIL_Types.unsigned_int8_Arr);
private
   pragma Convention(MSIL,Typ);
   pragma Import(MSIL,CreateType,"CreateType");
   pragma Import(MSIL,DefineLiteral,"DefineLiteral");
   pragma Import(MSIL,get_Assembly,"get_Assembly");
   pragma Import(MSIL,get_AssemblyQualifiedName,"get_AssemblyQualifiedName");
   pragma Import(MSIL,get_BaseType,"get_BaseType");
   pragma Import(MSIL,get_DeclaringType,"get_DeclaringType");
   pragma Import(MSIL,get_FullName,"get_FullName");
   pragma Import(MSIL,get_GUID,"get_GUID");
   pragma Import(MSIL,get_Module,"get_Module");
   pragma Import(MSIL,get_Name,"get_Name");
   pragma Import(MSIL,get_Namespace,"get_Namespace");
   pragma Import(MSIL,get_ReflectedType,"get_ReflectedType");
   pragma Import(MSIL,get_TypeHandle,"get_TypeHandle");
   pragma Import(MSIL,get_TypeToken,"get_TypeToken");
   pragma Import(MSIL,get_UnderlyingField,"get_UnderlyingField");
   pragma Import(MSIL,get_UnderlyingSystemType,"get_UnderlyingSystemType");
   pragma Import(MSIL,GetConstructors,"GetConstructors");
   pragma Import(MSIL,GetCustomAttributes,"GetCustomAttributes");
   pragma Import(MSIL,GetElementType,"GetElementType");
   pragma Import(MSIL,GetEvent,"GetEvent");
   pragma Import(MSIL,GetEvents,"GetEvents");
   pragma Import(MSIL,GetField,"GetField");
   pragma Import(MSIL,GetFields,"GetFields");
   pragma Import(MSIL,GetInterface,"GetInterface");
   pragma Import(MSIL,GetInterfaceMap,"GetInterfaceMap");
   pragma Import(MSIL,GetInterfaces,"GetInterfaces");
   pragma Import(MSIL,GetMember,"GetMember");
   pragma Import(MSIL,GetMembers,"GetMembers");
   pragma Import(MSIL,GetMethods,"GetMethods");
   pragma Import(MSIL,GetNestedType,"GetNestedType");
   pragma Import(MSIL,GetNestedTypes,"GetNestedTypes");
   pragma Import(MSIL,GetProperties,"GetProperties");
   pragma Import(MSIL,InvokeMember,"InvokeMember");
   pragma Import(MSIL,IsDefined,"IsDefined");
   pragma Import(MSIL,SetCustomAttribute,"SetCustomAttribute");
end MSSyst.Reflection.Emit.EnumBuilder;
pragma Extensions_Allowed(Off);
pragma Import(MSIL,MSSyst.Reflection.Emit.EnumBuilder,
   ".ver 1:0:5000:0 .publickeytoken=( b7 7a 5c 56 19 34 e0 89 )",
   "[mscorlib]System.Reflection.Emit.EnumBuilder");
