mirror of
https://github.com/Reuh/candran.git
synced 2025-10-27 17:59:30 +00:00
Changed a LOT. Notable changes: * Removed decorators, as they're not that useful, unless rewriting most Lua libraries API. * Added functions parameters default values. * Added Lua 5.3 stuff and building to Lua 5.1. * Remplaced the LuaMinify parser by lua-parser. It now requires some non-Lua dependencies (LPeg) unfortunately, but it's waaaaaay easier to handle. Code should be adaptable to any Metalua-like AST generator anyway. * The generated code now look like shit, and comment are stripped, because the parser ignore them. Oh well. * Changed a few things in the preprocessor environment. * Nobody will read this commit message I guess. If you did, create an issue saying "I love pineapple flavored bread".
26 lines
579 B
Text
26 lines
579 B
Text
local util = {}
|
|
|
|
function util.search(modpath, exts={"can", "lua"})
|
|
for _, ext in ipairs(exts) do
|
|
for path in package.path:gmatch("[^;]+") do
|
|
local fpath = path:gsub("%.lua", "."..ext):gsub("%?", (modpath:gsub("%.", "/")))
|
|
local f = io.open(fpath)
|
|
if f then
|
|
f:close()
|
|
return fpath
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function util.loadenv(str, name, env)
|
|
if _VERSION == "Lua 5.1" then
|
|
local fn, err = loadstring(str, name)
|
|
if not fn then return fn, err end
|
|
return env ~= nil and setfenv(fn, env) or fn
|
|
else
|
|
return load(str, name, nil, env)
|
|
end
|
|
end
|
|
|
|
return util
|