diff options
Diffstat (limited to 'gcc/ada/nmake.ads')
-rw-r--r-- | gcc/ada/nmake.ads | 1343 |
1 files changed, 1343 insertions, 0 deletions
diff --git a/gcc/ada/nmake.ads b/gcc/ada/nmake.ads new file mode 100644 index 00000000000..55f57c40bdd --- /dev/null +++ b/gcc/ada/nmake.ads @@ -0,0 +1,1343 @@ +------------------------------------------------------------------------------ +-- -- +-- GNAT COMPILER COMPONENTS -- +-- -- +-- N M A K E -- +-- -- +-- S p e c -- +-- -- +-- Generated by xnmake revision 1.25 using -- +-- sinfo.ads revision 1.430 -- +-- nmake.adt revision 1.12 -- +-- -- +-- Copyright (C) 1992-2001 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- -- +-- 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. -- +-- -- +-- 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). -- +-- -- +------------------------------------------------------------------------------ + +pragma Style_Checks (All_Checks); +-- Turn off subprogram order checking, since the routines here are +-- generated automatically in order. + + +with Nlists; use Nlists; +with Types; use Types; +with Uintp; use Uintp; +with Urealp; use Urealp; + +package Nmake is + +-- This package contains a set of routines used to construct tree nodes +-- using a functional style. There is one routine for each node type defined +-- in Sinfo with the general interface: + +-- function Make_xxx (Sloc : Source_Ptr, +-- Field_Name_1 : Field_Name_1_Type [:= default] +-- Field_Name_2 : Field_Name_2_Type [:= default] +-- ...) +-- return Node_Id + +-- Only syntactic fields are included (i.e. fields marked as "-Sem" or "-Lib" +-- in the Sinfo spec are excluded). In addition, the following four syntactic +-- fields are excluded: + +-- Prev_Ids +-- More_Ids +-- Comes_From_Source +-- Paren_Count + +-- since they are very rarely set in expanded code. If they need to be set, +-- to other than the default values (False, False, False, zero), then the +-- appropriate Set_xxx procedures must be used on the returned value. + +-- Default values are provided only for flag fields (where the default is +-- False), and for optional fields. An optional field is one where the +-- comment line describing the field contains the string "(set to xxx if". +-- For such fields, a default value of xxx is provided." + +-- Warning: since calls to Make_xxx routines are normal function calls, the +-- arguments can be evaluated in any order. This means that at most one such +-- argument can have side effects (e.g. be a call to a parse routine). + + function Make_Unused_At_Start (Sloc : Source_Ptr) + return Node_Id; + pragma Inline (Make_Unused_At_Start); + + function Make_Unused_At_End (Sloc : Source_Ptr) + return Node_Id; + pragma Inline (Make_Unused_At_End); + + function Make_Identifier (Sloc : Source_Ptr; + Chars : Name_Id) + return Node_Id; + pragma Inline (Make_Identifier); + + function Make_Integer_Literal (Sloc : Source_Ptr; + Intval : Uint) + return Node_Id; + pragma Inline (Make_Integer_Literal); + + function Make_Real_Literal (Sloc : Source_Ptr; + Realval : Ureal) + return Node_Id; + pragma Inline (Make_Real_Literal); + + function Make_Character_Literal (Sloc : Source_Ptr; + Chars : Name_Id; + Char_Literal_Value : Char_Code) + return Node_Id; + pragma Inline (Make_Character_Literal); + + function Make_String_Literal (Sloc : Source_Ptr; + Strval : String_Id) + return Node_Id; + pragma Inline (Make_String_Literal); + + function Make_Pragma (Sloc : Source_Ptr; + Chars : Name_Id; + Pragma_Argument_Associations : List_Id := No_List; + Debug_Statement : Node_Id := Empty) + return Node_Id; + pragma Inline (Make_Pragma); + + function Make_Pragma_Argument_Association (Sloc : Source_Ptr; + Chars : Name_Id := No_Name; + Expression : Node_Id) + return Node_Id; + pragma Inline (Make_Pragma_Argument_Association); + + function Make_Defining_Identifier (Sloc : Source_Ptr; + Chars : Name_Id) + return Node_Id; + pragma Inline (Make_Defining_Identifier); + + function Make_Full_Type_Declaration (Sloc : Source_Ptr; + Defining_Identifier : Node_Id; + Discriminant_Specifications : List_Id := No_List; + Type_Definition : Node_Id) + return Node_Id; + pragma Inline (Make_Full_Type_Declaration); + + function Make_Subtype_Declaration (Sloc : Source_Ptr; + Defining_Identifier : Node_Id; + Subtype_Indication : Node_Id) + return Node_Id; + pragma Inline (Make_Subtype_Declaration); + + function Make_Subtype_Indication (Sloc : Source_Ptr; + Subtype_Mark : Node_Id; + Constraint : Node_Id) + return Node_Id; + pragma Inline (Make_Subtype_Indication); + + function Make_Object_Declaration (Sloc : Source_Ptr; + Defining_Identifier : Node_Id; + Aliased_Present : Boolean := False; + Constant_Present : Boolean := False; + Object_Definition : Node_Id; + Expression : Node_Id := Empty) + return Node_Id; + pragma Inline (Make_Object_Declaration); + + function Make_Number_Declaration (Sloc : Source_Ptr; + Defining_Identifier : Node_Id; + Expression : Node_Id) + return Node_Id; + pragma Inline (Make_Number_Declaration); + + function Make_Derived_Type_Definition (Sloc : Source_Ptr; + Abstract_Present : Boolean := False; + Subtype_Indication : Node_Id; + Record_Extension_Part : Node_Id := Empty) + return Node_Id; + pragma Inline (Make_Derived_Type_Definition); + + function Make_Range_Constraint (Sloc : Source_Ptr; + Range_Expression : Node_Id) + return Node_Id; + pragma Inline (Make_Range_Constraint); + + function Make_Range (Sloc : Source_Ptr; + Low_Bound : Node_Id; + High_Bound : Node_Id; + Includes_Infinities : Boolean := False) + return Node_Id; + pragma Inline (Make_Range); + + function Make_Enumeration_Type_Definition (Sloc : Source_Ptr; + Literals : List_Id) + return Node_Id; + pragma Inline (Make_Enumeration_Type_Definition); + + function Make_Defining_Character_Literal (Sloc : Source_Ptr; + Chars : Name_Id) + return Node_Id; + pragma Inline (Make_Defining_Character_Literal); + + function Make_Signed_Integer_Type_Definition (Sloc : Source_Ptr; + Low_Bound : Node_Id; + High_Bound : Node_Id) + return Node_Id; + pragma Inline (Make_Signed_Integer_Type_Definition); + + function Make_Modular_Type_Definition (Sloc : Source_Ptr; + Expression : Node_Id) + return Node_Id; + pragma Inline (Make_Modular_Type_Definition); + + function Make_Floating_Point_Definition (Sloc : Source_Ptr; + Digits_Expression : Node_Id; + Real_Range_Specification : Node_Id := Empty) + return Node_Id; + pragma Inline (Make_Floating_Point_Definition); + + function Make_Real_Range_Specification (Sloc : Source_Ptr; + Low_Bound : Node_Id; + High_Bound : Node_Id) + return Node_Id; + pragma Inline (Make_Real_Range_Specification); + + function Make_Ordinary_Fixed_Point_Definition (Sloc : Source_Ptr; + Delta_Expression : Node_Id; + Real_Range_Specification : Node_Id) + return Node_Id; + pragma Inline (Make_Ordinary_Fixed_Point_Definition); + + function Make_Decimal_Fixed_Point_Definition (Sloc : Source_Ptr; + Delta_Expression : Node_Id; + Digits_Expression : Node_Id; + Real_Range_Specification : Node_Id := Empty) + return Node_Id; + pragma Inline (Make_Decimal_Fixed_Point_Definition); + + function Make_Digits_Constraint (Sloc : Source_Ptr; + Digits_Expression : Node_Id; + Range_Constraint : Node_Id := Empty) + return Node_Id; + pragma Inline (Make_Digits_Constraint); + + function Make_Unconstrained_Array_Definition (Sloc : Source_Ptr; + Subtype_Marks : List_Id; + Aliased_Present : Boolean := False; + Subtype_Indication : Node_Id) + return Node_Id; + pragma Inline (Make_Unconstrained_Array_Definition); + + function Make_Constrained_Array_Definition (Sloc : Source_Ptr; + Discrete_Subtype_Definitions : List_Id; + Aliased_Present : Boolean := False; + Subtype_Indication : Node_Id) + return Node_Id; + pragma Inline (Make_Constrained_Array_Definition); + + function Make_Discriminant_Specification (Sloc : Source_Ptr; + Defining_Identifier : Node_Id; + Discriminant_Type : Node_Id; + Expression : Node_Id := Empty) + return Node_Id; + pragma Inline (Make_Discriminant_Specification); + + function Make_Index_Or_Discriminant_Constraint (Sloc : Source_Ptr; + Constraints : List_Id) + return Node_Id; + pragma Inline (Make_Index_Or_Discriminant_Constraint); + + function Make_Discriminant_Association (Sloc : Source_Ptr; + Selector_Names : List_Id; + Expression : Node_Id) + return Node_Id; + pragma Inline (Make_Discriminant_Association); + + function Make_Record_Definition (Sloc : Source_Ptr; + End_Label : Node_Id := Empty; + Abstract_Present : Boolean := False; + Tagged_Present : Boolean := False; + Limited_Present : Boolean := False; + Component_List : Node_Id; + Null_Present : Boolean := False) + return Node_Id; + pragma Inline (Make_Record_Definition); + + function Make_Component_List (Sloc : Source_Ptr; + Component_Items : List_Id; + Variant_Part : Node_Id := Empty; + Null_Present : Boolean := False) + return Node_Id; + pragma Inline (Make_Component_List); + + function Make_Component_Declaration (Sloc : Source_Ptr; + Defining_Identifier : Node_Id; + Aliased_Present : Boolean := False; + Subtype_Indication : Node_Id; + Expression : Node_Id := Empty) + return Node_Id; + pragma Inline (Make_Component_Declaration); + + function Make_Variant_Part (Sloc : Source_Ptr; + Name : Node_Id; + Variants : List_Id) + return Node_Id; + pragma Inline (Make_Variant_Part); + + function Make_Variant (Sloc : Source_Ptr; + Discrete_Choices : List_Id; + Component_List : Node_Id) + return Node_Id; + pragma Inline (Make_Variant); + + function Make_Others_Choice (Sloc : Source_Ptr) + return Node_Id; + pragma Inline (Make_Others_Choice); + + function Make_Access_To_Object_Definition (Sloc : Source_Ptr; + All_Present : Boolean := False; + Subtype_Indication : Node_Id; + Constant_Present : Boolean := False) + return Node_Id; + pragma Inline (Make_Access_To_Object_Definition); + + function Make_Access_Function_Definition (Sloc : Source_Ptr; + Protected_Present : Boolean := False; + Parameter_Specifications : List_Id := No_List; + Subtype_Mark : Node_Id) + return Node_Id; + pragma Inline (Make_Access_Function_Definition); + + function Make_Access_Procedure_Definition (Sloc : Source_Ptr; + Protected_Present : Boolean := False; + Parameter_Specifications : List_Id := No_List) + return Node_Id; + pragma Inline (Make_Access_Procedure_Definition); + + function Make_Access_Definition (Sloc : Source_Ptr; + Subtype_Mark : Node_Id) + return Node_Id; + pragma Inline (Make_Access_Definition); + + function Make_Incomplete_Type_Declaration (Sloc : Source_Ptr; + Defining_Identifier : Node_Id; + Discriminant_Specifications : List_Id := No_List; + Unknown_Discriminants_Present : Boolean := False) + return Node_Id; + pragma Inline (Make_Incomplete_Type_Declaration); + + function Make_Explicit_Dereference (Sloc : Source_Ptr; + Prefix : Node_Id) + return Node_Id; + pragma Inline (Make_Explicit_Dereference); + + function Make_Indexed_Component (Sloc : Source_Ptr; + Prefix : Node_Id; + Expressions : List_Id) + return Node_Id; + pragma Inline (Make_Indexed_Component); + + function Make_Slice (Sloc : Source_Ptr; + Prefix : Node_Id; + Discrete_Range : Node_Id) + return Node_Id; + pragma Inline (Make_Slice); + + function Make_Selected_Component (Sloc : Source_Ptr; + Prefix : Node_Id; + Selector_Name : Node_Id) + return Node_Id; + pragma Inline (Make_Selected_Component); + + function Make_Attribute_Reference (Sloc : Source_Ptr; + Prefix : Node_Id; + Attribute_Name : Name_Id; + Expressions : List_Id := No_List) + return Node_Id; + pragma Inline (Make_Attribute_Reference); + + function Make_Aggregate (Sloc : Source_Ptr; + Expressions : List_Id := No_List; + Component_Associations : List_Id := No_List; + Null_Record_Present : Boolean := False) + return Node_Id; + pragma Inline (Make_Aggregate); + + function Make_Component_Association (Sloc : Source_Ptr; + Choices : List_Id; + Expression : Node_Id) + return Node_Id; + pragma Inline (Make_Component_Association); + + function Make_Extension_Aggregate (Sloc : Source_Ptr; + Ancestor_Part : Node_Id; + Expressions : List_Id := No_List; + Component_Associations : List_Id := No_List; + Null_Record_Present : Boolean := False) + return Node_Id; + pragma Inline (Make_Extension_Aggregate); + + function Make_Null (Sloc : Source_Ptr) + return Node_Id; + pragma Inline (Make_Null); + + function Make_And_Then (Sloc : Source_Ptr; + Left_Opnd : Node_Id; + Right_Opnd : Node_Id) + return Node_Id; + pragma Inline (Make_And_Then); + + function Make_Or_Else (Sloc : Source_Ptr; + Left_Opnd : Node_Id; + Right_Opnd : Node_Id) + return Node_Id; + pragma Inline (Make_Or_Else); + + function Make_In (Sloc : Source_Ptr; + Left_Opnd : Node_Id; + Right_Opnd : Node_Id) + return Node_Id; + pragma Inline (Make_In); + + function Make_Not_In (Sloc : Source_Ptr; + Left_Opnd : Node_Id; + Right_Opnd : Node_Id) + return Node_Id; + pragma Inline (Make_Not_In); + + function Make_Op_And (Sloc : Source_Ptr; + Left_Opnd : Node_Id; + Right_Opnd : Node_Id) + return Node_Id; + pragma Inline (Make_Op_And); + + function Make_Op_Or (Sloc : Source_Ptr; + Left_Opnd : Node_Id; + Right_Opnd : Node_Id) + return Node_Id; + pragma Inline (Make_Op_Or); + + function Make_Op_Xor (Sloc : Source_Ptr; + Left_Opnd : Node_Id; + Right_Opnd : Node_Id) + return Node_Id; + pragma Inline (Make_Op_Xor); + + function Make_Op_Eq (Sloc : Source_Ptr; + Left_Opnd : Node_Id; + Right_Opnd : Node_Id) + return Node_Id; + pragma Inline (Make_Op_Eq); + + function Make_Op_Ne (Sloc : Source_Ptr; + Left_Opnd : Node_Id; + Right_Opnd : Node_Id) + return Node_Id; + pragma Inline (Make_Op_Ne); + + function Make_Op_Lt (Sloc : Source_Ptr; + Left_Opnd : Node_Id; + Right_Opnd : Node_Id) + return Node_Id; + pragma Inline (Make_Op_Lt); + + function Make_Op_Le (Sloc : Source_Ptr; + Left_Opnd : Node_Id; + Right_Opnd : Node_Id) + return Node_Id; + pragma Inline (Make_Op_Le); + + function Make_Op_Gt (Sloc : Source_Ptr; + Left_Opnd : Node_Id; + Right_Opnd : Node_Id) + return Node_Id; + pragma Inline (Make_Op_Gt); + + function Make_Op_Ge (Sloc : Source_Ptr; + Left_Opnd : Node_Id; + Right_Opnd : Node_Id) + return Node_Id; + pragma Inline (Make_Op_Ge); + + function Make_Op_Add (Sloc : Source_Ptr; + Left_Opnd : Node_Id; + Right_Opnd : Node_Id) + return Node_Id; + pragma Inline (Make_Op_Add); + + function Make_Op_Subtract (Sloc : Source_Ptr; + Left_Opnd : Node_Id; + Right_Opnd : Node_Id) + return Node_Id; + pragma Inline (Make_Op_Subtract); + + function Make_Op_Concat (Sloc : Source_Ptr; + Left_Opnd : Node_Id; + Right_Opnd : Node_Id) + return Node_Id; + pragma Inline (Make_Op_Concat); + + function Make_Op_Multiply (Sloc : Source_Ptr; + Left_Opnd : Node_Id; + Right_Opnd : Node_Id) + return Node_Id; + pragma Inline (Make_Op_Multiply); + + function Make_Op_Divide (Sloc : Source_Ptr; + Left_Opnd : Node_Id; + Right_Opnd : Node_Id) + return Node_Id; + pragma Inline (Make_Op_Divide); + + function Make_Op_Mod (Sloc : Source_Ptr; + Left_Opnd : Node_Id; + Right_Opnd : Node_Id) + return Node_Id; + pragma Inline (Make_Op_Mod); + + function Make_Op_Rem (Sloc : Source_Ptr; + Left_Opnd : Node_Id; + Right_Opnd : Node_Id) + return Node_Id; + pragma Inline (Make_Op_Rem); + + function Make_Op_Expon (Sloc : Source_Ptr; + Left_Opnd : Node_Id; + Right_Opnd : Node_Id) + return Node_Id; + pragma Inline (Make_Op_Expon); + + function Make_Op_Plus (Sloc : Source_Ptr; + Right_Opnd : Node_Id) + return Node_Id; + pragma Inline (Make_Op_Plus); + + function Make_Op_Minus (Sloc : Source_Ptr; + Right_Opnd : Node_Id) + return Node_Id; + pragma Inline (Make_Op_Minus); + + function Make_Op_Abs (Sloc : Source_Ptr; + Right_Opnd : Node_Id) + return Node_Id; + pragma Inline (Make_Op_Abs); + + function Make_Op_Not (Sloc : Source_Ptr; + Right_Opnd : Node_Id) + return Node_Id; + pragma Inline (Make_Op_Not); + + function Make_Type_Conversion (Sloc : Source_Ptr; + Subtype_Mark : Node_Id; + Expression : Node_Id) + return Node_Id; + pragma Inline (Make_Type_Conversion); + + function Make_Qualified_Expression (Sloc : Source_Ptr; + Subtype_Mark : Node_Id; + Expression : Node_Id) + return Node_Id; + pragma Inline (Make_Qualified_Expression); + + function Make_Allocator (Sloc : Source_Ptr; + Expression : Node_Id) + return Node_Id; + pragma Inline (Make_Allocator); + + function Make_Null_Statement (Sloc : Source_Ptr) + return Node_Id; + pragma Inline (Make_Null_Statement); + + function Make_Label (Sloc : Source_Ptr; + Identifier : Node_Id) + return Node_Id; + pragma Inline (Make_Label); + + function Make_Assignment_Statement (Sloc : Source_Ptr; + Name : Node_Id; + Expression : Node_Id) + return Node_Id; + pragma Inline (Make_Assignment_Statement); + + function Make_If_Statement (Sloc : Source_Ptr; + Condition : Node_Id; + Then_Statements : List_Id; + Elsif_Parts : List_Id := No_List; + Else_Statements : List_Id := No_List; + End_Span : Uint := No_Uint) + return Node_Id; + pragma Inline (Make_If_Statement); + + function Make_Elsif_Part (Sloc : Source_Ptr; + Condition : Node_Id; + Then_Statements : List_Id) + return Node_Id; + pragma Inline (Make_Elsif_Part); + + function Make_Case_Statement (Sloc : Source_Ptr; + Expression : Node_Id; + Alternatives : List_Id; + End_Span : Uint := No_Uint) + return Node_Id; + pragma Inline (Make_Case_Statement); + + function Make_Case_Statement_Alternative (Sloc : Source_Ptr; + Discrete_Choices : List_Id; + Statements : List_Id) + return Node_Id; + pragma Inline (Make_Case_Statement_Alternative); + + function Make_Loop_Statement (Sloc : Source_Ptr; + Identifier : Node_Id := Empty; + Iteration_Scheme : Node_Id := Empty; + Statements : List_Id; + End_Label : Node_Id; + Has_Created_Identifier : Boolean := False) + return Node_Id; + pragma Inline (Make_Loop_Statement); + + function Make_Iteration_Scheme (Sloc : Source_Ptr; + Condition : Node_Id := Empty; + Loop_Parameter_Specification : Node_Id := Empty) + return Node_Id; + pragma Inline (Make_Iteration_Scheme); + + function Make_Loop_Parameter_Specification (Sloc : Source_Ptr; + Defining_Identifier : Node_Id; + Reverse_Present : Boolean := False; + Discrete_Subtype_Definition : Node_Id) + return Node_Id; + pragma Inline (Make_Loop_Parameter_Specification); + + function Make_Block_Statement (Sloc : Source_Ptr; + Identifier : Node_Id := Empty; + Declarations : List_Id := No_List; + Handled_Statement_Sequence : Node_Id; + Has_Created_Identifier : Boolean := False; + Is_Task_Allocation_Block : Boolean := False; + Is_Asynchronous_Call_Block : Boolean := False) + return Node_Id; + pragma Inline (Make_Block_Statement); + + function Make_Exit_Statement (Sloc : Source_Ptr; + Name : Node_Id := Empty; + Condition : Node_Id := Empty) + return Node_Id; + pragma Inline (Make_Exit_Statement); + + function Make_Goto_Statement (Sloc : Source_Ptr; + Name : Node_Id) + return Node_Id; + pragma Inline (Make_Goto_Statement); + + function Make_Subprogram_Declaration (Sloc : Source_Ptr; + Specification : Node_Id) + return Node_Id; + pragma Inline (Make_Subprogram_Declaration); + + function Make_Abstract_Subprogram_Declaration (Sloc : Source_Ptr; + Specification : Node_Id) + return Node_Id; + pragma Inline (Make_Abstract_Subprogram_Declaration); + + function Make_Function_Specification (Sloc : Source_Ptr; + Defining_Unit_Name : Node_Id; + Parameter_Specifications : List_Id := No_List; + Subtype_Mark : Node_Id) + return Node_Id; + pragma Inline (Make_Function_Specification); + + function Make_Procedure_Specification (Sloc : Source_Ptr; + Defining_Unit_Name : Node_Id; + Parameter_Specifications : List_Id := No_List) + return Node_Id; + pragma Inline (Make_Procedure_Specification); + + function Make_Designator (Sloc : Source_Ptr; + Name : Node_Id; + Identifier : Node_Id) + return Node_Id; + pragma Inline (Make_Designator); + + function Make_Defining_Program_Unit_Name (Sloc : Source_Ptr; + Name : Node_Id; + Defining_Identifier : Node_Id) + return Node_Id; + pragma Inline (Make_Defining_Program_Unit_Name); + + function Make_Operator_Symbol (Sloc : Source_Ptr; + Chars : Name_Id; + Strval : String_Id) + return Node_Id; + pragma Inline (Make_Operator_Symbol); + + function Make_Defining_Operator_Symbol (Sloc : Source_Ptr; + Chars : Name_Id) + return Node_Id; + pragma Inline (Make_Defining_Operator_Symbol); + + function Make_Parameter_Specification (Sloc : Source_Ptr; + Defining_Identifier : Node_Id; + In_Present : Boolean := False; + Out_Present : Boolean := False; + Parameter_Type : Node_Id; + Expression : Node_Id := Empty) + return Node_Id; + pragma Inline (Make_Parameter_Specification); + + function Make_Subprogram_Body (Sloc : Source_Ptr; + Specification : Node_Id; + Declarations : List_Id; + Handled_Statement_Sequence : Node_Id; + Bad_Is_Detected : Boolean := False) + return Node_Id; + pragma Inline (Make_Subprogram_Body); + + function Make_Procedure_Call_Statement (Sloc : Source_Ptr; + Name : Node_Id; + Parameter_Associations : List_Id := No_List) + return Node_Id; + pragma Inline (Make_Procedure_Call_Statement); + + function Make_Function_Call (Sloc : Source_Ptr; + Name : Node_Id; + Parameter_Associations : List_Id := No_List) + return Node_Id; + pragma Inline (Make_Function_Call); + + function Make_Parameter_Association (Sloc : Source_Ptr; + Selector_Name : Node_Id; + Explicit_Actual_Parameter : Node_Id) + return Node_Id; + pragma Inline (Make_Parameter_Association); + + function Make_Return_Statement (Sloc : Source_Ptr; + Expression : Node_Id := Empty) + return Node_Id; + pragma Inline (Make_Return_Statement); + + function Make_Package_Declaration (Sloc : Source_Ptr; + Specification : Node_Id) + return Node_Id; + pragma Inline (Make_Package_Declaration); + + function Make_Package_Specification (Sloc : Source_Ptr; + Defining_Unit_Name : Node_Id; + Visible_Declarations : List_Id; + Private_Declarations : List_Id := No_List; + End_Label : Node_Id) + return Node_Id; + pragma Inline (Make_Package_Specification); + + function Make_Package_Body (Sloc : Source_Ptr; + Defining_Unit_Name : Node_Id; + Declarations : List_Id; + Handled_Statement_Sequence : Node_Id := Empty) + return Node_Id; + pragma Inline (Make_Package_Body); + + function Make_Private_Type_Declaration (Sloc : Source_Ptr; + Defining_Identifier : Node_Id; + Discriminant_Specifications : List_Id := No_List; + Unknown_Discriminants_Present : Boolean := False; + Abstract_Present : Boolean := False; + Tagged_Present : Boolean := False; + Limited_Present : Boolean := False) + return Node_Id; + pragma Inline (Make_Private_Type_Declaration); + + function Make_Private_Extension_Declaration (Sloc : Source_Ptr; + Defining_Identifier : Node_Id; + Discriminant_Specifications : List_Id := No_List; + Unknown_Discriminants_Present : Boolean := False; + Abstract_Present : Boolean := False; + Subtype_Indication : Node_Id) + return Node_Id; + pragma Inline (Make_Private_Extension_Declaration); + + function Make_Use_Package_Clause (Sloc : Source_Ptr; + Names : List_Id) + return Node_Id; + pragma Inline (Make_Use_Package_Clause); + + function Make_Use_Type_Clause (Sloc : Source_Ptr; + Subtype_Marks : List_Id) + return Node_Id; + pragma Inline (Make_Use_Type_Clause); + + function Make_Object_Renaming_Declaration (Sloc : Source_Ptr; + Defining_Identifier : Node_Id; + Subtype_Mark : Node_Id; + Name : Node_Id) + return Node_Id; + pragma Inline (Make_Object_Renaming_Declaration); + + function Make_Exception_Renaming_Declaration (Sloc : Source_Ptr; + Defining_Identifier : Node_Id; + Name : Node_Id) + return Node_Id; + pragma Inline (Make_Exception_Renaming_Declaration); + + function Make_Package_Renaming_Declaration (Sloc : Source_Ptr; + Defining_Unit_Name : Node_Id; + Name : Node_Id) + return Node_Id; + pragma Inline (Make_Package_Renaming_Declaration); + + function Make_Subprogram_Renaming_Declaration (Sloc : Source_Ptr; + Specification : Node_Id; + Name : Node_Id) + return Node_Id; + pragma Inline (Make_Subprogram_Renaming_Declaration); + + function Make_Generic_Package_Renaming_Declaration (Sloc : Source_Ptr; + Defining_Unit_Name : Node_Id; + Name : Node_Id) + return Node_Id; + pragma Inline (Make_Generic_Package_Renaming_Declaration); + + function Make_Generic_Procedure_Renaming_Declaration (Sloc : Source_Ptr; + Defining_Unit_Name : Node_Id; + Name : Node_Id) + return Node_Id; + pragma Inline (Make_Generic_Procedure_Renaming_Declaration); + + function Make_Generic_Function_Renaming_Declaration (Sloc : Source_Ptr; + Defining_Unit_Name : Node_Id; + Name : Node_Id) + return Node_Id; + pragma Inline (Make_Generic_Function_Renaming_Declaration); + + function Make_Task_Type_Declaration (Sloc : Source_Ptr; + Defining_Identifier : Node_Id; + Discriminant_Specifications : List_Id := No_List; + Task_Definition : Node_Id := Empty) + return Node_Id; + pragma Inline (Make_Task_Type_Declaration); + + function Make_Single_Task_Declaration (Sloc : Source_Ptr; + Defining_Identifier : Node_Id; + Task_Definition : Node_Id := Empty) + return Node_Id; + pragma Inline (Make_Single_Task_Declaration); + + function Make_Task_Definition (Sloc : Source_Ptr; + Visible_Declarations : List_Id; + Private_Declarations : List_Id := No_List; + End_Label : Node_Id) + return Node_Id; + pragma Inline (Make_Task_Definition); + + function Make_Task_Body (Sloc : Source_Ptr; + Defining_Identifier : Node_Id; + Declarations : List_Id; + Handled_Statement_Sequence : Node_Id) + return Node_Id; + pragma Inline (Make_Task_Body); + + function Make_Protected_Type_Declaration (Sloc : Source_Ptr; + Defining_Identifier : Node_Id; + Discriminant_Specifications : List_Id := No_List; + Protected_Definition : Node_Id) + return Node_Id; + pragma Inline (Make_Protected_Type_Declaration); + + function Make_Single_Protected_Declaration (Sloc : Source_Ptr; + Defining_Identifier : Node_Id; + Protected_Definition : Node_Id) + return Node_Id; + pragma Inline (Make_Single_Protected_Declaration); + + function Make_Protected_Definition (Sloc : Source_Ptr; + Visible_Declarations : List_Id; + Private_Declarations : List_Id := No_List; + End_Label : Node_Id) + return Node_Id; + pragma Inline (Make_Protected_Definition); + + function Make_Protected_Body (Sloc : Source_Ptr; + Defining_Identifier : Node_Id; + Declarations : List_Id; + End_Label : Node_Id) + return Node_Id; + pragma Inline (Make_Protected_Body); + + function Make_Entry_Declaration (Sloc : Source_Ptr; + Defining_Identifier : Node_Id; + Discrete_Subtype_Definition : Node_Id := Empty; + Parameter_Specifications : List_Id := No_List) + return Node_Id; + pragma Inline (Make_Entry_Declaration); + + function Make_Accept_Statement (Sloc : Source_Ptr; + Entry_Direct_Name : Node_Id; + Entry_Index : Node_Id := Empty; + Parameter_Specifications : List_Id := No_List; + Handled_Statement_Sequence : Node_Id; + Declarations : List_Id := No_List) + return Node_Id; + pragma Inline (Make_Accept_Statement); + + function Make_Entry_Body (Sloc : Source_Ptr; + Defining_Identifier : Node_Id; + Entry_Body_Formal_Part : Node_Id; + Declarations : List_Id; + Handled_Statement_Sequence : Node_Id) + return Node_Id; + pragma Inline (Make_Entry_Body); + + function Make_Entry_Body_Formal_Part (Sloc : Source_Ptr; + Entry_Index_Specification : Node_Id := Empty; + Parameter_Specifications : List_Id := No_List; + Condition : Node_Id) + return Node_Id; + pragma Inline (Make_Entry_Body_Formal_Part); + + function Make_Entry_Index_Specification (Sloc : Source_Ptr; + Defining_Identifier : Node_Id; + Discrete_Subtype_Definition : Node_Id) + return Node_Id; + pragma Inline (Make_Entry_Index_Specification); + + function Make_Entry_Call_Statement (Sloc : Source_Ptr; + Name : Node_Id; + Parameter_Associations : List_Id := No_List) + return Node_Id; + pragma Inline (Make_Entry_Call_Statement); + + function Make_Requeue_Statement (Sloc : Source_Ptr; + Name : Node_Id; + Abort_Present : Boolean := False) + return Node_Id; + pragma Inline (Make_Requeue_Statement); + + function Make_Delay_Until_Statement (Sloc : Source_Ptr; + Expression : Node_Id) + return Node_Id; + pragma Inline (Make_Delay_Until_Statement); + + function Make_Delay_Relative_Statement (Sloc : Source_Ptr; + Expression : Node_Id) + return Node_Id; + pragma Inline (Make_Delay_Relative_Statement); + + function Make_Selective_Accept (Sloc : Source_Ptr; + Select_Alternatives : List_Id; + Else_Statements : List_Id := No_List) + return Node_Id; + pragma Inline (Make_Selective_Accept); + + function Make_Accept_Alternative (Sloc : Source_Ptr; + Accept_Statement : Node_Id; + Condition : Node_Id := Empty; + Statements : List_Id := Empty_List; + Pragmas_Before : List_Id := No_List) + return Node_Id; + pragma Inline (Make_Accept_Alternative); + + function Make_Delay_Alternative (Sloc : Source_Ptr; + Delay_Statement : Node_Id; + Condition : Node_Id := Empty; + Statements : List_Id := Empty_List; + Pragmas_Before : List_Id := No_List) + return Node_Id; + pragma Inline (Make_Delay_Alternative); + + function Make_Terminate_Alternative (Sloc : Source_Ptr; + Condition : Node_Id := Empty; + Pragmas_Before : List_Id := No_List; + Pragmas_After : List_Id := No_List) + return Node_Id; + pragma Inline (Make_Terminate_Alternative); + + function Make_Timed_Entry_Call (Sloc : Source_Ptr; + Entry_Call_Alternative : Node_Id; + Delay_Alternative : Node_Id) + return Node_Id; + pragma Inline (Make_Timed_Entry_Call); + + function Make_Entry_Call_Alternative (Sloc : Source_Ptr; + Entry_Call_Statement : Node_Id; + Statements : List_Id := Empty_List; + Pragmas_Before : List_Id := No_List) + return Node_Id; + pragma Inline (Make_Entry_Call_Alternative); + + function Make_Conditional_Entry_Call (Sloc : Source_Ptr; + Entry_Call_Alternative : Node_Id; + Else_Statements : List_Id) + return Node_Id; + pragma Inline (Make_Conditional_Entry_Call); + + function Make_Asynchronous_Select (Sloc : Source_Ptr; + Triggering_Alternative : Node_Id; + Abortable_Part : Node_Id) + return Node_Id; + pragma Inline (Make_Asynchronous_Select); + + function Make_Triggering_Alternative (Sloc : Source_Ptr; + Triggering_Statement : Node_Id; + Statements : List_Id := Empty_List; + Pragmas_Before : List_Id := No_List) + return Node_Id; + pragma Inline (Make_Triggering_Alternative); + + function Make_Abortable_Part (Sloc : Source_Ptr; + Statements : List_Id) + return Node_Id; + pragma Inline (Make_Abortable_Part); + + function Make_Abort_Statement (Sloc : Source_Ptr; + Names : List_Id) + return Node_Id; + pragma Inline (Make_Abort_Statement); + + function Make_Compilation_Unit (Sloc : Source_Ptr; + Context_Items : List_Id; + Private_Present : Boolean := False; + Unit : Node_Id; + Aux_Decls_Node : Node_Id) + return Node_Id; + pragma Inline (Make_Compilation_Unit); + + function Make_Compilation_Unit_Aux (Sloc : Source_Ptr; + Declarations : List_Id := No_List; + Actions : List_Id := No_List; + Pragmas_After : List_Id := No_List) + return Node_Id; + pragma Inline (Make_Compilation_Unit_Aux); + + function Make_With_Clause (Sloc : Source_Ptr; + Name : Node_Id; + First_Name : Boolean := True; + Last_Name : Boolean := True) + return Node_Id; + pragma Inline (Make_With_Clause); + + function Make_With_Type_Clause (Sloc : Source_Ptr; + Name : Node_Id; + Tagged_Present : Boolean := False) + return Node_Id; + pragma Inline (Make_With_Type_Clause); + + function Make_Subprogram_Body_Stub (Sloc : Source_Ptr; + Specification : Node_Id) + return Node_Id; + pragma Inline (Make_Subprogram_Body_Stub); + + function Make_Package_Body_Stub (Sloc : Source_Ptr; + Defining_Identifier : Node_Id) + return Node_Id; + pragma Inline (Make_Package_Body_Stub); + + function Make_Task_Body_Stub (Sloc : Source_Ptr; + Defining_Identifier : Node_Id) + return Node_Id; + pragma Inline (Make_Task_Body_Stub); + + function Make_Protected_Body_Stub (Sloc : Source_Ptr; + Defining_Identifier : Node_Id) + return Node_Id; + pragma Inline (Make_Protected_Body_Stub); + + function Make_Subunit (Sloc : Source_Ptr; + Name : Node_Id; + Proper_Body : Node_Id) + return Node_Id; + pragma Inline (Make_Subunit); + + function Make_Exception_Declaration (Sloc : Source_Ptr; + Defining_Identifier : Node_Id) + return Node_Id; + pragma Inline (Make_Exception_Declaration); + + function Make_Handled_Sequence_Of_Statements (Sloc : Source_Ptr; + Statements : List_Id; + End_Label : Node_Id := Empty; + Exception_Handlers : List_Id := No_List; + At_End_Proc : Node_Id := Empty) + return Node_Id; + pragma Inline (Make_Handled_Sequence_Of_Statements); + + function Make_Exception_Handler (Sloc : Source_Ptr; + Choice_Parameter : Node_Id := Empty; + Exception_Choices : List_Id; + Statements : List_Id) + return Node_Id; + pragma Inline (Make_Exception_Handler); + + function Make_Raise_Statement (Sloc : Source_Ptr; + Name : Node_Id := Empty) + return Node_Id; + pragma Inline (Make_Raise_Statement); + + function Make_Generic_Subprogram_Declaration (Sloc : Source_Ptr; + Specification : Node_Id; + Generic_Formal_Declarations : List_Id) + return Node_Id; + pragma Inline (Make_Generic_Subprogram_Declaration); + + function Make_Generic_Package_Declaration (Sloc : Source_Ptr; + Specification : Node_Id; + Generic_Formal_Declarations : List_Id) + return Node_Id; + pragma Inline (Make_Generic_Package_Declaration); + + function Make_Package_Instantiation (Sloc : Source_Ptr; + Defining_Unit_Name : Node_Id; + Name : Node_Id; + Generic_Associations : List_Id := No_List) + return Node_Id; + pragma Inline (Make_Package_Instantiation); + + function Make_Procedure_Instantiation (Sloc : Source_Ptr; + Defining_Unit_Name : Node_Id; + Name : Node_Id; + Generic_Associations : List_Id := No_List) + return Node_Id; + pragma Inline (Make_Procedure_Instantiation); + + function Make_Function_Instantiation (Sloc : Source_Ptr; + Defining_Unit_Name : Node_Id; + Name : Node_Id; + Generic_Associations : List_Id := No_List) + return Node_Id; + pragma Inline (Make_Function_Instantiation); + + function Make_Generic_Association (Sloc : Source_Ptr; + Selector_Name : Node_Id := Empty; + Explicit_Generic_Actual_Parameter : Node_Id) + return Node_Id; + pragma Inline (Make_Generic_Association); + + function Make_Formal_Object_Declaration (Sloc : Source_Ptr; + Defining_Identifier : Node_Id; + In_Present : Boolean := False; + Out_Present : Boolean := False; + Subtype_Mark : Node_Id; + Expression : Node_Id := Empty) + return Node_Id; + pragma Inline (Make_Formal_Object_Declaration); + + function Make_Formal_Type_Declaration (Sloc : Source_Ptr; + Defining_Identifier : Node_Id; + Formal_Type_Definition : Node_Id; + Discriminant_Specifications : List_Id := No_List; + Unknown_Discriminants_Present : Boolean := False) + return Node_Id; + pragma Inline (Make_Formal_Type_Declaration); + + function Make_Formal_Private_Type_Definition (Sloc : Source_Ptr; + Abstract_Present : Boolean := False; + Tagged_Present : Boolean := False; + Limited_Present : Boolean := False) + return Node_Id; + pragma Inline (Make_Formal_Private_Type_Definition); + + function Make_Formal_Derived_Type_Definition (Sloc : Source_Ptr; + Subtype_Mark : Node_Id; + Private_Present : Boolean := False; + Abstract_Present : Boolean := False) + return Node_Id; + pragma Inline (Make_Formal_Derived_Type_Definition); + + function Make_Formal_Discrete_Type_Definition (Sloc : Source_Ptr) + return Node_Id; + pragma Inline (Make_Formal_Discrete_Type_Definition); + + function Make_Formal_Signed_Integer_Type_Definition (Sloc : Source_Ptr) + return Node_Id; + pragma Inline (Make_Formal_Signed_Integer_Type_Definition); + + function Make_Formal_Modular_Type_Definition (Sloc : Source_Ptr) + return Node_Id; + pragma Inline (Make_Formal_Modular_Type_Definition); + + function Make_Formal_Floating_Point_Definition (Sloc : Source_Ptr) + return Node_Id; + pragma Inline (Make_Formal_Floating_Point_Definition); + + function Make_Formal_Ordinary_Fixed_Point_Definition (Sloc : Source_Ptr) + return Node_Id; + pragma Inline (Make_Formal_Ordinary_Fixed_Point_Definition); + + function Make_Formal_Decimal_Fixed_Point_Definition (Sloc : Source_Ptr) + return Node_Id; + pragma Inline (Make_Formal_Decimal_Fixed_Point_Definition); + + function Make_Formal_Subprogram_Declaration (Sloc : Source_Ptr; + Specification : Node_Id; + Default_Name : Node_Id := Empty; + Box_Present : Boolean := False) + return Node_Id; + pragma Inline (Make_Formal_Subprogram_Declaration); + + function Make_Formal_Package_Declaration (Sloc : Source_Ptr; + Defining_Identifier : Node_Id; + Name : Node_Id; + Generic_Associations : List_Id := No_List; + Box_Present : Boolean := False) + return Node_Id; + pragma Inline (Make_Formal_Package_Declaration); + + function Make_Attribute_Definition_Clause (Sloc : Source_Ptr; + Name : Node_Id; + Chars : Name_Id; + Expression : Node_Id) + return Node_Id; + pragma Inline (Make_Attribute_Definition_Clause); + + function Make_Enumeration_Representation_Clause (Sloc : Source_Ptr; + Identifier : Node_Id; + Array_Aggregate : Node_Id) + return Node_Id; + pragma Inline (Make_Enumeration_Representation_Clause); + + function Make_Record_Representation_Clause (Sloc : Source_Ptr; + Identifier : Node_Id; + Mod_Clause : Node_Id := Empty; + Component_Clauses : List_Id) + return Node_Id; + pragma Inline (Make_Record_Representation_Clause); + + function Make_Component_Clause (Sloc : Source_Ptr; + Component_Name : Node_Id; + Position : Node_Id; + First_Bit : Node_Id; + Last_Bit : Node_Id) + return Node_Id; + pragma Inline (Make_Component_Clause); + + function Make_Code_Statement (Sloc : Source_Ptr; + Expression : Node_Id) + return Node_Id; + pragma Inline (Make_Code_Statement); + + function Make_Op_Rotate_Left (Sloc : Source_Ptr; + Left_Opnd : Node_Id; + Right_Opnd : Node_Id) + return Node_Id; + pragma Inline (Make_Op_Rotate_Left); + + function Make_Op_Rotate_Right (Sloc : Source_Ptr; + Left_Opnd : Node_Id; + Right_Opnd : Node_Id) + return Node_Id; + pragma Inline (Make_Op_Rotate_Right); + + function Make_Op_Shift_Left (Sloc : Source_Ptr; + Left_Opnd : Node_Id; + Right_Opnd : Node_Id) + return Node_Id; + pragma Inline (Make_Op_Shift_Left); + + function Make_Op_Shift_Right_Arithmetic (Sloc : Source_Ptr; + Left_Opnd : Node_Id; + Right_Opnd : Node_Id) + return Node_Id; + pragma Inline (Make_Op_Shift_Right_Arithmetic); + + function Make_Op_Shift_Right (Sloc : Source_Ptr; + Left_Opnd : Node_Id; + Right_Opnd : Node_Id) + return Node_Id; + pragma Inline (Make_Op_Shift_Right); + + function Make_Delta_Constraint (Sloc : Source_Ptr; + Delta_Expression : Node_Id; + Range_Constraint : Node_Id := Empty) + return Node_Id; + pragma Inline (Make_Delta_Constraint); + + function Make_At_Clause (Sloc : Source_Ptr; + Identifier : Node_Id; + Expression : Node_Id) + return Node_Id; + pragma Inline (Make_At_Clause); + + function Make_Mod_Clause (Sloc : Source_Ptr; + Expression : Node_Id; + Pragmas_Before : List_Id) + return Node_Id; + pragma Inline (Make_Mod_Clause); + + function Make_Conditional_Expression (Sloc : Source_Ptr; + Expressions : List_Id) + return Node_Id; + pragma Inline (Make_Conditional_Expression); + + function Make_Expanded_Name (Sloc : Source_Ptr; + Chars : Name_Id; + Prefix : Node_Id; + Selector_Name : Node_Id) + return Node_Id; + pragma Inline (Make_Expanded_Name); + + function Make_Free_Statement (Sloc : Source_Ptr; + Expression : Node_Id) + return Node_Id; + pragma Inline (Make_Free_Statement); + + function Make_Freeze_Entity (Sloc : Source_Ptr; + Actions : List_Id := No_List) + return Node_Id; + pragma Inline (Make_Freeze_Entity); + + function Make_Implicit_Label_Declaration (Sloc : Source_Ptr; + Defining_Identifier : Node_Id) + return Node_Id; + pragma Inline (Make_Implicit_Label_Declaration); + + function Make_Itype_Reference (Sloc : Source_Ptr) + return Node_Id; + pragma Inline (Make_Itype_Reference); + + function Make_Raise_Constraint_Error (Sloc : Source_Ptr; + Condition : Node_Id := Empty) + return Node_Id; + pragma Inline (Make_Raise_Constraint_Error); + + function Make_Raise_Program_Error (Sloc : Source_Ptr; + Condition : Node_Id := Empty) + return Node_Id; + pragma Inline (Make_Raise_Program_Error); + + function Make_Raise_Storage_Error (Sloc : Source_Ptr; + Condition : Node_Id := Empty) + return Node_Id; + pragma Inline (Make_Raise_Storage_Error); + + function Make_Reference (Sloc : Source_Ptr; + Prefix : Node_Id) + return Node_Id; + pragma Inline (Make_Reference); + + function Make_Subprogram_Info (Sloc : Source_Ptr; + Identifier : Node_Id) + return Node_Id; + pragma Inline (Make_Subprogram_Info); + + function Make_Unchecked_Expression (Sloc : Source_Ptr; + Expression : Node_Id) + return Node_Id; + pragma Inline (Make_Unchecked_Expression); + + function Make_Unchecked_Type_Conversion (Sloc : Source_Ptr; + Subtype_Mark : Node_Id; + Expression : Node_Id) + return Node_Id; + pragma Inline (Make_Unchecked_Type_Conversion); + + function Make_Validate_Unchecked_Conversion (Sloc : Source_Ptr) + return Node_Id; + pragma Inline (Make_Validate_Unchecked_Conversion); + +end Nmake; |