]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/ada/gen_il-gen-gen_nodes.adb
[Ada] Variable-sized node types
[thirdparty/gcc.git] / gcc / ada / gen_il-gen-gen_nodes.adb
1 ------------------------------------------------------------------------------
2 -- --
3 -- GNAT COMPILER COMPONENTS --
4 -- --
5 -- G E N _ I L . G E N . G E N _ N O D E S --
6 -- --
7 -- B o d y --
8 -- --
9 -- Copyright (C) 2020-2021, Free Software Foundation, Inc. --
10 -- --
11 -- GNAT is free software; you can redistribute it and/or modify it under --
12 -- terms of the GNU General Public License as published by the Free Soft- --
13 -- ware Foundation; either version 3, or (at your option) any later ver- --
14 -- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
15 -- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
16 -- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License --
17 -- for more details. You should have received a copy of the GNU General --
18 -- Public License distributed with GNAT; see file COPYING3. If not, go to --
19 -- http://www.gnu.org/licenses for a complete copy of the license. --
20 -- --
21 -- GNAT was originally developed by the GNAT team at New York University. --
22 -- Extensive contributions were provided by Ada Core Technologies Inc. --
23 -- --
24 ------------------------------------------------------------------------------
25
26 procedure Gen_IL.Gen.Gen_Nodes is
27
28 procedure Ab -- Short for "Abstract"
29 (T : Abstract_Node; Parent : Abstract_Type;
30 Fields : Field_Sequence := No_Fields)
31 renames Create_Abstract_Node_Type;
32 procedure Cc -- Short for "ConCrete"
33 (T : Concrete_Node; Parent : Abstract_Type;
34 Fields : Field_Sequence := No_Fields)
35 renames Create_Concrete_Node_Type;
36
37 function Sy -- Short for "Syntactic"
38 (Field : Node_Field; Field_Type : Type_Enum;
39 Default_Value : Field_Default_Value := No_Default;
40 Pre : String := "") return Field_Desc
41 renames Create_Syntactic_Field;
42 function Sm -- Short for "Semantic"
43 (Field : Field_Enum; Field_Type : Type_Enum;
44 Type_Only : Type_Only_Enum := No_Type_Only;
45 Pre : String := "") return Field_Desc
46 renames Create_Semantic_Field;
47
48 procedure Union (T : Abstract_Node; Children : Type_Array)
49 renames Create_Node_Union;
50
51 begin -- Gen_IL.Gen.Gen_Nodes
52 pragma Style_Checks ("M200");
53
54 -- N_Empty should not inherit all of these fields????
55 -- But the following getters and setters are called on Empty:
56 --
57 -- Set_Comes_From_Source
58 -- Set_Sloc
59 --
60 -- Comes_From_Source
61 -- Error_Posted
62 -- In_List
63 -- Link
64 -- Rewrite_Ins
65 -- Sloc
66 -- Small_Paren_Count
67 Create_Root_Node_Type (Node_Kind,
68 (Sm (Nkind, Nkind_Type),
69 Sm (Sloc, Source_Ptr),
70 Sm (In_List, Flag),
71 Sm (Rewrite_Ins, Flag),
72 Sm (Comes_From_Source, Flag),
73 Sm (Analyzed, Flag),
74 Sm (Error_Posted, Flag),
75 Sm (Small_Paren_Count, Small_Paren_Count_Type),
76 Sm (Check_Actuals, Flag),
77 Sm (Has_Aspects, Flag),
78 Sm (Is_Ignored_Ghost_Node, Flag),
79 Sm (Link, Union_Id)));
80
81 Cc (N_Unused_At_Start, Node_Kind);
82
83 Ab (N_Representation_Clause, Node_Kind);
84
85 Cc (N_At_Clause, N_Representation_Clause,
86 (Sy (Identifier, Node_Id, Default_Empty),
87 Sy (Expression, Node_Id, Default_Empty)));
88
89 Cc (N_Component_Clause, N_Representation_Clause,
90 (Sy (Component_Name, Node_Id),
91 Sy (Position, Node_Id),
92 Sy (First_Bit, Node_Id),
93 Sy (Last_Bit, Node_Id)));
94
95 Cc (N_Enumeration_Representation_Clause, N_Representation_Clause,
96 (Sy (Identifier, Node_Id, Default_Empty),
97 Sy (Array_Aggregate, Node_Id),
98 Sm (Next_Rep_Item, Node_Id)));
99
100 Cc (N_Mod_Clause, N_Representation_Clause,
101 (Sy (Expression, Node_Id, Default_Empty),
102 Sy (Pragmas_Before, List_Id, Default_No_List)));
103
104 Cc (N_Record_Representation_Clause, N_Representation_Clause,
105 (Sy (Identifier, Node_Id, Default_Empty),
106 Sy (Mod_Clause, Node_Id, Default_Empty),
107 Sy (Component_Clauses, List_Id),
108 Sm (Next_Rep_Item, Node_Id)));
109
110 Cc (N_Attribute_Definition_Clause, N_Representation_Clause,
111 (Sy (Name, Node_Id, Default_Empty),
112 Sy (Chars, Name_Id, Default_No_Name),
113 Sy (Expression, Node_Id, Default_Empty),
114 Sm (Address_Warning_Posted, Flag),
115 Sm (Check_Address_Alignment, Flag),
116 Sm (Entity_Or_Associated_Node, Node_Id), -- just Entity
117 Sm (From_Aspect_Specification, Flag),
118 Sm (From_At_Mod, Flag),
119 Sm (Is_Delayed_Aspect, Flag),
120 Sm (Next_Rep_Item, Node_Id)));
121
122 Cc (N_Empty, Node_Kind,
123 (Sy (Chars, Name_Id, Default_No_Name)));
124
125 Cc (N_Pragma_Argument_Association, Node_Kind,
126 (Sy (Chars, Name_Id, Default_No_Name),
127 Sy (Expression, Node_Id, Default_Empty),
128 Sm (Expression_Copy, Node_Id)));
129
130 Ab (N_Has_Etype, Node_Kind,
131 (Sm (Etype, Node_Id)));
132
133 Cc (N_Error, N_Has_Etype,
134 (Sy (Chars, Name_Id, Default_No_Name)));
135
136 Ab (N_Entity, N_Has_Etype,
137 (Sm (Next_Entity, Node_Id),
138 Sm (Scope, Node_Id)));
139
140 Cc (N_Defining_Character_Literal, N_Entity,
141 (Sy (Chars, Name_Id, Default_No_Name)));
142
143 Cc (N_Defining_Identifier, N_Entity,
144 (Sy (Chars, Name_Id, Default_No_Name)));
145
146 Cc (N_Defining_Operator_Symbol, N_Entity,
147 (Sy (Chars, Name_Id, Default_No_Name)));
148
149 Ab (N_Subexpr, N_Has_Etype,
150 (Sm (Assignment_OK, Flag),
151 Sm (Do_Range_Check, Flag),
152 Sm (Has_Dynamic_Length_Check, Flag),
153 Sm (Is_Controlling_Actual, Flag),
154 Sm (Is_Overloaded, Flag),
155 Sm (Is_Static_Expression, Flag),
156 Sm (Must_Not_Freeze, Flag),
157 Sm (Raises_Constraint_Error, Flag)));
158
159 Ab (N_Has_Entity, N_Subexpr,
160 (Sm (Entity_Or_Associated_Node, Node_Id))); -- both
161
162 Cc (N_Expanded_Name, N_Has_Entity,
163 (Sy (Chars, Name_Id, Default_No_Name),
164 Sy (Prefix, Node_Id),
165 Sy (Selector_Name, Node_Id, Default_Empty),
166 Sm (Atomic_Sync_Required, Flag),
167 Sm (Has_Private_View, Flag),
168 Sm (Is_Elaboration_Checks_OK_Node, Flag),
169 Sm (Is_Elaboration_Warnings_OK_Node, Flag),
170 Sm (Is_SPARK_Mode_On_Node, Flag),
171 Sm (Redundant_Use, Flag)));
172
173 Ab (N_Direct_Name, N_Has_Entity,
174 (Sm (Has_Private_View, Flag)));
175
176 Cc (N_Identifier, N_Direct_Name,
177 (Sy (Chars, Name_Id, Default_No_Name),
178 Sm (Atomic_Sync_Required, Flag),
179 Sm (Is_Elaboration_Checks_OK_Node, Flag),
180 Sm (Is_Elaboration_Warnings_OK_Node, Flag),
181 Sm (Is_SPARK_Mode_On_Node, Flag),
182 Sm (Original_Discriminant, Node_Id),
183 Sm (Redundant_Use, Flag)));
184
185 Cc (N_Operator_Symbol, N_Direct_Name,
186 (Sy (Chars, Name_Id, Default_No_Name),
187 Sy (Strval, String_Id)));
188
189 Cc (N_Character_Literal, N_Direct_Name,
190 (Sy (Chars, Name_Id, Default_No_Name),
191 Sy (Char_Literal_Value, Uint)));
192
193 Ab (N_Op, N_Has_Entity,
194 (Sm (Do_Overflow_Check, Flag),
195 Sm (Has_Private_View, Flag)));
196
197 Ab (N_Binary_Op, N_Op);
198
199 Cc (N_Op_Add, N_Binary_Op,
200 (Sm (Chars, Name_Id),
201 Sy (Left_Opnd, Node_Id),
202 Sy (Right_Opnd, Node_Id)));
203
204 Cc (N_Op_Concat, N_Binary_Op,
205 (Sm (Chars, Name_Id),
206 Sy (Left_Opnd, Node_Id),
207 Sy (Right_Opnd, Node_Id),
208 Sm (Is_Component_Left_Opnd, Flag),
209 Sm (Is_Component_Right_Opnd, Flag)));
210
211 Cc (N_Op_Expon, N_Binary_Op,
212 (Sm (Chars, Name_Id),
213 Sy (Left_Opnd, Node_Id),
214 Sy (Right_Opnd, Node_Id),
215 Sm (Is_Power_Of_2_For_Shift, Flag)));
216
217 Cc (N_Op_Subtract, N_Binary_Op,
218 (Sm (Chars, Name_Id),
219 Sy (Left_Opnd, Node_Id),
220 Sy (Right_Opnd, Node_Id)));
221
222 Ab (N_Multiplying_Operator, N_Binary_Op);
223
224 Cc (N_Op_Divide, N_Multiplying_Operator,
225 (Sm (Chars, Name_Id),
226 Sy (Left_Opnd, Node_Id),
227 Sy (Right_Opnd, Node_Id),
228 Sm (Do_Division_Check, Flag),
229 Sm (Rounded_Result, Flag)));
230
231 Cc (N_Op_Mod, N_Multiplying_Operator,
232 (Sm (Chars, Name_Id),
233 Sy (Left_Opnd, Node_Id),
234 Sy (Right_Opnd, Node_Id),
235 Sm (Do_Division_Check, Flag)));
236
237 Cc (N_Op_Multiply, N_Multiplying_Operator,
238 (Sm (Chars, Name_Id),
239 Sy (Left_Opnd, Node_Id),
240 Sy (Right_Opnd, Node_Id),
241 Sm (Rounded_Result, Flag)));
242
243 Cc (N_Op_Rem, N_Multiplying_Operator,
244 (Sm (Chars, Name_Id),
245 Sy (Left_Opnd, Node_Id),
246 Sy (Right_Opnd, Node_Id),
247 Sm (Do_Division_Check, Flag)));
248
249 Ab (N_Op_Boolean, N_Binary_Op);
250
251 Cc (N_Op_And, N_Op_Boolean,
252 (Sm (Chars, Name_Id),
253 Sy (Left_Opnd, Node_Id),
254 Sy (Right_Opnd, Node_Id),
255 Sm (Do_Length_Check, Flag)));
256
257 Ab (N_Op_Compare, N_Op_Boolean);
258
259 Cc (N_Op_Eq, N_Op_Compare,
260 (Sm (Chars, Name_Id),
261 Sy (Left_Opnd, Node_Id),
262 Sy (Right_Opnd, Node_Id)));
263
264 Cc (N_Op_Ge, N_Op_Compare,
265 (Sm (Chars, Name_Id),
266 Sy (Left_Opnd, Node_Id),
267 Sy (Right_Opnd, Node_Id)));
268
269 Cc (N_Op_Gt, N_Op_Compare,
270 (Sm (Chars, Name_Id),
271 Sy (Left_Opnd, Node_Id),
272 Sy (Right_Opnd, Node_Id)));
273
274 Cc (N_Op_Le, N_Op_Compare,
275 (Sm (Chars, Name_Id),
276 Sy (Left_Opnd, Node_Id),
277 Sy (Right_Opnd, Node_Id)));
278
279 Cc (N_Op_Lt, N_Op_Compare,
280 (Sm (Chars, Name_Id),
281 Sy (Left_Opnd, Node_Id),
282 Sy (Right_Opnd, Node_Id)));
283
284 Cc (N_Op_Ne, N_Op_Compare,
285 (Sm (Chars, Name_Id),
286 Sy (Left_Opnd, Node_Id),
287 Sy (Right_Opnd, Node_Id)));
288
289 Cc (N_Op_Or, N_Op_Boolean,
290 (Sm (Chars, Name_Id),
291 Sy (Left_Opnd, Node_Id),
292 Sy (Right_Opnd, Node_Id),
293 Sm (Do_Length_Check, Flag)));
294
295 Cc (N_Op_Xor, N_Op_Boolean,
296 (Sm (Chars, Name_Id),
297 Sy (Left_Opnd, Node_Id),
298 Sy (Right_Opnd, Node_Id),
299 Sm (Do_Length_Check, Flag)));
300
301 Ab (N_Op_Shift, N_Binary_Op,
302 (Sm (Shift_Count_OK, Flag)));
303
304 Cc (N_Op_Rotate_Left, N_Op_Shift,
305 (Sm (Chars, Name_Id),
306 Sy (Left_Opnd, Node_Id),
307 Sy (Right_Opnd, Node_Id)));
308
309 Cc (N_Op_Rotate_Right, N_Op_Shift,
310 (Sm (Chars, Name_Id),
311 Sy (Left_Opnd, Node_Id),
312 Sy (Right_Opnd, Node_Id)));
313
314 Cc (N_Op_Shift_Left, N_Op_Shift,
315 (Sm (Chars, Name_Id),
316 Sy (Left_Opnd, Node_Id),
317 Sy (Right_Opnd, Node_Id)));
318
319 Cc (N_Op_Shift_Right, N_Op_Shift,
320 (Sm (Chars, Name_Id),
321 Sy (Left_Opnd, Node_Id),
322 Sy (Right_Opnd, Node_Id)));
323
324 Cc (N_Op_Shift_Right_Arithmetic, N_Op_Shift,
325 (Sm (Chars, Name_Id),
326 Sy (Left_Opnd, Node_Id),
327 Sy (Right_Opnd, Node_Id)));
328
329 Ab (N_Unary_Op, N_Op);
330
331 Cc (N_Op_Abs, N_Unary_Op,
332 (Sm (Chars, Name_Id),
333 Sy (Right_Opnd, Node_Id)));
334
335 Cc (N_Op_Minus, N_Unary_Op,
336 (Sm (Chars, Name_Id),
337 Sy (Right_Opnd, Node_Id)));
338
339 Cc (N_Op_Not, N_Unary_Op,
340 (Sm (Chars, Name_Id),
341 Sy (Right_Opnd, Node_Id)));
342
343 Cc (N_Op_Plus, N_Unary_Op,
344 (Sm (Chars, Name_Id),
345 Sy (Right_Opnd, Node_Id)));
346
347 Cc (N_Attribute_Reference, N_Has_Entity,
348 (Sy (Prefix, Node_Id),
349 Sy (Attribute_Name, Name_Id),
350 Sy (Expressions, List_Id, Default_No_List),
351 Sm (Do_Overflow_Check, Flag),
352 Sm (Header_Size_Added, Flag),
353 Sm (Is_Elaboration_Checks_OK_Node, Flag),
354 Sm (Is_Elaboration_Warnings_OK_Node, Flag),
355 Sm (Is_SPARK_Mode_On_Node, Flag),
356 Sm (Must_Be_Byte_Aligned, Flag),
357 Sm (Redundant_Use, Flag)));
358
359 Ab (N_Membership_Test, N_Subexpr);
360
361 Cc (N_In, N_Membership_Test,
362 (Sy (Left_Opnd, Node_Id),
363 Sy (Right_Opnd, Node_Id),
364 Sy (Alternatives, List_Id, Default_No_List),
365 Sy (No_Minimize_Eliminate, Flag)));
366
367 Cc (N_Not_In, N_Membership_Test,
368 (Sy (Left_Opnd, Node_Id),
369 Sy (Right_Opnd, Node_Id),
370 Sy (Alternatives, List_Id, Default_No_List),
371 Sy (No_Minimize_Eliminate, Flag)));
372
373 Ab (N_Short_Circuit, N_Subexpr);
374
375 Cc (N_And_Then, N_Short_Circuit,
376 (Sy (Left_Opnd, Node_Id),
377 Sy (Right_Opnd, Node_Id),
378 Sm (Actions, List_Id)));
379
380 Cc (N_Or_Else, N_Short_Circuit,
381 (Sy (Left_Opnd, Node_Id),
382 Sy (Right_Opnd, Node_Id),
383 Sm (Actions, List_Id)));
384
385 Ab (N_Subprogram_Call, N_Subexpr,
386 (Sm (Controlling_Argument, Node_Id),
387 Sm (Do_Tag_Check, Flag),
388 Sm (First_Named_Actual, Node_Id),
389 Sm (Is_Elaboration_Checks_OK_Node, Flag),
390 Sm (Is_Elaboration_Warnings_OK_Node, Flag),
391 Sm (Is_Known_Guaranteed_ABE, Flag),
392 Sm (Is_SPARK_Mode_On_Node, Flag),
393 Sm (No_Elaboration_Check, Flag)));
394
395 Cc (N_Function_Call, N_Subprogram_Call,
396 (Sy (Name, Node_Id, Default_Empty),
397 Sy (Parameter_Associations, List_Id, Default_No_List),
398 Sm (Is_Expanded_Build_In_Place_Call, Flag),
399 Sm (No_Side_Effect_Removal, Flag)));
400
401 Cc (N_Procedure_Call_Statement, N_Subprogram_Call,
402 (Sy (Name, Node_Id, Default_Empty),
403 Sy (Parameter_Associations, List_Id, Default_No_List)));
404
405 Ab (N_Raise_xxx_Error, N_Subexpr);
406
407 Cc (N_Raise_Constraint_Error, N_Raise_xxx_Error,
408 (Sy (Condition, Node_Id, Default_Empty),
409 Sy (Reason, Uint)));
410
411 Cc (N_Raise_Program_Error, N_Raise_xxx_Error,
412 (Sy (Condition, Node_Id, Default_Empty),
413 Sy (Reason, Uint)));
414
415 Cc (N_Raise_Storage_Error, N_Raise_xxx_Error,
416 (Sy (Condition, Node_Id, Default_Empty),
417 Sy (Reason, Uint)));
418
419 Ab (N_Numeric_Or_String_Literal, N_Subexpr);
420
421 Cc (N_Integer_Literal, N_Numeric_Or_String_Literal,
422 (Sy (Intval, Uint),
423 Sm (Original_Entity, Node_Id),
424 Sm (Print_In_Hex, Flag)));
425
426 Cc (N_Real_Literal, N_Numeric_Or_String_Literal,
427 (Sy (Realval, Ureal),
428 Sm (Corresponding_Integer_Value, Uint),
429 Sm (Is_Machine_Number, Flag),
430 Sm (Original_Entity, Node_Id)));
431
432 Cc (N_String_Literal, N_Numeric_Or_String_Literal,
433 (Sy (Strval, String_Id),
434 Sy (Is_Folded_In_Parser, Flag),
435 Sm (Has_Wide_Character, Flag),
436 Sm (Has_Wide_Wide_Character, Flag)));
437
438 Cc (N_Explicit_Dereference, N_Subexpr,
439 (Sy (Prefix, Node_Id),
440 Sm (Actual_Designated_Subtype, Node_Id),
441 Sm (Atomic_Sync_Required, Flag),
442 Sm (Has_Dereference_Action, Flag)));
443
444 Cc (N_Expression_With_Actions, N_Subexpr,
445 (Sy (Actions, List_Id, Default_No_List),
446 Sy (Expression, Node_Id, Default_Empty)));
447
448 Cc (N_If_Expression, N_Subexpr,
449 (Sy (Expressions, List_Id, Default_No_List),
450 Sy (Is_Elsif, Flag),
451 Sm (Do_Overflow_Check, Flag),
452 Sm (Else_Actions, List_Id),
453 Sm (Then_Actions, List_Id)));
454
455 Cc (N_Indexed_Component, N_Subexpr,
456 (Sy (Prefix, Node_Id),
457 Sy (Expressions, List_Id, Default_No_List),
458 Sm (Atomic_Sync_Required, Flag),
459 Sm (Generalized_Indexing, Node_Id)));
460
461 Cc (N_Null, N_Subexpr);
462
463 Cc (N_Qualified_Expression, N_Subexpr,
464 (Sy (Subtype_Mark, Node_Id, Default_Empty),
465 Sy (Expression, Node_Id, Default_Empty),
466 Sm (Is_Qualified_Universal_Literal, Flag)));
467
468 Cc (N_Quantified_Expression, N_Subexpr,
469 (Sy (Iterator_Specification, Node_Id, Default_Empty),
470 Sy (Loop_Parameter_Specification, Node_Id, Default_Empty),
471 Sy (Condition, Node_Id, Default_Empty),
472 Sy (All_Present, Flag)));
473
474 Cc (N_Aggregate, N_Subexpr,
475 (Sy (Expressions, List_Id, Default_No_List),
476 Sy (Component_Associations, List_Id, Default_No_List),
477 Sy (Null_Record_Present, Flag),
478 Sy (Is_Homogeneous_Aggregate, Flag),
479 Sm (Aggregate_Bounds, Node_Id),
480 Sm (Entity_Or_Associated_Node, Node_Id), -- just Associated_Node
481 Sm (Compile_Time_Known_Aggregate, Flag),
482 Sm (Expansion_Delayed, Flag),
483 Sm (Has_Self_Reference, Flag)));
484
485 Cc (N_Allocator, N_Subexpr,
486 (Sy (Expression, Node_Id, Default_Empty),
487 Sy (Subpool_Handle_Name, Node_Id, Default_Empty),
488 Sy (Null_Exclusion_Present, Flag, Default_False),
489 Sm (Alloc_For_BIP_Return, Flag),
490 Sm (Do_Storage_Check, Flag),
491 Sm (Is_Dynamic_Coextension, Flag),
492 Sm (Is_Static_Coextension, Flag),
493 Sm (No_Initialization, Flag),
494 Sm (Procedure_To_Call, Node_Id),
495 Sm (Storage_Pool, Node_Id)));
496
497 Cc (N_Case_Expression, N_Subexpr,
498 (Sy (Expression, Node_Id, Default_Empty),
499 Sy (Alternatives, List_Id, Default_No_List),
500 Sm (Do_Overflow_Check, Flag)));
501
502 Cc (N_Delta_Aggregate, N_Subexpr,
503 (Sy (Expression, Node_Id, Default_Empty),
504 Sy (Component_Associations, List_Id, Default_No_List)));
505
506 Cc (N_Extension_Aggregate, N_Subexpr,
507 (Sy (Ancestor_Part, Node_Id),
508 Sy (Expressions, List_Id, Default_No_List),
509 Sy (Component_Associations, List_Id, Default_No_List),
510 Sy (Null_Record_Present, Flag),
511 Sm (Entity_Or_Associated_Node, Node_Id), -- just Associated_Node
512 Sm (Expansion_Delayed, Flag),
513 Sm (Has_Self_Reference, Flag)));
514
515 Cc (N_Raise_Expression, N_Subexpr,
516 (Sy (Name, Node_Id, Default_Empty),
517 Sy (Expression, Node_Id, Default_Empty),
518 Sm (Convert_To_Return_False, Flag)));
519
520 Cc (N_Range, N_Subexpr,
521 (Sy (Low_Bound, Node_Id),
522 Sy (High_Bound, Node_Id),
523 Sy (Includes_Infinities, Flag)));
524
525 Cc (N_Reference, N_Subexpr,
526 (Sy (Prefix, Node_Id)));
527
528 Cc (N_Selected_Component, N_Subexpr,
529 (Sy (Prefix, Node_Id),
530 Sy (Selector_Name, Node_Id, Default_Empty),
531 Sm (Atomic_Sync_Required, Flag),
532 Sm (Entity_Or_Associated_Node, Node_Id), -- just Associated_Node
533 Sm (Do_Discriminant_Check, Flag),
534 Sm (Is_In_Discriminant_Check, Flag),
535 Sm (Is_Prefixed_Call, Flag)));
536
537 Cc (N_Slice, N_Subexpr,
538 (Sy (Prefix, Node_Id),
539 Sy (Discrete_Range, Node_Id)));
540
541 Cc (N_Target_Name, N_Subexpr);
542
543 Cc (N_Type_Conversion, N_Subexpr,
544 (Sy (Subtype_Mark, Node_Id, Default_Empty),
545 Sy (Expression, Node_Id, Default_Empty),
546 Sm (Conversion_OK, Flag),
547 Sm (Do_Discriminant_Check, Flag),
548 Sm (Do_Length_Check, Flag),
549 Sm (Do_Overflow_Check, Flag),
550 Sm (Do_Tag_Check, Flag),
551 Sm (Float_Truncate, Flag),
552 Sm (Rounded_Result, Flag)));
553
554 Cc (N_Unchecked_Expression, N_Subexpr,
555 (Sy (Expression, Node_Id, Default_Empty)));
556
557 Cc (N_Unchecked_Type_Conversion, N_Subexpr,
558 (Sy (Subtype_Mark, Node_Id, Default_Empty),
559 Sy (Expression, Node_Id, Default_Empty),
560 Sm (Kill_Range_Check, Flag),
561 Sm (No_Truncation, Flag)));
562
563 Cc (N_Subtype_Indication, N_Has_Etype,
564 (Sy (Subtype_Mark, Node_Id, Default_Empty),
565 Sy (Constraint, Node_Id),
566 Sm (Must_Not_Freeze, Flag)));
567
568 Ab (N_Declaration, Node_Kind);
569
570 Cc (N_Component_Declaration, N_Declaration,
571 (Sy (Defining_Identifier, Node_Id),
572 Sy (Component_Definition, Node_Id),
573 Sy (Expression, Node_Id, Default_Empty),
574 Sm (More_Ids, Flag),
575 Sm (Prev_Ids, Flag)));
576
577 Cc (N_Entry_Declaration, N_Declaration,
578 (Sy (Defining_Identifier, Node_Id),
579 Sy (Discrete_Subtype_Definition, Node_Id, Default_Empty),
580 Sy (Parameter_Specifications, List_Id, Default_No_List),
581 Sy (Must_Override, Flag),
582 Sy (Must_Not_Override, Flag),
583 Sm (Corresponding_Body, Node_Id)));
584
585 Cc (N_Expression_Function, N_Declaration,
586 (Sy (Specification, Node_Id),
587 Sy (Expression, Node_Id, Default_Empty),
588 Sm (Corresponding_Spec, Node_Id)));
589
590 Cc (N_Formal_Object_Declaration, N_Declaration,
591 (Sy (Defining_Identifier, Node_Id),
592 Sy (In_Present, Flag),
593 Sy (Out_Present, Flag),
594 Sy (Null_Exclusion_Present, Flag, Default_False),
595 Sy (Subtype_Mark, Node_Id, Default_Empty),
596 Sy (Access_Definition, Node_Id, Default_Empty),
597 Sy (Default_Expression, Node_Id, Default_Empty),
598 Sm (More_Ids, Flag),
599 Sm (Prev_Ids, Flag)));
600
601 Cc (N_Formal_Type_Declaration, N_Declaration,
602 (Sy (Defining_Identifier, Node_Id),
603 Sy (Formal_Type_Definition, Node_Id),
604 Sy (Discriminant_Specifications, List_Id, Default_No_List),
605 Sy (Unknown_Discriminants_Present, Flag)));
606
607 Cc (N_Full_Type_Declaration, N_Declaration,
608 (Sy (Defining_Identifier, Node_Id),
609 Sy (Discriminant_Specifications, List_Id, Default_No_List),
610 Sy (Type_Definition, Node_Id),
611 Sm (Discr_Check_Funcs_Built, Flag),
612 Sm (Incomplete_View, Node_Id)));
613
614 Cc (N_Incomplete_Type_Declaration, N_Declaration,
615 (Sy (Defining_Identifier, Node_Id),
616 Sy (Discriminant_Specifications, List_Id, Default_No_List),
617 Sy (Unknown_Discriminants_Present, Flag),
618 Sy (Tagged_Present, Flag),
619 Sm (Premature_Use, Node_Id)));
620
621 Cc (N_Iterator_Specification, N_Declaration,
622 (Sy (Defining_Identifier, Node_Id),
623 Sy (Name, Node_Id, Default_Empty),
624 Sy (Reverse_Present, Flag),
625 Sy (Of_Present, Flag),
626 Sy (Iterator_Filter, Node_Id, Default_Empty),
627 Sy (Subtype_Indication, Node_Id, Default_Empty)));
628
629 Cc (N_Loop_Parameter_Specification, N_Declaration,
630 (Sy (Defining_Identifier, Node_Id),
631 Sy (Reverse_Present, Flag),
632 Sy (Iterator_Filter, Node_Id, Default_Empty),
633 Sy (Discrete_Subtype_Definition, Node_Id, Default_Empty)));
634
635 Cc (N_Object_Declaration, N_Declaration,
636 (Sy (Defining_Identifier, Node_Id),
637 Sy (Aliased_Present, Flag),
638 Sy (Constant_Present, Flag),
639 Sy (Null_Exclusion_Present, Flag, Default_False),
640 Sy (Object_Definition, Node_Id),
641 Sy (Expression, Node_Id, Default_Empty),
642 Sy (Has_Init_Expression, Flag),
643 Sm (Assignment_OK, Flag),
644 Sm (Corresponding_Generic_Association, Node_Id),
645 Sm (Exception_Junk, Flag),
646 Sm (Handler_List_Entry, Node_Id),
647 Sm (Is_Subprogram_Descriptor, Flag),
648 Sm (More_Ids, Flag),
649 Sm (No_Initialization, Flag),
650 Sm (Prev_Ids, Flag),
651 Sm (Suppress_Assignment_Checks, Flag)));
652
653 Cc (N_Protected_Type_Declaration, N_Declaration,
654 (Sy (Defining_Identifier, Node_Id),
655 Sy (Discriminant_Specifications, List_Id, Default_No_List),
656 Sy (Interface_List, List_Id, Default_No_List),
657 Sy (Protected_Definition, Node_Id),
658 Sm (Corresponding_Body, Node_Id)));
659
660 Cc (N_Private_Extension_Declaration, N_Declaration,
661 (Sy (Defining_Identifier, Node_Id),
662 Sy (Discriminant_Specifications, List_Id, Default_No_List),
663 Sy (Unknown_Discriminants_Present, Flag),
664 Sy (Abstract_Present, Flag),
665 Sy (Limited_Present, Flag),
666 Sy (Synchronized_Present, Flag),
667 Sy (Subtype_Indication, Node_Id, Default_Empty),
668 Sy (Interface_List, List_Id, Default_No_List),
669 Sm (Uninitialized_Variable, Node_Id)));
670
671 Cc (N_Private_Type_Declaration, N_Declaration,
672 (Sy (Defining_Identifier, Node_Id),
673 Sy (Discriminant_Specifications, List_Id, Default_No_List),
674 Sy (Unknown_Discriminants_Present, Flag),
675 Sy (Abstract_Present, Flag),
676 Sy (Tagged_Present, Flag),
677 Sy (Limited_Present, Flag)));
678
679 Cc (N_Subtype_Declaration, N_Declaration,
680 (Sy (Defining_Identifier, Node_Id),
681 Sy (Null_Exclusion_Present, Flag, Default_False),
682 Sy (Subtype_Indication, Node_Id, Default_Empty),
683 Sm (Exception_Junk, Flag),
684 Sm (Generic_Parent_Type, Node_Id)));
685
686 Ab (N_Subprogram_Specification, N_Declaration,
687 (Sm (Generic_Parent, Node_Id)));
688
689 Cc (N_Function_Specification, N_Subprogram_Specification,
690 (Sy (Defining_Unit_Name, Node_Id),
691 Sy (Parameter_Specifications, List_Id, Default_No_List),
692 Sy (Null_Exclusion_Present, Flag, Default_False),
693 Sy (Result_Definition, Node_Id),
694 Sy (Must_Override, Flag),
695 Sy (Must_Not_Override, Flag)));
696
697 Cc (N_Procedure_Specification, N_Subprogram_Specification,
698 (Sy (Defining_Unit_Name, Node_Id),
699 Sy (Parameter_Specifications, List_Id, Default_No_List),
700 Sy (Null_Present, Flag),
701 Sy (Must_Override, Flag),
702 Sy (Must_Not_Override, Flag),
703 Sm (Null_Statement, Node_Id)));
704
705 Ab (N_Access_To_Subprogram_Definition, Node_Kind);
706
707 Cc (N_Access_Function_Definition, N_Access_To_Subprogram_Definition,
708 (Sy (Null_Exclusion_Present, Flag, Default_False),
709 Sy (Null_Exclusion_In_Return_Present, Flag),
710 Sy (Protected_Present, Flag),
711 Sy (Parameter_Specifications, List_Id, Default_No_List),
712 Sy (Result_Definition, Node_Id)));
713
714 Cc (N_Access_Procedure_Definition, N_Access_To_Subprogram_Definition,
715 (Sy (Null_Exclusion_Present, Flag, Default_False),
716 Sy (Protected_Present, Flag),
717 Sy (Parameter_Specifications, List_Id, Default_No_List)));
718
719 Ab (N_Later_Decl_Item, Node_Kind);
720
721 Cc (N_Task_Type_Declaration, N_Later_Decl_Item,
722 (Sy (Defining_Identifier, Node_Id),
723 Sy (Discriminant_Specifications, List_Id, Default_No_List),
724 Sy (Interface_List, List_Id, Default_No_List),
725 Sy (Task_Definition, Node_Id, Default_Empty),
726 Sm (Corresponding_Body, Node_Id)));
727
728 Ab (N_Body_Stub, N_Later_Decl_Item,
729 (Sm (Corresponding_Body, Node_Id),
730 Sm (Corresponding_Spec_Of_Stub, Node_Id),
731 Sm (Library_Unit, Node_Id)));
732
733 Cc (N_Package_Body_Stub, N_Body_Stub,
734 (Sy (Defining_Identifier, Node_Id)));
735
736 Cc (N_Protected_Body_Stub, N_Body_Stub,
737 (Sy (Defining_Identifier, Node_Id)));
738
739 Cc (N_Subprogram_Body_Stub, N_Body_Stub,
740 (Sy (Specification, Node_Id)));
741
742 Cc (N_Task_Body_Stub, N_Body_Stub,
743 (Sy (Defining_Identifier, Node_Id)));
744
745 Ab (N_Generic_Instantiation, N_Later_Decl_Item,
746 (Sm (Instance_Spec, Node_Id),
747 Sm (Is_Declaration_Level_Node, Flag),
748 Sm (Is_Elaboration_Checks_OK_Node, Flag),
749 Sm (Is_Elaboration_Warnings_OK_Node, Flag),
750 Sm (Is_Known_Guaranteed_ABE, Flag),
751 Sm (Is_SPARK_Mode_On_Node, Flag),
752 Sm (Parent_Spec, Node_Id)));
753
754 Ab (N_Subprogram_Instantiation, N_Generic_Instantiation);
755
756 Cc (N_Function_Instantiation, N_Subprogram_Instantiation,
757 (Sy (Defining_Unit_Name, Node_Id),
758 Sy (Name, Node_Id, Default_Empty),
759 Sy (Generic_Associations, List_Id, Default_No_List),
760 Sy (Must_Override, Flag),
761 Sy (Must_Not_Override, Flag)));
762
763 Cc (N_Procedure_Instantiation, N_Subprogram_Instantiation,
764 (Sy (Defining_Unit_Name, Node_Id),
765 Sy (Name, Node_Id, Default_Empty),
766 Sy (Generic_Associations, List_Id, Default_No_List),
767 Sy (Must_Override, Flag),
768 Sy (Must_Not_Override, Flag)));
769
770 Cc (N_Package_Instantiation, N_Generic_Instantiation,
771 (Sy (Defining_Unit_Name, Node_Id),
772 Sy (Name, Node_Id, Default_Empty),
773 Sy (Generic_Associations, List_Id, Default_No_List)));
774
775 Ab (N_Proper_Body, N_Later_Decl_Item,
776 (Sm (Corresponding_Spec, Node_Id),
777 Sm (Was_Originally_Stub, Flag)));
778
779 Ab (N_Unit_Body, N_Proper_Body);
780
781 Cc (N_Package_Body, N_Unit_Body,
782 (Sy (Defining_Unit_Name, Node_Id),
783 Sy (Declarations, List_Id, Default_No_List),
784 Sy (Handled_Statement_Sequence, Node_Id, Default_Empty)));
785
786 Cc (N_Subprogram_Body, N_Unit_Body,
787 (Sy (Specification, Node_Id),
788 Sy (Declarations, List_Id, Default_No_List),
789 Sy (Handled_Statement_Sequence, Node_Id, Default_Empty),
790 Sy (Bad_Is_Detected, Flag),
791 Sm (Activation_Chain_Entity, Node_Id),
792 Sm (Acts_As_Spec, Flag),
793 Sm (Do_Storage_Check, Flag),
794 Sm (Has_Relative_Deadline_Pragma, Flag),
795 Sm (Is_Entry_Barrier_Function, Flag),
796 Sm (Is_Protected_Subprogram_Body, Flag),
797 Sm (Is_Task_Body_Procedure, Flag),
798 Sm (Is_Task_Master, Flag),
799 Sm (Was_Attribute_Reference, Flag),
800 Sm (Was_Expression_Function, Flag)));
801
802 Cc (N_Protected_Body, N_Proper_Body,
803 (Sy (Defining_Identifier, Node_Id),
804 Sy (Declarations, List_Id, Default_No_List),
805 Sy (End_Label, Node_Id, Default_Empty)));
806
807 Cc (N_Task_Body, N_Proper_Body,
808 (Sy (Defining_Identifier, Node_Id),
809 Sy (Declarations, List_Id, Default_No_List),
810 Sy (Handled_Statement_Sequence, Node_Id, Default_Empty),
811 Sm (Activation_Chain_Entity, Node_Id),
812 Sm (Is_Task_Master, Flag)));
813
814 Cc (N_Implicit_Label_Declaration, N_Later_Decl_Item,
815 (Sy (Defining_Identifier, Node_Id),
816 Sm (Label_Construct, Node_Id)));
817
818 Cc (N_Package_Declaration, N_Later_Decl_Item,
819 (Sy (Specification, Node_Id),
820 Sm (Activation_Chain_Entity, Node_Id),
821 Sm (Corresponding_Body, Node_Id),
822 Sm (Parent_Spec, Node_Id)));
823
824 Cc (N_Single_Task_Declaration, N_Later_Decl_Item,
825 (Sy (Defining_Identifier, Node_Id),
826 Sy (Interface_List, List_Id, Default_No_List),
827 Sy (Task_Definition, Node_Id, Default_Empty)));
828
829 Cc (N_Subprogram_Declaration, N_Later_Decl_Item,
830 (Sy (Specification, Node_Id),
831 Sm (Body_To_Inline, Node_Id),
832 Sm (Corresponding_Body, Node_Id),
833 Sm (Is_Entry_Barrier_Function, Flag),
834 Sm (Is_Task_Body_Procedure, Flag),
835 Sm (Parent_Spec, Node_Id)));
836
837 Cc (N_Use_Package_Clause, N_Later_Decl_Item,
838 (Sy (Name, Node_Id, Default_Empty),
839 Sy (Is_Effective_Use_Clause, Flag),
840 Sm (Entity_Or_Associated_Node, Node_Id), -- just Associated_Node
841 Sm (Hidden_By_Use_Clause, Elist_Id),
842 Sm (More_Ids, Flag),
843 Sm (Next_Use_Clause, Node_Id),
844 Sm (Prev_Ids, Flag),
845 Sm (Prev_Use_Clause, Node_Id)));
846
847 Ab (N_Generic_Declaration, N_Later_Decl_Item,
848 (Sm (Corresponding_Body, Node_Id),
849 Sm (Parent_Spec, Node_Id)));
850
851 Cc (N_Generic_Package_Declaration, N_Generic_Declaration,
852 (Sy (Specification, Node_Id),
853 Sy (Generic_Formal_Declarations, List_Id),
854 Sm (Activation_Chain_Entity, Node_Id)));
855
856 Cc (N_Generic_Subprogram_Declaration, N_Generic_Declaration,
857 (Sy (Specification, Node_Id),
858 Sy (Generic_Formal_Declarations, List_Id)));
859
860 Ab (N_Array_Type_Definition, Node_Kind);
861
862 Cc (N_Constrained_Array_Definition, N_Array_Type_Definition,
863 (Sy (Discrete_Subtype_Definitions, List_Id),
864 Sy (Component_Definition, Node_Id)));
865
866 Cc (N_Unconstrained_Array_Definition, N_Array_Type_Definition,
867 (Sy (Subtype_Marks, List_Id),
868 Sy (Component_Definition, Node_Id)));
869
870 Ab (N_Renaming_Declaration, Node_Kind);
871
872 Cc (N_Exception_Renaming_Declaration, N_Renaming_Declaration,
873 (Sy (Defining_Identifier, Node_Id),
874 Sy (Name, Node_Id, Default_Empty)));
875
876 Cc (N_Object_Renaming_Declaration, N_Renaming_Declaration,
877 (Sy (Defining_Identifier, Node_Id),
878 Sy (Null_Exclusion_Present, Flag, Default_False),
879 Sy (Subtype_Mark, Node_Id, Default_Empty),
880 Sy (Access_Definition, Node_Id, Default_Empty),
881 Sy (Name, Node_Id, Default_Empty),
882 Sm (Corresponding_Generic_Association, Node_Id)));
883
884 Cc (N_Package_Renaming_Declaration, N_Renaming_Declaration,
885 (Sy (Defining_Unit_Name, Node_Id),
886 Sy (Name, Node_Id, Default_Empty),
887 Sm (Parent_Spec, Node_Id)));
888
889 Cc (N_Subprogram_Renaming_Declaration, N_Renaming_Declaration,
890 (Sy (Specification, Node_Id),
891 Sy (Name, Node_Id, Default_Empty),
892 Sm (Corresponding_Formal_Spec, Node_Id),
893 Sm (Corresponding_Spec, Node_Id),
894 Sm (From_Default, Flag),
895 Sm (Parent_Spec, Node_Id)));
896
897 Ab (N_Generic_Renaming_Declaration, N_Renaming_Declaration,
898 (Sm (Parent_Spec, Node_Id)));
899
900 Cc (N_Generic_Function_Renaming_Declaration, N_Generic_Renaming_Declaration,
901 (Sy (Defining_Unit_Name, Node_Id),
902 Sy (Name, Node_Id, Default_Empty)));
903
904 Cc (N_Generic_Package_Renaming_Declaration, N_Generic_Renaming_Declaration,
905 (Sy (Defining_Unit_Name, Node_Id),
906 Sy (Name, Node_Id, Default_Empty)));
907
908 Cc (N_Generic_Procedure_Renaming_Declaration, N_Generic_Renaming_Declaration,
909 (Sy (Defining_Unit_Name, Node_Id),
910 Sy (Name, Node_Id, Default_Empty)));
911
912 Ab (N_Statement_Other_Than_Procedure_Call, Node_Kind);
913
914 Cc (N_Abort_Statement, N_Statement_Other_Than_Procedure_Call,
915 (Sy (Names, List_Id)));
916
917 Cc (N_Accept_Statement, N_Statement_Other_Than_Procedure_Call,
918 (Sy (Entry_Direct_Name, Node_Id),
919 Sy (Entry_Index, Node_Id, Default_Empty),
920 Sy (Parameter_Specifications, List_Id, Default_No_List),
921 Sy (Handled_Statement_Sequence, Node_Id, Default_Empty),
922 Sy (Declarations, List_Id, Default_No_List)));
923
924 Cc (N_Assignment_Statement, N_Statement_Other_Than_Procedure_Call,
925 (Sy (Name, Node_Id, Default_Empty),
926 Sy (Expression, Node_Id, Default_Empty),
927 Sm (Backwards_OK, Flag),
928 Sm (Componentwise_Assignment, Flag),
929 Sm (Do_Discriminant_Check, Flag),
930 Sm (Do_Length_Check, Flag),
931 Sm (Do_Tag_Check, Flag),
932 Sm (Forwards_OK, Flag),
933 Sm (Has_Target_Names, Flag),
934 Sm (Is_Elaboration_Checks_OK_Node, Flag),
935 Sm (Is_Elaboration_Code, Flag),
936 Sm (Is_SPARK_Mode_On_Node, Flag),
937 Sm (No_Ctrl_Actions, Flag),
938 Sm (Suppress_Assignment_Checks, Flag)));
939
940 Cc (N_Asynchronous_Select, N_Statement_Other_Than_Procedure_Call,
941 (Sy (Triggering_Alternative, Node_Id),
942 Sy (Abortable_Part, Node_Id)));
943
944 Cc (N_Block_Statement, N_Statement_Other_Than_Procedure_Call,
945 (Sy (Identifier, Node_Id, Default_Empty),
946 Sy (Declarations, List_Id, Default_No_List),
947 Sy (Handled_Statement_Sequence, Node_Id, Default_Empty),
948 Sy (Has_Created_Identifier, Flag),
949 Sy (Is_Asynchronous_Call_Block, Flag),
950 Sy (Is_Task_Allocation_Block, Flag),
951 Sm (Activation_Chain_Entity, Node_Id),
952 Sm (Cleanup_Actions, List_Id),
953 Sm (Exception_Junk, Flag),
954 Sm (Is_Abort_Block, Flag),
955 Sm (Is_Finalization_Wrapper, Flag),
956 Sm (Is_Initialization_Block, Flag),
957 Sm (Is_Task_Master, Flag)));
958
959 Cc (N_Case_Statement, N_Statement_Other_Than_Procedure_Call,
960 (Sy (Expression, Node_Id, Default_Empty),
961 Sy (Alternatives, List_Id, Default_No_List),
962 Sy (End_Span, Uint, Default_Uint_0),
963 Sm (From_Conditional_Expression, Flag)));
964
965 Cc (N_Code_Statement, N_Statement_Other_Than_Procedure_Call,
966 (Sy (Expression, Node_Id, Default_Empty)));
967
968 Cc (N_Compound_Statement, N_Statement_Other_Than_Procedure_Call,
969 (Sy (Actions, List_Id, Default_No_List)));
970
971 Cc (N_Conditional_Entry_Call, N_Statement_Other_Than_Procedure_Call,
972 (Sy (Entry_Call_Alternative, Node_Id),
973 Sy (Else_Statements, List_Id, Default_No_List)));
974
975 Ab (N_Delay_Statement, N_Statement_Other_Than_Procedure_Call);
976
977 Cc (N_Delay_Relative_Statement, N_Delay_Statement,
978 (Sy (Expression, Node_Id, Default_Empty)));
979
980 Cc (N_Delay_Until_Statement, N_Delay_Statement,
981 (Sy (Expression, Node_Id, Default_Empty)));
982
983 Cc (N_Entry_Call_Statement, N_Statement_Other_Than_Procedure_Call,
984 (Sy (Name, Node_Id, Default_Empty),
985 Sy (Parameter_Associations, List_Id, Default_No_List),
986 Sm (First_Named_Actual, Node_Id),
987 Sm (Is_Elaboration_Checks_OK_Node, Flag),
988 Sm (Is_Elaboration_Warnings_OK_Node, Flag),
989 Sm (Is_SPARK_Mode_On_Node, Flag)));
990
991 Cc (N_Free_Statement, N_Statement_Other_Than_Procedure_Call,
992 (Sy (Expression, Node_Id, Default_Empty),
993 Sm (Actual_Designated_Subtype, Node_Id),
994 Sm (Procedure_To_Call, Node_Id),
995 Sm (Storage_Pool, Node_Id)));
996
997 Cc (N_Goto_Statement, N_Statement_Other_Than_Procedure_Call,
998 (Sy (Name, Node_Id, Default_Empty),
999 Sm (Exception_Junk, Flag)));
1000
1001 Cc (N_Loop_Statement, N_Statement_Other_Than_Procedure_Call,
1002 (Sy (Identifier, Node_Id, Default_Empty),
1003 Sy (Iteration_Scheme, Node_Id, Default_Empty),
1004 Sy (Statements, List_Id, Default_Empty_List),
1005 Sy (End_Label, Node_Id, Default_Empty),
1006 Sy (Has_Created_Identifier, Flag),
1007 Sy (Is_Null_Loop, Flag),
1008 Sy (Suppress_Loop_Warnings, Flag)));
1009
1010 Cc (N_Null_Statement, N_Statement_Other_Than_Procedure_Call,
1011 (Sm (Next_Rep_Item, Node_Id)));
1012
1013 Cc (N_Raise_Statement, N_Statement_Other_Than_Procedure_Call,
1014 (Sy (Name, Node_Id, Default_Empty),
1015 Sy (Expression, Node_Id, Default_Empty),
1016 Sm (From_At_End, Flag)));
1017
1018 Cc (N_Requeue_Statement, N_Statement_Other_Than_Procedure_Call,
1019 (Sy (Name, Node_Id, Default_Empty),
1020 Sy (Abort_Present, Flag),
1021 Sm (Is_Elaboration_Checks_OK_Node, Flag),
1022 Sm (Is_Elaboration_Warnings_OK_Node, Flag),
1023 Sm (Is_SPARK_Mode_On_Node, Flag)));
1024
1025 Cc (N_Simple_Return_Statement, N_Statement_Other_Than_Procedure_Call,
1026 (Sy (Expression, Node_Id, Default_Empty),
1027 Sm (By_Ref, Flag),
1028 Sm (Comes_From_Extended_Return_Statement, Flag),
1029 Sm (Do_Tag_Check, Flag),
1030 Sm (Procedure_To_Call, Node_Id),
1031 Sm (Return_Statement_Entity, Node_Id),
1032 Sm (Storage_Pool, Node_Id)));
1033
1034 Cc (N_Extended_Return_Statement, N_Statement_Other_Than_Procedure_Call,
1035 (Sy (Return_Object_Declarations, List_Id),
1036 Sy (Handled_Statement_Sequence, Node_Id, Default_Empty),
1037 Sm (By_Ref, Flag),
1038 Sm (Do_Tag_Check, Flag),
1039 Sm (Procedure_To_Call, Node_Id),
1040 Sm (Return_Statement_Entity, Node_Id),
1041 Sm (Storage_Pool, Node_Id)));
1042
1043 Cc (N_Selective_Accept, N_Statement_Other_Than_Procedure_Call,
1044 (Sy (Select_Alternatives, List_Id),
1045 Sy (Else_Statements, List_Id, Default_No_List)));
1046
1047 Cc (N_Timed_Entry_Call, N_Statement_Other_Than_Procedure_Call,
1048 (Sy (Entry_Call_Alternative, Node_Id),
1049 Sy (Delay_Alternative, Node_Id)));
1050
1051 Cc (N_Exit_Statement, N_Statement_Other_Than_Procedure_Call,
1052 (Sy (Name, Node_Id, Default_Empty),
1053 Sy (Condition, Node_Id, Default_Empty),
1054 Sm (Next_Exit_Statement, Node_Id)));
1055
1056 Cc (N_If_Statement, N_Statement_Other_Than_Procedure_Call,
1057 (Sy (Condition, Node_Id, Default_Empty),
1058 Sy (Then_Statements, List_Id),
1059 Sy (Elsif_Parts, List_Id, Default_No_List),
1060 Sy (Else_Statements, List_Id, Default_No_List),
1061 Sy (End_Span, Uint, Default_Uint_0),
1062 Sm (From_Conditional_Expression, Flag)));
1063
1064 Cc (N_Accept_Alternative, Node_Kind,
1065 (Sy (Accept_Statement, Node_Id),
1066 Sy (Condition, Node_Id, Default_Empty),
1067 Sy (Statements, List_Id, Default_Empty_List),
1068 Sy (Pragmas_Before, List_Id, Default_No_List),
1069 Sm (Accept_Handler_Records, List_Id)));
1070
1071 Cc (N_Delay_Alternative, Node_Kind,
1072 (Sy (Delay_Statement, Node_Id),
1073 Sy (Condition, Node_Id, Default_Empty),
1074 Sy (Statements, List_Id, Default_Empty_List),
1075 Sy (Pragmas_Before, List_Id, Default_No_List)));
1076
1077 Cc (N_Elsif_Part, Node_Kind,
1078 (Sy (Condition, Node_Id, Default_Empty),
1079 Sy (Then_Statements, List_Id),
1080 Sm (Condition_Actions, List_Id)));
1081
1082 Cc (N_Entry_Body_Formal_Part, Node_Kind,
1083 (Sy (Entry_Index_Specification, Node_Id, Default_Empty),
1084 Sy (Parameter_Specifications, List_Id, Default_No_List),
1085 Sy (Condition, Node_Id, Default_Empty)));
1086
1087 Cc (N_Iteration_Scheme, Node_Kind,
1088 (Sy (Condition, Node_Id, Default_Empty),
1089 Sy (Iterator_Specification, Node_Id, Default_Empty),
1090 Sy (Loop_Parameter_Specification, Node_Id, Default_Empty),
1091 Sm (Condition_Actions, List_Id)));
1092
1093 Cc (N_Terminate_Alternative, Node_Kind,
1094 (Sy (Condition, Node_Id, Default_Empty),
1095 Sy (Pragmas_Before, List_Id, Default_No_List),
1096 Sy (Pragmas_After, List_Id, Default_No_List)));
1097
1098 Ab (N_Formal_Subprogram_Declaration, Node_Kind);
1099
1100 Cc (N_Formal_Abstract_Subprogram_Declaration, N_Formal_Subprogram_Declaration,
1101 (Sy (Specification, Node_Id),
1102 Sy (Default_Name, Node_Id, Default_Empty),
1103 Sy (Box_Present, Flag)));
1104
1105 Cc (N_Formal_Concrete_Subprogram_Declaration, N_Formal_Subprogram_Declaration,
1106 (Sy (Specification, Node_Id),
1107 Sy (Default_Name, Node_Id, Default_Empty),
1108 Sy (Box_Present, Flag)));
1109
1110 Ab (N_Push_Pop_xxx_Label, Node_Kind);
1111
1112 Ab (N_Push_xxx_Label, N_Push_Pop_xxx_Label,
1113 (Sm (Exception_Label, Node_Id)));
1114
1115 Cc (N_Push_Constraint_Error_Label, N_Push_xxx_Label);
1116
1117 Cc (N_Push_Program_Error_Label, N_Push_xxx_Label);
1118
1119 Cc (N_Push_Storage_Error_Label, N_Push_xxx_Label);
1120
1121 Ab (N_Pop_xxx_Label, N_Push_Pop_xxx_Label);
1122
1123 Cc (N_Pop_Constraint_Error_Label, N_Pop_xxx_Label);
1124
1125 Cc (N_Pop_Program_Error_Label, N_Pop_xxx_Label);
1126
1127 Cc (N_Pop_Storage_Error_Label, N_Pop_xxx_Label);
1128
1129 Ab (N_SCIL_Node, Node_Kind,
1130 (Sm (SCIL_Entity, Node_Id)));
1131
1132 Cc (N_SCIL_Dispatch_Table_Tag_Init, N_SCIL_Node);
1133
1134 Cc (N_SCIL_Dispatching_Call, N_SCIL_Node,
1135 (Sm (SCIL_Controlling_Tag, Node_Id),
1136 Sm (SCIL_Target_Prim, Node_Id)));
1137
1138 Cc (N_SCIL_Membership_Test, N_SCIL_Node,
1139 (Sm (SCIL_Tag_Value, Node_Id)));
1140
1141 Cc (N_Abortable_Part, Node_Kind,
1142 (Sy (Statements, List_Id, Default_Empty_List)));
1143
1144 Cc (N_Abstract_Subprogram_Declaration, Node_Kind,
1145 (Sy (Specification, Node_Id)));
1146
1147 Cc (N_Access_Definition, Node_Kind,
1148 (Sy (Null_Exclusion_Present, Flag, Default_False),
1149 Sy (All_Present, Flag),
1150 Sy (Constant_Present, Flag),
1151 Sy (Subtype_Mark, Node_Id, Default_Empty),
1152 Sy (Access_To_Subprogram_Definition, Node_Id, Default_Empty)));
1153
1154 Cc (N_Access_To_Object_Definition, Node_Kind,
1155 (Sy (All_Present, Flag),
1156 Sy (Null_Exclusion_Present, Flag, Default_False),
1157 Sy (Null_Excluding_Subtype, Flag),
1158 Sy (Subtype_Indication, Node_Id, Default_Empty),
1159 Sy (Constant_Present, Flag)));
1160
1161 Cc (N_Aspect_Specification, Node_Kind,
1162 (Sy (Identifier, Node_Id, Default_Empty),
1163 Sy (Expression, Node_Id, Default_Empty),
1164 Sy (Class_Present, Flag),
1165 Sy (Split_PPC, Flag),
1166 Sm (Aspect_On_Partial_View, Flag),
1167 Sm (Aspect_Rep_Item, Node_Id),
1168 Sm (Entity_Or_Associated_Node, Node_Id), -- just Entity
1169 Sm (Is_Boolean_Aspect, Flag),
1170 Sm (Is_Checked, Flag),
1171 Sm (Is_Delayed_Aspect, Flag),
1172 Sm (Is_Disabled, Flag),
1173 Sm (Is_Ignored, Flag),
1174 Sm (Next_Rep_Item, Node_Id)));
1175
1176 Cc (N_Call_Marker, Node_Kind,
1177 (Sm (Is_Declaration_Level_Node, Flag),
1178 Sm (Is_Dispatching_Call, Flag),
1179 Sm (Is_Elaboration_Checks_OK_Node, Flag),
1180 Sm (Is_Elaboration_Warnings_OK_Node, Flag),
1181 Sm (Is_Known_Guaranteed_ABE, Flag),
1182 Sm (Is_Preelaborable_Call, Flag),
1183 Sm (Is_Source_Call, Flag),
1184 Sm (Is_SPARK_Mode_On_Node, Flag),
1185 Sm (Target, Node_Id)));
1186
1187 Cc (N_Case_Expression_Alternative, Node_Kind,
1188 (Sm (Actions, List_Id),
1189 Sy (Discrete_Choices, List_Id),
1190 Sy (Expression, Node_Id, Default_Empty),
1191 Sm (Has_SP_Choice, Flag)));
1192
1193 Cc (N_Case_Statement_Alternative, Node_Kind,
1194 (Sy (Discrete_Choices, List_Id),
1195 Sy (Statements, List_Id, Default_Empty_List),
1196 Sm (Has_SP_Choice, Flag)));
1197
1198 Cc (N_Compilation_Unit, Node_Kind,
1199 (Sy (Context_Items, List_Id),
1200 Sy (Private_Present, Flag),
1201 Sy (Unit, Node_Id),
1202 Sy (Aux_Decls_Node, Node_Id),
1203 Sm (Acts_As_Spec, Flag),
1204 Sm (Body_Required, Flag),
1205 Sm (Context_Pending, Flag),
1206 Sm (First_Inlined_Subprogram, Node_Id),
1207 Sm (Has_No_Elaboration_Code, Flag),
1208 Sm (Has_Pragma_Suppress_All, Flag),
1209 Sm (Library_Unit, Node_Id),
1210 Sm (Save_Invocation_Graph_Of_Body, Flag)));
1211
1212 Cc (N_Compilation_Unit_Aux, Node_Kind,
1213 (Sy (Declarations, List_Id, Default_No_List),
1214 Sy (Actions, List_Id, Default_No_List),
1215 Sy (Pragmas_After, List_Id, Default_No_List),
1216 Sy (Config_Pragmas, List_Id, Default_Empty_List),
1217 Sm (Default_Storage_Pool, Node_Id)));
1218
1219 Cc (N_Component_Association, Node_Kind,
1220 (Sy (Choices, List_Id),
1221 Sy (Expression, Node_Id, Default_Empty),
1222 Sy (Box_Present, Flag),
1223 Sy (Inherited_Discriminant, Flag),
1224 Sm (Loop_Actions, List_Id),
1225 Sm (Was_Default_Init_Box_Association, Flag)));
1226
1227 Cc (N_Component_Definition, Node_Kind,
1228 (Sy (Aliased_Present, Flag),
1229 Sy (Null_Exclusion_Present, Flag, Default_False),
1230 Sy (Subtype_Indication, Node_Id, Default_Empty),
1231 Sy (Access_Definition, Node_Id, Default_Empty)));
1232
1233 Cc (N_Component_List, Node_Kind,
1234 (Sy (Component_Items, List_Id),
1235 Sy (Variant_Part, Node_Id, Default_Empty),
1236 Sy (Null_Present, Flag)));
1237
1238 Cc (N_Contract, Node_Kind,
1239 (Sm (Classifications, Node_Id),
1240 Sm (Contract_Test_Cases, Node_Id),
1241 Sm (Is_Expanded_Contract, Flag),
1242 Sm (Pre_Post_Conditions, Node_Id)));
1243
1244 Cc (N_Derived_Type_Definition, Node_Kind,
1245 (Sy (Abstract_Present, Flag),
1246 Sy (Null_Exclusion_Present, Flag, Default_False),
1247 Sy (Subtype_Indication, Node_Id, Default_Empty),
1248 Sy (Record_Extension_Part, Node_Id, Default_Empty),
1249 Sy (Limited_Present, Flag),
1250 Sy (Task_Present, Flag),
1251 Sy (Protected_Present, Flag),
1252 Sy (Synchronized_Present, Flag),
1253 Sy (Interface_List, List_Id, Default_No_List),
1254 Sy (Interface_Present, Flag)));
1255
1256 Cc (N_Decimal_Fixed_Point_Definition, Node_Kind,
1257 (Sy (Delta_Expression, Node_Id),
1258 Sy (Digits_Expression, Node_Id),
1259 Sy (Real_Range_Specification, Node_Id, Default_Empty)));
1260
1261 Cc (N_Defining_Program_Unit_Name, Node_Kind,
1262 (Sy (Name, Node_Id, Default_Empty),
1263 Sy (Defining_Identifier, Node_Id)));
1264
1265 Cc (N_Delta_Constraint, Node_Kind,
1266 (Sy (Delta_Expression, Node_Id),
1267 Sy (Range_Constraint, Node_Id, Default_Empty)));
1268
1269 Cc (N_Designator, Node_Kind,
1270 (Sy (Name, Node_Id, Default_Empty),
1271 Sy (Identifier, Node_Id, Default_Empty)));
1272
1273 Cc (N_Digits_Constraint, Node_Kind,
1274 (Sy (Digits_Expression, Node_Id),
1275 Sy (Range_Constraint, Node_Id, Default_Empty)));
1276
1277 Cc (N_Discriminant_Association, Node_Kind,
1278 (Sy (Selector_Names, List_Id),
1279 Sy (Expression, Node_Id, Default_Empty)));
1280
1281 Cc (N_Discriminant_Specification, Node_Kind,
1282 (Sy (Defining_Identifier, Node_Id),
1283 Sy (Null_Exclusion_Present, Flag, Default_False),
1284 Sy (Discriminant_Type, Node_Id),
1285 Sy (Expression, Node_Id, Default_Empty),
1286 Sm (More_Ids, Flag),
1287 Sm (Prev_Ids, Flag)));
1288
1289 Cc (N_Enumeration_Type_Definition, Node_Kind,
1290 (Sy (Literals, List_Id),
1291 Sy (End_Label, Node_Id, Default_Empty)));
1292
1293 Cc (N_Entry_Body, Node_Kind,
1294 (Sy (Defining_Identifier, Node_Id),
1295 Sy (Entry_Body_Formal_Part, Node_Id),
1296 Sy (Declarations, List_Id, Default_No_List),
1297 Sy (Handled_Statement_Sequence, Node_Id, Default_Empty),
1298 Sm (Activation_Chain_Entity, Node_Id)));
1299
1300 Cc (N_Entry_Call_Alternative, Node_Kind,
1301 (Sy (Entry_Call_Statement, Node_Id),
1302 Sy (Statements, List_Id, Default_Empty_List),
1303 Sy (Pragmas_Before, List_Id, Default_No_List)));
1304
1305 Cc (N_Entry_Index_Specification, Node_Kind,
1306 (Sy (Defining_Identifier, Node_Id),
1307 Sy (Discrete_Subtype_Definition, Node_Id, Default_Empty)));
1308
1309 Cc (N_Exception_Declaration, Node_Kind,
1310 (Sy (Defining_Identifier, Node_Id),
1311 Sm (Expression, Node_Id),
1312 Sm (More_Ids, Flag),
1313 Sm (Prev_Ids, Flag),
1314 Sm (Renaming_Exception, Node_Id)));
1315
1316 Cc (N_Exception_Handler, Node_Kind,
1317 (Sy (Choice_Parameter, Node_Id, Default_Empty),
1318 Sy (Exception_Choices, List_Id),
1319 Sy (Statements, List_Id, Default_Empty_List),
1320 Sm (Exception_Label, Node_Id),
1321 Sm (Has_Local_Raise, Flag),
1322 Sm (Local_Raise_Not_OK, Flag),
1323 Sm (Local_Raise_Statements, Elist_Id)));
1324
1325 Cc (N_Floating_Point_Definition, Node_Kind,
1326 (Sy (Digits_Expression, Node_Id),
1327 Sy (Real_Range_Specification, Node_Id, Default_Empty)));
1328
1329 Cc (N_Formal_Decimal_Fixed_Point_Definition, Node_Kind);
1330
1331 Cc (N_Formal_Derived_Type_Definition, Node_Kind,
1332 (Sy (Subtype_Mark, Node_Id, Default_Empty),
1333 Sy (Private_Present, Flag),
1334 Sy (Abstract_Present, Flag),
1335 Sy (Limited_Present, Flag),
1336 Sy (Synchronized_Present, Flag),
1337 Sy (Interface_List, List_Id, Default_No_List)));
1338
1339 Cc (N_Formal_Discrete_Type_Definition, Node_Kind);
1340
1341 Cc (N_Formal_Floating_Point_Definition, Node_Kind);
1342
1343 Cc (N_Formal_Modular_Type_Definition, Node_Kind);
1344
1345 Cc (N_Formal_Ordinary_Fixed_Point_Definition, Node_Kind);
1346
1347 Cc (N_Formal_Package_Declaration, Node_Kind,
1348 (Sy (Defining_Identifier, Node_Id),
1349 Sy (Name, Node_Id, Default_Empty),
1350 Sy (Generic_Associations, List_Id, Default_No_List),
1351 Sy (Box_Present, Flag),
1352 Sm (Instance_Spec, Node_Id),
1353 Sm (Is_Known_Guaranteed_ABE, Flag)));
1354
1355 Cc (N_Formal_Private_Type_Definition, Node_Kind,
1356 (Sy (Abstract_Present, Flag),
1357 Sy (Tagged_Present, Flag),
1358 Sy (Limited_Present, Flag),
1359 Sm (Uninitialized_Variable, Node_Id)));
1360
1361 Cc (N_Formal_Incomplete_Type_Definition, Node_Kind,
1362 (Sy (Tagged_Present, Flag)));
1363
1364 Cc (N_Formal_Signed_Integer_Type_Definition, Node_Kind);
1365
1366 Cc (N_Freeze_Entity, Node_Kind,
1367 (Sy (Actions, List_Id, Default_No_List),
1368 Sm (Access_Types_To_Process, Elist_Id),
1369 Sm (Entity_Or_Associated_Node, Node_Id), -- just Entity
1370 Sm (First_Subtype_Link, Node_Id),
1371 Sm (TSS_Elist, Elist_Id)));
1372
1373 Cc (N_Freeze_Generic_Entity, Node_Kind,
1374 Sm (Entity_Or_Associated_Node, Node_Id)); -- just Entity
1375
1376 Cc (N_Generic_Association, Node_Kind,
1377 (Sy (Selector_Name, Node_Id, Default_Empty),
1378 Sy (Explicit_Generic_Actual_Parameter, Node_Id),
1379 Sy (Box_Present, Flag)));
1380
1381 Cc (N_Handled_Sequence_Of_Statements, Node_Kind,
1382 (Sy (Statements, List_Id, Default_Empty_List),
1383 Sy (End_Label, Node_Id, Default_Empty),
1384 Sy (Exception_Handlers, List_Id, Default_No_List),
1385 Sy (At_End_Proc, Node_Id, Default_Empty),
1386 Sm (First_Real_Statement, Node_Id)));
1387
1388 Cc (N_Index_Or_Discriminant_Constraint, Node_Kind,
1389 (Sy (Constraints, List_Id)));
1390
1391 Cc (N_Iterated_Component_Association, Node_Kind,
1392 (Sy (Defining_Identifier, Node_Id),
1393 Sy (Iterator_Specification, Node_Id, Default_Empty),
1394 Sy (Expression, Node_Id, Default_Empty),
1395 Sy (Discrete_Choices, List_Id),
1396 Sy (Box_Present, Flag),
1397 Sm (Loop_Actions, List_Id)));
1398
1399 Cc (N_Iterated_Element_Association, Node_Kind,
1400 (Sy (Key_Expression, Node_Id),
1401 Sy (Iterator_Specification, Node_Id, Default_Empty),
1402 Sy (Expression, Node_Id, Default_Empty),
1403 Sy (Loop_Parameter_Specification, Node_Id, Default_Empty),
1404 Sy (Box_Present, Flag),
1405 Sm (Loop_Actions, List_Id)));
1406
1407 Cc (N_Itype_Reference, Node_Kind,
1408 (Sm (Itype, Node_Id)));
1409
1410 Cc (N_Label, Node_Kind,
1411 (Sy (Identifier, Node_Id, Default_Empty),
1412 Sm (Exception_Junk, Flag)));
1413
1414 Cc (N_Modular_Type_Definition, Node_Kind,
1415 (Sy (Expression, Node_Id, Default_Empty)));
1416
1417 Cc (N_Number_Declaration, Node_Kind,
1418 (Sy (Defining_Identifier, Node_Id),
1419 Sy (Expression, Node_Id, Default_Empty),
1420 Sm (More_Ids, Flag),
1421 Sm (Prev_Ids, Flag)));
1422
1423 Cc (N_Ordinary_Fixed_Point_Definition, Node_Kind,
1424 (Sy (Delta_Expression, Node_Id),
1425 Sy (Real_Range_Specification, Node_Id, Default_Empty)));
1426
1427 Cc (N_Others_Choice, Node_Kind,
1428 (Sm (All_Others, Flag),
1429 Sm (Others_Discrete_Choices, List_Id)));
1430
1431 Cc (N_Package_Specification, Node_Kind,
1432 (Sy (Defining_Unit_Name, Node_Id),
1433 Sy (Visible_Declarations, List_Id),
1434 Sy (Private_Declarations, List_Id, Default_No_List),
1435 Sy (End_Label, Node_Id, Default_Empty),
1436 Sm (Generic_Parent, Node_Id),
1437 Sm (Limited_View_Installed, Flag)));
1438
1439 Cc (N_Parameter_Association, Node_Kind,
1440 (Sy (Selector_Name, Node_Id, Default_Empty),
1441 Sy (Explicit_Actual_Parameter, Node_Id),
1442 Sm (Is_Accessibility_Actual, Flag),
1443 Sm (Next_Named_Actual, Node_Id)));
1444
1445 Cc (N_Parameter_Specification, Node_Kind,
1446 (Sy (Defining_Identifier, Node_Id),
1447 Sy (Aliased_Present, Flag),
1448 Sy (In_Present, Flag),
1449 Sy (Out_Present, Flag),
1450 Sy (Null_Exclusion_Present, Flag, Default_False),
1451 Sy (Parameter_Type, Node_Id),
1452 Sy (Expression, Node_Id, Default_Empty),
1453 Sm (Default_Expression, Node_Id),
1454 Sm (Do_Accessibility_Check, Flag),
1455 Sm (More_Ids, Flag),
1456 Sm (Prev_Ids, Flag)));
1457
1458 Cc (N_Pragma, Node_Kind,
1459 (Sy (Pragma_Argument_Associations, List_Id, Default_No_List),
1460 Sy (Pragma_Identifier, Node_Id),
1461 Sy (Class_Present, Flag),
1462 Sy (Split_PPC, Flag),
1463 Sm (Corresponding_Aspect, Node_Id),
1464 Sm (From_Aspect_Specification, Flag),
1465 Sm (Import_Interface_Present, Flag),
1466 Sm (Is_Analyzed_Pragma, Flag),
1467 Sm (Is_Checked, Flag),
1468 Sm (Is_Checked_Ghost_Pragma, Flag),
1469 Sm (Is_Delayed_Aspect, Flag),
1470 Sm (Is_Disabled, Flag),
1471 Sm (Is_Generic_Contract_Pragma, Flag),
1472 Sm (Is_Ignored, Flag),
1473 Sm (Is_Ignored_Ghost_Pragma, Flag),
1474 Sm (Is_Inherited_Pragma, Flag),
1475 Sm (Next_Pragma, Node_Id),
1476 Sm (Next_Rep_Item, Node_Id),
1477 Sm (Uneval_Old_Accept, Flag),
1478 Sm (Uneval_Old_Warn, Flag)));
1479
1480 Cc (N_Protected_Definition, Node_Kind,
1481 (Sy (Visible_Declarations, List_Id),
1482 Sy (Private_Declarations, List_Id, Default_No_List),
1483 Sy (End_Label, Node_Id, Default_Empty)));
1484
1485 Cc (N_Range_Constraint, Node_Kind,
1486 (Sy (Range_Expression, Node_Id)));
1487
1488 Cc (N_Real_Range_Specification, Node_Kind,
1489 (Sy (Low_Bound, Node_Id),
1490 Sy (High_Bound, Node_Id)));
1491
1492 Cc (N_Record_Definition, Node_Kind,
1493 (Sy (End_Label, Node_Id, Default_Empty),
1494 Sy (Abstract_Present, Flag),
1495 Sy (Tagged_Present, Flag),
1496 Sy (Limited_Present, Flag),
1497 Sy (Component_List, Node_Id),
1498 Sy (Null_Present, Flag),
1499 Sy (Task_Present, Flag),
1500 Sy (Protected_Present, Flag),
1501 Sy (Synchronized_Present, Flag),
1502 Sy (Interface_Present, Flag),
1503 Sy (Interface_List, List_Id, Default_No_List)));
1504
1505 Cc (N_Signed_Integer_Type_Definition, Node_Kind,
1506 (Sy (Low_Bound, Node_Id),
1507 Sy (High_Bound, Node_Id)));
1508
1509 Cc (N_Single_Protected_Declaration, Node_Kind,
1510 (Sy (Defining_Identifier, Node_Id),
1511 Sy (Interface_List, List_Id, Default_No_List),
1512 Sy (Protected_Definition, Node_Id)));
1513
1514 Cc (N_Subunit, Node_Kind,
1515 (Sy (Name, Node_Id, Default_Empty),
1516 Sy (Proper_Body, Node_Id),
1517 Sm (Corresponding_Stub, Node_Id)));
1518
1519 Cc (N_Task_Definition, Node_Kind,
1520 (Sy (Visible_Declarations, List_Id),
1521 Sy (Private_Declarations, List_Id, Default_No_List),
1522 Sy (End_Label, Node_Id, Default_Empty),
1523 Sm (Has_Relative_Deadline_Pragma, Flag),
1524 Sm (Has_Storage_Size_Pragma, Flag)));
1525
1526 Cc (N_Triggering_Alternative, Node_Kind,
1527 (Sy (Triggering_Statement, Node_Id),
1528 Sy (Statements, List_Id, Default_Empty_List),
1529 Sy (Pragmas_Before, List_Id, Default_No_List)));
1530
1531 Cc (N_Use_Type_Clause, Node_Kind,
1532 (Sy (Subtype_Mark, Node_Id, Default_Empty),
1533 Sy (Is_Effective_Use_Clause, Flag),
1534 Sy (All_Present, Flag),
1535 Sm (Hidden_By_Use_Clause, Elist_Id),
1536 Sm (More_Ids, Flag),
1537 Sm (Next_Use_Clause, Node_Id),
1538 Sm (Prev_Ids, Flag),
1539 Sm (Prev_Use_Clause, Node_Id),
1540 Sm (Used_Operations, Elist_Id)));
1541
1542 Cc (N_Validate_Unchecked_Conversion, Node_Kind,
1543 (Sm (Source_Type, Node_Id),
1544 Sm (Target_Type, Node_Id)));
1545
1546 Cc (N_Variable_Reference_Marker, Node_Kind,
1547 (Sm (Is_Elaboration_Checks_OK_Node, Flag),
1548 Sm (Is_Elaboration_Warnings_OK_Node, Flag),
1549 Sm (Is_Read, Flag),
1550 Sm (Is_SPARK_Mode_On_Node, Flag),
1551 Sm (Is_Write, Flag),
1552 Sm (Target, Node_Id)));
1553
1554 Cc (N_Variant, Node_Kind,
1555 (Sy (Discrete_Choices, List_Id),
1556 Sy (Component_List, Node_Id),
1557 Sm (Dcheck_Function, Node_Id),
1558 Sm (Enclosing_Variant, Node_Id),
1559 Sm (Has_SP_Choice, Flag),
1560 Sm (Present_Expr, Uint)));
1561
1562 Cc (N_Variant_Part, Node_Kind,
1563 (Sy (Name, Node_Id, Default_Empty),
1564 Sy (Variants, List_Id)));
1565
1566 Cc (N_With_Clause, Node_Kind,
1567 (Sy (Name, Node_Id, Default_Empty),
1568 Sy (Private_Present, Flag),
1569 Sy (Limited_Present, Flag),
1570 Sy (First_Name, Flag, Default_True),
1571 Sy (Last_Name, Flag, Default_True),
1572 Sm (Context_Installed, Flag),
1573 Sm (Corresponding_Spec, Node_Id),
1574 Sm (Elaborate_All_Desirable, Flag),
1575 Sm (Elaborate_All_Present, Flag),
1576 Sm (Elaborate_Desirable, Flag),
1577 Sm (Elaborate_Present, Flag),
1578 Sm (Implicit_With, Flag),
1579 Sm (Library_Unit, Node_Id),
1580 Sm (Limited_View_Installed, Flag),
1581 Sm (Next_Implicit_With, Node_Id),
1582 Sm (No_Entities_Ref_In_Spec, Flag),
1583 Sm (Parent_With, Flag),
1584 Sm (Unreferenced_In_Spec, Flag)));
1585
1586 Cc (N_Unused_At_End, Node_Kind);
1587
1588 -- Union types. These don't fit into the normal parent/child hierarchy
1589 -- above.
1590
1591 Union (N_Has_Chars,
1592 Children =>
1593 (N_Attribute_Definition_Clause,
1594 N_Empty,
1595 N_Pragma_Argument_Association,
1596 N_Error,
1597 N_Entity,
1598 N_Expanded_Name,
1599 N_Identifier,
1600 N_Operator_Symbol,
1601 N_Character_Literal,
1602 N_Op));
1603
1604 Union (N_Has_Condition,
1605 Children =>
1606 (N_Exit_Statement,
1607 N_If_Statement,
1608 N_Accept_Alternative,
1609 N_Delay_Alternative,
1610 N_Elsif_Part,
1611 N_Entry_Body_Formal_Part,
1612 N_Iteration_Scheme,
1613 N_Terminate_Alternative));
1614 -- Nodes with condition fields (does not include N_Raise_xxx_Error)
1615
1616 end Gen_IL.Gen.Gen_Nodes;