Class: YTLJit::VM::Node::MethodTopNode

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

Instance Method Summary collapse

Instance Method Details

#to_ruby(context) ⇒ Object



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/ytl/macro.rb', line 34

def to_ruby(context)
#          context.ret_code.last << "{ #{@name} "
  context.ret_code.last << "{ "
  context.ret_code.push ""
  context = @body.to_ruby(context)
  args = context.ret_code.pop
  pre = context.work_prefix.join('_')
  if args != "" then
    context.ret_code.last << "|#{args}|"
  end
  context.ret_code.last << "#{pre}state = 0\n"
  context.ret_code.last << "#{pre}value = nil\n"
  context.ret_code.last << "evalstr = []\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, evalstr]\n"
  context.ret_code.last << "}\n"
  context
end