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.

assignment.rb 405B

1234567891011121314151617181920
  1. class AST::Assignment
  2. attr_reader :name, :value
  3. def initialize(name, value)
  4. @name = name
  5. @value = value
  6. end
  7. def ==(other)
  8. other.is_a?(AST::Assignment) && other.name == @name && other.value == @value
  9. end
  10. def execute(env)
  11. if env.get(@name.name)
  12. env.set(@name.name, @value)
  13. else
  14. raise "Invalid assignment to undeclared variable #{@name.name}"
  15. end
  16. end
  17. end