Mercurial > hg > CbC > CbC_gcc
comparison gcc/ada/bindo-validators.ads @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
131:84e7813d76e9 | 145:1830386684a0 |
---|---|
1 ------------------------------------------------------------------------------ | |
2 -- -- | |
3 -- GNAT COMPILER COMPONENTS -- | |
4 -- -- | |
5 -- B I N D O . V A L I D A T O R S -- | |
6 -- -- | |
7 -- S p e c -- | |
8 -- -- | |
9 -- Copyright (C) 2019, 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 verify the validity of the | |
29 -- various graphs used in determining the elaboration order of units. | |
30 | |
31 with Bindo.Graphs; | |
32 use Bindo.Graphs; | |
33 use Bindo.Graphs.Invocation_Graphs; | |
34 use Bindo.Graphs.Library_Graphs; | |
35 | |
36 package Bindo.Validators is | |
37 | |
38 ---------------------- | |
39 -- Cycle_Validators -- | |
40 ---------------------- | |
41 | |
42 package Cycle_Validators is | |
43 Invalid_Cycle : exception; | |
44 -- Exception raised when the library graph contains an invalid cycle | |
45 | |
46 procedure Validate_Cycles (G : Library_Graph); | |
47 -- Ensure that all cycles of library graph G meet the following | |
48 -- requirements: | |
49 -- | |
50 -- * Are of proper kind | |
51 -- * Have enough edges to form a circuit | |
52 -- * No edge is repeated | |
53 -- | |
54 -- Diagnose issues and raise Invalid_Cycle if this is not the case. | |
55 | |
56 end Cycle_Validators; | |
57 | |
58 ---------------------------------- | |
59 -- Elaboration_Order_Validators -- | |
60 ---------------------------------- | |
61 | |
62 package Elaboration_Order_Validators is | |
63 Invalid_Elaboration_Order : exception; | |
64 -- Exception raised when the elaboration order contains invalid data | |
65 | |
66 procedure Validate_Elaboration_Order (Order : Unit_Id_Table); | |
67 -- Ensure that elaboration order Order meets the following requirements: | |
68 -- | |
69 -- * All units that must be elaborated appear in the order | |
70 -- * No other units appear in the order | |
71 -- | |
72 -- Diagnose issues and raise Invalid_Elaboration_Order if this is not | |
73 -- the case. | |
74 | |
75 end Elaboration_Order_Validators; | |
76 | |
77 --------------------------------- | |
78 -- Invocation_Graph_Validators -- | |
79 --------------------------------- | |
80 | |
81 package Invocation_Graph_Validators is | |
82 Invalid_Invocation_Graph : exception; | |
83 -- Exception raised when the invocation graph contains invalid data | |
84 | |
85 procedure Validate_Invocation_Graph (G : Invocation_Graph); | |
86 -- Ensure that invocation graph G meets the following requirements: | |
87 -- | |
88 -- * All attributes of edges are properly set | |
89 -- * All attributes of vertices are properly set | |
90 -- | |
91 -- Diagnose issues and raise Invalid_Invocation_Graph if this is not the | |
92 -- case. | |
93 | |
94 end Invocation_Graph_Validators; | |
95 | |
96 ------------------------------ | |
97 -- Library_Graph_Validators -- | |
98 ------------------------------ | |
99 | |
100 package Library_Graph_Validators is | |
101 Invalid_Library_Graph : exception; | |
102 -- Exception raised when the library graph contains invalid data | |
103 | |
104 procedure Validate_Library_Graph (G : Library_Graph); | |
105 -- Ensure that library graph G meets the following requirements: | |
106 -- | |
107 -- * All attributes edges are properly set | |
108 -- * All attributes of vertices are properly set | |
109 -- | |
110 -- Diagnose issues and raise Invalid_Library_Graph if this is not the | |
111 -- case. | |
112 | |
113 end Library_Graph_Validators; | |
114 | |
115 end Bindo.Validators; |