A toy dynamic programming language written in Ruby
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

for_loop.rb 543B

1234567891011121314151617181920212223
  1. class AST::ForLoop
  2. attr_reader :iterator, :iterable, :block
  3. def initialize(iterator, iterable, block)
  4. @iterator = iterator
  5. @iterable = iterable
  6. @block = block
  7. end
  8. def ==(other)
  9. other.is_a?(AST::ForLoop) && other.iterator == @iterator &&
  10. other.iterable == @iterable &&
  11. other.block == @block
  12. end
  13. def execute(env)
  14. @iterable.execute(env).each do |i|
  15. _env = Environment.new
  16. _env.set(@iterator.name, i)
  17. @block.statements.each { |statement| statement.execute(_env) }
  18. end
  19. end
  20. end