repl.lua
Branches > main > d60d02e > files / org / faddle / repl.lua
local p = require("org.faddle.lang.print")
local EVAL = require("org.faddle.lang.eval")
local eval = EVAL.eval
local create_env = EVAL.create_env
local read = require("org.faddle.lang.read").read
local function repl()
print("Faddle, baby")
local env = create_env("user")
while true do
io.write("> ")
io.flush()
local s = io.read()
local ok_read, forms = pcall(read, s)
if not ok_read then
print("Syntax error: " .. forms)
else
for _, form in ipairs(forms) do
local ok, res = pcall(eval, form, env)
if ok then
print(p.print(res))
else
print("Error: " .. res)
end
end
end
end
end
return {repl = repl}