source: trunk/ada-2012/src/asis/asis-extensions-flat_kinds.adb@ 400

Last change on this file since 400 was 400, checked in by Maxim Reznik, 5 years ago

fix Access_Type_Kind and add next test

File size: 83.7 KB
Line 
1with Gela.Compilations;
2with Gela.Lexical_Types;
3
4with Gela.Element_Visiters;
5with Gela.Elements.Abort_Statements;
6with Gela.Elements.Accept_Statements;
7with Gela.Elements.Access_To_Function_Definitions;
8with Gela.Elements.Access_To_Object_Definitions;
9with Gela.Elements.Access_To_Procedure_Definitions;
10with Gela.Elements.Allocators;
11with Gela.Elements.Anonymous_Access_To_Function_Definitions;
12with Gela.Elements.Anonymous_Access_To_Object_Definitions;
13with Gela.Elements.Anonymous_Access_To_Procedure_Definitions;
14with Gela.Elements.Aspect_Specifications;
15with Gela.Elements.Assignment_Statements;
16with Gela.Elements.Associations;
17with Gela.Elements.Asynchronous_Selects;
18with Gela.Elements.At_Clauses;
19with Gela.Elements.Attribute_Definition_Clauses;
20with Gela.Elements.Attribute_References;
21with Gela.Elements.Auxiliary_Applies;
22with Gela.Elements.Block_Statements;
23with Gela.Elements.Boxes;
24with Gela.Elements.Case_Expression_Paths;
25with Gela.Elements.Case_Expressions;
26with Gela.Elements.Case_Paths;
27with Gela.Elements.Case_Statements;
28with Gela.Elements.Character_Literals;
29with Gela.Elements.Choice_Parameter_Specifications;
30with Gela.Elements.Compilation_Unit_Bodies;
31with Gela.Elements.Compilation_Unit_Declarations;
32with Gela.Elements.Compilations;
33with Gela.Elements.Component_Clauses;
34with Gela.Elements.Component_Declarations;
35with Gela.Elements.Component_Definitions;
36with Gela.Elements.Composite_Constraints;
37with Gela.Elements.Constrained_Array_Definitions;
38with Gela.Elements.Decimal_Fixed_Point_Definitions;
39with Gela.Elements.Defining_Character_Literals;
40with Gela.Elements.Defining_Enumeration_Literals;
41with Gela.Elements.Defining_Expanded_Unit_Names;
42with Gela.Elements.Defining_Identifiers;
43with Gela.Elements.Defining_Operator_Symbols;
44with Gela.Elements.Delay_Statements;
45with Gela.Elements.Delta_Constraints;
46with Gela.Elements.Derived_Record_Definitions;
47with Gela.Elements.Derived_Type_Definitions;
48with Gela.Elements.Digits_Constraints;
49with Gela.Elements.Discrete_Range_Attribute_References;
50with Gela.Elements.Discrete_Simple_Expression_Ranges;
51with Gela.Elements.Discrete_Subtype_Indication_Drs;
52with Gela.Elements.Discrete_Subtype_Indications;
53with Gela.Elements.Discriminant_Specifications;
54with Gela.Elements.Element_Iterator_Specifications;
55with Gela.Elements.Else_Expression_Paths;
56with Gela.Elements.Else_Paths;
57with Gela.Elements.Elsif_Expression_Paths;
58with Gela.Elements.Elsif_Paths;
59with Gela.Elements.Entry_Bodies;
60with Gela.Elements.Entry_Declarations;
61with Gela.Elements.Entry_Index_Specifications;
62with Gela.Elements.Enumeration_Literal_Specifications;
63with Gela.Elements.Enumeration_Literals;
64with Gela.Elements.Enumeration_Type_Definitions;
65with Gela.Elements.Exception_Declarations;
66with Gela.Elements.Exception_Handlers;
67with Gela.Elements.Exception_Renaming_Declarations;
68with Gela.Elements.Exit_Statements;
69with Gela.Elements.Explicit_Dereferences;
70with Gela.Elements.Extended_Return_Statements;
71with Gela.Elements.Extension_Aggregates;
72with Gela.Elements.Floating_Point_Definitions;
73with Gela.Elements.For_Loop_Statements;
74with Gela.Elements.Formal_Access_To_Function_Definitions;
75with Gela.Elements.Formal_Access_To_Object_Definitions;
76with Gela.Elements.Formal_Access_To_Procedure_Definitions;
77with Gela.Elements.Formal_Constrained_Array_Definitions;
78with Gela.Elements.Formal_Decimal_Fixed_Point_Definitions;
79with Gela.Elements.Formal_Derived_Type_Definitions;
80with Gela.Elements.Formal_Discrete_Type_Definitions;
81with Gela.Elements.Formal_Floating_Point_Definitions;
82with Gela.Elements.Formal_Function_Declarations;
83with Gela.Elements.Formal_Incomplete_Type_Declarations;
84with Gela.Elements.Formal_Interface_Type_Definitions;
85with Gela.Elements.Formal_Modular_Type_Definitions;
86with Gela.Elements.Formal_Object_Declarations;
87with Gela.Elements.Formal_Ordinary_Fixed_Point_Definitions;
88with Gela.Elements.Formal_Package_Declarations;
89with Gela.Elements.Formal_Private_Type_Definitions;
90with Gela.Elements.Formal_Procedure_Declarations;
91with Gela.Elements.Formal_Signed_Integer_Type_Definitions;
92with Gela.Elements.Formal_Type_Declarations;
93with Gela.Elements.Formal_Unconstrained_Array_Definitions;
94with Gela.Elements.Full_Type_Declarations;
95with Gela.Elements.Function_Bodies;
96with Gela.Elements.Function_Declarations;
97with Gela.Elements.Function_Instantiations;
98with Gela.Elements.Generalized_Iterator_Specifications;
99with Gela.Elements.Generic_Associations;
100with Gela.Elements.Generic_Function_Declarations;
101with Gela.Elements.Generic_Function_Renamings;
102with Gela.Elements.Generic_Package_Declarations;
103with Gela.Elements.Generic_Package_Renamings;
104with Gela.Elements.Generic_Procedure_Declarations;
105with Gela.Elements.Generic_Procedure_Renamings;
106with Gela.Elements.Goto_Statements;
107with Gela.Elements.Identifiers;
108with Gela.Elements.If_Expression_Paths;
109with Gela.Elements.If_Expressions;
110with Gela.Elements.If_Paths;
111with Gela.Elements.If_Statements;
112with Gela.Elements.Incomplete_Type_Declarations;
113with Gela.Elements.Incomplete_Type_Definitions;
114with Gela.Elements.Interface_Type_Definitions;
115with Gela.Elements.Known_Discriminant_Parts;
116with Gela.Elements.Label_Decorators;
117with Gela.Elements.Loop_Parameter_Specifications;
118with Gela.Elements.Loop_Statements;
119with Gela.Elements.Membership_Tests;
120with Gela.Elements.Modular_Type_Definitions;
121with Gela.Elements.Names;
122with Gela.Elements.Null_Components;
123with Gela.Elements.Null_Literals;
124with Gela.Elements.Null_Record_Definitions;
125with Gela.Elements.Null_Statements;
126with Gela.Elements.Number_Declarations;
127with Gela.Elements.Numeric_Literals;
128with Gela.Elements.Object_Declarations;
129with Gela.Elements.Object_Renaming_Declarations;
130with Gela.Elements.Operator_Symbols;
131with Gela.Elements.Ordinary_Fixed_Point_Definitions;
132with Gela.Elements.Others_Choices;
133with Gela.Elements.Package_Bodies;
134with Gela.Elements.Package_Body_Stubs;
135with Gela.Elements.Package_Declarations;
136with Gela.Elements.Package_Instantiations;
137with Gela.Elements.Package_Renaming_Declarations;
138with Gela.Elements.Parameter_Associations;
139with Gela.Elements.Parameter_Specifications;
140with Gela.Elements.Pragma_Argument_Associations;
141with Gela.Elements.Pragma_Nodes;
142with Gela.Elements.Private_Extension_Declarations;
143with Gela.Elements.Private_Extension_Definitions;
144with Gela.Elements.Private_Type_Declarations;
145with Gela.Elements.Private_Type_Definitions;
146with Gela.Elements.Procedure_Bodies;
147with Gela.Elements.Procedure_Call_Statements;
148with Gela.Elements.Procedure_Declarations;
149with Gela.Elements.Procedure_Instantiations;
150with Gela.Elements.Protected_Bodies;
151with Gela.Elements.Protected_Body_Stubs;
152with Gela.Elements.Protected_Definitions;
153with Gela.Elements.Protected_Type_Declarations;
154with Gela.Elements.Qualified_Expressions;
155with Gela.Elements.Quantified_Expressions;
156with Gela.Elements.Raise_Statements;
157with Gela.Elements.Range_Attribute_Reference_Drs;
158with Gela.Elements.Range_Attribute_References;
159with Gela.Elements.Record_Aggregates;
160with Gela.Elements.Record_Definitions;
161with Gela.Elements.Record_Representation_Clauses;
162with Gela.Elements.Record_Type_Definitions;
163with Gela.Elements.Requeue_Statements;
164with Gela.Elements.Return_Object_Specifications;
165with Gela.Elements.Select_Or_Paths;
166with Gela.Elements.Selected_Components;
167with Gela.Elements.Selected_Identifiers;
168with Gela.Elements.Selective_Accepts;
169with Gela.Elements.Short_Circuits;
170with Gela.Elements.Signed_Integer_Type_Definitions;
171with Gela.Elements.Simple_Expression_Range_Drs;
172with Gela.Elements.Simple_Expression_Ranges;
173with Gela.Elements.Simple_Return_Statements;
174with Gela.Elements.Single_Protected_Declarations;
175with Gela.Elements.Single_Task_Declarations;
176with Gela.Elements.String_Literals;
177with Gela.Elements.Subtype_Declarations;
178with Gela.Elements.Subtype_Indications;
179with Gela.Elements.Subunits;
180with Gela.Elements.Task_Bodies;
181with Gela.Elements.Task_Body_Stubs;
182with Gela.Elements.Task_Definitions;
183with Gela.Elements.Task_Type_Declarations;
184with Gela.Elements.Terminate_Alternative_Statements;
185with Gela.Elements.Then_Abort_Paths;
186with Gela.Elements.Unconstrained_Array_Definitions;
187with Gela.Elements.Unknown_Discriminant_Parts;
188with Gela.Elements.Use_Package_Clauses;
189with Gela.Elements.Use_Type_Clauses;
190with Gela.Elements.Variant_Parts;
191with Gela.Elements.Variants;
192with Gela.Elements.While_Loop_Statements;
193with Gela.Elements.With_Clauses;
194with Gela.Elements.Defining_Names;
195with Gela.Type_Managers;
196with Gela.Semantic_Types;
197with Gela.Type_Views;
198
199package body Asis.Extensions.Flat_Kinds is
200
201 type Visiter is new Gela.Element_Visiters.Visiter with record
202 Result : Element_Flat_Kind;
203 end record;
204
205 overriding procedure Compilation
206 (Self : in out Visiter;
207 Node : not null Gela.Elements.Compilations.Compilation_Access)
208 is null;
209
210 overriding procedure Abort_Statement
211 (Self : in out Visiter;
212 Node : not null Gela.Elements.Abort_Statements.Abort_Statement_Access)
213 is null;
214
215 overriding procedure Accept_Statement
216 (Self : in out Visiter;
217 Node : not null Gela.Elements.Accept_Statements.Accept_Statement_Access);
218
219 overriding procedure Access_To_Function_Definition
220 (Self : in out Visiter;
221 Node : not null Gela.Elements.Access_To_Function_Definitions.
222 Access_To_Function_Definition_Access)
223 is null;
224
225 overriding procedure Access_To_Object_Definition
226 (Self : in out Visiter;
227 Node : not null Gela.Elements.Access_To_Object_Definitions.
228 Access_To_Object_Definition_Access);
229
230 overriding procedure Access_To_Procedure_Definition
231 (Self : in out Visiter;
232 Node : not null Gela.Elements.Access_To_Procedure_Definitions.
233 Access_To_Procedure_Definition_Access)
234 is null;
235
236 overriding procedure Allocator
237 (Self : in out Visiter;
238 Node : not null Gela.Elements.Allocators.Allocator_Access);
239
240 overriding procedure Anonymous_Access_To_Function_Definition
241 (Self : in out Visiter;
242 Node : not null Gela.Elements.Anonymous_Access_To_Function_Definitions.
243 Anonymous_Access_To_Function_Definition_Access)
244 is null;
245
246 overriding procedure Anonymous_Access_To_Object_Definition
247 (Self : in out Visiter;
248 Node : not null Gela.Elements.Anonymous_Access_To_Object_Definitions.
249 Anonymous_Access_To_Object_Definition_Access);
250
251 overriding procedure Anonymous_Access_To_Procedure_Definition
252 (Self : in out Visiter;
253 Node : not null Gela.Elements.Anonymous_Access_To_Procedure_Definitions.
254 Anonymous_Access_To_Procedure_Definition_Access)
255 is null;
256
257 overriding procedure Aspect_Specification
258 (Self : in out Visiter;
259 Node : not null Gela.Elements.Aspect_Specifications.
260 Aspect_Specification_Access)
261 is null;
262
263 overriding procedure Assignment_Statement
264 (Self : in out Visiter;
265 Node : not null Gela.Elements.Assignment_Statements.
266 Assignment_Statement_Access);
267
268 overriding procedure Association
269 (Self : in out Visiter;
270 Node : not null Gela.Elements.Associations.Association_Access);
271
272 overriding procedure Asynchronous_Select
273 (Self : in out Visiter;
274 Node : not null Gela.Elements.Asynchronous_Selects.
275 Asynchronous_Select_Access)
276 is null;
277
278 overriding procedure At_Clause
279 (Self : in out Visiter;
280 Node : not null Gela.Elements.At_Clauses.At_Clause_Access)
281 is null;
282
283 overriding procedure Attribute_Definition_Clause
284 (Self : in out Visiter;
285 Node : not null Gela.Elements.Attribute_Definition_Clauses.
286 Attribute_Definition_Clause_Access)
287 is null;
288
289 overriding procedure Attribute_Reference
290 (Self : in out Visiter;
291 Node : not null Gela.Elements.Attribute_References.
292 Attribute_Reference_Access);
293
294 overriding procedure Auxiliary_Apply
295 (Self : in out Visiter;
296 Node : not null Gela.Elements.Auxiliary_Applies.Auxiliary_Apply_Access);
297
298 overriding procedure Block_Statement
299 (Self : in out Visiter;
300 Node : not null Gela.Elements.Block_Statements.Block_Statement_Access);
301
302 overriding procedure Box
303 (Self : in out Visiter;
304 Node : not null Gela.Elements.Boxes.Box_Access)
305 is null;
306
307 overriding procedure Case_Expression
308 (Self : in out Visiter;
309 Node : not null Gela.Elements.Case_Expressions.Case_Expression_Access)
310 is null;
311
312 overriding procedure Case_Expression_Path
313 (Self : in out Visiter;
314 Node : not null Gela.Elements.Case_Expression_Paths.
315 Case_Expression_Path_Access)
316 is null;
317
318 overriding procedure Case_Path
319 (Self : in out Visiter;
320 Node : not null Gela.Elements.Case_Paths.Case_Path_Access);
321
322 overriding procedure Case_Statement
323 (Self : in out Visiter;
324 Node : not null Gela.Elements.Case_Statements.Case_Statement_Access);
325
326 overriding procedure Character_Literal
327 (Self : in out Visiter;
328 Node : not null Gela.Elements.Character_Literals.
329 Character_Literal_Access)
330 is null;
331
332 overriding procedure Choice_Parameter_Specification
333 (Self : in out Visiter;
334 Node : not null Gela.Elements.Choice_Parameter_Specifications.
335 Choice_Parameter_Specification_Access)
336 is null;
337
338 overriding procedure Compilation_Unit_Body
339 (Self : in out Visiter;
340 Node : not null Gela.Elements.Compilation_Unit_Bodies.
341 Compilation_Unit_Body_Access)
342 is null;
343
344 overriding procedure Compilation_Unit_Declaration
345 (Self : in out Visiter;
346 Node : not null Gela.Elements.Compilation_Unit_Declarations.
347 Compilation_Unit_Declaration_Access)
348 is null;
349
350 overriding procedure Component_Clause
351 (Self : in out Visiter;
352 Node : not null Gela.Elements.Component_Clauses.Component_Clause_Access)
353 is null;
354
355 overriding procedure Component_Declaration
356 (Self : in out Visiter;
357 Node : not null Gela.Elements.Component_Declarations.
358 Component_Declaration_Access);
359
360 overriding procedure Component_Definition
361 (Self : in out Visiter;
362 Node : not null Gela.Elements.Component_Definitions.
363 Component_Definition_Access);
364
365 overriding procedure Composite_Constraint
366 (Self : in out Visiter;
367 Node : not null Gela.Elements.Composite_Constraints.
368 Composite_Constraint_Access);
369
370 overriding procedure Constrained_Array_Definition
371 (Self : in out Visiter;
372 Node : not null Gela.Elements.Constrained_Array_Definitions.
373 Constrained_Array_Definition_Access);
374
375 overriding procedure Decimal_Fixed_Point_Definition
376 (Self : in out Visiter;
377 Node : not null Gela.Elements.Decimal_Fixed_Point_Definitions.
378 Decimal_Fixed_Point_Definition_Access)
379 is null;
380
381 overriding procedure Defining_Character_Literal
382 (Self : in out Visiter;
383 Node : not null Gela.Elements.Defining_Character_Literals.
384 Defining_Character_Literal_Access)
385 is null;
386
387 overriding procedure Defining_Enumeration_Literal
388 (Self : in out Visiter;
389 Node : not null Gela.Elements.Defining_Enumeration_Literals.
390 Defining_Enumeration_Literal_Access);
391
392 overriding procedure Defining_Expanded_Unit_Name
393 (Self : in out Visiter;
394 Node : not null Gela.Elements.Defining_Expanded_Unit_Names.
395 Defining_Expanded_Unit_Name_Access);
396
397 overriding procedure Defining_Identifier
398 (Self : in out Visiter;
399 Node : not null Gela.Elements.Defining_Identifiers.
400 Defining_Identifier_Access);
401
402 overriding procedure Defining_Operator_Symbol
403 (Self : in out Visiter;
404 Node : not null Gela.Elements.Defining_Operator_Symbols.
405 Defining_Operator_Symbol_Access);
406
407 overriding procedure Delay_Statement
408 (Self : in out Visiter;
409 Node : not null Gela.Elements.Delay_Statements.Delay_Statement_Access);
410
411 overriding procedure Delta_Constraint
412 (Self : in out Visiter;
413 Node : not null Gela.Elements.Delta_Constraints.Delta_Constraint_Access)
414 is null;
415
416 overriding procedure Derived_Record_Definition
417 (Self : in out Visiter;
418 Node : not null Gela.Elements.Derived_Record_Definitions.
419 Derived_Record_Definition_Access)
420 is null;
421
422 overriding procedure Derived_Type_Definition
423 (Self : in out Visiter;
424 Node : not null Gela.Elements.Derived_Type_Definitions.
425 Derived_Type_Definition_Access);
426
427 overriding procedure Digits_Constraint
428 (Self : in out Visiter;
429 Node : not null Gela.Elements.Digits_Constraints.
430 Digits_Constraint_Access)
431 is null;
432
433 overriding procedure Discrete_Range_Attribute_Reference
434 (Self : in out Visiter;
435 Node : not null Gela.Elements.Discrete_Range_Attribute_References.
436 Discrete_Range_Attribute_Reference_Access)
437 is null;
438
439 overriding procedure Discrete_Simple_Expression_Range
440 (Self : in out Visiter;
441 Node : not null Gela.Elements.Discrete_Simple_Expression_Ranges.
442 Discrete_Simple_Expression_Range_Access);
443
444 overriding procedure Discrete_Subtype_Indication
445 (Self : in out Visiter;
446 Node : not null Gela.Elements.Discrete_Subtype_Indications.
447 Discrete_Subtype_Indication_Access);
448
449 overriding procedure Discrete_Subtype_Indication_Dr
450 (Self : in out Visiter;
451 Node : not null Gela.Elements.Discrete_Subtype_Indication_Drs.
452 Discrete_Subtype_Indication_Dr_Access)
453 is null;
454
455 overriding procedure Discriminant_Specification
456 (Self : in out Visiter;
457 Node : not null Gela.Elements.Discriminant_Specifications.
458 Discriminant_Specification_Access);
459
460 overriding procedure Element_Iterator_Specification
461 (Self : in out Visiter;
462 Node : not null Gela.Elements.Element_Iterator_Specifications.
463 Element_Iterator_Specification_Access)
464 is null;
465
466 overriding procedure Else_Expression_Path
467 (Self : in out Visiter;
468 Node : not null Gela.Elements.Else_Expression_Paths.
469 Else_Expression_Path_Access)
470 is null;
471
472 overriding procedure Else_Path
473 (Self : in out Visiter;
474 Node : not null Gela.Elements.Else_Paths.Else_Path_Access);
475
476 overriding procedure Elsif_Expression_Path
477 (Self : in out Visiter;
478 Node : not null Gela.Elements.Elsif_Expression_Paths.
479 Elsif_Expression_Path_Access)
480 is null;
481
482 overriding procedure Elsif_Path
483 (Self : in out Visiter;
484 Node : not null Gela.Elements.Elsif_Paths.Elsif_Path_Access)
485 is null;
486
487 overriding procedure Entry_Body
488 (Self : in out Visiter;
489 Node : not null Gela.Elements.Entry_Bodies.Entry_Body_Access);
490
491 overriding procedure Entry_Declaration
492 (Self : in out Visiter;
493 Node : not null Gela.Elements.Entry_Declarations.
494 Entry_Declaration_Access);
495
496 overriding procedure Entry_Index_Specification
497 (Self : in out Visiter;
498 Node : not null Gela.Elements.Entry_Index_Specifications.
499 Entry_Index_Specification_Access)
500 is null;
501
502 overriding procedure Enumeration_Literal
503 (Self : in out Visiter;
504 Node : not null Gela.Elements.Enumeration_Literals.
505 Enumeration_Literal_Access)
506 is null;
507
508 overriding procedure Enumeration_Literal_Specification
509 (Self : in out Visiter;
510 Node : not null Gela.Elements.Enumeration_Literal_Specifications.
511 Enumeration_Literal_Specification_Access);
512
513 overriding procedure Enumeration_Type_Definition
514 (Self : in out Visiter;
515 Node : not null Gela.Elements.Enumeration_Type_Definitions.
516 Enumeration_Type_Definition_Access);
517
518 overriding procedure Exception_Declaration
519 (Self : in out Visiter;
520 Node : not null Gela.Elements.Exception_Declarations.
521 Exception_Declaration_Access);
522
523 overriding procedure Exception_Handler
524 (Self : in out Visiter;
525 Node : not null Gela.Elements.Exception_Handlers.
526 Exception_Handler_Access);
527
528 overriding procedure Exception_Renaming_Declaration
529 (Self : in out Visiter;
530 Node : not null Gela.Elements.Exception_Renaming_Declarations.
531 Exception_Renaming_Declaration_Access);
532
533 overriding procedure Exit_Statement
534 (Self : in out Visiter;
535 Node : not null Gela.Elements.Exit_Statements.Exit_Statement_Access);
536
537 overriding procedure Explicit_Dereference
538 (Self : in out Visiter;
539 Node : not null Gela.Elements.Explicit_Dereferences.
540 Explicit_Dereference_Access);
541
542 overriding procedure Extended_Return_Statement
543 (Self : in out Visiter;
544 Node : not null Gela.Elements.Extended_Return_Statements.
545 Extended_Return_Statement_Access)
546 is null;
547
548 overriding procedure Extension_Aggregate
549 (Self : in out Visiter;
550 Node : not null Gela.Elements.Extension_Aggregates.
551 Extension_Aggregate_Access)
552 is null;
553
554 overriding procedure Floating_Point_Definition
555 (Self : in out Visiter;
556 Node : not null Gela.Elements.Floating_Point_Definitions.
557 Floating_Point_Definition_Access)
558 is null;
559
560 overriding procedure For_Loop_Statement
561 (Self : in out Visiter;
562 Node : not null Gela.Elements.For_Loop_Statements.
563 For_Loop_Statement_Access)
564 is null;
565
566 overriding procedure Formal_Access_To_Function_Definition
567 (Self : in out Visiter;
568 Node : not null Gela.Elements.Formal_Access_To_Function_Definitions.
569 Formal_Access_To_Function_Definition_Access)
570 is null;
571
572 overriding procedure Formal_Access_To_Object_Definition
573 (Self : in out Visiter;
574 Node : not null Gela.Elements.Formal_Access_To_Object_Definitions.
575 Formal_Access_To_Object_Definition_Access)
576 is null;
577
578 overriding procedure Formal_Access_To_Procedure_Definition
579 (Self : in out Visiter;
580 Node : not null Gela.Elements.Formal_Access_To_Procedure_Definitions.
581 Formal_Access_To_Procedure_Definition_Access)
582 is null;
583
584 overriding procedure Formal_Constrained_Array_Definition
585 (Self : in out Visiter;
586 Node : not null Gela.Elements.Formal_Constrained_Array_Definitions.
587 Formal_Constrained_Array_Definition_Access)
588 is null;
589
590 overriding procedure Formal_Decimal_Fixed_Point_Definition
591 (Self : in out Visiter;
592 Node : not null Gela.Elements.Formal_Decimal_Fixed_Point_Definitions.
593 Formal_Decimal_Fixed_Point_Definition_Access)
594 is null;
595
596 overriding procedure Formal_Derived_Type_Definition
597 (Self : in out Visiter;
598 Node : not null Gela.Elements.Formal_Derived_Type_Definitions.
599 Formal_Derived_Type_Definition_Access);
600
601 overriding procedure Formal_Discrete_Type_Definition
602 (Self : in out Visiter;
603 Node : not null Gela.Elements.Formal_Discrete_Type_Definitions.
604 Formal_Discrete_Type_Definition_Access)
605 is null;
606
607 overriding procedure Formal_Floating_Point_Definition
608 (Self : in out Visiter;
609 Node : not null Gela.Elements.Formal_Floating_Point_Definitions.
610 Formal_Floating_Point_Definition_Access)
611 is null;
612
613 overriding procedure Formal_Function_Declaration
614 (Self : in out Visiter;
615 Node : not null Gela.Elements.Formal_Function_Declarations.
616 Formal_Function_Declaration_Access)
617 is null;
618
619 overriding procedure Formal_Incomplete_Type_Declaration
620 (Self : in out Visiter;
621 Node : not null Gela.Elements.Formal_Incomplete_Type_Declarations.
622 Formal_Incomplete_Type_Declaration_Access)
623 is null;
624
625 overriding procedure Formal_Interface_Type_Definition
626 (Self : in out Visiter;
627 Node : not null Gela.Elements.Formal_Interface_Type_Definitions.
628 Formal_Interface_Type_Definition_Access)
629 is null;
630
631 overriding procedure Formal_Modular_Type_Definition
632 (Self : in out Visiter;
633 Node : not null Gela.Elements.Formal_Modular_Type_Definitions.
634 Formal_Modular_Type_Definition_Access)
635 is null;
636
637 overriding procedure Formal_Object_Declaration
638 (Self : in out Visiter;
639 Node : not null Gela.Elements.Formal_Object_Declarations.
640 Formal_Object_Declaration_Access)
641 is null;
642
643 overriding procedure Formal_Ordinary_Fixed_Point_Definition
644 (Self : in out Visiter;
645 Node : not null Gela.Elements.Formal_Ordinary_Fixed_Point_Definitions.
646 Formal_Ordinary_Fixed_Point_Definition_Access)
647 is null;
648
649 overriding procedure Formal_Package_Declaration
650 (Self : in out Visiter;
651 Node : not null Gela.Elements.Formal_Package_Declarations.
652 Formal_Package_Declaration_Access)
653 is null;
654
655 overriding procedure Formal_Private_Type_Definition
656 (Self : in out Visiter;
657 Node : not null Gela.Elements.Formal_Private_Type_Definitions.
658 Formal_Private_Type_Definition_Access)
659 is null;
660
661 overriding procedure Formal_Procedure_Declaration
662 (Self : in out Visiter;
663 Node : not null Gela.Elements.Formal_Procedure_Declarations.
664 Formal_Procedure_Declaration_Access)
665 is null;
666
667 overriding procedure Formal_Signed_Integer_Type_Definition
668 (Self : in out Visiter;
669 Node : not null Gela.Elements.Formal_Signed_Integer_Type_Definitions.
670 Formal_Signed_Integer_Type_Definition_Access)
671 is null;
672
673 overriding procedure Formal_Type_Declaration
674 (Self : in out Visiter;
675 Node : not null Gela.Elements.Formal_Type_Declarations.
676 Formal_Type_Declaration_Access);
677
678 overriding procedure Formal_Unconstrained_Array_Definition
679 (Self : in out Visiter;
680 Node : not null Gela.Elements.Formal_Unconstrained_Array_Definitions.
681 Formal_Unconstrained_Array_Definition_Access)
682 is null;
683
684 overriding procedure Full_Type_Declaration
685 (Self : in out Visiter;
686 Node : not null Gela.Elements.Full_Type_Declarations.
687 Full_Type_Declaration_Access);
688
689 overriding procedure Function_Body
690 (Self : in out Visiter;
691 Node : not null Gela.Elements.Function_Bodies.Function_Body_Access);
692
693 overriding procedure Function_Declaration
694 (Self : in out Visiter;
695 Node : not null Gela.Elements.Function_Declarations.
696 Function_Declaration_Access);
697
698 overriding procedure Function_Instantiation
699 (Self : in out Visiter;
700 Node : not null Gela.Elements.Function_Instantiations.
701 Function_Instantiation_Access)
702 is null;
703
704 overriding procedure Generalized_Iterator_Specification
705 (Self : in out Visiter;
706 Node : not null Gela.Elements.Generalized_Iterator_Specifications.
707 Generalized_Iterator_Specification_Access)
708 is null;
709
710 overriding procedure Generic_Association
711 (Self : in out Visiter;
712 Node : not null Gela.Elements.Generic_Associations.
713 Generic_Association_Access);
714
715 overriding procedure Generic_Function_Declaration
716 (Self : in out Visiter;
717 Node : not null Gela.Elements.Generic_Function_Declarations.
718 Generic_Function_Declaration_Access)
719 is null;
720
721 overriding procedure Generic_Function_Renaming
722 (Self : in out Visiter;
723 Node : not null Gela.Elements.Generic_Function_Renamings.
724 Generic_Function_Renaming_Access)
725 is null;
726
727 overriding procedure Generic_Package_Declaration
728 (Self : in out Visiter;
729 Node : not null Gela.Elements.Generic_Package_Declarations.
730 Generic_Package_Declaration_Access);
731
732 overriding procedure Generic_Package_Renaming
733 (Self : in out Visiter;
734 Node : not null Gela.Elements.Generic_Package_Renamings.
735 Generic_Package_Renaming_Access)
736 is null;
737
738 overriding procedure Generic_Procedure_Declaration
739 (Self : in out Visiter;
740 Node : not null Gela.Elements.Generic_Procedure_Declarations.
741 Generic_Procedure_Declaration_Access)
742 is null;
743
744 overriding procedure Generic_Procedure_Renaming
745 (Self : in out Visiter;
746 Node : not null Gela.Elements.Generic_Procedure_Renamings.
747 Generic_Procedure_Renaming_Access)
748 is null;
749
750 overriding procedure Goto_Statement
751 (Self : in out Visiter;
752 Node : not null Gela.Elements.Goto_Statements.Goto_Statement_Access)
753 is null;
754
755 overriding procedure Identifier
756 (Self : in out Visiter;
757 Node : not null Gela.Elements.Identifiers.Identifier_Access);
758
759 overriding procedure If_Expression
760 (Self : in out Visiter;
761 Node : not null Gela.Elements.If_Expressions.If_Expression_Access)
762 is null;
763
764 overriding procedure If_Expression_Path
765 (Self : in out Visiter;
766 Node : not null Gela.Elements.If_Expression_Paths.
767 If_Expression_Path_Access)
768 is null;
769
770 overriding procedure If_Path
771 (Self : in out Visiter;
772 Node : not null Gela.Elements.If_Paths.If_Path_Access);
773
774 overriding procedure If_Statement
775 (Self : in out Visiter;
776 Node : not null Gela.Elements.If_Statements.If_Statement_Access);
777
778 overriding procedure Incomplete_Type_Declaration
779 (Self : in out Visiter;
780 Node : not null Gela.Elements.Incomplete_Type_Declarations.
781 Incomplete_Type_Declaration_Access);
782
783 overriding procedure Incomplete_Type_Definition
784 (Self : in out Visiter;
785 Node : not null Gela.Elements.Incomplete_Type_Definitions.
786 Incomplete_Type_Definition_Access);
787
788 overriding procedure Interface_Type_Definition
789 (Self : in out Visiter;
790 Node : not null Gela.Elements.Interface_Type_Definitions.
791 Interface_Type_Definition_Access)
792 is null;
793
794 overriding procedure Known_Discriminant_Part
795 (Self : in out Visiter;
796 Node : not null Gela.Elements.Known_Discriminant_Parts.
797 Known_Discriminant_Part_Access);
798
799 overriding procedure Label_Decorator
800 (Self : in out Visiter;
801 Node : not null Gela.Elements.Label_Decorators.Label_Decorator_Access)
802 is null;
803
804 overriding procedure Loop_Parameter_Specification
805 (Self : in out Visiter;
806 Node : not null Gela.Elements.Loop_Parameter_Specifications.
807 Loop_Parameter_Specification_Access)
808 is null;
809
810 overriding procedure Loop_Statement
811 (Self : in out Visiter;
812 Node : not null Gela.Elements.Loop_Statements.Loop_Statement_Access);
813
814 overriding procedure Membership_Test
815 (Self : in out Visiter;
816 Node : not null Gela.Elements.Membership_Tests.Membership_Test_Access);
817
818 overriding procedure Modular_Type_Definition
819 (Self : in out Visiter;
820 Node : not null Gela.Elements.Modular_Type_Definitions.
821 Modular_Type_Definition_Access)
822 is null;
823
824 overriding procedure Null_Component
825 (Self : in out Visiter;
826 Node : not null Gela.Elements.Null_Components.Null_Component_Access);
827
828 overriding procedure Null_Literal
829 (Self : in out Visiter;
830 Node : not null Gela.Elements.Null_Literals.Null_Literal_Access)
831 is null;
832
833 overriding procedure Null_Record_Definition
834 (Self : in out Visiter;
835 Node : not null Gela.Elements.Null_Record_Definitions.
836 Null_Record_Definition_Access)
837 is null;
838
839 overriding procedure Null_Statement
840 (Self : in out Visiter;
841 Node : not null Gela.Elements.Null_Statements.Null_Statement_Access);
842
843 overriding procedure Number_Declaration
844 (Self : in out Visiter;
845 Node : not null Gela.Elements.Number_Declarations.
846 Number_Declaration_Access);
847
848 overriding procedure Numeric_Literal
849 (Self : in out Visiter;
850 Node : not null Gela.Elements.Numeric_Literals.Numeric_Literal_Access);
851
852 overriding procedure Object_Declaration
853 (Self : in out Visiter;
854 Node : not null Gela.Elements.Object_Declarations.
855 Object_Declaration_Access);
856
857 overriding procedure Object_Renaming_Declaration
858 (Self : in out Visiter;
859 Node : not null Gela.Elements.Object_Renaming_Declarations.
860 Object_Renaming_Declaration_Access);
861
862 overriding procedure Operator_Symbol
863 (Self : in out Visiter;
864 Node : not null Gela.Elements.Operator_Symbols.Operator_Symbol_Access);
865
866 overriding procedure Ordinary_Fixed_Point_Definition
867 (Self : in out Visiter;
868 Node : not null Gela.Elements.Ordinary_Fixed_Point_Definitions.
869 Ordinary_Fixed_Point_Definition_Access)
870 is null;
871
872 overriding procedure Others_Choice
873 (Self : in out Visiter;
874 Node : not null Gela.Elements.Others_Choices.Others_Choice_Access);
875
876 overriding procedure Package_Body
877 (Self : in out Visiter;
878 Node : not null Gela.Elements.Package_Bodies.Package_Body_Access);
879
880 overriding procedure Package_Body_Stub
881 (Self : in out Visiter;
882 Node : not null Gela.Elements.Package_Body_Stubs.
883 Package_Body_Stub_Access);
884
885 overriding procedure Package_Declaration
886 (Self : in out Visiter;
887 Node : not null Gela.Elements.Package_Declarations.
888 Package_Declaration_Access);
889
890 overriding procedure Package_Instantiation
891 (Self : in out Visiter;
892 Node : not null Gela.Elements.Package_Instantiations.
893 Package_Instantiation_Access);
894
895 overriding procedure Package_Renaming_Declaration
896 (Self : in out Visiter;
897 Node : not null Gela.Elements.Package_Renaming_Declarations.
898 Package_Renaming_Declaration_Access);
899
900 overriding procedure Parameter_Association
901 (Self : in out Visiter;
902 Node : not null Gela.Elements.Parameter_Associations.
903 Parameter_Association_Access)
904 is null;
905
906 overriding procedure Parameter_Specification
907 (Self : in out Visiter;
908 Node : not null Gela.Elements.Parameter_Specifications.
909 Parameter_Specification_Access);
910
911 overriding procedure Pragma_Argument_Association
912 (Self : in out Visiter;
913 Node : not null Gela.Elements.Pragma_Argument_Associations.
914 Pragma_Argument_Association_Access)
915 is null;
916
917 overriding procedure Pragma_Node
918 (Self : in out Visiter;
919 Node : not null Gela.Elements.Pragma_Nodes.Pragma_Node_Access);
920
921 overriding procedure Private_Extension_Declaration
922 (Self : in out Visiter;
923 Node : not null Gela.Elements.Private_Extension_Declarations.
924 Private_Extension_Declaration_Access)
925 is null;
926
927 overriding procedure Private_Extension_Definition
928 (Self : in out Visiter;
929 Node : not null Gela.Elements.Private_Extension_Definitions.
930 Private_Extension_Definition_Access)
931 is null;
932
933 overriding procedure Private_Type_Declaration
934 (Self : in out Visiter;
935 Node : not null Gela.Elements.Private_Type_Declarations.
936 Private_Type_Declaration_Access);
937
938 overriding procedure Private_Type_Definition
939 (Self : in out Visiter;
940 Node : not null Gela.Elements.Private_Type_Definitions.
941 Private_Type_Definition_Access);
942
943 overriding procedure Procedure_Body
944 (Self : in out Visiter;
945 Node : not null Gela.Elements.Procedure_Bodies.Procedure_Body_Access);
946
947 overriding procedure Procedure_Call_Statement
948 (Self : in out Visiter;
949 Node : not null Gela.Elements.Procedure_Call_Statements.
950 Procedure_Call_Statement_Access);
951
952 overriding procedure Procedure_Declaration
953 (Self : in out Visiter;
954 Node : not null Gela.Elements.Procedure_Declarations.
955 Procedure_Declaration_Access);
956
957 overriding procedure Procedure_Instantiation
958 (Self : in out Visiter;
959 Node : not null Gela.Elements.Procedure_Instantiations.
960 Procedure_Instantiation_Access)
961 is null;
962
963 overriding procedure Protected_Body
964 (Self : in out Visiter;
965 Node : not null Gela.Elements.Protected_Bodies.Protected_Body_Access);
966
967 overriding procedure Protected_Body_Stub
968 (Self : in out Visiter;
969 Node : not null Gela.Elements.Protected_Body_Stubs.
970 Protected_Body_Stub_Access)
971 is null;
972
973 overriding procedure Protected_Definition
974 (Self : in out Visiter;
975 Node : not null Gela.Elements.Protected_Definitions.
976 Protected_Definition_Access);
977
978 overriding procedure Protected_Type_Declaration
979 (Self : in out Visiter;
980 Node : not null Gela.Elements.Protected_Type_Declarations.
981 Protected_Type_Declaration_Access)
982 is null;
983
984 overriding procedure Qualified_Expression
985 (Self : in out Visiter;
986 Node : not null Gela.Elements.Qualified_Expressions.
987 Qualified_Expression_Access);
988
989 overriding procedure Quantified_Expression
990 (Self : in out Visiter;
991 Node : not null Gela.Elements.Quantified_Expressions.
992 Quantified_Expression_Access)
993 is null;
994
995 overriding procedure Raise_Statement
996 (Self : in out Visiter;
997 Node : not null Gela.Elements.Raise_Statements.Raise_Statement_Access)
998 is null;
999
1000 overriding procedure Range_Attribute_Reference
1001 (Self : in out Visiter;
1002 Node : not null Gela.Elements.Range_Attribute_References.
1003 Range_Attribute_Reference_Access);
1004
1005 overriding procedure Range_Attribute_Reference_Dr
1006 (Self : in out Visiter;
1007 Node : not null Gela.Elements.Range_Attribute_Reference_Drs.
1008 Range_Attribute_Reference_Dr_Access)
1009 is null;
1010
1011 overriding procedure Record_Aggregate
1012 (Self : in out Visiter;
1013 Node : not null Gela.Elements.Record_Aggregates.
1014 Record_Aggregate_Access);
1015
1016 overriding procedure Record_Definition
1017 (Self : in out Visiter;
1018 Node : not null Gela.Elements.Record_Definitions.
1019 Record_Definition_Access);
1020
1021 overriding procedure Record_Representation_Clause
1022 (Self : in out Visiter;
1023 Node : not null Gela.Elements.Record_Representation_Clauses.
1024 Record_Representation_Clause_Access)
1025 is null;
1026
1027 overriding procedure Record_Type_Definition
1028 (Self : in out Visiter;
1029 Node : not null Gela.Elements.Record_Type_Definitions.
1030 Record_Type_Definition_Access);
1031
1032 overriding procedure Requeue_Statement
1033 (Self : in out Visiter;
1034 Node : not null Gela.Elements.Requeue_Statements.
1035 Requeue_Statement_Access);
1036
1037 overriding procedure Return_Object_Specification
1038 (Self : in out Visiter;
1039 Node : not null Gela.Elements.Return_Object_Specifications.
1040 Return_Object_Specification_Access)
1041 is null;
1042
1043 overriding procedure Select_Or_Path
1044 (Self : in out Visiter;
1045 Node : not null Gela.Elements.Select_Or_Paths.Select_Or_Path_Access);
1046
1047 overriding procedure Selected_Component
1048 (Self : in out Visiter;
1049 Node : not null Gela.Elements.Selected_Components.
1050 Selected_Component_Access);
1051
1052 overriding procedure Selected_Identifier
1053 (Self : in out Visiter;
1054 Node : not null Gela.Elements.Selected_Identifiers.
1055 Selected_Identifier_Access);
1056
1057 overriding procedure Selective_Accept
1058 (Self : in out Visiter;
1059 Node : not null Gela.Elements.Selective_Accepts.Selective_Accept_Access);
1060
1061 overriding procedure Short_Circuit
1062 (Self : in out Visiter;
1063 Node : not null Gela.Elements.Short_Circuits.Short_Circuit_Access)
1064 is null;
1065
1066 overriding procedure Signed_Integer_Type_Definition
1067 (Self : in out Visiter;
1068 Node : not null Gela.Elements.Signed_Integer_Type_Definitions.
1069 Signed_Integer_Type_Definition_Access);
1070
1071 overriding procedure Simple_Expression_Range
1072 (Self : in out Visiter;
1073 Node : not null Gela.Elements.Simple_Expression_Ranges.
1074 Simple_Expression_Range_Access);
1075
1076 overriding procedure Simple_Expression_Range_Dr
1077 (Self : in out Visiter;
1078 Node : not null Gela.Elements.Simple_Expression_Range_Drs.
1079 Simple_Expression_Range_Dr_Access);
1080
1081 overriding procedure Simple_Return_Statement
1082 (Self : in out Visiter;
1083 Node : not null Gela.Elements.Simple_Return_Statements.
1084 Simple_Return_Statement_Access);
1085
1086 overriding procedure Single_Protected_Declaration
1087 (Self : in out Visiter;
1088 Node : not null Gela.Elements.Single_Protected_Declarations.
1089 Single_Protected_Declaration_Access);
1090
1091 overriding procedure Single_Task_Declaration
1092 (Self : in out Visiter;
1093 Node : not null Gela.Elements.Single_Task_Declarations.
1094 Single_Task_Declaration_Access);
1095
1096 overriding procedure String_Literal
1097 (Self : in out Visiter;
1098 Node : not null Gela.Elements.String_Literals.String_Literal_Access);
1099
1100 overriding procedure Subtype_Declaration
1101 (Self : in out Visiter;
1102 Node : not null Gela.Elements.Subtype_Declarations.
1103 Subtype_Declaration_Access);
1104
1105 overriding procedure Subtype_Indication
1106 (Self : in out Visiter;
1107 Node : not null Gela.Elements.Subtype_Indications.
1108 Subtype_Indication_Access);
1109
1110 overriding procedure Subunit
1111 (Self : in out Visiter;
1112 Node : not null Gela.Elements.Subunits.Subunit_Access)
1113 is null;
1114
1115 overriding procedure Task_Body
1116 (Self : in out Visiter;
1117 Node : not null Gela.Elements.Task_Bodies.Task_Body_Access);
1118
1119 overriding procedure Task_Body_Stub
1120 (Self : in out Visiter;
1121 Node : not null Gela.Elements.Task_Body_Stubs.Task_Body_Stub_Access);
1122
1123 overriding procedure Task_Definition
1124 (Self : in out Visiter;
1125 Node : not null Gela.Elements.Task_Definitions.Task_Definition_Access);
1126
1127 overriding procedure Task_Type_Declaration
1128 (Self : in out Visiter;
1129 Node : not null Gela.Elements.Task_Type_Declarations.
1130 Task_Type_Declaration_Access)
1131 is null;
1132
1133 overriding procedure Terminate_Alternative_Statement
1134 (Self : in out Visiter;
1135 Node : not null Gela.Elements.Terminate_Alternative_Statements.
1136 Terminate_Alternative_Statement_Access);
1137
1138 overriding procedure Then_Abort_Path
1139 (Self : in out Visiter;
1140 Node : not null Gela.Elements.Then_Abort_Paths.Then_Abort_Path_Access)
1141 is null;
1142
1143 overriding procedure Unconstrained_Array_Definition
1144 (Self : in out Visiter;
1145 Node : not null Gela.Elements.Unconstrained_Array_Definitions.
1146 Unconstrained_Array_Definition_Access);
1147
1148 overriding procedure Unknown_Discriminant_Part
1149 (Self : in out Visiter;
1150 Node : not null Gela.Elements.Unknown_Discriminant_Parts.
1151 Unknown_Discriminant_Part_Access)
1152 is null;
1153
1154 overriding procedure Use_Package_Clause
1155 (Self : in out Visiter;
1156 Node : not null Gela.Elements.Use_Package_Clauses.
1157 Use_Package_Clause_Access);
1158
1159 overriding procedure Use_Type_Clause
1160 (Self : in out Visiter;
1161 Node : not null Gela.Elements.Use_Type_Clauses.Use_Type_Clause_Access);
1162
1163 overriding procedure Variant
1164 (Self : in out Visiter;
1165 Node : not null Gela.Elements.Variants.Variant_Access);
1166
1167 overriding procedure Variant_Part
1168 (Self : in out Visiter;
1169 Node : not null Gela.Elements.Variant_Parts.Variant_Part_Access);
1170
1171 overriding procedure While_Loop_Statement
1172 (Self : in out Visiter;
1173 Node : not null Gela.Elements.While_Loop_Statements.
1174 While_Loop_Statement_Access)
1175 is null;
1176
1177 overriding procedure With_Clause
1178 (Self : in out Visiter;
1179 Node : not null Gela.Elements.With_Clauses.With_Clause_Access);
1180
1181 overriding procedure Accept_Statement
1182 (Self : in out Visiter;
1183 Node : not null Gela.Elements.Accept_Statements.Accept_Statement_Access)
1184 is
1185 pragma Unreferenced (Node);
1186 begin
1187 Self.Result := An_Accept_Statement;
1188 end Accept_Statement;
1189
1190 overriding procedure Access_To_Object_Definition
1191 (Self : in out Visiter;
1192 Node : not null Gela.Elements.Access_To_Object_Definitions.
1193 Access_To_Object_Definition_Access)
1194 is
1195 use type Gela.Lexical_Types.Token_Count;
1196 use type Gela.Lexical_Types.Token_Kind;
1197
1198 Comp : constant Gela.Compilations.Compilation_Access :=
1199 Node.Enclosing_Compilation;
1200 Token : Gela.Lexical_Types.Token;
1201 begin
1202 if Node.Constant_Token = 0 then
1203 Self.Result := A_Pool_Specific_Access_To_Variable;
1204 return;
1205 end if;
1206
1207 Token := Comp.Get_Token (Node.Constant_Token);
1208
1209 if Token.Kind = Gela.Lexical_Types.All_Token then
1210 Self.Result := An_Access_To_Variable;
1211 else
1212 Self.Result := An_Access_To_Constant;
1213 end if;
1214 end Access_To_Object_Definition;
1215
1216 overriding procedure Allocator
1217 (Self : in out Visiter;
1218 Node : not null Gela.Elements.Allocators.Allocator_Access)
1219 is
1220 Name : constant Gela.Elements.Names.Name_Access :=
1221 Node.Subtype_Or_Expression;
1222 begin
1223 Name.Visit (Self);
1224
1225 case Self.Result is
1226 when A_Qualified_Expression =>
1227 Self.Result := An_Allocation_From_Qualified_Expression;
1228 when others =>
1229 Self.Result := An_Allocation_From_Subtype;
1230 end case;
1231 end Allocator;
1232
1233 overriding procedure Anonymous_Access_To_Object_Definition
1234 (Self : in out Visiter;
1235 Node : not null Gela.Elements.Anonymous_Access_To_Object_Definitions.
1236 Anonymous_Access_To_Object_Definition_Access)
1237 is
1238 use type Gela.Lexical_Types.Token_Count;
1239 begin
1240 if Node.Constant_Token = 0 then
1241 Self.Result := An_Anonymous_Access_To_Variable;
1242 else
1243 Self.Result := An_Anonymous_Access_To_Constant;
1244 end if;
1245 end Anonymous_Access_To_Object_Definition;
1246
1247 overriding procedure Assignment_Statement
1248 (Self : in out Visiter;
1249 Node : not null Gela.Elements.Assignment_Statements.
1250 Assignment_Statement_Access)
1251 is
1252 pragma Unreferenced (Node);
1253 begin
1254 Self.Result := An_Assignment_Statement;
1255 end Assignment_Statement;
1256
1257 overriding procedure Association
1258 (Self : in out Visiter;
1259 Node : not null Gela.Elements.Associations.Association_Access)
1260 is
1261 Parent : Gela.Elements.Element_Access := Node.Enclosing_Element;
1262 begin
1263 while Auxilary ((Data => Parent)) loop
1264 Parent := Parent.Enclosing_Element;
1265 end loop;
1266
1267 Parent.Visit (Self);
1268
1269 case Self.Result is
1270 when A_Record_Aggregate =>
1271 Self.Result := A_Record_Component_Association;
1272 when A_Discriminant_Constraint =>
1273 Self.Result := A_Discriminant_Association;
1274 when others =>
1275 Self.Result := A_Parameter_Association;
1276 end case;
1277 end Association;
1278
1279 overriding procedure Attribute_Reference
1280 (Self : in out Visiter;
1281 Node : not null Gela.Elements.Attribute_References.
1282 Attribute_Reference_Access)
1283 is
1284 package X renames Gela.Lexical_Types.Predefined_Symbols;
1285 use type Gela.Lexical_Types.Token_Count;
1286
1287 Id : constant Gela.Elements.Identifiers.Identifier_Access :=
1288 Node.Attribute_Designator_Identifier;
1289 Comp : constant Gela.Compilations.Compilation_Access :=
1290 Node.Enclosing_Compilation;
1291 Token : Gela.Lexical_Types.Token;
1292 Map : constant array (Gela.Lexical_Types.Symbol range
1293 X.Access_Symbol .. X.Write) of Element_Flat_Kind
1294 :=
1295 (
1296 X.Access_Symbol => An_Access_Attribute,
1297 X.Address => An_Address_Attribute,
1298 X.Adjacent => An_Adjacent_Attribute,
1299 X.Aft => An_Aft_Attribute,
1300 X.Alignment => An_Alignment_Attribute,
1301 X.Base => A_Base_Attribute,
1302 X.Bit_Order => A_Bit_Order_Attribute,
1303 X.Body_Version => A_Body_Version_Attribute,
1304 X.Callable => A_Callable_Attribute,
1305 X.Caller => A_Caller_Attribute,
1306 X.Ceiling => A_Ceiling_Attribute,
1307 X.Class => A_Class_Attribute,
1308 X.Component_Size => A_Component_Size_Attribute,
1309 X.Compose => A_Compose_Attribute,
1310 X.Constrained => A_Constrained_Attribute,
1311 X.Copy_Sign => A_Copy_Sign_Attribute,
1312 X.Count => A_Count_Attribute,
1313 X.Definite => A_Definite_Attribute,
1314 X.Delta_Symbol => A_Delta_Attribute,
1315 X.Denorm => A_Denorm_Attribute,
1316 X.Digits_Symbol => A_Digits_Attribute,
1317 X.Exponent => An_Exponent_Attribute,
1318 X.External_Tag => An_External_Tag_Attribute,
1319 X.First => A_First_Attribute,
1320 X.First_Bit => A_First_Bit_Attribute,
1321 X.Floor => A_Floor_Attribute,
1322 X.Fore => A_Fore_Attribute,
1323 X.Fraction => A_Fraction_Attribute,
1324 X.Identity => An_Identity_Attribute,
1325 X.Image => An_Image_Attribute,
1326 X.Input => An_Input_Attribute,
1327 X.Last => A_Last_Attribute,
1328 X.Last_Bit => A_Last_Bit_Attribute,
1329 X.Leading_Part => A_Leading_Part_Attribute,
1330 X.Length => A_Length_Attribute,
1331 X.Machine => A_Machine_Attribute,
1332 X.Machine_Emax => A_Machine_Emax_Attribute,
1333 X.Machine_Emin => A_Machine_Emin_Attribute,
1334 X.Machine_Mantissa => A_Machine_Mantissa_Attribute,
1335 X.Machine_Overflows => A_Machine_Overflows_Attribute,
1336 X.Machine_Radix => A_Machine_Radix_Attribute,
1337 X.Machine_Rounding => A_Machine_Rounding_Attribute,
1338 X.Machine_Rounds => A_Machine_Rounds_Attribute,
1339 X.Max => A_Max_Attribute,
1340 X.Max_Size_In_Storage_Elements =>
1341 A_Max_Size_In_Storage_Elements_Attribute,
1342 X.Min => A_Min_Attribute,
1343 X.Mod_Symbol => A_Mod_Attribute,
1344 X.Model => A_Model_Attribute,
1345 X.Model_Emin => A_Model_Emin_Attribute,
1346 X.Model_Epsilon => A_Model_Epsilon_Attribute,
1347 X.Model_Mantissa => A_Model_Mantissa_Attribute,
1348 X.Model_Small => A_Model_Small_Attribute,
1349 X.Modulus => A_Modulus_Attribute,
1350 X.Output => An_Output_Attribute,
1351 X.Partition_ID => A_Partition_ID_Attribute,
1352 X.Pos => A_Pos_Attribute,
1353 X.Position => A_Position_Attribute,
1354 X.Pred => A_Pred_Attribute,
1355 X.Priority => A_Priority_Attribute,
1356 X.Range_Symbol => A_Range_Attribute,
1357 X.Read => A_Read_Attribute,
1358 X.Remainder => A_Remainder_Attribute,
1359 X.Round => A_Round_Attribute,
1360 X.Rounding => A_Rounding_Attribute,
1361 X.Safe_First => A_Safe_First_Attribute,
1362 X.Safe_Last => A_Safe_Last_Attribute,
1363 X.Scale => A_Scale_Attribute,
1364 X.Scaling => A_Scaling_Attribute,
1365 X.Signed_Zeros => A_Signed_Zeros_Attribute,
1366 X.Size => A_Size_Attribute,
1367 X.Small => A_Small_Attribute,
1368 X.Storage_Pool => A_Storage_Pool_Attribute,
1369 X.Storage_Size => A_Storage_Size_Attribute,
1370 X.Stream_Size => A_Stream_Size_Attribute,
1371 X.Succ => A_Succ_Attribute,
1372 X.Tag => A_Tag_Attribute,
1373 X.Terminated => A_Terminated_Attribute,
1374 X.Truncation => A_Truncation_Attribute,
1375 X.Unbiased_Rounding => An_Unbiased_Rounding_Attribute,
1376 X.Unchecked_Access => An_Unchecked_Access_Attribute,
1377 X.Val => A_Val_Attribute,
1378 X.Valid => A_Valid_Attribute,
1379 X.Value => A_Value_Attribute,
1380 X.Version => A_Version_Attribute,
1381 X.Wide_Image => A_Wide_Image_Attribute,
1382 X.Wide_Value => A_Wide_Value_Attribute,
1383 X.Wide_Wide_Image => A_Wide_Wide_Image_Attribute,
1384 X.Wide_Wide_Value => A_Wide_Wide_Value_Attribute,
1385 X.Wide_Wide_Width => A_Wide_Wide_Width_Attribute,
1386 X.Wide_Width => A_Wide_Width_Attribute,
1387 X.Width => A_Width_Attribute,
1388 X.Write => A_Write_Attribute);
1389 begin
1390 if Node.Range_Token /= 0 then
1391 Self.Result := A_Range_Attribute;
1392
1393 return;
1394 end if;
1395
1396 Token := Comp.Get_Token (Id.Identifier_Token);
1397
1398 if Token.Symbol in Map'Range then
1399 Self.Result := Map (Token.Symbol);
1400 end if;
1401 end Attribute_Reference;
1402
1403 overriding procedure Auxiliary_Apply
1404 (Self : in out Visiter;
1405 Node : not null Gela.Elements.Auxiliary_Applies.Auxiliary_Apply_Access)
1406 is
1407 pragma Unreferenced (Node);
1408 begin
1409 Self.Result := A_Function_Call;
1410 end Auxiliary_Apply;
1411
1412 overriding procedure Block_Statement
1413 (Self : in out Visiter;
1414 Node : not null Gela.Elements.Block_Statements.Block_Statement_Access)
1415 is
1416 pragma Unreferenced (Node);
1417 begin
1418 Self.Result := A_Block_Statement;
1419 end Block_Statement;
1420
1421 overriding procedure Case_Path
1422 (Self : in out Visiter;
1423 Node : not null Gela.Elements.Case_Paths.Case_Path_Access)
1424 is
1425 pragma Unreferenced (Node);
1426 begin
1427 Self.Result := A_Case_Path;
1428 end Case_Path;
1429
1430 overriding procedure Case_Statement
1431 (Self : in out Visiter;
1432 Node : not null Gela.Elements.Case_Statements.Case_Statement_Access)
1433 is
1434 pragma Unreferenced (Node);
1435 begin
1436 Self.Result := A_Case_Statement;
1437 end Case_Statement;
1438
1439 overriding procedure Component_Declaration
1440 (Self : in out Visiter;
1441 Node : not null Gela.Elements.Component_Declarations.
1442 Component_Declaration_Access)
1443 is
1444 pragma Unreferenced (Node);
1445 begin
1446 Self.Result := A_Component_Declaration;
1447 end Component_Declaration;
1448
1449 overriding procedure Component_Definition
1450 (Self : in out Visiter;
1451 Node : not null Gela.Elements.Component_Definitions.
1452 Component_Definition_Access)
1453 is
1454 pragma Unreferenced (Node);
1455 begin
1456 Self.Result := A_Component_Definition;
1457 end Component_Definition;
1458
1459 overriding procedure Composite_Constraint
1460 (Self : in out Visiter;
1461 Node : not null Gela.Elements.Composite_Constraints.
1462 Composite_Constraint_Access)
1463 is
1464 use type Gela.Type_Views.Type_View_Access;
1465
1466 Comp : constant Gela.Compilations.Compilation_Access :=
1467 Node.Enclosing_Compilation;
1468
1469 TM : constant Gela.Type_Managers.Type_Manager_Access :=
1470 Comp.Context.Types;
1471
1472 Subtype_Indication : constant Gela.Elements.Subtype_Indications.
1473 Subtype_Indication_Access :=
1474 Gela.Elements.Subtype_Indications.Subtype_Indication_Access
1475 (Node.Enclosing_Element);
1476
1477 Type_Index : constant Gela.Semantic_Types.Type_Index :=
1478 Subtype_Indication.Type_Index;
1479
1480 Type_View : constant Gela.Type_Views.Type_View_Access :=
1481 TM.Get (Type_Index);
1482 begin
1483 if Type_View /= null and then Type_View.Category in
1484 Gela.Type_Views.A_String .. Gela.Type_Views.An_Other_Array
1485 then
1486 Self.Result := An_Index_Constraint;
1487 else
1488 Self.Result := A_Discriminant_Constraint;
1489 end if;
1490 end Composite_Constraint;
1491
1492 overriding procedure Constrained_Array_Definition
1493 (Self : in out Visiter;
1494 Node : not null Gela.Elements.Constrained_Array_Definitions.
1495 Constrained_Array_Definition_Access)
1496 is
1497 pragma Unreferenced (Node);
1498 begin
1499 Self.Result := A_Constrained_Array_Definition;
1500 end Constrained_Array_Definition;
1501
1502 overriding procedure Defining_Enumeration_Literal
1503 (Self : in out Visiter;
1504 Node : not null Gela.Elements.Defining_Enumeration_Literals.
1505 Defining_Enumeration_Literal_Access)
1506 is
1507 pragma Unreferenced (Node);
1508 begin
1509 Self.Result := A_Defining_Enumeration_Literal;
1510 end Defining_Enumeration_Literal;
1511
1512 overriding procedure Defining_Expanded_Unit_Name
1513 (Self : in out Visiter;
1514 Node : not null Gela.Elements.Defining_Expanded_Unit_Names.
1515 Defining_Expanded_Unit_Name_Access)
1516 is
1517 pragma Unreferenced (Node);
1518 begin
1519 Self.Result := A_Defining_Expanded_Name;
1520 end Defining_Expanded_Unit_Name;
1521
1522 overriding procedure Defining_Identifier
1523 (Self : in out Visiter;
1524 Node : not null Gela.Elements.Defining_Identifiers.
1525 Defining_Identifier_Access)
1526 is
1527 pragma Unreferenced (Node);
1528 begin
1529 Self.Result := A_Defining_Identifier;
1530 end Defining_Identifier;
1531
1532 overriding procedure Defining_Operator_Symbol
1533 (Self : in out Visiter;
1534 Node : not null Gela.Elements.Defining_Operator_Symbols.
1535 Defining_Operator_Symbol_Access)
1536 is
1537 Operator_Map : constant array
1538 (Gela.Lexical_Types.Symbol range 1 .. 19) of Element_Flat_Kind
1539 := (A_Defining_Less_Than_Operator,
1540 A_Defining_Equal_Operator,
1541 A_Defining_Greater_Than_Operator,
1542 A_Defining_Minus_Operator,
1543 A_Defining_Divide_Operator,
1544 A_Defining_Multiply_Operator,
1545 A_Defining_Concatenate_Operator,
1546 A_Defining_Plus_Operator,
1547 A_Defining_Less_Than_Or_Equal_Operator,
1548 A_Defining_Greater_Than_Or_Equal_Operator,
1549 A_Defining_Not_Equal_Operator,
1550 A_Defining_Exponentiate_Operator,
1551 A_Defining_Or_Operator,
1552 A_Defining_And_Operator,
1553 A_Defining_Xor_Operator,
1554 A_Defining_Mod_Operator,
1555 A_Defining_Rem_Operator,
1556 A_Defining_Abs_Operator,
1557 A_Defining_Not_Operator);
1558
1559 Comp : constant Gela.Compilations.Compilation_Access :=
1560 Node.Enclosing_Compilation;
1561 Token : constant Gela.Lexical_Types.Token :=
1562 Comp.Get_Token (Node.Operator_Symbol_Token);
1563 begin
1564 if Token.Symbol in Operator_Map'Range then
1565 Self.Result := Operator_Map (Token.Symbol);
1566 end if;
1567 end Defining_Operator_Symbol;
1568
1569 overriding procedure Delay_Statement
1570 (Self : in out Visiter;
1571 Node : not null Gela.Elements.Delay_Statements.Delay_Statement_Access)
1572 is
1573 use type Gela.Lexical_Types.Token_Index;
1574 begin
1575 if Node.Until_Token = 0 then
1576 Self.Result := A_Delay_Relative_Statement;
1577 else
1578 Self.Result := A_Delay_Until_Statement;
1579 end if;
1580 end Delay_Statement;
1581
1582 overriding procedure Derived_Type_Definition
1583 (Self : in out Visiter;
1584 Node : not null Gela.Elements.Derived_Type_Definitions.
1585 Derived_Type_Definition_Access)
1586 is
1587 pragma Unreferenced (Node);
1588 begin
1589 Self.Result := A_Derived_Type_Definition;
1590 end Derived_Type_Definition;
1591
1592 overriding procedure Discrete_Simple_Expression_Range
1593 (Self : in out Visiter;
1594 Node : not null Gela.Elements.Discrete_Simple_Expression_Ranges.
1595 Discrete_Simple_Expression_Range_Access)
1596 is
1597 pragma Unreferenced (Node);
1598 begin
1599 Self.Result := A_Discrete_Simple_Expression_Range;
1600 end Discrete_Simple_Expression_Range;
1601
1602 overriding procedure Discrete_Subtype_Indication
1603 (Self : in out Visiter;
1604 Node : not null Gela.Elements.Discrete_Subtype_Indications.
1605 Discrete_Subtype_Indication_Access)
1606 is
1607 pragma Unreferenced (Node);
1608 begin
1609 Self.Result := A_Discrete_Subtype_Indication;
1610 end Discrete_Subtype_Indication;
1611
1612 overriding procedure Discriminant_Specification
1613 (Self : in out Visiter;
1614 Node : not null Gela.Elements.Discriminant_Specifications.
1615 Discriminant_Specification_Access)
1616 is
1617 pragma Unreferenced (Node);
1618 begin
1619 Self.Result := A_Discriminant_Specification;
1620 end Discriminant_Specification;
1621
1622 overriding procedure Else_Path
1623 (Self : in out Visiter;
1624 Node : not null Gela.Elements.Else_Paths.Else_Path_Access)
1625 is
1626 pragma Unreferenced (Node);
1627 begin
1628 Self.Result := An_Else_Path;
1629 end Else_Path;
1630
1631 overriding procedure Entry_Body
1632 (Self : in out Visiter;
1633 Node : not null Gela.Elements.Entry_Bodies.Entry_Body_Access)
1634 is
1635 pragma Unreferenced (Node);
1636 begin
1637 Self.Result := An_Entry_Body_Declaration;
1638 end Entry_Body;
1639
1640 overriding procedure Entry_Declaration
1641 (Self : in out Visiter;
1642 Node : not null Gela.Elements.Entry_Declarations.
1643 Entry_Declaration_Access)
1644 is
1645 pragma Unreferenced (Node);
1646 begin
1647 Self.Result := An_Entry_Declaration;
1648 end Entry_Declaration;
1649
1650 overriding procedure Enumeration_Literal_Specification
1651 (Self : in out Visiter;
1652 Node : not null Gela.Elements.Enumeration_Literal_Specifications.
1653 Enumeration_Literal_Specification_Access)
1654 is
1655 pragma Unreferenced (Node);
1656 begin
1657 Self.Result := An_Enumeration_Literal_Specification;
1658 end Enumeration_Literal_Specification;
1659
1660 overriding procedure Enumeration_Type_Definition
1661 (Self : in out Visiter;
1662 Node : not null Gela.Elements.Enumeration_Type_Definitions.
1663 Enumeration_Type_Definition_Access)
1664 is
1665 pragma Unreferenced (Node);
1666 begin
1667 Self.Result := An_Enumeration_Type_Definition;
1668 end Enumeration_Type_Definition;
1669
1670 overriding procedure Exception_Declaration
1671 (Self : in out Visiter;
1672 Node : not null Gela.Elements.Exception_Declarations.
1673 Exception_Declaration_Access)
1674 is
1675 pragma Unreferenced (Node);
1676 begin
1677 Self.Result := An_Exception_Declaration;
1678 end Exception_Declaration;
1679
1680 overriding procedure Exception_Handler
1681 (Self : in out Visiter;
1682 Node : not null Gela.Elements.Exception_Handlers.
1683 Exception_Handler_Access)
1684 is
1685 pragma Unreferenced (Node);
1686 begin
1687 Self.Result := An_Exception_Handler;
1688 end Exception_Handler;
1689
1690 overriding procedure Exception_Renaming_Declaration
1691 (Self : in out Visiter;
1692 Node : not null Gela.Elements.Exception_Renaming_Declarations.
1693 Exception_Renaming_Declaration_Access)
1694 is
1695 pragma Unreferenced (Node);
1696 begin
1697 Self.Result := An_Exception_Renaming_Declaration;
1698 end Exception_Renaming_Declaration;
1699
1700 overriding procedure Exit_Statement
1701 (Self : in out Visiter;
1702 Node : not null Gela.Elements.Exit_Statements.Exit_Statement_Access)
1703 is
1704 pragma Unreferenced (Node);
1705 begin
1706 Self.Result := An_Exit_Statement;
1707 end Exit_Statement;
1708
1709 overriding procedure Explicit_Dereference
1710 (Self : in out Visiter;
1711 Node : not null Gela.Elements.Explicit_Dereferences.
1712 Explicit_Dereference_Access)
1713 is
1714 pragma Unreferenced (Node);
1715 begin
1716 Self.Result := An_Explicit_Dereference;
1717 end Explicit_Dereference;
1718
1719 ---------------
1720 -- Flat_Kind --
1721 ---------------
1722
1723 function Flat_Kind (Element : Asis.Element) return Element_Flat_Kind is
1724 V : aliased Visiter := (Result => Not_An_Element);
1725 begin
1726 Element.Data.Visit (V);
1727 pragma Assert
1728 (Element.Data.Assigned and then V.Result /= Not_An_Element);
1729 return V.Result;
1730 end Flat_Kind;
1731
1732 overriding procedure Formal_Derived_Type_Definition
1733 (Self : in out Visiter;
1734 Node : not null Gela.Elements.Formal_Derived_Type_Definitions.
1735 Formal_Derived_Type_Definition_Access)
1736 is
1737 pragma Unreferenced (Node);
1738 begin
1739 Self.Result := A_Formal_Derived_Type_Definition;
1740 end Formal_Derived_Type_Definition;
1741
1742 overriding procedure Formal_Type_Declaration
1743 (Self : in out Visiter;
1744 Node : not null Gela.Elements.Formal_Type_Declarations.
1745 Formal_Type_Declaration_Access)
1746 is
1747 pragma Unreferenced (Node);
1748 begin
1749 Self.Result := A_Formal_Type_Declaration;
1750 end Formal_Type_Declaration;
1751
1752 overriding procedure Full_Type_Declaration
1753 (Self : in out Visiter;
1754 Node : not null Gela.Elements.Full_Type_Declarations.
1755 Full_Type_Declaration_Access)
1756 is
1757 pragma Unreferenced (Node);
1758 begin
1759 Self.Result := An_Ordinary_Type_Declaration;
1760 end Full_Type_Declaration;
1761
1762 overriding procedure Function_Body
1763 (Self : in out Visiter;
1764 Node : not null Gela.Elements.Function_Bodies.Function_Body_Access)
1765 is
1766 pragma Unreferenced (Node);
1767 begin
1768 Self.Result := A_Function_Body_Declaration;
1769 end Function_Body;
1770
1771 overriding procedure Function_Declaration
1772 (Self : in out Visiter;
1773 Node : not null Gela.Elements.Function_Declarations.
1774 Function_Declaration_Access)
1775 is
1776 pragma Unreferenced (Node);
1777 begin
1778 Self.Result := A_Function_Declaration;
1779 end Function_Declaration;
1780
1781 overriding procedure Generic_Association
1782 (Self : in out Visiter;
1783 Node : not null Gela.Elements.Generic_Associations.
1784 Generic_Association_Access)
1785 is
1786 pragma Unreferenced (Node);
1787 begin
1788 Self.Result := A_Generic_Association;
1789 end Generic_Association;
1790
1791 overriding procedure Generic_Package_Declaration
1792 (Self : in out Visiter;
1793 Node : not null Gela.Elements.Generic_Package_Declarations.
1794 Generic_Package_Declaration_Access)
1795 is
1796 pragma Unreferenced (Node);
1797 begin
1798 Self.Result := A_Generic_Package_Declaration;
1799 end Generic_Package_Declaration;
1800
1801 overriding procedure Identifier
1802 (Self : in out Visiter;
1803 Node : not null Gela.Elements.Identifiers.Identifier_Access)
1804 is
1805 Name : constant Gela.Elements.Defining_Names.Defining_Name_Access :=
1806 Node.Defining_Name;
1807 begin
1808 if Name.Assigned then
1809 Name.Visit (Self);
1810
1811 if Self.Result = A_Defining_Enumeration_Literal then
1812 Self.Result := An_Enumeration_Literal;
1813
1814 return;
1815 end if;
1816 end if;
1817
1818 Self.Result := An_Identifier;
1819 end Identifier;
1820
1821 overriding procedure If_Path
1822 (Self : in out Visiter;
1823 Node : not null Gela.Elements.If_Paths.If_Path_Access)
1824 is
1825 pragma Unreferenced (Node);
1826 begin
1827 Self.Result := An_If_Path;
1828 end If_Path;
1829
1830 overriding procedure If_Statement
1831 (Self : in out Visiter;
1832 Node : not null Gela.Elements.If_Statements.If_Statement_Access)
1833 is
1834 pragma Unreferenced (Node);
1835 begin
1836 Self.Result := An_If_Statement;
1837 end If_Statement;
1838
1839 overriding procedure Incomplete_Type_Declaration
1840 (Self : in out Visiter;
1841 Node : not null Gela.Elements.Incomplete_Type_Declarations.
1842 Incomplete_Type_Declaration_Access)
1843 is
1844 pragma Unreferenced (Node);
1845 begin
1846 Self.Result := An_Incomplete_Type_Declaration;
1847 end Incomplete_Type_Declaration;
1848
1849 overriding procedure Incomplete_Type_Definition
1850 (Self : in out Visiter;
1851 Node : not null Gela.Elements.Incomplete_Type_Definitions.
1852 Incomplete_Type_Definition_Access)
1853 is
1854 pragma Unreferenced (Node);
1855 begin
1856 Self.Result := An_Incomplete_Type_Definition;
1857 end Incomplete_Type_Definition;
1858
1859 overriding procedure Known_Discriminant_Part
1860 (Self : in out Visiter;
1861 Node : not null Gela.Elements.Known_Discriminant_Parts.
1862 Known_Discriminant_Part_Access)
1863 is
1864 pragma Unreferenced (Node);
1865 begin
1866 Self.Result := A_Known_Discriminant_Part;
1867 end Known_Discriminant_Part;
1868
1869 overriding procedure Loop_Statement
1870 (Self : in out Visiter;
1871 Node : not null Gela.Elements.Loop_Statements.Loop_Statement_Access)
1872 is
1873 pragma Unreferenced (Node);
1874 begin
1875 Self.Result := A_Loop_Statement;
1876 end Loop_Statement;
1877
1878 overriding procedure Membership_Test
1879 (Self : in out Visiter;
1880 Node : not null Gela.Elements.Membership_Tests.Membership_Test_Access)
1881 is
1882 use type Gela.Lexical_Types.Token_Count;
1883 begin
1884 if Node.Not_Token = 0 then
1885 Self.Result := An_In_Range_Membership_Test;
1886 else
1887 Self.Result := A_Not_In_Range_Membership_Test;
1888 end if;
1889 end Membership_Test;
1890
1891 overriding procedure Null_Component
1892 (Self : in out Visiter;
1893 Node : not null Gela.Elements.Null_Components.Null_Component_Access)
1894 is
1895 pragma Unreferenced (Node);
1896 begin
1897 Self.Result := A_Null_Component;
1898 end Null_Component;
1899
1900 overriding procedure Null_Statement
1901 (Self : in out Visiter;
1902 Node : not null Gela.Elements.Null_Statements.Null_Statement_Access)
1903 is
1904 pragma Unreferenced (Node);
1905 begin
1906 Self.Result := A_Null_Statement;
1907 end Null_Statement;
1908
1909 overriding procedure Number_Declaration
1910 (Self : in out Visiter;
1911 Node : not null Gela.Elements.Number_Declarations.
1912 Number_Declaration_Access)
1913 is
1914 pragma Unreferenced (Node);
1915 begin
1916 Self.Result := An_Integer_Number_Declaration;
1917 end Number_Declaration;
1918
1919 overriding procedure Numeric_Literal
1920 (Self : in out Visiter;
1921 Node : not null Gela.Elements.Numeric_Literals.Numeric_Literal_Access)
1922 is
1923 pragma Unreferenced (Node);
1924 begin
1925 Self.Result := An_Integer_Literal;
1926 end Numeric_Literal;
1927
1928 overriding procedure Object_Declaration
1929 (Self : in out Visiter;
1930 Node : not null Gela.Elements.Object_Declarations.
1931 Object_Declaration_Access)
1932 is
1933 use type Gela.Lexical_Types.Token_Count;
1934 begin
1935 if Node.Constant_Token = 0 then
1936 Self.Result := A_Variable_Declaration;
1937 else
1938 Self.Result := A_Constant_Declaration;
1939 end if;
1940 end Object_Declaration;
1941
1942 overriding procedure Object_Renaming_Declaration
1943 (Self : in out Visiter;
1944 Node : not null Gela.Elements.Object_Renaming_Declarations.
1945 Object_Renaming_Declaration_Access)
1946 is
1947 pragma Unreferenced (Node);
1948 begin
1949 Self.Result := An_Object_Renaming_Declaration;
1950 end Object_Renaming_Declaration;
1951
1952 overriding procedure Operator_Symbol
1953 (Self : in out Visiter;
1954 Node : not null Gela.Elements.Operator_Symbols.Operator_Symbol_Access)
1955 is
1956 Operator_Map : constant array
1957 (Gela.Lexical_Types.Symbol range 1 .. 19) of Element_Flat_Kind
1958 :=
1959 (A_Less_Than_Operator, An_Equal_Operator, A_Greater_Than_Operator,
1960 A_Minus_Operator, A_Divide_Operator, A_Multiply_Operator,
1961 A_Concatenate_Operator, A_Plus_Operator,
1962 A_Less_Than_Or_Equal_Operator, A_Greater_Than_Or_Equal_Operator,
1963 A_Not_Equal_Operator, An_Exponentiate_Operator, An_Or_Operator,
1964 An_And_Operator, An_Xor_Operator, A_Mod_Operator, A_Rem_Operator,
1965 An_Abs_Operator, A_Not_Operator);
1966
1967 Comp : constant Gela.Compilations.Compilation_Access :=
1968 Node.Enclosing_Compilation;
1969 Token : constant Gela.Lexical_Types.Token :=
1970 Comp.Get_Token (Node.Operator_Symbol_Token);
1971 begin
1972 if Token.Symbol in Operator_Map'Range then
1973 Self.Result := Operator_Map (Token.Symbol);
1974 end if;
1975 end Operator_Symbol;
1976
1977 overriding procedure Others_Choice
1978 (Self : in out Visiter;
1979 Node : not null Gela.Elements.Others_Choices.Others_Choice_Access)
1980 is
1981 pragma Unreferenced (Node);
1982 begin
1983 Self.Result := An_Others_Choice;
1984 end Others_Choice;
1985
1986 overriding procedure Package_Body
1987 (Self : in out Visiter;
1988 Node : not null Gela.Elements.Package_Bodies.Package_Body_Access)
1989 is
1990 pragma Unreferenced (Node);
1991 begin
1992 Self.Result := A_Package_Body_Declaration;
1993 end Package_Body;
1994
1995 overriding procedure Package_Body_Stub
1996 (Self : in out Visiter;
1997 Node : not null Gela.Elements.Package_Body_Stubs.
1998 Package_Body_Stub_Access)
1999 is
2000 pragma Unreferenced (Node);
2001 begin
2002 Self.Result := A_Package_Body_Stub;
2003 end Package_Body_Stub;
2004
2005 overriding procedure Package_Declaration
2006 (Self : in out Visiter;
2007 Node : not null Gela.Elements.Package_Declarations.
2008 Package_Declaration_Access)
2009 is
2010 pragma Unreferenced (Node);
2011 begin
2012 Self.Result := A_Package_Declaration;
2013 end Package_Declaration;
2014
2015 overriding procedure Package_Instantiation
2016 (Self : in out Visiter;
2017 Node : not null Gela.Elements.Package_Instantiations.
2018 Package_Instantiation_Access)
2019 is
2020 pragma Unreferenced (Node);
2021 begin
2022 Self.Result := A_Package_Instantiation;
2023 end Package_Instantiation;
2024
2025 overriding procedure Package_Renaming_Declaration
2026 (Self : in out Visiter;
2027 Node : not null Gela.Elements.Package_Renaming_Declarations.
2028 Package_Renaming_Declaration_Access)
2029 is
2030 pragma Unreferenced (Node);
2031 begin
2032 Self.Result := A_Package_Renaming_Declaration;
2033 end Package_Renaming_Declaration;
2034
2035 overriding procedure Parameter_Specification
2036 (Self : in out Visiter;
2037 Node : not null Gela.Elements.Parameter_Specifications.
2038 Parameter_Specification_Access)
2039 is
2040 pragma Unreferenced (Node);
2041 begin
2042 Self.Result := A_Parameter_Specification;
2043 end Parameter_Specification;
2044
2045 overriding procedure Pragma_Node
2046 (Self : in out Visiter;
2047 Node : not null Gela.Elements.Pragma_Nodes.Pragma_Node_Access)
2048 is
2049 package X renames Gela.Lexical_Types.Predefined_Symbols;
2050
2051 Comp : constant Gela.Compilations.Compilation_Access :=
2052 Node.Enclosing_Compilation;
2053 Token : constant Gela.Lexical_Types.Token :=
2054 Comp.Get_Token (Node.Pragma_Token);
2055 Map : constant array
2056 (Gela.Lexical_Types.Symbol range
2057 X.All_Calls_Remote .. X.Storage_Size) of Element_Flat_Kind :=
2058 (X.All_Calls_Remote => An_All_Calls_Remote_Pragma,
2059 X.Assert => An_Assert_Pragma,
2060 X.Assertion_Policy => An_Assertion_Policy_Pragma,
2061 X.Asynchronous => An_Asynchronous_Pragma,
2062 X.Atomic => An_Atomic_Pragma,
2063 X.Atomic_Components => An_Atomic_Components_Pragma,
2064 X.Attach_Handler => An_Attach_Handler_Pragma,
2065 X.Controlled => A_Controlled_Pragma,
2066 X.Convention => A_Convention_Pragma,
2067 X.Detect_Blocking => A_Detect_Blocking_Pragma,
2068 X.Discard_Names => A_Discard_Names_Pragma,
2069 X.Elaborate => An_Elaborate_Pragma,
2070 X.Elaborate_All => An_Elaborate_All_Pragma,
2071 X.Elaborate_Body => An_Elaborate_Body_Pragma,
2072 X.Export => An_Export_Pragma,
2073 X.Import => An_Import_Pragma,
2074 X.Inline => An_Inline_Pragma,
2075 X.Inspection_Point => An_Inspection_Point_Pragma,
2076 X.Interrupt_Handler => An_Interrupt_Handler_Pragma,
2077 X.Interrupt_Priority => An_Interrupt_Priority_Pragma,
2078 X.Linker_Options => A_Linker_Options_Pragma,
2079 X.List => A_List_Pragma,
2080 X.Locking_Policy => A_Locking_Policy_Pragma,
2081 X.No_Return => A_No_Return_Pragma,
2082 X.Normalize_Scalars => A_Normalize_Scalars_Pragma,
2083 X.Optimize => An_Optimize_Pragma,
2084 X.Pack => A_Pack_Pragma,
2085 X.Page => A_Page_Pragma,
2086 X.Partition_Elaboration_Policy =>
2087 A_Partition_Elaboration_Policy_Pragma,
2088 X.Preelaborable_Initialization =>
2089 A_Preelaborable_Initialization_Pragma,
2090 X.Preelaborate => A_Preelaborate_Pragma,
2091 X.Priority => A_Priority_Pragma,
2092 X.Priority_Specific_Dispatching =>
2093 A_Priority_Specific_Dispatching_Pragma,
2094 X.Profile => A_Profile_Pragma,
2095 X.Pure => A_Pure_Pragma,
2096 X.Queuing_Policy => A_Queuing_Policy_Pragma,
2097 X.Relative_Deadline => A_Relative_Deadline_Pragma,
2098 X.Remote_Call_Interface => A_Remote_Call_Interface_Pragma,
2099 X.Remote_Types => A_Remote_Types_Pragma,
2100 X.Restrictions => A_Restrictions_Pragma,
2101 X.Reviewable => A_Reviewable_Pragma,
2102 X.Shared_Passive => A_Shared_Passive_Pragma,
2103 X.Storage_Size => A_Storage_Size_Pragma,
2104 X.Suppress => A_Suppress_Pragma,
2105 X.Task_Dispatching_Policy => A_Task_Dispatching_Policy_Pragma,
2106 X.Unchecked_Union => An_Unchecked_Union_Pragma,
2107 X.Unsuppress => An_Unsuppress_Pragma,
2108 X.Volatile => A_Volatile_Pragma,
2109 X.Volatile_Components => A_Volatile_Components_Pragma,
2110 others => An_Unknown_Pragma);
2111
2112 begin
2113 if Token.Symbol in Map'Range then
2114 Self.Result := Map (Token.Symbol);
2115 else
2116 Self.Result := An_Unknown_Pragma;
2117 end if;
2118 end Pragma_Node;
2119
2120 overriding procedure Private_Type_Declaration
2121 (Self : in out Visiter;
2122 Node : not null Gela.Elements.Private_Type_Declarations.
2123 Private_Type_Declaration_Access)
2124 is
2125 pragma Unreferenced (Node);
2126 begin
2127 Self.Result := A_Private_Type_Declaration;
2128 end Private_Type_Declaration;
2129
2130 overriding procedure Private_Type_Definition
2131 (Self : in out Visiter;
2132 Node : not null Gela.Elements.Private_Type_Definitions.
2133 Private_Type_Definition_Access)
2134 is
2135 pragma Unreferenced (Node);
2136 begin
2137 Self.Result := A_Private_Type_Definition;
2138 end Private_Type_Definition;
2139
2140 --------------------
2141 -- Procedure_Body --
2142 --------------------
2143
2144 overriding procedure Procedure_Body
2145 (Self : in out Visiter;
2146 Node : not null Gela.Elements.Procedure_Bodies.Procedure_Body_Access)
2147 is
2148 pragma Unreferenced (Node);
2149 begin
2150 Self.Result := A_Procedure_Body_Declaration;
2151 end Procedure_Body;
2152
2153 ------------------------------
2154 -- Procedure_Call_Statement --
2155 ------------------------------
2156
2157 overriding procedure Procedure_Call_Statement
2158 (Self : in out Visiter;
2159 Node : not null Gela.Elements.Procedure_Call_Statements.
2160 Procedure_Call_Statement_Access)
2161 is
2162 pragma Unreferenced (Node);
2163 begin
2164 Self.Result := A_Procedure_Call_Statement;
2165 end Procedure_Call_Statement;
2166
2167 overriding procedure Procedure_Declaration
2168 (Self : in out Visiter;
2169 Node : not null Gela.Elements.Procedure_Declarations.
2170 Procedure_Declaration_Access)
2171 is
2172 pragma Unreferenced (Node);
2173 begin
2174 Self.Result := A_Procedure_Declaration;
2175 end Procedure_Declaration;
2176
2177 overriding procedure Protected_Body
2178 (Self : in out Visiter;
2179 Node : not null Gela.Elements.Protected_Bodies.Protected_Body_Access)
2180 is
2181 pragma Unreferenced (Node);
2182 begin
2183 Self.Result := A_Protected_Body_Declaration;
2184 end Protected_Body;
2185
2186 overriding procedure Protected_Definition
2187 (Self : in out Visiter;
2188 Node : not null Gela.Elements.Protected_Definitions.
2189 Protected_Definition_Access)
2190 is
2191 pragma Unreferenced (Node);
2192 begin
2193 Self.Result := A_Protected_Definition;
2194 end Protected_Definition;
2195
2196 overriding procedure Qualified_Expression
2197 (Self : in out Visiter;
2198 Node : not null Gela.Elements.Qualified_Expressions.
2199 Qualified_Expression_Access)
2200 is
2201 pragma Unreferenced (Node);
2202 begin
2203 Self.Result := A_Qualified_Expression;
2204 end Qualified_Expression;
2205
2206 overriding procedure Range_Attribute_Reference
2207 (Self : in out Visiter;
2208 Node : not null Gela.Elements.Range_Attribute_References.
2209 Range_Attribute_Reference_Access)
2210 is
2211 pragma Unreferenced (Node);
2212 begin
2213 Self.Result := A_Range_Attribute_Reference;
2214 end Range_Attribute_Reference;
2215
2216 overriding procedure Record_Aggregate
2217 (Self : in out Visiter;
2218 Node : not null Gela.Elements.Record_Aggregates.Record_Aggregate_Access)
2219 is
2220 pragma Unreferenced (Node);
2221 begin
2222 Self.Result := A_Record_Aggregate;
2223 end Record_Aggregate;
2224
2225 overriding procedure Record_Definition
2226 (Self : in out Visiter;
2227 Node : not null Gela.Elements.Record_Definitions.
2228 Record_Definition_Access)
2229 is
2230 pragma Unreferenced (Node);
2231 begin
2232 Self.Result := A_Record_Definition;
2233 end Record_Definition;
2234
2235 overriding procedure Record_Type_Definition
2236 (Self : in out Visiter;
2237 Node : not null Gela.Elements.Record_Type_Definitions.
2238 Record_Type_Definition_Access)
2239 is
2240 pragma Unreferenced (Node);
2241 begin
2242 Self.Result := A_Record_Type_Definition;
2243 end Record_Type_Definition;
2244
2245 overriding procedure Requeue_Statement
2246 (Self : in out Visiter;
2247 Node : not null Gela.Elements.Requeue_Statements.
2248 Requeue_Statement_Access)
2249 is
2250 use type Gela.Lexical_Types.Token_Count;
2251 begin
2252 if Node.With_Token = 0 then
2253 Self.Result := A_Requeue_Statement;
2254 else
2255 Self.Result := A_Requeue_Statement_With_Abort;
2256 end if;
2257 end Requeue_Statement;
2258
2259 overriding procedure Select_Or_Path
2260 (Self : in out Visiter;
2261 Node : not null Gela.Elements.Select_Or_Paths.Select_Or_Path_Access)
2262 is
2263 pragma Unreferenced (Node);
2264 begin
2265 Self.Result := An_Or_Path;
2266 end Select_Or_Path;
2267
2268 ------------------------
2269 -- Selected_Component --
2270 ------------------------
2271
2272 overriding procedure Selected_Component
2273 (Self : in out Visiter;
2274 Node : not null Gela.Elements.Selected_Components.
2275 Selected_Component_Access)
2276 is
2277 pragma Unreferenced (Node);
2278 begin
2279 Self.Result := A_Selected_Component;
2280 end Selected_Component;
2281
2282 -------------------------
2283 -- Selected_Identifier --
2284 -------------------------
2285
2286 overriding procedure Selected_Identifier
2287 (Self : in out Visiter;
2288 Node : not null Gela.Elements.Selected_Identifiers.
2289 Selected_Identifier_Access)
2290 is
2291 pragma Unreferenced (Node);
2292 begin
2293 Self.Result := A_Selected_Component;
2294 end Selected_Identifier;
2295
2296 overriding procedure Selective_Accept
2297 (Self : in out Visiter;
2298 Node : not null Gela.Elements.Selective_Accepts.Selective_Accept_Access)
2299 is
2300 pragma Unreferenced (Node);
2301 begin
2302 Self.Result := A_Selective_Accept_Statement;
2303 end Selective_Accept;
2304
2305 overriding procedure Signed_Integer_Type_Definition
2306 (Self : in out Visiter;
2307 Node : not null Gela.Elements.Signed_Integer_Type_Definitions.
2308 Signed_Integer_Type_Definition_Access)
2309 is
2310 pragma Unreferenced (Node);
2311 begin
2312 Self.Result := A_Signed_Integer_Type_Definition;
2313 end Signed_Integer_Type_Definition;
2314
2315 overriding procedure Simple_Expression_Range
2316 (Self : in out Visiter;
2317 Node : not null Gela.Elements.Simple_Expression_Ranges.
2318 Simple_Expression_Range_Access)
2319 is
2320 pragma Unreferenced (Node);
2321 begin
2322 Self.Result := A_Discrete_Simple_Expression_Range;
2323 end Simple_Expression_Range;
2324
2325 overriding procedure Simple_Expression_Range_Dr
2326 (Self : in out Visiter;
2327 Node : not null Gela.Elements.Simple_Expression_Range_Drs.
2328 Simple_Expression_Range_Dr_Access)
2329 is
2330 pragma Unreferenced (Node);
2331 begin
2332 Self.Result := A_Discrete_Simple_Expression_Range_DR;
2333 end Simple_Expression_Range_Dr;
2334
2335 overriding procedure Simple_Return_Statement
2336 (Self : in out Visiter;
2337 Node : not null Gela.Elements.Simple_Return_Statements.
2338 Simple_Return_Statement_Access)
2339 is
2340 pragma Unreferenced (Node);
2341 begin
2342 Self.Result := A_Simple_Return_Statement;
2343 end Simple_Return_Statement;
2344
2345 overriding procedure Single_Protected_Declaration
2346 (Self : in out Visiter;
2347 Node : not null Gela.Elements.Single_Protected_Declarations.
2348 Single_Protected_Declaration_Access)
2349 is
2350 pragma Unreferenced (Node);
2351 begin
2352 Self.Result := A_Single_Protected_Declaration;
2353 end Single_Protected_Declaration;
2354
2355 overriding procedure Single_Task_Declaration
2356 (Self : in out Visiter;
2357 Node : not null Gela.Elements.Single_Task_Declarations.
2358 Single_Task_Declaration_Access)
2359 is
2360 pragma Unreferenced (Node);
2361 begin
2362 Self.Result := A_Single_Task_Declaration;
2363 end Single_Task_Declaration;
2364
2365 --------------------
2366 -- String_Literal --
2367 --------------------
2368
2369 overriding procedure String_Literal
2370 (Self : in out Visiter;
2371 Node : not null Gela.Elements.String_Literals.String_Literal_Access)
2372 is
2373 pragma Unreferenced (Node);
2374 begin
2375 Self.Result := A_String_Literal;
2376 end String_Literal;
2377
2378 overriding procedure Subtype_Declaration
2379 (Self : in out Visiter;
2380 Node : not null Gela.Elements.Subtype_Declarations.
2381 Subtype_Declaration_Access)
2382 is
2383 pragma Unreferenced (Node);
2384 begin
2385 Self.Result := A_Subtype_Declaration;
2386 end Subtype_Declaration;
2387
2388 overriding procedure Subtype_Indication
2389 (Self : in out Visiter;
2390 Node : not null Gela.Elements.Subtype_Indications.
2391 Subtype_Indication_Access)
2392 is
2393 pragma Unreferenced (Node);
2394 begin
2395 Self.Result := A_Subtype_Indication;
2396 end Subtype_Indication;
2397
2398 overriding procedure Task_Body
2399 (Self : in out Visiter;
2400 Node : not null Gela.Elements.Task_Bodies.Task_Body_Access)
2401 is
2402 pragma Unreferenced (Node);
2403 begin
2404 Self.Result := A_Task_Body_Declaration;
2405 end Task_Body;
2406
2407 overriding procedure Task_Body_Stub
2408 (Self : in out Visiter;
2409 Node : not null Gela.Elements.Task_Body_Stubs.Task_Body_Stub_Access)
2410 is
2411 pragma Unreferenced (Node);
2412 begin
2413 Self.Result := A_Task_Body_Stub;
2414 end Task_Body_Stub;
2415
2416 overriding procedure Task_Definition
2417 (Self : in out Visiter;
2418 Node : not null Gela.Elements.Task_Definitions.Task_Definition_Access)
2419 is
2420 pragma Unreferenced (Node);
2421 begin
2422 Self.Result := A_Task_Definition;
2423 end Task_Definition;
2424
2425 overriding procedure Terminate_Alternative_Statement
2426 (Self : in out Visiter;
2427 Node : not null Gela.Elements.Terminate_Alternative_Statements.
2428 Terminate_Alternative_Statement_Access)
2429 is
2430 pragma Unreferenced (Node);
2431 begin
2432 Self.Result := A_Terminate_Alternative_Statement;
2433 end Terminate_Alternative_Statement;
2434
2435 overriding procedure Unconstrained_Array_Definition
2436 (Self : in out Visiter;
2437 Node : not null Gela.Elements.Unconstrained_Array_Definitions.
2438 Unconstrained_Array_Definition_Access)
2439 is
2440 pragma Unreferenced (Node);
2441 begin
2442 Self.Result := An_Unconstrained_Array_Definition;
2443 end Unconstrained_Array_Definition;
2444
2445 ------------------------
2446 -- Use_Package_Clause --
2447 ------------------------
2448
2449 overriding procedure Use_Package_Clause
2450 (Self : in out Visiter;
2451 Node : not null Gela.Elements.Use_Package_Clauses.
2452 Use_Package_Clause_Access)
2453 is
2454 pragma Unreferenced (Node);
2455 begin
2456 Self.Result := A_Use_Package_Clause;
2457 end Use_Package_Clause;
2458
2459 overriding procedure Use_Type_Clause
2460 (Self : in out Visiter;
2461 Node : not null Gela.Elements.Use_Type_Clauses.Use_Type_Clause_Access)
2462 is
2463 pragma Unreferenced (Node);
2464 begin
2465 Self.Result := A_Use_Type_Clause;
2466 end Use_Type_Clause;
2467
2468 overriding procedure Variant
2469 (Self : in out Visiter;
2470 Node : not null Gela.Elements.Variants.Variant_Access)
2471 is
2472 pragma Unreferenced (Node);
2473 begin
2474 Self.Result := A_Variant;
2475 end Variant;
2476
2477 overriding procedure Variant_Part
2478 (Self : in out Visiter;
2479 Node : not null Gela.Elements.Variant_Parts.Variant_Part_Access)
2480 is
2481 pragma Unreferenced (Node);
2482 begin
2483 Self.Result := A_Variant_Part;
2484 end Variant_Part;
2485
2486 -----------------
2487 -- With_Clause --
2488 -----------------
2489
2490 overriding procedure With_Clause
2491 (Self : in out Visiter;
2492 Node : not null Gela.Elements.With_Clauses.With_Clause_Access)
2493 is
2494 pragma Unreferenced (Node);
2495 begin
2496 Self.Result := A_With_Clause;
2497 end With_Clause;
2498
2499end Asis.Extensions.Flat_Kinds;
Note: See TracBrowser for help on using the repository browser.