OSDN Git Service

* gcc-interface/trans.c (add_decl_expr): At toplevel, mark the
[pf3gnuchains/gcc-fork.git] / gcc / ada / uname.ads
index c5fc209..c1b59b6 100644 (file)
@@ -6,53 +6,51 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---                            $Revision: 1.23 $                             --
---                                                                          --
---          Copyright (C) 1992-1998, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2009  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- --
+-- ware  Foundation;  either version 3,  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.                                                      --
+-- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+--                                                                          --
+-- As a special exception under Section 7 of GPL version 3, you are granted --
+-- additional permissions described in the GCC Runtime Library Exception,   --
+-- version 3.1, as published by the Free Software Foundation.               --
 --                                                                          --
--- As a special exception,  if other files  instantiate  generics from this --
--- unit, or you link  this unit with other files  to produce an executable, --
--- this  unit  does not  by itself cause  the resulting  executable  to  be --
--- covered  by the  GNU  General  Public  License.  This exception does not --
--- however invalidate  any other reasons why  the executable file  might be --
--- covered by the  GNU Public License.                                      --
+-- You should have received a copy of the GNU General Public License and    --
+-- a copy of the GCC Runtime Library Exception along with this program;     --
+-- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+-- <http://www.gnu.org/licenses/>.                                          --
 --                                                                          --
 -- GNAT was originally developed  by the GNAT team at  New York University. --
--- It is now maintained by Ada Core Technologies Inc (http://www.gnat.com). --
+-- Extensive contributions were provided by Ada Core Technologies Inc.      --
 --                                                                          --
 ------------------------------------------------------------------------------
 
+with Namet; use Namet;
 with Types; use Types;
+
 package Uname is
 
    ---------------------------
    -- Unit Name Conventions --
    ---------------------------
 
-   --  Units are associated with a unique ASCII name as follows. First we
-   --  have the fully expanded name of the unit, with lower case letters
-   --  (except for the use of upper case letters for encoding upper half
-   --  and wide characters, as described in Namet), and periods. Following
-   --  this is one of the following suffixes:
+   --  Units are associated with a unique ASCII name as follows. First we have
+   --  the fully expanded name of the unit, with lower case letters (except
+   --  for the use of upper case letters for encoding upper half and wide
+   --  characters, as described in Namet), and periods. Following this is one
+   --  of the following suffixes:
 
    --    %s  for package/subprogram/generic declarations (specs)
    --    %b  for package/subprogram/generic bodies and subunits
 
    --  Unit names are stored in the names table, and referred to by the
-   --  corresponding Name_Id values. The subtype Unit_Name, which is a
-   --  synonym for Name_Id, is used to indicate that a Name_Id value that
-   --  holds a unit name (as defined above) is expected.
+   --  corresponding Name_Id values. The type Unit_Name_Type, derived from
+   --  Name_Id, is used to indicate that a Name_Id value that holds a unit name
+   --  (as defined above) is expected.
 
    --  Note: as far as possible the conventions for unit names are encapsulated
    --  in this package. The one exception is that package Fname, which provides
@@ -76,7 +74,7 @@ package Uname is
    --  corresponding body, i.e. characters %s replaced by %b
 
    function Get_Parent_Body_Name (N : Unit_Name_Type) return Unit_Name_Type;
-   --  Given the name of a subunit, returns the name of the parent body.
+   --  Given the name of a subunit, returns the name of the parent body
 
    function Get_Parent_Spec_Name (N : Unit_Name_Type) return Unit_Name_Type;
    --  Given the name of a child unit spec or body, returns the unit name
@@ -118,11 +116,14 @@ package Uname is
    --    N_Protected_Body_Stub
    --    N_Subunit
 
-   procedure Get_Unit_Name_String (N : Unit_Name_Type);
-   --  Places the display name of the unit in Name_Buffer and sets Name_Len
-   --  to the length of the stored name, i.e. it uses the same interface as
-   --  the Get_Name_String routine in the Namet package. The name contains
-   --  an indication of spec or body, and is decoded.
+   procedure Get_Unit_Name_String
+     (N      : Unit_Name_Type;
+      Suffix : Boolean := True);
+   --  Places the display name of the unit in Name_Buffer and sets Name_Len to
+   --  the length of the stored name, i.e. it uses the same interface as the
+   --  Get_Name_String routine in the Namet package. The name is decoded and
+   --  contains an indication of spec or body if Boolean parameter Suffix is
+   --  True.
 
    function Is_Body_Name (N : Unit_Name_Type) return Boolean;
    --  Returns True iff the given name is the unit name of a body (i.e. if
@@ -142,13 +143,12 @@ package Uname is
 
    function New_Child
      (Old  : Unit_Name_Type;
-      Newp : Unit_Name_Type)
-      return Unit_Name_Type;
-   --   Old is a child unit name (for either a body or spec). Newp is the
-   --   unit name of the actual parent (this may be different from the
-   --   parent in old). The returned unit name is formed by taking the
-   --   parent name from Newp and the child unit name from Old, with the
-   --   result being a body or spec depending on Old. For example:
+      Newp : Unit_Name_Type) return Unit_Name_Type;
+   --   Old is a child unit name (for either a body or spec). Newp is the unit
+   --   name of the actual parent (this may be different from the parent in
+   --   old). The returned unit name is formed by taking the parent name from
+   --   Newp and the child unit name from Old, with the result being a body or
+   --   spec depending on Old. For example:
    --
    --     Old    = A.B.C (body)
    --     Newp   = A.R (spec)