class Atomy::Code::Pattern::Wildcard

Public Class Methods

new(name = nil, set = false) click to toggle source
# File lib/atomy/code/pattern/wildcard.rb, line 8
def initialize(name = nil, set = false)
  @name = name
  @set = set
end

Public Instance Methods

assign(gen) click to toggle source
# File lib/atomy/code/pattern/wildcard.rb, line 21
def assign(gen)
  assignment_local(gen, @name, @set).set_bytecode(gen)
end
bytecode(gen, mod) click to toggle source
# File lib/atomy/code/pattern/wildcard.rb, line 13
def bytecode(gen, mod)
  gen.push_cpath_top
  gen.find_const(:Atomy)
  gen.find_const(:Pattern)
  gen.find_const(:Wildcard)
  gen.send(:new, 0)
end

Private Instance Methods

assignment_local(gen, name, set = false) click to toggle source
# File lib/atomy/code/pattern/wildcard.rb, line 27
def assignment_local(gen, name, set = false)
  var = gen.state.scope.search_local(name)

  if var && (set || var.depth == 0)
    var
  else
    gen.state.scope.new_local(name).nested_reference
  end
end