1------------------------------------------------------------------------------
2--                                                                          --
3--                         GNAT COMPILER COMPONENTS                         --
4--                                                                          --
5--                        B I N D O . B U I L D E R S                       --
6--                                                                          --
7--                                 S p e c                                  --
8--                                                                          --
9--             Copyright (C) 2019-2021, Free Software Foundation, Inc.      --
10--                                                                          --
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.          --
20--                                                                          --
21-- GNAT was originally developed  by the GNAT team at  New York University. --
22-- Extensive contributions were provided by Ada Core Technologies Inc.      --
23--                                                                          --
24------------------------------------------------------------------------------
25
26--  For full architecture, see unit Bindo.
27
28--  The following unit contains facilities to create various graphs that
29--  reflect dependencies between units, as well as activations of tasks,
30--  calls, and instantiations within them.
31
32with Bindo.Graphs;
33use  Bindo.Graphs;
34use  Bindo.Graphs.Invocation_Graphs;
35use  Bindo.Graphs.Library_Graphs;
36
37package Bindo.Builders is
38
39   -------------------------------
40   -- Invocation_Graph_Builders --
41   -------------------------------
42
43   package Invocation_Graph_Builders is
44      function Build_Invocation_Graph
45        (Lib_G : Library_Graph) return Invocation_Graph;
46      --  Return a new invocation graph that reflects the activations of
47      --  tasks, calls, and instantiations in all units of the bind. Each
48      --  invocation graph vertex is linked with the corresponding vertex
49      --  of library graph Lib_G, which contains the body of the activated
50      --  task, invoked subprogram, or instantiated generic.
51
52   end Invocation_Graph_Builders;
53
54   ----------------------------
55   -- Library_Graph_Builders --
56   ----------------------------
57
58   package Library_Graph_Builders is
59      function Build_Library_Graph return Library_Graph;
60      --  Return a new library graph that reflects the dependencies between
61      --  all units of the bind.
62
63   end Library_Graph_Builders;
64
65end Bindo.Builders;
66