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,344 @@
|
|
|
1
|
+
--- Simple Input Patterns (SIP).
|
|
2
|
+
-- SIP patterns start with '$', then a
|
|
3
|
+
-- one-letter type, and then an optional variable in curly braces.
|
|
4
|
+
--
|
|
5
|
+
-- sip.match('$v=$q','name="dolly"',res)
|
|
6
|
+
-- ==> res=={'name','dolly'}
|
|
7
|
+
-- sip.match('($q{first},$q{second})','("john","smith")',res)
|
|
8
|
+
-- ==> res=={second='smith',first='john'}
|
|
9
|
+
--
|
|
10
|
+
-- ''Type names''
|
|
11
|
+
--
|
|
12
|
+
-- v identifier
|
|
13
|
+
-- i integer
|
|
14
|
+
-- f floating-point
|
|
15
|
+
-- q quoted string
|
|
16
|
+
-- ([{< match up to closing bracket
|
|
17
|
+
--
|
|
18
|
+
-- See @{08-additional.md.Simple_Input_Patterns|the Guide}
|
|
19
|
+
--
|
|
20
|
+
-- @module pl.sip
|
|
21
|
+
|
|
22
|
+
if not rawget(_G,'loadstring') then -- Lua 5.2 full compatibility
|
|
23
|
+
loadstring = load
|
|
24
|
+
unpack = table.unpack
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
local append,concat = table.insert,table.concat
|
|
28
|
+
local concat = table.concat
|
|
29
|
+
local ipairs,loadstring,type,unpack = ipairs,loadstring,type,unpack
|
|
30
|
+
local io,_G = io,_G
|
|
31
|
+
local print,rawget = print,rawget
|
|
32
|
+
|
|
33
|
+
local patterns = {
|
|
34
|
+
FLOAT = '[%+%-%d]%d*%.?%d*[eE]?[%+%-]?%d*',
|
|
35
|
+
INTEGER = '[+%-%d]%d*',
|
|
36
|
+
IDEN = '[%a_][%w_]*',
|
|
37
|
+
FILE = '[%a%.\\][:%][%w%._%-\\]*',
|
|
38
|
+
OPTION = '[%a_][%w_%-]*',
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
local function assert_arg(idx,val,tp)
|
|
42
|
+
if type(val) ~= tp then
|
|
43
|
+
error("argument "..idx.." must be "..tp, 2)
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
--[[
|
|
49
|
+
module ('pl.sip',utils._module)
|
|
50
|
+
]]
|
|
51
|
+
|
|
52
|
+
local sip = {}
|
|
53
|
+
|
|
54
|
+
local brackets = {['<'] = '>', ['('] = ')', ['{'] = '}', ['['] = ']' }
|
|
55
|
+
local stdclasses = {a=1,c=0,d=1,l=1,p=0,u=1,w=1,x=1,s=0}
|
|
56
|
+
|
|
57
|
+
local _patterns = {}
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
local function group(s)
|
|
61
|
+
return '('..s..')'
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
-- escape all magic characters except $, which has special meaning
|
|
65
|
+
-- Also, un-escape any characters after $, so $( passes through as is.
|
|
66
|
+
local function escape (spec)
|
|
67
|
+
--_G.print('spec',spec)
|
|
68
|
+
local res = spec:gsub('[%-%.%+%[%]%(%)%^%%%?%*]','%%%1'):gsub('%$%%(%S)','$%1')
|
|
69
|
+
--_G.print('res',res)
|
|
70
|
+
return res
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
local function imcompressible (s)
|
|
74
|
+
return s:gsub('%s+','\001')
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
-- [handling of spaces in patterns]
|
|
78
|
+
-- spaces may be 'compressed' (i.e will match zero or more spaces)
|
|
79
|
+
-- unless this occurs within a number or an identifier. So we mark
|
|
80
|
+
-- the four possible imcompressible patterns first and then replace.
|
|
81
|
+
-- The possible alnum patterns are v,f,a,d,x,l and u.
|
|
82
|
+
local function compress_spaces (s)
|
|
83
|
+
s = s:gsub('%$[vifadxlu]%s+%$[vfadxlu]',imcompressible)
|
|
84
|
+
s = s:gsub('[%w_]%s+[%w_]',imcompressible)
|
|
85
|
+
s = s:gsub('[%w_]%s+%$[vfadxlu]',imcompressible)
|
|
86
|
+
s = s:gsub('%$[vfadxlu]%s+[%w_]',imcompressible)
|
|
87
|
+
s = s:gsub('%s+','%%s*')
|
|
88
|
+
s = s:gsub('\001',' ')
|
|
89
|
+
return s
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
local pattern_map = {
|
|
93
|
+
v = group(patterns.IDEN),
|
|
94
|
+
i = group(patterns.INTEGER),
|
|
95
|
+
f = group(patterns.FLOAT),
|
|
96
|
+
o = group(patterns.OPTION),
|
|
97
|
+
r = '(%S.*)',
|
|
98
|
+
p = '([%a]?[:]?[\\/%.%w_]+)'
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
function sip.custom_pattern(flag,patt)
|
|
102
|
+
pattern_map[flag] = patt
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
--- convert a SIP pattern into the equivalent Lua string pattern.
|
|
106
|
+
-- @param spec a SIP pattern
|
|
107
|
+
-- @param options a table; only the <code>at_start</code> field is
|
|
108
|
+
-- currently meaningful and esures that the pattern is anchored
|
|
109
|
+
-- at the start of the string.
|
|
110
|
+
-- @return a Lua string pattern.
|
|
111
|
+
function sip.create_pattern (spec,options)
|
|
112
|
+
assert_arg(1,spec,'string')
|
|
113
|
+
local fieldnames,fieldtypes = {},{}
|
|
114
|
+
|
|
115
|
+
if type(spec) == 'string' then
|
|
116
|
+
spec = escape(spec)
|
|
117
|
+
else
|
|
118
|
+
local res = {}
|
|
119
|
+
for i,s in ipairs(spec) do
|
|
120
|
+
res[i] = escape(s)
|
|
121
|
+
end
|
|
122
|
+
spec = concat(res,'.-')
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
local kount = 1
|
|
126
|
+
|
|
127
|
+
local function addfield (name,type)
|
|
128
|
+
if not name then name = kount end
|
|
129
|
+
if fieldnames then append(fieldnames,name) end
|
|
130
|
+
if fieldtypes then fieldtypes[name] = type end
|
|
131
|
+
kount = kount + 1
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
local named_vars, pattern
|
|
135
|
+
named_vars = spec:find('{%a+}')
|
|
136
|
+
pattern = '%$%S'
|
|
137
|
+
|
|
138
|
+
if options and options.at_start then
|
|
139
|
+
spec = '^'..spec
|
|
140
|
+
end
|
|
141
|
+
if spec:sub(-1,-1) == '$' then
|
|
142
|
+
spec = spec:sub(1,-2)..'$r'
|
|
143
|
+
if named_vars then spec = spec..'{rest}' end
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
local names
|
|
148
|
+
|
|
149
|
+
if named_vars then
|
|
150
|
+
names = {}
|
|
151
|
+
spec = spec:gsub('{(%a+)}',function(name)
|
|
152
|
+
append(names,name)
|
|
153
|
+
return ''
|
|
154
|
+
end)
|
|
155
|
+
end
|
|
156
|
+
spec = compress_spaces(spec)
|
|
157
|
+
|
|
158
|
+
local k = 1
|
|
159
|
+
local err
|
|
160
|
+
local r = (spec:gsub(pattern,function(s)
|
|
161
|
+
local type,name
|
|
162
|
+
type = s:sub(2,2)
|
|
163
|
+
if names then name = names[k]; k=k+1 end
|
|
164
|
+
-- this kludge is necessary because %q generates two matches, and
|
|
165
|
+
-- we want to ignore the first. Not a problem for named captures.
|
|
166
|
+
if not names and type == 'q' then
|
|
167
|
+
addfield(nil,'Q')
|
|
168
|
+
else
|
|
169
|
+
addfield(name,type)
|
|
170
|
+
end
|
|
171
|
+
local res
|
|
172
|
+
if pattern_map[type] then
|
|
173
|
+
res = pattern_map[type]
|
|
174
|
+
elseif type == 'q' then
|
|
175
|
+
-- some Lua pattern matching voodoo; we want to match '...' as
|
|
176
|
+
-- well as "...", and can use the fact that %n will match a
|
|
177
|
+
-- previous capture. Adding the extra field above comes from needing
|
|
178
|
+
-- to accomodate the extra spurious match (which is either ' or ")
|
|
179
|
+
addfield(name,type)
|
|
180
|
+
res = '(["\'])(.-)%'..(kount-2)
|
|
181
|
+
else
|
|
182
|
+
local endbracket = brackets[type]
|
|
183
|
+
if endbracket then
|
|
184
|
+
res = '(%b'..type..endbracket..')'
|
|
185
|
+
elseif stdclasses[type] or stdclasses[type:lower()] then
|
|
186
|
+
res = '(%'..type..'+)'
|
|
187
|
+
else
|
|
188
|
+
err = "unknown format type or character class"
|
|
189
|
+
end
|
|
190
|
+
end
|
|
191
|
+
return res
|
|
192
|
+
end))
|
|
193
|
+
--print(r,err)
|
|
194
|
+
if err then
|
|
195
|
+
return nil,err
|
|
196
|
+
else
|
|
197
|
+
return r,fieldnames,fieldtypes
|
|
198
|
+
end
|
|
199
|
+
end
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
local function tnumber (s)
|
|
203
|
+
return s == 'd' or s == 'i' or s == 'f'
|
|
204
|
+
end
|
|
205
|
+
|
|
206
|
+
function sip.create_spec_fun(spec,options)
|
|
207
|
+
local fieldtypes,fieldnames
|
|
208
|
+
local ls = {}
|
|
209
|
+
spec,fieldnames,fieldtypes = sip.create_pattern(spec,options)
|
|
210
|
+
if not spec then return spec,fieldnames end
|
|
211
|
+
local named_vars = type(fieldnames[1]) == 'string'
|
|
212
|
+
for i = 1,#fieldnames do
|
|
213
|
+
append(ls,'mm'..i)
|
|
214
|
+
end
|
|
215
|
+
local fun = ('return (function(s,res)\n\tlocal %s = s:match(%q)\n'):format(concat(ls,','),spec)
|
|
216
|
+
fun = fun..'\tif not mm1 then return false end\n'
|
|
217
|
+
local k=1
|
|
218
|
+
for i,f in ipairs(fieldnames) do
|
|
219
|
+
if f ~= '_' then
|
|
220
|
+
local var = 'mm'..i
|
|
221
|
+
if tnumber(fieldtypes[f]) then
|
|
222
|
+
var = 'tonumber('..var..')'
|
|
223
|
+
elseif brackets[fieldtypes[f]] then
|
|
224
|
+
var = var..':sub(2,-2)'
|
|
225
|
+
end
|
|
226
|
+
if named_vars then
|
|
227
|
+
fun = ('%s\tres.%s = %s\n'):format(fun,f,var)
|
|
228
|
+
else
|
|
229
|
+
if fieldtypes[f] ~= 'Q' then -- we skip the string-delim capture
|
|
230
|
+
fun = ('%s\tres[%d] = %s\n'):format(fun,k,var)
|
|
231
|
+
k = k + 1
|
|
232
|
+
end
|
|
233
|
+
end
|
|
234
|
+
end
|
|
235
|
+
end
|
|
236
|
+
return fun..'\treturn true\nend)\n', named_vars
|
|
237
|
+
end
|
|
238
|
+
|
|
239
|
+
--- convert a SIP pattern into a matching function.
|
|
240
|
+
-- The returned function takes two arguments, the line and an empty table.
|
|
241
|
+
-- If the line matched the pattern, then this function return true
|
|
242
|
+
-- and the table is filled with field-value pairs.
|
|
243
|
+
-- @param spec a SIP pattern
|
|
244
|
+
-- @param options optional table; {anywhere=true} will stop pattern anchoring at start
|
|
245
|
+
-- @return a function if successful, or nil,<error>
|
|
246
|
+
function sip.compile(spec,options)
|
|
247
|
+
assert_arg(1,spec,'string')
|
|
248
|
+
local fun,names = sip.create_spec_fun(spec,options)
|
|
249
|
+
if not fun then return nil,names end
|
|
250
|
+
if rawget(_G,'_DEBUG') then print(fun) end
|
|
251
|
+
local chunk,err = loadstring(fun,'tmp')
|
|
252
|
+
if err then return nil,err end
|
|
253
|
+
return chunk(),names
|
|
254
|
+
end
|
|
255
|
+
|
|
256
|
+
local cache = {}
|
|
257
|
+
|
|
258
|
+
--- match a SIP pattern against a string.
|
|
259
|
+
-- @param spec a SIP pattern
|
|
260
|
+
-- @param line a string
|
|
261
|
+
-- @param res a table to receive values
|
|
262
|
+
-- @param options (optional) option table
|
|
263
|
+
-- @return true or false
|
|
264
|
+
function sip.match (spec,line,res,options)
|
|
265
|
+
assert_arg(1,spec,'string')
|
|
266
|
+
assert_arg(2,line,'string')
|
|
267
|
+
assert_arg(3,res,'table')
|
|
268
|
+
if not cache[spec] then
|
|
269
|
+
cache[spec] = sip.compile(spec,options)
|
|
270
|
+
end
|
|
271
|
+
return cache[spec](line,res)
|
|
272
|
+
end
|
|
273
|
+
|
|
274
|
+
--- match a SIP pattern against the start of a string.
|
|
275
|
+
-- @param spec a SIP pattern
|
|
276
|
+
-- @param line a string
|
|
277
|
+
-- @param res a table to receive values
|
|
278
|
+
-- @return true or false
|
|
279
|
+
function sip.match_at_start (spec,line,res)
|
|
280
|
+
return sip.match(spec,line,res,{at_start=true})
|
|
281
|
+
end
|
|
282
|
+
|
|
283
|
+
--- given a pattern and a file object, return an iterator over the results
|
|
284
|
+
-- @param spec a SIP pattern
|
|
285
|
+
-- @param f a file - use standard input if not specified.
|
|
286
|
+
function sip.fields (spec,f)
|
|
287
|
+
assert_arg(1,spec,'string')
|
|
288
|
+
f = f or io.stdin
|
|
289
|
+
local fun,err = sip.compile(spec)
|
|
290
|
+
if not fun then return nil,err end
|
|
291
|
+
local res = {}
|
|
292
|
+
return function()
|
|
293
|
+
while true do
|
|
294
|
+
local line = f:read()
|
|
295
|
+
if not line then return end
|
|
296
|
+
if fun(line,res) then
|
|
297
|
+
local values = res
|
|
298
|
+
res = {}
|
|
299
|
+
return unpack(values)
|
|
300
|
+
end
|
|
301
|
+
end
|
|
302
|
+
end
|
|
303
|
+
end
|
|
304
|
+
|
|
305
|
+
--- register a match which will be used in the read function.
|
|
306
|
+
-- @param spec a SIP pattern
|
|
307
|
+
-- @param fun a function to be called with the results of the match
|
|
308
|
+
-- @see read
|
|
309
|
+
function sip.pattern (spec,fun)
|
|
310
|
+
assert_arg(1,spec,'string')
|
|
311
|
+
local pat,named = sip.compile(spec)
|
|
312
|
+
append(_patterns,{pat=pat,named=named,callback=fun or false})
|
|
313
|
+
end
|
|
314
|
+
|
|
315
|
+
--- enter a loop which applies all registered matches to the input file.
|
|
316
|
+
-- @param f a file object; if nil, then io.stdin is assumed.
|
|
317
|
+
function sip.read (f)
|
|
318
|
+
local owned,err
|
|
319
|
+
f = f or io.stdin
|
|
320
|
+
if type(f) == 'string' then
|
|
321
|
+
f,err = io.open(f)
|
|
322
|
+
if not f then return nil,err end
|
|
323
|
+
owned = true
|
|
324
|
+
end
|
|
325
|
+
local res = {}
|
|
326
|
+
for line in f:lines() do
|
|
327
|
+
for _,item in ipairs(_patterns) do
|
|
328
|
+
if item.pat(line,res) then
|
|
329
|
+
if item.callback then
|
|
330
|
+
if item.named then
|
|
331
|
+
item.callback(res)
|
|
332
|
+
else
|
|
333
|
+
item.callback(unpack(res))
|
|
334
|
+
end
|
|
335
|
+
end
|
|
336
|
+
res = {}
|
|
337
|
+
break
|
|
338
|
+
end
|
|
339
|
+
end
|
|
340
|
+
end
|
|
341
|
+
if owned then f:close() end
|
|
342
|
+
end
|
|
343
|
+
|
|
344
|
+
return sip
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
--- Checks uses of undeclared global variables.
|
|
2
|
+
-- All global variables must be 'declared' through a regular assignment
|
|
3
|
+
-- (even assigning nil will do) in a main chunk before being used
|
|
4
|
+
-- anywhere or assigned to inside a function.
|
|
5
|
+
-- @module pl.strict
|
|
6
|
+
|
|
7
|
+
require 'debug'
|
|
8
|
+
local getinfo, error, rawset, rawget = debug.getinfo, error, rawset, rawget
|
|
9
|
+
local handler,hooked
|
|
10
|
+
|
|
11
|
+
local mt = getmetatable(_G)
|
|
12
|
+
if mt == nil then
|
|
13
|
+
mt = {}
|
|
14
|
+
setmetatable(_G, mt)
|
|
15
|
+
elseif mt.hook then
|
|
16
|
+
hooked = true
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
-- predeclaring _PROMPT keeps the Lua Interpreter happy
|
|
20
|
+
mt.__declared = {_PROMPT=true}
|
|
21
|
+
|
|
22
|
+
local function what ()
|
|
23
|
+
local d = getinfo(3, "S")
|
|
24
|
+
return d and d.what or "C"
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
mt.__newindex = function (t, n, v)
|
|
28
|
+
if not mt.__declared[n] then
|
|
29
|
+
local w = what()
|
|
30
|
+
if w ~= "main" and w ~= "C" then
|
|
31
|
+
error("assign to undeclared variable '"..n.."'", 2)
|
|
32
|
+
end
|
|
33
|
+
mt.__declared[n] = true
|
|
34
|
+
end
|
|
35
|
+
rawset(t, n, v)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
handler = function(t,n)
|
|
39
|
+
if not mt.__declared[n] and what() ~= "C" then
|
|
40
|
+
error("variable '"..n.."' is not declared", 2)
|
|
41
|
+
end
|
|
42
|
+
return rawget(t, n)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
function package.strict (mod)
|
|
46
|
+
local mt = getmetatable(mod)
|
|
47
|
+
if mt == nil then
|
|
48
|
+
mt = {}
|
|
49
|
+
setmetatable(mod, mt)
|
|
50
|
+
end
|
|
51
|
+
mt.__declared = {}
|
|
52
|
+
mt.__newindex = function(t, n, v)
|
|
53
|
+
mt.__declared[n] = true
|
|
54
|
+
rawset(t, n, v)
|
|
55
|
+
end
|
|
56
|
+
mt.__index = function(t,n)
|
|
57
|
+
if not mt.__declared[n] then
|
|
58
|
+
error("variable '"..n.."' is not declared", 2)
|
|
59
|
+
end
|
|
60
|
+
return rawget(t, n)
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
if not hooked then
|
|
65
|
+
mt.__index = handler
|
|
66
|
+
else
|
|
67
|
+
mt.hook(handler)
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
--- Reading and writing strings using file-like objects. <br>
|
|
2
|
+
--
|
|
3
|
+
-- f = stringio.open(text)
|
|
4
|
+
-- l1 = f:read() -- read first line
|
|
5
|
+
-- n,m = f:read ('*n','*n') -- read two numbers
|
|
6
|
+
-- for line in f:lines() do print(line) end -- iterate over all lines
|
|
7
|
+
-- f = stringio.create()
|
|
8
|
+
-- f:write('hello')
|
|
9
|
+
-- f:write('dolly')
|
|
10
|
+
-- assert(f:value(),'hellodolly')
|
|
11
|
+
--
|
|
12
|
+
-- See @{03-strings.md.File_style_I_O_on_Strings|the Guide}.
|
|
13
|
+
-- @module pl.stringio
|
|
14
|
+
|
|
15
|
+
if not rawget(_G,'loadstring') then -- Lua 5.2 full compatibility
|
|
16
|
+
unpack = table.unpack
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
local getmetatable,tostring,unpack,tonumber = getmetatable,tostring,unpack,tonumber
|
|
20
|
+
local concat,append = table.concat,table.insert
|
|
21
|
+
|
|
22
|
+
local stringio = {}
|
|
23
|
+
|
|
24
|
+
--- Writer class
|
|
25
|
+
local SW = {}
|
|
26
|
+
SW.__index = SW
|
|
27
|
+
|
|
28
|
+
local function xwrite(self,...)
|
|
29
|
+
local args = {...} --arguments may not be nil!
|
|
30
|
+
for i = 1, #args do
|
|
31
|
+
append(self.tbl,args[i])
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
function SW:write(arg1,arg2,...)
|
|
36
|
+
if arg2 then
|
|
37
|
+
xwrite(self,arg1,arg2,...)
|
|
38
|
+
else
|
|
39
|
+
append(self.tbl,arg1)
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
function SW:writef(fmt,...)
|
|
44
|
+
self:write(fmt:format(...))
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
function SW:value()
|
|
48
|
+
return concat(self.tbl)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
function SW:__tostring()
|
|
52
|
+
return self:value()
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
function SW:close() -- for compatibility only
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
function SW:seek()
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
--- Reader class
|
|
62
|
+
local SR = {}
|
|
63
|
+
SR.__index = SR
|
|
64
|
+
|
|
65
|
+
function SR:_read(fmt)
|
|
66
|
+
local i,str = self.i,self.str
|
|
67
|
+
local sz = #str
|
|
68
|
+
if i > sz then return nil end
|
|
69
|
+
local res
|
|
70
|
+
if fmt == '*l' or fmt == '*L' then
|
|
71
|
+
local idx = str:find('\n',i) or (sz+1)
|
|
72
|
+
res = str:sub(i,fmt == '*l' and idx-1 or idx)
|
|
73
|
+
self.i = idx+1
|
|
74
|
+
elseif fmt == '*a' then
|
|
75
|
+
res = str:sub(i)
|
|
76
|
+
self.i = sz
|
|
77
|
+
elseif fmt == '*n' then
|
|
78
|
+
local _,i2,i2,idx
|
|
79
|
+
_,idx = str:find ('%s*%d+',i)
|
|
80
|
+
_,i2 = str:find ('^%.%d+',idx+1)
|
|
81
|
+
if i2 then idx = i2 end
|
|
82
|
+
_,i2 = str:find ('^[eE][%+%-]*%d+',idx+1)
|
|
83
|
+
if i2 then idx = i2 end
|
|
84
|
+
local val = str:sub(i,idx)
|
|
85
|
+
res = tonumber(val)
|
|
86
|
+
self.i = idx+1
|
|
87
|
+
elseif type(fmt) == 'number' then
|
|
88
|
+
res = str:sub(i,i+fmt-1)
|
|
89
|
+
self.i = i + fmt
|
|
90
|
+
else
|
|
91
|
+
error("bad read format",2)
|
|
92
|
+
end
|
|
93
|
+
return res
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
function SR:read(...)
|
|
97
|
+
if select('#',...) == 0 then
|
|
98
|
+
return self:_read('*l')
|
|
99
|
+
else
|
|
100
|
+
local res, fmts = {},{...}
|
|
101
|
+
for i = 1, #fmts do
|
|
102
|
+
res[i] = self:_read(fmts[i])
|
|
103
|
+
end
|
|
104
|
+
return unpack(res)
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
function SR:seek(whence,offset)
|
|
109
|
+
local base
|
|
110
|
+
whence = whence or 'cur'
|
|
111
|
+
offset = offset or 0
|
|
112
|
+
if whence == 'set' then
|
|
113
|
+
base = 1
|
|
114
|
+
elseif whence == 'cur' then
|
|
115
|
+
base = self.i
|
|
116
|
+
elseif whence == 'end' then
|
|
117
|
+
base = #self.str
|
|
118
|
+
end
|
|
119
|
+
self.i = base + offset
|
|
120
|
+
return self.i
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
function SR:lines(...)
|
|
124
|
+
local n, args = select('#',...)
|
|
125
|
+
if n > 0 then
|
|
126
|
+
args = {...}
|
|
127
|
+
end
|
|
128
|
+
return function()
|
|
129
|
+
if n == 0 then
|
|
130
|
+
return self:_read '*l'
|
|
131
|
+
else
|
|
132
|
+
return self:read(unpack(args))
|
|
133
|
+
end
|
|
134
|
+
end
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
function SR:close() -- for compatibility only
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
--- create a file-like object which can be used to construct a string.
|
|
141
|
+
-- The resulting object has an extra <code>value()</code> method for
|
|
142
|
+
-- retrieving the string value.
|
|
143
|
+
-- @usage f = create(); f:write('hello, dolly\n'); print(f:value())
|
|
144
|
+
function stringio.create()
|
|
145
|
+
return setmetatable({tbl={}},SW)
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
--- create a file-like object for reading from a given string.
|
|
149
|
+
-- @param s The input string.
|
|
150
|
+
function stringio.open(s)
|
|
151
|
+
return setmetatable({str=s,i=1},SR)
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
function stringio.lines(s,...)
|
|
155
|
+
return stringio.open(s):lines(...)
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
return stringio
|