1 # This file is part of NIT ( http://www.nitlanguage.org ).
3 # Copyright 2008-2009 Jean Privat <jean@pryen.org>
4 # Copyright 2009 Jean-Sebastien Gelinas <calestar@gmail.com>
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
10 # http://www.apache.org/licenses/LICENSE-2.0
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.
18 # AST nodes of the Nit language
19 # Was previously based on parser_abs.nit.
24 # Root of the AST hierarchy
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)
32 # Ancestor of all tokens
37 # Ancestor of all productions
40 fun location
=(l
: Location) do _location
= l
311 private init noinit
do end
315 private init noinit
do end
320 readable var _n_moduledecl
: nullable AModuledecl = null
321 readable var _n_imports
: List[AImport] = new List[AImport]
322 readable var _n_classdefs
: List[AClassdef] = new List[AClassdef]
326 readable var _n_doc
: nullable ADoc = null
327 readable var _n_kwmodule
: TKwmodule
328 readable var _n_id
: TId
330 class AImport special Prod end
333 readable var _n_visibility
: AVisibility
334 readable var _n_kwimport
: TKwimport
335 readable var _n_id
: TId
339 readable var _n_visibility
: AVisibility
340 readable var _n_kwimport
: TKwimport
341 readable var _n_kwend
: TKwend
343 class AVisibility special Prod end
344 class APublicVisibility
347 class APrivateVisibility
349 readable var _n_kwprivate
: TKwprivate
351 class AProtectedVisibility
353 readable var _n_kwprotected
: TKwprotected
355 class AIntrudeVisibility
357 readable var _n_kwintrude
: TKwintrude
359 class AClassdef special Prod end
362 readable var _n_doc
: nullable ADoc = null
363 readable var _n_kwredef
: nullable TKwredef = null
364 readable var _n_visibility
: AVisibility
365 readable var _n_classkind
: AClasskind
366 readable var _n_id
: nullable TClassid = null
367 readable var _n_formaldefs
: List[AFormaldef] = new List[AFormaldef]
368 readable var _n_superclasses
: List[ASuperclass] = new List[ASuperclass]
369 readable var _n_propdefs
: List[APropdef] = new List[APropdef]
373 readable var _n_propdefs
: List[APropdef] = new List[APropdef]
377 readable var _n_propdefs
: List[APropdef] = new List[APropdef]
379 class AClasskind special Prod end
380 class AConcreteClasskind
382 readable var _n_kwclass
: TKwclass
384 class AAbstractClasskind
386 readable var _n_kwabstract
: TKwabstract
387 readable var _n_kwclass
: TKwclass
389 class AInterfaceClasskind
391 readable var _n_kwinterface
: TKwinterface
393 class AUniversalClasskind
395 readable var _n_kwuniversal
: TKwuniversal
399 readable var _n_id
: TClassid
400 readable var _n_type
: nullable AType = null
404 readable var _n_kwspecial
: nullable TKwspecial = null
405 readable var _n_kwsuper
: nullable TKwsuper = null
406 readable var _n_type
: AType
408 class APropdef special Prod
409 readable var _n_doc
: nullable ADoc = null
413 readable var _n_kwredef
: nullable TKwredef = null
414 readable var _n_visibility
: AVisibility
415 readable var _n_kwvar
: TKwvar
416 readable var _n_id
: nullable TAttrid
417 readable var _n_id2
: nullable TId
418 readable var _n_type
: nullable AType = null
419 readable var _n_readable
: nullable AAble = null
420 readable var _n_writable
: nullable AAble = null
421 readable var _n_expr
: nullable AExpr = null
425 readable var _n_kwredef
: nullable TKwredef = null
426 readable var _n_visibility
: nullable AVisibility
427 readable var _n_methid
: nullable AMethid = null
428 readable var _n_signature
: nullable ASignature
430 class ADeferredMethPropdef
432 readable var _n_kwmeth
: TKwmeth
434 class AInternMethPropdef
436 readable var _n_kwmeth
: TKwmeth
438 class AExternMethPropdef
440 readable var _n_kwmeth
: TKwmeth
441 readable var _n_extern
: nullable TString = null
443 class AConcreteMethPropdef
445 readable var _n_kwmeth
: nullable TKwmeth
446 readable var _n_block
: nullable AExpr = null
448 class AConcreteInitPropdef
449 special AConcreteMethPropdef
450 readable var _n_kwinit
: TKwinit
452 class AMainMethPropdef
453 special AConcreteMethPropdef
457 readable var _n_kwredef
: nullable TKwredef = null
458 readable var _n_visibility
: AVisibility
459 readable var _n_kwtype
: TKwtype
460 readable var _n_id
: TClassid
461 readable var _n_type
: AType
463 class AAble special Prod
464 readable var _n_visibility
: nullable AVisibility = null
465 readable var _n_kwredef
: nullable TKwredef = null
469 readable var _n_kwreadable
: TKwreadable
473 readable var _n_kwwritable
: TKwwritable
475 class AMethid special Prod end
478 readable var _n_id
: TId
482 readable var _n_plus
: TPlus
486 readable var _n_minus
: TMinus
490 readable var _n_star
: TStar
494 readable var _n_slash
: TSlash
498 readable var _n_percent
: TPercent
502 readable var _n_eq
: TEq
506 readable var _n_ne
: TNe
510 readable var _n_le
: TLe
514 readable var _n_ge
: TGe
518 readable var _n_lt
: TLt
522 readable var _n_gt
: TGt
526 readable writable var _n_ll
: TLl
530 readable writable var _n_gg
: TGg
534 readable var _n_obra
: TObra
535 readable var _n_cbra
: TCbra
537 class AStarshipMethid
539 readable var _n_starship
: TStarship
543 readable var _n_id
: TId
544 readable var _n_assign
: TAssign
546 class ABraassignMethid
548 readable var _n_obra
: TObra
549 readable var _n_cbra
: TCbra
550 readable var _n_assign
: TAssign
554 readable var _n_params
: List[AParam] = new List[AParam]
555 readable var _n_type
: nullable AType = null
556 readable var _n_closure_decls
: List[AClosureDecl] = new List[AClosureDecl]
560 readable var _n_id
: TId
561 readable var _n_type
: nullable AType = null
562 readable var _n_dotdotdot
: nullable TDotdotdot = null
566 readable var _n_kwbreak
: nullable TKwbreak = null
567 readable var _n_bang
: TBang
568 readable var _n_id
: TId
569 readable var _n_signature
: ASignature
570 readable var _n_expr
: nullable AExpr = null
574 readable var _n_kwnullable
: nullable TKwnullable = null
575 readable var _n_id
: TClassid
576 readable var _n_types
: List[AType] = new List[AType]
580 readable var _n_kwlabel
: TKwlabel
581 readable var _n_id
: TId
583 class AExpr special Prod end
586 readable var _n_expr
: List[AExpr] = new List[AExpr]
590 readable var _n_kwvar
: TKwvar
591 readable var _n_id
: TId
592 readable var _n_type
: nullable AType = null
593 readable var _n_assign
: nullable TAssign = null
594 readable var _n_expr
: nullable AExpr = null
598 readable var _n_kwreturn
: nullable TKwreturn = null
599 readable var _n_expr
: nullable AExpr = null
603 readable var _n_label
: nullable ALabel = null
608 readable var _n_kwbreak
: TKwbreak
609 readable var _n_expr
: nullable AExpr = null
613 readable var _n_kwabort
: TKwabort
618 readable var _n_kwcontinue
: nullable TKwcontinue = null
619 readable var _n_expr
: nullable AExpr = null
624 readable var _n_kwdo
: TKwdo
625 readable var _n_block
: nullable AExpr = null
629 readable var _n_kwif
: TKwif
630 readable var _n_expr
: AExpr
631 readable var _n_then
: nullable AExpr = null
632 readable var _n_else
: nullable AExpr = null
636 readable var _n_kwif
: TKwif
637 readable var _n_expr
: AExpr
638 readable var _n_kwthen
: TKwthen
639 readable var _n_then
: AExpr
640 readable var _n_kwelse
: TKwelse
641 readable var _n_else
: AExpr
646 readable var _n_kwwhile
: TKwwhile
647 readable var _n_expr
: AExpr
648 readable var _n_kwdo
: TKwdo
649 readable var _n_block
: nullable AExpr = null
654 readable var _n_kwloop
: TKwloop
655 readable var _n_block
: nullable AExpr = null
660 readable var _n_kwfor
: TKwfor
661 readable var _n_id
: TId
662 readable var _n_expr
: AExpr
663 readable var _n_kwdo
: TKwdo
664 readable var _n_block
: nullable AExpr = null
668 readable var _n_kwassert
: TKwassert
669 readable var _n_id
: nullable TId = null
670 readable var _n_expr
: AExpr
671 readable var _n_else
: nullable AExpr = null
673 class AAssignFormExpr
675 readable var _n_assign
: TAssign
676 readable var _n_value
: AExpr
678 class AReassignFormExpr
680 readable var _n_assign_op
: AAssignOp
681 readable var _n_value
: AExpr
685 readable var _n_kwonce
: TKwonce
689 readable var _n_expr
: AExpr
690 readable var _n_closure_defs
: List[AClosureDef] = new List[AClosureDef]
694 readable var _n_expr2
: AExpr
701 readable var _n_expr
: AExpr
702 readable var _n_expr2
: AExpr
706 readable var _n_expr
: AExpr
707 readable var _n_expr2
: AExpr
711 readable var _n_expr
: AExpr
712 readable var _n_expr2
: AExpr
716 readable var _n_kwnot
: TKwnot
717 readable var _n_expr
: AExpr
724 readable var _n_expr
: AExpr
725 readable var _n_expr2
: AExpr
750 readable var _n_expr
: AExpr
751 readable var _n_type
: AType
773 readable var _n_minus
: TMinus
777 readable var _n_kwnew
: TKwnew
778 readable var _n_type
: AType
779 readable var _n_id
: nullable TId = null
780 readable var _n_args
: List[AExpr] = new List[AExpr]
784 readable var _n_expr
: AExpr
785 readable var _n_id
: TAttrid
788 special AAttrFormExpr
790 class AAttrAssignExpr
791 special AAttrFormExpr
792 special AAssignFormExpr
796 readable var _n_id
: TId
797 readable var _n_args
: List[AExpr] = new List[AExpr]
799 class AAttrReassignExpr
801 special AAttrFormExpr
802 special AReassignFormExpr
805 special ACallFormExpr
807 class ACallAssignExpr
808 special ACallFormExpr
809 special AAssignFormExpr
811 class ACallReassignExpr
813 special ACallFormExpr
814 special AReassignFormExpr
818 readable var _n_qualified
: nullable AQualified = null
819 readable var _n_kwsuper
: TKwsuper
820 readable var _n_args
: List[AExpr] = new List[AExpr]
824 readable var _n_kwinit
: TKwinit
825 readable var _n_args
: List[AExpr] = new List[AExpr]
829 readable var _n_args
: List[AExpr] = new List[AExpr]
836 special AAssignFormExpr
840 readable var _n_id
: TId
842 class ABraReassignExpr
844 special AReassignFormExpr
846 class AClosureCallExpr
848 readable var _n_id
: TId
849 readable var _n_args
: List[AExpr] = new List[AExpr]
850 readable var _n_closure_defs
: List[AClosureDef] = new List[AClosureDef]
857 special AAssignFormExpr
859 class AVarReassignExpr
861 special AReassignFormExpr
865 readable var _n_expr
: AExpr
866 readable var _n_expr2
: AExpr
876 readable var _n_exprs
: List[AExpr] = new List[AExpr]
880 readable var _n_kwself
: nullable TKwself
882 class AImplicitSelfExpr
887 readable var _n_kwtrue
: TKwtrue
891 readable var _n_kwfalse
: TKwfalse
895 readable var _n_kwnull
: TKwnull
899 readable var _n_number
: TNumber
903 readable var _n_float
: TFloat
907 readable var _n_char
: TChar
909 class AStringFormExpr
913 special AStringFormExpr
914 readable var _n_string
: TString
916 class AStartStringExpr
917 special AStringFormExpr
918 readable var _n_string
: TStartString
921 special AStringFormExpr
922 readable var _n_string
: TMidString
925 special AStringFormExpr
926 readable var _n_string
: TEndString
928 class ASuperstringExpr
930 readable var _n_exprs
: List[AExpr] = new List[AExpr]
937 readable var _n_expr
: AExpr
941 readable var _n_expr
: AExpr
942 readable var _n_kwas
: TKwas
943 readable var _n_type
: AType
947 readable var _n_expr
: AExpr
948 readable var _n_kwas
: TKwas
949 readable var _n_kwnot
: TKwnot
950 readable var _n_kwnull
: TKwnull
953 special AAttrFormExpr
954 readable var _n_kwisset
: TKwisset
956 class AAssignOp special Prod end
959 readable var _n_pluseq
: TPluseq
963 readable var _n_minuseq
: TMinuseq
967 readable var _n_bang
: TBang
968 readable var _n_id
: AClosureId
969 readable var _n_ids
: List[TId] = new List[TId]
970 readable var _n_kwdo
: nullable TKwdo = null
971 readable var _n_expr
: nullable AExpr = null
976 class ASimpleClosureId
978 readable var _n_id
: TId
980 class ABreakClosureId
982 readable var _n_kwbreak
: TKwbreak
986 readable var _n_id
: List[TId] = new List[TId]
987 readable var _n_classid
: nullable TClassid = null
991 readable var _n_comment
: List[TComment] = new List[TComment]
996 readable var _n_base
: nullable AModule
997 readable var _n_eof
: EOF