574e5123645e2eca63840a79f1221be12319590d
[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 abstract 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 abstract 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 abstract 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 abstract 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 abstract 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 abstract class AClassdef super Prod
422 readable var _n_propdefs: List[APropdef] = new List[APropdef]
423 end
424 class AStdClassdef
425 super AClassdef
426 readable var _n_doc: nullable ADoc = null
427 readable var _n_kwredef: nullable TKwredef = null
428 readable var _n_visibility: AVisibility
429 readable var _n_classkind: AClasskind
430 readable var _n_id: nullable TClassid = null
431 readable var _n_formaldefs: List[AFormaldef] = new List[AFormaldef]
432 readable var _n_superclasses: List[ASuperclass] = new List[ASuperclass]
433 readable var _n_kwend: TKwend
434 redef fun hot_location do return n_id.location
435 end
436 class ATopClassdef
437 super AClassdef
438 end
439 class AMainClassdef
440 super AClassdef
441 end
442 abstract class AClasskind super Prod end
443 class AConcreteClasskind
444 super AClasskind
445 readable var _n_kwclass: TKwclass
446 end
447 class AAbstractClasskind
448 super AClasskind
449 readable var _n_kwabstract: TKwabstract
450 readable var _n_kwclass: TKwclass
451 end
452 class AInterfaceClasskind
453 super AClasskind
454 readable var _n_kwinterface: TKwinterface
455 end
456 class AEnumClasskind
457 super AClasskind
458 readable var _n_kwenum: TKwenum
459 end
460 class AExternClasskind
461 super AClasskind
462 readable var _n_kwextern: TKwextern
463 end
464 class AFormaldef
465 super Prod
466 readable var _n_id: TClassid
467 readable var _n_type: nullable AType = null
468 end
469 class ASuperclass
470 super Prod
471 readable var _n_kwspecial: nullable TKwspecial = null
472 readable var _n_kwsuper: nullable TKwsuper = null
473 readable var _n_type: AType
474 end
475 abstract class APropdef super Prod
476 readable var _n_doc: nullable ADoc = null
477 end
478 class AAttrPropdef
479 super APropdef
480 readable var _n_kwredef: nullable TKwredef = null
481 readable var _n_visibility: AVisibility
482 readable var _n_kwvar: TKwvar
483 readable var _n_id: nullable TAttrid
484 readable var _n_id2: nullable TId
485 readable var _n_type: nullable AType = null
486 readable var _n_readable: nullable AAble = null
487 readable var _n_writable: nullable AAble = null
488 readable var _n_expr: nullable AExpr = null
489 redef fun hot_location
490 do
491 if n_id != null then return n_id.location else return n_id2.location
492 end
493 end
494 abstract class AMethPropdef
495 super APropdef
496 readable var _n_kwredef: nullable TKwredef = null
497 readable var _n_visibility: nullable AVisibility
498 readable var _n_methid: nullable AMethid = null
499 readable var _n_signature: nullable ASignature
500 redef fun hot_location
501 do
502 if n_methid != null then
503 return n_methid.location
504 else
505 return location
506 end
507 end
508 end
509 class ADeferredMethPropdef
510 super AMethPropdef
511 readable var _n_kwmeth: TKwmeth
512 end
513 class AInternMethPropdef
514 super AMethPropdef
515 readable var _n_kwmeth: TKwmeth
516 end
517 abstract class AExternPropdef
518 super AMethPropdef
519 readable var _n_extern: nullable TString = null
520 readable var _n_extern_calls: nullable AExternCalls = null
521 end
522 class AExternMethPropdef
523 super AMethPropdef
524 super AExternPropdef
525 readable var _n_kwmeth: TKwmeth
526 end
527 class AConcreteMethPropdef
528 super AMethPropdef
529 readable var _n_kwmeth: nullable TKwmeth
530 readable var _n_block: nullable AExpr = null
531 end
532 abstract class AInitPropdef
533 super AMethPropdef
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 abstract class AExternCall
557 super Prod
558 end
559 abstract 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 abstract 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 abstract 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 abstract 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_opar: nullable TOpar = null
702 readable var _n_params: List[AParam] = new List[AParam]
703 readable var _n_cpar: nullable TCpar = null
704 readable var _n_type: nullable AType = null
705 readable var _n_closure_decls: List[AClosureDecl] = new List[AClosureDecl]
706 end
707 class AParam
708 super Prod
709 readable var _n_id: TId
710 readable var _n_type: nullable AType = null
711 readable var _n_dotdotdot: nullable TDotdotdot = null
712 end
713 class AClosureDecl
714 super Prod
715 readable var _n_kwbreak: nullable TKwbreak = null
716 readable var _n_bang: TBang
717 readable var _n_id: TId
718 readable var _n_signature: ASignature
719 readable var _n_expr: nullable AExpr = null
720 end
721 class AType
722 super Prod
723 readable var _n_kwnullable: nullable TKwnullable = null
724 readable var _n_id: TClassid
725 readable var _n_types: List[AType] = new List[AType]
726 end
727 class ALabel
728 super Prod
729 readable var _n_kwlabel: TKwlabel
730 readable var _n_id: TId
731 end
732 abstract class AExpr super Prod end
733 class ABlockExpr
734 super AExpr
735 readable var _n_expr: List[AExpr] = new List[AExpr]
736 readable var _n_kwend: nullable TKwend = null
737 end
738 class AVardeclExpr
739 super AExpr
740 readable var _n_kwvar: TKwvar
741 readable var _n_id: TId
742 readable var _n_type: nullable AType = null
743 readable var _n_assign: nullable TAssign = null
744 readable var _n_expr: nullable AExpr = null
745 end
746 class AReturnExpr
747 super AExpr
748 readable var _n_kwreturn: nullable TKwreturn = null
749 readable var _n_expr: nullable AExpr = null
750 end
751 abstract class ALabelable
752 super Prod
753 readable var _n_label: nullable ALabel = null
754 end
755 class ABreakExpr
756 super AExpr
757 super ALabelable
758 readable var _n_kwbreak: TKwbreak
759 readable var _n_expr: nullable AExpr = null
760 end
761 class AAbortExpr
762 super AExpr
763 readable var _n_kwabort: TKwabort
764 end
765 class AContinueExpr
766 super AExpr
767 super ALabelable
768 readable var _n_kwcontinue: nullable TKwcontinue = null
769 readable var _n_expr: nullable AExpr = null
770 end
771 class ADoExpr
772 super AExpr
773 super ALabelable
774 readable var _n_kwdo: TKwdo
775 readable var _n_block: nullable AExpr = null
776 end
777 class AIfExpr
778 super AExpr
779 readable var _n_kwif: TKwif
780 readable var _n_expr: AExpr
781 readable var _n_then: nullable AExpr = null
782 readable var _n_else: nullable AExpr = null
783 end
784 class AIfexprExpr
785 super AExpr
786 readable var _n_kwif: TKwif
787 readable var _n_expr: AExpr
788 readable var _n_kwthen: TKwthen
789 readable var _n_then: AExpr
790 readable var _n_kwelse: TKwelse
791 readable var _n_else: AExpr
792 end
793 class AWhileExpr
794 super AExpr
795 super ALabelable
796 readable var _n_kwwhile: TKwwhile
797 readable var _n_expr: AExpr
798 readable var _n_kwdo: TKwdo
799 readable var _n_block: nullable AExpr = null
800 end
801 class ALoopExpr
802 super AExpr
803 super ALabelable
804 readable var _n_kwloop: TKwloop
805 readable var _n_block: nullable AExpr = null
806 end
807 class AForExpr
808 super AExpr
809 super ALabelable
810 readable var _n_kwfor: TKwfor
811 readable var _n_ids: List[TId] = new List[TId]
812 readable var _n_expr: AExpr
813 readable var _n_kwdo: TKwdo
814 readable var _n_block: nullable AExpr = null
815 end
816 class AAssertExpr
817 super AExpr
818 readable var _n_kwassert: TKwassert
819 readable var _n_id: nullable TId = null
820 readable var _n_expr: AExpr
821 readable var _n_else: nullable AExpr = null
822 end
823 abstract class AAssignFormExpr
824 super AExpr
825 readable var _n_assign: TAssign
826 readable var _n_value: AExpr
827 end
828 abstract class AReassignFormExpr
829 super AExpr
830 readable var _n_assign_op: AAssignOp
831 readable var _n_value: AExpr
832 end
833 class AOnceExpr
834 super AProxyExpr
835 readable var _n_kwonce: TKwonce
836 end
837 abstract class ASendExpr
838 super AExpr
839 readable var _n_expr: AExpr
840 readable var _n_closure_defs: List[AClosureDef] = new List[AClosureDef]
841 end
842 abstract class ABinopExpr
843 super ASendExpr
844 readable var _n_expr2: AExpr
845 end
846 abstract class ABoolExpr
847 super AExpr
848 end
849 class AOrExpr
850 super ABoolExpr
851 readable var _n_expr: AExpr
852 readable var _n_expr2: AExpr
853 end
854 class AAndExpr
855 super ABoolExpr
856 readable var _n_expr: AExpr
857 readable var _n_expr2: AExpr
858 end
859 class AOrElseExpr
860 super ABoolExpr
861 readable var _n_expr: AExpr
862 readable var _n_expr2: AExpr
863 end
864 class ANotExpr
865 super ABoolExpr
866 readable var _n_kwnot: TKwnot
867 readable var _n_expr: AExpr
868 end
869 class AEqExpr
870 super ABinopExpr
871 end
872 class AEeExpr
873 super ABoolExpr
874 readable var _n_expr: AExpr
875 readable var _n_expr2: AExpr
876 end
877 class ANeExpr
878 super ABinopExpr
879 end
880 class ALtExpr
881 super ABinopExpr
882 end
883 class ALeExpr
884 super ABinopExpr
885 end
886 class ALlExpr
887 super ABinopExpr
888 end
889 class AGtExpr
890 super ABinopExpr
891 end
892 class AGeExpr
893 super ABinopExpr
894 end
895 class AGgExpr
896 super ABinopExpr
897 end
898 class AIsaExpr
899 super ABoolExpr
900 readable var _n_expr: AExpr
901 readable var _n_type: AType
902 end
903 class APlusExpr
904 super ABinopExpr
905 end
906 class AMinusExpr
907 super ABinopExpr
908 end
909 class AStarshipExpr
910 super ABinopExpr
911 end
912 class AStarExpr
913 super ABinopExpr
914 end
915 class ASlashExpr
916 super ABinopExpr
917 end
918 class APercentExpr
919 super ABinopExpr
920 end
921 class AUminusExpr
922 super ASendExpr
923 readable var _n_minus: TMinus
924 end
925 class ANewExpr
926 super AExpr
927 readable var _n_kwnew: TKwnew
928 readable var _n_type: AType
929 readable var _n_id: nullable TId = null
930 readable var _n_args: AExprs
931 end
932 abstract class AAttrFormExpr
933 super AExpr
934 readable var _n_expr: AExpr
935 readable var _n_id: TAttrid
936 end
937 class AAttrExpr
938 super AAttrFormExpr
939 end
940 class AAttrAssignExpr
941 super AAttrFormExpr
942 super AAssignFormExpr
943 end
944 abstract class ACallFormExpr
945 super ASendExpr
946 readable var _n_id: TId
947 readable var _n_args: AExprs
948 end
949 abstract class ASendReassignFormExpr
950 super ASendExpr
951 super AReassignFormExpr
952 end
953 class AAttrReassignExpr
954 super AExpr
955 super AAttrFormExpr
956 super AReassignFormExpr
957 end
958 class ACallExpr
959 super ACallFormExpr
960 end
961 class ACallAssignExpr
962 super ACallFormExpr
963 super AAssignFormExpr
964 end
965 class ACallReassignExpr
966 super AExpr
967 super ACallFormExpr
968 super ASendReassignFormExpr
969 end
970 class ASuperExpr
971 super AExpr
972 readable var _n_qualified: nullable AQualified = null
973 readable var _n_kwsuper: TKwsuper
974 readable var _n_args: AExprs
975 end
976 class AInitExpr
977 super ASendExpr
978 readable var _n_kwinit: TKwinit
979 readable var _n_args: AExprs
980 end
981 abstract class ABraFormExpr
982 super ASendExpr
983 readable var _n_args: AExprs
984 end
985 class ABraExpr
986 super ABraFormExpr
987 end
988 class ABraAssignExpr
989 super ABraFormExpr
990 super AAssignFormExpr
991 end
992 abstract class AVarFormExpr
993 super AExpr
994 readable var _n_id: TId
995 end
996 class ABraReassignExpr
997 super ABraFormExpr
998 super ASendReassignFormExpr
999 end
1000 class AClosureCallExpr
1001 super AExpr
1002 readable var _n_id: TId
1003 readable var _n_args: AExprs
1004 readable var _n_closure_defs: List[AClosureDef] = new List[AClosureDef]
1005 end
1006 class AVarExpr
1007 super AVarFormExpr
1008 end
1009 class AVarAssignExpr
1010 super AVarFormExpr
1011 super AAssignFormExpr
1012 end
1013 class AVarReassignExpr
1014 super AVarFormExpr
1015 super AReassignFormExpr
1016 end
1017 abstract class ARangeExpr
1018 super AExpr
1019 readable var _n_expr: AExpr
1020 readable var _n_expr2: AExpr
1021 end
1022 class ACrangeExpr
1023 super ARangeExpr
1024 readable var _n_obra: TObra
1025 readable var _n_cbra: TCbra
1026 end
1027 class AOrangeExpr
1028 super ARangeExpr
1029 readable var _n_obra: TObra
1030 readable var _n_cbra: TObra
1031 end
1032 class AArrayExpr
1033 super AExpr
1034 readable var _n_exprs: AExprs
1035 end
1036 class ASelfExpr
1037 super AExpr
1038 readable var _n_kwself: nullable TKwself
1039 end
1040 class AImplicitSelfExpr
1041 super ASelfExpr
1042 end
1043 class ATrueExpr
1044 super ABoolExpr
1045 readable var _n_kwtrue: TKwtrue
1046 end
1047 class AFalseExpr
1048 super ABoolExpr
1049 readable var _n_kwfalse: TKwfalse
1050 end
1051 class ANullExpr
1052 super AExpr
1053 readable var _n_kwnull: TKwnull
1054 end
1055 class AIntExpr
1056 super AExpr
1057 readable var _n_number: TNumber
1058 end
1059 class AFloatExpr
1060 super AExpr
1061 readable var _n_float: TFloat
1062 end
1063 class ACharExpr
1064 super AExpr
1065 readable var _n_char: TChar
1066 end
1067 abstract class AStringFormExpr
1068 super AExpr
1069 end
1070 class AStringExpr
1071 super AStringFormExpr
1072 readable var _n_string: TString
1073 end
1074 class AStartStringExpr
1075 super AStringFormExpr
1076 readable var _n_string: TStartString
1077 end
1078 class AMidStringExpr
1079 super AStringFormExpr
1080 readable var _n_string: TMidString
1081 end
1082 class AEndStringExpr
1083 super AStringFormExpr
1084 readable var _n_string: TEndString
1085 end
1086 class ASuperstringExpr
1087 super AExpr
1088 readable var _n_exprs: List[AExpr] = new List[AExpr]
1089 end
1090 class AParExpr
1091 super AProxyExpr
1092 readable var _n_opar: TOpar
1093 readable var _n_cpar: TCpar
1094 end
1095 abstract class AProxyExpr
1096 super AExpr
1097 readable var _n_expr: AExpr
1098 end
1099 class AAsCastExpr
1100 super AExpr
1101 readable var _n_expr: AExpr
1102 readable var _n_kwas: TKwas
1103 readable var _n_opar: TOpar
1104 readable var _n_type: AType
1105 readable var _n_cpar: TCpar
1106 end
1107 class AAsNotnullExpr
1108 super AExpr
1109 readable var _n_expr: AExpr
1110 readable var _n_kwas: TKwas
1111 readable var _n_opar: TOpar
1112 readable var _n_kwnot: TKwnot
1113 readable var _n_kwnull: TKwnull
1114 readable var _n_cpar: TCpar
1115 end
1116 class AIssetAttrExpr
1117 super AAttrFormExpr
1118 readable var _n_kwisset: TKwisset
1119 end
1120 abstract class AExprs
1121 super Prod
1122 readable var _n_exprs: List[AExpr] = new List[AExpr]
1123 end
1124 class AListExprs
1125 super AExprs
1126 end
1127 class AParExprs
1128 super AExprs
1129 readable var _n_opar: TOpar
1130 readable var _n_cpar: TCpar
1131 end
1132 class ABraExprs
1133 super AExprs
1134 readable var _n_obra: TObra
1135 readable var _n_cbra: TCbra
1136 end
1137 abstract class AAssignOp super Prod end
1138 class APlusAssignOp
1139 super AAssignOp
1140 readable var _n_pluseq: TPluseq
1141 end
1142 class AMinusAssignOp
1143 super AAssignOp
1144 readable var _n_minuseq: TMinuseq
1145 end
1146 class AClosureDef
1147 super ALabelable
1148 readable var _n_bang: TBang
1149 readable var _n_id: AClosureId
1150 readable var _n_ids: List[TId] = new List[TId]
1151 readable var _n_kwdo: nullable TKwdo = null
1152 readable var _n_expr: nullable AExpr = null
1153 redef fun hot_location do return n_id.location
1154 end
1155 abstract class AClosureId
1156 super Prod
1157 end
1158 class ASimpleClosureId
1159 super AClosureId
1160 readable var _n_id: TId
1161 end
1162 class ABreakClosureId
1163 super AClosureId
1164 readable var _n_kwbreak: TKwbreak
1165 end
1166 class AModuleName
1167 special Prod
1168 readable var _n_quad: nullable TQuad = null
1169 readable var _n_path: List[TId] = new List[TId]
1170 readable var _n_id: TId
1171 end
1172 class AQualified
1173 super Prod
1174 readable var _n_quad: nullable TQuad = null
1175 readable var _n_id: List[TId] = new List[TId]
1176 readable var _n_classid: nullable TClassid = null
1177 end
1178 class ADoc
1179 super Prod
1180 readable var _n_comment: List[TComment] = new List[TComment]
1181 end
1182
1183 class Start
1184 super Prod
1185 readable var _n_base: nullable AModule
1186 readable var _n_eof: EOF
1187 end