view src/luan/lib/init.luan @ 141:c2ee8a717b73

move loading of standard modules to luan git-svn-id: https://luan-java.googlecode.com/svn/trunk@142 21e917c8-12df-6dd8-5cb6-c86387c605b9
author fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
date Fri, 13 Jun 2014 16:37:49 +0000
parents 3b384dc5ca91
children 2e92f0a6fcac
line wrap: on
line source

function Package.preload_java(name,path)
	Package.preload[name] = Package.get_loader(path)
end

function Package.load_java(name,path)
	Package.preload_java(name,path)
	local mod = require(name)
	_G[name] = mod
	return mod
end

local Basic = Package.load_java("Basic","luan.lib.BasicLib.LOADER")
local String = Package.load_java("String","luan.lib.StringLib.LOADER")
local Table = Package.load_java("Table","luan.lib.TableLib.LOADER")
local Io = Package.load_java("Io","luan.lib.IoLib.LOADER")
Package.load_java("Math","luan.lib.MathLib.LOADER")
Package.load_java("Html","luan.lib.HtmlLib.LOADER")
Package.load_java("Thread","luan.lib.ThreadLib.LOADER")
Package.load_java("Binary","luan.lib.BinaryLib.LOADER")
Package.preload_java("Java","luan.lib.JavaLib.LOADER")
Package.preload_java("Http","luan.lib.HttpLib.LOADER")


function Io.print_to(out,...)
	local list = {}
	for _,v in Basic.values(...) do
		list[#list+1] = _G.to_string(v)
		list[#list+1] = '\t'
	end
	if #list == 0 then
		out.write( '\n' )
	else
		list[#list] = '\n'
		out.write( Table.unpack(list) )
	end
end

function _G.print(...)
	Io.print_to(Io.stdout,...)
end

local Debug = {}
Package.loaded.Debug = Debug
_G.Debug = Debug

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

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