1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110 | ------------------------------------------------------------------------------
-- GNAT Documentation Generation Tool --
-- --
-- Copyright (C) 2022, AdaCore --
-- --
-- This is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
-- ware Foundation; either version 3, or (at your option) any later ver- --
-- sion. This software is distributed in the hope that it will be useful, --
-- but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHAN- --
-- TABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public --
-- License for more details. You should have received a copy of the GNU --
-- General Public License distributed with this software; see file --
-- COPYING3. If not, go to http://www.gnu.org/licenses for a complete copy --
-- of the license. --
------------------------------------------------------------------------------
with Ada.Containers.Hashed_Maps;
with Ada.Containers.Ordered_Sets;
with VSS.Strings.Hash;
with GNATdoc.Comments;
package GNATdoc.Entities is
type Entity_Information;
type Entity_Information_Access is access all Entity_Information;
function "<"
(Left : Entity_Information_Access;
Right : Entity_Information_Access) return Boolean;
package Entity_Information_Sets is
new Ada.Containers.Ordered_Sets (Entity_Information_Access);
package Entity_Information_Maps is
new Ada.Containers.Hashed_Maps
(VSS.Strings.Virtual_String,
Entity_Information_Access,
VSS.Strings.Hash,
VSS.Strings."=");
type Entity_Information is record
Name : VSS.Strings.Virtual_String;
Qualified_Name : VSS.Strings.Virtual_String;
Signature : VSS.Strings.Virtual_String;
Documentation : aliased GNATdoc.Comments.Structured_Comment;
Enclosing : VSS.Strings.Virtual_String;
-- Signature of the enclosing entity.
Is_Private : Boolean := False;
-- Private entities are excluded from the documentartion.
Packages : Entity_Information_Sets.Set;
Subprograms : aliased Entity_Information_Sets.Set;
Generic_Instantiations : aliased Entity_Information_Sets.Set;
-- Generic_Packages
-- Generic_Subprograms
-- Package_Instantiations
-- Subprogram_Instantiations
Package_Renamings : Entity_Information_Sets.Set;
-- Renamings of the packages. Renamings of the subprograms is in
-- the Subprograms field.
Simple_Types : aliased Entity_Information_Sets.Set;
Array_Types : aliased Entity_Information_Sets.Set;
Record_Types : aliased Entity_Information_Sets.Set;
Interface_Types : aliased Entity_Information_Sets.Set;
Tagged_Types : aliased Entity_Information_Sets.Set;
Access_Types : aliased Entity_Information_Sets.Set;
Subtypes : aliased Entity_Information_Sets.Set;
Constants : aliased Entity_Information_Sets.Set;
Variables : aliased Entity_Information_Sets.Set;
-- Access_Types : EInfo_List.Vector; +++
-- Generic_Formals : EInfo_List.Vector;
-- Interface_Types : EInfo_List.Vector; +++
-- Methods : EInfo_List.Vector; ???
-- Pkgs : EInfo_List.Vector; +++
-- -- Ordinary and generic packages.
-- Pkgs_Instances : EInfo_List.Vector; +++
-- -- Generic packages instantiations.
-- Record_Types : EInfo_List.Vector; +++
-- Simple_Types : EInfo_List.Vector; +++
-- Subprgs : EInfo_List.Vector; +++
-- -- Ordinary subprograms.
-- Subprgs_Instances : EInfo_List.Vector; +++
-- -- Generic subprograms instantiations.
-- Tagged_Types : EInfo_List.Vector; +++
-- Variables : EInfo_List.Vector; +++
-- Tasks : EInfo_List.Vector;
-- Protected_Objects : EInfo_List.Vector;
-- Entries : EInfo_List.Vector;
end record;
Globals : aliased Entity_Information;
-- Set of all compilation units (including packages, subprograms,
-- renamings, generics and instantiations) and all nested packages
-- and generic packages.
To_Entity : Entity_Information_Maps.Map;
-- Map to lookup entity's information by entity's signature.
function All_Entities
(Self : Entity_Information) return Entity_Information_Sets.Set;
end GNATdoc.Entities;
|