Module: Duby::Compiler::JavaSource::Redoable

Included in:
ComplexWhileLoop, RedoableForLoop
Defined in:
lib/duby/jvm/source_generator/loops.rb

Instance Method Summary collapse

Instance Method Details

#breakObject



68
69
70
# File 'lib/duby/jvm/source_generator/loops.rb', line 68

def break
  compiler.method.puts "break #{@outer};"
end

#compile_with_redo(block) ⇒ Object



58
59
60
61
62
63
64
65
66
# File 'lib/duby/jvm/source_generator/loops.rb', line 58

def compile_with_redo(block)
  @redo = compiler.method.tmp(JVMTypes::Boolean)
  compiler.method.puts "#{@inner}:"
  compiler.method.block "do" do
    compiler.method.puts "#{@redo} = false;"
    block.compile(compiler, false)
  end
  compiler.method.puts "while (#{@redo});"
end

#nextObject



72
73
74
# File 'lib/duby/jvm/source_generator/loops.rb', line 72

def next
  compiler.method.puts "break #{@inner};"
end

#redoObject



76
77
78
79
# File 'lib/duby/jvm/source_generator/loops.rb', line 76

def redo
  compiler.method.puts "#{@redo} = true;"
  compiler.method.puts "continue #{@inner};"
end