class CodeTools::AST::Break
Attributes
value[RW]
Public Class Methods
new(line, expr)
click to toggle source
# File lib/rubinius/code/ast/control_flow.rb, line 541 def initialize(line, expr) @line = line @value = expr || NilLiteral.new(line) end
Public Instance Methods
block=(node)
click to toggle source
# File lib/rubinius/code/ast/control_flow.rb, line 546 def block=(node) @value.block = node if @value end
bytecode(g)
click to toggle source
# File lib/rubinius/code/ast/control_flow.rb, line 556 def bytecode(g) pos(g) g.pop if g.state.top_level_ensure? @value.bytecode(g) if g.break g.goto g.break elsif g.state.block? g.raise_break else g.pop jump_error g, :break end g.push_tagged_nil 0 if g.state.top_level_ensure? end
defined(g)
click to toggle source
# File lib/rubinius/code/ast/control_flow.rb, line 575 def defined(g) g.push_literal "expression" end
jump_error(g, name)
click to toggle source
# File lib/rubinius/code/ast/control_flow.rb, line 550 def jump_error(g, name) g.push_rubinius g.push_literal name g.send :jump_error, 1 end
sexp_name()
click to toggle source
# File lib/rubinius/code/ast/control_flow.rb, line 579 def sexp_name :break end
to_sexp()
click to toggle source
# File lib/rubinius/code/ast/control_flow.rb, line 583 def to_sexp sexp = [sexp_name] sexp << @value.to_sexp if @value sexp end