annotate gcc/ada/spark_xrefs.adb @ 118:fd00160c1b76

ifdef TARGET_64BIT
author mir3636
date Tue, 27 Feb 2018 15:01:35 +0900
parents 04ced10e8804
children 84e7813d76e9
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 -- S P A R K _ X R E F S --
kono
parents:
diff changeset
6 -- --
kono
parents:
diff changeset
7 -- B o d y --
kono
parents:
diff changeset
8 -- --
kono
parents:
diff changeset
9 -- Copyright (C) 2011-2016, Free Software Foundation, Inc. --
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. See the GNU General Public License --
kono
parents:
diff changeset
17 -- for more details. You should have received a copy of the GNU General --
kono
parents:
diff changeset
18 -- Public License distributed with GNAT; see file COPYING3. If not, go to --
kono
parents:
diff changeset
19 -- http://www.gnu.org/licenses for a complete copy of the license. --
kono
parents:
diff changeset
20 -- --
kono
parents:
diff changeset
21 -- GNAT was originally developed by the GNAT team at New York University. --
kono
parents:
diff changeset
22 -- Extensive contributions were provided by Ada Core Technologies Inc. --
kono
parents:
diff changeset
23 -- --
kono
parents:
diff changeset
24 ------------------------------------------------------------------------------
kono
parents:
diff changeset
25
kono
parents:
diff changeset
26 with Output; use Output;
kono
parents:
diff changeset
27 with Put_SPARK_Xrefs;
kono
parents:
diff changeset
28
kono
parents:
diff changeset
29 package body SPARK_Xrefs is
kono
parents:
diff changeset
30
kono
parents:
diff changeset
31 ------------
kono
parents:
diff changeset
32 -- dspark --
kono
parents:
diff changeset
33 ------------
kono
parents:
diff changeset
34
kono
parents:
diff changeset
35 procedure dspark is
kono
parents:
diff changeset
36 begin
kono
parents:
diff changeset
37 -- Dump SPARK cross-reference file table
kono
parents:
diff changeset
38
kono
parents:
diff changeset
39 Write_Line ("SPARK Xrefs File Table");
kono
parents:
diff changeset
40 Write_Line ("----------------------");
kono
parents:
diff changeset
41
kono
parents:
diff changeset
42 for Index in 1 .. SPARK_File_Table.Last loop
kono
parents:
diff changeset
43 declare
kono
parents:
diff changeset
44 AFR : SPARK_File_Record renames SPARK_File_Table.Table (Index);
kono
parents:
diff changeset
45
kono
parents:
diff changeset
46 begin
kono
parents:
diff changeset
47 Write_Str (" ");
kono
parents:
diff changeset
48 Write_Int (Int (Index));
kono
parents:
diff changeset
49 Write_Str (". File_Num = ");
kono
parents:
diff changeset
50 Write_Int (Int (AFR.File_Num));
kono
parents:
diff changeset
51 Write_Str (" File_Name = """);
kono
parents:
diff changeset
52
kono
parents:
diff changeset
53 if AFR.File_Name /= null then
kono
parents:
diff changeset
54 Write_Str (AFR.File_Name.all);
kono
parents:
diff changeset
55 end if;
kono
parents:
diff changeset
56
kono
parents:
diff changeset
57 Write_Char ('"');
kono
parents:
diff changeset
58 Write_Str (" From = ");
kono
parents:
diff changeset
59 Write_Int (Int (AFR.From_Scope));
kono
parents:
diff changeset
60 Write_Str (" To = ");
kono
parents:
diff changeset
61 Write_Int (Int (AFR.To_Scope));
kono
parents:
diff changeset
62 Write_Eol;
kono
parents:
diff changeset
63 end;
kono
parents:
diff changeset
64 end loop;
kono
parents:
diff changeset
65
kono
parents:
diff changeset
66 -- Dump SPARK cross-reference scope table
kono
parents:
diff changeset
67
kono
parents:
diff changeset
68 Write_Eol;
kono
parents:
diff changeset
69 Write_Line ("SPARK Xrefs Scope Table");
kono
parents:
diff changeset
70 Write_Line ("-----------------------");
kono
parents:
diff changeset
71
kono
parents:
diff changeset
72 for Index in 1 .. SPARK_Scope_Table.Last loop
kono
parents:
diff changeset
73 declare
kono
parents:
diff changeset
74 ASR : SPARK_Scope_Record renames SPARK_Scope_Table.Table (Index);
kono
parents:
diff changeset
75
kono
parents:
diff changeset
76 begin
kono
parents:
diff changeset
77 Write_Str (" ");
kono
parents:
diff changeset
78 Write_Int (Int (Index));
kono
parents:
diff changeset
79 Write_Str (". File_Num = ");
kono
parents:
diff changeset
80 Write_Int (Int (ASR.File_Num));
kono
parents:
diff changeset
81 Write_Str (" Scope_Num = ");
kono
parents:
diff changeset
82 Write_Int (Int (ASR.Scope_Num));
kono
parents:
diff changeset
83 Write_Str (" Scope_Name = """);
kono
parents:
diff changeset
84
kono
parents:
diff changeset
85 if ASR.Scope_Name /= null then
kono
parents:
diff changeset
86 Write_Str (ASR.Scope_Name.all);
kono
parents:
diff changeset
87 end if;
kono
parents:
diff changeset
88
kono
parents:
diff changeset
89 Write_Char ('"');
kono
parents:
diff changeset
90 Write_Str (" Line = ");
kono
parents:
diff changeset
91 Write_Int (Int (ASR.Line));
kono
parents:
diff changeset
92 Write_Str (" Col = ");
kono
parents:
diff changeset
93 Write_Int (Int (ASR.Col));
kono
parents:
diff changeset
94 Write_Str (" Type = ");
kono
parents:
diff changeset
95 Write_Char (ASR.Stype);
kono
parents:
diff changeset
96 Write_Str (" From = ");
kono
parents:
diff changeset
97 Write_Int (Int (ASR.From_Xref));
kono
parents:
diff changeset
98 Write_Str (" To = ");
kono
parents:
diff changeset
99 Write_Int (Int (ASR.To_Xref));
kono
parents:
diff changeset
100 Write_Str (" Scope_Entity = ");
kono
parents:
diff changeset
101 Write_Int (Int (ASR.Scope_Entity));
kono
parents:
diff changeset
102 Write_Eol;
kono
parents:
diff changeset
103 end;
kono
parents:
diff changeset
104 end loop;
kono
parents:
diff changeset
105
kono
parents:
diff changeset
106 -- Dump SPARK cross-reference table
kono
parents:
diff changeset
107
kono
parents:
diff changeset
108 Write_Eol;
kono
parents:
diff changeset
109 Write_Line ("SPARK Xref Table");
kono
parents:
diff changeset
110 Write_Line ("----------------");
kono
parents:
diff changeset
111
kono
parents:
diff changeset
112 for Index in 1 .. SPARK_Xref_Table.Last loop
kono
parents:
diff changeset
113 declare
kono
parents:
diff changeset
114 AXR : SPARK_Xref_Record renames SPARK_Xref_Table.Table (Index);
kono
parents:
diff changeset
115
kono
parents:
diff changeset
116 begin
kono
parents:
diff changeset
117 Write_Str (" ");
kono
parents:
diff changeset
118 Write_Int (Int (Index));
kono
parents:
diff changeset
119 Write_Str (". Entity_Name = """);
kono
parents:
diff changeset
120
kono
parents:
diff changeset
121 if AXR.Entity_Name /= null then
kono
parents:
diff changeset
122 Write_Str (AXR.Entity_Name.all);
kono
parents:
diff changeset
123 end if;
kono
parents:
diff changeset
124
kono
parents:
diff changeset
125 Write_Char ('"');
kono
parents:
diff changeset
126 Write_Str (" Entity_Line = ");
kono
parents:
diff changeset
127 Write_Int (Int (AXR.Entity_Line));
kono
parents:
diff changeset
128 Write_Str (" Entity_Col = ");
kono
parents:
diff changeset
129 Write_Int (Int (AXR.Entity_Col));
kono
parents:
diff changeset
130 Write_Str (" File_Num = ");
kono
parents:
diff changeset
131 Write_Int (Int (AXR.File_Num));
kono
parents:
diff changeset
132 Write_Str (" Scope_Num = ");
kono
parents:
diff changeset
133 Write_Int (Int (AXR.Scope_Num));
kono
parents:
diff changeset
134 Write_Str (" Line = ");
kono
parents:
diff changeset
135 Write_Int (Int (AXR.Line));
kono
parents:
diff changeset
136 Write_Str (" Col = ");
kono
parents:
diff changeset
137 Write_Int (Int (AXR.Col));
kono
parents:
diff changeset
138 Write_Str (" Type = ");
kono
parents:
diff changeset
139 Write_Char (AXR.Rtype);
kono
parents:
diff changeset
140 Write_Eol;
kono
parents:
diff changeset
141 end;
kono
parents:
diff changeset
142 end loop;
kono
parents:
diff changeset
143 end dspark;
kono
parents:
diff changeset
144
kono
parents:
diff changeset
145 ----------------
kono
parents:
diff changeset
146 -- Initialize --
kono
parents:
diff changeset
147 ----------------
kono
parents:
diff changeset
148
kono
parents:
diff changeset
149 procedure Initialize_SPARK_Tables is
kono
parents:
diff changeset
150 begin
kono
parents:
diff changeset
151 SPARK_File_Table.Init;
kono
parents:
diff changeset
152 SPARK_Scope_Table.Init;
kono
parents:
diff changeset
153 SPARK_Xref_Table.Init;
kono
parents:
diff changeset
154 end Initialize_SPARK_Tables;
kono
parents:
diff changeset
155
kono
parents:
diff changeset
156 ------------
kono
parents:
diff changeset
157 -- pspark --
kono
parents:
diff changeset
158 ------------
kono
parents:
diff changeset
159
kono
parents:
diff changeset
160 procedure pspark is
kono
parents:
diff changeset
161
kono
parents:
diff changeset
162 procedure Write_Info_Char (C : Character) renames Write_Char;
kono
parents:
diff changeset
163 -- Write one character
kono
parents:
diff changeset
164
kono
parents:
diff changeset
165 procedure Write_Info_Str (Val : String) renames Write_Str;
kono
parents:
diff changeset
166 -- Write string
kono
parents:
diff changeset
167
kono
parents:
diff changeset
168 function Write_Info_Col return Positive;
kono
parents:
diff changeset
169 -- Return next column for writing
kono
parents:
diff changeset
170
kono
parents:
diff changeset
171 procedure Write_Info_Initiate (Key : Character) renames Write_Char;
kono
parents:
diff changeset
172 -- Start new one and write one character;
kono
parents:
diff changeset
173
kono
parents:
diff changeset
174 procedure Write_Info_Nat (N : Nat);
kono
parents:
diff changeset
175 -- Write value of N
kono
parents:
diff changeset
176
kono
parents:
diff changeset
177 procedure Write_Info_Terminate renames Write_Eol;
kono
parents:
diff changeset
178 -- Terminate current line
kono
parents:
diff changeset
179
kono
parents:
diff changeset
180 --------------------
kono
parents:
diff changeset
181 -- Write_Info_Col --
kono
parents:
diff changeset
182 --------------------
kono
parents:
diff changeset
183
kono
parents:
diff changeset
184 function Write_Info_Col return Positive is
kono
parents:
diff changeset
185 begin
kono
parents:
diff changeset
186 return Positive (Column);
kono
parents:
diff changeset
187 end Write_Info_Col;
kono
parents:
diff changeset
188
kono
parents:
diff changeset
189 --------------------
kono
parents:
diff changeset
190 -- Write_Info_Nat --
kono
parents:
diff changeset
191 --------------------
kono
parents:
diff changeset
192
kono
parents:
diff changeset
193 procedure Write_Info_Nat (N : Nat) is
kono
parents:
diff changeset
194 begin
kono
parents:
diff changeset
195 Write_Int (N);
kono
parents:
diff changeset
196 end Write_Info_Nat;
kono
parents:
diff changeset
197
kono
parents:
diff changeset
198 procedure Debug_Put_SPARK_Xrefs is new Put_SPARK_Xrefs;
kono
parents:
diff changeset
199
kono
parents:
diff changeset
200 -- Start of processing for pspark
kono
parents:
diff changeset
201
kono
parents:
diff changeset
202 begin
kono
parents:
diff changeset
203 Debug_Put_SPARK_Xrefs;
kono
parents:
diff changeset
204 end pspark;
kono
parents:
diff changeset
205
kono
parents:
diff changeset
206 end SPARK_Xrefs;