diff --git a/MANIFEST b/MANIFEST index 6a3558a89..5fc540b46 100644 --- a/MANIFEST +++ b/MANIFEST @@ -43,6 +43,7 @@ compilers/idlac/ada_be-mappings-corba.ads compilers/idlac/ada_be-mappings.ads compilers/idlac/ada_be-source_streams.adb compilers/idlac/ada_be-source_streams.ads +compilers/idlac/ada_be-temporaries.adb compilers/idlac/ada_be-temporaries.ads compilers/idlac/ada_be.ads compilers/idlac/ada_be.opt diff --git a/compilers/idlac/ada_be-temporaries.ads b/compilers/idlac/ada_be-temporaries.ads index 215a21e25..52cd608df 100644 --- a/compilers/idlac/ada_be-temporaries.ads +++ b/compilers/idlac/ada_be-temporaries.ads @@ -35,52 +35,27 @@ package Ada_Be.Temporaries is - pragma Pure; - pragma Warnings (Off); + pragma Preelaborate; - T_Handler : constant String; - T_Returns : constant String; - T_Send_Request_Result : constant String; - T_Self_Ref : constant String; - T_Exception_Repo_Id : constant String; - T_Members : constant String; - T_Impl_Object_Ptr : constant String; - T_Value_Operation : constant String; + function T_Handler return String; + function T_Returns return String; + function T_Send_Request_Result return String; + function T_Self_Ref return String; + function T_Exception_Repo_Id return String; + function T_Members return String; + function T_Impl_Object_Ptr return String; + function T_Value_Operation return String; - T_Request : constant String; - T_Ctx : constant String; - T_Argument : constant String; - T_Arg_Name : constant String; - T_Arg_List : constant String; - T_Excp_List : constant String; - T_Result : constant String; - T_Result_Name : constant String; - T_Operation_Name : constant String; + function T_Request return String; + function T_Ctx return String; + function T_Argument return String; + function T_Arg_Name return String; + function T_Arg_List return String; + function T_Excp_List return String; + function T_Result return String; + function T_Result_Name return String; + function T_Operation_Name return String; - T_J : constant String; - -private - - T_Handler : constant String := "Handler_Ü"; - T_Returns : constant String := "Return_Ü"; - T_Self_Ref : constant String := "Self_Ref_Ü"; - T_Send_Request_Result : constant String := "Send_Request_Result_Ü"; - T_Exception_Repo_Id : constant String := "Exception_Repo_Id_Ü"; - T_Members : constant String := "Members_Ü"; - T_Impl_Object_Ptr : constant String := "Object_Ü"; - T_Value_Operation : constant String := "Op_Ü"; - - - T_Request : constant String := "Request_Ü"; - T_Ctx : constant String := "Ctx_Ü"; - T_Argument : constant String := "Argument_Ü_"; - T_Arg_Name : constant String := "Arg_Name_Ü_"; - T_Arg_List : constant String := "Arg_List_Ü"; - T_Excp_List : constant String := "Excp_List_Ü"; - T_Result : constant String := "Result_Ü"; - T_Result_Name : constant String := "Result_Name_Ü"; - T_Operation_Name : constant String := "Operation_Name_Ü"; - - T_J : constant String := "J_Ü"; + function T_J return String; end Ada_Be.Temporaries; diff --git a/compilers/idlac/idlac.adb b/compilers/idlac/idlac.adb index 29cb886ab..fa392808a 100644 --- a/compilers/idlac/idlac.adb +++ b/compilers/idlac/idlac.adb @@ -31,7 +31,7 @@ -- -- ------------------------------------------------------------------------------ --- $Id: //droopi/main/compilers/idlac/idlac.adb#7 $ +-- $Id$ with Ada.Text_IO; use Ada.Text_IO; with Ada.Command_Line; use Ada.Command_Line; @@ -73,6 +73,8 @@ procedure Idlac is Put_Line (Current_Error, " -q Be quiet."); Put_Line (Current_Error, " -noir Don't generate code for " & "interface repository."); + Put_Line (Current_Error, " -gnatW8"); + Put_Line (Current_Error, " Use UTF8 character encoding"); Put_Line (Current_Error, " -cppargs ARGS"); Put_Line (Current_Error, " Pass ARGS to the C++ preprocessor."); Put_Line (Current_Error, " -I dir is a shortcut for -cppargs -I dir."); @@ -89,7 +91,7 @@ begin loop -- case Getopt ("E I: d i k p q nodyn noir") is - case Getopt ("E I: d i k p q noir") is + case Getopt ("E I: d i k p q noir gnatW8") is when ASCII.Nul => exit; when 'E' => @@ -121,6 +123,9 @@ begin when 'q' => Verbose := False; + when 'g' => + Character_Encoding := UTF_8; + when others => -- This never happens. raise Program_Error; diff --git a/compilers/idlac/idlac_flags.ads b/compilers/idlac/idlac_flags.ads index 63bd7dce4..dd69a3d2f 100644 --- a/compilers/idlac/idlac_flags.ads +++ b/compilers/idlac/idlac_flags.ads @@ -37,12 +37,16 @@ package Idlac_Flags is pragma Preelaborate; - Generate_Impl_Template : Boolean := False; - Keep_Temporary_Files : Boolean := False; - Preprocess_Only : Boolean := False; - To_Stdout : Boolean := False; - Verbose : Boolean := True; - Generate_Delegate : Boolean := False; - Generate_Dyn : Boolean := True; - Generate_IR : Boolean := True; + type Encoding is (ISO_Latin_1, UTF_8); + + Generate_Impl_Template : Boolean := False; + Keep_Temporary_Files : Boolean := False; + Preprocess_Only : Boolean := False; + To_Stdout : Boolean := False; + Verbose : Boolean := True; + Generate_Delegate : Boolean := False; + Generate_Dyn : Boolean := True; + Generate_IR : Boolean := True; + Character_Encoding : Encoding := ISO_Latin_1; + end Idlac_Flags;