Chervil is a toy Lisp interpreter written in Ruby
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

chervil 464B

12345678910111213141516171819202122
  1. #!/usr/bin/env ruby
  2. require "chervil"
  3. require "readline"
  4. def repl(env)
  5. begin
  6. while line = Readline.readline("> ", true)
  7. break if line == "(exit)"
  8. lexer = Chervil::Lexer.new(line)
  9. tree = Chervil::Parser.new(lexer).parse
  10. results = Chervil::Interpreter.new(tree, env).interpret
  11. results.each { |result| puts result unless result.nil? }
  12. end
  13. rescue Interrupt
  14. puts
  15. repl(env)
  16. end
  17. end
  18. env = Chervil::Env.new
  19. repl(env)