1------------------------------------------------------------------------------ 2-- -- 3-- GNAT COMPILER COMPONENTS -- 4-- -- 5-- P R J . A T T R . P M -- 6-- -- 7-- B o d y -- 8-- -- 9-- Copyright (C) 2004-2010, 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 26package body Prj.Attr.PM is 27 28 ------------------- 29 -- Add_Attribute -- 30 ------------------- 31 32 procedure Add_Attribute 33 (To_Package : Package_Node_Id; 34 Attribute_Name : Name_Id; 35 Attribute_Node : out Attribute_Node_Id) 36 is 37 begin 38 -- Only add attribute if package is already defined and is not unknown 39 40 if To_Package /= Empty_Package and then 41 To_Package /= Unknown_Package 42 then 43 Attrs.Append ( 44 (Name => Attribute_Name, 45 Var_Kind => Undefined, 46 Optional_Index => False, 47 Attr_Kind => Unknown, 48 Read_Only => False, 49 Others_Allowed => False, 50 Next => 51 Package_Attributes.Table (To_Package.Value).First_Attribute)); 52 53 Package_Attributes.Table (To_Package.Value).First_Attribute := 54 Attrs.Last; 55 Attribute_Node := (Value => Attrs.Last); 56 end if; 57 end Add_Attribute; 58 59 ------------------------- 60 -- Add_Unknown_Package -- 61 ------------------------- 62 63 procedure Add_Unknown_Package (Name : Name_Id; Id : out Package_Node_Id) is 64 begin 65 Package_Attributes.Increment_Last; 66 Id := (Value => Package_Attributes.Last); 67 Package_Attributes.Table (Id.Value) := 68 (Name => Name, 69 Known => False, 70 First_Attribute => Empty_Attr); 71 end Add_Unknown_Package; 72 73end Prj.Attr.PM; 74