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