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

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

Fix Defining_Character_Literal and add next test

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