annotate gcc/ada/lib-list.adb @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children 1830386684a0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 ------------------------------------------------------------------------------
kono
parents:
diff changeset
2 -- --
kono
parents:
diff changeset
3 -- GNAT COMPILER COMPONENTS --
kono
parents:
diff changeset
4 -- --
kono
parents:
diff changeset
5 -- L I B . L I S T --
kono
parents:
diff changeset
6 -- --
kono
parents:
diff changeset
7 -- B o d y --
kono
parents:
diff changeset
8 -- --
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
9 -- Copyright (C) 1992-2018, Free Software Foundation, Inc. --
111
kono
parents:
diff changeset
10 -- --
kono
parents:
diff changeset
11 -- GNAT is free software; you can redistribute it and/or modify it under --
kono
parents:
diff changeset
12 -- terms of the GNU General Public License as published by the Free Soft- --
kono
parents:
diff changeset
13 -- ware Foundation; either version 3, or (at your option) any later ver- --
kono
parents:
diff changeset
14 -- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
kono
parents:
diff changeset
15 -- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
kono
parents:
diff changeset
16 -- or FITNESS FOR A PARTICULAR PURPOSE. --
kono
parents:
diff changeset
17 -- --
kono
parents:
diff changeset
18 -- As a special exception under Section 7 of GPL version 3, you are granted --
kono
parents:
diff changeset
19 -- additional permissions described in the GCC Runtime Library Exception, --
kono
parents:
diff changeset
20 -- version 3.1, as published by the Free Software Foundation. --
kono
parents:
diff changeset
21 -- --
kono
parents:
diff changeset
22 -- You should have received a copy of the GNU General Public License and --
kono
parents:
diff changeset
23 -- a copy of the GCC Runtime Library Exception along with this program; --
kono
parents:
diff changeset
24 -- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
kono
parents:
diff changeset
25 -- <http://www.gnu.org/licenses/>. --
kono
parents:
diff changeset
26 -- --
kono
parents:
diff changeset
27 -- GNAT was originally developed by the GNAT team at New York University. --
kono
parents:
diff changeset
28 -- Extensive contributions were provided by Ada Core Technologies Inc. --
kono
parents:
diff changeset
29 -- --
kono
parents:
diff changeset
30 ------------------------------------------------------------------------------
kono
parents:
diff changeset
31
kono
parents:
diff changeset
32 separate (Lib)
kono
parents:
diff changeset
33 procedure List (File_Names_Only : Boolean := False) is
kono
parents:
diff changeset
34
kono
parents:
diff changeset
35 Num_Units : constant Nat := Int (Units.Last) - Int (Units.First) + 1;
kono
parents:
diff changeset
36 -- Number of units in file table
kono
parents:
diff changeset
37
kono
parents:
diff changeset
38 Sorted_Units : Unit_Ref_Table (1 .. Num_Units);
kono
parents:
diff changeset
39 -- Table of unit numbers that we will sort
kono
parents:
diff changeset
40
kono
parents:
diff changeset
41 Unit_Hed : constant String := "Unit name ";
kono
parents:
diff changeset
42 Unit_Und : constant String := "--------- ";
kono
parents:
diff changeset
43 Unit_Bln : constant String := " ";
kono
parents:
diff changeset
44 File_Hed : constant String := "File name ";
kono
parents:
diff changeset
45 File_Und : constant String := "--------- ";
kono
parents:
diff changeset
46 File_Bln : constant String := " ";
kono
parents:
diff changeset
47 Time_Hed : constant String := "Time stamp";
kono
parents:
diff changeset
48 Time_Und : constant String := "----------";
kono
parents:
diff changeset
49
kono
parents:
diff changeset
50 Unit_Length : constant Natural := Unit_Hed'Length;
kono
parents:
diff changeset
51 File_Length : constant Natural := File_Hed'Length;
kono
parents:
diff changeset
52
kono
parents:
diff changeset
53 begin
kono
parents:
diff changeset
54 -- First step is to make a sorted table of units
kono
parents:
diff changeset
55
kono
parents:
diff changeset
56 for J in 1 .. Num_Units loop
kono
parents:
diff changeset
57 Sorted_Units (J) := Unit_Number_Type (Int (Units.First) + J - 1);
kono
parents:
diff changeset
58 end loop;
kono
parents:
diff changeset
59
kono
parents:
diff changeset
60 Sort (Sorted_Units);
kono
parents:
diff changeset
61
kono
parents:
diff changeset
62 -- Now we can generate the unit table listing
kono
parents:
diff changeset
63
kono
parents:
diff changeset
64 Write_Eol;
kono
parents:
diff changeset
65
kono
parents:
diff changeset
66 if not File_Names_Only then
kono
parents:
diff changeset
67 Write_Str (Unit_Hed);
kono
parents:
diff changeset
68 Write_Str (File_Hed);
kono
parents:
diff changeset
69 Write_Str (Time_Hed);
kono
parents:
diff changeset
70 Write_Eol;
kono
parents:
diff changeset
71
kono
parents:
diff changeset
72 Write_Str (Unit_Und);
kono
parents:
diff changeset
73 Write_Str (File_Und);
kono
parents:
diff changeset
74 Write_Str (Time_Und);
kono
parents:
diff changeset
75 Write_Eol;
kono
parents:
diff changeset
76 Write_Eol;
kono
parents:
diff changeset
77 end if;
kono
parents:
diff changeset
78
kono
parents:
diff changeset
79 for R in Sorted_Units'Range loop
kono
parents:
diff changeset
80 if File_Names_Only then
kono
parents:
diff changeset
81 if not Is_Internal_Unit (Sorted_Units (R)) then
kono
parents:
diff changeset
82 Write_Name (Full_File_Name (Source_Index (Sorted_Units (R))));
kono
parents:
diff changeset
83 Write_Eol;
kono
parents:
diff changeset
84 end if;
kono
parents:
diff changeset
85
kono
parents:
diff changeset
86 else
kono
parents:
diff changeset
87 Write_Unit_Name (Unit_Name (Sorted_Units (R)));
kono
parents:
diff changeset
88
kono
parents:
diff changeset
89 if Name_Len > (Unit_Length - 1) then
kono
parents:
diff changeset
90 Write_Eol;
kono
parents:
diff changeset
91 Write_Str (Unit_Bln);
kono
parents:
diff changeset
92 else
kono
parents:
diff changeset
93 for J in Name_Len + 1 .. Unit_Length loop
kono
parents:
diff changeset
94 Write_Char (' ');
kono
parents:
diff changeset
95 end loop;
kono
parents:
diff changeset
96 end if;
kono
parents:
diff changeset
97
kono
parents:
diff changeset
98 Write_Name (Full_File_Name (Source_Index (Sorted_Units (R))));
kono
parents:
diff changeset
99
kono
parents:
diff changeset
100 if Name_Len > (File_Length - 1) then
kono
parents:
diff changeset
101 Write_Eol;
kono
parents:
diff changeset
102 Write_Str (Unit_Bln);
kono
parents:
diff changeset
103 Write_Str (File_Bln);
kono
parents:
diff changeset
104 else
kono
parents:
diff changeset
105 for J in Name_Len + 1 .. File_Length loop
kono
parents:
diff changeset
106 Write_Char (' ');
kono
parents:
diff changeset
107 end loop;
kono
parents:
diff changeset
108 end if;
kono
parents:
diff changeset
109
kono
parents:
diff changeset
110 Write_Str (String (Time_Stamp (Source_Index (Sorted_Units (R)))));
kono
parents:
diff changeset
111 Write_Eol;
kono
parents:
diff changeset
112 end if;
kono
parents:
diff changeset
113 end loop;
kono
parents:
diff changeset
114
kono
parents:
diff changeset
115 Write_Eol;
kono
parents:
diff changeset
116 end List;