diff options
Diffstat (limited to '3rdparty/luv/examples/repl.lua')
-rw-r--r-- | 3rdparty/luv/examples/repl.lua | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/3rdparty/luv/examples/repl.lua b/3rdparty/luv/examples/repl.lua deleted file mode 100644 index 92be0f17d87..00000000000 --- a/3rdparty/luv/examples/repl.lua +++ /dev/null @@ -1,89 +0,0 @@ -local uv = require('luv') -local utils = require('lib/utils') - -if uv.guess_handle(0) ~= "tty" or - uv.guess_handle(1) ~= "tty" then - error "stdio must be a tty" -end -local stdin = uv.new_tty(0, true) -local stdout = require('lib/utils').stdout - -local debug = require('debug') -local c = utils.color - -local function gatherResults(success, ...) - local n = select('#', ...) - return success, { n = n, ... } -end - -local function printResults(results) - for i = 1, results.n do - results[i] = utils.dump(results[i]) - end - print(table.concat(results, '\t')) -end - -local buffer = '' - -local function evaluateLine(line) - if line == "<3\n" then - print("I " .. c("Bred") .. "♥" .. c() .. " you too!") - return '>' - end - local chunk = buffer .. line - local f, err = loadstring('return ' .. chunk, 'REPL') -- first we prefix return - - if not f then - f, err = loadstring(chunk, 'REPL') -- try again without return - end - - if f then - buffer = '' - local success, results = gatherResults(xpcall(f, debug.traceback)) - - if success then - -- successful call - if results.n > 0 then - printResults(results) - end - else - -- error - print(results[1]) - end - else - - if err:match "'<eof>'$" then - -- Lua expects some more input; stow it away for next time - buffer = chunk .. '\n' - return '>>' - else - print(err) - buffer = '' - end - end - - return '>' -end - -local function displayPrompt(prompt) - uv.write(stdout, prompt .. ' ') -end - -local function onread(err, line) - if err then error(err) end - if line then - local prompt = evaluateLine(line) - displayPrompt(prompt) - else - uv.close(stdin) - end -end - -coroutine.wrap(function() - displayPrompt '>' - uv.read_start(stdin, onread) -end)() - -uv.run() - -print("") |