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