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