view core/src/luan/modules/Debug.luan @ 503:92c3d22745b8

make _ENV optional
author Franklin Schmidt <fschmidt@gmail.com>
date Wed, 20 May 2015 23:24:46 -0600
parents db37d6aee4db
children
line wrap: on
line source

local Luan = require "luan:Luan"
local load = Luan.load
local try = Luan.try
local Io = require "luan:Io"
local print = Io.print
local Table = require "luan:Table"

local M = {}

function M.print_if_something(...)
	if Table.pack(...).n > 0 then
		print(...)
	end
end

function M.debug(prompt)
	prompt = prompt or "luan_debug> "
	local function console()
		return Io.read_console_line(prompt)
	end
	local env = {}
	for line in console do
		try {
			function()
				local fn = load(line,"stdin",env,true)
				M.print_if_something( fn() )
			end;
			catch = function(e)
				print(e)
			end;
		}
	end
end

return M