Support for generating code that can be compiled with UTF-8

encoding (-gnatW8).

Submitted by:	Vadim Godunko
Reviewed by:	Thomas Quinot

[Imported from Perforce change 8674 at 2006-12-01 20:37:09]

Subversion-branch: /trunk/polyorb
Subversion-revision: 36248
This commit is contained in:
Thomas Quinot
2004-10-14 10:49:39 +00:00
parent d7a852025a
commit 4e45d70311
4 changed files with 39 additions and 54 deletions

View File

@@ -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

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;