12345678910111213141516171819202122232425262728 |
- module Chervil
- class Repl
- def initialize
- @env = Env.new
- end
-
- def run
- begin
- while line = Readline.readline("> ", true)
- break if line == "(exit)"
- lexer = Lexer.new(line)
- tree = Parser.new(lexer).parse
-
- if tree.is_a? Error
- puts tree
- next
- end
-
- results = Interpreter.new(tree, @env).interpret
- results.each { |result| puts result unless result.nil? }
- end
- rescue Interrupt
- puts
- repl(@env)
- end
- end
- end
- end
|