home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / gnat-2.06-src.tgz / tar.out / fsf / gnat / ada / exp_ch3.ads < prev    next >
Text File  |  1996-09-28  |  4KB  |  70 lines

  1. ------------------------------------------------------------------------------
  2. --                                                                          --
  3. --                         GNAT COMPILER COMPONENTS                         --
  4. --                                                                          --
  5. --                              E X P _ C H 3                               --
  6. --                                                                          --
  7. --                                 S p e c                                  --
  8. --                                                                          --
  9. --                            $Revision: 1.24 $                             --
  10. --                                                                          --
  11. --           Copyright (c) 1992,1993,1994 NYU, All Rights Reserved          --
  12. --                                                                          --
  13. -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  14. -- terms of the  GNU General Public License as published  by the Free Soft- --
  15. -- ware  Foundation;  either version 2,  or (at your option) any later ver- --
  16. -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
  17. -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
  18. -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
  19. -- for  more details.  You should have  received  a copy of the GNU General --
  20. -- Public License  distributed with GNAT;  see file COPYING.  If not, write --
  21. -- to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. --
  22. --                                                                          --
  23. ------------------------------------------------------------------------------
  24.  
  25. --  Expand routines for chapter 3 constructs
  26.  
  27. with Types; use Types;
  28.  
  29. package Exp_Ch3 is
  30.  
  31.    procedure Expand_N_Object_Declaration         (N : Node_Id);
  32.    procedure Expand_N_Variant_Part               (N : Node_Id);
  33.    procedure Expand_N_Full_Type_Declaration      (N : Node_Id);
  34.  
  35.    procedure Expand_Previous_Access_Type (N : Node_Id; Def_Id : Entity_Id);
  36.    --  For a full type declaration that contains tasks,  or that is a task,
  37.    --  check whether there exists an access type whose designated type is an
  38.    --  incomplete declarations for the current composite type. If so, build
  39.    --  the master for that access type, now that it is known to denote an
  40.    --  object with tasks.
  41.  
  42.    procedure Expand_Derived_Record (T : Entity_Id; Def : Node_Id);
  43.    --  Add a field _parent in the extension part of the record.
  44.  
  45.    procedure Build_Discr_Checking_Funcs (N : Node_Id);
  46.    --  Builds function which checks whether the component name is consistent
  47.    --  with the current discriminants. N is the full type declaration node,
  48.    --  and the discriminant checking functions are inserted after this node.
  49.  
  50.    function Build_Initialization_Call
  51.      (Loc          : Source_Ptr;
  52.       Id_Ref       : Node_Id;
  53.       Typ          : Entity_Id;
  54.       In_Init_Proc : Boolean := False)
  55.       return         List_Id;
  56.    --  Builds a call to the initialization procedure of the Id
  57.    --  entity. Id_Ref is either a new reference to Id (for record fields),
  58.    --  or an indexed component (for array elements). Loc is the source
  59.    --  location for the constructed tree, and Typ is the type of the entity
  60.    --  (the initialization procedure of the base type is the procedure that
  61.    --  actually gets called). In_Init_Proc has to be set to True when the
  62.    --  call is itself in an Init procedure in order to enable the use of
  63.    --  discriminals.
  64.  
  65.    procedure Freeze_Type (N : Node_Id);
  66.    --  This procedure executes the freezing actions associated with the given
  67.    --  freeze type node N.
  68.  
  69. end Exp_Ch3;
  70.