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.

repl.rb 568B

12345678910111213141516171819202122232425262728
  1. module Chervil
  2. class Repl
  3. def initialize
  4. @env = Env.new
  5. end
  6. def run
  7. begin
  8. while line = Readline.readline("> ", true)
  9. break if line == "(exit)"
  10. lexer = Lexer.new(line)
  11. tree = Parser.new(lexer).parse
  12. if tree.is_a? Error
  13. puts tree
  14. next
  15. end
  16. results = Interpreter.new(tree, @env).interpret
  17. results.each { |result| puts result unless result.nil? }
  18. end
  19. rescue Interrupt
  20. puts
  21. repl(@env)
  22. end
  23. end
  24. end
  25. end