module Chervil RSpec.describe Interpreter do def interpret(source, env) lexer = Lexer.new(source) tree = Parser.new(lexer).parse Interpreter.new(tree, env).interpret end it 'interprets a definition and variable usage' do env = Env.new interpret('(define x 5)', env) expect(env.get("x")).to eq(AST::Number.new(5.0)) expect(interpret('x', env).first).to eq(5.0) end end end