44932627a0de9ad032c88f3c13e70bd12de4431f
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 readable var _location
: nullable Location
29 # Ancestor of all tokens
34 # Ancestor of all productions
37 fun location
=(loc
: nullable Location) do _location
= loc
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_kwattr
: nullable TKwattr = null
406 readable writable var _n_kwvar
: nullable TKwvar = null
407 readable writable var _n_id
: TAttrid
408 readable writable var _n_type
: nullable AType = null
409 readable writable var _n_readable
: nullable AAble = null
410 readable writable var _n_writable
: nullable AAble = null
411 readable writable var _n_expr
: nullable AExpr = null
415 readable writable var _n_kwredef
: nullable TKwredef = null
416 readable writable var _n_visibility
: nullable AVisibility
417 readable writable var _n_methid
: nullable AMethid = null
418 readable writable var _n_signature
: nullable ASignature
420 class ADeferredMethPropdef
422 readable writable var _n_kwmeth
: TKwmeth
424 class AInternMethPropdef
426 readable writable var _n_kwmeth
: TKwmeth
428 class AExternMethPropdef
430 readable writable var _n_kwmeth
: TKwmeth
431 readable writable var _n_extern
: nullable TString = null
433 class AConcreteMethPropdef
435 readable writable var _n_kwmeth
: nullable TKwmeth
436 readable writable var _n_block
: nullable AExpr = null
438 class AConcreteInitPropdef
439 special AConcreteMethPropdef
440 readable writable var _n_kwinit
: TKwinit
442 class AMainMethPropdef
443 special AConcreteMethPropdef
447 readable writable var _n_kwredef
: nullable TKwredef = null
448 readable writable var _n_visibility
: AVisibility
449 readable writable var _n_kwtype
: TKwtype
450 readable writable var _n_id
: TClassid
451 readable writable var _n_type
: AType
453 class AAble special Prod
454 readable writable var _n_kwredef
: nullable TKwredef = null
458 readable writable var _n_kwreadable
: TKwreadable
462 readable writable var _n_kwwritable
: TKwwritable
464 class AMethid special Prod end
467 readable writable var _n_id
: TId
471 readable writable var _n_plus
: TPlus
475 readable writable var _n_minus
: TMinus
479 readable writable var _n_star
: TStar
483 readable writable var _n_slash
: TSlash
487 readable writable var _n_percent
: TPercent
491 readable writable var _n_eq
: TEq
495 readable writable var _n_ne
: TNe
499 readable writable var _n_le
: TLe
503 readable writable var _n_ge
: TGe
507 readable writable var _n_lt
: TLt
511 readable writable var _n_gt
: TGt
515 readable writable var _n_obra
: TObra
516 readable writable var _n_cbra
: TCbra
518 class AStarshipMethid
520 readable writable var _n_starship
: TStarship
524 readable writable var _n_id
: TId
525 readable writable var _n_assign
: TAssign
527 class ABraassignMethid
529 readable writable var _n_obra
: TObra
530 readable writable var _n_cbra
: TCbra
531 readable writable var _n_assign
: TAssign
535 readable writable var _n_params
: List[AParam] = new List[AParam]
536 readable writable var _n_type
: nullable AType = null
537 readable writable var _n_closure_decls
: List[AClosureDecl] = new List[AClosureDecl]
541 readable writable var _n_id
: TId
542 readable writable var _n_type
: nullable AType = null
543 readable writable var _n_dotdotdot
: nullable TDotdotdot = null
547 readable writable var _n_kwwith
: TKwwith
548 readable writable var _n_kwbreak
: nullable TKwbreak = null
549 readable writable var _n_id
: TId
550 readable writable var _n_signature
: ASignature
551 readable writable var _n_expr
: nullable AExpr = null
555 readable writable var _n_kwnullable
: nullable TKwnullable = null
556 readable writable var _n_id
: TClassid
557 readable writable var _n_types
: List[AType] = new List[AType]
561 readable writable var _n_kwlabel
: TKwlabel
562 readable writable var _n_id
: TId
564 class AExpr special Prod end
567 readable writable var _n_expr
: List[AExpr] = new List[AExpr]
571 readable writable var _n_kwvar
: TKwvar
572 readable writable var _n_id
: TId
573 readable writable var _n_type
: nullable AType = null
574 readable writable var _n_assign
: nullable TAssign = null
575 readable writable var _n_expr
: nullable AExpr = null
579 readable writable var _n_kwreturn
: TKwreturn
580 readable writable var _n_expr
: nullable AExpr = null
584 readable writable var _n_label
: nullable ALabel = null
589 readable writable var _n_kwbreak
: TKwbreak
590 readable writable var _n_expr
: nullable AExpr = null
594 readable writable var _n_kwabort
: TKwabort
599 readable writable var _n_kwcontinue
: TKwcontinue
600 readable writable var _n_expr
: nullable AExpr = null
605 readable writable var _n_kwdo
: TKwdo
606 readable writable var _n_block
: nullable AExpr = null
610 readable writable var _n_kwif
: TKwif
611 readable writable var _n_expr
: AExpr
612 readable writable var _n_then
: nullable AExpr = null
613 readable writable var _n_else
: nullable AExpr = null
617 readable writable var _n_kwif
: TKwif
618 readable writable var _n_expr
: AExpr
619 readable writable var _n_kwthen
: TKwthen
620 readable writable var _n_then
: AExpr
621 readable writable var _n_kwelse
: TKwelse
622 readable writable var _n_else
: AExpr
627 readable writable var _n_kwwhile
: TKwwhile
628 readable writable var _n_expr
: AExpr
629 readable writable var _n_kwdo
: TKwdo
630 readable writable var _n_block
: nullable AExpr = null
635 readable writable var _n_kwfor
: TKwfor
636 readable writable var _n_id
: TId
637 readable writable var _n_expr
: AExpr
638 readable writable var _n_kwdo
: TKwdo
639 readable writable var _n_block
: nullable AExpr = null
643 readable writable var _n_kwassert
: TKwassert
644 readable writable var _n_id
: nullable TId = null
645 readable writable var _n_expr
: AExpr
647 class AAssignFormExpr
649 readable writable var _n_assign
: TAssign
650 readable writable var _n_value
: AExpr
652 class AReassignFormExpr
654 readable writable var _n_assign_op
: AAssignOp
655 readable writable var _n_value
: AExpr
659 readable writable var _n_kwonce
: TKwonce
663 readable writable var _n_expr
: AExpr
664 readable writable var _n_closure_defs
: List[AClosureDef] = new List[AClosureDef]
668 readable writable var _n_expr2
: AExpr
675 readable writable var _n_expr
: AExpr
676 readable writable var _n_expr2
: AExpr
680 readable writable var _n_expr
: AExpr
681 readable writable var _n_expr2
: AExpr
685 readable writable var _n_kwnot
: TKwnot
686 readable writable var _n_expr
: AExpr
693 readable writable var _n_expr
: AExpr
694 readable writable var _n_expr2
: AExpr
713 readable writable var _n_expr
: AExpr
714 readable writable var _n_type
: AType
736 readable writable var _n_minus
: TMinus
740 readable writable var _n_kwnew
: TKwnew
741 readable writable var _n_type
: AType
742 readable writable var _n_id
: nullable TId = null
743 readable writable var _n_args
: List[AExpr] = new List[AExpr]
747 readable writable var _n_expr
: AExpr
748 readable writable var _n_id
: TAttrid
751 special AAttrFormExpr
753 class AAttrAssignExpr
754 special AAttrFormExpr
755 special AAssignFormExpr
759 readable writable var _n_id
: TId
760 readable writable var _n_args
: List[AExpr] = new List[AExpr]
762 class AAttrReassignExpr
764 special AAttrFormExpr
765 special AReassignFormExpr
768 special ACallFormExpr
770 class ACallAssignExpr
771 special ACallFormExpr
772 special AAssignFormExpr
774 class ACallReassignExpr
776 special ACallFormExpr
777 special AReassignFormExpr
781 readable writable var _n_qualified
: nullable AQualified = null
782 readable writable var _n_kwsuper
: TKwsuper
783 readable writable var _n_args
: List[AExpr] = new List[AExpr]
787 readable writable var _n_kwinit
: TKwinit
788 readable writable var _n_args
: List[AExpr] = new List[AExpr]
792 readable writable var _n_args
: List[AExpr] = new List[AExpr]
799 special AAssignFormExpr
803 readable writable var _n_id
: TId
805 class ABraReassignExpr
807 special AReassignFormExpr
809 class AClosureCallExpr
811 readable writable var _n_id
: TId
812 readable writable var _n_args
: List[AExpr] = new List[AExpr]
813 readable writable var _n_closure_defs
: List[AClosureDef] = new List[AClosureDef]
820 special AAssignFormExpr
822 class AVarReassignExpr
824 special AReassignFormExpr
828 readable writable var _n_expr
: AExpr
829 readable writable var _n_expr2
: AExpr
839 readable writable var _n_exprs
: List[AExpr] = new List[AExpr]
843 readable writable var _n_kwself
: nullable TKwself
845 class AImplicitSelfExpr
850 readable writable var _n_kwtrue
: TKwtrue
854 readable writable var _n_kwfalse
: TKwfalse
858 readable writable var _n_kwnull
: TKwnull
862 readable writable var _n_number
: TNumber
866 readable writable var _n_float
: TFloat
870 readable writable var _n_char
: TChar
872 class AStringFormExpr
876 special AStringFormExpr
877 readable writable var _n_string
: TString
879 class AStartStringExpr
880 special AStringFormExpr
881 readable writable var _n_string
: TStartString
884 special AStringFormExpr
885 readable writable var _n_string
: TMidString
888 special AStringFormExpr
889 readable writable var _n_string
: TEndString
891 class ASuperstringExpr
893 readable writable var _n_exprs
: List[AExpr] = new List[AExpr]
900 readable writable var _n_expr
: AExpr
904 readable writable var _n_expr
: AExpr
905 readable writable var _n_kwas
: TKwas
906 readable writable var _n_type
: AType
910 readable writable var _n_expr
: AExpr
911 readable writable var _n_kwas
: TKwas
912 readable writable var _n_kwnot
: TKwnot
913 readable writable var _n_kwnull
: TKwnull
916 special AAttrFormExpr
917 readable writable var _n_kwisset
: TKwisset
919 class AAssignOp special Prod end
922 readable writable var _n_pluseq
: TPluseq
926 readable writable var _n_minuseq
: TMinuseq
930 readable writable var _n_kwwith
: TKwwith
931 readable writable var _n_id
: List[TId] = new List[TId]
932 readable writable var _n_kwdo
: TKwdo
933 readable writable var _n_expr
: nullable AExpr = null
937 readable writable var _n_id
: List[TId] = new List[TId]
938 readable writable var _n_classid
: nullable TClassid = null
942 readable writable var _n_comment
: List[TComment] = new List[TComment]
947 readable writable var _n_base
: nullable AModule
948 readable writable var _n_eof
: EOF