Mercurial Hosting > luan
view core/src/luan/init.luan @ 178:2c08e7e27a70
minor - rename web fn from "page" to "service"
git-svn-id: https://luan-java.googlecode.com/svn/trunk@179 21e917c8-12df-6dd8-5cb6-c86387c605b9
author | fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9> |
---|---|
date | Mon, 23 Jun 2014 20:41:08 +0000 |
parents | 4edbf3204ca6 |
children | bf9c7111a371 |
line wrap: on
line source
function Package.global(module,fn_name) local function fn(...) return module[fn_name](...) end _G[fn_name] = fn return fn end local require = Package.global(Package,"require") function Package.global_import(name) local mod = require(name) _G[name] = mod return mod end local Basic = Package.global_import("Basic","luan.lib.BasicLib.LOADER") Package.global(Basic,"assert") Package.global(Basic,"assert_boolean") Package.global(Basic,"assert_nil") Package.global(Basic,"assert_number") Package.global(Basic,"assert_string") Package.global(Basic,"assert_table") local do_file = Package.global(Basic,"do_file") Package.global(Basic,"error") Package.global(Basic,"get_metatable") Package.global(Basic,"ipairs") local load = Package.global(Basic,"load") Package.global(Basic,"load_file") Package.global(Basic,"pairs") Package.global(Basic,"range") Package.global(Basic,"raw_equal") Package.global(Basic,"raw_get") Package.global(Basic,"raw_len") Package.global(Basic,"raw_set") Package.global(Basic,"repr") Package.global(Basic,"set_metatable") Package.global(Basic,"to_number") local to_string = Package.global(Basic,"to_string") Package.global(Basic,"type") do_file "java:luan/version.luan" local String = Package.global_import("String","luan.lib.StringLib.LOADER") -- improved global_import function Package.global_import(name) local short = name.match("\.([^.]+)$") or name local mod = require(name) _G[short] = mod return mod end local Table = Package.global_import("Table","luan.lib.TableLib.LOADER") local Io = Package.global_import("Io","luan.lib.IoLib.LOADER") Package.global_import("Math","luan.lib.MathLib.LOADER") Package.global_import("Html","luan.lib.HtmlLib.LOADER") Package.global_import("Thread","luan.lib.ThreadLib.LOADER") Package.global_import("Binary","luan.lib.BinaryLib.LOADER") function Io.print_to(out,...) local list = {} for _,v in Basic.values(...) do list[#list+1] = 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 Basic.print(...) Io.print_to(Io.stdout,...) end local print = Package.global(Basic,"print") local Debug = {} Package.loaded.Debug = Debug _G.Debug = Debug function Debug.print_if_something(...) if Table.pack(...).n > 0 then print(...) end end function Debug.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 local fn = load(line,"stdin",env,true) Debug.print_if_something( fn() ) catch e do print(e) end end end