1 ------------------------------------------------------------------------------
3 -- GNAT COMPILER COMPONENTS --
9 -- Generated by xnmake revision 1.2 using --
10 -- sinfo.ads revision 1.6 --
11 -- nmake.adt revision 1.1 --
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
;
183 pragma Inline
(Make_Enumeration_Type_Definition
);
185 function Make_Defining_Character_Literal
(Sloc
: Source_Ptr
;
188 pragma Inline
(Make_Defining_Character_Literal
);
190 function Make_Signed_Integer_Type_Definition
(Sloc
: Source_Ptr
;
192 High_Bound
: Node_Id
)
194 pragma Inline
(Make_Signed_Integer_Type_Definition
);
196 function Make_Modular_Type_Definition
(Sloc
: Source_Ptr
;
197 Expression
: Node_Id
)
199 pragma Inline
(Make_Modular_Type_Definition
);
201 function Make_Floating_Point_Definition
(Sloc
: Source_Ptr
;
202 Digits_Expression
: Node_Id
;
203 Real_Range_Specification
: Node_Id
:= Empty
)
205 pragma Inline
(Make_Floating_Point_Definition
);
207 function Make_Real_Range_Specification
(Sloc
: Source_Ptr
;
209 High_Bound
: Node_Id
)
211 pragma Inline
(Make_Real_Range_Specification
);
213 function Make_Ordinary_Fixed_Point_Definition
(Sloc
: Source_Ptr
;
214 Delta_Expression
: Node_Id
;
215 Real_Range_Specification
: Node_Id
)
217 pragma Inline
(Make_Ordinary_Fixed_Point_Definition
);
219 function Make_Decimal_Fixed_Point_Definition
(Sloc
: Source_Ptr
;
220 Delta_Expression
: Node_Id
;
221 Digits_Expression
: Node_Id
;
222 Real_Range_Specification
: Node_Id
:= Empty
)
224 pragma Inline
(Make_Decimal_Fixed_Point_Definition
);
226 function Make_Digits_Constraint
(Sloc
: Source_Ptr
;
227 Digits_Expression
: Node_Id
;
228 Range_Constraint
: Node_Id
:= Empty
)
230 pragma Inline
(Make_Digits_Constraint
);
232 function Make_Unconstrained_Array_Definition
(Sloc
: Source_Ptr
;
233 Subtype_Marks
: List_Id
;
234 Aliased_Present
: Boolean := False;
235 Subtype_Indication
: Node_Id
)
237 pragma Inline
(Make_Unconstrained_Array_Definition
);
239 function Make_Constrained_Array_Definition
(Sloc
: Source_Ptr
;
240 Discrete_Subtype_Definitions
: List_Id
;
241 Aliased_Present
: Boolean := False;
242 Subtype_Indication
: Node_Id
)
244 pragma Inline
(Make_Constrained_Array_Definition
);
246 function Make_Discriminant_Specification
(Sloc
: Source_Ptr
;
247 Defining_Identifier
: Node_Id
;
248 Discriminant_Type
: Node_Id
;
249 Expression
: Node_Id
:= Empty
)
251 pragma Inline
(Make_Discriminant_Specification
);
253 function Make_Index_Or_Discriminant_Constraint
(Sloc
: Source_Ptr
;
254 Constraints
: List_Id
)
256 pragma Inline
(Make_Index_Or_Discriminant_Constraint
);
258 function Make_Discriminant_Association
(Sloc
: Source_Ptr
;
259 Selector_Names
: List_Id
;
260 Expression
: Node_Id
)
262 pragma Inline
(Make_Discriminant_Association
);
264 function Make_Record_Definition
(Sloc
: Source_Ptr
;
265 End_Label
: Node_Id
:= Empty
;
266 Abstract_Present
: Boolean := False;
267 Tagged_Present
: Boolean := False;
268 Limited_Present
: Boolean := False;
269 Component_List
: Node_Id
;
270 Null_Present
: Boolean := False)
272 pragma Inline
(Make_Record_Definition
);
274 function Make_Component_List
(Sloc
: Source_Ptr
;
275 Component_Items
: List_Id
;
276 Variant_Part
: Node_Id
:= Empty
;
277 Null_Present
: Boolean := False)
279 pragma Inline
(Make_Component_List
);
281 function Make_Component_Declaration
(Sloc
: Source_Ptr
;
282 Defining_Identifier
: Node_Id
;
283 Aliased_Present
: Boolean := False;
284 Subtype_Indication
: Node_Id
;
285 Expression
: Node_Id
:= Empty
)
287 pragma Inline
(Make_Component_Declaration
);
289 function Make_Variant_Part
(Sloc
: Source_Ptr
;
293 pragma Inline
(Make_Variant_Part
);
295 function Make_Variant
(Sloc
: Source_Ptr
;
296 Discrete_Choices
: List_Id
;
297 Component_List
: Node_Id
)
299 pragma Inline
(Make_Variant
);
301 function Make_Others_Choice
(Sloc
: Source_Ptr
)
303 pragma Inline
(Make_Others_Choice
);
305 function Make_Access_To_Object_Definition
(Sloc
: Source_Ptr
;
306 All_Present
: Boolean := False;
307 Subtype_Indication
: Node_Id
;
308 Constant_Present
: Boolean := False)
310 pragma Inline
(Make_Access_To_Object_Definition
);
312 function Make_Access_Function_Definition
(Sloc
: Source_Ptr
;
313 Protected_Present
: Boolean := False;
314 Parameter_Specifications
: List_Id
:= No_List
;
315 Subtype_Mark
: Node_Id
)
317 pragma Inline
(Make_Access_Function_Definition
);
319 function Make_Access_Procedure_Definition
(Sloc
: Source_Ptr
;
320 Protected_Present
: Boolean := False;
321 Parameter_Specifications
: List_Id
:= No_List
)
323 pragma Inline
(Make_Access_Procedure_Definition
);
325 function Make_Access_Definition
(Sloc
: Source_Ptr
;
326 Subtype_Mark
: Node_Id
)
328 pragma Inline
(Make_Access_Definition
);
330 function Make_Incomplete_Type_Declaration
(Sloc
: Source_Ptr
;
331 Defining_Identifier
: Node_Id
;
332 Discriminant_Specifications
: List_Id
:= No_List
;
333 Unknown_Discriminants_Present
: Boolean := False)
335 pragma Inline
(Make_Incomplete_Type_Declaration
);
337 function Make_Explicit_Dereference
(Sloc
: Source_Ptr
;
340 pragma Inline
(Make_Explicit_Dereference
);
342 function Make_Indexed_Component
(Sloc
: Source_Ptr
;
344 Expressions
: List_Id
)
346 pragma Inline
(Make_Indexed_Component
);
348 function Make_Slice
(Sloc
: Source_Ptr
;
350 Discrete_Range
: Node_Id
)
352 pragma Inline
(Make_Slice
);
354 function Make_Selected_Component
(Sloc
: Source_Ptr
;
356 Selector_Name
: Node_Id
)
358 pragma Inline
(Make_Selected_Component
);
360 function Make_Attribute_Reference
(Sloc
: Source_Ptr
;
362 Attribute_Name
: Name_Id
;
363 Expressions
: List_Id
:= No_List
)
365 pragma Inline
(Make_Attribute_Reference
);
367 function Make_Aggregate
(Sloc
: Source_Ptr
;
368 Expressions
: List_Id
:= No_List
;
369 Component_Associations
: List_Id
:= No_List
;
370 Null_Record_Present
: Boolean := False)
372 pragma Inline
(Make_Aggregate
);
374 function Make_Component_Association
(Sloc
: Source_Ptr
;
376 Expression
: Node_Id
)
378 pragma Inline
(Make_Component_Association
);
380 function Make_Extension_Aggregate
(Sloc
: Source_Ptr
;
381 Ancestor_Part
: Node_Id
;
382 Expressions
: List_Id
:= No_List
;
383 Component_Associations
: List_Id
:= No_List
;
384 Null_Record_Present
: Boolean := False)
386 pragma Inline
(Make_Extension_Aggregate
);
388 function Make_Null
(Sloc
: Source_Ptr
)
390 pragma Inline
(Make_Null
);
392 function Make_And_Then
(Sloc
: Source_Ptr
;
394 Right_Opnd
: Node_Id
)
396 pragma Inline
(Make_And_Then
);
398 function Make_Or_Else
(Sloc
: Source_Ptr
;
400 Right_Opnd
: Node_Id
)
402 pragma Inline
(Make_Or_Else
);
404 function Make_In
(Sloc
: Source_Ptr
;
406 Right_Opnd
: Node_Id
)
408 pragma Inline
(Make_In
);
410 function Make_Not_In
(Sloc
: Source_Ptr
;
412 Right_Opnd
: Node_Id
)
414 pragma Inline
(Make_Not_In
);
416 function Make_Op_And
(Sloc
: Source_Ptr
;
418 Right_Opnd
: Node_Id
)
420 pragma Inline
(Make_Op_And
);
422 function Make_Op_Or
(Sloc
: Source_Ptr
;
424 Right_Opnd
: Node_Id
)
426 pragma Inline
(Make_Op_Or
);
428 function Make_Op_Xor
(Sloc
: Source_Ptr
;
430 Right_Opnd
: Node_Id
)
432 pragma Inline
(Make_Op_Xor
);
434 function Make_Op_Eq
(Sloc
: Source_Ptr
;
436 Right_Opnd
: Node_Id
)
438 pragma Inline
(Make_Op_Eq
);
440 function Make_Op_Ne
(Sloc
: Source_Ptr
;
442 Right_Opnd
: Node_Id
)
444 pragma Inline
(Make_Op_Ne
);
446 function Make_Op_Lt
(Sloc
: Source_Ptr
;
448 Right_Opnd
: Node_Id
)
450 pragma Inline
(Make_Op_Lt
);
452 function Make_Op_Le
(Sloc
: Source_Ptr
;
454 Right_Opnd
: Node_Id
)
456 pragma Inline
(Make_Op_Le
);
458 function Make_Op_Gt
(Sloc
: Source_Ptr
;
460 Right_Opnd
: Node_Id
)
462 pragma Inline
(Make_Op_Gt
);
464 function Make_Op_Ge
(Sloc
: Source_Ptr
;
466 Right_Opnd
: Node_Id
)
468 pragma Inline
(Make_Op_Ge
);
470 function Make_Op_Add
(Sloc
: Source_Ptr
;
472 Right_Opnd
: Node_Id
)
474 pragma Inline
(Make_Op_Add
);
476 function Make_Op_Subtract
(Sloc
: Source_Ptr
;
478 Right_Opnd
: Node_Id
)
480 pragma Inline
(Make_Op_Subtract
);
482 function Make_Op_Concat
(Sloc
: Source_Ptr
;
484 Right_Opnd
: Node_Id
)
486 pragma Inline
(Make_Op_Concat
);
488 function Make_Op_Multiply
(Sloc
: Source_Ptr
;
490 Right_Opnd
: Node_Id
)
492 pragma Inline
(Make_Op_Multiply
);
494 function Make_Op_Divide
(Sloc
: Source_Ptr
;
496 Right_Opnd
: Node_Id
)
498 pragma Inline
(Make_Op_Divide
);
500 function Make_Op_Mod
(Sloc
: Source_Ptr
;
502 Right_Opnd
: Node_Id
)
504 pragma Inline
(Make_Op_Mod
);
506 function Make_Op_Rem
(Sloc
: Source_Ptr
;
508 Right_Opnd
: Node_Id
)
510 pragma Inline
(Make_Op_Rem
);
512 function Make_Op_Expon
(Sloc
: Source_Ptr
;
514 Right_Opnd
: Node_Id
)
516 pragma Inline
(Make_Op_Expon
);
518 function Make_Op_Plus
(Sloc
: Source_Ptr
;
519 Right_Opnd
: Node_Id
)
521 pragma Inline
(Make_Op_Plus
);
523 function Make_Op_Minus
(Sloc
: Source_Ptr
;
524 Right_Opnd
: Node_Id
)
526 pragma Inline
(Make_Op_Minus
);
528 function Make_Op_Abs
(Sloc
: Source_Ptr
;
529 Right_Opnd
: Node_Id
)
531 pragma Inline
(Make_Op_Abs
);
533 function Make_Op_Not
(Sloc
: Source_Ptr
;
534 Right_Opnd
: Node_Id
)
536 pragma Inline
(Make_Op_Not
);
538 function Make_Type_Conversion
(Sloc
: Source_Ptr
;
539 Subtype_Mark
: Node_Id
;
540 Expression
: Node_Id
)
542 pragma Inline
(Make_Type_Conversion
);
544 function Make_Qualified_Expression
(Sloc
: Source_Ptr
;
545 Subtype_Mark
: Node_Id
;
546 Expression
: Node_Id
)
548 pragma Inline
(Make_Qualified_Expression
);
550 function Make_Allocator
(Sloc
: Source_Ptr
;
551 Expression
: Node_Id
)
553 pragma Inline
(Make_Allocator
);
555 function Make_Null_Statement
(Sloc
: Source_Ptr
)
557 pragma Inline
(Make_Null_Statement
);
559 function Make_Label
(Sloc
: Source_Ptr
;
560 Identifier
: Node_Id
)
562 pragma Inline
(Make_Label
);
564 function Make_Assignment_Statement
(Sloc
: Source_Ptr
;
566 Expression
: Node_Id
)
568 pragma Inline
(Make_Assignment_Statement
);
570 function Make_If_Statement
(Sloc
: Source_Ptr
;
572 Then_Statements
: List_Id
;
573 Elsif_Parts
: List_Id
:= No_List
;
574 Else_Statements
: List_Id
:= No_List
;
575 End_Span
: Uint
:= No_Uint
)
577 pragma Inline
(Make_If_Statement
);
579 function Make_Elsif_Part
(Sloc
: Source_Ptr
;
581 Then_Statements
: List_Id
)
583 pragma Inline
(Make_Elsif_Part
);
585 function Make_Case_Statement
(Sloc
: Source_Ptr
;
586 Expression
: Node_Id
;
587 Alternatives
: List_Id
;
588 End_Span
: Uint
:= No_Uint
)
590 pragma Inline
(Make_Case_Statement
);
592 function Make_Case_Statement_Alternative
(Sloc
: Source_Ptr
;
593 Discrete_Choices
: List_Id
;
594 Statements
: List_Id
)
596 pragma Inline
(Make_Case_Statement_Alternative
);
598 function Make_Loop_Statement
(Sloc
: Source_Ptr
;
599 Identifier
: Node_Id
:= Empty
;
600 Iteration_Scheme
: Node_Id
:= Empty
;
601 Statements
: List_Id
;
603 Has_Created_Identifier
: Boolean := False)
605 pragma Inline
(Make_Loop_Statement
);
607 function Make_Iteration_Scheme
(Sloc
: Source_Ptr
;
608 Condition
: Node_Id
:= Empty
;
609 Loop_Parameter_Specification
: Node_Id
:= Empty
)
611 pragma Inline
(Make_Iteration_Scheme
);
613 function Make_Loop_Parameter_Specification
(Sloc
: Source_Ptr
;
614 Defining_Identifier
: Node_Id
;
615 Reverse_Present
: Boolean := False;
616 Discrete_Subtype_Definition
: Node_Id
)
618 pragma Inline
(Make_Loop_Parameter_Specification
);
620 function Make_Block_Statement
(Sloc
: Source_Ptr
;
621 Identifier
: Node_Id
:= Empty
;
622 Declarations
: List_Id
:= No_List
;
623 Handled_Statement_Sequence
: Node_Id
;
624 Has_Created_Identifier
: Boolean := False;
625 Is_Task_Allocation_Block
: Boolean := False;
626 Is_Asynchronous_Call_Block
: Boolean := False)
628 pragma Inline
(Make_Block_Statement
);
630 function Make_Exit_Statement
(Sloc
: Source_Ptr
;
631 Name
: Node_Id
:= Empty
;
632 Condition
: Node_Id
:= Empty
)
634 pragma Inline
(Make_Exit_Statement
);
636 function Make_Goto_Statement
(Sloc
: Source_Ptr
;
639 pragma Inline
(Make_Goto_Statement
);
641 function Make_Subprogram_Declaration
(Sloc
: Source_Ptr
;
642 Specification
: Node_Id
)
644 pragma Inline
(Make_Subprogram_Declaration
);
646 function Make_Abstract_Subprogram_Declaration
(Sloc
: Source_Ptr
;
647 Specification
: Node_Id
)
649 pragma Inline
(Make_Abstract_Subprogram_Declaration
);
651 function Make_Function_Specification
(Sloc
: Source_Ptr
;
652 Defining_Unit_Name
: Node_Id
;
653 Parameter_Specifications
: List_Id
:= No_List
;
654 Subtype_Mark
: Node_Id
)
656 pragma Inline
(Make_Function_Specification
);
658 function Make_Procedure_Specification
(Sloc
: Source_Ptr
;
659 Defining_Unit_Name
: Node_Id
;
660 Parameter_Specifications
: List_Id
:= No_List
)
662 pragma Inline
(Make_Procedure_Specification
);
664 function Make_Designator
(Sloc
: Source_Ptr
;
666 Identifier
: Node_Id
)
668 pragma Inline
(Make_Designator
);
670 function Make_Defining_Program_Unit_Name
(Sloc
: Source_Ptr
;
672 Defining_Identifier
: Node_Id
)
674 pragma Inline
(Make_Defining_Program_Unit_Name
);
676 function Make_Operator_Symbol
(Sloc
: Source_Ptr
;
680 pragma Inline
(Make_Operator_Symbol
);
682 function Make_Defining_Operator_Symbol
(Sloc
: Source_Ptr
;
685 pragma Inline
(Make_Defining_Operator_Symbol
);
687 function Make_Parameter_Specification
(Sloc
: Source_Ptr
;
688 Defining_Identifier
: Node_Id
;
689 In_Present
: Boolean := False;
690 Out_Present
: Boolean := False;
691 Parameter_Type
: Node_Id
;
692 Expression
: Node_Id
:= Empty
)
694 pragma Inline
(Make_Parameter_Specification
);
696 function Make_Subprogram_Body
(Sloc
: Source_Ptr
;
697 Specification
: Node_Id
;
698 Declarations
: List_Id
;
699 Handled_Statement_Sequence
: Node_Id
;
700 Bad_Is_Detected
: Boolean := False)
702 pragma Inline
(Make_Subprogram_Body
);
704 function Make_Procedure_Call_Statement
(Sloc
: Source_Ptr
;
706 Parameter_Associations
: List_Id
:= No_List
)
708 pragma Inline
(Make_Procedure_Call_Statement
);
710 function Make_Function_Call
(Sloc
: Source_Ptr
;
712 Parameter_Associations
: List_Id
:= No_List
)
714 pragma Inline
(Make_Function_Call
);
716 function Make_Parameter_Association
(Sloc
: Source_Ptr
;
717 Selector_Name
: Node_Id
;
718 Explicit_Actual_Parameter
: Node_Id
)
720 pragma Inline
(Make_Parameter_Association
);
722 function Make_Return_Statement
(Sloc
: Source_Ptr
;
723 Expression
: Node_Id
:= Empty
)
725 pragma Inline
(Make_Return_Statement
);
727 function Make_Package_Declaration
(Sloc
: Source_Ptr
;
728 Specification
: Node_Id
)
730 pragma Inline
(Make_Package_Declaration
);
732 function Make_Package_Specification
(Sloc
: Source_Ptr
;
733 Defining_Unit_Name
: Node_Id
;
734 Visible_Declarations
: List_Id
;
735 Private_Declarations
: List_Id
:= No_List
;
738 pragma Inline
(Make_Package_Specification
);
740 function Make_Package_Body
(Sloc
: Source_Ptr
;
741 Defining_Unit_Name
: Node_Id
;
742 Declarations
: List_Id
;
743 Handled_Statement_Sequence
: Node_Id
:= Empty
)
745 pragma Inline
(Make_Package_Body
);
747 function Make_Private_Type_Declaration
(Sloc
: Source_Ptr
;
748 Defining_Identifier
: Node_Id
;
749 Discriminant_Specifications
: List_Id
:= No_List
;
750 Unknown_Discriminants_Present
: Boolean := False;
751 Abstract_Present
: Boolean := False;
752 Tagged_Present
: Boolean := False;
753 Limited_Present
: Boolean := False)
755 pragma Inline
(Make_Private_Type_Declaration
);
757 function Make_Private_Extension_Declaration
(Sloc
: Source_Ptr
;
758 Defining_Identifier
: Node_Id
;
759 Discriminant_Specifications
: List_Id
:= No_List
;
760 Unknown_Discriminants_Present
: Boolean := False;
761 Abstract_Present
: Boolean := False;
762 Subtype_Indication
: Node_Id
)
764 pragma Inline
(Make_Private_Extension_Declaration
);
766 function Make_Use_Package_Clause
(Sloc
: Source_Ptr
;
769 pragma Inline
(Make_Use_Package_Clause
);
771 function Make_Use_Type_Clause
(Sloc
: Source_Ptr
;
772 Subtype_Marks
: List_Id
)
774 pragma Inline
(Make_Use_Type_Clause
);
776 function Make_Object_Renaming_Declaration
(Sloc
: Source_Ptr
;
777 Defining_Identifier
: Node_Id
;
778 Subtype_Mark
: Node_Id
;
781 pragma Inline
(Make_Object_Renaming_Declaration
);
783 function Make_Exception_Renaming_Declaration
(Sloc
: Source_Ptr
;
784 Defining_Identifier
: Node_Id
;
787 pragma Inline
(Make_Exception_Renaming_Declaration
);
789 function Make_Package_Renaming_Declaration
(Sloc
: Source_Ptr
;
790 Defining_Unit_Name
: Node_Id
;
793 pragma Inline
(Make_Package_Renaming_Declaration
);
795 function Make_Subprogram_Renaming_Declaration
(Sloc
: Source_Ptr
;
796 Specification
: Node_Id
;
799 pragma Inline
(Make_Subprogram_Renaming_Declaration
);
801 function Make_Generic_Package_Renaming_Declaration
(Sloc
: Source_Ptr
;
802 Defining_Unit_Name
: Node_Id
;
805 pragma Inline
(Make_Generic_Package_Renaming_Declaration
);
807 function Make_Generic_Procedure_Renaming_Declaration
(Sloc
: Source_Ptr
;
808 Defining_Unit_Name
: Node_Id
;
811 pragma Inline
(Make_Generic_Procedure_Renaming_Declaration
);
813 function Make_Generic_Function_Renaming_Declaration
(Sloc
: Source_Ptr
;
814 Defining_Unit_Name
: Node_Id
;
817 pragma Inline
(Make_Generic_Function_Renaming_Declaration
);
819 function Make_Task_Type_Declaration
(Sloc
: Source_Ptr
;
820 Defining_Identifier
: Node_Id
;
821 Discriminant_Specifications
: List_Id
:= No_List
;
822 Task_Definition
: Node_Id
:= Empty
)
824 pragma Inline
(Make_Task_Type_Declaration
);
826 function Make_Single_Task_Declaration
(Sloc
: Source_Ptr
;
827 Defining_Identifier
: Node_Id
;
828 Task_Definition
: Node_Id
:= Empty
)
830 pragma Inline
(Make_Single_Task_Declaration
);
832 function Make_Task_Definition
(Sloc
: Source_Ptr
;
833 Visible_Declarations
: List_Id
;
834 Private_Declarations
: List_Id
:= No_List
;
837 pragma Inline
(Make_Task_Definition
);
839 function Make_Task_Body
(Sloc
: Source_Ptr
;
840 Defining_Identifier
: Node_Id
;
841 Declarations
: List_Id
;
842 Handled_Statement_Sequence
: Node_Id
)
844 pragma Inline
(Make_Task_Body
);
846 function Make_Protected_Type_Declaration
(Sloc
: Source_Ptr
;
847 Defining_Identifier
: Node_Id
;
848 Discriminant_Specifications
: List_Id
:= No_List
;
849 Protected_Definition
: Node_Id
)
851 pragma Inline
(Make_Protected_Type_Declaration
);
853 function Make_Single_Protected_Declaration
(Sloc
: Source_Ptr
;
854 Defining_Identifier
: Node_Id
;
855 Protected_Definition
: Node_Id
)
857 pragma Inline
(Make_Single_Protected_Declaration
);
859 function Make_Protected_Definition
(Sloc
: Source_Ptr
;
860 Visible_Declarations
: List_Id
;
861 Private_Declarations
: List_Id
:= No_List
;
864 pragma Inline
(Make_Protected_Definition
);
866 function Make_Protected_Body
(Sloc
: Source_Ptr
;
867 Defining_Identifier
: Node_Id
;
868 Declarations
: List_Id
;
871 pragma Inline
(Make_Protected_Body
);
873 function Make_Entry_Declaration
(Sloc
: Source_Ptr
;
874 Defining_Identifier
: Node_Id
;
875 Discrete_Subtype_Definition
: Node_Id
:= Empty
;
876 Parameter_Specifications
: List_Id
:= No_List
)
878 pragma Inline
(Make_Entry_Declaration
);
880 function Make_Accept_Statement
(Sloc
: Source_Ptr
;
881 Entry_Direct_Name
: Node_Id
;
882 Entry_Index
: Node_Id
:= Empty
;
883 Parameter_Specifications
: List_Id
:= No_List
;
884 Handled_Statement_Sequence
: Node_Id
;
885 Declarations
: List_Id
:= No_List
)
887 pragma Inline
(Make_Accept_Statement
);
889 function Make_Entry_Body
(Sloc
: Source_Ptr
;
890 Defining_Identifier
: Node_Id
;
891 Entry_Body_Formal_Part
: Node_Id
;
892 Declarations
: List_Id
;
893 Handled_Statement_Sequence
: Node_Id
)
895 pragma Inline
(Make_Entry_Body
);
897 function Make_Entry_Body_Formal_Part
(Sloc
: Source_Ptr
;
898 Entry_Index_Specification
: Node_Id
:= Empty
;
899 Parameter_Specifications
: List_Id
:= No_List
;
902 pragma Inline
(Make_Entry_Body_Formal_Part
);
904 function Make_Entry_Index_Specification
(Sloc
: Source_Ptr
;
905 Defining_Identifier
: Node_Id
;
906 Discrete_Subtype_Definition
: Node_Id
)
908 pragma Inline
(Make_Entry_Index_Specification
);
910 function Make_Entry_Call_Statement
(Sloc
: Source_Ptr
;
912 Parameter_Associations
: List_Id
:= No_List
)
914 pragma Inline
(Make_Entry_Call_Statement
);
916 function Make_Requeue_Statement
(Sloc
: Source_Ptr
;
918 Abort_Present
: Boolean := False)
920 pragma Inline
(Make_Requeue_Statement
);
922 function Make_Delay_Until_Statement
(Sloc
: Source_Ptr
;
923 Expression
: Node_Id
)
925 pragma Inline
(Make_Delay_Until_Statement
);
927 function Make_Delay_Relative_Statement
(Sloc
: Source_Ptr
;
928 Expression
: Node_Id
)
930 pragma Inline
(Make_Delay_Relative_Statement
);
932 function Make_Selective_Accept
(Sloc
: Source_Ptr
;
933 Select_Alternatives
: List_Id
;
934 Else_Statements
: List_Id
:= No_List
)
936 pragma Inline
(Make_Selective_Accept
);
938 function Make_Accept_Alternative
(Sloc
: Source_Ptr
;
939 Accept_Statement
: Node_Id
;
940 Condition
: Node_Id
:= Empty
;
941 Statements
: List_Id
:= Empty_List
;
942 Pragmas_Before
: List_Id
:= No_List
)
944 pragma Inline
(Make_Accept_Alternative
);
946 function Make_Delay_Alternative
(Sloc
: Source_Ptr
;
947 Delay_Statement
: Node_Id
;
948 Condition
: Node_Id
:= Empty
;
949 Statements
: List_Id
:= Empty_List
;
950 Pragmas_Before
: List_Id
:= No_List
)
952 pragma Inline
(Make_Delay_Alternative
);
954 function Make_Terminate_Alternative
(Sloc
: Source_Ptr
;
955 Condition
: Node_Id
:= Empty
;
956 Pragmas_Before
: List_Id
:= No_List
;
957 Pragmas_After
: List_Id
:= No_List
)
959 pragma Inline
(Make_Terminate_Alternative
);
961 function Make_Timed_Entry_Call
(Sloc
: Source_Ptr
;
962 Entry_Call_Alternative
: Node_Id
;
963 Delay_Alternative
: Node_Id
)
965 pragma Inline
(Make_Timed_Entry_Call
);
967 function Make_Entry_Call_Alternative
(Sloc
: Source_Ptr
;
968 Entry_Call_Statement
: Node_Id
;
969 Statements
: List_Id
:= Empty_List
;
970 Pragmas_Before
: List_Id
:= No_List
)
972 pragma Inline
(Make_Entry_Call_Alternative
);
974 function Make_Conditional_Entry_Call
(Sloc
: Source_Ptr
;
975 Entry_Call_Alternative
: Node_Id
;
976 Else_Statements
: List_Id
)
978 pragma Inline
(Make_Conditional_Entry_Call
);
980 function Make_Asynchronous_Select
(Sloc
: Source_Ptr
;
981 Triggering_Alternative
: Node_Id
;
982 Abortable_Part
: Node_Id
)
984 pragma Inline
(Make_Asynchronous_Select
);
986 function Make_Triggering_Alternative
(Sloc
: Source_Ptr
;
987 Triggering_Statement
: Node_Id
;
988 Statements
: List_Id
:= Empty_List
;
989 Pragmas_Before
: List_Id
:= No_List
)
991 pragma Inline
(Make_Triggering_Alternative
);
993 function Make_Abortable_Part
(Sloc
: Source_Ptr
;
994 Statements
: List_Id
)
996 pragma Inline
(Make_Abortable_Part
);
998 function Make_Abort_Statement
(Sloc
: Source_Ptr
;
1001 pragma Inline
(Make_Abort_Statement
);
1003 function Make_Compilation_Unit
(Sloc
: Source_Ptr
;
1004 Context_Items
: List_Id
;
1005 Private_Present
: Boolean := False;
1007 Aux_Decls_Node
: Node_Id
)
1009 pragma Inline
(Make_Compilation_Unit
);
1011 function Make_Compilation_Unit_Aux
(Sloc
: Source_Ptr
;
1012 Declarations
: List_Id
:= No_List
;
1013 Actions
: List_Id
:= No_List
;
1014 Pragmas_After
: List_Id
:= No_List
)
1016 pragma Inline
(Make_Compilation_Unit_Aux
);
1018 function Make_With_Clause
(Sloc
: Source_Ptr
;
1020 First_Name
: Boolean := True;
1021 Last_Name
: Boolean := True)
1023 pragma Inline
(Make_With_Clause
);
1025 function Make_With_Type_Clause
(Sloc
: Source_Ptr
;
1027 Tagged_Present
: Boolean := False)
1029 pragma Inline
(Make_With_Type_Clause
);
1031 function Make_Subprogram_Body_Stub
(Sloc
: Source_Ptr
;
1032 Specification
: Node_Id
)
1034 pragma Inline
(Make_Subprogram_Body_Stub
);
1036 function Make_Package_Body_Stub
(Sloc
: Source_Ptr
;
1037 Defining_Identifier
: Node_Id
)
1039 pragma Inline
(Make_Package_Body_Stub
);
1041 function Make_Task_Body_Stub
(Sloc
: Source_Ptr
;
1042 Defining_Identifier
: Node_Id
)
1044 pragma Inline
(Make_Task_Body_Stub
);
1046 function Make_Protected_Body_Stub
(Sloc
: Source_Ptr
;
1047 Defining_Identifier
: Node_Id
)
1049 pragma Inline
(Make_Protected_Body_Stub
);
1051 function Make_Subunit
(Sloc
: Source_Ptr
;
1053 Proper_Body
: Node_Id
)
1055 pragma Inline
(Make_Subunit
);
1057 function Make_Exception_Declaration
(Sloc
: Source_Ptr
;
1058 Defining_Identifier
: Node_Id
)
1060 pragma Inline
(Make_Exception_Declaration
);
1062 function Make_Handled_Sequence_Of_Statements
(Sloc
: Source_Ptr
;
1063 Statements
: List_Id
;
1064 End_Label
: Node_Id
:= Empty
;
1065 Exception_Handlers
: List_Id
:= No_List
;
1066 At_End_Proc
: Node_Id
:= Empty
)
1068 pragma Inline
(Make_Handled_Sequence_Of_Statements
);
1070 function Make_Exception_Handler
(Sloc
: Source_Ptr
;
1071 Choice_Parameter
: Node_Id
:= Empty
;
1072 Exception_Choices
: List_Id
;
1073 Statements
: List_Id
)
1075 pragma Inline
(Make_Exception_Handler
);
1077 function Make_Raise_Statement
(Sloc
: Source_Ptr
;
1078 Name
: Node_Id
:= Empty
)
1080 pragma Inline
(Make_Raise_Statement
);
1082 function Make_Generic_Subprogram_Declaration
(Sloc
: Source_Ptr
;
1083 Specification
: Node_Id
;
1084 Generic_Formal_Declarations
: List_Id
)
1086 pragma Inline
(Make_Generic_Subprogram_Declaration
);
1088 function Make_Generic_Package_Declaration
(Sloc
: Source_Ptr
;
1089 Specification
: Node_Id
;
1090 Generic_Formal_Declarations
: List_Id
)
1092 pragma Inline
(Make_Generic_Package_Declaration
);
1094 function Make_Package_Instantiation
(Sloc
: Source_Ptr
;
1095 Defining_Unit_Name
: Node_Id
;
1097 Generic_Associations
: List_Id
:= No_List
)
1099 pragma Inline
(Make_Package_Instantiation
);
1101 function Make_Procedure_Instantiation
(Sloc
: Source_Ptr
;
1102 Defining_Unit_Name
: Node_Id
;
1104 Generic_Associations
: List_Id
:= No_List
)
1106 pragma Inline
(Make_Procedure_Instantiation
);
1108 function Make_Function_Instantiation
(Sloc
: Source_Ptr
;
1109 Defining_Unit_Name
: Node_Id
;
1111 Generic_Associations
: List_Id
:= No_List
)
1113 pragma Inline
(Make_Function_Instantiation
);
1115 function Make_Generic_Association
(Sloc
: Source_Ptr
;
1116 Selector_Name
: Node_Id
:= Empty
;
1117 Explicit_Generic_Actual_Parameter
: Node_Id
)
1119 pragma Inline
(Make_Generic_Association
);
1121 function Make_Formal_Object_Declaration
(Sloc
: Source_Ptr
;
1122 Defining_Identifier
: Node_Id
;
1123 In_Present
: Boolean := False;
1124 Out_Present
: Boolean := False;
1125 Subtype_Mark
: Node_Id
;
1126 Expression
: Node_Id
:= Empty
)
1128 pragma Inline
(Make_Formal_Object_Declaration
);
1130 function Make_Formal_Type_Declaration
(Sloc
: Source_Ptr
;
1131 Defining_Identifier
: Node_Id
;
1132 Formal_Type_Definition
: Node_Id
;
1133 Discriminant_Specifications
: List_Id
:= No_List
;
1134 Unknown_Discriminants_Present
: Boolean := False)
1136 pragma Inline
(Make_Formal_Type_Declaration
);
1138 function Make_Formal_Private_Type_Definition
(Sloc
: Source_Ptr
;
1139 Abstract_Present
: Boolean := False;
1140 Tagged_Present
: Boolean := False;
1141 Limited_Present
: Boolean := False)
1143 pragma Inline
(Make_Formal_Private_Type_Definition
);
1145 function Make_Formal_Derived_Type_Definition
(Sloc
: Source_Ptr
;
1146 Subtype_Mark
: Node_Id
;
1147 Private_Present
: Boolean := False;
1148 Abstract_Present
: Boolean := False)
1150 pragma Inline
(Make_Formal_Derived_Type_Definition
);
1152 function Make_Formal_Discrete_Type_Definition
(Sloc
: Source_Ptr
)
1154 pragma Inline
(Make_Formal_Discrete_Type_Definition
);
1156 function Make_Formal_Signed_Integer_Type_Definition
(Sloc
: Source_Ptr
)
1158 pragma Inline
(Make_Formal_Signed_Integer_Type_Definition
);
1160 function Make_Formal_Modular_Type_Definition
(Sloc
: Source_Ptr
)
1162 pragma Inline
(Make_Formal_Modular_Type_Definition
);
1164 function Make_Formal_Floating_Point_Definition
(Sloc
: Source_Ptr
)
1166 pragma Inline
(Make_Formal_Floating_Point_Definition
);
1168 function Make_Formal_Ordinary_Fixed_Point_Definition
(Sloc
: Source_Ptr
)
1170 pragma Inline
(Make_Formal_Ordinary_Fixed_Point_Definition
);
1172 function Make_Formal_Decimal_Fixed_Point_Definition
(Sloc
: Source_Ptr
)
1174 pragma Inline
(Make_Formal_Decimal_Fixed_Point_Definition
);
1176 function Make_Formal_Subprogram_Declaration
(Sloc
: Source_Ptr
;
1177 Specification
: Node_Id
;
1178 Default_Name
: Node_Id
:= Empty
;
1179 Box_Present
: Boolean := False)
1181 pragma Inline
(Make_Formal_Subprogram_Declaration
);
1183 function Make_Formal_Package_Declaration
(Sloc
: Source_Ptr
;
1184 Defining_Identifier
: Node_Id
;
1186 Generic_Associations
: List_Id
:= No_List
;
1187 Box_Present
: Boolean := False)
1189 pragma Inline
(Make_Formal_Package_Declaration
);
1191 function Make_Attribute_Definition_Clause
(Sloc
: Source_Ptr
;
1194 Expression
: Node_Id
)
1196 pragma Inline
(Make_Attribute_Definition_Clause
);
1198 function Make_Enumeration_Representation_Clause
(Sloc
: Source_Ptr
;
1199 Identifier
: Node_Id
;
1200 Array_Aggregate
: Node_Id
)
1202 pragma Inline
(Make_Enumeration_Representation_Clause
);
1204 function Make_Record_Representation_Clause
(Sloc
: Source_Ptr
;
1205 Identifier
: Node_Id
;
1206 Mod_Clause
: Node_Id
:= Empty
;
1207 Component_Clauses
: List_Id
)
1209 pragma Inline
(Make_Record_Representation_Clause
);
1211 function Make_Component_Clause
(Sloc
: Source_Ptr
;
1212 Component_Name
: Node_Id
;
1214 First_Bit
: Node_Id
;
1217 pragma Inline
(Make_Component_Clause
);
1219 function Make_Code_Statement
(Sloc
: Source_Ptr
;
1220 Expression
: Node_Id
)
1222 pragma Inline
(Make_Code_Statement
);
1224 function Make_Op_Rotate_Left
(Sloc
: Source_Ptr
;
1225 Left_Opnd
: Node_Id
;
1226 Right_Opnd
: Node_Id
)
1228 pragma Inline
(Make_Op_Rotate_Left
);
1230 function Make_Op_Rotate_Right
(Sloc
: Source_Ptr
;
1231 Left_Opnd
: Node_Id
;
1232 Right_Opnd
: Node_Id
)
1234 pragma Inline
(Make_Op_Rotate_Right
);
1236 function Make_Op_Shift_Left
(Sloc
: Source_Ptr
;
1237 Left_Opnd
: Node_Id
;
1238 Right_Opnd
: Node_Id
)
1240 pragma Inline
(Make_Op_Shift_Left
);
1242 function Make_Op_Shift_Right_Arithmetic
(Sloc
: Source_Ptr
;
1243 Left_Opnd
: Node_Id
;
1244 Right_Opnd
: Node_Id
)
1246 pragma Inline
(Make_Op_Shift_Right_Arithmetic
);
1248 function Make_Op_Shift_Right
(Sloc
: Source_Ptr
;
1249 Left_Opnd
: Node_Id
;
1250 Right_Opnd
: Node_Id
)
1252 pragma Inline
(Make_Op_Shift_Right
);
1254 function Make_Delta_Constraint
(Sloc
: Source_Ptr
;
1255 Delta_Expression
: Node_Id
;
1256 Range_Constraint
: Node_Id
:= Empty
)
1258 pragma Inline
(Make_Delta_Constraint
);
1260 function Make_At_Clause
(Sloc
: Source_Ptr
;
1261 Identifier
: Node_Id
;
1262 Expression
: Node_Id
)
1264 pragma Inline
(Make_At_Clause
);
1266 function Make_Mod_Clause
(Sloc
: Source_Ptr
;
1267 Expression
: Node_Id
;
1268 Pragmas_Before
: List_Id
)
1270 pragma Inline
(Make_Mod_Clause
);
1272 function Make_Conditional_Expression
(Sloc
: Source_Ptr
;
1273 Expressions
: List_Id
)
1275 pragma Inline
(Make_Conditional_Expression
);
1277 function Make_Expanded_Name
(Sloc
: Source_Ptr
;
1280 Selector_Name
: Node_Id
)
1282 pragma Inline
(Make_Expanded_Name
);
1284 function Make_Free_Statement
(Sloc
: Source_Ptr
;
1285 Expression
: Node_Id
)
1287 pragma Inline
(Make_Free_Statement
);
1289 function Make_Freeze_Entity
(Sloc
: Source_Ptr
;
1290 Actions
: List_Id
:= No_List
)
1292 pragma Inline
(Make_Freeze_Entity
);
1294 function Make_Implicit_Label_Declaration
(Sloc
: Source_Ptr
;
1295 Defining_Identifier
: Node_Id
)
1297 pragma Inline
(Make_Implicit_Label_Declaration
);
1299 function Make_Itype_Reference
(Sloc
: Source_Ptr
)
1301 pragma Inline
(Make_Itype_Reference
);
1303 function Make_Raise_Constraint_Error
(Sloc
: Source_Ptr
;
1304 Condition
: Node_Id
:= Empty
)
1306 pragma Inline
(Make_Raise_Constraint_Error
);
1308 function Make_Raise_Program_Error
(Sloc
: Source_Ptr
;
1309 Condition
: Node_Id
:= Empty
)
1311 pragma Inline
(Make_Raise_Program_Error
);
1313 function Make_Raise_Storage_Error
(Sloc
: Source_Ptr
;
1314 Condition
: Node_Id
:= Empty
)
1316 pragma Inline
(Make_Raise_Storage_Error
);
1318 function Make_Reference
(Sloc
: Source_Ptr
;
1321 pragma Inline
(Make_Reference
);
1323 function Make_Subprogram_Info
(Sloc
: Source_Ptr
;
1324 Identifier
: Node_Id
)
1326 pragma Inline
(Make_Subprogram_Info
);
1328 function Make_Unchecked_Expression
(Sloc
: Source_Ptr
;
1329 Expression
: Node_Id
)
1331 pragma Inline
(Make_Unchecked_Expression
);
1333 function Make_Unchecked_Type_Conversion
(Sloc
: Source_Ptr
;
1334 Subtype_Mark
: Node_Id
;
1335 Expression
: Node_Id
)
1337 pragma Inline
(Make_Unchecked_Type_Conversion
);
1339 function Make_Validate_Unchecked_Conversion
(Sloc
: Source_Ptr
)
1341 pragma Inline
(Make_Validate_Unchecked_Conversion
);