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