12345678910111213141516171819202122232425262728 |
- #!/usr/bin/env ruby
-
- require "chervil"
- require "readline"
-
- def repl(env)
- begin
- while line = Readline.readline("> ", true)
- break if line == "(exit)"
- lexer = Chervil::Lexer.new(line)
- tree = Chervil::Parser.new(lexer).parse
-
- if tree.is_a? Chervil::Error
- puts tree
- next
- end
-
- results = Chervil::Interpreter.new(tree, env).interpret
- results.each { |result| puts result unless result.nil? }
- end
- rescue Interrupt
- puts
- repl(env)
- end
- end
-
- env = Chervil::Env.new
- repl(env)
|