|
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