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 435B

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