-- 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.Diagnostics.SymbolStore.ISymbolDocumentWriter.Ref is access;
with type MSSyst.String.Ref is access;
with type MSSyst.Guid.Valuetype is tagged;
with type MSSyst.Diagnostics.SymbolStore.SymbolToken.Valuetype is tagged;
with MSSyst.Reflection.FieldAttributes;
with MSSyst.Diagnostics.SymbolStore.SymAddressKind;
with MSSyst.Reflection.ParameterAttributes;
package MSSyst.Diagnostics.SymbolStore.ISymbolWriter 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 (Self : access MSSyst.Object.Typ'Class)
      is abstract new MSSyst.Object.Typ with null record;
   pragma MSIL_Interface(Typ);
   procedure Close(
      This : access Typ) is abstract;
   procedure CloseMethod(
      This : access Typ) is abstract;
   procedure CloseNamespace(
      This : access Typ) is abstract;
   procedure CloseScope(
      This : access Typ;
      endOffset : Integer) is abstract;
   function DefineDocument(
      This : access Typ;
      url : MSSyst.String.Ref;
      language : MSSyst.Guid.Valuetype;
      languageVendor : MSSyst.Guid.Valuetype;
      documentType : MSSyst.Guid.Valuetype) return MSSyst.Diagnostics.SymbolStore.ISymbolDocumentWriter.Ref is abstract;
   procedure DefineField(
      This : access Typ;
      parent : MSSyst.Diagnostics.SymbolStore.SymbolToken.Valuetype;
      name : MSSyst.String.Ref;
      attributes : MSSyst.Reflection.FieldAttributes.Valuetype;
      signature : MSIL_Types.unsigned_int8_Arr;
      addrKind : MSSyst.Diagnostics.SymbolStore.SymAddressKind.Valuetype;
      addr1 : Integer;
      addr2 : Integer;
      addr3 : Integer) is abstract;
   procedure DefineGlobalVariable(
      This : access Typ;
      name : MSSyst.String.Ref;
      attributes : MSSyst.Reflection.FieldAttributes.Valuetype;
      signature : MSIL_Types.unsigned_int8_Arr;
      addrKind : MSSyst.Diagnostics.SymbolStore.SymAddressKind.Valuetype;
      addr1 : Integer;
      addr2 : Integer;
      addr3 : Integer) is abstract;
   procedure DefineLocalVariable(
      This : access Typ;
      name : MSSyst.String.Ref;
      attributes : MSSyst.Reflection.FieldAttributes.Valuetype;
      signature : MSIL_Types.unsigned_int8_Arr;
      addrKind : MSSyst.Diagnostics.SymbolStore.SymAddressKind.Valuetype;
      addr1 : Integer;
      addr2 : Integer;
      addr3 : Integer;
      startOffset : Integer;
      endOffset : Integer) is abstract;
   procedure DefineParameter(
      This : access Typ;
      name : MSSyst.String.Ref;
      attributes : MSSyst.Reflection.ParameterAttributes.Valuetype;
      sequence : Integer;
      addrKind : MSSyst.Diagnostics.SymbolStore.SymAddressKind.Valuetype;
      addr1 : Integer;
      addr2 : Integer;
      addr3 : Integer) is abstract;
   procedure DefineSequencePoints(
      This : access Typ;
      document : MSSyst.Diagnostics.SymbolStore.ISymbolDocumentWriter.Ref;
      offsets : MSIL_Types.Int32_Arr;
      lines : MSIL_Types.Int32_Arr;
      columns : MSIL_Types.Int32_Arr;
      endLines : MSIL_Types.Int32_Arr;
      endColumns : MSIL_Types.Int32_Arr) is abstract;
   procedure Initialize(
      This : access Typ;
      emitter : MSIL_Types.native_int;
      filename : MSSyst.String.Ref;
      fFullBuild : Standard.Boolean) is abstract;
   procedure OpenMethod(
      This : access Typ;
      method : MSSyst.Diagnostics.SymbolStore.SymbolToken.Valuetype) is abstract;
   procedure OpenNamespace(
      This : access Typ;
      name : MSSyst.String.Ref) is abstract;
   function OpenScope(
      This : access Typ;
      startOffset : Integer) return Integer is abstract;
   procedure SetMethodSourceRange(
      This : access Typ;
      startDoc : MSSyst.Diagnostics.SymbolStore.ISymbolDocumentWriter.Ref;
      startLine : Integer;
      startColumn : Integer;
      endDoc : MSSyst.Diagnostics.SymbolStore.ISymbolDocumentWriter.Ref;
      endLine : Integer;
      endColumn : Integer) is abstract;
   procedure SetScopeRange(
      This : access Typ;
      scopeID : Integer;
      startOffset : Integer;
      endOffset : Integer) is abstract;
   procedure SetSymAttribute(
      This : access Typ;
      parent : MSSyst.Diagnostics.SymbolStore.SymbolToken.Valuetype;
      name : MSSyst.String.Ref;
      data : MSIL_Types.unsigned_int8_Arr) is abstract;
   procedure SetUnderlyingWriter(
      This : access Typ;
      underlyingWriter : MSIL_Types.native_int) is abstract;
   procedure SetUserEntryPoint(
      This : access Typ;
      entryMethod : MSSyst.Diagnostics.SymbolStore.SymbolToken.Valuetype) is abstract;
   procedure UsingNamespace(
      This : access Typ;
      fullName : MSSyst.String.Ref) is abstract;
private
   pragma Import(MSIL,Close,"Close");
   pragma Import(MSIL,CloseMethod,"CloseMethod");
   pragma Import(MSIL,CloseNamespace,"CloseNamespace");
   pragma Import(MSIL,CloseScope,"CloseScope");
   pragma Import(MSIL,DefineDocument,"DefineDocument");
   pragma Import(MSIL,DefineField,"DefineField");
   pragma Import(MSIL,DefineGlobalVariable,"DefineGlobalVariable");
   pragma Import(MSIL,DefineLocalVariable,"DefineLocalVariable");
   pragma Import(MSIL,DefineParameter,"DefineParameter");
   pragma Import(MSIL,DefineSequencePoints,"DefineSequencePoints");
   pragma Import(MSIL,Initialize,"Initialize");
   pragma Import(MSIL,OpenMethod,"OpenMethod");
   pragma Import(MSIL,OpenNamespace,"OpenNamespace");
   pragma Import(MSIL,OpenScope,"OpenScope");
   pragma Import(MSIL,SetMethodSourceRange,"SetMethodSourceRange");
   pragma Import(MSIL,SetScopeRange,"SetScopeRange");
   pragma Import(MSIL,SetSymAttribute,"SetSymAttribute");
   pragma Import(MSIL,SetUnderlyingWriter,"SetUnderlyingWriter");
   pragma Import(MSIL,SetUserEntryPoint,"SetUserEntryPoint");
   pragma Import(MSIL,UsingNamespace,"UsingNamespace");
end MSSyst.Diagnostics.SymbolStore.ISymbolWriter;
pragma Extensions_Allowed(Off);
pragma Import(MSIL,MSSyst.Diagnostics.SymbolStore.ISymbolWriter,
   ".ver 1:0:5000:0 .publickeytoken=( b7 7a 5c 56 19 34 e0 89 )",
   "[mscorlib]System.Diagnostics.SymbolStore.ISymbolWriter");
