2018-06-29 21:46:39 +02:00
|
|
|
module Vool
|
|
|
|
|
|
|
|
class LocalAssignment < Assignment
|
|
|
|
|
2018-07-05 13:02:38 +02:00
|
|
|
def to_mom( compiler )
|
2018-07-09 16:53:56 +02:00
|
|
|
slot_def = compiler.slot_type_for(@name)
|
|
|
|
to = Mom::SlotDefinition.new(:message ,slot_def)
|
2018-07-05 13:02:38 +02:00
|
|
|
from = @value.slot_definition(compiler)
|
|
|
|
return chain_assign( Mom::SlotLoad.new(to,from) , compiler)
|
2018-06-29 21:46:39 +02:00
|
|
|
end
|
2018-07-20 13:16:29 +02:00
|
|
|
|
|
|
|
def chain_assign(assign , compiler)
|
|
|
|
return assign unless @value.is_a?(SendStatement)
|
|
|
|
@value.to_mom(compiler) << assign
|
|
|
|
end
|
2018-06-29 21:46:39 +02:00
|
|
|
end
|
|
|
|
|
|
|
|
end
|