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 var _n_packagedecl
: nullable APackagedecl = null
315 readable var _n_imports
: List[AImport] = new List[AImport]
316 readable var _n_classdefs
: List[AClassdef] = new List[AClassdef]
320 readable var _n_doc
: nullable ADoc = null
321 readable var _n_kwpackage
: TKwpackage
322 readable var _n_id
: TId
324 class AImport special Prod end
327 readable var _n_visibility
: AVisibility
328 readable var _n_kwimport
: TKwimport
329 readable var _n_id
: TId
333 readable var _n_visibility
: AVisibility
334 readable var _n_kwimport
: TKwimport
335 readable var _n_kwend
: TKwend
337 class AVisibility special Prod end
338 class APublicVisibility
341 class APrivateVisibility
343 readable var _n_kwprivate
: TKwprivate
345 class AProtectedVisibility
347 readable var _n_kwprotected
: TKwprotected
349 class AIntrudeVisibility
351 readable var _n_kwintrude
: TKwintrude
353 class AClassdef special Prod end
356 readable var _n_doc
: nullable ADoc = null
357 readable var _n_kwredef
: nullable TKwredef = null
358 readable var _n_visibility
: AVisibility
359 readable var _n_classkind
: AClasskind
360 readable var _n_id
: nullable TClassid = null
361 readable var _n_formaldefs
: List[AFormaldef] = new List[AFormaldef]
362 readable var _n_superclasses
: List[ASuperclass] = new List[ASuperclass]
363 readable var _n_propdefs
: List[APropdef] = new List[APropdef]
367 readable var _n_propdefs
: List[APropdef] = new List[APropdef]
371 readable var _n_propdefs
: List[APropdef] = new List[APropdef]
373 class AClasskind special Prod end
374 class AConcreteClasskind
376 readable var _n_kwclass
: TKwclass
378 class AAbstractClasskind
380 readable var _n_kwabstract
: TKwabstract
381 readable var _n_kwclass
: TKwclass
383 class AInterfaceClasskind
385 readable var _n_kwinterface
: TKwinterface
387 class AUniversalClasskind
389 readable var _n_kwuniversal
: TKwuniversal
393 readable var _n_id
: TClassid
394 readable var _n_type
: nullable AType = null
398 readable var _n_kwspecial
: nullable TKwspecial = null
399 readable var _n_kwsuper
: nullable TKwsuper = null
400 readable var _n_type
: AType
402 class APropdef special Prod
403 readable var _n_doc
: nullable ADoc = null
407 readable var _n_kwredef
: nullable TKwredef = null
408 readable var _n_visibility
: AVisibility
409 readable var _n_kwvar
: TKwvar
410 readable var _n_id
: TAttrid
411 readable var _n_type
: nullable AType = null
412 readable var _n_readable
: nullable AAble = null
413 readable var _n_writable
: nullable AAble = null
414 readable var _n_expr
: nullable AExpr = null
418 readable var _n_kwredef
: nullable TKwredef = null
419 readable var _n_visibility
: nullable AVisibility
420 readable var _n_methid
: nullable AMethid = null
421 readable var _n_signature
: nullable ASignature
423 class ADeferredMethPropdef
425 readable var _n_kwmeth
: TKwmeth
427 class AInternMethPropdef
429 readable var _n_kwmeth
: TKwmeth
431 class AExternMethPropdef
433 readable var _n_kwmeth
: TKwmeth
434 readable var _n_extern
: nullable TString = null
436 class AConcreteMethPropdef
438 readable var _n_kwmeth
: nullable TKwmeth
439 readable var _n_block
: nullable AExpr = null
441 class AConcreteInitPropdef
442 special AConcreteMethPropdef
443 readable var _n_kwinit
: TKwinit
445 class AMainMethPropdef
446 special AConcreteMethPropdef
450 readable var _n_kwredef
: nullable TKwredef = null
451 readable var _n_visibility
: AVisibility
452 readable var _n_kwtype
: TKwtype
453 readable var _n_id
: TClassid
454 readable var _n_type
: AType
456 class AAble special Prod
457 readable var _n_kwredef
: nullable TKwredef = null
461 readable var _n_kwreadable
: TKwreadable
465 readable var _n_kwwritable
: TKwwritable
467 class AMethid special Prod end
470 readable var _n_id
: TId
474 readable var _n_plus
: TPlus
478 readable var _n_minus
: TMinus
482 readable var _n_star
: TStar
486 readable var _n_slash
: TSlash
490 readable var _n_percent
: TPercent
494 readable var _n_eq
: TEq
498 readable var _n_ne
: TNe
502 readable var _n_le
: TLe
506 readable var _n_ge
: TGe
510 readable var _n_lt
: TLt
514 readable var _n_gt
: TGt
518 readable var _n_obra
: TObra
519 readable var _n_cbra
: TCbra
521 class AStarshipMethid
523 readable var _n_starship
: TStarship
527 readable var _n_id
: TId
528 readable var _n_assign
: TAssign
530 class ABraassignMethid
532 readable var _n_obra
: TObra
533 readable var _n_cbra
: TCbra
534 readable var _n_assign
: TAssign
538 readable var _n_params
: List[AParam] = new List[AParam]
539 readable var _n_type
: nullable AType = null
540 readable var _n_closure_decls
: List[AClosureDecl] = new List[AClosureDecl]
544 readable var _n_id
: TId
545 readable var _n_type
: nullable AType = null
546 readable var _n_dotdotdot
: nullable TDotdotdot = null
550 readable var _n_kwbreak
: nullable TKwbreak = null
551 readable var _n_bang
: TBang
552 readable var _n_id
: TId
553 readable var _n_signature
: ASignature
554 readable var _n_expr
: nullable AExpr = null
558 readable var _n_kwnullable
: nullable TKwnullable = null
559 readable var _n_id
: TClassid
560 readable var _n_types
: List[AType] = new List[AType]
564 readable var _n_kwlabel
: TKwlabel
565 readable var _n_id
: TId
567 class AExpr special Prod end
570 readable var _n_expr
: List[AExpr] = new List[AExpr]
574 readable var _n_kwvar
: TKwvar
575 readable var _n_id
: TId
576 readable var _n_type
: nullable AType = null
577 readable var _n_assign
: nullable TAssign = null
578 readable var _n_expr
: nullable AExpr = null
582 readable var _n_kwreturn
: nullable TKwreturn = null
583 readable var _n_expr
: nullable AExpr = null
587 readable var _n_label
: nullable ALabel = null
592 readable var _n_kwbreak
: TKwbreak
593 readable var _n_expr
: nullable AExpr = null
597 readable var _n_kwabort
: TKwabort
602 readable var _n_kwcontinue
: nullable TKwcontinue = null
603 readable var _n_expr
: nullable AExpr = null
608 readable var _n_kwdo
: TKwdo
609 readable var _n_block
: nullable AExpr = null
613 readable var _n_kwif
: TKwif
614 readable var _n_expr
: AExpr
615 readable var _n_then
: nullable AExpr = null
616 readable var _n_else
: nullable AExpr = null
620 readable var _n_kwif
: TKwif
621 readable var _n_expr
: AExpr
622 readable var _n_kwthen
: TKwthen
623 readable var _n_then
: AExpr
624 readable var _n_kwelse
: TKwelse
625 readable var _n_else
: AExpr
630 readable var _n_kwwhile
: TKwwhile
631 readable var _n_expr
: AExpr
632 readable var _n_kwdo
: TKwdo
633 readable var _n_block
: nullable AExpr = null
638 readable var _n_kwloop
: TKwloop
639 readable var _n_block
: nullable AExpr = null
644 readable var _n_kwfor
: TKwfor
645 readable var _n_id
: TId
646 readable var _n_expr
: AExpr
647 readable var _n_kwdo
: TKwdo
648 readable var _n_block
: nullable AExpr = null
652 readable var _n_kwassert
: TKwassert
653 readable var _n_id
: nullable TId = null
654 readable var _n_expr
: AExpr
655 readable var _n_else
: nullable AExpr = null
657 class AAssignFormExpr
659 readable var _n_assign
: TAssign
660 readable var _n_value
: AExpr
662 class AReassignFormExpr
664 readable var _n_assign_op
: AAssignOp
665 readable var _n_value
: AExpr
669 readable var _n_kwonce
: TKwonce
673 readable var _n_expr
: AExpr
674 readable var _n_closure_defs
: List[AClosureDef] = new List[AClosureDef]
678 readable var _n_expr2
: AExpr
685 readable var _n_expr
: AExpr
686 readable var _n_expr2
: AExpr
690 readable var _n_expr
: AExpr
691 readable var _n_expr2
: AExpr
695 readable var _n_expr
: AExpr
696 readable var _n_expr2
: AExpr
700 readable var _n_kwnot
: TKwnot
701 readable var _n_expr
: AExpr
708 readable var _n_expr
: AExpr
709 readable var _n_expr2
: AExpr
728 readable var _n_expr
: AExpr
729 readable var _n_type
: AType
751 readable var _n_minus
: TMinus
755 readable var _n_kwnew
: TKwnew
756 readable var _n_type
: AType
757 readable var _n_id
: nullable TId = null
758 readable var _n_args
: List[AExpr] = new List[AExpr]
762 readable var _n_expr
: AExpr
763 readable var _n_id
: TAttrid
766 special AAttrFormExpr
768 class AAttrAssignExpr
769 special AAttrFormExpr
770 special AAssignFormExpr
774 readable var _n_id
: TId
775 readable var _n_args
: List[AExpr] = new List[AExpr]
777 class AAttrReassignExpr
779 special AAttrFormExpr
780 special AReassignFormExpr
783 special ACallFormExpr
785 class ACallAssignExpr
786 special ACallFormExpr
787 special AAssignFormExpr
789 class ACallReassignExpr
791 special ACallFormExpr
792 special AReassignFormExpr
796 readable var _n_qualified
: nullable AQualified = null
797 readable var _n_kwsuper
: TKwsuper
798 readable var _n_args
: List[AExpr] = new List[AExpr]
802 readable var _n_kwinit
: TKwinit
803 readable var _n_args
: List[AExpr] = new List[AExpr]
807 readable var _n_args
: List[AExpr] = new List[AExpr]
814 special AAssignFormExpr
818 readable var _n_id
: TId
820 class ABraReassignExpr
822 special AReassignFormExpr
824 class AClosureCallExpr
826 readable var _n_id
: TId
827 readable var _n_args
: List[AExpr] = new List[AExpr]
828 readable var _n_closure_defs
: List[AClosureDef] = new List[AClosureDef]
835 special AAssignFormExpr
837 class AVarReassignExpr
839 special AReassignFormExpr
843 readable var _n_expr
: AExpr
844 readable var _n_expr2
: AExpr
854 readable var _n_exprs
: List[AExpr] = new List[AExpr]
858 readable var _n_kwself
: nullable TKwself
860 class AImplicitSelfExpr
865 readable var _n_kwtrue
: TKwtrue
869 readable var _n_kwfalse
: TKwfalse
873 readable var _n_kwnull
: TKwnull
877 readable var _n_number
: TNumber
881 readable var _n_float
: TFloat
885 readable var _n_char
: TChar
887 class AStringFormExpr
891 special AStringFormExpr
892 readable var _n_string
: TString
894 class AStartStringExpr
895 special AStringFormExpr
896 readable var _n_string
: TStartString
899 special AStringFormExpr
900 readable var _n_string
: TMidString
903 special AStringFormExpr
904 readable var _n_string
: TEndString
906 class ASuperstringExpr
908 readable var _n_exprs
: List[AExpr] = new List[AExpr]
915 readable var _n_expr
: AExpr
919 readable var _n_expr
: AExpr
920 readable var _n_kwas
: TKwas
921 readable var _n_type
: AType
925 readable var _n_expr
: AExpr
926 readable var _n_kwas
: TKwas
927 readable var _n_kwnot
: TKwnot
928 readable var _n_kwnull
: TKwnull
931 special AAttrFormExpr
932 readable var _n_kwisset
: TKwisset
934 class AAssignOp special Prod end
937 readable var _n_pluseq
: TPluseq
941 readable var _n_minuseq
: TMinuseq
945 readable var _n_bang
: TBang
946 readable var _n_id
: AClosureId
947 readable var _n_ids
: List[TId] = new List[TId]
948 readable var _n_kwdo
: nullable TKwdo = null
949 readable var _n_expr
: nullable AExpr = null
954 class ASimpleClosureId
956 readable var _n_id
: TId
958 class ABreakClosureId
960 readable var _n_kwbreak
: TKwbreak
964 readable var _n_id
: List[TId] = new List[TId]
965 readable var _n_classid
: nullable TClassid = null
969 readable var _n_comment
: List[TComment] = new List[TComment]
974 readable var _n_base
: nullable AModule
975 readable var _n_eof
: EOF