RSpec.describe AST::ForLoop do it 'evaluates' do expect { AST::ForLoop.new( AST::Identifier.new('x'), AST::Array.new( [ AST::Number.new(1.0), AST::Number.new(2.0), AST::Number.new(3.0), ] ), AST::FunctionCall.new( AST::Identifier.new('print'), [ AST::Identifier.new('x') ] ) ).execute(Environment.new) }.to output("1.0\n2.0\n3.0\n").to_stdout end end