777bddb16095a938cf1f18293fbe5b134a151ed7
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
: nullable TAttrid
411 readable var _n_id2
: nullable TId
412 readable var _n_type
: nullable AType = null
413 readable var _n_readable
: nullable AAble = null
414 readable var _n_writable
: nullable AAble = null
415 readable var _n_expr
: nullable AExpr = null
419 readable var _n_kwredef
: nullable TKwredef = null
420 readable var _n_visibility
: nullable AVisibility
421 readable var _n_methid
: nullable AMethid = null
422 readable var _n_signature
: nullable ASignature
424 class ADeferredMethPropdef
426 readable var _n_kwmeth
: TKwmeth
428 class AInternMethPropdef
430 readable var _n_kwmeth
: TKwmeth
432 class AExternMethPropdef
434 readable var _n_kwmeth
: TKwmeth
435 readable var _n_extern
: nullable TString = null
437 class AConcreteMethPropdef
439 readable var _n_kwmeth
: nullable TKwmeth
440 readable var _n_block
: nullable AExpr = null
442 class AConcreteInitPropdef
443 special AConcreteMethPropdef
444 readable var _n_kwinit
: TKwinit
446 class AMainMethPropdef
447 special AConcreteMethPropdef
451 readable var _n_kwredef
: nullable TKwredef = null
452 readable var _n_visibility
: AVisibility
453 readable var _n_kwtype
: TKwtype
454 readable var _n_id
: TClassid
455 readable var _n_type
: AType
457 class AAble special Prod
458 readable var _n_visibility
: nullable AVisibility = null
459 readable var _n_kwredef
: nullable TKwredef = null
463 readable var _n_kwreadable
: TKwreadable
467 readable var _n_kwwritable
: TKwwritable
469 class AMethid special Prod end
472 readable var _n_id
: TId
476 readable var _n_plus
: TPlus
480 readable var _n_minus
: TMinus
484 readable var _n_star
: TStar
488 readable var _n_slash
: TSlash
492 readable var _n_percent
: TPercent
496 readable var _n_eq
: TEq
500 readable var _n_ne
: TNe
504 readable var _n_le
: TLe
508 readable var _n_ge
: TGe
512 readable var _n_lt
: TLt
516 readable var _n_gt
: TGt
520 readable var _n_obra
: TObra
521 readable var _n_cbra
: TCbra
523 class AStarshipMethid
525 readable var _n_starship
: TStarship
529 readable var _n_id
: TId
530 readable var _n_assign
: TAssign
532 class ABraassignMethid
534 readable var _n_obra
: TObra
535 readable var _n_cbra
: TCbra
536 readable var _n_assign
: TAssign
540 readable var _n_params
: List[AParam] = new List[AParam]
541 readable var _n_type
: nullable AType = null
542 readable var _n_closure_decls
: List[AClosureDecl] = new List[AClosureDecl]
546 readable var _n_id
: TId
547 readable var _n_type
: nullable AType = null
548 readable var _n_dotdotdot
: nullable TDotdotdot = null
552 readable var _n_kwbreak
: nullable TKwbreak = null
553 readable var _n_bang
: TBang
554 readable var _n_id
: TId
555 readable var _n_signature
: ASignature
556 readable var _n_expr
: nullable AExpr = null
560 readable var _n_kwnullable
: nullable TKwnullable = null
561 readable var _n_id
: TClassid
562 readable var _n_types
: List[AType] = new List[AType]
566 readable var _n_kwlabel
: TKwlabel
567 readable var _n_id
: TId
569 class AExpr special Prod end
572 readable var _n_expr
: List[AExpr] = new List[AExpr]
576 readable var _n_kwvar
: TKwvar
577 readable var _n_id
: TId
578 readable var _n_type
: nullable AType = null
579 readable var _n_assign
: nullable TAssign = null
580 readable var _n_expr
: nullable AExpr = null
584 readable var _n_kwreturn
: nullable TKwreturn = null
585 readable var _n_expr
: nullable AExpr = null
589 readable var _n_label
: nullable ALabel = null
594 readable var _n_kwbreak
: TKwbreak
595 readable var _n_expr
: nullable AExpr = null
599 readable var _n_kwabort
: TKwabort
604 readable var _n_kwcontinue
: nullable TKwcontinue = null
605 readable var _n_expr
: nullable AExpr = null
610 readable var _n_kwdo
: TKwdo
611 readable var _n_block
: nullable AExpr = null
615 readable var _n_kwif
: TKwif
616 readable var _n_expr
: AExpr
617 readable var _n_then
: nullable AExpr = null
618 readable var _n_else
: nullable AExpr = null
622 readable var _n_kwif
: TKwif
623 readable var _n_expr
: AExpr
624 readable var _n_kwthen
: TKwthen
625 readable var _n_then
: AExpr
626 readable var _n_kwelse
: TKwelse
627 readable var _n_else
: AExpr
632 readable var _n_kwwhile
: TKwwhile
633 readable var _n_expr
: AExpr
634 readable var _n_kwdo
: TKwdo
635 readable var _n_block
: nullable AExpr = null
640 readable var _n_kwloop
: TKwloop
641 readable var _n_block
: nullable AExpr = null
646 readable var _n_kwfor
: TKwfor
647 readable var _n_id
: TId
648 readable var _n_expr
: AExpr
649 readable var _n_kwdo
: TKwdo
650 readable var _n_block
: nullable AExpr = null
654 readable var _n_kwassert
: TKwassert
655 readable var _n_id
: nullable TId = null
656 readable var _n_expr
: AExpr
657 readable var _n_else
: nullable AExpr = null
659 class AAssignFormExpr
661 readable var _n_assign
: TAssign
662 readable var _n_value
: AExpr
664 class AReassignFormExpr
666 readable var _n_assign_op
: AAssignOp
667 readable var _n_value
: AExpr
671 readable var _n_kwonce
: TKwonce
675 readable var _n_expr
: AExpr
676 readable var _n_closure_defs
: List[AClosureDef] = new List[AClosureDef]
680 readable var _n_expr2
: AExpr
687 readable var _n_expr
: AExpr
688 readable var _n_expr2
: AExpr
692 readable var _n_expr
: AExpr
693 readable var _n_expr2
: AExpr
697 readable var _n_expr
: AExpr
698 readable var _n_expr2
: AExpr
702 readable var _n_kwnot
: TKwnot
703 readable var _n_expr
: AExpr
710 readable var _n_expr
: AExpr
711 readable var _n_expr2
: AExpr
730 readable var _n_expr
: AExpr
731 readable var _n_type
: AType
753 readable var _n_minus
: TMinus
757 readable var _n_kwnew
: TKwnew
758 readable var _n_type
: AType
759 readable var _n_id
: nullable TId = null
760 readable var _n_args
: List[AExpr] = new List[AExpr]
764 readable var _n_expr
: AExpr
765 readable var _n_id
: TAttrid
768 special AAttrFormExpr
770 class AAttrAssignExpr
771 special AAttrFormExpr
772 special AAssignFormExpr
776 readable var _n_id
: TId
777 readable var _n_args
: List[AExpr] = new List[AExpr]
779 class AAttrReassignExpr
781 special AAttrFormExpr
782 special AReassignFormExpr
785 special ACallFormExpr
787 class ACallAssignExpr
788 special ACallFormExpr
789 special AAssignFormExpr
791 class ACallReassignExpr
793 special ACallFormExpr
794 special AReassignFormExpr
798 readable var _n_qualified
: nullable AQualified = null
799 readable var _n_kwsuper
: TKwsuper
800 readable var _n_args
: List[AExpr] = new List[AExpr]
804 readable var _n_kwinit
: TKwinit
805 readable var _n_args
: List[AExpr] = new List[AExpr]
809 readable var _n_args
: List[AExpr] = new List[AExpr]
816 special AAssignFormExpr
820 readable var _n_id
: TId
822 class ABraReassignExpr
824 special AReassignFormExpr
826 class AClosureCallExpr
828 readable var _n_id
: TId
829 readable var _n_args
: List[AExpr] = new List[AExpr]
830 readable var _n_closure_defs
: List[AClosureDef] = new List[AClosureDef]
837 special AAssignFormExpr
839 class AVarReassignExpr
841 special AReassignFormExpr
845 readable var _n_expr
: AExpr
846 readable var _n_expr2
: AExpr
856 readable var _n_exprs
: List[AExpr] = new List[AExpr]
860 readable var _n_kwself
: nullable TKwself
862 class AImplicitSelfExpr
867 readable var _n_kwtrue
: TKwtrue
871 readable var _n_kwfalse
: TKwfalse
875 readable var _n_kwnull
: TKwnull
879 readable var _n_number
: TNumber
883 readable var _n_float
: TFloat
887 readable var _n_char
: TChar
889 class AStringFormExpr
893 special AStringFormExpr
894 readable var _n_string
: TString
896 class AStartStringExpr
897 special AStringFormExpr
898 readable var _n_string
: TStartString
901 special AStringFormExpr
902 readable var _n_string
: TMidString
905 special AStringFormExpr
906 readable var _n_string
: TEndString
908 class ASuperstringExpr
910 readable var _n_exprs
: List[AExpr] = new List[AExpr]
917 readable var _n_expr
: AExpr
921 readable var _n_expr
: AExpr
922 readable var _n_kwas
: TKwas
923 readable var _n_type
: AType
927 readable var _n_expr
: AExpr
928 readable var _n_kwas
: TKwas
929 readable var _n_kwnot
: TKwnot
930 readable var _n_kwnull
: TKwnull
933 special AAttrFormExpr
934 readable var _n_kwisset
: TKwisset
936 class AAssignOp special Prod end
939 readable var _n_pluseq
: TPluseq
943 readable var _n_minuseq
: TMinuseq
947 readable var _n_bang
: TBang
948 readable var _n_id
: AClosureId
949 readable var _n_ids
: List[TId] = new List[TId]
950 readable var _n_kwdo
: nullable TKwdo = null
951 readable var _n_expr
: nullable AExpr = null
956 class ASimpleClosureId
958 readable var _n_id
: TId
960 class ABreakClosureId
962 readable var _n_kwbreak
: TKwbreak
966 readable var _n_id
: List[TId] = new List[TId]
967 readable var _n_classid
: nullable TClassid = null
971 readable var _n_comment
: List[TComment] = new List[TComment]
976 readable var _n_base
: nullable AModule
977 readable var _n_eof
: EOF