9540d36be41fac2331130aa3f6479d30c6edc441
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
302 private init noinit
do end
306 private init noinit
do end
311 readable writable var _n_packagedecl
: nullable APackagedecl = null
312 readable writable var _n_imports
: List[AImport] = new List[AImport]
313 readable writable var _n_classdefs
: List[AClassdef] = new List[AClassdef]
317 readable writable var _n_doc
: nullable ADoc = null
318 readable writable var _n_kwpackage
: TKwpackage
319 readable writable var _n_id
: TId
321 class AImport special Prod end
324 readable writable var _n_visibility
: AVisibility
325 readable writable var _n_kwimport
: TKwimport
326 readable writable var _n_id
: TId
330 readable writable var _n_visibility
: AVisibility
331 readable writable var _n_kwimport
: TKwimport
332 readable writable var _n_kwend
: TKwend
334 class AVisibility special Prod end
335 class APublicVisibility
338 class APrivateVisibility
340 readable writable var _n_kwprivate
: TKwprivate
342 class AProtectedVisibility
344 readable writable var _n_kwprotected
: TKwprotected
346 class AIntrudeVisibility
348 readable writable var _n_kwintrude
: TKwintrude
350 class AClassdef special Prod end
353 readable writable var _n_doc
: nullable ADoc = null
354 readable writable var _n_kwredef
: nullable TKwredef = null
355 readable writable var _n_visibility
: AVisibility
356 readable writable var _n_classkind
: AClasskind
357 readable writable var _n_id
: nullable TClassid = null
358 readable writable var _n_formaldefs
: List[AFormaldef] = new List[AFormaldef]
359 readable writable var _n_superclasses
: List[ASuperclass] = new List[ASuperclass]
360 readable writable var _n_propdefs
: List[APropdef] = new List[APropdef]
364 readable writable var _n_propdefs
: List[APropdef] = new List[APropdef]
368 readable writable var _n_propdefs
: List[APropdef] = new List[APropdef]
370 class AClasskind special Prod end
371 class AConcreteClasskind
373 readable writable var _n_kwclass
: TKwclass
375 class AAbstractClasskind
377 readable writable var _n_kwabstract
: TKwabstract
378 readable writable var _n_kwclass
: TKwclass
380 class AInterfaceClasskind
382 readable writable var _n_kwinterface
: TKwinterface
384 class AUniversalClasskind
386 readable writable var _n_kwuniversal
: TKwuniversal
390 readable writable var _n_id
: TClassid
391 readable writable var _n_type
: nullable AType = null
395 readable writable var _n_kwspecial
: TKwspecial
396 readable writable var _n_type
: AType
398 class APropdef special Prod
399 readable writable var _n_doc
: nullable ADoc = null
403 readable writable var _n_kwredef
: nullable TKwredef = null
404 readable writable var _n_visibility
: AVisibility
405 readable writable var _n_kwvar
: TKwvar
406 readable writable var _n_id
: TAttrid
407 readable writable var _n_type
: nullable AType = null
408 readable writable var _n_readable
: nullable AAble = null
409 readable writable var _n_writable
: nullable AAble = null
410 readable writable var _n_expr
: nullable AExpr = null
414 readable writable var _n_kwredef
: nullable TKwredef = null
415 readable writable var _n_visibility
: nullable AVisibility
416 readable writable var _n_methid
: nullable AMethid = null
417 readable writable var _n_signature
: nullable ASignature
419 class ADeferredMethPropdef
421 readable writable var _n_kwmeth
: TKwmeth
423 class AInternMethPropdef
425 readable writable var _n_kwmeth
: TKwmeth
427 class AExternMethPropdef
429 readable writable var _n_kwmeth
: TKwmeth
430 readable writable var _n_extern
: nullable TString = null
432 class AConcreteMethPropdef
434 readable writable var _n_kwmeth
: nullable TKwmeth
435 readable writable var _n_block
: nullable AExpr = null
437 class AConcreteInitPropdef
438 special AConcreteMethPropdef
439 readable writable var _n_kwinit
: TKwinit
441 class AMainMethPropdef
442 special AConcreteMethPropdef
446 readable writable var _n_kwredef
: nullable TKwredef = null
447 readable writable var _n_visibility
: AVisibility
448 readable writable var _n_kwtype
: TKwtype
449 readable writable var _n_id
: TClassid
450 readable writable var _n_type
: AType
452 class AAble special Prod
453 readable writable var _n_kwredef
: nullable TKwredef = null
457 readable writable var _n_kwreadable
: TKwreadable
461 readable writable var _n_kwwritable
: TKwwritable
463 class AMethid special Prod end
466 readable writable var _n_id
: TId
470 readable writable var _n_plus
: TPlus
474 readable writable var _n_minus
: TMinus
478 readable writable var _n_star
: TStar
482 readable writable var _n_slash
: TSlash
486 readable writable var _n_percent
: TPercent
490 readable writable var _n_eq
: TEq
494 readable writable var _n_ne
: TNe
498 readable writable var _n_le
: TLe
502 readable writable var _n_ge
: TGe
506 readable writable var _n_lt
: TLt
510 readable writable var _n_gt
: TGt
514 readable writable var _n_obra
: TObra
515 readable writable var _n_cbra
: TCbra
517 class AStarshipMethid
519 readable writable var _n_starship
: TStarship
523 readable writable var _n_id
: TId
524 readable writable var _n_assign
: TAssign
526 class ABraassignMethid
528 readable writable var _n_obra
: TObra
529 readable writable var _n_cbra
: TCbra
530 readable writable var _n_assign
: TAssign
534 readable writable var _n_params
: List[AParam] = new List[AParam]
535 readable writable var _n_type
: nullable AType = null
536 readable writable var _n_closure_decls
: List[AClosureDecl] = new List[AClosureDecl]
540 readable writable var _n_id
: TId
541 readable writable var _n_type
: nullable AType = null
542 readable writable var _n_dotdotdot
: nullable TDotdotdot = null
546 readable writable var _n_kwwith
: TKwwith
547 readable writable var _n_kwbreak
: nullable TKwbreak = null
548 readable writable var _n_id
: TId
549 readable writable var _n_signature
: ASignature
550 readable writable var _n_expr
: nullable AExpr = null
554 readable writable var _n_kwnullable
: nullable TKwnullable = null
555 readable writable var _n_id
: TClassid
556 readable writable var _n_types
: List[AType] = new List[AType]
560 readable writable var _n_kwlabel
: TKwlabel
561 readable writable var _n_id
: TId
563 class AExpr special Prod end
566 readable writable var _n_expr
: List[AExpr] = new List[AExpr]
570 readable writable var _n_kwvar
: TKwvar
571 readable writable var _n_id
: TId
572 readable writable var _n_type
: nullable AType = null
573 readable writable var _n_assign
: nullable TAssign = null
574 readable writable var _n_expr
: nullable AExpr = null
578 readable writable var _n_kwreturn
: TKwreturn
579 readable writable var _n_expr
: nullable AExpr = null
583 readable writable var _n_label
: nullable ALabel = null
588 readable writable var _n_kwbreak
: TKwbreak
589 readable writable var _n_expr
: nullable AExpr = null
593 readable writable var _n_kwabort
: TKwabort
598 readable writable var _n_kwcontinue
: TKwcontinue
599 readable writable var _n_expr
: nullable AExpr = null
604 readable writable var _n_kwdo
: TKwdo
605 readable writable var _n_block
: nullable AExpr = null
609 readable writable var _n_kwif
: TKwif
610 readable writable var _n_expr
: AExpr
611 readable writable var _n_then
: nullable AExpr = null
612 readable writable var _n_else
: nullable AExpr = null
616 readable writable var _n_kwif
: TKwif
617 readable writable var _n_expr
: AExpr
618 readable writable var _n_kwthen
: TKwthen
619 readable writable var _n_then
: AExpr
620 readable writable var _n_kwelse
: TKwelse
621 readable writable var _n_else
: AExpr
626 readable writable var _n_kwwhile
: TKwwhile
627 readable writable var _n_expr
: AExpr
628 readable writable var _n_kwdo
: TKwdo
629 readable writable var _n_block
: nullable AExpr = null
634 readable writable var _n_kwfor
: TKwfor
635 readable writable var _n_id
: TId
636 readable writable var _n_expr
: AExpr
637 readable writable var _n_kwdo
: TKwdo
638 readable writable var _n_block
: nullable AExpr = null
642 readable writable var _n_kwassert
: TKwassert
643 readable writable var _n_id
: nullable TId = null
644 readable writable var _n_expr
: AExpr
646 class AAssignFormExpr
648 readable writable var _n_assign
: TAssign
649 readable writable var _n_value
: AExpr
651 class AReassignFormExpr
653 readable writable var _n_assign_op
: AAssignOp
654 readable writable var _n_value
: AExpr
658 readable writable var _n_kwonce
: TKwonce
662 readable writable var _n_expr
: AExpr
663 readable writable var _n_closure_defs
: List[AClosureDef] = new List[AClosureDef]
667 readable writable var _n_expr2
: AExpr
674 readable writable var _n_expr
: AExpr
675 readable writable var _n_expr2
: AExpr
679 readable writable var _n_expr
: AExpr
680 readable writable var _n_expr2
: AExpr
684 readable writable var _n_kwnot
: TKwnot
685 readable writable var _n_expr
: AExpr
692 readable writable var _n_expr
: AExpr
693 readable writable var _n_expr2
: AExpr
712 readable writable var _n_expr
: AExpr
713 readable writable var _n_type
: AType
735 readable writable var _n_minus
: TMinus
739 readable writable var _n_kwnew
: TKwnew
740 readable writable var _n_type
: AType
741 readable writable var _n_id
: nullable TId = null
742 readable writable var _n_args
: List[AExpr] = new List[AExpr]
746 readable writable var _n_expr
: AExpr
747 readable writable var _n_id
: TAttrid
750 special AAttrFormExpr
752 class AAttrAssignExpr
753 special AAttrFormExpr
754 special AAssignFormExpr
758 readable writable var _n_id
: TId
759 readable writable var _n_args
: List[AExpr] = new List[AExpr]
761 class AAttrReassignExpr
763 special AAttrFormExpr
764 special AReassignFormExpr
767 special ACallFormExpr
769 class ACallAssignExpr
770 special ACallFormExpr
771 special AAssignFormExpr
773 class ACallReassignExpr
775 special ACallFormExpr
776 special AReassignFormExpr
780 readable writable var _n_qualified
: nullable AQualified = null
781 readable writable var _n_kwsuper
: TKwsuper
782 readable writable var _n_args
: List[AExpr] = new List[AExpr]
786 readable writable var _n_kwinit
: TKwinit
787 readable writable var _n_args
: List[AExpr] = new List[AExpr]
791 readable writable var _n_args
: List[AExpr] = new List[AExpr]
798 special AAssignFormExpr
802 readable writable var _n_id
: TId
804 class ABraReassignExpr
806 special AReassignFormExpr
808 class AClosureCallExpr
810 readable writable var _n_id
: TId
811 readable writable var _n_args
: List[AExpr] = new List[AExpr]
812 readable writable var _n_closure_defs
: List[AClosureDef] = new List[AClosureDef]
819 special AAssignFormExpr
821 class AVarReassignExpr
823 special AReassignFormExpr
827 readable writable var _n_expr
: AExpr
828 readable writable var _n_expr2
: AExpr
838 readable writable var _n_exprs
: List[AExpr] = new List[AExpr]
842 readable writable var _n_kwself
: nullable TKwself
844 class AImplicitSelfExpr
849 readable writable var _n_kwtrue
: TKwtrue
853 readable writable var _n_kwfalse
: TKwfalse
857 readable writable var _n_kwnull
: TKwnull
861 readable writable var _n_number
: TNumber
865 readable writable var _n_float
: TFloat
869 readable writable var _n_char
: TChar
871 class AStringFormExpr
875 special AStringFormExpr
876 readable writable var _n_string
: TString
878 class AStartStringExpr
879 special AStringFormExpr
880 readable writable var _n_string
: TStartString
883 special AStringFormExpr
884 readable writable var _n_string
: TMidString
887 special AStringFormExpr
888 readable writable var _n_string
: TEndString
890 class ASuperstringExpr
892 readable writable var _n_exprs
: List[AExpr] = new List[AExpr]
899 readable writable var _n_expr
: AExpr
903 readable writable var _n_expr
: AExpr
904 readable writable var _n_kwas
: TKwas
905 readable writable var _n_type
: AType
909 readable writable var _n_expr
: AExpr
910 readable writable var _n_kwas
: TKwas
911 readable writable var _n_kwnot
: TKwnot
912 readable writable var _n_kwnull
: TKwnull
915 special AAttrFormExpr
916 readable writable var _n_kwisset
: TKwisset
918 class AAssignOp special Prod end
921 readable writable var _n_pluseq
: TPluseq
925 readable writable var _n_minuseq
: TMinuseq
929 readable writable var _n_kwwith
: TKwwith
930 readable writable var _n_id
: List[TId] = new List[TId]
931 readable writable var _n_kwdo
: TKwdo
932 readable writable var _n_expr
: nullable AExpr = null
936 readable writable var _n_id
: List[TId] = new List[TId]
937 readable writable var _n_classid
: nullable TClassid = null
941 readable writable var _n_comment
: List[TComment] = new List[TComment]
946 readable writable var _n_base
: nullable AModule
947 readable writable var _n_eof
: EOF