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
655 class AAssignFormExpr
657 readable writable var _n_assign
: TAssign
658 readable writable var _n_value
: AExpr
660 class AReassignFormExpr
662 readable writable var _n_assign_op
: AAssignOp
663 readable writable var _n_value
: AExpr
667 readable writable var _n_kwonce
: TKwonce
671 readable writable var _n_expr
: AExpr
672 readable writable var _n_closure_defs
: List[AClosureDef] = new List[AClosureDef]
676 readable writable var _n_expr2
: AExpr
683 readable writable var _n_expr
: AExpr
684 readable writable var _n_expr2
: AExpr
688 readable writable var _n_expr
: AExpr
689 readable writable var _n_expr2
: AExpr
693 readable writable var _n_kwnot
: TKwnot
694 readable writable var _n_expr
: AExpr
701 readable writable var _n_expr
: AExpr
702 readable writable var _n_expr2
: AExpr
721 readable writable var _n_expr
: AExpr
722 readable writable var _n_type
: AType
744 readable writable var _n_minus
: TMinus
748 readable writable var _n_kwnew
: TKwnew
749 readable writable var _n_type
: AType
750 readable writable var _n_id
: nullable TId = null
751 readable writable var _n_args
: List[AExpr] = new List[AExpr]
755 readable writable var _n_expr
: AExpr
756 readable writable var _n_id
: TAttrid
759 special AAttrFormExpr
761 class AAttrAssignExpr
762 special AAttrFormExpr
763 special AAssignFormExpr
767 readable writable var _n_id
: TId
768 readable writable var _n_args
: List[AExpr] = new List[AExpr]
770 class AAttrReassignExpr
772 special AAttrFormExpr
773 special AReassignFormExpr
776 special ACallFormExpr
778 class ACallAssignExpr
779 special ACallFormExpr
780 special AAssignFormExpr
782 class ACallReassignExpr
784 special ACallFormExpr
785 special AReassignFormExpr
789 readable writable var _n_qualified
: nullable AQualified = null
790 readable writable var _n_kwsuper
: TKwsuper
791 readable writable var _n_args
: List[AExpr] = new List[AExpr]
795 readable writable var _n_kwinit
: TKwinit
796 readable writable var _n_args
: List[AExpr] = new List[AExpr]
800 readable writable var _n_args
: List[AExpr] = new List[AExpr]
807 special AAssignFormExpr
811 readable writable var _n_id
: TId
813 class ABraReassignExpr
815 special AReassignFormExpr
817 class AClosureCallExpr
819 readable writable var _n_id
: TId
820 readable writable var _n_args
: List[AExpr] = new List[AExpr]
821 readable writable var _n_closure_defs
: List[AClosureDef] = new List[AClosureDef]
828 special AAssignFormExpr
830 class AVarReassignExpr
832 special AReassignFormExpr
836 readable writable var _n_expr
: AExpr
837 readable writable var _n_expr2
: AExpr
847 readable writable var _n_exprs
: List[AExpr] = new List[AExpr]
851 readable writable var _n_kwself
: nullable TKwself
853 class AImplicitSelfExpr
858 readable writable var _n_kwtrue
: TKwtrue
862 readable writable var _n_kwfalse
: TKwfalse
866 readable writable var _n_kwnull
: TKwnull
870 readable writable var _n_number
: TNumber
874 readable writable var _n_float
: TFloat
878 readable writable var _n_char
: TChar
880 class AStringFormExpr
884 special AStringFormExpr
885 readable writable var _n_string
: TString
887 class AStartStringExpr
888 special AStringFormExpr
889 readable writable var _n_string
: TStartString
892 special AStringFormExpr
893 readable writable var _n_string
: TMidString
896 special AStringFormExpr
897 readable writable var _n_string
: TEndString
899 class ASuperstringExpr
901 readable writable var _n_exprs
: List[AExpr] = new List[AExpr]
908 readable writable var _n_expr
: AExpr
912 readable writable var _n_expr
: AExpr
913 readable writable var _n_kwas
: TKwas
914 readable writable var _n_type
: AType
918 readable writable var _n_expr
: AExpr
919 readable writable var _n_kwas
: TKwas
920 readable writable var _n_kwnot
: TKwnot
921 readable writable var _n_kwnull
: TKwnull
924 special AAttrFormExpr
925 readable writable var _n_kwisset
: TKwisset
927 class AAssignOp special Prod end
930 readable writable var _n_pluseq
: TPluseq
934 readable writable var _n_minuseq
: TMinuseq
938 readable writable var _n_bang
: TBang
939 readable writable var _n_id
: AClosureId
940 readable writable var _n_ids
: List[TId] = new List[TId]
941 readable writable var _n_kwdo
: nullable TKwdo = null
942 readable writable var _n_expr
: nullable AExpr = null
947 class ASimpleClosureId
949 readable writable var _n_id
: TId
951 class ABreakClosureId
953 readable writable var _n_kwbreak
: TKwbreak
957 readable writable var _n_id
: List[TId] = new List[TId]
958 readable writable var _n_classid
: nullable TClassid = null
962 readable writable var _n_comment
: List[TComment] = new List[TComment]
967 readable writable var _n_base
: nullable AModule
968 readable writable var _n_eof
: EOF