class Flea::Environment

Attributes

parent[RW]
table[RW]

Public Class Methods

new(parent = nil) click to toggle source
# File lib/flea/environment.rb, line 7
def initialize(parent = nil)
  @parent = parent
  @table = {}
  add_globals if @parent.nil?
end

Public Instance Methods

define(name, value) click to toggle source
# File lib/flea/environment.rb, line 27
def define(name, value)
  @table[name] = value
end
find(name) click to toggle source
# File lib/flea/environment.rb, line 20
def find(name)
  return @table[name] if @table.key?(name)
  return nil if @parent.nil?

  @parent.find(name)
end
has_variable?(name) click to toggle source
# File lib/flea/environment.rb, line 13
def has_variable?(name)
  return true if @table.key?(name)
  return false if @parent.nil?

  @parent.has_variable?(name)
end

Private Instance Methods

add_globals() click to toggle source
# File lib/flea/environment.rb, line 33
def add_globals
  @table.merge!(
    '#t': true,
    '#f': false
  )
end