547fb82a7a2a3283e5ca2d3b1d28609ffdcfc359
[nit.git] / src / parser / parser_nodes.nit
1 # This file is part of NIT ( http://www.nitlanguage.org ).
2 #
3 # Copyright 2008-2009 Jean Privat <jean@pryen.org>
4 # Copyright 2009 Jean-Sebastien Gelinas <calestar@gmail.com>
5 #
6 # Licensed under the Apache License, Version 2.0 (the "License");
7 # you may not use this file except in compliance with the License.
8 # You may obtain a copy of the License at
9 #
10 # http://www.apache.org/licenses/LICENSE-2.0
11 #
12 # Unless required by applicable law or agreed to in writing, software
13 # distributed under the License is distributed on an "AS IS" BASIS,
14 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 # See the License for the specific language governing permissions and
16 # limitations under the License.
17
18 # AST nodes of the Nit language
19 # Was previously based on parser_abs.nit.
20 package parser_nodes
21
22 import location
23
24 # Root of the AST hierarchy
25 abstract class ANode
26 var _location: nullable Location
27 # Location is set during AST building. Once built, location cannon be null
28 # However, manual instanciated nodes may need mode care
29 fun location: Location do return _location.as(not null)
30 # The location of the important part of the node (identifier or whatever)
31 fun hot_location: Location do return location
32 end
33
34 # Ancestor of all tokens
35 abstract class Token
36 super ANode
37 fun text: String is abstract
38
39 redef fun to_s: String do
40 return "'{text}'"
41 end
42 end
43
44 # Ancestor of all productions
45 abstract class Prod
46 super ANode
47 fun location=(l: Location) do _location = l
48 end
49 class TEol
50 super Token
51 redef fun to_s
52 do
53 return "end of line"
54 end
55 end
56 class TComment
57 super Token
58 end
59 class TokenKeyword
60 super Token
61 redef fun to_s
62 do
63 return "keyword '{text}'"
64 end
65 end
66 class TKwmodule
67 super TokenKeyword
68 end
69 class TKwimport
70 super TokenKeyword
71 end
72 class TKwclass
73 super TokenKeyword
74 end
75 class TKwabstract
76 super TokenKeyword
77 end
78 class TKwinterface
79 super TokenKeyword
80 end
81 class TKwenum
82 super TokenKeyword
83 end
84 class TKwspecial
85 super TokenKeyword
86 end
87 class TKwend
88 super TokenKeyword
89 end
90 class TKwmeth
91 super TokenKeyword
92 end
93 class TKwtype
94 super TokenKeyword
95 end
96 class TKwinit
97 super TokenKeyword
98 end
99 class TKwredef
100 super TokenKeyword
101 end
102 class TKwis
103 super TokenKeyword
104 end
105 class TKwdo
106 super TokenKeyword
107 end
108 class TKwreadable
109 super TokenKeyword
110 end
111 class TKwwritable
112 super TokenKeyword
113 end
114 class TKwvar
115 super TokenKeyword
116 end
117 class TKwintern
118 super TokenKeyword
119 end
120 class TKwextern
121 super TokenKeyword
122 end
123 class TKwprotected
124 super TokenKeyword
125 end
126 class TKwprivate
127 super TokenKeyword
128 end
129 class TKwintrude
130 super TokenKeyword
131 end
132 class TKwif
133 super TokenKeyword
134 end
135 class TKwthen
136 super TokenKeyword
137 end
138 class TKwelse
139 super TokenKeyword
140 end
141 class TKwwhile
142 super TokenKeyword
143 end
144 class TKwloop
145 super TokenKeyword
146 end
147 class TKwfor
148 super TokenKeyword
149 end
150 class TKwin
151 super TokenKeyword
152 end
153 class TKwand
154 super TokenKeyword
155 end
156 class TKwor
157 super TokenKeyword
158 end
159 class TKwnot
160 super TokenKeyword
161 end
162 class TKwreturn
163 super TokenKeyword
164 end
165 class TKwcontinue
166 super TokenKeyword
167 end
168 class TKwbreak
169 super TokenKeyword
170 end
171 class TKwabort
172 super TokenKeyword
173 end
174 class TKwassert
175 super TokenKeyword
176 end
177 class TKwnew
178 super TokenKeyword
179 end
180 class TKwisa
181 super TokenKeyword
182 end
183 class TKwonce
184 super TokenKeyword
185 end
186 class TKwsuper
187 super TokenKeyword
188 end
189 class TKwself
190 super TokenKeyword
191 end
192 class TKwtrue
193 super TokenKeyword
194 end
195 class TKwfalse
196 super TokenKeyword
197 end
198 class TKwnull
199 super TokenKeyword
200 end
201 class TKwas
202 super TokenKeyword
203 end
204 class TKwnullable
205 super TokenKeyword
206 end
207 class TKwisset
208 super TokenKeyword
209 end
210 class TKwlabel
211 super TokenKeyword
212 end
213 class TOpar
214 super Token
215 end
216 class TCpar
217 super Token
218 end
219 class TObra
220 super Token
221 end
222 class TCbra
223 super Token
224 end
225 class TComma
226 super Token
227 end
228 class TColumn
229 super Token
230 end
231 class TQuad
232 super Token
233 end
234 class TAssign
235 super Token
236 end
237 class TokenOperator
238 super Token
239 redef fun to_s
240 do
241 return "operator '{text}'"
242 end
243 end
244 class TPluseq
245 super TokenOperator
246 end
247 class TMinuseq
248 super TokenOperator
249 end
250 class TDotdotdot
251 super TokenOperator
252 end
253 class TDotdot
254 super TokenOperator
255 end
256 class TDot
257 super TokenOperator
258 end
259 class TPlus
260 super TokenOperator
261 end
262 class TMinus
263 super TokenOperator
264 end
265 class TStar
266 super TokenOperator
267 end
268 class TSlash
269 super TokenOperator
270 end
271 class TPercent
272 super TokenOperator
273 end
274 class TEq
275 super TokenOperator
276 end
277 class TNe
278 super TokenOperator
279 end
280 class TLt
281 super TokenOperator
282 end
283 class TLe
284 super TokenOperator
285 end
286 class TLl
287 super TokenOperator
288 end
289 class TGt
290 super TokenOperator
291 end
292 class TGe
293 super TokenOperator
294 end
295 class TGg
296 super TokenOperator
297 end
298 class TStarship
299 super TokenOperator
300 end
301 class TBang
302 super TokenOperator
303 end
304 class TClassid
305 super Token
306 redef fun to_s
307 do
308 do return "type identifier '{text}'"
309 end
310 end
311 class TId
312 super Token
313 redef fun to_s
314 do
315 do return "identifier '{text}'"
316 end
317 end
318 class TAttrid
319 super Token
320 redef fun to_s
321 do
322 do return "attribute '{text}'"
323 end
324 end
325 class TokenLiteral
326 super Token
327 redef fun to_s
328 do
329 do return "literal value '{text}'"
330 end
331 end
332 class TNumber
333 super TokenLiteral
334 end
335 class TFloat
336 super TokenLiteral
337 end
338 class TChar
339 super TokenLiteral
340 end
341 class TString
342 super TokenLiteral
343 end
344 class TStartString
345 super TokenLiteral
346 end
347 class TMidString
348 super TokenLiteral
349 end
350 class TEndString
351 super Token
352 end
353 class TBadString
354 super Token
355 redef fun to_s
356 do
357 do return "malformed string {text}"
358 end
359 end
360 class TBadChar
361 super Token
362 redef fun to_s
363 do
364 do return "malformed character {text}"
365 end
366 end
367 class EOF
368 super Token
369 private init noinit do end
370 redef fun to_s
371 do
372 return "end of file"
373 end
374 end
375 class AError
376 super EOF
377 private init noinit do end
378 end
379
380 class AModule
381 super Prod
382 readable var _n_moduledecl: nullable AModuledecl = null
383 readable var _n_imports: List[AImport] = new List[AImport]
384 readable var _n_classdefs: List[AClassdef] = new List[AClassdef]
385 end
386 class AModuledecl
387 super Prod
388 readable var _n_doc: nullable ADoc = null
389 readable var _n_kwmodule: TKwmodule
390 readable var _n_name: AModuleName
391 end
392 class AImport super Prod end
393 class AStdImport
394 super AImport
395 readable var _n_visibility: AVisibility
396 readable var _n_kwimport: TKwimport
397 readable var _n_name: AModuleName
398 end
399 class ANoImport
400 super AImport
401 readable var _n_visibility: AVisibility
402 readable var _n_kwimport: TKwimport
403 readable var _n_kwend: TKwend
404 end
405 class AVisibility super Prod end
406 class APublicVisibility
407 super AVisibility
408 end
409 class APrivateVisibility
410 super AVisibility
411 readable var _n_kwprivate: TKwprivate
412 end
413 class AProtectedVisibility
414 super AVisibility
415 readable var _n_kwprotected: TKwprotected
416 end
417 class AIntrudeVisibility
418 super AVisibility
419 readable var _n_kwintrude: TKwintrude
420 end
421 class AClassdef super Prod end
422 class AStdClassdef
423 super AClassdef
424 readable var _n_doc: nullable ADoc = null
425 readable var _n_kwredef: nullable TKwredef = null
426 readable var _n_visibility: AVisibility
427 readable var _n_classkind: AClasskind
428 readable var _n_id: nullable TClassid = null
429 readable var _n_formaldefs: List[AFormaldef] = new List[AFormaldef]
430 readable var _n_superclasses: List[ASuperclass] = new List[ASuperclass]
431 readable var _n_propdefs: List[APropdef] = new List[APropdef]
432 readable var _n_kwend: TKwend
433 redef fun hot_location do return n_id.location
434 end
435 class ATopClassdef
436 super AClassdef
437 readable var _n_propdefs: List[APropdef] = new List[APropdef]
438 end
439 class AMainClassdef
440 super AClassdef
441 readable var _n_propdefs: List[APropdef] = new List[APropdef]
442 end
443 class AClasskind super Prod end
444 class AConcreteClasskind
445 super AClasskind
446 readable var _n_kwclass: TKwclass
447 end
448 class AAbstractClasskind
449 super AClasskind
450 readable var _n_kwabstract: TKwabstract
451 readable var _n_kwclass: TKwclass
452 end
453 class AInterfaceClasskind
454 super AClasskind
455 readable var _n_kwinterface: TKwinterface
456 end
457 class AEnumClasskind
458 super AClasskind
459 readable var _n_kwenum: TKwenum
460 end
461 class AExternClasskind
462 super AClasskind
463 readable var _n_kwextern: TKwextern
464 end
465 class AFormaldef
466 super Prod
467 readable var _n_id: TClassid
468 readable var _n_type: nullable AType = null
469 end
470 class ASuperclass
471 super Prod
472 readable var _n_kwspecial: nullable TKwspecial = null
473 readable var _n_kwsuper: nullable TKwsuper = null
474 readable var _n_type: AType
475 end
476 class APropdef super Prod
477 readable var _n_doc: nullable ADoc = null
478 end
479 class AAttrPropdef
480 super APropdef
481 readable var _n_kwredef: nullable TKwredef = null
482 readable var _n_visibility: AVisibility
483 readable var _n_kwvar: TKwvar
484 readable var _n_id: nullable TAttrid
485 readable var _n_id2: nullable TId
486 readable var _n_type: nullable AType = null
487 readable var _n_readable: nullable AAble = null
488 readable var _n_writable: nullable AAble = null
489 readable var _n_expr: nullable AExpr = null
490 redef fun hot_location
491 do
492 if n_id != null then return n_id.location else return n_id2.location
493 end
494 end
495 class AMethPropdef
496 super APropdef
497 readable var _n_kwredef: nullable TKwredef = null
498 readable var _n_visibility: nullable AVisibility
499 readable var _n_methid: nullable AMethid = null
500 readable var _n_signature: nullable ASignature
501 redef fun hot_location
502 do
503 if n_methid != null then
504 return n_methid.location
505 else
506 return location
507 end
508 end
509 end
510 class ADeferredMethPropdef
511 super AMethPropdef
512 readable var _n_kwmeth: TKwmeth
513 end
514 class AInternMethPropdef
515 super AMethPropdef
516 readable var _n_kwmeth: TKwmeth
517 end
518 class AExternPropdef
519 super AMethPropdef
520 readable var _n_extern: nullable TString = null
521 readable var _n_extern_calls: nullable AExternCalls = null
522 end
523 class AExternMethPropdef
524 super AMethPropdef
525 super AExternPropdef
526 readable var _n_kwmeth: TKwmeth
527 end
528 class AConcreteMethPropdef
529 super AMethPropdef
530 readable var _n_kwmeth: nullable TKwmeth
531 readable var _n_block: nullable AExpr = null
532 end
533 class AInitPropdef
534 end
535 class AConcreteInitPropdef
536 super AConcreteMethPropdef
537 super AInitPropdef
538 init do end
539 readable var _n_kwinit: TKwinit
540 redef fun hot_location do return n_kwinit.location
541 end
542 class AExternInitPropdef
543 super AExternPropdef
544 super AInitPropdef
545 init do end
546 readable var _n_kwnew: TKwnew
547 end
548 class AMainMethPropdef
549 super AConcreteMethPropdef
550 end
551 class AExternCalls
552 super Prod
553 readable var _n_kwimport: TKwimport
554 readable var _n_extern_calls: List[AExternCall] = new List[AExternCall]
555 end
556 class AExternCall
557 super Prod
558 end
559 class APropExternCall
560 special AExternCall
561 end
562 class ALocalPropExternCall
563 special APropExternCall
564 readable var _n_methid: AMethid
565 end
566 class AFullPropExternCall
567 special APropExternCall
568 readable var _n_classid: TClassid
569 readable var _n_quad: nullable TQuad = null
570 readable var _n_methid: AMethid
571 end
572 class AInitPropExternCall
573 special APropExternCall
574 readable var _n_classid: TClassid
575 end
576 class ASuperExternCall
577 special AExternCall
578 readable var _n_kwsuper: TKwsuper
579 end
580 class ACastExternCall
581 special AExternCall
582 end
583 class ACastAsExternCall
584 special ACastExternCall
585 readable var _n_from_type: AType
586 readable var _n_kwas: TKwas
587 readable var _n_to_type: AType
588 end
589 class AAsNullableExternCall
590 special ACastExternCall
591 readable var _n_type: AType
592 readable var _n_kwas: TKwas
593 readable var _n_kwnullable: TKwnullable
594 end
595 class AAsNotNullableExternCall
596 special ACastExternCall
597 readable var _n_type: AType
598 readable var _n_kwas: TKwas
599 readable var _n_kwnot: TKwnot
600 readable var _n_kwnullable: TKwnullable
601 end
602 class ATypePropdef
603 super APropdef
604 readable var _n_kwredef: nullable TKwredef = null
605 readable var _n_visibility: AVisibility
606 readable var _n_kwtype: TKwtype
607 readable var _n_id: TClassid
608 readable var _n_type: AType
609 end
610 class AAble super Prod
611 readable var _n_visibility: nullable AVisibility = null
612 readable var _n_kwredef: nullable TKwredef = null
613 end
614 class AReadAble
615 super AAble
616 readable var _n_kwreadable: TKwreadable
617 end
618 class AWriteAble
619 super AAble
620 readable var _n_kwwritable: TKwwritable
621 end
622 class AMethid super Prod end
623 class AIdMethid
624 super AMethid
625 readable var _n_id: TId
626 end
627 class APlusMethid
628 super AMethid
629 readable var _n_plus: TPlus
630 end
631 class AMinusMethid
632 super AMethid
633 readable var _n_minus: TMinus
634 end
635 class AStarMethid
636 super AMethid
637 readable var _n_star: TStar
638 end
639 class ASlashMethid
640 super AMethid
641 readable var _n_slash: TSlash
642 end
643 class APercentMethid
644 super AMethid
645 readable var _n_percent: TPercent
646 end
647 class AEqMethid
648 super AMethid
649 readable var _n_eq: TEq
650 end
651 class ANeMethid
652 super AMethid
653 readable var _n_ne: TNe
654 end
655 class ALeMethid
656 super AMethid
657 readable var _n_le: TLe
658 end
659 class AGeMethid
660 super AMethid
661 readable var _n_ge: TGe
662 end
663 class ALtMethid
664 super AMethid
665 readable var _n_lt: TLt
666 end
667 class AGtMethid
668 super AMethid
669 readable var _n_gt: TGt
670 end
671 class ALlMethid
672 super AMethid
673 readable writable var _n_ll: TLl
674 end
675 class AGgMethid
676 super AMethid
677 readable writable var _n_gg: TGg
678 end
679 class ABraMethid
680 super AMethid
681 readable var _n_obra: TObra
682 readable var _n_cbra: TCbra
683 end
684 class AStarshipMethid
685 super AMethid
686 readable var _n_starship: TStarship
687 end
688 class AAssignMethid
689 super AMethid
690 readable var _n_id: TId
691 readable var _n_assign: TAssign
692 end
693 class ABraassignMethid
694 super AMethid
695 readable var _n_obra: TObra
696 readable var _n_cbra: TCbra
697 readable var _n_assign: TAssign
698 end
699 class ASignature
700 super Prod
701 readable var _n_params: List[AParam] = new List[AParam]
702 readable var _n_type: nullable AType = null
703 readable var _n_closure_decls: List[AClosureDecl] = new List[AClosureDecl]
704 end
705 class AParam
706 super Prod
707 readable var _n_id: TId
708 readable var _n_type: nullable AType = null
709 readable var _n_dotdotdot: nullable TDotdotdot = null
710 end
711 class AClosureDecl
712 super Prod
713 readable var _n_kwbreak: nullable TKwbreak = null
714 readable var _n_bang: TBang
715 readable var _n_id: TId
716 readable var _n_signature: ASignature
717 readable var _n_expr: nullable AExpr = null
718 end
719 class AType
720 super Prod
721 readable var _n_kwnullable: nullable TKwnullable = null
722 readable var _n_id: TClassid
723 readable var _n_types: List[AType] = new List[AType]
724 end
725 class ALabel
726 super Prod
727 readable var _n_kwlabel: TKwlabel
728 readable var _n_id: TId
729 end
730 class AExpr super Prod end
731 class ABlockExpr
732 super AExpr
733 readable var _n_expr: List[AExpr] = new List[AExpr]
734 readable var _n_kwend: nullable TKwend = null
735 end
736 class AVardeclExpr
737 super AExpr
738 readable var _n_kwvar: TKwvar
739 readable var _n_id: TId
740 readable var _n_type: nullable AType = null
741 readable var _n_assign: nullable TAssign = null
742 readable var _n_expr: nullable AExpr = null
743 end
744 class AReturnExpr
745 super AExpr
746 readable var _n_kwreturn: nullable TKwreturn = null
747 readable var _n_expr: nullable AExpr = null
748 end
749 class ALabelable
750 super Prod
751 readable var _n_label: nullable ALabel = null
752 end
753 class ABreakExpr
754 super AExpr
755 super ALabelable
756 readable var _n_kwbreak: TKwbreak
757 readable var _n_expr: nullable AExpr = null
758 end
759 class AAbortExpr
760 super AExpr
761 readable var _n_kwabort: TKwabort
762 end
763 class AContinueExpr
764 super AExpr
765 super ALabelable
766 readable var _n_kwcontinue: nullable TKwcontinue = null
767 readable var _n_expr: nullable AExpr = null
768 end
769 class ADoExpr
770 super AExpr
771 super ALabelable
772 readable var _n_kwdo: TKwdo
773 readable var _n_block: nullable AExpr = null
774 end
775 class AIfExpr
776 super AExpr
777 readable var _n_kwif: TKwif
778 readable var _n_expr: AExpr
779 readable var _n_then: nullable AExpr = null
780 readable var _n_else: nullable AExpr = null
781 end
782 class AIfexprExpr
783 super AExpr
784 readable var _n_kwif: TKwif
785 readable var _n_expr: AExpr
786 readable var _n_kwthen: TKwthen
787 readable var _n_then: AExpr
788 readable var _n_kwelse: TKwelse
789 readable var _n_else: AExpr
790 end
791 class AWhileExpr
792 super AExpr
793 super ALabelable
794 readable var _n_kwwhile: TKwwhile
795 readable var _n_expr: AExpr
796 readable var _n_kwdo: TKwdo
797 readable var _n_block: nullable AExpr = null
798 end
799 class ALoopExpr
800 super AExpr
801 super ALabelable
802 readable var _n_kwloop: TKwloop
803 readable var _n_block: nullable AExpr = null
804 end
805 class AForExpr
806 super AExpr
807 super ALabelable
808 readable var _n_kwfor: TKwfor
809 readable var _n_ids: List[TId] = new List[TId]
810 readable var _n_expr: AExpr
811 readable var _n_kwdo: TKwdo
812 readable var _n_block: nullable AExpr = null
813 end
814 class AAssertExpr
815 super AExpr
816 readable var _n_kwassert: TKwassert
817 readable var _n_id: nullable TId = null
818 readable var _n_expr: AExpr
819 readable var _n_else: nullable AExpr = null
820 end
821 class AAssignFormExpr
822 super AExpr
823 readable var _n_assign: TAssign
824 readable var _n_value: AExpr
825 end
826 class AReassignFormExpr
827 super AExpr
828 readable var _n_assign_op: AAssignOp
829 readable var _n_value: AExpr
830 end
831 class AOnceExpr
832 super AProxyExpr
833 readable var _n_kwonce: TKwonce
834 end
835 class ASendExpr
836 super AExpr
837 readable var _n_expr: AExpr
838 readable var _n_closure_defs: List[AClosureDef] = new List[AClosureDef]
839 end
840 class ABinopExpr
841 super ASendExpr
842 readable var _n_expr2: AExpr
843 end
844 class ABoolExpr
845 super AExpr
846 end
847 class AOrExpr
848 super ABoolExpr
849 readable var _n_expr: AExpr
850 readable var _n_expr2: AExpr
851 end
852 class AAndExpr
853 super ABoolExpr
854 readable var _n_expr: AExpr
855 readable var _n_expr2: AExpr
856 end
857 class AOrElseExpr
858 super ABoolExpr
859 readable var _n_expr: AExpr
860 readable var _n_expr2: AExpr
861 end
862 class ANotExpr
863 super ABoolExpr
864 readable var _n_kwnot: TKwnot
865 readable var _n_expr: AExpr
866 end
867 class AEqExpr
868 super ABinopExpr
869 end
870 class AEeExpr
871 super ABoolExpr
872 readable var _n_expr: AExpr
873 readable var _n_expr2: AExpr
874 end
875 class ANeExpr
876 super ABinopExpr
877 end
878 class ALtExpr
879 super ABinopExpr
880 end
881 class ALeExpr
882 super ABinopExpr
883 end
884 class ALlExpr
885 super ABinopExpr
886 end
887 class AGtExpr
888 super ABinopExpr
889 end
890 class AGeExpr
891 super ABinopExpr
892 end
893 class AGgExpr
894 super ABinopExpr
895 end
896 class AIsaExpr
897 super ABoolExpr
898 readable var _n_expr: AExpr
899 readable var _n_type: AType
900 end
901 class APlusExpr
902 super ABinopExpr
903 end
904 class AMinusExpr
905 super ABinopExpr
906 end
907 class AStarshipExpr
908 super ABinopExpr
909 end
910 class AStarExpr
911 super ABinopExpr
912 end
913 class ASlashExpr
914 super ABinopExpr
915 end
916 class APercentExpr
917 super ABinopExpr
918 end
919 class AUminusExpr
920 super ASendExpr
921 readable var _n_minus: TMinus
922 end
923 class ANewExpr
924 super AExpr
925 readable var _n_kwnew: TKwnew
926 readable var _n_type: AType
927 readable var _n_id: nullable TId = null
928 readable var _n_args: List[AExpr] = new List[AExpr]
929 end
930 class AAttrFormExpr
931 super AExpr
932 readable var _n_expr: AExpr
933 readable var _n_id: TAttrid
934 end
935 class AAttrExpr
936 super AAttrFormExpr
937 end
938 class AAttrAssignExpr
939 super AAttrFormExpr
940 super AAssignFormExpr
941 end
942 class ACallFormExpr
943 super ASendExpr
944 readable var _n_id: TId
945 readable var _n_args: List[AExpr] = new List[AExpr]
946 end
947 class AAttrReassignExpr
948 super AExpr
949 super AAttrFormExpr
950 super AReassignFormExpr
951 end
952 class ACallExpr
953 super ACallFormExpr
954 end
955 class ACallAssignExpr
956 super ACallFormExpr
957 super AAssignFormExpr
958 end
959 class ACallReassignExpr
960 super AExpr
961 super ACallFormExpr
962 super AReassignFormExpr
963 end
964 class ASuperExpr
965 super AExpr
966 readable var _n_qualified: nullable AQualified = null
967 readable var _n_kwsuper: TKwsuper
968 readable var _n_args: List[AExpr] = new List[AExpr]
969 end
970 class AInitExpr
971 super ASendExpr
972 readable var _n_kwinit: TKwinit
973 readable var _n_args: List[AExpr] = new List[AExpr]
974 end
975 class ABraFormExpr
976 super ASendExpr
977 readable var _n_args: List[AExpr] = new List[AExpr]
978 end
979 class ABraExpr
980 super ABraFormExpr
981 end
982 class ABraAssignExpr
983 super ABraFormExpr
984 super AAssignFormExpr
985 end
986 class AVarFormExpr
987 super AExpr
988 readable var _n_id: TId
989 end
990 class ABraReassignExpr
991 super ABraFormExpr
992 super AReassignFormExpr
993 end
994 class AClosureCallExpr
995 super AExpr
996 readable var _n_id: TId
997 readable var _n_args: List[AExpr] = new List[AExpr]
998 readable var _n_closure_defs: List[AClosureDef] = new List[AClosureDef]
999 end
1000 class AVarExpr
1001 super AVarFormExpr
1002 end
1003 class AVarAssignExpr
1004 super AVarFormExpr
1005 super AAssignFormExpr
1006 end
1007 class AVarReassignExpr
1008 super AVarFormExpr
1009 super AReassignFormExpr
1010 end
1011 class ARangeExpr
1012 super AExpr
1013 readable var _n_expr: AExpr
1014 readable var _n_expr2: AExpr
1015 end
1016 class ACrangeExpr
1017 super ARangeExpr
1018 end
1019 class AOrangeExpr
1020 super ARangeExpr
1021 end
1022 class AArrayExpr
1023 super AExpr
1024 readable var _n_exprs: List[AExpr] = new List[AExpr]
1025 end
1026 class ASelfExpr
1027 super AExpr
1028 readable var _n_kwself: nullable TKwself
1029 end
1030 class AImplicitSelfExpr
1031 super ASelfExpr
1032 end
1033 class ATrueExpr
1034 super ABoolExpr
1035 readable var _n_kwtrue: TKwtrue
1036 end
1037 class AFalseExpr
1038 super ABoolExpr
1039 readable var _n_kwfalse: TKwfalse
1040 end
1041 class ANullExpr
1042 super AExpr
1043 readable var _n_kwnull: TKwnull
1044 end
1045 class AIntExpr
1046 super AExpr
1047 readable var _n_number: TNumber
1048 end
1049 class AFloatExpr
1050 super AExpr
1051 readable var _n_float: TFloat
1052 end
1053 class ACharExpr
1054 super AExpr
1055 readable var _n_char: TChar
1056 end
1057 class AStringFormExpr
1058 super AExpr
1059 end
1060 class AStringExpr
1061 super AStringFormExpr
1062 readable var _n_string: TString
1063 end
1064 class AStartStringExpr
1065 super AStringFormExpr
1066 readable var _n_string: TStartString
1067 end
1068 class AMidStringExpr
1069 super AStringFormExpr
1070 readable var _n_string: TMidString
1071 end
1072 class AEndStringExpr
1073 super AStringFormExpr
1074 readable var _n_string: TEndString
1075 end
1076 class ASuperstringExpr
1077 super AExpr
1078 readable var _n_exprs: List[AExpr] = new List[AExpr]
1079 end
1080 class AParExpr
1081 super AProxyExpr
1082 end
1083 class AProxyExpr
1084 super AExpr
1085 readable var _n_expr: AExpr
1086 end
1087 class AAsCastExpr
1088 super AExpr
1089 readable var _n_expr: AExpr
1090 readable var _n_kwas: TKwas
1091 readable var _n_type: AType
1092 end
1093 class AAsNotnullExpr
1094 super AExpr
1095 readable var _n_expr: AExpr
1096 readable var _n_kwas: TKwas
1097 readable var _n_kwnot: TKwnot
1098 readable var _n_kwnull: TKwnull
1099 end
1100 class AIssetAttrExpr
1101 super AAttrFormExpr
1102 readable var _n_kwisset: TKwisset
1103 end
1104 class AAssignOp super Prod end
1105 class APlusAssignOp
1106 super AAssignOp
1107 readable var _n_pluseq: TPluseq
1108 end
1109 class AMinusAssignOp
1110 super AAssignOp
1111 readable var _n_minuseq: TMinuseq
1112 end
1113 class AClosureDef
1114 super ALabelable
1115 readable var _n_bang: TBang
1116 readable var _n_id: AClosureId
1117 readable var _n_ids: List[TId] = new List[TId]
1118 readable var _n_kwdo: nullable TKwdo = null
1119 readable var _n_expr: nullable AExpr = null
1120 redef fun hot_location do return n_id.location
1121 end
1122 class AClosureId
1123 super Prod
1124 end
1125 class ASimpleClosureId
1126 super AClosureId
1127 readable var _n_id: TId
1128 end
1129 class ABreakClosureId
1130 super AClosureId
1131 readable var _n_kwbreak: TKwbreak
1132 end
1133 class AModuleName
1134 special Prod
1135 readable var _n_quad: nullable TQuad = null
1136 readable var _n_path: List[TId] = new List[TId]
1137 readable var _n_id: TId
1138 end
1139 class AQualified
1140 super Prod
1141 readable var _n_quad: nullable TQuad = null
1142 readable var _n_id: List[TId] = new List[TId]
1143 readable var _n_classid: nullable TClassid = null
1144 end
1145 class ADoc
1146 super Prod
1147 readable var _n_comment: List[TComment] = new List[TComment]
1148 end
1149
1150 class Start
1151 super Prod
1152 readable var _n_base: nullable AModule
1153 readable var _n_eof: EOF
1154 end