-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2006, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2007, 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- --
-- Expand routines for chapter 9 constructs
+with Namet; use Namet;
with Types; use Types;
package Exp_Ch9 is
-- Task_Id of the associated task as the parameter. The caller is
-- responsible for analyzing and resolving the resulting tree.
+ function Build_Corresponding_Record
+ (N : Node_Id;
+ Ctyp : Node_Id;
+ Loc : Source_Ptr) return Node_Id;
+ -- Common to tasks and protected types. Copy discriminant specifications,
+ -- build record declaration. N is the type declaration, Ctyp is the
+ -- concurrent entity (task type or protected type).
+
procedure Build_Master_Entity (E : Entity_Id);
-- Given an entity E for the declaration of an object containing tasks
-- or of a type declaration for an allocator whose designated type is a
procedure Expand_N_Protected_Body (N : Node_Id);
procedure Expand_N_Protected_Type_Declaration (N : Node_Id);
- -- Expands protected type declarations. This results, among
- -- other things, in the declaration of a record type for the
- -- representation of protected objects and (if there are entries)
- -- in an entry service procedure. The Protection value used by
- -- the GNARL to control the object will always be the first
- -- field of the record, and the entry service procedure spec
- -- (if it exists) will always immediately follow the record
- -- declaration. This allows these two nodes to be found from
- -- the type using Corresponding_Record, without benefit of
- -- of further attributes.
+ -- Expands protected type declarations. This results, among other things,
+ -- in the declaration of a record type for the representation of protected
+ -- objects and (if there are entries) in an entry service procedure. The
+ -- Protection value used by the GNARL to control the object will always be
+ -- the first field of the record, and the entry service procedure spec (if
+ -- it exists) will always immediately follow the record declaration. This
+ -- allows these two nodes to be found from the type, without benefit of
+ -- further attributes, using Corresponding_Record.
procedure Expand_N_Requeue_Statement (N : Node_Id);
procedure Expand_N_Selective_Accept (N : Node_Id);