OSDN Git Service

* gcc-interface/decl.c (make_type_from_size) <INTEGER_TYPE>: Just copy
[pf3gnuchains/gcc-fork.git] / gcc / ada / xref_lib.ads
index 24c8783..e0db3fd 100644 (file)
@@ -6,34 +6,33 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---                                                                          --
---       Copyright (C) 1998-2001 Free Software Foundation, Inc.             --
+--          Copyright (C) 1998-2008, 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.                                                      --
+-- Public License  distributed with GNAT; see file COPYING3.  If not, go to --
+-- http://www.gnu.org/licenses for a complete copy of the license.          --
 --                                                                          --
--- Extensive contributions were provided by Ada Core Technologies Inc.   --
+-- GNAT was originally developed  by the GNAT team at  New York University. --
+-- Extensive contributions were provided by Ada Core Technologies Inc.      --
 --                                                                          --
 ------------------------------------------------------------------------------
 
+--  Miscellaneous utilities for the cross-referencing tool
+
 with Hostparm;
+with Xr_Tabls;  use Xr_Tabls;
+
 with GNAT.Directory_Operations; use GNAT.Directory_Operations;
 with GNAT.OS_Lib;               use GNAT.OS_Lib;
 with GNAT.Dynamic_Tables;
-
-with Xr_Tabls;                  use Xr_Tabls;
 with GNAT.Regexp;               use GNAT.Regexp;
 
---  Misc. utilities for the cross-referencing tool
-
 package Xref_Lib is
 
    subtype File_Name_String is String (1 .. Hostparm.Max_Name_Length);
@@ -44,6 +43,7 @@ package Xref_Lib is
    ---------------------
    -- Directory Input --
    ---------------------
+
    type Rec_DIR is limited private;
    --  This one is used for recursive search of .ali files
 
@@ -74,22 +74,16 @@ package Xref_Lib is
    Invalid_Argument : exception;
    --  Exception raised when there is a syntax error in the command line
 
-   function Match
-     (Pattern : Search_Pattern;
-      Symbol  : String)
-      return    Boolean;
-   --  Returns true if Symbol matches one of the entities in the command line
-
    -----------------------
    -- Output Algorithms --
    -----------------------
 
    procedure Print_Gnatfind
-     (References     : in Boolean;
-      Full_Path_Name : in Boolean);
-   procedure Print_Unused (Full_Path_Name : in Boolean);
-   procedure Print_Vi (Full_Path_Name : in Boolean);
-   procedure Print_Xref (Full_Path_Name : in Boolean);
+     (References     : Boolean;
+      Full_Path_Name : Boolean);
+   procedure Print_Unused (Full_Path_Name : Boolean);
+   procedure Print_Vi     (Full_Path_Name : Boolean);
+   procedure Print_Xref   (Full_Path_Name : Boolean);
    --  The actual print procedures. These functions step through the symbol
    --  table and print all the symbols if they match the files given on the
    --  command line (they already match the entities if they are in the
@@ -98,8 +92,9 @@ package Xref_Lib is
    ------------------------
    -- General Algorithms --
    ------------------------
-   function Default_Project_File (Dir_Name : in String) return String;
-   --  Returns the default Project file name
+
+   function Default_Project_File (Dir_Name : String) return String;
+   --  Returns the default Project file name for the directory Dir_Name
 
    procedure Search
      (Pattern       : Search_Pattern;
@@ -108,13 +103,20 @@ package Xref_Lib is
       Read_Only     : Boolean;
       Der_Info      : Boolean;
       Type_Tree     : Boolean);
-   --  Search every ali file (following the Readdir rule above), for
-   --  each line matching Pattern, and executes Process on these
-   --  lines. If World is True, Search will look into every .ali file
-   --  in the object search path. If Read_Only is True, we parse the
-   --  read-only ali files too. If Der_Mode is true then the derived type
-   --  information will be processed. If Type_Tree is true then the type
-   --  hierarchy will be search going from pattern to the parent type
+   --  Search every ALI file for entities matching Pattern, and add
+   --  these entities to the internal symbol tables.
+   --
+   --  If Wide_Search is True, all ALI files found in the object path
+   --  are searched.
+   --
+   --  If Read_Only is True, read-only ALI files will also be parsed,
+   --  similar to gnatmake -a.
+   --
+   --  If Der_Info is true, then the derived type information will be
+   --  processed.
+   --
+   --  If Type_Tree is true, then the type hierarchy will be searched
+   --  going from the pattern to the parent type.
 
    procedure Search_Xref
      (Local_Symbols : Boolean;
@@ -125,34 +127,6 @@ package Xref_Lib is
    --  files too. If Der_Mode is true then the derived type information will
    --  be processed
 
-   ---------------
-   -- ALI files --
-   ---------------
-
-   function Current_Xref_File
-     (File : ALI_File)
-      return Xr_Tabls.File_Reference;
-   --  Returns the name of the file in which the last identifier
-   --  is declared
-
-   function File_Name
-     (File : ALI_File;
-      Num  : Positive)
-      return Xr_Tabls.File_Reference;
-   --  Returns the dependency file name number Num
-
-   function Get_Full_Type (Abbrev : Character) return String;
-   --  Returns the full type corresponding to a type letter as found in
-   --  the .ali files.
-
-   procedure Open
-     (Name         : in  String;
-      File         : out ALI_File;
-      Dependencies : in  Boolean := False);
-   --  Open a new ALI file
-   --  if Dependencies is True, the insert every library file 'with'ed in
-   --  the files database (used for gnatxref)
-
 private
    type Rec_DIR is limited record
       Dir : GNAT.Directory_Operations.Dir_Type;
@@ -169,16 +143,16 @@ private
    type Dependencies is new Dependencies_Tables.Instance;
 
    type ALI_File is limited record
-      Buffer         : String_Access := null;
+      Buffer : String_Access := null;
       --  Buffer used to read the whole file at once
 
-      Current_Line   : Positive;
+      Current_Line : Positive;
       --  Start of the current line in Buffer
 
-      Xref_Line      : Positive;
+      Xref_Line : Positive;
       --  Start of the xref lines in Buffer
 
-      X_File         : Xr_Tabls.File_Reference;
+      X_File : Xr_Tabls.File_Reference;
       --  Stores the cross-referencing file-name ("X..." lines), as an
       --  index into the dependencies table
 
@@ -195,8 +169,11 @@ private
       --  has to be. When the user enters a file:line:column on the command
       --  line, it is stored as "Entity_Name Declaration_File:line:column"
 
+      File_Ref : Xr_Tabls.File_Reference;
+      --  A reference to the source file, if any
+
       Initialized : Boolean := False;
-      --  Set to True when Entity has been initialized.
+      --  Set to True when Entity has been initialized
    end record;
-   --  Stores all the pattern that are search for.
+
 end Xref_Lib;