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.
Files changed (459) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +17 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +69 -0
  6. data/Rakefile +1 -0
  7. data/lib/rufus/lua/win.rb +18 -0
  8. data/lib/rufus/lua/win/version.rb +7 -0
  9. data/rufus-lua-win.gemspec +23 -0
  10. data/vendor/lua/bin/liblua.dll +0 -0
  11. data/vendor/lua/lib/lua/LuaXml.lua +119 -0
  12. data/vendor/lua/lib/lua/alien.lua +250 -0
  13. data/vendor/lua/lib/lua/alien/core.dll +0 -0
  14. data/vendor/lua/lib/lua/alien/struct.dll +0 -0
  15. data/vendor/lua/lib/lua/base.lua +536 -0
  16. data/vendor/lua/lib/lua/bin.lua +20 -0
  17. data/vendor/lua/lib/lua/bit.dll +0 -0
  18. data/vendor/lua/lib/lua/cdlua.dll +0 -0
  19. data/vendor/lua/lib/lua/cdluacontextplus.dll +0 -0
  20. data/vendor/lua/lib/lua/cdluagl.dll +0 -0
  21. data/vendor/lua/lib/lua/cdluaim.dll +0 -0
  22. data/vendor/lua/lib/lua/cdluapdf.dll +0 -0
  23. data/vendor/lua/lib/lua/copas.lua +543 -0
  24. data/vendor/lua/lib/lua/coxpcall.lua +57 -0
  25. data/vendor/lua/lib/lua/date.lua +745 -0
  26. data/vendor/lua/lib/lua/debug_ext.lua +84 -0
  27. data/vendor/lua/lib/lua/debug_init.lua +2 -0
  28. data/vendor/lua/lib/lua/des56.dll +0 -0
  29. data/vendor/lua/lib/lua/dist/config.lua +109 -0
  30. data/vendor/lua/lib/lua/dist/constraints.lua +271 -0
  31. data/vendor/lua/lib/lua/dist/depends.lua +601 -0
  32. data/vendor/lua/lib/lua/dist/git.lua +307 -0
  33. data/vendor/lua/lib/lua/dist/init.lua +278 -0
  34. data/vendor/lua/lib/lua/dist/manifest.lua +225 -0
  35. data/vendor/lua/lib/lua/dist/package.lua +583 -0
  36. data/vendor/lua/lib/lua/dist/sys.lua +367 -0
  37. data/vendor/lua/lib/lua/dist/utils.lua +130 -0
  38. data/vendor/lua/lib/lua/ex.dll +0 -0
  39. data/vendor/lua/lib/lua/fstable.lua +116 -0
  40. data/vendor/lua/lib/lua/getopt.lua +273 -0
  41. data/vendor/lua/lib/lua/git.lua +5 -0
  42. data/vendor/lua/lib/lua/git/core.dll +0 -0
  43. data/vendor/lua/lib/lua/git/objects.lua +121 -0
  44. data/vendor/lua/lib/lua/git/pack.lua +316 -0
  45. data/vendor/lua/lib/lua/git/protocol.lua +188 -0
  46. data/vendor/lua/lib/lua/git/repo.lua +283 -0
  47. data/vendor/lua/lib/lua/git/util.lua +233 -0
  48. data/vendor/lua/lib/lua/gzio.dll +0 -0
  49. data/vendor/lua/lib/lua/gzip.lua +81 -0
  50. data/vendor/lua/lib/lua/iconv.dll +0 -0
  51. data/vendor/lua/lib/lua/imlua.dll +0 -0
  52. data/vendor/lua/lib/lua/imlua_fftw.dll +0 -0
  53. data/vendor/lua/lib/lua/imlua_jp2.dll +0 -0
  54. data/vendor/lua/lib/lua/imlua_process.dll +0 -0
  55. data/vendor/lua/lib/lua/imlua_process_omp.dll +0 -0
  56. data/vendor/lua/lib/lua/io_ext.lua +115 -0
  57. data/vendor/lua/lib/lua/iuplua.dll +0 -0
  58. data/vendor/lua/lib/lua/iuplua_mglplot.dll +0 -0
  59. data/vendor/lua/lib/lua/iuplua_pplot.dll +0 -0
  60. data/vendor/lua/lib/lua/iupluacd.dll +0 -0
  61. data/vendor/lua/lib/lua/iupluacontrols.dll +0 -0
  62. data/vendor/lua/lib/lua/iupluagl.dll +0 -0
  63. data/vendor/lua/lib/lua/iupluaim.dll +0 -0
  64. data/vendor/lua/lib/lua/iupluaimglib.dll +0 -0
  65. data/vendor/lua/lib/lua/iupluatuio.dll +0 -0
  66. data/vendor/lua/lib/lua/lanes-keeper.lua +302 -0
  67. data/vendor/lua/lib/lua/lanes.lua +591 -0
  68. data/vendor/lua/lib/lua/lanes/core.dll +0 -0
  69. data/vendor/lua/lib/lua/lcs.lua +55 -0
  70. data/vendor/lua/lib/lua/lemock.lua +659 -0
  71. data/vendor/lua/lib/lua/lfs.dll +0 -0
  72. data/vendor/lua/lib/lua/list.lua +375 -0
  73. data/vendor/lua/lib/lua/logging.lua +189 -0
  74. data/vendor/lua/lib/lua/logging/console.lua +22 -0
  75. data/vendor/lua/lib/lua/logging/email.lua +44 -0
  76. data/vendor/lua/lib/lua/logging/file.lua +55 -0
  77. data/vendor/lua/lib/lua/logging/rolling_file.lua +81 -0
  78. data/vendor/lua/lib/lua/logging/socket.lua +35 -0
  79. data/vendor/lua/lib/lua/logging/sql.lua +64 -0
  80. data/vendor/lua/lib/lua/loop/base.lua +68 -0
  81. data/vendor/lua/lib/lua/loop/cached.lua +312 -0
  82. data/vendor/lua/lib/lua/loop/collection/MapWithArrayOfKeys.lua +64 -0
  83. data/vendor/lua/lib/lua/loop/collection/ObjectCache.lua +39 -0
  84. data/vendor/lua/lib/lua/loop/collection/OrderedSet.lua +164 -0
  85. data/vendor/lua/lib/lua/loop/collection/PriorityQueue.lua +86 -0
  86. data/vendor/lua/lib/lua/loop/collection/UnorderedArray.lua +32 -0
  87. data/vendor/lua/lib/lua/loop/collection/UnorderedArraySet.lua +56 -0
  88. data/vendor/lua/lib/lua/loop/compiler/Arguments.lua +108 -0
  89. data/vendor/lua/lib/lua/loop/compiler/Conditional.lua +50 -0
  90. data/vendor/lua/lib/lua/loop/compiler/Expression.lua +215 -0
  91. data/vendor/lua/lib/lua/loop/component/base.lua +221 -0
  92. data/vendor/lua/lib/lua/loop/component/contained.lua +71 -0
  93. data/vendor/lua/lib/lua/loop/component/dynamic.lua +223 -0
  94. data/vendor/lua/lib/lua/loop/component/intercepted.lua +354 -0
  95. data/vendor/lua/lib/lua/loop/component/wrapped.lua +195 -0
  96. data/vendor/lua/lib/lua/loop/debug/Inspector.lua +521 -0
  97. data/vendor/lua/lib/lua/loop/debug/Matcher.lua +192 -0
  98. data/vendor/lua/lib/lua/loop/debug/Verbose.lua +266 -0
  99. data/vendor/lua/lib/lua/loop/debug/Viewer.lua +200 -0
  100. data/vendor/lua/lib/lua/loop/multiple.lua +105 -0
  101. data/vendor/lua/lib/lua/loop/object/Exception.lua +57 -0
  102. data/vendor/lua/lib/lua/loop/object/Publisher.lua +43 -0
  103. data/vendor/lua/lib/lua/loop/object/Wrapper.lua +39 -0
  104. data/vendor/lua/lib/lua/loop/scoped.lua +585 -0
  105. data/vendor/lua/lib/lua/loop/serial/FileStream.lua +48 -0
  106. data/vendor/lua/lib/lua/loop/serial/Serializer.lua +291 -0
  107. data/vendor/lua/lib/lua/loop/serial/SocketStream.lua +51 -0
  108. data/vendor/lua/lib/lua/loop/serial/StringStream.lua +47 -0
  109. data/vendor/lua/lib/lua/loop/simple.lua +75 -0
  110. data/vendor/lua/lib/lua/loop/table.lua +71 -0
  111. data/vendor/lua/lib/lua/loop/thread/CoSocket.lua +416 -0
  112. data/vendor/lua/lib/lua/loop/thread/IOScheduler.lua +170 -0
  113. data/vendor/lua/lib/lua/loop/thread/Scheduler.lua +327 -0
  114. data/vendor/lua/lib/lua/loop/thread/SocketScheduler.lua +88 -0
  115. data/vendor/lua/lib/lua/loop/thread/Timer.lua +54 -0
  116. data/vendor/lua/lib/lua/lpeg.dll +0 -0
  117. data/vendor/lua/lib/lua/ltn12.lua +292 -0
  118. data/vendor/lua/lib/lua/luaXML_lib.dll +0 -0
  119. data/vendor/lua/lib/lua/luacurl.dll +0 -0
  120. data/vendor/lua/lib/lua/luadoc/config.lua +34 -0
  121. data/vendor/lua/lib/lua/luadoc/doclet/debug.lua +46 -0
  122. data/vendor/lua/lib/lua/luadoc/doclet/formatter.lua +84 -0
  123. data/vendor/lua/lib/lua/luadoc/doclet/html.lua +289 -0
  124. data/vendor/lua/lib/lua/luadoc/doclet/html/file.lp +113 -0
  125. data/vendor/lua/lib/lua/luadoc/doclet/html/function.lp +64 -0
  126. data/vendor/lua/lib/lua/luadoc/doclet/html/index.lp +70 -0
  127. data/vendor/lua/lib/lua/luadoc/doclet/html/luadoc.css +286 -0
  128. data/vendor/lua/lib/lua/luadoc/doclet/html/menu.lp +55 -0
  129. data/vendor/lua/lib/lua/luadoc/doclet/html/module.lp +109 -0
  130. data/vendor/lua/lib/lua/luadoc/doclet/html/table.lp +15 -0
  131. data/vendor/lua/lib/lua/luadoc/doclet/raw.lua +12 -0
  132. data/vendor/lua/lib/lua/luadoc/init.lua +58 -0
  133. data/vendor/lua/lib/lua/luadoc/lp.lua +130 -0
  134. data/vendor/lua/lib/lua/luadoc/taglet/standard.lua +495 -0
  135. data/vendor/lua/lib/lua/luadoc/taglet/standard/tags.lua +171 -0
  136. data/vendor/lua/lib/lua/luadoc/util.lua +233 -0
  137. data/vendor/lua/lib/lua/luagl.dll +0 -0
  138. data/vendor/lua/lib/lua/luaglu.dll +0 -0
  139. data/vendor/lua/lib/lua/luaidl.lua +113 -0
  140. data/vendor/lua/lib/lua/luaidl/lex.lua +793 -0
  141. data/vendor/lua/lib/lua/luaidl/pre.lua +149 -0
  142. data/vendor/lua/lib/lua/luaidl/sin.lua +3631 -0
  143. data/vendor/lua/lib/lua/luarocks/add.lua +108 -0
  144. data/vendor/lua/lib/lua/luarocks/admin_remove.lua +87 -0
  145. data/vendor/lua/lib/lua/luarocks/build.lua +330 -0
  146. data/vendor/lua/lib/lua/luarocks/build/builtin.lua +253 -0
  147. data/vendor/lua/lib/lua/luarocks/build/cmake.lua +54 -0
  148. data/vendor/lua/lib/lua/luarocks/build/command.lua +32 -0
  149. data/vendor/lua/lib/lua/luarocks/build/make.lua +92 -0
  150. data/vendor/lua/lib/lua/luarocks/cache.lua +85 -0
  151. data/vendor/lua/lib/lua/luarocks/cfg.lua +449 -0
  152. data/vendor/lua/lib/lua/luarocks/command_line.lua +163 -0
  153. data/vendor/lua/lib/lua/luarocks/deps.lua +654 -0
  154. data/vendor/lua/lib/lua/luarocks/dir.lua +69 -0
  155. data/vendor/lua/lib/lua/luarocks/download.lua +90 -0
  156. data/vendor/lua/lib/lua/luarocks/fetch.lua +321 -0
  157. data/vendor/lua/lib/lua/luarocks/fetch/cvs.lua +44 -0
  158. data/vendor/lua/lib/lua/luarocks/fetch/git.lua +81 -0
  159. data/vendor/lua/lib/lua/luarocks/fetch/git_file.lua +17 -0
  160. data/vendor/lua/lib/lua/luarocks/fetch/hg.lua +54 -0
  161. data/vendor/lua/lib/lua/luarocks/fetch/sscm.lua +42 -0
  162. data/vendor/lua/lib/lua/luarocks/fetch/svn.lua +53 -0
  163. data/vendor/lua/lib/lua/luarocks/fs.lua +40 -0
  164. data/vendor/lua/lib/lua/luarocks/fs/lua.lua +676 -0
  165. data/vendor/lua/lib/lua/luarocks/fs/unix.lua +88 -0
  166. data/vendor/lua/lib/lua/luarocks/fs/unix/tools.lua +325 -0
  167. data/vendor/lua/lib/lua/luarocks/fs/win32.lua +107 -0
  168. data/vendor/lua/lib/lua/luarocks/fs/win32/tools.lua +334 -0
  169. data/vendor/lua/lib/lua/luarocks/help.lua +101 -0
  170. data/vendor/lua/lib/lua/luarocks/index.lua +172 -0
  171. data/vendor/lua/lib/lua/luarocks/install.lua +151 -0
  172. data/vendor/lua/lib/lua/luarocks/list.lua +35 -0
  173. data/vendor/lua/lib/lua/luarocks/loader.lua +228 -0
  174. data/vendor/lua/lib/lua/luarocks/make.lua +71 -0
  175. data/vendor/lua/lib/lua/luarocks/make_manifest.lua +34 -0
  176. data/vendor/lua/lib/lua/luarocks/manif.lua +360 -0
  177. data/vendor/lua/lib/lua/luarocks/manif_core.lua +75 -0
  178. data/vendor/lua/lib/lua/luarocks/new_version.lua +141 -0
  179. data/vendor/lua/lib/lua/luarocks/pack.lua +205 -0
  180. data/vendor/lua/lib/lua/luarocks/path.lua +315 -0
  181. data/vendor/lua/lib/lua/luarocks/persist.lua +173 -0
  182. data/vendor/lua/lib/lua/luarocks/refresh_cache.lua +30 -0
  183. data/vendor/lua/lib/lua/luarocks/remove.lua +135 -0
  184. data/vendor/lua/lib/lua/luarocks/rep.lua +313 -0
  185. data/vendor/lua/lib/lua/luarocks/require.lua +6 -0
  186. data/vendor/lua/lib/lua/luarocks/search.lua +399 -0
  187. data/vendor/lua/lib/lua/luarocks/show.lua +138 -0
  188. data/vendor/lua/lib/lua/luarocks/site_config.lua +23 -0
  189. data/vendor/lua/lib/lua/luarocks/tools/patch.lua +712 -0
  190. data/vendor/lua/lib/lua/luarocks/tools/tar.lua +144 -0
  191. data/vendor/lua/lib/lua/luarocks/tools/zip.lua +245 -0
  192. data/vendor/lua/lib/lua/luarocks/type_check.lua +267 -0
  193. data/vendor/lua/lib/lua/luarocks/unpack.lua +151 -0
  194. data/vendor/lua/lib/lua/luarocks/util.lua +420 -0
  195. data/vendor/lua/lib/lua/luarocks/validate.lua +164 -0
  196. data/vendor/lua/lib/lua/luars232.dll +0 -0
  197. data/vendor/lua/lib/lua/luasql/mysql.dll +0 -0
  198. data/vendor/lua/lib/lua/luasql/postgres.dll +0 -0
  199. data/vendor/lua/lib/lua/luasql/sqlite3.dll +0 -0
  200. data/vendor/lua/lib/lua/luaunit.lua +601 -0
  201. data/vendor/lua/lib/lua/lxp.dll +0 -0
  202. data/vendor/lua/lib/lua/lxp/lom.lua +60 -0
  203. data/vendor/lua/lib/lua/math_ext.lua +27 -0
  204. data/vendor/lua/lib/lua/mbox.lua +53 -0
  205. data/vendor/lua/lib/lua/md5.lua +19 -0
  206. data/vendor/lua/lib/lua/md5/core.dll +0 -0
  207. data/vendor/lua/lib/lua/metalua.lua +0 -0
  208. data/vendor/lua/lib/lua/metalua/ast_to_string.mlua +553 -0
  209. data/vendor/lua/lib/lua/metalua/base.lua +104 -0
  210. data/vendor/lua/lib/lua/metalua/bytecode.lua +0 -0
  211. data/vendor/lua/lib/lua/metalua/clopts.mlua +204 -0
  212. data/vendor/lua/lib/lua/metalua/compiler.lua +3 -0
  213. data/vendor/lua/lib/lua/metalua/dollar.mlua +24 -0
  214. data/vendor/lua/lib/lua/metalua/extension/H-runtime.mlua +216 -0
  215. data/vendor/lua/lib/lua/metalua/extension/H.mlua +22 -0
  216. data/vendor/lua/lib/lua/metalua/extension/anaphoric.mlua +54 -0
  217. data/vendor/lua/lib/lua/metalua/extension/clist.mlua +149 -0
  218. data/vendor/lua/lib/lua/metalua/extension/continue.mlua +53 -0
  219. data/vendor/lua/lib/lua/metalua/extension/localin.mlua +2 -0
  220. data/vendor/lua/lib/lua/metalua/extension/log.mlua +39 -0
  221. data/vendor/lua/lib/lua/metalua/extension/match.mlua +374 -0
  222. data/vendor/lua/lib/lua/metalua/extension/ternary.mlua +10 -0
  223. data/vendor/lua/lib/lua/metalua/extension/trycatch.mlua +189 -0
  224. data/vendor/lua/lib/lua/metalua/extension/types-runtime.mlua +159 -0
  225. data/vendor/lua/lib/lua/metalua/extension/types.mlua +352 -0
  226. data/vendor/lua/lib/lua/metalua/extension/withdo.mlua +30 -0
  227. data/vendor/lua/lib/lua/metalua/extension/xglobal-runtime.lua +41 -0
  228. data/vendor/lua/lib/lua/metalua/extension/xglobal.mlua +20 -0
  229. data/vendor/lua/lib/lua/metalua/extension/xloop.mlua +100 -0
  230. data/vendor/lua/lib/lua/metalua/extension/xmatch.mlua +216 -0
  231. data/vendor/lua/lib/lua/metalua/metaloop.mlua +76 -0
  232. data/vendor/lua/lib/lua/metalua/mlc.lua +0 -0
  233. data/vendor/lua/lib/lua/metalua/mlc_xcall.lua +119 -0
  234. data/vendor/lua/lib/lua/metalua/mlp.lua +0 -0
  235. data/vendor/lua/lib/lua/metalua/package2.lua +101 -0
  236. data/vendor/lua/lib/lua/metalua/runtime.lua +3 -0
  237. data/vendor/lua/lib/lua/metalua/string2.lua +44 -0
  238. data/vendor/lua/lib/lua/metalua/table2.lua +372 -0
  239. data/vendor/lua/lib/lua/metalua/walk.mlua +304 -0
  240. data/vendor/lua/lib/lua/metalua/walk/bindings.mlua +41 -0
  241. data/vendor/lua/lib/lua/metalua/walk/id.mlua +186 -0
  242. data/vendor/lua/lib/lua/metalua/walk/scope.lua +54 -0
  243. data/vendor/lua/lib/lua/mime.lua +87 -0
  244. data/vendor/lua/lib/lua/mime/core.dll +0 -0
  245. data/vendor/lua/lib/lua/mobdebug.lua +1484 -0
  246. data/vendor/lua/lib/lua/modules.lua +16 -0
  247. data/vendor/lua/lib/lua/object.lua +56 -0
  248. data/vendor/lua/lib/lua/oil/Exception.lua +26 -0
  249. data/vendor/lua/lib/lua/oil/arch.lua +27 -0
  250. data/vendor/lua/lib/lua/oil/arch/basic/client.lua +29 -0
  251. data/vendor/lua/lib/lua/oil/arch/basic/common.lua +13 -0
  252. data/vendor/lua/lib/lua/oil/arch/basic/server.lua +27 -0
  253. data/vendor/lua/lib/lua/oil/arch/cooperative/common.lua +10 -0
  254. data/vendor/lua/lib/lua/oil/arch/cooperative/server.lua +16 -0
  255. data/vendor/lua/lib/lua/oil/arch/corba/client.lua +39 -0
  256. data/vendor/lua/lib/lua/oil/arch/corba/common.lua +58 -0
  257. data/vendor/lua/lib/lua/oil/arch/corba/intercepted/client.lua +9 -0
  258. data/vendor/lua/lib/lua/oil/arch/corba/intercepted/server.lua +9 -0
  259. data/vendor/lua/lib/lua/oil/arch/corba/server.lua +35 -0
  260. data/vendor/lua/lib/lua/oil/arch/ludo/byref.lua +18 -0
  261. data/vendor/lua/lib/lua/oil/arch/ludo/client.lua +19 -0
  262. data/vendor/lua/lib/lua/oil/arch/ludo/common.lua +18 -0
  263. data/vendor/lua/lib/lua/oil/arch/ludo/server.lua +19 -0
  264. data/vendor/lua/lib/lua/oil/arch/typed/client.lua +27 -0
  265. data/vendor/lua/lib/lua/oil/arch/typed/common.lua +9 -0
  266. data/vendor/lua/lib/lua/oil/arch/typed/server.lua +18 -0
  267. data/vendor/lua/lib/lua/oil/assert.lua +87 -0
  268. data/vendor/lua/lib/lua/oil/builder.lua +45 -0
  269. data/vendor/lua/lib/lua/oil/builder/basic/client.lua +31 -0
  270. data/vendor/lua/lib/lua/oil/builder/basic/common.lua +11 -0
  271. data/vendor/lua/lib/lua/oil/builder/basic/server.lua +13 -0
  272. data/vendor/lua/lib/lua/oil/builder/cooperative/common.lua +11 -0
  273. data/vendor/lua/lib/lua/oil/builder/cooperative/server.lua +11 -0
  274. data/vendor/lua/lib/lua/oil/builder/corba/client.lua +13 -0
  275. data/vendor/lua/lib/lua/oil/builder/corba/common.lua +24 -0
  276. data/vendor/lua/lib/lua/oil/builder/corba/gencode.lua +13 -0
  277. data/vendor/lua/lib/lua/oil/builder/corba/intercepted/client.lua +11 -0
  278. data/vendor/lua/lib/lua/oil/builder/corba/intercepted/server.lua +11 -0
  279. data/vendor/lua/lib/lua/oil/builder/corba/server.lua +13 -0
  280. data/vendor/lua/lib/lua/oil/builder/lua/client.lua +11 -0
  281. data/vendor/lua/lib/lua/oil/builder/lua/server.lua +12 -0
  282. data/vendor/lua/lib/lua/oil/builder/ludo/byref.lua +13 -0
  283. data/vendor/lua/lib/lua/oil/builder/ludo/client.lua +13 -0
  284. data/vendor/lua/lib/lua/oil/builder/ludo/common.lua +14 -0
  285. data/vendor/lua/lib/lua/oil/builder/ludo/server.lua +13 -0
  286. data/vendor/lua/lib/lua/oil/builder/typed/client.lua +16 -0
  287. data/vendor/lua/lib/lua/oil/builder/typed/server.lua +12 -0
  288. data/vendor/lua/lib/lua/oil/compat.lua +846 -0
  289. data/vendor/lua/lib/lua/oil/component.lua +1 -0
  290. data/vendor/lua/lib/lua/oil/corba/giop.lua +301 -0
  291. data/vendor/lua/lib/lua/oil/corba/giop/Codec.lua +1568 -0
  292. data/vendor/lua/lib/lua/oil/corba/giop/CodecGen.lua +589 -0
  293. data/vendor/lua/lib/lua/oil/corba/giop/Exception.lua +25 -0
  294. data/vendor/lua/lib/lua/oil/corba/giop/Indexer.lua +63 -0
  295. data/vendor/lua/lib/lua/oil/corba/giop/Listener.lua +343 -0
  296. data/vendor/lua/lib/lua/oil/corba/giop/Messenger.lua +228 -0
  297. data/vendor/lua/lib/lua/oil/corba/giop/Referrer.lua +180 -0
  298. data/vendor/lua/lib/lua/oil/corba/giop/Requester.lua +462 -0
  299. data/vendor/lua/lib/lua/oil/corba/idl.lua +597 -0
  300. data/vendor/lua/lib/lua/oil/corba/idl/Compiler.lua +133 -0
  301. data/vendor/lua/lib/lua/oil/corba/idl/Importer.lua +235 -0
  302. data/vendor/lua/lib/lua/oil/corba/idl/Indexer.lua +95 -0
  303. data/vendor/lua/lib/lua/oil/corba/idl/Registry.lua +1821 -0
  304. data/vendor/lua/lib/lua/oil/corba/idl/ir.lua +847 -0
  305. data/vendor/lua/lib/lua/oil/corba/idl/sysex.lua +21 -0
  306. data/vendor/lua/lib/lua/oil/corba/iiop/Profiler.lua +200 -0
  307. data/vendor/lua/lib/lua/oil/corba/intercepted/Listener.lua +158 -0
  308. data/vendor/lua/lib/lua/oil/corba/intercepted/Requester.lua +181 -0
  309. data/vendor/lua/lib/lua/oil/corba/services/event.lua +126 -0
  310. data/vendor/lua/lib/lua/oil/corba/services/event/ConsumerAdmin.lua +50 -0
  311. data/vendor/lua/lib/lua/oil/corba/services/event/EventFactory.lua +15 -0
  312. data/vendor/lua/lib/lua/oil/corba/services/event/EventQueue.lua +37 -0
  313. data/vendor/lua/lib/lua/oil/corba/services/event/ProxyPushConsumer.lua +75 -0
  314. data/vendor/lua/lib/lua/oil/corba/services/event/ProxyPushSupplier.lua +62 -0
  315. data/vendor/lua/lib/lua/oil/corba/services/event/SingleDeferredDispatcher.lua +60 -0
  316. data/vendor/lua/lib/lua/oil/corba/services/event/SingleSynchronousDispatcher.lua +39 -0
  317. data/vendor/lua/lib/lua/oil/corba/services/event/SupplierAdmin.lua +50 -0
  318. data/vendor/lua/lib/lua/oil/corba/services/naming.lua +436 -0
  319. data/vendor/lua/lib/lua/oil/kernel/base/Acceptor.lua +268 -0
  320. data/vendor/lua/lib/lua/oil/kernel/base/Channels.lua +121 -0
  321. data/vendor/lua/lib/lua/oil/kernel/base/Connector.lua +147 -0
  322. data/vendor/lua/lib/lua/oil/kernel/base/Dispatcher.lua +99 -0
  323. data/vendor/lua/lib/lua/oil/kernel/base/Proxies.lua +86 -0
  324. data/vendor/lua/lib/lua/oil/kernel/base/Proxies/asynchronous.lua +56 -0
  325. data/vendor/lua/lib/lua/oil/kernel/base/Proxies/protected.lua +17 -0
  326. data/vendor/lua/lib/lua/oil/kernel/base/Proxies/synchronous.lua +17 -0
  327. data/vendor/lua/lib/lua/oil/kernel/base/Proxies/utils.lua +29 -0
  328. data/vendor/lua/lib/lua/oil/kernel/base/Receiver.lua +110 -0
  329. data/vendor/lua/lib/lua/oil/kernel/base/Servants.lua +207 -0
  330. data/vendor/lua/lib/lua/oil/kernel/base/Sockets.lua +44 -0
  331. data/vendor/lua/lib/lua/oil/kernel/cooperative/Receiver.lua +139 -0
  332. data/vendor/lua/lib/lua/oil/kernel/intercepted/Listener.lua +47 -0
  333. data/vendor/lua/lib/lua/oil/kernel/intercepted/Requester.lua +58 -0
  334. data/vendor/lua/lib/lua/oil/kernel/lua/Dispatcher.lua +76 -0
  335. data/vendor/lua/lib/lua/oil/kernel/lua/Proxies.lua +69 -0
  336. data/vendor/lua/lib/lua/oil/kernel/typed/Dispatcher.lua +91 -0
  337. data/vendor/lua/lib/lua/oil/kernel/typed/Proxies.lua +153 -0
  338. data/vendor/lua/lib/lua/oil/kernel/typed/Servants.lua +137 -0
  339. data/vendor/lua/lib/lua/oil/ludo/Codec.lua +66 -0
  340. data/vendor/lua/lib/lua/oil/ludo/CodecByRef.lua +103 -0
  341. data/vendor/lua/lib/lua/oil/ludo/Listener.lua +151 -0
  342. data/vendor/lua/lib/lua/oil/ludo/Referrer.lua +72 -0
  343. data/vendor/lua/lib/lua/oil/ludo/Requester.lua +107 -0
  344. data/vendor/lua/lib/lua/oil/oo.lua +1 -0
  345. data/vendor/lua/lib/lua/oil/port.lua +1 -0
  346. data/vendor/lua/lib/lua/oil/properties.lua +57 -0
  347. data/vendor/lua/lib/lua/oil/verbose.lua +133 -0
  348. data/vendor/lua/lib/lua/package_ext.lua +15 -0
  349. data/vendor/lua/lib/lua/parser.lua +268 -0
  350. data/vendor/lua/lib/lua/pl/Date.lua +555 -0
  351. data/vendor/lua/lib/lua/pl/List.lua +613 -0
  352. data/vendor/lua/lib/lua/pl/Map.lua +113 -0
  353. data/vendor/lua/lib/lua/pl/MultiMap.lua +62 -0
  354. data/vendor/lua/lib/lua/pl/OrderedMap.lua +151 -0
  355. data/vendor/lua/lib/lua/pl/Set.lua +153 -0
  356. data/vendor/lua/lib/lua/pl/app.lua +165 -0
  357. data/vendor/lua/lib/lua/pl/array2d.lua +501 -0
  358. data/vendor/lua/lib/lua/pl/class.lua +180 -0
  359. data/vendor/lua/lib/lua/pl/comprehension.lua +286 -0
  360. data/vendor/lua/lib/lua/pl/config.lua +176 -0
  361. data/vendor/lua/lib/lua/pl/data.lua +606 -0
  362. data/vendor/lua/lib/lua/pl/dir.lua +475 -0
  363. data/vendor/lua/lib/lua/pl/file.lua +70 -0
  364. data/vendor/lua/lib/lua/pl/func.lua +376 -0
  365. data/vendor/lua/lib/lua/pl/init.lua +68 -0
  366. data/vendor/lua/lib/lua/pl/input.lua +173 -0
  367. data/vendor/lua/lib/lua/pl/lapp.lua +407 -0
  368. data/vendor/lua/lib/lua/pl/lexer.lua +456 -0
  369. data/vendor/lua/lib/lua/pl/luabalanced.lua +264 -0
  370. data/vendor/lua/lib/lua/pl/operator.lua +201 -0
  371. data/vendor/lua/lib/lua/pl/path.lua +398 -0
  372. data/vendor/lua/lib/lua/pl/permute.lua +63 -0
  373. data/vendor/lua/lib/lua/pl/platf/luajava.lua +101 -0
  374. data/vendor/lua/lib/lua/pl/pretty.lua +285 -0
  375. data/vendor/lua/lib/lua/pl/seq.lua +551 -0
  376. data/vendor/lua/lib/lua/pl/sip.lua +344 -0
  377. data/vendor/lua/lib/lua/pl/strict.lua +70 -0
  378. data/vendor/lua/lib/lua/pl/stringio.lua +158 -0
  379. data/vendor/lua/lib/lua/pl/stringx.lua +440 -0
  380. data/vendor/lua/lib/lua/pl/tablex.lua +817 -0
  381. data/vendor/lua/lib/lua/pl/template.lua +103 -0
  382. data/vendor/lua/lib/lua/pl/test.lua +135 -0
  383. data/vendor/lua/lib/lua/pl/text.lua +243 -0
  384. data/vendor/lua/lib/lua/pl/utils.lua +550 -0
  385. data/vendor/lua/lib/lua/pl/xml.lua +689 -0
  386. data/vendor/lua/lib/lua/profiler.dll +0 -0
  387. data/vendor/lua/lib/lua/re.lua +248 -0
  388. data/vendor/lua/lib/lua/rex_onig.dll +0 -0
  389. data/vendor/lua/lib/lua/rex_pcre.dll +0 -0
  390. data/vendor/lua/lib/lua/rex_posix.dll +0 -0
  391. data/vendor/lua/lib/lua/rings.dll +0 -0
  392. data/vendor/lua/lib/lua/serialize.lua +193 -0
  393. data/vendor/lua/lib/lua/set.lua +149 -0
  394. data/vendor/lua/lib/lua/socket.lua +133 -0
  395. data/vendor/lua/lib/lua/socket/core.dll +0 -0
  396. data/vendor/lua/lib/lua/socket/ftp.lua +281 -0
  397. data/vendor/lua/lib/lua/socket/http.lua +350 -0
  398. data/vendor/lua/lib/lua/socket/smtp.lua +251 -0
  399. data/vendor/lua/lib/lua/socket/tp.lua +123 -0
  400. data/vendor/lua/lib/lua/socket/url.lua +297 -0
  401. data/vendor/lua/lib/lua/ssl.dll +0 -0
  402. data/vendor/lua/lib/lua/ssl.lua +93 -0
  403. data/vendor/lua/lib/lua/ssl/https.lua +138 -0
  404. data/vendor/lua/lib/lua/stable.lua +28 -0
  405. data/vendor/lua/lib/lua/std.lua +16 -0
  406. data/vendor/lua/lib/lua/strbuf.lua +32 -0
  407. data/vendor/lua/lib/lua/strict.lua +45 -0
  408. data/vendor/lua/lib/lua/string_ext.lua +274 -0
  409. data/vendor/lua/lib/lua/table_ext.lua +117 -0
  410. data/vendor/lua/lib/lua/tar.lua +262 -0
  411. data/vendor/lua/lib/lua/task.dll +0 -0
  412. data/vendor/lua/lib/lua/tree.lua +81 -0
  413. data/vendor/lua/lib/lua/unicode.dll +0 -0
  414. data/vendor/lua/lib/lua/verbose_require.lua +11 -0
  415. data/vendor/lua/lib/lua/vstruct.lua +86 -0
  416. data/vendor/lua/lib/lua/vstruct/ast.lua +192 -0
  417. data/vendor/lua/lib/lua/vstruct/ast/Bitpack.lua +33 -0
  418. data/vendor/lua/lib/lua/vstruct/ast/Generator.lua +174 -0
  419. data/vendor/lua/lib/lua/vstruct/ast/IO.lua +45 -0
  420. data/vendor/lua/lib/lua/vstruct/ast/List.lua +56 -0
  421. data/vendor/lua/lib/lua/vstruct/ast/Name.lua +20 -0
  422. data/vendor/lua/lib/lua/vstruct/ast/Repeat.lua +23 -0
  423. data/vendor/lua/lib/lua/vstruct/ast/Root.lua +19 -0
  424. data/vendor/lua/lib/lua/vstruct/ast/Table.lua +65 -0
  425. data/vendor/lua/lib/lua/vstruct/cursor.lua +81 -0
  426. data/vendor/lua/lib/lua/vstruct/io.lua +45 -0
  427. data/vendor/lua/lib/lua/vstruct/io/a.lua +24 -0
  428. data/vendor/lua/lib/lua/vstruct/io/b.lua +28 -0
  429. data/vendor/lua/lib/lua/vstruct/io/bigendian.lua +21 -0
  430. data/vendor/lua/lib/lua/vstruct/io/c.lua +25 -0
  431. data/vendor/lua/lib/lua/vstruct/io/defaults.lua +24 -0
  432. data/vendor/lua/lib/lua/vstruct/io/endianness.lua +41 -0
  433. data/vendor/lua/lib/lua/vstruct/io/f.lua +129 -0
  434. data/vendor/lua/lib/lua/vstruct/io/hostendian.lua +21 -0
  435. data/vendor/lua/lib/lua/vstruct/io/i.lua +42 -0
  436. data/vendor/lua/lib/lua/vstruct/io/littleendian.lua +21 -0
  437. data/vendor/lua/lib/lua/vstruct/io/m.lua +62 -0
  438. data/vendor/lua/lib/lua/vstruct/io/p.lua +23 -0
  439. data/vendor/lua/lib/lua/vstruct/io/s.lua +27 -0
  440. data/vendor/lua/lib/lua/vstruct/io/seekb.lua +18 -0
  441. data/vendor/lua/lib/lua/vstruct/io/seekf.lua +18 -0
  442. data/vendor/lua/lib/lua/vstruct/io/seekto.lua +18 -0
  443. data/vendor/lua/lib/lua/vstruct/io/u.lua +54 -0
  444. data/vendor/lua/lib/lua/vstruct/io/x.lua +34 -0
  445. data/vendor/lua/lib/lua/vstruct/io/z.lua +63 -0
  446. data/vendor/lua/lib/lua/vstruct/lexer.lua +100 -0
  447. data/vendor/lua/lib/lua/vstruct/pack.lua +142 -0
  448. data/vendor/lua/lib/lua/vstruct/test.lua +47 -0
  449. data/vendor/lua/lib/lua/vstruct/test/basic.lua +73 -0
  450. data/vendor/lua/lib/lua/vstruct/test/common.lua +100 -0
  451. data/vendor/lua/lib/lua/vstruct/test/fp-bigendian.lua +56 -0
  452. data/vendor/lua/lib/lua/vstruct/test/fp-littleendian.lua +56 -0
  453. data/vendor/lua/lib/lua/vstruct/test/struct-test-gen.lua +1230 -0
  454. data/vendor/lua/lib/lua/vstruct/unpack.lua +126 -0
  455. data/vendor/lua/lib/lua/wx.dll +0 -0
  456. data/vendor/lua/lib/lua/xml.lua +75 -0
  457. data/vendor/lua/lib/lua/zip.dll +0 -0
  458. data/vendor/lua/lib/lua/zlib.dll +0 -0
  459. 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