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