parser: remove spaces errors in generated files
[nit.git] / src / parser / parser_prod.nit
1 # Production AST nodes full definition.
2 # This file was generated by SableCC (http://www.sablecc.org/).
3 package parser_prod
4
5 import lexer
6 intrude import parser_nodes
7
8 redef class ANode
9 # Parent of the node in the AST
10 readable writable var _parent: nullable ANode
11
12 # Remove a child from the AST
13 fun remove_child(child: ANode)
14 do
15 replace_child(child, null)
16 end
17
18 # Replace a child with an other node in the AST
19 fun replace_child(old_child: ANode, new_child: nullable ANode) is abstract
20
21 # Replace itself with an other node in the AST
22 fun replace_with(node: ANode)
23 do
24 if (_parent != null) then
25 _parent.replace_child(self, node)
26 end
27 end
28
29 # Visit all nodes in order.
30 # Thus, call "v.visit(e)" for each node e
31 fun visit_all(v: Visitor) is abstract
32
33 # Visit all nodes in reverse order.
34 # Thus, call "v.visit(e)" for each node e starting from the last child
35 fun visit_all_reverse(v: Visitor) is abstract
36
37 # Debug method: output a message prefixed with the location.
38 fun printl(str: String)
39 do
40 if location == null then
41 print("???: {str}\n")
42 else
43 print("{location}: {str}\n")
44 end
45 end
46 end
47
48 redef class Token
49 redef fun visit_all(v: Visitor) do end
50 redef fun visit_all_reverse(v: Visitor) do end
51 redef fun replace_child(old_child: ANode, new_child: nullable ANode) do end
52 end
53
54 redef class Prod
55 # The first token of the production node
56 readable writable var _first_token: nullable Token
57
58 # The last token of the production node
59 readable writable var _last_token: nullable Token
60
61 redef fun replace_with(n: ANode)
62 do
63 super
64 assert n isa Prod
65 n.first_token = first_token
66 n.last_token = last_token
67 n.location = location
68 end
69 end
70
71 # Abstract standard visitor
72 class Visitor
73 # What the visitor do when a node is visited
74 # Concrete visitors should redefine this method.
75 protected fun visit(e: nullable ANode) is abstract
76
77 # Ask the visitor to visit a given node.
78 # Usually automatically called by visit_all* methods.
79 # This methos should not be redefined
80 fun enter_visit(e: nullable ANode)
81 do
82 var old = _current_node
83 _current_node = e
84 visit(e)
85 _current_node = old
86 end
87
88 # The current visited node
89 readable var _current_node: nullable ANode = null
90 end
91
92 redef class AModule
93 redef fun n_packagedecl=(n)
94 do
95 _n_packagedecl = n
96 if n != null then
97 n.parent = self
98 end
99 end
100
101 private init empty_init do end
102
103 init init_amodule (
104 n_packagedecl: nullable APackagedecl,
105 n_imports: Collection[Object], # Should be Collection[AImport]
106 n_classdefs: Collection[Object] # Should be Collection[AClassdef]
107 )
108 do
109 empty_init
110 _n_packagedecl = n_packagedecl
111 if n_packagedecl != null then
112 n_packagedecl.parent = self
113 end
114 for n in n_imports do
115 assert n isa AImport
116 _n_imports.add(n)
117 n.parent = self
118 end
119 for n in n_classdefs do
120 assert n isa AClassdef
121 _n_classdefs.add(n)
122 n.parent = self
123 end
124 end
125
126 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
127 do
128 if _n_packagedecl == old_child then
129 if new_child != null then
130 new_child.parent = self
131 assert new_child isa APackagedecl
132 _n_packagedecl = new_child
133 else
134 _n_packagedecl = null
135 end
136 return
137 end
138 for i in [0.._n_imports.length[ do
139 if _n_imports[i] == old_child then
140 if new_child != null then
141 assert new_child isa AImport
142 _n_imports[i] = new_child
143 new_child.parent = self
144 else
145 _n_imports.remove_at(i)
146 end
147 return
148 end
149 end
150 for i in [0.._n_classdefs.length[ do
151 if _n_classdefs[i] == old_child then
152 if new_child != null then
153 assert new_child isa AClassdef
154 _n_classdefs[i] = new_child
155 new_child.parent = self
156 else
157 _n_classdefs.remove_at(i)
158 end
159 return
160 end
161 end
162 end
163
164 redef fun visit_all(v: Visitor)
165 do
166 if _n_packagedecl != null then
167 v.enter_visit(_n_packagedecl.as(not null))
168 end
169 for n in _n_imports do
170 v.enter_visit(n)
171 end
172 for n in _n_classdefs do
173 v.enter_visit(n)
174 end
175 end
176
177 redef fun visit_all_reverse(v: Visitor)
178 do
179 if _n_packagedecl != null then
180 v.enter_visit(_n_packagedecl.as(not null))
181 end
182 do
183 var i = _n_imports.length
184 while i >= 0 do
185 v.enter_visit(_n_imports[i])
186 i = i - 1
187 end
188 end
189 do
190 var i = _n_classdefs.length
191 while i >= 0 do
192 v.enter_visit(_n_classdefs[i])
193 i = i - 1
194 end
195 end
196 end
197 end
198 redef class APackagedecl
199 redef fun n_doc=(n)
200 do
201 _n_doc = n
202 if n != null then
203 n.parent = self
204 end
205 end
206 redef fun n_kwpackage=(n)
207 do
208 _n_kwpackage = n
209 n.parent = self
210 end
211 redef fun n_id=(n)
212 do
213 _n_id = n
214 n.parent = self
215 end
216
217 private init empty_init do end
218
219 init init_apackagedecl (
220 n_doc: nullable ADoc,
221 n_kwpackage: nullable TKwpackage,
222 n_id: nullable TId
223 )
224 do
225 empty_init
226 _n_doc = n_doc
227 if n_doc != null then
228 n_doc.parent = self
229 end
230 _n_kwpackage = n_kwpackage.as(not null)
231 n_kwpackage.parent = self
232 _n_id = n_id.as(not null)
233 n_id.parent = self
234 end
235
236 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
237 do
238 if _n_doc == old_child then
239 if new_child != null then
240 new_child.parent = self
241 assert new_child isa ADoc
242 _n_doc = new_child
243 else
244 _n_doc = null
245 end
246 return
247 end
248 if _n_kwpackage == old_child then
249 if new_child != null then
250 new_child.parent = self
251 assert new_child isa TKwpackage
252 _n_kwpackage = new_child
253 else
254 abort
255 end
256 return
257 end
258 if _n_id == old_child then
259 if new_child != null then
260 new_child.parent = self
261 assert new_child isa TId
262 _n_id = new_child
263 else
264 abort
265 end
266 return
267 end
268 end
269
270 redef fun visit_all(v: Visitor)
271 do
272 if _n_doc != null then
273 v.enter_visit(_n_doc.as(not null))
274 end
275 v.enter_visit(_n_kwpackage)
276 v.enter_visit(_n_id)
277 end
278
279 redef fun visit_all_reverse(v: Visitor)
280 do
281 if _n_doc != null then
282 v.enter_visit(_n_doc.as(not null))
283 end
284 v.enter_visit(_n_kwpackage)
285 v.enter_visit(_n_id)
286 end
287 end
288 redef class AStdImport
289 redef fun n_visibility=(n)
290 do
291 _n_visibility = n
292 n.parent = self
293 end
294 redef fun n_kwimport=(n)
295 do
296 _n_kwimport = n
297 n.parent = self
298 end
299 redef fun n_id=(n)
300 do
301 _n_id = n
302 n.parent = self
303 end
304
305 private init empty_init do end
306
307 init init_astdimport (
308 n_visibility: nullable AVisibility,
309 n_kwimport: nullable TKwimport,
310 n_id: nullable TId
311 )
312 do
313 empty_init
314 _n_visibility = n_visibility.as(not null)
315 n_visibility.parent = self
316 _n_kwimport = n_kwimport.as(not null)
317 n_kwimport.parent = self
318 _n_id = n_id.as(not null)
319 n_id.parent = self
320 end
321
322 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
323 do
324 if _n_visibility == old_child then
325 if new_child != null then
326 new_child.parent = self
327 assert new_child isa AVisibility
328 _n_visibility = new_child
329 else
330 abort
331 end
332 return
333 end
334 if _n_kwimport == old_child then
335 if new_child != null then
336 new_child.parent = self
337 assert new_child isa TKwimport
338 _n_kwimport = new_child
339 else
340 abort
341 end
342 return
343 end
344 if _n_id == old_child then
345 if new_child != null then
346 new_child.parent = self
347 assert new_child isa TId
348 _n_id = new_child
349 else
350 abort
351 end
352 return
353 end
354 end
355
356 redef fun visit_all(v: Visitor)
357 do
358 v.enter_visit(_n_visibility)
359 v.enter_visit(_n_kwimport)
360 v.enter_visit(_n_id)
361 end
362
363 redef fun visit_all_reverse(v: Visitor)
364 do
365 v.enter_visit(_n_visibility)
366 v.enter_visit(_n_kwimport)
367 v.enter_visit(_n_id)
368 end
369 end
370 redef class ANoImport
371 redef fun n_visibility=(n)
372 do
373 _n_visibility = n
374 n.parent = self
375 end
376 redef fun n_kwimport=(n)
377 do
378 _n_kwimport = n
379 n.parent = self
380 end
381 redef fun n_kwend=(n)
382 do
383 _n_kwend = n
384 n.parent = self
385 end
386
387 private init empty_init do end
388
389 init init_anoimport (
390 n_visibility: nullable AVisibility,
391 n_kwimport: nullable TKwimport,
392 n_kwend: nullable TKwend
393 )
394 do
395 empty_init
396 _n_visibility = n_visibility.as(not null)
397 n_visibility.parent = self
398 _n_kwimport = n_kwimport.as(not null)
399 n_kwimport.parent = self
400 _n_kwend = n_kwend.as(not null)
401 n_kwend.parent = self
402 end
403
404 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
405 do
406 if _n_visibility == old_child then
407 if new_child != null then
408 new_child.parent = self
409 assert new_child isa AVisibility
410 _n_visibility = new_child
411 else
412 abort
413 end
414 return
415 end
416 if _n_kwimport == old_child then
417 if new_child != null then
418 new_child.parent = self
419 assert new_child isa TKwimport
420 _n_kwimport = new_child
421 else
422 abort
423 end
424 return
425 end
426 if _n_kwend == old_child then
427 if new_child != null then
428 new_child.parent = self
429 assert new_child isa TKwend
430 _n_kwend = new_child
431 else
432 abort
433 end
434 return
435 end
436 end
437
438 redef fun visit_all(v: Visitor)
439 do
440 v.enter_visit(_n_visibility)
441 v.enter_visit(_n_kwimport)
442 v.enter_visit(_n_kwend)
443 end
444
445 redef fun visit_all_reverse(v: Visitor)
446 do
447 v.enter_visit(_n_visibility)
448 v.enter_visit(_n_kwimport)
449 v.enter_visit(_n_kwend)
450 end
451 end
452 redef class APublicVisibility
453
454 private init empty_init do end
455
456 init init_apublicvisibility
457 do
458 empty_init
459 end
460
461 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
462 do
463 end
464
465 redef fun visit_all(v: Visitor)
466 do
467 end
468
469 redef fun visit_all_reverse(v: Visitor)
470 do
471 end
472 end
473 redef class APrivateVisibility
474 redef fun n_kwprivate=(n)
475 do
476 _n_kwprivate = n
477 n.parent = self
478 end
479
480 private init empty_init do end
481
482 init init_aprivatevisibility (
483 n_kwprivate: nullable TKwprivate
484 )
485 do
486 empty_init
487 _n_kwprivate = n_kwprivate.as(not null)
488 n_kwprivate.parent = self
489 end
490
491 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
492 do
493 if _n_kwprivate == old_child then
494 if new_child != null then
495 new_child.parent = self
496 assert new_child isa TKwprivate
497 _n_kwprivate = new_child
498 else
499 abort
500 end
501 return
502 end
503 end
504
505 redef fun visit_all(v: Visitor)
506 do
507 v.enter_visit(_n_kwprivate)
508 end
509
510 redef fun visit_all_reverse(v: Visitor)
511 do
512 v.enter_visit(_n_kwprivate)
513 end
514 end
515 redef class AProtectedVisibility
516 redef fun n_kwprotected=(n)
517 do
518 _n_kwprotected = n
519 n.parent = self
520 end
521
522 private init empty_init do end
523
524 init init_aprotectedvisibility (
525 n_kwprotected: nullable TKwprotected
526 )
527 do
528 empty_init
529 _n_kwprotected = n_kwprotected.as(not null)
530 n_kwprotected.parent = self
531 end
532
533 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
534 do
535 if _n_kwprotected == old_child then
536 if new_child != null then
537 new_child.parent = self
538 assert new_child isa TKwprotected
539 _n_kwprotected = new_child
540 else
541 abort
542 end
543 return
544 end
545 end
546
547 redef fun visit_all(v: Visitor)
548 do
549 v.enter_visit(_n_kwprotected)
550 end
551
552 redef fun visit_all_reverse(v: Visitor)
553 do
554 v.enter_visit(_n_kwprotected)
555 end
556 end
557 redef class AIntrudeVisibility
558 redef fun n_kwintrude=(n)
559 do
560 _n_kwintrude = n
561 n.parent = self
562 end
563
564 private init empty_init do end
565
566 init init_aintrudevisibility (
567 n_kwintrude: nullable TKwintrude
568 )
569 do
570 empty_init
571 _n_kwintrude = n_kwintrude.as(not null)
572 n_kwintrude.parent = self
573 end
574
575 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
576 do
577 if _n_kwintrude == old_child then
578 if new_child != null then
579 new_child.parent = self
580 assert new_child isa TKwintrude
581 _n_kwintrude = new_child
582 else
583 abort
584 end
585 return
586 end
587 end
588
589 redef fun visit_all(v: Visitor)
590 do
591 v.enter_visit(_n_kwintrude)
592 end
593
594 redef fun visit_all_reverse(v: Visitor)
595 do
596 v.enter_visit(_n_kwintrude)
597 end
598 end
599 redef class AStdClassdef
600 redef fun n_doc=(n)
601 do
602 _n_doc = n
603 if n != null then
604 n.parent = self
605 end
606 end
607 redef fun n_kwredef=(n)
608 do
609 _n_kwredef = n
610 if n != null then
611 n.parent = self
612 end
613 end
614 redef fun n_visibility=(n)
615 do
616 _n_visibility = n
617 n.parent = self
618 end
619 redef fun n_classkind=(n)
620 do
621 _n_classkind = n
622 n.parent = self
623 end
624 redef fun n_id=(n)
625 do
626 _n_id = n
627 if n != null then
628 n.parent = self
629 end
630 end
631
632 private init empty_init do end
633
634 init init_astdclassdef (
635 n_doc: nullable ADoc,
636 n_kwredef: nullable TKwredef,
637 n_visibility: nullable AVisibility,
638 n_classkind: nullable AClasskind,
639 n_id: nullable TClassid,
640 n_formaldefs: Collection[Object], # Should be Collection[AFormaldef]
641 n_superclasses: Collection[Object], # Should be Collection[ASuperclass]
642 n_propdefs: Collection[Object] # Should be Collection[APropdef]
643 )
644 do
645 empty_init
646 _n_doc = n_doc
647 if n_doc != null then
648 n_doc.parent = self
649 end
650 _n_kwredef = n_kwredef
651 if n_kwredef != null then
652 n_kwredef.parent = self
653 end
654 _n_visibility = n_visibility.as(not null)
655 n_visibility.parent = self
656 _n_classkind = n_classkind.as(not null)
657 n_classkind.parent = self
658 _n_id = n_id
659 if n_id != null then
660 n_id.parent = self
661 end
662 for n in n_formaldefs do
663 assert n isa AFormaldef
664 _n_formaldefs.add(n)
665 n.parent = self
666 end
667 for n in n_superclasses do
668 assert n isa ASuperclass
669 _n_superclasses.add(n)
670 n.parent = self
671 end
672 for n in n_propdefs do
673 assert n isa APropdef
674 _n_propdefs.add(n)
675 n.parent = self
676 end
677 end
678
679 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
680 do
681 if _n_doc == old_child then
682 if new_child != null then
683 new_child.parent = self
684 assert new_child isa ADoc
685 _n_doc = new_child
686 else
687 _n_doc = null
688 end
689 return
690 end
691 if _n_kwredef == old_child then
692 if new_child != null then
693 new_child.parent = self
694 assert new_child isa TKwredef
695 _n_kwredef = new_child
696 else
697 _n_kwredef = null
698 end
699 return
700 end
701 if _n_visibility == old_child then
702 if new_child != null then
703 new_child.parent = self
704 assert new_child isa AVisibility
705 _n_visibility = new_child
706 else
707 abort
708 end
709 return
710 end
711 if _n_classkind == old_child then
712 if new_child != null then
713 new_child.parent = self
714 assert new_child isa AClasskind
715 _n_classkind = new_child
716 else
717 abort
718 end
719 return
720 end
721 if _n_id == old_child then
722 if new_child != null then
723 new_child.parent = self
724 assert new_child isa TClassid
725 _n_id = new_child
726 else
727 _n_id = null
728 end
729 return
730 end
731 for i in [0.._n_formaldefs.length[ do
732 if _n_formaldefs[i] == old_child then
733 if new_child != null then
734 assert new_child isa AFormaldef
735 _n_formaldefs[i] = new_child
736 new_child.parent = self
737 else
738 _n_formaldefs.remove_at(i)
739 end
740 return
741 end
742 end
743 for i in [0.._n_superclasses.length[ do
744 if _n_superclasses[i] == old_child then
745 if new_child != null then
746 assert new_child isa ASuperclass
747 _n_superclasses[i] = new_child
748 new_child.parent = self
749 else
750 _n_superclasses.remove_at(i)
751 end
752 return
753 end
754 end
755 for i in [0.._n_propdefs.length[ do
756 if _n_propdefs[i] == old_child then
757 if new_child != null then
758 assert new_child isa APropdef
759 _n_propdefs[i] = new_child
760 new_child.parent = self
761 else
762 _n_propdefs.remove_at(i)
763 end
764 return
765 end
766 end
767 end
768
769 redef fun visit_all(v: Visitor)
770 do
771 if _n_doc != null then
772 v.enter_visit(_n_doc.as(not null))
773 end
774 if _n_kwredef != null then
775 v.enter_visit(_n_kwredef.as(not null))
776 end
777 v.enter_visit(_n_visibility)
778 v.enter_visit(_n_classkind)
779 if _n_id != null then
780 v.enter_visit(_n_id.as(not null))
781 end
782 for n in _n_formaldefs do
783 v.enter_visit(n)
784 end
785 for n in _n_superclasses do
786 v.enter_visit(n)
787 end
788 for n in _n_propdefs do
789 v.enter_visit(n)
790 end
791 end
792
793 redef fun visit_all_reverse(v: Visitor)
794 do
795 if _n_doc != null then
796 v.enter_visit(_n_doc.as(not null))
797 end
798 if _n_kwredef != null then
799 v.enter_visit(_n_kwredef.as(not null))
800 end
801 v.enter_visit(_n_visibility)
802 v.enter_visit(_n_classkind)
803 if _n_id != null then
804 v.enter_visit(_n_id.as(not null))
805 end
806 do
807 var i = _n_formaldefs.length
808 while i >= 0 do
809 v.enter_visit(_n_formaldefs[i])
810 i = i - 1
811 end
812 end
813 do
814 var i = _n_superclasses.length
815 while i >= 0 do
816 v.enter_visit(_n_superclasses[i])
817 i = i - 1
818 end
819 end
820 do
821 var i = _n_propdefs.length
822 while i >= 0 do
823 v.enter_visit(_n_propdefs[i])
824 i = i - 1
825 end
826 end
827 end
828 end
829 redef class ATopClassdef
830
831 private init empty_init do end
832
833 init init_atopclassdef (
834 n_propdefs: Collection[Object] # Should be Collection[APropdef]
835 )
836 do
837 empty_init
838 for n in n_propdefs do
839 assert n isa APropdef
840 _n_propdefs.add(n)
841 n.parent = self
842 end
843 end
844
845 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
846 do
847 for i in [0.._n_propdefs.length[ do
848 if _n_propdefs[i] == old_child then
849 if new_child != null then
850 assert new_child isa APropdef
851 _n_propdefs[i] = new_child
852 new_child.parent = self
853 else
854 _n_propdefs.remove_at(i)
855 end
856 return
857 end
858 end
859 end
860
861 redef fun visit_all(v: Visitor)
862 do
863 for n in _n_propdefs do
864 v.enter_visit(n)
865 end
866 end
867
868 redef fun visit_all_reverse(v: Visitor)
869 do
870 do
871 var i = _n_propdefs.length
872 while i >= 0 do
873 v.enter_visit(_n_propdefs[i])
874 i = i - 1
875 end
876 end
877 end
878 end
879 redef class AMainClassdef
880
881 private init empty_init do end
882
883 init init_amainclassdef (
884 n_propdefs: Collection[Object] # Should be Collection[APropdef]
885 )
886 do
887 empty_init
888 for n in n_propdefs do
889 assert n isa APropdef
890 _n_propdefs.add(n)
891 n.parent = self
892 end
893 end
894
895 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
896 do
897 for i in [0.._n_propdefs.length[ do
898 if _n_propdefs[i] == old_child then
899 if new_child != null then
900 assert new_child isa APropdef
901 _n_propdefs[i] = new_child
902 new_child.parent = self
903 else
904 _n_propdefs.remove_at(i)
905 end
906 return
907 end
908 end
909 end
910
911 redef fun visit_all(v: Visitor)
912 do
913 for n in _n_propdefs do
914 v.enter_visit(n)
915 end
916 end
917
918 redef fun visit_all_reverse(v: Visitor)
919 do
920 do
921 var i = _n_propdefs.length
922 while i >= 0 do
923 v.enter_visit(_n_propdefs[i])
924 i = i - 1
925 end
926 end
927 end
928 end
929 redef class AConcreteClasskind
930 redef fun n_kwclass=(n)
931 do
932 _n_kwclass = n
933 n.parent = self
934 end
935
936 private init empty_init do end
937
938 init init_aconcreteclasskind (
939 n_kwclass: nullable TKwclass
940 )
941 do
942 empty_init
943 _n_kwclass = n_kwclass.as(not null)
944 n_kwclass.parent = self
945 end
946
947 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
948 do
949 if _n_kwclass == old_child then
950 if new_child != null then
951 new_child.parent = self
952 assert new_child isa TKwclass
953 _n_kwclass = new_child
954 else
955 abort
956 end
957 return
958 end
959 end
960
961 redef fun visit_all(v: Visitor)
962 do
963 v.enter_visit(_n_kwclass)
964 end
965
966 redef fun visit_all_reverse(v: Visitor)
967 do
968 v.enter_visit(_n_kwclass)
969 end
970 end
971 redef class AAbstractClasskind
972 redef fun n_kwabstract=(n)
973 do
974 _n_kwabstract = n
975 n.parent = self
976 end
977 redef fun n_kwclass=(n)
978 do
979 _n_kwclass = n
980 n.parent = self
981 end
982
983 private init empty_init do end
984
985 init init_aabstractclasskind (
986 n_kwabstract: nullable TKwabstract,
987 n_kwclass: nullable TKwclass
988 )
989 do
990 empty_init
991 _n_kwabstract = n_kwabstract.as(not null)
992 n_kwabstract.parent = self
993 _n_kwclass = n_kwclass.as(not null)
994 n_kwclass.parent = self
995 end
996
997 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
998 do
999 if _n_kwabstract == old_child then
1000 if new_child != null then
1001 new_child.parent = self
1002 assert new_child isa TKwabstract
1003 _n_kwabstract = new_child
1004 else
1005 abort
1006 end
1007 return
1008 end
1009 if _n_kwclass == old_child then
1010 if new_child != null then
1011 new_child.parent = self
1012 assert new_child isa TKwclass
1013 _n_kwclass = new_child
1014 else
1015 abort
1016 end
1017 return
1018 end
1019 end
1020
1021 redef fun visit_all(v: Visitor)
1022 do
1023 v.enter_visit(_n_kwabstract)
1024 v.enter_visit(_n_kwclass)
1025 end
1026
1027 redef fun visit_all_reverse(v: Visitor)
1028 do
1029 v.enter_visit(_n_kwabstract)
1030 v.enter_visit(_n_kwclass)
1031 end
1032 end
1033 redef class AInterfaceClasskind
1034 redef fun n_kwinterface=(n)
1035 do
1036 _n_kwinterface = n
1037 n.parent = self
1038 end
1039
1040 private init empty_init do end
1041
1042 init init_ainterfaceclasskind (
1043 n_kwinterface: nullable TKwinterface
1044 )
1045 do
1046 empty_init
1047 _n_kwinterface = n_kwinterface.as(not null)
1048 n_kwinterface.parent = self
1049 end
1050
1051 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
1052 do
1053 if _n_kwinterface == old_child then
1054 if new_child != null then
1055 new_child.parent = self
1056 assert new_child isa TKwinterface
1057 _n_kwinterface = new_child
1058 else
1059 abort
1060 end
1061 return
1062 end
1063 end
1064
1065 redef fun visit_all(v: Visitor)
1066 do
1067 v.enter_visit(_n_kwinterface)
1068 end
1069
1070 redef fun visit_all_reverse(v: Visitor)
1071 do
1072 v.enter_visit(_n_kwinterface)
1073 end
1074 end
1075 redef class AUniversalClasskind
1076 redef fun n_kwuniversal=(n)
1077 do
1078 _n_kwuniversal = n
1079 n.parent = self
1080 end
1081
1082 private init empty_init do end
1083
1084 init init_auniversalclasskind (
1085 n_kwuniversal: nullable TKwuniversal
1086 )
1087 do
1088 empty_init
1089 _n_kwuniversal = n_kwuniversal.as(not null)
1090 n_kwuniversal.parent = self
1091 end
1092
1093 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
1094 do
1095 if _n_kwuniversal == old_child then
1096 if new_child != null then
1097 new_child.parent = self
1098 assert new_child isa TKwuniversal
1099 _n_kwuniversal = new_child
1100 else
1101 abort
1102 end
1103 return
1104 end
1105 end
1106
1107 redef fun visit_all(v: Visitor)
1108 do
1109 v.enter_visit(_n_kwuniversal)
1110 end
1111
1112 redef fun visit_all_reverse(v: Visitor)
1113 do
1114 v.enter_visit(_n_kwuniversal)
1115 end
1116 end
1117 redef class AFormaldef
1118 redef fun n_id=(n)
1119 do
1120 _n_id = n
1121 n.parent = self
1122 end
1123 redef fun n_type=(n)
1124 do
1125 _n_type = n
1126 if n != null then
1127 n.parent = self
1128 end
1129 end
1130
1131 private init empty_init do end
1132
1133 init init_aformaldef (
1134 n_id: nullable TClassid,
1135 n_type: nullable AType
1136 )
1137 do
1138 empty_init
1139 _n_id = n_id.as(not null)
1140 n_id.parent = self
1141 _n_type = n_type
1142 if n_type != null then
1143 n_type.parent = self
1144 end
1145 end
1146
1147 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
1148 do
1149 if _n_id == old_child then
1150 if new_child != null then
1151 new_child.parent = self
1152 assert new_child isa TClassid
1153 _n_id = new_child
1154 else
1155 abort
1156 end
1157 return
1158 end
1159 if _n_type == old_child then
1160 if new_child != null then
1161 new_child.parent = self
1162 assert new_child isa AType
1163 _n_type = new_child
1164 else
1165 _n_type = null
1166 end
1167 return
1168 end
1169 end
1170
1171 redef fun visit_all(v: Visitor)
1172 do
1173 v.enter_visit(_n_id)
1174 if _n_type != null then
1175 v.enter_visit(_n_type.as(not null))
1176 end
1177 end
1178
1179 redef fun visit_all_reverse(v: Visitor)
1180 do
1181 v.enter_visit(_n_id)
1182 if _n_type != null then
1183 v.enter_visit(_n_type.as(not null))
1184 end
1185 end
1186 end
1187 redef class ASuperclass
1188 redef fun n_kwspecial=(n)
1189 do
1190 _n_kwspecial = n
1191 n.parent = self
1192 end
1193 redef fun n_type=(n)
1194 do
1195 _n_type = n
1196 n.parent = self
1197 end
1198
1199 private init empty_init do end
1200
1201 init init_asuperclass (
1202 n_kwspecial: nullable TKwspecial,
1203 n_type: nullable AType
1204 )
1205 do
1206 empty_init
1207 _n_kwspecial = n_kwspecial.as(not null)
1208 n_kwspecial.parent = self
1209 _n_type = n_type.as(not null)
1210 n_type.parent = self
1211 end
1212
1213 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
1214 do
1215 if _n_kwspecial == old_child then
1216 if new_child != null then
1217 new_child.parent = self
1218 assert new_child isa TKwspecial
1219 _n_kwspecial = new_child
1220 else
1221 abort
1222 end
1223 return
1224 end
1225 if _n_type == old_child then
1226 if new_child != null then
1227 new_child.parent = self
1228 assert new_child isa AType
1229 _n_type = new_child
1230 else
1231 abort
1232 end
1233 return
1234 end
1235 end
1236
1237 redef fun visit_all(v: Visitor)
1238 do
1239 v.enter_visit(_n_kwspecial)
1240 v.enter_visit(_n_type)
1241 end
1242
1243 redef fun visit_all_reverse(v: Visitor)
1244 do
1245 v.enter_visit(_n_kwspecial)
1246 v.enter_visit(_n_type)
1247 end
1248 end
1249 redef class AAttrPropdef
1250 redef fun n_doc=(n)
1251 do
1252 _n_doc = n
1253 if n != null then
1254 n.parent = self
1255 end
1256 end
1257 redef fun n_readable=(n)
1258 do
1259 _n_readable = n
1260 if n != null then
1261 n.parent = self
1262 end
1263 end
1264 redef fun n_writable=(n)
1265 do
1266 _n_writable = n
1267 if n != null then
1268 n.parent = self
1269 end
1270 end
1271 redef fun n_kwredef=(n)
1272 do
1273 _n_kwredef = n
1274 if n != null then
1275 n.parent = self
1276 end
1277 end
1278 redef fun n_visibility=(n)
1279 do
1280 _n_visibility = n
1281 n.parent = self
1282 end
1283 redef fun n_kwattr=(n)
1284 do
1285 _n_kwattr = n
1286 if n != null then
1287 n.parent = self
1288 end
1289 end
1290 redef fun n_kwvar=(n)
1291 do
1292 _n_kwvar = n
1293 if n != null then
1294 n.parent = self
1295 end
1296 end
1297 redef fun n_id=(n)
1298 do
1299 _n_id = n
1300 n.parent = self
1301 end
1302 redef fun n_type=(n)
1303 do
1304 _n_type = n
1305 if n != null then
1306 n.parent = self
1307 end
1308 end
1309 redef fun n_expr=(n)
1310 do
1311 _n_expr = n
1312 if n != null then
1313 n.parent = self
1314 end
1315 end
1316
1317 private init empty_init do end
1318
1319 init init_aattrpropdef (
1320 n_doc: nullable ADoc,
1321 n_readable: nullable AAble,
1322 n_writable: nullable AAble,
1323 n_kwredef: nullable TKwredef,
1324 n_visibility: nullable AVisibility,
1325 n_kwattr: nullable TKwattr,
1326 n_kwvar: nullable TKwvar,
1327 n_id: nullable TAttrid,
1328 n_type: nullable AType,
1329 n_expr: nullable AExpr
1330 )
1331 do
1332 empty_init
1333 _n_doc = n_doc
1334 if n_doc != null then
1335 n_doc.parent = self
1336 end
1337 _n_readable = n_readable
1338 if n_readable != null then
1339 n_readable.parent = self
1340 end
1341 _n_writable = n_writable
1342 if n_writable != null then
1343 n_writable.parent = self
1344 end
1345 _n_kwredef = n_kwredef
1346 if n_kwredef != null then
1347 n_kwredef.parent = self
1348 end
1349 _n_visibility = n_visibility.as(not null)
1350 n_visibility.parent = self
1351 _n_kwattr = n_kwattr
1352 if n_kwattr != null then
1353 n_kwattr.parent = self
1354 end
1355 _n_kwvar = n_kwvar
1356 if n_kwvar != null then
1357 n_kwvar.parent = self
1358 end
1359 _n_id = n_id.as(not null)
1360 n_id.parent = self
1361 _n_type = n_type
1362 if n_type != null then
1363 n_type.parent = self
1364 end
1365 _n_expr = n_expr
1366 if n_expr != null then
1367 n_expr.parent = self
1368 end
1369 end
1370
1371 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
1372 do
1373 if _n_doc == old_child then
1374 if new_child != null then
1375 new_child.parent = self
1376 assert new_child isa ADoc
1377 _n_doc = new_child
1378 else
1379 _n_doc = null
1380 end
1381 return
1382 end
1383 if _n_readable == old_child then
1384 if new_child != null then
1385 new_child.parent = self
1386 assert new_child isa AAble
1387 _n_readable = new_child
1388 else
1389 _n_readable = null
1390 end
1391 return
1392 end
1393 if _n_writable == old_child then
1394 if new_child != null then
1395 new_child.parent = self
1396 assert new_child isa AAble
1397 _n_writable = new_child
1398 else
1399 _n_writable = null
1400 end
1401 return
1402 end
1403 if _n_kwredef == old_child then
1404 if new_child != null then
1405 new_child.parent = self
1406 assert new_child isa TKwredef
1407 _n_kwredef = new_child
1408 else
1409 _n_kwredef = null
1410 end
1411 return
1412 end
1413 if _n_visibility == old_child then
1414 if new_child != null then
1415 new_child.parent = self
1416 assert new_child isa AVisibility
1417 _n_visibility = new_child
1418 else
1419 abort
1420 end
1421 return
1422 end
1423 if _n_kwattr == old_child then
1424 if new_child != null then
1425 new_child.parent = self
1426 assert new_child isa TKwattr
1427 _n_kwattr = new_child
1428 else
1429 _n_kwattr = null
1430 end
1431 return
1432 end
1433 if _n_kwvar == old_child then
1434 if new_child != null then
1435 new_child.parent = self
1436 assert new_child isa TKwvar
1437 _n_kwvar = new_child
1438 else
1439 _n_kwvar = null
1440 end
1441 return
1442 end
1443 if _n_id == old_child then
1444 if new_child != null then
1445 new_child.parent = self
1446 assert new_child isa TAttrid
1447 _n_id = new_child
1448 else
1449 abort
1450 end
1451 return
1452 end
1453 if _n_type == old_child then
1454 if new_child != null then
1455 new_child.parent = self
1456 assert new_child isa AType
1457 _n_type = new_child
1458 else
1459 _n_type = null
1460 end
1461 return
1462 end
1463 if _n_expr == old_child then
1464 if new_child != null then
1465 new_child.parent = self
1466 assert new_child isa AExpr
1467 _n_expr = new_child
1468 else
1469 _n_expr = null
1470 end
1471 return
1472 end
1473 end
1474
1475 redef fun visit_all(v: Visitor)
1476 do
1477 if _n_doc != null then
1478 v.enter_visit(_n_doc.as(not null))
1479 end
1480 if _n_readable != null then
1481 v.enter_visit(_n_readable.as(not null))
1482 end
1483 if _n_writable != null then
1484 v.enter_visit(_n_writable.as(not null))
1485 end
1486 if _n_kwredef != null then
1487 v.enter_visit(_n_kwredef.as(not null))
1488 end
1489 v.enter_visit(_n_visibility)
1490 if _n_kwattr != null then
1491 v.enter_visit(_n_kwattr.as(not null))
1492 end
1493 if _n_kwvar != null then
1494 v.enter_visit(_n_kwvar.as(not null))
1495 end
1496 v.enter_visit(_n_id)
1497 if _n_type != null then
1498 v.enter_visit(_n_type.as(not null))
1499 end
1500 if _n_expr != null then
1501 v.enter_visit(_n_expr.as(not null))
1502 end
1503 end
1504
1505 redef fun visit_all_reverse(v: Visitor)
1506 do
1507 if _n_doc != null then
1508 v.enter_visit(_n_doc.as(not null))
1509 end
1510 if _n_readable != null then
1511 v.enter_visit(_n_readable.as(not null))
1512 end
1513 if _n_writable != null then
1514 v.enter_visit(_n_writable.as(not null))
1515 end
1516 if _n_kwredef != null then
1517 v.enter_visit(_n_kwredef.as(not null))
1518 end
1519 v.enter_visit(_n_visibility)
1520 if _n_kwattr != null then
1521 v.enter_visit(_n_kwattr.as(not null))
1522 end
1523 if _n_kwvar != null then
1524 v.enter_visit(_n_kwvar.as(not null))
1525 end
1526 v.enter_visit(_n_id)
1527 if _n_type != null then
1528 v.enter_visit(_n_type.as(not null))
1529 end
1530 if _n_expr != null then
1531 v.enter_visit(_n_expr.as(not null))
1532 end
1533 end
1534 end
1535 redef class AMethPropdef
1536 redef fun n_doc=(n)
1537 do
1538 _n_doc = n
1539 if n != null then
1540 n.parent = self
1541 end
1542 end
1543 redef fun n_kwredef=(n)
1544 do
1545 _n_kwredef = n
1546 if n != null then
1547 n.parent = self
1548 end
1549 end
1550 redef fun n_visibility=(n)
1551 do
1552 _n_visibility = n
1553 n.parent = self
1554 end
1555 redef fun n_methid=(n)
1556 do
1557 _n_methid = n
1558 n.parent = self
1559 end
1560 redef fun n_signature=(n)
1561 do
1562 _n_signature = n
1563 n.parent = self
1564 end
1565
1566 private init empty_init do end
1567
1568 init init_amethpropdef (
1569 n_doc: nullable ADoc,
1570 n_kwredef: nullable TKwredef,
1571 n_visibility: nullable AVisibility,
1572 n_methid: nullable AMethid,
1573 n_signature: nullable ASignature
1574 )
1575 do
1576 empty_init
1577 _n_doc = n_doc
1578 if n_doc != null then
1579 n_doc.parent = self
1580 end
1581 _n_kwredef = n_kwredef
1582 if n_kwredef != null then
1583 n_kwredef.parent = self
1584 end
1585 _n_visibility = n_visibility.as(not null)
1586 n_visibility.parent = self
1587 _n_methid = n_methid.as(not null)
1588 n_methid.parent = self
1589 _n_signature = n_signature.as(not null)
1590 n_signature.parent = self
1591 end
1592
1593 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
1594 do
1595 if _n_doc == old_child then
1596 if new_child != null then
1597 new_child.parent = self
1598 assert new_child isa ADoc
1599 _n_doc = new_child
1600 else
1601 _n_doc = null
1602 end
1603 return
1604 end
1605 if _n_kwredef == old_child then
1606 if new_child != null then
1607 new_child.parent = self
1608 assert new_child isa TKwredef
1609 _n_kwredef = new_child
1610 else
1611 _n_kwredef = null
1612 end
1613 return
1614 end
1615 if _n_visibility == old_child then
1616 if new_child != null then
1617 new_child.parent = self
1618 assert new_child isa AVisibility
1619 _n_visibility = new_child
1620 else
1621 abort
1622 end
1623 return
1624 end
1625 if _n_methid == old_child then
1626 if new_child != null then
1627 new_child.parent = self
1628 assert new_child isa AMethid
1629 _n_methid = new_child
1630 else
1631 abort
1632 end
1633 return
1634 end
1635 if _n_signature == old_child then
1636 if new_child != null then
1637 new_child.parent = self
1638 assert new_child isa ASignature
1639 _n_signature = new_child
1640 else
1641 abort
1642 end
1643 return
1644 end
1645 end
1646
1647 redef fun visit_all(v: Visitor)
1648 do
1649 if _n_doc != null then
1650 v.enter_visit(_n_doc.as(not null))
1651 end
1652 if _n_kwredef != null then
1653 v.enter_visit(_n_kwredef.as(not null))
1654 end
1655 v.enter_visit(_n_visibility)
1656 v.enter_visit(_n_methid)
1657 v.enter_visit(_n_signature)
1658 end
1659
1660 redef fun visit_all_reverse(v: Visitor)
1661 do
1662 if _n_doc != null then
1663 v.enter_visit(_n_doc.as(not null))
1664 end
1665 if _n_kwredef != null then
1666 v.enter_visit(_n_kwredef.as(not null))
1667 end
1668 v.enter_visit(_n_visibility)
1669 v.enter_visit(_n_methid)
1670 v.enter_visit(_n_signature)
1671 end
1672 end
1673 redef class ADeferredMethPropdef
1674 redef fun n_doc=(n)
1675 do
1676 _n_doc = n
1677 if n != null then
1678 n.parent = self
1679 end
1680 end
1681 redef fun n_kwredef=(n)
1682 do
1683 _n_kwredef = n
1684 if n != null then
1685 n.parent = self
1686 end
1687 end
1688 redef fun n_visibility=(n)
1689 do
1690 _n_visibility = n
1691 n.parent = self
1692 end
1693 redef fun n_kwmeth=(n)
1694 do
1695 _n_kwmeth = n
1696 n.parent = self
1697 end
1698 redef fun n_methid=(n)
1699 do
1700 _n_methid = n
1701 n.parent = self
1702 end
1703 redef fun n_signature=(n)
1704 do
1705 _n_signature = n
1706 n.parent = self
1707 end
1708
1709 private init empty_init do end
1710
1711 init init_adeferredmethpropdef (
1712 n_doc: nullable ADoc,
1713 n_kwredef: nullable TKwredef,
1714 n_visibility: nullable AVisibility,
1715 n_kwmeth: nullable TKwmeth,
1716 n_methid: nullable AMethid,
1717 n_signature: nullable ASignature
1718 )
1719 do
1720 empty_init
1721 _n_doc = n_doc
1722 if n_doc != null then
1723 n_doc.parent = self
1724 end
1725 _n_kwredef = n_kwredef
1726 if n_kwredef != null then
1727 n_kwredef.parent = self
1728 end
1729 _n_visibility = n_visibility.as(not null)
1730 n_visibility.parent = self
1731 _n_kwmeth = n_kwmeth.as(not null)
1732 n_kwmeth.parent = self
1733 _n_methid = n_methid.as(not null)
1734 n_methid.parent = self
1735 _n_signature = n_signature.as(not null)
1736 n_signature.parent = self
1737 end
1738
1739 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
1740 do
1741 if _n_doc == old_child then
1742 if new_child != null then
1743 new_child.parent = self
1744 assert new_child isa ADoc
1745 _n_doc = new_child
1746 else
1747 _n_doc = null
1748 end
1749 return
1750 end
1751 if _n_kwredef == old_child then
1752 if new_child != null then
1753 new_child.parent = self
1754 assert new_child isa TKwredef
1755 _n_kwredef = new_child
1756 else
1757 _n_kwredef = null
1758 end
1759 return
1760 end
1761 if _n_visibility == old_child then
1762 if new_child != null then
1763 new_child.parent = self
1764 assert new_child isa AVisibility
1765 _n_visibility = new_child
1766 else
1767 abort
1768 end
1769 return
1770 end
1771 if _n_kwmeth == old_child then
1772 if new_child != null then
1773 new_child.parent = self
1774 assert new_child isa TKwmeth
1775 _n_kwmeth = new_child
1776 else
1777 abort
1778 end
1779 return
1780 end
1781 if _n_methid == old_child then
1782 if new_child != null then
1783 new_child.parent = self
1784 assert new_child isa AMethid
1785 _n_methid = new_child
1786 else
1787 abort
1788 end
1789 return
1790 end
1791 if _n_signature == old_child then
1792 if new_child != null then
1793 new_child.parent = self
1794 assert new_child isa ASignature
1795 _n_signature = new_child
1796 else
1797 abort
1798 end
1799 return
1800 end
1801 end
1802
1803 redef fun visit_all(v: Visitor)
1804 do
1805 if _n_doc != null then
1806 v.enter_visit(_n_doc.as(not null))
1807 end
1808 if _n_kwredef != null then
1809 v.enter_visit(_n_kwredef.as(not null))
1810 end
1811 v.enter_visit(_n_visibility)
1812 v.enter_visit(_n_kwmeth)
1813 v.enter_visit(_n_methid)
1814 v.enter_visit(_n_signature)
1815 end
1816
1817 redef fun visit_all_reverse(v: Visitor)
1818 do
1819 if _n_doc != null then
1820 v.enter_visit(_n_doc.as(not null))
1821 end
1822 if _n_kwredef != null then
1823 v.enter_visit(_n_kwredef.as(not null))
1824 end
1825 v.enter_visit(_n_visibility)
1826 v.enter_visit(_n_kwmeth)
1827 v.enter_visit(_n_methid)
1828 v.enter_visit(_n_signature)
1829 end
1830 end
1831 redef class AInternMethPropdef
1832 redef fun n_doc=(n)
1833 do
1834 _n_doc = n
1835 if n != null then
1836 n.parent = self
1837 end
1838 end
1839 redef fun n_kwredef=(n)
1840 do
1841 _n_kwredef = n
1842 if n != null then
1843 n.parent = self
1844 end
1845 end
1846 redef fun n_visibility=(n)
1847 do
1848 _n_visibility = n
1849 n.parent = self
1850 end
1851 redef fun n_kwmeth=(n)
1852 do
1853 _n_kwmeth = n
1854 n.parent = self
1855 end
1856 redef fun n_methid=(n)
1857 do
1858 _n_methid = n
1859 n.parent = self
1860 end
1861 redef fun n_signature=(n)
1862 do
1863 _n_signature = n
1864 n.parent = self
1865 end
1866
1867 private init empty_init do end
1868
1869 init init_ainternmethpropdef (
1870 n_doc: nullable ADoc,
1871 n_kwredef: nullable TKwredef,
1872 n_visibility: nullable AVisibility,
1873 n_kwmeth: nullable TKwmeth,
1874 n_methid: nullable AMethid,
1875 n_signature: nullable ASignature
1876 )
1877 do
1878 empty_init
1879 _n_doc = n_doc
1880 if n_doc != null then
1881 n_doc.parent = self
1882 end
1883 _n_kwredef = n_kwredef
1884 if n_kwredef != null then
1885 n_kwredef.parent = self
1886 end
1887 _n_visibility = n_visibility.as(not null)
1888 n_visibility.parent = self
1889 _n_kwmeth = n_kwmeth.as(not null)
1890 n_kwmeth.parent = self
1891 _n_methid = n_methid.as(not null)
1892 n_methid.parent = self
1893 _n_signature = n_signature.as(not null)
1894 n_signature.parent = self
1895 end
1896
1897 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
1898 do
1899 if _n_doc == old_child then
1900 if new_child != null then
1901 new_child.parent = self
1902 assert new_child isa ADoc
1903 _n_doc = new_child
1904 else
1905 _n_doc = null
1906 end
1907 return
1908 end
1909 if _n_kwredef == old_child then
1910 if new_child != null then
1911 new_child.parent = self
1912 assert new_child isa TKwredef
1913 _n_kwredef = new_child
1914 else
1915 _n_kwredef = null
1916 end
1917 return
1918 end
1919 if _n_visibility == old_child then
1920 if new_child != null then
1921 new_child.parent = self
1922 assert new_child isa AVisibility
1923 _n_visibility = new_child
1924 else
1925 abort
1926 end
1927 return
1928 end
1929 if _n_kwmeth == old_child then
1930 if new_child != null then
1931 new_child.parent = self
1932 assert new_child isa TKwmeth
1933 _n_kwmeth = new_child
1934 else
1935 abort
1936 end
1937 return
1938 end
1939 if _n_methid == old_child then
1940 if new_child != null then
1941 new_child.parent = self
1942 assert new_child isa AMethid
1943 _n_methid = new_child
1944 else
1945 abort
1946 end
1947 return
1948 end
1949 if _n_signature == old_child then
1950 if new_child != null then
1951 new_child.parent = self
1952 assert new_child isa ASignature
1953 _n_signature = new_child
1954 else
1955 abort
1956 end
1957 return
1958 end
1959 end
1960
1961 redef fun visit_all(v: Visitor)
1962 do
1963 if _n_doc != null then
1964 v.enter_visit(_n_doc.as(not null))
1965 end
1966 if _n_kwredef != null then
1967 v.enter_visit(_n_kwredef.as(not null))
1968 end
1969 v.enter_visit(_n_visibility)
1970 v.enter_visit(_n_kwmeth)
1971 v.enter_visit(_n_methid)
1972 v.enter_visit(_n_signature)
1973 end
1974
1975 redef fun visit_all_reverse(v: Visitor)
1976 do
1977 if _n_doc != null then
1978 v.enter_visit(_n_doc.as(not null))
1979 end
1980 if _n_kwredef != null then
1981 v.enter_visit(_n_kwredef.as(not null))
1982 end
1983 v.enter_visit(_n_visibility)
1984 v.enter_visit(_n_kwmeth)
1985 v.enter_visit(_n_methid)
1986 v.enter_visit(_n_signature)
1987 end
1988 end
1989 redef class AExternMethPropdef
1990 redef fun n_doc=(n)
1991 do
1992 _n_doc = n
1993 if n != null then
1994 n.parent = self
1995 end
1996 end
1997 redef fun n_kwredef=(n)
1998 do
1999 _n_kwredef = n
2000 if n != null then
2001 n.parent = self
2002 end
2003 end
2004 redef fun n_visibility=(n)
2005 do
2006 _n_visibility = n
2007 n.parent = self
2008 end
2009 redef fun n_kwmeth=(n)
2010 do
2011 _n_kwmeth = n
2012 n.parent = self
2013 end
2014 redef fun n_methid=(n)
2015 do
2016 _n_methid = n
2017 n.parent = self
2018 end
2019 redef fun n_signature=(n)
2020 do
2021 _n_signature = n
2022 n.parent = self
2023 end
2024 redef fun n_extern=(n)
2025 do
2026 _n_extern = n
2027 if n != null then
2028 n.parent = self
2029 end
2030 end
2031
2032 private init empty_init do end
2033
2034 init init_aexternmethpropdef (
2035 n_doc: nullable ADoc,
2036 n_kwredef: nullable TKwredef,
2037 n_visibility: nullable AVisibility,
2038 n_kwmeth: nullable TKwmeth,
2039 n_methid: nullable AMethid,
2040 n_signature: nullable ASignature,
2041 n_extern: nullable TString
2042 )
2043 do
2044 empty_init
2045 _n_doc = n_doc
2046 if n_doc != null then
2047 n_doc.parent = self
2048 end
2049 _n_kwredef = n_kwredef
2050 if n_kwredef != null then
2051 n_kwredef.parent = self
2052 end
2053 _n_visibility = n_visibility.as(not null)
2054 n_visibility.parent = self
2055 _n_kwmeth = n_kwmeth.as(not null)
2056 n_kwmeth.parent = self
2057 _n_methid = n_methid.as(not null)
2058 n_methid.parent = self
2059 _n_signature = n_signature.as(not null)
2060 n_signature.parent = self
2061 _n_extern = n_extern
2062 if n_extern != null then
2063 n_extern.parent = self
2064 end
2065 end
2066
2067 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
2068 do
2069 if _n_doc == old_child then
2070 if new_child != null then
2071 new_child.parent = self
2072 assert new_child isa ADoc
2073 _n_doc = new_child
2074 else
2075 _n_doc = null
2076 end
2077 return
2078 end
2079 if _n_kwredef == old_child then
2080 if new_child != null then
2081 new_child.parent = self
2082 assert new_child isa TKwredef
2083 _n_kwredef = new_child
2084 else
2085 _n_kwredef = null
2086 end
2087 return
2088 end
2089 if _n_visibility == old_child then
2090 if new_child != null then
2091 new_child.parent = self
2092 assert new_child isa AVisibility
2093 _n_visibility = new_child
2094 else
2095 abort
2096 end
2097 return
2098 end
2099 if _n_kwmeth == old_child then
2100 if new_child != null then
2101 new_child.parent = self
2102 assert new_child isa TKwmeth
2103 _n_kwmeth = new_child
2104 else
2105 abort
2106 end
2107 return
2108 end
2109 if _n_methid == old_child then
2110 if new_child != null then
2111 new_child.parent = self
2112 assert new_child isa AMethid
2113 _n_methid = new_child
2114 else
2115 abort
2116 end
2117 return
2118 end
2119 if _n_signature == old_child then
2120 if new_child != null then
2121 new_child.parent = self
2122 assert new_child isa ASignature
2123 _n_signature = new_child
2124 else
2125 abort
2126 end
2127 return
2128 end
2129 if _n_extern == old_child then
2130 if new_child != null then
2131 new_child.parent = self
2132 assert new_child isa TString
2133 _n_extern = new_child
2134 else
2135 _n_extern = null
2136 end
2137 return
2138 end
2139 end
2140
2141 redef fun visit_all(v: Visitor)
2142 do
2143 if _n_doc != null then
2144 v.enter_visit(_n_doc.as(not null))
2145 end
2146 if _n_kwredef != null then
2147 v.enter_visit(_n_kwredef.as(not null))
2148 end
2149 v.enter_visit(_n_visibility)
2150 v.enter_visit(_n_kwmeth)
2151 v.enter_visit(_n_methid)
2152 v.enter_visit(_n_signature)
2153 if _n_extern != null then
2154 v.enter_visit(_n_extern.as(not null))
2155 end
2156 end
2157
2158 redef fun visit_all_reverse(v: Visitor)
2159 do
2160 if _n_doc != null then
2161 v.enter_visit(_n_doc.as(not null))
2162 end
2163 if _n_kwredef != null then
2164 v.enter_visit(_n_kwredef.as(not null))
2165 end
2166 v.enter_visit(_n_visibility)
2167 v.enter_visit(_n_kwmeth)
2168 v.enter_visit(_n_methid)
2169 v.enter_visit(_n_signature)
2170 if _n_extern != null then
2171 v.enter_visit(_n_extern.as(not null))
2172 end
2173 end
2174 end
2175 redef class AConcreteMethPropdef
2176 redef fun n_doc=(n)
2177 do
2178 _n_doc = n
2179 if n != null then
2180 n.parent = self
2181 end
2182 end
2183 redef fun n_kwredef=(n)
2184 do
2185 _n_kwredef = n
2186 if n != null then
2187 n.parent = self
2188 end
2189 end
2190 redef fun n_visibility=(n)
2191 do
2192 _n_visibility = n
2193 n.parent = self
2194 end
2195 redef fun n_kwmeth=(n)
2196 do
2197 _n_kwmeth = n
2198 n.parent = self
2199 end
2200 redef fun n_methid=(n)
2201 do
2202 _n_methid = n
2203 n.parent = self
2204 end
2205 redef fun n_signature=(n)
2206 do
2207 _n_signature = n
2208 n.parent = self
2209 end
2210 redef fun n_block=(n)
2211 do
2212 _n_block = n
2213 if n != null then
2214 n.parent = self
2215 end
2216 end
2217
2218 private init empty_init do end
2219
2220 init init_aconcretemethpropdef (
2221 n_doc: nullable ADoc,
2222 n_kwredef: nullable TKwredef,
2223 n_visibility: nullable AVisibility,
2224 n_kwmeth: nullable TKwmeth,
2225 n_methid: nullable AMethid,
2226 n_signature: nullable ASignature,
2227 n_block: nullable AExpr
2228 )
2229 do
2230 empty_init
2231 _n_doc = n_doc
2232 if n_doc != null then
2233 n_doc.parent = self
2234 end
2235 _n_kwredef = n_kwredef
2236 if n_kwredef != null then
2237 n_kwredef.parent = self
2238 end
2239 _n_visibility = n_visibility.as(not null)
2240 n_visibility.parent = self
2241 _n_kwmeth = n_kwmeth.as(not null)
2242 n_kwmeth.parent = self
2243 _n_methid = n_methid.as(not null)
2244 n_methid.parent = self
2245 _n_signature = n_signature.as(not null)
2246 n_signature.parent = self
2247 _n_block = n_block
2248 if n_block != null then
2249 n_block.parent = self
2250 end
2251 end
2252
2253 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
2254 do
2255 if _n_doc == old_child then
2256 if new_child != null then
2257 new_child.parent = self
2258 assert new_child isa ADoc
2259 _n_doc = new_child
2260 else
2261 _n_doc = null
2262 end
2263 return
2264 end
2265 if _n_kwredef == old_child then
2266 if new_child != null then
2267 new_child.parent = self
2268 assert new_child isa TKwredef
2269 _n_kwredef = new_child
2270 else
2271 _n_kwredef = null
2272 end
2273 return
2274 end
2275 if _n_visibility == old_child then
2276 if new_child != null then
2277 new_child.parent = self
2278 assert new_child isa AVisibility
2279 _n_visibility = new_child
2280 else
2281 abort
2282 end
2283 return
2284 end
2285 if _n_kwmeth == old_child then
2286 if new_child != null then
2287 new_child.parent = self
2288 assert new_child isa TKwmeth
2289 _n_kwmeth = new_child
2290 else
2291 abort
2292 end
2293 return
2294 end
2295 if _n_methid == old_child then
2296 if new_child != null then
2297 new_child.parent = self
2298 assert new_child isa AMethid
2299 _n_methid = new_child
2300 else
2301 abort
2302 end
2303 return
2304 end
2305 if _n_signature == old_child then
2306 if new_child != null then
2307 new_child.parent = self
2308 assert new_child isa ASignature
2309 _n_signature = new_child
2310 else
2311 abort
2312 end
2313 return
2314 end
2315 if _n_block == old_child then
2316 if new_child != null then
2317 new_child.parent = self
2318 assert new_child isa AExpr
2319 _n_block = new_child
2320 else
2321 _n_block = null
2322 end
2323 return
2324 end
2325 end
2326
2327 redef fun visit_all(v: Visitor)
2328 do
2329 if _n_doc != null then
2330 v.enter_visit(_n_doc.as(not null))
2331 end
2332 if _n_kwredef != null then
2333 v.enter_visit(_n_kwredef.as(not null))
2334 end
2335 v.enter_visit(_n_visibility)
2336 v.enter_visit(_n_kwmeth)
2337 v.enter_visit(_n_methid)
2338 v.enter_visit(_n_signature)
2339 if _n_block != null then
2340 v.enter_visit(_n_block.as(not null))
2341 end
2342 end
2343
2344 redef fun visit_all_reverse(v: Visitor)
2345 do
2346 if _n_doc != null then
2347 v.enter_visit(_n_doc.as(not null))
2348 end
2349 if _n_kwredef != null then
2350 v.enter_visit(_n_kwredef.as(not null))
2351 end
2352 v.enter_visit(_n_visibility)
2353 v.enter_visit(_n_kwmeth)
2354 v.enter_visit(_n_methid)
2355 v.enter_visit(_n_signature)
2356 if _n_block != null then
2357 v.enter_visit(_n_block.as(not null))
2358 end
2359 end
2360 end
2361 redef class AConcreteInitPropdef
2362 redef fun n_doc=(n)
2363 do
2364 _n_doc = n
2365 if n != null then
2366 n.parent = self
2367 end
2368 end
2369 redef fun n_kwredef=(n)
2370 do
2371 _n_kwredef = n
2372 if n != null then
2373 n.parent = self
2374 end
2375 end
2376 redef fun n_visibility=(n)
2377 do
2378 _n_visibility = n
2379 n.parent = self
2380 end
2381 redef fun n_kwinit=(n)
2382 do
2383 _n_kwinit = n
2384 n.parent = self
2385 end
2386 redef fun n_methid=(n)
2387 do
2388 _n_methid = n
2389 if n != null then
2390 n.parent = self
2391 end
2392 end
2393 redef fun n_signature=(n)
2394 do
2395 _n_signature = n
2396 n.parent = self
2397 end
2398 redef fun n_block=(n)
2399 do
2400 _n_block = n
2401 if n != null then
2402 n.parent = self
2403 end
2404 end
2405
2406 private init empty_init do end
2407
2408 init init_aconcreteinitpropdef (
2409 n_doc: nullable ADoc,
2410 n_kwredef: nullable TKwredef,
2411 n_visibility: nullable AVisibility,
2412 n_kwinit: nullable TKwinit,
2413 n_methid: nullable AMethid,
2414 n_signature: nullable ASignature,
2415 n_block: nullable AExpr
2416 )
2417 do
2418 empty_init
2419 _n_doc = n_doc
2420 if n_doc != null then
2421 n_doc.parent = self
2422 end
2423 _n_kwredef = n_kwredef
2424 if n_kwredef != null then
2425 n_kwredef.parent = self
2426 end
2427 _n_visibility = n_visibility.as(not null)
2428 n_visibility.parent = self
2429 _n_kwinit = n_kwinit.as(not null)
2430 n_kwinit.parent = self
2431 _n_methid = n_methid
2432 if n_methid != null then
2433 n_methid.parent = self
2434 end
2435 _n_signature = n_signature.as(not null)
2436 n_signature.parent = self
2437 _n_block = n_block
2438 if n_block != null then
2439 n_block.parent = self
2440 end
2441 end
2442
2443 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
2444 do
2445 if _n_doc == old_child then
2446 if new_child != null then
2447 new_child.parent = self
2448 assert new_child isa ADoc
2449 _n_doc = new_child
2450 else
2451 _n_doc = null
2452 end
2453 return
2454 end
2455 if _n_kwredef == old_child then
2456 if new_child != null then
2457 new_child.parent = self
2458 assert new_child isa TKwredef
2459 _n_kwredef = new_child
2460 else
2461 _n_kwredef = null
2462 end
2463 return
2464 end
2465 if _n_visibility == old_child then
2466 if new_child != null then
2467 new_child.parent = self
2468 assert new_child isa AVisibility
2469 _n_visibility = new_child
2470 else
2471 abort
2472 end
2473 return
2474 end
2475 if _n_kwinit == old_child then
2476 if new_child != null then
2477 new_child.parent = self
2478 assert new_child isa TKwinit
2479 _n_kwinit = new_child
2480 else
2481 abort
2482 end
2483 return
2484 end
2485 if _n_methid == old_child then
2486 if new_child != null then
2487 new_child.parent = self
2488 assert new_child isa AMethid
2489 _n_methid = new_child
2490 else
2491 _n_methid = null
2492 end
2493 return
2494 end
2495 if _n_signature == old_child then
2496 if new_child != null then
2497 new_child.parent = self
2498 assert new_child isa ASignature
2499 _n_signature = new_child
2500 else
2501 abort
2502 end
2503 return
2504 end
2505 if _n_block == old_child then
2506 if new_child != null then
2507 new_child.parent = self
2508 assert new_child isa AExpr
2509 _n_block = new_child
2510 else
2511 _n_block = null
2512 end
2513 return
2514 end
2515 end
2516
2517 redef fun visit_all(v: Visitor)
2518 do
2519 if _n_doc != null then
2520 v.enter_visit(_n_doc.as(not null))
2521 end
2522 if _n_kwredef != null then
2523 v.enter_visit(_n_kwredef.as(not null))
2524 end
2525 v.enter_visit(_n_visibility)
2526 v.enter_visit(_n_kwinit)
2527 if _n_methid != null then
2528 v.enter_visit(_n_methid.as(not null))
2529 end
2530 v.enter_visit(_n_signature)
2531 if _n_block != null then
2532 v.enter_visit(_n_block.as(not null))
2533 end
2534 end
2535
2536 redef fun visit_all_reverse(v: Visitor)
2537 do
2538 if _n_doc != null then
2539 v.enter_visit(_n_doc.as(not null))
2540 end
2541 if _n_kwredef != null then
2542 v.enter_visit(_n_kwredef.as(not null))
2543 end
2544 v.enter_visit(_n_visibility)
2545 v.enter_visit(_n_kwinit)
2546 if _n_methid != null then
2547 v.enter_visit(_n_methid.as(not null))
2548 end
2549 v.enter_visit(_n_signature)
2550 if _n_block != null then
2551 v.enter_visit(_n_block.as(not null))
2552 end
2553 end
2554 end
2555 redef class AMainMethPropdef
2556 redef fun n_kwredef=(n)
2557 do
2558 _n_kwredef = n
2559 if n != null then
2560 n.parent = self
2561 end
2562 end
2563 redef fun n_block=(n)
2564 do
2565 _n_block = n
2566 if n != null then
2567 n.parent = self
2568 end
2569 end
2570
2571 private init empty_init do end
2572
2573 init init_amainmethpropdef (
2574 n_kwredef: nullable TKwredef,
2575 n_block: nullable AExpr
2576 )
2577 do
2578 empty_init
2579 _n_kwredef = n_kwredef
2580 if n_kwredef != null then
2581 n_kwredef.parent = self
2582 end
2583 _n_block = n_block
2584 if n_block != null then
2585 n_block.parent = self
2586 end
2587 end
2588
2589 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
2590 do
2591 if _n_kwredef == old_child then
2592 if new_child != null then
2593 new_child.parent = self
2594 assert new_child isa TKwredef
2595 _n_kwredef = new_child
2596 else
2597 _n_kwredef = null
2598 end
2599 return
2600 end
2601 if _n_block == old_child then
2602 if new_child != null then
2603 new_child.parent = self
2604 assert new_child isa AExpr
2605 _n_block = new_child
2606 else
2607 _n_block = null
2608 end
2609 return
2610 end
2611 end
2612
2613 redef fun visit_all(v: Visitor)
2614 do
2615 if _n_kwredef != null then
2616 v.enter_visit(_n_kwredef.as(not null))
2617 end
2618 if _n_block != null then
2619 v.enter_visit(_n_block.as(not null))
2620 end
2621 end
2622
2623 redef fun visit_all_reverse(v: Visitor)
2624 do
2625 if _n_kwredef != null then
2626 v.enter_visit(_n_kwredef.as(not null))
2627 end
2628 if _n_block != null then
2629 v.enter_visit(_n_block.as(not null))
2630 end
2631 end
2632 end
2633 redef class ATypePropdef
2634 redef fun n_doc=(n)
2635 do
2636 _n_doc = n
2637 if n != null then
2638 n.parent = self
2639 end
2640 end
2641 redef fun n_kwredef=(n)
2642 do
2643 _n_kwredef = n
2644 if n != null then
2645 n.parent = self
2646 end
2647 end
2648 redef fun n_visibility=(n)
2649 do
2650 _n_visibility = n
2651 n.parent = self
2652 end
2653 redef fun n_kwtype=(n)
2654 do
2655 _n_kwtype = n
2656 n.parent = self
2657 end
2658 redef fun n_id=(n)
2659 do
2660 _n_id = n
2661 n.parent = self
2662 end
2663 redef fun n_type=(n)
2664 do
2665 _n_type = n
2666 n.parent = self
2667 end
2668
2669 private init empty_init do end
2670
2671 init init_atypepropdef (
2672 n_doc: nullable ADoc,
2673 n_kwredef: nullable TKwredef,
2674 n_visibility: nullable AVisibility,
2675 n_kwtype: nullable TKwtype,
2676 n_id: nullable TClassid,
2677 n_type: nullable AType
2678 )
2679 do
2680 empty_init
2681 _n_doc = n_doc
2682 if n_doc != null then
2683 n_doc.parent = self
2684 end
2685 _n_kwredef = n_kwredef
2686 if n_kwredef != null then
2687 n_kwredef.parent = self
2688 end
2689 _n_visibility = n_visibility.as(not null)
2690 n_visibility.parent = self
2691 _n_kwtype = n_kwtype.as(not null)
2692 n_kwtype.parent = self
2693 _n_id = n_id.as(not null)
2694 n_id.parent = self
2695 _n_type = n_type.as(not null)
2696 n_type.parent = self
2697 end
2698
2699 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
2700 do
2701 if _n_doc == old_child then
2702 if new_child != null then
2703 new_child.parent = self
2704 assert new_child isa ADoc
2705 _n_doc = new_child
2706 else
2707 _n_doc = null
2708 end
2709 return
2710 end
2711 if _n_kwredef == old_child then
2712 if new_child != null then
2713 new_child.parent = self
2714 assert new_child isa TKwredef
2715 _n_kwredef = new_child
2716 else
2717 _n_kwredef = null
2718 end
2719 return
2720 end
2721 if _n_visibility == old_child then
2722 if new_child != null then
2723 new_child.parent = self
2724 assert new_child isa AVisibility
2725 _n_visibility = new_child
2726 else
2727 abort
2728 end
2729 return
2730 end
2731 if _n_kwtype == old_child then
2732 if new_child != null then
2733 new_child.parent = self
2734 assert new_child isa TKwtype
2735 _n_kwtype = new_child
2736 else
2737 abort
2738 end
2739 return
2740 end
2741 if _n_id == old_child then
2742 if new_child != null then
2743 new_child.parent = self
2744 assert new_child isa TClassid
2745 _n_id = new_child
2746 else
2747 abort
2748 end
2749 return
2750 end
2751 if _n_type == old_child then
2752 if new_child != null then
2753 new_child.parent = self
2754 assert new_child isa AType
2755 _n_type = new_child
2756 else
2757 abort
2758 end
2759 return
2760 end
2761 end
2762
2763 redef fun visit_all(v: Visitor)
2764 do
2765 if _n_doc != null then
2766 v.enter_visit(_n_doc.as(not null))
2767 end
2768 if _n_kwredef != null then
2769 v.enter_visit(_n_kwredef.as(not null))
2770 end
2771 v.enter_visit(_n_visibility)
2772 v.enter_visit(_n_kwtype)
2773 v.enter_visit(_n_id)
2774 v.enter_visit(_n_type)
2775 end
2776
2777 redef fun visit_all_reverse(v: Visitor)
2778 do
2779 if _n_doc != null then
2780 v.enter_visit(_n_doc.as(not null))
2781 end
2782 if _n_kwredef != null then
2783 v.enter_visit(_n_kwredef.as(not null))
2784 end
2785 v.enter_visit(_n_visibility)
2786 v.enter_visit(_n_kwtype)
2787 v.enter_visit(_n_id)
2788 v.enter_visit(_n_type)
2789 end
2790 end
2791 redef class AReadAble
2792 redef fun n_kwredef=(n)
2793 do
2794 _n_kwredef = n
2795 if n != null then
2796 n.parent = self
2797 end
2798 end
2799 redef fun n_kwreadable=(n)
2800 do
2801 _n_kwreadable = n
2802 n.parent = self
2803 end
2804
2805 private init empty_init do end
2806
2807 init init_areadable (
2808 n_kwredef: nullable TKwredef,
2809 n_kwreadable: nullable TKwreadable
2810 )
2811 do
2812 empty_init
2813 _n_kwredef = n_kwredef
2814 if n_kwredef != null then
2815 n_kwredef.parent = self
2816 end
2817 _n_kwreadable = n_kwreadable.as(not null)
2818 n_kwreadable.parent = self
2819 end
2820
2821 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
2822 do
2823 if _n_kwredef == old_child then
2824 if new_child != null then
2825 new_child.parent = self
2826 assert new_child isa TKwredef
2827 _n_kwredef = new_child
2828 else
2829 _n_kwredef = null
2830 end
2831 return
2832 end
2833 if _n_kwreadable == old_child then
2834 if new_child != null then
2835 new_child.parent = self
2836 assert new_child isa TKwreadable
2837 _n_kwreadable = new_child
2838 else
2839 abort
2840 end
2841 return
2842 end
2843 end
2844
2845 redef fun visit_all(v: Visitor)
2846 do
2847 if _n_kwredef != null then
2848 v.enter_visit(_n_kwredef.as(not null))
2849 end
2850 v.enter_visit(_n_kwreadable)
2851 end
2852
2853 redef fun visit_all_reverse(v: Visitor)
2854 do
2855 if _n_kwredef != null then
2856 v.enter_visit(_n_kwredef.as(not null))
2857 end
2858 v.enter_visit(_n_kwreadable)
2859 end
2860 end
2861 redef class AWriteAble
2862 redef fun n_kwredef=(n)
2863 do
2864 _n_kwredef = n
2865 if n != null then
2866 n.parent = self
2867 end
2868 end
2869 redef fun n_kwwritable=(n)
2870 do
2871 _n_kwwritable = n
2872 n.parent = self
2873 end
2874
2875 private init empty_init do end
2876
2877 init init_awriteable (
2878 n_kwredef: nullable TKwredef,
2879 n_kwwritable: nullable TKwwritable
2880 )
2881 do
2882 empty_init
2883 _n_kwredef = n_kwredef
2884 if n_kwredef != null then
2885 n_kwredef.parent = self
2886 end
2887 _n_kwwritable = n_kwwritable.as(not null)
2888 n_kwwritable.parent = self
2889 end
2890
2891 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
2892 do
2893 if _n_kwredef == old_child then
2894 if new_child != null then
2895 new_child.parent = self
2896 assert new_child isa TKwredef
2897 _n_kwredef = new_child
2898 else
2899 _n_kwredef = null
2900 end
2901 return
2902 end
2903 if _n_kwwritable == old_child then
2904 if new_child != null then
2905 new_child.parent = self
2906 assert new_child isa TKwwritable
2907 _n_kwwritable = new_child
2908 else
2909 abort
2910 end
2911 return
2912 end
2913 end
2914
2915 redef fun visit_all(v: Visitor)
2916 do
2917 if _n_kwredef != null then
2918 v.enter_visit(_n_kwredef.as(not null))
2919 end
2920 v.enter_visit(_n_kwwritable)
2921 end
2922
2923 redef fun visit_all_reverse(v: Visitor)
2924 do
2925 if _n_kwredef != null then
2926 v.enter_visit(_n_kwredef.as(not null))
2927 end
2928 v.enter_visit(_n_kwwritable)
2929 end
2930 end
2931 redef class AIdMethid
2932 redef fun n_id=(n)
2933 do
2934 _n_id = n
2935 n.parent = self
2936 end
2937
2938 private init empty_init do end
2939
2940 init init_aidmethid (
2941 n_id: nullable TId
2942 )
2943 do
2944 empty_init
2945 _n_id = n_id.as(not null)
2946 n_id.parent = self
2947 end
2948
2949 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
2950 do
2951 if _n_id == old_child then
2952 if new_child != null then
2953 new_child.parent = self
2954 assert new_child isa TId
2955 _n_id = new_child
2956 else
2957 abort
2958 end
2959 return
2960 end
2961 end
2962
2963 redef fun visit_all(v: Visitor)
2964 do
2965 v.enter_visit(_n_id)
2966 end
2967
2968 redef fun visit_all_reverse(v: Visitor)
2969 do
2970 v.enter_visit(_n_id)
2971 end
2972 end
2973 redef class APlusMethid
2974 redef fun n_plus=(n)
2975 do
2976 _n_plus = n
2977 n.parent = self
2978 end
2979
2980 private init empty_init do end
2981
2982 init init_aplusmethid (
2983 n_plus: nullable TPlus
2984 )
2985 do
2986 empty_init
2987 _n_plus = n_plus.as(not null)
2988 n_plus.parent = self
2989 end
2990
2991 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
2992 do
2993 if _n_plus == old_child then
2994 if new_child != null then
2995 new_child.parent = self
2996 assert new_child isa TPlus
2997 _n_plus = new_child
2998 else
2999 abort
3000 end
3001 return
3002 end
3003 end
3004
3005 redef fun visit_all(v: Visitor)
3006 do
3007 v.enter_visit(_n_plus)
3008 end
3009
3010 redef fun visit_all_reverse(v: Visitor)
3011 do
3012 v.enter_visit(_n_plus)
3013 end
3014 end
3015 redef class AMinusMethid
3016 redef fun n_minus=(n)
3017 do
3018 _n_minus = n
3019 n.parent = self
3020 end
3021
3022 private init empty_init do end
3023
3024 init init_aminusmethid (
3025 n_minus: nullable TMinus
3026 )
3027 do
3028 empty_init
3029 _n_minus = n_minus.as(not null)
3030 n_minus.parent = self
3031 end
3032
3033 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
3034 do
3035 if _n_minus == old_child then
3036 if new_child != null then
3037 new_child.parent = self
3038 assert new_child isa TMinus
3039 _n_minus = new_child
3040 else
3041 abort
3042 end
3043 return
3044 end
3045 end
3046
3047 redef fun visit_all(v: Visitor)
3048 do
3049 v.enter_visit(_n_minus)
3050 end
3051
3052 redef fun visit_all_reverse(v: Visitor)
3053 do
3054 v.enter_visit(_n_minus)
3055 end
3056 end
3057 redef class AStarMethid
3058 redef fun n_star=(n)
3059 do
3060 _n_star = n
3061 n.parent = self
3062 end
3063
3064 private init empty_init do end
3065
3066 init init_astarmethid (
3067 n_star: nullable TStar
3068 )
3069 do
3070 empty_init
3071 _n_star = n_star.as(not null)
3072 n_star.parent = self
3073 end
3074
3075 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
3076 do
3077 if _n_star == old_child then
3078 if new_child != null then
3079 new_child.parent = self
3080 assert new_child isa TStar
3081 _n_star = new_child
3082 else
3083 abort
3084 end
3085 return
3086 end
3087 end
3088
3089 redef fun visit_all(v: Visitor)
3090 do
3091 v.enter_visit(_n_star)
3092 end
3093
3094 redef fun visit_all_reverse(v: Visitor)
3095 do
3096 v.enter_visit(_n_star)
3097 end
3098 end
3099 redef class ASlashMethid
3100 redef fun n_slash=(n)
3101 do
3102 _n_slash = n
3103 n.parent = self
3104 end
3105
3106 private init empty_init do end
3107
3108 init init_aslashmethid (
3109 n_slash: nullable TSlash
3110 )
3111 do
3112 empty_init
3113 _n_slash = n_slash.as(not null)
3114 n_slash.parent = self
3115 end
3116
3117 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
3118 do
3119 if _n_slash == old_child then
3120 if new_child != null then
3121 new_child.parent = self
3122 assert new_child isa TSlash
3123 _n_slash = new_child
3124 else
3125 abort
3126 end
3127 return
3128 end
3129 end
3130
3131 redef fun visit_all(v: Visitor)
3132 do
3133 v.enter_visit(_n_slash)
3134 end
3135
3136 redef fun visit_all_reverse(v: Visitor)
3137 do
3138 v.enter_visit(_n_slash)
3139 end
3140 end
3141 redef class APercentMethid
3142 redef fun n_percent=(n)
3143 do
3144 _n_percent = n
3145 n.parent = self
3146 end
3147
3148 private init empty_init do end
3149
3150 init init_apercentmethid (
3151 n_percent: nullable TPercent
3152 )
3153 do
3154 empty_init
3155 _n_percent = n_percent.as(not null)
3156 n_percent.parent = self
3157 end
3158
3159 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
3160 do
3161 if _n_percent == old_child then
3162 if new_child != null then
3163 new_child.parent = self
3164 assert new_child isa TPercent
3165 _n_percent = new_child
3166 else
3167 abort
3168 end
3169 return
3170 end
3171 end
3172
3173 redef fun visit_all(v: Visitor)
3174 do
3175 v.enter_visit(_n_percent)
3176 end
3177
3178 redef fun visit_all_reverse(v: Visitor)
3179 do
3180 v.enter_visit(_n_percent)
3181 end
3182 end
3183 redef class AEqMethid
3184 redef fun n_eq=(n)
3185 do
3186 _n_eq = n
3187 n.parent = self
3188 end
3189
3190 private init empty_init do end
3191
3192 init init_aeqmethid (
3193 n_eq: nullable TEq
3194 )
3195 do
3196 empty_init
3197 _n_eq = n_eq.as(not null)
3198 n_eq.parent = self
3199 end
3200
3201 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
3202 do
3203 if _n_eq == old_child then
3204 if new_child != null then
3205 new_child.parent = self
3206 assert new_child isa TEq
3207 _n_eq = new_child
3208 else
3209 abort
3210 end
3211 return
3212 end
3213 end
3214
3215 redef fun visit_all(v: Visitor)
3216 do
3217 v.enter_visit(_n_eq)
3218 end
3219
3220 redef fun visit_all_reverse(v: Visitor)
3221 do
3222 v.enter_visit(_n_eq)
3223 end
3224 end
3225 redef class ANeMethid
3226 redef fun n_ne=(n)
3227 do
3228 _n_ne = n
3229 n.parent = self
3230 end
3231
3232 private init empty_init do end
3233
3234 init init_anemethid (
3235 n_ne: nullable TNe
3236 )
3237 do
3238 empty_init
3239 _n_ne = n_ne.as(not null)
3240 n_ne.parent = self
3241 end
3242
3243 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
3244 do
3245 if _n_ne == old_child then
3246 if new_child != null then
3247 new_child.parent = self
3248 assert new_child isa TNe
3249 _n_ne = new_child
3250 else
3251 abort
3252 end
3253 return
3254 end
3255 end
3256
3257 redef fun visit_all(v: Visitor)
3258 do
3259 v.enter_visit(_n_ne)
3260 end
3261
3262 redef fun visit_all_reverse(v: Visitor)
3263 do
3264 v.enter_visit(_n_ne)
3265 end
3266 end
3267 redef class ALeMethid
3268 redef fun n_le=(n)
3269 do
3270 _n_le = n
3271 n.parent = self
3272 end
3273
3274 private init empty_init do end
3275
3276 init init_alemethid (
3277 n_le: nullable TLe
3278 )
3279 do
3280 empty_init
3281 _n_le = n_le.as(not null)
3282 n_le.parent = self
3283 end
3284
3285 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
3286 do
3287 if _n_le == old_child then
3288 if new_child != null then
3289 new_child.parent = self
3290 assert new_child isa TLe
3291 _n_le = new_child
3292 else
3293 abort
3294 end
3295 return
3296 end
3297 end
3298
3299 redef fun visit_all(v: Visitor)
3300 do
3301 v.enter_visit(_n_le)
3302 end
3303
3304 redef fun visit_all_reverse(v: Visitor)
3305 do
3306 v.enter_visit(_n_le)
3307 end
3308 end
3309 redef class AGeMethid
3310 redef fun n_ge=(n)
3311 do
3312 _n_ge = n
3313 n.parent = self
3314 end
3315
3316 private init empty_init do end
3317
3318 init init_agemethid (
3319 n_ge: nullable TGe
3320 )
3321 do
3322 empty_init
3323 _n_ge = n_ge.as(not null)
3324 n_ge.parent = self
3325 end
3326
3327 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
3328 do
3329 if _n_ge == old_child then
3330 if new_child != null then
3331 new_child.parent = self
3332 assert new_child isa TGe
3333 _n_ge = new_child
3334 else
3335 abort
3336 end
3337 return
3338 end
3339 end
3340
3341 redef fun visit_all(v: Visitor)
3342 do
3343 v.enter_visit(_n_ge)
3344 end
3345
3346 redef fun visit_all_reverse(v: Visitor)
3347 do
3348 v.enter_visit(_n_ge)
3349 end
3350 end
3351 redef class ALtMethid
3352 redef fun n_lt=(n)
3353 do
3354 _n_lt = n
3355 n.parent = self
3356 end
3357
3358 private init empty_init do end
3359
3360 init init_altmethid (
3361 n_lt: nullable TLt
3362 )
3363 do
3364 empty_init
3365 _n_lt = n_lt.as(not null)
3366 n_lt.parent = self
3367 end
3368
3369 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
3370 do
3371 if _n_lt == old_child then
3372 if new_child != null then
3373 new_child.parent = self
3374 assert new_child isa TLt
3375 _n_lt = new_child
3376 else
3377 abort
3378 end
3379 return
3380 end
3381 end
3382
3383 redef fun visit_all(v: Visitor)
3384 do
3385 v.enter_visit(_n_lt)
3386 end
3387
3388 redef fun visit_all_reverse(v: Visitor)
3389 do
3390 v.enter_visit(_n_lt)
3391 end
3392 end
3393 redef class AGtMethid
3394 redef fun n_gt=(n)
3395 do
3396 _n_gt = n
3397 n.parent = self
3398 end
3399
3400 private init empty_init do end
3401
3402 init init_agtmethid (
3403 n_gt: nullable TGt
3404 )
3405 do
3406 empty_init
3407 _n_gt = n_gt.as(not null)
3408 n_gt.parent = self
3409 end
3410
3411 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
3412 do
3413 if _n_gt == old_child then
3414 if new_child != null then
3415 new_child.parent = self
3416 assert new_child isa TGt
3417 _n_gt = new_child
3418 else
3419 abort
3420 end
3421 return
3422 end
3423 end
3424
3425 redef fun visit_all(v: Visitor)
3426 do
3427 v.enter_visit(_n_gt)
3428 end
3429
3430 redef fun visit_all_reverse(v: Visitor)
3431 do
3432 v.enter_visit(_n_gt)
3433 end
3434 end
3435 redef class ABraMethid
3436 redef fun n_obra=(n)
3437 do
3438 _n_obra = n
3439 n.parent = self
3440 end
3441 redef fun n_cbra=(n)
3442 do
3443 _n_cbra = n
3444 n.parent = self
3445 end
3446
3447 private init empty_init do end
3448
3449 init init_abramethid (
3450 n_obra: nullable TObra,
3451 n_cbra: nullable TCbra
3452 )
3453 do
3454 empty_init
3455 _n_obra = n_obra.as(not null)
3456 n_obra.parent = self
3457 _n_cbra = n_cbra.as(not null)
3458 n_cbra.parent = self
3459 end
3460
3461 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
3462 do
3463 if _n_obra == old_child then
3464 if new_child != null then
3465 new_child.parent = self
3466 assert new_child isa TObra
3467 _n_obra = new_child
3468 else
3469 abort
3470 end
3471 return
3472 end
3473 if _n_cbra == old_child then
3474 if new_child != null then
3475 new_child.parent = self
3476 assert new_child isa TCbra
3477 _n_cbra = new_child
3478 else
3479 abort
3480 end
3481 return
3482 end
3483 end
3484
3485 redef fun visit_all(v: Visitor)
3486 do
3487 v.enter_visit(_n_obra)
3488 v.enter_visit(_n_cbra)
3489 end
3490
3491 redef fun visit_all_reverse(v: Visitor)
3492 do
3493 v.enter_visit(_n_obra)
3494 v.enter_visit(_n_cbra)
3495 end
3496 end
3497 redef class AStarshipMethid
3498 redef fun n_starship=(n)
3499 do
3500 _n_starship = n
3501 n.parent = self
3502 end
3503
3504 private init empty_init do end
3505
3506 init init_astarshipmethid (
3507 n_starship: nullable TStarship
3508 )
3509 do
3510 empty_init
3511 _n_starship = n_starship.as(not null)
3512 n_starship.parent = self
3513 end
3514
3515 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
3516 do
3517 if _n_starship == old_child then
3518 if new_child != null then
3519 new_child.parent = self
3520 assert new_child isa TStarship
3521 _n_starship = new_child
3522 else
3523 abort
3524 end
3525 return
3526 end
3527 end
3528
3529 redef fun visit_all(v: Visitor)
3530 do
3531 v.enter_visit(_n_starship)
3532 end
3533
3534 redef fun visit_all_reverse(v: Visitor)
3535 do
3536 v.enter_visit(_n_starship)
3537 end
3538 end
3539 redef class AAssignMethid
3540 redef fun n_id=(n)
3541 do
3542 _n_id = n
3543 n.parent = self
3544 end
3545 redef fun n_assign=(n)
3546 do
3547 _n_assign = n
3548 n.parent = self
3549 end
3550
3551 private init empty_init do end
3552
3553 init init_aassignmethid (
3554 n_id: nullable TId,
3555 n_assign: nullable TAssign
3556 )
3557 do
3558 empty_init
3559 _n_id = n_id.as(not null)
3560 n_id.parent = self
3561 _n_assign = n_assign.as(not null)
3562 n_assign.parent = self
3563 end
3564
3565 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
3566 do
3567 if _n_id == old_child then
3568 if new_child != null then
3569 new_child.parent = self
3570 assert new_child isa TId
3571 _n_id = new_child
3572 else
3573 abort
3574 end
3575 return
3576 end
3577 if _n_assign == old_child then
3578 if new_child != null then
3579 new_child.parent = self
3580 assert new_child isa TAssign
3581 _n_assign = new_child
3582 else
3583 abort
3584 end
3585 return
3586 end
3587 end
3588
3589 redef fun visit_all(v: Visitor)
3590 do
3591 v.enter_visit(_n_id)
3592 v.enter_visit(_n_assign)
3593 end
3594
3595 redef fun visit_all_reverse(v: Visitor)
3596 do
3597 v.enter_visit(_n_id)
3598 v.enter_visit(_n_assign)
3599 end
3600 end
3601 redef class ABraassignMethid
3602 redef fun n_obra=(n)
3603 do
3604 _n_obra = n
3605 n.parent = self
3606 end
3607 redef fun n_cbra=(n)
3608 do
3609 _n_cbra = n
3610 n.parent = self
3611 end
3612 redef fun n_assign=(n)
3613 do
3614 _n_assign = n
3615 n.parent = self
3616 end
3617
3618 private init empty_init do end
3619
3620 init init_abraassignmethid (
3621 n_obra: nullable TObra,
3622 n_cbra: nullable TCbra,
3623 n_assign: nullable TAssign
3624 )
3625 do
3626 empty_init
3627 _n_obra = n_obra.as(not null)
3628 n_obra.parent = self
3629 _n_cbra = n_cbra.as(not null)
3630 n_cbra.parent = self
3631 _n_assign = n_assign.as(not null)
3632 n_assign.parent = self
3633 end
3634
3635 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
3636 do
3637 if _n_obra == old_child then
3638 if new_child != null then
3639 new_child.parent = self
3640 assert new_child isa TObra
3641 _n_obra = new_child
3642 else
3643 abort
3644 end
3645 return
3646 end
3647 if _n_cbra == old_child then
3648 if new_child != null then
3649 new_child.parent = self
3650 assert new_child isa TCbra
3651 _n_cbra = new_child
3652 else
3653 abort
3654 end
3655 return
3656 end
3657 if _n_assign == old_child then
3658 if new_child != null then
3659 new_child.parent = self
3660 assert new_child isa TAssign
3661 _n_assign = new_child
3662 else
3663 abort
3664 end
3665 return
3666 end
3667 end
3668
3669 redef fun visit_all(v: Visitor)
3670 do
3671 v.enter_visit(_n_obra)
3672 v.enter_visit(_n_cbra)
3673 v.enter_visit(_n_assign)
3674 end
3675
3676 redef fun visit_all_reverse(v: Visitor)
3677 do
3678 v.enter_visit(_n_obra)
3679 v.enter_visit(_n_cbra)
3680 v.enter_visit(_n_assign)
3681 end
3682 end
3683 redef class ASignature
3684 redef fun n_type=(n)
3685 do
3686 _n_type = n
3687 if n != null then
3688 n.parent = self
3689 end
3690 end
3691
3692 private init empty_init do end
3693
3694 init init_asignature (
3695 n_params: Collection[Object], # Should be Collection[AParam]
3696 n_type: nullable AType,
3697 n_closure_decls: Collection[Object] # Should be Collection[AClosureDecl]
3698 )
3699 do
3700 empty_init
3701 for n in n_params do
3702 assert n isa AParam
3703 _n_params.add(n)
3704 n.parent = self
3705 end
3706 _n_type = n_type
3707 if n_type != null then
3708 n_type.parent = self
3709 end
3710 for n in n_closure_decls do
3711 assert n isa AClosureDecl
3712 _n_closure_decls.add(n)
3713 n.parent = self
3714 end
3715 end
3716
3717 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
3718 do
3719 for i in [0.._n_params.length[ do
3720 if _n_params[i] == old_child then
3721 if new_child != null then
3722 assert new_child isa AParam
3723 _n_params[i] = new_child
3724 new_child.parent = self
3725 else
3726 _n_params.remove_at(i)
3727 end
3728 return
3729 end
3730 end
3731 if _n_type == old_child then
3732 if new_child != null then
3733 new_child.parent = self
3734 assert new_child isa AType
3735 _n_type = new_child
3736 else
3737 _n_type = null
3738 end
3739 return
3740 end
3741 for i in [0.._n_closure_decls.length[ do
3742 if _n_closure_decls[i] == old_child then
3743 if new_child != null then
3744 assert new_child isa AClosureDecl
3745 _n_closure_decls[i] = new_child
3746 new_child.parent = self
3747 else
3748 _n_closure_decls.remove_at(i)
3749 end
3750 return
3751 end
3752 end
3753 end
3754
3755 redef fun visit_all(v: Visitor)
3756 do
3757 for n in _n_params do
3758 v.enter_visit(n)
3759 end
3760 if _n_type != null then
3761 v.enter_visit(_n_type.as(not null))
3762 end
3763 for n in _n_closure_decls do
3764 v.enter_visit(n)
3765 end
3766 end
3767
3768 redef fun visit_all_reverse(v: Visitor)
3769 do
3770 do
3771 var i = _n_params.length
3772 while i >= 0 do
3773 v.enter_visit(_n_params[i])
3774 i = i - 1
3775 end
3776 end
3777 if _n_type != null then
3778 v.enter_visit(_n_type.as(not null))
3779 end
3780 do
3781 var i = _n_closure_decls.length
3782 while i >= 0 do
3783 v.enter_visit(_n_closure_decls[i])
3784 i = i - 1
3785 end
3786 end
3787 end
3788 end
3789 redef class AParam
3790 redef fun n_id=(n)
3791 do
3792 _n_id = n
3793 n.parent = self
3794 end
3795 redef fun n_type=(n)
3796 do
3797 _n_type = n
3798 if n != null then
3799 n.parent = self
3800 end
3801 end
3802 redef fun n_dotdotdot=(n)
3803 do
3804 _n_dotdotdot = n
3805 if n != null then
3806 n.parent = self
3807 end
3808 end
3809
3810 private init empty_init do end
3811
3812 init init_aparam (
3813 n_id: nullable TId,
3814 n_type: nullable AType,
3815 n_dotdotdot: nullable TDotdotdot
3816 )
3817 do
3818 empty_init
3819 _n_id = n_id.as(not null)
3820 n_id.parent = self
3821 _n_type = n_type
3822 if n_type != null then
3823 n_type.parent = self
3824 end
3825 _n_dotdotdot = n_dotdotdot
3826 if n_dotdotdot != null then
3827 n_dotdotdot.parent = self
3828 end
3829 end
3830
3831 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
3832 do
3833 if _n_id == old_child then
3834 if new_child != null then
3835 new_child.parent = self
3836 assert new_child isa TId
3837 _n_id = new_child
3838 else
3839 abort
3840 end
3841 return
3842 end
3843 if _n_type == old_child then
3844 if new_child != null then
3845 new_child.parent = self
3846 assert new_child isa AType
3847 _n_type = new_child
3848 else
3849 _n_type = null
3850 end
3851 return
3852 end
3853 if _n_dotdotdot == old_child then
3854 if new_child != null then
3855 new_child.parent = self
3856 assert new_child isa TDotdotdot
3857 _n_dotdotdot = new_child
3858 else
3859 _n_dotdotdot = null
3860 end
3861 return
3862 end
3863 end
3864
3865 redef fun visit_all(v: Visitor)
3866 do
3867 v.enter_visit(_n_id)
3868 if _n_type != null then
3869 v.enter_visit(_n_type.as(not null))
3870 end
3871 if _n_dotdotdot != null then
3872 v.enter_visit(_n_dotdotdot.as(not null))
3873 end
3874 end
3875
3876 redef fun visit_all_reverse(v: Visitor)
3877 do
3878 v.enter_visit(_n_id)
3879 if _n_type != null then
3880 v.enter_visit(_n_type.as(not null))
3881 end
3882 if _n_dotdotdot != null then
3883 v.enter_visit(_n_dotdotdot.as(not null))
3884 end
3885 end
3886 end
3887 redef class AClosureDecl
3888 redef fun n_kwwith=(n)
3889 do
3890 _n_kwwith = n
3891 n.parent = self
3892 end
3893 redef fun n_kwbreak=(n)
3894 do
3895 _n_kwbreak = n
3896 if n != null then
3897 n.parent = self
3898 end
3899 end
3900 redef fun n_id=(n)
3901 do
3902 _n_id = n
3903 n.parent = self
3904 end
3905 redef fun n_signature=(n)
3906 do
3907 _n_signature = n
3908 n.parent = self
3909 end
3910 redef fun n_expr=(n)
3911 do
3912 _n_expr = n
3913 if n != null then
3914 n.parent = self
3915 end
3916 end
3917
3918 private init empty_init do end
3919
3920 init init_aclosuredecl (
3921 n_kwwith: nullable TKwwith,
3922 n_kwbreak: nullable TKwbreak,
3923 n_id: nullable TId,
3924 n_signature: nullable ASignature,
3925 n_expr: nullable AExpr
3926 )
3927 do
3928 empty_init
3929 _n_kwwith = n_kwwith.as(not null)
3930 n_kwwith.parent = self
3931 _n_kwbreak = n_kwbreak
3932 if n_kwbreak != null then
3933 n_kwbreak.parent = self
3934 end
3935 _n_id = n_id.as(not null)
3936 n_id.parent = self
3937 _n_signature = n_signature.as(not null)
3938 n_signature.parent = self
3939 _n_expr = n_expr
3940 if n_expr != null then
3941 n_expr.parent = self
3942 end
3943 end
3944
3945 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
3946 do
3947 if _n_kwwith == old_child then
3948 if new_child != null then
3949 new_child.parent = self
3950 assert new_child isa TKwwith
3951 _n_kwwith = new_child
3952 else
3953 abort
3954 end
3955 return
3956 end
3957 if _n_kwbreak == old_child then
3958 if new_child != null then
3959 new_child.parent = self
3960 assert new_child isa TKwbreak
3961 _n_kwbreak = new_child
3962 else
3963 _n_kwbreak = null
3964 end
3965 return
3966 end
3967 if _n_id == old_child then
3968 if new_child != null then
3969 new_child.parent = self
3970 assert new_child isa TId
3971 _n_id = new_child
3972 else
3973 abort
3974 end
3975 return
3976 end
3977 if _n_signature == old_child then
3978 if new_child != null then
3979 new_child.parent = self
3980 assert new_child isa ASignature
3981 _n_signature = new_child
3982 else
3983 abort
3984 end
3985 return
3986 end
3987 if _n_expr == old_child then
3988 if new_child != null then
3989 new_child.parent = self
3990 assert new_child isa AExpr
3991 _n_expr = new_child
3992 else
3993 _n_expr = null
3994 end
3995 return
3996 end
3997 end
3998
3999 redef fun visit_all(v: Visitor)
4000 do
4001 v.enter_visit(_n_kwwith)
4002 if _n_kwbreak != null then
4003 v.enter_visit(_n_kwbreak.as(not null))
4004 end
4005 v.enter_visit(_n_id)
4006 v.enter_visit(_n_signature)
4007 if _n_expr != null then
4008 v.enter_visit(_n_expr.as(not null))
4009 end
4010 end
4011
4012 redef fun visit_all_reverse(v: Visitor)
4013 do
4014 v.enter_visit(_n_kwwith)
4015 if _n_kwbreak != null then
4016 v.enter_visit(_n_kwbreak.as(not null))
4017 end
4018 v.enter_visit(_n_id)
4019 v.enter_visit(_n_signature)
4020 if _n_expr != null then
4021 v.enter_visit(_n_expr.as(not null))
4022 end
4023 end
4024 end
4025 redef class AType
4026 redef fun n_kwnullable=(n)
4027 do
4028 _n_kwnullable = n
4029 if n != null then
4030 n.parent = self
4031 end
4032 end
4033 redef fun n_id=(n)
4034 do
4035 _n_id = n
4036 n.parent = self
4037 end
4038
4039 private init empty_init do end
4040
4041 init init_atype (
4042 n_kwnullable: nullable TKwnullable,
4043 n_id: nullable TClassid,
4044 n_types: Collection[Object] # Should be Collection[AType]
4045 )
4046 do
4047 empty_init
4048 _n_kwnullable = n_kwnullable
4049 if n_kwnullable != null then
4050 n_kwnullable.parent = self
4051 end
4052 _n_id = n_id.as(not null)
4053 n_id.parent = self
4054 for n in n_types do
4055 assert n isa AType
4056 _n_types.add(n)
4057 n.parent = self
4058 end
4059 end
4060
4061 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
4062 do
4063 if _n_kwnullable == old_child then
4064 if new_child != null then
4065 new_child.parent = self
4066 assert new_child isa TKwnullable
4067 _n_kwnullable = new_child
4068 else
4069 _n_kwnullable = null
4070 end
4071 return
4072 end
4073 if _n_id == old_child then
4074 if new_child != null then
4075 new_child.parent = self
4076 assert new_child isa TClassid
4077 _n_id = new_child
4078 else
4079 abort
4080 end
4081 return
4082 end
4083 for i in [0.._n_types.length[ do
4084 if _n_types[i] == old_child then
4085 if new_child != null then
4086 assert new_child isa AType
4087 _n_types[i] = new_child
4088 new_child.parent = self
4089 else
4090 _n_types.remove_at(i)
4091 end
4092 return
4093 end
4094 end
4095 end
4096
4097 redef fun visit_all(v: Visitor)
4098 do
4099 if _n_kwnullable != null then
4100 v.enter_visit(_n_kwnullable.as(not null))
4101 end
4102 v.enter_visit(_n_id)
4103 for n in _n_types do
4104 v.enter_visit(n)
4105 end
4106 end
4107
4108 redef fun visit_all_reverse(v: Visitor)
4109 do
4110 if _n_kwnullable != null then
4111 v.enter_visit(_n_kwnullable.as(not null))
4112 end
4113 v.enter_visit(_n_id)
4114 do
4115 var i = _n_types.length
4116 while i >= 0 do
4117 v.enter_visit(_n_types[i])
4118 i = i - 1
4119 end
4120 end
4121 end
4122 end
4123 redef class ALabel
4124 redef fun n_kwlabel=(n)
4125 do
4126 _n_kwlabel = n
4127 n.parent = self
4128 end
4129 redef fun n_id=(n)
4130 do
4131 _n_id = n
4132 n.parent = self
4133 end
4134
4135 private init empty_init do end
4136
4137 init init_alabel (
4138 n_kwlabel: nullable TKwlabel,
4139 n_id: nullable TId
4140 )
4141 do
4142 empty_init
4143 _n_kwlabel = n_kwlabel.as(not null)
4144 n_kwlabel.parent = self
4145 _n_id = n_id.as(not null)
4146 n_id.parent = self
4147 end
4148
4149 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
4150 do
4151 if _n_kwlabel == old_child then
4152 if new_child != null then
4153 new_child.parent = self
4154 assert new_child isa TKwlabel
4155 _n_kwlabel = new_child
4156 else
4157 abort
4158 end
4159 return
4160 end
4161 if _n_id == old_child then
4162 if new_child != null then
4163 new_child.parent = self
4164 assert new_child isa TId
4165 _n_id = new_child
4166 else
4167 abort
4168 end
4169 return
4170 end
4171 end
4172
4173 redef fun visit_all(v: Visitor)
4174 do
4175 v.enter_visit(_n_kwlabel)
4176 v.enter_visit(_n_id)
4177 end
4178
4179 redef fun visit_all_reverse(v: Visitor)
4180 do
4181 v.enter_visit(_n_kwlabel)
4182 v.enter_visit(_n_id)
4183 end
4184 end
4185 redef class ABlockExpr
4186
4187 private init empty_init do end
4188
4189 init init_ablockexpr (
4190 n_expr: Collection[Object] # Should be Collection[AExpr]
4191 )
4192 do
4193 empty_init
4194 for n in n_expr do
4195 assert n isa AExpr
4196 _n_expr.add(n)
4197 n.parent = self
4198 end
4199 end
4200
4201 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
4202 do
4203 for i in [0.._n_expr.length[ do
4204 if _n_expr[i] == old_child then
4205 if new_child != null then
4206 assert new_child isa AExpr
4207 _n_expr[i] = new_child
4208 new_child.parent = self
4209 else
4210 _n_expr.remove_at(i)
4211 end
4212 return
4213 end
4214 end
4215 end
4216
4217 redef fun visit_all(v: Visitor)
4218 do
4219 for n in _n_expr do
4220 v.enter_visit(n)
4221 end
4222 end
4223
4224 redef fun visit_all_reverse(v: Visitor)
4225 do
4226 do
4227 var i = _n_expr.length
4228 while i >= 0 do
4229 v.enter_visit(_n_expr[i])
4230 i = i - 1
4231 end
4232 end
4233 end
4234 end
4235 redef class AVardeclExpr
4236 redef fun n_kwvar=(n)
4237 do
4238 _n_kwvar = n
4239 n.parent = self
4240 end
4241 redef fun n_id=(n)
4242 do
4243 _n_id = n
4244 n.parent = self
4245 end
4246 redef fun n_type=(n)
4247 do
4248 _n_type = n
4249 if n != null then
4250 n.parent = self
4251 end
4252 end
4253 redef fun n_assign=(n)
4254 do
4255 _n_assign = n
4256 if n != null then
4257 n.parent = self
4258 end
4259 end
4260 redef fun n_expr=(n)
4261 do
4262 _n_expr = n
4263 if n != null then
4264 n.parent = self
4265 end
4266 end
4267
4268 private init empty_init do end
4269
4270 init init_avardeclexpr (
4271 n_kwvar: nullable TKwvar,
4272 n_id: nullable TId,
4273 n_type: nullable AType,
4274 n_assign: nullable TAssign,
4275 n_expr: nullable AExpr
4276 )
4277 do
4278 empty_init
4279 _n_kwvar = n_kwvar.as(not null)
4280 n_kwvar.parent = self
4281 _n_id = n_id.as(not null)
4282 n_id.parent = self
4283 _n_type = n_type
4284 if n_type != null then
4285 n_type.parent = self
4286 end
4287 _n_assign = n_assign
4288 if n_assign != null then
4289 n_assign.parent = self
4290 end
4291 _n_expr = n_expr
4292 if n_expr != null then
4293 n_expr.parent = self
4294 end
4295 end
4296
4297 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
4298 do
4299 if _n_kwvar == old_child then
4300 if new_child != null then
4301 new_child.parent = self
4302 assert new_child isa TKwvar
4303 _n_kwvar = new_child
4304 else
4305 abort
4306 end
4307 return
4308 end
4309 if _n_id == old_child then
4310 if new_child != null then
4311 new_child.parent = self
4312 assert new_child isa TId
4313 _n_id = new_child
4314 else
4315 abort
4316 end
4317 return
4318 end
4319 if _n_type == old_child then
4320 if new_child != null then
4321 new_child.parent = self
4322 assert new_child isa AType
4323 _n_type = new_child
4324 else
4325 _n_type = null
4326 end
4327 return
4328 end
4329 if _n_assign == old_child then
4330 if new_child != null then
4331 new_child.parent = self
4332 assert new_child isa TAssign
4333 _n_assign = new_child
4334 else
4335 _n_assign = null
4336 end
4337 return
4338 end
4339 if _n_expr == old_child then
4340 if new_child != null then
4341 new_child.parent = self
4342 assert new_child isa AExpr
4343 _n_expr = new_child
4344 else
4345 _n_expr = null
4346 end
4347 return
4348 end
4349 end
4350
4351 redef fun visit_all(v: Visitor)
4352 do
4353 v.enter_visit(_n_kwvar)
4354 v.enter_visit(_n_id)
4355 if _n_type != null then
4356 v.enter_visit(_n_type.as(not null))
4357 end
4358 if _n_assign != null then
4359 v.enter_visit(_n_assign.as(not null))
4360 end
4361 if _n_expr != null then
4362 v.enter_visit(_n_expr.as(not null))
4363 end
4364 end
4365
4366 redef fun visit_all_reverse(v: Visitor)
4367 do
4368 v.enter_visit(_n_kwvar)
4369 v.enter_visit(_n_id)
4370 if _n_type != null then
4371 v.enter_visit(_n_type.as(not null))
4372 end
4373 if _n_assign != null then
4374 v.enter_visit(_n_assign.as(not null))
4375 end
4376 if _n_expr != null then
4377 v.enter_visit(_n_expr.as(not null))
4378 end
4379 end
4380 end
4381 redef class AReturnExpr
4382 redef fun n_kwreturn=(n)
4383 do
4384 _n_kwreturn = n
4385 n.parent = self
4386 end
4387 redef fun n_expr=(n)
4388 do
4389 _n_expr = n
4390 if n != null then
4391 n.parent = self
4392 end
4393 end
4394
4395 private init empty_init do end
4396
4397 init init_areturnexpr (
4398 n_kwreturn: nullable TKwreturn,
4399 n_expr: nullable AExpr
4400 )
4401 do
4402 empty_init
4403 _n_kwreturn = n_kwreturn.as(not null)
4404 n_kwreturn.parent = self
4405 _n_expr = n_expr
4406 if n_expr != null then
4407 n_expr.parent = self
4408 end
4409 end
4410
4411 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
4412 do
4413 if _n_kwreturn == old_child then
4414 if new_child != null then
4415 new_child.parent = self
4416 assert new_child isa TKwreturn
4417 _n_kwreturn = new_child
4418 else
4419 abort
4420 end
4421 return
4422 end
4423 if _n_expr == old_child then
4424 if new_child != null then
4425 new_child.parent = self
4426 assert new_child isa AExpr
4427 _n_expr = new_child
4428 else
4429 _n_expr = null
4430 end
4431 return
4432 end
4433 end
4434
4435 redef fun visit_all(v: Visitor)
4436 do
4437 v.enter_visit(_n_kwreturn)
4438 if _n_expr != null then
4439 v.enter_visit(_n_expr.as(not null))
4440 end
4441 end
4442
4443 redef fun visit_all_reverse(v: Visitor)
4444 do
4445 v.enter_visit(_n_kwreturn)
4446 if _n_expr != null then
4447 v.enter_visit(_n_expr.as(not null))
4448 end
4449 end
4450 end
4451 redef class ABreakExpr
4452 redef fun n_kwbreak=(n)
4453 do
4454 _n_kwbreak = n
4455 n.parent = self
4456 end
4457 redef fun n_label=(n)
4458 do
4459 _n_label = n
4460 if n != null then
4461 n.parent = self
4462 end
4463 end
4464 redef fun n_expr=(n)
4465 do
4466 _n_expr = n
4467 if n != null then
4468 n.parent = self
4469 end
4470 end
4471
4472 private init empty_init do end
4473
4474 init init_abreakexpr (
4475 n_kwbreak: nullable TKwbreak,
4476 n_label: nullable ALabel,
4477 n_expr: nullable AExpr
4478 )
4479 do
4480 empty_init
4481 _n_kwbreak = n_kwbreak.as(not null)
4482 n_kwbreak.parent = self
4483 _n_label = n_label
4484 if n_label != null then
4485 n_label.parent = self
4486 end
4487 _n_expr = n_expr
4488 if n_expr != null then
4489 n_expr.parent = self
4490 end
4491 end
4492
4493 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
4494 do
4495 if _n_kwbreak == old_child then
4496 if new_child != null then
4497 new_child.parent = self
4498 assert new_child isa TKwbreak
4499 _n_kwbreak = new_child
4500 else
4501 abort
4502 end
4503 return
4504 end
4505 if _n_label == old_child then
4506 if new_child != null then
4507 new_child.parent = self
4508 assert new_child isa ALabel
4509 _n_label = new_child
4510 else
4511 _n_label = null
4512 end
4513 return
4514 end
4515 if _n_expr == old_child then
4516 if new_child != null then
4517 new_child.parent = self
4518 assert new_child isa AExpr
4519 _n_expr = new_child
4520 else
4521 _n_expr = null
4522 end
4523 return
4524 end
4525 end
4526
4527 redef fun visit_all(v: Visitor)
4528 do
4529 v.enter_visit(_n_kwbreak)
4530 if _n_label != null then
4531 v.enter_visit(_n_label.as(not null))
4532 end
4533 if _n_expr != null then
4534 v.enter_visit(_n_expr.as(not null))
4535 end
4536 end
4537
4538 redef fun visit_all_reverse(v: Visitor)
4539 do
4540 v.enter_visit(_n_kwbreak)
4541 if _n_label != null then
4542 v.enter_visit(_n_label.as(not null))
4543 end
4544 if _n_expr != null then
4545 v.enter_visit(_n_expr.as(not null))
4546 end
4547 end
4548 end
4549 redef class AAbortExpr
4550 redef fun n_kwabort=(n)
4551 do
4552 _n_kwabort = n
4553 n.parent = self
4554 end
4555
4556 private init empty_init do end
4557
4558 init init_aabortexpr (
4559 n_kwabort: nullable TKwabort
4560 )
4561 do
4562 empty_init
4563 _n_kwabort = n_kwabort.as(not null)
4564 n_kwabort.parent = self
4565 end
4566
4567 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
4568 do
4569 if _n_kwabort == old_child then
4570 if new_child != null then
4571 new_child.parent = self
4572 assert new_child isa TKwabort
4573 _n_kwabort = new_child
4574 else
4575 abort
4576 end
4577 return
4578 end
4579 end
4580
4581 redef fun visit_all(v: Visitor)
4582 do
4583 v.enter_visit(_n_kwabort)
4584 end
4585
4586 redef fun visit_all_reverse(v: Visitor)
4587 do
4588 v.enter_visit(_n_kwabort)
4589 end
4590 end
4591 redef class AContinueExpr
4592 redef fun n_kwcontinue=(n)
4593 do
4594 _n_kwcontinue = n
4595 n.parent = self
4596 end
4597 redef fun n_label=(n)
4598 do
4599 _n_label = n
4600 if n != null then
4601 n.parent = self
4602 end
4603 end
4604 redef fun n_expr=(n)
4605 do
4606 _n_expr = n
4607 if n != null then
4608 n.parent = self
4609 end
4610 end
4611
4612 private init empty_init do end
4613
4614 init init_acontinueexpr (
4615 n_kwcontinue: nullable TKwcontinue,
4616 n_label: nullable ALabel,
4617 n_expr: nullable AExpr
4618 )
4619 do
4620 empty_init
4621 _n_kwcontinue = n_kwcontinue.as(not null)
4622 n_kwcontinue.parent = self
4623 _n_label = n_label
4624 if n_label != null then
4625 n_label.parent = self
4626 end
4627 _n_expr = n_expr
4628 if n_expr != null then
4629 n_expr.parent = self
4630 end
4631 end
4632
4633 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
4634 do
4635 if _n_kwcontinue == old_child then
4636 if new_child != null then
4637 new_child.parent = self
4638 assert new_child isa TKwcontinue
4639 _n_kwcontinue = new_child
4640 else
4641 abort
4642 end
4643 return
4644 end
4645 if _n_label == old_child then
4646 if new_child != null then
4647 new_child.parent = self
4648 assert new_child isa ALabel
4649 _n_label = new_child
4650 else
4651 _n_label = null
4652 end
4653 return
4654 end
4655 if _n_expr == old_child then
4656 if new_child != null then
4657 new_child.parent = self
4658 assert new_child isa AExpr
4659 _n_expr = new_child
4660 else
4661 _n_expr = null
4662 end
4663 return
4664 end
4665 end
4666
4667 redef fun visit_all(v: Visitor)
4668 do
4669 v.enter_visit(_n_kwcontinue)
4670 if _n_label != null then
4671 v.enter_visit(_n_label.as(not null))
4672 end
4673 if _n_expr != null then
4674 v.enter_visit(_n_expr.as(not null))
4675 end
4676 end
4677
4678 redef fun visit_all_reverse(v: Visitor)
4679 do
4680 v.enter_visit(_n_kwcontinue)
4681 if _n_label != null then
4682 v.enter_visit(_n_label.as(not null))
4683 end
4684 if _n_expr != null then
4685 v.enter_visit(_n_expr.as(not null))
4686 end
4687 end
4688 end
4689 redef class ADoExpr
4690 redef fun n_kwdo=(n)
4691 do
4692 _n_kwdo = n
4693 n.parent = self
4694 end
4695 redef fun n_block=(n)
4696 do
4697 _n_block = n
4698 if n != null then
4699 n.parent = self
4700 end
4701 end
4702 redef fun n_label=(n)
4703 do
4704 _n_label = n
4705 if n != null then
4706 n.parent = self
4707 end
4708 end
4709
4710 private init empty_init do end
4711
4712 init init_adoexpr (
4713 n_kwdo: nullable TKwdo,
4714 n_block: nullable AExpr,
4715 n_label: nullable ALabel
4716 )
4717 do
4718 empty_init
4719 _n_kwdo = n_kwdo.as(not null)
4720 n_kwdo.parent = self
4721 _n_block = n_block
4722 if n_block != null then
4723 n_block.parent = self
4724 end
4725 _n_label = n_label
4726 if n_label != null then
4727 n_label.parent = self
4728 end
4729 end
4730
4731 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
4732 do
4733 if _n_kwdo == old_child then
4734 if new_child != null then
4735 new_child.parent = self
4736 assert new_child isa TKwdo
4737 _n_kwdo = new_child
4738 else
4739 abort
4740 end
4741 return
4742 end
4743 if _n_block == old_child then
4744 if new_child != null then
4745 new_child.parent = self
4746 assert new_child isa AExpr
4747 _n_block = new_child
4748 else
4749 _n_block = null
4750 end
4751 return
4752 end
4753 if _n_label == old_child then
4754 if new_child != null then
4755 new_child.parent = self
4756 assert new_child isa ALabel
4757 _n_label = new_child
4758 else
4759 _n_label = null
4760 end
4761 return
4762 end
4763 end
4764
4765 redef fun visit_all(v: Visitor)
4766 do
4767 v.enter_visit(_n_kwdo)
4768 if _n_block != null then
4769 v.enter_visit(_n_block.as(not null))
4770 end
4771 if _n_label != null then
4772 v.enter_visit(_n_label.as(not null))
4773 end
4774 end
4775
4776 redef fun visit_all_reverse(v: Visitor)
4777 do
4778 v.enter_visit(_n_kwdo)
4779 if _n_block != null then
4780 v.enter_visit(_n_block.as(not null))
4781 end
4782 if _n_label != null then
4783 v.enter_visit(_n_label.as(not null))
4784 end
4785 end
4786 end
4787 redef class AIfExpr
4788 redef fun n_kwif=(n)
4789 do
4790 _n_kwif = n
4791 n.parent = self
4792 end
4793 redef fun n_expr=(n)
4794 do
4795 _n_expr = n
4796 n.parent = self
4797 end
4798 redef fun n_then=(n)
4799 do
4800 _n_then = n
4801 if n != null then
4802 n.parent = self
4803 end
4804 end
4805 redef fun n_else=(n)
4806 do
4807 _n_else = n
4808 if n != null then
4809 n.parent = self
4810 end
4811 end
4812
4813 private init empty_init do end
4814
4815 init init_aifexpr (
4816 n_kwif: nullable TKwif,
4817 n_expr: nullable AExpr,
4818 n_then: nullable AExpr,
4819 n_else: nullable AExpr
4820 )
4821 do
4822 empty_init
4823 _n_kwif = n_kwif.as(not null)
4824 n_kwif.parent = self
4825 _n_expr = n_expr.as(not null)
4826 n_expr.parent = self
4827 _n_then = n_then
4828 if n_then != null then
4829 n_then.parent = self
4830 end
4831 _n_else = n_else
4832 if n_else != null then
4833 n_else.parent = self
4834 end
4835 end
4836
4837 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
4838 do
4839 if _n_kwif == old_child then
4840 if new_child != null then
4841 new_child.parent = self
4842 assert new_child isa TKwif
4843 _n_kwif = new_child
4844 else
4845 abort
4846 end
4847 return
4848 end
4849 if _n_expr == old_child then
4850 if new_child != null then
4851 new_child.parent = self
4852 assert new_child isa AExpr
4853 _n_expr = new_child
4854 else
4855 abort
4856 end
4857 return
4858 end
4859 if _n_then == old_child then
4860 if new_child != null then
4861 new_child.parent = self
4862 assert new_child isa AExpr
4863 _n_then = new_child
4864 else
4865 _n_then = null
4866 end
4867 return
4868 end
4869 if _n_else == old_child then
4870 if new_child != null then
4871 new_child.parent = self
4872 assert new_child isa AExpr
4873 _n_else = new_child
4874 else
4875 _n_else = null
4876 end
4877 return
4878 end
4879 end
4880
4881 redef fun visit_all(v: Visitor)
4882 do
4883 v.enter_visit(_n_kwif)
4884 v.enter_visit(_n_expr)
4885 if _n_then != null then
4886 v.enter_visit(_n_then.as(not null))
4887 end
4888 if _n_else != null then
4889 v.enter_visit(_n_else.as(not null))
4890 end
4891 end
4892
4893 redef fun visit_all_reverse(v: Visitor)
4894 do
4895 v.enter_visit(_n_kwif)
4896 v.enter_visit(_n_expr)
4897 if _n_then != null then
4898 v.enter_visit(_n_then.as(not null))
4899 end
4900 if _n_else != null then
4901 v.enter_visit(_n_else.as(not null))
4902 end
4903 end
4904 end
4905 redef class AIfexprExpr
4906 redef fun n_kwif=(n)
4907 do
4908 _n_kwif = n
4909 n.parent = self
4910 end
4911 redef fun n_expr=(n)
4912 do
4913 _n_expr = n
4914 n.parent = self
4915 end
4916 redef fun n_kwthen=(n)
4917 do
4918 _n_kwthen = n
4919 n.parent = self
4920 end
4921 redef fun n_then=(n)
4922 do
4923 _n_then = n
4924 n.parent = self
4925 end
4926 redef fun n_kwelse=(n)
4927 do
4928 _n_kwelse = n
4929 n.parent = self
4930 end
4931 redef fun n_else=(n)
4932 do
4933 _n_else = n
4934 n.parent = self
4935 end
4936
4937 private init empty_init do end
4938
4939 init init_aifexprexpr (
4940 n_kwif: nullable TKwif,
4941 n_expr: nullable AExpr,
4942 n_kwthen: nullable TKwthen,
4943 n_then: nullable AExpr,
4944 n_kwelse: nullable TKwelse,
4945 n_else: nullable AExpr
4946 )
4947 do
4948 empty_init
4949 _n_kwif = n_kwif.as(not null)
4950 n_kwif.parent = self
4951 _n_expr = n_expr.as(not null)
4952 n_expr.parent = self
4953 _n_kwthen = n_kwthen.as(not null)
4954 n_kwthen.parent = self
4955 _n_then = n_then.as(not null)
4956 n_then.parent = self
4957 _n_kwelse = n_kwelse.as(not null)
4958 n_kwelse.parent = self
4959 _n_else = n_else.as(not null)
4960 n_else.parent = self
4961 end
4962
4963 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
4964 do
4965 if _n_kwif == old_child then
4966 if new_child != null then
4967 new_child.parent = self
4968 assert new_child isa TKwif
4969 _n_kwif = new_child
4970 else
4971 abort
4972 end
4973 return
4974 end
4975 if _n_expr == old_child then
4976 if new_child != null then
4977 new_child.parent = self
4978 assert new_child isa AExpr
4979 _n_expr = new_child
4980 else
4981 abort
4982 end
4983 return
4984 end
4985 if _n_kwthen == old_child then
4986 if new_child != null then
4987 new_child.parent = self
4988 assert new_child isa TKwthen
4989 _n_kwthen = new_child
4990 else
4991 abort
4992 end
4993 return
4994 end
4995 if _n_then == old_child then
4996 if new_child != null then
4997 new_child.parent = self
4998 assert new_child isa AExpr
4999 _n_then = new_child
5000 else
5001 abort
5002 end
5003 return
5004 end
5005 if _n_kwelse == old_child then
5006 if new_child != null then
5007 new_child.parent = self
5008 assert new_child isa TKwelse
5009 _n_kwelse = new_child
5010 else
5011 abort
5012 end
5013 return
5014 end
5015 if _n_else == old_child then
5016 if new_child != null then
5017 new_child.parent = self
5018 assert new_child isa AExpr
5019 _n_else = new_child
5020 else
5021 abort
5022 end
5023 return
5024 end
5025 end
5026
5027 redef fun visit_all(v: Visitor)
5028 do
5029 v.enter_visit(_n_kwif)
5030 v.enter_visit(_n_expr)
5031 v.enter_visit(_n_kwthen)
5032 v.enter_visit(_n_then)
5033 v.enter_visit(_n_kwelse)
5034 v.enter_visit(_n_else)
5035 end
5036
5037 redef fun visit_all_reverse(v: Visitor)
5038 do
5039 v.enter_visit(_n_kwif)
5040 v.enter_visit(_n_expr)
5041 v.enter_visit(_n_kwthen)
5042 v.enter_visit(_n_then)
5043 v.enter_visit(_n_kwelse)
5044 v.enter_visit(_n_else)
5045 end
5046 end
5047 redef class AWhileExpr
5048 redef fun n_kwwhile=(n)
5049 do
5050 _n_kwwhile = n
5051 n.parent = self
5052 end
5053 redef fun n_expr=(n)
5054 do
5055 _n_expr = n
5056 n.parent = self
5057 end
5058 redef fun n_kwdo=(n)
5059 do
5060 _n_kwdo = n
5061 n.parent = self
5062 end
5063 redef fun n_block=(n)
5064 do
5065 _n_block = n
5066 if n != null then
5067 n.parent = self
5068 end
5069 end
5070 redef fun n_label=(n)
5071 do
5072 _n_label = n
5073 if n != null then
5074 n.parent = self
5075 end
5076 end
5077
5078 private init empty_init do end
5079
5080 init init_awhileexpr (
5081 n_kwwhile: nullable TKwwhile,
5082 n_expr: nullable AExpr,
5083 n_kwdo: nullable TKwdo,
5084 n_block: nullable AExpr,
5085 n_label: nullable ALabel
5086 )
5087 do
5088 empty_init
5089 _n_kwwhile = n_kwwhile.as(not null)
5090 n_kwwhile.parent = self
5091 _n_expr = n_expr.as(not null)
5092 n_expr.parent = self
5093 _n_kwdo = n_kwdo.as(not null)
5094 n_kwdo.parent = self
5095 _n_block = n_block
5096 if n_block != null then
5097 n_block.parent = self
5098 end
5099 _n_label = n_label
5100 if n_label != null then
5101 n_label.parent = self
5102 end
5103 end
5104
5105 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
5106 do
5107 if _n_kwwhile == old_child then
5108 if new_child != null then
5109 new_child.parent = self
5110 assert new_child isa TKwwhile
5111 _n_kwwhile = new_child
5112 else
5113 abort
5114 end
5115 return
5116 end
5117 if _n_expr == old_child then
5118 if new_child != null then
5119 new_child.parent = self
5120 assert new_child isa AExpr
5121 _n_expr = new_child
5122 else
5123 abort
5124 end
5125 return
5126 end
5127 if _n_kwdo == old_child then
5128 if new_child != null then
5129 new_child.parent = self
5130 assert new_child isa TKwdo
5131 _n_kwdo = new_child
5132 else
5133 abort
5134 end
5135 return
5136 end
5137 if _n_block == old_child then
5138 if new_child != null then
5139 new_child.parent = self
5140 assert new_child isa AExpr
5141 _n_block = new_child
5142 else
5143 _n_block = null
5144 end
5145 return
5146 end
5147 if _n_label == old_child then
5148 if new_child != null then
5149 new_child.parent = self
5150 assert new_child isa ALabel
5151 _n_label = new_child
5152 else
5153 _n_label = null
5154 end
5155 return
5156 end
5157 end
5158
5159 redef fun visit_all(v: Visitor)
5160 do
5161 v.enter_visit(_n_kwwhile)
5162 v.enter_visit(_n_expr)
5163 v.enter_visit(_n_kwdo)
5164 if _n_block != null then
5165 v.enter_visit(_n_block.as(not null))
5166 end
5167 if _n_label != null then
5168 v.enter_visit(_n_label.as(not null))
5169 end
5170 end
5171
5172 redef fun visit_all_reverse(v: Visitor)
5173 do
5174 v.enter_visit(_n_kwwhile)
5175 v.enter_visit(_n_expr)
5176 v.enter_visit(_n_kwdo)
5177 if _n_block != null then
5178 v.enter_visit(_n_block.as(not null))
5179 end
5180 if _n_label != null then
5181 v.enter_visit(_n_label.as(not null))
5182 end
5183 end
5184 end
5185 redef class AForExpr
5186 redef fun n_kwfor=(n)
5187 do
5188 _n_kwfor = n
5189 n.parent = self
5190 end
5191 redef fun n_id=(n)
5192 do
5193 _n_id = n
5194 n.parent = self
5195 end
5196 redef fun n_expr=(n)
5197 do
5198 _n_expr = n
5199 n.parent = self
5200 end
5201 redef fun n_kwdo=(n)
5202 do
5203 _n_kwdo = n
5204 n.parent = self
5205 end
5206 redef fun n_block=(n)
5207 do
5208 _n_block = n
5209 if n != null then
5210 n.parent = self
5211 end
5212 end
5213 redef fun n_label=(n)
5214 do
5215 _n_label = n
5216 if n != null then
5217 n.parent = self
5218 end
5219 end
5220
5221 private init empty_init do end
5222
5223 init init_aforexpr (
5224 n_kwfor: nullable TKwfor,
5225 n_id: nullable TId,
5226 n_expr: nullable AExpr,
5227 n_kwdo: nullable TKwdo,
5228 n_block: nullable AExpr,
5229 n_label: nullable ALabel
5230 )
5231 do
5232 empty_init
5233 _n_kwfor = n_kwfor.as(not null)
5234 n_kwfor.parent = self
5235 _n_id = n_id.as(not null)
5236 n_id.parent = self
5237 _n_expr = n_expr.as(not null)
5238 n_expr.parent = self
5239 _n_kwdo = n_kwdo.as(not null)
5240 n_kwdo.parent = self
5241 _n_block = n_block
5242 if n_block != null then
5243 n_block.parent = self
5244 end
5245 _n_label = n_label
5246 if n_label != null then
5247 n_label.parent = self
5248 end
5249 end
5250
5251 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
5252 do
5253 if _n_kwfor == old_child then
5254 if new_child != null then
5255 new_child.parent = self
5256 assert new_child isa TKwfor
5257 _n_kwfor = new_child
5258 else
5259 abort
5260 end
5261 return
5262 end
5263 if _n_id == old_child then
5264 if new_child != null then
5265 new_child.parent = self
5266 assert new_child isa TId
5267 _n_id = new_child
5268 else
5269 abort
5270 end
5271 return
5272 end
5273 if _n_expr == old_child then
5274 if new_child != null then
5275 new_child.parent = self
5276 assert new_child isa AExpr
5277 _n_expr = new_child
5278 else
5279 abort
5280 end
5281 return
5282 end
5283 if _n_kwdo == old_child then
5284 if new_child != null then
5285 new_child.parent = self
5286 assert new_child isa TKwdo
5287 _n_kwdo = new_child
5288 else
5289 abort
5290 end
5291 return
5292 end
5293 if _n_block == old_child then
5294 if new_child != null then
5295 new_child.parent = self
5296 assert new_child isa AExpr
5297 _n_block = new_child
5298 else
5299 _n_block = null
5300 end
5301 return
5302 end
5303 if _n_label == old_child then
5304 if new_child != null then
5305 new_child.parent = self
5306 assert new_child isa ALabel
5307 _n_label = new_child
5308 else
5309 _n_label = null
5310 end
5311 return
5312 end
5313 end
5314
5315 redef fun visit_all(v: Visitor)
5316 do
5317 v.enter_visit(_n_kwfor)
5318 v.enter_visit(_n_id)
5319 v.enter_visit(_n_expr)
5320 v.enter_visit(_n_kwdo)
5321 if _n_block != null then
5322 v.enter_visit(_n_block.as(not null))
5323 end
5324 if _n_label != null then
5325 v.enter_visit(_n_label.as(not null))
5326 end
5327 end
5328
5329 redef fun visit_all_reverse(v: Visitor)
5330 do
5331 v.enter_visit(_n_kwfor)
5332 v.enter_visit(_n_id)
5333 v.enter_visit(_n_expr)
5334 v.enter_visit(_n_kwdo)
5335 if _n_block != null then
5336 v.enter_visit(_n_block.as(not null))
5337 end
5338 if _n_label != null then
5339 v.enter_visit(_n_label.as(not null))
5340 end
5341 end
5342 end
5343 redef class AAssertExpr
5344 redef fun n_kwassert=(n)
5345 do
5346 _n_kwassert = n
5347 n.parent = self
5348 end
5349 redef fun n_id=(n)
5350 do
5351 _n_id = n
5352 if n != null then
5353 n.parent = self
5354 end
5355 end
5356 redef fun n_expr=(n)
5357 do
5358 _n_expr = n
5359 n.parent = self
5360 end
5361
5362 private init empty_init do end
5363
5364 init init_aassertexpr (
5365 n_kwassert: nullable TKwassert,
5366 n_id: nullable TId,
5367 n_expr: nullable AExpr
5368 )
5369 do
5370 empty_init
5371 _n_kwassert = n_kwassert.as(not null)
5372 n_kwassert.parent = self
5373 _n_id = n_id
5374 if n_id != null then
5375 n_id.parent = self
5376 end
5377 _n_expr = n_expr.as(not null)
5378 n_expr.parent = self
5379 end
5380
5381 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
5382 do
5383 if _n_kwassert == old_child then
5384 if new_child != null then
5385 new_child.parent = self
5386 assert new_child isa TKwassert
5387 _n_kwassert = new_child
5388 else
5389 abort
5390 end
5391 return
5392 end
5393 if _n_id == old_child then
5394 if new_child != null then
5395 new_child.parent = self
5396 assert new_child isa TId
5397 _n_id = new_child
5398 else
5399 _n_id = null
5400 end
5401 return
5402 end
5403 if _n_expr == old_child then
5404 if new_child != null then
5405 new_child.parent = self
5406 assert new_child isa AExpr
5407 _n_expr = new_child
5408 else
5409 abort
5410 end
5411 return
5412 end
5413 end
5414
5415 redef fun visit_all(v: Visitor)
5416 do
5417 v.enter_visit(_n_kwassert)
5418 if _n_id != null then
5419 v.enter_visit(_n_id.as(not null))
5420 end
5421 v.enter_visit(_n_expr)
5422 end
5423
5424 redef fun visit_all_reverse(v: Visitor)
5425 do
5426 v.enter_visit(_n_kwassert)
5427 if _n_id != null then
5428 v.enter_visit(_n_id.as(not null))
5429 end
5430 v.enter_visit(_n_expr)
5431 end
5432 end
5433 redef class AOnceExpr
5434 redef fun n_kwonce=(n)
5435 do
5436 _n_kwonce = n
5437 n.parent = self
5438 end
5439 redef fun n_expr=(n)
5440 do
5441 _n_expr = n
5442 n.parent = self
5443 end
5444
5445 private init empty_init do end
5446
5447 init init_aonceexpr (
5448 n_kwonce: nullable TKwonce,
5449 n_expr: nullable AExpr
5450 )
5451 do
5452 empty_init
5453 _n_kwonce = n_kwonce.as(not null)
5454 n_kwonce.parent = self
5455 _n_expr = n_expr.as(not null)
5456 n_expr.parent = self
5457 end
5458
5459 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
5460 do
5461 if _n_kwonce == old_child then
5462 if new_child != null then
5463 new_child.parent = self
5464 assert new_child isa TKwonce
5465 _n_kwonce = new_child
5466 else
5467 abort
5468 end
5469 return
5470 end
5471 if _n_expr == old_child then
5472 if new_child != null then
5473 new_child.parent = self
5474 assert new_child isa AExpr
5475 _n_expr = new_child
5476 else
5477 abort
5478 end
5479 return
5480 end
5481 end
5482
5483 redef fun visit_all(v: Visitor)
5484 do
5485 v.enter_visit(_n_kwonce)
5486 v.enter_visit(_n_expr)
5487 end
5488
5489 redef fun visit_all_reverse(v: Visitor)
5490 do
5491 v.enter_visit(_n_kwonce)
5492 v.enter_visit(_n_expr)
5493 end
5494 end
5495 redef class ASendExpr
5496 redef fun n_expr=(n)
5497 do
5498 _n_expr = n
5499 n.parent = self
5500 end
5501
5502 private init empty_init do end
5503
5504 init init_asendexpr (
5505 n_expr: nullable AExpr
5506 )
5507 do
5508 empty_init
5509 _n_expr = n_expr.as(not null)
5510 n_expr.parent = self
5511 end
5512
5513 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
5514 do
5515 if _n_expr == old_child then
5516 if new_child != null then
5517 new_child.parent = self
5518 assert new_child isa AExpr
5519 _n_expr = new_child
5520 else
5521 abort
5522 end
5523 return
5524 end
5525 end
5526
5527 redef fun visit_all(v: Visitor)
5528 do
5529 v.enter_visit(_n_expr)
5530 end
5531
5532 redef fun visit_all_reverse(v: Visitor)
5533 do
5534 v.enter_visit(_n_expr)
5535 end
5536 end
5537 redef class ABinopExpr
5538 redef fun n_expr=(n)
5539 do
5540 _n_expr = n
5541 n.parent = self
5542 end
5543 redef fun n_expr2=(n)
5544 do
5545 _n_expr2 = n
5546 n.parent = self
5547 end
5548
5549 private init empty_init do end
5550
5551 init init_abinopexpr (
5552 n_expr: nullable AExpr,
5553 n_expr2: nullable AExpr
5554 )
5555 do
5556 empty_init
5557 _n_expr = n_expr.as(not null)
5558 n_expr.parent = self
5559 _n_expr2 = n_expr2.as(not null)
5560 n_expr2.parent = self
5561 end
5562
5563 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
5564 do
5565 if _n_expr == old_child then
5566 if new_child != null then
5567 new_child.parent = self
5568 assert new_child isa AExpr
5569 _n_expr = new_child
5570 else
5571 abort
5572 end
5573 return
5574 end
5575 if _n_expr2 == old_child then
5576 if new_child != null then
5577 new_child.parent = self
5578 assert new_child isa AExpr
5579 _n_expr2 = new_child
5580 else
5581 abort
5582 end
5583 return
5584 end
5585 end
5586
5587 redef fun visit_all(v: Visitor)
5588 do
5589 v.enter_visit(_n_expr)
5590 v.enter_visit(_n_expr2)
5591 end
5592
5593 redef fun visit_all_reverse(v: Visitor)
5594 do
5595 v.enter_visit(_n_expr)
5596 v.enter_visit(_n_expr2)
5597 end
5598 end
5599 redef class AOrExpr
5600 redef fun n_expr=(n)
5601 do
5602 _n_expr = n
5603 n.parent = self
5604 end
5605 redef fun n_expr2=(n)
5606 do
5607 _n_expr2 = n
5608 n.parent = self
5609 end
5610
5611 private init empty_init do end
5612
5613 init init_aorexpr (
5614 n_expr: nullable AExpr,
5615 n_expr2: nullable AExpr
5616 )
5617 do
5618 empty_init
5619 _n_expr = n_expr.as(not null)
5620 n_expr.parent = self
5621 _n_expr2 = n_expr2.as(not null)
5622 n_expr2.parent = self
5623 end
5624
5625 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
5626 do
5627 if _n_expr == old_child then
5628 if new_child != null then
5629 new_child.parent = self
5630 assert new_child isa AExpr
5631 _n_expr = new_child
5632 else
5633 abort
5634 end
5635 return
5636 end
5637 if _n_expr2 == old_child then
5638 if new_child != null then
5639 new_child.parent = self
5640 assert new_child isa AExpr
5641 _n_expr2 = new_child
5642 else
5643 abort
5644 end
5645 return
5646 end
5647 end
5648
5649 redef fun visit_all(v: Visitor)
5650 do
5651 v.enter_visit(_n_expr)
5652 v.enter_visit(_n_expr2)
5653 end
5654
5655 redef fun visit_all_reverse(v: Visitor)
5656 do
5657 v.enter_visit(_n_expr)
5658 v.enter_visit(_n_expr2)
5659 end
5660 end
5661 redef class AAndExpr
5662 redef fun n_expr=(n)
5663 do
5664 _n_expr = n
5665 n.parent = self
5666 end
5667 redef fun n_expr2=(n)
5668 do
5669 _n_expr2 = n
5670 n.parent = self
5671 end
5672
5673 private init empty_init do end
5674
5675 init init_aandexpr (
5676 n_expr: nullable AExpr,
5677 n_expr2: nullable AExpr
5678 )
5679 do
5680 empty_init
5681 _n_expr = n_expr.as(not null)
5682 n_expr.parent = self
5683 _n_expr2 = n_expr2.as(not null)
5684 n_expr2.parent = self
5685 end
5686
5687 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
5688 do
5689 if _n_expr == old_child then
5690 if new_child != null then
5691 new_child.parent = self
5692 assert new_child isa AExpr
5693 _n_expr = new_child
5694 else
5695 abort
5696 end
5697 return
5698 end
5699 if _n_expr2 == old_child then
5700 if new_child != null then
5701 new_child.parent = self
5702 assert new_child isa AExpr
5703 _n_expr2 = new_child
5704 else
5705 abort
5706 end
5707 return
5708 end
5709 end
5710
5711 redef fun visit_all(v: Visitor)
5712 do
5713 v.enter_visit(_n_expr)
5714 v.enter_visit(_n_expr2)
5715 end
5716
5717 redef fun visit_all_reverse(v: Visitor)
5718 do
5719 v.enter_visit(_n_expr)
5720 v.enter_visit(_n_expr2)
5721 end
5722 end
5723 redef class ANotExpr
5724 redef fun n_kwnot=(n)
5725 do
5726 _n_kwnot = n
5727 n.parent = self
5728 end
5729 redef fun n_expr=(n)
5730 do
5731 _n_expr = n
5732 n.parent = self
5733 end
5734
5735 private init empty_init do end
5736
5737 init init_anotexpr (
5738 n_kwnot: nullable TKwnot,
5739 n_expr: nullable AExpr
5740 )
5741 do
5742 empty_init
5743 _n_kwnot = n_kwnot.as(not null)
5744 n_kwnot.parent = self
5745 _n_expr = n_expr.as(not null)
5746 n_expr.parent = self
5747 end
5748
5749 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
5750 do
5751 if _n_kwnot == old_child then
5752 if new_child != null then
5753 new_child.parent = self
5754 assert new_child isa TKwnot
5755 _n_kwnot = new_child
5756 else
5757 abort
5758 end
5759 return
5760 end
5761 if _n_expr == old_child then
5762 if new_child != null then
5763 new_child.parent = self
5764 assert new_child isa AExpr
5765 _n_expr = new_child
5766 else
5767 abort
5768 end
5769 return
5770 end
5771 end
5772
5773 redef fun visit_all(v: Visitor)
5774 do
5775 v.enter_visit(_n_kwnot)
5776 v.enter_visit(_n_expr)
5777 end
5778
5779 redef fun visit_all_reverse(v: Visitor)
5780 do
5781 v.enter_visit(_n_kwnot)
5782 v.enter_visit(_n_expr)
5783 end
5784 end
5785 redef class AEqExpr
5786 redef fun n_expr=(n)
5787 do
5788 _n_expr = n
5789 n.parent = self
5790 end
5791 redef fun n_expr2=(n)
5792 do
5793 _n_expr2 = n
5794 n.parent = self
5795 end
5796
5797 private init empty_init do end
5798
5799 init init_aeqexpr (
5800 n_expr: nullable AExpr,
5801 n_expr2: nullable AExpr
5802 )
5803 do
5804 empty_init
5805 _n_expr = n_expr.as(not null)
5806 n_expr.parent = self
5807 _n_expr2 = n_expr2.as(not null)
5808 n_expr2.parent = self
5809 end
5810
5811 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
5812 do
5813 if _n_expr == old_child then
5814 if new_child != null then
5815 new_child.parent = self
5816 assert new_child isa AExpr
5817 _n_expr = new_child
5818 else
5819 abort
5820 end
5821 return
5822 end
5823 if _n_expr2 == old_child then
5824 if new_child != null then
5825 new_child.parent = self
5826 assert new_child isa AExpr
5827 _n_expr2 = new_child
5828 else
5829 abort
5830 end
5831 return
5832 end
5833 end
5834
5835 redef fun visit_all(v: Visitor)
5836 do
5837 v.enter_visit(_n_expr)
5838 v.enter_visit(_n_expr2)
5839 end
5840
5841 redef fun visit_all_reverse(v: Visitor)
5842 do
5843 v.enter_visit(_n_expr)
5844 v.enter_visit(_n_expr2)
5845 end
5846 end
5847 redef class AEeExpr
5848 redef fun n_expr=(n)
5849 do
5850 _n_expr = n
5851 n.parent = self
5852 end
5853 redef fun n_expr2=(n)
5854 do
5855 _n_expr2 = n
5856 n.parent = self
5857 end
5858
5859 private init empty_init do end
5860
5861 init init_aeeexpr (
5862 n_expr: nullable AExpr,
5863 n_expr2: nullable AExpr
5864 )
5865 do
5866 empty_init
5867 _n_expr = n_expr.as(not null)
5868 n_expr.parent = self
5869 _n_expr2 = n_expr2.as(not null)
5870 n_expr2.parent = self
5871 end
5872
5873 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
5874 do
5875 if _n_expr == old_child then
5876 if new_child != null then
5877 new_child.parent = self
5878 assert new_child isa AExpr
5879 _n_expr = new_child
5880 else
5881 abort
5882 end
5883 return
5884 end
5885 if _n_expr2 == old_child then
5886 if new_child != null then
5887 new_child.parent = self
5888 assert new_child isa AExpr
5889 _n_expr2 = new_child
5890 else
5891 abort
5892 end
5893 return
5894 end
5895 end
5896
5897 redef fun visit_all(v: Visitor)
5898 do
5899 v.enter_visit(_n_expr)
5900 v.enter_visit(_n_expr2)
5901 end
5902
5903 redef fun visit_all_reverse(v: Visitor)
5904 do
5905 v.enter_visit(_n_expr)
5906 v.enter_visit(_n_expr2)
5907 end
5908 end
5909 redef class ANeExpr
5910 redef fun n_expr=(n)
5911 do
5912 _n_expr = n
5913 n.parent = self
5914 end
5915 redef fun n_expr2=(n)
5916 do
5917 _n_expr2 = n
5918 n.parent = self
5919 end
5920
5921 private init empty_init do end
5922
5923 init init_aneexpr (
5924 n_expr: nullable AExpr,
5925 n_expr2: nullable AExpr
5926 )
5927 do
5928 empty_init
5929 _n_expr = n_expr.as(not null)
5930 n_expr.parent = self
5931 _n_expr2 = n_expr2.as(not null)
5932 n_expr2.parent = self
5933 end
5934
5935 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
5936 do
5937 if _n_expr == old_child then
5938 if new_child != null then
5939 new_child.parent = self
5940 assert new_child isa AExpr
5941 _n_expr = new_child
5942 else
5943 abort
5944 end
5945 return
5946 end
5947 if _n_expr2 == old_child then
5948 if new_child != null then
5949 new_child.parent = self
5950 assert new_child isa AExpr
5951 _n_expr2 = new_child
5952 else
5953 abort
5954 end
5955 return
5956 end
5957 end
5958
5959 redef fun visit_all(v: Visitor)
5960 do
5961 v.enter_visit(_n_expr)
5962 v.enter_visit(_n_expr2)
5963 end
5964
5965 redef fun visit_all_reverse(v: Visitor)
5966 do
5967 v.enter_visit(_n_expr)
5968 v.enter_visit(_n_expr2)
5969 end
5970 end
5971 redef class ALtExpr
5972 redef fun n_expr=(n)
5973 do
5974 _n_expr = n
5975 n.parent = self
5976 end
5977 redef fun n_expr2=(n)
5978 do
5979 _n_expr2 = n
5980 n.parent = self
5981 end
5982
5983 private init empty_init do end
5984
5985 init init_altexpr (
5986 n_expr: nullable AExpr,
5987 n_expr2: nullable AExpr
5988 )
5989 do
5990 empty_init
5991 _n_expr = n_expr.as(not null)
5992 n_expr.parent = self
5993 _n_expr2 = n_expr2.as(not null)
5994 n_expr2.parent = self
5995 end
5996
5997 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
5998 do
5999 if _n_expr == old_child then
6000 if new_child != null then
6001 new_child.parent = self
6002 assert new_child isa AExpr
6003 _n_expr = new_child
6004 else
6005 abort
6006 end
6007 return
6008 end
6009 if _n_expr2 == old_child then
6010 if new_child != null then
6011 new_child.parent = self
6012 assert new_child isa AExpr
6013 _n_expr2 = new_child
6014 else
6015 abort
6016 end
6017 return
6018 end
6019 end
6020
6021 redef fun visit_all(v: Visitor)
6022 do
6023 v.enter_visit(_n_expr)
6024 v.enter_visit(_n_expr2)
6025 end
6026
6027 redef fun visit_all_reverse(v: Visitor)
6028 do
6029 v.enter_visit(_n_expr)
6030 v.enter_visit(_n_expr2)
6031 end
6032 end
6033 redef class ALeExpr
6034 redef fun n_expr=(n)
6035 do
6036 _n_expr = n
6037 n.parent = self
6038 end
6039 redef fun n_expr2=(n)
6040 do
6041 _n_expr2 = n
6042 n.parent = self
6043 end
6044
6045 private init empty_init do end
6046
6047 init init_aleexpr (
6048 n_expr: nullable AExpr,
6049 n_expr2: nullable AExpr
6050 )
6051 do
6052 empty_init
6053 _n_expr = n_expr.as(not null)
6054 n_expr.parent = self
6055 _n_expr2 = n_expr2.as(not null)
6056 n_expr2.parent = self
6057 end
6058
6059 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
6060 do
6061 if _n_expr == old_child then
6062 if new_child != null then
6063 new_child.parent = self
6064 assert new_child isa AExpr
6065 _n_expr = new_child
6066 else
6067 abort
6068 end
6069 return
6070 end
6071 if _n_expr2 == old_child then
6072 if new_child != null then
6073 new_child.parent = self
6074 assert new_child isa AExpr
6075 _n_expr2 = new_child
6076 else
6077 abort
6078 end
6079 return
6080 end
6081 end
6082
6083 redef fun visit_all(v: Visitor)
6084 do
6085 v.enter_visit(_n_expr)
6086 v.enter_visit(_n_expr2)
6087 end
6088
6089 redef fun visit_all_reverse(v: Visitor)
6090 do
6091 v.enter_visit(_n_expr)
6092 v.enter_visit(_n_expr2)
6093 end
6094 end
6095 redef class AGtExpr
6096 redef fun n_expr=(n)
6097 do
6098 _n_expr = n
6099 n.parent = self
6100 end
6101 redef fun n_expr2=(n)
6102 do
6103 _n_expr2 = n
6104 n.parent = self
6105 end
6106
6107 private init empty_init do end
6108
6109 init init_agtexpr (
6110 n_expr: nullable AExpr,
6111 n_expr2: nullable AExpr
6112 )
6113 do
6114 empty_init
6115 _n_expr = n_expr.as(not null)
6116 n_expr.parent = self
6117 _n_expr2 = n_expr2.as(not null)
6118 n_expr2.parent = self
6119 end
6120
6121 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
6122 do
6123 if _n_expr == old_child then
6124 if new_child != null then
6125 new_child.parent = self
6126 assert new_child isa AExpr
6127 _n_expr = new_child
6128 else
6129 abort
6130 end
6131 return
6132 end
6133 if _n_expr2 == old_child then
6134 if new_child != null then
6135 new_child.parent = self
6136 assert new_child isa AExpr
6137 _n_expr2 = new_child
6138 else
6139 abort
6140 end
6141 return
6142 end
6143 end
6144
6145 redef fun visit_all(v: Visitor)
6146 do
6147 v.enter_visit(_n_expr)
6148 v.enter_visit(_n_expr2)
6149 end
6150
6151 redef fun visit_all_reverse(v: Visitor)
6152 do
6153 v.enter_visit(_n_expr)
6154 v.enter_visit(_n_expr2)
6155 end
6156 end
6157 redef class AGeExpr
6158 redef fun n_expr=(n)
6159 do
6160 _n_expr = n
6161 n.parent = self
6162 end
6163 redef fun n_expr2=(n)
6164 do
6165 _n_expr2 = n
6166 n.parent = self
6167 end
6168
6169 private init empty_init do end
6170
6171 init init_ageexpr (
6172 n_expr: nullable AExpr,
6173 n_expr2: nullable AExpr
6174 )
6175 do
6176 empty_init
6177 _n_expr = n_expr.as(not null)
6178 n_expr.parent = self
6179 _n_expr2 = n_expr2.as(not null)
6180 n_expr2.parent = self
6181 end
6182
6183 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
6184 do
6185 if _n_expr == old_child then
6186 if new_child != null then
6187 new_child.parent = self
6188 assert new_child isa AExpr
6189 _n_expr = new_child
6190 else
6191 abort
6192 end
6193 return
6194 end
6195 if _n_expr2 == old_child then
6196 if new_child != null then
6197 new_child.parent = self
6198 assert new_child isa AExpr
6199 _n_expr2 = new_child
6200 else
6201 abort
6202 end
6203 return
6204 end
6205 end
6206
6207 redef fun visit_all(v: Visitor)
6208 do
6209 v.enter_visit(_n_expr)
6210 v.enter_visit(_n_expr2)
6211 end
6212
6213 redef fun visit_all_reverse(v: Visitor)
6214 do
6215 v.enter_visit(_n_expr)
6216 v.enter_visit(_n_expr2)
6217 end
6218 end
6219 redef class AIsaExpr
6220 redef fun n_expr=(n)
6221 do
6222 _n_expr = n
6223 n.parent = self
6224 end
6225 redef fun n_type=(n)
6226 do
6227 _n_type = n
6228 n.parent = self
6229 end
6230
6231 private init empty_init do end
6232
6233 init init_aisaexpr (
6234 n_expr: nullable AExpr,
6235 n_type: nullable AType
6236 )
6237 do
6238 empty_init
6239 _n_expr = n_expr.as(not null)
6240 n_expr.parent = self
6241 _n_type = n_type.as(not null)
6242 n_type.parent = self
6243 end
6244
6245 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
6246 do
6247 if _n_expr == old_child then
6248 if new_child != null then
6249 new_child.parent = self
6250 assert new_child isa AExpr
6251 _n_expr = new_child
6252 else
6253 abort
6254 end
6255 return
6256 end
6257 if _n_type == old_child then
6258 if new_child != null then
6259 new_child.parent = self
6260 assert new_child isa AType
6261 _n_type = new_child
6262 else
6263 abort
6264 end
6265 return
6266 end
6267 end
6268
6269 redef fun visit_all(v: Visitor)
6270 do
6271 v.enter_visit(_n_expr)
6272 v.enter_visit(_n_type)
6273 end
6274
6275 redef fun visit_all_reverse(v: Visitor)
6276 do
6277 v.enter_visit(_n_expr)
6278 v.enter_visit(_n_type)
6279 end
6280 end
6281 redef class APlusExpr
6282 redef fun n_expr=(n)
6283 do
6284 _n_expr = n
6285 n.parent = self
6286 end
6287 redef fun n_expr2=(n)
6288 do
6289 _n_expr2 = n
6290 n.parent = self
6291 end
6292
6293 private init empty_init do end
6294
6295 init init_aplusexpr (
6296 n_expr: nullable AExpr,
6297 n_expr2: nullable AExpr
6298 )
6299 do
6300 empty_init
6301 _n_expr = n_expr.as(not null)
6302 n_expr.parent = self
6303 _n_expr2 = n_expr2.as(not null)
6304 n_expr2.parent = self
6305 end
6306
6307 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
6308 do
6309 if _n_expr == old_child then
6310 if new_child != null then
6311 new_child.parent = self
6312 assert new_child isa AExpr
6313 _n_expr = new_child
6314 else
6315 abort
6316 end
6317 return
6318 end
6319 if _n_expr2 == old_child then
6320 if new_child != null then
6321 new_child.parent = self
6322 assert new_child isa AExpr
6323 _n_expr2 = new_child
6324 else
6325 abort
6326 end
6327 return
6328 end
6329 end
6330
6331 redef fun visit_all(v: Visitor)
6332 do
6333 v.enter_visit(_n_expr)
6334 v.enter_visit(_n_expr2)
6335 end
6336
6337 redef fun visit_all_reverse(v: Visitor)
6338 do
6339 v.enter_visit(_n_expr)
6340 v.enter_visit(_n_expr2)
6341 end
6342 end
6343 redef class AMinusExpr
6344 redef fun n_expr=(n)
6345 do
6346 _n_expr = n
6347 n.parent = self
6348 end
6349 redef fun n_expr2=(n)
6350 do
6351 _n_expr2 = n
6352 n.parent = self
6353 end
6354
6355 private init empty_init do end
6356
6357 init init_aminusexpr (
6358 n_expr: nullable AExpr,
6359 n_expr2: nullable AExpr
6360 )
6361 do
6362 empty_init
6363 _n_expr = n_expr.as(not null)
6364 n_expr.parent = self
6365 _n_expr2 = n_expr2.as(not null)
6366 n_expr2.parent = self
6367 end
6368
6369 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
6370 do
6371 if _n_expr == old_child then
6372 if new_child != null then
6373 new_child.parent = self
6374 assert new_child isa AExpr
6375 _n_expr = new_child
6376 else
6377 abort
6378 end
6379 return
6380 end
6381 if _n_expr2 == old_child then
6382 if new_child != null then
6383 new_child.parent = self
6384 assert new_child isa AExpr
6385 _n_expr2 = new_child
6386 else
6387 abort
6388 end
6389 return
6390 end
6391 end
6392
6393 redef fun visit_all(v: Visitor)
6394 do
6395 v.enter_visit(_n_expr)
6396 v.enter_visit(_n_expr2)
6397 end
6398
6399 redef fun visit_all_reverse(v: Visitor)
6400 do
6401 v.enter_visit(_n_expr)
6402 v.enter_visit(_n_expr2)
6403 end
6404 end
6405 redef class AStarshipExpr
6406 redef fun n_expr=(n)
6407 do
6408 _n_expr = n
6409 n.parent = self
6410 end
6411 redef fun n_expr2=(n)
6412 do
6413 _n_expr2 = n
6414 n.parent = self
6415 end
6416
6417 private init empty_init do end
6418
6419 init init_astarshipexpr (
6420 n_expr: nullable AExpr,
6421 n_expr2: nullable AExpr
6422 )
6423 do
6424 empty_init
6425 _n_expr = n_expr.as(not null)
6426 n_expr.parent = self
6427 _n_expr2 = n_expr2.as(not null)
6428 n_expr2.parent = self
6429 end
6430
6431 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
6432 do
6433 if _n_expr == old_child then
6434 if new_child != null then
6435 new_child.parent = self
6436 assert new_child isa AExpr
6437 _n_expr = new_child
6438 else
6439 abort
6440 end
6441 return
6442 end
6443 if _n_expr2 == old_child then
6444 if new_child != null then
6445 new_child.parent = self
6446 assert new_child isa AExpr
6447 _n_expr2 = new_child
6448 else
6449 abort
6450 end
6451 return
6452 end
6453 end
6454
6455 redef fun visit_all(v: Visitor)
6456 do
6457 v.enter_visit(_n_expr)
6458 v.enter_visit(_n_expr2)
6459 end
6460
6461 redef fun visit_all_reverse(v: Visitor)
6462 do
6463 v.enter_visit(_n_expr)
6464 v.enter_visit(_n_expr2)
6465 end
6466 end
6467 redef class AStarExpr
6468 redef fun n_expr=(n)
6469 do
6470 _n_expr = n
6471 n.parent = self
6472 end
6473 redef fun n_expr2=(n)
6474 do
6475 _n_expr2 = n
6476 n.parent = self
6477 end
6478
6479 private init empty_init do end
6480
6481 init init_astarexpr (
6482 n_expr: nullable AExpr,
6483 n_expr2: nullable AExpr
6484 )
6485 do
6486 empty_init
6487 _n_expr = n_expr.as(not null)
6488 n_expr.parent = self
6489 _n_expr2 = n_expr2.as(not null)
6490 n_expr2.parent = self
6491 end
6492
6493 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
6494 do
6495 if _n_expr == old_child then
6496 if new_child != null then
6497 new_child.parent = self
6498 assert new_child isa AExpr
6499 _n_expr = new_child
6500 else
6501 abort
6502 end
6503 return
6504 end
6505 if _n_expr2 == old_child then
6506 if new_child != null then
6507 new_child.parent = self
6508 assert new_child isa AExpr
6509 _n_expr2 = new_child
6510 else
6511 abort
6512 end
6513 return
6514 end
6515 end
6516
6517 redef fun visit_all(v: Visitor)
6518 do
6519 v.enter_visit(_n_expr)
6520 v.enter_visit(_n_expr2)
6521 end
6522
6523 redef fun visit_all_reverse(v: Visitor)
6524 do
6525 v.enter_visit(_n_expr)
6526 v.enter_visit(_n_expr2)
6527 end
6528 end
6529 redef class ASlashExpr
6530 redef fun n_expr=(n)
6531 do
6532 _n_expr = n
6533 n.parent = self
6534 end
6535 redef fun n_expr2=(n)
6536 do
6537 _n_expr2 = n
6538 n.parent = self
6539 end
6540
6541 private init empty_init do end
6542
6543 init init_aslashexpr (
6544 n_expr: nullable AExpr,
6545 n_expr2: nullable AExpr
6546 )
6547 do
6548 empty_init
6549 _n_expr = n_expr.as(not null)
6550 n_expr.parent = self
6551 _n_expr2 = n_expr2.as(not null)
6552 n_expr2.parent = self
6553 end
6554
6555 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
6556 do
6557 if _n_expr == old_child then
6558 if new_child != null then
6559 new_child.parent = self
6560 assert new_child isa AExpr
6561 _n_expr = new_child
6562 else
6563 abort
6564 end
6565 return
6566 end
6567 if _n_expr2 == old_child then
6568 if new_child != null then
6569 new_child.parent = self
6570 assert new_child isa AExpr
6571 _n_expr2 = new_child
6572 else
6573 abort
6574 end
6575 return
6576 end
6577 end
6578
6579 redef fun visit_all(v: Visitor)
6580 do
6581 v.enter_visit(_n_expr)
6582 v.enter_visit(_n_expr2)
6583 end
6584
6585 redef fun visit_all_reverse(v: Visitor)
6586 do
6587 v.enter_visit(_n_expr)
6588 v.enter_visit(_n_expr2)
6589 end
6590 end
6591 redef class APercentExpr
6592 redef fun n_expr=(n)
6593 do
6594 _n_expr = n
6595 n.parent = self
6596 end
6597 redef fun n_expr2=(n)
6598 do
6599 _n_expr2 = n
6600 n.parent = self
6601 end
6602
6603 private init empty_init do end
6604
6605 init init_apercentexpr (
6606 n_expr: nullable AExpr,
6607 n_expr2: nullable AExpr
6608 )
6609 do
6610 empty_init
6611 _n_expr = n_expr.as(not null)
6612 n_expr.parent = self
6613 _n_expr2 = n_expr2.as(not null)
6614 n_expr2.parent = self
6615 end
6616
6617 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
6618 do
6619 if _n_expr == old_child then
6620 if new_child != null then
6621 new_child.parent = self
6622 assert new_child isa AExpr
6623 _n_expr = new_child
6624 else
6625 abort
6626 end
6627 return
6628 end
6629 if _n_expr2 == old_child then
6630 if new_child != null then
6631 new_child.parent = self
6632 assert new_child isa AExpr
6633 _n_expr2 = new_child
6634 else
6635 abort
6636 end
6637 return
6638 end
6639 end
6640
6641 redef fun visit_all(v: Visitor)
6642 do
6643 v.enter_visit(_n_expr)
6644 v.enter_visit(_n_expr2)
6645 end
6646
6647 redef fun visit_all_reverse(v: Visitor)
6648 do
6649 v.enter_visit(_n_expr)
6650 v.enter_visit(_n_expr2)
6651 end
6652 end
6653 redef class AUminusExpr
6654 redef fun n_minus=(n)
6655 do
6656 _n_minus = n
6657 n.parent = self
6658 end
6659 redef fun n_expr=(n)
6660 do
6661 _n_expr = n
6662 n.parent = self
6663 end
6664
6665 private init empty_init do end
6666
6667 init init_auminusexpr (
6668 n_minus: nullable TMinus,
6669 n_expr: nullable AExpr
6670 )
6671 do
6672 empty_init
6673 _n_minus = n_minus.as(not null)
6674 n_minus.parent = self
6675 _n_expr = n_expr.as(not null)
6676 n_expr.parent = self
6677 end
6678
6679 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
6680 do
6681 if _n_minus == old_child then
6682 if new_child != null then
6683 new_child.parent = self
6684 assert new_child isa TMinus
6685 _n_minus = new_child
6686 else
6687 abort
6688 end
6689 return
6690 end
6691 if _n_expr == old_child then
6692 if new_child != null then
6693 new_child.parent = self
6694 assert new_child isa AExpr
6695 _n_expr = new_child
6696 else
6697 abort
6698 end
6699 return
6700 end
6701 end
6702
6703 redef fun visit_all(v: Visitor)
6704 do
6705 v.enter_visit(_n_minus)
6706 v.enter_visit(_n_expr)
6707 end
6708
6709 redef fun visit_all_reverse(v: Visitor)
6710 do
6711 v.enter_visit(_n_minus)
6712 v.enter_visit(_n_expr)
6713 end
6714 end
6715 redef class ANewExpr
6716 redef fun n_kwnew=(n)
6717 do
6718 _n_kwnew = n
6719 n.parent = self
6720 end
6721 redef fun n_type=(n)
6722 do
6723 _n_type = n
6724 n.parent = self
6725 end
6726 redef fun n_id=(n)
6727 do
6728 _n_id = n
6729 if n != null then
6730 n.parent = self
6731 end
6732 end
6733
6734 private init empty_init do end
6735
6736 init init_anewexpr (
6737 n_kwnew: nullable TKwnew,
6738 n_type: nullable AType,
6739 n_id: nullable TId,
6740 n_args: Collection[Object] # Should be Collection[AExpr]
6741 )
6742 do
6743 empty_init
6744 _n_kwnew = n_kwnew.as(not null)
6745 n_kwnew.parent = self
6746 _n_type = n_type.as(not null)
6747 n_type.parent = self
6748 _n_id = n_id
6749 if n_id != null then
6750 n_id.parent = self
6751 end
6752 for n in n_args do
6753 assert n isa AExpr
6754 _n_args.add(n)
6755 n.parent = self
6756 end
6757 end
6758
6759 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
6760 do
6761 if _n_kwnew == old_child then
6762 if new_child != null then
6763 new_child.parent = self
6764 assert new_child isa TKwnew
6765 _n_kwnew = new_child
6766 else
6767 abort
6768 end
6769 return
6770 end
6771 if _n_type == old_child then
6772 if new_child != null then
6773 new_child.parent = self
6774 assert new_child isa AType
6775 _n_type = new_child
6776 else
6777 abort
6778 end
6779 return
6780 end
6781 if _n_id == old_child then
6782 if new_child != null then
6783 new_child.parent = self
6784 assert new_child isa TId
6785 _n_id = new_child
6786 else
6787 _n_id = null
6788 end
6789 return
6790 end
6791 for i in [0.._n_args.length[ do
6792 if _n_args[i] == old_child then
6793 if new_child != null then
6794 assert new_child isa AExpr
6795 _n_args[i] = new_child
6796 new_child.parent = self
6797 else
6798 _n_args.remove_at(i)
6799 end
6800 return
6801 end
6802 end
6803 end
6804
6805 redef fun visit_all(v: Visitor)
6806 do
6807 v.enter_visit(_n_kwnew)
6808 v.enter_visit(_n_type)
6809 if _n_id != null then
6810 v.enter_visit(_n_id.as(not null))
6811 end
6812 for n in _n_args do
6813 v.enter_visit(n)
6814 end
6815 end
6816
6817 redef fun visit_all_reverse(v: Visitor)
6818 do
6819 v.enter_visit(_n_kwnew)
6820 v.enter_visit(_n_type)
6821 if _n_id != null then
6822 v.enter_visit(_n_id.as(not null))
6823 end
6824 do
6825 var i = _n_args.length
6826 while i >= 0 do
6827 v.enter_visit(_n_args[i])
6828 i = i - 1
6829 end
6830 end
6831 end
6832 end
6833 redef class AAttrExpr
6834 redef fun n_expr=(n)
6835 do
6836 _n_expr = n
6837 n.parent = self
6838 end
6839 redef fun n_id=(n)
6840 do
6841 _n_id = n
6842 n.parent = self
6843 end
6844
6845 private init empty_init do end
6846
6847 init init_aattrexpr (
6848 n_expr: nullable AExpr,
6849 n_id: nullable TAttrid
6850 )
6851 do
6852 empty_init
6853 _n_expr = n_expr.as(not null)
6854 n_expr.parent = self
6855 _n_id = n_id.as(not null)
6856 n_id.parent = self
6857 end
6858
6859 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
6860 do
6861 if _n_expr == old_child then
6862 if new_child != null then
6863 new_child.parent = self
6864 assert new_child isa AExpr
6865 _n_expr = new_child
6866 else
6867 abort
6868 end
6869 return
6870 end
6871 if _n_id == old_child then
6872 if new_child != null then
6873 new_child.parent = self
6874 assert new_child isa TAttrid
6875 _n_id = new_child
6876 else
6877 abort
6878 end
6879 return
6880 end
6881 end
6882
6883 redef fun visit_all(v: Visitor)
6884 do
6885 v.enter_visit(_n_expr)
6886 v.enter_visit(_n_id)
6887 end
6888
6889 redef fun visit_all_reverse(v: Visitor)
6890 do
6891 v.enter_visit(_n_expr)
6892 v.enter_visit(_n_id)
6893 end
6894 end
6895 redef class AAttrAssignExpr
6896 redef fun n_expr=(n)
6897 do
6898 _n_expr = n
6899 n.parent = self
6900 end
6901 redef fun n_id=(n)
6902 do
6903 _n_id = n
6904 n.parent = self
6905 end
6906 redef fun n_assign=(n)
6907 do
6908 _n_assign = n
6909 n.parent = self
6910 end
6911 redef fun n_value=(n)
6912 do
6913 _n_value = n
6914 n.parent = self
6915 end
6916
6917 private init empty_init do end
6918
6919 init init_aattrassignexpr (
6920 n_expr: nullable AExpr,
6921 n_id: nullable TAttrid,
6922 n_assign: nullable TAssign,
6923 n_value: nullable AExpr
6924 )
6925 do
6926 empty_init
6927 _n_expr = n_expr.as(not null)
6928 n_expr.parent = self
6929 _n_id = n_id.as(not null)
6930 n_id.parent = self
6931 _n_assign = n_assign.as(not null)
6932 n_assign.parent = self
6933 _n_value = n_value.as(not null)
6934 n_value.parent = self
6935 end
6936
6937 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
6938 do
6939 if _n_expr == old_child then
6940 if new_child != null then
6941 new_child.parent = self
6942 assert new_child isa AExpr
6943 _n_expr = new_child
6944 else
6945 abort
6946 end
6947 return
6948 end
6949 if _n_id == old_child then
6950 if new_child != null then
6951 new_child.parent = self
6952 assert new_child isa TAttrid
6953 _n_id = new_child
6954 else
6955 abort
6956 end
6957 return
6958 end
6959 if _n_assign == old_child then
6960 if new_child != null then
6961 new_child.parent = self
6962 assert new_child isa TAssign
6963 _n_assign = new_child
6964 else
6965 abort
6966 end
6967 return
6968 end
6969 if _n_value == old_child then
6970 if new_child != null then
6971 new_child.parent = self
6972 assert new_child isa AExpr
6973 _n_value = new_child
6974 else
6975 abort
6976 end
6977 return
6978 end
6979 end
6980
6981 redef fun visit_all(v: Visitor)
6982 do
6983 v.enter_visit(_n_expr)
6984 v.enter_visit(_n_id)
6985 v.enter_visit(_n_assign)
6986 v.enter_visit(_n_value)
6987 end
6988
6989 redef fun visit_all_reverse(v: Visitor)
6990 do
6991 v.enter_visit(_n_expr)
6992 v.enter_visit(_n_id)
6993 v.enter_visit(_n_assign)
6994 v.enter_visit(_n_value)
6995 end
6996 end
6997 redef class AAttrReassignExpr
6998 redef fun n_expr=(n)
6999 do
7000 _n_expr = n
7001 n.parent = self
7002 end
7003 redef fun n_id=(n)
7004 do
7005 _n_id = n
7006 n.parent = self
7007 end
7008 redef fun n_assign_op=(n)
7009 do
7010 _n_assign_op = n
7011 n.parent = self
7012 end
7013 redef fun n_value=(n)
7014 do
7015 _n_value = n
7016 n.parent = self
7017 end
7018
7019 private init empty_init do end
7020
7021 init init_aattrreassignexpr (
7022 n_expr: nullable AExpr,
7023 n_id: nullable TAttrid,
7024 n_assign_op: nullable AAssignOp,
7025 n_value: nullable AExpr
7026 )
7027 do
7028 empty_init
7029 _n_expr = n_expr.as(not null)
7030 n_expr.parent = self
7031 _n_id = n_id.as(not null)
7032 n_id.parent = self
7033 _n_assign_op = n_assign_op.as(not null)
7034 n_assign_op.parent = self
7035 _n_value = n_value.as(not null)
7036 n_value.parent = self
7037 end
7038
7039 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
7040 do
7041 if _n_expr == old_child then
7042 if new_child != null then
7043 new_child.parent = self
7044 assert new_child isa AExpr
7045 _n_expr = new_child
7046 else
7047 abort
7048 end
7049 return
7050 end
7051 if _n_id == old_child then
7052 if new_child != null then
7053 new_child.parent = self
7054 assert new_child isa TAttrid
7055 _n_id = new_child
7056 else
7057 abort
7058 end
7059 return
7060 end
7061 if _n_assign_op == old_child then
7062 if new_child != null then
7063 new_child.parent = self
7064 assert new_child isa AAssignOp
7065 _n_assign_op = new_child
7066 else
7067 abort
7068 end
7069 return
7070 end
7071 if _n_value == old_child then
7072 if new_child != null then
7073 new_child.parent = self
7074 assert new_child isa AExpr
7075 _n_value = new_child
7076 else
7077 abort
7078 end
7079 return
7080 end
7081 end
7082
7083 redef fun visit_all(v: Visitor)
7084 do
7085 v.enter_visit(_n_expr)
7086 v.enter_visit(_n_id)
7087 v.enter_visit(_n_assign_op)
7088 v.enter_visit(_n_value)
7089 end
7090
7091 redef fun visit_all_reverse(v: Visitor)
7092 do
7093 v.enter_visit(_n_expr)
7094 v.enter_visit(_n_id)
7095 v.enter_visit(_n_assign_op)
7096 v.enter_visit(_n_value)
7097 end
7098 end
7099 redef class ACallExpr
7100 redef fun n_expr=(n)
7101 do
7102 _n_expr = n
7103 n.parent = self
7104 end
7105 redef fun n_id=(n)
7106 do
7107 _n_id = n
7108 n.parent = self
7109 end
7110
7111 private init empty_init do end
7112
7113 init init_acallexpr (
7114 n_expr: nullable AExpr,
7115 n_id: nullable TId,
7116 n_args: Collection[Object], # Should be Collection[AExpr]
7117 n_closure_defs: Collection[Object] # Should be Collection[AClosureDef]
7118 )
7119 do
7120 empty_init
7121 _n_expr = n_expr.as(not null)
7122 n_expr.parent = self
7123 _n_id = n_id.as(not null)
7124 n_id.parent = self
7125 for n in n_args do
7126 assert n isa AExpr
7127 _n_args.add(n)
7128 n.parent = self
7129 end
7130 for n in n_closure_defs do
7131 assert n isa AClosureDef
7132 _n_closure_defs.add(n)
7133 n.parent = self
7134 end
7135 end
7136
7137 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
7138 do
7139 if _n_expr == old_child then
7140 if new_child != null then
7141 new_child.parent = self
7142 assert new_child isa AExpr
7143 _n_expr = new_child
7144 else
7145 abort
7146 end
7147 return
7148 end
7149 if _n_id == old_child then
7150 if new_child != null then
7151 new_child.parent = self
7152 assert new_child isa TId
7153 _n_id = new_child
7154 else
7155 abort
7156 end
7157 return
7158 end
7159 for i in [0.._n_args.length[ do
7160 if _n_args[i] == old_child then
7161 if new_child != null then
7162 assert new_child isa AExpr
7163 _n_args[i] = new_child
7164 new_child.parent = self
7165 else
7166 _n_args.remove_at(i)
7167 end
7168 return
7169 end
7170 end
7171 for i in [0.._n_closure_defs.length[ do
7172 if _n_closure_defs[i] == old_child then
7173 if new_child != null then
7174 assert new_child isa AClosureDef
7175 _n_closure_defs[i] = new_child
7176 new_child.parent = self
7177 else
7178 _n_closure_defs.remove_at(i)
7179 end
7180 return
7181 end
7182 end
7183 end
7184
7185 redef fun visit_all(v: Visitor)
7186 do
7187 v.enter_visit(_n_expr)
7188 v.enter_visit(_n_id)
7189 for n in _n_args do
7190 v.enter_visit(n)
7191 end
7192 for n in _n_closure_defs do
7193 v.enter_visit(n)
7194 end
7195 end
7196
7197 redef fun visit_all_reverse(v: Visitor)
7198 do
7199 v.enter_visit(_n_expr)
7200 v.enter_visit(_n_id)
7201 do
7202 var i = _n_args.length
7203 while i >= 0 do
7204 v.enter_visit(_n_args[i])
7205 i = i - 1
7206 end
7207 end
7208 do
7209 var i = _n_closure_defs.length
7210 while i >= 0 do
7211 v.enter_visit(_n_closure_defs[i])
7212 i = i - 1
7213 end
7214 end
7215 end
7216 end
7217 redef class ACallAssignExpr
7218 redef fun n_expr=(n)
7219 do
7220 _n_expr = n
7221 n.parent = self
7222 end
7223 redef fun n_id=(n)
7224 do
7225 _n_id = n
7226 n.parent = self
7227 end
7228 redef fun n_assign=(n)
7229 do
7230 _n_assign = n
7231 n.parent = self
7232 end
7233 redef fun n_value=(n)
7234 do
7235 _n_value = n
7236 n.parent = self
7237 end
7238
7239 private init empty_init do end
7240
7241 init init_acallassignexpr (
7242 n_expr: nullable AExpr,
7243 n_id: nullable TId,
7244 n_args: Collection[Object], # Should be Collection[AExpr]
7245 n_assign: nullable TAssign,
7246 n_value: nullable AExpr
7247 )
7248 do
7249 empty_init
7250 _n_expr = n_expr.as(not null)
7251 n_expr.parent = self
7252 _n_id = n_id.as(not null)
7253 n_id.parent = self
7254 for n in n_args do
7255 assert n isa AExpr
7256 _n_args.add(n)
7257 n.parent = self
7258 end
7259 _n_assign = n_assign.as(not null)
7260 n_assign.parent = self
7261 _n_value = n_value.as(not null)
7262 n_value.parent = self
7263 end
7264
7265 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
7266 do
7267 if _n_expr == old_child then
7268 if new_child != null then
7269 new_child.parent = self
7270 assert new_child isa AExpr
7271 _n_expr = new_child
7272 else
7273 abort
7274 end
7275 return
7276 end
7277 if _n_id == old_child then
7278 if new_child != null then
7279 new_child.parent = self
7280 assert new_child isa TId
7281 _n_id = new_child
7282 else
7283 abort
7284 end
7285 return
7286 end
7287 for i in [0.._n_args.length[ do
7288 if _n_args[i] == old_child then
7289 if new_child != null then
7290 assert new_child isa AExpr
7291 _n_args[i] = new_child
7292 new_child.parent = self
7293 else
7294 _n_args.remove_at(i)
7295 end
7296 return
7297 end
7298 end
7299 if _n_assign == old_child then
7300 if new_child != null then
7301 new_child.parent = self
7302 assert new_child isa TAssign
7303 _n_assign = new_child
7304 else
7305 abort
7306 end
7307 return
7308 end
7309 if _n_value == old_child then
7310 if new_child != null then
7311 new_child.parent = self
7312 assert new_child isa AExpr
7313 _n_value = new_child
7314 else
7315 abort
7316 end
7317 return
7318 end
7319 end
7320
7321 redef fun visit_all(v: Visitor)
7322 do
7323 v.enter_visit(_n_expr)
7324 v.enter_visit(_n_id)
7325 for n in _n_args do
7326 v.enter_visit(n)
7327 end
7328 v.enter_visit(_n_assign)
7329 v.enter_visit(_n_value)
7330 end
7331
7332 redef fun visit_all_reverse(v: Visitor)
7333 do
7334 v.enter_visit(_n_expr)
7335 v.enter_visit(_n_id)
7336 do
7337 var i = _n_args.length
7338 while i >= 0 do
7339 v.enter_visit(_n_args[i])
7340 i = i - 1
7341 end
7342 end
7343 v.enter_visit(_n_assign)
7344 v.enter_visit(_n_value)
7345 end
7346 end
7347 redef class ACallReassignExpr
7348 redef fun n_expr=(n)
7349 do
7350 _n_expr = n
7351 n.parent = self
7352 end
7353 redef fun n_id=(n)
7354 do
7355 _n_id = n
7356 n.parent = self
7357 end
7358 redef fun n_assign_op=(n)
7359 do
7360 _n_assign_op = n
7361 n.parent = self
7362 end
7363 redef fun n_value=(n)
7364 do
7365 _n_value = n
7366 n.parent = self
7367 end
7368
7369 private init empty_init do end
7370
7371 init init_acallreassignexpr (
7372 n_expr: nullable AExpr,
7373 n_id: nullable TId,
7374 n_args: Collection[Object], # Should be Collection[AExpr]
7375 n_assign_op: nullable AAssignOp,
7376 n_value: nullable AExpr
7377 )
7378 do
7379 empty_init
7380 _n_expr = n_expr.as(not null)
7381 n_expr.parent = self
7382 _n_id = n_id.as(not null)
7383 n_id.parent = self
7384 for n in n_args do
7385 assert n isa AExpr
7386 _n_args.add(n)
7387 n.parent = self
7388 end
7389 _n_assign_op = n_assign_op.as(not null)
7390 n_assign_op.parent = self
7391 _n_value = n_value.as(not null)
7392 n_value.parent = self
7393 end
7394
7395 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
7396 do
7397 if _n_expr == old_child then
7398 if new_child != null then
7399 new_child.parent = self
7400 assert new_child isa AExpr
7401 _n_expr = new_child
7402 else
7403 abort
7404 end
7405 return
7406 end
7407 if _n_id == old_child then
7408 if new_child != null then
7409 new_child.parent = self
7410 assert new_child isa TId
7411 _n_id = new_child
7412 else
7413 abort
7414 end
7415 return
7416 end
7417 for i in [0.._n_args.length[ do
7418 if _n_args[i] == old_child then
7419 if new_child != null then
7420 assert new_child isa AExpr
7421 _n_args[i] = new_child
7422 new_child.parent = self
7423 else
7424 _n_args.remove_at(i)
7425 end
7426 return
7427 end
7428 end
7429 if _n_assign_op == old_child then
7430 if new_child != null then
7431 new_child.parent = self
7432 assert new_child isa AAssignOp
7433 _n_assign_op = new_child
7434 else
7435 abort
7436 end
7437 return
7438 end
7439 if _n_value == old_child then
7440 if new_child != null then
7441 new_child.parent = self
7442 assert new_child isa AExpr
7443 _n_value = new_child
7444 else
7445 abort
7446 end
7447 return
7448 end
7449 end
7450
7451 redef fun visit_all(v: Visitor)
7452 do
7453 v.enter_visit(_n_expr)
7454 v.enter_visit(_n_id)
7455 for n in _n_args do
7456 v.enter_visit(n)
7457 end
7458 v.enter_visit(_n_assign_op)
7459 v.enter_visit(_n_value)
7460 end
7461
7462 redef fun visit_all_reverse(v: Visitor)
7463 do
7464 v.enter_visit(_n_expr)
7465 v.enter_visit(_n_id)
7466 do
7467 var i = _n_args.length
7468 while i >= 0 do
7469 v.enter_visit(_n_args[i])
7470 i = i - 1
7471 end
7472 end
7473 v.enter_visit(_n_assign_op)
7474 v.enter_visit(_n_value)
7475 end
7476 end
7477 redef class ASuperExpr
7478 redef fun n_qualified=(n)
7479 do
7480 _n_qualified = n
7481 if n != null then
7482 n.parent = self
7483 end
7484 end
7485 redef fun n_kwsuper=(n)
7486 do
7487 _n_kwsuper = n
7488 n.parent = self
7489 end
7490
7491 private init empty_init do end
7492
7493 init init_asuperexpr (
7494 n_qualified: nullable AQualified,
7495 n_kwsuper: nullable TKwsuper,
7496 n_args: Collection[Object] # Should be Collection[AExpr]
7497 )
7498 do
7499 empty_init
7500 _n_qualified = n_qualified
7501 if n_qualified != null then
7502 n_qualified.parent = self
7503 end
7504 _n_kwsuper = n_kwsuper.as(not null)
7505 n_kwsuper.parent = self
7506 for n in n_args do
7507 assert n isa AExpr
7508 _n_args.add(n)
7509 n.parent = self
7510 end
7511 end
7512
7513 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
7514 do
7515 if _n_qualified == old_child then
7516 if new_child != null then
7517 new_child.parent = self
7518 assert new_child isa AQualified
7519 _n_qualified = new_child
7520 else
7521 _n_qualified = null
7522 end
7523 return
7524 end
7525 if _n_kwsuper == old_child then
7526 if new_child != null then
7527 new_child.parent = self
7528 assert new_child isa TKwsuper
7529 _n_kwsuper = new_child
7530 else
7531 abort
7532 end
7533 return
7534 end
7535 for i in [0.._n_args.length[ do
7536 if _n_args[i] == old_child then
7537 if new_child != null then
7538 assert new_child isa AExpr
7539 _n_args[i] = new_child
7540 new_child.parent = self
7541 else
7542 _n_args.remove_at(i)
7543 end
7544 return
7545 end
7546 end
7547 end
7548
7549 redef fun visit_all(v: Visitor)
7550 do
7551 if _n_qualified != null then
7552 v.enter_visit(_n_qualified.as(not null))
7553 end
7554 v.enter_visit(_n_kwsuper)
7555 for n in _n_args do
7556 v.enter_visit(n)
7557 end
7558 end
7559
7560 redef fun visit_all_reverse(v: Visitor)
7561 do
7562 if _n_qualified != null then
7563 v.enter_visit(_n_qualified.as(not null))
7564 end
7565 v.enter_visit(_n_kwsuper)
7566 do
7567 var i = _n_args.length
7568 while i >= 0 do
7569 v.enter_visit(_n_args[i])
7570 i = i - 1
7571 end
7572 end
7573 end
7574 end
7575 redef class AInitExpr
7576 redef fun n_expr=(n)
7577 do
7578 _n_expr = n
7579 n.parent = self
7580 end
7581 redef fun n_kwinit=(n)
7582 do
7583 _n_kwinit = n
7584 n.parent = self
7585 end
7586
7587 private init empty_init do end
7588
7589 init init_ainitexpr (
7590 n_expr: nullable AExpr,
7591 n_kwinit: nullable TKwinit,
7592 n_args: Collection[Object] # Should be Collection[AExpr]
7593 )
7594 do
7595 empty_init
7596 _n_expr = n_expr.as(not null)
7597 n_expr.parent = self
7598 _n_kwinit = n_kwinit.as(not null)
7599 n_kwinit.parent = self
7600 for n in n_args do
7601 assert n isa AExpr
7602 _n_args.add(n)
7603 n.parent = self
7604 end
7605 end
7606
7607 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
7608 do
7609 if _n_expr == old_child then
7610 if new_child != null then
7611 new_child.parent = self
7612 assert new_child isa AExpr
7613 _n_expr = new_child
7614 else
7615 abort
7616 end
7617 return
7618 end
7619 if _n_kwinit == old_child then
7620 if new_child != null then
7621 new_child.parent = self
7622 assert new_child isa TKwinit
7623 _n_kwinit = new_child
7624 else
7625 abort
7626 end
7627 return
7628 end
7629 for i in [0.._n_args.length[ do
7630 if _n_args[i] == old_child then
7631 if new_child != null then
7632 assert new_child isa AExpr
7633 _n_args[i] = new_child
7634 new_child.parent = self
7635 else
7636 _n_args.remove_at(i)
7637 end
7638 return
7639 end
7640 end
7641 end
7642
7643 redef fun visit_all(v: Visitor)
7644 do
7645 v.enter_visit(_n_expr)
7646 v.enter_visit(_n_kwinit)
7647 for n in _n_args do
7648 v.enter_visit(n)
7649 end
7650 end
7651
7652 redef fun visit_all_reverse(v: Visitor)
7653 do
7654 v.enter_visit(_n_expr)
7655 v.enter_visit(_n_kwinit)
7656 do
7657 var i = _n_args.length
7658 while i >= 0 do
7659 v.enter_visit(_n_args[i])
7660 i = i - 1
7661 end
7662 end
7663 end
7664 end
7665 redef class ABraExpr
7666 redef fun n_expr=(n)
7667 do
7668 _n_expr = n
7669 n.parent = self
7670 end
7671
7672 private init empty_init do end
7673
7674 init init_abraexpr (
7675 n_expr: nullable AExpr,
7676 n_args: Collection[Object], # Should be Collection[AExpr]
7677 n_closure_defs: Collection[Object] # Should be Collection[AClosureDef]
7678 )
7679 do
7680 empty_init
7681 _n_expr = n_expr.as(not null)
7682 n_expr.parent = self
7683 for n in n_args do
7684 assert n isa AExpr
7685 _n_args.add(n)
7686 n.parent = self
7687 end
7688 for n in n_closure_defs do
7689 assert n isa AClosureDef
7690 _n_closure_defs.add(n)
7691 n.parent = self
7692 end
7693 end
7694
7695 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
7696 do
7697 if _n_expr == old_child then
7698 if new_child != null then
7699 new_child.parent = self
7700 assert new_child isa AExpr
7701 _n_expr = new_child
7702 else
7703 abort
7704 end
7705 return
7706 end
7707 for i in [0.._n_args.length[ do
7708 if _n_args[i] == old_child then
7709 if new_child != null then
7710 assert new_child isa AExpr
7711 _n_args[i] = new_child
7712 new_child.parent = self
7713 else
7714 _n_args.remove_at(i)
7715 end
7716 return
7717 end
7718 end
7719 for i in [0.._n_closure_defs.length[ do
7720 if _n_closure_defs[i] == old_child then
7721 if new_child != null then
7722 assert new_child isa AClosureDef
7723 _n_closure_defs[i] = new_child
7724 new_child.parent = self
7725 else
7726 _n_closure_defs.remove_at(i)
7727 end
7728 return
7729 end
7730 end
7731 end
7732
7733 redef fun visit_all(v: Visitor)
7734 do
7735 v.enter_visit(_n_expr)
7736 for n in _n_args do
7737 v.enter_visit(n)
7738 end
7739 for n in _n_closure_defs do
7740 v.enter_visit(n)
7741 end
7742 end
7743
7744 redef fun visit_all_reverse(v: Visitor)
7745 do
7746 v.enter_visit(_n_expr)
7747 do
7748 var i = _n_args.length
7749 while i >= 0 do
7750 v.enter_visit(_n_args[i])
7751 i = i - 1
7752 end
7753 end
7754 do
7755 var i = _n_closure_defs.length
7756 while i >= 0 do
7757 v.enter_visit(_n_closure_defs[i])
7758 i = i - 1
7759 end
7760 end
7761 end
7762 end
7763 redef class ABraAssignExpr
7764 redef fun n_expr=(n)
7765 do
7766 _n_expr = n
7767 n.parent = self
7768 end
7769 redef fun n_assign=(n)
7770 do
7771 _n_assign = n
7772 n.parent = self
7773 end
7774 redef fun n_value=(n)
7775 do
7776 _n_value = n
7777 n.parent = self
7778 end
7779
7780 private init empty_init do end
7781
7782 init init_abraassignexpr (
7783 n_expr: nullable AExpr,
7784 n_args: Collection[Object], # Should be Collection[AExpr]
7785 n_assign: nullable TAssign,
7786 n_value: nullable AExpr
7787 )
7788 do
7789 empty_init
7790 _n_expr = n_expr.as(not null)
7791 n_expr.parent = self
7792 for n in n_args do
7793 assert n isa AExpr
7794 _n_args.add(n)
7795 n.parent = self
7796 end
7797 _n_assign = n_assign.as(not null)
7798 n_assign.parent = self
7799 _n_value = n_value.as(not null)
7800 n_value.parent = self
7801 end
7802
7803 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
7804 do
7805 if _n_expr == old_child then
7806 if new_child != null then
7807 new_child.parent = self
7808 assert new_child isa AExpr
7809 _n_expr = new_child
7810 else
7811 abort
7812 end
7813 return
7814 end
7815 for i in [0.._n_args.length[ do
7816 if _n_args[i] == old_child then
7817 if new_child != null then
7818 assert new_child isa AExpr
7819 _n_args[i] = new_child
7820 new_child.parent = self
7821 else
7822 _n_args.remove_at(i)
7823 end
7824 return
7825 end
7826 end
7827 if _n_assign == old_child then
7828 if new_child != null then
7829 new_child.parent = self
7830 assert new_child isa TAssign
7831 _n_assign = new_child
7832 else
7833 abort
7834 end
7835 return
7836 end
7837 if _n_value == old_child then
7838 if new_child != null then
7839 new_child.parent = self
7840 assert new_child isa AExpr
7841 _n_value = new_child
7842 else
7843 abort
7844 end
7845 return
7846 end
7847 end
7848
7849 redef fun visit_all(v: Visitor)
7850 do
7851 v.enter_visit(_n_expr)
7852 for n in _n_args do
7853 v.enter_visit(n)
7854 end
7855 v.enter_visit(_n_assign)
7856 v.enter_visit(_n_value)
7857 end
7858
7859 redef fun visit_all_reverse(v: Visitor)
7860 do
7861 v.enter_visit(_n_expr)
7862 do
7863 var i = _n_args.length
7864 while i >= 0 do
7865 v.enter_visit(_n_args[i])
7866 i = i - 1
7867 end
7868 end
7869 v.enter_visit(_n_assign)
7870 v.enter_visit(_n_value)
7871 end
7872 end
7873 redef class ABraReassignExpr
7874 redef fun n_expr=(n)
7875 do
7876 _n_expr = n
7877 n.parent = self
7878 end
7879 redef fun n_assign_op=(n)
7880 do
7881 _n_assign_op = n
7882 n.parent = self
7883 end
7884 redef fun n_value=(n)
7885 do
7886 _n_value = n
7887 n.parent = self
7888 end
7889
7890 private init empty_init do end
7891
7892 init init_abrareassignexpr (
7893 n_expr: nullable AExpr,
7894 n_args: Collection[Object], # Should be Collection[AExpr]
7895 n_assign_op: nullable AAssignOp,
7896 n_value: nullable AExpr
7897 )
7898 do
7899 empty_init
7900 _n_expr = n_expr.as(not null)
7901 n_expr.parent = self
7902 for n in n_args do
7903 assert n isa AExpr
7904 _n_args.add(n)
7905 n.parent = self
7906 end
7907 _n_assign_op = n_assign_op.as(not null)
7908 n_assign_op.parent = self
7909 _n_value = n_value.as(not null)
7910 n_value.parent = self
7911 end
7912
7913 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
7914 do
7915 if _n_expr == old_child then
7916 if new_child != null then
7917 new_child.parent = self
7918 assert new_child isa AExpr
7919 _n_expr = new_child
7920 else
7921 abort
7922 end
7923 return
7924 end
7925 for i in [0.._n_args.length[ do
7926 if _n_args[i] == old_child then
7927 if new_child != null then
7928 assert new_child isa AExpr
7929 _n_args[i] = new_child
7930 new_child.parent = self
7931 else
7932 _n_args.remove_at(i)
7933 end
7934 return
7935 end
7936 end
7937 if _n_assign_op == old_child then
7938 if new_child != null then
7939 new_child.parent = self
7940 assert new_child isa AAssignOp
7941 _n_assign_op = new_child
7942 else
7943 abort
7944 end
7945 return
7946 end
7947 if _n_value == old_child then
7948 if new_child != null then
7949 new_child.parent = self
7950 assert new_child isa AExpr
7951 _n_value = new_child
7952 else
7953 abort
7954 end
7955 return
7956 end
7957 end
7958
7959 redef fun visit_all(v: Visitor)
7960 do
7961 v.enter_visit(_n_expr)
7962 for n in _n_args do
7963 v.enter_visit(n)
7964 end
7965 v.enter_visit(_n_assign_op)
7966 v.enter_visit(_n_value)
7967 end
7968
7969 redef fun visit_all_reverse(v: Visitor)
7970 do
7971 v.enter_visit(_n_expr)
7972 do
7973 var i = _n_args.length
7974 while i >= 0 do
7975 v.enter_visit(_n_args[i])
7976 i = i - 1
7977 end
7978 end
7979 v.enter_visit(_n_assign_op)
7980 v.enter_visit(_n_value)
7981 end
7982 end
7983 redef class AClosureCallExpr
7984 redef fun n_id=(n)
7985 do
7986 _n_id = n
7987 n.parent = self
7988 end
7989
7990 private init empty_init do end
7991
7992 init init_aclosurecallexpr (
7993 n_id: nullable TId,
7994 n_args: Collection[Object], # Should be Collection[AExpr]
7995 n_closure_defs: Collection[Object] # Should be Collection[AClosureDef]
7996 )
7997 do
7998 empty_init
7999 _n_id = n_id.as(not null)
8000 n_id.parent = self
8001 for n in n_args do
8002 assert n isa AExpr
8003 _n_args.add(n)
8004 n.parent = self
8005 end
8006 for n in n_closure_defs do
8007 assert n isa AClosureDef
8008 _n_closure_defs.add(n)
8009 n.parent = self
8010 end
8011 end
8012
8013 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
8014 do
8015 if _n_id == old_child then
8016 if new_child != null then
8017 new_child.parent = self
8018 assert new_child isa TId
8019 _n_id = new_child
8020 else
8021 abort
8022 end
8023 return
8024 end
8025 for i in [0.._n_args.length[ do
8026 if _n_args[i] == old_child then
8027 if new_child != null then
8028 assert new_child isa AExpr
8029 _n_args[i] = new_child
8030 new_child.parent = self
8031 else
8032 _n_args.remove_at(i)
8033 end
8034 return
8035 end
8036 end
8037 for i in [0.._n_closure_defs.length[ do
8038 if _n_closure_defs[i] == old_child then
8039 if new_child != null then
8040 assert new_child isa AClosureDef
8041 _n_closure_defs[i] = new_child
8042 new_child.parent = self
8043 else
8044 _n_closure_defs.remove_at(i)
8045 end
8046 return
8047 end
8048 end
8049 end
8050
8051 redef fun visit_all(v: Visitor)
8052 do
8053 v.enter_visit(_n_id)
8054 for n in _n_args do
8055 v.enter_visit(n)
8056 end
8057 for n in _n_closure_defs do
8058 v.enter_visit(n)
8059 end
8060 end
8061
8062 redef fun visit_all_reverse(v: Visitor)
8063 do
8064 v.enter_visit(_n_id)
8065 do
8066 var i = _n_args.length
8067 while i >= 0 do
8068 v.enter_visit(_n_args[i])
8069 i = i - 1
8070 end
8071 end
8072 do
8073 var i = _n_closure_defs.length
8074 while i >= 0 do
8075 v.enter_visit(_n_closure_defs[i])
8076 i = i - 1
8077 end
8078 end
8079 end
8080 end
8081 redef class AVarExpr
8082 redef fun n_id=(n)
8083 do
8084 _n_id = n
8085 n.parent = self
8086 end
8087
8088 private init empty_init do end
8089
8090 init init_avarexpr (
8091 n_id: nullable TId
8092 )
8093 do
8094 empty_init
8095 _n_id = n_id.as(not null)
8096 n_id.parent = self
8097 end
8098
8099 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
8100 do
8101 if _n_id == old_child then
8102 if new_child != null then
8103 new_child.parent = self
8104 assert new_child isa TId
8105 _n_id = new_child
8106 else
8107 abort
8108 end
8109 return
8110 end
8111 end
8112
8113 redef fun visit_all(v: Visitor)
8114 do
8115 v.enter_visit(_n_id)
8116 end
8117
8118 redef fun visit_all_reverse(v: Visitor)
8119 do
8120 v.enter_visit(_n_id)
8121 end
8122 end
8123 redef class AVarAssignExpr
8124 redef fun n_id=(n)
8125 do
8126 _n_id = n
8127 n.parent = self
8128 end
8129 redef fun n_assign=(n)
8130 do
8131 _n_assign = n
8132 n.parent = self
8133 end
8134 redef fun n_value=(n)
8135 do
8136 _n_value = n
8137 n.parent = self
8138 end
8139
8140 private init empty_init do end
8141
8142 init init_avarassignexpr (
8143 n_id: nullable TId,
8144 n_assign: nullable TAssign,
8145 n_value: nullable AExpr
8146 )
8147 do
8148 empty_init
8149 _n_id = n_id.as(not null)
8150 n_id.parent = self
8151 _n_assign = n_assign.as(not null)
8152 n_assign.parent = self
8153 _n_value = n_value.as(not null)
8154 n_value.parent = self
8155 end
8156
8157 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
8158 do
8159 if _n_id == old_child then
8160 if new_child != null then
8161 new_child.parent = self
8162 assert new_child isa TId
8163 _n_id = new_child
8164 else
8165 abort
8166 end
8167 return
8168 end
8169 if _n_assign == old_child then
8170 if new_child != null then
8171 new_child.parent = self
8172 assert new_child isa TAssign
8173 _n_assign = new_child
8174 else
8175 abort
8176 end
8177 return
8178 end
8179 if _n_value == old_child then
8180 if new_child != null then
8181 new_child.parent = self
8182 assert new_child isa AExpr
8183 _n_value = new_child
8184 else
8185 abort
8186 end
8187 return
8188 end
8189 end
8190
8191 redef fun visit_all(v: Visitor)
8192 do
8193 v.enter_visit(_n_id)
8194 v.enter_visit(_n_assign)
8195 v.enter_visit(_n_value)
8196 end
8197
8198 redef fun visit_all_reverse(v: Visitor)
8199 do
8200 v.enter_visit(_n_id)
8201 v.enter_visit(_n_assign)
8202 v.enter_visit(_n_value)
8203 end
8204 end
8205 redef class AVarReassignExpr
8206 redef fun n_id=(n)
8207 do
8208 _n_id = n
8209 n.parent = self
8210 end
8211 redef fun n_assign_op=(n)
8212 do
8213 _n_assign_op = n
8214 n.parent = self
8215 end
8216 redef fun n_value=(n)
8217 do
8218 _n_value = n
8219 n.parent = self
8220 end
8221
8222 private init empty_init do end
8223
8224 init init_avarreassignexpr (
8225 n_id: nullable TId,
8226 n_assign_op: nullable AAssignOp,
8227 n_value: nullable AExpr
8228 )
8229 do
8230 empty_init
8231 _n_id = n_id.as(not null)
8232 n_id.parent = self
8233 _n_assign_op = n_assign_op.as(not null)
8234 n_assign_op.parent = self
8235 _n_value = n_value.as(not null)
8236 n_value.parent = self
8237 end
8238
8239 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
8240 do
8241 if _n_id == old_child then
8242 if new_child != null then
8243 new_child.parent = self
8244 assert new_child isa TId
8245 _n_id = new_child
8246 else
8247 abort
8248 end
8249 return
8250 end
8251 if _n_assign_op == old_child then
8252 if new_child != null then
8253 new_child.parent = self
8254 assert new_child isa AAssignOp
8255 _n_assign_op = new_child
8256 else
8257 abort
8258 end
8259 return
8260 end
8261 if _n_value == old_child then
8262 if new_child != null then
8263 new_child.parent = self
8264 assert new_child isa AExpr
8265 _n_value = new_child
8266 else
8267 abort
8268 end
8269 return
8270 end
8271 end
8272
8273 redef fun visit_all(v: Visitor)
8274 do
8275 v.enter_visit(_n_id)
8276 v.enter_visit(_n_assign_op)
8277 v.enter_visit(_n_value)
8278 end
8279
8280 redef fun visit_all_reverse(v: Visitor)
8281 do
8282 v.enter_visit(_n_id)
8283 v.enter_visit(_n_assign_op)
8284 v.enter_visit(_n_value)
8285 end
8286 end
8287 redef class ARangeExpr
8288 redef fun n_expr=(n)
8289 do
8290 _n_expr = n
8291 n.parent = self
8292 end
8293 redef fun n_expr2=(n)
8294 do
8295 _n_expr2 = n
8296 n.parent = self
8297 end
8298
8299 private init empty_init do end
8300
8301 init init_arangeexpr (
8302 n_expr: nullable AExpr,
8303 n_expr2: nullable AExpr
8304 )
8305 do
8306 empty_init
8307 _n_expr = n_expr.as(not null)
8308 n_expr.parent = self
8309 _n_expr2 = n_expr2.as(not null)
8310 n_expr2.parent = self
8311 end
8312
8313 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
8314 do
8315 if _n_expr == old_child then
8316 if new_child != null then
8317 new_child.parent = self
8318 assert new_child isa AExpr
8319 _n_expr = new_child
8320 else
8321 abort
8322 end
8323 return
8324 end
8325 if _n_expr2 == old_child then
8326 if new_child != null then
8327 new_child.parent = self
8328 assert new_child isa AExpr
8329 _n_expr2 = new_child
8330 else
8331 abort
8332 end
8333 return
8334 end
8335 end
8336
8337 redef fun visit_all(v: Visitor)
8338 do
8339 v.enter_visit(_n_expr)
8340 v.enter_visit(_n_expr2)
8341 end
8342
8343 redef fun visit_all_reverse(v: Visitor)
8344 do
8345 v.enter_visit(_n_expr)
8346 v.enter_visit(_n_expr2)
8347 end
8348 end
8349 redef class ACrangeExpr
8350 redef fun n_expr=(n)
8351 do
8352 _n_expr = n
8353 n.parent = self
8354 end
8355 redef fun n_expr2=(n)
8356 do
8357 _n_expr2 = n
8358 n.parent = self
8359 end
8360
8361 private init empty_init do end
8362
8363 init init_acrangeexpr (
8364 n_expr: nullable AExpr,
8365 n_expr2: nullable AExpr
8366 )
8367 do
8368 empty_init
8369 _n_expr = n_expr.as(not null)
8370 n_expr.parent = self
8371 _n_expr2 = n_expr2.as(not null)
8372 n_expr2.parent = self
8373 end
8374
8375 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
8376 do
8377 if _n_expr == old_child then
8378 if new_child != null then
8379 new_child.parent = self
8380 assert new_child isa AExpr
8381 _n_expr = new_child
8382 else
8383 abort
8384 end
8385 return
8386 end
8387 if _n_expr2 == old_child then
8388 if new_child != null then
8389 new_child.parent = self
8390 assert new_child isa AExpr
8391 _n_expr2 = new_child
8392 else
8393 abort
8394 end
8395 return
8396 end
8397 end
8398
8399 redef fun visit_all(v: Visitor)
8400 do
8401 v.enter_visit(_n_expr)
8402 v.enter_visit(_n_expr2)
8403 end
8404
8405 redef fun visit_all_reverse(v: Visitor)
8406 do
8407 v.enter_visit(_n_expr)
8408 v.enter_visit(_n_expr2)
8409 end
8410 end
8411 redef class AOrangeExpr
8412 redef fun n_expr=(n)
8413 do
8414 _n_expr = n
8415 n.parent = self
8416 end
8417 redef fun n_expr2=(n)
8418 do
8419 _n_expr2 = n
8420 n.parent = self
8421 end
8422
8423 private init empty_init do end
8424
8425 init init_aorangeexpr (
8426 n_expr: nullable AExpr,
8427 n_expr2: nullable AExpr
8428 )
8429 do
8430 empty_init
8431 _n_expr = n_expr.as(not null)
8432 n_expr.parent = self
8433 _n_expr2 = n_expr2.as(not null)
8434 n_expr2.parent = self
8435 end
8436
8437 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
8438 do
8439 if _n_expr == old_child then
8440 if new_child != null then
8441 new_child.parent = self
8442 assert new_child isa AExpr
8443 _n_expr = new_child
8444 else
8445 abort
8446 end
8447 return
8448 end
8449 if _n_expr2 == old_child then
8450 if new_child != null then
8451 new_child.parent = self
8452 assert new_child isa AExpr
8453 _n_expr2 = new_child
8454 else
8455 abort
8456 end
8457 return
8458 end
8459 end
8460
8461 redef fun visit_all(v: Visitor)
8462 do
8463 v.enter_visit(_n_expr)
8464 v.enter_visit(_n_expr2)
8465 end
8466
8467 redef fun visit_all_reverse(v: Visitor)
8468 do
8469 v.enter_visit(_n_expr)
8470 v.enter_visit(_n_expr2)
8471 end
8472 end
8473 redef class AArrayExpr
8474
8475 private init empty_init do end
8476
8477 init init_aarrayexpr (
8478 n_exprs: Collection[Object] # Should be Collection[AExpr]
8479 )
8480 do
8481 empty_init
8482 for n in n_exprs do
8483 assert n isa AExpr
8484 _n_exprs.add(n)
8485 n.parent = self
8486 end
8487 end
8488
8489 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
8490 do
8491 for i in [0.._n_exprs.length[ do
8492 if _n_exprs[i] == old_child then
8493 if new_child != null then
8494 assert new_child isa AExpr
8495 _n_exprs[i] = new_child
8496 new_child.parent = self
8497 else
8498 _n_exprs.remove_at(i)
8499 end
8500 return
8501 end
8502 end
8503 end
8504
8505 redef fun visit_all(v: Visitor)
8506 do
8507 for n in _n_exprs do
8508 v.enter_visit(n)
8509 end
8510 end
8511
8512 redef fun visit_all_reverse(v: Visitor)
8513 do
8514 do
8515 var i = _n_exprs.length
8516 while i >= 0 do
8517 v.enter_visit(_n_exprs[i])
8518 i = i - 1
8519 end
8520 end
8521 end
8522 end
8523 redef class ASelfExpr
8524 redef fun n_kwself=(n)
8525 do
8526 _n_kwself = n
8527 n.parent = self
8528 end
8529
8530 private init empty_init do end
8531
8532 init init_aselfexpr (
8533 n_kwself: nullable TKwself
8534 )
8535 do
8536 empty_init
8537 _n_kwself = n_kwself.as(not null)
8538 n_kwself.parent = self
8539 end
8540
8541 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
8542 do
8543 if _n_kwself == old_child then
8544 if new_child != null then
8545 new_child.parent = self
8546 assert new_child isa TKwself
8547 _n_kwself = new_child
8548 else
8549 abort
8550 end
8551 return
8552 end
8553 end
8554
8555 redef fun visit_all(v: Visitor)
8556 do
8557 v.enter_visit(_n_kwself)
8558 end
8559
8560 redef fun visit_all_reverse(v: Visitor)
8561 do
8562 v.enter_visit(_n_kwself)
8563 end
8564 end
8565 redef class AImplicitSelfExpr
8566
8567 private init empty_init do end
8568
8569 init init_aimplicitselfexpr
8570 do
8571 empty_init
8572 end
8573
8574 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
8575 do
8576 end
8577
8578 redef fun visit_all(v: Visitor)
8579 do
8580 end
8581
8582 redef fun visit_all_reverse(v: Visitor)
8583 do
8584 end
8585 end
8586 redef class ATrueExpr
8587 redef fun n_kwtrue=(n)
8588 do
8589 _n_kwtrue = n
8590 n.parent = self
8591 end
8592
8593 private init empty_init do end
8594
8595 init init_atrueexpr (
8596 n_kwtrue: nullable TKwtrue
8597 )
8598 do
8599 empty_init
8600 _n_kwtrue = n_kwtrue.as(not null)
8601 n_kwtrue.parent = self
8602 end
8603
8604 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
8605 do
8606 if _n_kwtrue == old_child then
8607 if new_child != null then
8608 new_child.parent = self
8609 assert new_child isa TKwtrue
8610 _n_kwtrue = new_child
8611 else
8612 abort
8613 end
8614 return
8615 end
8616 end
8617
8618 redef fun visit_all(v: Visitor)
8619 do
8620 v.enter_visit(_n_kwtrue)
8621 end
8622
8623 redef fun visit_all_reverse(v: Visitor)
8624 do
8625 v.enter_visit(_n_kwtrue)
8626 end
8627 end
8628 redef class AFalseExpr
8629 redef fun n_kwfalse=(n)
8630 do
8631 _n_kwfalse = n
8632 n.parent = self
8633 end
8634
8635 private init empty_init do end
8636
8637 init init_afalseexpr (
8638 n_kwfalse: nullable TKwfalse
8639 )
8640 do
8641 empty_init
8642 _n_kwfalse = n_kwfalse.as(not null)
8643 n_kwfalse.parent = self
8644 end
8645
8646 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
8647 do
8648 if _n_kwfalse == old_child then
8649 if new_child != null then
8650 new_child.parent = self
8651 assert new_child isa TKwfalse
8652 _n_kwfalse = new_child
8653 else
8654 abort
8655 end
8656 return
8657 end
8658 end
8659
8660 redef fun visit_all(v: Visitor)
8661 do
8662 v.enter_visit(_n_kwfalse)
8663 end
8664
8665 redef fun visit_all_reverse(v: Visitor)
8666 do
8667 v.enter_visit(_n_kwfalse)
8668 end
8669 end
8670 redef class ANullExpr
8671 redef fun n_kwnull=(n)
8672 do
8673 _n_kwnull = n
8674 n.parent = self
8675 end
8676
8677 private init empty_init do end
8678
8679 init init_anullexpr (
8680 n_kwnull: nullable TKwnull
8681 )
8682 do
8683 empty_init
8684 _n_kwnull = n_kwnull.as(not null)
8685 n_kwnull.parent = self
8686 end
8687
8688 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
8689 do
8690 if _n_kwnull == old_child then
8691 if new_child != null then
8692 new_child.parent = self
8693 assert new_child isa TKwnull
8694 _n_kwnull = new_child
8695 else
8696 abort
8697 end
8698 return
8699 end
8700 end
8701
8702 redef fun visit_all(v: Visitor)
8703 do
8704 v.enter_visit(_n_kwnull)
8705 end
8706
8707 redef fun visit_all_reverse(v: Visitor)
8708 do
8709 v.enter_visit(_n_kwnull)
8710 end
8711 end
8712 redef class AIntExpr
8713 redef fun n_number=(n)
8714 do
8715 _n_number = n
8716 n.parent = self
8717 end
8718
8719 private init empty_init do end
8720
8721 init init_aintexpr (
8722 n_number: nullable TNumber
8723 )
8724 do
8725 empty_init
8726 _n_number = n_number.as(not null)
8727 n_number.parent = self
8728 end
8729
8730 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
8731 do
8732 if _n_number == old_child then
8733 if new_child != null then
8734 new_child.parent = self
8735 assert new_child isa TNumber
8736 _n_number = new_child
8737 else
8738 abort
8739 end
8740 return
8741 end
8742 end
8743
8744 redef fun visit_all(v: Visitor)
8745 do
8746 v.enter_visit(_n_number)
8747 end
8748
8749 redef fun visit_all_reverse(v: Visitor)
8750 do
8751 v.enter_visit(_n_number)
8752 end
8753 end
8754 redef class AFloatExpr
8755 redef fun n_float=(n)
8756 do
8757 _n_float = n
8758 n.parent = self
8759 end
8760
8761 private init empty_init do end
8762
8763 init init_afloatexpr (
8764 n_float: nullable TFloat
8765 )
8766 do
8767 empty_init
8768 _n_float = n_float.as(not null)
8769 n_float.parent = self
8770 end
8771
8772 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
8773 do
8774 if _n_float == old_child then
8775 if new_child != null then
8776 new_child.parent = self
8777 assert new_child isa TFloat
8778 _n_float = new_child
8779 else
8780 abort
8781 end
8782 return
8783 end
8784 end
8785
8786 redef fun visit_all(v: Visitor)
8787 do
8788 v.enter_visit(_n_float)
8789 end
8790
8791 redef fun visit_all_reverse(v: Visitor)
8792 do
8793 v.enter_visit(_n_float)
8794 end
8795 end
8796 redef class ACharExpr
8797 redef fun n_char=(n)
8798 do
8799 _n_char = n
8800 n.parent = self
8801 end
8802
8803 private init empty_init do end
8804
8805 init init_acharexpr (
8806 n_char: nullable TChar
8807 )
8808 do
8809 empty_init
8810 _n_char = n_char.as(not null)
8811 n_char.parent = self
8812 end
8813
8814 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
8815 do
8816 if _n_char == old_child then
8817 if new_child != null then
8818 new_child.parent = self
8819 assert new_child isa TChar
8820 _n_char = new_child
8821 else
8822 abort
8823 end
8824 return
8825 end
8826 end
8827
8828 redef fun visit_all(v: Visitor)
8829 do
8830 v.enter_visit(_n_char)
8831 end
8832
8833 redef fun visit_all_reverse(v: Visitor)
8834 do
8835 v.enter_visit(_n_char)
8836 end
8837 end
8838 redef class AStringExpr
8839 redef fun n_string=(n)
8840 do
8841 _n_string = n
8842 n.parent = self
8843 end
8844
8845 private init empty_init do end
8846
8847 init init_astringexpr (
8848 n_string: nullable TString
8849 )
8850 do
8851 empty_init
8852 _n_string = n_string.as(not null)
8853 n_string.parent = self
8854 end
8855
8856 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
8857 do
8858 if _n_string == old_child then
8859 if new_child != null then
8860 new_child.parent = self
8861 assert new_child isa TString
8862 _n_string = new_child
8863 else
8864 abort
8865 end
8866 return
8867 end
8868 end
8869
8870 redef fun visit_all(v: Visitor)
8871 do
8872 v.enter_visit(_n_string)
8873 end
8874
8875 redef fun visit_all_reverse(v: Visitor)
8876 do
8877 v.enter_visit(_n_string)
8878 end
8879 end
8880 redef class AStartStringExpr
8881 redef fun n_string=(n)
8882 do
8883 _n_string = n
8884 n.parent = self
8885 end
8886
8887 private init empty_init do end
8888
8889 init init_astartstringexpr (
8890 n_string: nullable TStartString
8891 )
8892 do
8893 empty_init
8894 _n_string = n_string.as(not null)
8895 n_string.parent = self
8896 end
8897
8898 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
8899 do
8900 if _n_string == old_child then
8901 if new_child != null then
8902 new_child.parent = self
8903 assert new_child isa TStartString
8904 _n_string = new_child
8905 else
8906 abort
8907 end
8908 return
8909 end
8910 end
8911
8912 redef fun visit_all(v: Visitor)
8913 do
8914 v.enter_visit(_n_string)
8915 end
8916
8917 redef fun visit_all_reverse(v: Visitor)
8918 do
8919 v.enter_visit(_n_string)
8920 end
8921 end
8922 redef class AMidStringExpr
8923 redef fun n_string=(n)
8924 do
8925 _n_string = n
8926 n.parent = self
8927 end
8928
8929 private init empty_init do end
8930
8931 init init_amidstringexpr (
8932 n_string: nullable TMidString
8933 )
8934 do
8935 empty_init
8936 _n_string = n_string.as(not null)
8937 n_string.parent = self
8938 end
8939
8940 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
8941 do
8942 if _n_string == old_child then
8943 if new_child != null then
8944 new_child.parent = self
8945 assert new_child isa TMidString
8946 _n_string = new_child
8947 else
8948 abort
8949 end
8950 return
8951 end
8952 end
8953
8954 redef fun visit_all(v: Visitor)
8955 do
8956 v.enter_visit(_n_string)
8957 end
8958
8959 redef fun visit_all_reverse(v: Visitor)
8960 do
8961 v.enter_visit(_n_string)
8962 end
8963 end
8964 redef class AEndStringExpr
8965 redef fun n_string=(n)
8966 do
8967 _n_string = n
8968 n.parent = self
8969 end
8970
8971 private init empty_init do end
8972
8973 init init_aendstringexpr (
8974 n_string: nullable TEndString
8975 )
8976 do
8977 empty_init
8978 _n_string = n_string.as(not null)
8979 n_string.parent = self
8980 end
8981
8982 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
8983 do
8984 if _n_string == old_child then
8985 if new_child != null then
8986 new_child.parent = self
8987 assert new_child isa TEndString
8988 _n_string = new_child
8989 else
8990 abort
8991 end
8992 return
8993 end
8994 end
8995
8996 redef fun visit_all(v: Visitor)
8997 do
8998 v.enter_visit(_n_string)
8999 end
9000
9001 redef fun visit_all_reverse(v: Visitor)
9002 do
9003 v.enter_visit(_n_string)
9004 end
9005 end
9006 redef class ASuperstringExpr
9007
9008 private init empty_init do end
9009
9010 init init_asuperstringexpr (
9011 n_exprs: Collection[Object] # Should be Collection[AExpr]
9012 )
9013 do
9014 empty_init
9015 for n in n_exprs do
9016 assert n isa AExpr
9017 _n_exprs.add(n)
9018 n.parent = self
9019 end
9020 end
9021
9022 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
9023 do
9024 for i in [0.._n_exprs.length[ do
9025 if _n_exprs[i] == old_child then
9026 if new_child != null then
9027 assert new_child isa AExpr
9028 _n_exprs[i] = new_child
9029 new_child.parent = self
9030 else
9031 _n_exprs.remove_at(i)
9032 end
9033 return
9034 end
9035 end
9036 end
9037
9038 redef fun visit_all(v: Visitor)
9039 do
9040 for n in _n_exprs do
9041 v.enter_visit(n)
9042 end
9043 end
9044
9045 redef fun visit_all_reverse(v: Visitor)
9046 do
9047 do
9048 var i = _n_exprs.length
9049 while i >= 0 do
9050 v.enter_visit(_n_exprs[i])
9051 i = i - 1
9052 end
9053 end
9054 end
9055 end
9056 redef class AParExpr
9057 redef fun n_expr=(n)
9058 do
9059 _n_expr = n
9060 n.parent = self
9061 end
9062
9063 private init empty_init do end
9064
9065 init init_aparexpr (
9066 n_expr: nullable AExpr
9067 )
9068 do
9069 empty_init
9070 _n_expr = n_expr.as(not null)
9071 n_expr.parent = self
9072 end
9073
9074 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
9075 do
9076 if _n_expr == old_child then
9077 if new_child != null then
9078 new_child.parent = self
9079 assert new_child isa AExpr
9080 _n_expr = new_child
9081 else
9082 abort
9083 end
9084 return
9085 end
9086 end
9087
9088 redef fun visit_all(v: Visitor)
9089 do
9090 v.enter_visit(_n_expr)
9091 end
9092
9093 redef fun visit_all_reverse(v: Visitor)
9094 do
9095 v.enter_visit(_n_expr)
9096 end
9097 end
9098 redef class AAsCastExpr
9099 redef fun n_expr=(n)
9100 do
9101 _n_expr = n
9102 n.parent = self
9103 end
9104 redef fun n_kwas=(n)
9105 do
9106 _n_kwas = n
9107 n.parent = self
9108 end
9109 redef fun n_type=(n)
9110 do
9111 _n_type = n
9112 n.parent = self
9113 end
9114
9115 private init empty_init do end
9116
9117 init init_aascastexpr (
9118 n_expr: nullable AExpr,
9119 n_kwas: nullable TKwas,
9120 n_type: nullable AType
9121 )
9122 do
9123 empty_init
9124 _n_expr = n_expr.as(not null)
9125 n_expr.parent = self
9126 _n_kwas = n_kwas.as(not null)
9127 n_kwas.parent = self
9128 _n_type = n_type.as(not null)
9129 n_type.parent = self
9130 end
9131
9132 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
9133 do
9134 if _n_expr == old_child then
9135 if new_child != null then
9136 new_child.parent = self
9137 assert new_child isa AExpr
9138 _n_expr = new_child
9139 else
9140 abort
9141 end
9142 return
9143 end
9144 if _n_kwas == old_child then
9145 if new_child != null then
9146 new_child.parent = self
9147 assert new_child isa TKwas
9148 _n_kwas = new_child
9149 else
9150 abort
9151 end
9152 return
9153 end
9154 if _n_type == old_child then
9155 if new_child != null then
9156 new_child.parent = self
9157 assert new_child isa AType
9158 _n_type = new_child
9159 else
9160 abort
9161 end
9162 return
9163 end
9164 end
9165
9166 redef fun visit_all(v: Visitor)
9167 do
9168 v.enter_visit(_n_expr)
9169 v.enter_visit(_n_kwas)
9170 v.enter_visit(_n_type)
9171 end
9172
9173 redef fun visit_all_reverse(v: Visitor)
9174 do
9175 v.enter_visit(_n_expr)
9176 v.enter_visit(_n_kwas)
9177 v.enter_visit(_n_type)
9178 end
9179 end
9180 redef class AAsNotnullExpr
9181 redef fun n_expr=(n)
9182 do
9183 _n_expr = n
9184 n.parent = self
9185 end
9186 redef fun n_kwas=(n)
9187 do
9188 _n_kwas = n
9189 n.parent = self
9190 end
9191 redef fun n_kwnot=(n)
9192 do
9193 _n_kwnot = n
9194 n.parent = self
9195 end
9196 redef fun n_kwnull=(n)
9197 do
9198 _n_kwnull = n
9199 n.parent = self
9200 end
9201
9202 private init empty_init do end
9203
9204 init init_aasnotnullexpr (
9205 n_expr: nullable AExpr,
9206 n_kwas: nullable TKwas,
9207 n_kwnot: nullable TKwnot,
9208 n_kwnull: nullable TKwnull
9209 )
9210 do
9211 empty_init
9212 _n_expr = n_expr.as(not null)
9213 n_expr.parent = self
9214 _n_kwas = n_kwas.as(not null)
9215 n_kwas.parent = self
9216 _n_kwnot = n_kwnot.as(not null)
9217 n_kwnot.parent = self
9218 _n_kwnull = n_kwnull.as(not null)
9219 n_kwnull.parent = self
9220 end
9221
9222 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
9223 do
9224 if _n_expr == old_child then
9225 if new_child != null then
9226 new_child.parent = self
9227 assert new_child isa AExpr
9228 _n_expr = new_child
9229 else
9230 abort
9231 end
9232 return
9233 end
9234 if _n_kwas == old_child then
9235 if new_child != null then
9236 new_child.parent = self
9237 assert new_child isa TKwas
9238 _n_kwas = new_child
9239 else
9240 abort
9241 end
9242 return
9243 end
9244 if _n_kwnot == old_child then
9245 if new_child != null then
9246 new_child.parent = self
9247 assert new_child isa TKwnot
9248 _n_kwnot = new_child
9249 else
9250 abort
9251 end
9252 return
9253 end
9254 if _n_kwnull == old_child then
9255 if new_child != null then
9256 new_child.parent = self
9257 assert new_child isa TKwnull
9258 _n_kwnull = new_child
9259 else
9260 abort
9261 end
9262 return
9263 end
9264 end
9265
9266 redef fun visit_all(v: Visitor)
9267 do
9268 v.enter_visit(_n_expr)
9269 v.enter_visit(_n_kwas)
9270 v.enter_visit(_n_kwnot)
9271 v.enter_visit(_n_kwnull)
9272 end
9273
9274 redef fun visit_all_reverse(v: Visitor)
9275 do
9276 v.enter_visit(_n_expr)
9277 v.enter_visit(_n_kwas)
9278 v.enter_visit(_n_kwnot)
9279 v.enter_visit(_n_kwnull)
9280 end
9281 end
9282 redef class AIssetAttrExpr
9283 redef fun n_kwisset=(n)
9284 do
9285 _n_kwisset = n
9286 n.parent = self
9287 end
9288 redef fun n_expr=(n)
9289 do
9290 _n_expr = n
9291 n.parent = self
9292 end
9293 redef fun n_id=(n)
9294 do
9295 _n_id = n
9296 n.parent = self
9297 end
9298
9299 private init empty_init do end
9300
9301 init init_aissetattrexpr (
9302 n_kwisset: nullable TKwisset,
9303 n_expr: nullable AExpr,
9304 n_id: nullable TAttrid
9305 )
9306 do
9307 empty_init
9308 _n_kwisset = n_kwisset.as(not null)
9309 n_kwisset.parent = self
9310 _n_expr = n_expr.as(not null)
9311 n_expr.parent = self
9312 _n_id = n_id.as(not null)
9313 n_id.parent = self
9314 end
9315
9316 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
9317 do
9318 if _n_kwisset == old_child then
9319 if new_child != null then
9320 new_child.parent = self
9321 assert new_child isa TKwisset
9322 _n_kwisset = new_child
9323 else
9324 abort
9325 end
9326 return
9327 end
9328 if _n_expr == old_child then
9329 if new_child != null then
9330 new_child.parent = self
9331 assert new_child isa AExpr
9332 _n_expr = new_child
9333 else
9334 abort
9335 end
9336 return
9337 end
9338 if _n_id == old_child then
9339 if new_child != null then
9340 new_child.parent = self
9341 assert new_child isa TAttrid
9342 _n_id = new_child
9343 else
9344 abort
9345 end
9346 return
9347 end
9348 end
9349
9350 redef fun visit_all(v: Visitor)
9351 do
9352 v.enter_visit(_n_kwisset)
9353 v.enter_visit(_n_expr)
9354 v.enter_visit(_n_id)
9355 end
9356
9357 redef fun visit_all_reverse(v: Visitor)
9358 do
9359 v.enter_visit(_n_kwisset)
9360 v.enter_visit(_n_expr)
9361 v.enter_visit(_n_id)
9362 end
9363 end
9364 redef class APlusAssignOp
9365 redef fun n_pluseq=(n)
9366 do
9367 _n_pluseq = n
9368 n.parent = self
9369 end
9370
9371 private init empty_init do end
9372
9373 init init_aplusassignop (
9374 n_pluseq: nullable TPluseq
9375 )
9376 do
9377 empty_init
9378 _n_pluseq = n_pluseq.as(not null)
9379 n_pluseq.parent = self
9380 end
9381
9382 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
9383 do
9384 if _n_pluseq == old_child then
9385 if new_child != null then
9386 new_child.parent = self
9387 assert new_child isa TPluseq
9388 _n_pluseq = new_child
9389 else
9390 abort
9391 end
9392 return
9393 end
9394 end
9395
9396 redef fun visit_all(v: Visitor)
9397 do
9398 v.enter_visit(_n_pluseq)
9399 end
9400
9401 redef fun visit_all_reverse(v: Visitor)
9402 do
9403 v.enter_visit(_n_pluseq)
9404 end
9405 end
9406 redef class AMinusAssignOp
9407 redef fun n_minuseq=(n)
9408 do
9409 _n_minuseq = n
9410 n.parent = self
9411 end
9412
9413 private init empty_init do end
9414
9415 init init_aminusassignop (
9416 n_minuseq: nullable TMinuseq
9417 )
9418 do
9419 empty_init
9420 _n_minuseq = n_minuseq.as(not null)
9421 n_minuseq.parent = self
9422 end
9423
9424 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
9425 do
9426 if _n_minuseq == old_child then
9427 if new_child != null then
9428 new_child.parent = self
9429 assert new_child isa TMinuseq
9430 _n_minuseq = new_child
9431 else
9432 abort
9433 end
9434 return
9435 end
9436 end
9437
9438 redef fun visit_all(v: Visitor)
9439 do
9440 v.enter_visit(_n_minuseq)
9441 end
9442
9443 redef fun visit_all_reverse(v: Visitor)
9444 do
9445 v.enter_visit(_n_minuseq)
9446 end
9447 end
9448 redef class AClosureDef
9449 redef fun n_kwwith=(n)
9450 do
9451 _n_kwwith = n
9452 n.parent = self
9453 end
9454 redef fun n_kwdo=(n)
9455 do
9456 _n_kwdo = n
9457 n.parent = self
9458 end
9459 redef fun n_expr=(n)
9460 do
9461 _n_expr = n
9462 if n != null then
9463 n.parent = self
9464 end
9465 end
9466 redef fun n_label=(n)
9467 do
9468 _n_label = n
9469 if n != null then
9470 n.parent = self
9471 end
9472 end
9473
9474 private init empty_init do end
9475
9476 init init_aclosuredef (
9477 n_kwwith: nullable TKwwith,
9478 n_id: Collection[Object], # Should be Collection[TId]
9479 n_kwdo: nullable TKwdo,
9480 n_expr: nullable AExpr,
9481 n_label: nullable ALabel
9482 )
9483 do
9484 empty_init
9485 _n_kwwith = n_kwwith.as(not null)
9486 n_kwwith.parent = self
9487 for n in n_id do
9488 assert n isa TId
9489 _n_id.add(n)
9490 n.parent = self
9491 end
9492 _n_kwdo = n_kwdo.as(not null)
9493 n_kwdo.parent = self
9494 _n_expr = n_expr
9495 if n_expr != null then
9496 n_expr.parent = self
9497 end
9498 _n_label = n_label
9499 if n_label != null then
9500 n_label.parent = self
9501 end
9502 end
9503
9504 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
9505 do
9506 if _n_kwwith == old_child then
9507 if new_child != null then
9508 new_child.parent = self
9509 assert new_child isa TKwwith
9510 _n_kwwith = new_child
9511 else
9512 abort
9513 end
9514 return
9515 end
9516 for i in [0.._n_id.length[ do
9517 if _n_id[i] == old_child then
9518 if new_child != null then
9519 assert new_child isa TId
9520 _n_id[i] = new_child
9521 new_child.parent = self
9522 else
9523 _n_id.remove_at(i)
9524 end
9525 return
9526 end
9527 end
9528 if _n_kwdo == old_child then
9529 if new_child != null then
9530 new_child.parent = self
9531 assert new_child isa TKwdo
9532 _n_kwdo = new_child
9533 else
9534 abort
9535 end
9536 return
9537 end
9538 if _n_expr == old_child then
9539 if new_child != null then
9540 new_child.parent = self
9541 assert new_child isa AExpr
9542 _n_expr = new_child
9543 else
9544 _n_expr = null
9545 end
9546 return
9547 end
9548 if _n_label == old_child then
9549 if new_child != null then
9550 new_child.parent = self
9551 assert new_child isa ALabel
9552 _n_label = new_child
9553 else
9554 _n_label = null
9555 end
9556 return
9557 end
9558 end
9559
9560 redef fun visit_all(v: Visitor)
9561 do
9562 v.enter_visit(_n_kwwith)
9563 for n in _n_id do
9564 v.enter_visit(n)
9565 end
9566 v.enter_visit(_n_kwdo)
9567 if _n_expr != null then
9568 v.enter_visit(_n_expr.as(not null))
9569 end
9570 if _n_label != null then
9571 v.enter_visit(_n_label.as(not null))
9572 end
9573 end
9574
9575 redef fun visit_all_reverse(v: Visitor)
9576 do
9577 v.enter_visit(_n_kwwith)
9578 do
9579 var i = _n_id.length
9580 while i >= 0 do
9581 v.enter_visit(_n_id[i])
9582 i = i - 1
9583 end
9584 end
9585 v.enter_visit(_n_kwdo)
9586 if _n_expr != null then
9587 v.enter_visit(_n_expr.as(not null))
9588 end
9589 if _n_label != null then
9590 v.enter_visit(_n_label.as(not null))
9591 end
9592 end
9593 end
9594 redef class AQualified
9595 redef fun n_classid=(n)
9596 do
9597 _n_classid = n
9598 if n != null then
9599 n.parent = self
9600 end
9601 end
9602
9603 private init empty_init do end
9604
9605 init init_aqualified (
9606 n_id: Collection[Object], # Should be Collection[TId]
9607 n_classid: nullable TClassid
9608 )
9609 do
9610 empty_init
9611 for n in n_id do
9612 assert n isa TId
9613 _n_id.add(n)
9614 n.parent = self
9615 end
9616 _n_classid = n_classid
9617 if n_classid != null then
9618 n_classid.parent = self
9619 end
9620 end
9621
9622 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
9623 do
9624 for i in [0.._n_id.length[ do
9625 if _n_id[i] == old_child then
9626 if new_child != null then
9627 assert new_child isa TId
9628 _n_id[i] = new_child
9629 new_child.parent = self
9630 else
9631 _n_id.remove_at(i)
9632 end
9633 return
9634 end
9635 end
9636 if _n_classid == old_child then
9637 if new_child != null then
9638 new_child.parent = self
9639 assert new_child isa TClassid
9640 _n_classid = new_child
9641 else
9642 _n_classid = null
9643 end
9644 return
9645 end
9646 end
9647
9648 redef fun visit_all(v: Visitor)
9649 do
9650 for n in _n_id do
9651 v.enter_visit(n)
9652 end
9653 if _n_classid != null then
9654 v.enter_visit(_n_classid.as(not null))
9655 end
9656 end
9657
9658 redef fun visit_all_reverse(v: Visitor)
9659 do
9660 do
9661 var i = _n_id.length
9662 while i >= 0 do
9663 v.enter_visit(_n_id[i])
9664 i = i - 1
9665 end
9666 end
9667 if _n_classid != null then
9668 v.enter_visit(_n_classid.as(not null))
9669 end
9670 end
9671 end
9672 redef class ADoc
9673
9674 private init empty_init do end
9675
9676 init init_adoc (
9677 n_comment: Collection[Object] # Should be Collection[TComment]
9678 )
9679 do
9680 empty_init
9681 for n in n_comment do
9682 assert n isa TComment
9683 _n_comment.add(n)
9684 n.parent = self
9685 end
9686 end
9687
9688 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
9689 do
9690 for i in [0.._n_comment.length[ do
9691 if _n_comment[i] == old_child then
9692 if new_child != null then
9693 assert new_child isa TComment
9694 _n_comment[i] = new_child
9695 new_child.parent = self
9696 else
9697 _n_comment.remove_at(i)
9698 end
9699 return
9700 end
9701 end
9702 end
9703
9704 redef fun visit_all(v: Visitor)
9705 do
9706 for n in _n_comment do
9707 v.enter_visit(n)
9708 end
9709 end
9710
9711 redef fun visit_all_reverse(v: Visitor)
9712 do
9713 do
9714 var i = _n_comment.length
9715 while i >= 0 do
9716 v.enter_visit(_n_comment[i])
9717 i = i - 1
9718 end
9719 end
9720 end
9721 end
9722
9723 redef class Start
9724 init(
9725 n_base: nullable AModule,
9726 n_eof: EOF)
9727 do
9728 _n_base = n_base
9729 _n_eof = n_eof
9730 end
9731
9732 redef fun replace_child(old_child: ANode, new_child: nullable ANode)
9733 do
9734 if _n_base == old_child then
9735 if new_child == null then
9736 else
9737 new_child.parent = self
9738 assert new_child isa AModule
9739 _n_base = new_child
9740 end
9741 old_child.parent = null
9742 return
9743 end
9744 end
9745
9746 redef fun visit_all(v: Visitor)
9747 do
9748 if _n_base != null then
9749 v.enter_visit(_n_base.as(not null))
9750 end
9751 end
9752
9753 redef fun visit_all_reverse(v: Visitor)
9754 do
9755 if _n_base != null then
9756 v.enter_visit(_n_base.as(not null))
9757 end
9758 end
9759 end