diff options
author | Piotr Trojanek <trojanek@adacore.com> | 2021-12-03 13:38:08 +0100 |
---|---|---|
committer | Pierre-Marie de Rodat <derodat@adacore.com> | 2022-01-07 16:24:11 +0000 |
commit | d1e0b1be622e2beb55babe892691cc56ea20263d (patch) | |
tree | 1bf25037f47d5de1bea3c2f0c5d4a0d40f5dbdaa | |
parent | c31cbf91a0e2740cb317a4339a62cebd1d633475 (diff) | |
download | gcc-d1e0b1be622e2beb55babe892691cc56ea20263d.zip gcc-d1e0b1be622e2beb55babe892691cc56ea20263d.tar.gz gcc-d1e0b1be622e2beb55babe892691cc56ea20263d.tar.bz2 |
[Ada] Remove repeated routines for printing AST in Mixed_Case
gcc/ada/
* osint.adb (To_Lower): Clarify that only To_Lower function
causes bootstrap issues; fix style.
* treepr.adb (Print_Str_Mixed_Case): Reuse existing case
conversion routine.
(To_Mixed): Rename from Capitalize; reuse System.Case_Util
procedure and explain the bootstrap issue.
-rw-r--r-- | gcc/ada/osint.adb | 5 | ||||
-rw-r--r-- | gcc/ada/treepr.adb | 66 |
2 files changed, 21 insertions, 50 deletions
diff --git a/gcc/ada/osint.adb b/gcc/ada/osint.adb index a8a6801..5e4f3fc 100644 --- a/gcc/ada/osint.adb +++ b/gcc/ada/osint.adb @@ -1061,7 +1061,8 @@ package body Osint is function File_Names_Equal (File1, File2 : String) return Boolean is function To_Lower (A : String) return String; - -- For bootstrap reasons, we cannot use To_Lower from System.Case_Util + -- For bootstrap reasons, we cannot use To_Lower function from + -- System.Case_Util. -------------- -- To_Lower -- @@ -1074,6 +1075,8 @@ package body Osint is return Result; end To_Lower; + -- Start of processing for File_Names_Equal + begin if File_Names_Case_Sensitive then return File1 = File2; diff --git a/gcc/ada/treepr.adb b/gcc/ada/treepr.adb index 4980713..166667c 100644 --- a/gcc/ada/treepr.adb +++ b/gcc/ada/treepr.adb @@ -25,7 +25,6 @@ with Aspects; use Aspects; with Atree; use Atree; -with Csets; use Csets; with Debug; use Debug; with Einfo; use Einfo; with Einfo.Entities; use Einfo.Entities; @@ -45,6 +44,7 @@ with Snames; use Snames; with Sinput; use Sinput; with Stand; use Stand; with Stringt; use Stringt; +with System.Case_Util; use System.Case_Util; with SCIL_LL; use SCIL_LL; with Uintp; use Uintp; with Urealp; use Urealp; @@ -135,9 +135,9 @@ package body Treepr is function From_Union is new Unchecked_Conversion (Union_Id, Uint); function From_Union is new Unchecked_Conversion (Union_Id, Ureal); - function Capitalize (S : String) return String; - procedure Capitalize (S : in out String); - -- Turns an identifier into Mixed_Case + function To_Mixed (S : String) return String; + -- Turns an identifier into Mixed_Case. For bootstrap reasons, we cannot + -- use To_Mixed function from System.Case_Util. function Image (F : Node_Or_Entity_Field) return String; @@ -255,35 +255,6 @@ package body Treepr is -- descendants are to be printed. Prefix_Str is to be added to all -- printed lines. - ---------------- - -- Capitalize -- - ---------------- - - procedure Capitalize (S : in out String) is - Cap : Boolean := True; - begin - for J in S'Range loop - declare - Old : constant Character := S (J); - begin - if Cap then - S (J) := Fold_Upper (S (J)); - else - S (J) := Fold_Lower (S (J)); - end if; - - Cap := Old = '_'; - end; - end loop; - end Capitalize; - - function Capitalize (S : String) return String is - begin - return Result : String (S'Range) := S do - Capitalize (Result); - end return; - end Capitalize; - ---------- -- Hash -- ---------- @@ -400,7 +371,7 @@ package body Treepr is when others => declare - Result : constant String := Capitalize (F'Img); + Result : constant String := To_Mixed (F'Img); begin return Result (3 .. Result'Last); -- Remove "F_" end; @@ -1713,22 +1684,8 @@ package body Treepr is -------------------------- procedure Print_Str_Mixed_Case (S : String) is - Ucase : Boolean; - begin - if Phase = Printing then - Ucase := True; - - for J in S'Range loop - if Ucase then - Write_Char (S (J)); - else - Write_Char (Fold_Lower (S (J))); - end if; - - Ucase := (S (J) = '_'); - end loop; - end if; + Print_Str (To_Mixed (S)); end Print_Str_Mixed_Case; ---------------- @@ -1862,6 +1819,17 @@ package body Treepr is Next_Serial_Number := Next_Serial_Number + 1; end Set_Serial_Number; + -------------- + -- To_Mixed -- + -------------- + + function To_Mixed (S : String) return String is + begin + return Result : String (S'Range) := S do + To_Mixed (Result); + end return; + end To_Mixed; + --------------- -- Tree_Dump -- --------------- |