1 ------------------------------------------------------------------------------
3 -- GNAT COMPILER COMPONENTS --
5 -- P R J . A T T R . P M --
9 -- Copyright (C) 2004-2014, Free Software Foundation, Inc. --
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. --
21 -- GNAT was originally developed by the GNAT team at New York University. --
22 -- Extensive contributions were provided by Ada Core Technologies Inc. --
24 ------------------------------------------------------------------------------
26 package body Prj
.Attr
.PM
is
32 procedure Add_Attribute
33 (To_Package
: Package_Node_Id
;
34 Attribute_Name
: Name_Id
;
35 Attribute_Node
: out Attribute_Node_Id
)
38 -- Only add attribute if package is already defined and is not unknown
40 if To_Package
/= Empty_Package
and then
41 To_Package
/= Unknown_Package
44 (Name
=> Attribute_Name
,
45 Var_Kind
=> Undefined
,
46 Optional_Index
=> False,
49 Others_Allowed
=> False,
50 Default
=> Empty_Value
,
52 Package_Attributes
.Table
(To_Package
.Value
).First_Attribute
));
54 Package_Attributes
.Table
(To_Package
.Value
).First_Attribute
:=
56 Attribute_Node
:= (Value
=> Attrs
.Last
);
60 -------------------------
61 -- Add_Unknown_Package --
62 -------------------------
64 procedure Add_Unknown_Package
(Name
: Name_Id
; Id
: out Package_Node_Id
) is
66 Package_Attributes
.Increment_Last
;
67 Id
:= (Value
=> Package_Attributes
.Last
);
68 Package_Attributes
.Table
(Id
.Value
) :=
71 First_Attribute
=> Empty_Attr
);
72 end Add_Unknown_Package
;