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