bin/tml in turmali-0.0.5 vs bin/tml in turmali-0.0.6

- old
+ new

@@ -1,21 +1,29 @@ #!/usr/bin/env ruby require "bundler/setup" require "turmali" require "readline" +require "racc/parser" +stty_save = %x`stty -g`.chomp +trap("INT") { system "stty", stty_save; exit } + interpreter = Interpreter.new if file = ARGV.first interpreter.eval File.read(file) else puts "Turmali (#{Turmali::VERSION}) REPL, Type 'quit' or 'exit' to exit" - loop do - line = Readline::readline(">> ") - exit if line == 'quit' - exit if line == 'exit' - Readline::HISTORY.push(line) - value = interpreter.eval(line) - puts "=> #{value.ruby_value.inspect}" - end -end \ No newline at end of file + begin + while line = Readline::readline("tml >> ") + exit if line == 'quit' + exit if line == 'exit' + Readline::HISTORY.push(line) + value = interpreter.eval(line) + puts "=> #{value.ruby_value.inspect}" + end + rescue Racc::ParseError => e + puts e.inspect + retry + end +end