7a0e5746dd9d91d53c703ffe7864dadfbc2faa53
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
: TKwspecial
399 readable var _n_type
: AType
401 class APropdef special Prod
402 readable var _n_doc
: nullable ADoc = null
406 readable var _n_kwredef
: nullable TKwredef = null
407 readable var _n_visibility
: AVisibility
408 readable var _n_kwvar
: TKwvar
409 readable var _n_id
: TAttrid
410 readable var _n_type
: nullable AType = null
411 readable var _n_readable
: nullable AAble = null
412 readable var _n_writable
: nullable AAble = null
413 readable var _n_expr
: nullable AExpr = null
417 readable var _n_kwredef
: nullable TKwredef = null
418 readable var _n_visibility
: nullable AVisibility
419 readable var _n_methid
: nullable AMethid = null
420 readable var _n_signature
: nullable ASignature
422 class ADeferredMethPropdef
424 readable var _n_kwmeth
: TKwmeth
426 class AInternMethPropdef
428 readable var _n_kwmeth
: TKwmeth
430 class AExternMethPropdef
432 readable var _n_kwmeth
: TKwmeth
433 readable var _n_extern
: nullable TString = null
435 class AConcreteMethPropdef
437 readable var _n_kwmeth
: nullable TKwmeth
438 readable var _n_block
: nullable AExpr = null
440 class AConcreteInitPropdef
441 special AConcreteMethPropdef
442 readable var _n_kwinit
: TKwinit
444 class AMainMethPropdef
445 special AConcreteMethPropdef
449 readable var _n_kwredef
: nullable TKwredef = null
450 readable var _n_visibility
: AVisibility
451 readable var _n_kwtype
: TKwtype
452 readable var _n_id
: TClassid
453 readable var _n_type
: AType
455 class AAble special Prod
456 readable var _n_kwredef
: nullable TKwredef = null
460 readable var _n_kwreadable
: TKwreadable
464 readable var _n_kwwritable
: TKwwritable
466 class AMethid special Prod end
469 readable var _n_id
: TId
473 readable var _n_plus
: TPlus
477 readable var _n_minus
: TMinus
481 readable var _n_star
: TStar
485 readable var _n_slash
: TSlash
489 readable var _n_percent
: TPercent
493 readable var _n_eq
: TEq
497 readable var _n_ne
: TNe
501 readable var _n_le
: TLe
505 readable var _n_ge
: TGe
509 readable var _n_lt
: TLt
513 readable var _n_gt
: TGt
517 readable var _n_obra
: TObra
518 readable var _n_cbra
: TCbra
520 class AStarshipMethid
522 readable var _n_starship
: TStarship
526 readable var _n_id
: TId
527 readable var _n_assign
: TAssign
529 class ABraassignMethid
531 readable var _n_obra
: TObra
532 readable var _n_cbra
: TCbra
533 readable var _n_assign
: TAssign
537 readable var _n_params
: List[AParam] = new List[AParam]
538 readable var _n_type
: nullable AType = null
539 readable var _n_closure_decls
: List[AClosureDecl] = new List[AClosureDecl]
543 readable var _n_id
: TId
544 readable var _n_type
: nullable AType = null
545 readable var _n_dotdotdot
: nullable TDotdotdot = null
549 readable var _n_kwbreak
: nullable TKwbreak = null
550 readable var _n_bang
: TBang
551 readable var _n_id
: TId
552 readable var _n_signature
: ASignature
553 readable var _n_expr
: nullable AExpr = null
557 readable var _n_kwnullable
: nullable TKwnullable = null
558 readable var _n_id
: TClassid
559 readable var _n_types
: List[AType] = new List[AType]
563 readable var _n_kwlabel
: TKwlabel
564 readable var _n_id
: TId
566 class AExpr special Prod end
569 readable var _n_expr
: List[AExpr] = new List[AExpr]
573 readable var _n_kwvar
: TKwvar
574 readable var _n_id
: TId
575 readable var _n_type
: nullable AType = null
576 readable var _n_assign
: nullable TAssign = null
577 readable var _n_expr
: nullable AExpr = null
581 readable var _n_kwreturn
: nullable TKwreturn = null
582 readable var _n_expr
: nullable AExpr = null
586 readable var _n_label
: nullable ALabel = null
591 readable var _n_kwbreak
: TKwbreak
592 readable var _n_expr
: nullable AExpr = null
596 readable var _n_kwabort
: TKwabort
601 readable var _n_kwcontinue
: nullable TKwcontinue = null
602 readable var _n_expr
: nullable AExpr = null
607 readable var _n_kwdo
: TKwdo
608 readable var _n_block
: nullable AExpr = null
612 readable var _n_kwif
: TKwif
613 readable var _n_expr
: AExpr
614 readable var _n_then
: nullable AExpr = null
615 readable var _n_else
: nullable AExpr = null
619 readable var _n_kwif
: TKwif
620 readable var _n_expr
: AExpr
621 readable var _n_kwthen
: TKwthen
622 readable var _n_then
: AExpr
623 readable var _n_kwelse
: TKwelse
624 readable var _n_else
: AExpr
629 readable var _n_kwwhile
: TKwwhile
630 readable var _n_expr
: AExpr
631 readable var _n_kwdo
: TKwdo
632 readable var _n_block
: nullable AExpr = null
637 readable var _n_kwloop
: TKwloop
638 readable var _n_block
: nullable AExpr = null
643 readable var _n_kwfor
: TKwfor
644 readable var _n_id
: TId
645 readable var _n_expr
: AExpr
646 readable var _n_kwdo
: TKwdo
647 readable var _n_block
: nullable AExpr = null
651 readable var _n_kwassert
: TKwassert
652 readable var _n_id
: nullable TId = null
653 readable var _n_expr
: AExpr
654 readable var _n_else
: nullable AExpr = null
656 class AAssignFormExpr
658 readable var _n_assign
: TAssign
659 readable var _n_value
: AExpr
661 class AReassignFormExpr
663 readable var _n_assign_op
: AAssignOp
664 readable var _n_value
: AExpr
668 readable var _n_kwonce
: TKwonce
672 readable var _n_expr
: AExpr
673 readable var _n_closure_defs
: List[AClosureDef] = new List[AClosureDef]
677 readable var _n_expr2
: AExpr
684 readable var _n_expr
: AExpr
685 readable var _n_expr2
: AExpr
689 readable var _n_expr
: AExpr
690 readable var _n_expr2
: AExpr
694 readable var _n_kwnot
: TKwnot
695 readable var _n_expr
: AExpr
702 readable var _n_expr
: AExpr
703 readable var _n_expr2
: AExpr
722 readable var _n_expr
: AExpr
723 readable var _n_type
: AType
745 readable var _n_minus
: TMinus
749 readable var _n_kwnew
: TKwnew
750 readable var _n_type
: AType
751 readable var _n_id
: nullable TId = null
752 readable var _n_args
: List[AExpr] = new List[AExpr]
756 readable var _n_expr
: AExpr
757 readable var _n_id
: TAttrid
760 special AAttrFormExpr
762 class AAttrAssignExpr
763 special AAttrFormExpr
764 special AAssignFormExpr
768 readable var _n_id
: TId
769 readable 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 var _n_qualified
: nullable AQualified = null
791 readable var _n_kwsuper
: TKwsuper
792 readable var _n_args
: List[AExpr] = new List[AExpr]
796 readable var _n_kwinit
: TKwinit
797 readable var _n_args
: List[AExpr] = new List[AExpr]
801 readable var _n_args
: List[AExpr] = new List[AExpr]
808 special AAssignFormExpr
812 readable var _n_id
: TId
814 class ABraReassignExpr
816 special AReassignFormExpr
818 class AClosureCallExpr
820 readable var _n_id
: TId
821 readable var _n_args
: List[AExpr] = new List[AExpr]
822 readable var _n_closure_defs
: List[AClosureDef] = new List[AClosureDef]
829 special AAssignFormExpr
831 class AVarReassignExpr
833 special AReassignFormExpr
837 readable var _n_expr
: AExpr
838 readable var _n_expr2
: AExpr
848 readable var _n_exprs
: List[AExpr] = new List[AExpr]
852 readable var _n_kwself
: nullable TKwself
854 class AImplicitSelfExpr
859 readable var _n_kwtrue
: TKwtrue
863 readable var _n_kwfalse
: TKwfalse
867 readable var _n_kwnull
: TKwnull
871 readable var _n_number
: TNumber
875 readable var _n_float
: TFloat
879 readable var _n_char
: TChar
881 class AStringFormExpr
885 special AStringFormExpr
886 readable var _n_string
: TString
888 class AStartStringExpr
889 special AStringFormExpr
890 readable var _n_string
: TStartString
893 special AStringFormExpr
894 readable var _n_string
: TMidString
897 special AStringFormExpr
898 readable var _n_string
: TEndString
900 class ASuperstringExpr
902 readable var _n_exprs
: List[AExpr] = new List[AExpr]
909 readable var _n_expr
: AExpr
913 readable var _n_expr
: AExpr
914 readable var _n_kwas
: TKwas
915 readable var _n_type
: AType
919 readable var _n_expr
: AExpr
920 readable var _n_kwas
: TKwas
921 readable var _n_kwnot
: TKwnot
922 readable var _n_kwnull
: TKwnull
925 special AAttrFormExpr
926 readable var _n_kwisset
: TKwisset
928 class AAssignOp special Prod end
931 readable var _n_pluseq
: TPluseq
935 readable var _n_minuseq
: TMinuseq
939 readable var _n_bang
: TBang
940 readable var _n_id
: AClosureId
941 readable var _n_ids
: List[TId] = new List[TId]
942 readable var _n_kwdo
: nullable TKwdo = null
943 readable var _n_expr
: nullable AExpr = null
948 class ASimpleClosureId
950 readable var _n_id
: TId
952 class ABreakClosureId
954 readable var _n_kwbreak
: TKwbreak
958 readable var _n_id
: List[TId] = new List[TId]
959 readable var _n_classid
: nullable TClassid = null
963 readable var _n_comment
: List[TComment] = new List[TComment]
968 readable var _n_base
: nullable AModule
969 readable var _n_eof
: EOF