Chervil is a toy Lisp interpreter written in Ruby
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

chervil 542B

12345678910111213141516171819202122232425262728
  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. if tree.is_a? Chervil::Error
  11. puts tree
  12. next
  13. end
  14. results = Chervil::Interpreter.new(tree, env).interpret
  15. results.each { |result| puts result unless result.nil? }
  16. end
  17. rescue Interrupt
  18. puts
  19. repl(env)
  20. end
  21. end
  22. env = Chervil::Env.new
  23. repl(env)