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