rufus-lua-win 5.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +17 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +69 -0
- data/Rakefile +1 -0
- data/lib/rufus/lua/win.rb +18 -0
- data/lib/rufus/lua/win/version.rb +7 -0
- data/rufus-lua-win.gemspec +23 -0
- data/vendor/lua/bin/liblua.dll +0 -0
- data/vendor/lua/lib/lua/LuaXml.lua +119 -0
- data/vendor/lua/lib/lua/alien.lua +250 -0
- data/vendor/lua/lib/lua/alien/core.dll +0 -0
- data/vendor/lua/lib/lua/alien/struct.dll +0 -0
- data/vendor/lua/lib/lua/base.lua +536 -0
- data/vendor/lua/lib/lua/bin.lua +20 -0
- data/vendor/lua/lib/lua/bit.dll +0 -0
- data/vendor/lua/lib/lua/cdlua.dll +0 -0
- data/vendor/lua/lib/lua/cdluacontextplus.dll +0 -0
- data/vendor/lua/lib/lua/cdluagl.dll +0 -0
- data/vendor/lua/lib/lua/cdluaim.dll +0 -0
- data/vendor/lua/lib/lua/cdluapdf.dll +0 -0
- data/vendor/lua/lib/lua/copas.lua +543 -0
- data/vendor/lua/lib/lua/coxpcall.lua +57 -0
- data/vendor/lua/lib/lua/date.lua +745 -0
- data/vendor/lua/lib/lua/debug_ext.lua +84 -0
- data/vendor/lua/lib/lua/debug_init.lua +2 -0
- data/vendor/lua/lib/lua/des56.dll +0 -0
- data/vendor/lua/lib/lua/dist/config.lua +109 -0
- data/vendor/lua/lib/lua/dist/constraints.lua +271 -0
- data/vendor/lua/lib/lua/dist/depends.lua +601 -0
- data/vendor/lua/lib/lua/dist/git.lua +307 -0
- data/vendor/lua/lib/lua/dist/init.lua +278 -0
- data/vendor/lua/lib/lua/dist/manifest.lua +225 -0
- data/vendor/lua/lib/lua/dist/package.lua +583 -0
- data/vendor/lua/lib/lua/dist/sys.lua +367 -0
- data/vendor/lua/lib/lua/dist/utils.lua +130 -0
- data/vendor/lua/lib/lua/ex.dll +0 -0
- data/vendor/lua/lib/lua/fstable.lua +116 -0
- data/vendor/lua/lib/lua/getopt.lua +273 -0
- data/vendor/lua/lib/lua/git.lua +5 -0
- data/vendor/lua/lib/lua/git/core.dll +0 -0
- data/vendor/lua/lib/lua/git/objects.lua +121 -0
- data/vendor/lua/lib/lua/git/pack.lua +316 -0
- data/vendor/lua/lib/lua/git/protocol.lua +188 -0
- data/vendor/lua/lib/lua/git/repo.lua +283 -0
- data/vendor/lua/lib/lua/git/util.lua +233 -0
- data/vendor/lua/lib/lua/gzio.dll +0 -0
- data/vendor/lua/lib/lua/gzip.lua +81 -0
- data/vendor/lua/lib/lua/iconv.dll +0 -0
- data/vendor/lua/lib/lua/imlua.dll +0 -0
- data/vendor/lua/lib/lua/imlua_fftw.dll +0 -0
- data/vendor/lua/lib/lua/imlua_jp2.dll +0 -0
- data/vendor/lua/lib/lua/imlua_process.dll +0 -0
- data/vendor/lua/lib/lua/imlua_process_omp.dll +0 -0
- data/vendor/lua/lib/lua/io_ext.lua +115 -0
- data/vendor/lua/lib/lua/iuplua.dll +0 -0
- data/vendor/lua/lib/lua/iuplua_mglplot.dll +0 -0
- data/vendor/lua/lib/lua/iuplua_pplot.dll +0 -0
- data/vendor/lua/lib/lua/iupluacd.dll +0 -0
- data/vendor/lua/lib/lua/iupluacontrols.dll +0 -0
- data/vendor/lua/lib/lua/iupluagl.dll +0 -0
- data/vendor/lua/lib/lua/iupluaim.dll +0 -0
- data/vendor/lua/lib/lua/iupluaimglib.dll +0 -0
- data/vendor/lua/lib/lua/iupluatuio.dll +0 -0
- data/vendor/lua/lib/lua/lanes-keeper.lua +302 -0
- data/vendor/lua/lib/lua/lanes.lua +591 -0
- data/vendor/lua/lib/lua/lanes/core.dll +0 -0
- data/vendor/lua/lib/lua/lcs.lua +55 -0
- data/vendor/lua/lib/lua/lemock.lua +659 -0
- data/vendor/lua/lib/lua/lfs.dll +0 -0
- data/vendor/lua/lib/lua/list.lua +375 -0
- data/vendor/lua/lib/lua/logging.lua +189 -0
- data/vendor/lua/lib/lua/logging/console.lua +22 -0
- data/vendor/lua/lib/lua/logging/email.lua +44 -0
- data/vendor/lua/lib/lua/logging/file.lua +55 -0
- data/vendor/lua/lib/lua/logging/rolling_file.lua +81 -0
- data/vendor/lua/lib/lua/logging/socket.lua +35 -0
- data/vendor/lua/lib/lua/logging/sql.lua +64 -0
- data/vendor/lua/lib/lua/loop/base.lua +68 -0
- data/vendor/lua/lib/lua/loop/cached.lua +312 -0
- data/vendor/lua/lib/lua/loop/collection/MapWithArrayOfKeys.lua +64 -0
- data/vendor/lua/lib/lua/loop/collection/ObjectCache.lua +39 -0
- data/vendor/lua/lib/lua/loop/collection/OrderedSet.lua +164 -0
- data/vendor/lua/lib/lua/loop/collection/PriorityQueue.lua +86 -0
- data/vendor/lua/lib/lua/loop/collection/UnorderedArray.lua +32 -0
- data/vendor/lua/lib/lua/loop/collection/UnorderedArraySet.lua +56 -0
- data/vendor/lua/lib/lua/loop/compiler/Arguments.lua +108 -0
- data/vendor/lua/lib/lua/loop/compiler/Conditional.lua +50 -0
- data/vendor/lua/lib/lua/loop/compiler/Expression.lua +215 -0
- data/vendor/lua/lib/lua/loop/component/base.lua +221 -0
- data/vendor/lua/lib/lua/loop/component/contained.lua +71 -0
- data/vendor/lua/lib/lua/loop/component/dynamic.lua +223 -0
- data/vendor/lua/lib/lua/loop/component/intercepted.lua +354 -0
- data/vendor/lua/lib/lua/loop/component/wrapped.lua +195 -0
- data/vendor/lua/lib/lua/loop/debug/Inspector.lua +521 -0
- data/vendor/lua/lib/lua/loop/debug/Matcher.lua +192 -0
- data/vendor/lua/lib/lua/loop/debug/Verbose.lua +266 -0
- data/vendor/lua/lib/lua/loop/debug/Viewer.lua +200 -0
- data/vendor/lua/lib/lua/loop/multiple.lua +105 -0
- data/vendor/lua/lib/lua/loop/object/Exception.lua +57 -0
- data/vendor/lua/lib/lua/loop/object/Publisher.lua +43 -0
- data/vendor/lua/lib/lua/loop/object/Wrapper.lua +39 -0
- data/vendor/lua/lib/lua/loop/scoped.lua +585 -0
- data/vendor/lua/lib/lua/loop/serial/FileStream.lua +48 -0
- data/vendor/lua/lib/lua/loop/serial/Serializer.lua +291 -0
- data/vendor/lua/lib/lua/loop/serial/SocketStream.lua +51 -0
- data/vendor/lua/lib/lua/loop/serial/StringStream.lua +47 -0
- data/vendor/lua/lib/lua/loop/simple.lua +75 -0
- data/vendor/lua/lib/lua/loop/table.lua +71 -0
- data/vendor/lua/lib/lua/loop/thread/CoSocket.lua +416 -0
- data/vendor/lua/lib/lua/loop/thread/IOScheduler.lua +170 -0
- data/vendor/lua/lib/lua/loop/thread/Scheduler.lua +327 -0
- data/vendor/lua/lib/lua/loop/thread/SocketScheduler.lua +88 -0
- data/vendor/lua/lib/lua/loop/thread/Timer.lua +54 -0
- data/vendor/lua/lib/lua/lpeg.dll +0 -0
- data/vendor/lua/lib/lua/ltn12.lua +292 -0
- data/vendor/lua/lib/lua/luaXML_lib.dll +0 -0
- data/vendor/lua/lib/lua/luacurl.dll +0 -0
- data/vendor/lua/lib/lua/luadoc/config.lua +34 -0
- data/vendor/lua/lib/lua/luadoc/doclet/debug.lua +46 -0
- data/vendor/lua/lib/lua/luadoc/doclet/formatter.lua +84 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html.lua +289 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html/file.lp +113 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html/function.lp +64 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html/index.lp +70 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html/luadoc.css +286 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html/menu.lp +55 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html/module.lp +109 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html/table.lp +15 -0
- data/vendor/lua/lib/lua/luadoc/doclet/raw.lua +12 -0
- data/vendor/lua/lib/lua/luadoc/init.lua +58 -0
- data/vendor/lua/lib/lua/luadoc/lp.lua +130 -0
- data/vendor/lua/lib/lua/luadoc/taglet/standard.lua +495 -0
- data/vendor/lua/lib/lua/luadoc/taglet/standard/tags.lua +171 -0
- data/vendor/lua/lib/lua/luadoc/util.lua +233 -0
- data/vendor/lua/lib/lua/luagl.dll +0 -0
- data/vendor/lua/lib/lua/luaglu.dll +0 -0
- data/vendor/lua/lib/lua/luaidl.lua +113 -0
- data/vendor/lua/lib/lua/luaidl/lex.lua +793 -0
- data/vendor/lua/lib/lua/luaidl/pre.lua +149 -0
- data/vendor/lua/lib/lua/luaidl/sin.lua +3631 -0
- data/vendor/lua/lib/lua/luarocks/add.lua +108 -0
- data/vendor/lua/lib/lua/luarocks/admin_remove.lua +87 -0
- data/vendor/lua/lib/lua/luarocks/build.lua +330 -0
- data/vendor/lua/lib/lua/luarocks/build/builtin.lua +253 -0
- data/vendor/lua/lib/lua/luarocks/build/cmake.lua +54 -0
- data/vendor/lua/lib/lua/luarocks/build/command.lua +32 -0
- data/vendor/lua/lib/lua/luarocks/build/make.lua +92 -0
- data/vendor/lua/lib/lua/luarocks/cache.lua +85 -0
- data/vendor/lua/lib/lua/luarocks/cfg.lua +449 -0
- data/vendor/lua/lib/lua/luarocks/command_line.lua +163 -0
- data/vendor/lua/lib/lua/luarocks/deps.lua +654 -0
- data/vendor/lua/lib/lua/luarocks/dir.lua +69 -0
- data/vendor/lua/lib/lua/luarocks/download.lua +90 -0
- data/vendor/lua/lib/lua/luarocks/fetch.lua +321 -0
- data/vendor/lua/lib/lua/luarocks/fetch/cvs.lua +44 -0
- data/vendor/lua/lib/lua/luarocks/fetch/git.lua +81 -0
- data/vendor/lua/lib/lua/luarocks/fetch/git_file.lua +17 -0
- data/vendor/lua/lib/lua/luarocks/fetch/hg.lua +54 -0
- data/vendor/lua/lib/lua/luarocks/fetch/sscm.lua +42 -0
- data/vendor/lua/lib/lua/luarocks/fetch/svn.lua +53 -0
- data/vendor/lua/lib/lua/luarocks/fs.lua +40 -0
- data/vendor/lua/lib/lua/luarocks/fs/lua.lua +676 -0
- data/vendor/lua/lib/lua/luarocks/fs/unix.lua +88 -0
- data/vendor/lua/lib/lua/luarocks/fs/unix/tools.lua +325 -0
- data/vendor/lua/lib/lua/luarocks/fs/win32.lua +107 -0
- data/vendor/lua/lib/lua/luarocks/fs/win32/tools.lua +334 -0
- data/vendor/lua/lib/lua/luarocks/help.lua +101 -0
- data/vendor/lua/lib/lua/luarocks/index.lua +172 -0
- data/vendor/lua/lib/lua/luarocks/install.lua +151 -0
- data/vendor/lua/lib/lua/luarocks/list.lua +35 -0
- data/vendor/lua/lib/lua/luarocks/loader.lua +228 -0
- data/vendor/lua/lib/lua/luarocks/make.lua +71 -0
- data/vendor/lua/lib/lua/luarocks/make_manifest.lua +34 -0
- data/vendor/lua/lib/lua/luarocks/manif.lua +360 -0
- data/vendor/lua/lib/lua/luarocks/manif_core.lua +75 -0
- data/vendor/lua/lib/lua/luarocks/new_version.lua +141 -0
- data/vendor/lua/lib/lua/luarocks/pack.lua +205 -0
- data/vendor/lua/lib/lua/luarocks/path.lua +315 -0
- data/vendor/lua/lib/lua/luarocks/persist.lua +173 -0
- data/vendor/lua/lib/lua/luarocks/refresh_cache.lua +30 -0
- data/vendor/lua/lib/lua/luarocks/remove.lua +135 -0
- data/vendor/lua/lib/lua/luarocks/rep.lua +313 -0
- data/vendor/lua/lib/lua/luarocks/require.lua +6 -0
- data/vendor/lua/lib/lua/luarocks/search.lua +399 -0
- data/vendor/lua/lib/lua/luarocks/show.lua +138 -0
- data/vendor/lua/lib/lua/luarocks/site_config.lua +23 -0
- data/vendor/lua/lib/lua/luarocks/tools/patch.lua +712 -0
- data/vendor/lua/lib/lua/luarocks/tools/tar.lua +144 -0
- data/vendor/lua/lib/lua/luarocks/tools/zip.lua +245 -0
- data/vendor/lua/lib/lua/luarocks/type_check.lua +267 -0
- data/vendor/lua/lib/lua/luarocks/unpack.lua +151 -0
- data/vendor/lua/lib/lua/luarocks/util.lua +420 -0
- data/vendor/lua/lib/lua/luarocks/validate.lua +164 -0
- data/vendor/lua/lib/lua/luars232.dll +0 -0
- data/vendor/lua/lib/lua/luasql/mysql.dll +0 -0
- data/vendor/lua/lib/lua/luasql/postgres.dll +0 -0
- data/vendor/lua/lib/lua/luasql/sqlite3.dll +0 -0
- data/vendor/lua/lib/lua/luaunit.lua +601 -0
- data/vendor/lua/lib/lua/lxp.dll +0 -0
- data/vendor/lua/lib/lua/lxp/lom.lua +60 -0
- data/vendor/lua/lib/lua/math_ext.lua +27 -0
- data/vendor/lua/lib/lua/mbox.lua +53 -0
- data/vendor/lua/lib/lua/md5.lua +19 -0
- data/vendor/lua/lib/lua/md5/core.dll +0 -0
- data/vendor/lua/lib/lua/metalua.lua +0 -0
- data/vendor/lua/lib/lua/metalua/ast_to_string.mlua +553 -0
- data/vendor/lua/lib/lua/metalua/base.lua +104 -0
- data/vendor/lua/lib/lua/metalua/bytecode.lua +0 -0
- data/vendor/lua/lib/lua/metalua/clopts.mlua +204 -0
- data/vendor/lua/lib/lua/metalua/compiler.lua +3 -0
- data/vendor/lua/lib/lua/metalua/dollar.mlua +24 -0
- data/vendor/lua/lib/lua/metalua/extension/H-runtime.mlua +216 -0
- data/vendor/lua/lib/lua/metalua/extension/H.mlua +22 -0
- data/vendor/lua/lib/lua/metalua/extension/anaphoric.mlua +54 -0
- data/vendor/lua/lib/lua/metalua/extension/clist.mlua +149 -0
- data/vendor/lua/lib/lua/metalua/extension/continue.mlua +53 -0
- data/vendor/lua/lib/lua/metalua/extension/localin.mlua +2 -0
- data/vendor/lua/lib/lua/metalua/extension/log.mlua +39 -0
- data/vendor/lua/lib/lua/metalua/extension/match.mlua +374 -0
- data/vendor/lua/lib/lua/metalua/extension/ternary.mlua +10 -0
- data/vendor/lua/lib/lua/metalua/extension/trycatch.mlua +189 -0
- data/vendor/lua/lib/lua/metalua/extension/types-runtime.mlua +159 -0
- data/vendor/lua/lib/lua/metalua/extension/types.mlua +352 -0
- data/vendor/lua/lib/lua/metalua/extension/withdo.mlua +30 -0
- data/vendor/lua/lib/lua/metalua/extension/xglobal-runtime.lua +41 -0
- data/vendor/lua/lib/lua/metalua/extension/xglobal.mlua +20 -0
- data/vendor/lua/lib/lua/metalua/extension/xloop.mlua +100 -0
- data/vendor/lua/lib/lua/metalua/extension/xmatch.mlua +216 -0
- data/vendor/lua/lib/lua/metalua/metaloop.mlua +76 -0
- data/vendor/lua/lib/lua/metalua/mlc.lua +0 -0
- data/vendor/lua/lib/lua/metalua/mlc_xcall.lua +119 -0
- data/vendor/lua/lib/lua/metalua/mlp.lua +0 -0
- data/vendor/lua/lib/lua/metalua/package2.lua +101 -0
- data/vendor/lua/lib/lua/metalua/runtime.lua +3 -0
- data/vendor/lua/lib/lua/metalua/string2.lua +44 -0
- data/vendor/lua/lib/lua/metalua/table2.lua +372 -0
- data/vendor/lua/lib/lua/metalua/walk.mlua +304 -0
- data/vendor/lua/lib/lua/metalua/walk/bindings.mlua +41 -0
- data/vendor/lua/lib/lua/metalua/walk/id.mlua +186 -0
- data/vendor/lua/lib/lua/metalua/walk/scope.lua +54 -0
- data/vendor/lua/lib/lua/mime.lua +87 -0
- data/vendor/lua/lib/lua/mime/core.dll +0 -0
- data/vendor/lua/lib/lua/mobdebug.lua +1484 -0
- data/vendor/lua/lib/lua/modules.lua +16 -0
- data/vendor/lua/lib/lua/object.lua +56 -0
- data/vendor/lua/lib/lua/oil/Exception.lua +26 -0
- data/vendor/lua/lib/lua/oil/arch.lua +27 -0
- data/vendor/lua/lib/lua/oil/arch/basic/client.lua +29 -0
- data/vendor/lua/lib/lua/oil/arch/basic/common.lua +13 -0
- data/vendor/lua/lib/lua/oil/arch/basic/server.lua +27 -0
- data/vendor/lua/lib/lua/oil/arch/cooperative/common.lua +10 -0
- data/vendor/lua/lib/lua/oil/arch/cooperative/server.lua +16 -0
- data/vendor/lua/lib/lua/oil/arch/corba/client.lua +39 -0
- data/vendor/lua/lib/lua/oil/arch/corba/common.lua +58 -0
- data/vendor/lua/lib/lua/oil/arch/corba/intercepted/client.lua +9 -0
- data/vendor/lua/lib/lua/oil/arch/corba/intercepted/server.lua +9 -0
- data/vendor/lua/lib/lua/oil/arch/corba/server.lua +35 -0
- data/vendor/lua/lib/lua/oil/arch/ludo/byref.lua +18 -0
- data/vendor/lua/lib/lua/oil/arch/ludo/client.lua +19 -0
- data/vendor/lua/lib/lua/oil/arch/ludo/common.lua +18 -0
- data/vendor/lua/lib/lua/oil/arch/ludo/server.lua +19 -0
- data/vendor/lua/lib/lua/oil/arch/typed/client.lua +27 -0
- data/vendor/lua/lib/lua/oil/arch/typed/common.lua +9 -0
- data/vendor/lua/lib/lua/oil/arch/typed/server.lua +18 -0
- data/vendor/lua/lib/lua/oil/assert.lua +87 -0
- data/vendor/lua/lib/lua/oil/builder.lua +45 -0
- data/vendor/lua/lib/lua/oil/builder/basic/client.lua +31 -0
- data/vendor/lua/lib/lua/oil/builder/basic/common.lua +11 -0
- data/vendor/lua/lib/lua/oil/builder/basic/server.lua +13 -0
- data/vendor/lua/lib/lua/oil/builder/cooperative/common.lua +11 -0
- data/vendor/lua/lib/lua/oil/builder/cooperative/server.lua +11 -0
- data/vendor/lua/lib/lua/oil/builder/corba/client.lua +13 -0
- data/vendor/lua/lib/lua/oil/builder/corba/common.lua +24 -0
- data/vendor/lua/lib/lua/oil/builder/corba/gencode.lua +13 -0
- data/vendor/lua/lib/lua/oil/builder/corba/intercepted/client.lua +11 -0
- data/vendor/lua/lib/lua/oil/builder/corba/intercepted/server.lua +11 -0
- data/vendor/lua/lib/lua/oil/builder/corba/server.lua +13 -0
- data/vendor/lua/lib/lua/oil/builder/lua/client.lua +11 -0
- data/vendor/lua/lib/lua/oil/builder/lua/server.lua +12 -0
- data/vendor/lua/lib/lua/oil/builder/ludo/byref.lua +13 -0
- data/vendor/lua/lib/lua/oil/builder/ludo/client.lua +13 -0
- data/vendor/lua/lib/lua/oil/builder/ludo/common.lua +14 -0
- data/vendor/lua/lib/lua/oil/builder/ludo/server.lua +13 -0
- data/vendor/lua/lib/lua/oil/builder/typed/client.lua +16 -0
- data/vendor/lua/lib/lua/oil/builder/typed/server.lua +12 -0
- data/vendor/lua/lib/lua/oil/compat.lua +846 -0
- data/vendor/lua/lib/lua/oil/component.lua +1 -0
- data/vendor/lua/lib/lua/oil/corba/giop.lua +301 -0
- data/vendor/lua/lib/lua/oil/corba/giop/Codec.lua +1568 -0
- data/vendor/lua/lib/lua/oil/corba/giop/CodecGen.lua +589 -0
- data/vendor/lua/lib/lua/oil/corba/giop/Exception.lua +25 -0
- data/vendor/lua/lib/lua/oil/corba/giop/Indexer.lua +63 -0
- data/vendor/lua/lib/lua/oil/corba/giop/Listener.lua +343 -0
- data/vendor/lua/lib/lua/oil/corba/giop/Messenger.lua +228 -0
- data/vendor/lua/lib/lua/oil/corba/giop/Referrer.lua +180 -0
- data/vendor/lua/lib/lua/oil/corba/giop/Requester.lua +462 -0
- data/vendor/lua/lib/lua/oil/corba/idl.lua +597 -0
- data/vendor/lua/lib/lua/oil/corba/idl/Compiler.lua +133 -0
- data/vendor/lua/lib/lua/oil/corba/idl/Importer.lua +235 -0
- data/vendor/lua/lib/lua/oil/corba/idl/Indexer.lua +95 -0
- data/vendor/lua/lib/lua/oil/corba/idl/Registry.lua +1821 -0
- data/vendor/lua/lib/lua/oil/corba/idl/ir.lua +847 -0
- data/vendor/lua/lib/lua/oil/corba/idl/sysex.lua +21 -0
- data/vendor/lua/lib/lua/oil/corba/iiop/Profiler.lua +200 -0
- data/vendor/lua/lib/lua/oil/corba/intercepted/Listener.lua +158 -0
- data/vendor/lua/lib/lua/oil/corba/intercepted/Requester.lua +181 -0
- data/vendor/lua/lib/lua/oil/corba/services/event.lua +126 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/ConsumerAdmin.lua +50 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/EventFactory.lua +15 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/EventQueue.lua +37 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/ProxyPushConsumer.lua +75 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/ProxyPushSupplier.lua +62 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/SingleDeferredDispatcher.lua +60 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/SingleSynchronousDispatcher.lua +39 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/SupplierAdmin.lua +50 -0
- data/vendor/lua/lib/lua/oil/corba/services/naming.lua +436 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Acceptor.lua +268 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Channels.lua +121 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Connector.lua +147 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Dispatcher.lua +99 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Proxies.lua +86 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Proxies/asynchronous.lua +56 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Proxies/protected.lua +17 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Proxies/synchronous.lua +17 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Proxies/utils.lua +29 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Receiver.lua +110 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Servants.lua +207 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Sockets.lua +44 -0
- data/vendor/lua/lib/lua/oil/kernel/cooperative/Receiver.lua +139 -0
- data/vendor/lua/lib/lua/oil/kernel/intercepted/Listener.lua +47 -0
- data/vendor/lua/lib/lua/oil/kernel/intercepted/Requester.lua +58 -0
- data/vendor/lua/lib/lua/oil/kernel/lua/Dispatcher.lua +76 -0
- data/vendor/lua/lib/lua/oil/kernel/lua/Proxies.lua +69 -0
- data/vendor/lua/lib/lua/oil/kernel/typed/Dispatcher.lua +91 -0
- data/vendor/lua/lib/lua/oil/kernel/typed/Proxies.lua +153 -0
- data/vendor/lua/lib/lua/oil/kernel/typed/Servants.lua +137 -0
- data/vendor/lua/lib/lua/oil/ludo/Codec.lua +66 -0
- data/vendor/lua/lib/lua/oil/ludo/CodecByRef.lua +103 -0
- data/vendor/lua/lib/lua/oil/ludo/Listener.lua +151 -0
- data/vendor/lua/lib/lua/oil/ludo/Referrer.lua +72 -0
- data/vendor/lua/lib/lua/oil/ludo/Requester.lua +107 -0
- data/vendor/lua/lib/lua/oil/oo.lua +1 -0
- data/vendor/lua/lib/lua/oil/port.lua +1 -0
- data/vendor/lua/lib/lua/oil/properties.lua +57 -0
- data/vendor/lua/lib/lua/oil/verbose.lua +133 -0
- data/vendor/lua/lib/lua/package_ext.lua +15 -0
- data/vendor/lua/lib/lua/parser.lua +268 -0
- data/vendor/lua/lib/lua/pl/Date.lua +555 -0
- data/vendor/lua/lib/lua/pl/List.lua +613 -0
- data/vendor/lua/lib/lua/pl/Map.lua +113 -0
- data/vendor/lua/lib/lua/pl/MultiMap.lua +62 -0
- data/vendor/lua/lib/lua/pl/OrderedMap.lua +151 -0
- data/vendor/lua/lib/lua/pl/Set.lua +153 -0
- data/vendor/lua/lib/lua/pl/app.lua +165 -0
- data/vendor/lua/lib/lua/pl/array2d.lua +501 -0
- data/vendor/lua/lib/lua/pl/class.lua +180 -0
- data/vendor/lua/lib/lua/pl/comprehension.lua +286 -0
- data/vendor/lua/lib/lua/pl/config.lua +176 -0
- data/vendor/lua/lib/lua/pl/data.lua +606 -0
- data/vendor/lua/lib/lua/pl/dir.lua +475 -0
- data/vendor/lua/lib/lua/pl/file.lua +70 -0
- data/vendor/lua/lib/lua/pl/func.lua +376 -0
- data/vendor/lua/lib/lua/pl/init.lua +68 -0
- data/vendor/lua/lib/lua/pl/input.lua +173 -0
- data/vendor/lua/lib/lua/pl/lapp.lua +407 -0
- data/vendor/lua/lib/lua/pl/lexer.lua +456 -0
- data/vendor/lua/lib/lua/pl/luabalanced.lua +264 -0
- data/vendor/lua/lib/lua/pl/operator.lua +201 -0
- data/vendor/lua/lib/lua/pl/path.lua +398 -0
- data/vendor/lua/lib/lua/pl/permute.lua +63 -0
- data/vendor/lua/lib/lua/pl/platf/luajava.lua +101 -0
- data/vendor/lua/lib/lua/pl/pretty.lua +285 -0
- data/vendor/lua/lib/lua/pl/seq.lua +551 -0
- data/vendor/lua/lib/lua/pl/sip.lua +344 -0
- data/vendor/lua/lib/lua/pl/strict.lua +70 -0
- data/vendor/lua/lib/lua/pl/stringio.lua +158 -0
- data/vendor/lua/lib/lua/pl/stringx.lua +440 -0
- data/vendor/lua/lib/lua/pl/tablex.lua +817 -0
- data/vendor/lua/lib/lua/pl/template.lua +103 -0
- data/vendor/lua/lib/lua/pl/test.lua +135 -0
- data/vendor/lua/lib/lua/pl/text.lua +243 -0
- data/vendor/lua/lib/lua/pl/utils.lua +550 -0
- data/vendor/lua/lib/lua/pl/xml.lua +689 -0
- data/vendor/lua/lib/lua/profiler.dll +0 -0
- data/vendor/lua/lib/lua/re.lua +248 -0
- data/vendor/lua/lib/lua/rex_onig.dll +0 -0
- data/vendor/lua/lib/lua/rex_pcre.dll +0 -0
- data/vendor/lua/lib/lua/rex_posix.dll +0 -0
- data/vendor/lua/lib/lua/rings.dll +0 -0
- data/vendor/lua/lib/lua/serialize.lua +193 -0
- data/vendor/lua/lib/lua/set.lua +149 -0
- data/vendor/lua/lib/lua/socket.lua +133 -0
- data/vendor/lua/lib/lua/socket/core.dll +0 -0
- data/vendor/lua/lib/lua/socket/ftp.lua +281 -0
- data/vendor/lua/lib/lua/socket/http.lua +350 -0
- data/vendor/lua/lib/lua/socket/smtp.lua +251 -0
- data/vendor/lua/lib/lua/socket/tp.lua +123 -0
- data/vendor/lua/lib/lua/socket/url.lua +297 -0
- data/vendor/lua/lib/lua/ssl.dll +0 -0
- data/vendor/lua/lib/lua/ssl.lua +93 -0
- data/vendor/lua/lib/lua/ssl/https.lua +138 -0
- data/vendor/lua/lib/lua/stable.lua +28 -0
- data/vendor/lua/lib/lua/std.lua +16 -0
- data/vendor/lua/lib/lua/strbuf.lua +32 -0
- data/vendor/lua/lib/lua/strict.lua +45 -0
- data/vendor/lua/lib/lua/string_ext.lua +274 -0
- data/vendor/lua/lib/lua/table_ext.lua +117 -0
- data/vendor/lua/lib/lua/tar.lua +262 -0
- data/vendor/lua/lib/lua/task.dll +0 -0
- data/vendor/lua/lib/lua/tree.lua +81 -0
- data/vendor/lua/lib/lua/unicode.dll +0 -0
- data/vendor/lua/lib/lua/verbose_require.lua +11 -0
- data/vendor/lua/lib/lua/vstruct.lua +86 -0
- data/vendor/lua/lib/lua/vstruct/ast.lua +192 -0
- data/vendor/lua/lib/lua/vstruct/ast/Bitpack.lua +33 -0
- data/vendor/lua/lib/lua/vstruct/ast/Generator.lua +174 -0
- data/vendor/lua/lib/lua/vstruct/ast/IO.lua +45 -0
- data/vendor/lua/lib/lua/vstruct/ast/List.lua +56 -0
- data/vendor/lua/lib/lua/vstruct/ast/Name.lua +20 -0
- data/vendor/lua/lib/lua/vstruct/ast/Repeat.lua +23 -0
- data/vendor/lua/lib/lua/vstruct/ast/Root.lua +19 -0
- data/vendor/lua/lib/lua/vstruct/ast/Table.lua +65 -0
- data/vendor/lua/lib/lua/vstruct/cursor.lua +81 -0
- data/vendor/lua/lib/lua/vstruct/io.lua +45 -0
- data/vendor/lua/lib/lua/vstruct/io/a.lua +24 -0
- data/vendor/lua/lib/lua/vstruct/io/b.lua +28 -0
- data/vendor/lua/lib/lua/vstruct/io/bigendian.lua +21 -0
- data/vendor/lua/lib/lua/vstruct/io/c.lua +25 -0
- data/vendor/lua/lib/lua/vstruct/io/defaults.lua +24 -0
- data/vendor/lua/lib/lua/vstruct/io/endianness.lua +41 -0
- data/vendor/lua/lib/lua/vstruct/io/f.lua +129 -0
- data/vendor/lua/lib/lua/vstruct/io/hostendian.lua +21 -0
- data/vendor/lua/lib/lua/vstruct/io/i.lua +42 -0
- data/vendor/lua/lib/lua/vstruct/io/littleendian.lua +21 -0
- data/vendor/lua/lib/lua/vstruct/io/m.lua +62 -0
- data/vendor/lua/lib/lua/vstruct/io/p.lua +23 -0
- data/vendor/lua/lib/lua/vstruct/io/s.lua +27 -0
- data/vendor/lua/lib/lua/vstruct/io/seekb.lua +18 -0
- data/vendor/lua/lib/lua/vstruct/io/seekf.lua +18 -0
- data/vendor/lua/lib/lua/vstruct/io/seekto.lua +18 -0
- data/vendor/lua/lib/lua/vstruct/io/u.lua +54 -0
- data/vendor/lua/lib/lua/vstruct/io/x.lua +34 -0
- data/vendor/lua/lib/lua/vstruct/io/z.lua +63 -0
- data/vendor/lua/lib/lua/vstruct/lexer.lua +100 -0
- data/vendor/lua/lib/lua/vstruct/pack.lua +142 -0
- data/vendor/lua/lib/lua/vstruct/test.lua +47 -0
- data/vendor/lua/lib/lua/vstruct/test/basic.lua +73 -0
- data/vendor/lua/lib/lua/vstruct/test/common.lua +100 -0
- data/vendor/lua/lib/lua/vstruct/test/fp-bigendian.lua +56 -0
- data/vendor/lua/lib/lua/vstruct/test/fp-littleendian.lua +56 -0
- data/vendor/lua/lib/lua/vstruct/test/struct-test-gen.lua +1230 -0
- data/vendor/lua/lib/lua/vstruct/unpack.lua +126 -0
- data/vendor/lua/lib/lua/wx.dll +0 -0
- data/vendor/lua/lib/lua/xml.lua +75 -0
- data/vendor/lua/lib/lua/zip.dll +0 -0
- data/vendor/lua/lib/lua/zlib.dll +0 -0
- metadata +529 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
--- File manipulation functions: reading, writing, moving and copying.
|
|
2
|
+
--
|
|
3
|
+
-- Dependencies: `pl.utils`, `pl.dir`, `pl.path`
|
|
4
|
+
-- @module pl.file
|
|
5
|
+
local os = os
|
|
6
|
+
local utils = require 'pl.utils'
|
|
7
|
+
local dir = require 'pl.dir'
|
|
8
|
+
local path = require 'pl.path'
|
|
9
|
+
|
|
10
|
+
--[[
|
|
11
|
+
module ('pl.file',utils._module)
|
|
12
|
+
]]
|
|
13
|
+
local file = {}
|
|
14
|
+
|
|
15
|
+
--- return the contents of a file as a string
|
|
16
|
+
-- @class function
|
|
17
|
+
-- @name file.read
|
|
18
|
+
-- @param filename The file path
|
|
19
|
+
-- @return file contents
|
|
20
|
+
file.read = utils.readfile
|
|
21
|
+
|
|
22
|
+
--- write a string to a file
|
|
23
|
+
-- @class function
|
|
24
|
+
-- @name file.write
|
|
25
|
+
-- @param filename The file path
|
|
26
|
+
-- @param str The string
|
|
27
|
+
file.write = utils.writefile
|
|
28
|
+
|
|
29
|
+
--- copy a file.
|
|
30
|
+
-- @class function
|
|
31
|
+
-- @name file.copy
|
|
32
|
+
-- @param src source file
|
|
33
|
+
-- @param dest destination file
|
|
34
|
+
-- @param flag true if you want to force the copy (default)
|
|
35
|
+
-- @return true if operation succeeded
|
|
36
|
+
file.copy = dir.copyfile
|
|
37
|
+
|
|
38
|
+
--- move a file.
|
|
39
|
+
-- @class function
|
|
40
|
+
-- @name file.move
|
|
41
|
+
-- @param src source file
|
|
42
|
+
-- @param dest destination file
|
|
43
|
+
-- @return true if operation succeeded, else false and the reason for the error.
|
|
44
|
+
file.move = dir.movefile
|
|
45
|
+
|
|
46
|
+
--- Return the time of last access as the number of seconds since the epoch.
|
|
47
|
+
-- @class function
|
|
48
|
+
-- @name file.access_time
|
|
49
|
+
-- @param path A file path
|
|
50
|
+
file.access_time = path.getatime
|
|
51
|
+
|
|
52
|
+
---Return when the file was created.
|
|
53
|
+
-- @class function
|
|
54
|
+
-- @name file.creation_time
|
|
55
|
+
-- @param path A file path
|
|
56
|
+
file.creation_time = path.getctime
|
|
57
|
+
|
|
58
|
+
--- Return the time of last modification
|
|
59
|
+
-- @class function
|
|
60
|
+
-- @name file.modified_time
|
|
61
|
+
-- @param path A file path
|
|
62
|
+
file.modified_time = path.getmtime
|
|
63
|
+
|
|
64
|
+
--- Delete a file
|
|
65
|
+
-- @class function
|
|
66
|
+
-- @name file.delete
|
|
67
|
+
-- @param path A file path
|
|
68
|
+
file.delete = os.remove
|
|
69
|
+
|
|
70
|
+
return file
|
|
@@ -0,0 +1,376 @@
|
|
|
1
|
+
--- Functional helpers like composition, binding and placeholder expressions.
|
|
2
|
+
-- Placeholder expressions are useful for short anonymous functions, and were
|
|
3
|
+
-- inspired by the Boost Lambda library.
|
|
4
|
+
--
|
|
5
|
+
-- > utils.import 'pl.func'
|
|
6
|
+
-- > ls = List{10,20,30}
|
|
7
|
+
-- > = ls:map(_1+1)
|
|
8
|
+
-- {11,21,31}
|
|
9
|
+
--
|
|
10
|
+
-- They can also be used to _bind_ particular arguments of a function.
|
|
11
|
+
--
|
|
12
|
+
-- > p = bind(print,'start>',_0)
|
|
13
|
+
-- > p(10,20,30)
|
|
14
|
+
-- > start> 10 20 30
|
|
15
|
+
--
|
|
16
|
+
-- See @{07-functional.md.Creating_Functions_from_Functions|the Guide}
|
|
17
|
+
--
|
|
18
|
+
-- Dependencies: `pl.utils`, `pl.tablex`
|
|
19
|
+
-- @module pl.func
|
|
20
|
+
local type,select,setmetatable,getmetatable,rawset = type,select,setmetatable,getmetatable,rawset
|
|
21
|
+
local concat,append = table.concat,table.insert
|
|
22
|
+
local max = math.max
|
|
23
|
+
local print,tostring = print,tostring
|
|
24
|
+
local pairs,ipairs,loadstring,rawget,unpack = pairs,ipairs,loadstring,rawget,unpack
|
|
25
|
+
local _G = _G
|
|
26
|
+
local utils = require 'pl.utils'
|
|
27
|
+
local tablex = require 'pl.tablex'
|
|
28
|
+
local map = tablex.map
|
|
29
|
+
local _DEBUG = rawget(_G,'_DEBUG')
|
|
30
|
+
local assert_arg = utils.assert_arg
|
|
31
|
+
|
|
32
|
+
local func = {}
|
|
33
|
+
|
|
34
|
+
-- metatable for Placeholder Expressions (PE)
|
|
35
|
+
local _PEMT = {}
|
|
36
|
+
|
|
37
|
+
local function P (t)
|
|
38
|
+
setmetatable(t,_PEMT)
|
|
39
|
+
return t
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
func.PE = P
|
|
43
|
+
|
|
44
|
+
local function isPE (obj)
|
|
45
|
+
return getmetatable(obj) == _PEMT
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
func.isPE = isPE
|
|
49
|
+
|
|
50
|
+
-- construct a placeholder variable (e.g _1 and _2)
|
|
51
|
+
local function PH (idx)
|
|
52
|
+
return P {op='X',repr='_'..idx, index=idx}
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
-- construct a constant placeholder variable (e.g _C1 and _C2)
|
|
56
|
+
local function CPH (idx)
|
|
57
|
+
return P {op='X',repr='_C'..idx, index=idx}
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
func._1,func._2,func._3,func._4,func._5 = PH(1),PH(2),PH(3),PH(4),PH(5)
|
|
61
|
+
func._0 = P{op='X',repr='...',index=0}
|
|
62
|
+
|
|
63
|
+
function func.Var (name)
|
|
64
|
+
local ls = utils.split(name,'[%s,]+')
|
|
65
|
+
local res = {}
|
|
66
|
+
for _,n in ipairs(ls) do
|
|
67
|
+
append(res,P{op='X',repr=n,index=0})
|
|
68
|
+
end
|
|
69
|
+
return unpack(res)
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
function func._ (value)
|
|
73
|
+
return P{op='X',repr=value,index='wrap'}
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
local repr
|
|
77
|
+
|
|
78
|
+
func.Nil = func.Var 'nil'
|
|
79
|
+
|
|
80
|
+
function _PEMT.__index(obj,key)
|
|
81
|
+
return P{op='[]',obj,key}
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
function _PEMT.__call(fun,...)
|
|
85
|
+
return P{op='()',fun,...}
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
function _PEMT.__tostring (e)
|
|
89
|
+
return repr(e)
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
function _PEMT.__unm(arg)
|
|
93
|
+
return P{op='-',arg}
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
function func.Not (arg)
|
|
97
|
+
return P{op='not',arg}
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
function func.Len (arg)
|
|
101
|
+
return P{op='#',arg}
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
local function binreg(context,t)
|
|
106
|
+
for name,op in pairs(t) do
|
|
107
|
+
rawset(context,name,function(x,y)
|
|
108
|
+
return P{op=op,x,y}
|
|
109
|
+
end)
|
|
110
|
+
end
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
local function import_name (name,fun,context)
|
|
114
|
+
rawset(context,name,function(...)
|
|
115
|
+
return P{op='()',fun,...}
|
|
116
|
+
end)
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
local imported_functions = {}
|
|
120
|
+
|
|
121
|
+
local function is_global_table (n)
|
|
122
|
+
return type(_G[n]) == 'table'
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
--- wrap a table of functions. This makes them available for use in
|
|
126
|
+
-- placeholder expressions.
|
|
127
|
+
-- @param tname a table name
|
|
128
|
+
-- @param context context to put results, defaults to environment of caller
|
|
129
|
+
function func.import(tname,context)
|
|
130
|
+
assert_arg(1,tname,'string',is_global_table,'arg# 1: not a name of a global table')
|
|
131
|
+
local t = _G[tname]
|
|
132
|
+
context = context or _G
|
|
133
|
+
for name,fun in pairs(t) do
|
|
134
|
+
import_name(name,fun,context)
|
|
135
|
+
imported_functions[fun] = name
|
|
136
|
+
end
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
--- register a function for use in placeholder expressions.
|
|
140
|
+
-- @param fun a function
|
|
141
|
+
-- @param name an optional name
|
|
142
|
+
-- @return a placeholder functiond
|
|
143
|
+
function func.register (fun,name)
|
|
144
|
+
assert_arg(1,fun,'function')
|
|
145
|
+
if name then
|
|
146
|
+
assert_arg(2,name,'string')
|
|
147
|
+
imported_functions[fun] = name
|
|
148
|
+
end
|
|
149
|
+
return function(...)
|
|
150
|
+
return P{op='()',fun,...}
|
|
151
|
+
end
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
function func.lookup_imported_name (fun)
|
|
155
|
+
return imported_functions[fun]
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
local function _arg(...) return ... end
|
|
159
|
+
|
|
160
|
+
function func.Args (...)
|
|
161
|
+
return P{op='()',_arg,...}
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
-- binary and unary operators, with their precedences (see 2.5.6)
|
|
165
|
+
local operators = {
|
|
166
|
+
['or'] = 0,
|
|
167
|
+
['and'] = 1,
|
|
168
|
+
['=='] = 2, ['~='] = 2, ['<'] = 2, ['>'] = 2, ['<='] = 2, ['>='] = 2,
|
|
169
|
+
['..'] = 3,
|
|
170
|
+
['+'] = 4, ['-'] = 4,
|
|
171
|
+
['*'] = 5, ['/'] = 5, ['%'] = 5,
|
|
172
|
+
['not'] = 6, ['#'] = 6, ['-'] = 6,
|
|
173
|
+
['^'] = 7
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
-- comparisons (as prefix functions)
|
|
177
|
+
binreg (func,{And='and',Or='or',Eq='==',Lt='<',Gt='>',Le='<=',Ge='>='})
|
|
178
|
+
|
|
179
|
+
-- standard binary operators (as metamethods)
|
|
180
|
+
binreg (_PEMT,{__add='+',__sub='-',__mul='*',__div='/',__mod='%',__pow='^',__concat='..'})
|
|
181
|
+
|
|
182
|
+
binreg (_PEMT,{__eq='=='})
|
|
183
|
+
|
|
184
|
+
--- all elements of a table except the first.
|
|
185
|
+
-- @param ls a list-like table.
|
|
186
|
+
function func.tail (ls)
|
|
187
|
+
assert_arg(1,ls,'table')
|
|
188
|
+
local res = {}
|
|
189
|
+
for i = 2,#ls do
|
|
190
|
+
append(res,ls[i])
|
|
191
|
+
end
|
|
192
|
+
return res
|
|
193
|
+
end
|
|
194
|
+
|
|
195
|
+
--- create a string representation of a placeholder expression.
|
|
196
|
+
-- @param e a placeholder expression
|
|
197
|
+
-- @param lastpred not used
|
|
198
|
+
function repr (e,lastpred)
|
|
199
|
+
local tail = func.tail
|
|
200
|
+
if isPE(e) then
|
|
201
|
+
local pred = operators[e.op]
|
|
202
|
+
local ls = map(repr,e,pred)
|
|
203
|
+
if pred then --unary or binary operator
|
|
204
|
+
if #ls ~= 1 then
|
|
205
|
+
local s = concat(ls,' '..e.op..' ')
|
|
206
|
+
if lastpred and lastpred > pred then
|
|
207
|
+
s = '('..s..')'
|
|
208
|
+
end
|
|
209
|
+
return s
|
|
210
|
+
else
|
|
211
|
+
return e.op..' '..ls[1]
|
|
212
|
+
end
|
|
213
|
+
else -- either postfix, or a placeholder
|
|
214
|
+
if e.op == '[]' then
|
|
215
|
+
return ls[1]..'['..ls[2]..']'
|
|
216
|
+
elseif e.op == '()' then
|
|
217
|
+
local fn
|
|
218
|
+
if ls[1] ~= nil then -- was _args, undeclared!
|
|
219
|
+
fn = ls[1]
|
|
220
|
+
else
|
|
221
|
+
fn = ''
|
|
222
|
+
end
|
|
223
|
+
return fn..'('..concat(tail(ls),',')..')'
|
|
224
|
+
else
|
|
225
|
+
return e.repr
|
|
226
|
+
end
|
|
227
|
+
end
|
|
228
|
+
elseif type(e) == 'string' then
|
|
229
|
+
return '"'..e..'"'
|
|
230
|
+
elseif type(e) == 'function' then
|
|
231
|
+
local name = func.lookup_imported_name(e)
|
|
232
|
+
if name then return name else return tostring(e) end
|
|
233
|
+
else
|
|
234
|
+
return tostring(e) --should not really get here!
|
|
235
|
+
end
|
|
236
|
+
end
|
|
237
|
+
func.repr = repr
|
|
238
|
+
|
|
239
|
+
-- collect all the non-PE values in this PE into vlist, and replace each occurence
|
|
240
|
+
-- with a constant PH (_C1, etc). Return the maximum placeholder index found.
|
|
241
|
+
local collect_values
|
|
242
|
+
function collect_values (e,vlist)
|
|
243
|
+
if isPE(e) then
|
|
244
|
+
if e.op ~= 'X' then
|
|
245
|
+
local m = 0
|
|
246
|
+
for i,subx in ipairs(e) do
|
|
247
|
+
local pe = isPE(subx)
|
|
248
|
+
if pe then
|
|
249
|
+
if subx.op == 'X' and subx.index == 'wrap' then
|
|
250
|
+
subx = subx.repr
|
|
251
|
+
pe = false
|
|
252
|
+
else
|
|
253
|
+
m = max(m,collect_values(subx,vlist))
|
|
254
|
+
end
|
|
255
|
+
end
|
|
256
|
+
if not pe then
|
|
257
|
+
append(vlist,subx)
|
|
258
|
+
e[i] = CPH(#vlist)
|
|
259
|
+
end
|
|
260
|
+
end
|
|
261
|
+
return m
|
|
262
|
+
else -- was a placeholder, it has an index...
|
|
263
|
+
return e.index
|
|
264
|
+
end
|
|
265
|
+
else -- plain value has no placeholder dependence
|
|
266
|
+
return 0
|
|
267
|
+
end
|
|
268
|
+
end
|
|
269
|
+
func.collect_values = collect_values
|
|
270
|
+
|
|
271
|
+
--- instantiate a PE into an actual function. First we find the largest placeholder used,
|
|
272
|
+
-- e.g. _2; from this a list of the formal parameters can be build. Then we collect and replace
|
|
273
|
+
-- any non-PE values from the PE, and build up a constant binding list.
|
|
274
|
+
-- Finally, the expression can be compiled, and e.__PE_function is set.
|
|
275
|
+
-- @param e a placeholder expression
|
|
276
|
+
-- @return a function
|
|
277
|
+
function func.instantiate (e)
|
|
278
|
+
local consts,values,parms = {},{},{}
|
|
279
|
+
local rep, err, fun
|
|
280
|
+
local n = func.collect_values(e,values)
|
|
281
|
+
for i = 1,#values do
|
|
282
|
+
append(consts,'_C'..i)
|
|
283
|
+
if _DEBUG then print(i,values[i]) end
|
|
284
|
+
end
|
|
285
|
+
for i =1,n do
|
|
286
|
+
append(parms,'_'..i)
|
|
287
|
+
end
|
|
288
|
+
consts = concat(consts,',')
|
|
289
|
+
parms = concat(parms,',')
|
|
290
|
+
rep = repr(e)
|
|
291
|
+
local fstr = ('return function(%s) return function(%s) return %s end end'):format(consts,parms,rep)
|
|
292
|
+
if _DEBUG then print(fstr) end
|
|
293
|
+
fun,err = loadstring(fstr,'fun')
|
|
294
|
+
if not fun then return nil,err end
|
|
295
|
+
fun = fun() -- get wrapper
|
|
296
|
+
fun = fun(unpack(values)) -- call wrapper (values could be empty)
|
|
297
|
+
e.__PE_function = fun
|
|
298
|
+
return fun
|
|
299
|
+
end
|
|
300
|
+
|
|
301
|
+
--- instantiate a PE unless it has already been done.
|
|
302
|
+
-- @param e a placeholder expression
|
|
303
|
+
-- @return the function
|
|
304
|
+
function func.I(e)
|
|
305
|
+
if rawget(e,'__PE_function') then
|
|
306
|
+
return e.__PE_function
|
|
307
|
+
else return func.instantiate(e)
|
|
308
|
+
end
|
|
309
|
+
end
|
|
310
|
+
|
|
311
|
+
utils.add_function_factory(_PEMT,func.I)
|
|
312
|
+
|
|
313
|
+
--- bind the first parameter of the function to a value.
|
|
314
|
+
-- @class function
|
|
315
|
+
-- @name func.curry
|
|
316
|
+
-- @param fn a function of one or more arguments
|
|
317
|
+
-- @param p a value
|
|
318
|
+
-- @return a function of one less argument
|
|
319
|
+
-- @usage (curry(math.max,10))(20) == math.max(10,20)
|
|
320
|
+
func.curry = utils.bind1
|
|
321
|
+
|
|
322
|
+
--- create a function which chains two functions.
|
|
323
|
+
-- @param f a function of at least one argument
|
|
324
|
+
-- @param g a function of at least one argument
|
|
325
|
+
-- @return a function
|
|
326
|
+
-- @usage printf = compose(io.write,string.format)
|
|
327
|
+
function func.compose (f,g)
|
|
328
|
+
return function(...) return f(g(...)) end
|
|
329
|
+
end
|
|
330
|
+
|
|
331
|
+
--- bind the arguments of a function to given values.
|
|
332
|
+
-- bind(fn,v,_2) is equivalent to curry(fn,v).
|
|
333
|
+
-- @param fn a function of at least one argument
|
|
334
|
+
-- @param ... values or placeholder variables
|
|
335
|
+
-- @return a function
|
|
336
|
+
-- @usage (bind(f,_1,a))(b) == f(a,b)
|
|
337
|
+
-- @usage (bind(f,_2,_1))(a,b) == f(b,a)
|
|
338
|
+
function func.bind(fn,...)
|
|
339
|
+
local args = table.pack(...)
|
|
340
|
+
local holders,parms,bvalues,values = {},{},{'fn'},{}
|
|
341
|
+
local nv,maxplace,varargs = 1,0,false
|
|
342
|
+
for i = 1,args.n do
|
|
343
|
+
local a = args[i]
|
|
344
|
+
if isPE(a) and a.op == 'X' then
|
|
345
|
+
append(holders,a.repr)
|
|
346
|
+
maxplace = max(maxplace,a.index)
|
|
347
|
+
if a.index == 0 then varargs = true end
|
|
348
|
+
else
|
|
349
|
+
local v = '_v'..nv
|
|
350
|
+
append(bvalues,v)
|
|
351
|
+
append(holders,v)
|
|
352
|
+
append(values,a)
|
|
353
|
+
nv = nv + 1
|
|
354
|
+
end
|
|
355
|
+
end
|
|
356
|
+
for np = 1,maxplace do
|
|
357
|
+
append(parms,'_'..np)
|
|
358
|
+
end
|
|
359
|
+
if varargs then append(parms,'...') end
|
|
360
|
+
bvalues = concat(bvalues,',')
|
|
361
|
+
parms = concat(parms,',')
|
|
362
|
+
holders = concat(holders,',')
|
|
363
|
+
local fstr = ([[
|
|
364
|
+
return function (%s)
|
|
365
|
+
return function(%s) return fn(%s) end
|
|
366
|
+
end
|
|
367
|
+
]]):format(bvalues,parms,holders)
|
|
368
|
+
if _DEBUG then print(fstr) end
|
|
369
|
+
local res,err = loadstring(fstr)
|
|
370
|
+
res = res()
|
|
371
|
+
return res(fn,unpack(values))
|
|
372
|
+
end
|
|
373
|
+
|
|
374
|
+
return func
|
|
375
|
+
|
|
376
|
+
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
--------------
|
|
2
|
+
-- Entry point for loading all PL libraries only on demand.
|
|
3
|
+
-- Requiring 'pl' means that whenever a module is implicitly accesssed
|
|
4
|
+
-- (e.g. `utils.split`)
|
|
5
|
+
-- then that module is dynamically loaded. The submodules are all brought into
|
|
6
|
+
-- the global space.
|
|
7
|
+
-- @module pl
|
|
8
|
+
|
|
9
|
+
local modules = {
|
|
10
|
+
utils = true,path=true,dir=true,tablex=true,stringio=true,sip=true,
|
|
11
|
+
input=true,seq=true,lexer=true,stringx=true,
|
|
12
|
+
config=true,pretty=true,data=true,func=true,text=true,
|
|
13
|
+
operator=true,lapp=true,array2d=true,
|
|
14
|
+
comprehension=true,xml=true,
|
|
15
|
+
test = true, app = true, file = true, class = true, List = true,
|
|
16
|
+
Map = true, Set = true, OrderedMap = true, MultiMap = true,
|
|
17
|
+
Date = true,
|
|
18
|
+
-- classes --
|
|
19
|
+
}
|
|
20
|
+
_G.utils = require 'pl.utils'
|
|
21
|
+
|
|
22
|
+
for name,klass in pairs(_G.utils.stdmt) do
|
|
23
|
+
klass.__index = function(t,key)
|
|
24
|
+
return require ('pl.'..name)[key]
|
|
25
|
+
end;
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
-- ensure that we play nice with libraries that also attach a metatable
|
|
29
|
+
-- to the global table; always forward to a custom __index if we don't
|
|
30
|
+
-- match
|
|
31
|
+
|
|
32
|
+
local _hook,_prev_index
|
|
33
|
+
local gmt = {}
|
|
34
|
+
local prev_gmt = getmetatable(_G)
|
|
35
|
+
if prev_gmt then
|
|
36
|
+
_prev_index = prev_gmt.__index
|
|
37
|
+
if prev_gmt.__newindex then
|
|
38
|
+
gmt.__index = prev_gmt.__newindex
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
function gmt.hook(handler)
|
|
43
|
+
_hook = handler
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
function gmt.__index(t,name)
|
|
47
|
+
local found = modules[name]
|
|
48
|
+
-- either true, or the name of the module containing this class.
|
|
49
|
+
-- either way, we load the required module and make it globally available.
|
|
50
|
+
if found then
|
|
51
|
+
-- e..g pretty.dump causes pl.pretty to become available as 'pretty'
|
|
52
|
+
rawset(_G,name,require('pl.'..name))
|
|
53
|
+
return _G[name]
|
|
54
|
+
else
|
|
55
|
+
local res
|
|
56
|
+
if _hook then
|
|
57
|
+
res = _hook(t,name)
|
|
58
|
+
if res then return res end
|
|
59
|
+
end
|
|
60
|
+
if _prev_index then
|
|
61
|
+
return _prev_index(t,name)
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
setmetatable(_G,gmt)
|
|
67
|
+
|
|
68
|
+
if rawget(_G,'PENLIGHT_STRICT') then require 'pl.strict' end
|