class CodeTools::AST::For

Public Class Methods

new(line, arguments, body) click to toggle source
# File lib/rubinius/code/ast/sends.rb, line 860
def initialize(line, arguments, body)
  @line = line
  @arguments = ForParameters.new line, arguments
  @body = body || NilLiteral.new(line)

  new_local :"$for_args"
end

Public Instance Methods

assign_local_reference(var) click to toggle source
# File lib/rubinius/code/ast/sends.rb, line 885
def assign_local_reference(var)
  unless reference = search_local(var.name)
    reference = new_nested_local var.name
  end

  var.variable = reference
end
defined(g) click to toggle source
# File lib/rubinius/code/ast/sends.rb, line 893
def defined(g)
  g.push_literal "expression"
end
nest_scope(scope) click to toggle source
# File lib/rubinius/code/ast/sends.rb, line 868
def nest_scope(scope)
  scope.parent = self
end
new_nested_local(name) click to toggle source
# File lib/rubinius/code/ast/sends.rb, line 879
def new_nested_local(name)
  reference = @parent.new_nested_local name
  reference.depth += 1
  reference
end
search_local(name) click to toggle source
# File lib/rubinius/code/ast/sends.rb, line 872
def search_local(name)
  if reference = @parent.search_local(name)
    reference.depth += 1
    reference
  end
end
sexp_name() click to toggle source
# File lib/rubinius/code/ast/sends.rb, line 897
def sexp_name
  :for
end