6a3582d6535ed5f50ce3e93a14765b57e2820a7e
[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 EOF
354 super Token
355 private init noinit do end
356 redef fun to_s
357 do
358 return "end of file"
359 end
360 end
361 class AError
362 super EOF
363 private init noinit do end
364 end
365
366 class AModule
367 super Prod
368 readable var _n_moduledecl: nullable AModuledecl = null
369 readable var _n_imports: List[AImport] = new List[AImport]
370 readable var _n_classdefs: List[AClassdef] = new List[AClassdef]
371 end
372 class AModuledecl
373 super Prod
374 readable var _n_doc: nullable ADoc = null
375 readable var _n_kwmodule: TKwmodule
376 readable var _n_name: AModuleName
377 end
378 class AImport super Prod end
379 class AStdImport
380 super AImport
381 readable var _n_visibility: AVisibility
382 readable var _n_kwimport: TKwimport
383 readable var _n_name: AModuleName
384 end
385 class ANoImport
386 super AImport
387 readable var _n_visibility: AVisibility
388 readable var _n_kwimport: TKwimport
389 readable var _n_kwend: TKwend
390 end
391 class AVisibility super Prod end
392 class APublicVisibility
393 super AVisibility
394 end
395 class APrivateVisibility
396 super AVisibility
397 readable var _n_kwprivate: TKwprivate
398 end
399 class AProtectedVisibility
400 super AVisibility
401 readable var _n_kwprotected: TKwprotected
402 end
403 class AIntrudeVisibility
404 super AVisibility
405 readable var _n_kwintrude: TKwintrude
406 end
407 class AClassdef super Prod end
408 class AStdClassdef
409 super AClassdef
410 readable var _n_doc: nullable ADoc = null
411 readable var _n_kwredef: nullable TKwredef = null
412 readable var _n_visibility: AVisibility
413 readable var _n_classkind: AClasskind
414 readable var _n_id: nullable TClassid = null
415 readable var _n_formaldefs: List[AFormaldef] = new List[AFormaldef]
416 readable var _n_superclasses: List[ASuperclass] = new List[ASuperclass]
417 readable var _n_propdefs: List[APropdef] = new List[APropdef]
418 readable var _n_kwend: TKwend
419 redef fun hot_location do return n_id.location
420 end
421 class ATopClassdef
422 super AClassdef
423 readable var _n_propdefs: List[APropdef] = new List[APropdef]
424 end
425 class AMainClassdef
426 super AClassdef
427 readable var _n_propdefs: List[APropdef] = new List[APropdef]
428 end
429 class AClasskind super Prod end
430 class AConcreteClasskind
431 super AClasskind
432 readable var _n_kwclass: TKwclass
433 end
434 class AAbstractClasskind
435 super AClasskind
436 readable var _n_kwabstract: TKwabstract
437 readable var _n_kwclass: TKwclass
438 end
439 class AInterfaceClasskind
440 super AClasskind
441 readable var _n_kwinterface: TKwinterface
442 end
443 class AEnumClasskind
444 super AClasskind
445 readable var _n_kwenum: TKwenum
446 end
447 class AExternClasskind
448 super AClasskind
449 readable var _n_kwextern: TKwextern
450 end
451 class AFormaldef
452 super Prod
453 readable var _n_id: TClassid
454 readable var _n_type: nullable AType = null
455 end
456 class ASuperclass
457 super Prod
458 readable var _n_kwspecial: nullable TKwspecial = null
459 readable var _n_kwsuper: nullable TKwsuper = null
460 readable var _n_type: AType
461 end
462 class APropdef super Prod
463 readable var _n_doc: nullable ADoc = null
464 end
465 class AAttrPropdef
466 super APropdef
467 readable var _n_kwredef: nullable TKwredef = null
468 readable var _n_visibility: AVisibility
469 readable var _n_kwvar: TKwvar
470 readable var _n_id: nullable TAttrid
471 readable var _n_id2: nullable TId
472 readable var _n_type: nullable AType = null
473 readable var _n_readable: nullable AAble = null
474 readable var _n_writable: nullable AAble = null
475 readable var _n_expr: nullable AExpr = null
476 redef fun hot_location
477 do
478 if n_id != null then return n_id.location else return n_id2.location
479 end
480 end
481 class AMethPropdef
482 super APropdef
483 readable var _n_kwredef: nullable TKwredef = null
484 readable var _n_visibility: nullable AVisibility
485 readable var _n_methid: nullable AMethid = null
486 readable var _n_signature: nullable ASignature
487 redef fun hot_location
488 do
489 if n_methid != null then
490 return n_methid.location
491 else
492 return location
493 end
494 end
495 end
496 class ADeferredMethPropdef
497 super AMethPropdef
498 readable var _n_kwmeth: TKwmeth
499 end
500 class AInternMethPropdef
501 super AMethPropdef
502 readable var _n_kwmeth: TKwmeth
503 end
504 class AExternPropdef
505 super AMethPropdef
506 readable var _n_extern: nullable TString = null
507 readable var _n_extern_calls: nullable AExternCalls = null
508 end
509 class AExternMethPropdef
510 super AMethPropdef
511 super AExternPropdef
512 readable var _n_kwmeth: TKwmeth
513 end
514 class AConcreteMethPropdef
515 super AMethPropdef
516 readable var _n_kwmeth: nullable TKwmeth
517 readable var _n_block: nullable AExpr = null
518 end
519 class AInitPropdef
520 end
521 class AConcreteInitPropdef
522 super AConcreteMethPropdef
523 super AInitPropdef
524 init do end
525 readable var _n_kwinit: TKwinit
526 redef fun hot_location do return n_kwinit.location
527 end
528 class AExternInitPropdef
529 super AExternPropdef
530 super AInitPropdef
531 init do end
532 readable var _n_kwnew: TKwnew
533 end
534 class AMainMethPropdef
535 super AConcreteMethPropdef
536 end
537 class AExternCalls
538 super Prod
539 readable var _n_kwimport: TKwimport
540 readable var _n_extern_calls: List[AExternCall] = new List[AExternCall]
541 end
542 class AExternCall
543 super Prod
544 end
545 class APropExternCall
546 special AExternCall
547 end
548 class ALocalPropExternCall
549 special APropExternCall
550 readable var _n_methid: AMethid
551 end
552 class AFullPropExternCall
553 special APropExternCall
554 readable var _n_classid: TClassid
555 readable var _n_quad: nullable TQuad = null
556 readable var _n_methid: AMethid
557 end
558 class AInitPropExternCall
559 special APropExternCall
560 readable var _n_classid: TClassid
561 end
562 class ASuperExternCall
563 special AExternCall
564 readable var _n_kwsuper: TKwsuper
565 end
566 class ACastExternCall
567 special AExternCall
568 end
569 class ACastAsExternCall
570 special ACastExternCall
571 readable var _n_from_type: AType
572 readable var _n_kwas: TKwas
573 readable var _n_to_type: AType
574 end
575 class AAsNullableExternCall
576 special ACastExternCall
577 readable var _n_type: AType
578 readable var _n_kwas: TKwas
579 readable var _n_kwnullable: TKwnullable
580 end
581 class AAsNotNullableExternCall
582 special ACastExternCall
583 readable var _n_type: AType
584 readable var _n_kwas: TKwas
585 readable var _n_kwnot: TKwnot
586 readable var _n_kwnullable: TKwnullable
587 end
588 class ATypePropdef
589 super APropdef
590 readable var _n_kwredef: nullable TKwredef = null
591 readable var _n_visibility: AVisibility
592 readable var _n_kwtype: TKwtype
593 readable var _n_id: TClassid
594 readable var _n_type: AType
595 end
596 class AAble super Prod
597 readable var _n_visibility: nullable AVisibility = null
598 readable var _n_kwredef: nullable TKwredef = null
599 end
600 class AReadAble
601 super AAble
602 readable var _n_kwreadable: TKwreadable
603 end
604 class AWriteAble
605 super AAble
606 readable var _n_kwwritable: TKwwritable
607 end
608 class AMethid super Prod end
609 class AIdMethid
610 super AMethid
611 readable var _n_id: TId
612 end
613 class APlusMethid
614 super AMethid
615 readable var _n_plus: TPlus
616 end
617 class AMinusMethid
618 super AMethid
619 readable var _n_minus: TMinus
620 end
621 class AStarMethid
622 super AMethid
623 readable var _n_star: TStar
624 end
625 class ASlashMethid
626 super AMethid
627 readable var _n_slash: TSlash
628 end
629 class APercentMethid
630 super AMethid
631 readable var _n_percent: TPercent
632 end
633 class AEqMethid
634 super AMethid
635 readable var _n_eq: TEq
636 end
637 class ANeMethid
638 super AMethid
639 readable var _n_ne: TNe
640 end
641 class ALeMethid
642 super AMethid
643 readable var _n_le: TLe
644 end
645 class AGeMethid
646 super AMethid
647 readable var _n_ge: TGe
648 end
649 class ALtMethid
650 super AMethid
651 readable var _n_lt: TLt
652 end
653 class AGtMethid
654 super AMethid
655 readable var _n_gt: TGt
656 end
657 class ALlMethid
658 super AMethid
659 readable writable var _n_ll: TLl
660 end
661 class AGgMethid
662 super AMethid
663 readable writable var _n_gg: TGg
664 end
665 class ABraMethid
666 super AMethid
667 readable var _n_obra: TObra
668 readable var _n_cbra: TCbra
669 end
670 class AStarshipMethid
671 super AMethid
672 readable var _n_starship: TStarship
673 end
674 class AAssignMethid
675 super AMethid
676 readable var _n_id: TId
677 readable var _n_assign: TAssign
678 end
679 class ABraassignMethid
680 super AMethid
681 readable var _n_obra: TObra
682 readable var _n_cbra: TCbra
683 readable var _n_assign: TAssign
684 end
685 class ASignature
686 super Prod
687 readable var _n_params: List[AParam] = new List[AParam]
688 readable var _n_type: nullable AType = null
689 readable var _n_closure_decls: List[AClosureDecl] = new List[AClosureDecl]
690 end
691 class AParam
692 super Prod
693 readable var _n_id: TId
694 readable var _n_type: nullable AType = null
695 readable var _n_dotdotdot: nullable TDotdotdot = null
696 end
697 class AClosureDecl
698 super Prod
699 readable var _n_kwbreak: nullable TKwbreak = null
700 readable var _n_bang: TBang
701 readable var _n_id: TId
702 readable var _n_signature: ASignature
703 readable var _n_expr: nullable AExpr = null
704 end
705 class AType
706 super Prod
707 readable var _n_kwnullable: nullable TKwnullable = null
708 readable var _n_id: TClassid
709 readable var _n_types: List[AType] = new List[AType]
710 end
711 class ALabel
712 super Prod
713 readable var _n_kwlabel: TKwlabel
714 readable var _n_id: TId
715 end
716 class AExpr super Prod end
717 class ABlockExpr
718 super AExpr
719 readable var _n_expr: List[AExpr] = new List[AExpr]
720 readable var _n_kwend: nullable TKwend = null
721 end
722 class AVardeclExpr
723 super AExpr
724 readable var _n_kwvar: TKwvar
725 readable var _n_id: TId
726 readable var _n_type: nullable AType = null
727 readable var _n_assign: nullable TAssign = null
728 readable var _n_expr: nullable AExpr = null
729 end
730 class AReturnExpr
731 super AExpr
732 readable var _n_kwreturn: nullable TKwreturn = null
733 readable var _n_expr: nullable AExpr = null
734 end
735 class ALabelable
736 super Prod
737 readable var _n_label: nullable ALabel = null
738 end
739 class ABreakExpr
740 super AExpr
741 super ALabelable
742 readable var _n_kwbreak: TKwbreak
743 readable var _n_expr: nullable AExpr = null
744 end
745 class AAbortExpr
746 super AExpr
747 readable var _n_kwabort: TKwabort
748 end
749 class AContinueExpr
750 super AExpr
751 super ALabelable
752 readable var _n_kwcontinue: nullable TKwcontinue = null
753 readable var _n_expr: nullable AExpr = null
754 end
755 class ADoExpr
756 super AExpr
757 super ALabelable
758 readable var _n_kwdo: TKwdo
759 readable var _n_block: nullable AExpr = null
760 end
761 class AIfExpr
762 super AExpr
763 readable var _n_kwif: TKwif
764 readable var _n_expr: AExpr
765 readable var _n_then: nullable AExpr = null
766 readable var _n_else: nullable AExpr = null
767 end
768 class AIfexprExpr
769 super AExpr
770 readable var _n_kwif: TKwif
771 readable var _n_expr: AExpr
772 readable var _n_kwthen: TKwthen
773 readable var _n_then: AExpr
774 readable var _n_kwelse: TKwelse
775 readable var _n_else: AExpr
776 end
777 class AWhileExpr
778 super AExpr
779 super ALabelable
780 readable var _n_kwwhile: TKwwhile
781 readable var _n_expr: AExpr
782 readable var _n_kwdo: TKwdo
783 readable var _n_block: nullable AExpr = null
784 end
785 class ALoopExpr
786 super AExpr
787 super ALabelable
788 readable var _n_kwloop: TKwloop
789 readable var _n_block: nullable AExpr = null
790 end
791 class AForExpr
792 super AExpr
793 super ALabelable
794 readable var _n_kwfor: TKwfor
795 readable var _n_ids: List[TId] = new List[TId]
796 readable var _n_expr: AExpr
797 readable var _n_kwdo: TKwdo
798 readable var _n_block: nullable AExpr = null
799 end
800 class AAssertExpr
801 super AExpr
802 readable var _n_kwassert: TKwassert
803 readable var _n_id: nullable TId = null
804 readable var _n_expr: AExpr
805 readable var _n_else: nullable AExpr = null
806 end
807 class AAssignFormExpr
808 super AExpr
809 readable var _n_assign: TAssign
810 readable var _n_value: AExpr
811 end
812 class AReassignFormExpr
813 super AExpr
814 readable var _n_assign_op: AAssignOp
815 readable var _n_value: AExpr
816 end
817 class AOnceExpr
818 super AProxyExpr
819 readable var _n_kwonce: TKwonce
820 end
821 class ASendExpr
822 super AExpr
823 readable var _n_expr: AExpr
824 readable var _n_closure_defs: List[AClosureDef] = new List[AClosureDef]
825 end
826 class ABinopExpr
827 super ASendExpr
828 readable var _n_expr2: AExpr
829 end
830 class ABoolExpr
831 super AExpr
832 end
833 class AOrExpr
834 super ABoolExpr
835 readable var _n_expr: AExpr
836 readable var _n_expr2: AExpr
837 end
838 class AAndExpr
839 super ABoolExpr
840 readable var _n_expr: AExpr
841 readable var _n_expr2: AExpr
842 end
843 class AOrElseExpr
844 super ABoolExpr
845 readable var _n_expr: AExpr
846 readable var _n_expr2: AExpr
847 end
848 class ANotExpr
849 super ABoolExpr
850 readable var _n_kwnot: TKwnot
851 readable var _n_expr: AExpr
852 end
853 class AEqExpr
854 super ABinopExpr
855 end
856 class AEeExpr
857 super ABoolExpr
858 readable var _n_expr: AExpr
859 readable var _n_expr2: AExpr
860 end
861 class ANeExpr
862 super ABinopExpr
863 end
864 class ALtExpr
865 super ABinopExpr
866 end
867 class ALeExpr
868 super ABinopExpr
869 end
870 class ALlExpr
871 super ABinopExpr
872 end
873 class AGtExpr
874 super ABinopExpr
875 end
876 class AGeExpr
877 super ABinopExpr
878 end
879 class AGgExpr
880 super ABinopExpr
881 end
882 class AIsaExpr
883 super ABoolExpr
884 readable var _n_expr: AExpr
885 readable var _n_type: AType
886 end
887 class APlusExpr
888 super ABinopExpr
889 end
890 class AMinusExpr
891 super ABinopExpr
892 end
893 class AStarshipExpr
894 super ABinopExpr
895 end
896 class AStarExpr
897 super ABinopExpr
898 end
899 class ASlashExpr
900 super ABinopExpr
901 end
902 class APercentExpr
903 super ABinopExpr
904 end
905 class AUminusExpr
906 super ASendExpr
907 readable var _n_minus: TMinus
908 end
909 class ANewExpr
910 super AExpr
911 readable var _n_kwnew: TKwnew
912 readable var _n_type: AType
913 readable var _n_id: nullable TId = null
914 readable var _n_args: List[AExpr] = new List[AExpr]
915 end
916 class AAttrFormExpr
917 super AExpr
918 readable var _n_expr: AExpr
919 readable var _n_id: TAttrid
920 end
921 class AAttrExpr
922 super AAttrFormExpr
923 end
924 class AAttrAssignExpr
925 super AAttrFormExpr
926 super AAssignFormExpr
927 end
928 class ACallFormExpr
929 super ASendExpr
930 readable var _n_id: TId
931 readable var _n_args: List[AExpr] = new List[AExpr]
932 end
933 class AAttrReassignExpr
934 super AExpr
935 super AAttrFormExpr
936 super AReassignFormExpr
937 end
938 class ACallExpr
939 super ACallFormExpr
940 end
941 class ACallAssignExpr
942 super ACallFormExpr
943 super AAssignFormExpr
944 end
945 class ACallReassignExpr
946 super AExpr
947 super ACallFormExpr
948 super AReassignFormExpr
949 end
950 class ASuperExpr
951 super AExpr
952 readable var _n_qualified: nullable AQualified = null
953 readable var _n_kwsuper: TKwsuper
954 readable var _n_args: List[AExpr] = new List[AExpr]
955 end
956 class AInitExpr
957 super ASendExpr
958 readable var _n_kwinit: TKwinit
959 readable var _n_args: List[AExpr] = new List[AExpr]
960 end
961 class ABraFormExpr
962 super ASendExpr
963 readable var _n_args: List[AExpr] = new List[AExpr]
964 end
965 class ABraExpr
966 super ABraFormExpr
967 end
968 class ABraAssignExpr
969 super ABraFormExpr
970 super AAssignFormExpr
971 end
972 class AVarFormExpr
973 super AExpr
974 readable var _n_id: TId
975 end
976 class ABraReassignExpr
977 super ABraFormExpr
978 super AReassignFormExpr
979 end
980 class AClosureCallExpr
981 super AExpr
982 readable var _n_id: TId
983 readable var _n_args: List[AExpr] = new List[AExpr]
984 readable var _n_closure_defs: List[AClosureDef] = new List[AClosureDef]
985 end
986 class AVarExpr
987 super AVarFormExpr
988 end
989 class AVarAssignExpr
990 super AVarFormExpr
991 super AAssignFormExpr
992 end
993 class AVarReassignExpr
994 super AVarFormExpr
995 super AReassignFormExpr
996 end
997 class ARangeExpr
998 super AExpr
999 readable var _n_expr: AExpr
1000 readable var _n_expr2: AExpr
1001 end
1002 class ACrangeExpr
1003 super ARangeExpr
1004 end
1005 class AOrangeExpr
1006 super ARangeExpr
1007 end
1008 class AArrayExpr
1009 super AExpr
1010 readable var _n_exprs: List[AExpr] = new List[AExpr]
1011 end
1012 class ASelfExpr
1013 super AExpr
1014 readable var _n_kwself: nullable TKwself
1015 end
1016 class AImplicitSelfExpr
1017 super ASelfExpr
1018 end
1019 class ATrueExpr
1020 super ABoolExpr
1021 readable var _n_kwtrue: TKwtrue
1022 end
1023 class AFalseExpr
1024 super ABoolExpr
1025 readable var _n_kwfalse: TKwfalse
1026 end
1027 class ANullExpr
1028 super AExpr
1029 readable var _n_kwnull: TKwnull
1030 end
1031 class AIntExpr
1032 super AExpr
1033 readable var _n_number: TNumber
1034 end
1035 class AFloatExpr
1036 super AExpr
1037 readable var _n_float: TFloat
1038 end
1039 class ACharExpr
1040 super AExpr
1041 readable var _n_char: TChar
1042 end
1043 class AStringFormExpr
1044 super AExpr
1045 end
1046 class AStringExpr
1047 super AStringFormExpr
1048 readable var _n_string: TString
1049 end
1050 class AStartStringExpr
1051 super AStringFormExpr
1052 readable var _n_string: TStartString
1053 end
1054 class AMidStringExpr
1055 super AStringFormExpr
1056 readable var _n_string: TMidString
1057 end
1058 class AEndStringExpr
1059 super AStringFormExpr
1060 readable var _n_string: TEndString
1061 end
1062 class ASuperstringExpr
1063 super AExpr
1064 readable var _n_exprs: List[AExpr] = new List[AExpr]
1065 end
1066 class AParExpr
1067 super AProxyExpr
1068 end
1069 class AProxyExpr
1070 super AExpr
1071 readable var _n_expr: AExpr
1072 end
1073 class AAsCastExpr
1074 super AExpr
1075 readable var _n_expr: AExpr
1076 readable var _n_kwas: TKwas
1077 readable var _n_type: AType
1078 end
1079 class AAsNotnullExpr
1080 super AExpr
1081 readable var _n_expr: AExpr
1082 readable var _n_kwas: TKwas
1083 readable var _n_kwnot: TKwnot
1084 readable var _n_kwnull: TKwnull
1085 end
1086 class AIssetAttrExpr
1087 super AAttrFormExpr
1088 readable var _n_kwisset: TKwisset
1089 end
1090 class AAssignOp super Prod end
1091 class APlusAssignOp
1092 super AAssignOp
1093 readable var _n_pluseq: TPluseq
1094 end
1095 class AMinusAssignOp
1096 super AAssignOp
1097 readable var _n_minuseq: TMinuseq
1098 end
1099 class AClosureDef
1100 super ALabelable
1101 readable var _n_bang: TBang
1102 readable var _n_id: AClosureId
1103 readable var _n_ids: List[TId] = new List[TId]
1104 readable var _n_kwdo: nullable TKwdo = null
1105 readable var _n_expr: nullable AExpr = null
1106 redef fun hot_location do return n_id.location
1107 end
1108 class AClosureId
1109 super Prod
1110 end
1111 class ASimpleClosureId
1112 super AClosureId
1113 readable var _n_id: TId
1114 end
1115 class ABreakClosureId
1116 super AClosureId
1117 readable var _n_kwbreak: TKwbreak
1118 end
1119 class AModuleName
1120 special Prod
1121 readable var _n_quad: nullable TQuad = null
1122 readable var _n_path: List[TId] = new List[TId]
1123 readable var _n_id: TId
1124 end
1125 class AQualified
1126 super Prod
1127 readable var _n_quad: nullable TQuad = null
1128 readable var _n_id: List[TId] = new List[TId]
1129 readable var _n_classid: nullable TClassid = null
1130 end
1131 class ADoc
1132 super Prod
1133 readable var _n_comment: List[TComment] = new List[TComment]
1134 end
1135
1136 class Start
1137 super Prod
1138 readable var _n_base: nullable AModule
1139 readable var _n_eof: EOF
1140 end