Chervil is a toy Lisp interpreter written in Ruby
Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

interpreter_spec.rb 435B

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(5.0)
  13. end
  14. end
  15. end