Chervil is a toy Lisp interpreter written in Ruby
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

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