Class: YTLJit::VM::Node::BlockTopNode

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

Instance Method Summary collapse

Instance Method Details

#to_ruby(context) ⇒ Object



60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# File 'lib/ytl/macro.rb', line 60

def to_ruby(context)
  context.ret_code.last << "{ "
  context.ret_code.push ""
  context = @body.to_ruby(context)
  args = context.ret_code.pop
  if args != "" then
    context.ret_code.last << "| #{args} | \n"
  end
  pre = context.work_prefix.join('_')
  context.ret_code.last << "#{pre}state = 0\n"
  context.ret_code.last << "#{pre}value = nil\n"
  context.ret_code.last << "while true\n"
  #          context.ret_code.last << "p #{pre}state\n"
  context.ret_code.last << "case #{pre}state\n"
  context.ret_code.last << "when 0\n"
  context = @body.body.to_ruby(context)
  context.ret_code.last << "end\n"
  context.ret_code.last << "end\n"
  context.ret_code.last << "}\n"
  context
end