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