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