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