1 ------------------------------------------------------------------------------
3 -- GNAT COMPILER COMPONENTS --
9 -- Generated by xnmake revision 1.29 using --
10 -- sinfo.ads revision 1.439 --
11 -- nmake.adt revision 1.12 --
13 -- Copyright (C) 1992-2001 Free Software Foundation, Inc. --
15 -- GNAT is free software; you can redistribute it and/or modify it under --
16 -- terms of the GNU General Public License as published by the Free Soft- --
17 -- ware Foundation; either version 2, or (at your option) any later ver- --
18 -- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
19 -- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
20 -- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License --
21 -- for more details. You should have received a copy of the GNU General --
22 -- Public License distributed with GNAT; see file COPYING. If not, write --
23 -- to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, --
24 -- MA 02111-1307, USA. --
26 -- GNAT was originally developed by the GNAT team at New York University. --
27 -- Extensive contributions were provided by Ada Core Technologies Inc. --
29 ------------------------------------------------------------------------------
31 pragma Style_Checks
(All_Checks
);
32 -- Turn off subprogram order checking, since the routines here are
33 -- generated automatically in order.
36 with Nlists
; use Nlists
;
37 with Types
; use Types
;
38 with Uintp
; use Uintp
;
39 with Urealp
; use Urealp
;
43 -- This package contains a set of routines used to construct tree nodes
44 -- using a functional style. There is one routine for each node type defined
45 -- in Sinfo with the general interface:
47 -- function Make_xxx (Sloc : Source_Ptr,
48 -- Field_Name_1 : Field_Name_1_Type [:= default]
49 -- Field_Name_2 : Field_Name_2_Type [:= default]
53 -- Only syntactic fields are included (i.e. fields marked as "-Sem" or "-Lib"
54 -- in the Sinfo spec are excluded). In addition, the following four syntactic
55 -- fields are excluded:
62 -- since they are very rarely set in expanded code. If they need to be set,
63 -- to other than the default values (False, False, False, zero), then the
64 -- appropriate Set_xxx procedures must be used on the returned value.
66 -- Default values are provided only for flag fields (where the default is
67 -- False), and for optional fields. An optional field is one where the
68 -- comment line describing the field contains the string "(set to xxx if".
69 -- For such fields, a default value of xxx is provided."
71 -- Warning: since calls to Make_xxx routines are normal function calls, the
72 -- arguments can be evaluated in any order. This means that at most one such
73 -- argument can have side effects (e.g. be a call to a parse routine).
75 function Make_Unused_At_Start
(Sloc
: Source_Ptr
)
77 pragma Inline
(Make_Unused_At_Start
);
79 function Make_Unused_At_End
(Sloc
: Source_Ptr
)
81 pragma Inline
(Make_Unused_At_End
);
83 function Make_Identifier
(Sloc
: Source_Ptr
;
86 pragma Inline
(Make_Identifier
);
88 function Make_Integer_Literal
(Sloc
: Source_Ptr
;
91 pragma Inline
(Make_Integer_Literal
);
93 function Make_Real_Literal
(Sloc
: Source_Ptr
;
96 pragma Inline
(Make_Real_Literal
);
98 function Make_Character_Literal
(Sloc
: Source_Ptr
;
100 Char_Literal_Value
: Char_Code
)
102 pragma Inline
(Make_Character_Literal
);
104 function Make_String_Literal
(Sloc
: Source_Ptr
;
107 pragma Inline
(Make_String_Literal
);
109 function Make_Pragma
(Sloc
: Source_Ptr
;
111 Pragma_Argument_Associations
: List_Id
:= No_List
;
112 Debug_Statement
: Node_Id
:= Empty
)
114 pragma Inline
(Make_Pragma
);
116 function Make_Pragma_Argument_Association
(Sloc
: Source_Ptr
;
117 Chars
: Name_Id
:= No_Name
;
118 Expression
: Node_Id
)
120 pragma Inline
(Make_Pragma_Argument_Association
);
122 function Make_Defining_Identifier
(Sloc
: Source_Ptr
;
125 pragma Inline
(Make_Defining_Identifier
);
127 function Make_Full_Type_Declaration
(Sloc
: Source_Ptr
;
128 Defining_Identifier
: Node_Id
;
129 Discriminant_Specifications
: List_Id
:= No_List
;
130 Type_Definition
: Node_Id
)
132 pragma Inline
(Make_Full_Type_Declaration
);
134 function Make_Subtype_Declaration
(Sloc
: Source_Ptr
;
135 Defining_Identifier
: Node_Id
;
136 Subtype_Indication
: Node_Id
)
138 pragma Inline
(Make_Subtype_Declaration
);
140 function Make_Subtype_Indication
(Sloc
: Source_Ptr
;
141 Subtype_Mark
: Node_Id
;
142 Constraint
: Node_Id
)
144 pragma Inline
(Make_Subtype_Indication
);
146 function Make_Object_Declaration
(Sloc
: Source_Ptr
;
147 Defining_Identifier
: Node_Id
;
148 Aliased_Present
: Boolean := False;
149 Constant_Present
: Boolean := False;
150 Object_Definition
: Node_Id
;
151 Expression
: Node_Id
:= Empty
)
153 pragma Inline
(Make_Object_Declaration
);
155 function Make_Number_Declaration
(Sloc
: Source_Ptr
;
156 Defining_Identifier
: Node_Id
;
157 Expression
: Node_Id
)
159 pragma Inline
(Make_Number_Declaration
);
161 function Make_Derived_Type_Definition
(Sloc
: Source_Ptr
;
162 Abstract_Present
: Boolean := False;
163 Subtype_Indication
: Node_Id
;
164 Record_Extension_Part
: Node_Id
:= Empty
)
166 pragma Inline
(Make_Derived_Type_Definition
);
168 function Make_Range_Constraint
(Sloc
: Source_Ptr
;
169 Range_Expression
: Node_Id
)
171 pragma Inline
(Make_Range_Constraint
);
173 function Make_Range
(Sloc
: Source_Ptr
;
175 High_Bound
: Node_Id
;
176 Includes_Infinities
: Boolean := False)
178 pragma Inline
(Make_Range
);
180 function Make_Enumeration_Type_Definition
(Sloc
: Source_Ptr
;
182 End_Label
: Node_Id
:= Empty
)
184 pragma Inline
(Make_Enumeration_Type_Definition
);
186 function Make_Defining_Character_Literal
(Sloc
: Source_Ptr
;
189 pragma Inline
(Make_Defining_Character_Literal
);
191 function Make_Signed_Integer_Type_Definition
(Sloc
: Source_Ptr
;
193 High_Bound
: Node_Id
)
195 pragma Inline
(Make_Signed_Integer_Type_Definition
);
197 function Make_Modular_Type_Definition
(Sloc
: Source_Ptr
;
198 Expression
: Node_Id
)
200 pragma Inline
(Make_Modular_Type_Definition
);
202 function Make_Floating_Point_Definition
(Sloc
: Source_Ptr
;
203 Digits_Expression
: Node_Id
;
204 Real_Range_Specification
: Node_Id
:= Empty
)
206 pragma Inline
(Make_Floating_Point_Definition
);
208 function Make_Real_Range_Specification
(Sloc
: Source_Ptr
;
210 High_Bound
: Node_Id
)
212 pragma Inline
(Make_Real_Range_Specification
);
214 function Make_Ordinary_Fixed_Point_Definition
(Sloc
: Source_Ptr
;
215 Delta_Expression
: Node_Id
;
216 Real_Range_Specification
: Node_Id
)
218 pragma Inline
(Make_Ordinary_Fixed_Point_Definition
);
220 function Make_Decimal_Fixed_Point_Definition
(Sloc
: Source_Ptr
;
221 Delta_Expression
: Node_Id
;
222 Digits_Expression
: Node_Id
;
223 Real_Range_Specification
: Node_Id
:= Empty
)
225 pragma Inline
(Make_Decimal_Fixed_Point_Definition
);
227 function Make_Digits_Constraint
(Sloc
: Source_Ptr
;
228 Digits_Expression
: Node_Id
;
229 Range_Constraint
: Node_Id
:= Empty
)
231 pragma Inline
(Make_Digits_Constraint
);
233 function Make_Unconstrained_Array_Definition
(Sloc
: Source_Ptr
;
234 Subtype_Marks
: List_Id
;
235 Aliased_Present
: Boolean := False;
236 Subtype_Indication
: Node_Id
)
238 pragma Inline
(Make_Unconstrained_Array_Definition
);
240 function Make_Constrained_Array_Definition
(Sloc
: Source_Ptr
;
241 Discrete_Subtype_Definitions
: List_Id
;
242 Aliased_Present
: Boolean := False;
243 Subtype_Indication
: Node_Id
)
245 pragma Inline
(Make_Constrained_Array_Definition
);
247 function Make_Discriminant_Specification
(Sloc
: Source_Ptr
;
248 Defining_Identifier
: Node_Id
;
249 Discriminant_Type
: Node_Id
;
250 Expression
: Node_Id
:= Empty
)
252 pragma Inline
(Make_Discriminant_Specification
);
254 function Make_Index_Or_Discriminant_Constraint
(Sloc
: Source_Ptr
;
255 Constraints
: List_Id
)
257 pragma Inline
(Make_Index_Or_Discriminant_Constraint
);
259 function Make_Discriminant_Association
(Sloc
: Source_Ptr
;
260 Selector_Names
: List_Id
;
261 Expression
: Node_Id
)
263 pragma Inline
(Make_Discriminant_Association
);
265 function Make_Record_Definition
(Sloc
: Source_Ptr
;
266 End_Label
: Node_Id
:= Empty
;
267 Abstract_Present
: Boolean := False;
268 Tagged_Present
: Boolean := False;
269 Limited_Present
: Boolean := False;
270 Component_List
: Node_Id
;
271 Null_Present
: Boolean := False)
273 pragma Inline
(Make_Record_Definition
);
275 function Make_Component_List
(Sloc
: Source_Ptr
;
276 Component_Items
: List_Id
;
277 Variant_Part
: Node_Id
:= Empty
;
278 Null_Present
: Boolean := False)
280 pragma Inline
(Make_Component_List
);
282 function Make_Component_Declaration
(Sloc
: Source_Ptr
;
283 Defining_Identifier
: Node_Id
;
284 Aliased_Present
: Boolean := False;
285 Subtype_Indication
: Node_Id
;
286 Expression
: Node_Id
:= Empty
)
288 pragma Inline
(Make_Component_Declaration
);
290 function Make_Variant_Part
(Sloc
: Source_Ptr
;
294 pragma Inline
(Make_Variant_Part
);
296 function Make_Variant
(Sloc
: Source_Ptr
;
297 Discrete_Choices
: List_Id
;
298 Component_List
: Node_Id
)
300 pragma Inline
(Make_Variant
);
302 function Make_Others_Choice
(Sloc
: Source_Ptr
)
304 pragma Inline
(Make_Others_Choice
);
306 function Make_Access_To_Object_Definition
(Sloc
: Source_Ptr
;
307 All_Present
: Boolean := False;
308 Subtype_Indication
: Node_Id
;
309 Constant_Present
: Boolean := False)
311 pragma Inline
(Make_Access_To_Object_Definition
);
313 function Make_Access_Function_Definition
(Sloc
: Source_Ptr
;
314 Protected_Present
: Boolean := False;
315 Parameter_Specifications
: List_Id
:= No_List
;
316 Subtype_Mark
: Node_Id
)
318 pragma Inline
(Make_Access_Function_Definition
);
320 function Make_Access_Procedure_Definition
(Sloc
: Source_Ptr
;
321 Protected_Present
: Boolean := False;
322 Parameter_Specifications
: List_Id
:= No_List
)
324 pragma Inline
(Make_Access_Procedure_Definition
);
326 function Make_Access_Definition
(Sloc
: Source_Ptr
;
327 Subtype_Mark
: Node_Id
)
329 pragma Inline
(Make_Access_Definition
);
331 function Make_Incomplete_Type_Declaration
(Sloc
: Source_Ptr
;
332 Defining_Identifier
: Node_Id
;
333 Discriminant_Specifications
: List_Id
:= No_List
;
334 Unknown_Discriminants_Present
: Boolean := False)
336 pragma Inline
(Make_Incomplete_Type_Declaration
);
338 function Make_Explicit_Dereference
(Sloc
: Source_Ptr
;
341 pragma Inline
(Make_Explicit_Dereference
);
343 function Make_Indexed_Component
(Sloc
: Source_Ptr
;
345 Expressions
: List_Id
)
347 pragma Inline
(Make_Indexed_Component
);
349 function Make_Slice
(Sloc
: Source_Ptr
;
351 Discrete_Range
: Node_Id
)
353 pragma Inline
(Make_Slice
);
355 function Make_Selected_Component
(Sloc
: Source_Ptr
;
357 Selector_Name
: Node_Id
)
359 pragma Inline
(Make_Selected_Component
);
361 function Make_Attribute_Reference
(Sloc
: Source_Ptr
;
363 Attribute_Name
: Name_Id
;
364 Expressions
: List_Id
:= No_List
;
365 Must_Be_Byte_Aligned
: Boolean := False)
367 pragma Inline
(Make_Attribute_Reference
);
369 function Make_Aggregate
(Sloc
: Source_Ptr
;
370 Expressions
: List_Id
:= No_List
;
371 Component_Associations
: List_Id
:= No_List
;
372 Null_Record_Present
: Boolean := False)
374 pragma Inline
(Make_Aggregate
);
376 function Make_Component_Association
(Sloc
: Source_Ptr
;
378 Expression
: Node_Id
)
380 pragma Inline
(Make_Component_Association
);
382 function Make_Extension_Aggregate
(Sloc
: Source_Ptr
;
383 Ancestor_Part
: Node_Id
;
384 Expressions
: List_Id
:= No_List
;
385 Component_Associations
: List_Id
:= No_List
;
386 Null_Record_Present
: Boolean := False)
388 pragma Inline
(Make_Extension_Aggregate
);
390 function Make_Null
(Sloc
: Source_Ptr
)
392 pragma Inline
(Make_Null
);
394 function Make_And_Then
(Sloc
: Source_Ptr
;
396 Right_Opnd
: Node_Id
)
398 pragma Inline
(Make_And_Then
);
400 function Make_Or_Else
(Sloc
: Source_Ptr
;
402 Right_Opnd
: Node_Id
)
404 pragma Inline
(Make_Or_Else
);
406 function Make_In
(Sloc
: Source_Ptr
;
408 Right_Opnd
: Node_Id
)
410 pragma Inline
(Make_In
);
412 function Make_Not_In
(Sloc
: Source_Ptr
;
414 Right_Opnd
: Node_Id
)
416 pragma Inline
(Make_Not_In
);
418 function Make_Op_And
(Sloc
: Source_Ptr
;
420 Right_Opnd
: Node_Id
)
422 pragma Inline
(Make_Op_And
);
424 function Make_Op_Or
(Sloc
: Source_Ptr
;
426 Right_Opnd
: Node_Id
)
428 pragma Inline
(Make_Op_Or
);
430 function Make_Op_Xor
(Sloc
: Source_Ptr
;
432 Right_Opnd
: Node_Id
)
434 pragma Inline
(Make_Op_Xor
);
436 function Make_Op_Eq
(Sloc
: Source_Ptr
;
438 Right_Opnd
: Node_Id
)
440 pragma Inline
(Make_Op_Eq
);
442 function Make_Op_Ne
(Sloc
: Source_Ptr
;
444 Right_Opnd
: Node_Id
)
446 pragma Inline
(Make_Op_Ne
);
448 function Make_Op_Lt
(Sloc
: Source_Ptr
;
450 Right_Opnd
: Node_Id
)
452 pragma Inline
(Make_Op_Lt
);
454 function Make_Op_Le
(Sloc
: Source_Ptr
;
456 Right_Opnd
: Node_Id
)
458 pragma Inline
(Make_Op_Le
);
460 function Make_Op_Gt
(Sloc
: Source_Ptr
;
462 Right_Opnd
: Node_Id
)
464 pragma Inline
(Make_Op_Gt
);
466 function Make_Op_Ge
(Sloc
: Source_Ptr
;
468 Right_Opnd
: Node_Id
)
470 pragma Inline
(Make_Op_Ge
);
472 function Make_Op_Add
(Sloc
: Source_Ptr
;
474 Right_Opnd
: Node_Id
)
476 pragma Inline
(Make_Op_Add
);
478 function Make_Op_Subtract
(Sloc
: Source_Ptr
;
480 Right_Opnd
: Node_Id
)
482 pragma Inline
(Make_Op_Subtract
);
484 function Make_Op_Concat
(Sloc
: Source_Ptr
;
486 Right_Opnd
: Node_Id
)
488 pragma Inline
(Make_Op_Concat
);
490 function Make_Op_Multiply
(Sloc
: Source_Ptr
;
492 Right_Opnd
: Node_Id
)
494 pragma Inline
(Make_Op_Multiply
);
496 function Make_Op_Divide
(Sloc
: Source_Ptr
;
498 Right_Opnd
: Node_Id
)
500 pragma Inline
(Make_Op_Divide
);
502 function Make_Op_Mod
(Sloc
: Source_Ptr
;
504 Right_Opnd
: Node_Id
)
506 pragma Inline
(Make_Op_Mod
);
508 function Make_Op_Rem
(Sloc
: Source_Ptr
;
510 Right_Opnd
: Node_Id
)
512 pragma Inline
(Make_Op_Rem
);
514 function Make_Op_Expon
(Sloc
: Source_Ptr
;
516 Right_Opnd
: Node_Id
)
518 pragma Inline
(Make_Op_Expon
);
520 function Make_Op_Plus
(Sloc
: Source_Ptr
;
521 Right_Opnd
: Node_Id
)
523 pragma Inline
(Make_Op_Plus
);
525 function Make_Op_Minus
(Sloc
: Source_Ptr
;
526 Right_Opnd
: Node_Id
)
528 pragma Inline
(Make_Op_Minus
);
530 function Make_Op_Abs
(Sloc
: Source_Ptr
;
531 Right_Opnd
: Node_Id
)
533 pragma Inline
(Make_Op_Abs
);
535 function Make_Op_Not
(Sloc
: Source_Ptr
;
536 Right_Opnd
: Node_Id
)
538 pragma Inline
(Make_Op_Not
);
540 function Make_Type_Conversion
(Sloc
: Source_Ptr
;
541 Subtype_Mark
: Node_Id
;
542 Expression
: Node_Id
)
544 pragma Inline
(Make_Type_Conversion
);
546 function Make_Qualified_Expression
(Sloc
: Source_Ptr
;
547 Subtype_Mark
: Node_Id
;
548 Expression
: Node_Id
)
550 pragma Inline
(Make_Qualified_Expression
);
552 function Make_Allocator
(Sloc
: Source_Ptr
;
553 Expression
: Node_Id
)
555 pragma Inline
(Make_Allocator
);
557 function Make_Null_Statement
(Sloc
: Source_Ptr
)
559 pragma Inline
(Make_Null_Statement
);
561 function Make_Label
(Sloc
: Source_Ptr
;
562 Identifier
: Node_Id
)
564 pragma Inline
(Make_Label
);
566 function Make_Assignment_Statement
(Sloc
: Source_Ptr
;
568 Expression
: Node_Id
)
570 pragma Inline
(Make_Assignment_Statement
);
572 function Make_If_Statement
(Sloc
: Source_Ptr
;
574 Then_Statements
: List_Id
;
575 Elsif_Parts
: List_Id
:= No_List
;
576 Else_Statements
: List_Id
:= No_List
;
577 End_Span
: Uint
:= No_Uint
)
579 pragma Inline
(Make_If_Statement
);
581 function Make_Elsif_Part
(Sloc
: Source_Ptr
;
583 Then_Statements
: List_Id
)
585 pragma Inline
(Make_Elsif_Part
);
587 function Make_Case_Statement
(Sloc
: Source_Ptr
;
588 Expression
: Node_Id
;
589 Alternatives
: List_Id
;
590 End_Span
: Uint
:= No_Uint
)
592 pragma Inline
(Make_Case_Statement
);
594 function Make_Case_Statement_Alternative
(Sloc
: Source_Ptr
;
595 Discrete_Choices
: List_Id
;
596 Statements
: List_Id
)
598 pragma Inline
(Make_Case_Statement_Alternative
);
600 function Make_Loop_Statement
(Sloc
: Source_Ptr
;
601 Identifier
: Node_Id
:= Empty
;
602 Iteration_Scheme
: Node_Id
:= Empty
;
603 Statements
: List_Id
;
605 Has_Created_Identifier
: Boolean := False)
607 pragma Inline
(Make_Loop_Statement
);
609 function Make_Iteration_Scheme
(Sloc
: Source_Ptr
;
610 Condition
: Node_Id
:= Empty
;
611 Loop_Parameter_Specification
: Node_Id
:= Empty
)
613 pragma Inline
(Make_Iteration_Scheme
);
615 function Make_Loop_Parameter_Specification
(Sloc
: Source_Ptr
;
616 Defining_Identifier
: Node_Id
;
617 Reverse_Present
: Boolean := False;
618 Discrete_Subtype_Definition
: Node_Id
)
620 pragma Inline
(Make_Loop_Parameter_Specification
);
622 function Make_Block_Statement
(Sloc
: Source_Ptr
;
623 Identifier
: Node_Id
:= Empty
;
624 Declarations
: List_Id
:= No_List
;
625 Handled_Statement_Sequence
: Node_Id
;
626 Has_Created_Identifier
: Boolean := False;
627 Is_Task_Allocation_Block
: Boolean := False;
628 Is_Asynchronous_Call_Block
: Boolean := False)
630 pragma Inline
(Make_Block_Statement
);
632 function Make_Exit_Statement
(Sloc
: Source_Ptr
;
633 Name
: Node_Id
:= Empty
;
634 Condition
: Node_Id
:= Empty
)
636 pragma Inline
(Make_Exit_Statement
);
638 function Make_Goto_Statement
(Sloc
: Source_Ptr
;
641 pragma Inline
(Make_Goto_Statement
);
643 function Make_Subprogram_Declaration
(Sloc
: Source_Ptr
;
644 Specification
: Node_Id
)
646 pragma Inline
(Make_Subprogram_Declaration
);
648 function Make_Abstract_Subprogram_Declaration
(Sloc
: Source_Ptr
;
649 Specification
: Node_Id
)
651 pragma Inline
(Make_Abstract_Subprogram_Declaration
);
653 function Make_Function_Specification
(Sloc
: Source_Ptr
;
654 Defining_Unit_Name
: Node_Id
;
655 Parameter_Specifications
: List_Id
:= No_List
;
656 Subtype_Mark
: Node_Id
)
658 pragma Inline
(Make_Function_Specification
);
660 function Make_Procedure_Specification
(Sloc
: Source_Ptr
;
661 Defining_Unit_Name
: Node_Id
;
662 Parameter_Specifications
: List_Id
:= No_List
)
664 pragma Inline
(Make_Procedure_Specification
);
666 function Make_Designator
(Sloc
: Source_Ptr
;
668 Identifier
: Node_Id
)
670 pragma Inline
(Make_Designator
);
672 function Make_Defining_Program_Unit_Name
(Sloc
: Source_Ptr
;
674 Defining_Identifier
: Node_Id
)
676 pragma Inline
(Make_Defining_Program_Unit_Name
);
678 function Make_Operator_Symbol
(Sloc
: Source_Ptr
;
682 pragma Inline
(Make_Operator_Symbol
);
684 function Make_Defining_Operator_Symbol
(Sloc
: Source_Ptr
;
687 pragma Inline
(Make_Defining_Operator_Symbol
);
689 function Make_Parameter_Specification
(Sloc
: Source_Ptr
;
690 Defining_Identifier
: Node_Id
;
691 In_Present
: Boolean := False;
692 Out_Present
: Boolean := False;
693 Parameter_Type
: Node_Id
;
694 Expression
: Node_Id
:= Empty
)
696 pragma Inline
(Make_Parameter_Specification
);
698 function Make_Subprogram_Body
(Sloc
: Source_Ptr
;
699 Specification
: Node_Id
;
700 Declarations
: List_Id
;
701 Handled_Statement_Sequence
: Node_Id
;
702 Bad_Is_Detected
: Boolean := False)
704 pragma Inline
(Make_Subprogram_Body
);
706 function Make_Procedure_Call_Statement
(Sloc
: Source_Ptr
;
708 Parameter_Associations
: List_Id
:= No_List
)
710 pragma Inline
(Make_Procedure_Call_Statement
);
712 function Make_Function_Call
(Sloc
: Source_Ptr
;
714 Parameter_Associations
: List_Id
:= No_List
)
716 pragma Inline
(Make_Function_Call
);
718 function Make_Parameter_Association
(Sloc
: Source_Ptr
;
719 Selector_Name
: Node_Id
;
720 Explicit_Actual_Parameter
: Node_Id
)
722 pragma Inline
(Make_Parameter_Association
);
724 function Make_Return_Statement
(Sloc
: Source_Ptr
;
725 Expression
: Node_Id
:= Empty
)
727 pragma Inline
(Make_Return_Statement
);
729 function Make_Package_Declaration
(Sloc
: Source_Ptr
;
730 Specification
: Node_Id
)
732 pragma Inline
(Make_Package_Declaration
);
734 function Make_Package_Specification
(Sloc
: Source_Ptr
;
735 Defining_Unit_Name
: Node_Id
;
736 Visible_Declarations
: List_Id
;
737 Private_Declarations
: List_Id
:= No_List
;
740 pragma Inline
(Make_Package_Specification
);
742 function Make_Package_Body
(Sloc
: Source_Ptr
;
743 Defining_Unit_Name
: Node_Id
;
744 Declarations
: List_Id
;
745 Handled_Statement_Sequence
: Node_Id
:= Empty
)
747 pragma Inline
(Make_Package_Body
);
749 function Make_Private_Type_Declaration
(Sloc
: Source_Ptr
;
750 Defining_Identifier
: Node_Id
;
751 Discriminant_Specifications
: List_Id
:= No_List
;
752 Unknown_Discriminants_Present
: Boolean := False;
753 Abstract_Present
: Boolean := False;
754 Tagged_Present
: Boolean := False;
755 Limited_Present
: Boolean := False)
757 pragma Inline
(Make_Private_Type_Declaration
);
759 function Make_Private_Extension_Declaration
(Sloc
: Source_Ptr
;
760 Defining_Identifier
: Node_Id
;
761 Discriminant_Specifications
: List_Id
:= No_List
;
762 Unknown_Discriminants_Present
: Boolean := False;
763 Abstract_Present
: Boolean := False;
764 Subtype_Indication
: Node_Id
)
766 pragma Inline
(Make_Private_Extension_Declaration
);
768 function Make_Use_Package_Clause
(Sloc
: Source_Ptr
;
771 pragma Inline
(Make_Use_Package_Clause
);
773 function Make_Use_Type_Clause
(Sloc
: Source_Ptr
;
774 Subtype_Marks
: List_Id
)
776 pragma Inline
(Make_Use_Type_Clause
);
778 function Make_Object_Renaming_Declaration
(Sloc
: Source_Ptr
;
779 Defining_Identifier
: Node_Id
;
780 Subtype_Mark
: Node_Id
;
783 pragma Inline
(Make_Object_Renaming_Declaration
);
785 function Make_Exception_Renaming_Declaration
(Sloc
: Source_Ptr
;
786 Defining_Identifier
: Node_Id
;
789 pragma Inline
(Make_Exception_Renaming_Declaration
);
791 function Make_Package_Renaming_Declaration
(Sloc
: Source_Ptr
;
792 Defining_Unit_Name
: Node_Id
;
795 pragma Inline
(Make_Package_Renaming_Declaration
);
797 function Make_Subprogram_Renaming_Declaration
(Sloc
: Source_Ptr
;
798 Specification
: Node_Id
;
801 pragma Inline
(Make_Subprogram_Renaming_Declaration
);
803 function Make_Generic_Package_Renaming_Declaration
(Sloc
: Source_Ptr
;
804 Defining_Unit_Name
: Node_Id
;
807 pragma Inline
(Make_Generic_Package_Renaming_Declaration
);
809 function Make_Generic_Procedure_Renaming_Declaration
(Sloc
: Source_Ptr
;
810 Defining_Unit_Name
: Node_Id
;
813 pragma Inline
(Make_Generic_Procedure_Renaming_Declaration
);
815 function Make_Generic_Function_Renaming_Declaration
(Sloc
: Source_Ptr
;
816 Defining_Unit_Name
: Node_Id
;
819 pragma Inline
(Make_Generic_Function_Renaming_Declaration
);
821 function Make_Task_Type_Declaration
(Sloc
: Source_Ptr
;
822 Defining_Identifier
: Node_Id
;
823 Discriminant_Specifications
: List_Id
:= No_List
;
824 Task_Definition
: Node_Id
:= Empty
)
826 pragma Inline
(Make_Task_Type_Declaration
);
828 function Make_Single_Task_Declaration
(Sloc
: Source_Ptr
;
829 Defining_Identifier
: Node_Id
;
830 Task_Definition
: Node_Id
:= Empty
)
832 pragma Inline
(Make_Single_Task_Declaration
);
834 function Make_Task_Definition
(Sloc
: Source_Ptr
;
835 Visible_Declarations
: List_Id
;
836 Private_Declarations
: List_Id
:= No_List
;
839 pragma Inline
(Make_Task_Definition
);
841 function Make_Task_Body
(Sloc
: Source_Ptr
;
842 Defining_Identifier
: Node_Id
;
843 Declarations
: List_Id
;
844 Handled_Statement_Sequence
: Node_Id
)
846 pragma Inline
(Make_Task_Body
);
848 function Make_Protected_Type_Declaration
(Sloc
: Source_Ptr
;
849 Defining_Identifier
: Node_Id
;
850 Discriminant_Specifications
: List_Id
:= No_List
;
851 Protected_Definition
: Node_Id
)
853 pragma Inline
(Make_Protected_Type_Declaration
);
855 function Make_Single_Protected_Declaration
(Sloc
: Source_Ptr
;
856 Defining_Identifier
: Node_Id
;
857 Protected_Definition
: Node_Id
)
859 pragma Inline
(Make_Single_Protected_Declaration
);
861 function Make_Protected_Definition
(Sloc
: Source_Ptr
;
862 Visible_Declarations
: List_Id
;
863 Private_Declarations
: List_Id
:= No_List
;
866 pragma Inline
(Make_Protected_Definition
);
868 function Make_Protected_Body
(Sloc
: Source_Ptr
;
869 Defining_Identifier
: Node_Id
;
870 Declarations
: List_Id
;
873 pragma Inline
(Make_Protected_Body
);
875 function Make_Entry_Declaration
(Sloc
: Source_Ptr
;
876 Defining_Identifier
: Node_Id
;
877 Discrete_Subtype_Definition
: Node_Id
:= Empty
;
878 Parameter_Specifications
: List_Id
:= No_List
)
880 pragma Inline
(Make_Entry_Declaration
);
882 function Make_Accept_Statement
(Sloc
: Source_Ptr
;
883 Entry_Direct_Name
: Node_Id
;
884 Entry_Index
: Node_Id
:= Empty
;
885 Parameter_Specifications
: List_Id
:= No_List
;
886 Handled_Statement_Sequence
: Node_Id
;
887 Declarations
: List_Id
:= No_List
)
889 pragma Inline
(Make_Accept_Statement
);
891 function Make_Entry_Body
(Sloc
: Source_Ptr
;
892 Defining_Identifier
: Node_Id
;
893 Entry_Body_Formal_Part
: Node_Id
;
894 Declarations
: List_Id
;
895 Handled_Statement_Sequence
: Node_Id
)
897 pragma Inline
(Make_Entry_Body
);
899 function Make_Entry_Body_Formal_Part
(Sloc
: Source_Ptr
;
900 Entry_Index_Specification
: Node_Id
:= Empty
;
901 Parameter_Specifications
: List_Id
:= No_List
;
904 pragma Inline
(Make_Entry_Body_Formal_Part
);
906 function Make_Entry_Index_Specification
(Sloc
: Source_Ptr
;
907 Defining_Identifier
: Node_Id
;
908 Discrete_Subtype_Definition
: Node_Id
)
910 pragma Inline
(Make_Entry_Index_Specification
);
912 function Make_Entry_Call_Statement
(Sloc
: Source_Ptr
;
914 Parameter_Associations
: List_Id
:= No_List
)
916 pragma Inline
(Make_Entry_Call_Statement
);
918 function Make_Requeue_Statement
(Sloc
: Source_Ptr
;
920 Abort_Present
: Boolean := False)
922 pragma Inline
(Make_Requeue_Statement
);
924 function Make_Delay_Until_Statement
(Sloc
: Source_Ptr
;
925 Expression
: Node_Id
)
927 pragma Inline
(Make_Delay_Until_Statement
);
929 function Make_Delay_Relative_Statement
(Sloc
: Source_Ptr
;
930 Expression
: Node_Id
)
932 pragma Inline
(Make_Delay_Relative_Statement
);
934 function Make_Selective_Accept
(Sloc
: Source_Ptr
;
935 Select_Alternatives
: List_Id
;
936 Else_Statements
: List_Id
:= No_List
)
938 pragma Inline
(Make_Selective_Accept
);
940 function Make_Accept_Alternative
(Sloc
: Source_Ptr
;
941 Accept_Statement
: Node_Id
;
942 Condition
: Node_Id
:= Empty
;
943 Statements
: List_Id
:= Empty_List
;
944 Pragmas_Before
: List_Id
:= No_List
)
946 pragma Inline
(Make_Accept_Alternative
);
948 function Make_Delay_Alternative
(Sloc
: Source_Ptr
;
949 Delay_Statement
: Node_Id
;
950 Condition
: Node_Id
:= Empty
;
951 Statements
: List_Id
:= Empty_List
;
952 Pragmas_Before
: List_Id
:= No_List
)
954 pragma Inline
(Make_Delay_Alternative
);
956 function Make_Terminate_Alternative
(Sloc
: Source_Ptr
;
957 Condition
: Node_Id
:= Empty
;
958 Pragmas_Before
: List_Id
:= No_List
;
959 Pragmas_After
: List_Id
:= No_List
)
961 pragma Inline
(Make_Terminate_Alternative
);
963 function Make_Timed_Entry_Call
(Sloc
: Source_Ptr
;
964 Entry_Call_Alternative
: Node_Id
;
965 Delay_Alternative
: Node_Id
)
967 pragma Inline
(Make_Timed_Entry_Call
);
969 function Make_Entry_Call_Alternative
(Sloc
: Source_Ptr
;
970 Entry_Call_Statement
: Node_Id
;
971 Statements
: List_Id
:= Empty_List
;
972 Pragmas_Before
: List_Id
:= No_List
)
974 pragma Inline
(Make_Entry_Call_Alternative
);
976 function Make_Conditional_Entry_Call
(Sloc
: Source_Ptr
;
977 Entry_Call_Alternative
: Node_Id
;
978 Else_Statements
: List_Id
)
980 pragma Inline
(Make_Conditional_Entry_Call
);
982 function Make_Asynchronous_Select
(Sloc
: Source_Ptr
;
983 Triggering_Alternative
: Node_Id
;
984 Abortable_Part
: Node_Id
)
986 pragma Inline
(Make_Asynchronous_Select
);
988 function Make_Triggering_Alternative
(Sloc
: Source_Ptr
;
989 Triggering_Statement
: Node_Id
;
990 Statements
: List_Id
:= Empty_List
;
991 Pragmas_Before
: List_Id
:= No_List
)
993 pragma Inline
(Make_Triggering_Alternative
);
995 function Make_Abortable_Part
(Sloc
: Source_Ptr
;
996 Statements
: List_Id
)
998 pragma Inline
(Make_Abortable_Part
);
1000 function Make_Abort_Statement
(Sloc
: Source_Ptr
;
1003 pragma Inline
(Make_Abort_Statement
);
1005 function Make_Compilation_Unit
(Sloc
: Source_Ptr
;
1006 Context_Items
: List_Id
;
1007 Private_Present
: Boolean := False;
1009 Aux_Decls_Node
: Node_Id
)
1011 pragma Inline
(Make_Compilation_Unit
);
1013 function Make_Compilation_Unit_Aux
(Sloc
: Source_Ptr
;
1014 Declarations
: List_Id
:= No_List
;
1015 Actions
: List_Id
:= No_List
;
1016 Pragmas_After
: List_Id
:= No_List
)
1018 pragma Inline
(Make_Compilation_Unit_Aux
);
1020 function Make_With_Clause
(Sloc
: Source_Ptr
;
1022 First_Name
: Boolean := True;
1023 Last_Name
: Boolean := True)
1025 pragma Inline
(Make_With_Clause
);
1027 function Make_With_Type_Clause
(Sloc
: Source_Ptr
;
1029 Tagged_Present
: Boolean := False)
1031 pragma Inline
(Make_With_Type_Clause
);
1033 function Make_Subprogram_Body_Stub
(Sloc
: Source_Ptr
;
1034 Specification
: Node_Id
)
1036 pragma Inline
(Make_Subprogram_Body_Stub
);
1038 function Make_Package_Body_Stub
(Sloc
: Source_Ptr
;
1039 Defining_Identifier
: Node_Id
)
1041 pragma Inline
(Make_Package_Body_Stub
);
1043 function Make_Task_Body_Stub
(Sloc
: Source_Ptr
;
1044 Defining_Identifier
: Node_Id
)
1046 pragma Inline
(Make_Task_Body_Stub
);
1048 function Make_Protected_Body_Stub
(Sloc
: Source_Ptr
;
1049 Defining_Identifier
: Node_Id
)
1051 pragma Inline
(Make_Protected_Body_Stub
);
1053 function Make_Subunit
(Sloc
: Source_Ptr
;
1055 Proper_Body
: Node_Id
)
1057 pragma Inline
(Make_Subunit
);
1059 function Make_Exception_Declaration
(Sloc
: Source_Ptr
;
1060 Defining_Identifier
: Node_Id
)
1062 pragma Inline
(Make_Exception_Declaration
);
1064 function Make_Handled_Sequence_Of_Statements
(Sloc
: Source_Ptr
;
1065 Statements
: List_Id
;
1066 End_Label
: Node_Id
:= Empty
;
1067 Exception_Handlers
: List_Id
:= No_List
;
1068 At_End_Proc
: Node_Id
:= Empty
)
1070 pragma Inline
(Make_Handled_Sequence_Of_Statements
);
1072 function Make_Exception_Handler
(Sloc
: Source_Ptr
;
1073 Choice_Parameter
: Node_Id
:= Empty
;
1074 Exception_Choices
: List_Id
;
1075 Statements
: List_Id
)
1077 pragma Inline
(Make_Exception_Handler
);
1079 function Make_Raise_Statement
(Sloc
: Source_Ptr
;
1080 Name
: Node_Id
:= Empty
)
1082 pragma Inline
(Make_Raise_Statement
);
1084 function Make_Generic_Subprogram_Declaration
(Sloc
: Source_Ptr
;
1085 Specification
: Node_Id
;
1086 Generic_Formal_Declarations
: List_Id
)
1088 pragma Inline
(Make_Generic_Subprogram_Declaration
);
1090 function Make_Generic_Package_Declaration
(Sloc
: Source_Ptr
;
1091 Specification
: Node_Id
;
1092 Generic_Formal_Declarations
: List_Id
)
1094 pragma Inline
(Make_Generic_Package_Declaration
);
1096 function Make_Package_Instantiation
(Sloc
: Source_Ptr
;
1097 Defining_Unit_Name
: Node_Id
;
1099 Generic_Associations
: List_Id
:= No_List
)
1101 pragma Inline
(Make_Package_Instantiation
);
1103 function Make_Procedure_Instantiation
(Sloc
: Source_Ptr
;
1104 Defining_Unit_Name
: Node_Id
;
1106 Generic_Associations
: List_Id
:= No_List
)
1108 pragma Inline
(Make_Procedure_Instantiation
);
1110 function Make_Function_Instantiation
(Sloc
: Source_Ptr
;
1111 Defining_Unit_Name
: Node_Id
;
1113 Generic_Associations
: List_Id
:= No_List
)
1115 pragma Inline
(Make_Function_Instantiation
);
1117 function Make_Generic_Association
(Sloc
: Source_Ptr
;
1118 Selector_Name
: Node_Id
:= Empty
;
1119 Explicit_Generic_Actual_Parameter
: Node_Id
)
1121 pragma Inline
(Make_Generic_Association
);
1123 function Make_Formal_Object_Declaration
(Sloc
: Source_Ptr
;
1124 Defining_Identifier
: Node_Id
;
1125 In_Present
: Boolean := False;
1126 Out_Present
: Boolean := False;
1127 Subtype_Mark
: Node_Id
;
1128 Expression
: Node_Id
:= Empty
)
1130 pragma Inline
(Make_Formal_Object_Declaration
);
1132 function Make_Formal_Type_Declaration
(Sloc
: Source_Ptr
;
1133 Defining_Identifier
: Node_Id
;
1134 Formal_Type_Definition
: Node_Id
;
1135 Discriminant_Specifications
: List_Id
:= No_List
;
1136 Unknown_Discriminants_Present
: Boolean := False)
1138 pragma Inline
(Make_Formal_Type_Declaration
);
1140 function Make_Formal_Private_Type_Definition
(Sloc
: Source_Ptr
;
1141 Abstract_Present
: Boolean := False;
1142 Tagged_Present
: Boolean := False;
1143 Limited_Present
: Boolean := False)
1145 pragma Inline
(Make_Formal_Private_Type_Definition
);
1147 function Make_Formal_Derived_Type_Definition
(Sloc
: Source_Ptr
;
1148 Subtype_Mark
: Node_Id
;
1149 Private_Present
: Boolean := False;
1150 Abstract_Present
: Boolean := False)
1152 pragma Inline
(Make_Formal_Derived_Type_Definition
);
1154 function Make_Formal_Discrete_Type_Definition
(Sloc
: Source_Ptr
)
1156 pragma Inline
(Make_Formal_Discrete_Type_Definition
);
1158 function Make_Formal_Signed_Integer_Type_Definition
(Sloc
: Source_Ptr
)
1160 pragma Inline
(Make_Formal_Signed_Integer_Type_Definition
);
1162 function Make_Formal_Modular_Type_Definition
(Sloc
: Source_Ptr
)
1164 pragma Inline
(Make_Formal_Modular_Type_Definition
);
1166 function Make_Formal_Floating_Point_Definition
(Sloc
: Source_Ptr
)
1168 pragma Inline
(Make_Formal_Floating_Point_Definition
);
1170 function Make_Formal_Ordinary_Fixed_Point_Definition
(Sloc
: Source_Ptr
)
1172 pragma Inline
(Make_Formal_Ordinary_Fixed_Point_Definition
);
1174 function Make_Formal_Decimal_Fixed_Point_Definition
(Sloc
: Source_Ptr
)
1176 pragma Inline
(Make_Formal_Decimal_Fixed_Point_Definition
);
1178 function Make_Formal_Subprogram_Declaration
(Sloc
: Source_Ptr
;
1179 Specification
: Node_Id
;
1180 Default_Name
: Node_Id
:= Empty
;
1181 Box_Present
: Boolean := False)
1183 pragma Inline
(Make_Formal_Subprogram_Declaration
);
1185 function Make_Formal_Package_Declaration
(Sloc
: Source_Ptr
;
1186 Defining_Identifier
: Node_Id
;
1188 Generic_Associations
: List_Id
:= No_List
;
1189 Box_Present
: Boolean := False)
1191 pragma Inline
(Make_Formal_Package_Declaration
);
1193 function Make_Attribute_Definition_Clause
(Sloc
: Source_Ptr
;
1196 Expression
: Node_Id
)
1198 pragma Inline
(Make_Attribute_Definition_Clause
);
1200 function Make_Enumeration_Representation_Clause
(Sloc
: Source_Ptr
;
1201 Identifier
: Node_Id
;
1202 Array_Aggregate
: Node_Id
)
1204 pragma Inline
(Make_Enumeration_Representation_Clause
);
1206 function Make_Record_Representation_Clause
(Sloc
: Source_Ptr
;
1207 Identifier
: Node_Id
;
1208 Mod_Clause
: Node_Id
:= Empty
;
1209 Component_Clauses
: List_Id
)
1211 pragma Inline
(Make_Record_Representation_Clause
);
1213 function Make_Component_Clause
(Sloc
: Source_Ptr
;
1214 Component_Name
: Node_Id
;
1216 First_Bit
: Node_Id
;
1219 pragma Inline
(Make_Component_Clause
);
1221 function Make_Code_Statement
(Sloc
: Source_Ptr
;
1222 Expression
: Node_Id
)
1224 pragma Inline
(Make_Code_Statement
);
1226 function Make_Op_Rotate_Left
(Sloc
: Source_Ptr
;
1227 Left_Opnd
: Node_Id
;
1228 Right_Opnd
: Node_Id
)
1230 pragma Inline
(Make_Op_Rotate_Left
);
1232 function Make_Op_Rotate_Right
(Sloc
: Source_Ptr
;
1233 Left_Opnd
: Node_Id
;
1234 Right_Opnd
: Node_Id
)
1236 pragma Inline
(Make_Op_Rotate_Right
);
1238 function Make_Op_Shift_Left
(Sloc
: Source_Ptr
;
1239 Left_Opnd
: Node_Id
;
1240 Right_Opnd
: Node_Id
)
1242 pragma Inline
(Make_Op_Shift_Left
);
1244 function Make_Op_Shift_Right_Arithmetic
(Sloc
: Source_Ptr
;
1245 Left_Opnd
: Node_Id
;
1246 Right_Opnd
: Node_Id
)
1248 pragma Inline
(Make_Op_Shift_Right_Arithmetic
);
1250 function Make_Op_Shift_Right
(Sloc
: Source_Ptr
;
1251 Left_Opnd
: Node_Id
;
1252 Right_Opnd
: Node_Id
)
1254 pragma Inline
(Make_Op_Shift_Right
);
1256 function Make_Delta_Constraint
(Sloc
: Source_Ptr
;
1257 Delta_Expression
: Node_Id
;
1258 Range_Constraint
: Node_Id
:= Empty
)
1260 pragma Inline
(Make_Delta_Constraint
);
1262 function Make_At_Clause
(Sloc
: Source_Ptr
;
1263 Identifier
: Node_Id
;
1264 Expression
: Node_Id
)
1266 pragma Inline
(Make_At_Clause
);
1268 function Make_Mod_Clause
(Sloc
: Source_Ptr
;
1269 Expression
: Node_Id
;
1270 Pragmas_Before
: List_Id
)
1272 pragma Inline
(Make_Mod_Clause
);
1274 function Make_Conditional_Expression
(Sloc
: Source_Ptr
;
1275 Expressions
: List_Id
)
1277 pragma Inline
(Make_Conditional_Expression
);
1279 function Make_Expanded_Name
(Sloc
: Source_Ptr
;
1282 Selector_Name
: Node_Id
)
1284 pragma Inline
(Make_Expanded_Name
);
1286 function Make_Free_Statement
(Sloc
: Source_Ptr
;
1287 Expression
: Node_Id
)
1289 pragma Inline
(Make_Free_Statement
);
1291 function Make_Freeze_Entity
(Sloc
: Source_Ptr
;
1292 Actions
: List_Id
:= No_List
)
1294 pragma Inline
(Make_Freeze_Entity
);
1296 function Make_Implicit_Label_Declaration
(Sloc
: Source_Ptr
;
1297 Defining_Identifier
: Node_Id
)
1299 pragma Inline
(Make_Implicit_Label_Declaration
);
1301 function Make_Itype_Reference
(Sloc
: Source_Ptr
)
1303 pragma Inline
(Make_Itype_Reference
);
1305 function Make_Raise_Constraint_Error
(Sloc
: Source_Ptr
;
1306 Condition
: Node_Id
:= Empty
;
1309 pragma Inline
(Make_Raise_Constraint_Error
);
1311 function Make_Raise_Program_Error
(Sloc
: Source_Ptr
;
1312 Condition
: Node_Id
:= Empty
;
1315 pragma Inline
(Make_Raise_Program_Error
);
1317 function Make_Raise_Storage_Error
(Sloc
: Source_Ptr
;
1318 Condition
: Node_Id
:= Empty
;
1321 pragma Inline
(Make_Raise_Storage_Error
);
1323 function Make_Reference
(Sloc
: Source_Ptr
;
1326 pragma Inline
(Make_Reference
);
1328 function Make_Subprogram_Info
(Sloc
: Source_Ptr
;
1329 Identifier
: Node_Id
)
1331 pragma Inline
(Make_Subprogram_Info
);
1333 function Make_Unchecked_Expression
(Sloc
: Source_Ptr
;
1334 Expression
: Node_Id
)
1336 pragma Inline
(Make_Unchecked_Expression
);
1338 function Make_Unchecked_Type_Conversion
(Sloc
: Source_Ptr
;
1339 Subtype_Mark
: Node_Id
;
1340 Expression
: Node_Id
)
1342 pragma Inline
(Make_Unchecked_Type_Conversion
);
1344 function Make_Validate_Unchecked_Conversion
(Sloc
: Source_Ptr
)
1346 pragma Inline
(Make_Validate_Unchecked_Conversion
);