1 ------------------------------------------------------------------------------
3 -- GNAT COMPILER COMPONENTS --
5 -- P R J . A T T R . P M --
9 -- Copyright (C) 2004 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 2, 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 COPYING. If not, write --
19 -- to the Free Software Foundation, 51 Franklin Street, Fifth Floor, --
20 -- Boston, MA 02110-1301, USA. --
22 -- GNAT was originally developed by the GNAT team at New York University. --
23 -- Extensive contributions were provided by Ada Core Technologies Inc. --
25 ------------------------------------------------------------------------------
27 package body Prj
.Attr
.PM
is
33 procedure Add_Attribute
34 (To_Package
: Package_Node_Id
;
35 Attribute_Name
: Name_Id
;
36 Attribute_Node
: out Attribute_Node_Id
)
39 -- Only add the attribute if the package is already defined
41 if To_Package
/= Empty_Package
then
43 Attrs
.Table
(Attrs
.Last
) :=
44 (Name
=> Attribute_Name
,
45 Var_Kind
=> Undefined
,
46 Optional_Index
=> False,
49 Package_Attributes
.Table
(To_Package
.Value
).First_Attribute
);
50 Package_Attributes
.Table
(To_Package
.Value
).First_Attribute
:=
52 Attribute_Node
:= (Value
=> Attrs
.Last
);
56 -------------------------
57 -- Add_Unknown_Package --
58 -------------------------
60 procedure Add_Unknown_Package
(Name
: Name_Id
; Id
: out Package_Node_Id
) is
62 Package_Attributes
.Increment_Last
;
63 Id
:= (Value
=> Package_Attributes
.Last
);
64 Package_Attributes
.Table
(Id
.Value
) :=
65 (Name
=> Name
, Known
=> False, First_Attribute
=> Empty_Attr
);
66 end Add_Unknown_Package
;