var iself = new IRegister(get_type)
var iselfa = [iself]
var iroutine = new IRoutine(new Array[IRegister], iself)
- var icb = new ICodeBuilder(module, iroutine, null)
+ var icb = new ICodeBuilder(module, iroutine)
var obj = new INative("OBJ2VAL(obj)", null)
obj.result = iself
icb.stmt(obj)
var iself = new IRegister(get_type)
var iselfa = [iself]
var iroutine = new IRoutine(iselfa, null)
- var icb = new ICodeBuilder(module, iroutine, null)
+ var icb = new ICodeBuilder(module, iroutine)
for g in global_properties do
var p = self[g]
var t = p.signature.return_type
for i in [0..p.signature.arity[ do iparams.add(new IRegister(p.signature[i]))
var iroutine = new IRoutine(iparams, iself)
iroutine.location = p.iroutine.location
- var icb = new ICodeBuilder(module, iroutine, p)
+ var icb = new ICodeBuilder(module, iroutine)
var inew = new INative("NEW_{name}()", null)
inew.result = iself
# The current sequence of icodes
readable writable var _seq: ISeq
- # The method associated to the iroutine (if any)
- readable var _method: nullable MMMethod
-
- init(module: MMModule, r: IRoutine, m: nullable MMMethod)
+ init(module: MMModule, r: IRoutine)
do
_module = module
_current_location = r.location
_iroutine = r
_seq = r.body
- _method = m
end
# New ICodes are set to this location
# Register where a functionnal nit return must store its value
readable writable var _return_value: nullable IRegister
+ # The method associated to the iroutine (if any)
+ readable var _method: nullable MMMethod
+
init(visitor: AbsSyntaxVisitor, r: IRoutine, m: nullable MMMethod)
do
- super(visitor.module, r, m)
+ super(visitor.module, r)
_visitor = visitor
_return_seq = r.body
_return_value = r.result
+ _method = m
end
# Insert implicit super init calls