parser: inits uses Collection instead of Array
[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_id=(n: TClassid)
4703 do
4704 _n_id = n
4705 if n != null then
4706 n.parent = self
4707 end
4708 end
4709
4710 private init empty_init do end
4711
4712 init init_atype (
4713 n_id: TClassid ,
4714 n_types: Collection[Object] # Should be Collection[PType]
4715 )
4716 do
4717 empty_init
4718 _n_id = n_id
4719 if n_id != null then
4720 n_id.parent = self
4721 end
4722 _n_types = new List[PType]
4723 for n in n_types do
4724 assert n isa PType
4725 _n_types.add(n)
4726 n.parent = self
4727 end
4728 end
4729
4730 redef meth replace_child(old_child: PNode, new_child: PNode)
4731 do
4732 assert old_child != null
4733 if _n_id == old_child then
4734 if new_child != null then
4735 new_child.parent = self
4736 assert new_child isa TClassid
4737 _n_id = new_child
4738 else
4739 _n_id = null
4740 end
4741 return
4742 end
4743 for i in [0.._n_types.length[ do
4744 if _n_types[i] == old_child then
4745 if new_child != null then
4746 assert new_child isa PType
4747 _n_types[i] = new_child
4748 new_child.parent = self
4749 else
4750 _n_types.remove_at(i)
4751 end
4752 return
4753 end
4754 end
4755 end
4756
4757 redef meth visit_all(v: Visitor)
4758 do
4759 if _n_id != null then
4760 v.visit(_n_id)
4761 end
4762 for n in _n_types do
4763 v.visit(n)
4764 end
4765 end
4766
4767 redef meth visit_all_reverse(v: Visitor)
4768 do
4769 if _n_id != null then
4770 v.visit(_n_id)
4771 end
4772 do
4773 var i = _n_types.length
4774 while i >= 0 do
4775 v.visit(_n_types[i])
4776 i = i - 1
4777 end
4778 end
4779 end
4780 end
4781 redef class ABlockExpr
4782
4783 private init empty_init do end
4784
4785 init init_ablockexpr (
4786 n_expr: Collection[Object] # Should be Collection[PExpr]
4787 )
4788 do
4789 empty_init
4790 _n_expr = new List[PExpr]
4791 for n in n_expr do
4792 assert n isa PExpr
4793 _n_expr.add(n)
4794 n.parent = self
4795 end
4796 end
4797
4798 redef meth replace_child(old_child: PNode, new_child: PNode)
4799 do
4800 assert old_child != null
4801 for i in [0.._n_expr.length[ do
4802 if _n_expr[i] == old_child then
4803 if new_child != null then
4804 assert new_child isa PExpr
4805 _n_expr[i] = new_child
4806 new_child.parent = self
4807 else
4808 _n_expr.remove_at(i)
4809 end
4810 return
4811 end
4812 end
4813 end
4814
4815 redef meth visit_all(v: Visitor)
4816 do
4817 for n in _n_expr do
4818 v.visit(n)
4819 end
4820 end
4821
4822 redef meth visit_all_reverse(v: Visitor)
4823 do
4824 do
4825 var i = _n_expr.length
4826 while i >= 0 do
4827 v.visit(_n_expr[i])
4828 i = i - 1
4829 end
4830 end
4831 end
4832 end
4833 redef class AVardeclExpr
4834 redef meth n_kwvar=(n: TKwvar)
4835 do
4836 _n_kwvar = n
4837 if n != null then
4838 n.parent = self
4839 end
4840 end
4841 redef meth n_id=(n: TId)
4842 do
4843 _n_id = n
4844 if n != null then
4845 n.parent = self
4846 end
4847 end
4848 redef meth n_type=(n: PType)
4849 do
4850 _n_type = n
4851 if n != null then
4852 n.parent = self
4853 end
4854 end
4855 redef meth n_assign=(n: TAssign)
4856 do
4857 _n_assign = n
4858 if n != null then
4859 n.parent = self
4860 end
4861 end
4862 redef meth n_expr=(n: PExpr)
4863 do
4864 _n_expr = n
4865 if n != null then
4866 n.parent = self
4867 end
4868 end
4869
4870 private init empty_init do end
4871
4872 init init_avardeclexpr (
4873 n_kwvar: TKwvar ,
4874 n_id: TId ,
4875 n_type: PType ,
4876 n_assign: TAssign ,
4877 n_expr: PExpr
4878 )
4879 do
4880 empty_init
4881 _n_kwvar = n_kwvar
4882 if n_kwvar != null then
4883 n_kwvar.parent = self
4884 end
4885 _n_id = n_id
4886 if n_id != null then
4887 n_id.parent = self
4888 end
4889 _n_type = n_type
4890 if n_type != null then
4891 n_type.parent = self
4892 end
4893 _n_assign = n_assign
4894 if n_assign != null then
4895 n_assign.parent = self
4896 end
4897 _n_expr = n_expr
4898 if n_expr != null then
4899 n_expr.parent = self
4900 end
4901 end
4902
4903 redef meth replace_child(old_child: PNode, new_child: PNode)
4904 do
4905 assert old_child != null
4906 if _n_kwvar == old_child then
4907 if new_child != null then
4908 new_child.parent = self
4909 assert new_child isa TKwvar
4910 _n_kwvar = new_child
4911 else
4912 _n_kwvar = null
4913 end
4914 return
4915 end
4916 if _n_id == old_child then
4917 if new_child != null then
4918 new_child.parent = self
4919 assert new_child isa TId
4920 _n_id = new_child
4921 else
4922 _n_id = null
4923 end
4924 return
4925 end
4926 if _n_type == old_child then
4927 if new_child != null then
4928 new_child.parent = self
4929 assert new_child isa PType
4930 _n_type = new_child
4931 else
4932 _n_type = null
4933 end
4934 return
4935 end
4936 if _n_assign == old_child then
4937 if new_child != null then
4938 new_child.parent = self
4939 assert new_child isa TAssign
4940 _n_assign = new_child
4941 else
4942 _n_assign = null
4943 end
4944 return
4945 end
4946 if _n_expr == old_child then
4947 if new_child != null then
4948 new_child.parent = self
4949 assert new_child isa PExpr
4950 _n_expr = new_child
4951 else
4952 _n_expr = null
4953 end
4954 return
4955 end
4956 end
4957
4958 redef meth visit_all(v: Visitor)
4959 do
4960 if _n_kwvar != null then
4961 v.visit(_n_kwvar)
4962 end
4963 if _n_id != null then
4964 v.visit(_n_id)
4965 end
4966 if _n_type != null then
4967 v.visit(_n_type)
4968 end
4969 if _n_assign != null then
4970 v.visit(_n_assign)
4971 end
4972 if _n_expr != null then
4973 v.visit(_n_expr)
4974 end
4975 end
4976
4977 redef meth visit_all_reverse(v: Visitor)
4978 do
4979 if _n_kwvar != null then
4980 v.visit(_n_kwvar)
4981 end
4982 if _n_id != null then
4983 v.visit(_n_id)
4984 end
4985 if _n_type != null then
4986 v.visit(_n_type)
4987 end
4988 if _n_assign != null then
4989 v.visit(_n_assign)
4990 end
4991 if _n_expr != null then
4992 v.visit(_n_expr)
4993 end
4994 end
4995 end
4996 redef class AReturnExpr
4997 redef meth n_kwreturn=(n: TKwreturn)
4998 do
4999 _n_kwreturn = n
5000 if n != null then
5001 n.parent = self
5002 end
5003 end
5004 redef meth n_expr=(n: PExpr)
5005 do
5006 _n_expr = n
5007 if n != null then
5008 n.parent = self
5009 end
5010 end
5011
5012 private init empty_init do end
5013
5014 init init_areturnexpr (
5015 n_kwreturn: TKwreturn ,
5016 n_expr: PExpr
5017 )
5018 do
5019 empty_init
5020 _n_kwreturn = n_kwreturn
5021 if n_kwreturn != null then
5022 n_kwreturn.parent = self
5023 end
5024 _n_expr = n_expr
5025 if n_expr != null then
5026 n_expr.parent = self
5027 end
5028 end
5029
5030 redef meth replace_child(old_child: PNode, new_child: PNode)
5031 do
5032 assert old_child != null
5033 if _n_kwreturn == old_child then
5034 if new_child != null then
5035 new_child.parent = self
5036 assert new_child isa TKwreturn
5037 _n_kwreturn = new_child
5038 else
5039 _n_kwreturn = null
5040 end
5041 return
5042 end
5043 if _n_expr == old_child then
5044 if new_child != null then
5045 new_child.parent = self
5046 assert new_child isa PExpr
5047 _n_expr = new_child
5048 else
5049 _n_expr = null
5050 end
5051 return
5052 end
5053 end
5054
5055 redef meth visit_all(v: Visitor)
5056 do
5057 if _n_kwreturn != null then
5058 v.visit(_n_kwreturn)
5059 end
5060 if _n_expr != null then
5061 v.visit(_n_expr)
5062 end
5063 end
5064
5065 redef meth visit_all_reverse(v: Visitor)
5066 do
5067 if _n_kwreturn != null then
5068 v.visit(_n_kwreturn)
5069 end
5070 if _n_expr != null then
5071 v.visit(_n_expr)
5072 end
5073 end
5074 end
5075 redef class ABreakExpr
5076 redef meth n_kwbreak=(n: TKwbreak)
5077 do
5078 _n_kwbreak = n
5079 if n != null then
5080 n.parent = self
5081 end
5082 end
5083 redef meth n_expr=(n: PExpr)
5084 do
5085 _n_expr = n
5086 if n != null then
5087 n.parent = self
5088 end
5089 end
5090
5091 private init empty_init do end
5092
5093 init init_abreakexpr (
5094 n_kwbreak: TKwbreak ,
5095 n_expr: PExpr
5096 )
5097 do
5098 empty_init
5099 _n_kwbreak = n_kwbreak
5100 if n_kwbreak != null then
5101 n_kwbreak.parent = self
5102 end
5103 _n_expr = n_expr
5104 if n_expr != null then
5105 n_expr.parent = self
5106 end
5107 end
5108
5109 redef meth replace_child(old_child: PNode, new_child: PNode)
5110 do
5111 assert old_child != null
5112 if _n_kwbreak == old_child then
5113 if new_child != null then
5114 new_child.parent = self
5115 assert new_child isa TKwbreak
5116 _n_kwbreak = new_child
5117 else
5118 _n_kwbreak = null
5119 end
5120 return
5121 end
5122 if _n_expr == old_child then
5123 if new_child != null then
5124 new_child.parent = self
5125 assert new_child isa PExpr
5126 _n_expr = new_child
5127 else
5128 _n_expr = null
5129 end
5130 return
5131 end
5132 end
5133
5134 redef meth visit_all(v: Visitor)
5135 do
5136 if _n_kwbreak != null then
5137 v.visit(_n_kwbreak)
5138 end
5139 if _n_expr != null then
5140 v.visit(_n_expr)
5141 end
5142 end
5143
5144 redef meth visit_all_reverse(v: Visitor)
5145 do
5146 if _n_kwbreak != null then
5147 v.visit(_n_kwbreak)
5148 end
5149 if _n_expr != null then
5150 v.visit(_n_expr)
5151 end
5152 end
5153 end
5154 redef class AAbortExpr
5155 redef meth n_kwabort=(n: TKwabort)
5156 do
5157 _n_kwabort = n
5158 if n != null then
5159 n.parent = self
5160 end
5161 end
5162
5163 private init empty_init do end
5164
5165 init init_aabortexpr (
5166 n_kwabort: TKwabort
5167 )
5168 do
5169 empty_init
5170 _n_kwabort = n_kwabort
5171 if n_kwabort != null then
5172 n_kwabort.parent = self
5173 end
5174 end
5175
5176 redef meth replace_child(old_child: PNode, new_child: PNode)
5177 do
5178 assert old_child != null
5179 if _n_kwabort == old_child then
5180 if new_child != null then
5181 new_child.parent = self
5182 assert new_child isa TKwabort
5183 _n_kwabort = new_child
5184 else
5185 _n_kwabort = null
5186 end
5187 return
5188 end
5189 end
5190
5191 redef meth visit_all(v: Visitor)
5192 do
5193 if _n_kwabort != null then
5194 v.visit(_n_kwabort)
5195 end
5196 end
5197
5198 redef meth visit_all_reverse(v: Visitor)
5199 do
5200 if _n_kwabort != null then
5201 v.visit(_n_kwabort)
5202 end
5203 end
5204 end
5205 redef class AContinueExpr
5206 redef meth n_kwcontinue=(n: TKwcontinue)
5207 do
5208 _n_kwcontinue = n
5209 if n != null then
5210 n.parent = self
5211 end
5212 end
5213 redef meth n_expr=(n: PExpr)
5214 do
5215 _n_expr = n
5216 if n != null then
5217 n.parent = self
5218 end
5219 end
5220
5221 private init empty_init do end
5222
5223 init init_acontinueexpr (
5224 n_kwcontinue: TKwcontinue ,
5225 n_expr: PExpr
5226 )
5227 do
5228 empty_init
5229 _n_kwcontinue = n_kwcontinue
5230 if n_kwcontinue != null then
5231 n_kwcontinue.parent = self
5232 end
5233 _n_expr = n_expr
5234 if n_expr != null then
5235 n_expr.parent = self
5236 end
5237 end
5238
5239 redef meth replace_child(old_child: PNode, new_child: PNode)
5240 do
5241 assert old_child != null
5242 if _n_kwcontinue == old_child then
5243 if new_child != null then
5244 new_child.parent = self
5245 assert new_child isa TKwcontinue
5246 _n_kwcontinue = new_child
5247 else
5248 _n_kwcontinue = null
5249 end
5250 return
5251 end
5252 if _n_expr == old_child then
5253 if new_child != null then
5254 new_child.parent = self
5255 assert new_child isa PExpr
5256 _n_expr = new_child
5257 else
5258 _n_expr = null
5259 end
5260 return
5261 end
5262 end
5263
5264 redef meth visit_all(v: Visitor)
5265 do
5266 if _n_kwcontinue != null then
5267 v.visit(_n_kwcontinue)
5268 end
5269 if _n_expr != null then
5270 v.visit(_n_expr)
5271 end
5272 end
5273
5274 redef meth visit_all_reverse(v: Visitor)
5275 do
5276 if _n_kwcontinue != null then
5277 v.visit(_n_kwcontinue)
5278 end
5279 if _n_expr != null then
5280 v.visit(_n_expr)
5281 end
5282 end
5283 end
5284 redef class ADoExpr
5285 redef meth n_kwdo=(n: TKwdo)
5286 do
5287 _n_kwdo = n
5288 if n != null then
5289 n.parent = self
5290 end
5291 end
5292 redef meth n_block=(n: PExpr)
5293 do
5294 _n_block = n
5295 if n != null then
5296 n.parent = self
5297 end
5298 end
5299
5300 private init empty_init do end
5301
5302 init init_adoexpr (
5303 n_kwdo: TKwdo ,
5304 n_block: PExpr
5305 )
5306 do
5307 empty_init
5308 _n_kwdo = n_kwdo
5309 if n_kwdo != null then
5310 n_kwdo.parent = self
5311 end
5312 _n_block = n_block
5313 if n_block != null then
5314 n_block.parent = self
5315 end
5316 end
5317
5318 redef meth replace_child(old_child: PNode, new_child: PNode)
5319 do
5320 assert old_child != null
5321 if _n_kwdo == old_child then
5322 if new_child != null then
5323 new_child.parent = self
5324 assert new_child isa TKwdo
5325 _n_kwdo = new_child
5326 else
5327 _n_kwdo = null
5328 end
5329 return
5330 end
5331 if _n_block == old_child then
5332 if new_child != null then
5333 new_child.parent = self
5334 assert new_child isa PExpr
5335 _n_block = new_child
5336 else
5337 _n_block = null
5338 end
5339 return
5340 end
5341 end
5342
5343 redef meth visit_all(v: Visitor)
5344 do
5345 if _n_kwdo != null then
5346 v.visit(_n_kwdo)
5347 end
5348 if _n_block != null then
5349 v.visit(_n_block)
5350 end
5351 end
5352
5353 redef meth visit_all_reverse(v: Visitor)
5354 do
5355 if _n_kwdo != null then
5356 v.visit(_n_kwdo)
5357 end
5358 if _n_block != null then
5359 v.visit(_n_block)
5360 end
5361 end
5362 end
5363 redef class AIfExpr
5364 redef meth n_kwif=(n: TKwif)
5365 do
5366 _n_kwif = n
5367 if n != null then
5368 n.parent = self
5369 end
5370 end
5371 redef meth n_expr=(n: PExpr)
5372 do
5373 _n_expr = n
5374 if n != null then
5375 n.parent = self
5376 end
5377 end
5378 redef meth n_then=(n: PExpr)
5379 do
5380 _n_then = n
5381 if n != null then
5382 n.parent = self
5383 end
5384 end
5385 redef meth n_else=(n: PExpr)
5386 do
5387 _n_else = n
5388 if n != null then
5389 n.parent = self
5390 end
5391 end
5392
5393 private init empty_init do end
5394
5395 init init_aifexpr (
5396 n_kwif: TKwif ,
5397 n_expr: PExpr ,
5398 n_then: PExpr ,
5399 n_else: PExpr
5400 )
5401 do
5402 empty_init
5403 _n_kwif = n_kwif
5404 if n_kwif != null then
5405 n_kwif.parent = self
5406 end
5407 _n_expr = n_expr
5408 if n_expr != null then
5409 n_expr.parent = self
5410 end
5411 _n_then = n_then
5412 if n_then != null then
5413 n_then.parent = self
5414 end
5415 _n_else = n_else
5416 if n_else != null then
5417 n_else.parent = self
5418 end
5419 end
5420
5421 redef meth replace_child(old_child: PNode, new_child: PNode)
5422 do
5423 assert old_child != null
5424 if _n_kwif == old_child then
5425 if new_child != null then
5426 new_child.parent = self
5427 assert new_child isa TKwif
5428 _n_kwif = new_child
5429 else
5430 _n_kwif = null
5431 end
5432 return
5433 end
5434 if _n_expr == old_child then
5435 if new_child != null then
5436 new_child.parent = self
5437 assert new_child isa PExpr
5438 _n_expr = new_child
5439 else
5440 _n_expr = null
5441 end
5442 return
5443 end
5444 if _n_then == old_child then
5445 if new_child != null then
5446 new_child.parent = self
5447 assert new_child isa PExpr
5448 _n_then = new_child
5449 else
5450 _n_then = null
5451 end
5452 return
5453 end
5454 if _n_else == old_child then
5455 if new_child != null then
5456 new_child.parent = self
5457 assert new_child isa PExpr
5458 _n_else = new_child
5459 else
5460 _n_else = null
5461 end
5462 return
5463 end
5464 end
5465
5466 redef meth visit_all(v: Visitor)
5467 do
5468 if _n_kwif != null then
5469 v.visit(_n_kwif)
5470 end
5471 if _n_expr != null then
5472 v.visit(_n_expr)
5473 end
5474 if _n_then != null then
5475 v.visit(_n_then)
5476 end
5477 if _n_else != null then
5478 v.visit(_n_else)
5479 end
5480 end
5481
5482 redef meth visit_all_reverse(v: Visitor)
5483 do
5484 if _n_kwif != null then
5485 v.visit(_n_kwif)
5486 end
5487 if _n_expr != null then
5488 v.visit(_n_expr)
5489 end
5490 if _n_then != null then
5491 v.visit(_n_then)
5492 end
5493 if _n_else != null then
5494 v.visit(_n_else)
5495 end
5496 end
5497 end
5498 redef class AIfexprExpr
5499 redef meth n_kwif=(n: TKwif)
5500 do
5501 _n_kwif = n
5502 if n != null then
5503 n.parent = self
5504 end
5505 end
5506 redef meth n_expr=(n: PExpr)
5507 do
5508 _n_expr = n
5509 if n != null then
5510 n.parent = self
5511 end
5512 end
5513 redef meth n_kwthen=(n: TKwthen)
5514 do
5515 _n_kwthen = n
5516 if n != null then
5517 n.parent = self
5518 end
5519 end
5520 redef meth n_then=(n: PExpr)
5521 do
5522 _n_then = n
5523 if n != null then
5524 n.parent = self
5525 end
5526 end
5527 redef meth n_kwelse=(n: TKwelse)
5528 do
5529 _n_kwelse = n
5530 if n != null then
5531 n.parent = self
5532 end
5533 end
5534 redef meth n_else=(n: PExpr)
5535 do
5536 _n_else = n
5537 if n != null then
5538 n.parent = self
5539 end
5540 end
5541
5542 private init empty_init do end
5543
5544 init init_aifexprexpr (
5545 n_kwif: TKwif ,
5546 n_expr: PExpr ,
5547 n_kwthen: TKwthen ,
5548 n_then: PExpr ,
5549 n_kwelse: TKwelse ,
5550 n_else: PExpr
5551 )
5552 do
5553 empty_init
5554 _n_kwif = n_kwif
5555 if n_kwif != null then
5556 n_kwif.parent = self
5557 end
5558 _n_expr = n_expr
5559 if n_expr != null then
5560 n_expr.parent = self
5561 end
5562 _n_kwthen = n_kwthen
5563 if n_kwthen != null then
5564 n_kwthen.parent = self
5565 end
5566 _n_then = n_then
5567 if n_then != null then
5568 n_then.parent = self
5569 end
5570 _n_kwelse = n_kwelse
5571 if n_kwelse != null then
5572 n_kwelse.parent = self
5573 end
5574 _n_else = n_else
5575 if n_else != null then
5576 n_else.parent = self
5577 end
5578 end
5579
5580 redef meth replace_child(old_child: PNode, new_child: PNode)
5581 do
5582 assert old_child != null
5583 if _n_kwif == old_child then
5584 if new_child != null then
5585 new_child.parent = self
5586 assert new_child isa TKwif
5587 _n_kwif = new_child
5588 else
5589 _n_kwif = null
5590 end
5591 return
5592 end
5593 if _n_expr == old_child then
5594 if new_child != null then
5595 new_child.parent = self
5596 assert new_child isa PExpr
5597 _n_expr = new_child
5598 else
5599 _n_expr = null
5600 end
5601 return
5602 end
5603 if _n_kwthen == old_child then
5604 if new_child != null then
5605 new_child.parent = self
5606 assert new_child isa TKwthen
5607 _n_kwthen = new_child
5608 else
5609 _n_kwthen = null
5610 end
5611 return
5612 end
5613 if _n_then == old_child then
5614 if new_child != null then
5615 new_child.parent = self
5616 assert new_child isa PExpr
5617 _n_then = new_child
5618 else
5619 _n_then = null
5620 end
5621 return
5622 end
5623 if _n_kwelse == old_child then
5624 if new_child != null then
5625 new_child.parent = self
5626 assert new_child isa TKwelse
5627 _n_kwelse = new_child
5628 else
5629 _n_kwelse = null
5630 end
5631 return
5632 end
5633 if _n_else == old_child then
5634 if new_child != null then
5635 new_child.parent = self
5636 assert new_child isa PExpr
5637 _n_else = new_child
5638 else
5639 _n_else = null
5640 end
5641 return
5642 end
5643 end
5644
5645 redef meth visit_all(v: Visitor)
5646 do
5647 if _n_kwif != null then
5648 v.visit(_n_kwif)
5649 end
5650 if _n_expr != null then
5651 v.visit(_n_expr)
5652 end
5653 if _n_kwthen != null then
5654 v.visit(_n_kwthen)
5655 end
5656 if _n_then != null then
5657 v.visit(_n_then)
5658 end
5659 if _n_kwelse != null then
5660 v.visit(_n_kwelse)
5661 end
5662 if _n_else != null then
5663 v.visit(_n_else)
5664 end
5665 end
5666
5667 redef meth visit_all_reverse(v: Visitor)
5668 do
5669 if _n_kwif != null then
5670 v.visit(_n_kwif)
5671 end
5672 if _n_expr != null then
5673 v.visit(_n_expr)
5674 end
5675 if _n_kwthen != null then
5676 v.visit(_n_kwthen)
5677 end
5678 if _n_then != null then
5679 v.visit(_n_then)
5680 end
5681 if _n_kwelse != null then
5682 v.visit(_n_kwelse)
5683 end
5684 if _n_else != null then
5685 v.visit(_n_else)
5686 end
5687 end
5688 end
5689 redef class AWhileExpr
5690 redef meth n_kwwhile=(n: TKwwhile)
5691 do
5692 _n_kwwhile = n
5693 if n != null then
5694 n.parent = self
5695 end
5696 end
5697 redef meth n_expr=(n: PExpr)
5698 do
5699 _n_expr = n
5700 if n != null then
5701 n.parent = self
5702 end
5703 end
5704 redef meth n_kwdo=(n: TKwdo)
5705 do
5706 _n_kwdo = n
5707 if n != null then
5708 n.parent = self
5709 end
5710 end
5711 redef meth n_block=(n: PExpr)
5712 do
5713 _n_block = n
5714 if n != null then
5715 n.parent = self
5716 end
5717 end
5718
5719 private init empty_init do end
5720
5721 init init_awhileexpr (
5722 n_kwwhile: TKwwhile ,
5723 n_expr: PExpr ,
5724 n_kwdo: TKwdo ,
5725 n_block: PExpr
5726 )
5727 do
5728 empty_init
5729 _n_kwwhile = n_kwwhile
5730 if n_kwwhile != null then
5731 n_kwwhile.parent = self
5732 end
5733 _n_expr = n_expr
5734 if n_expr != null then
5735 n_expr.parent = self
5736 end
5737 _n_kwdo = n_kwdo
5738 if n_kwdo != null then
5739 n_kwdo.parent = self
5740 end
5741 _n_block = n_block
5742 if n_block != null then
5743 n_block.parent = self
5744 end
5745 end
5746
5747 redef meth replace_child(old_child: PNode, new_child: PNode)
5748 do
5749 assert old_child != null
5750 if _n_kwwhile == old_child then
5751 if new_child != null then
5752 new_child.parent = self
5753 assert new_child isa TKwwhile
5754 _n_kwwhile = new_child
5755 else
5756 _n_kwwhile = null
5757 end
5758 return
5759 end
5760 if _n_expr == old_child then
5761 if new_child != null then
5762 new_child.parent = self
5763 assert new_child isa PExpr
5764 _n_expr = new_child
5765 else
5766 _n_expr = null
5767 end
5768 return
5769 end
5770 if _n_kwdo == old_child then
5771 if new_child != null then
5772 new_child.parent = self
5773 assert new_child isa TKwdo
5774 _n_kwdo = new_child
5775 else
5776 _n_kwdo = null
5777 end
5778 return
5779 end
5780 if _n_block == old_child then
5781 if new_child != null then
5782 new_child.parent = self
5783 assert new_child isa PExpr
5784 _n_block = new_child
5785 else
5786 _n_block = null
5787 end
5788 return
5789 end
5790 end
5791
5792 redef meth visit_all(v: Visitor)
5793 do
5794 if _n_kwwhile != null then
5795 v.visit(_n_kwwhile)
5796 end
5797 if _n_expr != null then
5798 v.visit(_n_expr)
5799 end
5800 if _n_kwdo != null then
5801 v.visit(_n_kwdo)
5802 end
5803 if _n_block != null then
5804 v.visit(_n_block)
5805 end
5806 end
5807
5808 redef meth visit_all_reverse(v: Visitor)
5809 do
5810 if _n_kwwhile != null then
5811 v.visit(_n_kwwhile)
5812 end
5813 if _n_expr != null then
5814 v.visit(_n_expr)
5815 end
5816 if _n_kwdo != null then
5817 v.visit(_n_kwdo)
5818 end
5819 if _n_block != null then
5820 v.visit(_n_block)
5821 end
5822 end
5823 end
5824 redef class AForExpr
5825 redef meth n_kwfor=(n: TKwfor)
5826 do
5827 _n_kwfor = n
5828 if n != null then
5829 n.parent = self
5830 end
5831 end
5832 redef meth n_id=(n: TId)
5833 do
5834 _n_id = n
5835 if n != null then
5836 n.parent = self
5837 end
5838 end
5839 redef meth n_expr=(n: PExpr)
5840 do
5841 _n_expr = n
5842 if n != null then
5843 n.parent = self
5844 end
5845 end
5846 redef meth n_kwdo=(n: TKwdo)
5847 do
5848 _n_kwdo = n
5849 if n != null then
5850 n.parent = self
5851 end
5852 end
5853 redef meth n_block=(n: PExpr)
5854 do
5855 _n_block = n
5856 if n != null then
5857 n.parent = self
5858 end
5859 end
5860
5861 private init empty_init do end
5862
5863 init init_aforexpr (
5864 n_kwfor: TKwfor ,
5865 n_id: TId ,
5866 n_expr: PExpr ,
5867 n_kwdo: TKwdo ,
5868 n_block: PExpr
5869 )
5870 do
5871 empty_init
5872 _n_kwfor = n_kwfor
5873 if n_kwfor != null then
5874 n_kwfor.parent = self
5875 end
5876 _n_id = n_id
5877 if n_id != null then
5878 n_id.parent = self
5879 end
5880 _n_expr = n_expr
5881 if n_expr != null then
5882 n_expr.parent = self
5883 end
5884 _n_kwdo = n_kwdo
5885 if n_kwdo != null then
5886 n_kwdo.parent = self
5887 end
5888 _n_block = n_block
5889 if n_block != null then
5890 n_block.parent = self
5891 end
5892 end
5893
5894 redef meth replace_child(old_child: PNode, new_child: PNode)
5895 do
5896 assert old_child != null
5897 if _n_kwfor == old_child then
5898 if new_child != null then
5899 new_child.parent = self
5900 assert new_child isa TKwfor
5901 _n_kwfor = new_child
5902 else
5903 _n_kwfor = null
5904 end
5905 return
5906 end
5907 if _n_id == old_child then
5908 if new_child != null then
5909 new_child.parent = self
5910 assert new_child isa TId
5911 _n_id = new_child
5912 else
5913 _n_id = null
5914 end
5915 return
5916 end
5917 if _n_expr == old_child then
5918 if new_child != null then
5919 new_child.parent = self
5920 assert new_child isa PExpr
5921 _n_expr = new_child
5922 else
5923 _n_expr = null
5924 end
5925 return
5926 end
5927 if _n_kwdo == old_child then
5928 if new_child != null then
5929 new_child.parent = self
5930 assert new_child isa TKwdo
5931 _n_kwdo = new_child
5932 else
5933 _n_kwdo = null
5934 end
5935 return
5936 end
5937 if _n_block == old_child then
5938 if new_child != null then
5939 new_child.parent = self
5940 assert new_child isa PExpr
5941 _n_block = new_child
5942 else
5943 _n_block = null
5944 end
5945 return
5946 end
5947 end
5948
5949 redef meth visit_all(v: Visitor)
5950 do
5951 if _n_kwfor != null then
5952 v.visit(_n_kwfor)
5953 end
5954 if _n_id != null then
5955 v.visit(_n_id)
5956 end
5957 if _n_expr != null then
5958 v.visit(_n_expr)
5959 end
5960 if _n_kwdo != null then
5961 v.visit(_n_kwdo)
5962 end
5963 if _n_block != null then
5964 v.visit(_n_block)
5965 end
5966 end
5967
5968 redef meth visit_all_reverse(v: Visitor)
5969 do
5970 if _n_kwfor != null then
5971 v.visit(_n_kwfor)
5972 end
5973 if _n_id != null then
5974 v.visit(_n_id)
5975 end
5976 if _n_expr != null then
5977 v.visit(_n_expr)
5978 end
5979 if _n_kwdo != null then
5980 v.visit(_n_kwdo)
5981 end
5982 if _n_block != null then
5983 v.visit(_n_block)
5984 end
5985 end
5986 end
5987 redef class AAssertExpr
5988 redef meth n_kwassert=(n: TKwassert)
5989 do
5990 _n_kwassert = n
5991 if n != null then
5992 n.parent = self
5993 end
5994 end
5995 redef meth n_id=(n: TId)
5996 do
5997 _n_id = n
5998 if n != null then
5999 n.parent = self
6000 end
6001 end
6002 redef meth n_expr=(n: PExpr)
6003 do
6004 _n_expr = n
6005 if n != null then
6006 n.parent = self
6007 end
6008 end
6009
6010 private init empty_init do end
6011
6012 init init_aassertexpr (
6013 n_kwassert: TKwassert ,
6014 n_id: TId ,
6015 n_expr: PExpr
6016 )
6017 do
6018 empty_init
6019 _n_kwassert = n_kwassert
6020 if n_kwassert != null then
6021 n_kwassert.parent = self
6022 end
6023 _n_id = n_id
6024 if n_id != null then
6025 n_id.parent = self
6026 end
6027 _n_expr = n_expr
6028 if n_expr != null then
6029 n_expr.parent = self
6030 end
6031 end
6032
6033 redef meth replace_child(old_child: PNode, new_child: PNode)
6034 do
6035 assert old_child != null
6036 if _n_kwassert == old_child then
6037 if new_child != null then
6038 new_child.parent = self
6039 assert new_child isa TKwassert
6040 _n_kwassert = new_child
6041 else
6042 _n_kwassert = null
6043 end
6044 return
6045 end
6046 if _n_id == old_child then
6047 if new_child != null then
6048 new_child.parent = self
6049 assert new_child isa TId
6050 _n_id = new_child
6051 else
6052 _n_id = null
6053 end
6054 return
6055 end
6056 if _n_expr == old_child then
6057 if new_child != null then
6058 new_child.parent = self
6059 assert new_child isa PExpr
6060 _n_expr = new_child
6061 else
6062 _n_expr = null
6063 end
6064 return
6065 end
6066 end
6067
6068 redef meth visit_all(v: Visitor)
6069 do
6070 if _n_kwassert != null then
6071 v.visit(_n_kwassert)
6072 end
6073 if _n_id != null then
6074 v.visit(_n_id)
6075 end
6076 if _n_expr != null then
6077 v.visit(_n_expr)
6078 end
6079 end
6080
6081 redef meth visit_all_reverse(v: Visitor)
6082 do
6083 if _n_kwassert != null then
6084 v.visit(_n_kwassert)
6085 end
6086 if _n_id != null then
6087 v.visit(_n_id)
6088 end
6089 if _n_expr != null then
6090 v.visit(_n_expr)
6091 end
6092 end
6093 end
6094 redef class AOnceExpr
6095 redef meth n_kwonce=(n: TKwonce)
6096 do
6097 _n_kwonce = n
6098 if n != null then
6099 n.parent = self
6100 end
6101 end
6102 redef meth n_expr=(n: PExpr)
6103 do
6104 _n_expr = n
6105 if n != null then
6106 n.parent = self
6107 end
6108 end
6109
6110 private init empty_init do end
6111
6112 init init_aonceexpr (
6113 n_kwonce: TKwonce ,
6114 n_expr: PExpr
6115 )
6116 do
6117 empty_init
6118 _n_kwonce = n_kwonce
6119 if n_kwonce != null then
6120 n_kwonce.parent = self
6121 end
6122 _n_expr = n_expr
6123 if n_expr != null then
6124 n_expr.parent = self
6125 end
6126 end
6127
6128 redef meth replace_child(old_child: PNode, new_child: PNode)
6129 do
6130 assert old_child != null
6131 if _n_kwonce == old_child then
6132 if new_child != null then
6133 new_child.parent = self
6134 assert new_child isa TKwonce
6135 _n_kwonce = new_child
6136 else
6137 _n_kwonce = null
6138 end
6139 return
6140 end
6141 if _n_expr == old_child then
6142 if new_child != null then
6143 new_child.parent = self
6144 assert new_child isa PExpr
6145 _n_expr = new_child
6146 else
6147 _n_expr = null
6148 end
6149 return
6150 end
6151 end
6152
6153 redef meth visit_all(v: Visitor)
6154 do
6155 if _n_kwonce != null then
6156 v.visit(_n_kwonce)
6157 end
6158 if _n_expr != null then
6159 v.visit(_n_expr)
6160 end
6161 end
6162
6163 redef meth visit_all_reverse(v: Visitor)
6164 do
6165 if _n_kwonce != null then
6166 v.visit(_n_kwonce)
6167 end
6168 if _n_expr != null then
6169 v.visit(_n_expr)
6170 end
6171 end
6172 end
6173 redef class ASendExpr
6174 redef meth n_expr=(n: PExpr)
6175 do
6176 _n_expr = n
6177 if n != null then
6178 n.parent = self
6179 end
6180 end
6181
6182 private init empty_init do end
6183
6184 init init_asendexpr (
6185 n_expr: PExpr
6186 )
6187 do
6188 empty_init
6189 _n_expr = n_expr
6190 if n_expr != null then
6191 n_expr.parent = self
6192 end
6193 end
6194
6195 redef meth replace_child(old_child: PNode, new_child: PNode)
6196 do
6197 assert old_child != null
6198 if _n_expr == old_child then
6199 if new_child != null then
6200 new_child.parent = self
6201 assert new_child isa PExpr
6202 _n_expr = new_child
6203 else
6204 _n_expr = null
6205 end
6206 return
6207 end
6208 end
6209
6210 redef meth visit_all(v: Visitor)
6211 do
6212 if _n_expr != null then
6213 v.visit(_n_expr)
6214 end
6215 end
6216
6217 redef meth visit_all_reverse(v: Visitor)
6218 do
6219 if _n_expr != null then
6220 v.visit(_n_expr)
6221 end
6222 end
6223 end
6224 redef class ABinopExpr
6225 redef meth n_expr=(n: PExpr)
6226 do
6227 _n_expr = n
6228 if n != null then
6229 n.parent = self
6230 end
6231 end
6232 redef meth n_expr2=(n: PExpr)
6233 do
6234 _n_expr2 = n
6235 if n != null then
6236 n.parent = self
6237 end
6238 end
6239
6240 private init empty_init do end
6241
6242 init init_abinopexpr (
6243 n_expr: PExpr ,
6244 n_expr2: PExpr
6245 )
6246 do
6247 empty_init
6248 _n_expr = n_expr
6249 if n_expr != null then
6250 n_expr.parent = self
6251 end
6252 _n_expr2 = n_expr2
6253 if n_expr2 != null then
6254 n_expr2.parent = self
6255 end
6256 end
6257
6258 redef meth replace_child(old_child: PNode, new_child: PNode)
6259 do
6260 assert old_child != null
6261 if _n_expr == old_child then
6262 if new_child != null then
6263 new_child.parent = self
6264 assert new_child isa PExpr
6265 _n_expr = new_child
6266 else
6267 _n_expr = null
6268 end
6269 return
6270 end
6271 if _n_expr2 == old_child then
6272 if new_child != null then
6273 new_child.parent = self
6274 assert new_child isa PExpr
6275 _n_expr2 = new_child
6276 else
6277 _n_expr2 = null
6278 end
6279 return
6280 end
6281 end
6282
6283 redef meth visit_all(v: Visitor)
6284 do
6285 if _n_expr != null then
6286 v.visit(_n_expr)
6287 end
6288 if _n_expr2 != null then
6289 v.visit(_n_expr2)
6290 end
6291 end
6292
6293 redef meth visit_all_reverse(v: Visitor)
6294 do
6295 if _n_expr != null then
6296 v.visit(_n_expr)
6297 end
6298 if _n_expr2 != null then
6299 v.visit(_n_expr2)
6300 end
6301 end
6302 end
6303 redef class AOrExpr
6304 redef meth n_expr=(n: PExpr)
6305 do
6306 _n_expr = n
6307 if n != null then
6308 n.parent = self
6309 end
6310 end
6311 redef meth n_expr2=(n: PExpr)
6312 do
6313 _n_expr2 = n
6314 if n != null then
6315 n.parent = self
6316 end
6317 end
6318
6319 private init empty_init do end
6320
6321 init init_aorexpr (
6322 n_expr: PExpr ,
6323 n_expr2: PExpr
6324 )
6325 do
6326 empty_init
6327 _n_expr = n_expr
6328 if n_expr != null then
6329 n_expr.parent = self
6330 end
6331 _n_expr2 = n_expr2
6332 if n_expr2 != null then
6333 n_expr2.parent = self
6334 end
6335 end
6336
6337 redef meth replace_child(old_child: PNode, new_child: PNode)
6338 do
6339 assert old_child != null
6340 if _n_expr == old_child then
6341 if new_child != null then
6342 new_child.parent = self
6343 assert new_child isa PExpr
6344 _n_expr = new_child
6345 else
6346 _n_expr = null
6347 end
6348 return
6349 end
6350 if _n_expr2 == old_child then
6351 if new_child != null then
6352 new_child.parent = self
6353 assert new_child isa PExpr
6354 _n_expr2 = new_child
6355 else
6356 _n_expr2 = null
6357 end
6358 return
6359 end
6360 end
6361
6362 redef meth visit_all(v: Visitor)
6363 do
6364 if _n_expr != null then
6365 v.visit(_n_expr)
6366 end
6367 if _n_expr2 != null then
6368 v.visit(_n_expr2)
6369 end
6370 end
6371
6372 redef meth visit_all_reverse(v: Visitor)
6373 do
6374 if _n_expr != null then
6375 v.visit(_n_expr)
6376 end
6377 if _n_expr2 != null then
6378 v.visit(_n_expr2)
6379 end
6380 end
6381 end
6382 redef class AAndExpr
6383 redef meth n_expr=(n: PExpr)
6384 do
6385 _n_expr = n
6386 if n != null then
6387 n.parent = self
6388 end
6389 end
6390 redef meth n_expr2=(n: PExpr)
6391 do
6392 _n_expr2 = n
6393 if n != null then
6394 n.parent = self
6395 end
6396 end
6397
6398 private init empty_init do end
6399
6400 init init_aandexpr (
6401 n_expr: PExpr ,
6402 n_expr2: PExpr
6403 )
6404 do
6405 empty_init
6406 _n_expr = n_expr
6407 if n_expr != null then
6408 n_expr.parent = self
6409 end
6410 _n_expr2 = n_expr2
6411 if n_expr2 != null then
6412 n_expr2.parent = self
6413 end
6414 end
6415
6416 redef meth replace_child(old_child: PNode, new_child: PNode)
6417 do
6418 assert old_child != null
6419 if _n_expr == old_child then
6420 if new_child != null then
6421 new_child.parent = self
6422 assert new_child isa PExpr
6423 _n_expr = new_child
6424 else
6425 _n_expr = null
6426 end
6427 return
6428 end
6429 if _n_expr2 == old_child then
6430 if new_child != null then
6431 new_child.parent = self
6432 assert new_child isa PExpr
6433 _n_expr2 = new_child
6434 else
6435 _n_expr2 = null
6436 end
6437 return
6438 end
6439 end
6440
6441 redef meth visit_all(v: Visitor)
6442 do
6443 if _n_expr != null then
6444 v.visit(_n_expr)
6445 end
6446 if _n_expr2 != null then
6447 v.visit(_n_expr2)
6448 end
6449 end
6450
6451 redef meth visit_all_reverse(v: Visitor)
6452 do
6453 if _n_expr != null then
6454 v.visit(_n_expr)
6455 end
6456 if _n_expr2 != null then
6457 v.visit(_n_expr2)
6458 end
6459 end
6460 end
6461 redef class ANotExpr
6462 redef meth n_kwnot=(n: TKwnot)
6463 do
6464 _n_kwnot = n
6465 if n != null then
6466 n.parent = self
6467 end
6468 end
6469 redef meth n_expr=(n: PExpr)
6470 do
6471 _n_expr = n
6472 if n != null then
6473 n.parent = self
6474 end
6475 end
6476
6477 private init empty_init do end
6478
6479 init init_anotexpr (
6480 n_kwnot: TKwnot ,
6481 n_expr: PExpr
6482 )
6483 do
6484 empty_init
6485 _n_kwnot = n_kwnot
6486 if n_kwnot != null then
6487 n_kwnot.parent = self
6488 end
6489 _n_expr = n_expr
6490 if n_expr != null then
6491 n_expr.parent = self
6492 end
6493 end
6494
6495 redef meth replace_child(old_child: PNode, new_child: PNode)
6496 do
6497 assert old_child != null
6498 if _n_kwnot == old_child then
6499 if new_child != null then
6500 new_child.parent = self
6501 assert new_child isa TKwnot
6502 _n_kwnot = new_child
6503 else
6504 _n_kwnot = null
6505 end
6506 return
6507 end
6508 if _n_expr == old_child then
6509 if new_child != null then
6510 new_child.parent = self
6511 assert new_child isa PExpr
6512 _n_expr = new_child
6513 else
6514 _n_expr = null
6515 end
6516 return
6517 end
6518 end
6519
6520 redef meth visit_all(v: Visitor)
6521 do
6522 if _n_kwnot != null then
6523 v.visit(_n_kwnot)
6524 end
6525 if _n_expr != null then
6526 v.visit(_n_expr)
6527 end
6528 end
6529
6530 redef meth visit_all_reverse(v: Visitor)
6531 do
6532 if _n_kwnot != null then
6533 v.visit(_n_kwnot)
6534 end
6535 if _n_expr != null then
6536 v.visit(_n_expr)
6537 end
6538 end
6539 end
6540 redef class AEqExpr
6541 redef meth n_expr=(n: PExpr)
6542 do
6543 _n_expr = n
6544 if n != null then
6545 n.parent = self
6546 end
6547 end
6548 redef meth n_expr2=(n: PExpr)
6549 do
6550 _n_expr2 = n
6551 if n != null then
6552 n.parent = self
6553 end
6554 end
6555
6556 private init empty_init do end
6557
6558 init init_aeqexpr (
6559 n_expr: PExpr ,
6560 n_expr2: PExpr
6561 )
6562 do
6563 empty_init
6564 _n_expr = n_expr
6565 if n_expr != null then
6566 n_expr.parent = self
6567 end
6568 _n_expr2 = n_expr2
6569 if n_expr2 != null then
6570 n_expr2.parent = self
6571 end
6572 end
6573
6574 redef meth replace_child(old_child: PNode, new_child: PNode)
6575 do
6576 assert old_child != null
6577 if _n_expr == old_child then
6578 if new_child != null then
6579 new_child.parent = self
6580 assert new_child isa PExpr
6581 _n_expr = new_child
6582 else
6583 _n_expr = null
6584 end
6585 return
6586 end
6587 if _n_expr2 == old_child then
6588 if new_child != null then
6589 new_child.parent = self
6590 assert new_child isa PExpr
6591 _n_expr2 = new_child
6592 else
6593 _n_expr2 = null
6594 end
6595 return
6596 end
6597 end
6598
6599 redef meth visit_all(v: Visitor)
6600 do
6601 if _n_expr != null then
6602 v.visit(_n_expr)
6603 end
6604 if _n_expr2 != null then
6605 v.visit(_n_expr2)
6606 end
6607 end
6608
6609 redef meth visit_all_reverse(v: Visitor)
6610 do
6611 if _n_expr != null then
6612 v.visit(_n_expr)
6613 end
6614 if _n_expr2 != null then
6615 v.visit(_n_expr2)
6616 end
6617 end
6618 end
6619 redef class AEeExpr
6620 redef meth n_expr=(n: PExpr)
6621 do
6622 _n_expr = n
6623 if n != null then
6624 n.parent = self
6625 end
6626 end
6627 redef meth n_expr2=(n: PExpr)
6628 do
6629 _n_expr2 = n
6630 if n != null then
6631 n.parent = self
6632 end
6633 end
6634
6635 private init empty_init do end
6636
6637 init init_aeeexpr (
6638 n_expr: PExpr ,
6639 n_expr2: PExpr
6640 )
6641 do
6642 empty_init
6643 _n_expr = n_expr
6644 if n_expr != null then
6645 n_expr.parent = self
6646 end
6647 _n_expr2 = n_expr2
6648 if n_expr2 != null then
6649 n_expr2.parent = self
6650 end
6651 end
6652
6653 redef meth replace_child(old_child: PNode, new_child: PNode)
6654 do
6655 assert old_child != null
6656 if _n_expr == old_child then
6657 if new_child != null then
6658 new_child.parent = self
6659 assert new_child isa PExpr
6660 _n_expr = new_child
6661 else
6662 _n_expr = null
6663 end
6664 return
6665 end
6666 if _n_expr2 == old_child then
6667 if new_child != null then
6668 new_child.parent = self
6669 assert new_child isa PExpr
6670 _n_expr2 = new_child
6671 else
6672 _n_expr2 = null
6673 end
6674 return
6675 end
6676 end
6677
6678 redef meth visit_all(v: Visitor)
6679 do
6680 if _n_expr != null then
6681 v.visit(_n_expr)
6682 end
6683 if _n_expr2 != null then
6684 v.visit(_n_expr2)
6685 end
6686 end
6687
6688 redef meth visit_all_reverse(v: Visitor)
6689 do
6690 if _n_expr != null then
6691 v.visit(_n_expr)
6692 end
6693 if _n_expr2 != null then
6694 v.visit(_n_expr2)
6695 end
6696 end
6697 end
6698 redef class ANeExpr
6699 redef meth n_expr=(n: PExpr)
6700 do
6701 _n_expr = n
6702 if n != null then
6703 n.parent = self
6704 end
6705 end
6706 redef meth n_expr2=(n: PExpr)
6707 do
6708 _n_expr2 = n
6709 if n != null then
6710 n.parent = self
6711 end
6712 end
6713
6714 private init empty_init do end
6715
6716 init init_aneexpr (
6717 n_expr: PExpr ,
6718 n_expr2: PExpr
6719 )
6720 do
6721 empty_init
6722 _n_expr = n_expr
6723 if n_expr != null then
6724 n_expr.parent = self
6725 end
6726 _n_expr2 = n_expr2
6727 if n_expr2 != null then
6728 n_expr2.parent = self
6729 end
6730 end
6731
6732 redef meth replace_child(old_child: PNode, new_child: PNode)
6733 do
6734 assert old_child != null
6735 if _n_expr == old_child then
6736 if new_child != null then
6737 new_child.parent = self
6738 assert new_child isa PExpr
6739 _n_expr = new_child
6740 else
6741 _n_expr = null
6742 end
6743 return
6744 end
6745 if _n_expr2 == old_child then
6746 if new_child != null then
6747 new_child.parent = self
6748 assert new_child isa PExpr
6749 _n_expr2 = new_child
6750 else
6751 _n_expr2 = null
6752 end
6753 return
6754 end
6755 end
6756
6757 redef meth visit_all(v: Visitor)
6758 do
6759 if _n_expr != null then
6760 v.visit(_n_expr)
6761 end
6762 if _n_expr2 != null then
6763 v.visit(_n_expr2)
6764 end
6765 end
6766
6767 redef meth visit_all_reverse(v: Visitor)
6768 do
6769 if _n_expr != null then
6770 v.visit(_n_expr)
6771 end
6772 if _n_expr2 != null then
6773 v.visit(_n_expr2)
6774 end
6775 end
6776 end
6777 redef class ALtExpr
6778 redef meth n_expr=(n: PExpr)
6779 do
6780 _n_expr = n
6781 if n != null then
6782 n.parent = self
6783 end
6784 end
6785 redef meth n_expr2=(n: PExpr)
6786 do
6787 _n_expr2 = n
6788 if n != null then
6789 n.parent = self
6790 end
6791 end
6792
6793 private init empty_init do end
6794
6795 init init_altexpr (
6796 n_expr: PExpr ,
6797 n_expr2: PExpr
6798 )
6799 do
6800 empty_init
6801 _n_expr = n_expr
6802 if n_expr != null then
6803 n_expr.parent = self
6804 end
6805 _n_expr2 = n_expr2
6806 if n_expr2 != null then
6807 n_expr2.parent = self
6808 end
6809 end
6810
6811 redef meth replace_child(old_child: PNode, new_child: PNode)
6812 do
6813 assert old_child != null
6814 if _n_expr == old_child then
6815 if new_child != null then
6816 new_child.parent = self
6817 assert new_child isa PExpr
6818 _n_expr = new_child
6819 else
6820 _n_expr = null
6821 end
6822 return
6823 end
6824 if _n_expr2 == old_child then
6825 if new_child != null then
6826 new_child.parent = self
6827 assert new_child isa PExpr
6828 _n_expr2 = new_child
6829 else
6830 _n_expr2 = null
6831 end
6832 return
6833 end
6834 end
6835
6836 redef meth visit_all(v: Visitor)
6837 do
6838 if _n_expr != null then
6839 v.visit(_n_expr)
6840 end
6841 if _n_expr2 != null then
6842 v.visit(_n_expr2)
6843 end
6844 end
6845
6846 redef meth visit_all_reverse(v: Visitor)
6847 do
6848 if _n_expr != null then
6849 v.visit(_n_expr)
6850 end
6851 if _n_expr2 != null then
6852 v.visit(_n_expr2)
6853 end
6854 end
6855 end
6856 redef class ALeExpr
6857 redef meth n_expr=(n: PExpr)
6858 do
6859 _n_expr = n
6860 if n != null then
6861 n.parent = self
6862 end
6863 end
6864 redef meth n_expr2=(n: PExpr)
6865 do
6866 _n_expr2 = n
6867 if n != null then
6868 n.parent = self
6869 end
6870 end
6871
6872 private init empty_init do end
6873
6874 init init_aleexpr (
6875 n_expr: PExpr ,
6876 n_expr2: PExpr
6877 )
6878 do
6879 empty_init
6880 _n_expr = n_expr
6881 if n_expr != null then
6882 n_expr.parent = self
6883 end
6884 _n_expr2 = n_expr2
6885 if n_expr2 != null then
6886 n_expr2.parent = self
6887 end
6888 end
6889
6890 redef meth replace_child(old_child: PNode, new_child: PNode)
6891 do
6892 assert old_child != null
6893 if _n_expr == old_child then
6894 if new_child != null then
6895 new_child.parent = self
6896 assert new_child isa PExpr
6897 _n_expr = new_child
6898 else
6899 _n_expr = null
6900 end
6901 return
6902 end
6903 if _n_expr2 == old_child then
6904 if new_child != null then
6905 new_child.parent = self
6906 assert new_child isa PExpr
6907 _n_expr2 = new_child
6908 else
6909 _n_expr2 = null
6910 end
6911 return
6912 end
6913 end
6914
6915 redef meth visit_all(v: Visitor)
6916 do
6917 if _n_expr != null then
6918 v.visit(_n_expr)
6919 end
6920 if _n_expr2 != null then
6921 v.visit(_n_expr2)
6922 end
6923 end
6924
6925 redef meth visit_all_reverse(v: Visitor)
6926 do
6927 if _n_expr != null then
6928 v.visit(_n_expr)
6929 end
6930 if _n_expr2 != null then
6931 v.visit(_n_expr2)
6932 end
6933 end
6934 end
6935 redef class AGtExpr
6936 redef meth n_expr=(n: PExpr)
6937 do
6938 _n_expr = n
6939 if n != null then
6940 n.parent = self
6941 end
6942 end
6943 redef meth n_expr2=(n: PExpr)
6944 do
6945 _n_expr2 = n
6946 if n != null then
6947 n.parent = self
6948 end
6949 end
6950
6951 private init empty_init do end
6952
6953 init init_agtexpr (
6954 n_expr: PExpr ,
6955 n_expr2: PExpr
6956 )
6957 do
6958 empty_init
6959 _n_expr = n_expr
6960 if n_expr != null then
6961 n_expr.parent = self
6962 end
6963 _n_expr2 = n_expr2
6964 if n_expr2 != null then
6965 n_expr2.parent = self
6966 end
6967 end
6968
6969 redef meth replace_child(old_child: PNode, new_child: PNode)
6970 do
6971 assert old_child != null
6972 if _n_expr == old_child then
6973 if new_child != null then
6974 new_child.parent = self
6975 assert new_child isa PExpr
6976 _n_expr = new_child
6977 else
6978 _n_expr = null
6979 end
6980 return
6981 end
6982 if _n_expr2 == old_child then
6983 if new_child != null then
6984 new_child.parent = self
6985 assert new_child isa PExpr
6986 _n_expr2 = new_child
6987 else
6988 _n_expr2 = null
6989 end
6990 return
6991 end
6992 end
6993
6994 redef meth visit_all(v: Visitor)
6995 do
6996 if _n_expr != null then
6997 v.visit(_n_expr)
6998 end
6999 if _n_expr2 != null then
7000 v.visit(_n_expr2)
7001 end
7002 end
7003
7004 redef meth visit_all_reverse(v: Visitor)
7005 do
7006 if _n_expr != null then
7007 v.visit(_n_expr)
7008 end
7009 if _n_expr2 != null then
7010 v.visit(_n_expr2)
7011 end
7012 end
7013 end
7014 redef class AGeExpr
7015 redef meth n_expr=(n: PExpr)
7016 do
7017 _n_expr = n
7018 if n != null then
7019 n.parent = self
7020 end
7021 end
7022 redef meth n_expr2=(n: PExpr)
7023 do
7024 _n_expr2 = n
7025 if n != null then
7026 n.parent = self
7027 end
7028 end
7029
7030 private init empty_init do end
7031
7032 init init_ageexpr (
7033 n_expr: PExpr ,
7034 n_expr2: PExpr
7035 )
7036 do
7037 empty_init
7038 _n_expr = n_expr
7039 if n_expr != null then
7040 n_expr.parent = self
7041 end
7042 _n_expr2 = n_expr2
7043 if n_expr2 != null then
7044 n_expr2.parent = self
7045 end
7046 end
7047
7048 redef meth replace_child(old_child: PNode, new_child: PNode)
7049 do
7050 assert old_child != null
7051 if _n_expr == old_child then
7052 if new_child != null then
7053 new_child.parent = self
7054 assert new_child isa PExpr
7055 _n_expr = new_child
7056 else
7057 _n_expr = null
7058 end
7059 return
7060 end
7061 if _n_expr2 == old_child then
7062 if new_child != null then
7063 new_child.parent = self
7064 assert new_child isa PExpr
7065 _n_expr2 = new_child
7066 else
7067 _n_expr2 = null
7068 end
7069 return
7070 end
7071 end
7072
7073 redef meth visit_all(v: Visitor)
7074 do
7075 if _n_expr != null then
7076 v.visit(_n_expr)
7077 end
7078 if _n_expr2 != null then
7079 v.visit(_n_expr2)
7080 end
7081 end
7082
7083 redef meth visit_all_reverse(v: Visitor)
7084 do
7085 if _n_expr != null then
7086 v.visit(_n_expr)
7087 end
7088 if _n_expr2 != null then
7089 v.visit(_n_expr2)
7090 end
7091 end
7092 end
7093 redef class AIsaExpr
7094 redef meth n_expr=(n: PExpr)
7095 do
7096 _n_expr = n
7097 if n != null then
7098 n.parent = self
7099 end
7100 end
7101 redef meth n_type=(n: PType)
7102 do
7103 _n_type = n
7104 if n != null then
7105 n.parent = self
7106 end
7107 end
7108
7109 private init empty_init do end
7110
7111 init init_aisaexpr (
7112 n_expr: PExpr ,
7113 n_type: PType
7114 )
7115 do
7116 empty_init
7117 _n_expr = n_expr
7118 if n_expr != null then
7119 n_expr.parent = self
7120 end
7121 _n_type = n_type
7122 if n_type != null then
7123 n_type.parent = self
7124 end
7125 end
7126
7127 redef meth replace_child(old_child: PNode, new_child: PNode)
7128 do
7129 assert old_child != null
7130 if _n_expr == old_child then
7131 if new_child != null then
7132 new_child.parent = self
7133 assert new_child isa PExpr
7134 _n_expr = new_child
7135 else
7136 _n_expr = null
7137 end
7138 return
7139 end
7140 if _n_type == old_child then
7141 if new_child != null then
7142 new_child.parent = self
7143 assert new_child isa PType
7144 _n_type = new_child
7145 else
7146 _n_type = null
7147 end
7148 return
7149 end
7150 end
7151
7152 redef meth visit_all(v: Visitor)
7153 do
7154 if _n_expr != null then
7155 v.visit(_n_expr)
7156 end
7157 if _n_type != null then
7158 v.visit(_n_type)
7159 end
7160 end
7161
7162 redef meth visit_all_reverse(v: Visitor)
7163 do
7164 if _n_expr != null then
7165 v.visit(_n_expr)
7166 end
7167 if _n_type != null then
7168 v.visit(_n_type)
7169 end
7170 end
7171 end
7172 redef class APlusExpr
7173 redef meth n_expr=(n: PExpr)
7174 do
7175 _n_expr = n
7176 if n != null then
7177 n.parent = self
7178 end
7179 end
7180 redef meth n_expr2=(n: PExpr)
7181 do
7182 _n_expr2 = n
7183 if n != null then
7184 n.parent = self
7185 end
7186 end
7187
7188 private init empty_init do end
7189
7190 init init_aplusexpr (
7191 n_expr: PExpr ,
7192 n_expr2: PExpr
7193 )
7194 do
7195 empty_init
7196 _n_expr = n_expr
7197 if n_expr != null then
7198 n_expr.parent = self
7199 end
7200 _n_expr2 = n_expr2
7201 if n_expr2 != null then
7202 n_expr2.parent = self
7203 end
7204 end
7205
7206 redef meth replace_child(old_child: PNode, new_child: PNode)
7207 do
7208 assert old_child != null
7209 if _n_expr == old_child then
7210 if new_child != null then
7211 new_child.parent = self
7212 assert new_child isa PExpr
7213 _n_expr = new_child
7214 else
7215 _n_expr = null
7216 end
7217 return
7218 end
7219 if _n_expr2 == old_child then
7220 if new_child != null then
7221 new_child.parent = self
7222 assert new_child isa PExpr
7223 _n_expr2 = new_child
7224 else
7225 _n_expr2 = null
7226 end
7227 return
7228 end
7229 end
7230
7231 redef meth visit_all(v: Visitor)
7232 do
7233 if _n_expr != null then
7234 v.visit(_n_expr)
7235 end
7236 if _n_expr2 != null then
7237 v.visit(_n_expr2)
7238 end
7239 end
7240
7241 redef meth visit_all_reverse(v: Visitor)
7242 do
7243 if _n_expr != null then
7244 v.visit(_n_expr)
7245 end
7246 if _n_expr2 != null then
7247 v.visit(_n_expr2)
7248 end
7249 end
7250 end
7251 redef class AMinusExpr
7252 redef meth n_expr=(n: PExpr)
7253 do
7254 _n_expr = n
7255 if n != null then
7256 n.parent = self
7257 end
7258 end
7259 redef meth n_expr2=(n: PExpr)
7260 do
7261 _n_expr2 = n
7262 if n != null then
7263 n.parent = self
7264 end
7265 end
7266
7267 private init empty_init do end
7268
7269 init init_aminusexpr (
7270 n_expr: PExpr ,
7271 n_expr2: PExpr
7272 )
7273 do
7274 empty_init
7275 _n_expr = n_expr
7276 if n_expr != null then
7277 n_expr.parent = self
7278 end
7279 _n_expr2 = n_expr2
7280 if n_expr2 != null then
7281 n_expr2.parent = self
7282 end
7283 end
7284
7285 redef meth replace_child(old_child: PNode, new_child: PNode)
7286 do
7287 assert old_child != null
7288 if _n_expr == old_child then
7289 if new_child != null then
7290 new_child.parent = self
7291 assert new_child isa PExpr
7292 _n_expr = new_child
7293 else
7294 _n_expr = null
7295 end
7296 return
7297 end
7298 if _n_expr2 == old_child then
7299 if new_child != null then
7300 new_child.parent = self
7301 assert new_child isa PExpr
7302 _n_expr2 = new_child
7303 else
7304 _n_expr2 = null
7305 end
7306 return
7307 end
7308 end
7309
7310 redef meth visit_all(v: Visitor)
7311 do
7312 if _n_expr != null then
7313 v.visit(_n_expr)
7314 end
7315 if _n_expr2 != null then
7316 v.visit(_n_expr2)
7317 end
7318 end
7319
7320 redef meth visit_all_reverse(v: Visitor)
7321 do
7322 if _n_expr != null then
7323 v.visit(_n_expr)
7324 end
7325 if _n_expr2 != null then
7326 v.visit(_n_expr2)
7327 end
7328 end
7329 end
7330 redef class AStarshipExpr
7331 redef meth n_expr=(n: PExpr)
7332 do
7333 _n_expr = n
7334 if n != null then
7335 n.parent = self
7336 end
7337 end
7338 redef meth n_expr2=(n: PExpr)
7339 do
7340 _n_expr2 = n
7341 if n != null then
7342 n.parent = self
7343 end
7344 end
7345
7346 private init empty_init do end
7347
7348 init init_astarshipexpr (
7349 n_expr: PExpr ,
7350 n_expr2: PExpr
7351 )
7352 do
7353 empty_init
7354 _n_expr = n_expr
7355 if n_expr != null then
7356 n_expr.parent = self
7357 end
7358 _n_expr2 = n_expr2
7359 if n_expr2 != null then
7360 n_expr2.parent = self
7361 end
7362 end
7363
7364 redef meth replace_child(old_child: PNode, new_child: PNode)
7365 do
7366 assert old_child != null
7367 if _n_expr == old_child then
7368 if new_child != null then
7369 new_child.parent = self
7370 assert new_child isa PExpr
7371 _n_expr = new_child
7372 else
7373 _n_expr = null
7374 end
7375 return
7376 end
7377 if _n_expr2 == old_child then
7378 if new_child != null then
7379 new_child.parent = self
7380 assert new_child isa PExpr
7381 _n_expr2 = new_child
7382 else
7383 _n_expr2 = null
7384 end
7385 return
7386 end
7387 end
7388
7389 redef meth visit_all(v: Visitor)
7390 do
7391 if _n_expr != null then
7392 v.visit(_n_expr)
7393 end
7394 if _n_expr2 != null then
7395 v.visit(_n_expr2)
7396 end
7397 end
7398
7399 redef meth visit_all_reverse(v: Visitor)
7400 do
7401 if _n_expr != null then
7402 v.visit(_n_expr)
7403 end
7404 if _n_expr2 != null then
7405 v.visit(_n_expr2)
7406 end
7407 end
7408 end
7409 redef class AStarExpr
7410 redef meth n_expr=(n: PExpr)
7411 do
7412 _n_expr = n
7413 if n != null then
7414 n.parent = self
7415 end
7416 end
7417 redef meth n_expr2=(n: PExpr)
7418 do
7419 _n_expr2 = n
7420 if n != null then
7421 n.parent = self
7422 end
7423 end
7424
7425 private init empty_init do end
7426
7427 init init_astarexpr (
7428 n_expr: PExpr ,
7429 n_expr2: PExpr
7430 )
7431 do
7432 empty_init
7433 _n_expr = n_expr
7434 if n_expr != null then
7435 n_expr.parent = self
7436 end
7437 _n_expr2 = n_expr2
7438 if n_expr2 != null then
7439 n_expr2.parent = self
7440 end
7441 end
7442
7443 redef meth replace_child(old_child: PNode, new_child: PNode)
7444 do
7445 assert old_child != null
7446 if _n_expr == old_child then
7447 if new_child != null then
7448 new_child.parent = self
7449 assert new_child isa PExpr
7450 _n_expr = new_child
7451 else
7452 _n_expr = null
7453 end
7454 return
7455 end
7456 if _n_expr2 == old_child then
7457 if new_child != null then
7458 new_child.parent = self
7459 assert new_child isa PExpr
7460 _n_expr2 = new_child
7461 else
7462 _n_expr2 = null
7463 end
7464 return
7465 end
7466 end
7467
7468 redef meth visit_all(v: Visitor)
7469 do
7470 if _n_expr != null then
7471 v.visit(_n_expr)
7472 end
7473 if _n_expr2 != null then
7474 v.visit(_n_expr2)
7475 end
7476 end
7477
7478 redef meth visit_all_reverse(v: Visitor)
7479 do
7480 if _n_expr != null then
7481 v.visit(_n_expr)
7482 end
7483 if _n_expr2 != null then
7484 v.visit(_n_expr2)
7485 end
7486 end
7487 end
7488 redef class ASlashExpr
7489 redef meth n_expr=(n: PExpr)
7490 do
7491 _n_expr = n
7492 if n != null then
7493 n.parent = self
7494 end
7495 end
7496 redef meth n_expr2=(n: PExpr)
7497 do
7498 _n_expr2 = n
7499 if n != null then
7500 n.parent = self
7501 end
7502 end
7503
7504 private init empty_init do end
7505
7506 init init_aslashexpr (
7507 n_expr: PExpr ,
7508 n_expr2: PExpr
7509 )
7510 do
7511 empty_init
7512 _n_expr = n_expr
7513 if n_expr != null then
7514 n_expr.parent = self
7515 end
7516 _n_expr2 = n_expr2
7517 if n_expr2 != null then
7518 n_expr2.parent = self
7519 end
7520 end
7521
7522 redef meth replace_child(old_child: PNode, new_child: PNode)
7523 do
7524 assert old_child != null
7525 if _n_expr == old_child then
7526 if new_child != null then
7527 new_child.parent = self
7528 assert new_child isa PExpr
7529 _n_expr = new_child
7530 else
7531 _n_expr = null
7532 end
7533 return
7534 end
7535 if _n_expr2 == old_child then
7536 if new_child != null then
7537 new_child.parent = self
7538 assert new_child isa PExpr
7539 _n_expr2 = new_child
7540 else
7541 _n_expr2 = null
7542 end
7543 return
7544 end
7545 end
7546
7547 redef meth visit_all(v: Visitor)
7548 do
7549 if _n_expr != null then
7550 v.visit(_n_expr)
7551 end
7552 if _n_expr2 != null then
7553 v.visit(_n_expr2)
7554 end
7555 end
7556
7557 redef meth visit_all_reverse(v: Visitor)
7558 do
7559 if _n_expr != null then
7560 v.visit(_n_expr)
7561 end
7562 if _n_expr2 != null then
7563 v.visit(_n_expr2)
7564 end
7565 end
7566 end
7567 redef class APercentExpr
7568 redef meth n_expr=(n: PExpr)
7569 do
7570 _n_expr = n
7571 if n != null then
7572 n.parent = self
7573 end
7574 end
7575 redef meth n_expr2=(n: PExpr)
7576 do
7577 _n_expr2 = n
7578 if n != null then
7579 n.parent = self
7580 end
7581 end
7582
7583 private init empty_init do end
7584
7585 init init_apercentexpr (
7586 n_expr: PExpr ,
7587 n_expr2: PExpr
7588 )
7589 do
7590 empty_init
7591 _n_expr = n_expr
7592 if n_expr != null then
7593 n_expr.parent = self
7594 end
7595 _n_expr2 = n_expr2
7596 if n_expr2 != null then
7597 n_expr2.parent = self
7598 end
7599 end
7600
7601 redef meth replace_child(old_child: PNode, new_child: PNode)
7602 do
7603 assert old_child != null
7604 if _n_expr == old_child then
7605 if new_child != null then
7606 new_child.parent = self
7607 assert new_child isa PExpr
7608 _n_expr = new_child
7609 else
7610 _n_expr = null
7611 end
7612 return
7613 end
7614 if _n_expr2 == old_child then
7615 if new_child != null then
7616 new_child.parent = self
7617 assert new_child isa PExpr
7618 _n_expr2 = new_child
7619 else
7620 _n_expr2 = null
7621 end
7622 return
7623 end
7624 end
7625
7626 redef meth visit_all(v: Visitor)
7627 do
7628 if _n_expr != null then
7629 v.visit(_n_expr)
7630 end
7631 if _n_expr2 != null then
7632 v.visit(_n_expr2)
7633 end
7634 end
7635
7636 redef meth visit_all_reverse(v: Visitor)
7637 do
7638 if _n_expr != null then
7639 v.visit(_n_expr)
7640 end
7641 if _n_expr2 != null then
7642 v.visit(_n_expr2)
7643 end
7644 end
7645 end
7646 redef class AUminusExpr
7647 redef meth n_minus=(n: TMinus)
7648 do
7649 _n_minus = n
7650 if n != null then
7651 n.parent = self
7652 end
7653 end
7654 redef meth n_expr=(n: PExpr)
7655 do
7656 _n_expr = n
7657 if n != null then
7658 n.parent = self
7659 end
7660 end
7661
7662 private init empty_init do end
7663
7664 init init_auminusexpr (
7665 n_minus: TMinus ,
7666 n_expr: PExpr
7667 )
7668 do
7669 empty_init
7670 _n_minus = n_minus
7671 if n_minus != null then
7672 n_minus.parent = self
7673 end
7674 _n_expr = n_expr
7675 if n_expr != null then
7676 n_expr.parent = self
7677 end
7678 end
7679
7680 redef meth replace_child(old_child: PNode, new_child: PNode)
7681 do
7682 assert old_child != null
7683 if _n_minus == old_child then
7684 if new_child != null then
7685 new_child.parent = self
7686 assert new_child isa TMinus
7687 _n_minus = new_child
7688 else
7689 _n_minus = null
7690 end
7691 return
7692 end
7693 if _n_expr == old_child then
7694 if new_child != null then
7695 new_child.parent = self
7696 assert new_child isa PExpr
7697 _n_expr = new_child
7698 else
7699 _n_expr = null
7700 end
7701 return
7702 end
7703 end
7704
7705 redef meth visit_all(v: Visitor)
7706 do
7707 if _n_minus != null then
7708 v.visit(_n_minus)
7709 end
7710 if _n_expr != null then
7711 v.visit(_n_expr)
7712 end
7713 end
7714
7715 redef meth visit_all_reverse(v: Visitor)
7716 do
7717 if _n_minus != null then
7718 v.visit(_n_minus)
7719 end
7720 if _n_expr != null then
7721 v.visit(_n_expr)
7722 end
7723 end
7724 end
7725 redef class ANewExpr
7726 redef meth n_kwnew=(n: TKwnew)
7727 do
7728 _n_kwnew = n
7729 if n != null then
7730 n.parent = self
7731 end
7732 end
7733 redef meth n_type=(n: PType)
7734 do
7735 _n_type = n
7736 if n != null then
7737 n.parent = self
7738 end
7739 end
7740 redef meth n_id=(n: TId)
7741 do
7742 _n_id = n
7743 if n != null then
7744 n.parent = self
7745 end
7746 end
7747
7748 private init empty_init do end
7749
7750 init init_anewexpr (
7751 n_kwnew: TKwnew ,
7752 n_type: PType ,
7753 n_id: TId ,
7754 n_args: Collection[Object] # Should be Collection[PExpr]
7755 )
7756 do
7757 empty_init
7758 _n_kwnew = n_kwnew
7759 if n_kwnew != null then
7760 n_kwnew.parent = self
7761 end
7762 _n_type = n_type
7763 if n_type != null then
7764 n_type.parent = self
7765 end
7766 _n_id = n_id
7767 if n_id != null then
7768 n_id.parent = self
7769 end
7770 _n_args = new List[PExpr]
7771 for n in n_args do
7772 assert n isa PExpr
7773 _n_args.add(n)
7774 n.parent = self
7775 end
7776 end
7777
7778 redef meth replace_child(old_child: PNode, new_child: PNode)
7779 do
7780 assert old_child != null
7781 if _n_kwnew == old_child then
7782 if new_child != null then
7783 new_child.parent = self
7784 assert new_child isa TKwnew
7785 _n_kwnew = new_child
7786 else
7787 _n_kwnew = null
7788 end
7789 return
7790 end
7791 if _n_type == old_child then
7792 if new_child != null then
7793 new_child.parent = self
7794 assert new_child isa PType
7795 _n_type = new_child
7796 else
7797 _n_type = null
7798 end
7799 return
7800 end
7801 if _n_id == old_child then
7802 if new_child != null then
7803 new_child.parent = self
7804 assert new_child isa TId
7805 _n_id = new_child
7806 else
7807 _n_id = null
7808 end
7809 return
7810 end
7811 for i in [0.._n_args.length[ do
7812 if _n_args[i] == old_child then
7813 if new_child != null then
7814 assert new_child isa PExpr
7815 _n_args[i] = new_child
7816 new_child.parent = self
7817 else
7818 _n_args.remove_at(i)
7819 end
7820 return
7821 end
7822 end
7823 end
7824
7825 redef meth visit_all(v: Visitor)
7826 do
7827 if _n_kwnew != null then
7828 v.visit(_n_kwnew)
7829 end
7830 if _n_type != null then
7831 v.visit(_n_type)
7832 end
7833 if _n_id != null then
7834 v.visit(_n_id)
7835 end
7836 for n in _n_args do
7837 v.visit(n)
7838 end
7839 end
7840
7841 redef meth visit_all_reverse(v: Visitor)
7842 do
7843 if _n_kwnew != null then
7844 v.visit(_n_kwnew)
7845 end
7846 if _n_type != null then
7847 v.visit(_n_type)
7848 end
7849 if _n_id != null then
7850 v.visit(_n_id)
7851 end
7852 do
7853 var i = _n_args.length
7854 while i >= 0 do
7855 v.visit(_n_args[i])
7856 i = i - 1
7857 end
7858 end
7859 end
7860 end
7861 redef class AAttrExpr
7862 redef meth n_expr=(n: PExpr)
7863 do
7864 _n_expr = n
7865 if n != null then
7866 n.parent = self
7867 end
7868 end
7869 redef meth n_id=(n: TAttrid)
7870 do
7871 _n_id = n
7872 if n != null then
7873 n.parent = self
7874 end
7875 end
7876
7877 private init empty_init do end
7878
7879 init init_aattrexpr (
7880 n_expr: PExpr ,
7881 n_id: TAttrid
7882 )
7883 do
7884 empty_init
7885 _n_expr = n_expr
7886 if n_expr != null then
7887 n_expr.parent = self
7888 end
7889 _n_id = n_id
7890 if n_id != null then
7891 n_id.parent = self
7892 end
7893 end
7894
7895 redef meth replace_child(old_child: PNode, new_child: PNode)
7896 do
7897 assert old_child != null
7898 if _n_expr == old_child then
7899 if new_child != null then
7900 new_child.parent = self
7901 assert new_child isa PExpr
7902 _n_expr = new_child
7903 else
7904 _n_expr = null
7905 end
7906 return
7907 end
7908 if _n_id == old_child then
7909 if new_child != null then
7910 new_child.parent = self
7911 assert new_child isa TAttrid
7912 _n_id = new_child
7913 else
7914 _n_id = null
7915 end
7916 return
7917 end
7918 end
7919
7920 redef meth visit_all(v: Visitor)
7921 do
7922 if _n_expr != null then
7923 v.visit(_n_expr)
7924 end
7925 if _n_id != null then
7926 v.visit(_n_id)
7927 end
7928 end
7929
7930 redef meth visit_all_reverse(v: Visitor)
7931 do
7932 if _n_expr != null then
7933 v.visit(_n_expr)
7934 end
7935 if _n_id != null then
7936 v.visit(_n_id)
7937 end
7938 end
7939 end
7940 redef class AAttrAssignExpr
7941 redef meth n_expr=(n: PExpr)
7942 do
7943 _n_expr = n
7944 if n != null then
7945 n.parent = self
7946 end
7947 end
7948 redef meth n_id=(n: TAttrid)
7949 do
7950 _n_id = n
7951 if n != null then
7952 n.parent = self
7953 end
7954 end
7955 redef meth n_assign=(n: TAssign)
7956 do
7957 _n_assign = n
7958 if n != null then
7959 n.parent = self
7960 end
7961 end
7962 redef meth n_value=(n: PExpr)
7963 do
7964 _n_value = n
7965 if n != null then
7966 n.parent = self
7967 end
7968 end
7969
7970 private init empty_init do end
7971
7972 init init_aattrassignexpr (
7973 n_expr: PExpr ,
7974 n_id: TAttrid ,
7975 n_assign: TAssign ,
7976 n_value: PExpr
7977 )
7978 do
7979 empty_init
7980 _n_expr = n_expr
7981 if n_expr != null then
7982 n_expr.parent = self
7983 end
7984 _n_id = n_id
7985 if n_id != null then
7986 n_id.parent = self
7987 end
7988 _n_assign = n_assign
7989 if n_assign != null then
7990 n_assign.parent = self
7991 end
7992 _n_value = n_value
7993 if n_value != null then
7994 n_value.parent = self
7995 end
7996 end
7997
7998 redef meth replace_child(old_child: PNode, new_child: PNode)
7999 do
8000 assert old_child != null
8001 if _n_expr == old_child then
8002 if new_child != null then
8003 new_child.parent = self
8004 assert new_child isa PExpr
8005 _n_expr = new_child
8006 else
8007 _n_expr = null
8008 end
8009 return
8010 end
8011 if _n_id == old_child then
8012 if new_child != null then
8013 new_child.parent = self
8014 assert new_child isa TAttrid
8015 _n_id = new_child
8016 else
8017 _n_id = null
8018 end
8019 return
8020 end
8021 if _n_assign == old_child then
8022 if new_child != null then
8023 new_child.parent = self
8024 assert new_child isa TAssign
8025 _n_assign = new_child
8026 else
8027 _n_assign = null
8028 end
8029 return
8030 end
8031 if _n_value == old_child then
8032 if new_child != null then
8033 new_child.parent = self
8034 assert new_child isa PExpr
8035 _n_value = new_child
8036 else
8037 _n_value = null
8038 end
8039 return
8040 end
8041 end
8042
8043 redef meth visit_all(v: Visitor)
8044 do
8045 if _n_expr != null then
8046 v.visit(_n_expr)
8047 end
8048 if _n_id != null then
8049 v.visit(_n_id)
8050 end
8051 if _n_assign != null then
8052 v.visit(_n_assign)
8053 end
8054 if _n_value != null then
8055 v.visit(_n_value)
8056 end
8057 end
8058
8059 redef meth visit_all_reverse(v: Visitor)
8060 do
8061 if _n_expr != null then
8062 v.visit(_n_expr)
8063 end
8064 if _n_id != null then
8065 v.visit(_n_id)
8066 end
8067 if _n_assign != null then
8068 v.visit(_n_assign)
8069 end
8070 if _n_value != null then
8071 v.visit(_n_value)
8072 end
8073 end
8074 end
8075 redef class AAttrReassignExpr
8076 redef meth n_expr=(n: PExpr)
8077 do
8078 _n_expr = n
8079 if n != null then
8080 n.parent = self
8081 end
8082 end
8083 redef meth n_id=(n: TAttrid)
8084 do
8085 _n_id = n
8086 if n != null then
8087 n.parent = self
8088 end
8089 end
8090 redef meth n_assign_op=(n: PAssignOp)
8091 do
8092 _n_assign_op = n
8093 if n != null then
8094 n.parent = self
8095 end
8096 end
8097 redef meth n_value=(n: PExpr)
8098 do
8099 _n_value = n
8100 if n != null then
8101 n.parent = self
8102 end
8103 end
8104
8105 private init empty_init do end
8106
8107 init init_aattrreassignexpr (
8108 n_expr: PExpr ,
8109 n_id: TAttrid ,
8110 n_assign_op: PAssignOp ,
8111 n_value: PExpr
8112 )
8113 do
8114 empty_init
8115 _n_expr = n_expr
8116 if n_expr != null then
8117 n_expr.parent = self
8118 end
8119 _n_id = n_id
8120 if n_id != null then
8121 n_id.parent = self
8122 end
8123 _n_assign_op = n_assign_op
8124 if n_assign_op != null then
8125 n_assign_op.parent = self
8126 end
8127 _n_value = n_value
8128 if n_value != null then
8129 n_value.parent = self
8130 end
8131 end
8132
8133 redef meth replace_child(old_child: PNode, new_child: PNode)
8134 do
8135 assert old_child != null
8136 if _n_expr == old_child then
8137 if new_child != null then
8138 new_child.parent = self
8139 assert new_child isa PExpr
8140 _n_expr = new_child
8141 else
8142 _n_expr = null
8143 end
8144 return
8145 end
8146 if _n_id == old_child then
8147 if new_child != null then
8148 new_child.parent = self
8149 assert new_child isa TAttrid
8150 _n_id = new_child
8151 else
8152 _n_id = null
8153 end
8154 return
8155 end
8156 if _n_assign_op == old_child then
8157 if new_child != null then
8158 new_child.parent = self
8159 assert new_child isa PAssignOp
8160 _n_assign_op = new_child
8161 else
8162 _n_assign_op = null
8163 end
8164 return
8165 end
8166 if _n_value == old_child then
8167 if new_child != null then
8168 new_child.parent = self
8169 assert new_child isa PExpr
8170 _n_value = new_child
8171 else
8172 _n_value = null
8173 end
8174 return
8175 end
8176 end
8177
8178 redef meth visit_all(v: Visitor)
8179 do
8180 if _n_expr != null then
8181 v.visit(_n_expr)
8182 end
8183 if _n_id != null then
8184 v.visit(_n_id)
8185 end
8186 if _n_assign_op != null then
8187 v.visit(_n_assign_op)
8188 end
8189 if _n_value != null then
8190 v.visit(_n_value)
8191 end
8192 end
8193
8194 redef meth visit_all_reverse(v: Visitor)
8195 do
8196 if _n_expr != null then
8197 v.visit(_n_expr)
8198 end
8199 if _n_id != null then
8200 v.visit(_n_id)
8201 end
8202 if _n_assign_op != null then
8203 v.visit(_n_assign_op)
8204 end
8205 if _n_value != null then
8206 v.visit(_n_value)
8207 end
8208 end
8209 end
8210 redef class ACallExpr
8211 redef meth n_expr=(n: PExpr)
8212 do
8213 _n_expr = n
8214 if n != null then
8215 n.parent = self
8216 end
8217 end
8218 redef meth n_id=(n: TId)
8219 do
8220 _n_id = n
8221 if n != null then
8222 n.parent = self
8223 end
8224 end
8225
8226 private init empty_init do end
8227
8228 init init_acallexpr (
8229 n_expr: PExpr ,
8230 n_id: TId ,
8231 n_args: Collection[Object] , # Should be Collection[PExpr]
8232 n_closure_defs: Collection[Object] # Should be Collection[PClosureDef]
8233 )
8234 do
8235 empty_init
8236 _n_expr = n_expr
8237 if n_expr != null then
8238 n_expr.parent = self
8239 end
8240 _n_id = n_id
8241 if n_id != null then
8242 n_id.parent = self
8243 end
8244 _n_args = new List[PExpr]
8245 for n in n_args do
8246 assert n isa PExpr
8247 _n_args.add(n)
8248 n.parent = self
8249 end
8250 _n_closure_defs = new List[PClosureDef]
8251 for n in n_closure_defs do
8252 assert n isa PClosureDef
8253 _n_closure_defs.add(n)
8254 n.parent = self
8255 end
8256 end
8257
8258 redef meth replace_child(old_child: PNode, new_child: PNode)
8259 do
8260 assert old_child != null
8261 if _n_expr == old_child then
8262 if new_child != null then
8263 new_child.parent = self
8264 assert new_child isa PExpr
8265 _n_expr = new_child
8266 else
8267 _n_expr = null
8268 end
8269 return
8270 end
8271 if _n_id == old_child then
8272 if new_child != null then
8273 new_child.parent = self
8274 assert new_child isa TId
8275 _n_id = new_child
8276 else
8277 _n_id = null
8278 end
8279 return
8280 end
8281 for i in [0.._n_args.length[ do
8282 if _n_args[i] == old_child then
8283 if new_child != null then
8284 assert new_child isa PExpr
8285 _n_args[i] = new_child
8286 new_child.parent = self
8287 else
8288 _n_args.remove_at(i)
8289 end
8290 return
8291 end
8292 end
8293 for i in [0.._n_closure_defs.length[ do
8294 if _n_closure_defs[i] == old_child then
8295 if new_child != null then
8296 assert new_child isa PClosureDef
8297 _n_closure_defs[i] = new_child
8298 new_child.parent = self
8299 else
8300 _n_closure_defs.remove_at(i)
8301 end
8302 return
8303 end
8304 end
8305 end
8306
8307 redef meth visit_all(v: Visitor)
8308 do
8309 if _n_expr != null then
8310 v.visit(_n_expr)
8311 end
8312 if _n_id != null then
8313 v.visit(_n_id)
8314 end
8315 for n in _n_args do
8316 v.visit(n)
8317 end
8318 for n in _n_closure_defs do
8319 v.visit(n)
8320 end
8321 end
8322
8323 redef meth visit_all_reverse(v: Visitor)
8324 do
8325 if _n_expr != null then
8326 v.visit(_n_expr)
8327 end
8328 if _n_id != null then
8329 v.visit(_n_id)
8330 end
8331 do
8332 var i = _n_args.length
8333 while i >= 0 do
8334 v.visit(_n_args[i])
8335 i = i - 1
8336 end
8337 end
8338 do
8339 var i = _n_closure_defs.length
8340 while i >= 0 do
8341 v.visit(_n_closure_defs[i])
8342 i = i - 1
8343 end
8344 end
8345 end
8346 end
8347 redef class ACallAssignExpr
8348 redef meth n_expr=(n: PExpr)
8349 do
8350 _n_expr = n
8351 if n != null then
8352 n.parent = self
8353 end
8354 end
8355 redef meth n_id=(n: TId)
8356 do
8357 _n_id = n
8358 if n != null then
8359 n.parent = self
8360 end
8361 end
8362 redef meth n_assign=(n: TAssign)
8363 do
8364 _n_assign = n
8365 if n != null then
8366 n.parent = self
8367 end
8368 end
8369 redef meth n_value=(n: PExpr)
8370 do
8371 _n_value = n
8372 if n != null then
8373 n.parent = self
8374 end
8375 end
8376
8377 private init empty_init do end
8378
8379 init init_acallassignexpr (
8380 n_expr: PExpr ,
8381 n_id: TId ,
8382 n_args: Collection[Object] , # Should be Collection[PExpr]
8383 n_assign: TAssign ,
8384 n_value: PExpr
8385 )
8386 do
8387 empty_init
8388 _n_expr = n_expr
8389 if n_expr != null then
8390 n_expr.parent = self
8391 end
8392 _n_id = n_id
8393 if n_id != null then
8394 n_id.parent = self
8395 end
8396 _n_args = new List[PExpr]
8397 for n in n_args do
8398 assert n isa PExpr
8399 _n_args.add(n)
8400 n.parent = self
8401 end
8402 _n_assign = n_assign
8403 if n_assign != null then
8404 n_assign.parent = self
8405 end
8406 _n_value = n_value
8407 if n_value != null then
8408 n_value.parent = self
8409 end
8410 end
8411
8412 redef meth replace_child(old_child: PNode, new_child: PNode)
8413 do
8414 assert old_child != null
8415 if _n_expr == old_child then
8416 if new_child != null then
8417 new_child.parent = self
8418 assert new_child isa PExpr
8419 _n_expr = new_child
8420 else
8421 _n_expr = null
8422 end
8423 return
8424 end
8425 if _n_id == old_child then
8426 if new_child != null then
8427 new_child.parent = self
8428 assert new_child isa TId
8429 _n_id = new_child
8430 else
8431 _n_id = null
8432 end
8433 return
8434 end
8435 for i in [0.._n_args.length[ do
8436 if _n_args[i] == old_child then
8437 if new_child != null then
8438 assert new_child isa PExpr
8439 _n_args[i] = new_child
8440 new_child.parent = self
8441 else
8442 _n_args.remove_at(i)
8443 end
8444 return
8445 end
8446 end
8447 if _n_assign == old_child then
8448 if new_child != null then
8449 new_child.parent = self
8450 assert new_child isa TAssign
8451 _n_assign = new_child
8452 else
8453 _n_assign = null
8454 end
8455 return
8456 end
8457 if _n_value == old_child then
8458 if new_child != null then
8459 new_child.parent = self
8460 assert new_child isa PExpr
8461 _n_value = new_child
8462 else
8463 _n_value = null
8464 end
8465 return
8466 end
8467 end
8468
8469 redef meth visit_all(v: Visitor)
8470 do
8471 if _n_expr != null then
8472 v.visit(_n_expr)
8473 end
8474 if _n_id != null then
8475 v.visit(_n_id)
8476 end
8477 for n in _n_args do
8478 v.visit(n)
8479 end
8480 if _n_assign != null then
8481 v.visit(_n_assign)
8482 end
8483 if _n_value != null then
8484 v.visit(_n_value)
8485 end
8486 end
8487
8488 redef meth visit_all_reverse(v: Visitor)
8489 do
8490 if _n_expr != null then
8491 v.visit(_n_expr)
8492 end
8493 if _n_id != null then
8494 v.visit(_n_id)
8495 end
8496 do
8497 var i = _n_args.length
8498 while i >= 0 do
8499 v.visit(_n_args[i])
8500 i = i - 1
8501 end
8502 end
8503 if _n_assign != null then
8504 v.visit(_n_assign)
8505 end
8506 if _n_value != null then
8507 v.visit(_n_value)
8508 end
8509 end
8510 end
8511 redef class ACallReassignExpr
8512 redef meth n_expr=(n: PExpr)
8513 do
8514 _n_expr = n
8515 if n != null then
8516 n.parent = self
8517 end
8518 end
8519 redef meth n_id=(n: TId)
8520 do
8521 _n_id = n
8522 if n != null then
8523 n.parent = self
8524 end
8525 end
8526 redef meth n_assign_op=(n: PAssignOp)
8527 do
8528 _n_assign_op = n
8529 if n != null then
8530 n.parent = self
8531 end
8532 end
8533 redef meth n_value=(n: PExpr)
8534 do
8535 _n_value = n
8536 if n != null then
8537 n.parent = self
8538 end
8539 end
8540
8541 private init empty_init do end
8542
8543 init init_acallreassignexpr (
8544 n_expr: PExpr ,
8545 n_id: TId ,
8546 n_args: Collection[Object] , # Should be Collection[PExpr]
8547 n_assign_op: PAssignOp ,
8548 n_value: PExpr
8549 )
8550 do
8551 empty_init
8552 _n_expr = n_expr
8553 if n_expr != null then
8554 n_expr.parent = self
8555 end
8556 _n_id = n_id
8557 if n_id != null then
8558 n_id.parent = self
8559 end
8560 _n_args = new List[PExpr]
8561 for n in n_args do
8562 assert n isa PExpr
8563 _n_args.add(n)
8564 n.parent = self
8565 end
8566 _n_assign_op = n_assign_op
8567 if n_assign_op != null then
8568 n_assign_op.parent = self
8569 end
8570 _n_value = n_value
8571 if n_value != null then
8572 n_value.parent = self
8573 end
8574 end
8575
8576 redef meth replace_child(old_child: PNode, new_child: PNode)
8577 do
8578 assert old_child != null
8579 if _n_expr == old_child then
8580 if new_child != null then
8581 new_child.parent = self
8582 assert new_child isa PExpr
8583 _n_expr = new_child
8584 else
8585 _n_expr = null
8586 end
8587 return
8588 end
8589 if _n_id == old_child then
8590 if new_child != null then
8591 new_child.parent = self
8592 assert new_child isa TId
8593 _n_id = new_child
8594 else
8595 _n_id = null
8596 end
8597 return
8598 end
8599 for i in [0.._n_args.length[ do
8600 if _n_args[i] == old_child then
8601 if new_child != null then
8602 assert new_child isa PExpr
8603 _n_args[i] = new_child
8604 new_child.parent = self
8605 else
8606 _n_args.remove_at(i)
8607 end
8608 return
8609 end
8610 end
8611 if _n_assign_op == old_child then
8612 if new_child != null then
8613 new_child.parent = self
8614 assert new_child isa PAssignOp
8615 _n_assign_op = new_child
8616 else
8617 _n_assign_op = null
8618 end
8619 return
8620 end
8621 if _n_value == old_child then
8622 if new_child != null then
8623 new_child.parent = self
8624 assert new_child isa PExpr
8625 _n_value = new_child
8626 else
8627 _n_value = null
8628 end
8629 return
8630 end
8631 end
8632
8633 redef meth visit_all(v: Visitor)
8634 do
8635 if _n_expr != null then
8636 v.visit(_n_expr)
8637 end
8638 if _n_id != null then
8639 v.visit(_n_id)
8640 end
8641 for n in _n_args do
8642 v.visit(n)
8643 end
8644 if _n_assign_op != null then
8645 v.visit(_n_assign_op)
8646 end
8647 if _n_value != null then
8648 v.visit(_n_value)
8649 end
8650 end
8651
8652 redef meth visit_all_reverse(v: Visitor)
8653 do
8654 if _n_expr != null then
8655 v.visit(_n_expr)
8656 end
8657 if _n_id != null then
8658 v.visit(_n_id)
8659 end
8660 do
8661 var i = _n_args.length
8662 while i >= 0 do
8663 v.visit(_n_args[i])
8664 i = i - 1
8665 end
8666 end
8667 if _n_assign_op != null then
8668 v.visit(_n_assign_op)
8669 end
8670 if _n_value != null then
8671 v.visit(_n_value)
8672 end
8673 end
8674 end
8675 redef class ASuperExpr
8676 redef meth n_qualified=(n: PQualified)
8677 do
8678 _n_qualified = n
8679 if n != null then
8680 n.parent = self
8681 end
8682 end
8683 redef meth n_kwsuper=(n: TKwsuper)
8684 do
8685 _n_kwsuper = n
8686 if n != null then
8687 n.parent = self
8688 end
8689 end
8690
8691 private init empty_init do end
8692
8693 init init_asuperexpr (
8694 n_qualified: PQualified ,
8695 n_kwsuper: TKwsuper ,
8696 n_args: Collection[Object] # Should be Collection[PExpr]
8697 )
8698 do
8699 empty_init
8700 _n_qualified = n_qualified
8701 if n_qualified != null then
8702 n_qualified.parent = self
8703 end
8704 _n_kwsuper = n_kwsuper
8705 if n_kwsuper != null then
8706 n_kwsuper.parent = self
8707 end
8708 _n_args = new List[PExpr]
8709 for n in n_args do
8710 assert n isa PExpr
8711 _n_args.add(n)
8712 n.parent = self
8713 end
8714 end
8715
8716 redef meth replace_child(old_child: PNode, new_child: PNode)
8717 do
8718 assert old_child != null
8719 if _n_qualified == old_child then
8720 if new_child != null then
8721 new_child.parent = self
8722 assert new_child isa PQualified
8723 _n_qualified = new_child
8724 else
8725 _n_qualified = null
8726 end
8727 return
8728 end
8729 if _n_kwsuper == old_child then
8730 if new_child != null then
8731 new_child.parent = self
8732 assert new_child isa TKwsuper
8733 _n_kwsuper = new_child
8734 else
8735 _n_kwsuper = null
8736 end
8737 return
8738 end
8739 for i in [0.._n_args.length[ do
8740 if _n_args[i] == old_child then
8741 if new_child != null then
8742 assert new_child isa PExpr
8743 _n_args[i] = new_child
8744 new_child.parent = self
8745 else
8746 _n_args.remove_at(i)
8747 end
8748 return
8749 end
8750 end
8751 end
8752
8753 redef meth visit_all(v: Visitor)
8754 do
8755 if _n_qualified != null then
8756 v.visit(_n_qualified)
8757 end
8758 if _n_kwsuper != null then
8759 v.visit(_n_kwsuper)
8760 end
8761 for n in _n_args do
8762 v.visit(n)
8763 end
8764 end
8765
8766 redef meth visit_all_reverse(v: Visitor)
8767 do
8768 if _n_qualified != null then
8769 v.visit(_n_qualified)
8770 end
8771 if _n_kwsuper != null then
8772 v.visit(_n_kwsuper)
8773 end
8774 do
8775 var i = _n_args.length
8776 while i >= 0 do
8777 v.visit(_n_args[i])
8778 i = i - 1
8779 end
8780 end
8781 end
8782 end
8783 redef class AInitExpr
8784 redef meth n_expr=(n: PExpr)
8785 do
8786 _n_expr = n
8787 if n != null then
8788 n.parent = self
8789 end
8790 end
8791 redef meth n_kwinit=(n: TKwinit)
8792 do
8793 _n_kwinit = n
8794 if n != null then
8795 n.parent = self
8796 end
8797 end
8798
8799 private init empty_init do end
8800
8801 init init_ainitexpr (
8802 n_expr: PExpr ,
8803 n_kwinit: TKwinit ,
8804 n_args: Collection[Object] # Should be Collection[PExpr]
8805 )
8806 do
8807 empty_init
8808 _n_expr = n_expr
8809 if n_expr != null then
8810 n_expr.parent = self
8811 end
8812 _n_kwinit = n_kwinit
8813 if n_kwinit != null then
8814 n_kwinit.parent = self
8815 end
8816 _n_args = new List[PExpr]
8817 for n in n_args do
8818 assert n isa PExpr
8819 _n_args.add(n)
8820 n.parent = self
8821 end
8822 end
8823
8824 redef meth replace_child(old_child: PNode, new_child: PNode)
8825 do
8826 assert old_child != null
8827 if _n_expr == old_child then
8828 if new_child != null then
8829 new_child.parent = self
8830 assert new_child isa PExpr
8831 _n_expr = new_child
8832 else
8833 _n_expr = null
8834 end
8835 return
8836 end
8837 if _n_kwinit == old_child then
8838 if new_child != null then
8839 new_child.parent = self
8840 assert new_child isa TKwinit
8841 _n_kwinit = new_child
8842 else
8843 _n_kwinit = null
8844 end
8845 return
8846 end
8847 for i in [0.._n_args.length[ do
8848 if _n_args[i] == old_child then
8849 if new_child != null then
8850 assert new_child isa PExpr
8851 _n_args[i] = new_child
8852 new_child.parent = self
8853 else
8854 _n_args.remove_at(i)
8855 end
8856 return
8857 end
8858 end
8859 end
8860
8861 redef meth visit_all(v: Visitor)
8862 do
8863 if _n_expr != null then
8864 v.visit(_n_expr)
8865 end
8866 if _n_kwinit != null then
8867 v.visit(_n_kwinit)
8868 end
8869 for n in _n_args do
8870 v.visit(n)
8871 end
8872 end
8873
8874 redef meth visit_all_reverse(v: Visitor)
8875 do
8876 if _n_expr != null then
8877 v.visit(_n_expr)
8878 end
8879 if _n_kwinit != null then
8880 v.visit(_n_kwinit)
8881 end
8882 do
8883 var i = _n_args.length
8884 while i >= 0 do
8885 v.visit(_n_args[i])
8886 i = i - 1
8887 end
8888 end
8889 end
8890 end
8891 redef class ABraExpr
8892 redef meth n_expr=(n: PExpr)
8893 do
8894 _n_expr = n
8895 if n != null then
8896 n.parent = self
8897 end
8898 end
8899
8900 private init empty_init do end
8901
8902 init init_abraexpr (
8903 n_expr: PExpr ,
8904 n_args: Collection[Object] , # Should be Collection[PExpr]
8905 n_closure_defs: Collection[Object] # Should be Collection[PClosureDef]
8906 )
8907 do
8908 empty_init
8909 _n_expr = n_expr
8910 if n_expr != null then
8911 n_expr.parent = self
8912 end
8913 _n_args = new List[PExpr]
8914 for n in n_args do
8915 assert n isa PExpr
8916 _n_args.add(n)
8917 n.parent = self
8918 end
8919 _n_closure_defs = new List[PClosureDef]
8920 for n in n_closure_defs do
8921 assert n isa PClosureDef
8922 _n_closure_defs.add(n)
8923 n.parent = self
8924 end
8925 end
8926
8927 redef meth replace_child(old_child: PNode, new_child: PNode)
8928 do
8929 assert old_child != null
8930 if _n_expr == old_child then
8931 if new_child != null then
8932 new_child.parent = self
8933 assert new_child isa PExpr
8934 _n_expr = new_child
8935 else
8936 _n_expr = null
8937 end
8938 return
8939 end
8940 for i in [0.._n_args.length[ do
8941 if _n_args[i] == old_child then
8942 if new_child != null then
8943 assert new_child isa PExpr
8944 _n_args[i] = new_child
8945 new_child.parent = self
8946 else
8947 _n_args.remove_at(i)
8948 end
8949 return
8950 end
8951 end
8952 for i in [0.._n_closure_defs.length[ do
8953 if _n_closure_defs[i] == old_child then
8954 if new_child != null then
8955 assert new_child isa PClosureDef
8956 _n_closure_defs[i] = new_child
8957 new_child.parent = self
8958 else
8959 _n_closure_defs.remove_at(i)
8960 end
8961 return
8962 end
8963 end
8964 end
8965
8966 redef meth visit_all(v: Visitor)
8967 do
8968 if _n_expr != null then
8969 v.visit(_n_expr)
8970 end
8971 for n in _n_args do
8972 v.visit(n)
8973 end
8974 for n in _n_closure_defs do
8975 v.visit(n)
8976 end
8977 end
8978
8979 redef meth visit_all_reverse(v: Visitor)
8980 do
8981 if _n_expr != null then
8982 v.visit(_n_expr)
8983 end
8984 do
8985 var i = _n_args.length
8986 while i >= 0 do
8987 v.visit(_n_args[i])
8988 i = i - 1
8989 end
8990 end
8991 do
8992 var i = _n_closure_defs.length
8993 while i >= 0 do
8994 v.visit(_n_closure_defs[i])
8995 i = i - 1
8996 end
8997 end
8998 end
8999 end
9000 redef class ABraAssignExpr
9001 redef meth n_expr=(n: PExpr)
9002 do
9003 _n_expr = n
9004 if n != null then
9005 n.parent = self
9006 end
9007 end
9008 redef meth n_assign=(n: TAssign)
9009 do
9010 _n_assign = n
9011 if n != null then
9012 n.parent = self
9013 end
9014 end
9015 redef meth n_value=(n: PExpr)
9016 do
9017 _n_value = n
9018 if n != null then
9019 n.parent = self
9020 end
9021 end
9022
9023 private init empty_init do end
9024
9025 init init_abraassignexpr (
9026 n_expr: PExpr ,
9027 n_args: Collection[Object] , # Should be Collection[PExpr]
9028 n_assign: TAssign ,
9029 n_value: PExpr
9030 )
9031 do
9032 empty_init
9033 _n_expr = n_expr
9034 if n_expr != null then
9035 n_expr.parent = self
9036 end
9037 _n_args = new List[PExpr]
9038 for n in n_args do
9039 assert n isa PExpr
9040 _n_args.add(n)
9041 n.parent = self
9042 end
9043 _n_assign = n_assign
9044 if n_assign != null then
9045 n_assign.parent = self
9046 end
9047 _n_value = n_value
9048 if n_value != null then
9049 n_value.parent = self
9050 end
9051 end
9052
9053 redef meth replace_child(old_child: PNode, new_child: PNode)
9054 do
9055 assert old_child != null
9056 if _n_expr == old_child then
9057 if new_child != null then
9058 new_child.parent = self
9059 assert new_child isa PExpr
9060 _n_expr = new_child
9061 else
9062 _n_expr = null
9063 end
9064 return
9065 end
9066 for i in [0.._n_args.length[ do
9067 if _n_args[i] == old_child then
9068 if new_child != null then
9069 assert new_child isa PExpr
9070 _n_args[i] = new_child
9071 new_child.parent = self
9072 else
9073 _n_args.remove_at(i)
9074 end
9075 return
9076 end
9077 end
9078 if _n_assign == old_child then
9079 if new_child != null then
9080 new_child.parent = self
9081 assert new_child isa TAssign
9082 _n_assign = new_child
9083 else
9084 _n_assign = null
9085 end
9086 return
9087 end
9088 if _n_value == old_child then
9089 if new_child != null then
9090 new_child.parent = self
9091 assert new_child isa PExpr
9092 _n_value = new_child
9093 else
9094 _n_value = null
9095 end
9096 return
9097 end
9098 end
9099
9100 redef meth visit_all(v: Visitor)
9101 do
9102 if _n_expr != null then
9103 v.visit(_n_expr)
9104 end
9105 for n in _n_args do
9106 v.visit(n)
9107 end
9108 if _n_assign != null then
9109 v.visit(_n_assign)
9110 end
9111 if _n_value != null then
9112 v.visit(_n_value)
9113 end
9114 end
9115
9116 redef meth visit_all_reverse(v: Visitor)
9117 do
9118 if _n_expr != null then
9119 v.visit(_n_expr)
9120 end
9121 do
9122 var i = _n_args.length
9123 while i >= 0 do
9124 v.visit(_n_args[i])
9125 i = i - 1
9126 end
9127 end
9128 if _n_assign != null then
9129 v.visit(_n_assign)
9130 end
9131 if _n_value != null then
9132 v.visit(_n_value)
9133 end
9134 end
9135 end
9136 redef class ABraReassignExpr
9137 redef meth n_expr=(n: PExpr)
9138 do
9139 _n_expr = n
9140 if n != null then
9141 n.parent = self
9142 end
9143 end
9144 redef meth n_assign_op=(n: PAssignOp)
9145 do
9146 _n_assign_op = n
9147 if n != null then
9148 n.parent = self
9149 end
9150 end
9151 redef meth n_value=(n: PExpr)
9152 do
9153 _n_value = n
9154 if n != null then
9155 n.parent = self
9156 end
9157 end
9158
9159 private init empty_init do end
9160
9161 init init_abrareassignexpr (
9162 n_expr: PExpr ,
9163 n_args: Collection[Object] , # Should be Collection[PExpr]
9164 n_assign_op: PAssignOp ,
9165 n_value: PExpr
9166 )
9167 do
9168 empty_init
9169 _n_expr = n_expr
9170 if n_expr != null then
9171 n_expr.parent = self
9172 end
9173 _n_args = new List[PExpr]
9174 for n in n_args do
9175 assert n isa PExpr
9176 _n_args.add(n)
9177 n.parent = self
9178 end
9179 _n_assign_op = n_assign_op
9180 if n_assign_op != null then
9181 n_assign_op.parent = self
9182 end
9183 _n_value = n_value
9184 if n_value != null then
9185 n_value.parent = self
9186 end
9187 end
9188
9189 redef meth replace_child(old_child: PNode, new_child: PNode)
9190 do
9191 assert old_child != null
9192 if _n_expr == old_child then
9193 if new_child != null then
9194 new_child.parent = self
9195 assert new_child isa PExpr
9196 _n_expr = new_child
9197 else
9198 _n_expr = null
9199 end
9200 return
9201 end
9202 for i in [0.._n_args.length[ do
9203 if _n_args[i] == old_child then
9204 if new_child != null then
9205 assert new_child isa PExpr
9206 _n_args[i] = new_child
9207 new_child.parent = self
9208 else
9209 _n_args.remove_at(i)
9210 end
9211 return
9212 end
9213 end
9214 if _n_assign_op == old_child then
9215 if new_child != null then
9216 new_child.parent = self
9217 assert new_child isa PAssignOp
9218 _n_assign_op = new_child
9219 else
9220 _n_assign_op = null
9221 end
9222 return
9223 end
9224 if _n_value == old_child then
9225 if new_child != null then
9226 new_child.parent = self
9227 assert new_child isa PExpr
9228 _n_value = new_child
9229 else
9230 _n_value = null
9231 end
9232 return
9233 end
9234 end
9235
9236 redef meth visit_all(v: Visitor)
9237 do
9238 if _n_expr != null then
9239 v.visit(_n_expr)
9240 end
9241 for n in _n_args do
9242 v.visit(n)
9243 end
9244 if _n_assign_op != null then
9245 v.visit(_n_assign_op)
9246 end
9247 if _n_value != null then
9248 v.visit(_n_value)
9249 end
9250 end
9251
9252 redef meth visit_all_reverse(v: Visitor)
9253 do
9254 if _n_expr != null then
9255 v.visit(_n_expr)
9256 end
9257 do
9258 var i = _n_args.length
9259 while i >= 0 do
9260 v.visit(_n_args[i])
9261 i = i - 1
9262 end
9263 end
9264 if _n_assign_op != null then
9265 v.visit(_n_assign_op)
9266 end
9267 if _n_value != null then
9268 v.visit(_n_value)
9269 end
9270 end
9271 end
9272 redef class AVarExpr
9273 redef meth n_id=(n: TId)
9274 do
9275 _n_id = n
9276 if n != null then
9277 n.parent = self
9278 end
9279 end
9280
9281 private init empty_init do end
9282
9283 init init_avarexpr (
9284 n_id: TId
9285 )
9286 do
9287 empty_init
9288 _n_id = n_id
9289 if n_id != null then
9290 n_id.parent = self
9291 end
9292 end
9293
9294 redef meth replace_child(old_child: PNode, new_child: PNode)
9295 do
9296 assert old_child != null
9297 if _n_id == old_child then
9298 if new_child != null then
9299 new_child.parent = self
9300 assert new_child isa TId
9301 _n_id = new_child
9302 else
9303 _n_id = null
9304 end
9305 return
9306 end
9307 end
9308
9309 redef meth visit_all(v: Visitor)
9310 do
9311 if _n_id != null then
9312 v.visit(_n_id)
9313 end
9314 end
9315
9316 redef meth visit_all_reverse(v: Visitor)
9317 do
9318 if _n_id != null then
9319 v.visit(_n_id)
9320 end
9321 end
9322 end
9323 redef class AVarAssignExpr
9324 redef meth n_id=(n: TId)
9325 do
9326 _n_id = n
9327 if n != null then
9328 n.parent = self
9329 end
9330 end
9331 redef meth n_assign=(n: TAssign)
9332 do
9333 _n_assign = n
9334 if n != null then
9335 n.parent = self
9336 end
9337 end
9338 redef meth n_value=(n: PExpr)
9339 do
9340 _n_value = n
9341 if n != null then
9342 n.parent = self
9343 end
9344 end
9345
9346 private init empty_init do end
9347
9348 init init_avarassignexpr (
9349 n_id: TId ,
9350 n_assign: TAssign ,
9351 n_value: PExpr
9352 )
9353 do
9354 empty_init
9355 _n_id = n_id
9356 if n_id != null then
9357 n_id.parent = self
9358 end
9359 _n_assign = n_assign
9360 if n_assign != null then
9361 n_assign.parent = self
9362 end
9363 _n_value = n_value
9364 if n_value != null then
9365 n_value.parent = self
9366 end
9367 end
9368
9369 redef meth replace_child(old_child: PNode, new_child: PNode)
9370 do
9371 assert old_child != null
9372 if _n_id == old_child then
9373 if new_child != null then
9374 new_child.parent = self
9375 assert new_child isa TId
9376 _n_id = new_child
9377 else
9378 _n_id = null
9379 end
9380 return
9381 end
9382 if _n_assign == old_child then
9383 if new_child != null then
9384 new_child.parent = self
9385 assert new_child isa TAssign
9386 _n_assign = new_child
9387 else
9388 _n_assign = null
9389 end
9390 return
9391 end
9392 if _n_value == old_child then
9393 if new_child != null then
9394 new_child.parent = self
9395 assert new_child isa PExpr
9396 _n_value = new_child
9397 else
9398 _n_value = null
9399 end
9400 return
9401 end
9402 end
9403
9404 redef meth visit_all(v: Visitor)
9405 do
9406 if _n_id != null then
9407 v.visit(_n_id)
9408 end
9409 if _n_assign != null then
9410 v.visit(_n_assign)
9411 end
9412 if _n_value != null then
9413 v.visit(_n_value)
9414 end
9415 end
9416
9417 redef meth visit_all_reverse(v: Visitor)
9418 do
9419 if _n_id != null then
9420 v.visit(_n_id)
9421 end
9422 if _n_assign != null then
9423 v.visit(_n_assign)
9424 end
9425 if _n_value != null then
9426 v.visit(_n_value)
9427 end
9428 end
9429 end
9430 redef class AVarReassignExpr
9431 redef meth n_id=(n: TId)
9432 do
9433 _n_id = n
9434 if n != null then
9435 n.parent = self
9436 end
9437 end
9438 redef meth n_assign_op=(n: PAssignOp)
9439 do
9440 _n_assign_op = n
9441 if n != null then
9442 n.parent = self
9443 end
9444 end
9445 redef meth n_value=(n: PExpr)
9446 do
9447 _n_value = n
9448 if n != null then
9449 n.parent = self
9450 end
9451 end
9452
9453 private init empty_init do end
9454
9455 init init_avarreassignexpr (
9456 n_id: TId ,
9457 n_assign_op: PAssignOp ,
9458 n_value: PExpr
9459 )
9460 do
9461 empty_init
9462 _n_id = n_id
9463 if n_id != null then
9464 n_id.parent = self
9465 end
9466 _n_assign_op = n_assign_op
9467 if n_assign_op != null then
9468 n_assign_op.parent = self
9469 end
9470 _n_value = n_value
9471 if n_value != null then
9472 n_value.parent = self
9473 end
9474 end
9475
9476 redef meth replace_child(old_child: PNode, new_child: PNode)
9477 do
9478 assert old_child != null
9479 if _n_id == old_child then
9480 if new_child != null then
9481 new_child.parent = self
9482 assert new_child isa TId
9483 _n_id = new_child
9484 else
9485 _n_id = null
9486 end
9487 return
9488 end
9489 if _n_assign_op == old_child then
9490 if new_child != null then
9491 new_child.parent = self
9492 assert new_child isa PAssignOp
9493 _n_assign_op = new_child
9494 else
9495 _n_assign_op = null
9496 end
9497 return
9498 end
9499 if _n_value == old_child then
9500 if new_child != null then
9501 new_child.parent = self
9502 assert new_child isa PExpr
9503 _n_value = new_child
9504 else
9505 _n_value = null
9506 end
9507 return
9508 end
9509 end
9510
9511 redef meth visit_all(v: Visitor)
9512 do
9513 if _n_id != null then
9514 v.visit(_n_id)
9515 end
9516 if _n_assign_op != null then
9517 v.visit(_n_assign_op)
9518 end
9519 if _n_value != null then
9520 v.visit(_n_value)
9521 end
9522 end
9523
9524 redef meth visit_all_reverse(v: Visitor)
9525 do
9526 if _n_id != null then
9527 v.visit(_n_id)
9528 end
9529 if _n_assign_op != null then
9530 v.visit(_n_assign_op)
9531 end
9532 if _n_value != null then
9533 v.visit(_n_value)
9534 end
9535 end
9536 end
9537 redef class ARangeExpr
9538 redef meth n_expr=(n: PExpr)
9539 do
9540 _n_expr = n
9541 if n != null then
9542 n.parent = self
9543 end
9544 end
9545 redef meth n_expr2=(n: PExpr)
9546 do
9547 _n_expr2 = n
9548 if n != null then
9549 n.parent = self
9550 end
9551 end
9552
9553 private init empty_init do end
9554
9555 init init_arangeexpr (
9556 n_expr: PExpr ,
9557 n_expr2: PExpr
9558 )
9559 do
9560 empty_init
9561 _n_expr = n_expr
9562 if n_expr != null then
9563 n_expr.parent = self
9564 end
9565 _n_expr2 = n_expr2
9566 if n_expr2 != null then
9567 n_expr2.parent = self
9568 end
9569 end
9570
9571 redef meth replace_child(old_child: PNode, new_child: PNode)
9572 do
9573 assert old_child != null
9574 if _n_expr == old_child then
9575 if new_child != null then
9576 new_child.parent = self
9577 assert new_child isa PExpr
9578 _n_expr = new_child
9579 else
9580 _n_expr = null
9581 end
9582 return
9583 end
9584 if _n_expr2 == old_child then
9585 if new_child != null then
9586 new_child.parent = self
9587 assert new_child isa PExpr
9588 _n_expr2 = new_child
9589 else
9590 _n_expr2 = null
9591 end
9592 return
9593 end
9594 end
9595
9596 redef meth visit_all(v: Visitor)
9597 do
9598 if _n_expr != null then
9599 v.visit(_n_expr)
9600 end
9601 if _n_expr2 != null then
9602 v.visit(_n_expr2)
9603 end
9604 end
9605
9606 redef meth visit_all_reverse(v: Visitor)
9607 do
9608 if _n_expr != null then
9609 v.visit(_n_expr)
9610 end
9611 if _n_expr2 != null then
9612 v.visit(_n_expr2)
9613 end
9614 end
9615 end
9616 redef class ACrangeExpr
9617 redef meth n_expr=(n: PExpr)
9618 do
9619 _n_expr = n
9620 if n != null then
9621 n.parent = self
9622 end
9623 end
9624 redef meth n_expr2=(n: PExpr)
9625 do
9626 _n_expr2 = n
9627 if n != null then
9628 n.parent = self
9629 end
9630 end
9631
9632 private init empty_init do end
9633
9634 init init_acrangeexpr (
9635 n_expr: PExpr ,
9636 n_expr2: PExpr
9637 )
9638 do
9639 empty_init
9640 _n_expr = n_expr
9641 if n_expr != null then
9642 n_expr.parent = self
9643 end
9644 _n_expr2 = n_expr2
9645 if n_expr2 != null then
9646 n_expr2.parent = self
9647 end
9648 end
9649
9650 redef meth replace_child(old_child: PNode, new_child: PNode)
9651 do
9652 assert old_child != null
9653 if _n_expr == old_child then
9654 if new_child != null then
9655 new_child.parent = self
9656 assert new_child isa PExpr
9657 _n_expr = new_child
9658 else
9659 _n_expr = null
9660 end
9661 return
9662 end
9663 if _n_expr2 == old_child then
9664 if new_child != null then
9665 new_child.parent = self
9666 assert new_child isa PExpr
9667 _n_expr2 = new_child
9668 else
9669 _n_expr2 = null
9670 end
9671 return
9672 end
9673 end
9674
9675 redef meth visit_all(v: Visitor)
9676 do
9677 if _n_expr != null then
9678 v.visit(_n_expr)
9679 end
9680 if _n_expr2 != null then
9681 v.visit(_n_expr2)
9682 end
9683 end
9684
9685 redef meth visit_all_reverse(v: Visitor)
9686 do
9687 if _n_expr != null then
9688 v.visit(_n_expr)
9689 end
9690 if _n_expr2 != null then
9691 v.visit(_n_expr2)
9692 end
9693 end
9694 end
9695 redef class AOrangeExpr
9696 redef meth n_expr=(n: PExpr)
9697 do
9698 _n_expr = n
9699 if n != null then
9700 n.parent = self
9701 end
9702 end
9703 redef meth n_expr2=(n: PExpr)
9704 do
9705 _n_expr2 = n
9706 if n != null then
9707 n.parent = self
9708 end
9709 end
9710
9711 private init empty_init do end
9712
9713 init init_aorangeexpr (
9714 n_expr: PExpr ,
9715 n_expr2: PExpr
9716 )
9717 do
9718 empty_init
9719 _n_expr = n_expr
9720 if n_expr != null then
9721 n_expr.parent = self
9722 end
9723 _n_expr2 = n_expr2
9724 if n_expr2 != null then
9725 n_expr2.parent = self
9726 end
9727 end
9728
9729 redef meth replace_child(old_child: PNode, new_child: PNode)
9730 do
9731 assert old_child != null
9732 if _n_expr == old_child then
9733 if new_child != null then
9734 new_child.parent = self
9735 assert new_child isa PExpr
9736 _n_expr = new_child
9737 else
9738 _n_expr = null
9739 end
9740 return
9741 end
9742 if _n_expr2 == old_child then
9743 if new_child != null then
9744 new_child.parent = self
9745 assert new_child isa PExpr
9746 _n_expr2 = new_child
9747 else
9748 _n_expr2 = null
9749 end
9750 return
9751 end
9752 end
9753
9754 redef meth visit_all(v: Visitor)
9755 do
9756 if _n_expr != null then
9757 v.visit(_n_expr)
9758 end
9759 if _n_expr2 != null then
9760 v.visit(_n_expr2)
9761 end
9762 end
9763
9764 redef meth visit_all_reverse(v: Visitor)
9765 do
9766 if _n_expr != null then
9767 v.visit(_n_expr)
9768 end
9769 if _n_expr2 != null then
9770 v.visit(_n_expr2)
9771 end
9772 end
9773 end
9774 redef class AArrayExpr
9775
9776 private init empty_init do end
9777
9778 init init_aarrayexpr (
9779 n_exprs: Collection[Object] # Should be Collection[PExpr]
9780 )
9781 do
9782 empty_init
9783 _n_exprs = new List[PExpr]
9784 for n in n_exprs do
9785 assert n isa PExpr
9786 _n_exprs.add(n)
9787 n.parent = self
9788 end
9789 end
9790
9791 redef meth replace_child(old_child: PNode, new_child: PNode)
9792 do
9793 assert old_child != null
9794 for i in [0.._n_exprs.length[ do
9795 if _n_exprs[i] == old_child then
9796 if new_child != null then
9797 assert new_child isa PExpr
9798 _n_exprs[i] = new_child
9799 new_child.parent = self
9800 else
9801 _n_exprs.remove_at(i)
9802 end
9803 return
9804 end
9805 end
9806 end
9807
9808 redef meth visit_all(v: Visitor)
9809 do
9810 for n in _n_exprs do
9811 v.visit(n)
9812 end
9813 end
9814
9815 redef meth visit_all_reverse(v: Visitor)
9816 do
9817 do
9818 var i = _n_exprs.length
9819 while i >= 0 do
9820 v.visit(_n_exprs[i])
9821 i = i - 1
9822 end
9823 end
9824 end
9825 end
9826 redef class ASelfExpr
9827 redef meth n_kwself=(n: TKwself)
9828 do
9829 _n_kwself = n
9830 if n != null then
9831 n.parent = self
9832 end
9833 end
9834
9835 private init empty_init do end
9836
9837 init init_aselfexpr (
9838 n_kwself: TKwself
9839 )
9840 do
9841 empty_init
9842 _n_kwself = n_kwself
9843 if n_kwself != null then
9844 n_kwself.parent = self
9845 end
9846 end
9847
9848 redef meth replace_child(old_child: PNode, new_child: PNode)
9849 do
9850 assert old_child != null
9851 if _n_kwself == old_child then
9852 if new_child != null then
9853 new_child.parent = self
9854 assert new_child isa TKwself
9855 _n_kwself = new_child
9856 else
9857 _n_kwself = null
9858 end
9859 return
9860 end
9861 end
9862
9863 redef meth visit_all(v: Visitor)
9864 do
9865 if _n_kwself != null then
9866 v.visit(_n_kwself)
9867 end
9868 end
9869
9870 redef meth visit_all_reverse(v: Visitor)
9871 do
9872 if _n_kwself != null then
9873 v.visit(_n_kwself)
9874 end
9875 end
9876 end
9877 redef class AImplicitSelfExpr
9878
9879 private init empty_init do end
9880
9881 init init_aimplicitselfexpr
9882 do
9883 empty_init
9884 end
9885
9886 redef meth replace_child(old_child: PNode, new_child: PNode)
9887 do
9888 assert old_child != null
9889 end
9890
9891 redef meth visit_all(v: Visitor)
9892 do
9893 end
9894
9895 redef meth visit_all_reverse(v: Visitor)
9896 do
9897 end
9898 end
9899 redef class ATrueExpr
9900 redef meth n_kwtrue=(n: TKwtrue)
9901 do
9902 _n_kwtrue = n
9903 if n != null then
9904 n.parent = self
9905 end
9906 end
9907
9908 private init empty_init do end
9909
9910 init init_atrueexpr (
9911 n_kwtrue: TKwtrue
9912 )
9913 do
9914 empty_init
9915 _n_kwtrue = n_kwtrue
9916 if n_kwtrue != null then
9917 n_kwtrue.parent = self
9918 end
9919 end
9920
9921 redef meth replace_child(old_child: PNode, new_child: PNode)
9922 do
9923 assert old_child != null
9924 if _n_kwtrue == old_child then
9925 if new_child != null then
9926 new_child.parent = self
9927 assert new_child isa TKwtrue
9928 _n_kwtrue = new_child
9929 else
9930 _n_kwtrue = null
9931 end
9932 return
9933 end
9934 end
9935
9936 redef meth visit_all(v: Visitor)
9937 do
9938 if _n_kwtrue != null then
9939 v.visit(_n_kwtrue)
9940 end
9941 end
9942
9943 redef meth visit_all_reverse(v: Visitor)
9944 do
9945 if _n_kwtrue != null then
9946 v.visit(_n_kwtrue)
9947 end
9948 end
9949 end
9950 redef class AFalseExpr
9951 redef meth n_kwfalse=(n: TKwfalse)
9952 do
9953 _n_kwfalse = n
9954 if n != null then
9955 n.parent = self
9956 end
9957 end
9958
9959 private init empty_init do end
9960
9961 init init_afalseexpr (
9962 n_kwfalse: TKwfalse
9963 )
9964 do
9965 empty_init
9966 _n_kwfalse = n_kwfalse
9967 if n_kwfalse != null then
9968 n_kwfalse.parent = self
9969 end
9970 end
9971
9972 redef meth replace_child(old_child: PNode, new_child: PNode)
9973 do
9974 assert old_child != null
9975 if _n_kwfalse == old_child then
9976 if new_child != null then
9977 new_child.parent = self
9978 assert new_child isa TKwfalse
9979 _n_kwfalse = new_child
9980 else
9981 _n_kwfalse = null
9982 end
9983 return
9984 end
9985 end
9986
9987 redef meth visit_all(v: Visitor)
9988 do
9989 if _n_kwfalse != null then
9990 v.visit(_n_kwfalse)
9991 end
9992 end
9993
9994 redef meth visit_all_reverse(v: Visitor)
9995 do
9996 if _n_kwfalse != null then
9997 v.visit(_n_kwfalse)
9998 end
9999 end
10000 end
10001 redef class ANullExpr
10002 redef meth n_kwnull=(n: TKwnull)
10003 do
10004 _n_kwnull = n
10005 if n != null then
10006 n.parent = self
10007 end
10008 end
10009
10010 private init empty_init do end
10011
10012 init init_anullexpr (
10013 n_kwnull: TKwnull
10014 )
10015 do
10016 empty_init
10017 _n_kwnull = n_kwnull
10018 if n_kwnull != null then
10019 n_kwnull.parent = self
10020 end
10021 end
10022
10023 redef meth replace_child(old_child: PNode, new_child: PNode)
10024 do
10025 assert old_child != null
10026 if _n_kwnull == old_child then
10027 if new_child != null then
10028 new_child.parent = self
10029 assert new_child isa TKwnull
10030 _n_kwnull = new_child
10031 else
10032 _n_kwnull = null
10033 end
10034 return
10035 end
10036 end
10037
10038 redef meth visit_all(v: Visitor)
10039 do
10040 if _n_kwnull != null then
10041 v.visit(_n_kwnull)
10042 end
10043 end
10044
10045 redef meth visit_all_reverse(v: Visitor)
10046 do
10047 if _n_kwnull != null then
10048 v.visit(_n_kwnull)
10049 end
10050 end
10051 end
10052 redef class AIntExpr
10053 redef meth n_number=(n: TNumber)
10054 do
10055 _n_number = n
10056 if n != null then
10057 n.parent = self
10058 end
10059 end
10060
10061 private init empty_init do end
10062
10063 init init_aintexpr (
10064 n_number: TNumber
10065 )
10066 do
10067 empty_init
10068 _n_number = n_number
10069 if n_number != null then
10070 n_number.parent = self
10071 end
10072 end
10073
10074 redef meth replace_child(old_child: PNode, new_child: PNode)
10075 do
10076 assert old_child != null
10077 if _n_number == old_child then
10078 if new_child != null then
10079 new_child.parent = self
10080 assert new_child isa TNumber
10081 _n_number = new_child
10082 else
10083 _n_number = null
10084 end
10085 return
10086 end
10087 end
10088
10089 redef meth visit_all(v: Visitor)
10090 do
10091 if _n_number != null then
10092 v.visit(_n_number)
10093 end
10094 end
10095
10096 redef meth visit_all_reverse(v: Visitor)
10097 do
10098 if _n_number != null then
10099 v.visit(_n_number)
10100 end
10101 end
10102 end
10103 redef class AFloatExpr
10104 redef meth n_float=(n: TFloat)
10105 do
10106 _n_float = n
10107 if n != null then
10108 n.parent = self
10109 end
10110 end
10111
10112 private init empty_init do end
10113
10114 init init_afloatexpr (
10115 n_float: TFloat
10116 )
10117 do
10118 empty_init
10119 _n_float = n_float
10120 if n_float != null then
10121 n_float.parent = self
10122 end
10123 end
10124
10125 redef meth replace_child(old_child: PNode, new_child: PNode)
10126 do
10127 assert old_child != null
10128 if _n_float == old_child then
10129 if new_child != null then
10130 new_child.parent = self
10131 assert new_child isa TFloat
10132 _n_float = new_child
10133 else
10134 _n_float = null
10135 end
10136 return
10137 end
10138 end
10139
10140 redef meth visit_all(v: Visitor)
10141 do
10142 if _n_float != null then
10143 v.visit(_n_float)
10144 end
10145 end
10146
10147 redef meth visit_all_reverse(v: Visitor)
10148 do
10149 if _n_float != null then
10150 v.visit(_n_float)
10151 end
10152 end
10153 end
10154 redef class ACharExpr
10155 redef meth n_char=(n: TChar)
10156 do
10157 _n_char = n
10158 if n != null then
10159 n.parent = self
10160 end
10161 end
10162
10163 private init empty_init do end
10164
10165 init init_acharexpr (
10166 n_char: TChar
10167 )
10168 do
10169 empty_init
10170 _n_char = n_char
10171 if n_char != null then
10172 n_char.parent = self
10173 end
10174 end
10175
10176 redef meth replace_child(old_child: PNode, new_child: PNode)
10177 do
10178 assert old_child != null
10179 if _n_char == old_child then
10180 if new_child != null then
10181 new_child.parent = self
10182 assert new_child isa TChar
10183 _n_char = new_child
10184 else
10185 _n_char = null
10186 end
10187 return
10188 end
10189 end
10190
10191 redef meth visit_all(v: Visitor)
10192 do
10193 if _n_char != null then
10194 v.visit(_n_char)
10195 end
10196 end
10197
10198 redef meth visit_all_reverse(v: Visitor)
10199 do
10200 if _n_char != null then
10201 v.visit(_n_char)
10202 end
10203 end
10204 end
10205 redef class AStringExpr
10206 redef meth n_string=(n: TString)
10207 do
10208 _n_string = n
10209 if n != null then
10210 n.parent = self
10211 end
10212 end
10213
10214 private init empty_init do end
10215
10216 init init_astringexpr (
10217 n_string: TString
10218 )
10219 do
10220 empty_init
10221 _n_string = n_string
10222 if n_string != null then
10223 n_string.parent = self
10224 end
10225 end
10226
10227 redef meth replace_child(old_child: PNode, new_child: PNode)
10228 do
10229 assert old_child != null
10230 if _n_string == old_child then
10231 if new_child != null then
10232 new_child.parent = self
10233 assert new_child isa TString
10234 _n_string = new_child
10235 else
10236 _n_string = null
10237 end
10238 return
10239 end
10240 end
10241
10242 redef meth visit_all(v: Visitor)
10243 do
10244 if _n_string != null then
10245 v.visit(_n_string)
10246 end
10247 end
10248
10249 redef meth visit_all_reverse(v: Visitor)
10250 do
10251 if _n_string != null then
10252 v.visit(_n_string)
10253 end
10254 end
10255 end
10256 redef class AStartStringExpr
10257 redef meth n_string=(n: TStartString)
10258 do
10259 _n_string = n
10260 if n != null then
10261 n.parent = self
10262 end
10263 end
10264
10265 private init empty_init do end
10266
10267 init init_astartstringexpr (
10268 n_string: TStartString
10269 )
10270 do
10271 empty_init
10272 _n_string = n_string
10273 if n_string != null then
10274 n_string.parent = self
10275 end
10276 end
10277
10278 redef meth replace_child(old_child: PNode, new_child: PNode)
10279 do
10280 assert old_child != null
10281 if _n_string == old_child then
10282 if new_child != null then
10283 new_child.parent = self
10284 assert new_child isa TStartString
10285 _n_string = new_child
10286 else
10287 _n_string = null
10288 end
10289 return
10290 end
10291 end
10292
10293 redef meth visit_all(v: Visitor)
10294 do
10295 if _n_string != null then
10296 v.visit(_n_string)
10297 end
10298 end
10299
10300 redef meth visit_all_reverse(v: Visitor)
10301 do
10302 if _n_string != null then
10303 v.visit(_n_string)
10304 end
10305 end
10306 end
10307 redef class AMidStringExpr
10308 redef meth n_string=(n: TMidString)
10309 do
10310 _n_string = n
10311 if n != null then
10312 n.parent = self
10313 end
10314 end
10315
10316 private init empty_init do end
10317
10318 init init_amidstringexpr (
10319 n_string: TMidString
10320 )
10321 do
10322 empty_init
10323 _n_string = n_string
10324 if n_string != null then
10325 n_string.parent = self
10326 end
10327 end
10328
10329 redef meth replace_child(old_child: PNode, new_child: PNode)
10330 do
10331 assert old_child != null
10332 if _n_string == old_child then
10333 if new_child != null then
10334 new_child.parent = self
10335 assert new_child isa TMidString
10336 _n_string = new_child
10337 else
10338 _n_string = null
10339 end
10340 return
10341 end
10342 end
10343
10344 redef meth visit_all(v: Visitor)
10345 do
10346 if _n_string != null then
10347 v.visit(_n_string)
10348 end
10349 end
10350
10351 redef meth visit_all_reverse(v: Visitor)
10352 do
10353 if _n_string != null then
10354 v.visit(_n_string)
10355 end
10356 end
10357 end
10358 redef class AEndStringExpr
10359 redef meth n_string=(n: TEndString)
10360 do
10361 _n_string = n
10362 if n != null then
10363 n.parent = self
10364 end
10365 end
10366
10367 private init empty_init do end
10368
10369 init init_aendstringexpr (
10370 n_string: TEndString
10371 )
10372 do
10373 empty_init
10374 _n_string = n_string
10375 if n_string != null then
10376 n_string.parent = self
10377 end
10378 end
10379
10380 redef meth replace_child(old_child: PNode, new_child: PNode)
10381 do
10382 assert old_child != null
10383 if _n_string == old_child then
10384 if new_child != null then
10385 new_child.parent = self
10386 assert new_child isa TEndString
10387 _n_string = new_child
10388 else
10389 _n_string = null
10390 end
10391 return
10392 end
10393 end
10394
10395 redef meth visit_all(v: Visitor)
10396 do
10397 if _n_string != null then
10398 v.visit(_n_string)
10399 end
10400 end
10401
10402 redef meth visit_all_reverse(v: Visitor)
10403 do
10404 if _n_string != null then
10405 v.visit(_n_string)
10406 end
10407 end
10408 end
10409 redef class ASuperstringExpr
10410
10411 private init empty_init do end
10412
10413 init init_asuperstringexpr (
10414 n_exprs: Collection[Object] # Should be Collection[PExpr]
10415 )
10416 do
10417 empty_init
10418 _n_exprs = new List[PExpr]
10419 for n in n_exprs do
10420 assert n isa PExpr
10421 _n_exprs.add(n)
10422 n.parent = self
10423 end
10424 end
10425
10426 redef meth replace_child(old_child: PNode, new_child: PNode)
10427 do
10428 assert old_child != null
10429 for i in [0.._n_exprs.length[ do
10430 if _n_exprs[i] == old_child then
10431 if new_child != null then
10432 assert new_child isa PExpr
10433 _n_exprs[i] = new_child
10434 new_child.parent = self
10435 else
10436 _n_exprs.remove_at(i)
10437 end
10438 return
10439 end
10440 end
10441 end
10442
10443 redef meth visit_all(v: Visitor)
10444 do
10445 for n in _n_exprs do
10446 v.visit(n)
10447 end
10448 end
10449
10450 redef meth visit_all_reverse(v: Visitor)
10451 do
10452 do
10453 var i = _n_exprs.length
10454 while i >= 0 do
10455 v.visit(_n_exprs[i])
10456 i = i - 1
10457 end
10458 end
10459 end
10460 end
10461 redef class AParExpr
10462 redef meth n_expr=(n: PExpr)
10463 do
10464 _n_expr = n
10465 if n != null then
10466 n.parent = self
10467 end
10468 end
10469
10470 private init empty_init do end
10471
10472 init init_aparexpr (
10473 n_expr: PExpr
10474 )
10475 do
10476 empty_init
10477 _n_expr = n_expr
10478 if n_expr != null then
10479 n_expr.parent = self
10480 end
10481 end
10482
10483 redef meth replace_child(old_child: PNode, new_child: PNode)
10484 do
10485 assert old_child != null
10486 if _n_expr == old_child then
10487 if new_child != null then
10488 new_child.parent = self
10489 assert new_child isa PExpr
10490 _n_expr = new_child
10491 else
10492 _n_expr = null
10493 end
10494 return
10495 end
10496 end
10497
10498 redef meth visit_all(v: Visitor)
10499 do
10500 if _n_expr != null then
10501 v.visit(_n_expr)
10502 end
10503 end
10504
10505 redef meth visit_all_reverse(v: Visitor)
10506 do
10507 if _n_expr != null then
10508 v.visit(_n_expr)
10509 end
10510 end
10511 end
10512 redef class AAsCastExpr
10513 redef meth n_expr=(n: PExpr)
10514 do
10515 _n_expr = n
10516 if n != null then
10517 n.parent = self
10518 end
10519 end
10520 redef meth n_kwas=(n: TKwas)
10521 do
10522 _n_kwas = n
10523 if n != null then
10524 n.parent = self
10525 end
10526 end
10527 redef meth n_type=(n: PType)
10528 do
10529 _n_type = n
10530 if n != null then
10531 n.parent = self
10532 end
10533 end
10534
10535 private init empty_init do end
10536
10537 init init_aascastexpr (
10538 n_expr: PExpr ,
10539 n_kwas: TKwas ,
10540 n_type: PType
10541 )
10542 do
10543 empty_init
10544 _n_expr = n_expr
10545 if n_expr != null then
10546 n_expr.parent = self
10547 end
10548 _n_kwas = n_kwas
10549 if n_kwas != null then
10550 n_kwas.parent = self
10551 end
10552 _n_type = n_type
10553 if n_type != null then
10554 n_type.parent = self
10555 end
10556 end
10557
10558 redef meth replace_child(old_child: PNode, new_child: PNode)
10559 do
10560 assert old_child != null
10561 if _n_expr == old_child then
10562 if new_child != null then
10563 new_child.parent = self
10564 assert new_child isa PExpr
10565 _n_expr = new_child
10566 else
10567 _n_expr = null
10568 end
10569 return
10570 end
10571 if _n_kwas == old_child then
10572 if new_child != null then
10573 new_child.parent = self
10574 assert new_child isa TKwas
10575 _n_kwas = new_child
10576 else
10577 _n_kwas = null
10578 end
10579 return
10580 end
10581 if _n_type == old_child then
10582 if new_child != null then
10583 new_child.parent = self
10584 assert new_child isa PType
10585 _n_type = new_child
10586 else
10587 _n_type = null
10588 end
10589 return
10590 end
10591 end
10592
10593 redef meth visit_all(v: Visitor)
10594 do
10595 if _n_expr != null then
10596 v.visit(_n_expr)
10597 end
10598 if _n_kwas != null then
10599 v.visit(_n_kwas)
10600 end
10601 if _n_type != null then
10602 v.visit(_n_type)
10603 end
10604 end
10605
10606 redef meth visit_all_reverse(v: Visitor)
10607 do
10608 if _n_expr != null then
10609 v.visit(_n_expr)
10610 end
10611 if _n_kwas != null then
10612 v.visit(_n_kwas)
10613 end
10614 if _n_type != null then
10615 v.visit(_n_type)
10616 end
10617 end
10618 end
10619 redef class APlusAssignOp
10620 redef meth n_pluseq=(n: TPluseq)
10621 do
10622 _n_pluseq = n
10623 if n != null then
10624 n.parent = self
10625 end
10626 end
10627
10628 private init empty_init do end
10629
10630 init init_aplusassignop (
10631 n_pluseq: TPluseq
10632 )
10633 do
10634 empty_init
10635 _n_pluseq = n_pluseq
10636 if n_pluseq != null then
10637 n_pluseq.parent = self
10638 end
10639 end
10640
10641 redef meth replace_child(old_child: PNode, new_child: PNode)
10642 do
10643 assert old_child != null
10644 if _n_pluseq == old_child then
10645 if new_child != null then
10646 new_child.parent = self
10647 assert new_child isa TPluseq
10648 _n_pluseq = new_child
10649 else
10650 _n_pluseq = null
10651 end
10652 return
10653 end
10654 end
10655
10656 redef meth visit_all(v: Visitor)
10657 do
10658 if _n_pluseq != null then
10659 v.visit(_n_pluseq)
10660 end
10661 end
10662
10663 redef meth visit_all_reverse(v: Visitor)
10664 do
10665 if _n_pluseq != null then
10666 v.visit(_n_pluseq)
10667 end
10668 end
10669 end
10670 redef class AMinusAssignOp
10671 redef meth n_minuseq=(n: TMinuseq)
10672 do
10673 _n_minuseq = n
10674 if n != null then
10675 n.parent = self
10676 end
10677 end
10678
10679 private init empty_init do end
10680
10681 init init_aminusassignop (
10682 n_minuseq: TMinuseq
10683 )
10684 do
10685 empty_init
10686 _n_minuseq = n_minuseq
10687 if n_minuseq != null then
10688 n_minuseq.parent = self
10689 end
10690 end
10691
10692 redef meth replace_child(old_child: PNode, new_child: PNode)
10693 do
10694 assert old_child != null
10695 if _n_minuseq == old_child then
10696 if new_child != null then
10697 new_child.parent = self
10698 assert new_child isa TMinuseq
10699 _n_minuseq = new_child
10700 else
10701 _n_minuseq = null
10702 end
10703 return
10704 end
10705 end
10706
10707 redef meth visit_all(v: Visitor)
10708 do
10709 if _n_minuseq != null then
10710 v.visit(_n_minuseq)
10711 end
10712 end
10713
10714 redef meth visit_all_reverse(v: Visitor)
10715 do
10716 if _n_minuseq != null then
10717 v.visit(_n_minuseq)
10718 end
10719 end
10720 end
10721 redef class AClosureDef
10722 redef meth n_kwwith=(n: TKwwith)
10723 do
10724 _n_kwwith = n
10725 if n != null then
10726 n.parent = self
10727 end
10728 end
10729 redef meth n_kwdo=(n: TKwdo)
10730 do
10731 _n_kwdo = n
10732 if n != null then
10733 n.parent = self
10734 end
10735 end
10736 redef meth n_expr=(n: PExpr)
10737 do
10738 _n_expr = n
10739 if n != null then
10740 n.parent = self
10741 end
10742 end
10743
10744 private init empty_init do end
10745
10746 init init_aclosuredef (
10747 n_kwwith: TKwwith ,
10748 n_id: Collection[Object] , # Should be Collection[TId]
10749 n_kwdo: TKwdo ,
10750 n_expr: PExpr
10751 )
10752 do
10753 empty_init
10754 _n_kwwith = n_kwwith
10755 if n_kwwith != null then
10756 n_kwwith.parent = self
10757 end
10758 _n_id = new List[TId]
10759 for n in n_id do
10760 assert n isa TId
10761 _n_id.add(n)
10762 n.parent = self
10763 end
10764 _n_kwdo = n_kwdo
10765 if n_kwdo != null then
10766 n_kwdo.parent = self
10767 end
10768 _n_expr = n_expr
10769 if n_expr != null then
10770 n_expr.parent = self
10771 end
10772 end
10773
10774 redef meth replace_child(old_child: PNode, new_child: PNode)
10775 do
10776 assert old_child != null
10777 if _n_kwwith == old_child then
10778 if new_child != null then
10779 new_child.parent = self
10780 assert new_child isa TKwwith
10781 _n_kwwith = new_child
10782 else
10783 _n_kwwith = null
10784 end
10785 return
10786 end
10787 for i in [0.._n_id.length[ do
10788 if _n_id[i] == old_child then
10789 if new_child != null then
10790 assert new_child isa TId
10791 _n_id[i] = new_child
10792 new_child.parent = self
10793 else
10794 _n_id.remove_at(i)
10795 end
10796 return
10797 end
10798 end
10799 if _n_kwdo == old_child then
10800 if new_child != null then
10801 new_child.parent = self
10802 assert new_child isa TKwdo
10803 _n_kwdo = new_child
10804 else
10805 _n_kwdo = null
10806 end
10807 return
10808 end
10809 if _n_expr == old_child then
10810 if new_child != null then
10811 new_child.parent = self
10812 assert new_child isa PExpr
10813 _n_expr = new_child
10814 else
10815 _n_expr = null
10816 end
10817 return
10818 end
10819 end
10820
10821 redef meth visit_all(v: Visitor)
10822 do
10823 if _n_kwwith != null then
10824 v.visit(_n_kwwith)
10825 end
10826 for n in _n_id do
10827 v.visit(n)
10828 end
10829 if _n_kwdo != null then
10830 v.visit(_n_kwdo)
10831 end
10832 if _n_expr != null then
10833 v.visit(_n_expr)
10834 end
10835 end
10836
10837 redef meth visit_all_reverse(v: Visitor)
10838 do
10839 if _n_kwwith != null then
10840 v.visit(_n_kwwith)
10841 end
10842 do
10843 var i = _n_id.length
10844 while i >= 0 do
10845 v.visit(_n_id[i])
10846 i = i - 1
10847 end
10848 end
10849 if _n_kwdo != null then
10850 v.visit(_n_kwdo)
10851 end
10852 if _n_expr != null then
10853 v.visit(_n_expr)
10854 end
10855 end
10856 end
10857 redef class AQualified
10858 redef meth n_classid=(n: TClassid)
10859 do
10860 _n_classid = n
10861 if n != null then
10862 n.parent = self
10863 end
10864 end
10865
10866 private init empty_init do end
10867
10868 init init_aqualified (
10869 n_id: Collection[Object] , # Should be Collection[TId]
10870 n_classid: TClassid
10871 )
10872 do
10873 empty_init
10874 _n_id = new List[TId]
10875 for n in n_id do
10876 assert n isa TId
10877 _n_id.add(n)
10878 n.parent = self
10879 end
10880 _n_classid = n_classid
10881 if n_classid != null then
10882 n_classid.parent = self
10883 end
10884 end
10885
10886 redef meth replace_child(old_child: PNode, new_child: PNode)
10887 do
10888 assert old_child != null
10889 for i in [0.._n_id.length[ do
10890 if _n_id[i] == old_child then
10891 if new_child != null then
10892 assert new_child isa TId
10893 _n_id[i] = new_child
10894 new_child.parent = self
10895 else
10896 _n_id.remove_at(i)
10897 end
10898 return
10899 end
10900 end
10901 if _n_classid == old_child then
10902 if new_child != null then
10903 new_child.parent = self
10904 assert new_child isa TClassid
10905 _n_classid = new_child
10906 else
10907 _n_classid = null
10908 end
10909 return
10910 end
10911 end
10912
10913 redef meth visit_all(v: Visitor)
10914 do
10915 for n in _n_id do
10916 v.visit(n)
10917 end
10918 if _n_classid != null then
10919 v.visit(_n_classid)
10920 end
10921 end
10922
10923 redef meth visit_all_reverse(v: Visitor)
10924 do
10925 do
10926 var i = _n_id.length
10927 while i >= 0 do
10928 v.visit(_n_id[i])
10929 i = i - 1
10930 end
10931 end
10932 if _n_classid != null then
10933 v.visit(_n_classid)
10934 end
10935 end
10936 end
10937 redef class ADoc
10938
10939 private init empty_init do end
10940
10941 init init_adoc (
10942 n_comment: Collection[Object] # Should be Collection[TComment]
10943 )
10944 do
10945 empty_init
10946 _n_comment = new List[TComment]
10947 for n in n_comment do
10948 assert n isa TComment
10949 _n_comment.add(n)
10950 n.parent = self
10951 end
10952 end
10953
10954 redef meth replace_child(old_child: PNode, new_child: PNode)
10955 do
10956 assert old_child != null
10957 for i in [0.._n_comment.length[ do
10958 if _n_comment[i] == old_child then
10959 if new_child != null then
10960 assert new_child isa TComment
10961 _n_comment[i] = new_child
10962 new_child.parent = self
10963 else
10964 _n_comment.remove_at(i)
10965 end
10966 return
10967 end
10968 end
10969 end
10970
10971 redef meth visit_all(v: Visitor)
10972 do
10973 for n in _n_comment do
10974 v.visit(n)
10975 end
10976 end
10977
10978 redef meth visit_all_reverse(v: Visitor)
10979 do
10980 do
10981 var i = _n_comment.length
10982 while i >= 0 do
10983 v.visit(_n_comment[i])
10984 i = i - 1
10985 end
10986 end
10987 end
10988 end
10989
10990 redef class Start
10991 init(
10992 n_base: PModule,
10993 n_eof: EOF)
10994 do
10995 _n_base = n_base
10996 _n_eof = n_eof
10997 end
10998
10999 redef meth replace_child(old_child: PNode, new_child: PNode)
11000 do
11001 assert old_child != null
11002 if _n_base == old_child then
11003 if new_child == null then
11004 else
11005 new_child.parent = self
11006 assert new_child isa PModule
11007 _n_base = new_child
11008 end
11009 old_child.parent = null
11010 return
11011 end
11012 end
11013
11014 redef meth visit_all(v: Visitor)
11015 do
11016 if _n_base != null then
11017 v.visit(_n_base)
11018 end
11019 end
11020
11021 redef meth visit_all_reverse(v: Visitor)
11022 do
11023 if _n_base != null then
11024 v.visit(_n_base)
11025 end
11026 end
11027 end