Ada 2005 Training Notes.

源代码在线查看: b~main.adb

软件大小: 394 K
上传用户: johni
关键词: Training Notes 2005 Ada
下载地址: 免注册下载 普通下载 VIP

相关代码

				pragma Ada_95;
				pragma Source_File_Name (ada_main, Spec_File_Name => "b~main.ads");
				pragma Source_File_Name (ada_main, Body_File_Name => "b~main.adb");
				
				with System.Restrictions;
				
				package body ada_main is
				   pragma Warnings (Off);
				
				   procedure Do_Finalize;
				   pragma Import (C, Do_Finalize, "system__standard_library__adafinal");
				
				   Local_Priority_Specific_Dispatching : constant String := "";
				   Local_Interrupt_States : constant String := "";
				
				   procedure adainit is
				      E17 : Boolean; pragma Import (Ada, E17, "system__secondary_stack_E");
				      E13 : Boolean; pragma Import (Ada, E13, "system__soft_links_E");
				      E23 : Boolean; pragma Import (Ada, E23, "system__exception_table_E");
				      E70 : Boolean; pragma Import (Ada, E70, "ada__io_exceptions_E");
				      E80 : Boolean; pragma Import (Ada, E80, "ada__numerics_E");
				      E48 : Boolean; pragma Import (Ada, E48, "ada__tags_E");
				      E46 : Boolean; pragma Import (Ada, E46, "ada__streams_E");
				      E63 : Boolean; pragma Import (Ada, E63, "system__finalization_root_E");
				      E65 : Boolean; pragma Import (Ada, E65, "system__finalization_implementation_E");
				      E61 : Boolean; pragma Import (Ada, E61, "ada__finalization_E");
				      E75 : Boolean; pragma Import (Ada, E75, "ada__finalization__list_controller_E");
				      E73 : Boolean; pragma Import (Ada, E73, "system__file_control_block_E");
				      E59 : Boolean; pragma Import (Ada, E59, "system__file_io_E");
				      E06 : Boolean; pragma Import (Ada, E06, "ada__text_io_E");
				      E82 : Boolean; pragma Import (Ada, E82, "limitedprivatetype_E");
				      E77 : Boolean; pragma Import (Ada, E77, "random_E");
				      E79 : Boolean; pragma Import (Ada, E79, "stacks_E");
				
				      Main_Priority : Integer;
				      pragma Import (C, Main_Priority, "__gl_main_priority");
				      Time_Slice_Value : Integer;
				      pragma Import (C, Time_Slice_Value, "__gl_time_slice_val");
				      WC_Encoding : Character;
				      pragma Import (C, WC_Encoding, "__gl_wc_encoding");
				      Locking_Policy : Character;
				      pragma Import (C, Locking_Policy, "__gl_locking_policy");
				      Queuing_Policy : Character;
				      pragma Import (C, Queuing_Policy, "__gl_queuing_policy");
				      Task_Dispatching_Policy : Character;
				      pragma Import (C, Task_Dispatching_Policy, "__gl_task_dispatching_policy");
				      Priority_Specific_Dispatching : System.Address;
				      pragma Import (C, Priority_Specific_Dispatching, "__gl_priority_specific_dispatching");
				      Num_Specific_Dispatching : Integer;
				      pragma Import (C, Num_Specific_Dispatching, "__gl_num_specific_dispatching");
				      Interrupt_States : System.Address;
				      pragma Import (C, Interrupt_States, "__gl_interrupt_states");
				      Num_Interrupt_States : Integer;
				      pragma Import (C, Num_Interrupt_States, "__gl_num_interrupt_states");
				      Unreserve_All_Interrupts : Integer;
				      pragma Import (C, Unreserve_All_Interrupts, "__gl_unreserve_all_interrupts");
				      Zero_Cost_Exceptions : Integer;
				      pragma Import (C, Zero_Cost_Exceptions, "__gl_zero_cost_exceptions");
				      Detect_Blocking : Integer;
				      pragma Import (C, Detect_Blocking, "__gl_detect_blocking");
				      Default_Stack_Size : Integer;
				      pragma Import (C, Default_Stack_Size, "__gl_default_stack_size");
				
				      procedure Install_Handler;
				      pragma Import (C, Install_Handler, "__gnat_install_handler");
				
				      Handler_Installed : Integer;
				      pragma Import (C, Handler_Installed, "__gnat_handler_installed");
				   begin
				      Main_Priority := -1;
				      Time_Slice_Value := -1;
				      WC_Encoding := 'b';
				      Locking_Policy := ' ';
				      Queuing_Policy := ' ';
				      Task_Dispatching_Policy := ' ';
				      System.Restrictions.Run_Time_Restrictions :=
				        (Set =>
				          (False, False, False, False, False, False, False, False, 
				           False, False, False, False, False, False, False, False, 
				           False, False, False, False, False, False, False, False, 
				           False, False, False, False, False, False, False, False, 
				           False, False, False, False, False, False, False, False, 
				           False, False, False, False, False, False, False, False, 
				           False, False, False, False, False, False, False, False, 
				           False, False, False, False, False, False, False, False, 
				           False, False),
				         Value => (0, 0, 0, 0, 0, 0, 0),
				         Violated =>
				          (False, False, True, True, False, False, False, True, 
				           True, True, False, False, False, False, False, True, 
				           True, False, True, True, True, True, True, True, 
				           False, True, True, False, True, False, True, False, 
				           False, True, False, False, False, True, False, True, 
				           False, False, False, False, False, False, False, True, 
				           True, True, False, False, False, True, True, False, 
				           True, True, True, False, False, False, False, False, 
				           False, False),
				         Count => (0, 0, 0, 0, 0, 0, 0),
				         Unknown => (False, False, False, False, False, False, False));
				      Priority_Specific_Dispatching :=
				        Local_Priority_Specific_Dispatching'Address;
				      Num_Specific_Dispatching := 0;
				      Interrupt_States := Local_Interrupt_States'Address;
				      Num_Interrupt_States := 0;
				      Unreserve_All_Interrupts := 0;
				      Zero_Cost_Exceptions := 1;
				      Detect_Blocking := 0;
				      Default_Stack_Size := -1;
				
				      if Handler_Installed = 0 then
				         Install_Handler;
				      end if;
				
				      System.Soft_Links'Elab_Body;
				      E13 := True;
				      System.Secondary_Stack'Elab_Body;
				      E17 := True;
				      System.Exception_Table'Elab_Body;
				      E23 := True;
				      Ada.Io_Exceptions'Elab_Spec;
				      E70 := True;
				      Ada.Numerics'Elab_Spec;
				      E80 := True;
				      Ada.Tags'Elab_Spec;
				      Ada.Streams'Elab_Spec;
				      E46 := True;
				      System.Finalization_Root'Elab_Spec;
				      E63 := True;
				      System.Finalization_Implementation'Elab_Spec;
				      System.Finalization_Implementation'Elab_Body;
				      E65 := True;
				      Ada.Finalization'Elab_Spec;
				      E61 := True;
				      Ada.Finalization.List_Controller'Elab_Spec;
				      E75 := True;
				      System.File_Control_Block'Elab_Spec;
				      E73 := True;
				      System.File_Io'Elab_Body;
				      E59 := True;
				      Ada.Text_Io'Elab_Spec;
				      Ada.Text_Io'Elab_Body;
				      E06 := True;
				      Ada.Tags'Elab_Body;
				      E48 := True;
				      E82 := True;
				      E77 := True;
				      Stacks'Elab_Spec;
				      E79 := True;
				   end adainit;
				
				   procedure adafinal is
				   begin
				      Do_Finalize;
				   end adafinal;
				
				   function main
				     (argc : Integer;
				      argv : System.Address;
				      envp : System.Address)
				      return Integer
				   is
				      procedure initialize (Addr : System.Address);
				      pragma Import (C, initialize, "__gnat_initialize");
				
				      procedure finalize;
				      pragma Import (C, finalize, "__gnat_finalize");
				
				      procedure Ada_Main_Program;
				      pragma Import (Ada, Ada_Main_Program, "_ada_main");
				
				      SEH : aliased array (1 .. 2) of Integer;
				
				      Ensure_Reference : aliased System.Address := Ada_Main_Program_Name'Address;
				      pragma Volatile (Ensure_Reference);
				
				   begin
				      gnat_argc := argc;
				      gnat_argv := argv;
				      gnat_envp := envp;
				
				      Initialize (SEH'Address);
				      adainit;
				      Break_Start;
				      Ada_Main_Program;
				      Do_Finalize;
				      Finalize;
				      return (gnat_exit_status);
				   end;
				
				--  BEGIN Object file/option list
				   --   c:\documents and settings\tunca\desktop\ada2005\packages\limitedprivatetype.o
				   --   c:\documents and settings\tunca\desktop\ada2005\packages\random.o
				   --   c:\documents and settings\tunca\desktop\ada2005\packages\stacks.o
				   --   c:\documents and settings\tunca\desktop\ada2005\packages\main.o
				   --   -Lc:\documents and settings\tunca\desktop\ada2005\packages\
				   --   -LC:/GNAT/2007/lib/gcc/pentium-mingw32msv/4.1.3/adalib/
				   --   -static
				   --   -lgnat
				   --   -Wl,--stack=0x2000000
				--  END Object file/option list   
				
				end ada_main;
							

相关资源