|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 39936 (0x9c00)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Ada_Construct_Analysis, seg_0043f3
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦5a81ac88f⟧ »Space Info Vol 1«
└─⟦this⟧
with Common;
with Mapping;
with Pragmas;
with Representation_Clauses;
with String_Utilities;
with Lrm_Utilities;
with Ada_Constructs;
with Table_Formatter;
with More_String_Utilities;
with Abstract_Document;
with Directory_Renames;
use Directory_Renames;
with Errors;
with Map_Generic;
with Lrm_Renames;
use Lrm_Renames;
package body Ada_Construct_Analysis is
package Ad renames Abstract_Document;
package Ad_Specify renames Abstract_Document.Specify;
Max_Units : constant := 1024;
package Unit_Map is new Map_Generic (Max_Units, Ada.Compilation_Unit,
Ada_Constructs.Construct_Counts,
Lrm_Utilities.Hash);
function Ada_Count (Elem : Ada.Element; Map : Unit_Map.Map)
return Ada_Constructs.Ada_Counting.Counts is
begin
return Unit_Map.Eval (Map, Elem).Majors;
end Ada_Count;
package Ada_Display is new Ada_Constructs.Ada_Counting.Display
(Ada_Constructs.Ada_Counting.Image,
Unit_Map.Map, Ada_Count);
function Id_Count (Elem : Ada.Element; Map : Unit_Map.Map)
return Ada_Constructs.Id_Counting.Counts is
begin
return Unit_Map.Eval (Map, Elem).Ids;
end Id_Count;
package Id_Display is new Ada_Constructs.Id_Counting.Display
(Ada_Constructs.Id_Counting.Image,
Unit_Map.Map, Id_Count);
function Context_Count (Elem : Ada.Element; Map : Unit_Map.Map)
return Ada_Constructs.Context_Counting.Counts is
begin
return Unit_Map.Eval (Map, Elem).Contexts;
end Context_Count;
package Context_Display is new Ada_Constructs.Context_Counting.Display
(Ada_Constructs.Context_Counting.Image,
Unit_Map.Map, Context_Count);
function Decl_Count (Elem : Ada.Element; Map : Unit_Map.Map)
return Ada_Constructs.Decl_Counting.Counts is
begin
return Unit_Map.Eval (Map, Elem).Decls;
end Decl_Count;
package Decl_Display is new Ada_Constructs.Decl_Counting.Display
(Ada_Constructs.Decl_Counting.Image,
Unit_Map.Map, Decl_Count);
function Param_Mode_Count
(Elem : Ada.Element; Map : Unit_Map.Map)
return Ada_Constructs.Param_Mode_Counting.Counts is
begin
return Unit_Map.Eval (Map, Elem).Param_Modes;
end Param_Mode_Count;
package Param_Mode_Display is
new Ada_Constructs.Param_Mode_Counting.Display
(Ada_Constructs.Param_Mode_Counting.Image,
Unit_Map.Map, Param_Mode_Count);
function Generic_Param_Count
(Elem : Ada.Element; Map : Unit_Map.Map)
return Ada_Constructs.Generic_Param_Counting.Counts is
begin
return Unit_Map.Eval (Map, Elem).Generic_Params;
end Generic_Param_Count;
package Generic_Param_Display is
new Ada_Constructs.Generic_Param_Counting.Display
(Ada_Constructs.Generic_Param_Counting.Image,
Unit_Map.Map, Generic_Param_Count);
function Rep_Count (Elem : Ada.Element; Map : Unit_Map.Map)
return Ada_Constructs.Rep_Counting.Counts is
begin
return Unit_Map.Eval (Map, Elem).Reps;
end Rep_Count;
package Rep_Display is new Ada_Constructs.Rep_Counting.Display
(Ada_Constructs.Rep_Counting.Image,
Unit_Map.Map, Rep_Count);
function Length_Clause_Count
(Elem : Ada.Element; Map : Unit_Map.Map)
return Ada_Constructs.Length_Clause_Counting.Counts is
begin
return Unit_Map.Eval (Map, Elem).Length_Clauses;
end Length_Clause_Count;
package Length_Clause_Display is
new Ada_Constructs.Length_Clause_Counting.Display
(Ada_Constructs.Length_Clause_Counting.Image,
Unit_Map.Map, Length_Clause_Count);
function Statement_Count (Elem : Ada.Element; Map : Unit_Map.Map)
return Ada_Constructs.Statement_Counting.Counts is
begin
return Unit_Map.Eval (Map, Elem).Statements;
end Statement_Count;
package Statement_Display is
new Ada_Constructs.Statement_Counting.Display
(Ada_Constructs.Statement_Counting.Image,
Unit_Map.Map, Statement_Count);
function Loop_Count (Elem : Ada.Element; Map : Unit_Map.Map)
return Ada_Constructs.Loop_Counting.Counts is
begin
return Unit_Map.Eval (Map, Elem).Loops;
end Loop_Count;
package Loop_Display is new Ada_Constructs.Loop_Counting.Display
(Ada_Constructs.Loop_Counting.Image,
Unit_Map.Map, Loop_Count);
function Select_Alternative_Count
(Elem : Ada.Element; Map : Unit_Map.Map)
return Ada_Constructs.Select_Alternative_Counting.Counts is
begin
return Unit_Map.Eval (Map, Elem).Select_Alternatives;
end Select_Alternative_Count;
package Select_Alternative_Display is
new Ada_Constructs.Select_Alternative_Counting.Display
(Ada_Constructs.Select_Alternative_Counting.Image,
Unit_Map.Map, Select_Alternative_Count);
function Expression_Count
(Elem : Ada.Element; Map : Unit_Map.Map)
return Ada_Constructs.Expression_Counting.Counts is
begin
return Unit_Map.Eval (Map, Elem).Expressions;
end Expression_Count;
package Expression_Display is
new Ada_Constructs.Expression_Counting.Display
(Ada_Constructs.Expression_Counting.Image,
Unit_Map.Map, Expression_Count);
function Type_Count (Elem : Ada.Element; Map : Unit_Map.Map)
return Ada_Constructs.Type_Counting.Counts is
begin
return Unit_Map.Eval (Map, Elem).Types;
end Type_Count;
package Type_Display is new Ada_Constructs.Type_Counting.Display
(Ada_Constructs.Type_Counting.Image,
Unit_Map.Map, Type_Count);
function Predefined_Pragma_Count
(Elem : Ada.Element; Map : Unit_Map.Map)
return Ada_Constructs.Predefined_Pragma_Counting.Counts is
begin
return Unit_Map.Eval (Map, Elem).Pragmas.Predefined;
end Predefined_Pragma_Count;
package Predefined_Pragma_Display is
new Ada_Constructs.Predefined_Pragma_Counting.Display
(Lrm_Utilities.Pragma_Name,
Unit_Map.Map, Predefined_Pragma_Count);
function Implementation_Dependent_Count
(Elem : Ada.Element; Map : Unit_Map.Map)
return Ada_Constructs.
Implementation_Dependent_Pragma_Counting.Counts is
begin
return Unit_Map.Eval (Map, Elem).Pragmas.Implementation_Dependent;
end Implementation_Dependent_Count;
package Implementation_Dependent_Pragma_Display is
new Ada_Constructs.Implementation_Dependent_Pragma_Counting.Display
(Lrm_Utilities.Pragma_Name, Unit_Map.Map,
Implementation_Dependent_Count);
procedure Analyze_All (Units : String;
Into : in out Unit_Map.Map;
Total : in out Ada_Constructs.Construct_Counts) is
Comp_Units : Object.Iterator := Naming.Resolution (Units);
begin
Unit_Map.Initialize (Into);
while not Object.Done (Comp_Units) loop
declare
Current_Count : Ada_Constructs.Construct_Counts;
Comp_Unit : Ada.Element;
begin
Comp_Unit := Ada.Conversion.To_Compilation_Unit
(Object.Value (Comp_Units));
Ada_Constructs.Analyze (Comp_Unit,
Major_Elements_Only => False,
Counts => Current_Count);
Unit_Map.Define (The_Map => Into,
D => Lrm_Utilities.Comp_Unit_Id (Comp_Unit),
R => Current_Count,
Trap_Multiples => False);
Total := Ada_Constructs."+" (Total, Current_Count);
end;
Object.Next (Comp_Units);
end loop;
end Analyze_All;
procedure Add_Sub_Paragraphs (Unit : Ada.Element;
Unit_Name : String;
Divisor : Natural := 0;
Divisor_Title : String := "";
Document : in out Ad.Handle;
Counts : Ada_Constructs.Construct_Counts) is
Linkage : Ad.Linkage_Info :=
Ad_Specify.Gen_Linkage (Document,
Definition => Mapping.Create (Unit));
begin
Ad_Specify.New_Sub_Paragraph
(Document, "Element Counts for unit " & Unit_Name, Linkage);
-- major elements
Ad_Specify.New_Sub_Paragraph
(Document, "Element totals for unit " & Unit_Name, Linkage);
Ada_Display.Table (Unit, "Major Unit Kinds",
Start => Ada.A_Context_Clause,
Divisor => Divisor,
Divisor_Title => Divisor_Title,
For_Counts => Counts.Majors,
To_Doc => Document);
-- context clauses
Ad_Specify.Next_Sub_Paragraph
(Document, "Context clause totals for unit " & Unit_Name, Linkage);
Context_Display.Table (Unit, "Context Clauses Kinds",
For_Counts => Counts.Contexts,
Divisor => Divisor,
Divisor_Title => Divisor_Title,
To_Doc => Document);
-- Declarations
Ad_Specify.Next_Sub_Paragraph
(Document, "Declaration totals for unit " & Unit_Name, Linkage);
Decl_Display.Table (Unit, "Declaration Kinds",
For_Counts => Counts.Decls,
Divisor => Divisor,
Divisor_Title => Divisor_Title,
To_Doc => Document);
-- Statements
Ad_Specify.Next_Sub_Paragraph
(Document, "Statement totals for unit " & Unit_Name, Linkage);
Statement_Display.Table (Unit, "Statement Kinds",
For_Counts => Counts.Statements,
Divisor => Divisor,
Divisor_Title => Divisor_Title,
To_Doc => Document);
-- Pragmas
Ad_Specify.Next_Sub_Paragraph
(Document, "Predefined pragma counts for unit " & Unit_Name,
Linkage);
Predefined_Pragma_Display.Table
(Unit,
Title => "Predefined Pragma Kinds",
For_Counts => Counts.Pragmas.Predefined,
Divisor => Divisor,
Divisor_Title => Divisor_Title,
To_Doc => Document);
Ad_Specify.Next_Sub_Paragraph
(Document,
"Implementation defined pragma totals for unit " & Unit_Name,
Linkage);
Implementation_Dependent_Pragma_Display.Table
(Unit,
Title => "Implementation Dependent Pragma Kinds",
For_Counts => Counts.Pragmas.Implementation_Dependent,
Divisor => Divisor,
Divisor_Title => Divisor_Title,
To_Doc => Document);
-- Rep specs
Ad_Specify.Next_Sub_Paragraph
(Document,
"Representation specification totals for unit " & Unit_Name,
Linkage);
Rep_Display.Table (Unit, "Representation Specification Kinds",
For_Counts => Counts.Reps,
Divisor => Divisor,
Divisor_Title => Divisor_Title,
To_Doc => Document);
-- -- ids
-- Ad_Specify.Next_Sub_Paragraph
-- (Document, "Identifier totals for unit " & Unit_Name, Linkage);
-- Id_Display.Table (Unit, "Identifier Kinds",
-- For_Counts => Counts.Ids,
-- Divisor => Divisor,
-- Divisor_Title => Divisor_Title,
-- To_Doc => Document);
--
-- Expressions
Ad_Specify.Next_Sub_Paragraph
(Document, "Expression kind totals for unit " & Unit_Name, Linkage);
Expression_Display.Table (Unit, "Expression Kinds",
For_Counts => Counts.Expressions,
Divisor => Divisor,
Divisor_Title => Divisor_Title,
To_Doc => Document);
-- type definitions
Ad_Specify.Next_Sub_Paragraph
(Document, "Type definition totals for unit " & Unit_Name, Linkage);
Type_Display.Table (Unit, "Type Definition Kinds",
For_Counts => Counts.Types,
Divisor => Divisor,
Divisor_Title => Divisor_Title,
To_Doc => Document);
Ad_Specify.End_Level (Document);
end Add_Sub_Paragraphs;
procedure Add_Unit_Totals (Document : in out Abstract_Document.Handle;
Total : Ada_Constructs.Construct_Counts) is
package Table is new Table_Formatter (2);
begin
Table.Header ("Unit Breakout", Format => Table.Left);
Table.Header ("Count", Format => Table.Right);
Table.Item ("Compilation Units");
Table.Item (Natural'Image (Total.Comp_Units.Unit_Count),
Explanation => "Number of compilation units analyzed");
Table.Item ("Subunits");
Table.Item (Natural'Image (Total.Comp_Units.Subunit_Count),
Explanation => "Number of subunits analyzed");
Table.Item ("Main Units");
Table.Item (Natural'Image (Total.Comp_Units.Main_Count),
Explanation => "Number of main program units analyzed");
Table.Display (Document, "Unit breakout totals");
Add_Sub_Paragraphs (Ada.Nil_Element, "totals",
Total.Comp_Units.Unit_Count,
"Ave per unit", Document, Total);
end Add_Unit_Totals;
procedure Display_By_Unit (Units : String := "<SELECTION>";
To_Preview : String := "Ada_Construct_Info") is
Current_Context : constant String := Naming.Default_Context;
Object_Status : Object.Error_Code;
Document : Ad.Handle;
Status : Errors.Condition;
Unit : Ada.Element;
Unit_Counts : Unit_Map.Map;
A_Units_Count : Ada_Constructs.Construct_Counts;
Total : Ada_Constructs.Construct_Counts;
Iter : Unit_Map.Iterator;
begin
Ad.Create (Document, To_Preview, Status);
Ad_Specify.Cover (Document, "");
Ad_Specify.Cover_Item (Document, "");
Naming.Set_Default_Context (Current_Context, Object_Status);
Analyze_All (Units, Unit_Counts, Total);
Unit_Map.Init (Iter, Unit_Counts);
Ad_Specify.Paragraph (Document, 1, "Totals for all units");
Add_Unit_Totals (Document, Total);
Ad_Specify.Paragraph (Document, 2, "Individual Unit Totals");
while not Unit_Map.Done (Iter) loop
Unit := Unit_Map.Value (Iter);
A_Units_Count := Unit_Map.Eval (Unit_Counts, Unit);
Add_Sub_Paragraphs (Unit, Decls.Name (Unit), 0,
"", Document, A_Units_Count);
Unit_Map.Next (Iter);
end loop;
Ad.Close (Document);
Common.Definition (To_Preview);
end Display_By_Unit;
procedure Display_Comparison
(Of_Units : String := "<SELECTION>";
To_Preview : String := "Ada_Construct_Info") is
Current_Context : constant String := Naming.Default_Context;
Object_Status : Object.Error_Code;
Document : Ad.Handle;
Status : Errors.Condition;
Unit : Ada.Element;
Unit_Counts : Unit_Map.Map;
A_Units_Count : Ada_Constructs.Construct_Counts;
Total : Ada_Constructs.Construct_Counts;
Iter : Unit_Map.Iterator;
All_Elements : Ada.Element_List;
begin
Ad.Create (Document, To_Preview, Status);
Ad_Specify.Cover (Document, "");
Ad_Specify.Cover_Item (Document, "");
Naming.Set_Default_Context (Current_Context, Object_Status);
Analyze_All (Of_Units, Unit_Counts, Total);
Ad_Specify.Paragraph (Document, 1, "Totals for all units");
Add_Unit_Totals (Document, Total);
Ad_Specify.Paragraph (Document, 2, "Individual Unit Totals");
Unit_Map.Init (Iter, Unit_Counts);
while not Unit_Map.Done (Iter) loop
Ada.Append (Unit_Map.Value (Iter), All_Elements);
Unit_Map.Next (Iter);
end loop;
-- major elements
Ad_Specify.New_Sub_Paragraph (Document, "Major Elements");
Ada_Display.Key_Table (Document, Start => Ada.A_Context_Clause);
Ada_Display.Unit_Comparison_Table (All_Elements, Unit_Counts,
Title => "Major Element Totals",
Start => Ada.A_Context_Clause,
To_Doc => Document);
-- context clauses
Ad_Specify.Next_Sub_Paragraph (Document, "Context Clauses");
Context_Display.Key_Table (Document);
Context_Display.Unit_Comparison_Table
(All_Elements, Unit_Counts,
Title => "Context Clauses Totals",
To_Doc => Document);
-- Declarations
Ad_Specify.Next_Sub_Paragraph (Document, "Declarations");
Ad_Specify.New_Sub_Paragraph (Document, "Program Unit Declarations");
Decl_Display.Key_Table (Start => Decls.A_Package_Declaration,
Stop => Decls.A_Function_Body_Declaration,
To_Doc => Document);
Decl_Display.Unit_Comparison_Table
(All_Elements, Unit_Counts,
Title => "Program Unit Declaration Totals",
Start => Decls.A_Package_Declaration,
Stop => Decls.A_Function_Body_Declaration,
To_Doc => Document);
Ad_Specify.Next_Sub_Paragraph (Document, "Generic Declarations");
Decl_Display.Key_Table (Start => Decls.A_Generic_Package_Declaration,
Stop => Decls.A_Function_Instantiation,
To_Doc => Document);
Decl_Display.Unit_Comparison_Table
(All_Elements, Unit_Counts,
Title => "Generic Declaration Totals",
Start => Decls.A_Generic_Package_Declaration,
Stop => Decls.A_Function_Instantiation,
To_Doc => Document);
Ad_Specify.Next_Sub_Paragraph (Document, "Object Declarations");
Decl_Display.Key_Table (Document,
Start => Decls.A_Variable_Declaration,
Stop => Decls.A_Real_Number_Declaration);
Decl_Display.Unit_Comparison_Table
(All_Elements, Unit_Counts,
Title => "Object Declaration Totals",
Start => Decls.A_Variable_Declaration,
Stop => Decls.A_Real_Number_Declaration,
To_Doc => Document);
Ad_Specify.Next_Sub_Paragraph (Document, "Type Declarations");
Decl_Display.Key_Table
(Start => Decls.A_Type_Declaration,
Stop => Decls.A_Subtype_Declaration,
To_Doc => Document);
Decl_Display.Unit_Comparison_Table
(All_Elements, Unit_Counts,
Title => "Type Declaration Totals",
Start => Decls.A_Type_Declaration,
Stop => Decls.A_Subtype_Declaration,
To_Doc => Document);
Ad_Specify.Next_Sub_Paragraph (Document, "Renaming Declarations");
Decl_Display.Key_Table (Start => Decls.A_Package_Rename_Declaration,
Stop => Decls.An_Exception_Rename_Declaration,
To_Doc => Document);
Decl_Display.Unit_Comparison_Table
(All_Elements, Unit_Counts,
Title => "Renaming Declaration Totals",
Start => Decls.A_Package_Rename_Declaration,
Stop => Decls.An_Exception_Rename_Declaration,
To_Doc => Document);
Ad_Specify.Next_Sub_Paragraph (Document, "Tasking Declarations");
Decl_Display.Key_Table (Start => Decls.A_Task_Declaration,
Stop => Decls.An_Entry_Declaration,
To_Doc => Document);
Decl_Display.Unit_Comparison_Table
(All_Elements, Unit_Counts,
Title => "Tasking Declaration Totals",
Start => Decls.A_Task_Declaration,
Stop => Decls.An_Entry_Declaration,
To_Doc => Document);
Ad_Specify.Next_Sub_Paragraph (Document, "Miscellaneous Declarations");
Decl_Display.Key_Table (Start => Decls.An_Exception_Declaration,
Stop => Decls.A_Generic_Formal_Parameter,
To_Doc => Document);
Decl_Display.Unit_Comparison_Table
(All_Elements, Unit_Counts,
Title => "Miscellaneous Declaration Totals",
Start => Decls.An_Exception_Declaration,
Stop => Decls.A_Generic_Formal_Parameter,
To_Doc => Document);
Ad_Specify.Next_Sub_Paragraph (Document, "Parameter Modes");
Param_Mode_Display.Key_Table (To_Doc => Document);
Param_Mode_Display.Unit_Comparison_Table
(All_Elements, Unit_Counts,
Title => "Parameter Mode Totals",
To_Doc => Document);
Ad_Specify.Next_Sub_Paragraph (Document, "Generic Parameters");
Generic_Param_Display.Key_Table (To_Doc => Document);
Generic_Param_Display.Unit_Comparison_Table
(All_Elements, Unit_Counts,
Title => "Generic Parameter Totals",
To_Doc => Document);
Ad_Specify.End_Level (Document);
-- Statements
Ad_Specify.Next_Sub_Paragraph (Document, "Statements");
Ad_Specify.New_Sub_Paragraph (Document, "Simple Statements");
Statement_Display.Key_Table (Document,
Start => Stmts.A_Null_Statement,
Stop => Stmts.A_Goto_Statement);
Statement_Display.Unit_Comparison_Table
(All_Elements, Unit_Counts,
Title => "Simple Statement Totals",
Start => Stmts.A_Null_Statement,
Stop => Stmts.A_Goto_Statement,
To_Doc => Document);
Statement_Display.Key_Table (Document,
Start => Stmts.An_Entry_Call_Statement,
Stop => Stmts.A_Code_Statement);
Statement_Display.Unit_Comparison_Table
(All_Elements, Unit_Counts,
Title => "Simple Statement Totals",
Start => Stmts.An_Entry_Call_Statement,
Stop => Stmts.A_Code_Statement,
To_Doc => Document);
Ad_Specify.Next_Sub_Paragraph (Document, "Compound Statements");
Statement_Display.Key_Table
(Document,
Start => Stmts.An_If_Statement,
Stop => Stmts.A_Timed_Entry_Call_Statement);
Statement_Display.Unit_Comparison_Table
(All_Elements, Unit_Counts,
Title => "Compound Statement Totals",
Start => Stmts.An_If_Statement,
Stop => Stmts.A_Timed_Entry_Call_Statement,
To_Doc => Document);
Ad_Specify.New_Sub_Paragraph (Document,
"Additional Statement Analysis");
Ad_Specify.Next_Sub_Paragraph (Document, "Loop Statement Kinds");
Loop_Display.Key_Table (Document, Stop => Stmts.A_Simple_Loop);
Loop_Display.Unit_Comparison_Table (All_Elements, Unit_Counts,
Title => "Loop Statement Totals",
Stop => Stmts.A_Simple_Loop,
To_Doc => Document);
Ad_Specify.Next_Sub_Paragraph (Document,
"Select Alterative Statements");
Select_Alternative_Display.Key_Table (Document);
Select_Alternative_Display.Unit_Comparison_Table
(All_Elements, Unit_Counts,
Title => "Compound Statement Totals",
To_Doc => Document);
Ad_Specify.End_Level (Document);
Ad_Specify.End_Level (Document);
-- Pragmas
Ad_Specify.Next_Sub_Paragraph (Document, "Pragmas");
Ad_Specify.New_Sub_Paragraph (Document, "Predefined Pragmas");
Predefined_Pragma_Display.Key_Table (Document,
Start => Pragmas.Controlled,
Stop => Pragmas.Memory_Size);
Predefined_Pragma_Display.Unit_Comparison_Table
(All_Elements, Unit_Counts,
Title => "Predefined Pragma Totals",
Start => Pragmas.Controlled,
Stop => Pragmas.Memory_Size,
To_Doc => Document);
Predefined_Pragma_Display.Key_Table
(Document, Start => Pragmas.Optimize, Stop => Pragmas.Suppress);
Predefined_Pragma_Display.Unit_Comparison_Table
(All_Elements, Unit_Counts,
Title => "Predefined Pragma Totals",
Start => Pragmas.Optimize,
Stop => Pragmas.Suppress,
To_Doc => Document);
Ad_Specify.Next_Sub_Paragraph (Document,
"Implementation Defined Pragmas");
Implementation_Dependent_Pragma_Display.Key_Table
(Document, Start => Pragmas.Bias_Key, Stop => Pragmas.Main);
Implementation_Dependent_Pragma_Display.Unit_Comparison_Table
(All_Elements, Unit_Counts,
Title => "Implementation Dependent Pragma Totals",
Start => Pragmas.Bias_Key,
Stop => Pragmas.Main,
To_Doc => Document);
Implementation_Dependent_Pragma_Display.Key_Table
(Document,
Start => Pragmas.Module_Name,
Stop => Pragmas.Private_Eyes_Only);
Implementation_Dependent_Pragma_Display.Unit_Comparison_Table
(All_Elements, Unit_Counts,
Title => "Implementation Dependent Pragma Totals",
Start => Pragmas.Module_Name,
Stop => Pragmas.Private_Eyes_Only,
To_Doc => Document);
Ad_Specify.End_Level (Document);
-- Rep specs
Ad_Specify.Next_Sub_Paragraph (Document,
"Representation Specifications");
Rep_Display.Key_Table (Document);
Rep_Display.Unit_Comparison_Table
(All_Elements, Unit_Counts,
Title => "Representation Specification Totals",
To_Doc => Document);
-- Expressions
Ad_Specify.Next_Sub_Paragraph (Document, "Expressions");
Ad_Specify.New_Sub_Paragraph (Document, "Name Expressions");
Expression_Display.Key_Table (Document,
Start => Exprs.A_Simple_Name,
Stop => Exprs.An_Attribute);
Expression_Display.Unit_Comparison_Table
(All_Elements, Unit_Counts,
Title => "Name Expression Totals",
Start => Exprs.A_Simple_Name,
Stop => Exprs.An_Attribute,
To_Doc => Document);
Ad_Specify.Next_Sub_Paragraph (Document, "Literal Expressions");
Expression_Display.Key_Table (Document,
Start => Exprs.A_Character_Literal,
Stop => Exprs.A_String_Literal);
Expression_Display.Unit_Comparison_Table
(All_Elements, Unit_Counts,
Title => "Literal Expression Totals",
Start => Exprs.A_Character_Literal,
Stop => Exprs.A_String_Literal,
To_Doc => Document);
Ad_Specify.Next_Sub_Paragraph (Document, "Other Expressions");
Expression_Display.Key_Table (Document,
Start => Exprs.An_Aggregate,
Stop => Exprs.A_Function_Call);
Expression_Display.Unit_Comparison_Table
(All_Elements, Unit_Counts,
Title => "Other Expression Totals",
Start => Exprs.An_Aggregate,
Stop => Exprs.A_Function_Call,
To_Doc => Document);
Ad_Specify.End_Level (Document);
-- type definitions
Ad_Specify.Next_Sub_Paragraph (Document, "Type Definitions");
Type_Display.Key_Table (Document,
Start => Types.A_Subtype_Indication,
Stop => Types.A_Fixed_Type_Definition);
Type_Display.Unit_Comparison_Table
(All_Elements, Unit_Counts,
Title => "Scalar Type Definition Totals",
Start => Types.A_Subtype_Indication,
Stop => Types.A_Fixed_Type_Definition,
To_Doc => Document);
Type_Display.Key_Table
(Document,
Start => Types.An_Array_Type_Definition,
Stop => Types.A_Limited_Private_Type_Definition);
Type_Display.Unit_Comparison_Table
(All_Elements, Unit_Counts,
Title => "Type Definition Totals",
Start => Types.An_Array_Type_Definition,
Stop => Types.A_Limited_Private_Type_Definition,
To_Doc => Document);
-- -- ids
-- Ad_Specify.Next_Sub_Paragraph (Document,
-- "Identifier totals for all units");
-- Id_Display.Key_Table (Document);
-- Id_Display.Unit_Comparison_Table (All_Elements, Unit_Counts,
-- Title => "Identifier Totals",
-- To_Doc => Document);
--
Ad_Specify.End_Level (Document);
Ad.Close (Document);
Common.Definition (To_Preview);
end Display_Comparison;
end Ada_Construct_Analysis;
nblk1=26
nid=0
hdr6=4c
[0x00] rec0=22 rec1=00 rec2=01 rec3=030
[0x01] rec0=00 rec1=00 rec2=26 rec3=010
[0x02] rec0=14 rec1=00 rec2=02 rec3=042
[0x03] rec0=17 rec1=00 rec2=03 rec3=058
[0x04] rec0=17 rec1=00 rec2=04 rec3=00e
[0x05] rec0=16 rec1=00 rec2=05 rec3=05e
[0x06] rec0=16 rec1=00 rec2=06 rec3=042
[0x07] rec0=16 rec1=00 rec2=07 rec3=016
[0x08] rec0=17 rec1=00 rec2=08 rec3=00a
[0x09] rec0=18 rec1=00 rec2=09 rec3=050
[0x0a] rec0=00 rec1=00 rec2=25 rec3=008
[0x0b] rec0=14 rec1=00 rec2=0a rec3=016
[0x0c] rec0=16 rec1=00 rec2=0b rec3=024
[0x0d] rec0=17 rec1=00 rec2=0c rec3=014
[0x0e] rec0=16 rec1=00 rec2=0d rec3=06c
[0x0f] rec0=14 rec1=00 rec2=0e rec3=068
[0x10] rec0=18 rec1=00 rec2=0f rec3=078
[0x11] rec0=1b rec1=00 rec2=10 rec3=018
[0x12] rec0=00 rec1=00 rec2=24 rec3=020
[0x13] rec0=1e rec1=00 rec2=11 rec3=03a
[0x14] rec0=00 rec1=00 rec2=23 rec3=012
[0x15] rec0=1f rec1=00 rec2=12 rec3=03a
[0x16] rec0=00 rec1=00 rec2=22 rec3=01a
[0x17] rec0=17 rec1=00 rec2=13 rec3=068
[0x18] rec0=13 rec1=00 rec2=14 rec3=054
[0x19] rec0=15 rec1=00 rec2=15 rec3=058
[0x1a] rec0=14 rec1=00 rec2=16 rec3=052
[0x1b] rec0=14 rec1=00 rec2=17 rec3=07c
[0x1c] rec0=17 rec1=00 rec2=18 rec3=05e
[0x1d] rec0=17 rec1=00 rec2=19 rec3=01c
[0x1e] rec0=13 rec1=00 rec2=1a rec3=03c
[0x1f] rec0=17 rec1=00 rec2=1b rec3=096
[0x20] rec0=17 rec1=00 rec2=1c rec3=00e
[0x21] rec0=17 rec1=00 rec2=1d rec3=022
[0x22] rec0=15 rec1=00 rec2=1e rec3=016
[0x23] rec0=16 rec1=00 rec2=1f rec3=03e
[0x24] rec0=1a rec1=00 rec2=20 rec3=000
[0x25] rec0=03 rec1=00 rec2=21 rec3=001
tail 0x215003248815c63664587 0x42a00088462061e03