Chervil is a toy Lisp interpreter written in Ruby
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

interpreter_spec.rb 452B

12345678910111213141516
  1. module Chervil
  2. RSpec.describe Interpreter do
  3. def interpret(source, env)
  4. lexer = Lexer.new(source)
  5. tree = Parser.new(lexer).parse
  6. Interpreter.new(tree, env).interpret
  7. end
  8. it 'interprets a definition and variable usage' do
  9. env = Env.new
  10. interpret('(define x 5)', env)
  11. expect(env.get("x")).to eq(AST::Number.new(5.0))
  12. expect(interpret('x', env).first).to eq(AST::Number.new(5.0))
  13. end
  14. end
  15. end