Enable default closure in syntax
[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_vardecl=(n: PExpr)
5795 do
5796 _n_vardecl = n
5797 if n != null then
5798 n.parent = self
5799 end
5800 end
5801 redef meth n_kwdo=(n: TKwdo)
5802 do
5803 _n_kwdo = n
5804 if n != null then
5805 n.parent = self
5806 end
5807 end
5808 redef meth n_block=(n: PExpr)
5809 do
5810 _n_block = n
5811 if n != null then
5812 n.parent = self
5813 end
5814 end
5815
5816 private init empty_init do end
5817
5818 init init_aforexpr (
5819 n_vardecl: PExpr ,
5820 n_kwdo: TKwdo ,
5821 n_block: PExpr
5822 )
5823 do
5824 empty_init
5825 _n_vardecl = n_vardecl
5826 if n_vardecl != null then
5827 n_vardecl.parent = self
5828 end
5829 _n_kwdo = n_kwdo
5830 if n_kwdo != null then
5831 n_kwdo.parent = self
5832 end
5833 _n_block = n_block
5834 if n_block != null then
5835 n_block.parent = self
5836 end
5837 end
5838
5839 redef meth replace_child(old_child: PNode, new_child: PNode)
5840 do
5841 assert old_child != null
5842 if _n_vardecl == old_child then
5843 if new_child != null then
5844 new_child.parent = self
5845 assert new_child isa PExpr
5846 _n_vardecl = new_child
5847 else
5848 _n_vardecl = null
5849 end
5850 return
5851 end
5852 if _n_kwdo == old_child then
5853 if new_child != null then
5854 new_child.parent = self
5855 assert new_child isa TKwdo
5856 _n_kwdo = new_child
5857 else
5858 _n_kwdo = null
5859 end
5860 return
5861 end
5862 if _n_block == old_child then
5863 if new_child != null then
5864 new_child.parent = self
5865 assert new_child isa PExpr
5866 _n_block = new_child
5867 else
5868 _n_block = null
5869 end
5870 return
5871 end
5872 end
5873
5874 redef meth visit_all(v: Visitor)
5875 do
5876 if _n_vardecl != null then
5877 v.visit(_n_vardecl)
5878 end
5879 if _n_kwdo != null then
5880 v.visit(_n_kwdo)
5881 end
5882 if _n_block != null then
5883 v.visit(_n_block)
5884 end
5885 end
5886
5887 redef meth visit_all_reverse(v: Visitor)
5888 do
5889 if _n_vardecl != null then
5890 v.visit(_n_vardecl)
5891 end
5892 if _n_kwdo != null then
5893 v.visit(_n_kwdo)
5894 end
5895 if _n_block != null then
5896 v.visit(_n_block)
5897 end
5898 end
5899 end
5900 redef class AForVardeclExpr
5901 redef meth n_kwfor=(n: TKwfor)
5902 do
5903 _n_kwfor = n
5904 if n != null then
5905 n.parent = self
5906 end
5907 end
5908 redef meth n_id=(n: TId)
5909 do
5910 _n_id = n
5911 if n != null then
5912 n.parent = self
5913 end
5914 end
5915 redef meth n_expr=(n: PExpr)
5916 do
5917 _n_expr = n
5918 if n != null then
5919 n.parent = self
5920 end
5921 end
5922
5923 private init empty_init do end
5924
5925 init init_aforvardeclexpr (
5926 n_kwfor: TKwfor ,
5927 n_id: TId ,
5928 n_expr: PExpr
5929 )
5930 do
5931 empty_init
5932 _n_kwfor = n_kwfor
5933 if n_kwfor != null then
5934 n_kwfor.parent = self
5935 end
5936 _n_id = n_id
5937 if n_id != null then
5938 n_id.parent = self
5939 end
5940 _n_expr = n_expr
5941 if n_expr != null then
5942 n_expr.parent = self
5943 end
5944 end
5945
5946 redef meth replace_child(old_child: PNode, new_child: PNode)
5947 do
5948 assert old_child != null
5949 if _n_kwfor == old_child then
5950 if new_child != null then
5951 new_child.parent = self
5952 assert new_child isa TKwfor
5953 _n_kwfor = new_child
5954 else
5955 _n_kwfor = null
5956 end
5957 return
5958 end
5959 if _n_id == old_child then
5960 if new_child != null then
5961 new_child.parent = self
5962 assert new_child isa TId
5963 _n_id = new_child
5964 else
5965 _n_id = null
5966 end
5967 return
5968 end
5969 if _n_expr == old_child then
5970 if new_child != null then
5971 new_child.parent = self
5972 assert new_child isa PExpr
5973 _n_expr = new_child
5974 else
5975 _n_expr = null
5976 end
5977 return
5978 end
5979 end
5980
5981 redef meth visit_all(v: Visitor)
5982 do
5983 if _n_kwfor != null then
5984 v.visit(_n_kwfor)
5985 end
5986 if _n_id != null then
5987 v.visit(_n_id)
5988 end
5989 if _n_expr != null then
5990 v.visit(_n_expr)
5991 end
5992 end
5993
5994 redef meth visit_all_reverse(v: Visitor)
5995 do
5996 if _n_kwfor != null then
5997 v.visit(_n_kwfor)
5998 end
5999 if _n_id != null then
6000 v.visit(_n_id)
6001 end
6002 if _n_expr != null then
6003 v.visit(_n_expr)
6004 end
6005 end
6006 end
6007 redef class AAssertExpr
6008 redef meth n_kwassert=(n: TKwassert)
6009 do
6010 _n_kwassert = n
6011 if n != null then
6012 n.parent = self
6013 end
6014 end
6015 redef meth n_id=(n: TId)
6016 do
6017 _n_id = n
6018 if n != null then
6019 n.parent = self
6020 end
6021 end
6022 redef meth n_expr=(n: PExpr)
6023 do
6024 _n_expr = n
6025 if n != null then
6026 n.parent = self
6027 end
6028 end
6029
6030 private init empty_init do end
6031
6032 init init_aassertexpr (
6033 n_kwassert: TKwassert ,
6034 n_id: TId ,
6035 n_expr: PExpr
6036 )
6037 do
6038 empty_init
6039 _n_kwassert = n_kwassert
6040 if n_kwassert != null then
6041 n_kwassert.parent = self
6042 end
6043 _n_id = n_id
6044 if n_id != null then
6045 n_id.parent = self
6046 end
6047 _n_expr = n_expr
6048 if n_expr != null then
6049 n_expr.parent = self
6050 end
6051 end
6052
6053 redef meth replace_child(old_child: PNode, new_child: PNode)
6054 do
6055 assert old_child != null
6056 if _n_kwassert == old_child then
6057 if new_child != null then
6058 new_child.parent = self
6059 assert new_child isa TKwassert
6060 _n_kwassert = new_child
6061 else
6062 _n_kwassert = null
6063 end
6064 return
6065 end
6066 if _n_id == old_child then
6067 if new_child != null then
6068 new_child.parent = self
6069 assert new_child isa TId
6070 _n_id = new_child
6071 else
6072 _n_id = null
6073 end
6074 return
6075 end
6076 if _n_expr == old_child then
6077 if new_child != null then
6078 new_child.parent = self
6079 assert new_child isa PExpr
6080 _n_expr = new_child
6081 else
6082 _n_expr = null
6083 end
6084 return
6085 end
6086 end
6087
6088 redef meth visit_all(v: Visitor)
6089 do
6090 if _n_kwassert != null then
6091 v.visit(_n_kwassert)
6092 end
6093 if _n_id != null then
6094 v.visit(_n_id)
6095 end
6096 if _n_expr != null then
6097 v.visit(_n_expr)
6098 end
6099 end
6100
6101 redef meth visit_all_reverse(v: Visitor)
6102 do
6103 if _n_kwassert != null then
6104 v.visit(_n_kwassert)
6105 end
6106 if _n_id != null then
6107 v.visit(_n_id)
6108 end
6109 if _n_expr != null then
6110 v.visit(_n_expr)
6111 end
6112 end
6113 end
6114 redef class AOnceExpr
6115 redef meth n_kwonce=(n: TKwonce)
6116 do
6117 _n_kwonce = n
6118 if n != null then
6119 n.parent = self
6120 end
6121 end
6122 redef meth n_expr=(n: PExpr)
6123 do
6124 _n_expr = n
6125 if n != null then
6126 n.parent = self
6127 end
6128 end
6129
6130 private init empty_init do end
6131
6132 init init_aonceexpr (
6133 n_kwonce: TKwonce ,
6134 n_expr: PExpr
6135 )
6136 do
6137 empty_init
6138 _n_kwonce = n_kwonce
6139 if n_kwonce != null then
6140 n_kwonce.parent = self
6141 end
6142 _n_expr = n_expr
6143 if n_expr != null then
6144 n_expr.parent = self
6145 end
6146 end
6147
6148 redef meth replace_child(old_child: PNode, new_child: PNode)
6149 do
6150 assert old_child != null
6151 if _n_kwonce == old_child then
6152 if new_child != null then
6153 new_child.parent = self
6154 assert new_child isa TKwonce
6155 _n_kwonce = new_child
6156 else
6157 _n_kwonce = null
6158 end
6159 return
6160 end
6161 if _n_expr == old_child then
6162 if new_child != null then
6163 new_child.parent = self
6164 assert new_child isa PExpr
6165 _n_expr = new_child
6166 else
6167 _n_expr = null
6168 end
6169 return
6170 end
6171 end
6172
6173 redef meth visit_all(v: Visitor)
6174 do
6175 if _n_kwonce != null then
6176 v.visit(_n_kwonce)
6177 end
6178 if _n_expr != null then
6179 v.visit(_n_expr)
6180 end
6181 end
6182
6183 redef meth visit_all_reverse(v: Visitor)
6184 do
6185 if _n_kwonce != null then
6186 v.visit(_n_kwonce)
6187 end
6188 if _n_expr != null then
6189 v.visit(_n_expr)
6190 end
6191 end
6192 end
6193 redef class ASendExpr
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
6202 private init empty_init do end
6203
6204 init init_asendexpr (
6205 n_expr: PExpr
6206 )
6207 do
6208 empty_init
6209 _n_expr = n_expr
6210 if n_expr != null then
6211 n_expr.parent = self
6212 end
6213 end
6214
6215 redef meth replace_child(old_child: PNode, new_child: PNode)
6216 do
6217 assert old_child != null
6218 if _n_expr == old_child then
6219 if new_child != null then
6220 new_child.parent = self
6221 assert new_child isa PExpr
6222 _n_expr = new_child
6223 else
6224 _n_expr = null
6225 end
6226 return
6227 end
6228 end
6229
6230 redef meth visit_all(v: Visitor)
6231 do
6232 if _n_expr != null then
6233 v.visit(_n_expr)
6234 end
6235 end
6236
6237 redef meth visit_all_reverse(v: Visitor)
6238 do
6239 if _n_expr != null then
6240 v.visit(_n_expr)
6241 end
6242 end
6243 end
6244 redef class ABinopExpr
6245 redef meth n_expr=(n: PExpr)
6246 do
6247 _n_expr = n
6248 if n != null then
6249 n.parent = self
6250 end
6251 end
6252 redef meth n_expr2=(n: PExpr)
6253 do
6254 _n_expr2 = n
6255 if n != null then
6256 n.parent = self
6257 end
6258 end
6259
6260 private init empty_init do end
6261
6262 init init_abinopexpr (
6263 n_expr: PExpr ,
6264 n_expr2: PExpr
6265 )
6266 do
6267 empty_init
6268 _n_expr = n_expr
6269 if n_expr != null then
6270 n_expr.parent = self
6271 end
6272 _n_expr2 = n_expr2
6273 if n_expr2 != null then
6274 n_expr2.parent = self
6275 end
6276 end
6277
6278 redef meth replace_child(old_child: PNode, new_child: PNode)
6279 do
6280 assert old_child != null
6281 if _n_expr == old_child then
6282 if new_child != null then
6283 new_child.parent = self
6284 assert new_child isa PExpr
6285 _n_expr = new_child
6286 else
6287 _n_expr = null
6288 end
6289 return
6290 end
6291 if _n_expr2 == old_child then
6292 if new_child != null then
6293 new_child.parent = self
6294 assert new_child isa PExpr
6295 _n_expr2 = new_child
6296 else
6297 _n_expr2 = null
6298 end
6299 return
6300 end
6301 end
6302
6303 redef meth visit_all(v: Visitor)
6304 do
6305 if _n_expr != null then
6306 v.visit(_n_expr)
6307 end
6308 if _n_expr2 != null then
6309 v.visit(_n_expr2)
6310 end
6311 end
6312
6313 redef meth visit_all_reverse(v: Visitor)
6314 do
6315 if _n_expr != null then
6316 v.visit(_n_expr)
6317 end
6318 if _n_expr2 != null then
6319 v.visit(_n_expr2)
6320 end
6321 end
6322 end
6323 redef class AOrExpr
6324 redef meth n_expr=(n: PExpr)
6325 do
6326 _n_expr = n
6327 if n != null then
6328 n.parent = self
6329 end
6330 end
6331 redef meth n_expr2=(n: PExpr)
6332 do
6333 _n_expr2 = n
6334 if n != null then
6335 n.parent = self
6336 end
6337 end
6338
6339 private init empty_init do end
6340
6341 init init_aorexpr (
6342 n_expr: PExpr ,
6343 n_expr2: PExpr
6344 )
6345 do
6346 empty_init
6347 _n_expr = n_expr
6348 if n_expr != null then
6349 n_expr.parent = self
6350 end
6351 _n_expr2 = n_expr2
6352 if n_expr2 != null then
6353 n_expr2.parent = self
6354 end
6355 end
6356
6357 redef meth replace_child(old_child: PNode, new_child: PNode)
6358 do
6359 assert old_child != null
6360 if _n_expr == old_child then
6361 if new_child != null then
6362 new_child.parent = self
6363 assert new_child isa PExpr
6364 _n_expr = new_child
6365 else
6366 _n_expr = null
6367 end
6368 return
6369 end
6370 if _n_expr2 == old_child then
6371 if new_child != null then
6372 new_child.parent = self
6373 assert new_child isa PExpr
6374 _n_expr2 = new_child
6375 else
6376 _n_expr2 = null
6377 end
6378 return
6379 end
6380 end
6381
6382 redef meth visit_all(v: Visitor)
6383 do
6384 if _n_expr != null then
6385 v.visit(_n_expr)
6386 end
6387 if _n_expr2 != null then
6388 v.visit(_n_expr2)
6389 end
6390 end
6391
6392 redef meth visit_all_reverse(v: Visitor)
6393 do
6394 if _n_expr != null then
6395 v.visit(_n_expr)
6396 end
6397 if _n_expr2 != null then
6398 v.visit(_n_expr2)
6399 end
6400 end
6401 end
6402 redef class AAndExpr
6403 redef meth n_expr=(n: PExpr)
6404 do
6405 _n_expr = n
6406 if n != null then
6407 n.parent = self
6408 end
6409 end
6410 redef meth n_expr2=(n: PExpr)
6411 do
6412 _n_expr2 = n
6413 if n != null then
6414 n.parent = self
6415 end
6416 end
6417
6418 private init empty_init do end
6419
6420 init init_aandexpr (
6421 n_expr: PExpr ,
6422 n_expr2: PExpr
6423 )
6424 do
6425 empty_init
6426 _n_expr = n_expr
6427 if n_expr != null then
6428 n_expr.parent = self
6429 end
6430 _n_expr2 = n_expr2
6431 if n_expr2 != null then
6432 n_expr2.parent = self
6433 end
6434 end
6435
6436 redef meth replace_child(old_child: PNode, new_child: PNode)
6437 do
6438 assert old_child != null
6439 if _n_expr == old_child then
6440 if new_child != null then
6441 new_child.parent = self
6442 assert new_child isa PExpr
6443 _n_expr = new_child
6444 else
6445 _n_expr = null
6446 end
6447 return
6448 end
6449 if _n_expr2 == old_child then
6450 if new_child != null then
6451 new_child.parent = self
6452 assert new_child isa PExpr
6453 _n_expr2 = new_child
6454 else
6455 _n_expr2 = null
6456 end
6457 return
6458 end
6459 end
6460
6461 redef meth visit_all(v: Visitor)
6462 do
6463 if _n_expr != null then
6464 v.visit(_n_expr)
6465 end
6466 if _n_expr2 != null then
6467 v.visit(_n_expr2)
6468 end
6469 end
6470
6471 redef meth visit_all_reverse(v: Visitor)
6472 do
6473 if _n_expr != null then
6474 v.visit(_n_expr)
6475 end
6476 if _n_expr2 != null then
6477 v.visit(_n_expr2)
6478 end
6479 end
6480 end
6481 redef class ANotExpr
6482 redef meth n_kwnot=(n: TKwnot)
6483 do
6484 _n_kwnot = n
6485 if n != null then
6486 n.parent = self
6487 end
6488 end
6489 redef meth n_expr=(n: PExpr)
6490 do
6491 _n_expr = n
6492 if n != null then
6493 n.parent = self
6494 end
6495 end
6496
6497 private init empty_init do end
6498
6499 init init_anotexpr (
6500 n_kwnot: TKwnot ,
6501 n_expr: PExpr
6502 )
6503 do
6504 empty_init
6505 _n_kwnot = n_kwnot
6506 if n_kwnot != null then
6507 n_kwnot.parent = self
6508 end
6509 _n_expr = n_expr
6510 if n_expr != null then
6511 n_expr.parent = self
6512 end
6513 end
6514
6515 redef meth replace_child(old_child: PNode, new_child: PNode)
6516 do
6517 assert old_child != null
6518 if _n_kwnot == old_child then
6519 if new_child != null then
6520 new_child.parent = self
6521 assert new_child isa TKwnot
6522 _n_kwnot = new_child
6523 else
6524 _n_kwnot = null
6525 end
6526 return
6527 end
6528 if _n_expr == old_child then
6529 if new_child != null then
6530 new_child.parent = self
6531 assert new_child isa PExpr
6532 _n_expr = new_child
6533 else
6534 _n_expr = null
6535 end
6536 return
6537 end
6538 end
6539
6540 redef meth visit_all(v: Visitor)
6541 do
6542 if _n_kwnot != null then
6543 v.visit(_n_kwnot)
6544 end
6545 if _n_expr != null then
6546 v.visit(_n_expr)
6547 end
6548 end
6549
6550 redef meth visit_all_reverse(v: Visitor)
6551 do
6552 if _n_kwnot != null then
6553 v.visit(_n_kwnot)
6554 end
6555 if _n_expr != null then
6556 v.visit(_n_expr)
6557 end
6558 end
6559 end
6560 redef class AEqExpr
6561 redef meth n_expr=(n: PExpr)
6562 do
6563 _n_expr = n
6564 if n != null then
6565 n.parent = self
6566 end
6567 end
6568 redef meth n_expr2=(n: PExpr)
6569 do
6570 _n_expr2 = n
6571 if n != null then
6572 n.parent = self
6573 end
6574 end
6575
6576 private init empty_init do end
6577
6578 init init_aeqexpr (
6579 n_expr: PExpr ,
6580 n_expr2: PExpr
6581 )
6582 do
6583 empty_init
6584 _n_expr = n_expr
6585 if n_expr != null then
6586 n_expr.parent = self
6587 end
6588 _n_expr2 = n_expr2
6589 if n_expr2 != null then
6590 n_expr2.parent = self
6591 end
6592 end
6593
6594 redef meth replace_child(old_child: PNode, new_child: PNode)
6595 do
6596 assert old_child != null
6597 if _n_expr == old_child then
6598 if new_child != null then
6599 new_child.parent = self
6600 assert new_child isa PExpr
6601 _n_expr = new_child
6602 else
6603 _n_expr = null
6604 end
6605 return
6606 end
6607 if _n_expr2 == old_child then
6608 if new_child != null then
6609 new_child.parent = self
6610 assert new_child isa PExpr
6611 _n_expr2 = new_child
6612 else
6613 _n_expr2 = null
6614 end
6615 return
6616 end
6617 end
6618
6619 redef meth visit_all(v: Visitor)
6620 do
6621 if _n_expr != null then
6622 v.visit(_n_expr)
6623 end
6624 if _n_expr2 != null then
6625 v.visit(_n_expr2)
6626 end
6627 end
6628
6629 redef meth visit_all_reverse(v: Visitor)
6630 do
6631 if _n_expr != null then
6632 v.visit(_n_expr)
6633 end
6634 if _n_expr2 != null then
6635 v.visit(_n_expr2)
6636 end
6637 end
6638 end
6639 redef class AEeExpr
6640 redef meth n_expr=(n: PExpr)
6641 do
6642 _n_expr = n
6643 if n != null then
6644 n.parent = self
6645 end
6646 end
6647 redef meth n_expr2=(n: PExpr)
6648 do
6649 _n_expr2 = n
6650 if n != null then
6651 n.parent = self
6652 end
6653 end
6654
6655 private init empty_init do end
6656
6657 init init_aeeexpr (
6658 n_expr: PExpr ,
6659 n_expr2: PExpr
6660 )
6661 do
6662 empty_init
6663 _n_expr = n_expr
6664 if n_expr != null then
6665 n_expr.parent = self
6666 end
6667 _n_expr2 = n_expr2
6668 if n_expr2 != null then
6669 n_expr2.parent = self
6670 end
6671 end
6672
6673 redef meth replace_child(old_child: PNode, new_child: PNode)
6674 do
6675 assert old_child != null
6676 if _n_expr == old_child then
6677 if new_child != null then
6678 new_child.parent = self
6679 assert new_child isa PExpr
6680 _n_expr = new_child
6681 else
6682 _n_expr = null
6683 end
6684 return
6685 end
6686 if _n_expr2 == old_child then
6687 if new_child != null then
6688 new_child.parent = self
6689 assert new_child isa PExpr
6690 _n_expr2 = new_child
6691 else
6692 _n_expr2 = null
6693 end
6694 return
6695 end
6696 end
6697
6698 redef meth visit_all(v: Visitor)
6699 do
6700 if _n_expr != null then
6701 v.visit(_n_expr)
6702 end
6703 if _n_expr2 != null then
6704 v.visit(_n_expr2)
6705 end
6706 end
6707
6708 redef meth visit_all_reverse(v: Visitor)
6709 do
6710 if _n_expr != null then
6711 v.visit(_n_expr)
6712 end
6713 if _n_expr2 != null then
6714 v.visit(_n_expr2)
6715 end
6716 end
6717 end
6718 redef class ANeExpr
6719 redef meth n_expr=(n: PExpr)
6720 do
6721 _n_expr = n
6722 if n != null then
6723 n.parent = self
6724 end
6725 end
6726 redef meth n_expr2=(n: PExpr)
6727 do
6728 _n_expr2 = n
6729 if n != null then
6730 n.parent = self
6731 end
6732 end
6733
6734 private init empty_init do end
6735
6736 init init_aneexpr (
6737 n_expr: PExpr ,
6738 n_expr2: PExpr
6739 )
6740 do
6741 empty_init
6742 _n_expr = n_expr
6743 if n_expr != null then
6744 n_expr.parent = self
6745 end
6746 _n_expr2 = n_expr2
6747 if n_expr2 != null then
6748 n_expr2.parent = self
6749 end
6750 end
6751
6752 redef meth replace_child(old_child: PNode, new_child: PNode)
6753 do
6754 assert old_child != null
6755 if _n_expr == old_child then
6756 if new_child != null then
6757 new_child.parent = self
6758 assert new_child isa PExpr
6759 _n_expr = new_child
6760 else
6761 _n_expr = null
6762 end
6763 return
6764 end
6765 if _n_expr2 == old_child then
6766 if new_child != null then
6767 new_child.parent = self
6768 assert new_child isa PExpr
6769 _n_expr2 = new_child
6770 else
6771 _n_expr2 = null
6772 end
6773 return
6774 end
6775 end
6776
6777 redef meth visit_all(v: Visitor)
6778 do
6779 if _n_expr != null then
6780 v.visit(_n_expr)
6781 end
6782 if _n_expr2 != null then
6783 v.visit(_n_expr2)
6784 end
6785 end
6786
6787 redef meth visit_all_reverse(v: Visitor)
6788 do
6789 if _n_expr != null then
6790 v.visit(_n_expr)
6791 end
6792 if _n_expr2 != null then
6793 v.visit(_n_expr2)
6794 end
6795 end
6796 end
6797 redef class ALtExpr
6798 redef meth n_expr=(n: PExpr)
6799 do
6800 _n_expr = n
6801 if n != null then
6802 n.parent = self
6803 end
6804 end
6805 redef meth n_expr2=(n: PExpr)
6806 do
6807 _n_expr2 = n
6808 if n != null then
6809 n.parent = self
6810 end
6811 end
6812
6813 private init empty_init do end
6814
6815 init init_altexpr (
6816 n_expr: PExpr ,
6817 n_expr2: PExpr
6818 )
6819 do
6820 empty_init
6821 _n_expr = n_expr
6822 if n_expr != null then
6823 n_expr.parent = self
6824 end
6825 _n_expr2 = n_expr2
6826 if n_expr2 != null then
6827 n_expr2.parent = self
6828 end
6829 end
6830
6831 redef meth replace_child(old_child: PNode, new_child: PNode)
6832 do
6833 assert old_child != null
6834 if _n_expr == old_child then
6835 if new_child != null then
6836 new_child.parent = self
6837 assert new_child isa PExpr
6838 _n_expr = new_child
6839 else
6840 _n_expr = null
6841 end
6842 return
6843 end
6844 if _n_expr2 == old_child then
6845 if new_child != null then
6846 new_child.parent = self
6847 assert new_child isa PExpr
6848 _n_expr2 = new_child
6849 else
6850 _n_expr2 = null
6851 end
6852 return
6853 end
6854 end
6855
6856 redef meth visit_all(v: Visitor)
6857 do
6858 if _n_expr != null then
6859 v.visit(_n_expr)
6860 end
6861 if _n_expr2 != null then
6862 v.visit(_n_expr2)
6863 end
6864 end
6865
6866 redef meth visit_all_reverse(v: Visitor)
6867 do
6868 if _n_expr != null then
6869 v.visit(_n_expr)
6870 end
6871 if _n_expr2 != null then
6872 v.visit(_n_expr2)
6873 end
6874 end
6875 end
6876 redef class ALeExpr
6877 redef meth n_expr=(n: PExpr)
6878 do
6879 _n_expr = n
6880 if n != null then
6881 n.parent = self
6882 end
6883 end
6884 redef meth n_expr2=(n: PExpr)
6885 do
6886 _n_expr2 = n
6887 if n != null then
6888 n.parent = self
6889 end
6890 end
6891
6892 private init empty_init do end
6893
6894 init init_aleexpr (
6895 n_expr: PExpr ,
6896 n_expr2: PExpr
6897 )
6898 do
6899 empty_init
6900 _n_expr = n_expr
6901 if n_expr != null then
6902 n_expr.parent = self
6903 end
6904 _n_expr2 = n_expr2
6905 if n_expr2 != null then
6906 n_expr2.parent = self
6907 end
6908 end
6909
6910 redef meth replace_child(old_child: PNode, new_child: PNode)
6911 do
6912 assert old_child != null
6913 if _n_expr == old_child then
6914 if new_child != null then
6915 new_child.parent = self
6916 assert new_child isa PExpr
6917 _n_expr = new_child
6918 else
6919 _n_expr = null
6920 end
6921 return
6922 end
6923 if _n_expr2 == old_child then
6924 if new_child != null then
6925 new_child.parent = self
6926 assert new_child isa PExpr
6927 _n_expr2 = new_child
6928 else
6929 _n_expr2 = null
6930 end
6931 return
6932 end
6933 end
6934
6935 redef meth visit_all(v: Visitor)
6936 do
6937 if _n_expr != null then
6938 v.visit(_n_expr)
6939 end
6940 if _n_expr2 != null then
6941 v.visit(_n_expr2)
6942 end
6943 end
6944
6945 redef meth visit_all_reverse(v: Visitor)
6946 do
6947 if _n_expr != null then
6948 v.visit(_n_expr)
6949 end
6950 if _n_expr2 != null then
6951 v.visit(_n_expr2)
6952 end
6953 end
6954 end
6955 redef class AGtExpr
6956 redef meth n_expr=(n: PExpr)
6957 do
6958 _n_expr = n
6959 if n != null then
6960 n.parent = self
6961 end
6962 end
6963 redef meth n_expr2=(n: PExpr)
6964 do
6965 _n_expr2 = n
6966 if n != null then
6967 n.parent = self
6968 end
6969 end
6970
6971 private init empty_init do end
6972
6973 init init_agtexpr (
6974 n_expr: PExpr ,
6975 n_expr2: PExpr
6976 )
6977 do
6978 empty_init
6979 _n_expr = n_expr
6980 if n_expr != null then
6981 n_expr.parent = self
6982 end
6983 _n_expr2 = n_expr2
6984 if n_expr2 != null then
6985 n_expr2.parent = self
6986 end
6987 end
6988
6989 redef meth replace_child(old_child: PNode, new_child: PNode)
6990 do
6991 assert old_child != null
6992 if _n_expr == old_child then
6993 if new_child != null then
6994 new_child.parent = self
6995 assert new_child isa PExpr
6996 _n_expr = new_child
6997 else
6998 _n_expr = null
6999 end
7000 return
7001 end
7002 if _n_expr2 == old_child then
7003 if new_child != null then
7004 new_child.parent = self
7005 assert new_child isa PExpr
7006 _n_expr2 = new_child
7007 else
7008 _n_expr2 = null
7009 end
7010 return
7011 end
7012 end
7013
7014 redef meth visit_all(v: Visitor)
7015 do
7016 if _n_expr != null then
7017 v.visit(_n_expr)
7018 end
7019 if _n_expr2 != null then
7020 v.visit(_n_expr2)
7021 end
7022 end
7023
7024 redef meth visit_all_reverse(v: Visitor)
7025 do
7026 if _n_expr != null then
7027 v.visit(_n_expr)
7028 end
7029 if _n_expr2 != null then
7030 v.visit(_n_expr2)
7031 end
7032 end
7033 end
7034 redef class AGeExpr
7035 redef meth n_expr=(n: PExpr)
7036 do
7037 _n_expr = n
7038 if n != null then
7039 n.parent = self
7040 end
7041 end
7042 redef meth n_expr2=(n: PExpr)
7043 do
7044 _n_expr2 = n
7045 if n != null then
7046 n.parent = self
7047 end
7048 end
7049
7050 private init empty_init do end
7051
7052 init init_ageexpr (
7053 n_expr: PExpr ,
7054 n_expr2: PExpr
7055 )
7056 do
7057 empty_init
7058 _n_expr = n_expr
7059 if n_expr != null then
7060 n_expr.parent = self
7061 end
7062 _n_expr2 = n_expr2
7063 if n_expr2 != null then
7064 n_expr2.parent = self
7065 end
7066 end
7067
7068 redef meth replace_child(old_child: PNode, new_child: PNode)
7069 do
7070 assert old_child != null
7071 if _n_expr == old_child then
7072 if new_child != null then
7073 new_child.parent = self
7074 assert new_child isa PExpr
7075 _n_expr = new_child
7076 else
7077 _n_expr = null
7078 end
7079 return
7080 end
7081 if _n_expr2 == old_child then
7082 if new_child != null then
7083 new_child.parent = self
7084 assert new_child isa PExpr
7085 _n_expr2 = new_child
7086 else
7087 _n_expr2 = null
7088 end
7089 return
7090 end
7091 end
7092
7093 redef meth visit_all(v: Visitor)
7094 do
7095 if _n_expr != null then
7096 v.visit(_n_expr)
7097 end
7098 if _n_expr2 != null then
7099 v.visit(_n_expr2)
7100 end
7101 end
7102
7103 redef meth visit_all_reverse(v: Visitor)
7104 do
7105 if _n_expr != null then
7106 v.visit(_n_expr)
7107 end
7108 if _n_expr2 != null then
7109 v.visit(_n_expr2)
7110 end
7111 end
7112 end
7113 redef class AIsaExpr
7114 redef meth n_expr=(n: PExpr)
7115 do
7116 _n_expr = n
7117 if n != null then
7118 n.parent = self
7119 end
7120 end
7121 redef meth n_type=(n: PType)
7122 do
7123 _n_type = n
7124 if n != null then
7125 n.parent = self
7126 end
7127 end
7128
7129 private init empty_init do end
7130
7131 init init_aisaexpr (
7132 n_expr: PExpr ,
7133 n_type: PType
7134 )
7135 do
7136 empty_init
7137 _n_expr = n_expr
7138 if n_expr != null then
7139 n_expr.parent = self
7140 end
7141 _n_type = n_type
7142 if n_type != null then
7143 n_type.parent = self
7144 end
7145 end
7146
7147 redef meth replace_child(old_child: PNode, new_child: PNode)
7148 do
7149 assert old_child != null
7150 if _n_expr == old_child then
7151 if new_child != null then
7152 new_child.parent = self
7153 assert new_child isa PExpr
7154 _n_expr = new_child
7155 else
7156 _n_expr = null
7157 end
7158 return
7159 end
7160 if _n_type == old_child then
7161 if new_child != null then
7162 new_child.parent = self
7163 assert new_child isa PType
7164 _n_type = new_child
7165 else
7166 _n_type = null
7167 end
7168 return
7169 end
7170 end
7171
7172 redef meth visit_all(v: Visitor)
7173 do
7174 if _n_expr != null then
7175 v.visit(_n_expr)
7176 end
7177 if _n_type != null then
7178 v.visit(_n_type)
7179 end
7180 end
7181
7182 redef meth visit_all_reverse(v: Visitor)
7183 do
7184 if _n_expr != null then
7185 v.visit(_n_expr)
7186 end
7187 if _n_type != null then
7188 v.visit(_n_type)
7189 end
7190 end
7191 end
7192 redef class APlusExpr
7193 redef meth n_expr=(n: PExpr)
7194 do
7195 _n_expr = n
7196 if n != null then
7197 n.parent = self
7198 end
7199 end
7200 redef meth n_expr2=(n: PExpr)
7201 do
7202 _n_expr2 = n
7203 if n != null then
7204 n.parent = self
7205 end
7206 end
7207
7208 private init empty_init do end
7209
7210 init init_aplusexpr (
7211 n_expr: PExpr ,
7212 n_expr2: PExpr
7213 )
7214 do
7215 empty_init
7216 _n_expr = n_expr
7217 if n_expr != null then
7218 n_expr.parent = self
7219 end
7220 _n_expr2 = n_expr2
7221 if n_expr2 != null then
7222 n_expr2.parent = self
7223 end
7224 end
7225
7226 redef meth replace_child(old_child: PNode, new_child: PNode)
7227 do
7228 assert old_child != null
7229 if _n_expr == old_child then
7230 if new_child != null then
7231 new_child.parent = self
7232 assert new_child isa PExpr
7233 _n_expr = new_child
7234 else
7235 _n_expr = null
7236 end
7237 return
7238 end
7239 if _n_expr2 == old_child then
7240 if new_child != null then
7241 new_child.parent = self
7242 assert new_child isa PExpr
7243 _n_expr2 = new_child
7244 else
7245 _n_expr2 = null
7246 end
7247 return
7248 end
7249 end
7250
7251 redef meth visit_all(v: Visitor)
7252 do
7253 if _n_expr != null then
7254 v.visit(_n_expr)
7255 end
7256 if _n_expr2 != null then
7257 v.visit(_n_expr2)
7258 end
7259 end
7260
7261 redef meth visit_all_reverse(v: Visitor)
7262 do
7263 if _n_expr != null then
7264 v.visit(_n_expr)
7265 end
7266 if _n_expr2 != null then
7267 v.visit(_n_expr2)
7268 end
7269 end
7270 end
7271 redef class AMinusExpr
7272 redef meth n_expr=(n: PExpr)
7273 do
7274 _n_expr = n
7275 if n != null then
7276 n.parent = self
7277 end
7278 end
7279 redef meth n_expr2=(n: PExpr)
7280 do
7281 _n_expr2 = n
7282 if n != null then
7283 n.parent = self
7284 end
7285 end
7286
7287 private init empty_init do end
7288
7289 init init_aminusexpr (
7290 n_expr: PExpr ,
7291 n_expr2: PExpr
7292 )
7293 do
7294 empty_init
7295 _n_expr = n_expr
7296 if n_expr != null then
7297 n_expr.parent = self
7298 end
7299 _n_expr2 = n_expr2
7300 if n_expr2 != null then
7301 n_expr2.parent = self
7302 end
7303 end
7304
7305 redef meth replace_child(old_child: PNode, new_child: PNode)
7306 do
7307 assert old_child != null
7308 if _n_expr == old_child then
7309 if new_child != null then
7310 new_child.parent = self
7311 assert new_child isa PExpr
7312 _n_expr = new_child
7313 else
7314 _n_expr = null
7315 end
7316 return
7317 end
7318 if _n_expr2 == old_child then
7319 if new_child != null then
7320 new_child.parent = self
7321 assert new_child isa PExpr
7322 _n_expr2 = new_child
7323 else
7324 _n_expr2 = null
7325 end
7326 return
7327 end
7328 end
7329
7330 redef meth visit_all(v: Visitor)
7331 do
7332 if _n_expr != null then
7333 v.visit(_n_expr)
7334 end
7335 if _n_expr2 != null then
7336 v.visit(_n_expr2)
7337 end
7338 end
7339
7340 redef meth visit_all_reverse(v: Visitor)
7341 do
7342 if _n_expr != null then
7343 v.visit(_n_expr)
7344 end
7345 if _n_expr2 != null then
7346 v.visit(_n_expr2)
7347 end
7348 end
7349 end
7350 redef class AStarshipExpr
7351 redef meth n_expr=(n: PExpr)
7352 do
7353 _n_expr = n
7354 if n != null then
7355 n.parent = self
7356 end
7357 end
7358 redef meth n_expr2=(n: PExpr)
7359 do
7360 _n_expr2 = n
7361 if n != null then
7362 n.parent = self
7363 end
7364 end
7365
7366 private init empty_init do end
7367
7368 init init_astarshipexpr (
7369 n_expr: PExpr ,
7370 n_expr2: PExpr
7371 )
7372 do
7373 empty_init
7374 _n_expr = n_expr
7375 if n_expr != null then
7376 n_expr.parent = self
7377 end
7378 _n_expr2 = n_expr2
7379 if n_expr2 != null then
7380 n_expr2.parent = self
7381 end
7382 end
7383
7384 redef meth replace_child(old_child: PNode, new_child: PNode)
7385 do
7386 assert old_child != null
7387 if _n_expr == old_child then
7388 if new_child != null then
7389 new_child.parent = self
7390 assert new_child isa PExpr
7391 _n_expr = new_child
7392 else
7393 _n_expr = null
7394 end
7395 return
7396 end
7397 if _n_expr2 == old_child then
7398 if new_child != null then
7399 new_child.parent = self
7400 assert new_child isa PExpr
7401 _n_expr2 = new_child
7402 else
7403 _n_expr2 = null
7404 end
7405 return
7406 end
7407 end
7408
7409 redef meth visit_all(v: Visitor)
7410 do
7411 if _n_expr != null then
7412 v.visit(_n_expr)
7413 end
7414 if _n_expr2 != null then
7415 v.visit(_n_expr2)
7416 end
7417 end
7418
7419 redef meth visit_all_reverse(v: Visitor)
7420 do
7421 if _n_expr != null then
7422 v.visit(_n_expr)
7423 end
7424 if _n_expr2 != null then
7425 v.visit(_n_expr2)
7426 end
7427 end
7428 end
7429 redef class AStarExpr
7430 redef meth n_expr=(n: PExpr)
7431 do
7432 _n_expr = n
7433 if n != null then
7434 n.parent = self
7435 end
7436 end
7437 redef meth n_expr2=(n: PExpr)
7438 do
7439 _n_expr2 = n
7440 if n != null then
7441 n.parent = self
7442 end
7443 end
7444
7445 private init empty_init do end
7446
7447 init init_astarexpr (
7448 n_expr: PExpr ,
7449 n_expr2: PExpr
7450 )
7451 do
7452 empty_init
7453 _n_expr = n_expr
7454 if n_expr != null then
7455 n_expr.parent = self
7456 end
7457 _n_expr2 = n_expr2
7458 if n_expr2 != null then
7459 n_expr2.parent = self
7460 end
7461 end
7462
7463 redef meth replace_child(old_child: PNode, new_child: PNode)
7464 do
7465 assert old_child != null
7466 if _n_expr == old_child then
7467 if new_child != null then
7468 new_child.parent = self
7469 assert new_child isa PExpr
7470 _n_expr = new_child
7471 else
7472 _n_expr = null
7473 end
7474 return
7475 end
7476 if _n_expr2 == old_child then
7477 if new_child != null then
7478 new_child.parent = self
7479 assert new_child isa PExpr
7480 _n_expr2 = new_child
7481 else
7482 _n_expr2 = null
7483 end
7484 return
7485 end
7486 end
7487
7488 redef meth visit_all(v: Visitor)
7489 do
7490 if _n_expr != null then
7491 v.visit(_n_expr)
7492 end
7493 if _n_expr2 != null then
7494 v.visit(_n_expr2)
7495 end
7496 end
7497
7498 redef meth visit_all_reverse(v: Visitor)
7499 do
7500 if _n_expr != null then
7501 v.visit(_n_expr)
7502 end
7503 if _n_expr2 != null then
7504 v.visit(_n_expr2)
7505 end
7506 end
7507 end
7508 redef class ASlashExpr
7509 redef meth n_expr=(n: PExpr)
7510 do
7511 _n_expr = n
7512 if n != null then
7513 n.parent = self
7514 end
7515 end
7516 redef meth n_expr2=(n: PExpr)
7517 do
7518 _n_expr2 = n
7519 if n != null then
7520 n.parent = self
7521 end
7522 end
7523
7524 private init empty_init do end
7525
7526 init init_aslashexpr (
7527 n_expr: PExpr ,
7528 n_expr2: PExpr
7529 )
7530 do
7531 empty_init
7532 _n_expr = n_expr
7533 if n_expr != null then
7534 n_expr.parent = self
7535 end
7536 _n_expr2 = n_expr2
7537 if n_expr2 != null then
7538 n_expr2.parent = self
7539 end
7540 end
7541
7542 redef meth replace_child(old_child: PNode, new_child: PNode)
7543 do
7544 assert old_child != null
7545 if _n_expr == old_child then
7546 if new_child != null then
7547 new_child.parent = self
7548 assert new_child isa PExpr
7549 _n_expr = new_child
7550 else
7551 _n_expr = null
7552 end
7553 return
7554 end
7555 if _n_expr2 == old_child then
7556 if new_child != null then
7557 new_child.parent = self
7558 assert new_child isa PExpr
7559 _n_expr2 = new_child
7560 else
7561 _n_expr2 = null
7562 end
7563 return
7564 end
7565 end
7566
7567 redef meth visit_all(v: Visitor)
7568 do
7569 if _n_expr != null then
7570 v.visit(_n_expr)
7571 end
7572 if _n_expr2 != null then
7573 v.visit(_n_expr2)
7574 end
7575 end
7576
7577 redef meth visit_all_reverse(v: Visitor)
7578 do
7579 if _n_expr != null then
7580 v.visit(_n_expr)
7581 end
7582 if _n_expr2 != null then
7583 v.visit(_n_expr2)
7584 end
7585 end
7586 end
7587 redef class APercentExpr
7588 redef meth n_expr=(n: PExpr)
7589 do
7590 _n_expr = n
7591 if n != null then
7592 n.parent = self
7593 end
7594 end
7595 redef meth n_expr2=(n: PExpr)
7596 do
7597 _n_expr2 = n
7598 if n != null then
7599 n.parent = self
7600 end
7601 end
7602
7603 private init empty_init do end
7604
7605 init init_apercentexpr (
7606 n_expr: PExpr ,
7607 n_expr2: PExpr
7608 )
7609 do
7610 empty_init
7611 _n_expr = n_expr
7612 if n_expr != null then
7613 n_expr.parent = self
7614 end
7615 _n_expr2 = n_expr2
7616 if n_expr2 != null then
7617 n_expr2.parent = self
7618 end
7619 end
7620
7621 redef meth replace_child(old_child: PNode, new_child: PNode)
7622 do
7623 assert old_child != null
7624 if _n_expr == old_child then
7625 if new_child != null then
7626 new_child.parent = self
7627 assert new_child isa PExpr
7628 _n_expr = new_child
7629 else
7630 _n_expr = null
7631 end
7632 return
7633 end
7634 if _n_expr2 == old_child then
7635 if new_child != null then
7636 new_child.parent = self
7637 assert new_child isa PExpr
7638 _n_expr2 = new_child
7639 else
7640 _n_expr2 = null
7641 end
7642 return
7643 end
7644 end
7645
7646 redef meth visit_all(v: Visitor)
7647 do
7648 if _n_expr != null then
7649 v.visit(_n_expr)
7650 end
7651 if _n_expr2 != null then
7652 v.visit(_n_expr2)
7653 end
7654 end
7655
7656 redef meth visit_all_reverse(v: Visitor)
7657 do
7658 if _n_expr != null then
7659 v.visit(_n_expr)
7660 end
7661 if _n_expr2 != null then
7662 v.visit(_n_expr2)
7663 end
7664 end
7665 end
7666 redef class AUminusExpr
7667 redef meth n_minus=(n: TMinus)
7668 do
7669 _n_minus = n
7670 if n != null then
7671 n.parent = self
7672 end
7673 end
7674 redef meth n_expr=(n: PExpr)
7675 do
7676 _n_expr = n
7677 if n != null then
7678 n.parent = self
7679 end
7680 end
7681
7682 private init empty_init do end
7683
7684 init init_auminusexpr (
7685 n_minus: TMinus ,
7686 n_expr: PExpr
7687 )
7688 do
7689 empty_init
7690 _n_minus = n_minus
7691 if n_minus != null then
7692 n_minus.parent = self
7693 end
7694 _n_expr = n_expr
7695 if n_expr != null then
7696 n_expr.parent = self
7697 end
7698 end
7699
7700 redef meth replace_child(old_child: PNode, new_child: PNode)
7701 do
7702 assert old_child != null
7703 if _n_minus == old_child then
7704 if new_child != null then
7705 new_child.parent = self
7706 assert new_child isa TMinus
7707 _n_minus = new_child
7708 else
7709 _n_minus = null
7710 end
7711 return
7712 end
7713 if _n_expr == old_child then
7714 if new_child != null then
7715 new_child.parent = self
7716 assert new_child isa PExpr
7717 _n_expr = new_child
7718 else
7719 _n_expr = null
7720 end
7721 return
7722 end
7723 end
7724
7725 redef meth visit_all(v: Visitor)
7726 do
7727 if _n_minus != null then
7728 v.visit(_n_minus)
7729 end
7730 if _n_expr != null then
7731 v.visit(_n_expr)
7732 end
7733 end
7734
7735 redef meth visit_all_reverse(v: Visitor)
7736 do
7737 if _n_minus != null then
7738 v.visit(_n_minus)
7739 end
7740 if _n_expr != null then
7741 v.visit(_n_expr)
7742 end
7743 end
7744 end
7745 redef class ANewExpr
7746 redef meth n_kwnew=(n: TKwnew)
7747 do
7748 _n_kwnew = n
7749 if n != null then
7750 n.parent = self
7751 end
7752 end
7753 redef meth n_type=(n: PType)
7754 do
7755 _n_type = n
7756 if n != null then
7757 n.parent = self
7758 end
7759 end
7760 redef meth n_id=(n: TId)
7761 do
7762 _n_id = n
7763 if n != null then
7764 n.parent = self
7765 end
7766 end
7767
7768 private init empty_init do end
7769
7770 init init_anewexpr (
7771 n_kwnew: TKwnew ,
7772 n_type: PType ,
7773 n_id: TId ,
7774 n_args: Array[Object] # Should be Array[PExpr]
7775 )
7776 do
7777 empty_init
7778 _n_kwnew = n_kwnew
7779 if n_kwnew != null then
7780 n_kwnew.parent = self
7781 end
7782 _n_type = n_type
7783 if n_type != null then
7784 n_type.parent = self
7785 end
7786 _n_id = n_id
7787 if n_id != null then
7788 n_id.parent = self
7789 end
7790 _n_args = new List[PExpr]
7791 for n in n_args do
7792 assert n isa PExpr
7793 _n_args.add(n)
7794 n.parent = self
7795 end
7796 end
7797
7798 redef meth replace_child(old_child: PNode, new_child: PNode)
7799 do
7800 assert old_child != null
7801 if _n_kwnew == old_child then
7802 if new_child != null then
7803 new_child.parent = self
7804 assert new_child isa TKwnew
7805 _n_kwnew = new_child
7806 else
7807 _n_kwnew = null
7808 end
7809 return
7810 end
7811 if _n_type == old_child then
7812 if new_child != null then
7813 new_child.parent = self
7814 assert new_child isa PType
7815 _n_type = new_child
7816 else
7817 _n_type = null
7818 end
7819 return
7820 end
7821 if _n_id == old_child then
7822 if new_child != null then
7823 new_child.parent = self
7824 assert new_child isa TId
7825 _n_id = new_child
7826 else
7827 _n_id = null
7828 end
7829 return
7830 end
7831 for i in [0.._n_args.length[ do
7832 if _n_args[i] == old_child then
7833 if new_child != null then
7834 assert new_child isa PExpr
7835 _n_args[i] = new_child
7836 new_child.parent = self
7837 else
7838 _n_args.remove_at(i)
7839 end
7840 return
7841 end
7842 end
7843 end
7844
7845 redef meth visit_all(v: Visitor)
7846 do
7847 if _n_kwnew != null then
7848 v.visit(_n_kwnew)
7849 end
7850 if _n_type != null then
7851 v.visit(_n_type)
7852 end
7853 if _n_id != null then
7854 v.visit(_n_id)
7855 end
7856 for n in _n_args do
7857 v.visit(n)
7858 end
7859 end
7860
7861 redef meth visit_all_reverse(v: Visitor)
7862 do
7863 if _n_kwnew != null then
7864 v.visit(_n_kwnew)
7865 end
7866 if _n_type != null then
7867 v.visit(_n_type)
7868 end
7869 if _n_id != null then
7870 v.visit(_n_id)
7871 end
7872 do
7873 var i = _n_args.length
7874 while i >= 0 do
7875 v.visit(_n_args[i])
7876 i = i - 1
7877 end
7878 end
7879 end
7880 end
7881 redef class AAttrExpr
7882 redef meth n_expr=(n: PExpr)
7883 do
7884 _n_expr = n
7885 if n != null then
7886 n.parent = self
7887 end
7888 end
7889 redef meth n_id=(n: TAttrid)
7890 do
7891 _n_id = n
7892 if n != null then
7893 n.parent = self
7894 end
7895 end
7896
7897 private init empty_init do end
7898
7899 init init_aattrexpr (
7900 n_expr: PExpr ,
7901 n_id: TAttrid
7902 )
7903 do
7904 empty_init
7905 _n_expr = n_expr
7906 if n_expr != null then
7907 n_expr.parent = self
7908 end
7909 _n_id = n_id
7910 if n_id != null then
7911 n_id.parent = self
7912 end
7913 end
7914
7915 redef meth replace_child(old_child: PNode, new_child: PNode)
7916 do
7917 assert old_child != null
7918 if _n_expr == old_child then
7919 if new_child != null then
7920 new_child.parent = self
7921 assert new_child isa PExpr
7922 _n_expr = new_child
7923 else
7924 _n_expr = null
7925 end
7926 return
7927 end
7928 if _n_id == old_child then
7929 if new_child != null then
7930 new_child.parent = self
7931 assert new_child isa TAttrid
7932 _n_id = new_child
7933 else
7934 _n_id = null
7935 end
7936 return
7937 end
7938 end
7939
7940 redef meth visit_all(v: Visitor)
7941 do
7942 if _n_expr != null then
7943 v.visit(_n_expr)
7944 end
7945 if _n_id != null then
7946 v.visit(_n_id)
7947 end
7948 end
7949
7950 redef meth visit_all_reverse(v: Visitor)
7951 do
7952 if _n_expr != null then
7953 v.visit(_n_expr)
7954 end
7955 if _n_id != null then
7956 v.visit(_n_id)
7957 end
7958 end
7959 end
7960 redef class AAttrAssignExpr
7961 redef meth n_expr=(n: PExpr)
7962 do
7963 _n_expr = n
7964 if n != null then
7965 n.parent = self
7966 end
7967 end
7968 redef meth n_id=(n: TAttrid)
7969 do
7970 _n_id = n
7971 if n != null then
7972 n.parent = self
7973 end
7974 end
7975 redef meth n_assign=(n: TAssign)
7976 do
7977 _n_assign = n
7978 if n != null then
7979 n.parent = self
7980 end
7981 end
7982 redef meth n_value=(n: PExpr)
7983 do
7984 _n_value = n
7985 if n != null then
7986 n.parent = self
7987 end
7988 end
7989
7990 private init empty_init do end
7991
7992 init init_aattrassignexpr (
7993 n_expr: PExpr ,
7994 n_id: TAttrid ,
7995 n_assign: TAssign ,
7996 n_value: PExpr
7997 )
7998 do
7999 empty_init
8000 _n_expr = n_expr
8001 if n_expr != null then
8002 n_expr.parent = self
8003 end
8004 _n_id = n_id
8005 if n_id != null then
8006 n_id.parent = self
8007 end
8008 _n_assign = n_assign
8009 if n_assign != null then
8010 n_assign.parent = self
8011 end
8012 _n_value = n_value
8013 if n_value != null then
8014 n_value.parent = self
8015 end
8016 end
8017
8018 redef meth replace_child(old_child: PNode, new_child: PNode)
8019 do
8020 assert old_child != null
8021 if _n_expr == old_child then
8022 if new_child != null then
8023 new_child.parent = self
8024 assert new_child isa PExpr
8025 _n_expr = new_child
8026 else
8027 _n_expr = null
8028 end
8029 return
8030 end
8031 if _n_id == old_child then
8032 if new_child != null then
8033 new_child.parent = self
8034 assert new_child isa TAttrid
8035 _n_id = new_child
8036 else
8037 _n_id = null
8038 end
8039 return
8040 end
8041 if _n_assign == old_child then
8042 if new_child != null then
8043 new_child.parent = self
8044 assert new_child isa TAssign
8045 _n_assign = new_child
8046 else
8047 _n_assign = null
8048 end
8049 return
8050 end
8051 if _n_value == old_child then
8052 if new_child != null then
8053 new_child.parent = self
8054 assert new_child isa PExpr
8055 _n_value = new_child
8056 else
8057 _n_value = null
8058 end
8059 return
8060 end
8061 end
8062
8063 redef meth visit_all(v: Visitor)
8064 do
8065 if _n_expr != null then
8066 v.visit(_n_expr)
8067 end
8068 if _n_id != null then
8069 v.visit(_n_id)
8070 end
8071 if _n_assign != null then
8072 v.visit(_n_assign)
8073 end
8074 if _n_value != null then
8075 v.visit(_n_value)
8076 end
8077 end
8078
8079 redef meth visit_all_reverse(v: Visitor)
8080 do
8081 if _n_expr != null then
8082 v.visit(_n_expr)
8083 end
8084 if _n_id != null then
8085 v.visit(_n_id)
8086 end
8087 if _n_assign != null then
8088 v.visit(_n_assign)
8089 end
8090 if _n_value != null then
8091 v.visit(_n_value)
8092 end
8093 end
8094 end
8095 redef class AAttrReassignExpr
8096 redef meth n_expr=(n: PExpr)
8097 do
8098 _n_expr = n
8099 if n != null then
8100 n.parent = self
8101 end
8102 end
8103 redef meth n_id=(n: TAttrid)
8104 do
8105 _n_id = n
8106 if n != null then
8107 n.parent = self
8108 end
8109 end
8110 redef meth n_assign_op=(n: PAssignOp)
8111 do
8112 _n_assign_op = n
8113 if n != null then
8114 n.parent = self
8115 end
8116 end
8117 redef meth n_value=(n: PExpr)
8118 do
8119 _n_value = n
8120 if n != null then
8121 n.parent = self
8122 end
8123 end
8124
8125 private init empty_init do end
8126
8127 init init_aattrreassignexpr (
8128 n_expr: PExpr ,
8129 n_id: TAttrid ,
8130 n_assign_op: PAssignOp ,
8131 n_value: PExpr
8132 )
8133 do
8134 empty_init
8135 _n_expr = n_expr
8136 if n_expr != null then
8137 n_expr.parent = self
8138 end
8139 _n_id = n_id
8140 if n_id != null then
8141 n_id.parent = self
8142 end
8143 _n_assign_op = n_assign_op
8144 if n_assign_op != null then
8145 n_assign_op.parent = self
8146 end
8147 _n_value = n_value
8148 if n_value != null then
8149 n_value.parent = self
8150 end
8151 end
8152
8153 redef meth replace_child(old_child: PNode, new_child: PNode)
8154 do
8155 assert old_child != null
8156 if _n_expr == old_child then
8157 if new_child != null then
8158 new_child.parent = self
8159 assert new_child isa PExpr
8160 _n_expr = new_child
8161 else
8162 _n_expr = null
8163 end
8164 return
8165 end
8166 if _n_id == old_child then
8167 if new_child != null then
8168 new_child.parent = self
8169 assert new_child isa TAttrid
8170 _n_id = new_child
8171 else
8172 _n_id = null
8173 end
8174 return
8175 end
8176 if _n_assign_op == old_child then
8177 if new_child != null then
8178 new_child.parent = self
8179 assert new_child isa PAssignOp
8180 _n_assign_op = new_child
8181 else
8182 _n_assign_op = null
8183 end
8184 return
8185 end
8186 if _n_value == old_child then
8187 if new_child != null then
8188 new_child.parent = self
8189 assert new_child isa PExpr
8190 _n_value = new_child
8191 else
8192 _n_value = null
8193 end
8194 return
8195 end
8196 end
8197
8198 redef meth visit_all(v: Visitor)
8199 do
8200 if _n_expr != null then
8201 v.visit(_n_expr)
8202 end
8203 if _n_id != null then
8204 v.visit(_n_id)
8205 end
8206 if _n_assign_op != null then
8207 v.visit(_n_assign_op)
8208 end
8209 if _n_value != null then
8210 v.visit(_n_value)
8211 end
8212 end
8213
8214 redef meth visit_all_reverse(v: Visitor)
8215 do
8216 if _n_expr != null then
8217 v.visit(_n_expr)
8218 end
8219 if _n_id != null then
8220 v.visit(_n_id)
8221 end
8222 if _n_assign_op != null then
8223 v.visit(_n_assign_op)
8224 end
8225 if _n_value != null then
8226 v.visit(_n_value)
8227 end
8228 end
8229 end
8230 redef class ACallExpr
8231 redef meth n_expr=(n: PExpr)
8232 do
8233 _n_expr = n
8234 if n != null then
8235 n.parent = self
8236 end
8237 end
8238 redef meth n_id=(n: TId)
8239 do
8240 _n_id = n
8241 if n != null then
8242 n.parent = self
8243 end
8244 end
8245
8246 private init empty_init do end
8247
8248 init init_acallexpr (
8249 n_expr: PExpr ,
8250 n_id: TId ,
8251 n_args: Array[Object] , # Should be Array[PExpr]
8252 n_closure_defs: Array[Object] # Should be Array[PClosureDef]
8253 )
8254 do
8255 empty_init
8256 _n_expr = n_expr
8257 if n_expr != null then
8258 n_expr.parent = self
8259 end
8260 _n_id = n_id
8261 if n_id != null then
8262 n_id.parent = self
8263 end
8264 _n_args = new List[PExpr]
8265 for n in n_args do
8266 assert n isa PExpr
8267 _n_args.add(n)
8268 n.parent = self
8269 end
8270 _n_closure_defs = new List[PClosureDef]
8271 for n in n_closure_defs do
8272 assert n isa PClosureDef
8273 _n_closure_defs.add(n)
8274 n.parent = self
8275 end
8276 end
8277
8278 redef meth replace_child(old_child: PNode, new_child: PNode)
8279 do
8280 assert old_child != null
8281 if _n_expr == old_child then
8282 if new_child != null then
8283 new_child.parent = self
8284 assert new_child isa PExpr
8285 _n_expr = new_child
8286 else
8287 _n_expr = null
8288 end
8289 return
8290 end
8291 if _n_id == old_child then
8292 if new_child != null then
8293 new_child.parent = self
8294 assert new_child isa TId
8295 _n_id = new_child
8296 else
8297 _n_id = null
8298 end
8299 return
8300 end
8301 for i in [0.._n_args.length[ do
8302 if _n_args[i] == old_child then
8303 if new_child != null then
8304 assert new_child isa PExpr
8305 _n_args[i] = new_child
8306 new_child.parent = self
8307 else
8308 _n_args.remove_at(i)
8309 end
8310 return
8311 end
8312 end
8313 for i in [0.._n_closure_defs.length[ do
8314 if _n_closure_defs[i] == old_child then
8315 if new_child != null then
8316 assert new_child isa PClosureDef
8317 _n_closure_defs[i] = new_child
8318 new_child.parent = self
8319 else
8320 _n_closure_defs.remove_at(i)
8321 end
8322 return
8323 end
8324 end
8325 end
8326
8327 redef meth visit_all(v: Visitor)
8328 do
8329 if _n_expr != null then
8330 v.visit(_n_expr)
8331 end
8332 if _n_id != null then
8333 v.visit(_n_id)
8334 end
8335 for n in _n_args do
8336 v.visit(n)
8337 end
8338 for n in _n_closure_defs do
8339 v.visit(n)
8340 end
8341 end
8342
8343 redef meth visit_all_reverse(v: Visitor)
8344 do
8345 if _n_expr != null then
8346 v.visit(_n_expr)
8347 end
8348 if _n_id != null then
8349 v.visit(_n_id)
8350 end
8351 do
8352 var i = _n_args.length
8353 while i >= 0 do
8354 v.visit(_n_args[i])
8355 i = i - 1
8356 end
8357 end
8358 do
8359 var i = _n_closure_defs.length
8360 while i >= 0 do
8361 v.visit(_n_closure_defs[i])
8362 i = i - 1
8363 end
8364 end
8365 end
8366 end
8367 redef class ACallAssignExpr
8368 redef meth n_expr=(n: PExpr)
8369 do
8370 _n_expr = n
8371 if n != null then
8372 n.parent = self
8373 end
8374 end
8375 redef meth n_id=(n: TId)
8376 do
8377 _n_id = n
8378 if n != null then
8379 n.parent = self
8380 end
8381 end
8382 redef meth n_assign=(n: TAssign)
8383 do
8384 _n_assign = n
8385 if n != null then
8386 n.parent = self
8387 end
8388 end
8389 redef meth n_value=(n: PExpr)
8390 do
8391 _n_value = n
8392 if n != null then
8393 n.parent = self
8394 end
8395 end
8396
8397 private init empty_init do end
8398
8399 init init_acallassignexpr (
8400 n_expr: PExpr ,
8401 n_id: TId ,
8402 n_args: Array[Object] , # Should be Array[PExpr]
8403 n_assign: TAssign ,
8404 n_value: PExpr
8405 )
8406 do
8407 empty_init
8408 _n_expr = n_expr
8409 if n_expr != null then
8410 n_expr.parent = self
8411 end
8412 _n_id = n_id
8413 if n_id != null then
8414 n_id.parent = self
8415 end
8416 _n_args = new List[PExpr]
8417 for n in n_args do
8418 assert n isa PExpr
8419 _n_args.add(n)
8420 n.parent = self
8421 end
8422 _n_assign = n_assign
8423 if n_assign != null then
8424 n_assign.parent = self
8425 end
8426 _n_value = n_value
8427 if n_value != null then
8428 n_value.parent = self
8429 end
8430 end
8431
8432 redef meth replace_child(old_child: PNode, new_child: PNode)
8433 do
8434 assert old_child != null
8435 if _n_expr == old_child then
8436 if new_child != null then
8437 new_child.parent = self
8438 assert new_child isa PExpr
8439 _n_expr = new_child
8440 else
8441 _n_expr = null
8442 end
8443 return
8444 end
8445 if _n_id == old_child then
8446 if new_child != null then
8447 new_child.parent = self
8448 assert new_child isa TId
8449 _n_id = new_child
8450 else
8451 _n_id = null
8452 end
8453 return
8454 end
8455 for i in [0.._n_args.length[ do
8456 if _n_args[i] == old_child then
8457 if new_child != null then
8458 assert new_child isa PExpr
8459 _n_args[i] = new_child
8460 new_child.parent = self
8461 else
8462 _n_args.remove_at(i)
8463 end
8464 return
8465 end
8466 end
8467 if _n_assign == old_child then
8468 if new_child != null then
8469 new_child.parent = self
8470 assert new_child isa TAssign
8471 _n_assign = new_child
8472 else
8473 _n_assign = null
8474 end
8475 return
8476 end
8477 if _n_value == old_child then
8478 if new_child != null then
8479 new_child.parent = self
8480 assert new_child isa PExpr
8481 _n_value = new_child
8482 else
8483 _n_value = null
8484 end
8485 return
8486 end
8487 end
8488
8489 redef meth visit_all(v: Visitor)
8490 do
8491 if _n_expr != null then
8492 v.visit(_n_expr)
8493 end
8494 if _n_id != null then
8495 v.visit(_n_id)
8496 end
8497 for n in _n_args do
8498 v.visit(n)
8499 end
8500 if _n_assign != null then
8501 v.visit(_n_assign)
8502 end
8503 if _n_value != null then
8504 v.visit(_n_value)
8505 end
8506 end
8507
8508 redef meth visit_all_reverse(v: Visitor)
8509 do
8510 if _n_expr != null then
8511 v.visit(_n_expr)
8512 end
8513 if _n_id != null then
8514 v.visit(_n_id)
8515 end
8516 do
8517 var i = _n_args.length
8518 while i >= 0 do
8519 v.visit(_n_args[i])
8520 i = i - 1
8521 end
8522 end
8523 if _n_assign != null then
8524 v.visit(_n_assign)
8525 end
8526 if _n_value != null then
8527 v.visit(_n_value)
8528 end
8529 end
8530 end
8531 redef class ACallReassignExpr
8532 redef meth n_expr=(n: PExpr)
8533 do
8534 _n_expr = n
8535 if n != null then
8536 n.parent = self
8537 end
8538 end
8539 redef meth n_id=(n: TId)
8540 do
8541 _n_id = n
8542 if n != null then
8543 n.parent = self
8544 end
8545 end
8546 redef meth n_assign_op=(n: PAssignOp)
8547 do
8548 _n_assign_op = n
8549 if n != null then
8550 n.parent = self
8551 end
8552 end
8553 redef meth n_value=(n: PExpr)
8554 do
8555 _n_value = n
8556 if n != null then
8557 n.parent = self
8558 end
8559 end
8560
8561 private init empty_init do end
8562
8563 init init_acallreassignexpr (
8564 n_expr: PExpr ,
8565 n_id: TId ,
8566 n_args: Array[Object] , # Should be Array[PExpr]
8567 n_assign_op: PAssignOp ,
8568 n_value: PExpr
8569 )
8570 do
8571 empty_init
8572 _n_expr = n_expr
8573 if n_expr != null then
8574 n_expr.parent = self
8575 end
8576 _n_id = n_id
8577 if n_id != null then
8578 n_id.parent = self
8579 end
8580 _n_args = new List[PExpr]
8581 for n in n_args do
8582 assert n isa PExpr
8583 _n_args.add(n)
8584 n.parent = self
8585 end
8586 _n_assign_op = n_assign_op
8587 if n_assign_op != null then
8588 n_assign_op.parent = self
8589 end
8590 _n_value = n_value
8591 if n_value != null then
8592 n_value.parent = self
8593 end
8594 end
8595
8596 redef meth replace_child(old_child: PNode, new_child: PNode)
8597 do
8598 assert old_child != null
8599 if _n_expr == old_child then
8600 if new_child != null then
8601 new_child.parent = self
8602 assert new_child isa PExpr
8603 _n_expr = new_child
8604 else
8605 _n_expr = null
8606 end
8607 return
8608 end
8609 if _n_id == old_child then
8610 if new_child != null then
8611 new_child.parent = self
8612 assert new_child isa TId
8613 _n_id = new_child
8614 else
8615 _n_id = null
8616 end
8617 return
8618 end
8619 for i in [0.._n_args.length[ do
8620 if _n_args[i] == old_child then
8621 if new_child != null then
8622 assert new_child isa PExpr
8623 _n_args[i] = new_child
8624 new_child.parent = self
8625 else
8626 _n_args.remove_at(i)
8627 end
8628 return
8629 end
8630 end
8631 if _n_assign_op == old_child then
8632 if new_child != null then
8633 new_child.parent = self
8634 assert new_child isa PAssignOp
8635 _n_assign_op = new_child
8636 else
8637 _n_assign_op = null
8638 end
8639 return
8640 end
8641 if _n_value == old_child then
8642 if new_child != null then
8643 new_child.parent = self
8644 assert new_child isa PExpr
8645 _n_value = new_child
8646 else
8647 _n_value = null
8648 end
8649 return
8650 end
8651 end
8652
8653 redef meth visit_all(v: Visitor)
8654 do
8655 if _n_expr != null then
8656 v.visit(_n_expr)
8657 end
8658 if _n_id != null then
8659 v.visit(_n_id)
8660 end
8661 for n in _n_args do
8662 v.visit(n)
8663 end
8664 if _n_assign_op != null then
8665 v.visit(_n_assign_op)
8666 end
8667 if _n_value != null then
8668 v.visit(_n_value)
8669 end
8670 end
8671
8672 redef meth visit_all_reverse(v: Visitor)
8673 do
8674 if _n_expr != null then
8675 v.visit(_n_expr)
8676 end
8677 if _n_id != null then
8678 v.visit(_n_id)
8679 end
8680 do
8681 var i = _n_args.length
8682 while i >= 0 do
8683 v.visit(_n_args[i])
8684 i = i - 1
8685 end
8686 end
8687 if _n_assign_op != null then
8688 v.visit(_n_assign_op)
8689 end
8690 if _n_value != null then
8691 v.visit(_n_value)
8692 end
8693 end
8694 end
8695 redef class ASuperExpr
8696 redef meth n_qualified=(n: PQualified)
8697 do
8698 _n_qualified = n
8699 if n != null then
8700 n.parent = self
8701 end
8702 end
8703 redef meth n_kwsuper=(n: TKwsuper)
8704 do
8705 _n_kwsuper = n
8706 if n != null then
8707 n.parent = self
8708 end
8709 end
8710
8711 private init empty_init do end
8712
8713 init init_asuperexpr (
8714 n_qualified: PQualified ,
8715 n_kwsuper: TKwsuper ,
8716 n_args: Array[Object] # Should be Array[PExpr]
8717 )
8718 do
8719 empty_init
8720 _n_qualified = n_qualified
8721 if n_qualified != null then
8722 n_qualified.parent = self
8723 end
8724 _n_kwsuper = n_kwsuper
8725 if n_kwsuper != null then
8726 n_kwsuper.parent = self
8727 end
8728 _n_args = new List[PExpr]
8729 for n in n_args do
8730 assert n isa PExpr
8731 _n_args.add(n)
8732 n.parent = self
8733 end
8734 end
8735
8736 redef meth replace_child(old_child: PNode, new_child: PNode)
8737 do
8738 assert old_child != null
8739 if _n_qualified == old_child then
8740 if new_child != null then
8741 new_child.parent = self
8742 assert new_child isa PQualified
8743 _n_qualified = new_child
8744 else
8745 _n_qualified = null
8746 end
8747 return
8748 end
8749 if _n_kwsuper == old_child then
8750 if new_child != null then
8751 new_child.parent = self
8752 assert new_child isa TKwsuper
8753 _n_kwsuper = new_child
8754 else
8755 _n_kwsuper = null
8756 end
8757 return
8758 end
8759 for i in [0.._n_args.length[ do
8760 if _n_args[i] == old_child then
8761 if new_child != null then
8762 assert new_child isa PExpr
8763 _n_args[i] = new_child
8764 new_child.parent = self
8765 else
8766 _n_args.remove_at(i)
8767 end
8768 return
8769 end
8770 end
8771 end
8772
8773 redef meth visit_all(v: Visitor)
8774 do
8775 if _n_qualified != null then
8776 v.visit(_n_qualified)
8777 end
8778 if _n_kwsuper != null then
8779 v.visit(_n_kwsuper)
8780 end
8781 for n in _n_args do
8782 v.visit(n)
8783 end
8784 end
8785
8786 redef meth visit_all_reverse(v: Visitor)
8787 do
8788 if _n_qualified != null then
8789 v.visit(_n_qualified)
8790 end
8791 if _n_kwsuper != null then
8792 v.visit(_n_kwsuper)
8793 end
8794 do
8795 var i = _n_args.length
8796 while i >= 0 do
8797 v.visit(_n_args[i])
8798 i = i - 1
8799 end
8800 end
8801 end
8802 end
8803 redef class AInitExpr
8804 redef meth n_expr=(n: PExpr)
8805 do
8806 _n_expr = n
8807 if n != null then
8808 n.parent = self
8809 end
8810 end
8811 redef meth n_kwinit=(n: TKwinit)
8812 do
8813 _n_kwinit = n
8814 if n != null then
8815 n.parent = self
8816 end
8817 end
8818
8819 private init empty_init do end
8820
8821 init init_ainitexpr (
8822 n_expr: PExpr ,
8823 n_kwinit: TKwinit ,
8824 n_args: Array[Object] # Should be Array[PExpr]
8825 )
8826 do
8827 empty_init
8828 _n_expr = n_expr
8829 if n_expr != null then
8830 n_expr.parent = self
8831 end
8832 _n_kwinit = n_kwinit
8833 if n_kwinit != null then
8834 n_kwinit.parent = self
8835 end
8836 _n_args = new List[PExpr]
8837 for n in n_args do
8838 assert n isa PExpr
8839 _n_args.add(n)
8840 n.parent = self
8841 end
8842 end
8843
8844 redef meth replace_child(old_child: PNode, new_child: PNode)
8845 do
8846 assert old_child != null
8847 if _n_expr == old_child then
8848 if new_child != null then
8849 new_child.parent = self
8850 assert new_child isa PExpr
8851 _n_expr = new_child
8852 else
8853 _n_expr = null
8854 end
8855 return
8856 end
8857 if _n_kwinit == old_child then
8858 if new_child != null then
8859 new_child.parent = self
8860 assert new_child isa TKwinit
8861 _n_kwinit = new_child
8862 else
8863 _n_kwinit = null
8864 end
8865 return
8866 end
8867 for i in [0.._n_args.length[ do
8868 if _n_args[i] == old_child then
8869 if new_child != null then
8870 assert new_child isa PExpr
8871 _n_args[i] = new_child
8872 new_child.parent = self
8873 else
8874 _n_args.remove_at(i)
8875 end
8876 return
8877 end
8878 end
8879 end
8880
8881 redef meth visit_all(v: Visitor)
8882 do
8883 if _n_expr != null then
8884 v.visit(_n_expr)
8885 end
8886 if _n_kwinit != null then
8887 v.visit(_n_kwinit)
8888 end
8889 for n in _n_args do
8890 v.visit(n)
8891 end
8892 end
8893
8894 redef meth visit_all_reverse(v: Visitor)
8895 do
8896 if _n_expr != null then
8897 v.visit(_n_expr)
8898 end
8899 if _n_kwinit != null then
8900 v.visit(_n_kwinit)
8901 end
8902 do
8903 var i = _n_args.length
8904 while i >= 0 do
8905 v.visit(_n_args[i])
8906 i = i - 1
8907 end
8908 end
8909 end
8910 end
8911 redef class ABraExpr
8912 redef meth n_expr=(n: PExpr)
8913 do
8914 _n_expr = n
8915 if n != null then
8916 n.parent = self
8917 end
8918 end
8919
8920 private init empty_init do end
8921
8922 init init_abraexpr (
8923 n_expr: PExpr ,
8924 n_args: Array[Object] , # Should be Array[PExpr]
8925 n_closure_defs: Array[Object] # Should be Array[PClosureDef]
8926 )
8927 do
8928 empty_init
8929 _n_expr = n_expr
8930 if n_expr != null then
8931 n_expr.parent = self
8932 end
8933 _n_args = new List[PExpr]
8934 for n in n_args do
8935 assert n isa PExpr
8936 _n_args.add(n)
8937 n.parent = self
8938 end
8939 _n_closure_defs = new List[PClosureDef]
8940 for n in n_closure_defs do
8941 assert n isa PClosureDef
8942 _n_closure_defs.add(n)
8943 n.parent = self
8944 end
8945 end
8946
8947 redef meth replace_child(old_child: PNode, new_child: PNode)
8948 do
8949 assert old_child != null
8950 if _n_expr == old_child then
8951 if new_child != null then
8952 new_child.parent = self
8953 assert new_child isa PExpr
8954 _n_expr = new_child
8955 else
8956 _n_expr = null
8957 end
8958 return
8959 end
8960 for i in [0.._n_args.length[ do
8961 if _n_args[i] == old_child then
8962 if new_child != null then
8963 assert new_child isa PExpr
8964 _n_args[i] = new_child
8965 new_child.parent = self
8966 else
8967 _n_args.remove_at(i)
8968 end
8969 return
8970 end
8971 end
8972 for i in [0.._n_closure_defs.length[ do
8973 if _n_closure_defs[i] == old_child then
8974 if new_child != null then
8975 assert new_child isa PClosureDef
8976 _n_closure_defs[i] = new_child
8977 new_child.parent = self
8978 else
8979 _n_closure_defs.remove_at(i)
8980 end
8981 return
8982 end
8983 end
8984 end
8985
8986 redef meth visit_all(v: Visitor)
8987 do
8988 if _n_expr != null then
8989 v.visit(_n_expr)
8990 end
8991 for n in _n_args do
8992 v.visit(n)
8993 end
8994 for n in _n_closure_defs do
8995 v.visit(n)
8996 end
8997 end
8998
8999 redef meth visit_all_reverse(v: Visitor)
9000 do
9001 if _n_expr != null then
9002 v.visit(_n_expr)
9003 end
9004 do
9005 var i = _n_args.length
9006 while i >= 0 do
9007 v.visit(_n_args[i])
9008 i = i - 1
9009 end
9010 end
9011 do
9012 var i = _n_closure_defs.length
9013 while i >= 0 do
9014 v.visit(_n_closure_defs[i])
9015 i = i - 1
9016 end
9017 end
9018 end
9019 end
9020 redef class ABraAssignExpr
9021 redef meth n_expr=(n: PExpr)
9022 do
9023 _n_expr = n
9024 if n != null then
9025 n.parent = self
9026 end
9027 end
9028 redef meth n_assign=(n: TAssign)
9029 do
9030 _n_assign = n
9031 if n != null then
9032 n.parent = self
9033 end
9034 end
9035 redef meth n_value=(n: PExpr)
9036 do
9037 _n_value = n
9038 if n != null then
9039 n.parent = self
9040 end
9041 end
9042
9043 private init empty_init do end
9044
9045 init init_abraassignexpr (
9046 n_expr: PExpr ,
9047 n_args: Array[Object] , # Should be Array[PExpr]
9048 n_assign: TAssign ,
9049 n_value: PExpr
9050 )
9051 do
9052 empty_init
9053 _n_expr = n_expr
9054 if n_expr != null then
9055 n_expr.parent = self
9056 end
9057 _n_args = new List[PExpr]
9058 for n in n_args do
9059 assert n isa PExpr
9060 _n_args.add(n)
9061 n.parent = self
9062 end
9063 _n_assign = n_assign
9064 if n_assign != null then
9065 n_assign.parent = self
9066 end
9067 _n_value = n_value
9068 if n_value != null then
9069 n_value.parent = self
9070 end
9071 end
9072
9073 redef meth replace_child(old_child: PNode, new_child: PNode)
9074 do
9075 assert old_child != null
9076 if _n_expr == old_child then
9077 if new_child != null then
9078 new_child.parent = self
9079 assert new_child isa PExpr
9080 _n_expr = new_child
9081 else
9082 _n_expr = null
9083 end
9084 return
9085 end
9086 for i in [0.._n_args.length[ do
9087 if _n_args[i] == old_child then
9088 if new_child != null then
9089 assert new_child isa PExpr
9090 _n_args[i] = new_child
9091 new_child.parent = self
9092 else
9093 _n_args.remove_at(i)
9094 end
9095 return
9096 end
9097 end
9098 if _n_assign == old_child then
9099 if new_child != null then
9100 new_child.parent = self
9101 assert new_child isa TAssign
9102 _n_assign = new_child
9103 else
9104 _n_assign = null
9105 end
9106 return
9107 end
9108 if _n_value == old_child then
9109 if new_child != null then
9110 new_child.parent = self
9111 assert new_child isa PExpr
9112 _n_value = new_child
9113 else
9114 _n_value = null
9115 end
9116 return
9117 end
9118 end
9119
9120 redef meth visit_all(v: Visitor)
9121 do
9122 if _n_expr != null then
9123 v.visit(_n_expr)
9124 end
9125 for n in _n_args do
9126 v.visit(n)
9127 end
9128 if _n_assign != null then
9129 v.visit(_n_assign)
9130 end
9131 if _n_value != null then
9132 v.visit(_n_value)
9133 end
9134 end
9135
9136 redef meth visit_all_reverse(v: Visitor)
9137 do
9138 if _n_expr != null then
9139 v.visit(_n_expr)
9140 end
9141 do
9142 var i = _n_args.length
9143 while i >= 0 do
9144 v.visit(_n_args[i])
9145 i = i - 1
9146 end
9147 end
9148 if _n_assign != null then
9149 v.visit(_n_assign)
9150 end
9151 if _n_value != null then
9152 v.visit(_n_value)
9153 end
9154 end
9155 end
9156 redef class ABraReassignExpr
9157 redef meth n_expr=(n: PExpr)
9158 do
9159 _n_expr = n
9160 if n != null then
9161 n.parent = self
9162 end
9163 end
9164 redef meth n_assign_op=(n: PAssignOp)
9165 do
9166 _n_assign_op = n
9167 if n != null then
9168 n.parent = self
9169 end
9170 end
9171 redef meth n_value=(n: PExpr)
9172 do
9173 _n_value = n
9174 if n != null then
9175 n.parent = self
9176 end
9177 end
9178
9179 private init empty_init do end
9180
9181 init init_abrareassignexpr (
9182 n_expr: PExpr ,
9183 n_args: Array[Object] , # Should be Array[PExpr]
9184 n_assign_op: PAssignOp ,
9185 n_value: PExpr
9186 )
9187 do
9188 empty_init
9189 _n_expr = n_expr
9190 if n_expr != null then
9191 n_expr.parent = self
9192 end
9193 _n_args = new List[PExpr]
9194 for n in n_args do
9195 assert n isa PExpr
9196 _n_args.add(n)
9197 n.parent = self
9198 end
9199 _n_assign_op = n_assign_op
9200 if n_assign_op != null then
9201 n_assign_op.parent = self
9202 end
9203 _n_value = n_value
9204 if n_value != null then
9205 n_value.parent = self
9206 end
9207 end
9208
9209 redef meth replace_child(old_child: PNode, new_child: PNode)
9210 do
9211 assert old_child != null
9212 if _n_expr == old_child then
9213 if new_child != null then
9214 new_child.parent = self
9215 assert new_child isa PExpr
9216 _n_expr = new_child
9217 else
9218 _n_expr = null
9219 end
9220 return
9221 end
9222 for i in [0.._n_args.length[ do
9223 if _n_args[i] == old_child then
9224 if new_child != null then
9225 assert new_child isa PExpr
9226 _n_args[i] = new_child
9227 new_child.parent = self
9228 else
9229 _n_args.remove_at(i)
9230 end
9231 return
9232 end
9233 end
9234 if _n_assign_op == old_child then
9235 if new_child != null then
9236 new_child.parent = self
9237 assert new_child isa PAssignOp
9238 _n_assign_op = new_child
9239 else
9240 _n_assign_op = null
9241 end
9242 return
9243 end
9244 if _n_value == old_child then
9245 if new_child != null then
9246 new_child.parent = self
9247 assert new_child isa PExpr
9248 _n_value = new_child
9249 else
9250 _n_value = null
9251 end
9252 return
9253 end
9254 end
9255
9256 redef meth visit_all(v: Visitor)
9257 do
9258 if _n_expr != null then
9259 v.visit(_n_expr)
9260 end
9261 for n in _n_args do
9262 v.visit(n)
9263 end
9264 if _n_assign_op != null then
9265 v.visit(_n_assign_op)
9266 end
9267 if _n_value != null then
9268 v.visit(_n_value)
9269 end
9270 end
9271
9272 redef meth visit_all_reverse(v: Visitor)
9273 do
9274 if _n_expr != null then
9275 v.visit(_n_expr)
9276 end
9277 do
9278 var i = _n_args.length
9279 while i >= 0 do
9280 v.visit(_n_args[i])
9281 i = i - 1
9282 end
9283 end
9284 if _n_assign_op != null then
9285 v.visit(_n_assign_op)
9286 end
9287 if _n_value != null then
9288 v.visit(_n_value)
9289 end
9290 end
9291 end
9292 redef class AVarExpr
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
9301 private init empty_init do end
9302
9303 init init_avarexpr (
9304 n_id: TId
9305 )
9306 do
9307 empty_init
9308 _n_id = n_id
9309 if n_id != null then
9310 n_id.parent = self
9311 end
9312 end
9313
9314 redef meth replace_child(old_child: PNode, new_child: PNode)
9315 do
9316 assert old_child != null
9317 if _n_id == old_child then
9318 if new_child != null then
9319 new_child.parent = self
9320 assert new_child isa TId
9321 _n_id = new_child
9322 else
9323 _n_id = null
9324 end
9325 return
9326 end
9327 end
9328
9329 redef meth visit_all(v: Visitor)
9330 do
9331 if _n_id != null then
9332 v.visit(_n_id)
9333 end
9334 end
9335
9336 redef meth visit_all_reverse(v: Visitor)
9337 do
9338 if _n_id != null then
9339 v.visit(_n_id)
9340 end
9341 end
9342 end
9343 redef class AVarAssignExpr
9344 redef meth n_id=(n: TId)
9345 do
9346 _n_id = n
9347 if n != null then
9348 n.parent = self
9349 end
9350 end
9351 redef meth n_assign=(n: TAssign)
9352 do
9353 _n_assign = n
9354 if n != null then
9355 n.parent = self
9356 end
9357 end
9358 redef meth n_value=(n: PExpr)
9359 do
9360 _n_value = n
9361 if n != null then
9362 n.parent = self
9363 end
9364 end
9365
9366 private init empty_init do end
9367
9368 init init_avarassignexpr (
9369 n_id: TId ,
9370 n_assign: TAssign ,
9371 n_value: PExpr
9372 )
9373 do
9374 empty_init
9375 _n_id = n_id
9376 if n_id != null then
9377 n_id.parent = self
9378 end
9379 _n_assign = n_assign
9380 if n_assign != null then
9381 n_assign.parent = self
9382 end
9383 _n_value = n_value
9384 if n_value != null then
9385 n_value.parent = self
9386 end
9387 end
9388
9389 redef meth replace_child(old_child: PNode, new_child: PNode)
9390 do
9391 assert old_child != null
9392 if _n_id == old_child then
9393 if new_child != null then
9394 new_child.parent = self
9395 assert new_child isa TId
9396 _n_id = new_child
9397 else
9398 _n_id = null
9399 end
9400 return
9401 end
9402 if _n_assign == old_child then
9403 if new_child != null then
9404 new_child.parent = self
9405 assert new_child isa TAssign
9406 _n_assign = new_child
9407 else
9408 _n_assign = null
9409 end
9410 return
9411 end
9412 if _n_value == old_child then
9413 if new_child != null then
9414 new_child.parent = self
9415 assert new_child isa PExpr
9416 _n_value = new_child
9417 else
9418 _n_value = null
9419 end
9420 return
9421 end
9422 end
9423
9424 redef meth visit_all(v: Visitor)
9425 do
9426 if _n_id != null then
9427 v.visit(_n_id)
9428 end
9429 if _n_assign != null then
9430 v.visit(_n_assign)
9431 end
9432 if _n_value != null then
9433 v.visit(_n_value)
9434 end
9435 end
9436
9437 redef meth visit_all_reverse(v: Visitor)
9438 do
9439 if _n_id != null then
9440 v.visit(_n_id)
9441 end
9442 if _n_assign != null then
9443 v.visit(_n_assign)
9444 end
9445 if _n_value != null then
9446 v.visit(_n_value)
9447 end
9448 end
9449 end
9450 redef class AVarReassignExpr
9451 redef meth n_id=(n: TId)
9452 do
9453 _n_id = n
9454 if n != null then
9455 n.parent = self
9456 end
9457 end
9458 redef meth n_assign_op=(n: PAssignOp)
9459 do
9460 _n_assign_op = n
9461 if n != null then
9462 n.parent = self
9463 end
9464 end
9465 redef meth n_value=(n: PExpr)
9466 do
9467 _n_value = n
9468 if n != null then
9469 n.parent = self
9470 end
9471 end
9472
9473 private init empty_init do end
9474
9475 init init_avarreassignexpr (
9476 n_id: TId ,
9477 n_assign_op: PAssignOp ,
9478 n_value: PExpr
9479 )
9480 do
9481 empty_init
9482 _n_id = n_id
9483 if n_id != null then
9484 n_id.parent = self
9485 end
9486 _n_assign_op = n_assign_op
9487 if n_assign_op != null then
9488 n_assign_op.parent = self
9489 end
9490 _n_value = n_value
9491 if n_value != null then
9492 n_value.parent = self
9493 end
9494 end
9495
9496 redef meth replace_child(old_child: PNode, new_child: PNode)
9497 do
9498 assert old_child != null
9499 if _n_id == old_child then
9500 if new_child != null then
9501 new_child.parent = self
9502 assert new_child isa TId
9503 _n_id = new_child
9504 else
9505 _n_id = null
9506 end
9507 return
9508 end
9509 if _n_assign_op == old_child then
9510 if new_child != null then
9511 new_child.parent = self
9512 assert new_child isa PAssignOp
9513 _n_assign_op = new_child
9514 else
9515 _n_assign_op = null
9516 end
9517 return
9518 end
9519 if _n_value == old_child then
9520 if new_child != null then
9521 new_child.parent = self
9522 assert new_child isa PExpr
9523 _n_value = new_child
9524 else
9525 _n_value = null
9526 end
9527 return
9528 end
9529 end
9530
9531 redef meth visit_all(v: Visitor)
9532 do
9533 if _n_id != null then
9534 v.visit(_n_id)
9535 end
9536 if _n_assign_op != null then
9537 v.visit(_n_assign_op)
9538 end
9539 if _n_value != null then
9540 v.visit(_n_value)
9541 end
9542 end
9543
9544 redef meth visit_all_reverse(v: Visitor)
9545 do
9546 if _n_id != null then
9547 v.visit(_n_id)
9548 end
9549 if _n_assign_op != null then
9550 v.visit(_n_assign_op)
9551 end
9552 if _n_value != null then
9553 v.visit(_n_value)
9554 end
9555 end
9556 end
9557 redef class ARangeExpr
9558 redef meth n_expr=(n: PExpr)
9559 do
9560 _n_expr = n
9561 if n != null then
9562 n.parent = self
9563 end
9564 end
9565 redef meth n_expr2=(n: PExpr)
9566 do
9567 _n_expr2 = n
9568 if n != null then
9569 n.parent = self
9570 end
9571 end
9572
9573 private init empty_init do end
9574
9575 init init_arangeexpr (
9576 n_expr: PExpr ,
9577 n_expr2: PExpr
9578 )
9579 do
9580 empty_init
9581 _n_expr = n_expr
9582 if n_expr != null then
9583 n_expr.parent = self
9584 end
9585 _n_expr2 = n_expr2
9586 if n_expr2 != null then
9587 n_expr2.parent = self
9588 end
9589 end
9590
9591 redef meth replace_child(old_child: PNode, new_child: PNode)
9592 do
9593 assert old_child != null
9594 if _n_expr == old_child then
9595 if new_child != null then
9596 new_child.parent = self
9597 assert new_child isa PExpr
9598 _n_expr = new_child
9599 else
9600 _n_expr = null
9601 end
9602 return
9603 end
9604 if _n_expr2 == old_child then
9605 if new_child != null then
9606 new_child.parent = self
9607 assert new_child isa PExpr
9608 _n_expr2 = new_child
9609 else
9610 _n_expr2 = null
9611 end
9612 return
9613 end
9614 end
9615
9616 redef meth visit_all(v: Visitor)
9617 do
9618 if _n_expr != null then
9619 v.visit(_n_expr)
9620 end
9621 if _n_expr2 != null then
9622 v.visit(_n_expr2)
9623 end
9624 end
9625
9626 redef meth visit_all_reverse(v: Visitor)
9627 do
9628 if _n_expr != null then
9629 v.visit(_n_expr)
9630 end
9631 if _n_expr2 != null then
9632 v.visit(_n_expr2)
9633 end
9634 end
9635 end
9636 redef class ACrangeExpr
9637 redef meth n_expr=(n: PExpr)
9638 do
9639 _n_expr = n
9640 if n != null then
9641 n.parent = self
9642 end
9643 end
9644 redef meth n_expr2=(n: PExpr)
9645 do
9646 _n_expr2 = n
9647 if n != null then
9648 n.parent = self
9649 end
9650 end
9651
9652 private init empty_init do end
9653
9654 init init_acrangeexpr (
9655 n_expr: PExpr ,
9656 n_expr2: PExpr
9657 )
9658 do
9659 empty_init
9660 _n_expr = n_expr
9661 if n_expr != null then
9662 n_expr.parent = self
9663 end
9664 _n_expr2 = n_expr2
9665 if n_expr2 != null then
9666 n_expr2.parent = self
9667 end
9668 end
9669
9670 redef meth replace_child(old_child: PNode, new_child: PNode)
9671 do
9672 assert old_child != null
9673 if _n_expr == old_child then
9674 if new_child != null then
9675 new_child.parent = self
9676 assert new_child isa PExpr
9677 _n_expr = new_child
9678 else
9679 _n_expr = null
9680 end
9681 return
9682 end
9683 if _n_expr2 == old_child then
9684 if new_child != null then
9685 new_child.parent = self
9686 assert new_child isa PExpr
9687 _n_expr2 = new_child
9688 else
9689 _n_expr2 = null
9690 end
9691 return
9692 end
9693 end
9694
9695 redef meth visit_all(v: Visitor)
9696 do
9697 if _n_expr != null then
9698 v.visit(_n_expr)
9699 end
9700 if _n_expr2 != null then
9701 v.visit(_n_expr2)
9702 end
9703 end
9704
9705 redef meth visit_all_reverse(v: Visitor)
9706 do
9707 if _n_expr != null then
9708 v.visit(_n_expr)
9709 end
9710 if _n_expr2 != null then
9711 v.visit(_n_expr2)
9712 end
9713 end
9714 end
9715 redef class AOrangeExpr
9716 redef meth n_expr=(n: PExpr)
9717 do
9718 _n_expr = n
9719 if n != null then
9720 n.parent = self
9721 end
9722 end
9723 redef meth n_expr2=(n: PExpr)
9724 do
9725 _n_expr2 = n
9726 if n != null then
9727 n.parent = self
9728 end
9729 end
9730
9731 private init empty_init do end
9732
9733 init init_aorangeexpr (
9734 n_expr: PExpr ,
9735 n_expr2: PExpr
9736 )
9737 do
9738 empty_init
9739 _n_expr = n_expr
9740 if n_expr != null then
9741 n_expr.parent = self
9742 end
9743 _n_expr2 = n_expr2
9744 if n_expr2 != null then
9745 n_expr2.parent = self
9746 end
9747 end
9748
9749 redef meth replace_child(old_child: PNode, new_child: PNode)
9750 do
9751 assert old_child != null
9752 if _n_expr == old_child then
9753 if new_child != null then
9754 new_child.parent = self
9755 assert new_child isa PExpr
9756 _n_expr = new_child
9757 else
9758 _n_expr = null
9759 end
9760 return
9761 end
9762 if _n_expr2 == old_child then
9763 if new_child != null then
9764 new_child.parent = self
9765 assert new_child isa PExpr
9766 _n_expr2 = new_child
9767 else
9768 _n_expr2 = null
9769 end
9770 return
9771 end
9772 end
9773
9774 redef meth visit_all(v: Visitor)
9775 do
9776 if _n_expr != null then
9777 v.visit(_n_expr)
9778 end
9779 if _n_expr2 != null then
9780 v.visit(_n_expr2)
9781 end
9782 end
9783
9784 redef meth visit_all_reverse(v: Visitor)
9785 do
9786 if _n_expr != null then
9787 v.visit(_n_expr)
9788 end
9789 if _n_expr2 != null then
9790 v.visit(_n_expr2)
9791 end
9792 end
9793 end
9794 redef class AArrayExpr
9795
9796 private init empty_init do end
9797
9798 init init_aarrayexpr (
9799 n_exprs: Array[Object] # Should be Array[PExpr]
9800 )
9801 do
9802 empty_init
9803 _n_exprs = new List[PExpr]
9804 for n in n_exprs do
9805 assert n isa PExpr
9806 _n_exprs.add(n)
9807 n.parent = self
9808 end
9809 end
9810
9811 redef meth replace_child(old_child: PNode, new_child: PNode)
9812 do
9813 assert old_child != null
9814 for i in [0.._n_exprs.length[ do
9815 if _n_exprs[i] == old_child then
9816 if new_child != null then
9817 assert new_child isa PExpr
9818 _n_exprs[i] = new_child
9819 new_child.parent = self
9820 else
9821 _n_exprs.remove_at(i)
9822 end
9823 return
9824 end
9825 end
9826 end
9827
9828 redef meth visit_all(v: Visitor)
9829 do
9830 for n in _n_exprs do
9831 v.visit(n)
9832 end
9833 end
9834
9835 redef meth visit_all_reverse(v: Visitor)
9836 do
9837 do
9838 var i = _n_exprs.length
9839 while i >= 0 do
9840 v.visit(_n_exprs[i])
9841 i = i - 1
9842 end
9843 end
9844 end
9845 end
9846 redef class ASelfExpr
9847 redef meth n_kwself=(n: TKwself)
9848 do
9849 _n_kwself = n
9850 if n != null then
9851 n.parent = self
9852 end
9853 end
9854
9855 private init empty_init do end
9856
9857 init init_aselfexpr (
9858 n_kwself: TKwself
9859 )
9860 do
9861 empty_init
9862 _n_kwself = n_kwself
9863 if n_kwself != null then
9864 n_kwself.parent = self
9865 end
9866 end
9867
9868 redef meth replace_child(old_child: PNode, new_child: PNode)
9869 do
9870 assert old_child != null
9871 if _n_kwself == old_child then
9872 if new_child != null then
9873 new_child.parent = self
9874 assert new_child isa TKwself
9875 _n_kwself = new_child
9876 else
9877 _n_kwself = null
9878 end
9879 return
9880 end
9881 end
9882
9883 redef meth visit_all(v: Visitor)
9884 do
9885 if _n_kwself != null then
9886 v.visit(_n_kwself)
9887 end
9888 end
9889
9890 redef meth visit_all_reverse(v: Visitor)
9891 do
9892 if _n_kwself != null then
9893 v.visit(_n_kwself)
9894 end
9895 end
9896 end
9897 redef class AImplicitSelfExpr
9898
9899 private init empty_init do end
9900
9901 init init_aimplicitselfexpr
9902 do
9903 empty_init
9904 end
9905
9906 redef meth replace_child(old_child: PNode, new_child: PNode)
9907 do
9908 assert old_child != null
9909 end
9910
9911 redef meth visit_all(v: Visitor)
9912 do
9913 end
9914
9915 redef meth visit_all_reverse(v: Visitor)
9916 do
9917 end
9918 end
9919 redef class ATrueExpr
9920 redef meth n_kwtrue=(n: TKwtrue)
9921 do
9922 _n_kwtrue = 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_atrueexpr (
9931 n_kwtrue: TKwtrue
9932 )
9933 do
9934 empty_init
9935 _n_kwtrue = n_kwtrue
9936 if n_kwtrue != null then
9937 n_kwtrue.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_kwtrue == old_child then
9945 if new_child != null then
9946 new_child.parent = self
9947 assert new_child isa TKwtrue
9948 _n_kwtrue = new_child
9949 else
9950 _n_kwtrue = null
9951 end
9952 return
9953 end
9954 end
9955
9956 redef meth visit_all(v: Visitor)
9957 do
9958 if _n_kwtrue != null then
9959 v.visit(_n_kwtrue)
9960 end
9961 end
9962
9963 redef meth visit_all_reverse(v: Visitor)
9964 do
9965 if _n_kwtrue != null then
9966 v.visit(_n_kwtrue)
9967 end
9968 end
9969 end
9970 redef class AFalseExpr
9971 redef meth n_kwfalse=(n: TKwfalse)
9972 do
9973 _n_kwfalse = 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_afalseexpr (
9982 n_kwfalse: TKwfalse
9983 )
9984 do
9985 empty_init
9986 _n_kwfalse = n_kwfalse
9987 if n_kwfalse != null then
9988 n_kwfalse.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_kwfalse == old_child then
9996 if new_child != null then
9997 new_child.parent = self
9998 assert new_child isa TKwfalse
9999 _n_kwfalse = new_child
10000 else
10001 _n_kwfalse = null
10002 end
10003 return
10004 end
10005 end
10006
10007 redef meth visit_all(v: Visitor)
10008 do
10009 if _n_kwfalse != null then
10010 v.visit(_n_kwfalse)
10011 end
10012 end
10013
10014 redef meth visit_all_reverse(v: Visitor)
10015 do
10016 if _n_kwfalse != null then
10017 v.visit(_n_kwfalse)
10018 end
10019 end
10020 end
10021 redef class ANullExpr
10022 redef meth n_kwnull=(n: TKwnull)
10023 do
10024 _n_kwnull = 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_anullexpr (
10033 n_kwnull: TKwnull
10034 )
10035 do
10036 empty_init
10037 _n_kwnull = n_kwnull
10038 if n_kwnull != null then
10039 n_kwnull.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_kwnull == old_child then
10047 if new_child != null then
10048 new_child.parent = self
10049 assert new_child isa TKwnull
10050 _n_kwnull = new_child
10051 else
10052 _n_kwnull = null
10053 end
10054 return
10055 end
10056 end
10057
10058 redef meth visit_all(v: Visitor)
10059 do
10060 if _n_kwnull != null then
10061 v.visit(_n_kwnull)
10062 end
10063 end
10064
10065 redef meth visit_all_reverse(v: Visitor)
10066 do
10067 if _n_kwnull != null then
10068 v.visit(_n_kwnull)
10069 end
10070 end
10071 end
10072 redef class AIntExpr
10073 redef meth n_number=(n: TNumber)
10074 do
10075 _n_number = 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_aintexpr (
10084 n_number: TNumber
10085 )
10086 do
10087 empty_init
10088 _n_number = n_number
10089 if n_number != null then
10090 n_number.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_number == old_child then
10098 if new_child != null then
10099 new_child.parent = self
10100 assert new_child isa TNumber
10101 _n_number = new_child
10102 else
10103 _n_number = null
10104 end
10105 return
10106 end
10107 end
10108
10109 redef meth visit_all(v: Visitor)
10110 do
10111 if _n_number != null then
10112 v.visit(_n_number)
10113 end
10114 end
10115
10116 redef meth visit_all_reverse(v: Visitor)
10117 do
10118 if _n_number != null then
10119 v.visit(_n_number)
10120 end
10121 end
10122 end
10123 redef class AFloatExpr
10124 redef meth n_float=(n: TFloat)
10125 do
10126 _n_float = 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_afloatexpr (
10135 n_float: TFloat
10136 )
10137 do
10138 empty_init
10139 _n_float = n_float
10140 if n_float != null then
10141 n_float.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_float == old_child then
10149 if new_child != null then
10150 new_child.parent = self
10151 assert new_child isa TFloat
10152 _n_float = new_child
10153 else
10154 _n_float = null
10155 end
10156 return
10157 end
10158 end
10159
10160 redef meth visit_all(v: Visitor)
10161 do
10162 if _n_float != null then
10163 v.visit(_n_float)
10164 end
10165 end
10166
10167 redef meth visit_all_reverse(v: Visitor)
10168 do
10169 if _n_float != null then
10170 v.visit(_n_float)
10171 end
10172 end
10173 end
10174 redef class ACharExpr
10175 redef meth n_char=(n: TChar)
10176 do
10177 _n_char = 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_acharexpr (
10186 n_char: TChar
10187 )
10188 do
10189 empty_init
10190 _n_char = n_char
10191 if n_char != null then
10192 n_char.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_char == old_child then
10200 if new_child != null then
10201 new_child.parent = self
10202 assert new_child isa TChar
10203 _n_char = new_child
10204 else
10205 _n_char = null
10206 end
10207 return
10208 end
10209 end
10210
10211 redef meth visit_all(v: Visitor)
10212 do
10213 if _n_char != null then
10214 v.visit(_n_char)
10215 end
10216 end
10217
10218 redef meth visit_all_reverse(v: Visitor)
10219 do
10220 if _n_char != null then
10221 v.visit(_n_char)
10222 end
10223 end
10224 end
10225 redef class AStringExpr
10226 redef meth n_string=(n: TString)
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_astringexpr (
10237 n_string: TString
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 TString
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 AStartStringExpr
10277 redef meth n_string=(n: TStartString)
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_astartstringexpr (
10288 n_string: TStartString
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 TStartString
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 AMidStringExpr
10328 redef meth n_string=(n: TMidString)
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_amidstringexpr (
10339 n_string: TMidString
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 TMidString
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 AEndStringExpr
10379 redef meth n_string=(n: TEndString)
10380 do
10381 _n_string = n
10382 if n != null then
10383 n.parent = self
10384 end
10385 end
10386
10387 private init empty_init do end
10388
10389 init init_aendstringexpr (
10390 n_string: TEndString
10391 )
10392 do
10393 empty_init
10394 _n_string = n_string
10395 if n_string != null then
10396 n_string.parent = self
10397 end
10398 end
10399
10400 redef meth replace_child(old_child: PNode, new_child: PNode)
10401 do
10402 assert old_child != null
10403 if _n_string == old_child then
10404 if new_child != null then
10405 new_child.parent = self
10406 assert new_child isa TEndString
10407 _n_string = new_child
10408 else
10409 _n_string = null
10410 end
10411 return
10412 end
10413 end
10414
10415 redef meth visit_all(v: Visitor)
10416 do
10417 if _n_string != null then
10418 v.visit(_n_string)
10419 end
10420 end
10421
10422 redef meth visit_all_reverse(v: Visitor)
10423 do
10424 if _n_string != null then
10425 v.visit(_n_string)
10426 end
10427 end
10428 end
10429 redef class ASuperstringExpr
10430
10431 private init empty_init do end
10432
10433 init init_asuperstringexpr (
10434 n_exprs: Array[Object] # Should be Array[PExpr]
10435 )
10436 do
10437 empty_init
10438 _n_exprs = new List[PExpr]
10439 for n in n_exprs do
10440 assert n isa PExpr
10441 _n_exprs.add(n)
10442 n.parent = self
10443 end
10444 end
10445
10446 redef meth replace_child(old_child: PNode, new_child: PNode)
10447 do
10448 assert old_child != null
10449 for i in [0.._n_exprs.length[ do
10450 if _n_exprs[i] == old_child then
10451 if new_child != null then
10452 assert new_child isa PExpr
10453 _n_exprs[i] = new_child
10454 new_child.parent = self
10455 else
10456 _n_exprs.remove_at(i)
10457 end
10458 return
10459 end
10460 end
10461 end
10462
10463 redef meth visit_all(v: Visitor)
10464 do
10465 for n in _n_exprs do
10466 v.visit(n)
10467 end
10468 end
10469
10470 redef meth visit_all_reverse(v: Visitor)
10471 do
10472 do
10473 var i = _n_exprs.length
10474 while i >= 0 do
10475 v.visit(_n_exprs[i])
10476 i = i - 1
10477 end
10478 end
10479 end
10480 end
10481 redef class AParExpr
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
10490 private init empty_init do end
10491
10492 init init_aparexpr (
10493 n_expr: PExpr
10494 )
10495 do
10496 empty_init
10497 _n_expr = n_expr
10498 if n_expr != null then
10499 n_expr.parent = self
10500 end
10501 end
10502
10503 redef meth replace_child(old_child: PNode, new_child: PNode)
10504 do
10505 assert old_child != null
10506 if _n_expr == old_child then
10507 if new_child != null then
10508 new_child.parent = self
10509 assert new_child isa PExpr
10510 _n_expr = new_child
10511 else
10512 _n_expr = null
10513 end
10514 return
10515 end
10516 end
10517
10518 redef meth visit_all(v: Visitor)
10519 do
10520 if _n_expr != null then
10521 v.visit(_n_expr)
10522 end
10523 end
10524
10525 redef meth visit_all_reverse(v: Visitor)
10526 do
10527 if _n_expr != null then
10528 v.visit(_n_expr)
10529 end
10530 end
10531 end
10532 redef class AAsCastExpr
10533 redef meth n_expr=(n: PExpr)
10534 do
10535 _n_expr = n
10536 if n != null then
10537 n.parent = self
10538 end
10539 end
10540 redef meth n_kwas=(n: TKwas)
10541 do
10542 _n_kwas = n
10543 if n != null then
10544 n.parent = self
10545 end
10546 end
10547 redef meth n_type=(n: PType)
10548 do
10549 _n_type = n
10550 if n != null then
10551 n.parent = self
10552 end
10553 end
10554
10555 private init empty_init do end
10556
10557 init init_aascastexpr (
10558 n_expr: PExpr ,
10559 n_kwas: TKwas ,
10560 n_type: PType
10561 )
10562 do
10563 empty_init
10564 _n_expr = n_expr
10565 if n_expr != null then
10566 n_expr.parent = self
10567 end
10568 _n_kwas = n_kwas
10569 if n_kwas != null then
10570 n_kwas.parent = self
10571 end
10572 _n_type = n_type
10573 if n_type != null then
10574 n_type.parent = self
10575 end
10576 end
10577
10578 redef meth replace_child(old_child: PNode, new_child: PNode)
10579 do
10580 assert old_child != null
10581 if _n_expr == old_child then
10582 if new_child != null then
10583 new_child.parent = self
10584 assert new_child isa PExpr
10585 _n_expr = new_child
10586 else
10587 _n_expr = null
10588 end
10589 return
10590 end
10591 if _n_kwas == old_child then
10592 if new_child != null then
10593 new_child.parent = self
10594 assert new_child isa TKwas
10595 _n_kwas = new_child
10596 else
10597 _n_kwas = null
10598 end
10599 return
10600 end
10601 if _n_type == old_child then
10602 if new_child != null then
10603 new_child.parent = self
10604 assert new_child isa PType
10605 _n_type = new_child
10606 else
10607 _n_type = null
10608 end
10609 return
10610 end
10611 end
10612
10613 redef meth visit_all(v: Visitor)
10614 do
10615 if _n_expr != null then
10616 v.visit(_n_expr)
10617 end
10618 if _n_kwas != null then
10619 v.visit(_n_kwas)
10620 end
10621 if _n_type != null then
10622 v.visit(_n_type)
10623 end
10624 end
10625
10626 redef meth visit_all_reverse(v: Visitor)
10627 do
10628 if _n_expr != null then
10629 v.visit(_n_expr)
10630 end
10631 if _n_kwas != null then
10632 v.visit(_n_kwas)
10633 end
10634 if _n_type != null then
10635 v.visit(_n_type)
10636 end
10637 end
10638 end
10639 redef class APlusAssignOp
10640 redef meth n_pluseq=(n: TPluseq)
10641 do
10642 _n_pluseq = 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_aplusassignop (
10651 n_pluseq: TPluseq
10652 )
10653 do
10654 empty_init
10655 _n_pluseq = n_pluseq
10656 if n_pluseq != null then
10657 n_pluseq.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_pluseq == old_child then
10665 if new_child != null then
10666 new_child.parent = self
10667 assert new_child isa TPluseq
10668 _n_pluseq = new_child
10669 else
10670 _n_pluseq = null
10671 end
10672 return
10673 end
10674 end
10675
10676 redef meth visit_all(v: Visitor)
10677 do
10678 if _n_pluseq != null then
10679 v.visit(_n_pluseq)
10680 end
10681 end
10682
10683 redef meth visit_all_reverse(v: Visitor)
10684 do
10685 if _n_pluseq != null then
10686 v.visit(_n_pluseq)
10687 end
10688 end
10689 end
10690 redef class AMinusAssignOp
10691 redef meth n_minuseq=(n: TMinuseq)
10692 do
10693 _n_minuseq = n
10694 if n != null then
10695 n.parent = self
10696 end
10697 end
10698
10699 private init empty_init do end
10700
10701 init init_aminusassignop (
10702 n_minuseq: TMinuseq
10703 )
10704 do
10705 empty_init
10706 _n_minuseq = n_minuseq
10707 if n_minuseq != null then
10708 n_minuseq.parent = self
10709 end
10710 end
10711
10712 redef meth replace_child(old_child: PNode, new_child: PNode)
10713 do
10714 assert old_child != null
10715 if _n_minuseq == old_child then
10716 if new_child != null then
10717 new_child.parent = self
10718 assert new_child isa TMinuseq
10719 _n_minuseq = new_child
10720 else
10721 _n_minuseq = null
10722 end
10723 return
10724 end
10725 end
10726
10727 redef meth visit_all(v: Visitor)
10728 do
10729 if _n_minuseq != null then
10730 v.visit(_n_minuseq)
10731 end
10732 end
10733
10734 redef meth visit_all_reverse(v: Visitor)
10735 do
10736 if _n_minuseq != null then
10737 v.visit(_n_minuseq)
10738 end
10739 end
10740 end
10741 redef class AClosureDef
10742 redef meth n_kwwith=(n: TKwwith)
10743 do
10744 _n_kwwith = n
10745 if n != null then
10746 n.parent = self
10747 end
10748 end
10749 redef meth n_kwdo=(n: TKwdo)
10750 do
10751 _n_kwdo = n
10752 if n != null then
10753 n.parent = self
10754 end
10755 end
10756 redef meth n_expr=(n: PExpr)
10757 do
10758 _n_expr = n
10759 if n != null then
10760 n.parent = self
10761 end
10762 end
10763
10764 private init empty_init do end
10765
10766 init init_aclosuredef (
10767 n_kwwith: TKwwith ,
10768 n_id: Array[Object] , # Should be Array[TId]
10769 n_kwdo: TKwdo ,
10770 n_expr: PExpr
10771 )
10772 do
10773 empty_init
10774 _n_kwwith = n_kwwith
10775 if n_kwwith != null then
10776 n_kwwith.parent = self
10777 end
10778 _n_id = new List[TId]
10779 for n in n_id do
10780 assert n isa TId
10781 _n_id.add(n)
10782 n.parent = self
10783 end
10784 _n_kwdo = n_kwdo
10785 if n_kwdo != null then
10786 n_kwdo.parent = self
10787 end
10788 _n_expr = n_expr
10789 if n_expr != null then
10790 n_expr.parent = self
10791 end
10792 end
10793
10794 redef meth replace_child(old_child: PNode, new_child: PNode)
10795 do
10796 assert old_child != null
10797 if _n_kwwith == old_child then
10798 if new_child != null then
10799 new_child.parent = self
10800 assert new_child isa TKwwith
10801 _n_kwwith = new_child
10802 else
10803 _n_kwwith = null
10804 end
10805 return
10806 end
10807 for i in [0.._n_id.length[ do
10808 if _n_id[i] == old_child then
10809 if new_child != null then
10810 assert new_child isa TId
10811 _n_id[i] = new_child
10812 new_child.parent = self
10813 else
10814 _n_id.remove_at(i)
10815 end
10816 return
10817 end
10818 end
10819 if _n_kwdo == old_child then
10820 if new_child != null then
10821 new_child.parent = self
10822 assert new_child isa TKwdo
10823 _n_kwdo = new_child
10824 else
10825 _n_kwdo = null
10826 end
10827 return
10828 end
10829 if _n_expr == old_child then
10830 if new_child != null then
10831 new_child.parent = self
10832 assert new_child isa PExpr
10833 _n_expr = new_child
10834 else
10835 _n_expr = null
10836 end
10837 return
10838 end
10839 end
10840
10841 redef meth visit_all(v: Visitor)
10842 do
10843 if _n_kwwith != null then
10844 v.visit(_n_kwwith)
10845 end
10846 for n in _n_id do
10847 v.visit(n)
10848 end
10849 if _n_kwdo != null then
10850 v.visit(_n_kwdo)
10851 end
10852 if _n_expr != null then
10853 v.visit(_n_expr)
10854 end
10855 end
10856
10857 redef meth visit_all_reverse(v: Visitor)
10858 do
10859 if _n_kwwith != null then
10860 v.visit(_n_kwwith)
10861 end
10862 do
10863 var i = _n_id.length
10864 while i >= 0 do
10865 v.visit(_n_id[i])
10866 i = i - 1
10867 end
10868 end
10869 if _n_kwdo != null then
10870 v.visit(_n_kwdo)
10871 end
10872 if _n_expr != null then
10873 v.visit(_n_expr)
10874 end
10875 end
10876 end
10877 redef class AQualified
10878 redef meth n_classid=(n: TClassid)
10879 do
10880 _n_classid = n
10881 if n != null then
10882 n.parent = self
10883 end
10884 end
10885
10886 private init empty_init do end
10887
10888 init init_aqualified (
10889 n_id: Array[Object] , # Should be Array[TId]
10890 n_classid: TClassid
10891 )
10892 do
10893 empty_init
10894 _n_id = new List[TId]
10895 for n in n_id do
10896 assert n isa TId
10897 _n_id.add(n)
10898 n.parent = self
10899 end
10900 _n_classid = n_classid
10901 if n_classid != null then
10902 n_classid.parent = self
10903 end
10904 end
10905
10906 redef meth replace_child(old_child: PNode, new_child: PNode)
10907 do
10908 assert old_child != null
10909 for i in [0.._n_id.length[ do
10910 if _n_id[i] == old_child then
10911 if new_child != null then
10912 assert new_child isa TId
10913 _n_id[i] = new_child
10914 new_child.parent = self
10915 else
10916 _n_id.remove_at(i)
10917 end
10918 return
10919 end
10920 end
10921 if _n_classid == old_child then
10922 if new_child != null then
10923 new_child.parent = self
10924 assert new_child isa TClassid
10925 _n_classid = new_child
10926 else
10927 _n_classid = null
10928 end
10929 return
10930 end
10931 end
10932
10933 redef meth visit_all(v: Visitor)
10934 do
10935 for n in _n_id do
10936 v.visit(n)
10937 end
10938 if _n_classid != null then
10939 v.visit(_n_classid)
10940 end
10941 end
10942
10943 redef meth visit_all_reverse(v: Visitor)
10944 do
10945 do
10946 var i = _n_id.length
10947 while i >= 0 do
10948 v.visit(_n_id[i])
10949 i = i - 1
10950 end
10951 end
10952 if _n_classid != null then
10953 v.visit(_n_classid)
10954 end
10955 end
10956 end
10957 redef class ADoc
10958
10959 private init empty_init do end
10960
10961 init init_adoc (
10962 n_comment: Array[Object] # Should be Array[TComment]
10963 )
10964 do
10965 empty_init
10966 _n_comment = new List[TComment]
10967 for n in n_comment do
10968 assert n isa TComment
10969 _n_comment.add(n)
10970 n.parent = self
10971 end
10972 end
10973
10974 redef meth replace_child(old_child: PNode, new_child: PNode)
10975 do
10976 assert old_child != null
10977 for i in [0.._n_comment.length[ do
10978 if _n_comment[i] == old_child then
10979 if new_child != null then
10980 assert new_child isa TComment
10981 _n_comment[i] = new_child
10982 new_child.parent = self
10983 else
10984 _n_comment.remove_at(i)
10985 end
10986 return
10987 end
10988 end
10989 end
10990
10991 redef meth visit_all(v: Visitor)
10992 do
10993 for n in _n_comment do
10994 v.visit(n)
10995 end
10996 end
10997
10998 redef meth visit_all_reverse(v: Visitor)
10999 do
11000 do
11001 var i = _n_comment.length
11002 while i >= 0 do
11003 v.visit(_n_comment[i])
11004 i = i - 1
11005 end
11006 end
11007 end
11008 end
11009
11010 redef class Start
11011 init(
11012 n_base: PModule,
11013 n_eof: EOF)
11014 do
11015 _n_base = n_base
11016 _n_eof = n_eof
11017 end
11018
11019 redef meth replace_child(old_child: PNode, new_child: PNode)
11020 do
11021 assert old_child != null
11022 if _n_base == old_child then
11023 if new_child == null then
11024 else
11025 new_child.parent = self
11026 assert new_child isa PModule
11027 _n_base = new_child
11028 end
11029 old_child.parent = null
11030 return
11031 end
11032 end
11033
11034 redef meth visit_all(v: Visitor)
11035 do
11036 if _n_base != null then
11037 v.visit(_n_base)
11038 end
11039 end
11040
11041 redef meth visit_all_reverse(v: Visitor)
11042 do
11043 if _n_base != null then
11044 v.visit(_n_base)
11045 end
11046 end
11047 end