1 ------------------------------------------------------------------------------
3 -- GNAT COMPILER COMPONENTS --
9 -- Copyright (C) 2009, Free Software Foundation, Inc. --
11 -- GNAT is free software; you can redistribute it and/or modify it under --
12 -- terms of the GNU General Public License as published by the Free Soft- --
13 -- ware Foundation; either version 3, or (at your option) any later ver- --
14 -- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
15 -- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
16 -- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License --
17 -- for more details. You should have received a copy of the GNU General --
18 -- Public License distributed with GNAT; see file COPYING3. If not, go to --
19 -- http://www.gnu.org/licenses for a complete copy of the license. --
21 -- GNAT was originally developed by the GNAT team at New York University. --
22 -- Extensive contributions were provided by Ada Core Technologies Inc. --
24 ------------------------------------------------------------------------------
30 -- Loop through entries in SCO_Unit_Table
32 for U in 1 .. SCO_Unit_Table.Last loop
34 SUT : SCO_Unit_Table_Entry renames SCO_Unit_Table.Table (U);
40 Write_Info_Initiate ('C');
41 Write_Info_Char (' ');
42 Write_Info_Nat (SUT.Dep_Num);
43 Write_Info_Char (' ');
45 for N in SUT.File_Name'Range loop
46 Write_Info_Char (SUT.File_Name (N));
51 -- Loop through SCO entries for this unit
56 exit when Start = Stop + 1;
57 pragma Assert (Start <= Stop);
59 Output_SCO_Line : declare
60 T : SCO_Table_Entry renames SCO_Table.Table (Start);
62 procedure Output_Range (T : SCO_Table_Entry);
63 -- Outputs T.From and T.To in line:col-line:col format
69 procedure Output_Range (T : SCO_Table_Entry) is
71 Write_Info_Nat (Nat (T.From.Line));
72 Write_Info_Char (':');
73 Write_Info_Nat (Nat (T.From.Col));
74 Write_Info_Char ('-');
75 Write_Info_Nat (Nat (T.To.Line));
76 Write_Info_Char (':');
77 Write_Info_Nat (Nat (T.To.Col));
80 -- Start of processing for Output_SCO_Line
83 Write_Info_Initiate ('C');
84 Write_Info_Char (T.C1);
91 Write_Info_Char (' ');
96 when 'I' | 'E' | 'W' | 'X' =>
101 -- Loop through table entries for this decision
105 T : SCO_Table_Entry renames SCO_Table.Table (Start);
108 Write_Info_Char (' ');
110 if T.C1 = '!' or else
115 Write_Info_Char (T.C1);
118 Write_Info_Char (T.C2);
131 Write_Info_Terminate;