Class: YTLJit::VM::Node::JumpNode

Inherits:
Object
  • Object
show all
Defined in:
lib/ytl/macro.rb

Instance Method Summary collapse

Instance Method Details

#to_ruby(context) ⇒ Object



219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
# File 'lib/ytl/macro.rb', line 219

def to_ruby(context)
  nf = false
  if context.jmp_tab[@jmp_to_node] == nil then
    context.jmp_tab[@jmp_to_node] = context.jmp_tab.size + 1
    nf = true
  end
  pre = context.work_prefix.join('_')
  nestat = context.jmp_tab[@jmp_to_node]
  context.ret_code.last << "#{pre}state = #{nestat}\n"
  valnode = @jmp_to_node.come_from[self]
  if valnode then
    context.ret_code.push ""
    context = valnode.to_ruby(context)
    val = context.ret_code.pop
    context.ret_code.last << "#{pre}value = #{val}\n"
  end
  if nf then
    @jmp_to_node.to_ruby(context)
  else
    context
  end
end