OSDN Git Service

2005-03-29 Robert Dewar <dewar@adacore.com>
[pf3gnuchains/gcc-fork.git] / gcc / ada / fname-uf.ads
index 2ec910d..d829a20 100644 (file)
@@ -6,8 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---                                                                          --
---          Copyright (C) 1992-2000 Free Software Foundation, Inc.          --
+--          Copyright (C) 1992-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- --
@@ -44,15 +43,34 @@ package Fname.UF is
    -- Subprograms --
    -----------------
 
+   type Expected_Unit_Type is (Expect_Body, Expect_Spec, Unknown);
+   --  Return value from Get_Expected_Unit_Type
+
+   function Get_Expected_Unit_Type
+     (Fname : File_Name_Type) return Expected_Unit_Type;
+   --  If possible, determine whether the given file name corresponds to a unit
+   --  that is a spec or body (e.g. by examining the extension). If this cannot
+   --  be determined with the file naming conventions in use, then the returned
+   --  value is set to Unknown.
+
    function Get_File_Name
-     (Uname   : Unit_Name_Type;
-      Subunit : Boolean)
-      return    File_Name_Type;
+     (Uname    : Unit_Name_Type;
+      Subunit  : Boolean;
+      May_Fail : Boolean := False) return File_Name_Type;
    --  This function returns the file name that corresponds to a given unit
    --  name, Uname. The Subunit parameter is set True for subunits, and
    --  false for all other kinds of units. The caller is responsible for
    --  ensuring that the unit name meets the requirements given in package
    --  Uname and described above.
+   --
+   --  When May_Fail is True, if the file cannot be found, this function
+   --  returns No_File. When it is False, if the file cannot be found,
+   --  a file name compatible with one pattern Source_File_Name pragma is
+   --  returned.
+
+   function Get_Unit_Index (Uname : Unit_Name_Type) return Nat;
+   --  If there is a specific Source_File_Name pragma for this unit, then
+   --  return the corresponding unit index value. Return 0 if no index given.
 
    procedure Initialize;
    --  Initialize internal tables. This is called automatically when the
@@ -73,9 +91,14 @@ package Fname.UF is
    --  name. The unit name here is not encoded as a Unit_Name_Type, but is
    --  rather just a normal form name in lower case, e.g. "xyz.def".
 
-   procedure Set_File_Name (U : Unit_Name_Type; F : File_Name_Type);
+   procedure Set_File_Name
+     (U     : Unit_Name_Type;
+      F     : File_Name_Type;
+      Index : Nat);
    --  Make association between given unit name, U, and the given file name,
    --  F. This is the routine called to process a Source_File_Name pragma.
+   --  Index is the value from the index parameter of the pragma if present
+   --  and zero if no index parameter is present.
 
    procedure Set_File_Name_Pattern
      (Pat : String_Ptr;