36c5ceb352d24b9238271f3684bb43d5fcf754a3
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_kwattr
: nullable TKwattr = null
409 readable writable var _n_kwvar
: nullable TKwvar = null
410 readable writable var _n_id
: TAttrid
411 readable writable var _n_type
: nullable AType = null
412 readable writable var _n_readable
: nullable AAble = null
413 readable writable var _n_writable
: nullable AAble = null
414 readable writable var _n_expr
: nullable AExpr = null
418 readable writable var _n_kwredef
: nullable TKwredef = null
419 readable writable var _n_visibility
: nullable AVisibility
420 readable writable var _n_methid
: nullable AMethid = null
421 readable writable var _n_signature
: nullable ASignature
423 class ADeferredMethPropdef
425 readable writable var _n_kwmeth
: TKwmeth
427 class AInternMethPropdef
429 readable writable var _n_kwmeth
: TKwmeth
431 class AExternMethPropdef
433 readable writable var _n_kwmeth
: TKwmeth
434 readable writable var _n_extern
: nullable TString = null
436 class AConcreteMethPropdef
438 readable writable var _n_kwmeth
: nullable TKwmeth
439 readable writable var _n_block
: nullable AExpr = null
441 class AConcreteInitPropdef
442 special AConcreteMethPropdef
443 readable writable var _n_kwinit
: TKwinit
445 class AMainMethPropdef
446 special AConcreteMethPropdef
450 readable writable var _n_kwredef
: nullable TKwredef = null
451 readable writable var _n_visibility
: AVisibility
452 readable writable var _n_kwtype
: TKwtype
453 readable writable var _n_id
: TClassid
454 readable writable var _n_type
: AType
456 class AAble special Prod
457 readable writable var _n_kwredef
: nullable TKwredef = null
461 readable writable var _n_kwreadable
: TKwreadable
465 readable writable var _n_kwwritable
: TKwwritable
467 class AMethid special Prod end
470 readable writable var _n_id
: TId
474 readable writable var _n_plus
: TPlus
478 readable writable var _n_minus
: TMinus
482 readable writable var _n_star
: TStar
486 readable writable var _n_slash
: TSlash
490 readable writable var _n_percent
: TPercent
494 readable writable var _n_eq
: TEq
498 readable writable var _n_ne
: TNe
502 readable writable var _n_le
: TLe
506 readable writable var _n_ge
: TGe
510 readable writable var _n_lt
: TLt
514 readable writable var _n_gt
: TGt
518 readable writable var _n_obra
: TObra
519 readable writable var _n_cbra
: TCbra
521 class AStarshipMethid
523 readable writable var _n_starship
: TStarship
527 readable writable var _n_id
: TId
528 readable writable var _n_assign
: TAssign
530 class ABraassignMethid
532 readable writable var _n_obra
: TObra
533 readable writable var _n_cbra
: TCbra
534 readable writable var _n_assign
: TAssign
538 readable writable var _n_params
: List[AParam] = new List[AParam]
539 readable writable var _n_type
: nullable AType = null
540 readable writable var _n_closure_decls
: List[AClosureDecl] = new List[AClosureDecl]
544 readable writable var _n_id
: TId
545 readable writable var _n_type
: nullable AType = null
546 readable writable var _n_dotdotdot
: nullable TDotdotdot = null
550 readable writable var _n_kwwith
: TKwwith
551 readable writable var _n_kwbreak
: nullable TKwbreak = null
552 readable writable var _n_id
: TId
553 readable writable var _n_signature
: ASignature
554 readable writable var _n_expr
: nullable AExpr = null
558 readable writable var _n_kwnullable
: nullable TKwnullable = null
559 readable writable var _n_id
: TClassid
560 readable writable var _n_types
: List[AType] = new List[AType]
564 readable writable var _n_kwlabel
: TKwlabel
565 readable writable var _n_id
: TId
567 class AExpr special Prod end
570 readable writable var _n_expr
: List[AExpr] = new List[AExpr]
574 readable writable var _n_kwvar
: TKwvar
575 readable writable var _n_id
: TId
576 readable writable var _n_type
: nullable AType = null
577 readable writable var _n_assign
: nullable TAssign = null
578 readable writable var _n_expr
: nullable AExpr = null
582 readable writable var _n_kwreturn
: TKwreturn
583 readable writable var _n_expr
: nullable AExpr = null
587 readable writable var _n_label
: nullable ALabel = null
592 readable writable var _n_kwbreak
: TKwbreak
593 readable writable var _n_expr
: nullable AExpr = null
597 readable writable var _n_kwabort
: TKwabort
602 readable writable var _n_kwcontinue
: TKwcontinue
603 readable writable var _n_expr
: nullable AExpr = null
608 readable writable var _n_kwdo
: TKwdo
609 readable writable var _n_block
: nullable AExpr = null
613 readable writable var _n_kwif
: TKwif
614 readable writable var _n_expr
: AExpr
615 readable writable var _n_then
: nullable AExpr = null
616 readable writable var _n_else
: nullable AExpr = null
620 readable writable var _n_kwif
: TKwif
621 readable writable var _n_expr
: AExpr
622 readable writable var _n_kwthen
: TKwthen
623 readable writable var _n_then
: AExpr
624 readable writable var _n_kwelse
: TKwelse
625 readable writable var _n_else
: AExpr
630 readable writable var _n_kwwhile
: TKwwhile
631 readable writable var _n_expr
: AExpr
632 readable writable var _n_kwdo
: TKwdo
633 readable writable var _n_block
: nullable AExpr = null
638 readable writable var _n_kwfor
: TKwfor
639 readable writable var _n_id
: TId
640 readable writable var _n_expr
: AExpr
641 readable writable var _n_kwdo
: TKwdo
642 readable writable var _n_block
: nullable AExpr = null
646 readable writable var _n_kwassert
: TKwassert
647 readable writable var _n_id
: nullable TId = null
648 readable writable var _n_expr
: AExpr
650 class AAssignFormExpr
652 readable writable var _n_assign
: TAssign
653 readable writable var _n_value
: AExpr
655 class AReassignFormExpr
657 readable writable var _n_assign_op
: AAssignOp
658 readable writable var _n_value
: AExpr
662 readable writable var _n_kwonce
: TKwonce
666 readable writable var _n_expr
: AExpr
667 readable writable var _n_closure_defs
: List[AClosureDef] = new List[AClosureDef]
671 readable writable var _n_expr2
: AExpr
678 readable writable var _n_expr
: AExpr
679 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_kwnot
: TKwnot
689 readable writable var _n_expr
: AExpr
696 readable writable var _n_expr
: AExpr
697 readable writable var _n_expr2
: AExpr
716 readable writable var _n_expr
: AExpr
717 readable writable var _n_type
: AType
739 readable writable var _n_minus
: TMinus
743 readable writable var _n_kwnew
: TKwnew
744 readable writable var _n_type
: AType
745 readable writable var _n_id
: nullable TId = null
746 readable writable var _n_args
: List[AExpr] = new List[AExpr]
750 readable writable var _n_expr
: AExpr
751 readable writable var _n_id
: TAttrid
754 special AAttrFormExpr
756 class AAttrAssignExpr
757 special AAttrFormExpr
758 special AAssignFormExpr
762 readable writable var _n_id
: TId
763 readable writable var _n_args
: List[AExpr] = new List[AExpr]
765 class AAttrReassignExpr
767 special AAttrFormExpr
768 special AReassignFormExpr
771 special ACallFormExpr
773 class ACallAssignExpr
774 special ACallFormExpr
775 special AAssignFormExpr
777 class ACallReassignExpr
779 special ACallFormExpr
780 special AReassignFormExpr
784 readable writable var _n_qualified
: nullable AQualified = null
785 readable writable var _n_kwsuper
: TKwsuper
786 readable writable var _n_args
: List[AExpr] = new List[AExpr]
790 readable writable var _n_kwinit
: TKwinit
791 readable writable var _n_args
: List[AExpr] = new List[AExpr]
795 readable writable var _n_args
: List[AExpr] = new List[AExpr]
802 special AAssignFormExpr
806 readable writable var _n_id
: TId
808 class ABraReassignExpr
810 special AReassignFormExpr
812 class AClosureCallExpr
814 readable writable var _n_id
: TId
815 readable writable var _n_args
: List[AExpr] = new List[AExpr]
816 readable writable var _n_closure_defs
: List[AClosureDef] = new List[AClosureDef]
823 special AAssignFormExpr
825 class AVarReassignExpr
827 special AReassignFormExpr
831 readable writable var _n_expr
: AExpr
832 readable writable var _n_expr2
: AExpr
842 readable writable var _n_exprs
: List[AExpr] = new List[AExpr]
846 readable writable var _n_kwself
: nullable TKwself
848 class AImplicitSelfExpr
853 readable writable var _n_kwtrue
: TKwtrue
857 readable writable var _n_kwfalse
: TKwfalse
861 readable writable var _n_kwnull
: TKwnull
865 readable writable var _n_number
: TNumber
869 readable writable var _n_float
: TFloat
873 readable writable var _n_char
: TChar
875 class AStringFormExpr
879 special AStringFormExpr
880 readable writable var _n_string
: TString
882 class AStartStringExpr
883 special AStringFormExpr
884 readable writable var _n_string
: TStartString
887 special AStringFormExpr
888 readable writable var _n_string
: TMidString
891 special AStringFormExpr
892 readable writable var _n_string
: TEndString
894 class ASuperstringExpr
896 readable writable var _n_exprs
: List[AExpr] = new List[AExpr]
903 readable writable var _n_expr
: AExpr
907 readable writable var _n_expr
: AExpr
908 readable writable var _n_kwas
: TKwas
909 readable writable var _n_type
: AType
913 readable writable var _n_expr
: AExpr
914 readable writable var _n_kwas
: TKwas
915 readable writable var _n_kwnot
: TKwnot
916 readable writable var _n_kwnull
: TKwnull
919 special AAttrFormExpr
920 readable writable var _n_kwisset
: TKwisset
922 class AAssignOp special Prod end
925 readable writable var _n_pluseq
: TPluseq
929 readable writable var _n_minuseq
: TMinuseq
933 readable writable var _n_kwwith
: TKwwith
934 readable writable var _n_id
: List[TId] = new List[TId]
935 readable writable var _n_kwdo
: TKwdo
936 readable writable var _n_expr
: nullable AExpr = null
940 readable writable var _n_id
: List[TId] = new List[TId]
941 readable writable var _n_classid
: nullable TClassid = null
945 readable writable var _n_comment
: List[TComment] = new List[TComment]
950 readable writable var _n_base
: nullable AModule
951 readable writable var _n_eof
: EOF