# Concrete NIT source module
class MMSrcModule
-special MMModule
+ super MMModule
# A source module can locate AST nodes of related MM entities
# Once a source module AST is no more needed, _nodes is set to null
# See ToolContext::keep_ast property in syntax.nit for details
# Concrete NIT source local classes
class MMSrcLocalClass
-special MMConcreteClass
+ super MMConcreteClass
# The first related AST node (if any)
fun node: nullable AClassdef do return mmmodule.nodes(self).as(nullable AClassdef)
# Concrete NIT source attribute
class MMSrcAttribute
-special MMAttribute
+ super MMAttribute
redef fun node: nullable AAttrPropdef do return mmmodule.nodes(self).as(nullable AAttrPropdef)
init(name: Symbol, cla: MMLocalClass, n: AAttrPropdef)
do
# Concrete NIT source method
class MMSrcMethod
-special MMMethod
+ super MMMethod
redef fun is_intern do return false
redef fun is_abstract do return false
redef fun extern_name do return null
# Concrete NIT source method for an automatic accesor
class MMAttrImplementationMethod
-special MMSrcMethod
+ super MMSrcMethod
redef fun node: nullable AAttrPropdef do return mmmodule.nodes(self).as(nullable AAttrPropdef)
init(name: Symbol, cla: MMLocalClass, n: AAttrPropdef)
do
# Concrete NIT source method for an automatic read accesor
class MMReadImplementationMethod
-special MMAttrImplementationMethod
+ super MMAttrImplementationMethod
init(name: Symbol, cla: MMLocalClass, n: AAttrPropdef)
do
super(name, cla, n)
# Concrete NIT source method for an automatic write accesor
class MMWriteImplementationMethod
-special MMAttrImplementationMethod
+ super MMAttrImplementationMethod
init(name: Symbol, cla: MMLocalClass, n: AAttrPropdef)
do
super(name, cla, n)
# Concrete NIT source method for an explicit method
class MMMethSrcMethod
-special MMSrcMethod
+ super MMSrcMethod
redef readable var _is_init: Bool
redef readable var _is_intern: Bool
redef readable var _is_abstract: Bool
# Concrete NIT source virtual type
class MMSrcTypeProperty
-special MMLocalProperty
-special MMTypeProperty
+ super MMLocalProperty
+ super MMTypeProperty
init(name: Symbol, cla: MMLocalClass, n: ATypePropdef)
do
super(name, cla)
# Concrete NIT implicit constructor
class MMImplicitInit
-special MMMethSrcMethod
+ super MMMethSrcMethod
fun super_init: nullable MMLocalProperty is abstract
redef fun is_init do return true
readable var _unassigned_attributes: Array[MMSrcAttribute]
# Variable declared with 'var'
class VarVariable
-special Variable
+ super Variable
redef fun kind do return once "variable"
init(n: Symbol, d: ANode) do super
end
# Parameter of method (declared in signature)
class ParamVariable
-special Variable
+ super Variable
redef fun kind do return once "parameter"
init(n: Symbol, d: nullable ANode) do super
end
# Automatic variable (like in the 'for' statement)
class AutoVariable
-special Variable
+ super Variable
redef fun kind do return once "automatic variable"
init(n: Symbol, d: ANode) do super
end
# False variable corresponding to closures declared in signatures
# Lives in the same namespace than variables
class ClosureVariable
-special Variable
+ super Variable
redef fun kind do return once "closure"
# The signature of the closure
# Visitor used during the syntax analysis
class AbsSyntaxVisitor
-special Visitor
+ super Visitor
fun get_type_by_name(clsname: Symbol): MMType
do
if not _mmmodule.has_global_class_named(clsname) then _tc.fatal_error(_mmmodule.location, "Missing necessary class: \"{clsname}\"")
end
class AAbsAbsSendExpr
-special AExpr
+ super AExpr
# The signature of the called property (require is_typed)
fun prop_signature: MMSignature is abstract
end
class AAbsSendExpr
-special AAbsAbsSendExpr
+ super AAbsAbsSendExpr
# The invoked method (require is_typed)
fun prop: MMMethod is abstract
end
class ASuperInitCall
-special AAbsSendExpr
+ super AAbsSendExpr
end
redef class ASuperExpr
-special ASuperInitCall
+ super ASuperInitCall
fun init_in_superclass: nullable MMMethod is abstract
end
redef class ANewExpr
-special AAbsSendExpr
+ super AAbsSendExpr
end
redef class ASendExpr
-special ASuperInitCall
+ super ASuperInitCall
# Closure definitions
fun closure_defs: nullable Array[AClosureDef] is abstract
end
end
class ASendReassignExpr
-special ASendExpr
-special AReassignFormExpr
+ super ASendExpr
+ super AReassignFormExpr
# The invoked method used to read (require is_typed)
# prop is the method used to write
fun read_prop: MMMethod is abstract
end
redef class ACallReassignExpr
-special ASendReassignExpr
+ super ASendReassignExpr
end
redef class ABraReassignExpr
-special ASendReassignExpr
+ super ASendReassignExpr
end
redef class AAttrFormExpr
end
redef class AClosureCallExpr
-special AAbsAbsSendExpr
+ super AAbsAbsSendExpr
# Associated closure variable
fun variable: ClosureVariable is abstract
end