prj-attr-pm.ads, [...]: New files, to split some private capabilities of the general...
authorVincent Celier <celier@gnat.com>
Fri, 17 Sep 2004 13:46:12 +0000 (13:46 +0000)
committerArnaud Charlet <charlet@gcc.gnu.org>
Fri, 17 Sep 2004 13:46:12 +0000 (15:46 +0200)
2004-09-17  Vincent Celier  <celier@gnat.com>

* prj-attr-pm.ads, prj-attr-pm.adb: New files, to split some private
capabilities of the general project manager.

From-SVN: r87644

gcc/ada/ChangeLog
gcc/ada/prj-attr-pm.adb [new file with mode: 0644]
gcc/ada/prj-attr-pm.ads [new file with mode: 0644]

index c824ae6d9ffdc17d99781e89d0a416747d6ac6d4..babbc34f0ddd81fcd471b08500e0ea8c52ad1a6d 100644 (file)
@@ -1,3 +1,8 @@
+2004-09-17  Vincent Celier  <celier@gnat.com>
+
+       * prj-attr-pm.ads, prj-attr-pm.adb: New files, to split some private
+       capabilities of the general project manager.
+
 2004-09-09  Vincent Celier  <celier@gnat.com>
 
        * a-direct.ads: Add pragma Ada_05
diff --git a/gcc/ada/prj-attr-pm.adb b/gcc/ada/prj-attr-pm.adb
new file mode 100644 (file)
index 0000000..13ec76f
--- /dev/null
@@ -0,0 +1,68 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                         GNAT COMPILER COMPONENTS                         --
+--                                                                          --
+--                          P R J . A T T R . P M                           --
+--                                                                          --
+--                                 B o d y                                  --
+--                                                                          --
+--             Copyright (C) 2004 Free Software Foundation, Inc.            --
+--                                                                          --
+-- GNAT is free software;  you can  redistribute it  and/or modify it under --
+-- terms of the  GNU General Public License as published  by the Free Soft- --
+-- ware  Foundation;  either version 2,  or (at your option) any later ver- --
+-- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+-- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+-- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
+-- for  more details.  You should have  received  a copy of the GNU General --
+-- Public License  distributed with GNAT;  see file COPYING.  If not, write --
+-- to  the Free Software Foundation,  59 Temple Place - Suite 330,  Boston, --
+-- MA 02111-1307, USA.                                                      --
+--                                                                          --
+-- GNAT was originally developed  by the GNAT team at  New York University. --
+-- Extensive contributions were provided by Ada Core Technologies Inc.      --
+--                                                                          --
+------------------------------------------------------------------------------
+
+package body Prj.Attr.PM is
+
+   -------------------
+   -- Add_Attribute --
+   -------------------
+
+   procedure Add_Attribute
+     (To_Package     : Package_Node_Id;
+      Attribute_Name : Name_Id;
+      Attribute_Node : out Attribute_Node_Id)
+   is
+   begin
+      --  Only add the attribute if the package is already defined
+
+      if To_Package /= Empty_Package then
+         Attrs.Increment_Last;
+         Attrs.Table (Attrs.Last) :=
+           (Name              => Attribute_Name,
+            Var_Kind          => Undefined,
+            Optional_Index    => False,
+            Attr_Kind         => Unknown,
+            Next              =>
+              Package_Attributes.Table (To_Package.Value).First_Attribute);
+         Package_Attributes.Table (To_Package.Value).First_Attribute :=
+           Attrs.Last;
+         Attribute_Node := (Value => Attrs.Last);
+      end if;
+   end Add_Attribute;
+
+   -------------------------
+   -- Add_Unknown_Package --
+   -------------------------
+
+   procedure Add_Unknown_Package (Name : Name_Id; Id : out Package_Node_Id) is
+   begin
+      Package_Attributes.Increment_Last;
+      Id := (Value => Package_Attributes.Last);
+      Package_Attributes.Table (Id.Value) :=
+        (Name => Name, Known => False, First_Attribute => Empty_Attr);
+   end Add_Unknown_Package;
+
+end Prj.Attr.PM;
diff --git a/gcc/ada/prj-attr-pm.ads b/gcc/ada/prj-attr-pm.ads
new file mode 100644 (file)
index 0000000..423b60f
--- /dev/null
@@ -0,0 +1,45 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                         GNAT COMPILER COMPONENTS                         --
+--                                                                          --
+--                          P R J . A T T R . P M                           --
+--                                                                          --
+--                                 S p e c                                  --
+--                                                                          --
+--             Copyright (C) 2004 Free Software Foundation, Inc.            --
+--                                                                          --
+-- GNAT is free software;  you can  redistribute it  and/or modify it under --
+-- terms of the  GNU General Public License as published  by the Free Soft- --
+-- ware  Foundation;  either version 2,  or (at your option) any later ver- --
+-- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
+-- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
+-- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
+-- for  more details.  You should have  received  a copy of the GNU General --
+-- Public License  distributed with GNAT;  see file COPYING.  If not, write --
+-- to  the Free Software Foundation,  59 Temple Place - Suite 330,  Boston, --
+-- MA 02111-1307, USA.                                                      --
+--                                                                          --
+-- GNAT was originally developed  by the GNAT team at  New York University. --
+-- Extensive contributions were provided by Ada Core Technologies Inc.      --
+--                                                                          --
+------------------------------------------------------------------------------
+
+with Types; use Types;
+
+package Prj.Attr.PM is
+   --  The following procedures are not secure and should only be used by the
+   --  Project Manager, that is the packages of the Prj or MLib hierarchies.
+
+   procedure Add_Unknown_Package (Name : Name_Id; Id : out Package_Node_Id);
+   --  Add a new unknown package. The Name cannot be the name of a predefined
+   --  or already registered package, but this is not checked.
+
+   procedure Add_Attribute
+     (To_Package     : Package_Node_Id;
+      Attribute_Name : Name_Id;
+      Attribute_Node : out Attribute_Node_Id);
+   --  Add an attribute to the list for package To_Package. Attribute_Name
+   --  cannot be the name of an existing attribute of the package, but this is
+   --  not checked. Does nothing if To_Package is Empty_Package.
+
+end Prj.Attr.PM;