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
305 private init noinit
do end
309 private init noinit
do end
314 readable writable var _n_packagedecl
: nullable APackagedecl = null
315 readable writable var _n_imports
: List[AImport] = new List[AImport]
316 readable writable var _n_classdefs
: List[AClassdef] = new List[AClassdef]
320 readable writable var _n_doc
: nullable ADoc = null
321 readable writable var _n_kwpackage
: TKwpackage
322 readable writable var _n_id
: TId
324 class AImport special Prod end
327 readable writable var _n_visibility
: AVisibility
328 readable writable var _n_kwimport
: TKwimport
329 readable writable var _n_id
: TId
333 readable writable var _n_visibility
: AVisibility
334 readable writable var _n_kwimport
: TKwimport
335 readable writable var _n_kwend
: TKwend
337 class AVisibility special Prod end
338 class APublicVisibility
341 class APrivateVisibility
343 readable writable var _n_kwprivate
: TKwprivate
345 class AProtectedVisibility
347 readable writable var _n_kwprotected
: TKwprotected
349 class AIntrudeVisibility
351 readable writable var _n_kwintrude
: TKwintrude
353 class AClassdef special Prod end
356 readable writable var _n_doc
: nullable ADoc = null
357 readable writable var _n_kwredef
: nullable TKwredef = null
358 readable writable var _n_visibility
: AVisibility
359 readable writable var _n_classkind
: AClasskind
360 readable writable var _n_id
: nullable TClassid = null
361 readable writable var _n_formaldefs
: List[AFormaldef] = new List[AFormaldef]
362 readable writable var _n_superclasses
: List[ASuperclass] = new List[ASuperclass]
363 readable writable var _n_propdefs
: List[APropdef] = new List[APropdef]
367 readable writable var _n_propdefs
: List[APropdef] = new List[APropdef]
371 readable writable var _n_propdefs
: List[APropdef] = new List[APropdef]
373 class AClasskind special Prod end
374 class AConcreteClasskind
376 readable writable var _n_kwclass
: TKwclass
378 class AAbstractClasskind
380 readable writable var _n_kwabstract
: TKwabstract
381 readable writable var _n_kwclass
: TKwclass
383 class AInterfaceClasskind
385 readable writable var _n_kwinterface
: TKwinterface
387 class AUniversalClasskind
389 readable writable var _n_kwuniversal
: TKwuniversal
393 readable writable var _n_id
: TClassid
394 readable writable var _n_type
: nullable AType = null
398 readable writable var _n_kwspecial
: TKwspecial
399 readable writable var _n_type
: AType
401 class APropdef special Prod
402 readable writable var _n_doc
: nullable ADoc = null
406 readable writable var _n_kwredef
: nullable TKwredef = null
407 readable writable var _n_visibility
: AVisibility
408 readable writable var _n_kwvar
: TKwvar
409 readable writable var _n_id
: TAttrid
410 readable writable var _n_type
: nullable AType = null
411 readable writable var _n_readable
: nullable AAble = null
412 readable writable var _n_writable
: nullable AAble = null
413 readable writable var _n_expr
: nullable AExpr = null
417 readable writable var _n_kwredef
: nullable TKwredef = null
418 readable writable var _n_visibility
: nullable AVisibility
419 readable writable var _n_methid
: nullable AMethid = null
420 readable writable var _n_signature
: nullable ASignature
422 class ADeferredMethPropdef
424 readable writable var _n_kwmeth
: TKwmeth
426 class AInternMethPropdef
428 readable writable var _n_kwmeth
: TKwmeth
430 class AExternMethPropdef
432 readable writable var _n_kwmeth
: TKwmeth
433 readable writable var _n_extern
: nullable TString = null
435 class AConcreteMethPropdef
437 readable writable var _n_kwmeth
: nullable TKwmeth
438 readable writable var _n_block
: nullable AExpr = null
440 class AConcreteInitPropdef
441 special AConcreteMethPropdef
442 readable writable var _n_kwinit
: TKwinit
444 class AMainMethPropdef
445 special AConcreteMethPropdef
449 readable writable var _n_kwredef
: nullable TKwredef = null
450 readable writable var _n_visibility
: AVisibility
451 readable writable var _n_kwtype
: TKwtype
452 readable writable var _n_id
: TClassid
453 readable writable var _n_type
: AType
455 class AAble special Prod
456 readable writable var _n_kwredef
: nullable TKwredef = null
460 readable writable var _n_kwreadable
: TKwreadable
464 readable writable var _n_kwwritable
: TKwwritable
466 class AMethid special Prod end
469 readable writable var _n_id
: TId
473 readable writable var _n_plus
: TPlus
477 readable writable var _n_minus
: TMinus
481 readable writable var _n_star
: TStar
485 readable writable var _n_slash
: TSlash
489 readable writable var _n_percent
: TPercent
493 readable writable var _n_eq
: TEq
497 readable writable var _n_ne
: TNe
501 readable writable var _n_le
: TLe
505 readable writable var _n_ge
: TGe
509 readable writable var _n_lt
: TLt
513 readable writable var _n_gt
: TGt
517 readable writable var _n_obra
: TObra
518 readable writable var _n_cbra
: TCbra
520 class AStarshipMethid
522 readable writable var _n_starship
: TStarship
526 readable writable var _n_id
: TId
527 readable writable var _n_assign
: TAssign
529 class ABraassignMethid
531 readable writable var _n_obra
: TObra
532 readable writable var _n_cbra
: TCbra
533 readable writable var _n_assign
: TAssign
537 readable writable var _n_params
: List[AParam] = new List[AParam]
538 readable writable var _n_type
: nullable AType = null
539 readable writable var _n_closure_decls
: List[AClosureDecl] = new List[AClosureDecl]
543 readable writable var _n_id
: TId
544 readable writable var _n_type
: nullable AType = null
545 readable writable var _n_dotdotdot
: nullable TDotdotdot = null
549 readable writable var _n_kwbreak
: nullable TKwbreak = null
550 readable writable var _n_bang
: TBang
551 readable writable var _n_id
: TId
552 readable writable var _n_signature
: ASignature
553 readable writable var _n_expr
: nullable AExpr = null
557 readable writable var _n_kwnullable
: nullable TKwnullable = null
558 readable writable var _n_id
: TClassid
559 readable writable var _n_types
: List[AType] = new List[AType]
563 readable writable var _n_kwlabel
: TKwlabel
564 readable writable var _n_id
: TId
566 class AExpr special Prod end
569 readable writable var _n_expr
: List[AExpr] = new List[AExpr]
573 readable writable var _n_kwvar
: TKwvar
574 readable writable var _n_id
: TId
575 readable writable var _n_type
: nullable AType = null
576 readable writable var _n_assign
: nullable TAssign = null
577 readable writable var _n_expr
: nullable AExpr = null
581 readable writable var _n_kwreturn
: nullable TKwreturn = null
582 readable writable var _n_expr
: nullable AExpr = null
586 readable writable var _n_label
: nullable ALabel = null
591 readable writable var _n_kwbreak
: TKwbreak
592 readable writable var _n_expr
: nullable AExpr = null
596 readable writable var _n_kwabort
: TKwabort
601 readable writable var _n_kwcontinue
: nullable TKwcontinue = null
602 readable writable var _n_expr
: nullable AExpr = null
607 readable writable var _n_kwdo
: TKwdo
608 readable writable var _n_block
: nullable AExpr = null
612 readable writable var _n_kwif
: TKwif
613 readable writable var _n_expr
: AExpr
614 readable writable var _n_then
: nullable AExpr = null
615 readable writable var _n_else
: nullable AExpr = null
619 readable writable var _n_kwif
: TKwif
620 readable writable var _n_expr
: AExpr
621 readable writable var _n_kwthen
: TKwthen
622 readable writable var _n_then
: AExpr
623 readable writable var _n_kwelse
: TKwelse
624 readable writable var _n_else
: AExpr
629 readable writable var _n_kwwhile
: TKwwhile
630 readable writable var _n_expr
: AExpr
631 readable writable var _n_kwdo
: TKwdo
632 readable writable var _n_block
: nullable AExpr = null
637 readable writable var _n_kwloop
: TKwloop
638 readable writable var _n_block
: nullable AExpr = null
643 readable writable var _n_kwfor
: TKwfor
644 readable writable var _n_id
: TId
645 readable writable var _n_expr
: AExpr
646 readable writable var _n_kwdo
: TKwdo
647 readable writable var _n_block
: nullable AExpr = null
651 readable writable var _n_kwassert
: TKwassert
652 readable writable var _n_id
: nullable TId = null
653 readable writable var _n_expr
: AExpr
654 readable writable var _n_else
: nullable AExpr = null
656 class AAssignFormExpr
658 readable writable var _n_assign
: TAssign
659 readable writable var _n_value
: AExpr
661 class AReassignFormExpr
663 readable writable var _n_assign_op
: AAssignOp
664 readable writable var _n_value
: AExpr
668 readable writable var _n_kwonce
: TKwonce
672 readable writable var _n_expr
: AExpr
673 readable writable var _n_closure_defs
: List[AClosureDef] = new List[AClosureDef]
677 readable writable var _n_expr2
: AExpr
684 readable writable var _n_expr
: AExpr
685 readable writable var _n_expr2
: AExpr
689 readable writable var _n_expr
: AExpr
690 readable writable var _n_expr2
: AExpr
694 readable writable var _n_kwnot
: TKwnot
695 readable writable var _n_expr
: AExpr
702 readable writable var _n_expr
: AExpr
703 readable writable var _n_expr2
: AExpr
722 readable writable var _n_expr
: AExpr
723 readable writable var _n_type
: AType
745 readable writable var _n_minus
: TMinus
749 readable writable var _n_kwnew
: TKwnew
750 readable writable var _n_type
: AType
751 readable writable var _n_id
: nullable TId = null
752 readable writable var _n_args
: List[AExpr] = new List[AExpr]
756 readable writable var _n_expr
: AExpr
757 readable writable var _n_id
: TAttrid
760 special AAttrFormExpr
762 class AAttrAssignExpr
763 special AAttrFormExpr
764 special AAssignFormExpr
768 readable writable var _n_id
: TId
769 readable writable var _n_args
: List[AExpr] = new List[AExpr]
771 class AAttrReassignExpr
773 special AAttrFormExpr
774 special AReassignFormExpr
777 special ACallFormExpr
779 class ACallAssignExpr
780 special ACallFormExpr
781 special AAssignFormExpr
783 class ACallReassignExpr
785 special ACallFormExpr
786 special AReassignFormExpr
790 readable writable var _n_qualified
: nullable AQualified = null
791 readable writable var _n_kwsuper
: TKwsuper
792 readable writable var _n_args
: List[AExpr] = new List[AExpr]
796 readable writable var _n_kwinit
: TKwinit
797 readable writable var _n_args
: List[AExpr] = new List[AExpr]
801 readable writable var _n_args
: List[AExpr] = new List[AExpr]
808 special AAssignFormExpr
812 readable writable var _n_id
: TId
814 class ABraReassignExpr
816 special AReassignFormExpr
818 class AClosureCallExpr
820 readable writable var _n_id
: TId
821 readable writable var _n_args
: List[AExpr] = new List[AExpr]
822 readable writable var _n_closure_defs
: List[AClosureDef] = new List[AClosureDef]
829 special AAssignFormExpr
831 class AVarReassignExpr
833 special AReassignFormExpr
837 readable writable var _n_expr
: AExpr
838 readable writable var _n_expr2
: AExpr
848 readable writable var _n_exprs
: List[AExpr] = new List[AExpr]
852 readable writable var _n_kwself
: nullable TKwself
854 class AImplicitSelfExpr
859 readable writable var _n_kwtrue
: TKwtrue
863 readable writable var _n_kwfalse
: TKwfalse
867 readable writable var _n_kwnull
: TKwnull
871 readable writable var _n_number
: TNumber
875 readable writable var _n_float
: TFloat
879 readable writable var _n_char
: TChar
881 class AStringFormExpr
885 special AStringFormExpr
886 readable writable var _n_string
: TString
888 class AStartStringExpr
889 special AStringFormExpr
890 readable writable var _n_string
: TStartString
893 special AStringFormExpr
894 readable writable var _n_string
: TMidString
897 special AStringFormExpr
898 readable writable var _n_string
: TEndString
900 class ASuperstringExpr
902 readable writable var _n_exprs
: List[AExpr] = new List[AExpr]
909 readable writable var _n_expr
: AExpr
913 readable writable var _n_expr
: AExpr
914 readable writable var _n_kwas
: TKwas
915 readable writable var _n_type
: AType
919 readable writable var _n_expr
: AExpr
920 readable writable var _n_kwas
: TKwas
921 readable writable var _n_kwnot
: TKwnot
922 readable writable var _n_kwnull
: TKwnull
925 special AAttrFormExpr
926 readable writable var _n_kwisset
: TKwisset
928 class AAssignOp special Prod end
931 readable writable var _n_pluseq
: TPluseq
935 readable writable var _n_minuseq
: TMinuseq
939 readable writable var _n_bang
: TBang
940 readable writable var _n_id
: AClosureId
941 readable writable var _n_ids
: List[TId] = new List[TId]
942 readable writable var _n_kwdo
: nullable TKwdo = null
943 readable writable var _n_expr
: nullable AExpr = null
948 class ASimpleClosureId
950 readable writable var _n_id
: TId
952 class ABreakClosureId
954 readable writable var _n_kwbreak
: TKwbreak
958 readable writable var _n_id
: List[TId] = new List[TId]
959 readable writable var _n_classid
: nullable TClassid = null
963 readable writable var _n_comment
: List[TComment] = new List[TComment]
968 readable writable var _n_base
: nullable AModule
969 readable writable var _n_eof
: EOF