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