A toy dynamic programming language written in Ruby
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

environment.rb 391B

1234567891011121314151617181920212223
  1. class Environment
  2. attr_reader :data
  3. def initialize(parent = nil)
  4. @data = Hash.new
  5. CORE.each { |k, v| @data[k.to_s] = v }
  6. parent.data.each { |k, v| @data[k] = v } unless parent.nil?
  7. end
  8. def get(name)
  9. if @data.has_key?(name)
  10. @data[name]
  11. else
  12. raise "Undefined variable #{name}"
  13. end
  14. end
  15. def set(name, value)
  16. @data[name] = value
  17. end
  18. end